From d340e13effcabebb9eed2ace2e7874eff683e13d Mon Sep 17 00:00:00 2001 From: Iain Patterson Date: Wed, 7 May 2014 08:33:56 +0100 Subject: [PATCH] Import RegisterPowerSettingNotification(). --- imports.cpp | 9 +++++++++ imports.h | 3 +++ 2 files changed, 12 insertions(+) diff --git a/imports.cpp b/imports.cpp index 6257131..064ba27 100644 --- a/imports.cpp +++ b/imports.cpp @@ -82,6 +82,15 @@ int get_imports() { } 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; } diff --git a/imports.h b/imports.h index 03e2df1..249eb05 100644 --- a/imports.h +++ b/imports.h @@ -6,15 +6,18 @@ typedef BOOL (WINAPI *SleepConditionVariableCS_ptr)(PCONDITION_VARIABLE, PCRITIC 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 *); -- 2.7.4