mirror of
https://github.com/modernw/App-Installer-For-Windows-8.x-Reset.git
synced 2026-04-11 17:57:19 +10:00
51 lines
1.7 KiB
C++
51 lines
1.7 KiB
C++
#pragma once
|
||
#include <Windows.h>
|
||
#ifdef __cplusplus
|
||
#ifndef GetCurrentModule_bRefDefault
|
||
// 在 C++ 中,GetCurrentModule 将会启用默认值。你可以在之前宏定义此默认值。定义宏时别忘了等号“=”
|
||
// 用法如:HMODULE GetCurrentModule (BOOL bRef GetCurrentModule_bRefDefault)
|
||
#define GetCurrentModule_bRefDefault = FALSE
|
||
#endif
|
||
#else
|
||
#define GetCurrentModule_bRefDefault
|
||
#endif
|
||
HMODULE GetCurrentModule (BOOL bRef GetCurrentModule_bRefDefault)
|
||
{
|
||
HMODULE hModule = NULL;
|
||
if (GetModuleHandleExW (bRef ? GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS : (GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS
|
||
| GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT), (LPCWSTR)GetCurrentModule, &hModule))
|
||
{
|
||
return hModule;
|
||
}
|
||
return NULL;
|
||
}
|
||
HMODULE GetSelfModuleHandle ()
|
||
{
|
||
MEMORY_BASIC_INFORMATION mbi;
|
||
return ((::VirtualQuery (GetSelfModuleHandle, &mbi, sizeof (mbi)) != 0)
|
||
? (HMODULE)mbi.AllocationBase : NULL);
|
||
}
|
||
#ifndef GetModuleHandleW_lpModuleNameDefault
|
||
#define GetModuleHandleW_lpModuleNameDefault NULL
|
||
#endif
|
||
#ifndef DEFAULT_HMODULE
|
||
#ifdef HMODULE_MODE_EXE
|
||
#define DEFAULT_HMODULE GetModuleHandleW (NULL)
|
||
#elif defined (HMODULE_MODE_DLL1)
|
||
#define DEFAULT_HMODULE GetCurrentModule ()
|
||
#elif defined (HMODULE_MODE_DLL2)
|
||
#define DEFAULT_HMODULE GetSelfModuleHandle ()
|
||
#else
|
||
#define DEFAULT_HMODULE GetModuleHandleW (GetModuleHandleW_lpModuleNameDefault)
|
||
#endif
|
||
#endif
|
||
#undef GetModuleHandleW_lpModuleNameDefault
|
||
#ifdef __cplusplus
|
||
#ifndef hModule_DefaultParam
|
||
// 在 C++ 中,你可以使用此宏“hModule_DefaultParam”来用于给一些函数的形参定义默认值。你可以在之前宏定义此默认值。定义宏时别忘了等号“=”
|
||
// 用法如:std::wstring GetRCStringSW (UINT resID, HMODULE hModule hModule_DefaultParam)。
|
||
#define hModule_DefaultParam = DEFAULT_HMODULE
|
||
#endif
|
||
#else
|
||
#define hModule_DefaultParam
|
||
#endif |