175 lines
3.4 KiB
C++
175 lines
3.4 KiB
C++
#ifndef _PSAPINT_MODENTRY_HPP_
|
|
#define _PSAPINT_MODENTRY_HPP_
|
|
#ifndef _COMMON_WINDOWS_HPP_
|
|
#include <common/windows.hpp>
|
|
#endif
|
|
#ifndef _COMMON_TOOLHELP32_HPP_
|
|
#include <common/tlhelp32.hpp>
|
|
#endif
|
|
|
|
class ModuleEntry : private MODULEENTRY32
|
|
{
|
|
public:
|
|
ModuleEntry(void);
|
|
virtual ~ModuleEntry();
|
|
DWORD moduleID(void)const;
|
|
void moduleID(DWORD moduleID);
|
|
DWORD processID(void)const;
|
|
void processID(DWORD processID);
|
|
DWORD globalCntUsage(void)const;
|
|
void globalCntIUsage(DWORD globalCntUsage);
|
|
DWORD procCntUsage(void)const;
|
|
void procCntUsage(DWORD procCntUsage);
|
|
DWORD modBaseAddress(void)const;
|
|
void modBaseAddress(DWORD modBaseAddress);
|
|
DWORD modBaseSize(void)const;
|
|
void modBaseSize(DWORD modBaseSize);
|
|
HMODULE module(void)const;
|
|
void module(HMODULE hModule);
|
|
String strModule(void)const;
|
|
void szModule(const String &strModule);
|
|
String strExePath(void)const;
|
|
void strExePath(const String &strExePath);
|
|
MODULEENTRY32 &getMODULEENTRY(void);
|
|
private:
|
|
void zeroInit(void);
|
|
};
|
|
|
|
inline
|
|
ModuleEntry::ModuleEntry(void)
|
|
{
|
|
zeroInit();
|
|
}
|
|
|
|
inline
|
|
ModuleEntry::~ModuleEntry()
|
|
{
|
|
}
|
|
|
|
inline
|
|
DWORD ModuleEntry::moduleID(void)const
|
|
{
|
|
return MODULEENTRY32::th32ModuleID;
|
|
}
|
|
|
|
inline
|
|
void ModuleEntry::moduleID(DWORD moduleID)
|
|
{
|
|
MODULEENTRY32::th32ModuleID=moduleID;
|
|
}
|
|
|
|
inline
|
|
DWORD ModuleEntry::processID(void)const
|
|
{
|
|
return MODULEENTRY32::th32ProcessID;
|
|
}
|
|
|
|
inline
|
|
void ModuleEntry::processID(DWORD processID)
|
|
{
|
|
MODULEENTRY32::th32ProcessID=processID;
|
|
}
|
|
|
|
inline
|
|
DWORD ModuleEntry::globalCntUsage(void)const
|
|
{
|
|
return MODULEENTRY32::GlblcntUsage;
|
|
}
|
|
|
|
inline
|
|
void ModuleEntry::globalCntIUsage(DWORD globalCntUsage)
|
|
{
|
|
MODULEENTRY32::GlblcntUsage=globalCntUsage;
|
|
}
|
|
|
|
inline
|
|
DWORD ModuleEntry::procCntUsage(void)const
|
|
{
|
|
return MODULEENTRY32::ProccntUsage;
|
|
}
|
|
|
|
inline
|
|
void ModuleEntry::procCntUsage(DWORD procCntUsage)
|
|
{
|
|
MODULEENTRY32::ProccntUsage=procCntUsage;
|
|
}
|
|
|
|
inline
|
|
DWORD ModuleEntry::modBaseAddress(void)const
|
|
{
|
|
return DWORD(MODULEENTRY32::modBaseAddr);
|
|
}
|
|
|
|
inline
|
|
void ModuleEntry::modBaseAddress(DWORD modBaseAddress)
|
|
{
|
|
MODULEENTRY32::modBaseAddr=(BYTE*)modBaseAddress;
|
|
}
|
|
|
|
inline
|
|
DWORD ModuleEntry::modBaseSize(void)const
|
|
{
|
|
return MODULEENTRY32::modBaseSize;
|
|
}
|
|
|
|
inline
|
|
void ModuleEntry::modBaseSize(DWORD modBaseSize)
|
|
{
|
|
MODULEENTRY32::modBaseSize=modBaseSize;
|
|
}
|
|
|
|
inline
|
|
HMODULE ModuleEntry::module(void)const
|
|
{
|
|
return MODULEENTRY32::hModule;
|
|
}
|
|
|
|
inline
|
|
void ModuleEntry::module(HMODULE hModule)
|
|
{
|
|
MODULEENTRY32::hModule=hModule;
|
|
}
|
|
|
|
inline
|
|
String ModuleEntry::strModule(void)const
|
|
{
|
|
return MODULEENTRY32::szModule;
|
|
}
|
|
|
|
inline
|
|
void ModuleEntry::szModule(const String &strModule)
|
|
{
|
|
int strLen(strModule.length());
|
|
if(strLen<=MAX_MODULE_NAME32)::strcpy(MODULEENTRY32::szModule,(LPSTR)(String&)strModule);
|
|
else {::strncpy(MODULEENTRY32::szModule,(LPSTR)(String&)strModule,MAX_MODULE_NAME32);MODULEENTRY32::szModule[MAX_MODULE_NAME32]=0;}
|
|
}
|
|
|
|
inline
|
|
String ModuleEntry::strExePath(void)const
|
|
{
|
|
return MODULEENTRY32::szExePath;
|
|
}
|
|
|
|
inline
|
|
void ModuleEntry::strExePath(const String &strExePath)
|
|
{
|
|
int strLen(strExePath.length());
|
|
if(strLen<MAX_PATH)::strcpy(MODULEENTRY32::szExePath,(LPSTR)(String&)strExePath);
|
|
else {::strncpy(MODULEENTRY32::szExePath,(LPSTR)(String&)strExePath,MAX_PATH-1);MODULEENTRY32::szExePath[MAX_PATH-1]=0;}
|
|
}
|
|
|
|
inline
|
|
MODULEENTRY32 &ModuleEntry::getMODULEENTRY(void)
|
|
{
|
|
return *this;
|
|
}
|
|
|
|
inline
|
|
void ModuleEntry::zeroInit(void)
|
|
{
|
|
::memset(&getMODULEENTRY(),0,sizeof(MODULEENTRY32));
|
|
MODULEENTRY32::dwSize=sizeof(MODULEENTRY32);
|
|
}
|
|
#endif
|
|
|