mirror of
https://github.com/valinet/ExplorerPatcher.git
synced 2024-12-24 13:25:00 +01:00
GetProcAddress for some stuff from uxtheme
This commit is contained in:
parent
215ac7952e
commit
c1af3103b0
@ -67,6 +67,16 @@ static HWND(WINAPI* CreateWindowInBand)(
|
|||||||
_In_opt_ LPVOID lpParam,
|
_In_opt_ LPVOID lpParam,
|
||||||
DWORD band
|
DWORD band
|
||||||
);
|
);
|
||||||
|
|
||||||
|
static void(*SetPreferredAppMode)(INT64 bAllowDark);
|
||||||
|
|
||||||
|
static void(*AllowDarkModeForWindow)(HWND hWnd, INT64 bAllowDark);
|
||||||
|
|
||||||
|
static BOOL(*ShouldAppsUseDarkMode)();
|
||||||
|
|
||||||
|
static void(*GetThemeName)(void*, void*, void*);
|
||||||
|
|
||||||
|
static BOOL AppsShouldUseDarkMode() { return TRUE; }
|
||||||
#pragma endregion
|
#pragma endregion
|
||||||
|
|
||||||
|
|
||||||
@ -622,7 +632,7 @@ HWND WINAPI explorerframe_SHCreateWorkerWindowHook(
|
|||||||
if (hStartIsBack64 && bMicaEffectOnTitlebar)
|
if (hStartIsBack64 && bMicaEffectOnTitlebar)
|
||||||
{
|
{
|
||||||
BOOL value = TRUE;
|
BOOL value = TRUE;
|
||||||
DwmSetWindowAttribute(hWndParent, 1029, &value, sizeof(BOOL)); // Set Mica effect on title bar
|
DwmSetWindowAttribute(hWndParent, DWMWA_MICA_EFFFECT, &value, sizeof(BOOL)); // Set Mica effect on title bar
|
||||||
SetWindowSubclass(
|
SetWindowSubclass(
|
||||||
result,
|
result,
|
||||||
(uintptr_t)hStartIsBack64 + SB_MICA_EFFECT_SUBCLASS_OFFSET,
|
(uintptr_t)hStartIsBack64 + SB_MICA_EFFECT_SUBCLASS_OFFSET,
|
||||||
@ -1338,10 +1348,18 @@ __declspec(dllexport) DWORD WINAPI main(
|
|||||||
|
|
||||||
|
|
||||||
HANDLE hUser32 = LoadLibraryW(L"user32.dll");
|
HANDLE hUser32 = LoadLibraryW(L"user32.dll");
|
||||||
if (hUser32) CreateWindowInBand = GetProcAddress(hUser32, "CreateWindowInBand");
|
CreateWindowInBand = GetProcAddress(hUser32, "CreateWindowInBand");
|
||||||
printf("Setup user32 functions done\n");
|
printf("Setup user32 functions done\n");
|
||||||
|
|
||||||
|
|
||||||
|
HANDLE hUxtheme = LoadLibraryW(L"uxtheme.dll");
|
||||||
|
SetPreferredAppMode = GetProcAddress(hUxtheme, (LPCSTR)0x87);
|
||||||
|
AllowDarkModeForWindow = GetProcAddress(hUxtheme, (LPCSTR)0x85);
|
||||||
|
ShouldAppsUseDarkMode = GetProcAddress(hUxtheme, (LPCSTR)0x84);
|
||||||
|
GetThemeName = GetProcAddress(hUxtheme, (LPCSTR)0x4A);
|
||||||
|
printf("Setup uxtheme functions done\n");
|
||||||
|
|
||||||
|
|
||||||
HANDLE hTwinuiPcshell = LoadLibraryW(L"twinui.pcshell.dll");
|
HANDLE hTwinuiPcshell = LoadLibraryW(L"twinui.pcshell.dll");
|
||||||
|
|
||||||
CImmersiveContextMenuOwnerDrawHelper_s_ContextMenuWndProcFunc = (INT64(*)(HWND, int, HWND, int, BOOL*))
|
CImmersiveContextMenuOwnerDrawHelper_s_ContextMenuWndProcFunc = (INT64(*)(HWND, int, HWND, int, BOOL*))
|
||||||
|
@ -3,6 +3,9 @@
|
|||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
#include <tchar.h>
|
#include <tchar.h>
|
||||||
#include <windows.data.xml.dom.h>
|
#include <windows.data.xml.dom.h>
|
||||||
|
#include <accctrl.h>
|
||||||
|
#include <aclapi.h>
|
||||||
|
#include <sddl.h>
|
||||||
#include <Shlobj_core.h>
|
#include <Shlobj_core.h>
|
||||||
#define _LIBVALINET_INCLUDE_UNIVERSAL
|
#define _LIBVALINET_INCLUDE_UNIVERSAL
|
||||||
#include <valinet/universal/toast/toast.h>
|
#include <valinet/universal/toast/toast.h>
|
||||||
@ -12,6 +15,44 @@
|
|||||||
#define SPECIAL_FOLDER CSIDL_APPDATA
|
#define SPECIAL_FOLDER CSIDL_APPDATA
|
||||||
#define APP_RELATIVE_PATH "\\ExplorerPatcher"
|
#define APP_RELATIVE_PATH "\\ExplorerPatcher"
|
||||||
|
|
||||||
|
// This allows compiling with older Windows SDKs as well
|
||||||
|
#ifndef DWMWA_USE_HOSTBACKDROPBRUSH
|
||||||
|
#define DWMWA_USE_HOSTBACKDROPBRUSH 17 // [set] BOOL, Allows the use of host backdrop brushes for the window.
|
||||||
|
#endif
|
||||||
|
#ifndef DWMWA_USE_IMMERSIVE_DARK_MODE
|
||||||
|
#define DWMWA_USE_IMMERSIVE_DARK_MODE 20 // [set] BOOL, Allows a window to either use the accent color, or dark, according to the user Color Mode preferences.
|
||||||
|
#endif
|
||||||
|
#ifndef DWMWCP_DEFAULT
|
||||||
|
#define DWMWCP_DEFAULT 0
|
||||||
|
#endif
|
||||||
|
#ifndef DWMWCP_DONOTROUND
|
||||||
|
#define DWMWCP_DONOTROUND 1
|
||||||
|
#endif
|
||||||
|
#ifndef DWMWCP_ROUND
|
||||||
|
#define DWMWCP_ROUND 2
|
||||||
|
#endif
|
||||||
|
#ifndef DWMWCP_ROUNDSMALL
|
||||||
|
#define DWMWCP_ROUNDSMALL 3
|
||||||
|
#endif
|
||||||
|
#ifndef DWMWA_WINDOW_CORNER_PREFERENCE
|
||||||
|
#define DWMWA_WINDOW_CORNER_PREFERENCE 33 // [set] WINDOW_CORNER_PREFERENCE, Controls the policy that rounds top-level window corners
|
||||||
|
#endif
|
||||||
|
#ifndef DWMWA_BORDER_COLOR
|
||||||
|
#define DWMWA_BORDER_COLOR 34 // [set] COLORREF, The color of the thin border around a top-level window
|
||||||
|
#endif
|
||||||
|
#ifndef DWMWA_CAPTION_COLOR
|
||||||
|
#define DWMWA_CAPTION_COLOR 35 // [set] COLORREF, The color of the caption
|
||||||
|
#endif
|
||||||
|
#ifndef DWMWA_TEXT_COLOR
|
||||||
|
#define DWMWA_TEXT_COLOR 36 // [set] COLORREF, The color of the caption text
|
||||||
|
#endif
|
||||||
|
#ifndef DWMWA_VISIBLE_FRAME_BORDER_THICKNESS
|
||||||
|
#define DWMWA_VISIBLE_FRAME_BORDER_THICKNESS 37 // [get] UINT, width of the visible border around a thick frame window
|
||||||
|
#endif
|
||||||
|
#ifndef DWMWA_MICA_EFFFECT
|
||||||
|
#define DWMWA_MICA_EFFFECT 1029
|
||||||
|
#endif
|
||||||
|
|
||||||
#pragma region "Weird stuff"
|
#pragma region "Weird stuff"
|
||||||
INT64 nimpl4_1(INT64 a1, DWORD* a2);
|
INT64 nimpl4_1(INT64 a1, DWORD* a2);
|
||||||
INT64 nimpl4_0(INT64 a1, DWORD* a2);
|
INT64 nimpl4_0(INT64 a1, DWORD* a2);
|
||||||
|
Loading…
Reference in New Issue
Block a user