_win386.mh
来自「开放源码的编译器open watcom 1.6.0版的源代码」· MH 代码 · 共 1,101 行 · 第 1/3 页
MH
1,101 行
/*
* _win386.h Special include for 32-bit Windows 3.x development.
*
:include crwatcnt.sp
*/
#ifndef ___WIN386_INCLUDED__
#define ___WIN386_INCLUDED__
:include readonly.sp
:include cpluspro.sp
#ifndef RC_INVOKED
#include <stddef.h>
#endif /* RC_INVOKED */
#ifdef __WINDOWS_386__
#ifndef NOAUTOPROCS
typedef void __far *REALFARPROC;
#endif /* NOAUTOPROCS */
#define int short
#define __huge
#define __far
#define __export
#define NOMINMAX
#include <win16.h>
#ifdef STRICT
//int PASCAL WinMain(HINSTANCE,HINSTANCE,LPSTR,int);
int CALLBACK LibMain(HINSTANCE,WORD,WORD,LPSTR);
#else
//int PASCAL WinMain(HANDLE,HANDLE,LPSTR,int);
int CALLBACK LibMain(HANDLE,WORD,WORD,LPSTR);
#endif
int CALLBACK WEP(int);
#ifndef NOCOVERSENDS
#define SendMessage _Cover_SendMessage
#define SendDlgItemMessage _Cover_SendDlgItemMessage
#endif /* NOCOVERSENDS */
#ifndef NOCOVERRC
#define RegisterClass _Cover_RegisterClass
#endif /* NOCOVERRC */
#ifndef NOAUTOPROCS
#define CreateDialog _Cover_CreateDialog
#define CreateDialogIndirect _Cover_CreateDialogIndirect
#define CreateDialogParam _Cover_CreateDialogParam
#define CreateDialogIndirectParam _Cover_CreateDialogIndirectParam
#define DialogBox _Cover_DialogBox
#define DialogBoxIndirect _Cover_DialogBoxIndirect
#define DialogBoxParam _Cover_DialogBoxParam
#define DialogBoxIndirectParam _Cover_DialogBoxIndirectParam
#define EnumChildWindows _Cover_EnumChildWindows
#define EnumFonts _Cover_EnumFonts
#define EnumFontFamilies _Cover_EnumFontFamilies
#define EnumMetaFile _Cover_EnumMetaFile
#define EnumObjects _Cover_EnumObjects
#define EnumProps _Cover_EnumProps
#define EnumTaskWindows _Cover_EnumTaskWindows
#define EnumWindows _Cover_EnumWindows
#define Escape _Cover_Escape
#define FreeProcInstance _Cover_FreeProcInstance
#define GetClassLong _Cover_GetClassLong
#define GetWindowLong _Cover_GetWindowLong
#define GlobalNotify _Cover_GlobalNotify
#define GrayString _Cover_GrayString
#define LineDDA _Cover_LineDDA
#define MakeProcInstance _Cover_MakeProcInstance
#define SetClassLong _Cover_SetClassLong
#define SetResourceHandler _Cover_SetResourceHandler
#define SetTimer _Cover_SetTimer
#define SetWindowsHook _Cover_SetWindowsHook
#define SetWindowsHookEx _Cover_SetWindowsHookEx
#define SetWindowLong _Cover_SetWindowLong
#endif /* NOAUTOPROCS */
#else /* __WINDOWS_386__ */
#include <win16.h>
#endif /* __WINDOWS_386__ */
#define API WINAPI
#ifndef NOKERNEL
FARPROC API _16MakeProcInstance(FARPROC, HINSTANCE);
#if !defined(NOAUTOPROCS) && defined(__WINDOWS_386__)
FARPROC API _Cover_MakeProcInstance(REALFARPROC, HINSTANCE);
#endif
void API _16FreeProcInstance(FARPROC);
void API _Cover_FreeProcInstance(FARPROC);
void API _16GetCodeInfo(FARPROC lpProc, LPVOID lpSegInfo);
HANDLE API _16GetModuleHandle(LPSTR);
int API _16GetModuleFileName(HANDLE, LPSTR, int);
int API _16GetInstanceData(HANDLE, NPSTR, int);
FARPROC API _16GetProcAddress(HANDLE, LPSTR);
HANDLE API _16LoadLibrary(LPSTR);
HANDLE API _16LoadModule(LPSTR, LPVOID);
WORD API _16WinExec(LPSTR, WORD);
void API _16OutputDebugString(LPSTR);
#ifndef NOOPENFILE
int API _16OpenFile(LPSTR, LPOFSTRUCT, WORD);
int API _16GetTempFileName(BYTE, LPSTR, WORD, LPSTR);
#endif /* NOOPENFILE */
HANDLE API _16FindResource(HANDLE, LPSTR, LPSTR);
FARPROC API _16SetResourceHandler(HANDLE, LPSTR, FARPROC);
FARPROC API _Cover_SetResourceHandler(HANDLE, LPSTR, FARPROC);
#ifndef NOATOM
ATOM API _16AddAtom(LPSTR);
ATOM API _16FindAtom(LPSTR);
WORD API _16GetAtomName(ATOM, LPSTR, int);
ATOM API _16GlobalAddAtom(LPSTR);
ATOM API _16GlobalFindAtom(LPSTR);
WORD API _16GlobalGetAtomName(ATOM, LPSTR, int);
#endif /* NOATOM */
WORD API _16GetProfileInt(LPSTR, LPSTR, int);
int API _16GetProfileString(LPSTR, LPSTR, LPSTR, LPSTR, int);
BOOL API _16WriteProfileString(LPSTR, LPSTR, LPSTR);
WORD API _16GetPrivateProfileInt(LPSTR, LPSTR, int, LPSTR);
int API _16GetPrivateProfileString(LPSTR, LPSTR, LPSTR, LPSTR, int, LPSTR);
BOOL API _16WritePrivateProfileString(LPSTR, LPSTR, LPSTR, LPSTR);
WORD API _16GetWindowsDirectory(LPSTR,WORD);
WORD API _16GetSystemDirectory(LPSTR,WORD);
int API _16AnsiToOem(LPSTR, LPSTR);
BOOL API _16OemToAnsi(LPSTR, LPSTR);
void API _16AnsiToOemBuff(LPSTR, LPSTR, int);
void API _16OemToAnsiBuff(LPSTR, LPSTR, int);
LPSTR API _16AnsiUpper(LPSTR);
WORD API _16AnsiUpperBuff(LPSTR, WORD);
LPSTR API _16AnsiLower(LPSTR);
WORD API _16AnsiLowerBuff(LPSTR, WORD);
LPSTR API _16AnsiNext(LPSTR);
LPSTR API _16AnsiPrev(LPSTR, LPSTR);
#ifndef NOKEYBOARDINFO
int API _16GetKeyNameText(LONG, LPSTR, int);
int API _16ToAscii(WORD wVirtKey, WORD wScanCode, LPSTR lpKeyState, LPVOID lpChar, WORD wFlags);
#endif /* NOKEYBOARDINFO */
#ifndef NOMEMMGR
VOID API _16GlobalNotify(FARPROC);
VOID API _Cover_GlobalNotify(FARPROC);
#endif /* NOMEMMGR */
#endif /* NOKERNEL */
#ifndef NOGDI
#ifndef NODRAWTEXT
int API _16DrawText(HDC, LPSTR, int, LPRECT, WORD);
#endif /* NODRAWTEXT */
HDC API _16CreateDC(LPSTR, LPSTR, LPSTR, LPSTR);
HDC API _16CreateIC(LPSTR, LPSTR, LPSTR, LPSTR);
BOOL API _16ExtTextOut(HDC, int, int, WORD, LPRECT, LPSTR, WORD, LPINT);
BOOL API _16Polyline(HDC, LPPOINT, int);
BOOL API _16Polygon(HDC, LPPOINT, int);
BOOL API _16PolyPolygon(HDC, LPPOINT, LPINT, int);
BOOL API _16TextOut(HDC, int, int, LPSTR, int);
LONG API _16TabbedTextOut(HDC, int, int, LPSTR, int, int, LPINT, int);
BOOL API _16GetCharWidth(HDC, WORD, WORD, LPINT);
void API _16LineDDA(int, int, int, int, LINEDDAPROC, LPARAM);
void API _Cover_LineDDA(int, int, int, int, LINEDDAPROC, LPARAM);
HPEN API _16CreatePenIndirect( LPLOGPEN );
HBRUSH API _16CreateBrushIndirect( LPLOGBRUSH );
HBITMAP API _16CreateBitmap(int, int, UINT, UINT, LPSTR);
HBITMAP API _16CreateBitmapIndirect( LPBITMAP );
HBITMAP API _16CreateDIBitmap(HDC, LPBITMAPINFOHEADER, DWORD, LPSTR, LPBITMAPINFO, UINT);
LONG API _16SetBitmapBits(HBITMAP, DWORD, LPSTR);
LONG API _16GetBitmapBits(HBITMAP, LONG, LPSTR);
HFONT API _16CreateFont(int, int, int, int, int, BYTE, BYTE, BYTE, BYTE, BYTE, BYTE, BYTE, BYTE, LPSTR);
HFONT API _16CreateFontIndirect( LPLOGFONT );
HRGN API _16CreateRectRgnIndirect(LPRECT);
HRGN API _16CreateEllipticRgnIndirect(LPRECT);
HRGN API _16CreatePolygonRgn(LPPOINT, int, int);
HRGN API _16CreatePolyPolygonRgn(LPPOINT, LPINT, int, int);
int API _16GetObject(HANDLE, int, LPSTR);
int API _16GetClipBox(HDC, LPRECT);
int API _16GetRgnBox(HRGN, LPRECT);
DWORD API _16GetTextExtent(HDC, LPSTR, int);
DWORD API _16GetTabbedTextExtent(HDC, LPSTR, int, int, LPINT);
HANDLE API _16GetMetaFile(LPSTR);
HANDLE API _16CopyMetaFile(HANDLE, LPSTR);
#ifndef NOMETAFILE
void API _16PlayMetaFileRecord(HDC, LPHANDLETABLE, LPMETARECORD, WORD);
BOOL API _16EnumMetaFile(HDC, LOCALHANDLE, FARPROC, LPSTR );
BOOL API _Cover_EnumMetaFile(HDC, LOCALHANDLE, FARPROC, LPSTR );
#endif
int API _16Escape(HDC, int, int, LPSTR, LPSTR);
int API _Cover_Escape(HDC, int, int, LPSTR, LPSTR);
int API _16EnumFonts(HDC, LPSTR, FONTENUMPROC, LPARAM);
int API _Cover_EnumFonts(HDC, LPSTR, FONTENUMPROC, LPARAM);
#ifdef STRICT
int API _Cover_EnumFontFamilies(HDC, LPSTR, FONTENUMPROC, LPARAM);
#else
int API _Cover_EnumFontFamilies(HDC, LPSTR, FONTENUMPROC, LPSTR);
#endif
int API _16EnumObjects(HDC, int, FARPROC, LPSTR);
int API _Cover_EnumObjects(HDC, int, FARPROC, LPSTR);
int API _16GetTextFace(HDC, int, LPSTR);
#ifndef NOTEXTMETRIC
BOOL API _16GetTextMetrics(HDC, LPTEXTMETRIC );
#endif /* NOTEXTMETRIC */
int API _16SetEnvironment(LPSTR, LPSTR, WORD);
int API _16GetEnvironment(LPSTR, LPSTR, WORD);
BOOL API _16DPtoLP(HDC, LPPOINT, int);
BOOL API _16LPtoDP(HDC, LPPOINT, int);
HANDLE API _16CreateMetaFile(LPSTR);
int API _16SetDIBits(HDC,HANDLE,WORD,WORD,LPSTR,LPBITMAPINFO,WORD);
int API _16GetDIBits(HDC,HANDLE,WORD,WORD,LPSTR,LPBITMAPINFO,WORD);
int API _16SetDIBitsToDevice(HDC,WORD,WORD,WORD,WORD,
WORD,WORD,WORD,WORD,
LPSTR,LPBITMAPINFO,WORD);
int API _16StretchDIBits(HDC, WORD, WORD, WORD, WORD, WORD, WORD, WORD, WORD, LPSTR, LPBITMAPINFO, WORD, DWORD);
HPALETTE API _16CreatePalette (LPLOGPALETTE);
void API _16AnimatePalette(HPALETTE, WORD, WORD, LPPALETTEENTRY);
WORD API _16SetPaletteEntries(HPALETTE,WORD,WORD,LPPALETTEENTRY);
WORD API _16GetPaletteEntries(HPALETTE,WORD,WORD,LPPALETTEENTRY);
WORD API _16GetSystemPaletteEntries(HDC,WORD,WORD,LPPALETTEENTRY);
#endif /* NOGDI */
#ifndef NOUSER
/*
* replace windows fns with c library ones
*/
#ifdef __WINDOWS_386__
#undef wsprintf
#undef wvsprintf
#define wsprintf sprintf
#define wvsprintf vsprintf
#ifndef NOLSTRING
#undef lstrcmp
#undef lstrcmpi
#undef lstrcpy
#undef lstrcat
#undef lstrlen
#define lstrcmp strcmp
#define lstrcmpi strcmpi
#define lstrcpy strcpy
#define lstrcat strcat
#define lstrlen strlen
#endif /* NOLSTRING */
#endif /* __WINDOWS_386__ */
#ifndef NOWINMESSAGES
WORD API _16RegisterWindowMessage(LPSTR);
#endif /* NOWINMESSAGES */
#ifndef NOMSG
BOOL API _16TranslateMessage(LPMSG);
LONG API _16DispatchMessage(LPMSG);
#endif /* NOMSG */
LONG API _Cover_SendMessage(HWND, WORD, WORD, LONG);
LONG API _16SendMessage(HWND, WORD, WORD, LONG);
BOOL API _Cover_RegisterClass(LPWNDCLASS);
BOOL API _16UnregisterClass(LPSTR, HANDLE);
BOOL API _16GetClassInfo(HANDLE, LPSTR, LPWNDCLASS);
HWND API _16CreateWindow(LPSTR, LPSTR, DWORD, int, int, int, int, HWND, HMENU, HANDLE, LPSTR);
HWND API _16CreateWindowEx(DWORD, LPSTR, LPSTR, DWORD, int, int, int, int, HWND, HMENU, HANDLE, LPSTR);
#ifndef NOCTLMGR
#ifdef STRICT
HWND API _Cover_CreateDialog(HANDLE, LPSTR, HWND, DLGPROC);
HWND API _Cover_CreateDialogIndirect(HANDLE, LPSTR, HWND, DLGPROC);
HWND API _Cover_CreateDialogParam(HANDLE, LPSTR, HWND, DLGPROC, LONG);
HWND API _Cover_CreateDialogIndirectParam(HANDLE, LPSTR, HWND, DLGPROC, LONG);
HWND API _16CreateDialog(HANDLE, LPSTR, HWND, DLGPROC);
HWND API _16CreateDialogIndirect(HANDLE, LPSTR, HWND, DLGPROC);
HWND API _16CreateDialogParam(HANDLE, LPSTR, HWND, DLGPROC, LONG);
HWND API _16CreateDialogIndirectParam(HANDLE, LPSTR, HWND, DLGPROC, LONG);
#else
HWND API _Cover_CreateDialog(HANDLE, LPSTR, HWND, FARPROC);
HWND API _Cover_CreateDialogIndirect(HANDLE, LPSTR, HWND, FARPROC);
HWND API _Cover_CreateDialogParam(HANDLE, LPSTR, HWND, FARPROC, LONG);
HWND API _Cover_CreateDialogIndirectParam(HANDLE, LPSTR, HWND, FARPROC, LONG);
HWND API _16CreateDialog(HANDLE, LPSTR, HWND, FARPROC);
HWND API _16CreateDialogIndirect(HANDLE, LPSTR, HWND, FARPROC);
HWND API _16CreateDialogParam(HANDLE, LPSTR, HWND, FARPROC, LONG);
HWND API _16CreateDialogIndirectParam(HANDLE, LPSTR, HWND, FARPROC, LONG);
#endif
int API _Cover_DialogBox(HANDLE, LPSTR, HWND, DLGPROC);
int API _Cover_DialogBoxParam(HANDLE, LPSTR, HWND, DLGPROC, LONG);
int API _Cover_DialogBoxIndirect(HANDLE, HANDLE, HWND, DLGPROC);
int API _Cover_DialogBoxIndirectParam(HANDLE, HANDLE, HWND, DLGPROC, LONG);
int API _16DialogBox(HANDLE, LPSTR, HWND, FARPROC);
int API _16DialogBoxParam(HANDLE, LPSTR, HWND, FARPROC, LONG);
int API _16DialogBoxIndirect(HANDLE, HANDLE, HWND, FARPROC);
int API _16DialogBoxIndirectParam(HANDLE, HANDLE, HWND, FARPROC, LONG);
LONG API _Cover_SendDlgItemMessage(HWND, int, WORD, WORD, LONG);
WORD API _16GetDlgItemInt(HWND, int, BOOL *, BOOL);
void API _16SetDlgItemText(HWND, int, LPSTR);
int API _16GetDlgItemText(HWND, int, LPSTR, int);
#endif /* NOCTLMSG */
#ifndef NOMSG
BOOL API _16CallMsgFilter(LPMSG, int);
#endif /* NOMSG */
#ifndef NOCLIPBOARD
WORD API _16RegisterClipboardFormat(LPSTR);
int API _16GetClipboardFormatName(WORD, LPSTR, int);
int API _16GetPriorityClipboardFormat(WORD *, int);
#endif /* NOCLIPBOARD */
void API _16GetKeyboardState(BYTE *);
void API _16SetKeyboardState(BYTE *);
WORD API _16SetTimer(HWND, int, WORD, FARPROC);
WORD API _Cover_SetTimer(HWND, int, WORD, FARPROC);
HANDLE API _16LoadAccelerators(HANDLE, LPSTR);
#ifndef NOMSG
int API _16TranslateAccelerator(HWND, HANDLE, LPMSG);
#endif /* NOMSG */
#ifndef NOMENUS
HMENU API _16LoadMenu(HANDLE, LPSTR);
HMENU API _16LoadMenuIndirect(LPSTR);
BOOL API _16ChangeMenu(HMENU, WORD, LPSTR, WORD, WORD);
int API _16GetMenuString(HMENU, WORD, LPSTR, int, WORD);
BOOL API _16TrackPopupMenu(HMENU, WORD, int, int, int, HWND, LPRECT);
#endif /* NOMENUS */
BOOL API _16GrayString(HDC, HBRUSH, FARPROC, DWORD, int, int, int, int, int);
BOOL API _Cover_GrayString(HDC, HBRUSH, FARPROC, DWORD, int, int, int, int, int);
void API _16EndPaint(HWND, LPPAINTSTRUCT);
BOOL API _16GetUpdateRect(HWND, LPRECT, BOOL);
void API _16InvalidateRect(HWND, LPRECT, BOOL);
void API _16ValidateRect(HWND, LPRECT);
void API _16ScrollWindow(HWND, int, int, LPRECT, LPRECT);
BOOL API _16ScrollDC(HDC, int, int, LPRECT, LPRECT, HRGN, LPRECT);
#ifndef NOSCROLL
void API _16GetScrollRange(HWND, int, LPINT, LPINT);
#endif /* NOSCROLL */
BOOL API _16SetProp(HWND, LPSTR, HANDLE);
HANDLE API _16GetProp(HWND, LPSTR);
HANDLE API _16RemoveProp(HWND, LPSTR);
void API _16SetWindowText(HWND, LPSTR);
int API _16GetWindowText(HWND, LPSTR, int);
int API _16EnumProps(HWND, FARPROC);
int API _Cover_EnumProps(HWND, FARPROC);
void API _16GetClientRect(HWND, LPRECT);
void API _16GetWindowRect(HWND, LPRECT);
void API _16AdjustWindowRect(LPRECT, LONG, BOOL);
void API _16AdjustWindowRectEx(LPRECT, LONG, BOOL, DWORD);
#ifndef NOMB
int API _16MessageBox(HWND, LPSTR, LPSTR, WORD);
#endif /* NOMB */
void API _16GetCursorPos(LPPOINT);
void API _16ClipCursor(LPRECT);
void API _16GetCaretPos(LPPOINT);
void API _16ClientToScreen(HWND, LPPOINT);
void API _16ScreenToClient(HWND, LPPOINT);
#ifndef NOCOLOR
void API _16SetSysColors(int, LPINT, LONG *);
#endif /* NOCOLOR */
void API _16DrawFocusRect(HDC, LPRECT);
int API _16FillRect(HDC, LPRECT, HBRUSH);
int API _16FrameRect(HDC, LPRECT, HBRUSH);
void API _16InvertRect(HDC, LPRECT);
void API _16SetRect(LPRECT, int, int, int, int);
void API _16SetRectEmpty(LPRECT);
int API _16CopyRect(LPRECT, LPRECT);
void API _16InflateRect(LPRECT, int, int);
int API _16IntersectRect(LPRECT, LPRECT, LPRECT);
int API _16UnionRect(LPRECT, LPRECT, LPRECT);
void API _16OffsetRect(LPRECT, int, int);
BOOL API _16IsRectEmpty(LPRECT);
BOOL API _16EqualRect(LPRECT, LPRECT);
BOOL API _16PtInRect(LPRECT, POINT);
BOOL API _16RectVisible(HDC, LPRECT);
BOOL API _16RectInRegion(HRGN, LPRECT);
#ifndef NOWINOFFSETS
LONG API _16SetWindowLong(HWND, int, LONG);
LONG API _16SetClassLong(HWND, int, LONG);
LONG API _Cover_GetWindowLong(HWND, int);
LONG API _Cover_SetWindowLong(HWND, int, LONG);
LONG API _Cover_GetClassLong(HWND, int);
LONG API _Cover_SetClassLong(HWND, int, LONG);
#endif /* NOWINOFFSETS */
HWND API _16FindWindow(LPSTR, LPSTR);
BOOL API _16EnumTaskWindows(HANDLE, FARPROC, LONG);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?