win16.mh

来自「开放源码的编译器open watcom 1.6.0版的源代码」· MH 代码 · 共 2,221 行 · 第 1/5 页

MH
2,221
字号

#define GMEM_DISCARDED      0x4000
#define GMEM_LOCKCOUNT      0x00FF

BOOL    WINAPI GlobalUnlock(HGLOBAL);
DWORD   WINAPI GlobalSize(HGLOBAL);
DWORD   WINAPI GlobalHandle(UINT);
UINT    WINAPI GlobalFlags(HGLOBAL);

#ifdef STRICT
void FAR* WINAPI GlobalWire(HGLOBAL);
#else
char FAR* WINAPI GlobalWire(HGLOBAL);
#endif

BOOL    WINAPI GlobalUnWire(HGLOBAL);
UINT    WINAPI GlobalPageLock(HGLOBAL);
UINT    WINAPI GlobalPageUnlock(HGLOBAL);
void    WINAPI GlobalFix(HGLOBAL);
void    WINAPI GlobalUnfix(HGLOBAL);
HGLOBAL WINAPI GlobalLRUNewest(HGLOBAL);
HGLOBAL WINAPI GlobalLRUOldest(HGLOBAL);
DWORD   WINAPI GlobalCompact(DWORD);

#ifdef STRICT
typedef BOOL (CALLBACK *GNOTIFYPROC)(HGLOBAL);
#else
typedef FARPROC GNOTIFYPROC;
#endif

#define LockData(dummy)     LockSegment((UINT)-1)
#define UnlockData(dummy)   UnlockSegment((UINT)-1)

void    WINAPI GlobalNotify(GNOTIFYPROC);
HGLOBAL WINAPI LockSegment(UINT);
void    WINAPI UnlockSegment(UINT);
UINT    WINAPI AllocSelector(UINT);
UINT    WINAPI FreeSelector(UINT);
UINT    WINAPI AllocDStoCSAlias(UINT);
UINT    WINAPI PrestoChangoSelector(UINT sourceSel, UINT destSel);
DWORD   WINAPI GetSelectorBase(UINT);
UINT    WINAPI SetSelectorBase(UINT, DWORD);
DWORD   WINAPI GetSelectorLimit(UINT);
UINT    WINAPI SetSelectorLimit(UINT, DWORD);
void    WINAPI LimitEmsPages(DWORD);
void    WINAPI ValidateFreeSpaces(void);

#define WM_COMPACTING       0x0041

#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 LocalDiscard(h)     LocalReAlloc(h, 0, LMEM_MOVEABLE)

#define LMEM_DISCARDED      0x4000
#define LMEM_LOCKCOUNT      0x00FF


HLOCAL  WINAPI LocalAlloc(UINT, UINT);
HLOCAL  WINAPI LocalReAlloc(HLOCAL, UINT, UINT);
HLOCAL  WINAPI LocalFree(HLOCAL);
BOOL    WINAPI LocalUnlock(HLOCAL);
UINT    WINAPI LocalSize(HLOCAL);
UINT    WINAPI LocalFlags(HLOCAL);
BOOL    WINAPI LocalInit(UINT, UINT, UINT);
UINT    WINAPI LocalCompact(UINT);
UINT    WINAPI LocalShrink(HLOCAL, UINT);

#ifdef STRICT
void NEAR * WINAPI LocalLock(HLOCAL);
#else
char NEAR * WINAPI LocalLock(HLOCAL);
#endif

#if defined(STRICT) && !defined(__WINDOWS_386__)
HLOCAL      WINAPI LocalHandle(void NEAR*);
#else
HLOCAL      WINAPI LocalHandle(UINT);
#endif

#endif

#ifndef NOLFILEIO

typedef int HFILE;

#define HFILE_ERROR ((HFILE)-1)

#ifndef NOOPENFILE

typedef struct tagOFSTRUCT {
    BYTE cBytes;
    BYTE fFixedDisk;
    UINT nErrCode;
    BYTE reserved[4];
    char szPathName[128];
} OFSTRUCT, *POFSTRUCT, NEAR *NPOFSTRUCT, FAR *LPOFSTRUCT;

#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_SEARCH           0x0400
#define OF_CANCEL           0x0800
#define OF_CREATE           0x1000
#define OF_PROMPT           0x2000
#define OF_EXIST            0x4000
#define OF_REOPEN           0x8000

HFILE   WINAPI OpenFile(LPCSTR,OFSTRUCT FAR*,UINT);

#endif

#define READ        0
#define WRITE       1
#define READ_WRITE  2

