Refactor kill functions to be independent of services.
[nssm.git] / imports.h
1 #ifndef IMPORTS_H
2 #define IMPORTS_H
3
4 typedef BOOL (WINAPI *AttachConsole_ptr)(DWORD);
5 typedef BOOL (WINAPI *SleepConditionVariableCS_ptr)(PCONDITION_VARIABLE, PCRITICAL_SECTION, DWORD);
6 typedef void (WINAPI *WakeConditionVariable_ptr)(PCONDITION_VARIABLE);
7 typedef BOOL (WINAPI *CreateWellKnownSid_ptr)(WELL_KNOWN_SID_TYPE, SID *, SID *, unsigned long *);
8 typedef BOOL (WINAPI *IsWellKnownSid_ptr)(SID *, WELL_KNOWN_SID_TYPE);
9 typedef HANDLE (WINAPI *RegisterPowerSettingNotification_ptr)(HANDLE, LPCGUID, DWORD);
10
11 typedef struct {
12   HMODULE kernel32;
13   HMODULE advapi32;
14   HMODULE user32;
15   AttachConsole_ptr AttachConsole;
16   SleepConditionVariableCS_ptr SleepConditionVariableCS;
17   WakeConditionVariable_ptr WakeConditionVariable;
18   CreateWellKnownSid_ptr CreateWellKnownSid;
19   IsWellKnownSid_ptr IsWellKnownSid;
20   RegisterPowerSettingNotification_ptr RegisterPowerSettingNotification;
21 } imports_t;
22
23 HMODULE get_dll(const TCHAR *, unsigned long *);
24 FARPROC get_import(HMODULE, const char *, unsigned long *);
25 int get_imports();
26 void free_imports();
27
28 #endif