Mercurial > projects > ddbg_continued
diff win32/tlhelp32.d @ 1:4a9dcbd9e54f
-files of 0.13 beta
-fixes so that it now compiles with the current dmd version
author | marton@basel.hu |
---|---|
date | Tue, 05 Apr 2011 20:44:01 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/win32/tlhelp32.d Tue Apr 05 20:44:01 2011 +0200 @@ -0,0 +1,169 @@ +/***********************************************************************\ +* tlhelp32.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.tlhelp32; + +private import win32.windef; + +enum : uint { + HF32_DEFAULT = 1, + HF32_SHARED +} + +enum : uint { + LF32_FIXED = 0x1, + LF32_FREE = 0x2, + LF32_MOVEABLE = 0x4 +} + +const MAX_MODULE_NAME32 = 255; + +enum : uint { + TH32CS_SNAPHEAPLIST = 0x1, + TH32CS_SNAPPROCESS = 0x2, + TH32CS_SNAPTHREAD = 0x4, + TH32CS_SNAPMODULE = 0x8, + TH32CS_SNAPALL = (TH32CS_SNAPHEAPLIST|TH32CS_SNAPPROCESS|TH32CS_SNAPTHREAD|TH32CS_SNAPMODULE), + TH32CS_INHERIT = 0x80000000 +} + +struct HEAPLIST32 { + DWORD dwSize; + DWORD th32ProcessID; + DWORD th32HeapID; + DWORD dwFlags; +} +alias HEAPLIST32* PHEAPLIST32; +alias HEAPLIST32* LPHEAPLIST32; + +struct HEAPENTRY32 { + DWORD dwSize; + HANDLE hHandle; + DWORD dwAddress; + DWORD dwBlockSize; + DWORD dwFlags; + DWORD dwLockCount; + DWORD dwResvd; + DWORD th32ProcessID; + DWORD th32HeapID; +} +alias HEAPENTRY32* PHEAPENTRY32; +alias HEAPENTRY32* LPHEAPENTRY32; + +struct PROCESSENTRY32W { + DWORD dwSize; + DWORD cntUsage; + DWORD th32ProcessID; + DWORD th32DefaultHeapID; + DWORD th32ModuleID; + DWORD cntThreads; + DWORD th32ParentProcessID; + LONG pcPriClassBase; + DWORD dwFlags; + WCHAR szExeFile[MAX_PATH]; +} +alias PROCESSENTRY32W* PPROCESSENTRY32W; +alias PROCESSENTRY32W* LPPROCESSENTRY32W; + +struct THREADENTRY32 { + DWORD dwSize; + DWORD cntUsage; + DWORD th32ThreadID; + DWORD th32OwnerProcessID; + LONG tpBasePri; + LONG tpDeltaPri; + DWORD dwFlags; +} +alias THREADENTRY32* PTHREADENTRY32; +alias THREADENTRY32* LPTHREADENTRY32; + +struct MODULEENTRY32W { + DWORD dwSize; + DWORD th32ModuleID; + DWORD th32ProcessID; + DWORD GlblcntUsage; + DWORD ProccntUsage; + BYTE *modBaseAddr; + DWORD modBaseSize; + HMODULE hModule; + WCHAR szModule[MAX_MODULE_NAME32 + 1]; + WCHAR szExePath[MAX_PATH]; +} +alias MODULEENTRY32W* PMODULEENTRY32W; +alias MODULEENTRY32W* LPMODULEENTRY32W; + +version(Unicode) { + alias PROCESSENTRY32W PROCESSENTRY32; + alias PPROCESSENTRY32W PPROCESSENTRY32; + alias LPPROCESSENTRY32W LPPROCESSENTRY32; + + alias MODULEENTRY32W MODULEENTRY32; + alias PMODULEENTRY32W PMODULEENTRY32; + alias LPMODULEENTRY32W LPMODULEENTRY32; +} else { + struct PROCESSENTRY32 { + DWORD dwSize; + DWORD cntUsage; + DWORD th32ProcessID; + DWORD th32DefaultHeapID; + DWORD th32ModuleID; + DWORD cntThreads; + DWORD th32ParentProcessID; + LONG pcPriClassBase; + DWORD dwFlags; + CHAR szExeFile[MAX_PATH]; + } + alias PROCESSENTRY32* PPROCESSENTRY32; + alias PROCESSENTRY32* LPPROCESSENTRY32; + + struct MODULEENTRY32 { + DWORD dwSize; + DWORD th32ModuleID; + DWORD th32ProcessID; + DWORD GlblcntUsage; + DWORD ProccntUsage; + BYTE *modBaseAddr; + DWORD modBaseSize; + HMODULE hModule; + char szModule[MAX_MODULE_NAME32 + 1]; + char szExePath[MAX_PATH]; + } + alias MODULEENTRY32* PMODULEENTRY32; + alias MODULEENTRY32* LPMODULEENTRY32; +} + + +extern(Windows) { + BOOL Heap32First(LPHEAPENTRY32,DWORD,DWORD); + BOOL Heap32ListFirst(HANDLE,LPHEAPLIST32); + BOOL Heap32ListNext(HANDLE,LPHEAPLIST32); + BOOL Heap32Next(LPHEAPENTRY32); + BOOL Thread32First(HANDLE,LPTHREADENTRY32); + BOOL Thread32Next(HANDLE,LPTHREADENTRY32); + BOOL Toolhelp32ReadProcessMemory(DWORD,LPCVOID,LPVOID,DWORD,LPDWORD); + HANDLE CreateToolhelp32Snapshot(DWORD,DWORD); + BOOL Module32FirstW(HANDLE,LPMODULEENTRY32W); + BOOL Module32NextW(HANDLE,LPMODULEENTRY32W); + BOOL Process32FirstW(HANDLE,LPPROCESSENTRY32W); + BOOL Process32NextW(HANDLE,LPPROCESSENTRY32W); +} + +version(Unicode) { + alias Module32FirstW Module32First; + alias Module32NextW Module32Next; + alias Process32FirstW Process32First; + alias Process32NextW Process32Next; +} else { + extern(Windows) { + BOOL Module32First(HANDLE,LPMODULEENTRY32); + BOOL Module32Next(HANDLE,LPMODULEENTRY32); + BOOL Process32First(HANDLE,LPPROCESSENTRY32); + BOOL Process32Next(HANDLE,LPPROCESSENTRY32); + } +}