Porting fixes.
[wine.git] / include / tlhelp32.h
blob3a6d5bda38851984ea66ff1165d5247f0c3aa18e
1 /*
2 * Copyright (C) 1998 Patrick Spinler
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 #ifndef __WINE_TLHELP32_H
20 #define __WINE_TLHELP32_H
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
27 * CreateToolhelp32Snapshot
30 #define TH32CS_SNAPHEAPLIST 0x00000001
31 #define TH32CS_SNAPPROCESS 0x00000002
32 #define TH32CS_SNAPTHREAD 0x00000004
33 #define TH32CS_SNAPMODULE 0x00000008
34 #define TH32CS_SNAPALL (TH32CS_SNAPHEAPLIST | TH32CS_SNAPPROCESS | TH32CS_SNAPTHREAD | TH32CS_SNAPMODULE)
35 #define TH32CS_INHERIT 0x80000000
37 HANDLE WINAPI CreateToolhelp32Snapshot(DWORD,DWORD);
40 * thread entry list as created by CreateToolHelp32Snapshot
43 typedef struct tagTHREADENTRY32
45 DWORD dwSize;
46 DWORD cntUsage;
47 DWORD th32ThreadID;
48 DWORD th32OwnerProcessID;
49 LONG tpBasePri;
50 LONG tpDeltaPri;
51 DWORD dwFlags;
52 } THREADENTRY32, *PTHREADENTRY32, *LPTHREADENTRY32;
54 BOOL WINAPI Thread32First(HANDLE,LPTHREADENTRY32);
55 BOOL WINAPI Thread32Next(HANDLE,LPTHREADENTRY32);
58 * Process entry list as created by CreateToolHelp32Snapshot
61 typedef struct tagPROCESSENTRY32
63 DWORD dwSize;
64 DWORD cntUsage;
65 DWORD th32ProcessID;
66 DWORD th32DefaultHeapID;
67 DWORD th32ModuleID;
68 DWORD cntThreads;
69 DWORD th32ParentProcessID;
70 LONG pcPriClassBase;
71 DWORD dwFlags;
72 char szExeFile[MAX_PATH];
73 } PROCESSENTRY32, *PPROCESSENTRY32, *LPPROCESSENTRY32;
75 typedef struct tagPROCESSENTRY32W
77 DWORD dwSize;
78 DWORD cntUsage;
79 DWORD th32ProcessID;
80 DWORD th32DefaultHeapID;
81 DWORD th32ModuleID;
82 DWORD cntThreads;
83 DWORD th32ParentProcessID;
84 LONG pcPriClassBase;
85 DWORD dwFlags;
86 WCHAR szExeFile[MAX_PATH];
87 } PROCESSENTRY32W, *PPROCESSENTRY32W, *LPPROCESSENTRY32W;
89 BOOL WINAPI Process32First(HANDLE,LPPROCESSENTRY32);
90 BOOL WINAPI Process32FirstW(HANDLE,LPPROCESSENTRY32W);
91 BOOL WINAPI Process32Next(HANDLE,LPPROCESSENTRY32);
92 BOOL WINAPI Process32NextW(HANDLE,LPPROCESSENTRY32W);
94 #ifdef UNICODE
95 #define Process32First Process32FirstW
96 #define Process32Next Process32NextW
97 #define PROCESSENTRY32 PROCESSENTRY32W
98 #define PPROCESSENTRY32 PPROCESSENTRY32W
99 #define LPPROCESSENTRY32 LPPROCESSENTRY32W
100 #endif
103 * Module entry list as created by CreateToolHelp32Snapshot
106 #define MAX_MODULE_NAME32 255
108 typedef struct tagMODULEENTRY32
110 DWORD dwSize;
111 DWORD th32ModuleID;
112 DWORD th32ProcessID;
113 DWORD GlblcntUsage;
114 DWORD ProccntUsage;
115 BYTE *modBaseAddr;
116 DWORD modBaseSize;
117 HMODULE hModule;
118 char szModule[MAX_MODULE_NAME32 + 1];
119 char szExePath[MAX_PATH];
120 } MODULEENTRY32, *PMODULEENTRY32, *LPMODULEENTRY32;
122 typedef struct tagMODULEENTRY32W
124 DWORD dwSize;
125 DWORD th32ModuleID;
126 DWORD th32ProcessID;
127 DWORD GlblcntUsage;
128 DWORD ProccntUsage;
129 BYTE *modBaseAddr;
130 DWORD modBaseSize;
131 HMODULE hModule;
132 WCHAR szModule[MAX_MODULE_NAME32 + 1];
133 WCHAR szExePath[MAX_PATH];
134 } MODULEENTRY32W, *PMODULEENTRY32W, *LPMODULEENTRY32W;
136 BOOL WINAPI Module32First(HANDLE,LPMODULEENTRY32);
137 BOOL WINAPI Module32FirstW(HANDLE,LPMODULEENTRY32W);
138 BOOL WINAPI Module32Next(HANDLE,LPMODULEENTRY32);
139 BOOL WINAPI Module32NextW(HANDLE,LPMODULEENTRY32W);
141 #ifdef UNICODE
142 #define Module32First Module32FirstW
143 #define Module32Next Module32NextW
144 #define MODULEENTRY32 MODULEENTRY32W
145 #define PMODULEENTRY32 PMODULEENTRY32W
146 #define LPMODULEENTRY32 LPMODULEENTRY32W
147 #endif
149 typedef struct tagHEAPLIST32 {
150 SIZE_T dwSize;
151 DWORD th32ProcessID;
152 ULONG_PTR th32HeapID;
153 DWORD dwFlags;
154 } HEAPLIST32, *PHEAPLIST32, *LPHEAPLIST32;
156 BOOL WINAPI Heap32ListFirst(HANDLE,LPHEAPLIST32);
158 #ifdef __cplusplus
159 } /* extern "C" */
160 #endif
162 #endif /* __WINE_TLHELP32_H */