📄 win30.h
字号:
#if !defined( __WINDOWS_H )
#define __WINDOWS_H
/****************************************************************************/
/* */
/* WINDOWS.H - */
/* */
/* Include file for Windows 3.0 applications */
/* */
/****************************************************************************/
#ifndef RC_INVOKED
#pragma option -a-
#pragma warn -bbf
#endif
#if defined( __cplusplus )
extern "C" {
#endif /* __cplusplus */
/* If defined, the following flags inhibit definition
* of the indicated items.
*
* NOGDICAPMASKS - CC_*, LC_*, PC_*, CP_*, TC_*, RC_
* NOVIRTUALKEYCODES - VK_*
* NOWINMESSAGES - WM_*, EM_*, LB_*, CB_*
* NOWINSTYLES - WS_*, CS_*, ES_*, LBS_*, SBS_*, CBS_*
* NOSYSMETRICS - SM_*
* NOMENUS - MF_*
* NOICONS - IDI_*
* NOKEYSTATES - MK_*
* NOSYSCOMMANDS - SC_*
* NORASTEROPS - Binary and Tertiary raster ops
* NOSHOWWINDOW - SW_*
* OEMRESOURCE - OEM Resource values
* NOATOM - Atom Manager routines
* NOCLIPBOARD - Clipboard routines
* NOCOLOR - Screen colors
* NOCTLMGR - Control and Dialog routines
* NODRAWTEXT - DrawText() and DT_*
* NOGDI - All GDI defines and routines
* NOKERNEL - All KERNEL defines and routines
* NOUSER - All USER defines and routines
* NOMB - MB_* and MessageBox()
* NOMEMMGR - GMEM_*, LMEM_*, GHND, LHND, associated routines
* NOMETAFILE - typedef METAFILEPICT
* NOMINMAX - Macros min(a,b) and max(a,b)
* NOMSG - typedef MSG and associated routines
* NOOPENFILE - OpenFile(), OemToAnsi, AnsiToOem, and OF_*
* NOSCROLL - SB_* and scrolling routines
* NOSOUND - Sound driver routines
* NOTEXTMETRIC - typedef TEXTMETRIC and associated routines
* NOWH - SetWindowsHook and WH_*
* NOWINOFFSETS - GWL_*, GCL_*, associated routines
* NOCOMM - COMM driver routines
* NOKANJI - Kanji support stuff.
* NOHELP - Help engine interface.
* NOPROFILER - Profiler interface.
* NODEFERWINDOWPOS - DeferWindowPos routines
*/
#ifdef RC_INVOKED
/* Turn off a bunch of stuff to ensure that RC files compile OK. */
#define NOATOM
#define NOGDI
#define NOGDICAPMASKS
#define NOMETAFILE
#define NOMINMAX
#define NOMSG
#define NOOPENFILE
#define NORASTEROPS
#define NOSCROLL
#define NOSOUND
#define NOSYSMETRICS
#define NOTEXTMETRIC
#define NOWH
#define NOCOMM
#define NOKANJI
#endif /* RC_INVOKED */
/*--------------------------------------------------------------------------*/
/* General Purpose Defines */
/*--------------------------------------------------------------------------*/
#ifndef NULL
#if defined(__TINY__) || defined(__SMALL__) || defined(__MEDIUM__)
#define NULL 0
#else
#define NULL 0L
#endif
#endif
#define FALSE 0
#define TRUE 1
#define FAR far
#define NEAR near
#define LONG long
#define VOID void
#define PASCAL pascal
#if !defined( NOMINMAX ) && !defined( __cplusplus )
#ifndef max
#define max(a,b) (((a) > (b)) ? (a) : (b))
#endif
#ifndef min
#define min(a,b) (((a) < (b)) ? (a) : (b))
#endif
#endif /* NOMINMAX */
#define MAKELONG(a, b) ((LONG)(((WORD)(a)) | (((DWORD)((WORD)(b))) << 16)))
#define LOWORD(l) ((WORD)(l))
#define HIWORD(l) ((WORD)((DWORD)(l) >> 16))
#define LOBYTE(w) ((BYTE)(w))
#define HIBYTE(w) ((BYTE)((WORD)(w) >> 8))
typedef int BOOL;
typedef unsigned char BYTE;
typedef unsigned int WORD;
typedef unsigned long DWORD;
typedef char near *PSTR;
typedef char near *NPSTR;
typedef char far *LPSTR;
typedef BYTE near *PBYTE;
typedef BYTE far *LPBYTE;
typedef int near *PINT;
typedef int far *LPINT;
typedef WORD near *PWORD;
typedef WORD far *LPWORD;
typedef long near *PLONG;
typedef long far *LPLONG;
typedef DWORD near *PDWORD;
typedef DWORD far *LPDWORD;
typedef void far *LPVOID;
#ifndef WIN_INTERNAL
typedef WORD HANDLE;
typedef HANDLE HWND;
#endif
typedef HANDLE *PHANDLE;
typedef HANDLE NEAR *SPHANDLE;
typedef HANDLE FAR *LPHANDLE;
typedef HANDLE GLOBALHANDLE;
typedef HANDLE LOCALHANDLE;
typedef int (FAR PASCAL *FARPROC)();
typedef int (NEAR PASCAL *NEARPROC)();
typedef HANDLE HSTR;
typedef HANDLE HICON;
typedef HANDLE HDC;
typedef HANDLE HMENU;
typedef HANDLE HPEN;
typedef HANDLE HFONT;
typedef HANDLE HBRUSH;
typedef HANDLE HBITMAP;
typedef HANDLE HCURSOR;
typedef HANDLE HRGN;
typedef HANDLE HPALETTE;
typedef DWORD COLORREF;
#ifndef WIN_INTERNAL
typedef struct tagRECT
{
int left;
int top;
int right;
int bottom;
} RECT;
#endif
typedef RECT *PRECT;
typedef RECT NEAR *NPRECT;
typedef RECT FAR *LPRECT;
typedef struct tagPOINT
{
int x;
int y;
} POINT;
typedef POINT *PPOINT;
typedef POINT NEAR *NPPOINT;
typedef POINT FAR *LPPOINT;
/*--------------------------------------------------------------------------*/
/* KERNEL Section */
/*--------------------------------------------------------------------------*/
#ifndef NOKERNEL
/* Loader Routines */
WORD FAR PASCAL GetVersion(void);
WORD FAR PASCAL GetNumTasks(void);
HANDLE FAR PASCAL GetCodeHandle(FARPROC);
void FAR PASCAL GetCodeInfo(FARPROC lpProc, LPVOID lpSegInfo);
HANDLE FAR PASCAL GetModuleHandle(LPSTR);
int FAR PASCAL GetModuleUsage(HANDLE);
int FAR PASCAL GetModuleFileName(HANDLE, LPSTR, int);
int FAR PASCAL GetInstanceData(HANDLE, NPSTR, int);
FARPROC FAR PASCAL GetProcAddress(HANDLE, LPSTR);
FARPROC FAR PASCAL MakeProcInstance(FARPROC, HANDLE);
void FAR PASCAL FreeProcInstance(FARPROC);
HANDLE FAR PASCAL LoadLibrary(LPSTR);
HANDLE FAR PASCAL LoadModule(LPSTR, LPVOID);
BOOL FAR PASCAL FreeModule(HANDLE);
void FAR PASCAL FreeLibrary(HANDLE);
DWORD FAR PASCAL GetFreeSpace(WORD);
WORD FAR PASCAL WinExec(LPSTR, WORD);
void FAR PASCAL DebugBreak(void);
void FAR PASCAL OutputDebugString(LPSTR);
void FAR PASCAL SwitchStackBack(void);
void FAR PASCAL SwitchStackTo(WORD, WORD, WORD);
WORD FAR PASCAL GetCurrentPDB(void);
#ifndef NOOPENFILE
/* OpenFile() Structure */
typedef struct tagOFSTRUCT
{
BYTE cBytes;
BYTE fFixedDisk;
WORD nErrCode;
BYTE reserved[4];
BYTE szPathName[128];
} OFSTRUCT;
typedef OFSTRUCT *POFSTRUCT;
typedef OFSTRUCT NEAR *NPOFSTRUCT;
typedef OFSTRUCT FAR *LPOFSTRUCT;
/* OpenFile() Flags */
#define OF_READ 0x0000
#define OF_WRITE 0x0001
#define OF_READWRITE 0x0002
#define OF_SHARE_COMPAT 0x0000
#define OF_SHARE_EXCLUSIVE 0x0010
#define OF_SHARE_DENY_WRITE 0x0020
#define OF_SHARE_DENY_READ 0x0030
#define OF_SHARE_DENY_NONE 0x0040
#define OF_PARSE 0x0100
#define OF_DELETE 0x0200
#define OF_VERIFY 0x0400
#define OF_CANCEL 0x0800
#define OF_CREATE 0x1000
#define OF_PROMPT 0x2000
#define OF_EXIST 0x4000
#define OF_REOPEN 0x8000
int FAR PASCAL OpenFile(LPSTR, LPOFSTRUCT, WORD);
/* GetTempFileName() Flags */
#define TF_FORCEDRIVE (BYTE)0x80
BYTE FAR PASCAL GetTempDrive(BYTE);
int FAR PASCAL GetTempFileName(BYTE, LPSTR, WORD, LPSTR);
WORD FAR PASCAL SetHandleCount(WORD);
WORD FAR PASCAL GetDriveType(int);
/* GetDriveType return values */
#define DRIVE_REMOVABLE 2
#define DRIVE_FIXED 3
#define DRIVE_REMOTE 4
#endif /* NOOPENFILE */
#ifndef NOMEMMGR
/* Global Memory Flags */
#define GMEM_FIXED 0x0000
#define GMEM_MOVEABLE 0x0002
#define GMEM_NOCOMPACT 0x0010
#define GMEM_NODISCARD 0x0020
#define GMEM_ZEROINIT 0x0040
#define GMEM_MODIFY 0x0080
#define GMEM_DISCARDABLE 0x0100
#define GMEM_NOT_BANKED 0x1000
#define GMEM_SHARE 0x2000
#define GMEM_DDESHARE 0x2000
#define GMEM_NOTIFY 0x4000
#define GMEM_LOWER GMEM_NOT_BANKED
#define GHND (GMEM_MOVEABLE | GMEM_ZEROINIT)
#define GPTR (GMEM_FIXED | GMEM_ZEROINIT)
#define GlobalDiscard(h) GlobalReAlloc(h, 0L, GMEM_MOVEABLE)
HANDLE FAR PASCAL GlobalAlloc(WORD, DWORD);
DWORD FAR PASCAL GlobalCompact(DWORD);
HANDLE FAR PASCAL GlobalFree(HANDLE);
DWORD FAR PASCAL GlobalHandle(WORD);
LPSTR FAR PASCAL GlobalLock(HANDLE);
HANDLE FAR PASCAL GlobalReAlloc(HANDLE, DWORD, WORD);
DWORD FAR PASCAL GlobalSize(HANDLE);
BOOL FAR PASCAL GlobalUnlock(HANDLE);
WORD FAR PASCAL GlobalFlags(HANDLE);
LPSTR FAR PASCAL GlobalWire(HANDLE);
BOOL FAR PASCAL GlobalUnWire(HANDLE);
BOOL FAR PASCAL GlobalUnlock(HANDLE);
HANDLE FAR PASCAL GlobalLRUNewest(HANDLE);
HANDLE FAR PASCAL GlobalLRUOldest(HANDLE);
VOID FAR PASCAL GlobalNotify(FARPROC);
WORD FAR PASCAL GlobalPageLock(HANDLE);
WORD FAR PASCAL GlobalPageUnlock(HANDLE);
VOID FAR PASCAL GlobalFix(HANDLE);
BOOL FAR PASCAL GlobalUnfix(HANDLE);
DWORD FAR PASCAL GlobalDosAlloc(DWORD);
WORD FAR PASCAL GlobalDosFree(WORD);
/* Flags returned by GlobalFlags (in addition to GMEM_DISCARDABLE) */
#define GMEM_DISCARDED 0x4000
#define GMEM_LOCKCOUNT 0x00FF
#define LockData(dummy) LockSegment(0xFFFF)
#define UnlockData(dummy) UnlockSegment(0xFFFF)
HANDLE FAR PASCAL LockSegment(WORD);
HANDLE FAR PASCAL UnlockSegment(WORD);
/* Local Memory Flags */
#define LMEM_FIXED 0x0000
#define LMEM_MOVEABLE 0x0002
#define LMEM_NOCOMPACT 0x0010
#define LMEM_NODISCARD 0x0020
#define LMEM_ZEROINIT 0x0040
#define LMEM_MODIFY 0x0080
#define LMEM_DISCARDABLE 0x0F00
#define LHND (LMEM_MOVEABLE | LMEM_ZEROINIT)
#define LPTR (LMEM_FIXED | LMEM_ZEROINIT)
#define NONZEROLHND (LMEM_MOVEABLE)
#define NONZEROLPTR (LMEM_FIXED)
#define LNOTIFY_OUTOFMEM 0
#define LNOTIFY_MOVE 1
#define LNOTIFY_DISCARD 2
#define LocalDiscard(h) LocalReAlloc(h, 0, LMEM_MOVEABLE)
HANDLE FAR PASCAL LocalAlloc(WORD, WORD);
WORD FAR PASCAL LocalCompact(WORD);
HANDLE FAR PASCAL LocalFree(HANDLE);
HANDLE FAR PASCAL LocalHandle(WORD);
BOOL FAR PASCAL LocalInit( WORD, WORD, WORD);
char NEAR * FAR PASCAL LocalLock(HANDLE);
FARPROC FAR PASCAL LocalNotify(FARPROC);
HANDLE FAR PASCAL LocalReAlloc(HANDLE, WORD, WORD);
WORD FAR PASCAL LocalSize(HANDLE);
BOOL FAR PASCAL LocalUnlock(HANDLE);
WORD FAR PASCAL LocalFlags(HANDLE);
WORD FAR PASCAL LocalShrink(HANDLE, WORD);
/* Flags returned by LocalFlags (in addition to LMEM_DISCARDABLE) */
#define LMEM_DISCARDED 0x4000
#define LMEM_LOCKCOUNT 0x00FF
#endif /* NOMEMMGR */
LONG FAR PASCAL SetSwapAreaSize(WORD);
LPSTR FAR PASCAL ValidateFreeSpaces(void);
VOID FAR PASCAL LimitEmsPages(DWORD);
BOOL FAR PASCAL SetErrorMode(WORD);
VOID FAR PASCAL ValidateCodeSegments(void);
LPSTR FAR PASCAL GetDOSEnvironment(void);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -