blob: 355c6c24e235f15e1252c216b8ffc8ab40272e35 [file] [log] [blame]
Patrick Spinler3f8e1e41998-12-11 15:04:11 +00001#ifndef __WINE_TLHELP32_H
2#define __WINE_TLHELP32_H
3
Patrick Spinler3f8e1e41998-12-11 15:04:11 +00004#ifdef __cplusplus
5extern "C" {
6#endif
7
Alexandre Julliard07d84462000-04-16 19:45:05 +00008/*
9 * CreateToolhelp32Snapshot
10 */
Patrick Spinler3f8e1e41998-12-11 15:04:11 +000011
12#define TH32CS_SNAPHEAPLIST 0x00000001
13#define TH32CS_SNAPPROCESS 0x00000002
14#define TH32CS_SNAPTHREAD 0x00000004
15#define TH32CS_SNAPMODULE 0x00000008
16#define TH32CS_SNAPALL (TH32CS_SNAPHEAPLIST | TH32CS_SNAPPROCESS | TH32CS_SNAPTHREAD | TH32CS_SNAPMODULE)
17#define TH32CS_INHERIT 0x80000000
18
Alexandre Julliard07d84462000-04-16 19:45:05 +000019HANDLE WINAPI CreateToolhelp32Snapshot(DWORD,DWORD);
20
21/*
22 * thread entry list as created by CreateToolHelp32Snapshot
23 */
24
25typedef struct tagTHREADENTRY32
26{
27 DWORD dwSize;
28 DWORD cntUsage;
29 DWORD th32ThreadID;
30 DWORD th32OwnerProcessID;
Uwe Bonnes7f0b1042000-09-12 23:36:18 +000031 LONG tpBasePri;
32 LONG tpDeltaPri;
Alexandre Julliard07d84462000-04-16 19:45:05 +000033 DWORD dwFlags;
34} THREADENTRY32, *PTHREADENTRY32, *LPTHREADENTRY32;
35
36BOOL WINAPI Thread32First(HANDLE,LPTHREADENTRY32);
37BOOL WINAPI Thread32Next(HANDLE,LPTHREADENTRY32);
38
39/*
40 * Process entry list as created by CreateToolHelp32Snapshot
41 */
42
43typedef struct tagPROCESSENTRY32
44{
45 DWORD dwSize;
46 DWORD cntUsage;
47 DWORD th32ProcessID;
48 DWORD th32DefaultHeapID;
49 DWORD th32ModuleID;
50 DWORD cntThreads;
51 DWORD th32ParentProcessID;
52 LONG pcPriClassBase;
53 DWORD dwFlags;
54 char szExeFile[MAX_PATH];
55} PROCESSENTRY32, *PPROCESSENTRY32, *LPPROCESSENTRY32;
56
57typedef struct tagPROCESSENTRY32W
58{
59 DWORD dwSize;
60 DWORD cntUsage;
61 DWORD th32ProcessID;
62 DWORD th32DefaultHeapID;
63 DWORD th32ModuleID;
64 DWORD cntThreads;
65 DWORD th32ParentProcessID;
66 LONG pcPriClassBase;
67 DWORD dwFlags;
68 WCHAR szExeFile[MAX_PATH];
69} PROCESSENTRY32W, *PPROCESSENTRY32W, *LPPROCESSENTRY32W;
70
71BOOL WINAPI Process32First(HANDLE,LPPROCESSENTRY32);
72BOOL WINAPI Process32FirstW(HANDLE,LPPROCESSENTRY32W);
73BOOL WINAPI Process32Next(HANDLE,LPPROCESSENTRY32);
74BOOL WINAPI Process32NextW(HANDLE,LPPROCESSENTRY32W);
75
76#ifdef UNICODE
77#define Process32First Process32FirstW
78#define Process32Next Process32NextW
79#define PROCESSENTRY32 PROCESSENTRY32W
80#define PPROCESSENTRY32 PPROCESSENTRY32W
81#define LPPROCESSENTRY32 LPPROCESSENTRY32W
82#endif
83
84/*
85 * Module entry list as created by CreateToolHelp32Snapshot
86 */
87
88#define MAX_MODULE_NAME32 255
89
90typedef struct tagMODULEENTRY32
91{
92 DWORD dwSize;
93 DWORD th32ModuleID;
94 DWORD th32ProcessID;
95 DWORD GlblcntUsage;
96 DWORD ProccntUsage;
97 BYTE *modBaseAddr;
98 DWORD modBaseSize;
99 DWORD hModule;
100 char szModule[MAX_MODULE_NAME32 + 1];
101 char szExePath[MAX_PATH];
102} MODULEENTRY32, *PMODULEENTRY32, *LPMODULEENTRY32;
103
104typedef struct tagMODULEENTRY32W
105{
106 DWORD dwSize;
107 DWORD th32ModuleID;
108 DWORD th32ProcessID;
109 DWORD GlblcntUsage;
110 DWORD ProccntUsage;
111 BYTE *modBaseAddr;
112 DWORD modBaseSize;
113 DWORD hModule;
114 WCHAR szModule[MAX_MODULE_NAME32 + 1];
115 WCHAR szExePath[MAX_PATH];
116} MODULEENTRY32W, *PMODULEENTRY32W, *LPMODULEENTRY32W;
117
118BOOL WINAPI Module32First(HANDLE,LPMODULEENTRY32);
119BOOL WINAPI Module32FirstW(HANDLE,LPMODULEENTRY32W);
120BOOL WINAPI Module32Next(HANDLE,LPMODULEENTRY32);
121BOOL WINAPI Module32NextW(HANDLE,LPMODULEENTRY32W);
122
123#ifdef UNICODE
124#define Module32First Module32FirstW
125#define Module32Next Module32NextW
126#define MODULEENTRY32 MODULEENTRY32W
127#define PMODULEENTRY32 PMODULEENTRY32W
128#define LPMODULEENTRY32 LPMODULEENTRY32W
129#endif
130
Patrick Spinler3f8e1e41998-12-11 15:04:11 +0000131#ifdef __cplusplus
Patrik Stridvall1ed4ecf1999-06-26 14:58:24 +0000132} /* extern "C" */
Patrick Spinler3f8e1e41998-12-11 15:04:11 +0000133#endif
134
135#endif /* __WINE_TLHELP32_H */