mirror of
https://github.com/reactos/wine.git
synced 2024-11-26 13:10:28 +00:00
7d654eb24e
Sat Feb 24 16:17:05 1996 Alexandre Julliard <julliard@lrc.epfl.ch> * [files/profile.c] Added \r when writing profile files, for DOS compatibility. * [memory/global.c] Fixed bug in GlobalReAlloc() that caused a discarded block not to be reallocated if its size was not changed. * [memory/selector.c] Avoid setting a valid LDT entry with base and limit set to 0, as this causes the kernel to clear the entry. This fixes a crash when exiting Windows program manager. * [objects/metafile.c] Removed call to creat() instead of _lcreat() for WINELIB. Fri Feb 23 00:35:54 1996 Thomas Sandford <tdgsandf@prds-grn.demon.co.uk> * [if1632/gdi32.spec] GetTextExtentPointA now has win32 specific implementation. * [include/struct32.h] Define new structure tagSIZE32 and typedef SIZE32 to it. Define prototype for function PARAM32_SIZE16to32 * [win32/param32.c] New functions PARAM32_SIZE16to32 and WIN32_GetTextExtentPointA * [win32/memory.c] Added missing file pointer parameter to fprintf. Thu Feb 22 01:14:21 1996 Eric Warnke <ew2193@csc.albany.edu> * [windows/nonclient.c] Added more familiar icon activity, ie single click brings up system menu. Wed Feb 21 13:07:04 1996 Frans van Dorsselaer <dorssel@rulhm1.leidenuniv.nl> * [controls/menu.c] Added calls to HideCaret() and ShowCaret() from within TrackPopupMenu(), MENU_TrackMouseMenuBar() and MENU_TrackKbdMenuBar(). Are there any more places where this should be done? * [controls/static.c] Fixed a FIXME in STATIC_SetIcon(), which now returns a handle to the previous icon. Added a new FIXME at the point where WM_SETTEXT is handled for a SS_ICON static control. * [misc/commdlg.c] Implemented FindText() and ReplaceText() Still missing : Templates and Hooks handling / error checking * [resources/sysres_En.c] Redesigned FIND_TEXT and REPLACE_TEXT dialogs, so they now work. Languages other than En should update these too, though, as well as redimension the controls because some of the text doesn't fit. Created file resources/TODO to explain this. * [windows/caret.c] Re-written. It now uses the correct R2_XORPEN. It resets the blink timer on SetCaretPos(). It does its own hide/show scheme when SetCaretPos() is called (should be faster). Mon Feb 19 21:50:00 1996 Alex Korobka <alex@phm30.pharm.sunysb.edu> * [controls/listbox.c] Miscellaneous changes for better LBS_EXTENDEDSEL support. Removed several superfluous redrawals of item list. * [controls/scroll.c] WM_GETDLGCODE return value. * [windows/win.c] FlashWindow function. * [windows/painting.c] [windows/scroll.c] Added HideCaret/ShowCaret calls. * [objects/font.c] Added GetCharABCWidths stub. * [include/windows.h] "#define"s needed for changes mentioned above. Mon Feb 19 20:12:03 1996 Hans de Graaff <Hans.deGraaff@twi72.twi.tudelft.nl> * [include/winsock.h] Change order of includes to get in_addr struct defined in time. (Note: Linux 1.3.66, libc 5.2.18) * [misc/main.c] [include/options.h] [miscemu/int2f.c] Changed the -enhanced option into a -mode option, which can be either 'standard' or 'enhanced'. 'enhanced' is the default.
348 lines
8.3 KiB
C
348 lines
8.3 KiB
C
#ifndef __TOOLHELP_H
|
|
#define __TOOLHELP_H
|
|
|
|
#include "windows.h"
|
|
|
|
#define MAX_DATA 11
|
|
#define MAX_MODULE_NAME 9
|
|
#define MAX_PATH 255
|
|
#define MAX_CLASSNAME 255
|
|
|
|
/* Global heap */
|
|
|
|
typedef struct
|
|
{
|
|
DWORD dwSize;
|
|
WORD wcItems;
|
|
WORD wcItemsFree;
|
|
WORD wcItemsLRU;
|
|
} GLOBALINFO;
|
|
|
|
typedef struct
|
|
{
|
|
DWORD dwSize;
|
|
DWORD dwAddress;
|
|
DWORD dwBlockSize;
|
|
HGLOBAL hBlock;
|
|
WORD wcLock;
|
|
WORD wcPageLock;
|
|
WORD wFlags;
|
|
BOOL wHeapPresent;
|
|
HGLOBAL hOwner;
|
|
WORD wType;
|
|
WORD wData;
|
|
DWORD dwNext;
|
|
DWORD dwNextAlt;
|
|
} GLOBALENTRY;
|
|
|
|
/* GlobalFirst()/GlobalNext() flags */
|
|
#define GLOBAL_ALL 0
|
|
#define GLOBAL_LRU 1
|
|
#define GLOBAL_FREE 2
|
|
|
|
/* wType values */
|
|
#define GT_UNKNOWN 0
|
|
#define GT_DGROUP 1
|
|
#define GT_DATA 2
|
|
#define GT_CODE 3
|
|
#define GT_TASK 4
|
|
#define GT_RESOURCE 5
|
|
#define GT_MODULE 6
|
|
#define GT_FREE 7
|
|
#define GT_INTERNAL 8
|
|
#define GT_SENTINEL 9
|
|
#define GT_BURGERMASTER 10
|
|
|
|
/* wData values */
|
|
#define GD_USERDEFINED 0
|
|
#define GD_CURSORCOMPONENT 1
|
|
#define GD_BITMAP 2
|
|
#define GD_ICONCOMPONENT 3
|
|
#define GD_MENU 4
|
|
#define GD_DIALOG 5
|
|
#define GD_STRING 6
|
|
#define GD_FONTDIR 7
|
|
#define GD_FONT 8
|
|
#define GD_ACCELERATORS 9
|
|
#define GD_RCDATA 10
|
|
#define GD_ERRTABLE 11
|
|
#define GD_CURSOR 12
|
|
#define GD_ICON 14
|
|
#define GD_NAMETABLE 15
|
|
#define GD_MAX_RESOURCE 15
|
|
|
|
/* wFlags values */
|
|
#define GF_PDB_OWNER 0x0100 /* Low byte is KERNEL flags */
|
|
|
|
BOOL GlobalInfo( GLOBALINFO *pInfo );
|
|
BOOL GlobalFirst( GLOBALENTRY *pGlobal, WORD wFlags );
|
|
BOOL GlobalNext( GLOBALENTRY *pGlobal, WORD wFlags) ;
|
|
BOOL GlobalEntryHandle( GLOBALENTRY *pGlobal, HGLOBAL hItem );
|
|
BOOL GlobalEntryModule( GLOBALENTRY *pGlobal, HMODULE hModule, WORD wSeg );
|
|
WORD GlobalHandleToSel( HGLOBAL handle );
|
|
|
|
/* Local heap */
|
|
|
|
typedef struct
|
|
{
|
|
DWORD dwSize;
|
|
WORD wcItems;
|
|
} LOCALINFO;
|
|
|
|
typedef struct
|
|
{
|
|
DWORD dwSize;
|
|
HLOCAL hHandle;
|
|
WORD wAddress;
|
|
WORD wSize;
|
|
WORD wFlags;
|
|
WORD wcLock;
|
|
WORD wType;
|
|
WORD hHeap;
|
|
WORD wHeapType;
|
|
WORD wNext;
|
|
} LOCALENTRY;
|
|
|
|
/* wHeapType values */
|
|
#define NORMAL_HEAP 0
|
|
#define USER_HEAP 1
|
|
#define GDI_HEAP 2
|
|
|
|
/* wFlags values */
|
|
#define LF_FIXED 1
|
|
#define LF_FREE 2
|
|
#define LF_MOVEABLE 4
|
|
|
|
/* wType values */
|
|
#define LT_NORMAL 0
|
|
#define LT_FREE 0xff
|
|
#define LT_GDI_PEN 1 /* LT_GDI_* is for GDI's heap */
|
|
#define LT_GDI_BRUSH 2
|
|
#define LT_GDI_FONT 3
|
|
#define LT_GDI_PALETTE 4
|
|
#define LT_GDI_BITMAP 5
|
|
#define LT_GDI_RGN 6
|
|
#define LT_GDI_DC 7
|
|
#define LT_GDI_DISABLED_DC 8
|
|
#define LT_GDI_METADC 9
|
|
#define LT_GDI_METAFILE 10
|
|
#define LT_GDI_MAX LT_GDI_METAFILE
|
|
#define LT_USER_CLASS 1 /* LT_USER_* is for USER's heap */
|
|
#define LT_USER_WND 2
|
|
#define LT_USER_STRING 3
|
|
#define LT_USER_MENU 4
|
|
#define LT_USER_CLIP 5
|
|
#define LT_USER_CBOX 6
|
|
#define LT_USER_PALETTE 7
|
|
#define LT_USER_ED 8
|
|
#define LT_USER_BWL 9
|
|
#define LT_USER_OWNERDRAW 10
|
|
#define LT_USER_SPB 11
|
|
#define LT_USER_CHECKPOINT 12
|
|
#define LT_USER_DCE 13
|
|
#define LT_USER_MWP 14
|
|
#define LT_USER_PROP 15
|
|
#define LT_USER_LBIV 16
|
|
#define LT_USER_MISC 17
|
|
#define LT_USER_ATOMS 18
|
|
#define LT_USER_LOCKINPUTSTATE 19
|
|
#define LT_USER_HOOKLIST 20
|
|
#define LT_USER_USERSEEUSERDOALLOC 21
|
|
#define LT_USER_HOTKEYLIST 22
|
|
#define LT_USER_POPUPMENU 23
|
|
#define LT_USER_HANDLETABLE 32
|
|
#define LT_USER_MAX LT_USER_HANDLETABLE
|
|
|
|
BOOL LocalInfo( LOCALINFO *pLocalInfo, HGLOBAL handle );
|
|
BOOL LocalFirst( LOCALENTRY *pLocalEntry, HGLOBAL handle );
|
|
BOOL LocalNext( LOCALENTRY *pLocalEntry );
|
|
|
|
|
|
/* modules */
|
|
|
|
typedef struct {
|
|
DWORD dwSize;
|
|
char szModule[MAX_MODULE_NAME + 1];
|
|
HMODULE hModule;
|
|
WORD wcUsage;
|
|
char szExePath[MAX_PATH + 1];
|
|
HANDLE wNext;
|
|
} MODULEENTRY;
|
|
typedef MODULEENTRY *LPMODULEENTRY;
|
|
|
|
BOOL ModuleFirst(MODULEENTRY *lpModule);
|
|
BOOL ModuleNext(MODULEENTRY *lpModule);
|
|
BOOL ModuleFindName(MODULEENTRY *lpModule, LPCSTR lpstrName);
|
|
BOOL ModuleFindHandle(MODULEENTRY *lpModule, HMODULE hModule);
|
|
|
|
/* tasks */
|
|
|
|
typedef struct tagTASKENTRY {
|
|
DWORD dwSize;
|
|
HTASK hTask;
|
|
HTASK hTaskParent;
|
|
HINSTANCE hInst;
|
|
HMODULE hModule;
|
|
WORD wSS;
|
|
WORD wSP;
|
|
WORD wStackTop;
|
|
WORD wStackMinimum;
|
|
WORD wStackBottom;
|
|
WORD wcEvents;
|
|
HGLOBAL hQueue;
|
|
char szModule[MAX_MODULE_NAME + 1];
|
|
WORD wPSPOffset;
|
|
HANDLE hNext;
|
|
} TASKENTRY;
|
|
typedef TASKENTRY *LPTASKENTRY;
|
|
|
|
BOOL TaskFirst(LPTASKENTRY lpTask);
|
|
BOOL TaskNext(LPTASKENTRY lpTask);
|
|
BOOL TaskFindHandle(LPTASKENTRY lpTask, HTASK hTask);
|
|
DWORD TaskSetCSIP(HTASK hTask, WORD wCS, WORD wIP);
|
|
DWORD TaskGetCSIP(HTASK hTask);
|
|
BOOL TaskSwitch(HTASK hTask, DWORD dwNewCSIP);
|
|
|
|
/* mem info */
|
|
|
|
typedef struct tagMEMMANINFO {
|
|
DWORD dwSize;
|
|
DWORD dwLargestFreeBlock;
|
|
DWORD dwMaxPagesAvailable;
|
|
DWORD dwMaxPagesLockable;
|
|
DWORD dwTotalLinearSpace;
|
|
DWORD dwTotalUnlockedPages;
|
|
DWORD dwFreePages;
|
|
DWORD dwTotalPages;
|
|
DWORD dwFreeLinearSpace;
|
|
DWORD dwSwapFilePages;
|
|
WORD wPageSize;
|
|
} MEMMANINFO;
|
|
typedef MEMMANINFO *LPMEMMANINFO;
|
|
|
|
typedef struct
|
|
{
|
|
DWORD dwSize;
|
|
WORD wUserFreePercent;
|
|
WORD wGDIFreePercent;
|
|
HGLOBAL hUserSegment;
|
|
HGLOBAL hGDISegment;
|
|
} SYSHEAPINFO;
|
|
|
|
BOOL MemManInfo(LPMEMMANINFO lpEnhMode);
|
|
BOOL SystemHeapInfo( SYSHEAPINFO *pHeapInfo );
|
|
|
|
/* timer info */
|
|
|
|
typedef struct tagTIMERINFO {
|
|
DWORD dwSize;
|
|
DWORD dwmsSinceStart;
|
|
DWORD dwmsThisVM;
|
|
} TIMERINFO;
|
|
|
|
BOOL TimerCount( TIMERINFO *pTimerInfo );
|
|
|
|
/* Window classes */
|
|
|
|
typedef struct
|
|
{
|
|
DWORD dwSize;
|
|
HMODULE hInst; /* This is really an hModule */
|
|
char szClassName[MAX_CLASSNAME + 1];
|
|
HANDLE wNext;
|
|
} CLASSENTRY;
|
|
|
|
BOOL ClassFirst( CLASSENTRY *pClassEntry );
|
|
BOOL ClassNext( CLASSENTRY *pClassEntry );
|
|
|
|
|
|
/* Memory read/write */
|
|
|
|
DWORD MemoryRead( WORD sel, DWORD offset, void *buffer, DWORD count );
|
|
DWORD MemoryWrite( WORD sel, DWORD offset, void *buffer, DWORD count );
|
|
|
|
/* flags to NotifyRegister() */
|
|
#define NF_NORMAL 0 /* everything except taskswitches, debugerrors,
|
|
* debugstrings
|
|
*/
|
|
#define NF_TASKSWITCH 1 /* get taskswitch information */
|
|
#define NF_RIP 2 /* get debugerrors of system */
|
|
|
|
BOOL NotifyRegister(HTASK htask,FARPROC lpfnCallback,WORD wFlags);
|
|
|
|
#define NFY_UNKNOWN 0
|
|
#define NFY_LOADSEG 1
|
|
/* DATA is a pointer to following struct: */
|
|
struct {
|
|
DWORD dwSize;
|
|
WORD wSelector;
|
|
WORD wSegNum;
|
|
WORD wType; /* bit 0 set if this is a code segment */
|
|
WORD wcInstance; /* only valid for data segment */
|
|
} NFYLOADSEG;
|
|
/* called when freeing a segment. LOWORD(dwData) is the freed selector */
|
|
#define NFY_FREESEG 2
|
|
|
|
/* called when loading/starting a DLL */
|
|
#define NFY_STARTDLL 3
|
|
struct {
|
|
DWORD dwSize;
|
|
HMODULE hModule;
|
|
WORD wCS;
|
|
WORD wIP;
|
|
} NFYSTARTDLL;
|
|
|
|
/* called when starting a task. dwData is CS:IP */
|
|
#define NFY_STARTTASK 4
|
|
|
|
/* called when a task terminates. dwData is the return code */
|
|
#define NFY_EXITTASK 5
|
|
|
|
/* called when module is removed. LOWORD(dwData) is the handle */
|
|
#define NFY_DELMODULE 6
|
|
|
|
/* RIP? debugevent */
|
|
#define NFY_RIP 7
|
|
struct {
|
|
DWORD dwSize;
|
|
WORD wIP;
|
|
WORD wCS;
|
|
WORD wSS;
|
|
WORD wBP;
|
|
WORD wExitCode;
|
|
} NFYRIP;
|
|
|
|
/* called before (after?) switching to a task
|
|
* no data, callback should call GetCurrentTask
|
|
*/
|
|
#define NFY_TASKIN 8
|
|
|
|
/* called before(after?) switching from a task
|
|
* no data, callback should call GetCurrentTask
|
|
*/
|
|
#define NFY_TASKOUT 9
|
|
|
|
/* returns ASCII input value, dwData not set */
|
|
#define NFY_INCHAR 10
|
|
|
|
/* output debugstring (pointed to by dwData) */
|
|
#define NFY_OUTSTRING 11
|
|
|
|
/* log errors */
|
|
#define NFY_LOGERROR 12
|
|
struct {
|
|
DWORD dwSize;
|
|
UINT wErrCode;
|
|
VOID FAR* lpInfo; /* depends on wErrCode */
|
|
} NFYLOGERROR;
|
|
|
|
/* called for parameter errors? */
|
|
#define NFY_LOGPARAMERROR 13
|
|
struct {
|
|
DWORD dwSize;
|
|
UINT wErrCode;
|
|
FARPROC lpfnErrorAddr;
|
|
void FAR* FAR* lpBadParam;
|
|
} NFYLOGPARAMERROR;
|
|
#endif /* __TOOLHELP_H */
|