File Annotation

Not logged in
4e2933c620 2015-04-21        kinaba: /***********************************************************************\
4e2933c620 2015-04-21        kinaba: *                               tlhelp32.d                              *
4e2933c620 2015-04-21        kinaba: *                                                                       *
4e2933c620 2015-04-21        kinaba: *                       Windows API header module                       *
4e2933c620 2015-04-21        kinaba: *                                                                       *
4e2933c620 2015-04-21        kinaba: *                 Translated from MinGW Windows headers                 *
4e2933c620 2015-04-21        kinaba: *                                                                       *
4e2933c620 2015-04-21        kinaba: *                       Placed into public domain                       *
4e2933c620 2015-04-21        kinaba: \***********************************************************************/
4e2933c620 2015-04-21        kinaba: module win32.tlhelp32;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: private import win32.windef;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : uint {
4e2933c620 2015-04-21        kinaba: 	HF32_DEFAULT = 1,
4e2933c620 2015-04-21        kinaba: 	HF32_SHARED
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : uint {
4e2933c620 2015-04-21        kinaba: 	LF32_FIXED    = 0x1,
4e2933c620 2015-04-21        kinaba: 	LF32_FREE     = 0x2,
4e2933c620 2015-04-21        kinaba: 	LF32_MOVEABLE = 0x4
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const MAX_MODULE_NAME32 = 255;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : uint {
4e2933c620 2015-04-21        kinaba: 	TH32CS_SNAPHEAPLIST = 0x1,
4e2933c620 2015-04-21        kinaba: 	TH32CS_SNAPPROCESS  = 0x2,
4e2933c620 2015-04-21        kinaba: 	TH32CS_SNAPTHREAD   = 0x4,
4e2933c620 2015-04-21        kinaba: 	TH32CS_SNAPMODULE   = 0x8,
4e2933c620 2015-04-21        kinaba: 	TH32CS_SNAPALL      = (TH32CS_SNAPHEAPLIST|TH32CS_SNAPPROCESS|TH32CS_SNAPTHREAD|TH32CS_SNAPMODULE),
4e2933c620 2015-04-21        kinaba: 	TH32CS_INHERIT      = 0x80000000
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct HEAPLIST32 {
4e2933c620 2015-04-21        kinaba: 	DWORD dwSize;
4e2933c620 2015-04-21        kinaba: 	DWORD th32ProcessID;
4e2933c620 2015-04-21        kinaba: 	DWORD th32HeapID;
4e2933c620 2015-04-21        kinaba: 	DWORD dwFlags;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias HEAPLIST32* PHEAPLIST32;
4e2933c620 2015-04-21        kinaba: alias HEAPLIST32* LPHEAPLIST32;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct HEAPENTRY32 {
4e2933c620 2015-04-21        kinaba: 	DWORD dwSize;
4e2933c620 2015-04-21        kinaba: 	HANDLE hHandle;
4e2933c620 2015-04-21        kinaba: 	DWORD dwAddress;
4e2933c620 2015-04-21        kinaba: 	DWORD dwBlockSize;
4e2933c620 2015-04-21        kinaba: 	DWORD dwFlags;
4e2933c620 2015-04-21        kinaba: 	DWORD dwLockCount;
4e2933c620 2015-04-21        kinaba: 	DWORD dwResvd;
4e2933c620 2015-04-21        kinaba: 	DWORD th32ProcessID;
4e2933c620 2015-04-21        kinaba: 	DWORD th32HeapID;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias HEAPENTRY32* PHEAPENTRY32;
4e2933c620 2015-04-21        kinaba: alias HEAPENTRY32* LPHEAPENTRY32;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct PROCESSENTRY32W {
4e2933c620 2015-04-21        kinaba: 	DWORD dwSize;
4e2933c620 2015-04-21        kinaba: 	DWORD cntUsage;
4e2933c620 2015-04-21        kinaba: 	DWORD th32ProcessID;
4e2933c620 2015-04-21        kinaba: 	DWORD th32DefaultHeapID;
4e2933c620 2015-04-21        kinaba: 	DWORD th32ModuleID;
4e2933c620 2015-04-21        kinaba: 	DWORD cntThreads;
4e2933c620 2015-04-21        kinaba: 	DWORD th32ParentProcessID;
4e2933c620 2015-04-21        kinaba: 	LONG pcPriClassBase;
4e2933c620 2015-04-21        kinaba: 	DWORD dwFlags;
4e2933c620 2015-04-21        kinaba: 	WCHAR szExeFile[MAX_PATH];
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias PROCESSENTRY32W* PPROCESSENTRY32W;
4e2933c620 2015-04-21        kinaba: alias PROCESSENTRY32W* LPPROCESSENTRY32W;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct THREADENTRY32 {
4e2933c620 2015-04-21        kinaba: 	DWORD dwSize;
4e2933c620 2015-04-21        kinaba: 	DWORD cntUsage;
4e2933c620 2015-04-21        kinaba: 	DWORD th32ThreadID;
4e2933c620 2015-04-21        kinaba: 	DWORD th32OwnerProcessID;
4e2933c620 2015-04-21        kinaba: 	LONG tpBasePri;
4e2933c620 2015-04-21        kinaba: 	LONG tpDeltaPri;
4e2933c620 2015-04-21        kinaba: 	DWORD dwFlags;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias THREADENTRY32* PTHREADENTRY32;
4e2933c620 2015-04-21        kinaba: alias THREADENTRY32* LPTHREADENTRY32;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct MODULEENTRY32W {
4e2933c620 2015-04-21        kinaba: 	DWORD dwSize;
4e2933c620 2015-04-21        kinaba: 	DWORD th32ModuleID;
4e2933c620 2015-04-21        kinaba: 	DWORD th32ProcessID;
4e2933c620 2015-04-21        kinaba: 	DWORD GlblcntUsage;
4e2933c620 2015-04-21        kinaba: 	DWORD ProccntUsage;
4e2933c620 2015-04-21        kinaba: 	BYTE *modBaseAddr;
4e2933c620 2015-04-21        kinaba: 	DWORD modBaseSize;
4e2933c620 2015-04-21        kinaba: 	HMODULE hModule;
4e2933c620 2015-04-21        kinaba: 	WCHAR szModule[MAX_MODULE_NAME32 + 1];
4e2933c620 2015-04-21        kinaba: 	WCHAR szExePath[MAX_PATH];
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias MODULEENTRY32W* PMODULEENTRY32W;
4e2933c620 2015-04-21        kinaba: alias MODULEENTRY32W* LPMODULEENTRY32W;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: version(Unicode) {
4e2933c620 2015-04-21        kinaba: 	alias PROCESSENTRY32W PROCESSENTRY32;
4e2933c620 2015-04-21        kinaba: 	alias PPROCESSENTRY32W PPROCESSENTRY32;
4e2933c620 2015-04-21        kinaba: 	alias LPPROCESSENTRY32W LPPROCESSENTRY32;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	alias MODULEENTRY32W MODULEENTRY32;
4e2933c620 2015-04-21        kinaba: 	alias PMODULEENTRY32W PMODULEENTRY32;
4e2933c620 2015-04-21        kinaba: 	alias LPMODULEENTRY32W LPMODULEENTRY32;
4e2933c620 2015-04-21        kinaba: } else {
4e2933c620 2015-04-21        kinaba: 	struct PROCESSENTRY32 {
4e2933c620 2015-04-21        kinaba: 		DWORD dwSize;
4e2933c620 2015-04-21        kinaba: 		DWORD cntUsage;
4e2933c620 2015-04-21        kinaba: 		DWORD th32ProcessID;
4e2933c620 2015-04-21        kinaba: 		DWORD th32DefaultHeapID;
4e2933c620 2015-04-21        kinaba: 		DWORD th32ModuleID;
4e2933c620 2015-04-21        kinaba: 		DWORD cntThreads;
4e2933c620 2015-04-21        kinaba: 		DWORD th32ParentProcessID;
4e2933c620 2015-04-21        kinaba: 		LONG pcPriClassBase;
4e2933c620 2015-04-21        kinaba: 		DWORD dwFlags;
4e2933c620 2015-04-21        kinaba: 		CHAR  szExeFile[MAX_PATH];
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	alias PROCESSENTRY32* PPROCESSENTRY32;
4e2933c620 2015-04-21        kinaba: 	alias PROCESSENTRY32* LPPROCESSENTRY32;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	struct MODULEENTRY32 {
4e2933c620 2015-04-21        kinaba: 		DWORD dwSize;
4e2933c620 2015-04-21        kinaba: 		DWORD th32ModuleID;
4e2933c620 2015-04-21        kinaba: 		DWORD th32ProcessID;
4e2933c620 2015-04-21        kinaba: 		DWORD GlblcntUsage;
4e2933c620 2015-04-21        kinaba: 		DWORD ProccntUsage;
4e2933c620 2015-04-21        kinaba: 		BYTE *modBaseAddr;
4e2933c620 2015-04-21        kinaba: 		DWORD modBaseSize;
4e2933c620 2015-04-21        kinaba: 		HMODULE hModule;
4e2933c620 2015-04-21        kinaba: 		char szModule[MAX_MODULE_NAME32 + 1];
4e2933c620 2015-04-21        kinaba: 		char szExePath[MAX_PATH];
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	alias MODULEENTRY32* PMODULEENTRY32;
4e2933c620 2015-04-21        kinaba: 	alias MODULEENTRY32* LPMODULEENTRY32;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: extern(Windows) {
4e2933c620 2015-04-21        kinaba: 	BOOL Heap32First(LPHEAPENTRY32,DWORD,DWORD);
4e2933c620 2015-04-21        kinaba: 	BOOL Heap32ListFirst(HANDLE,LPHEAPLIST32);
4e2933c620 2015-04-21        kinaba: 	BOOL Heap32ListNext(HANDLE,LPHEAPLIST32);
4e2933c620 2015-04-21        kinaba: 	BOOL Heap32Next(LPHEAPENTRY32);
4e2933c620 2015-04-21        kinaba: 	BOOL Thread32First(HANDLE,LPTHREADENTRY32);
4e2933c620 2015-04-21        kinaba: 	BOOL Thread32Next(HANDLE,LPTHREADENTRY32);
4e2933c620 2015-04-21        kinaba: 	BOOL Toolhelp32ReadProcessMemory(DWORD,LPCVOID,LPVOID,DWORD,LPDWORD);
4e2933c620 2015-04-21        kinaba: 	HANDLE CreateToolhelp32Snapshot(DWORD,DWORD);
4e2933c620 2015-04-21        kinaba: 	BOOL Module32FirstW(HANDLE,LPMODULEENTRY32W);
4e2933c620 2015-04-21        kinaba: 	BOOL Module32NextW(HANDLE,LPMODULEENTRY32W);
4e2933c620 2015-04-21        kinaba: 	BOOL Process32FirstW(HANDLE,LPPROCESSENTRY32W);
4e2933c620 2015-04-21        kinaba: 	BOOL Process32NextW(HANDLE,LPPROCESSENTRY32W);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: version(Unicode) {
4e2933c620 2015-04-21        kinaba: 	alias Module32FirstW Module32First;
4e2933c620 2015-04-21        kinaba: 	alias Module32NextW Module32Next;
4e2933c620 2015-04-21        kinaba: 	alias Process32FirstW Process32First;
4e2933c620 2015-04-21        kinaba: 	alias Process32NextW Process32Next;
4e2933c620 2015-04-21        kinaba: } else {
4e2933c620 2015-04-21        kinaba: 	extern(Windows) {
4e2933c620 2015-04-21        kinaba: 		BOOL Module32First(HANDLE,LPMODULEENTRY32);
4e2933c620 2015-04-21        kinaba: 		BOOL Module32Next(HANDLE,LPMODULEENTRY32);
4e2933c620 2015-04-21        kinaba: 		BOOL Process32First(HANDLE,LPPROCESSENTRY32);
4e2933c620 2015-04-21        kinaba: 		BOOL Process32Next(HANDLE,LPPROCESSENTRY32);
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: }