📄 windows.h
字号:
#ifndef NOLOGERROR
void WINAPI LogError(UINT err, void FAR* lpInfo);
void WINAPI LogParamError(UINT err, FARPROC lpfn, void FAR* param);
/****** LogParamError/LogError values */
/* Error modifier bits */
#define ERR_WARNING 0x8000
#define ERR_PARAM 0x4000
/* Internal error value masks */ /* ;Internal */
#define ERR_TYPE_MASK 0x0fff /* ;Internal */
#define ERR_FLAGS_MASK 0xc000 /* ;Internal */
/* ;Internal */
#define ERR_SIZE_MASK 0x3000
#define ERR_SIZE_SHIFT 12 /* ;Internal */
#define ERR_BYTE 0x1000
#define ERR_WORD 0x2000
#define ERR_DWORD 0x3000
/* ;Internal */
// Error option flags (set by [kernel] ErrorOptions win.ini variable) /* ;Internal */
/* ;Internal */
#define ERO_PARAM_ERROR_BREAK 0x0001 /* ;Internal */
#define ERO_BUFFER_FILL 0x0002 /* ;Internal */
/****** LogParamError() values */
/* Generic parameter values */
#define ERR_BAD_VALUE 0x6001
#define ERR_BAD_FLAGS 0x6002
#define ERR_BAD_INDEX 0x6003
#define ERR_BAD_DVALUE 0x7004
#define ERR_BAD_DFLAGS 0x7005
#define ERR_BAD_DINDEX 0x7006
#define ERR_BAD_PTR 0x7007
#define ERR_BAD_FUNC_PTR 0x7008
#define ERR_BAD_SELECTOR 0x6009
#define ERR_BAD_STRING_PTR 0x700a
#define ERR_BAD_HANDLE 0x600b
/* KERNEL parameter errors */
#define ERR_BAD_HINSTANCE 0x6020
#define ERR_BAD_HMODULE 0x6021
#define ERR_BAD_GLOBAL_HANDLE 0x6022
#define ERR_BAD_LOCAL_HANDLE 0x6023
#define ERR_BAD_ATOM 0x6024
#define ERR_BAD_HFILE 0x6025
/* USER parameter errors */
#define ERR_BAD_HWND 0x6040
#define ERR_BAD_HMENU 0x6041
#define ERR_BAD_HCURSOR 0x6042
#define ERR_BAD_HICON 0x6043
#define ERR_BAD_HDWP 0x6044
#define ERR_BAD_CID 0x6045
#define ERR_BAD_HDRVR 0x6046
/* GDI parameter errors */
#define ERR_BAD_COORDS 0x7060
#define ERR_BAD_GDI_OBJECT 0x6061
#define ERR_BAD_HDC 0x6062
#define ERR_BAD_HPEN 0x6063
#define ERR_BAD_HFONT 0x6064
#define ERR_BAD_HBRUSH 0x6065
#define ERR_BAD_HBITMAP 0x6066
#define ERR_BAD_HRGN 0x6067
#define ERR_BAD_HPALETTE 0x6068
#define ERR_BAD_HMETAFILE 0x6069
#define ERR_BAD_HDCEMF 0x606A /* ;Internal */
#define ERR_BAD_HEMF 0x606B /* ;Internal */
/* ;Internal */
/* Debug fill constants */ /* ;Internal */
/* ;Internal */
#define DBGFILL_ALLOC 0xfd /* ;Internal */
#define DBGFILL_FREE 0xfb /* ;Internal */
#define DBGFILL_BUFFER 0xf9 /* ;Internal */
#define DBGFILL_STACK 0xf7 /* ;Internal */
/**** LogError() values */
/* KERNEL errors */
#define ERR_GALLOC 0x0001
#define ERR_GREALLOC 0x0002
#define ERR_GLOCK 0x0003
#define ERR_LALLOC 0x0004
#define ERR_LREALLOC 0x0005
#define ERR_LLOCK 0x0006
#define ERR_ALLOCRES 0x0007
#define ERR_LOCKRES 0x0008
#define ERR_LOADMODULE 0x0009
/* USER errors */
#define ERR_CREATEDLG 0x0040
#define ERR_CREATEDLG2 0x0041
#define ERR_REGISTERCLASS 0x0042
#define ERR_DCBUSY 0x0043
#define ERR_CREATEWND 0x0044
#define ERR_STRUCEXTRA 0x0045
#define ERR_LOADSTR 0x0046
#define ERR_LOADMENU 0x0047
#define ERR_NESTEDBEGINPAINT 0x0048
#define ERR_BADINDEX 0x0049
#define ERR_CREATEMENU 0x004a
/* GDI errors */
#define ERR_CREATEDC 0x0080
#define ERR_CREATEMETA 0x0081
#define ERR_DELOBJSELECTED 0x0082
#define ERR_SELBITMAP 0x0083
/* Debugging support (DEBUG SYSTEM ONLY) */
typedef struct tagWINDEBUGINFO
{
UINT flags;
DWORD dwOptions;
DWORD dwFilter;
char achAllocModule[8];
DWORD dwAllocBreak;
DWORD dwAllocCount;
#if (WINVER >= 0x0400)
WORD chDefRIP;
#endif /* WINVER >= 0x0400 */
} WINDEBUGINFO;
BOOL WINAPI GetWinDebugInfo(WINDEBUGINFO FAR* lpwdi, UINT flags);
BOOL WINAPI SetWinDebugInfo(const WINDEBUGINFO FAR* lpwdi);
void FAR _cdecl DebugOutput(UINT flags, LPCSTR lpsz, ...);
void WINAPI DebugFillBuffer(void FAR* lpb, UINT cb); /* ;Internal */
/* WINDEBUGINFO flags values */
#define WDI_OPTIONS 0x0001
#define WDI_FILTER 0x0002
#define WDI_ALLOCBREAK 0x0004
#define WDI_DEFRIP 0x0008
#define WDI_VALID 0x00015 /* ;Internal */
/* dwOptions values */
#define DBO_CHECKHEAP 0x0001
#define DBO_BUFFERFILL 0x0004
#define DBO_DISABLEGPTRAPPING 0x0010
#define DBO_CHECKFREE 0x0020
#define DBO_SILENT 0x8000
#define DBO_TRACEBREAK 0x2000
#define DBO_WARNINGBREAK 0x1000
#define DBO_NOERRORBREAK 0x0800
#define DBO_NOFATALBREAK 0x0400
#define DBO_INT3BREAK 0x0100
/* DebugOutput flags values */
#define DBF_TRACE 0x0000
#define DBF_WARNING 0x4000
#define DBF_ERROR 0x8000
#define DBF_FATAL 0xc000
#define DBF_SEVMASK 0xc000 /* ;Internal */
#define DBF_FILTERMASK 0x3fff /* ;Internal */
/* dwFilter values */
#define DBF_KERNEL 0x1000
#define DBF_KRN_MEMMAN 0x0001
#define DBF_KRN_LOADMODULE 0x0002
#define DBF_KRN_SEGMENTLOAD 0x0004
#define DBF_USER 0x0800
#define DBF_GDI 0x0400
#define DBF_MMSYSTEM 0x0040
#define DBF_PENWIN 0x0020
#define DBF_APPLICATION 0x0008
#define DBF_DRIVER 0x0010
#endif /* NOLOGERROR */
#endif /* WINVER >= 0x030a */
void WINAPI FatalExit(int);
void WINAPI FatalAppExit(UINT, LPCSTR);
BOOL WINAPI ExitWindows(DWORD dwReturnCode, UINT wReserved);
#define EW_RESTARTWINDOWS 0x42
#if (WINVER >= 0x030a)
#define EW_REBOOTSYSTEM 0x43
#define EW_EXITANDEXECAPP 0x44 /* ;Internal */
BOOL WINAPI ExitWindowsExec(LPCSTR, LPCSTR);
#endif /* WINVER >= 0x030a */
#define EWX_LOGOFF 0 // ;Internal 4.0
#define EWX_SHUTDOWN 1 // ;Internal 4.0
#define EWX_REBOOT 2 // ;Internal 4.0
#define EWX_FORCE 4 // ;Internal 4.0
#define EWX_POWEROFF 8 // ;Internal 4.0
#define EWX_REALLYLOGOFF 0x80000000 // ;Internal 4.0
#if (WINVER >= 0x0400) // ;Internal
BOOL SaveDesktopState(DWORD, DWORD, DWORD); // ;Internal
#define SAVEDESKTOPSTATEN_EXITWINDOWS 1 // ;Internal
#define SAVEDESKTOPSTATEN_SHUTDOWN 2 // ;Internal
#define SAVEDESKTOPSTATEN_SUSPEND 3 // ;Internal
// ;Internal
#define SAVEDESKTOPSTATEF_NOPROMPT 1 // ;Internal
#endif /* WINVER >= 0x0400 */ // ;Internal
// ;Internal
void WINAPI DebugBreak(void);
void WINAPI OutputDebugString(LPCSTR);
/* SetErrorMode() constants */
#define SEM_FAILCRITICALERRORS 0x0001
#define SEM_NOGPFAULTERRORBOX 0x0002
#define SEM_NOALIGNMENTFAULTEXCEPT 0x0004 // ;Internal NT only
#define SEM_NOOPENFILEERRORBOX 0x8000
UINT WINAPI SetErrorMode(UINT);
#if (WINVER >= 0x0400)
void WINAPI SetLastError(DWORD);
DWORD WINAPI GetLastError(void);
#endif /* WINVER >= 0x0400 */
/****** Pointer validation **************************************************/
#if (WINVER >= 0x030a)
BOOL WINAPI IsBadReadPtr(const void FAR* lp, UINT cb);
BOOL WINAPI IsBadWritePtr(void FAR* lp, UINT cb);
BOOL WINAPI IsBadHugeReadPtr(const void _huge* lp, DWORD cb);
BOOL WINAPI IsBadHugeWritePtr(void _huge* lp, DWORD cb);
BOOL WINAPI IsBadCodePtr(FARPROC lpfn);
BOOL WINAPI IsBadStringPtr(const void FAR* lpsz, UINT cchMax);
#endif /* WINVER >= 0x030a */
/****** Profiling support ***************************************************/
#ifndef NOPROFILER
int WINAPI ProfInsChk(void);
void WINAPI ProfSetup(int,int);
void WINAPI ProfSampRate(int,int);
void WINAPI ProfStart(void);
void WINAPI ProfStop(void);
void WINAPI ProfClear(void);
void WINAPI ProfFlush(void);
void WINAPI ProfFinish(void);
#if (WINVER >= 0x0400)
void WINAPI ProfStart32(void);
void WINAPI ProfStop32(void);
void WINAPI ProfClear32(void);
void WINAPI ProfFlush32(void);
void WINAPI ProfFinish32(void);
#endif /* WINVER >= 0x0400) */
#endif /* NOPROFILER */
/****** Catch/Throw and stack management ************************************/
typedef int CATCHBUF[9];
typedef int FAR* LPCATCHBUF;
int WINAPI Catch(int FAR*);
void WINAPI Throw(const int FAR*, int);
void WINAPI SwitchStackBack(void);
void WINAPI SwitchStackTo(UINT, UINT, UINT);
/****** Module Management ***************************************************/
#define HINSTANCE_ERROR ((HINSTANCE)32)
LONG WINAPI GetExpWinVer(HINSTANCE); /* ;Internal */
/* ;Internal */
HINSTANCE WINAPI LoadModule(LPCSTR, LPVOID);
BOOL WINAPI FreeModule(HINSTANCE);
HINSTANCE WINAPI LoadLibrary(LPCSTR);
void WINAPI FreeLibrary(HINSTANCE);
UINT WINAPI WinExec(LPCSTR, UINT);
HMODULE WINAPI GetModuleHandle(LPCSTR);
int WINAPI GetModuleUsage(HINSTANCE);
int WINAPI GetModuleFileName(HINSTANCE, LPSTR, int);
#if (WINVER >= 0x0400) /* ;Internal */
BOOL WINAPI GetModuleName(HINSTANCE, LPSTR, int); /* ;Internal */
#endif /* WINVER >= 0x0400 */ /* ;Internal */
/* ;Internal */
FARPROC WINAPI GetProcAddress(HINSTANCE, LPCSTR);
int WINAPI GetInstanceData(HINSTANCE, BYTE NEAR *, int);
HGLOBAL WINAPI GetCodeHandle(FARPROC);
typedef struct tagSEGINFO
{
UINT offSegment;
UINT cbSegment;
UINT flags;
UINT cbAlloc;
HGLOBAL h;
UINT alignShift;
UINT reserved[2];
} SEGINFO;
typedef SEGINFO FAR* LPSEGINFO;
void WINAPI GetCodeInfo(FARPROC lpProc, SEGINFO FAR* lpSegInfo);
FARPROC WINAPI MakeProcInstance(FARPROC, HINSTANCE);
void WINAPI FreeProcInstance(FARPROC);
LONG WINAPI SetSwapAreaSize(UINT);
void WINAPI SwapRecording(UINT);
void WINAPI ValidateCodeSegments(void);
/* Windows Exit Procedure flag values */
#define WEP_SYSTEM_EXIT 1
#define WEP_FREE_DLL 0
/****** Task Management *****************************************************/
#endif /* NOKERNEL */
DECLARE_HANDLE(HTASK);
#ifndef NOKERNEL
UINT WINAPI GetNumTasks(void);
#if (WINVER >= 0x030a)
BOOL WINAPI IsTask(HTASK);
#endif /* WINVER >= 0x030a */
HTASK WINAPI GetCurrentTask(void);
int WINAPI SetPriority(HTASK, int); /* ;Internal */
void WINAPI Yield(void);
void WINAPI DirectedYield(HTASK);
DWORD WINAPI GetAppCompatFlags(HTASK); // ;Internal
// ;Internal
/* GetAppCompatFlags flag values */ // ;Internal
#define GACF_IGNORENODISCARD 0x00000001 // ;Internal
#define GACF_FORCETEXTBAND 0x00000002 // ;Internal
#define GACF_ONELANDGRXBAND 0x00000004 // ;Internal
#define GACF_DISABLEWIDEFONT 0x00000008 // ;Internal new bit for PSCRIPT
#define GACF_CALLTTDEVICE 0x00000010 // ;Internal
#define GACF_MULTIPLEBANDS 0x00000020 // ;Internal
#define GACF_ALWAYSSENDNCPAINT 0x00000040 // ;Internal
#define GACF_STUPIDPALETTEAPP 0x00000080 // ;Internal
#define GACF_MOREEXTRAWNDWORDS 0x00000100 // ;Internal
#define GACF_TTIGNORERASTERDUPE 0x00000200 // ;Internal
#define GACF_GLOBALHOOKSONLY16 0x00000400 // ;Internal
#define GACF_DELAYHWHNDSHAKECHK 0x00000800 // ;Internal
#define GACF_ENUMHELVNTMSRMN 0x00001000 // ;Internal
#define GACF_ENUMTTNOTDEVICE 0x00002000 // ;Internal
#define GACF_SUBTRACTCLIPSIBS 0x00004000 // ;Internal
#define GACF_FORCETTGRAPHICS 0x00008000 // ;Internal
#define GACF_NOHRGN1 0x00010000 // ;Internal
#define GACF_NCCALCSIZEONMOVE 0x00020000 // ;Internal
#define GACF_SENDMENUDBLCLK 0x00040000 // ;Internal not needed anymore
#define GACF_MODULESPECIFIC 0x00040000 // ;Internal replaces sendmenudblclk
#define GACF_30AVGWIDTH 0x00080000 // ;Internal
#define GACF_GETDEVCAPSNUMLIE 0x00100000 // ;Internal NT only
/* New flags for Win 4.0. */ // ;Internal
#define GACF_IGNOREDIBWIDTH 0x00100000 // ;Internal re-use GACF_DEVCAPSNUMLIE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -