#ifndef _PSAPINT_PSAPI95_HPP_ #define _PSAPINT_PSAPI95_HPP_ #ifndef _COMMON_WINDOWS_HPP_ #include #endif #ifndef _COMMON_STRING_HPP_ #include #endif #ifndef _COMMON_LIBRARY_HPP_ #include #endif #ifndef _COMMON_TOOLHELP32_HPP_ #include #endif #ifndef _PSAPINT_PROCESSID_HPP_ #include #endif #ifndef _PSAPINT_PROCINFO_HPP_ #include #endif class ProcessEntry; class ProcessAPI95 { public: ProcessAPI95(void); virtual ~ProcessAPI95(); bool enumProcesses(ProcessInfoList &processInfoList); bool isOkay(void)const; private: typedef BOOL (WINAPI *PFNPROCESS32FIRST)(HANDLE hSnapshot,PROCESSENTRY32 *lppe); typedef BOOL (WINAPI *PFNPROCESS32NEXT)(HANDLE hSnapshot,PROCESSENTRY32 *lppe); typedef BOOL (WINAPI *PFNMODULE32FIRST)(HANDLE hSnapshot,MODULEENTRY32 *lpme); typedef BOOL (WINAPI *PFNMODULE32NEXT)(HANDLE hSnapshot,MODULEENTRY32 *lpme); typedef HANDLE (WINAPI *PFNCREATETOOLHELP32SNAPSHOT)(DWORD dwFlags,DWORD thProcessID); ProcessAPI95(const ProcessAPI95 &someProcessAPI); ProcessAPI95 &operator=(const ProcessAPI95 &someProcessAPI); bool enumProcessModules(const ProcessID &processID,ProcessEntry &processEntry,ModuleInfoList &moduleInfoList); PFNPROCESS32FIRST mpfnProcess32First; PFNPROCESS32NEXT mpfnProcess32Next; PFNMODULE32FIRST mpfnModule32First; PFNMODULE32NEXT mpfnModule32Next; PFNCREATETOOLHELP32SNAPSHOT mpfnCreateToolhelp32Snapshot; Library mLibrary; }; inline bool ProcessAPI95::isOkay(void)const { if(!mpfnProcess32First||!mpfnProcess32Next||!mpfnModule32First||!mpfnModule32Next||!mpfnCreateToolhelp32Snapshot)return false; return true; } #endif