Files
Work/psapint/psapi95.hpp
2024-08-07 09:16:27 -04:00

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