7 #define MAX_MODULE_NAME 9
9 #define MAX_CLASSNAME 255
38 /* GlobalFirst()/GlobalNext() flags */
54 #define GT_BURGERMASTER 10
57 #define GD_USERDEFINED 0
58 #define GD_CURSORCOMPONENT 1
60 #define GD_ICONCOMPONENT 3
66 #define GD_ACCELERATORS 9
68 #define GD_ERRTABLE 11
71 #define GD_NAMETABLE 15
72 #define GD_MAX_RESOURCE 15
75 #define GF_PDB_OWNER 0x0100 /* Low byte is KERNEL flags */
77 BOOL16
GlobalInfo( GLOBALINFO
*pInfo
);
78 BOOL16
GlobalFirst( GLOBALENTRY
*pGlobal
, WORD wFlags
);
79 BOOL16
GlobalNext( GLOBALENTRY
*pGlobal
, WORD wFlags
) ;
80 BOOL16
GlobalEntryHandle( GLOBALENTRY
*pGlobal
, HGLOBAL16 hItem
);
81 BOOL16
GlobalEntryModule( GLOBALENTRY
*pGlobal
, HMODULE16 hModule
, WORD wSeg
);
105 /* wHeapType values */
106 #define NORMAL_HEAP 0
113 #define LF_MOVEABLE 4
118 #define LT_GDI_PEN 1 /* LT_GDI_* is for GDI's heap */
119 #define LT_GDI_BRUSH 2
120 #define LT_GDI_FONT 3
121 #define LT_GDI_PALETTE 4
122 #define LT_GDI_BITMAP 5
125 #define LT_GDI_DISABLED_DC 8
126 #define LT_GDI_METADC 9
127 #define LT_GDI_METAFILE 10
128 #define LT_GDI_MAX LT_GDI_METAFILE
129 #define LT_USER_CLASS 1 /* LT_USER_* is for USER's heap */
130 #define LT_USER_WND 2
131 #define LT_USER_STRING 3
132 #define LT_USER_MENU 4
133 #define LT_USER_CLIP 5
134 #define LT_USER_CBOX 6
135 #define LT_USER_PALETTE 7
137 #define LT_USER_BWL 9
138 #define LT_USER_OWNERDRAW 10
139 #define LT_USER_SPB 11
140 #define LT_USER_CHECKPOINT 12
141 #define LT_USER_DCE 13
142 #define LT_USER_MWP 14
143 #define LT_USER_PROP 15
144 #define LT_USER_LBIV 16
145 #define LT_USER_MISC 17
146 #define LT_USER_ATOMS 18
147 #define LT_USER_LOCKINPUTSTATE 19
148 #define LT_USER_HOOKLIST 20
149 #define LT_USER_USERSEEUSERDOALLOC 21
150 #define LT_USER_HOTKEYLIST 22
151 #define LT_USER_POPUPMENU 23
152 #define LT_USER_HANDLETABLE 32
153 #define LT_USER_MAX LT_USER_HANDLETABLE
155 BOOL16
LocalInfo( LOCALINFO
*pLocalInfo
, HGLOBAL16 handle
);
156 BOOL16
LocalFirst( LOCALENTRY
*pLocalEntry
, HGLOBAL16 handle
);
157 BOOL16
LocalNext( LOCALENTRY
*pLocalEntry
);
165 char szModule
[MAX_MODULE_NAME
+ 1];
168 char szExePath
[MAX_PATH
+ 1];
170 } MODULEENTRY
, *LPMODULEENTRY
;
172 BOOL16
ModuleFirst(MODULEENTRY
*lpModule
);
173 BOOL16
ModuleNext(MODULEENTRY
*lpModule
);
174 BOOL16
ModuleFindName(MODULEENTRY
*lpModule
, LPCSTR lpstrName
);
175 BOOL16
ModuleFindHandle(MODULEENTRY
*lpModule
, HMODULE16 hModule
);
193 char szModule
[MAX_MODULE_NAME
+ 1];
196 } TASKENTRY
, *LPTASKENTRY
;
198 BOOL16
TaskFirst(LPTASKENTRY lpTask
);
199 BOOL16
TaskNext(LPTASKENTRY lpTask
);
200 BOOL16
TaskFindHandle(LPTASKENTRY lpTask
, HTASK16 hTask
);
201 DWORD
TaskSetCSIP(HTASK16 hTask
, WORD wCS
, WORD wIP
);
202 DWORD
TaskGetCSIP(HTASK16 hTask
);
203 BOOL16
TaskSwitch(HTASK16 hTask
, DWORD dwNewCSIP
);
207 typedef struct tagMEMMANINFO
{
209 DWORD dwLargestFreeBlock
;
210 DWORD dwMaxPagesAvailable
;
211 DWORD dwMaxPagesLockable
;
212 DWORD dwTotalLinearSpace
;
213 DWORD dwTotalUnlockedPages
;
216 DWORD dwFreeLinearSpace
;
217 DWORD dwSwapFilePages
;
220 typedef MEMMANINFO
*LPMEMMANINFO
;
225 WORD wUserFreePercent
;
226 WORD wGDIFreePercent
;
227 HGLOBAL16 hUserSegment
;
228 HGLOBAL16 hGDISegment
;
231 BOOL16
MemManInfo(LPMEMMANINFO lpEnhMode
);
232 BOOL16
SystemHeapInfo( SYSHEAPINFO
*pHeapInfo
);
236 typedef struct tagTIMERINFO
{
238 DWORD dwmsSinceStart
;
242 BOOL16
TimerCount( TIMERINFO
*pTimerInfo
);
249 HMODULE16 hInst
; /* This is really an hModule */
250 char szClassName
[MAX_CLASSNAME
+ 1];
254 BOOL16
ClassFirst( CLASSENTRY
*pClassEntry
);
255 BOOL16
ClassNext( CLASSENTRY
*pClassEntry
);
258 /* Memory read/write */
260 DWORD
MemoryRead( WORD sel
, DWORD offset
, void *buffer
, DWORD count
);
261 DWORD
MemoryWrite( WORD sel
, DWORD offset
, void *buffer
, DWORD count
);
263 /* flags to NotifyRegister() */
264 #define NF_NORMAL 0 /* everything except taskswitches, debugerrors,
267 #define NF_TASKSWITCH 1 /* get taskswitch information */
268 #define NF_RIP 2 /* get debugerrors of system */
270 BOOL16
NotifyRegister(HTASK16 htask
,FARPROC16 lpfnCallback
,WORD wFlags
);
272 #define NFY_UNKNOWN 0
273 #define NFY_LOADSEG 1
274 /* DATA is a pointer to following struct: */
279 WORD wType
; /* bit 0 set if this is a code segment */
280 WORD wcInstance
; /* only valid for data segment */
282 /* called when freeing a segment. LOWORD(dwData) is the freed selector */
283 #define NFY_FREESEG 2
285 /* called when loading/starting a DLL */
286 #define NFY_STARTDLL 3
294 /* called when starting a task. dwData is CS:IP */
295 #define NFY_STARTTASK 4
297 /* called when a task terminates. dwData is the return code */
298 #define NFY_EXITTASK 5
300 /* called when module is removed. LOWORD(dwData) is the handle */
301 #define NFY_DELMODULE 6
303 /* RIP? debugevent */
314 /* called before (after?) switching to a task
315 * no data, callback should call GetCurrentTask
319 /* called before(after?) switching from a task
320 * no data, callback should call GetCurrentTask
322 #define NFY_TASKOUT 9
324 /* returns ASCII input value, dwData not set */
325 #define NFY_INCHAR 10
327 /* output debugstring (pointed to by dwData) */
328 #define NFY_OUTSTRING 11
331 #define NFY_LOGERROR 12
335 VOID
*lpInfo
; /* depends on wErrCode */
338 /* called for parameter errors? */
339 #define NFY_LOGPARAMERROR 13
343 FARPROC16 lpfnErrorAddr
;
346 #endif /* __TOOLHELP_H */