#define SEEK_SET 0
#define SEEK_CUR 1
#define SEEK_END 2

HFILE   WINAPI _lopen(LPCSTR,int);
HFILE   WINAPI _lcreat(LPCSTR,int);
HFILE   WINAPI _lclose(HFILE);
LONG    WINAPI _llseek(HFILE,LONG,int);
UINT    WINAPI _lread(HFILE,void __huge*,UINT);
UINT    WINAPI _lwrite(HFILE,const void __huge*,UINT);

#if (WINVER >= 0x030a)
long    WINAPI _hread(HFILE,void __huge*,long);
long    WINAPI _hwrite(HFILE,const void __huge*,long);
#endif

#endif

#define TF_FORCEDRIVE       (BYTE)0x80

#define DRIVE_REMOVABLE 2
#define DRIVE_FIXED     3
#define DRIVE_REMOTE    4

int     WINAPI GetTempFileName(BYTE,LPCSTR,UINT,LPSTR);
BYTE    WINAPI GetTempDrive(char);
UINT    WINAPI GetDriveType(int);
UINT    WINAPI SetHandleCount(UINT);

UINT WINAPI WNetAddConnection(LPSTR,LPSTR,LPSTR);
UINT WINAPI WNetGetConnection(LPSTR,LPSTR,UINT FAR*);
UINT WINAPI WNetCancelConnection(LPSTR,BOOL);

#define WN_SUCCESS              0x0000
#define WN_NOT_SUPPORTED        0x0001
#define WN_NET_ERROR            0x0002
#define WN_MORE_DATA            0x0003
#define WN_BAD_POINTER          0x0004
#define WN_BAD_VALUE            0x0005
#define WN_BAD_PASSWORD         0x0006
#define WN_ACCESS_DENIED        0x0007
#define WN_FUNCTION_BUSY        0x0008
#define WN_WINDOWS_ERROR        0x0009
#define WN_BAD_USER             0x000A
#define WN_OUT_OF_MEMORY        0x000B
#define WN_CANCEL               0x000C
#define WN_CONTINUE             0x000D
#define WN_NOT_CONNECTED        0x0030
#define WN_OPEN_FILES           0x0031
#define WN_BAD_NETNAME          0x0032
#define WN_BAD_LOCALNAME        0x0033
#define WN_ALREADY_CONNECTED    0x0034
#define WN_DEVICE_ERROR         0x0035
#define WN_CONNECTION_CLOSED    0x0036

#define UnlockResource(h)   GlobalUnlock(h)
#define MAKEINTRESOURCE(i)  ((LPCSTR)MAKELP(0, (i)))

DECLARE_HANDLE(HRSRC);

HRSRC   WINAPI FindResource(HINSTANCE,LPCSTR,LPCSTR);
HGLOBAL WINAPI LoadResource(HINSTANCE,HRSRC);
BOOL    WINAPI FreeResource(HGLOBAL);
DWORD   WINAPI SizeofResource(HINSTANCE,HRSRC);
int     WINAPI AccessResource(HINSTANCE,HRSRC);
HGLOBAL WINAPI AllocResource(HINSTANCE,HRSRC,DWORD);

#ifdef STRICT
void FAR * WINAPI LockResource(HGLOBAL);
typedef HGLOBAL (CALLBACK* RSRCHDLRPROC)(HGLOBAL,HINSTANCE,HRSRC);
#else
char FAR * WINAPI LockResource(HGLOBAL);
typedef FARPROC RSRCHDLRPROC;
#endif

RSRCHDLRPROC WINAPI SetResourceHandler(HINSTANCE,LPCSTR,RSRCHDLRPROC);

#ifndef NORESOURCE

#define RT_CURSOR           MAKEINTRESOURCE(1)
#define RT_BITMAP           MAKEINTRESOURCE(2)
#define RT_ICON             MAKEINTRESOURCE(3)
#define RT_MENU             MAKEINTRESOURCE(4)
#define RT_DIALOG           MAKEINTRESOURCE(5)
#define RT_STRING           MAKEINTRESOURCE(6)
#define RT_FONTDIR          MAKEINTRESOURCE(7)
#define RT_FONT             MAKEINTRESOURCE(8)
#define RT_ACCELERATOR      MAKEINTRESOURCE(9)
#define RT_RCDATA           MAKEINTRESOURCE(10)
#define RT_GROUP_CURSOR     MAKEINTRESOURCE(12)
#define RT_GROUP_ICON       MAKEINTRESOURCE(14)

#endif

#ifdef OEMRESOURCE

