Back
#pragma once
#include "GUIDs.h"
class CProSysLibModule : public CAtlDllModuleT< CProSysLibModule >
{
typedef BOOL (WINAPI * GetProcessHandleCountProc)(HANDLE, PDWORD);
typedef BOOL (WINAPI * CheckRemoteDebuggerPresentProc)(HANDLE, PBOOL);
typedef NTSTATUS (WINAPI * NtQueryInformationProcessProc)(HANDLE, long, PVOID, ULONG, PULONG);
public:
CProSysLibModule();
~CProSysLibModule();
void SetResourceInstance(HINSTANCE hInstance);
HINSTANCE GetResourceInstance();
static void InitLibId() throw();
DECLARE_REGISTRY_APPID_RESOURCEID(IDR_PROSYSLIB, PSL_AppID)
void OnModuleStart();
void OnModuleTerminate();
bool IsWin2000();
bool InitWinSockets();
// Windows API functions:
GetProcessHandleCountProc m_GetProcessHandleCount;
NtQueryInformationProcessProc m_NtQueryInformationProcess;
CheckRemoteDebuggerPresentProc m_CheckRemoteDebuggerPresent;
private:
CRITICAL_SECTION m_cs;
bool m_bWinSockets; // Indicates whether WinSockets are being used;
bool m_bWin2000; // Indicates whether the current OS is Windows 2000;
// If so, then variant types VT_I8 and VT_UI8 are not supported;
HINSTANCE m_hResInstance;
};
extern class CProSysLibModule _Module;
Top |