diff --git a/Changelog.md b/Changelog.md
deleted file mode 100644
index ad71c83..0000000
--- a/Changelog.md
+++ /dev/null
@@ -1,197 +0,0 @@
-# YY-Thunks 更新日志
-
-
-### 1.0.3-Beta1 - 累计问题修复(2020-11-16 17:30)
-
-* 解决[Bug 7](https://github.com/Chuyu-Team/YY-Thunks/issues/7),某些情况下导致死锁问题(感谢 冯立夫)
-
-### 1.0.2.8 - 扩充实现 (2020-07-12 18:00)
-
-* 优化实现,改进 YY-Thunks 性能与体积
-* 解决 Bug,修复 RtlpQueueWaitBlockToSRWLock 与 RtlpWakeSingle 错误 (感谢 清泠)
-* 解决 Bug,CLSID_ShellItem符号可能冲突问题 (感谢 星期四)
-* 解决 Bug,与现代化stdio模式触发FAILIFMISMATCH链接错误。
-* 添加 CompareStringEx
-* 添加 CompareStringOrdinal
-* 添加 SetFilePointerEx (Windows 2000 模式)
-* 添加 GetModuleHandleExW(A) (Windows 2000 模式)
-* 添加 WTSGetActiveConsoleSessionId (Windows 2000 模式)
-* 添加 StrToInt64ExW(A) (Windows 2000 模式)
-* 添加 GetNativeSystemInfo (Windows 2000 模式)
-* 添加 InitializeSListHead (Windows 2000 模式)
-* 添加 InterlockedFlushSList (Windows 2000 模式)
-* 添加 QueryDepthSList (Windows 2000 模式)
-* 添加 InterlockedPushEntrySList (Windows 2000 模式)
-* 添加 InterlockedPopEntrySList (Windows 2000 模式)
-* 添加 LoadLibraryExW(A) LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR,
- LOAD_LIBRARY_SEARCH_APPLICATION_DIR, LOAD_LIBRARY_SEARCH_SYSTEM32 支持
-* 添加 SetupDiGetDevicePropertyW
-* 添加 SetupDiSetDevicePropertyW
-* 添加 SetupDiGetClassPropertyW
-* 添加 SetupDiGetClassPropertyExW
-* 添加 SetupDiSetClassPropertyW
-* 添加 SetupDiSetClassPropertyExW
-
-### 1.0.1.23 - 优化实现 (2019-10-25 13:00)
-
-* 解决 Bug,CreateFile2 dwSecurityQosFlags成员可能无法发挥作用问题 (感谢 賈可)
-* 解决 Bug,KnownFoldersIdsMap 缺少 FOLDERID_ProgramFilesCommonX86
- 问题 (感谢 賈可)
-* 解决 Bug,KnownFoldersIdsMap 会生成 static 静态对象初始化代码问题 (感谢 Joe)
-* 行为调整,EnumCalendarInfoExEx, EnumDateFormatsExEx 消除 TLS 依赖
-* 添加 SHBindToFolderIDListParent (感谢 賈可)
-* 添加 SHBindToFolderIDListParentEx (感谢 賈可)
-* 添加 SHBindToObject (感谢 賈可)
-* 添加 SHCreateItemFromIDList (感谢 賈可)
-* 添加 SHCreateItemWithParent (感谢 賈可)
-* 添加 SHCreateItemFromRelativeName (感谢 賈可)
-* 添加 SHGetNameFromIDList (感谢 賈可)
-* 添加 SHCreateShellItem
-* 添加 OpenFileById
-* 添加 RegCopyTreeW(A) (感谢 賈可)
-* 添加 CreateSymbolicLinkW(A)
-* 添加 ReOpenFile
-
-### 1.0.1.17 - 优化实现 (2019-09-06 21:00)
-
-* 解决Bug,VS2010无法使用问题 (感谢 柒零)
-* 改进 SRWLock 以及 One-Time Initialization 调整为 KeyedEvent 实现
-* 添加 WSAPoll
-* 添加 InitializeConditionVariable
-* 添加 SleepConditionVariableCS
-* 添加 SleepConditionVariableSRW
-* 添加 WakeConditionVariable
-* 添加 WakeAllConditionVariable
-* 添加 InitOnceInitialize
-* 添加 InitOnceBeginInitialize
-* 添加 InitOnceComplete
-* 添加 InitializeSynchronizationBarrier
-* 添加 EnterSynchronizationBarrier
-* 添加 DeleteSynchronizationBarrier
-* 添加 WaitOnAddress
-* 添加 WakeByAddressSingle
-* 添加 WakeByAddressAll
-* 添加 SHGetKnownFolderPath
-* 添加 SHSetKnownFolderPath
-* 添加 SHGetKnownFolderIDList
-
-### 1.0.1.9 - 优化实现 (2019-06-23 13:00)
-
-* 优化代码结构,减少不必要的全局对象引入
-* 内部函数采用 __fastcall 约定,减少栈操作
-* 增加 YY-Thunks 版本互斥
-* 改进与联想一键影音的兼容性,由于联想一键影音错会乱 Hook,导致 LoadLibraryExW
- 行为异常。这样将导致 YY-Thunks 等在没有安装 KB2533623 的系统上无法正常使用
-* 改进 Windows 7 RTM 以及以下系统的兼容性,由于这些老版本系统由于在
- LoadLibraryExW 期间不会恢复重定向,因此当目标线程关闭重定向时可能导致
- YY-Thunks 无法正常工作
-* 添加 QueryWorkingSetEx
-
-### 1.0.1.7 - 功能更新 (2019-06-04 13:00)
-
-* 添加 InitializeSRWLock
-* 添加 AcquireSRWLockExclusive
-* 添加 ReleaseSRWLockExclusive
-* 添加 AcquireSRWLockShared
-* 添加 ReleaseSRWLockShared
-* 添加 TryAcquireSRWLockExclusive
-* 添加 TryAcquireSRWLockShared
-
-### 1.0.1.5 - 功能更新 (2019-05-26 19:00)
-
-* 添加 RaiseFailFastException (感谢 过客)
-* 添加 GetThreadId (感谢 过客)
-* 添加 GetProcessIdOfThread
-* 添加 QueryThreadCycleTime (感谢 过客)
-* 添加 QueryProcessCycleTime
-* 添加 K32EnumProcessModules
-* 添加 K32EnumProcessModulesEx
-* 添加 K32GetModuleBaseNameW(A)
-* 添加 K32GetModuleFileNameExW(A)
-* 添加 K32EmptyWorkingSet
-* 添加 K32QueryWorkingSet
-* 添加 K32QueryWorkingSetEx
-* 添加 K32InitializeProcessForWsWatch
-* 添加 K32GetWsChanges
-* 添加 K32GetWsChangesEx
-* 添加 K32GetMappedFileNameW(A)
-* 添加 K32EnumDeviceDrivers
-* 添加 K32GetDeviceDriverBaseNameW(A)
-* 添加 K32GetDeviceDriverFileNameW(A)
-* 添加 K32GetPerformanceInfo
-* 添加 K32EnumPageFilesW(A)
-* 添加 K32GetProcessImageFileNameW(A)
-* 添加 EnumProcessModulesEx
-* 添加 GetWsChangesEx
-* 添加 QueryFullProcessImageNameW(A)
-* 添加 CreateFile2
-* 添加 CreateEventExW(A)
-* 添加 CreateMutexExW(A)
-* 添加 CreateSemaphoreExW
-* 添加 CreateWaitableTimerExW
-* 添加 GetFileVersionInfoExW(A)
-* 添加 GetFileVersionInfoSizeExW(A)
-* 添加 QueryFullProcessImageNameW(A)
-* 添加 InterlockedCompareExchange64
-* 添加 GetProcessId
-* 添加 SetThreadErrorMode
-* 添加 GetThreadErrorMode
-* 添加 GetErrorMode
-* 添加 CancelIoEx
-
-### 1.0.1.1 - 功能更新 (2019-04-01 17:00)
-
-* 添加 EnumCalendarInfoExEx
-* 添加 EnumDateFormatsExEx
-* 添加 GetFileInformationByHandleEx
-* 添加 SetFileInformationByHandle
-* 添加 GetFinalPathNameByHandleW(A)
-* 解决 Bug,1.0.0.10 版意外引入 ntdll.lib 问题 (感谢 小古)
-* 添加 GetLogicalProcessorInformation
-* 添加 GetLogicalProcessorInformationEx
-* 添加 InetPtonW(inet_pton)
-* 添加 InetNtopW(inet_ntop)
-* 添加 GetNumaHighestNodeNumber
-
-### 1.0.0.7 - 功能更新 (2019-01-02 15:10)
-
-* 添加 RegGetValueW(A)
-* 添加 LocaleNameToLCID
-* 添加 LCIDToLocaleName
-* 添加 GetLocaleInfoEx
-* 添加 GetDateFormatEx
-* 添加 GetTimeFormatEx
-* 添加 GetNumberFormatEx
-* 添加 GetCurrencyFormatEx
-* 添加 GetUserDefaultLocaleName
-* 添加 GetSystemDefaultLocaleName
-* 重新编译,解决潜在符号修饰问题
-
-### 1.0.0.4 - 兼容性更新 (2018-09-08 18:00)
-
-* 解决Bug,将初始化时机推迟到 `.CRT$XID`,避免 VC2008 下过早初始化导致 atexit
- 崩溃 (感谢 死田鸡)
-
-### 1.0.0.3 - 让兼容Windows ARM64更轻松 (2018-06-18 11:30)
-
-* 添加 IsWow64Process2
-* 添加 IsWow64GuestMachineSupported
-* 添加 GetTickCount64
-* 添加 GetSystemTimePreciseAsFileTime
-* 添加 InitializeCriticalSectionEx
-* 添加 InitOnceExecuteOnce
-* 添加 GetCurrentProcessorNumber
-* 添加 GetCurrentProcessorNumberEx
-* 添加 GetNumaNodeProcessorMask
-* 添加 GetNumaNodeProcessorMaskEx
-* 添加 SetThreadGroupAffinity
-
-### 1.0.0.2 - 补充API支持 (2018-06-01 18:30)
-
-* 添加 RegSetKeyValueW(A)
-* 添加 RegDeleteKeyValueW(A)
-* 添加 RegDeleteTreeW(A)
-
-### 1.0.0.1 - 第一版 (2018-05-17 19:00)
-
-* YY-Thunks 第一版
diff --git a/ReadMe.md b/ReadMe.md
index facbee1..38d4611 100644
--- a/ReadMe.md
+++ b/ReadMe.md
@@ -66,4 +66,4 @@ YY-Thunks(鸭船),存在的目的就是抹平不同系统的差异,编
## 更新日志
-请参阅 [Changelog.md](Changelog.md)
+请参阅 [Changelog.md](https://github.com/Chuyu-Team/YY-Thunks/wiki)
diff --git a/YY-Thunks.nuspec b/YY-Thunks.nuspec
index 2c4a008..db817f8 100644
--- a/YY-Thunks.nuspec
+++ b/YY-Thunks.nuspec
@@ -15,6 +15,8 @@
优雅的解决Windows XP RTM无法定位程序输入点 DecodePointer、EncodePointer、RegDeleteKeyEx等,让你兼容Windows更轻松。
* 解决[Bug 7](https://github.com/Chuyu-Team/YY-Thunks/issues/7),某些情况下导致死锁问题(感谢 冯立夫)
+ * 添加 RoOriginateError
+ * 添加 RoOriginateErrorW
Copyright 2020
Chuyu YY-Thunks native nativepackage
diff --git a/src/Thunks/api-ms-win-core-winrt-error.hpp b/src/Thunks/api-ms-win-core-winrt-error.hpp
new file mode 100644
index 0000000..e4068e2
--- /dev/null
+++ b/src/Thunks/api-ms-win-core-winrt-error.hpp
@@ -0,0 +1,64 @@
+
+namespace YY
+{
+ namespace Thunks
+ {
+#if (YY_Thunks_Support_Version < NTDDI_WIN8)
+ //Windows 8 [desktop apps | UWP apps]
+ //Windows Server 2012 [desktop apps | UWP apps]
+
+ EXTERN_C
+ BOOL
+ WINAPI
+ RoOriginateError(
+ _In_ HRESULT error,
+ _In_opt_ HSTRING message
+ )
+#ifdef YY_Thunks_Defined
+ ;
+#else
+ {
+ if (auto pRoOriginateError = try_get_RoOriginateError())
+ {
+ return pRoOriginateError(error, message);
+ }
+
+ return FALSE;
+ }
+#endif
+ __YY_Thunks_Expand_Function(api_ms_win_core_winrt_error_l1_1_0, RoOriginateError, 8);
+
+#endif
+
+#if (YY_Thunks_Support_Version < NTDDI_WIN8)
+ //Windows 8 [desktop apps | UWP apps]
+ //Windows Server 2012 [desktop apps | UWP apps]
+
+ EXTERN_C
+ BOOL
+ WINAPI
+ RoOriginateErrorW(
+ _In_ HRESULT error,
+ _In_ UINT cchMax,
+ _When_(cchMax == 0, _In_reads_or_z_opt_(MAX_ERROR_MESSAGE_CHARS) )
+ _When_(cchMax > 0 && cchMax < MAX_ERROR_MESSAGE_CHARS, _In_reads_or_z_(cchMax) )
+ _When_(cchMax >= MAX_ERROR_MESSAGE_CHARS, _In_reads_or_z_(MAX_ERROR_MESSAGE_CHARS) ) PCWSTR message
+ )
+#ifdef YY_Thunks_Defined
+ ;
+#else
+ {
+ if (auto pRoOriginateErrorW = try_get_RoOriginateErrorW())
+ {
+ return pRoOriginateErrorW(error, cchMax, message);
+ }
+
+ return FALSE;
+ }
+#endif
+
+ __YY_Thunks_Expand_Function(api_ms_win_core_winrt_error_l1_1_0, RoOriginateErrorW, 12);
+
+#endif
+ }
+}
\ No newline at end of file
diff --git a/src/YY_Thunks.cpp b/src/YY_Thunks.cpp
index 79eca64..95daaa5 100644
--- a/src/YY_Thunks.cpp
+++ b/src/YY_Thunks.cpp
@@ -15,7 +15,8 @@
_APPLY(shlwapi, "shlwapi" , 0 ) \
_APPLY(setupapi, "setupapi" , 0 ) \
_APPLY(api_ms_win_core_winrt_l1_1_0, "api-ms-win-core-winrt-l1-1-0" , 0 ) \
- _APPLY(api_ms_win_core_winrt_string_l1_1_0, "api-ms-win-core-winrt-string-l1-1-0", 0 )
+ _APPLY(api_ms_win_core_winrt_string_l1_1_0, "api-ms-win-core-winrt-string-l1-1-0", 0 ) \
+ _APPLY(api_ms_win_core_winrt_error_l1_1_0, "api-ms-win-core-winrt-error-l1-1-0" , 0 )
//ȫ¾ֿÉÄÜʹÓõ½µĺ¯Êý
diff --git a/src/YY_Thunks.vcxproj b/src/YY_Thunks.vcxproj
new file mode 100644
index 0000000..9c03405
--- /dev/null
+++ b/src/YY_Thunks.vcxproj
@@ -0,0 +1,130 @@
+
+
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+
+ 15.0
+ {05B31B17-534E-427B-8E18-3DDDDF384A34}
+ YYThunks
+ $([Microsoft.Build.Utilities.ToolLocationHelper]::GetLatestSDKTargetPlatformVersion('Windows', '10.0'))
+
+
+
+ Application
+ false
+ $(DefaultPlatformToolset)
+ true
+ MultiByte
+
+
+ Application
+ false
+ $(DefaultPlatformToolset)
+ true
+ MultiByte
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Level3
+ MinSpace
+ true
+ true
+ true
+ YY_Thunks_Support_Version=NTDDI_WIN2K;%(PreprocessorDefinitions)
+ false
+ MultiThreaded
+ false
+ false
+
+
+ true
+ true
+
+
+
+
+ Level3
+ MinSpace
+ true
+ true
+ true
+ YY_Thunks_Support_Version=NTDDI_WINXP;%(PreprocessorDefinitions)
+ false
+ MultiThreaded
+ false
+ false
+
+
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/YY_Thunks.vcxproj.filters b/src/YY_Thunks.vcxproj.filters
new file mode 100644
index 0000000..6f01477
--- /dev/null
+++ b/src/YY_Thunks.vcxproj.filters
@@ -0,0 +1,125 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;hm;inl;inc;ipp;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+ {dd8ad697-a4c7-452c-8291-0cd9750343ce}
+
+
+
+
+ 头文件
+
+
+ 头文件
+
+
+ Thunks
+
+
+ Thunks
+
+
+ Thunks
+
+
+ Thunks
+
+
+ Thunks
+
+
+ Thunks
+
+
+ Thunks
+
+
+ Thunks
+
+
+ Thunks
+
+
+ Thunks
+
+
+ Thunks
+
+
+ Thunks
+
+
+ Thunks
+
+
+ Thunks
+
+
+ Thunks
+
+
+ Thunks
+
+
+ Thunks
+
+
+ Thunks
+
+
+ Thunks
+
+
+ Thunks
+
+
+ Thunks
+
+
+ Thunks
+
+
+ Thunks
+
+
+ Thunks
+
+
+ Thunks
+
+
+ Thunks
+
+
+ Thunks
+
+
+ Thunks
+
+
+
+
+ 资源文件
+
+
+
+
+ 源文件
+
+
+ 源文件
+
+
+
\ No newline at end of file
diff --git a/src/YY_Thunks_List.hpp b/src/YY_Thunks_List.hpp
index 153168b..f98ece7 100644
--- a/src/YY_Thunks_List.hpp
+++ b/src/YY_Thunks_List.hpp
@@ -23,6 +23,7 @@
#include "Thunks/api-ms-win-core-winrt.hpp"
#include "Thunks/api-ms-win-core-winrt-string.hpp"
#include "Thunks/api-ms-win-core-libraryloader.hpp"
+#include "Thunks/api-ms-win-core-winrt-error.hpp"