forgot about this repo
This commit is contained in:
parent
f45b3c95f1
commit
93695b1c96
3 changed files with 552 additions and 0 deletions
93
classic-explorer-toolbars.wh.cpp
Normal file
93
classic-explorer-toolbars.wh.cpp
Normal file
|
@ -0,0 +1,93 @@
|
|||
// ==WindhawkMod==
|
||||
// @id classic-explorer-toolbars
|
||||
// @name Classic Explorer Toolbars
|
||||
// @description Restyles Explorer toolbars to fit in with classic theme
|
||||
// @version 1.0.1
|
||||
// @author Cynosphere
|
||||
// @github https://github.com/Cynosphere
|
||||
// @homepage https://c7.pm
|
||||
// @include explorer.exe
|
||||
// @compilerOptions -lcomdlg32
|
||||
// ==/WindhawkMod==
|
||||
|
||||
// ==WindhawkModReadme==
|
||||
/*
|
||||
# Classic Explorer Toolbars
|
||||
Restyles Explorer toolbars to fit in with classic theme
|
||||
|
||||
## Changelog
|
||||
**1.0.1** (2023/12/10)
|
||||
- Fix applying to taskbar
|
||||
|
||||
**1.0.0** (2023/11/27)
|
||||
- Initial release
|
||||
*/
|
||||
// ==/WindhawkModReadme==
|
||||
|
||||
#include <windhawk_utils.h>
|
||||
|
||||
#ifdef _WIN64
|
||||
# define THISCALL __cdecl
|
||||
# define STHISCALL L"__cdecl"
|
||||
#else
|
||||
# define THISCALL __thiscall
|
||||
# define STHISCALL L"__thiscall"
|
||||
#endif
|
||||
|
||||
typedef long (THISCALL *BandSite__Initialize_t)(int* pThis, HWND hWnd);
|
||||
BandSite__Initialize_t CBandSite__Initialize_orig;
|
||||
long THISCALL CBandSite__Initialize_hook(int* pThis, HWND hWnd) {
|
||||
long ret = CBandSite__Initialize_orig(pThis, hWnd);
|
||||
|
||||
// FIXME: pointer math bad!
|
||||
HWND barHwnd = *((HWND *)pThis + 17);
|
||||
|
||||
if (barHwnd) {
|
||||
HWND parentHwnd = GetParent(barHwnd);
|
||||
WCHAR lpParCls[256];
|
||||
GetClassNameW(parentHwnd, lpParCls, 256);
|
||||
|
||||
if (!wcscmp(lpParCls, L"WorkerW")) {
|
||||
LONG style = GetWindowLongPtrW(barHwnd, GWL_STYLE);
|
||||
style |= RBS_BANDBORDERS;
|
||||
style |= WS_BORDER;
|
||||
SetWindowLongPtrW(barHwnd, GWL_STYLE, style);
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
BOOL Wh_ModInit() {
|
||||
HMODULE hExplorerFrame = LoadLibraryW(L"ExplorerFrame.dll");
|
||||
if (!hExplorerFrame)
|
||||
{
|
||||
Wh_Log(L"Failed to load ExplorerFrame.dll");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
const WindhawkUtils::SYMBOL_HOOK hooks[] = {
|
||||
{
|
||||
{
|
||||
L"protected: virtual long "
|
||||
STHISCALL
|
||||
L" CBandSite::_Initialize(struct HWND__ *)"
|
||||
},
|
||||
&CBandSite__Initialize_orig,
|
||||
CBandSite__Initialize_hook,
|
||||
false
|
||||
}
|
||||
};
|
||||
|
||||
if (!WindhawkUtils::HookSymbols(
|
||||
hExplorerFrame,
|
||||
hooks,
|
||||
ARRAYSIZE(hooks)
|
||||
))
|
||||
{
|
||||
Wh_Log(L"Failed to hook CBandSite::_Initialize");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
67
hide-navigation-bar.wh.cpp
Normal file
67
hide-navigation-bar.wh.cpp
Normal file
|
@ -0,0 +1,67 @@
|
|||
// ==WindhawkMod==
|
||||
// @id hide-navigation-bar
|
||||
// @name Hide Navigation Bar
|
||||
// @description Hide navigation bar by removing it entirely
|
||||
// @version 0.1
|
||||
// @author Cynosphere
|
||||
// @github https://github.com/Cynosphere
|
||||
// @homepage https://c7.pm
|
||||
// @include explorer.exe
|
||||
// @compilerOptions -lcomdlg32
|
||||
// ==/WindhawkMod==
|
||||
|
||||
// ==WindhawkModReadme==
|
||||
/*
|
||||
# Hide Navigation Bar
|
||||
*/
|
||||
// ==/WindhawkModReadme==
|
||||
|
||||
#include <windhawk_utils.h>
|
||||
|
||||
#ifdef _WIN64
|
||||
# define THISCALL __cdecl
|
||||
# define STHISCALL L"__cdecl"
|
||||
#else
|
||||
# define THISCALL __thiscall
|
||||
# define STHISCALL L"__thiscall"
|
||||
#endif
|
||||
|
||||
typedef long (THISCALL *CNavBar__CreateBar_t)(void *);
|
||||
CNavBar__CreateBar_t CNavBar__CreateBar_orig;
|
||||
long THISCALL CNavBar__CreateBar_hook(void *pThis) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
BOOL Wh_ModInit() {
|
||||
HMODULE hExplorerFrame = LoadLibraryW(L"ExplorerFrame.dll");
|
||||
if (!hExplorerFrame)
|
||||
{
|
||||
Wh_Log(L"Failed to load ExplorerFrame.dll");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
const WindhawkUtils::SYMBOL_HOOK hooks[] = {
|
||||
{
|
||||
{
|
||||
L"protected: long "
|
||||
STHISCALL
|
||||
L" CNavBar::_CreateBar(void)"
|
||||
},
|
||||
&CNavBar__CreateBar_orig,
|
||||
CNavBar__CreateBar_hook,
|
||||
false
|
||||
}
|
||||
};
|
||||
|
||||
if (!WindhawkUtils::HookSymbols(
|
||||
hExplorerFrame,
|
||||
hooks,
|
||||
ARRAYSIZE(hooks)
|
||||
))
|
||||
{
|
||||
Wh_Log(L"Failed to hook CAddressBand::_CreateAddressBand");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
392
winver-customizer.wh.cpp
Normal file
392
winver-customizer.wh.cpp
Normal file
|
@ -0,0 +1,392 @@
|
|||
// ==WindhawkMod==
|
||||
// @id winver-customizer
|
||||
// @name Winver Customizer
|
||||
// @description Modify winver without system mods
|
||||
// @version 1.0.0
|
||||
// @author Cynosphere
|
||||
// @github https://github.com/cynosphere
|
||||
// @homepage https://c7.pm
|
||||
// @include *
|
||||
// ==/WindhawkMod==
|
||||
|
||||
// ==WindhawkModReadme==
|
||||
/*
|
||||
# Winver Customizer
|
||||
Customize winver without system mods
|
||||
|
||||
- Choose different layouts from different OS iterations
|
||||
- Replace the banner with whatever image you want. **All pixels set to #FFFFFF will become transparent!**
|
||||
*/
|
||||
// ==/WindhawkModReadme==
|
||||
|
||||
// ==WindhawkModSettings==
|
||||
/*
|
||||
- banner: ""
|
||||
$name: Banner path
|
||||
$description: Must be a bitmap
|
||||
- layout: default
|
||||
$name: Layout
|
||||
$description: What OS layout to use
|
||||
$options:
|
||||
- default: System default
|
||||
- 2k: Windows 2000
|
||||
- xpsp1: Windows XP (SP1 and earlier)
|
||||
- xpsp2: Windows XP (SP2 and later)
|
||||
- vista: Windows Vista
|
||||
*/
|
||||
// ==/WindhawkModSettings==
|
||||
|
||||
#include <windhawk_api.h>
|
||||
#include <windhawk_utils.h>
|
||||
#include <winnt.h>
|
||||
|
||||
// https://www.codeproject.com/articles/13330/using-dialog-templates-to-create-an-inputbox-in-c
|
||||
static unsigned char TEMPLATE_LAYOUT_2K[] = {
|
||||
0x01,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc8,0x00,0xc8,0x80,0x0c,
|
||||
0x00,0x14,0x00,0x14,0x00,0x13,0x01,0x8c,0x00,0x00,0x00,0x00,0x00,0x41,0x00,0x62,
|
||||
0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x25,0x00,0x73,0x00,0x00,0x00,0x08,
|
||||
0x00,0x00,0x00,0x00,0x00,0x4d,0x00,0x53,0x00,0x20,0x00,0x53,0x00,0x68,0x00,0x65,
|
||||
0x00,0x6c,0x00,0x6c,0x00,0x20,0x00,0x44,0x00,0x6c,0x00,0x67,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x50,0x15,0x00,0x07,0x00,0x12,
|
||||
0x00,0x14,0x00,0x09,0x30,0x00,0x00,0xff,0xff,0x82,0x00,0xff,0xff,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8c,0x00,0x00,0x50,0x46,
|
||||
0x00,0x07,0x00,0xa5,0x00,0x0a,0x00,0x00,0x35,0x00,0x00,0xff,0xff,0x82,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8c,0x00,0x00,0x50,0x46,
|
||||
0x00,0x11,0x00,0x96,0x00,0x0a,0x00,0x0b,0x35,0x00,0x00,0xff,0xff,0x82,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x50,0x46,
|
||||
0x00,0x1c,0x00,0xcd,0x00,0x0a,0x00,0x0a,0x35,0x00,0x00,0xff,0xff,0x82,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x50,0x46,
|
||||
0x00,0x26,0x00,0x91,0x00,0x14,0x00,0x0d,0x35,0x00,0x00,0xff,0xff,0x82,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x50,0x46,
|
||||
0x00,0x39,0x00,0x91,0x00,0x0a,0x00,0x12,0x35,0x00,0x00,0x53,0x00,0x79,0x00,0x73,
|
||||
0x00,0x4c,0x00,0x69,0x00,0x6e,0x00,0x6b,0x00,0x00,0x00,0x54,0x00,0x68,0x00,0x69,
|
||||
0x00,0x73,0x00,0x20,0x00,0x70,0x00,0x72,0x00,0x6f,0x00,0x64,0x00,0x75,0x00,0x63,
|
||||
0x00,0x74,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x6c,0x00,0x69,0x00,0x63,
|
||||
0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x74,0x00,0x6f,
|
||||
0x00,0x3a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
|
||||
0x00,0x00,0x50,0x46,0x00,0x44,0x00,0x91,0x00,0x0a,0x00,0x07,0x35,0x00,0x00,0xff,
|
||||
0xff,0x82,0x00,0x75,0x00,0x73,0x00,0x65,0x00,0x72,0x00,0x20,0x00,0x6e,0x00,0x61,
|
||||
0x00,0x6d,0x00,0x65,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x80,0x00,0x00,0x50,0x46,0x00,0x4e,0x00,0x91,0x00,0x0a,0x00,0x08,
|
||||
0x35,0x00,0x00,0xff,0xff,0x82,0x00,0x6f,0x00,0x72,0x00,0x67,0x00,0x20,0x00,0x6e,
|
||||
0x00,0x61,0x00,0x6d,0x00,0x65,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x10,0x00,0x00,0x50,0x46,0x00,0x5a,0x00,0xc6,0x00,0x01,0x00,0x27,
|
||||
0x33,0x00,0x00,0xff,0xff,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x80,0x00,0x00,0x50,0x46,0x00,0x5f,0x00,0xe6,0x00,0x0a,0x00,0x02,
|
||||
0x35,0x00,0x00,0xff,0xff,0x82,0x00,0x50,0x00,0x68,0x00,0x79,0x00,0x73,0x00,0x69,
|
||||
0x00,0x63,0x00,0x61,0x00,0x6c,0x00,0x20,0x00,0x6d,0x00,0x65,0x00,0x6d,0x00,0x6f,
|
||||
0x00,0x72,0x00,0x79,0x00,0x20,0x00,0x61,0x00,0x76,0x00,0x61,0x00,0x69,0x00,0x6c,
|
||||
0x00,0x61,0x00,0x62,0x00,0x6c,0x00,0x65,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,
|
||||
0x00,0x57,0x00,0x69,0x00,0x6e,0x00,0x64,0x00,0x6f,0x00,0x77,0x00,0x73,0x00,0x3a,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
|
||||
0x00,0x00,0x50,0xca,0x00,0x5f,0x00,0x35,0x00,0x0a,0x00,0x03,0x35,0x00,0x00,0xff,
|
||||
0xff,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
|
||||
0x00,0x01,0x50,0xdc,0x00,0x79,0x00,0x32,0x00,0x0e,0x00,0x01,0x00,0x00,0x00,0xff,
|
||||
0xff,0x80,0x00,0x4f,0x00,0x4b,0x00,0x00,0x00,0x00,0x00
|
||||
};
|
||||
|
||||
static unsigned char TEMPLATE_LAYOUT_XPSP1[] = {
|
||||
0x01,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc8,0x00,0xc8,0x80,0x0c,
|
||||
0x00,0x14,0x00,0x14,0x00,0x13,0x01,0x96,0x00,0x00,0x00,0x00,0x00,0x41,0x00,0x62,
|
||||
0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x25,0x00,0x73,0x00,0x00,0x00,0x08,
|
||||
0x00,0x00,0x00,0x00,0x00,0x4d,0x00,0x53,0x00,0x20,0x00,0x53,0x00,0x68,0x00,0x65,
|
||||
0x00,0x6c,0x00,0x6c,0x00,0x20,0x00,0x44,0x00,0x6c,0x00,0x67,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x43,0x00,0x00,0x50,0x15,0x00,0x07,0x00,0x15,
|
||||
0x00,0x14,0x00,0x09,0x30,0x00,0x00,0xff,0xff,0x82,0x00,0xff,0xff,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8c,0x00,0x00,0x50,0x46,
|
||||
0x00,0x07,0x00,0xa5,0x00,0x0a,0x00,0x00,0x35,0x00,0x00,0xff,0xff,0x82,0x00,0x4d,
|
||||
0x00,0x69,0x00,0x63,0x00,0x72,0x00,0x6f,0x00,0x73,0x00,0x6f,0x00,0x66,0x00,0x74,
|
||||
0x00,0x20,0x00,0xae,0x00,0x20,0x00,0x25,0x00,0x73,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8c,0x00,0x00,0x50,0x46,0x00,0x12,0x00,0xc8,
|
||||
0x00,0x0a,0x00,0x0b,0x35,0x00,0x00,0xff,0xff,0x82,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x50,0x46,0x00,0x1c,0x00,0xaf,
|
||||
0x00,0x0a,0x00,0x0a,0x35,0x00,0x00,0xff,0xff,0x82,0x00,0x43,0x00,0x6f,0x00,0x70,
|
||||
0x00,0x79,0x00,0x72,0x00,0x69,0x00,0x67,0x00,0x68,0x00,0x74,0x00,0x20,0x00,0xa9,
|
||||
0x00,0x20,0x00,0x25,0x00,0x73,0x00,0x20,0x00,0x4d,0x00,0x69,0x00,0x63,0x00,0x72,
|
||||
0x00,0x6f,0x00,0x73,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x20,0x00,0x43,0x00,0x6f,
|
||||
0x00,0x72,0x00,0x70,0x00,0x6f,0x00,0x72,0x00,0x61,0x00,0x74,0x00,0x69,0x00,0x6f,
|
||||
0x00,0x6e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
|
||||
0x00,0x00,0x50,0x46,0x00,0x26,0x00,0x91,0x00,0x14,0x00,0x0d,0x35,0x00,0x00,0xff,
|
||||
0xff,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x50,0x46,0x00,0x3a,0x00,0x91,0x00,0x14,0x00,0x12,0x35,0x00,0x00,0x53,
|
||||
0x00,0x79,0x00,0x73,0x00,0x4c,0x00,0x69,0x00,0x6e,0x00,0x6b,0x00,0x00,0x00,0x54,
|
||||
0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x70,0x00,0x72,0x00,0x6f,0x00,0x64,
|
||||
0x00,0x75,0x00,0x63,0x00,0x74,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x6c,
|
||||
0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x64,0x00,0x20,
|
||||
0x00,0x75,0x00,0x6e,0x00,0x64,0x00,0x65,0x00,0x72,0x00,0x20,0x00,0x74,0x00,0x68,
|
||||
0x00,0x65,0x00,0x20,0x00,0x74,0x00,0x65,0x00,0x72,0x00,0x6d,0x00,0x73,0x00,0x20,
|
||||
0x00,0x6f,0x00,0x66,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x3c,
|
||||
0x00,0x41,0x00,0x3e,0x00,0x45,0x00,0x6e,0x00,0x64,0x00,0x2d,0x00,0x55,0x00,0x73,
|
||||
0x00,0x65,0x00,0x72,0x00,0x20,0x00,0x4c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,
|
||||
0x00,0x73,0x00,0x65,0x00,0x20,0x00,0x41,0x00,0x67,0x00,0x72,0x00,0x65,0x00,0x65,
|
||||
0x00,0x6d,0x00,0x65,0x00,0x6e,0x00,0x74,0x00,0x3c,0x00,0x2f,0x00,0x41,0x00,0x3e,
|
||||
0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x3a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x50,0x50,0x00,0x4e,0x00,0x91,
|
||||
0x00,0x0a,0x00,0x07,0x35,0x00,0x00,0xff,0xff,0x82,0x00,0x75,0x00,0x73,0x00,0x65,
|
||||
0x00,0x72,0x00,0x20,0x00,0x6e,0x00,0x61,0x00,0x6d,0x00,0x65,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x50,0x50,
|
||||
0x00,0x57,0x00,0x91,0x00,0x0a,0x00,0x08,0x35,0x00,0x00,0xff,0xff,0x82,0x00,0x6f,
|
||||
0x00,0x72,0x00,0x67,0x00,0x20,0x00,0x6e,0x00,0x61,0x00,0x6d,0x00,0x65,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x50,0x46,
|
||||
0x00,0x64,0x00,0xc7,0x00,0x01,0x00,0x27,0x33,0x00,0x00,0xff,0xff,0x82,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x50,0x46,
|
||||
0x00,0x69,0x00,0x82,0x00,0x0a,0x00,0x02,0x35,0x00,0x00,0xff,0xff,0x82,0x00,0x50,
|
||||
0x00,0x68,0x00,0x79,0x00,0x73,0x00,0x69,0x00,0x63,0x00,0x61,0x00,0x6c,0x00,0x20,
|
||||
0x00,0x6d,0x00,0x65,0x00,0x6d,0x00,0x6f,0x00,0x72,0x00,0x79,0x00,0x20,0x00,0x61,
|
||||
0x00,0x76,0x00,0x61,0x00,0x69,0x00,0x6c,0x00,0x61,0x00,0x62,0x00,0x6c,0x00,0x65,
|
||||
0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x57,0x00,0x69,0x00,0x6e,0x00,0x64,
|
||||
0x00,0x6f,0x00,0x77,0x00,0x73,0x00,0x3a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x50,0xca,0x00,0x69,0x00,0x35,
|
||||
0x00,0x0a,0x00,0x03,0x35,0x00,0x00,0xff,0xff,0x82,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x50,0xdc,0x00,0x82,0x00,0x32,
|
||||
0x00,0x0e,0x00,0x01,0x00,0x00,0x00,0xff,0xff,0x80,0x00,0x4f,0x00,0x4b,0x00,0x00,
|
||||
0x00,0x00,0x00
|
||||
};
|
||||
|
||||
static unsigned char TEMPLATE_LAYOUT_XPSP2[] = {
|
||||
0x01,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc8,0x00,0xc8,0x80,0x0c,
|
||||
0x00,0x14,0x00,0x14,0x00,0x13,0x01,0x97,0x00,0x00,0x00,0x00,0x00,0x41,0x00,0x62,
|
||||
0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x25,0x00,0x73,0x00,0x00,0x00,0x08,
|
||||
0x00,0x00,0x00,0x00,0x00,0x4d,0x00,0x53,0x00,0x20,0x00,0x53,0x00,0x68,0x00,0x65,
|
||||
0x00,0x6c,0x00,0x6c,0x00,0x20,0x00,0x44,0x00,0x6c,0x00,0x67,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x43,0x00,0x00,0x50,0x07,0x00,0x07,0x00,0x15,
|
||||
0x00,0x14,0x00,0x09,0x30,0x00,0x00,0xff,0xff,0x82,0x00,0xff,0xff,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8c,0x00,0x00,0x50,0x23,
|
||||
0x00,0x07,0x00,0xc8,0x00,0x0a,0x00,0x00,0x35,0x00,0x00,0xff,0xff,0x82,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8c,0x00,0x00,0x50,0x24,
|
||||
0x00,0x12,0x00,0xeb,0x00,0x0a,0x00,0x0b,0x35,0x00,0x00,0xff,0xff,0x82,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x50,0x23,
|
||||
0x00,0x1c,0x00,0xd2,0x00,0x0a,0x00,0x0a,0x35,0x00,0x00,0xff,0xff,0x82,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x50,0x23,
|
||||
0x00,0x26,0x00,0xb4,0x00,0x14,0x00,0x0d,0x35,0x00,0x00,0xff,0xff,0x82,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0x23,
|
||||
0x00,0x3a,0x00,0xb4,0x00,0x14,0x00,0x12,0x35,0x00,0x00,0x53,0x00,0x79,0x00,0x73,
|
||||
0x00,0x4c,0x00,0x69,0x00,0x6e,0x00,0x6b,0x00,0x00,0x00,0x54,0x00,0x68,0x00,0x69,
|
||||
0x00,0x73,0x00,0x20,0x00,0x70,0x00,0x72,0x00,0x6f,0x00,0x64,0x00,0x75,0x00,0x63,
|
||||
0x00,0x74,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x6c,0x00,0x69,0x00,0x63,
|
||||
0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x75,0x00,0x6e,
|
||||
0x00,0x64,0x00,0x65,0x00,0x72,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,
|
||||
0x00,0x74,0x00,0x65,0x00,0x72,0x00,0x6d,0x00,0x73,0x00,0x20,0x00,0x6f,0x00,0x66,
|
||||
0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x3c,0x00,0x41,0x00,0x3e,
|
||||
0x00,0x45,0x00,0x6e,0x00,0x64,0x00,0x2d,0x00,0x55,0x00,0x73,0x00,0x65,0x00,0x72,
|
||||
0x00,0x20,0x00,0x4c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,
|
||||
0x00,0x20,0x00,0x41,0x00,0x67,0x00,0x72,0x00,0x65,0x00,0x65,0x00,0x6d,0x00,0x65,
|
||||
0x00,0x6e,0x00,0x74,0x00,0x3c,0x00,0x2f,0x00,0x41,0x00,0x3e,0x00,0x20,0x00,0x74,
|
||||
0x00,0x6f,0x00,0x3a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x80,0x00,0x00,0x50,0x2d,0x00,0x4e,0x00,0xb4,0x00,0x0a,0x00,0x07,
|
||||
0x35,0x00,0x00,0xff,0xff,0x82,0x00,0x75,0x00,0x73,0x00,0x65,0x00,0x72,0x00,0x20,
|
||||
0x00,0x6e,0x00,0x61,0x00,0x6d,0x00,0x65,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x50,0x2d,0x00,0x57,0x00,0xb4,
|
||||
0x00,0x0a,0x00,0x08,0x35,0x00,0x00,0xff,0xff,0x82,0x00,0x6f,0x00,0x72,0x00,0x67,
|
||||
0x00,0x20,0x00,0x6e,0x00,0x61,0x00,0x6d,0x00,0x65,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x50,0x23,0x00,0x64,0x00,0xea,
|
||||
0x00,0x01,0x00,0x27,0x33,0x00,0x00,0xff,0xff,0x82,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x50,0x23,0x00,0x69,0x00,0x82,
|
||||
0x00,0x0a,0x00,0x02,0x35,0x00,0x00,0xff,0xff,0x82,0x00,0x50,0x00,0x68,0x00,0x79,
|
||||
0x00,0x73,0x00,0x69,0x00,0x63,0x00,0x61,0x00,0x6c,0x00,0x20,0x00,0x6d,0x00,0x65,
|
||||
0x00,0x6d,0x00,0x6f,0x00,0x72,0x00,0x79,0x00,0x20,0x00,0x61,0x00,0x76,0x00,0x61,
|
||||
0x00,0x69,0x00,0x6c,0x00,0x61,0x00,0x62,0x00,0x6c,0x00,0x65,0x00,0x20,0x00,0x74,
|
||||
0x00,0x6f,0x00,0x20,0x00,0x57,0x00,0x69,0x00,0x6e,0x00,0x64,0x00,0x6f,0x00,0x77,
|
||||
0x00,0x73,0x00,0x3a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x80,0x00,0x00,0x50,0xa7,0x00,0x69,0x00,0x58,0x00,0x0a,0x00,0x03,
|
||||
0x35,0x00,0x00,0xff,0xff,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x01,0x00,0x01,0x50,0xdc,0x00,0x82,0x00,0x32,0x00,0x0e,0x00,0x01,
|
||||
0x00,0x00,0x00,0xff,0xff,0x80,0x00,0x4f,0x00,0x4b,0x00,0x00,0x00,0x00,0x00
|
||||
};
|
||||
|
||||
static unsigned char TEMPLATE_LAYOUT_VISTA[] = {
|
||||
0x01,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc8,0x00,0xc8,0x80,0x0c,
|
||||
0x00,0x14,0x00,0x14,0x00,0x13,0x01,0xbf,0x00,0x00,0x00,0x00,0x00,0x41,0x00,0x62,
|
||||
0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x25,0x00,0x73,0x00,0x00,0x00,0x08,
|
||||
0x00,0x00,0x00,0x00,0x00,0x4d,0x00,0x53,0x00,0x20,0x00,0x53,0x00,0x68,0x00,0x65,
|
||||
0x00,0x6c,0x00,0x6c,0x00,0x20,0x00,0x44,0x00,0x6c,0x00,0x67,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x43,0x00,0x00,0x50,0x07,0x00,0x07,0x00,0x15,
|
||||
0x00,0x14,0x00,0x09,0x30,0x00,0x00,0xff,0xff,0x82,0x00,0xff,0xff,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8c,0x00,0x00,0x50,0x23,
|
||||
0x00,0x07,0x00,0xc8,0x00,0x0a,0x00,0x00,0x35,0x00,0x00,0xff,0xff,0x82,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8c,0x00,0x00,0x50,0x23,
|
||||
0x00,0x12,0x00,0xeb,0x00,0x0a,0x00,0x0b,0x35,0x00,0x00,0xff,0xff,0x82,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x50,0x23,
|
||||
0x00,0x1c,0x00,0xd2,0x00,0x0a,0x00,0x0a,0x35,0x00,0x00,0xff,0xff,0x82,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x50,0x23,
|
||||
0x00,0x26,0x00,0xd2,0x00,0x28,0x00,0x13,0x35,0x00,0x00,0xff,0xff,0x82,0x00,0x54,
|
||||
0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x25,0x00,0x57,0x00,0x49,0x00,0x4e,0x00,0x44,
|
||||
0x00,0x4f,0x00,0x57,0x00,0x53,0x00,0x5f,0x00,0x4c,0x00,0x4f,0x00,0x4e,0x00,0x47,
|
||||
0x00,0x25,0x00,0x20,0x00,0x6f,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x61,0x00,0x74,
|
||||
0x00,0x69,0x00,0x6e,0x00,0x67,0x00,0x20,0x00,0x73,0x00,0x79,0x00,0x73,0x00,0x74,
|
||||
0x00,0x65,0x00,0x6d,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20,0x00,0x69,
|
||||
0x00,0x74,0x00,0x73,0x00,0x20,0x00,0x75,0x00,0x73,0x00,0x65,0x00,0x72,0x00,0x20,
|
||||
0x00,0x69,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x72,0x00,0x66,0x00,0x61,0x00,0x63,
|
||||
0x00,0x65,0x00,0x20,0x00,0x61,0x00,0x72,0x00,0x65,0x00,0x20,0x00,0x70,0x00,0x72,
|
||||
0x00,0x6f,0x00,0x74,0x00,0x65,0x00,0x63,0x00,0x74,0x00,0x65,0x00,0x64,0x00,0x20,
|
||||
0x00,0x62,0x00,0x79,0x00,0x20,0x00,0x74,0x00,0x72,0x00,0x61,0x00,0x64,0x00,0x65,
|
||||
0x00,0x6d,0x00,0x61,0x00,0x72,0x00,0x6b,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,
|
||||
0x00,0x20,0x00,0x6f,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x72,0x00,0x20,0x00,0x70,
|
||||
0x00,0x65,0x00,0x6e,0x00,0x64,0x00,0x69,0x00,0x6e,0x00,0x67,0x00,0x20,0x00,0x6f,
|
||||
0x00,0x72,0x00,0x20,0x00,0x65,0x00,0x78,0x00,0x69,0x00,0x73,0x00,0x74,0x00,0x69,
|
||||
0x00,0x6e,0x00,0x67,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x6c,
|
||||
0x00,0x6c,0x00,0x65,0x00,0x63,0x00,0x74,0x00,0x75,0x00,0x61,0x00,0x6c,0x00,0x20,
|
||||
0x00,0x70,0x00,0x72,0x00,0x6f,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x74,0x00,0x79,
|
||||
0x00,0x20,0x00,0x72,0x00,0x69,0x00,0x67,0x00,0x68,0x00,0x74,0x00,0x73,0x00,0x20,
|
||||
0x00,0x69,0x00,0x6e,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x55,
|
||||
0x00,0x6e,0x00,0x69,0x00,0x74,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x53,0x00,0x74,
|
||||
0x00,0x61,0x00,0x74,0x00,0x65,0x00,0x73,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,
|
||||
0x00,0x20,0x00,0x6f,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x72,0x00,0x20,0x00,0x63,
|
||||
0x00,0x6f,0x00,0x75,0x00,0x6e,0x00,0x74,0x00,0x72,0x00,0x69,0x00,0x65,0x00,0x73,
|
||||
0x00,0x2e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
|
||||
0x00,0x00,0x50,0x23,0x00,0x4e,0x00,0xb4,0x00,0x14,0x00,0x0d,0x35,0x00,0x00,0xff,
|
||||
0xff,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x01,0x50,0x23,0x00,0x62,0x00,0xb4,0x00,0x14,0x00,0x12,0x35,0x00,0x00,0x53,
|
||||
0x00,0x79,0x00,0x73,0x00,0x4c,0x00,0x69,0x00,0x6e,0x00,0x6b,0x00,0x00,0x00,0x54,
|
||||
0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x70,0x00,0x72,0x00,0x6f,0x00,0x64,
|
||||
0x00,0x75,0x00,0x63,0x00,0x74,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x6c,
|
||||
0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x64,0x00,0x20,
|
||||
0x00,0x75,0x00,0x6e,0x00,0x64,0x00,0x65,0x00,0x72,0x00,0x20,0x00,0x74,0x00,0x68,
|
||||
0x00,0x65,0x00,0x20,0x00,0x3c,0x00,0x41,0x00,0x3e,0x00,0x4d,0x00,0x69,0x00,0x63,
|
||||
0x00,0x72,0x00,0x6f,0x00,0x73,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x20,0x00,0x53,
|
||||
0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x77,0x00,0x61,0x00,0x72,0x00,0x65,0x00,0x20,
|
||||
0x00,0x4c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x20,
|
||||
0x00,0x54,0x00,0x65,0x00,0x72,0x00,0x6d,0x00,0x73,0x00,0x3c,0x00,0x2f,0x00,0x41,
|
||||
0x00,0x3e,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x3a,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x50,0x2d,0x00,0x76,0x00,0xb4,
|
||||
0x00,0x0a,0x00,0x07,0x35,0x00,0x00,0xff,0xff,0x82,0x00,0x75,0x00,0x73,0x00,0x65,
|
||||
0x00,0x72,0x00,0x20,0x00,0x6e,0x00,0x61,0x00,0x6d,0x00,0x65,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x50,0x2d,
|
||||
0x00,0x7f,0x00,0xb4,0x00,0x0a,0x00,0x08,0x35,0x00,0x00,0xff,0xff,0x82,0x00,0x6f,
|
||||
0x00,0x72,0x00,0x67,0x00,0x20,0x00,0x6e,0x00,0x61,0x00,0x6d,0x00,0x65,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x50,0x23,
|
||||
0x00,0x8c,0x00,0xea,0x00,0x01,0x00,0x27,0x33,0x00,0x00,0xff,0xff,0x82,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x50,0x23,
|
||||
0x00,0x91,0x00,0xe6,0x00,0x0a,0x00,0x03,0x35,0x00,0x00,0xff,0xff,0x82,0x00,0x50,
|
||||
0x00,0x68,0x00,0x79,0x00,0x73,0x00,0x69,0x00,0x63,0x00,0x61,0x00,0x6c,0x00,0x20,
|
||||
0x00,0x6d,0x00,0x65,0x00,0x6d,0x00,0x6f,0x00,0x72,0x00,0x79,0x00,0x20,0x00,0x61,
|
||||
0x00,0x76,0x00,0x61,0x00,0x69,0x00,0x6c,0x00,0x61,0x00,0x62,0x00,0x6c,0x00,0x65,
|
||||
0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x25,0x00,0x73,0x00,0x3a,0x00,0x20,
|
||||
0x00,0x25,0x00,0x73,0x00,0x20,0x00,0x4b,0x00,0x42,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x50,0xdc,0x00,0xaa,0x00,0x32,
|
||||
0x00,0x0e,0x00,0x01,0x00,0x00,0x00,0xff,0xff,0x80,0x00,0x4f,0x00,0x4b,0x00,0x00,
|
||||
0x00,0x00,0x00
|
||||
};
|
||||
|
||||
typedef enum _LAYOUTTYPE
|
||||
{
|
||||
LAYOUT_DEFAULT = 0,
|
||||
LAYOUT_2K,
|
||||
LAYOUT_XPSP1,
|
||||
LAYOUT_XPSP2,
|
||||
LAYOUT_VISTA,
|
||||
} LAYOUTTYPE;
|
||||
|
||||
struct {
|
||||
wchar_t *banner;
|
||||
LAYOUTTYPE layout;
|
||||
} settings;
|
||||
|
||||
typedef HANDLE (CALLBACK *BrandingLoadImage_t)(wchar_t* a1, WORD* a2, UINT a3, int a4, int a5, UINT a6);
|
||||
BrandingLoadImage_t BrandingLoadImage_orig;
|
||||
HANDLE CALLBACK BrandingLoadImage_hook(wchar_t* a1, WORD* a2, UINT a3, int a4, int a5, UINT a6) {
|
||||
if (wcscmp(a1, L"Basebrd") == 0 && a2 == (WORD*)121) {
|
||||
if (wcscmp(settings.banner, L"") != 0) {
|
||||
HBITMAP hBanner = (HBITMAP)LoadImage(NULL, settings.banner, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
|
||||
if (hBanner) {
|
||||
return hBanner;
|
||||
} else {
|
||||
return BrandingLoadImage_orig(a1, a2, a3, a4, a5, a6);
|
||||
}
|
||||
} else {
|
||||
return BrandingLoadImage_orig(a1, a2, a3, a4, a5, a6);
|
||||
}
|
||||
}
|
||||
|
||||
return BrandingLoadImage_orig(a1, a2, a3, a4, a5, a6);
|
||||
}
|
||||
|
||||
typedef INT_PTR (CALLBACK *SHFusionDialogBoxParam_t)(HINSTANCE hInstance, LPCWSTR lpTemplateName, HWND hWndParent, DLGPROC lpDialogFunc, LPARAM dwInitParam);
|
||||
SHFusionDialogBoxParam_t SHFusionDialogBoxParam_orig;
|
||||
INT_PTR CALLBACK SHFusionDialogBoxParam_hook(HINSTANCE hInstance, LPCWSTR lpTemplateName, HWND hWndParent, DLGPROC lpDialogFunc, LPARAM dwInitParam) {
|
||||
if (lpTemplateName == (LPCWSTR)0x3810) {
|
||||
switch (settings.layout) {
|
||||
case LAYOUT_2K:
|
||||
return DialogBoxIndirectParamW(hInstance, (LPCDLGTEMPLATEW) TEMPLATE_LAYOUT_2K, hWndParent, lpDialogFunc, dwInitParam);
|
||||
case LAYOUT_XPSP1:
|
||||
return DialogBoxIndirectParamW(hInstance, (LPCDLGTEMPLATEW) TEMPLATE_LAYOUT_XPSP1, hWndParent, lpDialogFunc, dwInitParam);
|
||||
case LAYOUT_XPSP2:
|
||||
return DialogBoxIndirectParamW(hInstance, (LPCDLGTEMPLATEW) TEMPLATE_LAYOUT_XPSP2, hWndParent, lpDialogFunc, dwInitParam);
|
||||
case LAYOUT_VISTA:
|
||||
return DialogBoxIndirectParamW(hInstance, (LPCDLGTEMPLATEW) TEMPLATE_LAYOUT_VISTA, hWndParent, lpDialogFunc, dwInitParam);
|
||||
default:
|
||||
return SHFusionDialogBoxParam_orig(hInstance, lpTemplateName, hWndParent, lpDialogFunc, dwInitParam);
|
||||
}
|
||||
} else {
|
||||
return SHFusionDialogBoxParam_orig(hInstance, lpTemplateName, hWndParent, lpDialogFunc, dwInitParam);
|
||||
}
|
||||
|
||||
return SHFusionDialogBoxParam_orig(hInstance, lpTemplateName, hWndParent, lpDialogFunc, dwInitParam);
|
||||
}
|
||||
|
||||
void LoadSettings(void)
|
||||
{
|
||||
settings.banner = (wchar_t *)Wh_GetStringSetting(L"banner");
|
||||
|
||||
LPCWSTR szLayout = Wh_GetStringSetting(L"layout");
|
||||
if (wcscmp(szLayout, L"2k") == 0) {
|
||||
settings.layout = LAYOUT_2K;
|
||||
} else if (wcscmp(szLayout, L"xpsp1") == 0) {
|
||||
settings.layout = LAYOUT_XPSP1;
|
||||
} else if (wcscmp(szLayout, L"xpsp2") == 0) {
|
||||
settings.layout = LAYOUT_XPSP2;
|
||||
} else if (wcscmp(szLayout, L"vista") == 0) {
|
||||
settings.layout = LAYOUT_VISTA;
|
||||
} else {
|
||||
settings.layout = LAYOUT_DEFAULT;
|
||||
}
|
||||
Wh_FreeStringSetting(szLayout);
|
||||
}
|
||||
|
||||
BOOL Wh_ModInit(void)
|
||||
{
|
||||
LoadSettings();
|
||||
|
||||
HMODULE hWinbrand = LoadLibraryW(L"winbrand.dll");
|
||||
if (!hWinbrand) {
|
||||
Wh_Log(L"Failed to load winbrand.dll");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
WindhawkUtils::SYMBOL_HOOK bannerHook = {
|
||||
{L"BrandingLoadImage"},
|
||||
(void **)&BrandingLoadImage_orig,
|
||||
(void *)BrandingLoadImage_hook,
|
||||
false
|
||||
};
|
||||
|
||||
if (!WindhawkUtils::HookSymbols(hWinbrand, &bannerHook, 1)) {
|
||||
Wh_Log(L"Failed to hook BrandingLoadImage");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
HMODULE hShell32 = LoadLibraryW(L"shell32.dll");
|
||||
if (!hShell32) {
|
||||
Wh_Log(L"Failed to load shell32.dll");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
WindhawkUtils::SYMBOL_HOOK layoutHook = {
|
||||
{L"SHFusionDialogBoxParam"},
|
||||
(void **)&SHFusionDialogBoxParam_orig,
|
||||
(void *)SHFusionDialogBoxParam_hook,
|
||||
false
|
||||
};
|
||||
|
||||
if (!WindhawkUtils::HookSymbols(hShell32, &layoutHook, 1)) {
|
||||
Wh_Log(L"Failed to hook SHFusionDialogBoxParam");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void Wh_ModSettingsChanged(void)
|
||||
{
|
||||
LoadSettings();
|
||||
}
|
Loading…
Reference in a new issue