mciqtz32: Stop the device only after param and device checks are done.
[wine.git] / include / tlhelp32.h
blob4b4d224ce281ab0b007591b7e4beb924341c20bc
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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, 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 ULONG_PTR 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 ULONG_PTR 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
151 SIZE_T dwSize;
152 DWORD th32ProcessID;
153 ULONG_PTR th32HeapID;
154 DWORD dwFlags;
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
166 SIZE_T dwSize;
167 HANDLE hHandle;
168 ULONG_PTR dwAddress;
169 SIZE_T dwBlockSize;
170 DWORD dwFlags;
171 DWORD dwLockCount;
172 DWORD dwResvd;
173 DWORD th32ProcessID;
174 ULONG_PTR th32HeapID;
175 } HEAPENTRY32, *PHEAPENTRY32, *LPHEAPENTRY32;
177 BOOL WINAPI Heap32First(LPHEAPENTRY32,DWORD,ULONG_PTR);
178 BOOL WINAPI Heap32Next(LPHEAPENTRY32);
180 #ifdef __cplusplus
181 } /* extern "C" */
182 #endif
184 #endif /* __WINE_TLHELP32_H */