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
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 {
152 ULONG_PTR th32HeapID;
154 } HEAPLIST32, *PHEAPLIST32, *LPHEAPLIST32;
156 BOOL WINAPI Heap32ListFirst(HANDLE,LPHEAPLIST32);
162 #endif /* __WINE_TLHELP32_H */