mirror of
https://github.com/valinet/ExplorerPatcher.git
synced 2024-11-27 17:00:59 +01:00
Start: Functional Windows 10 Start menu
This commit is contained in:
parent
43adf91203
commit
fbd6ab591f
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
# Visual Studio Version 17
|
# Visual Studio Version 17
|
||||||
VisualStudioVersion = 17.0.31903.59
|
VisualStudioVersion = 17.0.32126.317
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ExplorerPatcher", "ExplorerPatcher\ExplorerPatcher.vcxproj", "{DB3E4319-2969-42B6-B7E8-BB57AA8C9FA9}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ExplorerPatcher", "ExplorerPatcher\ExplorerPatcher.vcxproj", "{DB3E4319-2969-42B6-B7E8-BB57AA8C9FA9}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
@ -18,6 +18,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ep_setup", "ep_setup\ep_set
|
|||||||
{DB3E4319-2969-42B6-B7E8-BB57AA8C9FA9} = {DB3E4319-2969-42B6-B7E8-BB57AA8C9FA9}
|
{DB3E4319-2969-42B6-B7E8-BB57AA8C9FA9} = {DB3E4319-2969-42B6-B7E8-BB57AA8C9FA9}
|
||||||
{1ECCAB38-61B6-4C85-BBB5-2E2232DA3A87} = {1ECCAB38-61B6-4C85-BBB5-2E2232DA3A87}
|
{1ECCAB38-61B6-4C85-BBB5-2E2232DA3A87} = {1ECCAB38-61B6-4C85-BBB5-2E2232DA3A87}
|
||||||
{314A50C1-F0A0-4D0C-89E1-AD8F3951043E} = {314A50C1-F0A0-4D0C-89E1-AD8F3951043E}
|
{314A50C1-F0A0-4D0C-89E1-AD8F3951043E} = {314A50C1-F0A0-4D0C-89E1-AD8F3951043E}
|
||||||
|
{6BF03EEA-200A-4698-9555-057DD52B0C78} = {6BF03EEA-200A-4698-9555-057DD52B0C78}
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ep_setup_patch", "ep_setup_patch\ep_setup_patch.vcxproj", "{0C13E5F3-106B-4836-A7C2-8E5808A6ED78}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ep_setup_patch", "ep_setup_patch\ep_setup_patch.vcxproj", "{0C13E5F3-106B-4836-A7C2-8E5808A6ED78}"
|
||||||
@ -34,6 +35,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ep_weather_host", "ep_weath
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ep_weather_host_stub", "ep_weather_host_stub\ep_weather_host_stub.vcxproj", "{AF02ABAC-EAEB-471C-9957-73D430B8B4DE}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ep_weather_host_stub", "ep_weather_host_stub\ep_weather_host_stub.vcxproj", "{AF02ABAC-EAEB-471C-9957-73D430B8B4DE}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ep_startmenu", "ep_startmenu\ep_startmenu.vcxproj", "{6BF03EEA-200A-4698-9555-057DD52B0C78}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|amd64 = Debug|amd64
|
Debug|amd64 = Debug|amd64
|
||||||
@ -92,6 +95,12 @@ Global
|
|||||||
{AF02ABAC-EAEB-471C-9957-73D430B8B4DE}.Release|amd64.ActiveCfg = Release|x64
|
{AF02ABAC-EAEB-471C-9957-73D430B8B4DE}.Release|amd64.ActiveCfg = Release|x64
|
||||||
{AF02ABAC-EAEB-471C-9957-73D430B8B4DE}.Release|amd64.Build.0 = Release|x64
|
{AF02ABAC-EAEB-471C-9957-73D430B8B4DE}.Release|amd64.Build.0 = Release|x64
|
||||||
{AF02ABAC-EAEB-471C-9957-73D430B8B4DE}.Release|IA-32.ActiveCfg = Release|Win32
|
{AF02ABAC-EAEB-471C-9957-73D430B8B4DE}.Release|IA-32.ActiveCfg = Release|Win32
|
||||||
|
{6BF03EEA-200A-4698-9555-057DD52B0C78}.Debug|amd64.ActiveCfg = Debug|x64
|
||||||
|
{6BF03EEA-200A-4698-9555-057DD52B0C78}.Debug|amd64.Build.0 = Debug|x64
|
||||||
|
{6BF03EEA-200A-4698-9555-057DD52B0C78}.Debug|IA-32.ActiveCfg = Debug|Win32
|
||||||
|
{6BF03EEA-200A-4698-9555-057DD52B0C78}.Release|amd64.ActiveCfg = Release|x64
|
||||||
|
{6BF03EEA-200A-4698-9555-057DD52B0C78}.Release|amd64.Build.0 = Release|x64
|
||||||
|
{6BF03EEA-200A-4698-9555-057DD52B0C78}.Release|IA-32.ActiveCfg = Release|Win32
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
@ -8863,6 +8863,7 @@ char VisibilityChangedEventArguments_GetVisible(__int64 a1)
|
|||||||
return v3[0];
|
return v3[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DWORD StartMenu_ShowClassicMode = 0;
|
||||||
DWORD StartMenu_maximumFreqApps = 6;
|
DWORD StartMenu_maximumFreqApps = 6;
|
||||||
DWORD StartMenu_ShowAllApps = 0;
|
DWORD StartMenu_ShowAllApps = 0;
|
||||||
|
|
||||||
@ -8933,6 +8934,41 @@ void StartMenu_LoadSettings(BOOL bRestartIfChanged)
|
|||||||
StartMenu_maximumFreqApps = dwVal;
|
StartMenu_maximumFreqApps = dwVal;
|
||||||
RegCloseKey(hKey);
|
RegCloseKey(hKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RegCreateKeyExW(
|
||||||
|
HKEY_CURRENT_USER,
|
||||||
|
L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
|
||||||
|
0,
|
||||||
|
NULL,
|
||||||
|
REG_OPTION_NON_VOLATILE,
|
||||||
|
KEY_READ,
|
||||||
|
NULL,
|
||||||
|
&hKey,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
if (hKey == NULL || hKey == INVALID_HANDLE_VALUE)
|
||||||
|
{
|
||||||
|
hKey = NULL;
|
||||||
|
}
|
||||||
|
if (hKey)
|
||||||
|
{
|
||||||
|
dwSize = sizeof(DWORD);
|
||||||
|
dwVal = 0;
|
||||||
|
RegQueryValueExW(
|
||||||
|
hKey,
|
||||||
|
TEXT("Start_ShowClassicMode"),
|
||||||
|
0,
|
||||||
|
NULL,
|
||||||
|
&dwVal,
|
||||||
|
&dwSize
|
||||||
|
);
|
||||||
|
if (bRestartIfChanged && dwVal != StartMenu_ShowClassicMode)
|
||||||
|
{
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
StartMenu_ShowClassicMode = dwVal;
|
||||||
|
RegCloseKey(hKey);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static INT64(*StartDocked_LauncherFrame_OnVisibilityChangedFunc)(void*, INT64, void*) = NULL;
|
static INT64(*StartDocked_LauncherFrame_OnVisibilityChangedFunc)(void*, INT64, void*) = NULL;
|
||||||
@ -8966,6 +9002,13 @@ INT64 StartDocked_SystemListPolicyProvider_GetMaximumFrequentAppsHook(void* _thi
|
|||||||
return StartMenu_maximumFreqApps;
|
return StartMenu_maximumFreqApps;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
INT64(*StartUI_SystemListPolicyProvider_GetMaximumFrequentAppsFunc)(void*) = NULL;
|
||||||
|
|
||||||
|
INT64 StartUI_SystemListPolicyProvider_GetMaximumFrequentAppsHook(void* _this)
|
||||||
|
{
|
||||||
|
return StartMenu_maximumFreqApps;
|
||||||
|
}
|
||||||
|
|
||||||
INT64(*StartDocked_StartSizingFrame_StartSizingFrameFunc)(void* _this) = NULL;
|
INT64(*StartDocked_StartSizingFrame_StartSizingFrameFunc)(void* _this) = NULL;
|
||||||
|
|
||||||
INT64 StartDocked_StartSizingFrame_StartSizingFrameHook(void* _this)
|
INT64 StartDocked_StartSizingFrame_StartSizingFrameHook(void* _this)
|
||||||
@ -8993,6 +9036,110 @@ INT64 StartDocked_StartSizingFrame_StartSizingFrameHook(void* _this)
|
|||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HANDLE start_CreateFileW(LPCWSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile)
|
||||||
|
{
|
||||||
|
WCHAR path[MAX_PATH];
|
||||||
|
GetWindowsDirectoryW(path, MAX_PATH);
|
||||||
|
wcscat_s(path, MAX_PATH, L"\\SystemResources\\Windows.UI.ShellCommon\\Windows.UI.ShellCommon.pri");
|
||||||
|
if (!_wcsicmp(path, lpFileName))
|
||||||
|
{
|
||||||
|
GetWindowsDirectoryW(path, MAX_PATH);
|
||||||
|
wcscat_s(path, MAX_PATH, L"\\SystemApps\\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\\Windows.UI.ShellCommon.pri");
|
||||||
|
return CreateFileW(path, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile);
|
||||||
|
}
|
||||||
|
GetWindowsDirectoryW(path, MAX_PATH);
|
||||||
|
wcscat_s(path, MAX_PATH, L"\\SystemResources\\Windows.UI.ShellCommon\\pris");
|
||||||
|
int len = wcslen(path);
|
||||||
|
if (!_wcsnicmp(path, lpFileName, len))
|
||||||
|
{
|
||||||
|
GetWindowsDirectoryW(path, MAX_PATH);
|
||||||
|
wcscat_s(path, MAX_PATH, L"\\SystemApps\\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\\pris2");
|
||||||
|
wcscat_s(path, MAX_PATH, lpFileName + len);
|
||||||
|
return CreateFileW(path, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile);
|
||||||
|
}
|
||||||
|
return CreateFileW(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL start_GetFileAttributesExW(LPCWSTR lpFileName, GET_FILEEX_INFO_LEVELS fInfoLevelId, LPVOID lpFileInformation)
|
||||||
|
{
|
||||||
|
WCHAR path[MAX_PATH];
|
||||||
|
GetWindowsDirectoryW(path, MAX_PATH);
|
||||||
|
wcscat_s(path, MAX_PATH, L"\\SystemResources\\Windows.UI.ShellCommon\\Windows.UI.ShellCommon.pri");
|
||||||
|
if (!_wcsicmp(path, lpFileName))
|
||||||
|
{
|
||||||
|
GetWindowsDirectoryW(path, MAX_PATH);
|
||||||
|
wcscat_s(path, MAX_PATH, L"\\SystemApps\\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\\Windows.UI.ShellCommon.pri");
|
||||||
|
return GetFileAttributesExW(path, fInfoLevelId, lpFileInformation);
|
||||||
|
}
|
||||||
|
GetWindowsDirectoryW(path, MAX_PATH);
|
||||||
|
wcscat_s(path, MAX_PATH, L"\\SystemResources\\Windows.UI.ShellCommon\\pris");
|
||||||
|
int len = wcslen(path);
|
||||||
|
if (!_wcsnicmp(path, lpFileName, len))
|
||||||
|
{
|
||||||
|
GetWindowsDirectoryW(path, MAX_PATH);
|
||||||
|
wcscat_s(path, MAX_PATH, L"\\SystemApps\\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\\pris2");
|
||||||
|
wcscat_s(path, MAX_PATH, lpFileName + len);
|
||||||
|
return GetFileAttributesExW(path, fInfoLevelId, lpFileInformation);
|
||||||
|
}
|
||||||
|
return GetFileAttributesExW(lpFileName, fInfoLevelId, lpFileInformation);
|
||||||
|
}
|
||||||
|
|
||||||
|
HANDLE start_FindFirstFileW(LPCWSTR lpFileName, LPWIN32_FIND_DATAW lpFindFileData)
|
||||||
|
{
|
||||||
|
WCHAR path[MAX_PATH];
|
||||||
|
GetWindowsDirectoryW(path, MAX_PATH);
|
||||||
|
wcscat_s(path, MAX_PATH, L"\\SystemResources\\Windows.UI.ShellCommon\\Windows.UI.ShellCommon.pri");
|
||||||
|
if (!_wcsicmp(path, lpFileName))
|
||||||
|
{
|
||||||
|
GetWindowsDirectoryW(path, MAX_PATH);
|
||||||
|
wcscat_s(path, MAX_PATH, L"\\SystemApps\\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\\Windows.UI.ShellCommon.pri");
|
||||||
|
return FindFirstFileW(path, lpFindFileData);
|
||||||
|
}
|
||||||
|
GetWindowsDirectoryW(path, MAX_PATH);
|
||||||
|
wcscat_s(path, MAX_PATH, L"\\SystemResources\\Windows.UI.ShellCommon\\pris");
|
||||||
|
int len = wcslen(path);
|
||||||
|
if (!_wcsnicmp(path, lpFileName, len))
|
||||||
|
{
|
||||||
|
GetWindowsDirectoryW(path, MAX_PATH);
|
||||||
|
wcscat_s(path, MAX_PATH, L"\\SystemApps\\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\\pris2");
|
||||||
|
wcscat_s(path, MAX_PATH, lpFileName + len);
|
||||||
|
return FindFirstFileW(path, lpFindFileData);
|
||||||
|
}
|
||||||
|
return FindFirstFileW(lpFileName, lpFindFileData);
|
||||||
|
}
|
||||||
|
|
||||||
|
LSTATUS start_RegGetValueW(HKEY hkey, LPCWSTR lpSubKey, LPCWSTR lpValue, DWORD dwFlags, LPDWORD pdwType, PVOID pvData, LPDWORD pcbData)
|
||||||
|
{
|
||||||
|
if (hkey == HKEY_LOCAL_MACHINE && !_wcsicmp(lpSubKey, L"Software\\Microsoft\\Windows\\CurrentVersion\\Mrt\\_Merged") && !_wcsicmp(lpValue, L"ShouldMergeInProc"))
|
||||||
|
{
|
||||||
|
*(DWORD*)pvData = 1;
|
||||||
|
return ERROR_SUCCESS;
|
||||||
|
}
|
||||||
|
return RegGetValueW(hkey, lpSubKey, lpValue, dwFlags, pdwType, pvData, pcbData);
|
||||||
|
}
|
||||||
|
|
||||||
|
int start_SetWindowRgn(HWND hWnd, HRGN hRgn, BOOL bRedraw)
|
||||||
|
{
|
||||||
|
DWORD dwThisPID = GetCurrentProcessId(), dwForeignPID = 0;
|
||||||
|
GetWindowThreadProcessId(GetForegroundWindow(), &dwForeignPID);
|
||||||
|
ShowWindow(hWnd, (!hRgn && dwThisPID != dwForeignPID) ? SW_HIDE : SW_SHOW);
|
||||||
|
return SetWindowRgn(hWnd, hRgn, bRedraw);
|
||||||
|
}
|
||||||
|
|
||||||
|
HMODULE start_LoadLibraryExW(LPCWSTR lpLibFileName, HANDLE hFile, DWORD dwFlags)
|
||||||
|
{
|
||||||
|
WCHAR path[MAX_PATH];
|
||||||
|
GetSystemDirectoryW(path, MAX_PATH);
|
||||||
|
wcscat_s(path, MAX_PATH, L"\\StartTileData.dll");
|
||||||
|
if (!_wcsicmp(path, lpLibFileName))
|
||||||
|
{
|
||||||
|
GetWindowsDirectoryW(path, MAX_PATH);
|
||||||
|
wcscat_s(path, MAX_PATH, L"\\SystemApps\\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\\StartTileDataLegacy.dll");
|
||||||
|
return LoadLibraryExW(path, hFile, dwFlags);
|
||||||
|
}
|
||||||
|
return LoadLibraryExW(lpLibFileName, hFile, dwFlags);
|
||||||
|
}
|
||||||
|
|
||||||
int WINAPI SetupMessage(HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType)
|
int WINAPI SetupMessage(HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
@ -9407,9 +9554,33 @@ void InjectStartMenu()
|
|||||||
#ifdef _WIN64
|
#ifdef _WIN64
|
||||||
funchook = funchook_create();
|
funchook = funchook_create();
|
||||||
|
|
||||||
|
LoadLibraryW(L"StartDocked.dll");
|
||||||
|
HANDLE hStartDocked = GetModuleHandleW(L"StartDocked.dll");
|
||||||
|
LoadLibraryW(L"StartUI.dll");
|
||||||
|
HANDLE hStartUI = GetModuleHandleW(L"StartUI.dll");
|
||||||
|
|
||||||
StartMenu_LoadSettings(FALSE);
|
StartMenu_LoadSettings(FALSE);
|
||||||
|
|
||||||
Setting* settings = calloc(3, sizeof(Setting));
|
if (StartMenu_ShowClassicMode)
|
||||||
|
{
|
||||||
|
// Fixes hang when Start menu closes
|
||||||
|
VnPatchDelayIAT(hStartUI, "ext-ms-win-ntuser-draw-l1-1-0.dll", "SetWindowRgn", start_SetWindowRgn);
|
||||||
|
|
||||||
|
// Redirects to StartTileData from 22000.51 which works with the legacy menu
|
||||||
|
LoadLibraryW(L"combase.dll");
|
||||||
|
HANDLE hCombase = GetModuleHandleW(L"combase.dll");
|
||||||
|
VnPatchIAT(hCombase, "api-ms-win-core-libraryloader-l1-2-0.dll", "LoadLibraryExW", start_LoadLibraryExW);
|
||||||
|
|
||||||
|
// Redirects to pri files from 22000.51 which work with the legacy menu
|
||||||
|
LoadLibraryW(L"MrmCoreR.dll");
|
||||||
|
HANDLE hMrmCoreR = GetModuleHandleW(L"MrmCoreR.dll");
|
||||||
|
VnPatchIAT(hMrmCoreR, "api-ms-win-core-file-l1-1-0.dll", "CreateFileW", start_CreateFileW);
|
||||||
|
VnPatchIAT(hMrmCoreR, "api-ms-win-core-file-l1-1-0.dll", "GetFileAttributesExW", start_GetFileAttributesExW);
|
||||||
|
VnPatchIAT(hMrmCoreR, "api-ms-win-core-file-l1-1-0.dll", "FindFirstFileW", start_FindFirstFileW);
|
||||||
|
VnPatchIAT(hMrmCoreR, "api-ms-win-core-registry-l1-1-0.dll", "RegGetValueW", start_RegGetValueW);
|
||||||
|
}
|
||||||
|
|
||||||
|
Setting* settings = calloc(4, sizeof(Setting));
|
||||||
settings[0].callback = NULL;
|
settings[0].callback = NULL;
|
||||||
settings[0].data = NULL;
|
settings[0].data = NULL;
|
||||||
settings[0].hEvent = CreateEventW(NULL, FALSE, FALSE, NULL);
|
settings[0].hEvent = CreateEventW(NULL, FALSE, FALSE, NULL);
|
||||||
@ -9428,10 +9599,16 @@ void InjectStartMenu()
|
|||||||
settings[2].hKey = NULL;
|
settings[2].hKey = NULL;
|
||||||
wcscpy_s(settings[2].name, MAX_PATH, TEXT(REGPATH_STARTMENU));
|
wcscpy_s(settings[2].name, MAX_PATH, TEXT(REGPATH_STARTMENU));
|
||||||
settings[2].origin = HKEY_CURRENT_USER;
|
settings[2].origin = HKEY_CURRENT_USER;
|
||||||
|
settings[3].callback = StartMenu_LoadSettings;
|
||||||
|
settings[3].data = TRUE;
|
||||||
|
settings[3].hEvent = NULL;
|
||||||
|
settings[3].hKey = NULL;
|
||||||
|
wcscpy_s(settings[3].name, MAX_PATH, L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced");
|
||||||
|
settings[3].origin = HKEY_CURRENT_USER;
|
||||||
|
|
||||||
SettingsChangeParameters* params = calloc(1, sizeof(SettingsChangeParameters));
|
SettingsChangeParameters* params = calloc(1, sizeof(SettingsChangeParameters));
|
||||||
params->settings = settings;
|
params->settings = settings;
|
||||||
params->size = 3;
|
params->size = 4;
|
||||||
CreateThread(
|
CreateThread(
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
@ -9442,8 +9619,7 @@ void InjectStartMenu()
|
|||||||
);
|
);
|
||||||
|
|
||||||
int rv;
|
int rv;
|
||||||
|
DWORD dwVal0 = 0x62254, dwVal1 = 0x188EBC, dwVal2 = 0x187120, dwVal3 = 0x3C10, dwVal4 = 0;
|
||||||
DWORD dwVal0 = 0x62254, dwVal1 = 0x188EBC, dwVal2 = 0x187120, dwVal3 = 0x3C10, dwVal4 = 0x160AEC;
|
|
||||||
|
|
||||||
HMODULE hModule = LoadLibraryW(L"Shlwapi.dll");
|
HMODULE hModule = LoadLibraryW(L"Shlwapi.dll");
|
||||||
if (hModule)
|
if (hModule)
|
||||||
@ -9453,7 +9629,6 @@ void InjectStartMenu()
|
|||||||
|
|
||||||
if (SHRegGetValueFromHKCUHKLMFunc)
|
if (SHRegGetValueFromHKCUHKLMFunc)
|
||||||
{
|
{
|
||||||
|
|
||||||
dwSize = sizeof(DWORD);
|
dwSize = sizeof(DWORD);
|
||||||
SHRegGetValueFromHKCUHKLMFunc(
|
SHRegGetValueFromHKCUHKLMFunc(
|
||||||
TEXT(REGPATH_STARTMENU) TEXT("\\") TEXT(STARTDOCKED_SB_NAME),
|
TEXT(REGPATH_STARTMENU) TEXT("\\") TEXT(STARTDOCKED_SB_NAME),
|
||||||
@ -9488,20 +9663,17 @@ void InjectStartMenu()
|
|||||||
(LPDWORD)(&dwSize)
|
(LPDWORD)(&dwSize)
|
||||||
);
|
);
|
||||||
SHRegGetValueFromHKCUHKLMFunc(
|
SHRegGetValueFromHKCUHKLMFunc(
|
||||||
TEXT(REGPATH_STARTMENU) TEXT("\\") TEXT(STARTDOCKED_SB_NAME),
|
TEXT(REGPATH_STARTMENU) TEXT("\\") TEXT(STARTUI_SB_NAME),
|
||||||
TEXT(STARTDOCKED_SB_4),
|
TEXT(STARTUI_SB_0),
|
||||||
SRRF_RT_REG_DWORD,
|
SRRF_RT_REG_DWORD,
|
||||||
NULL,
|
NULL,
|
||||||
&dwVal4,
|
&dwVal4,
|
||||||
(LPDWORD)(&dwSize)
|
(LPDWORD)(&dwSize)
|
||||||
);
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
FreeLibrary(hModule);
|
FreeLibrary(hModule);
|
||||||
}
|
}
|
||||||
|
|
||||||
LoadLibraryW(L"StartDocked.dll");
|
|
||||||
HANDLE hStartDocked = GetModuleHandle(L"StartDocked.dll");
|
|
||||||
if (dwVal1 && dwVal1 != 0xFFFFFFFF)
|
if (dwVal1 && dwVal1 != 0xFFFFFFFF)
|
||||||
{
|
{
|
||||||
StartDocked_LauncherFrame_ShowAllAppsFunc = (INT64(*)(void*))
|
StartDocked_LauncherFrame_ShowAllAppsFunc = (INT64(*)(void*))
|
||||||
@ -9539,18 +9711,18 @@ void InjectStartMenu()
|
|||||||
}
|
}
|
||||||
if (dwVal4 && dwVal4 != 0xFFFFFFFF)
|
if (dwVal4 && dwVal4 != 0xFFFFFFFF)
|
||||||
{
|
{
|
||||||
/*StartDocked_StartSizingFrame_StartSizingFrameFunc = (INT64(*)(void*, INT64, void*))
|
StartUI_SystemListPolicyProvider_GetMaximumFrequentAppsFunc = (INT64(*)(void*, INT64, void*))
|
||||||
((uintptr_t)hStartDocked + dwVal4);
|
((uintptr_t)hStartUI + dwVal4);
|
||||||
rv = funchook_prepare(
|
rv = funchook_prepare(
|
||||||
funchook,
|
funchook,
|
||||||
(void**)&StartDocked_StartSizingFrame_StartSizingFrameFunc,
|
(void**)&StartUI_SystemListPolicyProvider_GetMaximumFrequentAppsFunc,
|
||||||
StartDocked_StartSizingFrame_StartSizingFrameHook
|
StartUI_SystemListPolicyProvider_GetMaximumFrequentAppsHook
|
||||||
);
|
);
|
||||||
if (rv != 0)
|
if (rv != 0)
|
||||||
{
|
{
|
||||||
FreeLibraryAndExitThread(hModule, rv);
|
FreeLibraryAndExitThread(hModule, rv);
|
||||||
return rv;
|
return rv;
|
||||||
}*/
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
rv = funchook_install(funchook, 0);
|
rv = funchook_install(funchook, 0);
|
||||||
|
@ -18,6 +18,9 @@ const char* startdocked_SN[STARTDOCKED_SB_CNT] = {
|
|||||||
STARTDOCKED_SB_3,
|
STARTDOCKED_SB_3,
|
||||||
STARTDOCKED_SB_4
|
STARTDOCKED_SB_4
|
||||||
};
|
};
|
||||||
|
const char* startui_SN[STARTUI_SB_CNT] = {
|
||||||
|
STARTUI_SB_0
|
||||||
|
};
|
||||||
|
|
||||||
const wchar_t DownloadSymbolsXML[] =
|
const wchar_t DownloadSymbolsXML[] =
|
||||||
L"<toast scenario=\"reminder\" "
|
L"<toast scenario=\"reminder\" "
|
||||||
@ -527,6 +530,112 @@ DWORD DownloadSymbols(DownloadSymbolsParams* params)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (IsWindows11())
|
||||||
|
{
|
||||||
|
ZeroMemory(hash, sizeof(WCHAR) * 100);
|
||||||
|
ZeroMemory(wszPath, sizeof(WCHAR) * 100);
|
||||||
|
char startui_sb_dll[MAX_PATH];
|
||||||
|
ZeroMemory(
|
||||||
|
startui_sb_dll,
|
||||||
|
(MAX_PATH) * sizeof(char)
|
||||||
|
);
|
||||||
|
GetWindowsDirectoryA(
|
||||||
|
startui_sb_dll,
|
||||||
|
MAX_PATH
|
||||||
|
);
|
||||||
|
strcat_s(
|
||||||
|
startui_sb_dll,
|
||||||
|
MAX_PATH,
|
||||||
|
"\\SystemApps\\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\\"
|
||||||
|
);
|
||||||
|
strcat_s(
|
||||||
|
startui_sb_dll,
|
||||||
|
MAX_PATH,
|
||||||
|
STARTUI_SB_NAME
|
||||||
|
);
|
||||||
|
strcat_s(
|
||||||
|
startui_sb_dll,
|
||||||
|
MAX_PATH,
|
||||||
|
".dll"
|
||||||
|
);
|
||||||
|
GetWindowsDirectoryW(wszPath, MAX_PATH);
|
||||||
|
wcscat_s(wszPath, MAX_PATH, L"\\SystemApps\\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\\" _T(STARTUI_SB_NAME) L".dll");
|
||||||
|
ComputeFileHash(wszPath, hash, 100);
|
||||||
|
printf("[Symbols] Downloading symbols for \"%s\" (\"%s\")...\n", startui_sb_dll, hash);
|
||||||
|
if (VnDownloadSymbols(
|
||||||
|
NULL,
|
||||||
|
startui_sb_dll,
|
||||||
|
szSettingsPath,
|
||||||
|
MAX_PATH
|
||||||
|
))
|
||||||
|
{
|
||||||
|
printf("[Symbols] Symbols for \"%s\" are not available - unable to download.\n", startui_sb_dll);
|
||||||
|
printf("[Symbols] Please refer to \"https://github.com/valinet/ExplorerPatcher/wiki/Symbols\" for more information.\n");
|
||||||
|
if (params->bVerbose)
|
||||||
|
{
|
||||||
|
FreeLibraryAndExitThread(
|
||||||
|
hModule,
|
||||||
|
6
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return 6;
|
||||||
|
}
|
||||||
|
printf("[Symbols] Reading symbols...\n");
|
||||||
|
if (VnGetSymbols(
|
||||||
|
szSettingsPath,
|
||||||
|
symbols_PTRS.startui_PTRS,
|
||||||
|
startui_SN,
|
||||||
|
STARTUI_SB_CNT
|
||||||
|
))
|
||||||
|
{
|
||||||
|
printf("[Symbols] Failure in reading symbols for \"%s\".\n", startui_sb_dll);
|
||||||
|
if (params->bVerbose)
|
||||||
|
{
|
||||||
|
FreeLibraryAndExitThread(
|
||||||
|
hModule,
|
||||||
|
7
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return 7;
|
||||||
|
}
|
||||||
|
RegCreateKeyExW(
|
||||||
|
HKEY_CURRENT_USER,
|
||||||
|
TEXT(REGPATH_STARTMENU) L"\\" TEXT(STARTUI_SB_NAME),
|
||||||
|
0,
|
||||||
|
NULL,
|
||||||
|
REG_OPTION_NON_VOLATILE,
|
||||||
|
KEY_WRITE,
|
||||||
|
NULL,
|
||||||
|
&hKey,
|
||||||
|
&dwDisposition
|
||||||
|
);
|
||||||
|
if (!hKey || hKey == INVALID_HANDLE_VALUE)
|
||||||
|
{
|
||||||
|
if (params->bVerbose)
|
||||||
|
{
|
||||||
|
FreeLibraryAndExitThread(
|
||||||
|
hModule,
|
||||||
|
8
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return 8;
|
||||||
|
}
|
||||||
|
RegSetValueExW(
|
||||||
|
hKey,
|
||||||
|
TEXT(STARTUI_SB_0),
|
||||||
|
0,
|
||||||
|
REG_DWORD,
|
||||||
|
&(symbols_PTRS.startui_PTRS[0]),
|
||||||
|
sizeof(DWORD)
|
||||||
|
);
|
||||||
|
if (hKey) RegCloseKey(hKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
RegCreateKeyExW(
|
RegCreateKeyExW(
|
||||||
HKEY_CURRENT_USER,
|
HKEY_CURRENT_USER,
|
||||||
@ -796,7 +905,43 @@ BOOL LoadSymbols(symbols_addr* symbols_PTRS, HMODULE hModule)
|
|||||||
RegCloseKey(hKey);
|
RegCloseKey(hKey);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
bIsStartHardcoded = FALSE;
|
||||||
|
GetWindowsDirectoryW(wszPath, MAX_PATH);
|
||||||
|
wcscat_s(wszPath, MAX_PATH, L"\\SystemApps\\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\\" TEXT(STARTUI_SB_NAME) L".dll");
|
||||||
|
ComputeFileHash(wszPath, hash, 100);
|
||||||
|
if (!_stricmp(hash, "2768cc6cc7f686b2aa084cb5c8cce65d")) // 493
|
||||||
|
{
|
||||||
|
symbols_PTRS->startui_PTRS[0] = 0x37180;
|
||||||
|
bIsStartHardcoded = TRUE;
|
||||||
|
}
|
||||||
|
if (bIsStartHardcoded)
|
||||||
|
{
|
||||||
|
printf("[Symbols] Identified known \"" STARTUI_SB_NAME ".dll\" with hash %s.\n", hash);
|
||||||
|
|
||||||
|
RegCreateKeyExW(
|
||||||
|
HKEY_CURRENT_USER,
|
||||||
|
TEXT(REGPATH_STARTMENU) L"\\" TEXT(STARTUI_SB_NAME),
|
||||||
|
0,
|
||||||
|
NULL,
|
||||||
|
REG_OPTION_NON_VOLATILE,
|
||||||
|
KEY_WRITE,
|
||||||
|
NULL,
|
||||||
|
&hKey,
|
||||||
|
&dwDisposition
|
||||||
|
);
|
||||||
|
if (hKey)
|
||||||
|
{
|
||||||
|
RegSetValueExW(
|
||||||
|
hKey,
|
||||||
|
TEXT(STARTUI_SB_0),
|
||||||
|
0,
|
||||||
|
REG_DWORD,
|
||||||
|
&(symbols_PTRS->startui_PTRS[0]),
|
||||||
|
sizeof(DWORD)
|
||||||
|
);
|
||||||
|
RegCloseKey(hKey);
|
||||||
|
}
|
||||||
|
}
|
||||||
if (!bIsTwinuiPcshellHardcoded || !bIsStartHardcoded)
|
if (!bIsTwinuiPcshellHardcoded || !bIsStartHardcoded)
|
||||||
{
|
{
|
||||||
RegCreateKeyExW(
|
RegCreateKeyExW(
|
||||||
@ -939,6 +1084,30 @@ BOOL LoadSymbols(symbols_addr* symbols_PTRS, HMODULE hModule)
|
|||||||
);
|
);
|
||||||
if (hKey) RegCloseKey(hKey);
|
if (hKey) RegCloseKey(hKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (IsWindows11())
|
||||||
|
{
|
||||||
|
RegCreateKeyExW(
|
||||||
|
HKEY_CURRENT_USER,
|
||||||
|
TEXT(REGPATH_STARTMENU) L"\\" TEXT(STARTUI_SB_NAME),
|
||||||
|
0,
|
||||||
|
NULL,
|
||||||
|
REG_OPTION_NON_VOLATILE,
|
||||||
|
KEY_READ,
|
||||||
|
NULL,
|
||||||
|
&hKey,
|
||||||
|
&dwDisposition
|
||||||
|
);
|
||||||
|
RegQueryValueExW(
|
||||||
|
hKey,
|
||||||
|
TEXT(STARTUI_SB_0),
|
||||||
|
0,
|
||||||
|
NULL,
|
||||||
|
&(symbols_PTRS->startui_PTRS[0]),
|
||||||
|
&dwSize
|
||||||
|
);
|
||||||
|
if (hKey) RegCloseKey(hKey);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL bNeedToDownload = FALSE;
|
BOOL bNeedToDownload = FALSE;
|
||||||
|
@ -27,11 +27,15 @@
|
|||||||
#define STARTDOCKED_SB_3 "StartDocked::SystemListPolicyProvider::GetMaximumFrequentApps"
|
#define STARTDOCKED_SB_3 "StartDocked::SystemListPolicyProvider::GetMaximumFrequentApps"
|
||||||
#define STARTDOCKED_SB_4 "StartDocked::StartSizingFrame::StartSizingFrame"
|
#define STARTDOCKED_SB_4 "StartDocked::StartSizingFrame::StartSizingFrame"
|
||||||
#define STARTDOCKED_SB_CNT 5
|
#define STARTDOCKED_SB_CNT 5
|
||||||
|
#define STARTUI_SB_NAME "StartUI"
|
||||||
|
#define STARTUI_SB_0 "StartUI::SystemListPolicyProvider::GetMaximumFrequentApps"
|
||||||
|
#define STARTUI_SB_CNT 1
|
||||||
#pragma pack(push, 1)
|
#pragma pack(push, 1)
|
||||||
typedef struct symbols_addr
|
typedef struct symbols_addr
|
||||||
{
|
{
|
||||||
DWORD twinui_pcshell_PTRS[TWINUI_PCSHELL_SB_CNT];
|
DWORD twinui_pcshell_PTRS[TWINUI_PCSHELL_SB_CNT];
|
||||||
DWORD startdocked_PTRS[STARTDOCKED_SB_CNT];
|
DWORD startdocked_PTRS[STARTDOCKED_SB_CNT];
|
||||||
|
DWORD startui_PTRS[STARTUI_SB_CNT];
|
||||||
} symbols_addr;
|
} symbols_addr;
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
|
||||||
|
@ -1288,7 +1288,7 @@ BOOL DownloadAndInstallWebView2Runtime()
|
|||||||
BOOL bOK = FALSE;
|
BOOL bOK = FALSE;
|
||||||
HINTERNET hInternet = NULL;
|
HINTERNET hInternet = NULL;
|
||||||
if (hInternet = InternetOpenA(
|
if (hInternet = InternetOpenA(
|
||||||
L"ExplorerPatcher",
|
"ExplorerPatcher",
|
||||||
INTERNET_OPEN_TYPE_PRECONFIG,
|
INTERNET_OPEN_TYPE_PRECONFIG,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
@ -1369,3 +1369,97 @@ BOOL DownloadAndInstallWebView2Runtime()
|
|||||||
}
|
}
|
||||||
return bOK;
|
return bOK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BOOL DownloadFile(LPCWSTR wszURL, DWORD dwSize, LPCWSTR wszPath)
|
||||||
|
{
|
||||||
|
BOOL bOK = FALSE;
|
||||||
|
HINTERNET hInternet = NULL;
|
||||||
|
if (hInternet = InternetOpenW(
|
||||||
|
L"ExplorerPatcher",
|
||||||
|
INTERNET_OPEN_TYPE_PRECONFIG,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
0
|
||||||
|
))
|
||||||
|
{
|
||||||
|
HINTERNET hConnect = InternetOpenUrlW(
|
||||||
|
hInternet,
|
||||||
|
wszURL,
|
||||||
|
NULL,
|
||||||
|
0,
|
||||||
|
INTERNET_FLAG_RAW_DATA |
|
||||||
|
INTERNET_FLAG_RELOAD |
|
||||||
|
INTERNET_FLAG_RESYNCHRONIZE |
|
||||||
|
INTERNET_FLAG_NO_COOKIES |
|
||||||
|
INTERNET_FLAG_NO_UI |
|
||||||
|
INTERNET_FLAG_NO_CACHE_WRITE |
|
||||||
|
INTERNET_FLAG_DONT_CACHE,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
if (hConnect)
|
||||||
|
{
|
||||||
|
char* exe_buffer = NULL;
|
||||||
|
DWORD dwRead = dwSize;
|
||||||
|
exe_buffer = calloc(dwSize, sizeof(char));
|
||||||
|
if (exe_buffer)
|
||||||
|
{
|
||||||
|
BOOL bRet = FALSE;
|
||||||
|
if (bRet = InternetReadFile(
|
||||||
|
hConnect,
|
||||||
|
exe_buffer,
|
||||||
|
dwSize - 1,
|
||||||
|
&dwRead
|
||||||
|
))
|
||||||
|
{
|
||||||
|
FILE* f = NULL;
|
||||||
|
_wfopen_s(&f, wszPath, L"wb");
|
||||||
|
if (f)
|
||||||
|
{
|
||||||
|
fwrite(exe_buffer, 1, dwRead, f);
|
||||||
|
fclose(f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
free(exe_buffer);
|
||||||
|
}
|
||||||
|
InternetCloseHandle(hConnect);
|
||||||
|
}
|
||||||
|
InternetCloseHandle(hInternet);
|
||||||
|
}
|
||||||
|
return bOK;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL IsConnectedToInternet()
|
||||||
|
{
|
||||||
|
BOOL connectedStatus = FALSE;
|
||||||
|
HRESULT hr = S_FALSE;
|
||||||
|
|
||||||
|
hr = CoInitialize(NULL);
|
||||||
|
if (SUCCEEDED(hr))
|
||||||
|
{
|
||||||
|
INetworkListManager* pNetworkListManager;
|
||||||
|
hr = CoCreateInstance(&CLSID_NetworkListManager, NULL, CLSCTX_ALL, &IID_NetworkListManager, (LPVOID*)&pNetworkListManager);
|
||||||
|
if (SUCCEEDED(hr))
|
||||||
|
{
|
||||||
|
NLM_CONNECTIVITY nlmConnectivity = NLM_CONNECTIVITY_DISCONNECTED;
|
||||||
|
VARIANT_BOOL isConnected = VARIANT_FALSE;
|
||||||
|
hr = pNetworkListManager->lpVtbl->get_IsConnectedToInternet(pNetworkListManager, &isConnected);
|
||||||
|
if (SUCCEEDED(hr))
|
||||||
|
{
|
||||||
|
if (isConnected == VARIANT_TRUE)
|
||||||
|
connectedStatus = TRUE;
|
||||||
|
else
|
||||||
|
connectedStatus = FALSE;
|
||||||
|
}
|
||||||
|
if (isConnected == VARIANT_FALSE && SUCCEEDED(pNetworkListManager->lpVtbl->GetConnectivity(pNetworkListManager, &nlmConnectivity)))
|
||||||
|
{
|
||||||
|
if (nlmConnectivity & (NLM_CONNECTIVITY_IPV4_LOCALNETWORK | NLM_CONNECTIVITY_IPV4_SUBNET | NLM_CONNECTIVITY_IPV6_LOCALNETWORK | NLM_CONNECTIVITY_IPV6_SUBNET))
|
||||||
|
{
|
||||||
|
connectedStatus = 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pNetworkListManager->lpVtbl->Release(pNetworkListManager);
|
||||||
|
}
|
||||||
|
CoUninitialize();
|
||||||
|
}
|
||||||
|
return connectedStatus;
|
||||||
|
}
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
#include "queryversion.h"
|
#include "queryversion.h"
|
||||||
#pragma comment(lib, "Psapi.lib")
|
#pragma comment(lib, "Psapi.lib")
|
||||||
#include <activscp.h>
|
#include <activscp.h>
|
||||||
|
#include <netlistmgr.h>
|
||||||
#include <valinet/utility/osversion.h>
|
#include <valinet/utility/osversion.h>
|
||||||
|
|
||||||
#include "def.h"
|
#include "def.h"
|
||||||
@ -60,6 +61,12 @@ DEFINE_GUID(CLSID_VBScript,
|
|||||||
0x00, 0xAA, 0x00, 0x4A, 0x55, 0xE8
|
0x00, 0xAA, 0x00, 0x4A, 0x55, 0xE8
|
||||||
);
|
);
|
||||||
|
|
||||||
|
DEFINE_GUID(CLSID_NetworkListManager,
|
||||||
|
0xDCB00C01, 0x570F, 0x4A9B, 0x8D, 0x69, 0x19, 0x9F, 0xDB, 0xA5, 0x72, 0x3B);
|
||||||
|
|
||||||
|
DEFINE_GUID(IID_NetworkListManager,
|
||||||
|
0xDCB00000, 0x570F, 0x4A9B, 0x8D, 0x69, 0x19, 0x9F, 0xDB, 0xA5, 0x72, 0x3B);
|
||||||
|
|
||||||
typedef struct _StuckRectsData
|
typedef struct _StuckRectsData
|
||||||
{
|
{
|
||||||
int pvData[6];
|
int pvData[6];
|
||||||
@ -575,4 +582,8 @@ inline BOOL IsWindows11()
|
|||||||
}
|
}
|
||||||
|
|
||||||
BOOL DownloadAndInstallWebView2Runtime();
|
BOOL DownloadAndInstallWebView2Runtime();
|
||||||
|
|
||||||
|
BOOL DownloadFile(LPCWSTR wszURL, DWORD dwSize, LPCWSTR wszPath);
|
||||||
|
|
||||||
|
BOOL IsConnectedToInternet();
|
||||||
#endif
|
#endif
|
||||||
|
@ -8,6 +8,38 @@ processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
|
|||||||
#include "resource.h"
|
#include "resource.h"
|
||||||
#include "../ExplorerPatcher/utility.h"
|
#include "../ExplorerPatcher/utility.h"
|
||||||
|
|
||||||
|
BOOL ShouldDownloadOrDelete(BOOL bInstall, HINSTANCE hInstance, LPCWSTR wszPath, LPCSTR chash)
|
||||||
|
{
|
||||||
|
if (FileExistsW(wszPath))
|
||||||
|
{
|
||||||
|
WCHAR hash[100];
|
||||||
|
ZeroMemory(hash, sizeof(WCHAR) * 100);
|
||||||
|
ComputeFileHash(wszPath, hash, 100);
|
||||||
|
if (_stricmp(hash, chash))
|
||||||
|
{
|
||||||
|
if (bInstall)
|
||||||
|
{
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (!bInstall)
|
||||||
|
{
|
||||||
|
return InstallResource(FALSE, hInstance, 0, wszPath); // Delete
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (bInstall)
|
||||||
|
{
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
BOOL SetupShortcut(BOOL bInstall, WCHAR* wszPath, WCHAR* wszArguments)
|
BOOL SetupShortcut(BOOL bInstall, WCHAR* wszPath, WCHAR* wszArguments)
|
||||||
{
|
{
|
||||||
WCHAR wszTitle[MAX_PATH];
|
WCHAR wszTitle[MAX_PATH];
|
||||||
@ -815,6 +847,74 @@ int WINAPI wWinMain(
|
|||||||
bOk = GetWindowsDirectoryW(wszPath, MAX_PATH);
|
bOk = GetWindowsDirectoryW(wszPath, MAX_PATH);
|
||||||
}
|
}
|
||||||
if (bOk && IsWindows11())
|
if (bOk && IsWindows11())
|
||||||
|
{
|
||||||
|
wcscat_s(wszPath, MAX_PATH, L"\\SystemApps\\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\\wincorlib.dll");
|
||||||
|
bOk = InstallResource(bInstall, hInstance, IDR_EP_STARTMENU, wszPath);
|
||||||
|
}
|
||||||
|
if (bOk)
|
||||||
|
{
|
||||||
|
bOk = GetWindowsDirectoryW(wszPath, MAX_PATH);
|
||||||
|
}
|
||||||
|
if (bOk && IsWindows11())
|
||||||
|
{
|
||||||
|
wcscat_s(wszPath, MAX_PATH, L"\\SystemApps\\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\\wincorlib_orig.dll");
|
||||||
|
bOk = InstallResource(FALSE, hInstance, 0, wszPath); // Delete
|
||||||
|
}
|
||||||
|
if (bOk && IsWindows11())
|
||||||
|
{
|
||||||
|
if (bInstall)
|
||||||
|
{
|
||||||
|
WCHAR wszOrigPath[MAX_PATH];
|
||||||
|
GetSystemDirectoryW(wszOrigPath, MAX_PATH);
|
||||||
|
wcscat_s(wszOrigPath, MAX_PATH, L"\\wincorlib.dll");
|
||||||
|
bOk = CreateSymbolicLinkW(wszPath, wszOrigPath, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (bOk && IsWindows11())
|
||||||
|
{
|
||||||
|
GetWindowsDirectoryW(wszPath, MAX_PATH);
|
||||||
|
wcscat_s(wszPath, MAX_PATH, L"\\SystemApps\\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\\StartTileDataLegacy.dll");
|
||||||
|
if (ShouldDownloadOrDelete(bInstall, hInstance, wszPath, "aa36a082e3b33297b6930eea6e98f8cf") && IsConnectedToInternet() == TRUE)
|
||||||
|
{
|
||||||
|
DownloadFile(L"https://github.com/valinet/ExplorerPatcher/files/8136435/StartTileDataLegacy.pri.txt", 10 * 1024 * 1024, wszPath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (bOk && IsWindows11())
|
||||||
|
{
|
||||||
|
GetWindowsDirectoryW(wszPath, MAX_PATH);
|
||||||
|
wcscat_s(wszPath, MAX_PATH, L"\\SystemApps\\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\\Windows.UI.ShellCommon.pri");
|
||||||
|
if (ShouldDownloadOrDelete(bInstall, hInstance, wszPath, "95b41e1a2661501036198d8225aaa605") && IsConnectedToInternet() == TRUE)
|
||||||
|
{
|
||||||
|
DownloadFile(L"https://github.com/valinet/ExplorerPatcher/files/8136442/Windows.UI.ShellCommon.pri.txt", 10 * 1024 * 1024, wszPath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (bOk && IsWindows11())
|
||||||
|
{
|
||||||
|
GetWindowsDirectoryW(wszPath, MAX_PATH);
|
||||||
|
wcscat_s(wszPath, MAX_PATH, L"\\SystemApps\\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\\en-US");
|
||||||
|
CreateDirectoryW(wszPath, NULL);
|
||||||
|
wcscat_s(wszPath, MAX_PATH, L"\\StartTileDataLegacy.dll.mui");
|
||||||
|
if (ShouldDownloadOrDelete(bInstall, hInstance, wszPath, "0ed61f384c39116f424eb2fa6b3b9ef8") && IsConnectedToInternet() == TRUE)
|
||||||
|
{
|
||||||
|
DownloadFile(L"https://github.com/valinet/ExplorerPatcher/files/8136433/StartTileDataLegacy.dll.mui.txt", 10 * 1024 * 1024, wszPath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (bOk && IsWindows11())
|
||||||
|
{
|
||||||
|
GetWindowsDirectoryW(wszPath, MAX_PATH);
|
||||||
|
wcscat_s(wszPath, MAX_PATH, L"\\SystemApps\\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\\pris2");
|
||||||
|
CreateDirectoryW(wszPath, NULL);
|
||||||
|
wcscat_s(wszPath, MAX_PATH, L"\\Windows.UI.ShellCommon.en-US.pri");
|
||||||
|
if (ShouldDownloadOrDelete(bInstall, hInstance, wszPath, "12d7b85cd1b995698b23e5d41fab60ec") && IsConnectedToInternet() == TRUE)
|
||||||
|
{
|
||||||
|
DownloadFile(L"https://github.com/valinet/ExplorerPatcher/files/8136451/Windows.UI.ShellCommon.en-US.pri.txt", 10 * 1024 * 1024, wszPath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (bOk)
|
||||||
|
{
|
||||||
|
bOk = GetWindowsDirectoryW(wszPath, MAX_PATH);
|
||||||
|
}
|
||||||
|
if (bOk && IsWindows11())
|
||||||
{
|
{
|
||||||
wcscat_s(wszPath, MAX_PATH, L"\\SystemApps\\ShellExperienceHost_cw5n1h2txyewy\\dxgi.dll");
|
wcscat_s(wszPath, MAX_PATH, L"\\SystemApps\\ShellExperienceHost_cw5n1h2txyewy\\dxgi.dll");
|
||||||
bOk = InstallResource(bInstall, hInstance, IDR_EP_AMD64, wszPath);
|
bOk = InstallResource(bInstall, hInstance, IDR_EP_AMD64, wszPath);
|
||||||
|
@ -102,6 +102,8 @@ IDR_EP_WEATHER_STUB RCDATA "..\\build\\Release\\ep_weather_host_
|
|||||||
|
|
||||||
IDR_MS_WEBVIEW2_LOADER RCDATA "..\\build\\Release\\WebView2Loader.dll"
|
IDR_MS_WEBVIEW2_LOADER RCDATA "..\\build\\Release\\WebView2Loader.dll"
|
||||||
|
|
||||||
|
IDR_EP_STARTMENU RCDATA "..\\build\\Release\\ep_startmenu.dll"
|
||||||
|
|
||||||
#endif // English (United States) resources
|
#endif // English (United States) resources
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
@ -100,7 +100,9 @@ IDR_EP_WEATHER RCDATA "..\\build\\Debug\\ep_weather_host.dl
|
|||||||
|
|
||||||
IDR_EP_WEATHER_STUB RCDATA "..\\build\\Debug\\ep_weather_host_stub.dll"
|
IDR_EP_WEATHER_STUB RCDATA "..\\build\\Debug\\ep_weather_host_stub.dll"
|
||||||
|
|
||||||
IDR_MS_WEBVIEW2_LOADER RCDATA "..\\build\\Release\\WebView2Loader.dll"
|
IDR_MS_WEBVIEW2_LOADER RCDATA "..\\build\\Debug\\WebView2Loader.dll"
|
||||||
|
|
||||||
|
IDR_EP_STARTMENU RCDATA "..\\build\\Debug\\ep_startmenu.dll"
|
||||||
|
|
||||||
#endif // English (United States) resources
|
#endif // English (United States) resources
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -8,6 +8,8 @@
|
|||||||
#define IDR_EP_WEATHER 106
|
#define IDR_EP_WEATHER 106
|
||||||
#define IDR_EP_WEATHER_STUB 107
|
#define IDR_EP_WEATHER_STUB 107
|
||||||
#define IDR_MS_WEBVIEW2_LOADER 201
|
#define IDR_MS_WEBVIEW2_LOADER 201
|
||||||
|
#define IDR_EP_STARTMENU 108
|
||||||
|
|
||||||
|
|
||||||
// Next default values for new objects
|
// Next default values for new objects
|
||||||
//
|
//
|
||||||
|
260
ep_startmenu/ep_sm_forwards.h
Normal file
260
ep_startmenu/ep_sm_forwards.h
Normal file
@ -0,0 +1,260 @@
|
|||||||
|
#ifndef _H_EP_SM_FORWARDS
|
||||||
|
#define _H_EP_SM_FORWARDS
|
||||||
|
#pragma comment(linker, "/export:?<Dispose>@Exception@Platform@@UE$AAAXXZ=wincorlib_orig.dll.?<Dispose>@Exception@Platform@@UE$AAAXXZ,@1")
|
||||||
|
#pragma comment(linker, "/export:?<Dispose>@String@Platform@@UE$AAAXXZ=wincorlib_orig.dll.?<Dispose>@String@Platform@@UE$AAAXXZ,@2")
|
||||||
|
#pragma comment(linker, "/export:?<Dispose>@Type@Platform@@UE$AAAXXZ=wincorlib_orig.dll.?<Dispose>@Type@Platform@@UE$AAAXXZ,@3")
|
||||||
|
#pragma comment(linker, "/export:??0AccessDeniedException@Platform@@QE$AAA@PE$AAVString@1@@Z=wincorlib_orig.dll.??0AccessDeniedException@Platform@@QE$AAA@PE$AAVString@1@@Z,@4")
|
||||||
|
#pragma comment(linker, "/export:??0AccessDeniedException@Platform@@QE$AAA@XZ=wincorlib_orig.dll.??0AccessDeniedException@Platform@@QE$AAA@XZ,@5")
|
||||||
|
#pragma comment(linker, "/export:??0Attribute@Metadata@Platform@@QE$AAA@XZ=wincorlib_orig.dll.??0Attribute@Metadata@Platform@@QE$AAA@XZ,@6")
|
||||||
|
#pragma comment(linker, "/export:??0Boolean@Platform@@QEAA@_N@Z=wincorlib_orig.dll.??0Boolean@Platform@@QEAA@_N@Z,@7")
|
||||||
|
#pragma comment(linker, "/export:??0COMException@Platform@@QE$AAA@H@Z=wincorlib_orig.dll.??0COMException@Platform@@QE$AAA@H@Z,@8")
|
||||||
|
#pragma comment(linker, "/export:??0COMException@Platform@@QE$AAA@HPE$AAVString@1@@Z=wincorlib_orig.dll.??0COMException@Platform@@QE$AAA@HPE$AAVString@1@@Z,@9")
|
||||||
|
#pragma comment(linker, "/export:??0ChangedStateException@Platform@@QE$AAA@PE$AAVString@1@@Z=wincorlib_orig.dll.??0ChangedStateException@Platform@@QE$AAA@PE$AAVString@1@@Z,@10")
|
||||||
|
#pragma comment(linker, "/export:??0ChangedStateException@Platform@@QE$AAA@XZ=wincorlib_orig.dll.??0ChangedStateException@Platform@@QE$AAA@XZ,@11")
|
||||||
|
#pragma comment(linker, "/export:??0ClassNotRegisteredException@Platform@@QE$AAA@PE$AAVString@1@@Z=wincorlib_orig.dll.??0ClassNotRegisteredException@Platform@@QE$AAA@PE$AAVString@1@@Z,@12")
|
||||||
|
#pragma comment(linker, "/export:??0ClassNotRegisteredException@Platform@@QE$AAA@XZ=wincorlib_orig.dll.??0ClassNotRegisteredException@Platform@@QE$AAA@XZ,@13")
|
||||||
|
#pragma comment(linker, "/export:??0Delegate@Platform@@QE$AAA@XZ=wincorlib_orig.dll.??0Delegate@Platform@@QE$AAA@XZ,@14")
|
||||||
|
#pragma comment(linker, "/export:??0DisconnectedException@Platform@@QE$AAA@PE$AAVString@1@@Z=wincorlib_orig.dll.??0DisconnectedException@Platform@@QE$AAA@PE$AAVString@1@@Z,@15")
|
||||||
|
#pragma comment(linker, "/export:??0DisconnectedException@Platform@@QE$AAA@XZ=wincorlib_orig.dll.??0DisconnectedException@Platform@@QE$AAA@XZ,@16")
|
||||||
|
#pragma comment(linker, "/export:??0Enum@Platform@@QE$AAA@XZ=wincorlib_orig.dll.??0Enum@Platform@@QE$AAA@XZ,@17")
|
||||||
|
#pragma comment(linker, "/export:??0Exception@Platform@@QE$AAA@H@Z=wincorlib_orig.dll.??0Exception@Platform@@QE$AAA@H@Z,@18")
|
||||||
|
#pragma comment(linker, "/export:??0Exception@Platform@@QE$AAA@HPE$AAVString@1@@Z=wincorlib_orig.dll.??0Exception@Platform@@QE$AAA@HPE$AAVString@1@@Z,@19")
|
||||||
|
#pragma comment(linker, "/export:??0FailureException@Platform@@QE$AAA@PE$AAVString@1@@Z=wincorlib_orig.dll.??0FailureException@Platform@@QE$AAA@PE$AAVString@1@@Z,@20")
|
||||||
|
#pragma comment(linker, "/export:??0FailureException@Platform@@QE$AAA@XZ=wincorlib_orig.dll.??0FailureException@Platform@@QE$AAA@XZ,@21")
|
||||||
|
#pragma comment(linker, "/export:??0GridLength@Xaml@UI@Windows@@QEAA@NW4GridUnitType@123@@Z=wincorlib_orig.dll.??0GridLength@Xaml@UI@Windows@@QEAA@NW4GridUnitType@123@@Z,@22")
|
||||||
|
#pragma comment(linker, "/export:??0IntPtr@Platform@@QEAA@H@Z=wincorlib_orig.dll.??0IntPtr@Platform@@QEAA@H@Z,@23")
|
||||||
|
#pragma comment(linker, "/export:??0IntPtr@Platform@@QEAA@PEAX@Z=wincorlib_orig.dll.??0IntPtr@Platform@@QEAA@PEAX@Z,@24")
|
||||||
|
#pragma comment(linker, "/export:??0InvalidArgumentException@Platform@@QE$AAA@PE$AAVString@1@@Z=wincorlib_orig.dll.??0InvalidArgumentException@Platform@@QE$AAA@PE$AAVString@1@@Z,@25")
|
||||||
|
#pragma comment(linker, "/export:??0InvalidArgumentException@Platform@@QE$AAA@XZ=wincorlib_orig.dll.??0InvalidArgumentException@Platform@@QE$AAA@XZ,@26")
|
||||||
|
#pragma comment(linker, "/export:??0InvalidCastException@Platform@@QE$AAA@PE$AAVString@1@@Z=wincorlib_orig.dll.??0InvalidCastException@Platform@@QE$AAA@PE$AAVString@1@@Z,@27")
|
||||||
|
#pragma comment(linker, "/export:??0InvalidCastException@Platform@@QE$AAA@XZ=wincorlib_orig.dll.??0InvalidCastException@Platform@@QE$AAA@XZ,@28")
|
||||||
|
#pragma comment(linker, "/export:??0MTAThreadAttribute@Platform@@QE$AAA@XZ=wincorlib_orig.dll.??0MTAThreadAttribute@Platform@@QE$AAA@XZ,@29")
|
||||||
|
#pragma comment(linker, "/export:??0NotImplementedException@Platform@@QE$AAA@PE$AAVString@1@@Z=wincorlib_orig.dll.??0NotImplementedException@Platform@@QE$AAA@PE$AAVString@1@@Z,@30")
|
||||||
|
#pragma comment(linker, "/export:??0NotImplementedException@Platform@@QE$AAA@XZ=wincorlib_orig.dll.??0NotImplementedException@Platform@@QE$AAA@XZ,@31")
|
||||||
|
#pragma comment(linker, "/export:??0NullReferenceException@Platform@@QE$AAA@PE$AAVString@1@@Z=wincorlib_orig.dll.??0NullReferenceException@Platform@@QE$AAA@PE$AAVString@1@@Z,@32")
|
||||||
|
#pragma comment(linker, "/export:??0NullReferenceException@Platform@@QE$AAA@XZ=wincorlib_orig.dll.??0NullReferenceException@Platform@@QE$AAA@XZ,@33")
|
||||||
|
#pragma comment(linker, "/export:??0Object@Platform@@QE$AAA@XZ=wincorlib_orig.dll.??0Object@Platform@@QE$AAA@XZ,@34")
|
||||||
|
#pragma comment(linker, "/export:??0ObjectDisposedException@Platform@@QE$AAA@PE$AAVString@1@@Z=wincorlib_orig.dll.??0ObjectDisposedException@Platform@@QE$AAA@PE$AAVString@1@@Z,@35")
|
||||||
|
#pragma comment(linker, "/export:??0ObjectDisposedException@Platform@@QE$AAA@XZ=wincorlib_orig.dll.??0ObjectDisposedException@Platform@@QE$AAA@XZ,@36")
|
||||||
|
#pragma comment(linker, "/export:??0OnePhaseConstructedAttribute@CompilerServices@Runtime@Platform@@QE$AAA@XZ=wincorlib_orig.dll.??0OnePhaseConstructedAttribute@CompilerServices@Runtime@Platform@@QE$AAA@XZ,@37")
|
||||||
|
#pragma comment(linker, "/export:??0OperationCanceledException@Platform@@QE$AAA@PE$AAVString@1@@Z=wincorlib_orig.dll.??0OperationCanceledException@Platform@@QE$AAA@PE$AAVString@1@@Z,@38")
|
||||||
|
#pragma comment(linker, "/export:??0OperationCanceledException@Platform@@QE$AAA@XZ=wincorlib_orig.dll.??0OperationCanceledException@Platform@@QE$AAA@XZ,@39")
|
||||||
|
#pragma comment(linker, "/export:??0OutOfBoundsException@Platform@@QE$AAA@PE$AAVString@1@@Z=wincorlib_orig.dll.??0OutOfBoundsException@Platform@@QE$AAA@PE$AAVString@1@@Z,@40")
|
||||||
|
#pragma comment(linker, "/export:??0OutOfBoundsException@Platform@@QE$AAA@XZ=wincorlib_orig.dll.??0OutOfBoundsException@Platform@@QE$AAA@XZ,@41")
|
||||||
|
#pragma comment(linker, "/export:??0OutOfMemoryException@Platform@@QE$AAA@PE$AAVString@1@@Z=wincorlib_orig.dll.??0OutOfMemoryException@Platform@@QE$AAA@PE$AAVString@1@@Z,@42")
|
||||||
|
#pragma comment(linker, "/export:??0OutOfMemoryException@Platform@@QE$AAA@XZ=wincorlib_orig.dll.??0OutOfMemoryException@Platform@@QE$AAA@XZ,@43")
|
||||||
|
#pragma comment(linker, "/export:??0Rect@Foundation@Windows@@QEAA@VPoint@12@0@Z=wincorlib_orig.dll.??0Rect@Foundation@Windows@@QEAA@VPoint@12@0@Z,@44")
|
||||||
|
#pragma comment(linker, "/export:??0Rect@Foundation@Windows@@QEAA@VPoint@12@VSize@12@@Z=wincorlib_orig.dll.??0Rect@Foundation@Windows@@QEAA@VPoint@12@VSize@12@@Z,@45")
|
||||||
|
#pragma comment(linker, "/export:??0RepeatBehavior@Animation@Media@Xaml@UI@Windows@@QEAA@N@Z=wincorlib_orig.dll.??0RepeatBehavior@Animation@Media@Xaml@UI@Windows@@QEAA@N@Z,@46")
|
||||||
|
#pragma comment(linker, "/export:??0STAThreadAttribute@Platform@@QE$AAA@XZ=wincorlib_orig.dll.??0STAThreadAttribute@Platform@@QE$AAA@XZ,@47")
|
||||||
|
#pragma comment(linker, "/export:??0SizeT@Platform@@QEAA@H@Z=wincorlib_orig.dll.??0SizeT@Platform@@QEAA@H@Z,@48")
|
||||||
|
#pragma comment(linker, "/export:??0SizeT@Platform@@QEAA@PEAX@Z=wincorlib_orig.dll.??0SizeT@Platform@@QEAA@PEAX@Z,@49")
|
||||||
|
#pragma comment(linker, "/export:??0Type@Platform@@QE$AAA@PE$AAVObject@1@@Z=wincorlib_orig.dll.??0Type@Platform@@QE$AAA@PE$AAVObject@1@@Z,@50")
|
||||||
|
#pragma comment(linker, "/export:??0Type@Platform@@QE$AAA@VIntPtr@1@@Z=wincorlib_orig.dll.??0Type@Platform@@QE$AAA@VIntPtr@1@@Z,@51")
|
||||||
|
#pragma comment(linker, "/export:??0Type@Platform@@QE$AAA@VTypeName@Interop@Xaml@UI@Windows@@@Z=wincorlib_orig.dll.??0Type@Platform@@QE$AAA@VTypeName@Interop@Xaml@UI@Windows@@@Z,@52")
|
||||||
|
#pragma comment(linker, "/export:??0ValueType@Platform@@QE$AAA@XZ=wincorlib_orig.dll.??0ValueType@Platform@@QE$AAA@XZ,@53")
|
||||||
|
#pragma comment(linker, "/export:??0WrongThreadException@Platform@@QE$AAA@PE$AAVString@1@@Z=wincorlib_orig.dll.??0WrongThreadException@Platform@@QE$AAA@PE$AAVString@1@@Z,@54")
|
||||||
|
#pragma comment(linker, "/export:??0WrongThreadException@Platform@@QE$AAA@XZ=wincorlib_orig.dll.??0WrongThreadException@Platform@@QE$AAA@XZ,@55")
|
||||||
|
#pragma comment(linker, "/export:??0char16@default@@QEAA@_W@Z=wincorlib_orig.dll.??0char16@default@@QEAA@_W@Z,@56")
|
||||||
|
#pragma comment(linker, "/export:??0float32@default@@QEAA@M@Z=wincorlib_orig.dll.??0float32@default@@QEAA@M@Z,@57")
|
||||||
|
#pragma comment(linker, "/export:??0float64@default@@QEAA@N@Z=wincorlib_orig.dll.??0float64@default@@QEAA@N@Z,@58")
|
||||||
|
#pragma comment(linker, "/export:??0int16@default@@QEAA@F@Z=wincorlib_orig.dll.??0int16@default@@QEAA@F@Z,@59")
|
||||||
|
#pragma comment(linker, "/export:??0int32@default@@QEAA@H@Z=wincorlib_orig.dll.??0int32@default@@QEAA@H@Z,@60")
|
||||||
|
#pragma comment(linker, "/export:??0int64@default@@QEAA@_J@Z=wincorlib_orig.dll.??0int64@default@@QEAA@_J@Z,@61")
|
||||||
|
#pragma comment(linker, "/export:??0int8@default@@QEAA@C@Z=wincorlib_orig.dll.??0int8@default@@QEAA@C@Z,@62")
|
||||||
|
#pragma comment(linker, "/export:??0uint16@default@@QEAA@G@Z=wincorlib_orig.dll.??0uint16@default@@QEAA@G@Z,@63")
|
||||||
|
#pragma comment(linker, "/export:??0uint32@default@@QEAA@I@Z=wincorlib_orig.dll.??0uint32@default@@QEAA@I@Z,@64")
|
||||||
|
#pragma comment(linker, "/export:??0uint64@default@@QEAA@_K@Z=wincorlib_orig.dll.??0uint64@default@@QEAA@_K@Z,@65")
|
||||||
|
#pragma comment(linker, "/export:??0uint8@default@@QEAA@E@Z=wincorlib_orig.dll.??0uint8@default@@QEAA@E@Z,@66")
|
||||||
|
#pragma comment(linker, "/export:??BIntPtr@Platform@@SA?AV01@H@Z=wincorlib_orig.dll.??BIntPtr@Platform@@SA?AV01@H@Z,@67")
|
||||||
|
#pragma comment(linker, "/export:??BIntPtr@Platform@@SA?AV01@PEAX@Z=wincorlib_orig.dll.??BIntPtr@Platform@@SA?AV01@PEAX@Z,@68")
|
||||||
|
#pragma comment(linker, "/export:??BIntPtr@Platform@@SAPEAXV01@@Z=wincorlib_orig.dll.??BIntPtr@Platform@@SAPEAXV01@@Z,@69")
|
||||||
|
#pragma comment(linker, "/export:??BType@Platform@@SA?AVTypeName@Interop@Xaml@UI@Windows@@PE$AAV01@@Z=wincorlib_orig.dll.??BType@Platform@@SA?AVTypeName@Interop@Xaml@UI@Windows@@PE$AAV01@@Z,@70")
|
||||||
|
#pragma comment(linker, "/export:??BType@Platform@@SAPE$AAV01@VTypeName@Interop@Xaml@UI@Windows@@@Z=wincorlib_orig.dll.??BType@Platform@@SAPE$AAV01@VTypeName@Interop@Xaml@UI@Windows@@@Z,@71")
|
||||||
|
#pragma comment(linker, "/export:??DMatrix3D@Media3D@Media@Xaml@UI@Windows@@SA?AV012345@V012345@0@Z=wincorlib_orig.dll.??DMatrix3D@Media3D@Media@Xaml@UI@Windows@@SA?AV012345@V012345@0@Z,@72")
|
||||||
|
#pragma comment(linker, "/export:??GDuration@Xaml@UI@Windows@@SA?AV0123@V0123@0@Z=wincorlib_orig.dll.??GDuration@Xaml@UI@Windows@@SA?AV0123@V0123@0@Z,@73")
|
||||||
|
#pragma comment(linker, "/export:??HDuration@Xaml@UI@Windows@@SA?AV0123@V0123@0@Z=wincorlib_orig.dll.??HDuration@Xaml@UI@Windows@@SA?AV0123@V0123@0@Z,@74")
|
||||||
|
#pragma comment(linker, "/export:??MDuration@Xaml@UI@Windows@@SA_NV0123@0@Z=wincorlib_orig.dll.??MDuration@Xaml@UI@Windows@@SA_NV0123@0@Z,@75")
|
||||||
|
#pragma comment(linker, "/export:??NDuration@Xaml@UI@Windows@@SA_NV0123@0@Z=wincorlib_orig.dll.??NDuration@Xaml@UI@Windows@@SA_NV0123@0@Z,@76")
|
||||||
|
#pragma comment(linker, "/export:??ODuration@Xaml@UI@Windows@@SA_NV0123@0@Z=wincorlib_orig.dll.??ODuration@Xaml@UI@Windows@@SA_NV0123@0@Z,@77")
|
||||||
|
#pragma comment(linker, "/export:??PDuration@Xaml@UI@Windows@@SA_NV0123@0@Z=wincorlib_orig.dll.??PDuration@Xaml@UI@Windows@@SA_NV0123@0@Z,@78")
|
||||||
|
#pragma comment(linker, "/export:?AlignedAllocate@Heap@Details@Platform@@SAPEAX_K00@Z=wincorlib_orig.dll.?AlignedAllocate@Heap@Details@Platform@@SAPEAX_K00@Z,@79")
|
||||||
|
#pragma comment(linker, "/export:?AlignedAllocate@Heap@Details@Platform@@SAPEAX_K0@Z=wincorlib_orig.dll.?AlignedAllocate@Heap@Details@Platform@@SAPEAX_K0@Z,@80")
|
||||||
|
#pragma comment(linker, "/export:?AlignedAllocateException@Heap@Details@Platform@@SAPEAX_K00@Z=wincorlib_orig.dll.?AlignedAllocateException@Heap@Details@Platform@@SAPEAX_K00@Z,@81")
|
||||||
|
#pragma comment(linker, "/export:?AlignedAllocateException@Heap@Details@Platform@@SAPEAX_K0@Z=wincorlib_orig.dll.?AlignedAllocateException@Heap@Details@Platform@@SAPEAX_K0@Z,@82")
|
||||||
|
#pragma comment(linker, "/export:?AlignedFree@Heap@Details@Platform@@SAXPEAX@Z=wincorlib_orig.dll.?AlignedFree@Heap@Details@Platform@@SAXPEAX@Z,@83")
|
||||||
|
#pragma comment(linker, "/export:?AlignedFreeException@Heap@Details@Platform@@SAXPEAX@Z=wincorlib_orig.dll.?AlignedFreeException@Heap@Details@Platform@@SAXPEAX@Z,@84")
|
||||||
|
#pragma comment(linker, "/export:?Allocate@Heap@Details@Platform@@SAPEAX_K0@Z=wincorlib_orig.dll.?Allocate@Heap@Details@Platform@@SAPEAX_K0@Z,@85")
|
||||||
|
#pragma comment(linker, "/export:?Allocate@Heap@Details@Platform@@SAPEAX_K@Z=wincorlib_orig.dll.?Allocate@Heap@Details@Platform@@SAPEAX_K@Z,@86")
|
||||||
|
#pragma comment(linker, "/export:?AllocateException@Heap@Details@Platform@@SAPEAX_K0@Z=wincorlib_orig.dll.?AllocateException@Heap@Details@Platform@@SAPEAX_K0@Z,@87")
|
||||||
|
#pragma comment(linker, "/export:?AllocateException@Heap@Details@Platform@@SAPEAX_K@Z=wincorlib_orig.dll.?AllocateException@Heap@Details@Platform@@SAPEAX_K@Z,@88")
|
||||||
|
#pragma comment(linker, "/export:?Compare@Duration@Xaml@UI@Windows@@SAHV1234@0@Z=wincorlib_orig.dll.?Compare@Duration@Xaml@UI@Windows@@SAHV1234@0@Z,@89")
|
||||||
|
#pragma comment(linker, "/export:?Contains@Rect@Foundation@Windows@@QEAA_NVPoint@23@@Z=wincorlib_orig.dll.?Contains@Rect@Foundation@Windows@@QEAA_NVPoint@23@@Z,@90")
|
||||||
|
#pragma comment(linker, "/export:?CreateException@Exception@Platform@@SAPE$AAV12@H@Z=wincorlib_orig.dll.?CreateException@Exception@Platform@@SAPE$AAV12@H@Z,@91")
|
||||||
|
#pragma comment(linker, "/export:?CreateException@Exception@Platform@@SAPE$AAV12@HPE$AAVString@2@@Z=wincorlib_orig.dll.?CreateException@Exception@Platform@@SAPE$AAV12@HPE$AAVString@2@@Z,@92")
|
||||||
|
#pragma comment(linker, "/export:?CreateValue@Details@Platform@@YAPE$AAVObject@2@W4TypeCode@2@PEBX@Z=wincorlib_orig.dll.?CreateValue@Details@Platform@@YAPE$AAVObject@2@W4TypeCode@2@PEBX@Z,@93")
|
||||||
|
#pragma comment(linker, "/export:?EnableFactoryCache@@YAXXZ=wincorlib_orig.dll.?EnableFactoryCache@@YAXXZ,@94")
|
||||||
|
#pragma comment(linker, "/export:?EnumerateAllocatedObjects@Heap@Details@Platform@@SAXPE$AAVHeapEntryHandler@23@@Z=wincorlib_orig.dll.?EnumerateAllocatedObjects@Heap@Details@Platform@@SAXPE$AAVHeapEntryHandler@23@@Z,@95")
|
||||||
|
#pragma comment(linker, "/export:?Equals@Attribute@Metadata@Platform@@QE$AAA_NPE$AAVObject@3@@Z=wincorlib_orig.dll.?Equals@Attribute@Metadata@Platform@@QE$AAA_NPE$AAVObject@3@@Z,@96")
|
||||||
|
#pragma comment(linker, "/export:?Equals@Boolean@Platform@@QEAA_NPE$AAVObject@2@@Z=wincorlib_orig.dll.?Equals@Boolean@Platform@@QEAA_NPE$AAVObject@2@@Z,@97")
|
||||||
|
#pragma comment(linker, "/export:?Equals@Delegate@Platform@@QE$AAA_NPE$AAVObject@2@@Z=wincorlib_orig.dll.?Equals@Delegate@Platform@@QE$AAA_NPE$AAVObject@2@@Z,@98")
|
||||||
|
#pragma comment(linker, "/export:?Equals@Enum@Platform@@QE$AAA_NPE$AAVObject@2@@Z=wincorlib_orig.dll.?Equals@Enum@Platform@@QE$AAA_NPE$AAVObject@2@@Z,@99")
|
||||||
|
#pragma comment(linker, "/export:?Equals@Exception@Platform@@UE$AAA_NPE$AAVObject@2@@Z=wincorlib_orig.dll.?Equals@Exception@Platform@@UE$AAA_NPE$AAVObject@2@@Z,@100")
|
||||||
|
#pragma comment(linker, "/export:?Equals@MTAThreadAttribute@Platform@@QE$AAA_NPE$AAVObject@2@@Z=wincorlib_orig.dll.?Equals@MTAThreadAttribute@Platform@@QE$AAA_NPE$AAVObject@2@@Z,@101")
|
||||||
|
#pragma comment(linker, "/export:?Equals@Object@Platform@@QE$AAA_NPE$AAV12@@Z=wincorlib_orig.dll.?Equals@Object@Platform@@QE$AAA_NPE$AAV12@@Z,@102")
|
||||||
|
#pragma comment(linker, "/export:?Equals@OnePhaseConstructedAttribute@CompilerServices@Runtime@Platform@@QE$AAA_NPE$AAVObject@4@@Z=wincorlib_orig.dll.?Equals@OnePhaseConstructedAttribute@CompilerServices@Runtime@Platform@@QE$AAA_NPE$AAVObject@4@@Z,@103")
|
||||||
|
#pragma comment(linker, "/export:?Equals@STAThreadAttribute@Platform@@QE$AAA_NPE$AAVObject@2@@Z=wincorlib_orig.dll.?Equals@STAThreadAttribute@Platform@@QE$AAA_NPE$AAVObject@2@@Z,@104")
|
||||||
|
#pragma comment(linker, "/export:?Equals@Type@Platform@@UE$AAA_NPE$AAVObject@2@@Z=wincorlib_orig.dll.?Equals@Type@Platform@@UE$AAA_NPE$AAVObject@2@@Z,@105")
|
||||||
|
#pragma comment(linker, "/export:?Equals@ValueType@Platform@@QE$AAA_NPE$AAVObject@2@@Z=wincorlib_orig.dll.?Equals@ValueType@Platform@@QE$AAA_NPE$AAVObject@2@@Z,@106")
|
||||||
|
#pragma comment(linker, "/export:?Equals@char16@default@@QEAA_NPE$AAVObject@Platform@@@Z=wincorlib_orig.dll.?Equals@char16@default@@QEAA_NPE$AAVObject@Platform@@@Z,@107")
|
||||||
|
#pragma comment(linker, "/export:?Equals@float32@default@@QEAA_NPE$AAVObject@Platform@@@Z=wincorlib_orig.dll.?Equals@float32@default@@QEAA_NPE$AAVObject@Platform@@@Z,@108")
|
||||||
|
#pragma comment(linker, "/export:?Equals@float64@default@@QEAA_NPE$AAVObject@Platform@@@Z=wincorlib_orig.dll.?Equals@float64@default@@QEAA_NPE$AAVObject@Platform@@@Z,@109")
|
||||||
|
#pragma comment(linker, "/export:?Equals@int16@default@@QEAA_NPE$AAVObject@Platform@@@Z=wincorlib_orig.dll.?Equals@int16@default@@QEAA_NPE$AAVObject@Platform@@@Z,@110")
|
||||||
|
#pragma comment(linker, "/export:?Equals@int32@default@@QEAA_NPE$AAVObject@Platform@@@Z=wincorlib_orig.dll.?Equals@int32@default@@QEAA_NPE$AAVObject@Platform@@@Z,@111")
|
||||||
|
#pragma comment(linker, "/export:?Equals@int64@default@@QEAA_NPE$AAVObject@Platform@@@Z=wincorlib_orig.dll.?Equals@int64@default@@QEAA_NPE$AAVObject@Platform@@@Z,@112")
|
||||||
|
#pragma comment(linker, "/export:?Equals@int8@default@@QEAA_NPE$AAVObject@Platform@@@Z=wincorlib_orig.dll.?Equals@int8@default@@QEAA_NPE$AAVObject@Platform@@@Z,@113")
|
||||||
|
#pragma comment(linker, "/export:?Equals@uint16@default@@QEAA_NPE$AAVObject@Platform@@@Z=wincorlib_orig.dll.?Equals@uint16@default@@QEAA_NPE$AAVObject@Platform@@@Z,@114")
|
||||||
|
#pragma comment(linker, "/export:?Equals@uint32@default@@QEAA_NPE$AAVObject@Platform@@@Z=wincorlib_orig.dll.?Equals@uint32@default@@QEAA_NPE$AAVObject@Platform@@@Z,@115")
|
||||||
|
#pragma comment(linker, "/export:?Equals@uint64@default@@QEAA_NPE$AAVObject@Platform@@@Z=wincorlib_orig.dll.?Equals@uint64@default@@QEAA_NPE$AAVObject@Platform@@@Z,@116")
|
||||||
|
#pragma comment(linker, "/export:?Equals@uint8@default@@QEAA_NPE$AAVObject@Platform@@@Z=wincorlib_orig.dll.?Equals@uint8@default@@QEAA_NPE$AAVObject@Platform@@@Z,@117")
|
||||||
|
#pragma comment(linker, "/export:?EventSourceAdd@Details@Platform@@YA?AVEventRegistrationToken@Foundation@Windows@@PEAPEAXPEAUEventLock@12@PE$AAVDelegate@2@@Z=wincorlib_orig.dll.?EventSourceAdd@Details@Platform@@YA?AVEventRegistrationToken@Foundation@Windows@@PEAPEAXPEAUEventLock@12@PE$AAVDelegate@2@@Z,@118")
|
||||||
|
#pragma comment(linker, "/export:?EventSourceGetTargetArray@Details@Platform@@YAPEAXPEAXPEAUEventLock@12@@Z=wincorlib_orig.dll.?EventSourceGetTargetArray@Details@Platform@@YAPEAXPEAXPEAUEventLock@12@@Z,@119")
|
||||||
|
#pragma comment(linker, "/export:?EventSourceGetTargetArrayEvent@Details@Platform@@YAPEAXPEAXIPEBXPEA_J@Z=wincorlib_orig.dll.?EventSourceGetTargetArrayEvent@Details@Platform@@YAPEAXPEAXIPEBXPEA_J@Z,@120")
|
||||||
|
#pragma comment(linker, "/export:?EventSourceGetTargetArraySize@Details@Platform@@YAIPEAX@Z=wincorlib_orig.dll.?EventSourceGetTargetArraySize@Details@Platform@@YAIPEAX@Z,@121")
|
||||||
|
#pragma comment(linker, "/export:?EventSourceInitialize@Details@Platform@@YAXPEAPEAX@Z=wincorlib_orig.dll.?EventSourceInitialize@Details@Platform@@YAXPEAPEAX@Z,@122")
|
||||||
|
#pragma comment(linker, "/export:?EventSourceRemove@Details@Platform@@YAXPEAPEAXPEAUEventLock@12@VEventRegistrationToken@Foundation@Windows@@@Z=wincorlib_orig.dll.?EventSourceRemove@Details@Platform@@YAXPEAPEAXPEAUEventLock@12@VEventRegistrationToken@Foundation@Windows@@@Z,@123")
|
||||||
|
#pragma comment(linker, "/export:?EventSourceUninitialize@Details@Platform@@YAXPEAPEAX@Z=wincorlib_orig.dll.?EventSourceUninitialize@Details@Platform@@YAXPEAPEAX@Z,@124")
|
||||||
|
#pragma comment(linker, "/export:?FlushFactoryCache@@YAXXZ=wincorlib_orig.dll.?FlushFactoryCache@@YAXXZ,@125")
|
||||||
|
#pragma comment(linker, "/export:?Free@Heap@Details@Platform@@SAXPEAX@Z=wincorlib_orig.dll.?Free@Heap@Details@Platform@@SAXPEAX@Z,@126")
|
||||||
|
#pragma comment(linker, "/export:?FreeException@Heap@Details@Platform@@SAXPEAX@Z=wincorlib_orig.dll.?FreeException@Heap@Details@Platform@@SAXPEAX@Z,@127")
|
||||||
|
#pragma comment(linker, "/export:?GetActivationFactory@Details@Platform@@YAJPEAVModuleBase@1WRL@Microsoft@@PEAUHSTRING__@@PEAPEAUIActivationFactory@@@Z=wincorlib_orig.dll.?GetActivationFactory@Details@Platform@@YAJPEAVModuleBase@1WRL@Microsoft@@PEAUHSTRING__@@PEAPEAUIActivationFactory@@@Z,@128")
|
||||||
|
#pragma comment(linker, "/export:?GetActivationFactoryByPCWSTR@@YAJPEAXAEAVGuid@Platform@@PEAPEAX@Z=wincorlib_orig.dll.?GetActivationFactoryByPCWSTR@@YAJPEAXAEAVGuid@Platform@@PEAPEAX@Z,@129")
|
||||||
|
//#pragma comment(linker, "/export:?GetCmdArguments@Details@Platform@@YAPEAPEA_WPEAH@Z=wincorlib_orig.dll.?GetCmdArguments@Details@Platform@@YAPEAPEA_WPEAH@Z,@130")
|
||||||
|
#pragma comment(linker, "/export:?GetHashCode@Attribute@Metadata@Platform@@QE$AAAHXZ=wincorlib_orig.dll.?GetHashCode@Attribute@Metadata@Platform@@QE$AAAHXZ,@131")
|
||||||
|
#pragma comment(linker, "/export:?GetHashCode@Boolean@Platform@@QEAAHXZ=wincorlib_orig.dll.?GetHashCode@Boolean@Platform@@QEAAHXZ,@132")
|
||||||
|
#pragma comment(linker, "/export:?GetHashCode@Delegate@Platform@@QE$AAAHXZ=wincorlib_orig.dll.?GetHashCode@Delegate@Platform@@QE$AAAHXZ,@133")
|
||||||
|
#pragma comment(linker, "/export:?GetHashCode@Enum@Platform@@QE$AAAHXZ=wincorlib_orig.dll.?GetHashCode@Enum@Platform@@QE$AAAHXZ,@134")
|
||||||
|
#pragma comment(linker, "/export:?GetHashCode@Exception@Platform@@UE$AAAHXZ=wincorlib_orig.dll.?GetHashCode@Exception@Platform@@UE$AAAHXZ,@135")
|
||||||
|
#pragma comment(linker, "/export:?GetHashCode@Guid@Platform@@QEAAHXZ=wincorlib_orig.dll.?GetHashCode@Guid@Platform@@QEAAHXZ,@136")
|
||||||
|
#pragma comment(linker, "/export:?GetHashCode@MTAThreadAttribute@Platform@@QE$AAAHXZ=wincorlib_orig.dll.?GetHashCode@MTAThreadAttribute@Platform@@QE$AAAHXZ,@137")
|
||||||
|
#pragma comment(linker, "/export:?GetHashCode@Object@Platform@@QE$AAAHXZ=wincorlib_orig.dll.?GetHashCode@Object@Platform@@QE$AAAHXZ,@138")
|
||||||
|
#pragma comment(linker, "/export:?GetHashCode@OnePhaseConstructedAttribute@CompilerServices@Runtime@Platform@@QE$AAAHXZ=wincorlib_orig.dll.?GetHashCode@OnePhaseConstructedAttribute@CompilerServices@Runtime@Platform@@QE$AAAHXZ,@139")
|
||||||
|
#pragma comment(linker, "/export:?GetHashCode@STAThreadAttribute@Platform@@QE$AAAHXZ=wincorlib_orig.dll.?GetHashCode@STAThreadAttribute@Platform@@QE$AAAHXZ,@140")
|
||||||
|
#pragma comment(linker, "/export:?GetHashCode@Type@Platform@@UE$AAAHXZ=wincorlib_orig.dll.?GetHashCode@Type@Platform@@UE$AAAHXZ,@141")
|
||||||
|
#pragma comment(linker, "/export:?GetHashCode@ValueType@Platform@@QE$AAAHXZ=wincorlib_orig.dll.?GetHashCode@ValueType@Platform@@QE$AAAHXZ,@142")
|
||||||
|
#pragma comment(linker, "/export:?GetHashCode@char16@default@@QEAAHXZ=wincorlib_orig.dll.?GetHashCode@char16@default@@QEAAHXZ,@143")
|
||||||
|
#pragma comment(linker, "/export:?GetHashCode@float32@default@@QEAAHXZ=wincorlib_orig.dll.?GetHashCode@float32@default@@QEAAHXZ,@144")
|
||||||
|
#pragma comment(linker, "/export:?GetHashCode@float64@default@@QEAAHXZ=wincorlib_orig.dll.?GetHashCode@float64@default@@QEAAHXZ,@145")
|
||||||
|
#pragma comment(linker, "/export:?GetHashCode@int16@default@@QEAAHXZ=wincorlib_orig.dll.?GetHashCode@int16@default@@QEAAHXZ,@146")
|
||||||
|
#pragma comment(linker, "/export:?GetHashCode@int32@default@@QEAAHXZ=wincorlib_orig.dll.?GetHashCode@int32@default@@QEAAHXZ,@147")
|
||||||
|
#pragma comment(linker, "/export:?GetHashCode@int64@default@@QEAAHXZ=wincorlib_orig.dll.?GetHashCode@int64@default@@QEAAHXZ,@148")
|
||||||
|
#pragma comment(linker, "/export:?GetHashCode@int8@default@@QEAAHXZ=wincorlib_orig.dll.?GetHashCode@int8@default@@QEAAHXZ,@149")
|
||||||
|
#pragma comment(linker, "/export:?GetHashCode@uint16@default@@QEAAHXZ=wincorlib_orig.dll.?GetHashCode@uint16@default@@QEAAHXZ,@150")
|
||||||
|
#pragma comment(linker, "/export:?GetHashCode@uint32@default@@QEAAHXZ=wincorlib_orig.dll.?GetHashCode@uint32@default@@QEAAHXZ,@151")
|
||||||
|
#pragma comment(linker, "/export:?GetHashCode@uint64@default@@QEAAHXZ=wincorlib_orig.dll.?GetHashCode@uint64@default@@QEAAHXZ,@152")
|
||||||
|
#pragma comment(linker, "/export:?GetHashCode@uint8@default@@QEAAHXZ=wincorlib_orig.dll.?GetHashCode@uint8@default@@QEAAHXZ,@153")
|
||||||
|
#pragma comment(linker, "/export:?GetIBoxArrayVtable@Details@Platform@@YAPEAXPEAX@Z=wincorlib_orig.dll.?GetIBoxArrayVtable@Details@Platform@@YAPEAXPEAX@Z,@154")
|
||||||
|
#pragma comment(linker, "/export:?GetIBoxVtable@Details@Platform@@YAPEAXPEAX@Z=wincorlib_orig.dll.?GetIBoxVtable@Details@Platform@@YAPEAXPEAX@Z,@155")
|
||||||
|
#pragma comment(linker, "/export:?GetIidsFn@@YAJHPEAKPEBU__s_GUID@@PEAPEAVGuid@Platform@@@Z=wincorlib_orig.dll.?GetIidsFn@@YAJHPEAKPEBU__s_GUID@@PEAPEAVGuid@Platform@@@Z,@156")
|
||||||
|
#pragma comment(linker, "/export:?GetObjectContext@Details@Platform@@YAPEAUIUnknown@@XZ=wincorlib_orig.dll.?GetObjectContext@Details@Platform@@YAPEAUIUnknown@@XZ,@157")
|
||||||
|
#pragma comment(linker, "/export:?GetProxyImpl@Details@Platform@@YAJPEAUIUnknown@@AEBU_GUID@@0PEAPEAU3@@Z=wincorlib_orig.dll.?GetProxyImpl@Details@Platform@@YAJPEAUIUnknown@@AEBU_GUID@@0PEAPEAU3@@Z,@158")
|
||||||
|
#pragma comment(linker, "/export:?GetType@Boolean@Platform@@QEAAPE$AAVType@2@XZ=wincorlib_orig.dll.?GetType@Boolean@Platform@@QEAAPE$AAVType@2@XZ,@159")
|
||||||
|
#pragma comment(linker, "/export:?GetType@Guid@Platform@@QEAAPE$AAVType@2@XZ=wincorlib_orig.dll.?GetType@Guid@Platform@@QEAAPE$AAVType@2@XZ,@160")
|
||||||
|
#pragma comment(linker, "/export:?GetType@Object@Platform@@QE$AAAPE$AAVType@2@XZ=wincorlib_orig.dll.?GetType@Object@Platform@@QE$AAAPE$AAVType@2@XZ,@161")
|
||||||
|
#pragma comment(linker, "/export:?GetType@char16@default@@QEAAPE$AAVType@Platform@@XZ=wincorlib_orig.dll.?GetType@char16@default@@QEAAPE$AAVType@Platform@@XZ,@162")
|
||||||
|
#pragma comment(linker, "/export:?GetType@float32@default@@QEAAPE$AAVType@Platform@@XZ=wincorlib_orig.dll.?GetType@float32@default@@QEAAPE$AAVType@Platform@@XZ,@163")
|
||||||
|
#pragma comment(linker, "/export:?GetType@float64@default@@QEAAPE$AAVType@Platform@@XZ=wincorlib_orig.dll.?GetType@float64@default@@QEAAPE$AAVType@Platform@@XZ,@164")
|
||||||
|
#pragma comment(linker, "/export:?GetType@int16@default@@QEAAPE$AAVType@Platform@@XZ=wincorlib_orig.dll.?GetType@int16@default@@QEAAPE$AAVType@Platform@@XZ,@165")
|
||||||
|
#pragma comment(linker, "/export:?GetType@int32@default@@QEAAPE$AAVType@Platform@@XZ=wincorlib_orig.dll.?GetType@int32@default@@QEAAPE$AAVType@Platform@@XZ,@166")
|
||||||
|
#pragma comment(linker, "/export:?GetType@int64@default@@QEAAPE$AAVType@Platform@@XZ=wincorlib_orig.dll.?GetType@int64@default@@QEAAPE$AAVType@Platform@@XZ,@167")
|
||||||
|
#pragma comment(linker, "/export:?GetType@int8@default@@QEAAPE$AAVType@Platform@@XZ=wincorlib_orig.dll.?GetType@int8@default@@QEAAPE$AAVType@Platform@@XZ,@168")
|
||||||
|
#pragma comment(linker, "/export:?GetType@uint16@default@@QEAAPE$AAVType@Platform@@XZ=wincorlib_orig.dll.?GetType@uint16@default@@QEAAPE$AAVType@Platform@@XZ,@169")
|
||||||
|
#pragma comment(linker, "/export:?GetType@uint32@default@@QEAAPE$AAVType@Platform@@XZ=wincorlib_orig.dll.?GetType@uint32@default@@QEAAPE$AAVType@Platform@@XZ,@170")
|
||||||
|
#pragma comment(linker, "/export:?GetType@uint64@default@@QEAAPE$AAVType@Platform@@XZ=wincorlib_orig.dll.?GetType@uint64@default@@QEAAPE$AAVType@Platform@@XZ,@171")
|
||||||
|
#pragma comment(linker, "/export:?GetType@uint8@default@@QEAAPE$AAVType@Platform@@XZ=wincorlib_orig.dll.?GetType@uint8@default@@QEAAPE$AAVType@Platform@@XZ,@172")
|
||||||
|
#pragma comment(linker, "/export:?GetTypeCode@Type@Platform@@SA?AW4TypeCode@2@PE$AAV12@@Z=wincorlib_orig.dll.?GetTypeCode@Type@Platform@@SA?AW4TypeCode@2@PE$AAV12@@Z,@173")
|
||||||
|
#pragma comment(linker, "/export:?GetWeakReference@Details@Platform@@YAPEAU__abi_IUnknown@@QE$ADVObject@2@@Z=wincorlib_orig.dll.?GetWeakReference@Details@Platform@@YAPEAU__abi_IUnknown@@QE$ADVObject@2@@Z,@174")
|
||||||
|
#pragma comment(linker, "/export:?InitControlBlock@ControlBlock@Details@Platform@@AEAAXPEAX_N11@Z=wincorlib_orig.dll.?InitControlBlock@ControlBlock@Details@Platform@@AEAAXPEAX_N11@Z,@175")
|
||||||
|
#pragma comment(linker, "/export:?InitializeData@Details@Platform@@YAJH@Z=wincorlib_orig.dll.?InitializeData@Details@Platform@@YAJH@Z,@176")
|
||||||
|
#pragma comment(linker, "/export:?Intersect@Rect@Foundation@Windows@@QEAAXV123@@Z=wincorlib_orig.dll.?Intersect@Rect@Foundation@Windows@@QEAAXV123@@Z,@177")
|
||||||
|
#pragma comment(linker, "/export:?IntersectsWith@Rect@Foundation@Windows@@QEAA_NV123@@Z=wincorlib_orig.dll.?IntersectsWith@Rect@Foundation@Windows@@QEAA_NV123@@Z,@178")
|
||||||
|
#pragma comment(linker, "/export:?Invert@Matrix3D@Media3D@Media@Xaml@UI@Windows@@QEAAXXZ=wincorlib_orig.dll.?Invert@Matrix3D@Media3D@Media@Xaml@UI@Windows@@QEAAXXZ,@179")
|
||||||
|
#pragma comment(linker, "/export:?ReCreateException@Exception@Platform@@SAPE$AAV12@H@Z=wincorlib_orig.dll.?ReCreateException@Exception@Platform@@SAPE$AAV12@H@Z,@180")
|
||||||
|
#pragma comment(linker, "/export:?ReCreateFromException@Details@Platform@@YAJPE$AAVException@2@@Z=wincorlib_orig.dll.?ReCreateFromException@Details@Platform@@YAJPE$AAVException@2@@Z,@181")
|
||||||
|
#pragma comment(linker, "/export:?ReferenceEquals@Object@Platform@@SA_NPE$AAV12@0@Z=wincorlib_orig.dll.?ReferenceEquals@Object@Platform@@SA_NPE$AAV12@0@Z,@182")
|
||||||
|
#pragma comment(linker, "/export:?ReferenceEquals@Object@Platform@@SA_NPE$AAVString@2@0@Z=wincorlib_orig.dll.?ReferenceEquals@Object@Platform@@SA_NPE$AAVString@2@0@Z,@183")
|
||||||
|
#pragma comment(linker, "/export:?RegisterFactories@Details@Platform@@YAPE$AAVObject@2@PEAPEAVModuleBase@1WRL@Microsoft@@PEAPEAU__abi_Module@@P6AXXZ@Z=wincorlib_orig.dll.?RegisterFactories@Details@Platform@@YAPE$AAVObject@2@PEAPEAVModuleBase@1WRL@Microsoft@@PEAPEAU__abi_Module@@P6AXXZ@Z,@184")
|
||||||
|
#pragma comment(linker, "/export:?ReleaseInContextImpl@Details@Platform@@YAJPEAUIUnknown@@0@Z=wincorlib_orig.dll.?ReleaseInContextImpl@Details@Platform@@YAJPEAUIUnknown@@0@Z,@185")
|
||||||
|
#pragma comment(linker, "/export:?ReleaseTarget@ControlBlock@Details@Platform@@AEAAXXZ=wincorlib_orig.dll.?ReleaseTarget@ControlBlock@Details@Platform@@AEAAXXZ,@186")
|
||||||
|
#pragma comment(linker, "/export:?ResolveWeakReference@Details@Platform@@YAPE$AAVObject@2@AEBU_GUID@@PEAPEAU__abi_IUnknown@@@Z=wincorlib_orig.dll.?ResolveWeakReference@Details@Platform@@YAPE$AAVObject@2@AEBU_GUID@@PEAPEAU__abi_IUnknown@@@Z,@187")
|
||||||
|
#pragma comment(linker, "/export:?RunApplicationServer@Details@Platform@@YAXPEAPEAVModuleBase@1WRL@Microsoft@@PEAPEAU__abi_Module@@PEB_W@Z=wincorlib_orig.dll.?RunApplicationServer@Details@Platform@@YAXPEAPEAVModuleBase@1WRL@Microsoft@@PEAPEAU__abi_Module@@PEB_W@Z,@188")
|
||||||
|
#pragma comment(linker, "/export:?RunServer@Details@Platform@@YAXPEAPEAVModuleBase@1WRL@Microsoft@@PEAPEAU__abi_Module@@PEB_W@Z=wincorlib_orig.dll.?RunServer@Details@Platform@@YAXPEAPEAVModuleBase@1WRL@Microsoft@@PEAPEAU__abi_Module@@PEB_W@Z,@189")
|
||||||
|
#pragma comment(linker, "/export:?TerminateModule@Details@Platform@@YA_NPEAVModuleBase@1WRL@Microsoft@@@Z=wincorlib_orig.dll.?TerminateModule@Details@Platform@@YA_NPEAVModuleBase@1WRL@Microsoft@@@Z,@190")
|
||||||
|
#pragma comment(linker, "/export:?ToInt32@IntPtr@Platform@@QEAAHXZ=wincorlib_orig.dll.?ToInt32@IntPtr@Platform@@QEAAHXZ,@191")
|
||||||
|
#pragma comment(linker, "/export:?ToString@Attribute@Metadata@Platform@@QE$AAAPE$AAVString@3@XZ=wincorlib_orig.dll.?ToString@Attribute@Metadata@Platform@@QE$AAAPE$AAVString@3@XZ,@192")
|
||||||
|
#pragma comment(linker, "/export:?ToString@Boolean@Platform@@QEAAPE$AAVString@2@XZ=wincorlib_orig.dll.?ToString@Boolean@Platform@@QEAAPE$AAVString@2@XZ,@193")
|
||||||
|
#pragma comment(linker, "/export:?ToString@Delegate@Platform@@QE$AAAPE$AAVString@2@XZ=wincorlib_orig.dll.?ToString@Delegate@Platform@@QE$AAAPE$AAVString@2@XZ,@194")
|
||||||
|
#pragma comment(linker, "/export:?ToString@Enum@Platform@@QE$AAAPE$AAVString@2@XZ=wincorlib_orig.dll.?ToString@Enum@Platform@@QE$AAAPE$AAVString@2@XZ,@195")
|
||||||
|
#pragma comment(linker, "/export:?ToString@Exception@Platform@@UE$AAAPE$AAVString@2@XZ=wincorlib_orig.dll.?ToString@Exception@Platform@@UE$AAAPE$AAVString@2@XZ,@196")
|
||||||
|
#pragma comment(linker, "/export:?ToString@Guid@Platform@@QEAAPE$AAVString@2@XZ=wincorlib_orig.dll.?ToString@Guid@Platform@@QEAAPE$AAVString@2@XZ,@197")
|
||||||
|
#pragma comment(linker, "/export:?ToString@MTAThreadAttribute@Platform@@QE$AAAPE$AAVString@2@XZ=wincorlib_orig.dll.?ToString@MTAThreadAttribute@Platform@@QE$AAAPE$AAVString@2@XZ,@198")
|
||||||
|
#pragma comment(linker, "/export:?ToString@OnePhaseConstructedAttribute@CompilerServices@Runtime@Platform@@QE$AAAPE$AAVString@4@XZ=wincorlib_orig.dll.?ToString@OnePhaseConstructedAttribute@CompilerServices@Runtime@Platform@@QE$AAAPE$AAVString@4@XZ,@199")
|
||||||
|
#pragma comment(linker, "/export:?ToString@STAThreadAttribute@Platform@@QE$AAAPE$AAVString@2@XZ=wincorlib_orig.dll.?ToString@STAThreadAttribute@Platform@@QE$AAAPE$AAVString@2@XZ,@200")
|
||||||
|
#pragma comment(linker, "/export:?ToString@Type@Platform@@UE$AAAPE$AAVString@2@XZ=wincorlib_orig.dll.?ToString@Type@Platform@@UE$AAAPE$AAVString@2@XZ,@201")
|
||||||
|
#pragma comment(linker, "/export:?ToString@ValueType@Platform@@QE$AAAPE$AAVString@2@XZ=wincorlib_orig.dll.?ToString@ValueType@Platform@@QE$AAAPE$AAVString@2@XZ,@202")
|
||||||
|
#pragma comment(linker, "/export:?ToString@char16@default@@QEAAPE$AAVString@Platform@@XZ=wincorlib_orig.dll.?ToString@char16@default@@QEAAPE$AAVString@Platform@@XZ,@203")
|
||||||
|
#pragma comment(linker, "/export:?ToString@float32@default@@QEAAPE$AAVString@Platform@@XZ=wincorlib_orig.dll.?ToString@float32@default@@QEAAPE$AAVString@Platform@@XZ,@204")
|
||||||
|
#pragma comment(linker, "/export:?ToString@float64@default@@QEAAPE$AAVString@Platform@@XZ=wincorlib_orig.dll.?ToString@float64@default@@QEAAPE$AAVString@Platform@@XZ,@205")
|
||||||
|
#pragma comment(linker, "/export:?ToString@int16@default@@QEAAPE$AAVString@Platform@@XZ=wincorlib_orig.dll.?ToString@int16@default@@QEAAPE$AAVString@Platform@@XZ,@206")
|
||||||
|
#pragma comment(linker, "/export:?ToString@int32@default@@QEAAPE$AAVString@Platform@@XZ=wincorlib_orig.dll.?ToString@int32@default@@QEAAPE$AAVString@Platform@@XZ,@207")
|
||||||
|
#pragma comment(linker, "/export:?ToString@int64@default@@QEAAPE$AAVString@Platform@@XZ=wincorlib_orig.dll.?ToString@int64@default@@QEAAPE$AAVString@Platform@@XZ,@208")
|
||||||
|
#pragma comment(linker, "/export:?ToString@int8@default@@QEAAPE$AAVString@Platform@@XZ=wincorlib_orig.dll.?ToString@int8@default@@QEAAPE$AAVString@Platform@@XZ,@209")
|
||||||
|
#pragma comment(linker, "/export:?ToString@uint16@default@@QEAAPE$AAVString@Platform@@XZ=wincorlib_orig.dll.?ToString@uint16@default@@QEAAPE$AAVString@Platform@@XZ,@210")
|
||||||
|
#pragma comment(linker, "/export:?ToString@uint32@default@@QEAAPE$AAVString@Platform@@XZ=wincorlib_orig.dll.?ToString@uint32@default@@QEAAPE$AAVString@Platform@@XZ,@211")
|
||||||
|
#pragma comment(linker, "/export:?ToString@uint64@default@@QEAAPE$AAVString@Platform@@XZ=wincorlib_orig.dll.?ToString@uint64@default@@QEAAPE$AAVString@Platform@@XZ,@212")
|
||||||
|
#pragma comment(linker, "/export:?ToString@uint8@default@@QEAAPE$AAVString@Platform@@XZ=wincorlib_orig.dll.?ToString@uint8@default@@QEAAPE$AAVString@Platform@@XZ,@213")
|
||||||
|
#pragma comment(linker, "/export:?UninitializeData@Details@Platform@@YAXH@Z=wincorlib_orig.dll.?UninitializeData@Details@Platform@@YAXH@Z,@214")
|
||||||
|
#pragma comment(linker, "/export:?Union@Rect@Foundation@Windows@@QEAAXV123@@Z=wincorlib_orig.dll.?Union@Rect@Foundation@Windows@@QEAAXV123@@Z,@215")
|
||||||
|
#pragma comment(linker, "/export:?Union@Rect@Foundation@Windows@@QEAAXVPoint@23@@Z=wincorlib_orig.dll.?Union@Rect@Foundation@Windows@@QEAAXVPoint@23@@Z,@216")
|
||||||
|
#pragma comment(linker, "/export:?WriteLine@Console@Details@Platform@@SAXPE$AAVObject@3@@Z=wincorlib_orig.dll.?WriteLine@Console@Details@Platform@@SAXPE$AAVObject@3@@Z,@217")
|
||||||
|
#pragma comment(linker, "/export:?WriteLine@Console@Details@Platform@@SAXPE$AAVString@3@@Z=wincorlib_orig.dll.?WriteLine@Console@Details@Platform@@SAXPE$AAVString@3@@Z,@218")
|
||||||
|
#pragma comment(linker, "/export:?WriteLine@Console@Details@Platform@@SAXXZ=wincorlib_orig.dll.?WriteLine@Console@Details@Platform@@SAXXZ,@219")
|
||||||
|
#pragma comment(linker, "/export:?__abi_FailFast@@YAXXZ=wincorlib_orig.dll.?__abi_FailFast@@YAXXZ,@220")
|
||||||
|
#pragma comment(linker, "/export:?__abi_ObjectToString@__abi_details@@YAPE$AAVString@Platform@@PE$AAVObject@3@_N@Z=wincorlib_orig.dll.?__abi_ObjectToString@__abi_details@@YAPE$AAVString@Platform@@PE$AAVObject@3@_N@Z,@221")
|
||||||
|
#pragma comment(linker, "/export:?__abi_Resolve@ControlBlock@Details@Platform@@UEAAJAEAVGuid@3@PEAPEAU__abi_IInspectable@@@Z=wincorlib_orig.dll.?__abi_Resolve@ControlBlock@Details@Platform@@UEAAJAEAVGuid@3@PEAPEAU__abi_IInspectable@@@Z,@222")
|
||||||
|
#pragma comment(linker, "/export:?__abi_WinRTraiseAccessDeniedException@@YAXXZ=wincorlib_orig.dll.?__abi_WinRTraiseAccessDeniedException@@YAXXZ,@223")
|
||||||
|
#pragma comment(linker, "/export:?__abi_WinRTraiseCOMException@@YAXJ@Z=wincorlib_orig.dll.?__abi_WinRTraiseCOMException@@YAXJ@Z,@224")
|
||||||
|
#pragma comment(linker, "/export:?__abi_WinRTraiseChangedStateException@@YAXXZ=wincorlib_orig.dll.?__abi_WinRTraiseChangedStateException@@YAXXZ,@225")
|
||||||
|
#pragma comment(linker, "/export:?__abi_WinRTraiseClassNotRegisteredException@@YAXXZ=wincorlib_orig.dll.?__abi_WinRTraiseClassNotRegisteredException@@YAXXZ,@226")
|
||||||
|
#pragma comment(linker, "/export:?__abi_WinRTraiseDisconnectedException@@YAXXZ=wincorlib_orig.dll.?__abi_WinRTraiseDisconnectedException@@YAXXZ,@227")
|
||||||
|
#pragma comment(linker, "/export:?__abi_WinRTraiseFailureException@@YAXXZ=wincorlib_orig.dll.?__abi_WinRTraiseFailureException@@YAXXZ,@228")
|
||||||
|
#pragma comment(linker, "/export:?__abi_WinRTraiseInvalidArgumentException@@YAXXZ=wincorlib_orig.dll.?__abi_WinRTraiseInvalidArgumentException@@YAXXZ,@229")
|
||||||
|
#pragma comment(linker, "/export:?__abi_WinRTraiseInvalidCastException@@YAXXZ=wincorlib_orig.dll.?__abi_WinRTraiseInvalidCastException@@YAXXZ,@230")
|
||||||
|
#pragma comment(linker, "/export:?__abi_WinRTraiseNotImplementedException@@YAXXZ=wincorlib_orig.dll.?__abi_WinRTraiseNotImplementedException@@YAXXZ,@231")
|
||||||
|
#pragma comment(linker, "/export:?__abi_WinRTraiseNullReferenceException@@YAXXZ=wincorlib_orig.dll.?__abi_WinRTraiseNullReferenceException@@YAXXZ,@232")
|
||||||
|
#pragma comment(linker, "/export:?__abi_WinRTraiseObjectDisposedException@@YAXXZ=wincorlib_orig.dll.?__abi_WinRTraiseObjectDisposedException@@YAXXZ,@233")
|
||||||
|
#pragma comment(linker, "/export:?__abi_WinRTraiseOperationCanceledException@@YAXXZ=wincorlib_orig.dll.?__abi_WinRTraiseOperationCanceledException@@YAXXZ,@234")
|
||||||
|
#pragma comment(linker, "/export:?__abi_WinRTraiseOutOfBoundsException@@YAXXZ=wincorlib_orig.dll.?__abi_WinRTraiseOutOfBoundsException@@YAXXZ,@235")
|
||||||
|
#pragma comment(linker, "/export:?__abi_WinRTraiseOutOfMemoryException@@YAXXZ=wincorlib_orig.dll.?__abi_WinRTraiseOutOfMemoryException@@YAXXZ,@236")
|
||||||
|
#pragma comment(linker, "/export:?__abi_WinRTraiseWrongThreadException@@YAXXZ=wincorlib_orig.dll.?__abi_WinRTraiseWrongThreadException@@YAXXZ,@237")
|
||||||
|
#pragma comment(linker, "/export:?__abi_cast_Object_to_String@__abi_details@@YAPE$AAVString@Platform@@_NPE$AAVObject@3@@Z=wincorlib_orig.dll.?__abi_cast_Object_to_String@__abi_details@@YAPE$AAVString@Platform@@_NPE$AAVObject@3@@Z,@238")
|
||||||
|
#pragma comment(linker, "/export:?__abi_cast_String_to_Object@__abi_details@@YAPE$AAVObject@Platform@@PE$AAVString@3@@Z=wincorlib_orig.dll.?__abi_cast_String_to_Object@__abi_details@@YAPE$AAVObject@Platform@@PE$AAVString@3@@Z,@239")
|
||||||
|
#pragma comment(linker, "/export:?__abi_make_type_id@@YAPE$AAVType@Platform@@AEBU__abi_type_descriptor@@@Z=wincorlib_orig.dll.?__abi_make_type_id@@YAPE$AAVType@Platform@@AEBU__abi_type_descriptor@@@Z,@240")
|
||||||
|
#pragma comment(linker, "/export:?__abi_translateCurrentException@@YAJ_N@Z=wincorlib_orig.dll.?__abi_translateCurrentException@@YAJ_N@Z,@241")
|
||||||
|
#pragma comment(linker, "/export:?__getActivationFactoryByHSTRING@@YAJPEAUHSTRING__@@AEAVGuid@Platform@@PEAPEAX@Z=wincorlib_orig.dll.?__getActivationFactoryByHSTRING@@YAJPEAUHSTRING__@@AEAVGuid@Platform@@PEAPEAX@Z,@242")
|
||||||
|
#pragma comment(linker, "/export:?get@Bottom@Rect@Foundation@Windows@@QEAAMXZ=wincorlib_orig.dll.?get@Bottom@Rect@Foundation@Windows@@QEAAMXZ,@243")
|
||||||
|
#pragma comment(linker, "/export:?get@BreakOnAllocationId@Heap@Details@Platform@@SAHXZ=wincorlib_orig.dll.?get@BreakOnAllocationId@Heap@Details@Platform@@SAHXZ,@244")
|
||||||
|
#pragma comment(linker, "/export:?get@BreakOnFreeId@Heap@Details@Platform@@SAHXZ=wincorlib_orig.dll.?get@BreakOnFreeId@Heap@Details@Platform@@SAHXZ,@245")
|
||||||
|
#pragma comment(linker, "/export:?get@CurrentAllocationId@Heap@Details@Platform@@SAHXZ=wincorlib_orig.dll.?get@CurrentAllocationId@Heap@Details@Platform@@SAHXZ,@246")
|
||||||
|
#pragma comment(linker, "/export:?get@Empty@Rect@Foundation@Windows@@SA?AV234@XZ=wincorlib_orig.dll.?get@Empty@Rect@Foundation@Windows@@SA?AV234@XZ,@247")
|
||||||
|
#pragma comment(linker, "/export:?get@Empty@Size@Foundation@Windows@@SA?AV234@XZ=wincorlib_orig.dll.?get@Empty@Size@Foundation@Windows@@SA?AV234@XZ,@248")
|
||||||
|
#pragma comment(linker, "/export:?get@FullName@Type@Platform@@QE$AAAPE$AAVString@3@XZ=wincorlib_orig.dll.?get@FullName@Type@Platform@@QE$AAAPE$AAVString@3@XZ,@249")
|
||||||
|
#pragma comment(linker, "/export:?get@HasInverse@Matrix3D@Media3D@Media@Xaml@UI@Windows@@QEAA_NXZ=wincorlib_orig.dll.?get@HasInverse@Matrix3D@Media3D@Media@Xaml@UI@Windows@@QEAA_NXZ,@250")
|
||||||
|
#pragma comment(linker, "/export:?get@Message@Exception@Platform@@QE$AAAPE$AAVString@3@XZ=wincorlib_orig.dll.?get@Message@Exception@Platform@@QE$AAAPE$AAVString@3@XZ,@251")
|
||||||
|
#pragma comment(linker, "/export:?get@ObjectCount@Heap@Details@Platform@@SAHXZ=wincorlib_orig.dll.?get@ObjectCount@Heap@Details@Platform@@SAHXZ,@252")
|
||||||
|
#pragma comment(linker, "/export:?get@Right@Rect@Foundation@Windows@@QEAAMXZ=wincorlib_orig.dll.?get@Right@Rect@Foundation@Windows@@QEAAMXZ,@253")
|
||||||
|
#pragma comment(linker, "/export:?get@TrackingLevel@Heap@Details@Platform@@SA?AW4HeapAllocationTrackingLevel@34@XZ=wincorlib_orig.dll.?get@TrackingLevel@Heap@Details@Platform@@SA?AW4HeapAllocationTrackingLevel@34@XZ,@254")
|
||||||
|
#pragma comment(linker, "/export:?set@BreakOnAllocationId@Heap@Details@Platform@@SAXH@Z=wincorlib_orig.dll.?set@BreakOnAllocationId@Heap@Details@Platform@@SAXH@Z,@255")
|
||||||
|
#pragma comment(linker, "/export:?set@BreakOnFreeId@Heap@Details@Platform@@SAXH@Z=wincorlib_orig.dll.?set@BreakOnFreeId@Heap@Details@Platform@@SAXH@Z,@256")
|
||||||
|
#pragma comment(linker, "/export:?set@TrackingLevel@Heap@Details@Platform@@SAXW4HeapAllocationTrackingLevel@34@@Z=wincorlib_orig.dll.?set@TrackingLevel@Heap@Details@Platform@@SAXW4HeapAllocationTrackingLevel@34@@Z,@257")
|
||||||
|
#endif
|
73
ep_startmenu/ep_sm_main.c
Normal file
73
ep_startmenu/ep_sm_main.c
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
#include <Windows.h>
|
||||||
|
#include <valinet/hooking/iatpatch.h>
|
||||||
|
#include "ep_sm_forwards.h"
|
||||||
|
#pragma comment(lib, "Dbghelp.lib")
|
||||||
|
|
||||||
|
HMODULE hModule = NULL;
|
||||||
|
HMODULE hOrig = NULL;
|
||||||
|
wchar_t* (*pGetCmdArguments)(int*) = NULL;
|
||||||
|
SRWLOCK lockInstanced = { .Ptr = SRWLOCK_INIT };
|
||||||
|
BOOL bInstanced = FALSE;
|
||||||
|
|
||||||
|
BOOL start_GetProductInfo(DWORD dwOSMajorVersion, DWORD dwOSMinorVersion, DWORD dwSpMajorVersion, DWORD dwSpMinorVersion, PDWORD pdwReturnedProductType)
|
||||||
|
{
|
||||||
|
*pdwReturnedProductType = 119;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Init()
|
||||||
|
{
|
||||||
|
DWORD dwStartShowClassicMode = 0, dwSize = sizeof(DWORD);
|
||||||
|
RegGetValueW(HKEY_CURRENT_USER, L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced", L"Start_ShowClassicMode", RRF_RT_DWORD, NULL, &dwStartShowClassicMode, &dwSize);
|
||||||
|
if (dwStartShowClassicMode)
|
||||||
|
{
|
||||||
|
VnPatchIAT(GetModuleHandleW(NULL), "api-ms-win-core-sysinfo-l1-2-0.dll", "GetProductInfo", start_GetProductInfo);
|
||||||
|
}
|
||||||
|
HMODULE hMod;
|
||||||
|
GetModuleHandleExW(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS, hModule, &hMod);
|
||||||
|
bInstanced = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma comment(linker, "/export:?GetCmdArguments@Details@Platform@@YAPEAPEA_WPEAH@Z=GetCmdArguments")
|
||||||
|
wchar_t* GetCmdArguments(int* a1)
|
||||||
|
{
|
||||||
|
AcquireSRWLockExclusive(&lockInstanced);
|
||||||
|
if (!hOrig)
|
||||||
|
{
|
||||||
|
hOrig = LoadLibraryW(L"wincorlib_orig.dll");
|
||||||
|
if (hOrig)
|
||||||
|
{
|
||||||
|
pGetCmdArguments = GetProcAddress(hOrig, "?GetCmdArguments@Details@Platform@@YAPEAPEA_WPEAH@Z");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (pGetCmdArguments)
|
||||||
|
{
|
||||||
|
if (!bInstanced) Init();
|
||||||
|
ReleaseSRWLockExclusive(&lockInstanced);
|
||||||
|
return pGetCmdArguments(a1);
|
||||||
|
}
|
||||||
|
ReleaseSRWLockExclusive(&lockInstanced);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL WINAPI DllMain(
|
||||||
|
_In_ HINSTANCE hinstDLL,
|
||||||
|
_In_ DWORD fdwReason,
|
||||||
|
_In_ LPVOID lpvReserved
|
||||||
|
)
|
||||||
|
{
|
||||||
|
switch (fdwReason)
|
||||||
|
{
|
||||||
|
case DLL_PROCESS_ATTACH:
|
||||||
|
DisableThreadLibraryCalls(hinstDLL);
|
||||||
|
hModule = hinstDLL;
|
||||||
|
break;
|
||||||
|
case DLL_THREAD_ATTACH:
|
||||||
|
break;
|
||||||
|
case DLL_THREAD_DETACH:
|
||||||
|
break;
|
||||||
|
case DLL_PROCESS_DETACH:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
169
ep_startmenu/ep_startmenu.vcxproj
Normal file
169
ep_startmenu/ep_startmenu.vcxproj
Normal file
@ -0,0 +1,169 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug|x64">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>x64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|x64">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>x64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
</ItemGroup>
|
||||||
|
<PropertyGroup Label="Globals">
|
||||||
|
<VCProjectVersion>16.0</VCProjectVersion>
|
||||||
|
<Keyword>Win32Proj</Keyword>
|
||||||
|
<ProjectGuid>{6bf03eea-200a-4698-9555-057dd52b0c78}</ProjectGuid>
|
||||||
|
<RootNamespace>epstartmenu</RootNamespace>
|
||||||
|
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v142</PlatformToolset>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v142</PlatformToolset>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v142</PlatformToolset>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v142</PlatformToolset>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="Shared">
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<PropertyGroup Label="UserMacros" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<LinkIncremental>true</LinkIncremental>
|
||||||
|
<OutDir>$(SolutionDir)\build\$(Configuration)</OutDir>
|
||||||
|
<TargetName>$(ProjectName)</TargetName>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<LinkIncremental>false</LinkIncremental>
|
||||||
|
<OutDir>$(SolutionDir)\build\$(Configuration)</OutDir>
|
||||||
|
<TargetName>$(ProjectName)</TargetName>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
|
<LinkIncremental>true</LinkIncremental>
|
||||||
|
<OutDir>$(SolutionDir)\build\$(Configuration)</OutDir>
|
||||||
|
<TargetName>$(ProjectName)</TargetName>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
|
<LinkIncremental>false</LinkIncremental>
|
||||||
|
<OutDir>$(SolutionDir)\build\$(Configuration)</OutDir>
|
||||||
|
<TargetName>$(ProjectName)</TargetName>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<SDLCheck>true</SDLCheck>
|
||||||
|
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<ConformanceMode>true</ConformanceMode>
|
||||||
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
|
<AdditionalIncludeDirectories>$(SolutionDir)libs\libvalinet;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<SDLCheck>true</SDLCheck>
|
||||||
|
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<ConformanceMode>true</ConformanceMode>
|
||||||
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
|
<AdditionalIncludeDirectories>$(SolutionDir)libs\libvalinet;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<SDLCheck>true</SDLCheck>
|
||||||
|
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<ConformanceMode>true</ConformanceMode>
|
||||||
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
|
<AdditionalIncludeDirectories>$(SolutionDir)libs\libvalinet;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<SDLCheck>true</SDLCheck>
|
||||||
|
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<ConformanceMode>true</ConformanceMode>
|
||||||
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
|
<AdditionalIncludeDirectories>$(SolutionDir)libs\libvalinet;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClInclude Include="ep_sm_forwards.h" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="ep_sm_main.c" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ResourceCompile Include="..\ExplorerPatcher\ExplorerPatcher.rc" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
32
ep_startmenu/ep_startmenu.vcxproj.filters
Normal file
32
ep_startmenu/ep_startmenu.vcxproj.filters
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup>
|
||||||
|
<Filter Include="Source Files">
|
||||||
|
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||||
|
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="Header Files">
|
||||||
|
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||||
|
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="Resource Files">
|
||||||
|
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||||
|
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||||
|
</Filter>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClInclude Include="ep_sm_forwards.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="ep_sm_main.c">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ResourceCompile Include="..\ExplorerPatcher\ExplorerPatcher.rc">
|
||||||
|
<Filter>Resource Files</Filter>
|
||||||
|
</ResourceCompile>
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
Loading…
Reference in New Issue
Block a user