1 #ifndef __WINE_TOOLHELP_H
2 #define __WINE_TOOLHELP_H
8 #define MAX_MODULE_NAME 9
12 #define MAX_CLASSNAME 255
43 /* GlobalFirst()/GlobalNext() flags */
59 #define GT_BURGERMASTER 10
62 #define GD_USERDEFINED 0
63 #define GD_CURSORCOMPONENT 1
65 #define GD_ICONCOMPONENT 3
71 #define GD_ACCELERATORS 9
73 #define GD_ERRTABLE 11
76 #define GD_NAMETABLE 15
77 #define GD_MAX_RESOURCE 15
80 #define GF_PDB_OWNER 0x0100 /* Low byte is KERNEL flags */
82 WORD WINAPI
GlobalHandleToSel( HGLOBAL16 handle
);
83 BOOL16 WINAPI
GlobalInfo( GLOBALINFO
*pInfo
);
84 BOOL16 WINAPI
GlobalFirst( GLOBALENTRY
*pGlobal
, WORD wFlags
);
85 BOOL16 WINAPI
GlobalNext( GLOBALENTRY
*pGlobal
, WORD wFlags
) ;
86 BOOL16 WINAPI
GlobalEntryHandle( GLOBALENTRY
*pGlobal
, HGLOBAL16 hItem
);
87 BOOL16 WINAPI
GlobalEntryModule( GLOBALENTRY
*pGlobal
, HMODULE16 hModule
,
112 /* wHeapType values */
113 #define NORMAL_HEAP 0
120 #define LF_MOVEABLE 4
125 #define LT_GDI_PEN 1 /* LT_GDI_* is for GDI's heap */
126 #define LT_GDI_BRUSH 2
127 #define LT_GDI_FONT 3
128 #define LT_GDI_PALETTE 4
129 #define LT_GDI_BITMAP 5
132 #define LT_GDI_DISABLED_DC 8
133 #define LT_GDI_METADC 9
134 #define LT_GDI_METAFILE 10
135 #define LT_GDI_MAX LT_GDI_METAFILE
136 #define LT_USER_CLASS 1 /* LT_USER_* is for USER's heap */
137 #define LT_USER_WND 2
138 #define LT_USER_STRING 3
139 #define LT_USER_MENU 4
140 #define LT_USER_CLIP 5
141 #define LT_USER_CBOX 6
142 #define LT_USER_PALETTE 7
144 #define LT_USER_BWL 9
145 #define LT_USER_OWNERDRAW 10
146 #define LT_USER_SPB 11
147 #define LT_USER_CHECKPOINT 12
148 #define LT_USER_DCE 13
149 #define LT_USER_MWP 14
150 #define LT_USER_PROP 15
151 #define LT_USER_LBIV 16
152 #define LT_USER_MISC 17
153 #define LT_USER_ATOMS 18
154 #define LT_USER_LOCKINPUTSTATE 19
155 #define LT_USER_HOOKLIST 20
156 #define LT_USER_USERSEEUSERDOALLOC 21
157 #define LT_USER_HOTKEYLIST 22
158 #define LT_USER_POPUPMENU 23
159 #define LT_USER_HANDLETABLE 32
160 #define LT_USER_MAX LT_USER_HANDLETABLE
162 BOOL16 WINAPI
LocalInfo( LOCALINFO
*pLocalInfo
, HGLOBAL16 handle
);
163 BOOL16 WINAPI
LocalFirst( LOCALENTRY
*pLocalEntry
, HGLOBAL16 handle
);
164 BOOL16 WINAPI
LocalNext( LOCALENTRY
*pLocalEntry
);
166 /* Local 32-bit heap */
170 DWORD dwSize
; /* 00 */
171 DWORD dwMemReserved
; /* 04 */
172 DWORD dwMemCommitted
; /* 08 */
173 DWORD dwTotalFree
; /* 0C */
174 DWORD dwLargestFreeBlock
; /* 10 */
175 DWORD dwcFreeHandles
; /* 14 */
180 DWORD dwSize
; /* 00 */
181 WORD hHandle
; /* 04 */
182 DWORD dwAddress
; /* 06 */
183 DWORD dwSizeBlock
; /* 0A */
184 WORD wFlags
; /* 0E */
187 WORD wHeapType
; /* 14 */
188 DWORD dwNext
; /* 16 */
189 DWORD dwNextAlt
; /* 1A */
192 /* LOCAL32ENTRY.wHeapType flags same as LOCALENTRY.wHeapType flags */
193 /* LOCAL32ENTRY.wFlags same as LOCALENTRY.wFlags */
194 /* LOCAL32ENTRY.wType same as LOCALENTRY.wType */
196 BOOL16 WINAPI
Local32Info( LOCAL32INFO
*pLocal32Info
, HGLOBAL16 handle
);
197 BOOL16 WINAPI
Local32First( LOCAL32ENTRY
*pLocal32Entry
, HGLOBAL16 handle
);
198 BOOL16 WINAPI
Local32Next( LOCAL32ENTRY
*pLocal32Entry
);
206 char szModule
[MAX_MODULE_NAME
+ 1];
209 char szExePath
[MAX_PATH
+ 1];
211 } MODULEENTRY
, *LPMODULEENTRY
;
213 BOOL16 WINAPI
ModuleFirst(MODULEENTRY
*lpModule
);
214 BOOL16 WINAPI
ModuleNext(MODULEENTRY
*lpModule
);
215 BOOL16 WINAPI
ModuleFindName(MODULEENTRY
*lpModule
, LPCSTR lpstrName
);
216 BOOL16 WINAPI
ModuleFindHandle(MODULEENTRY
*lpModule
, HMODULE16 hModule
);
234 char szModule
[MAX_MODULE_NAME
+ 1];
237 } TASKENTRY
, *LPTASKENTRY
;
239 BOOL16 WINAPI
TaskFirst(LPTASKENTRY lpTask
);
240 BOOL16 WINAPI
TaskNext(LPTASKENTRY lpTask
);
241 BOOL16 WINAPI
TaskFindHandle(LPTASKENTRY lpTask
, HTASK16 hTask
);
242 DWORD WINAPI
TaskSetCSIP(HTASK16 hTask
, WORD wCS
, WORD wIP
);
243 DWORD WINAPI
TaskGetCSIP(HTASK16 hTask
);
244 BOOL16 WINAPI
TaskSwitch(HTASK16 hTask
, DWORD dwNewCSIP
);
248 typedef struct tagMEMMANINFO
{
250 DWORD dwLargestFreeBlock
;
251 DWORD dwMaxPagesAvailable
;
252 DWORD dwMaxPagesLockable
;
253 DWORD dwTotalLinearSpace
;
254 DWORD dwTotalUnlockedPages
;
257 DWORD dwFreeLinearSpace
;
258 DWORD dwSwapFilePages
;
261 typedef MEMMANINFO
*LPMEMMANINFO
;
266 WORD wUserFreePercent
;
267 WORD wGDIFreePercent
;
268 HGLOBAL16 hUserSegment
;
269 HGLOBAL16 hGDISegment
;
272 BOOL16 WINAPI
MemManInfo(LPMEMMANINFO lpEnhMode
);
273 BOOL16 WINAPI
SystemHeapInfo( SYSHEAPINFO
*pHeapInfo
);
277 typedef struct tagTIMERINFO
{
279 DWORD dwmsSinceStart
;
283 BOOL16 WINAPI
TimerCount( TIMERINFO
*pTimerInfo
);
290 HMODULE16 hInst
; /* This is really an hModule */
291 char szClassName
[MAX_CLASSNAME
+ 1];
295 BOOL16 WINAPI
ClassFirst( CLASSENTRY
*pClassEntry
);
296 BOOL16 WINAPI
ClassNext( CLASSENTRY
*pClassEntry
);
299 /* Memory read/write */
301 DWORD WINAPI
MemoryRead( WORD sel
, DWORD offset
, void *buffer
, DWORD count
);
302 DWORD WINAPI
MemoryWrite( WORD sel
, DWORD offset
, void *buffer
, DWORD count
);
304 /* flags to NotifyRegister() */
305 #define NF_NORMAL 0 /* everything except taskswitches, debugerrors,
308 #define NF_TASKSWITCH 1 /* get taskswitch information */
309 #define NF_RIP 2 /* get debugerrors of system */
311 BOOL16 WINAPI
NotifyRegister(HTASK16 htask
,FARPROC16 lpfnCallback
,WORD wFlags
);
313 #define NFY_UNKNOWN 0
314 #define NFY_LOADSEG 1
315 /* DATA is a pointer to following struct: */
320 WORD wType
; /* bit 0 set if this is a code segment */
321 WORD wcInstance
; /* only valid for data segment */
323 /* called when freeing a segment. LOWORD(dwData) is the freed selector */
324 #define NFY_FREESEG 2
326 /* called when loading/starting a DLL */
327 #define NFY_STARTDLL 3
335 /* called when starting a task. dwData is CS:IP */
336 #define NFY_STARTTASK 4
338 /* called when a task terminates. dwData is the return code */
339 #define NFY_EXITTASK 5
341 /* called when module is removed. LOWORD(dwData) is the handle */
342 #define NFY_DELMODULE 6
344 /* RIP? debugevent */
355 /* called before (after?) switching to a task
356 * no data, callback should call GetCurrentTask
360 /* called before(after?) switching from a task
361 * no data, callback should call GetCurrentTask
363 #define NFY_TASKOUT 9
365 /* returns ASCII input value, dwData not set */
366 #define NFY_INCHAR 10
368 /* output debugstring (pointed to by dwData) */
369 #define NFY_OUTSTRING 11
372 #define NFY_LOGERROR 12
376 VOID
*lpInfo
; /* depends on wErrCode */
379 /* called for parameter errors? */
380 #define NFY_LOGPARAMERROR 13
384 FARPROC16 lpfnErrorAddr
;
403 * Process Entry list as created by CreateToolHelp32Snapshot
406 typedef struct tagPROCESSENTRY32
{
410 DWORD th32DefaultHeapID
;
413 DWORD th32ParentProcessID
;
416 char szExeFile
[MAX_PATH
];
418 typedef PROCESSENTRY32
* PPROCESSENTRY32
;
419 typedef PROCESSENTRY32
* LPPROCESSENTRY32
;
421 BOOL32 WINAPI
Process32First(HANDLE32
,LPPROCESSENTRY32
);
422 BOOL32 WINAPI
Process32Next(HANDLE32
,LPPROCESSENTRY32
);
425 #endif /* __WINE_TOOLHELP_H */