55 lines
1.7 KiB
C++
55 lines
1.7 KiB
C++
#ifndef _PSAPINT_PSAPI95_HPP_
|
|
#define _PSAPINT_PSAPI95_HPP_
|
|
#ifndef _COMMON_WINDOWS_HPP_
|
|
#include <common/windows.hpp>
|
|
#endif
|
|
#ifndef _COMMON_STRING_HPP_
|
|
#include <common/string.hpp>
|
|
#endif
|
|
#ifndef _COMMON_LIBRARY_HPP_
|
|
#include <common/library.hpp>
|
|
#endif
|
|
#ifndef _COMMON_TOOLHELP32_HPP_
|
|
#include <common/tlhelp32.hpp>
|
|
#endif
|
|
#ifndef _PSAPINT_PROCESSID_HPP_
|
|
#include <psapint/procid.hpp>
|
|
#endif
|
|
#ifndef _PSAPINT_PROCINFO_HPP_
|
|
#include <psapint/procinfo.hpp>
|
|
#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 |