}
else if (error != ERROR_MOD_NOT_FOUND) return 5;
+ imports.user32 = get_dll(_T("user32.dll"), &error);
+ if (imports.user32) {
+ imports.RegisterPowerSettingNotification = (RegisterPowerSettingNotification_ptr) get_import(imports.user32, "RegisterPowerSettingNotification", &error);
+ if (! imports.RegisterPowerSettingNotification) {
+ if (error != ERROR_PROC_NOT_FOUND) return 9;
+ }
+ }
+ else if (error != ERROR_MOD_NOT_FOUND) return 8;
+
return 0;
}
typedef void (WINAPI *WakeConditionVariable_ptr)(PCONDITION_VARIABLE);
typedef BOOL (WINAPI *CreateWellKnownSid_ptr)(WELL_KNOWN_SID_TYPE, SID *, SID *, unsigned long *);
typedef BOOL (WINAPI *IsWellKnownSid_ptr)(SID *, WELL_KNOWN_SID_TYPE);
+typedef HANDLE (WINAPI *RegisterPowerSettingNotification_ptr)(HANDLE, LPCGUID, DWORD);
typedef struct {
HMODULE kernel32;
HMODULE advapi32;
+ HMODULE user32;
AttachConsole_ptr AttachConsole;
SleepConditionVariableCS_ptr SleepConditionVariableCS;
WakeConditionVariable_ptr WakeConditionVariable;
CreateWellKnownSid_ptr CreateWellKnownSid;
IsWellKnownSid_ptr IsWellKnownSid;
+ RegisterPowerSettingNotification_ptr RegisterPowerSettingNotification;
} imports_t;
HMODULE get_dll(const TCHAR *, unsigned long *);