#define OBM_CLOSE       32754
#define OBM_UPARROW     32753
#define OBM_DNARROW     32752
#define OBM_RGARROW     32751
#define OBM_LFARROW     32750
#define OBM_REDUCE      32749
#define OBM_ZOOM        32748
#define OBM_RESTORE     32747
#define OBM_REDUCED     32746
#define OBM_ZOOMD       32745
#define OBM_RESTORED    32744
#define OBM_UPARROWD    32743
#define OBM_DNARROWD    32742
#define OBM_RGARROWD    32741
#define OBM_LFARROWD    32740
#define OBM_MNARROW     32739
#define OBM_COMBO       32738
#if (WINVER >= 0x030a)
#define OBM_UPARROWI    32737
#define OBM_DNARROWI    32736
#define OBM_RGARROWI    32735
#define OBM_LFARROWI    32734
#endif
#define OBM_OLD_CLOSE   32767
#define OBM_SIZE        32766
#define OBM_OLD_UPARROW 32765
#define OBM_OLD_DNARROW 32764
#define OBM_OLD_RGARROW 32763
#define OBM_OLD_LFARROW 32762
#define OBM_BTSIZE      32761
#define OBM_CHECK       32760
#define OBM_CHECKBOXES  32759
#define OBM_BTNCORNERS  32758
#define OBM_OLD_REDUCE  32757
#define OBM_OLD_ZOOM    32756
#define OBM_OLD_RESTORE 32755
#define OCR_NORMAL      32512
#define OCR_IBEAM       32513
#define OCR_WAIT        32514
#define OCR_CROSS       32515
#define OCR_UP          32516
#define OCR_SIZE        32640
#define OCR_ICON        32641
#define OCR_SIZENWSE    32642
#define OCR_SIZENESW    32643
#define OCR_SIZEWE      32644
#define OCR_SIZENS      32645
#define OCR_SIZEALL     32646
#define OCR_ICOCUR      32647
#define OIC_SAMPLE      32512
#define OIC_HAND        32513
#define OIC_QUES        32514
#define OIC_BANG        32515
#define OIC_NOTE        32516
#endif

#define MAKEINTATOM(i)  ((LPCSTR)MAKELP(0, (i)))

#ifndef NOATOM

BOOL    WINAPI InitAtomTable(int);
ATOM    WINAPI AddAtom(LPCSTR);
ATOM    WINAPI DeleteAtom(ATOM);
ATOM    WINAPI FindAtom(LPCSTR);
UINT    WINAPI GetAtomName(ATOM,LPSTR,int);
ATOM    WINAPI GlobalAddAtom(LPCSTR);
ATOM    WINAPI GlobalDeleteAtom(ATOM);
ATOM    WINAPI GlobalFindAtom(LPCSTR);
UINT    WINAPI GlobalGetAtomName(ATOM,LPSTR,int);
HLOCAL  WINAPI GetAtomHandle(ATOM);

#endif

UINT    WINAPI GetProfileInt(LPCSTR,LPCSTR,int);
int     WINAPI GetProfileString(LPCSTR,LPCSTR,LPCSTR,LPSTR,int);
BOOL    WINAPI WriteProfileString(LPCSTR,LPCSTR,LPCSTR);
UINT    WINAPI GetPrivateProfileInt(LPCSTR,LPCSTR,int,LPCSTR);
int     WINAPI GetPrivateProfileString(LPCSTR,LPCSTR,LPCSTR,LPSTR,int,LPCSTR);
BOOL    WINAPI WritePrivateProfileString(LPCSTR,LPCSTR,LPCSTR,LPCSTR);

#define WM_WININICHANGE     0x001A

void    WINAPI AnsiToOem(const char __huge*,char __huge*);
void    WINAPI OemToAnsi(const char __huge*,char __huge*);
void    WINAPI AnsiToOemBuff(LPCSTR,LPSTR,UINT);
void    WINAPI OemToAnsiBuff(LPCSTR,LPSTR,UINT);
LPSTR   WINAPI AnsiNext(LPCSTR);
LPSTR   WINAPI AnsiPrev(LPCSTR,LPCSTR);
LPSTR   WINAPI AnsiUpper(LPSTR);
LPSTR   WINAPI AnsiLower(LPSTR);
UINT    WINAPI AnsiUpperBuff(LPSTR,UINT);
UINT    WINAPI AnsiLowerBuff(LPSTR,UINT);

