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: }