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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #ifndef __WINE_TLHELP32_H
20 #define __WINE_TLHELP32_H
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
48 DWORD th32OwnerProcessID
;
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
66 DWORD th32DefaultHeapID
;
69 DWORD th32ParentProcessID
;
72 char szExeFile
[MAX_PATH
];
73 } PROCESSENTRY32
, *PPROCESSENTRY32
, *LPPROCESSENTRY32
;
75 typedef struct tagPROCESSENTRY32W
80 DWORD th32DefaultHeapID
;
83 DWORD th32ParentProcessID
;
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
);
95 #define Process32First Process32FirstW
96 #define Process32Next Process32NextW
97 #define PROCESSENTRY32 PROCESSENTRY32W
98 #define PPROCESSENTRY32 PPROCESSENTRY32W
99 #define LPPROCESSENTRY32 LPPROCESSENTRY32W
103 * Module entry list as created by CreateToolHelp32Snapshot
106 #define MAX_MODULE_NAME32 255
108 typedef struct tagMODULEENTRY32
118 char szModule
[MAX_MODULE_NAME32
+ 1];
119 char szExePath
[MAX_PATH
];
120 } MODULEENTRY32
, *PMODULEENTRY32
, *LPMODULEENTRY32
;
122 typedef struct tagMODULEENTRY32W
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
);
142 #define Module32First Module32FirstW
143 #define Module32Next Module32NextW
144 #define MODULEENTRY32 MODULEENTRY32W
145 #define PMODULEENTRY32 PMODULEENTRY32W
146 #define LPMODULEENTRY32 LPMODULEENTRY32W
149 typedef struct tagHEAPLIST32
153 ULONG_PTR th32HeapID
;
155 } HEAPLIST32
, *PHEAPLIST32
, *LPHEAPLIST32
;
157 #define HF32_DEFAULT 1
158 #define HF32_SHARED 2
160 BOOL WINAPI
Heap32ListFirst(HANDLE
,LPHEAPLIST32
);
161 BOOL WINAPI
Heap32ListNext(HANDLE
,LPHEAPLIST32
);
162 BOOL WINAPI
Toolhelp32ReadProcessMemory(DWORD
,LPCVOID
,LPVOID
,SIZE_T
,SIZE_T
*);
164 typedef struct tagHEAPENTRY32
174 ULONG_PTR th32HeapID
;
175 } HEAPENTRY32
, *PHEAPENTRY32
, *LPHEAPENTRY32
;
177 BOOL WINAPI
Heap32First(LPHEAPENTRY32
,DWORD
,ULONG_PTR
);
178 BOOL WINAPI
Heap32Next(LPHEAPENTRY32
);
184 #endif /* __WINE_TLHELP32_H */