#ifndef  NOLANGUAGE
BOOL    WINAPI IsCharAlpha(char);
BOOL    WINAPI IsCharAlphaNumeric(char);
BOOL    WINAPI IsCharUpper(char);
BOOL    WINAPI IsCharLower(char);
#endif

#ifndef NOLSTRING
int     WINAPI lstrcmp(LPCSTR,LPCSTR);
int     WINAPI lstrcmpi(LPCSTR,LPCSTR);
LPSTR   WINAPI lstrcpy(LPSTR,LPCSTR);
LPSTR   WINAPI lstrcat(LPSTR,LPCSTR);
int     WINAPI lstrlen(LPCSTR);
#if (WINVER >= 0x030a)
LPSTR   WINAPI lstrcpyn(LPSTR, LPCSTR, int);
void    WINAPI hmemcpy(void __huge*,const void __huge*,long);
#endif
#endif

#if (WINVER >= 0x030a)
#ifndef NODBCS
BOOL    WINAPI IsDBCSLeadByte(BYTE);
#endif
#endif

int     WINAPI LoadString(HINSTANCE, UINT, LPSTR, int);

#ifndef NOKEYBOARDINFO

DWORD   WINAPI OemKeyScan(UINT);
UINT    WINAPI VkKeyScan(UINT);
int     WINAPI GetKeyboardType(int);
UINT    WINAPI MapVirtualKey(UINT,UINT);
int     WINAPI GetKBCodePage(void);
int     WINAPI GetKeyNameText(LONG,LPSTR,int);
int     WINAPI ToAscii(UINT,UINT,BYTE FAR*,DWORD FAR*,UINT);

#endif

#endif

DECLARE_HANDLE(HDC);

#ifndef NOGDI

#if defined(STRICT) && !defined(__WINDOWS_386__)
typedef const void NEAR *HGDIOBJ;
#else
DECLARE_HANDLE(HGDIOBJ);
#endif

#endif

DECLARE_HANDLE(HBITMAP);
DECLARE_HANDLE(HPEN);
DECLARE_HANDLE(HBRUSH);
DECLARE_HANDLE(HRGN);
DECLARE_HANDLE(HPALETTE);
DECLARE_HANDLE(HFONT);

typedef struct tagRECT {
    int left;
    int top;
    int right;
    int bottom;
} RECT, *PRECT, NEAR* NPRECT, FAR *LPRECT;

typedef struct tagPOINT {
    int x;
    int y;
} POINT, *PPOINT, NEAR *NPPOINT, FAR *LPPOINT;

#if (WINVER >= 0x030a)
typedef struct tagSIZE {
    int cx;
    int cy;
} SIZE, *PSIZE, NEAR *NPSIZE, FAR *LPSIZE;
#endif

#define MAKEPOINT(l)        (*((POINT FAR*)&(l)))

#ifndef NOGDI

HDC     WINAPI CreateDC(LPCSTR,LPCSTR,LPCSTR,const void FAR*);
HDC     WINAPI CreateIC(LPCSTR,LPCSTR,LPCSTR,const void FAR*);
HDC     WINAPI CreateCompatibleDC(HDC);
BOOL    WINAPI DeleteDC(HDC);
DWORD   WINAPI GetDCOrg(HDC);
int     WINAPI SaveDC(HDC);
BOOL    WINAPI RestoreDC(HDC,int);
int     WINAPI SetEnvironment(LPCSTR,const void FAR*,UINT);
int     WINAPI GetEnvironment(LPCSTR,void FAR*,UINT);
int     WINAPI MulDiv(int,int,int);

#if (WINVER >= 0x030a)
UINT    WINAPI SetBoundsRect(HDC,const RECT FAR*,UINT);
UINT    WINAPI GetBoundsRect(HDC,RECT FAR*,UINT);

#define DCB_RESET       0x0001
#define DCB_ACCUMULATE  0x0002
#define DCB_DIRTY       DCB_ACCUMULATE
#define DCB_SET         (DCB_RESET | DCB_ACCUMULATE)
#define DCB_ENABLE      0x0004
#define DCB_DISABLE     0x0008
#endif

int WINAPI GetDeviceCaps(HDC,int);

#define DRIVERVERSION 0
#define TECHNOLOGY    2
#define HORZSIZE      4
#define VERTSIZE      6
#define HORZRES       8
#define VERTRES       10
#define BITSPIXEL     12
#define PLANES        14
#define NUMBRUSHES    16
#define NUMPENS       18
#define NUMMARKERS    20
#define NUMFONTS      22
#define NUMCOLORS     24
#define PDEVICESIZE   26
#define CURVECAPS     28
#define LINECAPS      30

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?