Release 940815
[wine] / include / toolhelp.h
1 #ifndef __TOOLHELP_H
2 #define __TOOLHELP_H
3
4 #include "windows.h"
5
6 DECLARE_HANDLE(HMODULE);
7 DECLARE_HANDLE(HGLOBAL);
8
9 #define MAX_DATA        11
10 #define MAX_MODULE_NAME 9
11 #define MAX_PATH        255
12 #define MAX_CLASSNAME   255
13
14 /* modules */
15
16 typedef struct {
17     DWORD dwSize;
18     char szModule[MAX_MODULE_NAME + 1];
19     HMODULE hModule;
20     WORD wcUsage;
21     char szExePath[MAX_PATH + 1];
22     WORD wNext;
23 } MODULEENTRY;
24 typedef MODULEENTRY *LPMODULEENTRY;
25
26 BOOL    ModuleFirst(MODULEENTRY *lpModule);
27 BOOL    ModuleNext(MODULEENTRY *lpModule);
28 HMODULE ModuleFindName(MODULEENTRY *lpModule, LPCSTR lpstrName);
29 HMODULE ModuleFindHandle(MODULEENTRY *lpModule, HMODULE hModule);
30
31 /* tasks */
32
33 typedef struct tagTASKENTRY {
34         DWORD dwSize;
35         HTASK hTask;
36         HTASK hTaskParent;
37         HINSTANCE hInst;
38         HMODULE hModule;
39         WORD wSS;
40         WORD wSP;
41         WORD wStackTop;
42         WORD wStackMinimum;
43         WORD wStackBottom;
44         WORD wcEvents;
45         HGLOBAL hQueue;
46         char szModule[MAX_MODULE_NAME + 1];
47         WORD wPSPOffset;
48         HANDLE hNext;
49 } TASKENTRY;
50 typedef TASKENTRY *LPTASKENTRY;
51
52 BOOL    TaskFirst(LPTASKENTRY lpTask);
53 BOOL    TaskNext(LPTASKENTRY lpTask);
54 BOOL    TaskFindHandle(LPTASKENTRY lpTask, HTASK hTask);
55 DWORD   TaskSetCSIP(HTASK hTask, WORD wCS, WORD wIP);
56 DWORD   TaskGetCSIP(HTASK hTask);
57 BOOL    TaskSwitch(HTASK hTask, DWORD dwNewCSIP);
58
59 /* mem info */
60
61 typedef struct tagMEMMANINFO {
62         DWORD dwSize;
63         DWORD dwLargestFreeBlock;
64         DWORD dwMaxPagesAvailable;
65         DWORD dwMaxPagesLockable;
66         DWORD dwTotalLinearSpace;
67         DWORD dwTotalUnlockedPages;
68         DWORD dwFreePages;
69         DWORD dwTotalPages;
70         DWORD dwFreeLinearSpace;
71         DWORD dwSwapFilePages;
72         WORD wPageSize;
73 } MEMMANINFO;
74 typedef MEMMANINFO *LPMEMMANINFO;
75
76 typedef struct tagSYSHEAPINFO {
77         DWORD dwSize;
78         WORD wUserFreePercent;
79         WORD wGDIFreePercent;
80         HGLOBAL hUserSegment;
81         HGLOBAL hGDISegment;
82 } SYSHEAPINFO;
83 typedef SYSHEAPINFO *LPSYSHEAPINFO;
84
85 BOOL MemManInfo(LPMEMMANINFO lpEnhMode);
86 BOOL SystemHeapInfo(LPSYSHEAPINFO lpSysHeap);
87
88 #endif /* __TOOLHELP_H */