windows.h
资源名称:DOS系统的源代码.rar [点击查看]
上传用户:xiaoan1112
上传日期:2013-04-11
资源大小:19621k
文件大小:166k
源码类别:
操作系统开发
开发平台:
Visual C++
- /*****************************************************************************
- * *
- * windows.h - Windows functions, types, and definitions *
- * *
- * Version 3.10 *
- * *
- * Copyright (c) 1985-1992, Microsoft Corp. All rights reserved. *
- * *
- *******************************************************************************
- *
- * The following symbols control inclusion of various parts of this file:
- *
- * WINVER Windows version number (0x030a). To exclude
- * definitions introduced in version 3.1 (or above)
- * #define WINVER 0x0300 before #including <windows.h>
- *
- * #define: To prevent inclusion of:
- *
- * NOKERNEL KERNEL APIs and definitions
- * NOGDI GDI APIs and definitions
- * NOUSER USER APIs and definitions
- * NOSOUND Sound APIs and definitions
- * NOCOMM Comm driver APIs and definitions
- * NODRIVERS Installable driver APIs and definitions
- *
- * NOMINMAX min() and max() macros
- * NOLOGERROR LogError() and related definitions
- * NOPROFILER Profiler APIs
- * NOMEMMGR Local and global memory management
- * NOLFILEIO _l* file I/O routines
- * NOOPENFILE OpenFile and related definitions
- * NORESOURCE Resource management
- * NOATOM Atom management
- * NOLANGUAGE Character test routines
- * NOLSTRING lstr* string management routines
- * NODBCS Double-byte character set routines
- * NOKEYBOARDINFO Keyboard driver routines
- * NOGDICAPMASKS GDI device capability constants
- * NOCOLOR COLOR_* color values
- * NOGDIOBJ GDI pens, brushes, fonts
- * NODRAWTEXT DrawText() and related definitions
- * NOTEXTMETRIC TEXTMETRIC and related APIs
- * NOSCALABLEFONT Truetype scalable font support
- * NOBITMAP Bitmap support
- * NORASTEROPS GDI Raster operation definitions
- * NOMETAFILE Metafile support
- * NOSYSMETRICS GetSystemMetrics() and related SM_* definitions
- * NOSYSTEMPARAMSINFO SystemParametersInfo() and SPI_* definitions
- * NOMSG APIs and definitions that use MSG structure
- * NOWINSTYLES Window style definitions
- * NOWINOFFSETS Get/SetWindowWord/Long offset definitions
- * NOSHOWWINDOW ShowWindow and related definitions
- * NODEFERWINDOWPOS DeferWindowPos and related definitions
- * NOVIRTUALKEYCODES VK_* virtual key codes
- * NOKEYSTATES MK_* message key state flags
- * NOWH SetWindowsHook and related WH_* definitions
- * NOMENUS Menu APIs
- * NOSCROLL Scrolling APIs and scroll bar control
- * NOCLIPBOARD Clipboard APIs and definitions
- * NOICONS IDI_* icon IDs
- * NOMB MessageBox and related definitions
- * NOSYSCOMMANDS WM_SYSCOMMAND SC_* definitions
- * NOMDI MDI support
- * NOCTLMGR Control management and controls
- * NOWINMESSAGES WM_* window messages
- * NOHELP Help support
- *
- ****************************************************************************/
- #ifndef _INC_WINDOWS
- #define _INC_WINDOWS /* #defined if windows.h has been included */
- #ifndef RC_INVOKED
- #pragma pack(1) /* Assume byte packing throughout */
- #endif /* RC_INVOKED */
- #ifdef __cplusplus
- extern "C" { /* Assume C declarations for C++ */
- #endif /* __cplusplus */
- #ifdef NOWIN31 /* ;Internal */
- #define WINVER 0x0300 /* ;Internal */
- #endif /* ;Internal */
- /* ;Internal */
- /* If WINVER is not defined, assume version 3.1 */
- #ifndef WINVER
- #define WINVER 0x030a
- #endif
- #ifdef RC_INVOKED
- /* Don't include definitions that RC.EXE can't parse */
- #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 NODBCS
- #define NOSYSTEMPARAMSINFO
- #define NOCOMM
- #define NOOEMRESOURCE
- #endif /* RC_INVOKED */
- /* Temp internal compatibility hacks */ /* ;Internal */
- #define NOOEMRESOURCE /* ;Internal */
- #ifdef OEMRESOURCE /* ;Internal */
- #undef NOOEMRESOURCE /* ;Internal */
- #endif /* ;Internal */
- #define NOCOMM /* ;Internal */
- #ifdef USECOMM /* ;Internal */
- #undef NOCOMM /* ;Internal */
- #endif /* ;Internal */
- /* ;Internal */
- /* Handle OEMRESOURCE for 3.0 compatibility */
- #if (WINVER < 0x030a)
- #define NOOEMRESOURCE
- #ifdef OEMRESOURCE
- #undef NOOEMRESOURCE
- #endif
- #endif
- /******* Common definitions and typedefs ***********************************/
- #define VOID void
- #define FAR _far
- #define NEAR _near
- #define PASCAL _pascal
- #define CDECL _cdecl
- #define CONST const /* ;Internal */
- #ifdef BUILDDLL /* ;Internal */
- #define WINAPI _loadds _far _pascal /* ;Internal */
- #define CALLBACK _loadds _far _pascal /* ;Internal */
- #else /* ;Internal */
- #define WINAPI _far _pascal
- #define CALLBACK _far _pascal
- #endif /* ;Internal */
- /* ;Internal */
- #define API WINAPI /* ;Internal */
- /****** Simple types & common helper macros *********************************/
- typedef int BOOL;
- #define FALSE 0
- #define TRUE 1
- typedef unsigned char BYTE;
- typedef unsigned short WORD;
- typedef unsigned long DWORD;
- typedef unsigned int UINT;
- #ifdef STRICT
- typedef signed long LONG;
- #else
- #define LONG long
- #endif
- #define LOBYTE(w) ((BYTE)(w))
- #define HIBYTE(w) ((BYTE)(((UINT)(w) >> 8) & 0xFF))
- #define LOWORD(l) ((WORD)(DWORD)(l))
- #define HIWORD(l) ((WORD)((((DWORD)(l)) >> 16) & 0xFFFF))
- #define MAKELONG(low, high) ((LONG)(((WORD)(low)) | (((DWORD)((WORD)(high))) << 16)))
- #ifndef NOMINMAX
- #ifndef max
- #define max(a,b) (((a) > (b)) ? (a) : (b))
- #endif
- #ifndef min
- #define min(a,b) (((a) < (b)) ? (a) : (b))
- #endif
- #endif /* NOMINMAX */
- /* Types use for passing & returning polymorphic values */
- typedef UINT WPARAM;
- typedef LONG LPARAM;
- typedef LONG LRESULT;
- #define MAKELPARAM(low, high) ((LPARAM)MAKELONG(low, high))
- #define MAKELRESULT(low, high) ((LRESULT)MAKELONG(low, high))
- /****** Common pointer types ************************************************/
- #ifndef NULL
- #define NULL 0
- #endif
- typedef char NEAR* PSTR;
- typedef char NEAR* NPSTR;
- #define SZ char /* ;Internal */
- typedef char FAR* LPSTR;
- typedef const char FAR* LPCSTR;
- 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;
- #define MAKELP(sel, off) ((void FAR*)MAKELONG((off), (sel)))
- #define SELECTOROF(lp) HIWORD(lp)
- #define OFFSETOF(lp) LOWORD(lp)
- #define FIELDOFFSET(type, field) ((int)(&((type NEAR*)1)->field)-1)
- /****** Common handle types *************************************************/
- #ifdef STRICT
- typedef const void NEAR* HANDLE;
- #define DECLARE_HANDLE(name) struct name##__ { int unused; };
- typedef const struct name##__ NEAR* name
- #define DECLARE_HANDLE32(name) struct name##__ { int unused; };
- typedef const struct name##__ FAR* name
- #else /* STRICT */
- typedef UINT HANDLE;
- #define DECLARE_HANDLE(name) typedef UINT name
- #define DECLARE_HANDLE32(name) typedef DWORD name
- #endif /* !STRICT */
- typedef HANDLE* PHANDLE;
- typedef HANDLE NEAR* SPHANDLE;
- typedef HANDLE FAR* LPHANDLE;
- typedef HANDLE HGLOBAL;
- typedef HANDLE HLOCAL;
- typedef HANDLE GLOBALHANDLE;
- typedef HANDLE LOCALHANDLE;
- typedef UINT ATOM;
- #ifdef STRICT
- typedef void (CALLBACK* FARPROC)(void);
- typedef void (NEAR PASCAL* NEARPROC)(void);
- #else
- typedef int (CALLBACK* FARPROC)();
- typedef int (NEAR PASCAL* NEARPROC)();
- #endif
- DECLARE_HANDLE(HSTR);
- /****** KERNEL typedefs, structures, and functions **************************/
- DECLARE_HANDLE(HINSTANCE);
- typedef HINSTANCE HMODULE; /* HMODULEs can be used in place of HINSTANCEs */
- #ifndef NOKERNEL
- /****** Application entry point function ************************************/
- #ifdef STRICT
- int PASCAL WinMain(HINSTANCE, HINSTANCE, LPSTR, int);
- #endif
- /****** System Information **************************************************/
- DWORD WINAPI GetVersion(void);
- DWORD WINAPI GetFreeSpace(UINT);
- UINT WINAPI GetCurrentPDB(void);
- UINT WINAPI GetWindowsDirectory(LPSTR, UINT);
- UINT WINAPI GetSystemDirectory(LPSTR, UINT);
- #if (WINVER >= 0x030a)
- UINT WINAPI GetFreeSystemResources(UINT);
- #define GFSR_SYSTEMRESOURCES 0x0000
- #define GFSR_GDIRESOURCES 0x0001
- #define GFSR_USERRESOURCES 0x0002
- #define GFSR_VALID 0x0002 /* ;Internal */
- #endif /* WINVER >= 0x030a */
- DWORD WINAPI GetWinFlags(void);
- #define WF_PMODE 0x0001
- #define WF_CPU286 0x0002
- #define WF_CPU386 0x0004
- #define WF_CPU486 0x0008
- #define WF_STANDARD 0x0010
- #define WF_WIN286 0x0010
- #define WF_ENHANCED 0x0020
- #define WF_WIN386 0x0020
- #define WF_CPU086 0x0040
- #define WF_CPU186 0x0080
- #define WF_LARGEFRAME 0x0100
- #define WF_SMALLFRAME 0x0200
- #define WF_80x87 0x0400
- #define WF_PAGING 0x0800
- #define WF_WLO 0x8000
- LPSTR WINAPI GetDOSEnvironment(void);
- DWORD WINAPI GetCurrentTime(void);
- DWORD WINAPI GetTickCount(void);
- DWORD WINAPI GetTimerResolution(void);
- /****** Error handling ******************************************************/
- #if (WINVER >= 0x030a)
- #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
- /* 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;
- } 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_VALID 0x0007 /* ;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 */
- void WINAPI DebugBreak(void);
- void WINAPI OutputDebugString(LPCSTR);
- /* SetErrorMode() constants */
- #define SEM_FAILCRITICALERRORS 0x0001
- #define SEM_NOGPFAULTERRORBOX 0x0002
- #define SEM_NOOPENFILEERRORBOX 0x8000
- UINT WINAPI SetErrorMode(UINT);
- /****** 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);
- #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 */
- 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);
- FARPROC WINAPI GetProcAddress(HINSTANCE, LPCSTR);
- int WINAPI GetInstanceData(HINSTANCE, BYTE*, 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 0x0001 /* ;Internal */
- #define GACF_FORCETEXTBAND 0x0002 /* ;Internal */
- #define GACF_ONELANDGRXBAND 0x0004 /* ;Internal */
- #define GACF_IGNORETOPMOST 0x0008 /* ;Internal */
- #define GACF_CALLTTDEVICE 0x0010 /* ;Internal */
- #define GACF_MULTIPLEBANDS 0x0020 /* ;Internal */
- #define GACF_ALWAYSSENDNCPAINT 0x0040 /* ;Internal */
- #define GACF_EDITSETTEXTMUNGE 0x0080 /* ;Internal */
- #define GACF_MOREEXTRAWNDWORDS 0x0100 /* ;Internal */
- #define GACF_TTIGNORERASTERDUPE 0x0200 /* ;Internal */
- #define GACF_HACKWINFLAGS 0x0400 /* ;Internal */
- #define GACF_DELAYHWHNDSHAKECHK 0x0800 /* ;Internal */
- #define GACF_ENUMHELVNTMSRMN 0x1000 /* ;Internal */
- #define GACF_ENUMTTNOTDEVICE 0x2000 /* ;Internal */
- #define GACF_SUBTRACTCLIPSIBS 0x4000 /* ;Internal */
- #define GACF_FORCETTGRAPHICS 0x8000 /* ;Internal */
- #define GACF_NOHRGN1 0x00010000 /* ;Internal */
- #define GACF_NCCALCSIZEONMOVE 0x00020000 /* ;Internal */
- #define GACF_SENDMENUDBLCLK 0x00040000 /* ;Internal */
- #define GACF_30AVGWIDTH 0x00080000 /* ;Internal */
- /****** Global memory management ********************************************/
- #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)
- HGLOBAL WINAPI GlobalAlloc(UINT, DWORD);
- HGLOBAL WINAPI GlobalReAlloc(HGLOBAL, DWORD, UINT);
- HGLOBAL WINAPI GlobalFree(HGLOBAL);
- DWORD WINAPI GlobalDosAlloc(DWORD);
- UINT WINAPI GlobalDosFree(UINT);
- #ifdef STRICT
- void FAR* WINAPI GlobalLock(HGLOBAL);
- #else
- char FAR* WINAPI GlobalLock(HGLOBAL);
- #endif
- BOOL WINAPI GlobalUnlock(HGLOBAL);
- DWORD WINAPI GlobalSize(HGLOBAL);
- DWORD WINAPI GlobalHandle(UINT);
- /* GlobalFlags return flags (in addition to GMEM_DISCARDABLE) */
- #define GMEM_DISCARDED 0x4000
- #define GMEM_LOCKCOUNT 0x00FF
- 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
- void WINAPI GlobalNotify(GNOTIFYPROC);
- HGLOBAL WINAPI LockSegment(UINT);
- void WINAPI UnlockSegment(UINT);
- #define LockData(dummy) LockSegment((UINT)-1)
- #define UnlockData(dummy) UnlockSegment((UINT)-1)
- 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);
- /* Low system memory notification message */
- #define WM_COMPACTING 0x0041
- /***** Local Memory Management */
- /* 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)
- extern UINT NEAR* PASCAL pLocalHeap; /* ;Internal */
- #define LocalFreeze(dummy) (*(pLocalHeap+1) += 1) /* ;Internal */
- #define LocalMelt(dummy) (*(pLocalHeap+1) -= 1) /* ;Internal */
- #define LocalDiscard(h) LocalReAlloc(h, 0, LMEM_MOVEABLE)
- HLOCAL WINAPI LocalAlloc(UINT, UINT);
- HLOCAL WINAPI LocalReAlloc(HLOCAL, UINT, UINT);
- HLOCAL WINAPI LocalFree(HLOCAL);
- #ifdef STRICT
- void NEAR* WINAPI LocalLock(HLOCAL);
- #else
- char NEAR* WINAPI LocalLock(HLOCAL);
- #endif
- BOOL WINAPI LocalUnlock(HLOCAL);
- UINT WINAPI LocalSize(HLOCAL);
- #ifdef STRICT
- HLOCAL WINAPI LocalHandle(void NEAR*);
- #else
- HLOCAL WINAPI LocalHandle(UINT);
- #endif
- UINT WINAPI LocalHandleDelta(UINT); /* ;Internal */
- /* LocalFlags return flags (in addition to LMEM_DISCARDABLE) */
- #define LMEM_DISCARDED 0x4000
- #define LMEM_LOCKCOUNT 0x00FF
- UINT WINAPI LocalFlags(HLOCAL);
- BOOL WINAPI LocalInit(UINT, UINT, UINT);
- UINT WINAPI LocalCompact(UINT);
- UINT WINAPI LocalShrink(HLOCAL, UINT);
- /* LocalNotify callback */ /* ;Internal */
- #ifdef STRICT /* ;Internal */
- typedef BOOL (CALLBACK* LNOTIFYPROC)(UINT, HLOCAL, void NEAR*); /* ;Internal */
- #else /* ;Internal */
- typedef FARPROC LNOTIFYPROC; /* ;Internal */
- #endif /* ;Internal */
- /* ;Internal */
- #define LNOTIFY_OUTOFMEM 0 /* ;Internal */
- #define LNOTIFY_MOVE 1 /* ;Internal */
- #define LNOTIFY_DISCARD 2 /* ;Internal */
- /* ;Internal */
- LNOTIFYPROC WINAPI LocalNotify(LNOTIFYPROC); /* ;Internal */
- /* ;Internal */
- #endif /* NOMEMMGR */
- /****** File I/O ************************************************************/
- #ifndef NOLFILEIO
- typedef int HFILE; /* Polymorphic with C runtime file handle type */
- #define HFILE_ERROR ((HFILE)-1)
- #ifndef NOOPENFILE
- /* OpenFile() Structure */
- typedef struct tagOFSTRUCT
- {
- BYTE cBytes;
- BYTE fFixedDisk;
- UINT nErrCode;
- BYTE reserved[4];
- char 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 /* Used with OF_REOPEN */
- #define OF_SEARCH 0x0400 /* Used without OF_REOPEN */
- #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 /* NOOPENFILE */
- /* _lopen() flags */
- #define READ 0
- #define WRITE 1
- #define READ_WRITE 2
- HFILE WINAPI _lopen(LPCSTR, int);
- HFILE WINAPI _lcreat(LPCSTR, int);
- HFILE WINAPI _lclose(HFILE);
- LONG WINAPI _llseek(HFILE, LONG, int);
- /* _llseek origin values */
- #define SEEK_SET 0
- #define SEEK_CUR 1
- #define SEEK_END 2
- 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 /* WINVER >= 0x030a */
- UINT WINAPI DeletePathname(LPCSTR); /* ;Internal */
- #endif /* NOLFILEIO */
- /* GetTempFileName() Flags */
- #define TF_FORCEDRIVE (BYTE)0x80
- int WINAPI GetTempFileName(BYTE, LPCSTR, UINT, LPSTR);
- BYTE WINAPI GetTempDrive(char);
- /* GetDriveType return values */
- #define DRIVE_REMOVABLE 2
- #define DRIVE_FIXED 3
- #define DRIVE_REMOTE 4
- UINT WINAPI GetDriveType(int);
- UINT WINAPI SetHandleCount(UINT);
- /****** Network support *****************************************************/
- UINT WINAPI WNetAddConnection(LPSTR, LPSTR, LPSTR);
- UINT WINAPI WNetGetConnection(LPSTR, LPSTR, UINT FAR*);
- UINT WINAPI WNetCancelConnection(LPSTR, BOOL);
- /* Errors */
- #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
- /* Connection errors */
- #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
- /****** Resource Management *************************************************/
- DECLARE_HANDLE(HRSRC);
- HRSRC WINAPI FindResource(HINSTANCE, LPCSTR, LPCSTR);
- HGLOBAL WINAPI LoadResource(HINSTANCE, HRSRC);
- BOOL WINAPI FreeResource(HGLOBAL);
- #ifdef STRICT
- void FAR* WINAPI LockResource(HGLOBAL);
- #else
- char FAR* WINAPI LockResource(HGLOBAL);
- #endif
- #define UnlockResource(h) GlobalUnlock(h)
- DWORD WINAPI SizeofResource(HINSTANCE, HRSRC);
- int WINAPI AccessResource(HINSTANCE, HRSRC);
- HGLOBAL WINAPI AllocResource(HINSTANCE, HRSRC, DWORD);
- #ifdef STRICT
- typedef HGLOBAL (CALLBACK* RSRCHDLRPROC)(HGLOBAL, HINSTANCE, HRSRC);
- #else
- typedef FARPROC RSRCHDLRPROC;
- #endif
- RSRCHDLRPROC WINAPI SetResourceHandler(HINSTANCE, LPCSTR, RSRCHDLRPROC);
- #define MAKEINTRESOURCE(i) ((LPCSTR)MAKELP(0, (i)))
- #ifndef NORESOURCE
- /* Predefined Resource Types */
- #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)
- /* If any new types are added above this point, */ /* ;Internal */
- /* DIFFERENCE must be changed. The GROUP_* */ /* ;Internal */
- /* values minus the non-GROUP values must be */ /* ;Internal */
- /* equal to DIFFERENCE */ /* ;Internal */
- #define DIFFERENCE 11 /* ;Internal */
- #define RT_GROUP_CURSOR MAKEINTRESOURCE(12)
- #define RT_GROUP_ICON MAKEINTRESOURCE(14)
- #endif /* NORESOURCE */
- #ifdef OEMRESOURCE
- /* OEM Resource Ordinal Numbers */
- #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 /* WINVER >= 0x030a */
- #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 /* OEMRESOURCE */
- /****** Atom Management *****************************************************/
- #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 /* NOATOM */
- /****** WIN.INI Support *****************************************************/
- /* User Profile Routines */
- 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
- /****** International & Char Translation Support ****************************/
- 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);
- /* Language driver entry point ordinal */ /* ;Internal */
- #define ORD_LANGDRIVER 1 /* ;Internal */
- #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 /* WINVER >= 0x030a */
- #endif /* NOLSTRING */
- #if (WINVER >= 0x030a)
- #ifndef NODBCS
- BOOL WINAPI IsDBCSLeadByte(BYTE);
- #endif /* NODBCS */
- #endif /* WINVER >= 0x030a */
- int WINAPI LoadString(HINSTANCE, UINT, LPSTR, int);
- /****** Keyboard Driver Functions *******************************************/
- #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 wVirtKey, UINT wScanCode, BYTE FAR* lpKeyState, DWORD FAR* lpChar, UINT wFlags);
- #endif
- #endif /* NOKERNEL */
- /****** GDI typedefs, structures, and functions *****************************/
- DECLARE_HANDLE(HDC);
- #ifndef NOGDI
- #ifdef STRICT
- typedef const void NEAR* HGDIOBJ;
- #else
- DECLARE_HANDLE(HGDIOBJ);
- #endif
- #endif /* NOGDI */
- 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;
- 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;
- #if (WINVER >= 0x030a)
- typedef struct tagSIZE
- {
- int cx;
- int cy;
- } SIZE;
- typedef SIZE* PSIZE;
- typedef SIZE NEAR* NPSIZE;
- typedef SIZE FAR* LPSIZE;
- #endif /* WINVER >= 0x030a */
- #define MAKEPOINT(l) (*((POINT FAR*)&(l)))
- #ifndef NOGDI
- /****** DC Management *******************************************************/
- 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);
- DWORD WINAPI SetDCOrg(HDC, int, int); /* ;Internal */
- 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)
- /* Drawing bounds accumulation APIs */
- UINT WINAPI SetBoundsRect(HDC hDC, const RECT FAR* lprcBounds, UINT flags);
- UINT WINAPI GetBoundsRect(HDC hDC, RECT FAR* lprcBounds, UINT flags);
- #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
- #define DCB_WINDOWMGR 0x8000 /* ;Internal */
- /* ;Internal */
- /* Internal SelectBitmap stuff */ /* ;Internal */
- /*HBITMAP WINAPI SelectBitmap(HDC hDC, HBITMAP hbm);*/ /* ;Internal */
- #endif /* WINVER >= 0x030a */
- /****** Device Capabilities *************************************************/
- int WINAPI GetDeviceCaps(HDC, int);
- /* Device Parameters for GetDeviceCaps() */
- #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
- #define POLYGONALCAPS 32
- #define TEXTCAPS 34
- #define CLIPCAPS 36
- #define RASTERCAPS 38
- #define ASPECTX 40
- #define ASPECTY 42
- #define ASPECTXY 44
- #define LOGPIXELSX 88
- #define LOGPIXELSY 90
- #define SIZEPALETTE 104
- #define NUMRESERVED 106
- #define COLORRES 108
- #ifndef NOGDICAPMASKS
- /* GetDeviceCaps() return value masks */
- /* TECHNOLOGY */
- #define DT_PLOTTER 0
- #define DT_RASDISPLAY 1
- #define DT_RASPRINTER 2
- #define DT_RASCAMERA 3
- #define DT_CHARSTREAM 4
- #define DT_METAFILE 5
- #define DT_DISPFILE 6
- /* CURVECAPS */
- #define CC_NONE 0x0000
- #define CC_CIRCLES 0x0001
- #define CC_PIE 0x0002
- #define CC_CHORD 0x0004
- #define CC_ELLIPSES 0x0008
- #define CC_WIDE 0x0010
- #define CC_STYLED 0x0020
- #define CC_WIDESTYLED 0x0040
- #define CC_INTERIORS 0x0080
- #define CC_ROUNDRECT 0x0100
- /* LINECAPS */
- #define LC_NONE 0x0000
- #define LC_POLYLINE 0x0002
- #define LC_MARKER 0x0004
- #define LC_POLYMARKER 0x0008
- #define LC_WIDE 0x0010
- #define LC_STYLED 0x0020
- #define LC_WIDESTYLED 0x0040
- #define LC_INTERIORS 0x0080
- /* POLYGONALCAPS */
- #define PC_NONE 0x0000
- #define PC_POLYGON 0x0001
- #define PC_RECTANGLE 0x0002
- #define PC_WINDPOLYGON 0x0004
- #define PC_SCANLINE 0x0008
- #define PC_WIDE 0x0010
- #define PC_STYLED 0x0020
- #define PC_WIDESTYLED 0x0040
- #define PC_INTERIORS 0x0080
- /* TEXTCAPS */
- #define TC_OP_CHARACTER 0x0001
- #define TC_OP_STROKE 0x0002
- #define TC_CP_STROKE 0x0004
- #define TC_CR_90 0x0008
- #define TC_CR_ANY 0x0010
- #define TC_SF_X_YINDEP 0x0020
- #define TC_SA_DOUBLE 0x0040
- #define TC_SA_INTEGER 0x0080
- #define TC_SA_CONTIN 0x0100
- #define TC_EA_DOUBLE 0x0200
- #define TC_IA_ABLE 0x0400
- #define TC_UA_ABLE 0x0800
- #define TC_SO_ABLE 0x1000
- #define TC_RA_ABLE 0x2000
- #define TC_VA_ABLE 0x4000
- #define TC_RESERVED 0x8000
- /* CLIPCAPS */
- #define CP_NONE 0x0000
- #define CP_RECTANGLE 0x0001
- #define CP_REGION 0x0002
- /* RASTERCAPS */
- #define RC_NONE
- #define RC_BITBLT 0x0001
- #define RC_BANDING 0x0002
- #define RC_SCALING 0x0004
- #define RC_BITMAP64 0x0008
- #define RC_GDI20_OUTPUT 0x0010
- #define RC_GDI20_STATE 0x0020
- #define RC_SAVEBITMAP 0x0040
- #define RC_DI_BITMAP 0x0080
- #define RC_PALETTE 0x0100
- #define RC_DIBTODEV 0x0200
- #define RC_BIGFONT 0x0400
- #define RC_STRETCHBLT 0x0800
- #define RC_FLOODFILL 0x1000
- #define RC_STRETCHDIB 0x2000
- #define RC_OP_DX_OUTPUT 0x4000
- #define RC_DEVBITS 0x8000
- #endif /* NOGDICAPMASKS */
- /****** Coordinate transformation support ***********************************/
- int WINAPI SetMapMode(HDC, int);
- int WINAPI GetMapMode(HDC);
- /* Map modes */
- #define MM_TEXT 1
- #define MM_LOMETRIC 2
- #define MM_HIMETRIC 3
- #define MM_LOENGLISH 4
- #define MM_HIENGLISH 5
- #define MM_TWIPS 6
- #define MM_ISOTROPIC 7
- #define MM_ANISOTROPIC 8
- DWORD WINAPI SetWindowOrg(HDC, int, int);
- DWORD WINAPI GetWindowOrg(HDC);
- DWORD WINAPI SetWindowExt(HDC, int, int);
- DWORD WINAPI GetWindowExt(HDC);
- DWORD WINAPI OffsetWindowOrg(HDC, int, int);
- DWORD WINAPI ScaleWindowExt(HDC, int, int, int, int);
- DWORD WINAPI SetViewportOrg(HDC, int, int);
- DWORD WINAPI GetViewportOrg(HDC);
- DWORD WINAPI SetViewportExt(HDC, int, int);
- DWORD WINAPI GetViewportExt(HDC);
- DWORD WINAPI OffsetViewportOrg(HDC, int, int);
- DWORD WINAPI ScaleViewportExt(HDC, int, int, int, int);
- #if (WINVER >= 0x030a)
- BOOL WINAPI SetWindowOrgEx(HDC, int, int, POINT FAR*);
- BOOL WINAPI GetWindowOrgEx(HDC, POINT FAR*);
- BOOL WINAPI SetWindowExtEx(HDC, int, int, SIZE FAR*);
- BOOL WINAPI GetWindowExtEx(HDC, SIZE FAR*);
- BOOL WINAPI OffsetWindowOrgEx(HDC, int, int, POINT FAR*);
- BOOL WINAPI ScaleWindowExtEx(HDC, int, int, int, int, SIZE FAR*);
- BOOL WINAPI SetViewportExtEx(HDC, int, int, SIZE FAR*);
- BOOL WINAPI GetViewportExtEx(HDC, SIZE FAR*);
- BOOL WINAPI SetViewportOrgEx(HDC, int, int, POINT FAR*);
- BOOL WINAPI GetViewportOrgEx(HDC, POINT FAR*);
- BOOL WINAPI OffsetViewportOrgEx(HDC, int, int, POINT FAR*);
- BOOL WINAPI ScaleViewportExtEx(HDC, int, int, int, int, SIZE FAR*);
- #endif /* WINVER >= 0x030a */
- BOOL WINAPI DPtoLP(HDC, POINT FAR*, int);
- BOOL WINAPI LPtoDP(HDC, POINT FAR*, int);
- int WINAPI SetRelAbs(HDC, int); /* ;Internal */
- int WINAPI GetRelAbs(HDC); /* ;Internal */
- /* Coordinate Modes */
- #define ABSOLUTE 1
- #define RELATIVE 2
- /****** Color support *******************************************************/
- typedef DWORD COLORREF;
- #define RGB(r,g,b) ((COLORREF)(((BYTE)(r)|((WORD)(g)<<8))|(((DWORD)(BYTE)(b))<<16)))
- #define GetRValue(rgb) ((BYTE)(rgb))
- #define GetGValue(rgb) ((BYTE)(((WORD)(rgb)) >> 8))
- #define GetBValue(rgb) ((BYTE)((rgb)>>16))
- COLORREF WINAPI GetNearestColor(HDC, COLORREF);
- #ifndef NOCOLOR
- COLORREF WINAPI GetSysColor(int);
- void WINAPI SetSysColors(int, const int FAR*, const COLORREF FAR*);
- #define COLOR_SCROLLBAR 0
- #define COLOR_BACKGROUND 1
- #define COLOR_ACTIVECAPTION 2
- #define COLOR_INACTIVECAPTION 3
- #define COLOR_MENU 4
- #define COLOR_WINDOW 5
- #define COLOR_WINDOWFRAME 6
- #define COLOR_MENUTEXT 7
- #define COLOR_WINDOWTEXT 8
- #define COLOR_CAPTIONTEXT 9
- #define COLOR_ACTIVEBORDER 10
- #define COLOR_INACTIVEBORDER 11
- #define COLOR_APPWORKSPACE 12
- #define COLOR_HIGHLIGHT 13
- #define COLOR_HIGHLIGHTTEXT 14
- #define COLOR_BTNFACE 15
- #define COLOR_BTNSHADOW 16
- #define COLOR_GRAYTEXT 17
- #define COLOR_BTNTEXT 18
- #if (WINVER >= 0x030a)
- #define COLOR_INACTIVECAPTIONTEXT 19
- #define COLOR_BTNHIGHLIGHT 20
- #define COLOR_MAX 20 /* ;Internal */
- #else /* WINVER >= 0x030a */ /* ;Internal */
- #define COLOR_MAX 18 /* ;Internal */
- #endif /* WINVER >= 0x030a */
- #define COLOR_ENDCOLORS COLOR_MAX /* ;Internal */
- #endif /* NOCOLOR */
- #define WM_SYSCOLORCHANGE 0x0015
- /****** GDI Object Support **************************************************/
- #ifndef NOGDIOBJ
- HGDIOBJ WINAPI GetStockObject(int);
- BOOL WINAPI IsGDIObject(HGDIOBJ);
- #define GDIOBJ_PEN 1 /* ;Internal */
- #define GDIOBJ_BRUSH 2 /* ;Internal */
- #define GDIOBJ_FONT 3 /* ;Internal */
- #define GDIOBJ_PALETTE 4 /* ;Internal */
- #define GDIOBJ_BITMAP 5 /* ;Internal */
- #define GDIOBJ_RGN 6 /* ;Internal */
- #define GDIOBJ_DC 7 /* ;Internal */
- #define GDIOBJ_IC 8 /* ;Internal */
- #define GDIOBJ_DISABLEDDC 9 /* ;Internal */
- #define GDIOBJ_METADC 10 /* ;Internal */
- #define GDIOBJ_METAFILE 11 /* ;Internal */
- BOOL WINAPI DeleteObject(HGDIOBJ);
- HGDIOBJ WINAPI SelectObject(HDC, HGDIOBJ);
- int WINAPI GetObject(HGDIOBJ, int, void FAR*);
- BOOL WINAPI UnrealizeObject(HGDIOBJ);
- #ifdef STRICT
- typedef (CALLBACK* GOBJENUMPROC)(void FAR*, LPARAM);
- #else
- typedef FARPROC GOBJENUMPROC;
- #endif
- #ifdef STRICT
- int WINAPI EnumObjects(HDC, int, GOBJENUMPROC, LPARAM);
- #else
- int WINAPI EnumObjects(HDC, int, GOBJENUMPROC, LPSTR);
- #endif
- /* Object types for EnumObjects() */
- #define OBJ_PEN 1
- #define OBJ_BRUSH 2
- /****** Pen support *********************************************************/
- /* Logical Pen */
- typedef struct tagLOGPEN
- {
- UINT lopnStyle;
- POINT lopnWidth;
- COLORREF lopnColor;
- } LOGPEN;
- typedef LOGPEN* PLOGPEN;
- typedef LOGPEN NEAR* NPLOGPEN;
- typedef LOGPEN FAR* LPLOGPEN;
- /* Pen Styles */
- #define PS_SOLID 0
- #define PS_DASH 1
- #define PS_DOT 2
- #define PS_DASHDOT 3
- #define PS_DASHDOTDOT 4
- #define PS_NULL 5
- #define PS_INSIDEFRAME 6
- HPEN WINAPI CreatePen(int, int, COLORREF);
- HPEN WINAPI CreatePenIndirect(LOGPEN FAR*);
- /* Stock pens for use with GetStockObject(); */
- #define WHITE_PEN 6
- #define BLACK_PEN 7
- #define NULL_PEN 8
- /****** Brush support *******************************************************/
- /* Brush Styles */
- #define BS_SOLID 0
- #define BS_NULL 1
- #define BS_HOLLOW BS_NULL
- #define BS_HATCHED 2
- #define BS_PATTERN 3
- #define BS_INDEXED 4
- #define BS_DIBPATTERN 5
- /* Hatch Styles */
- #define HS_HORIZONTAL 0
- #define HS_VERTICAL 1
- #define HS_FDIAGONAL 2
- #define HS_BDIAGONAL 3
- #define HS_CROSS 4
- #define HS_DIAGCROSS 5
- /* Logical Brush (or Pattern) */
- typedef struct tagLOGBRUSH
- {
- UINT lbStyle;
- COLORREF lbColor;
- int lbHatch;
- } LOGBRUSH;
- typedef LOGBRUSH* PLOGBRUSH;
- typedef LOGBRUSH NEAR* NPLOGBRUSH;
- typedef LOGBRUSH FAR* LPLOGBRUSH;
- typedef LOGBRUSH PATTERN;
- typedef PATTERN* PPATTERN;
- typedef PATTERN NEAR* NPPATTERN;
- typedef PATTERN FAR* LPPATTERN;
- HBRUSH WINAPI CreateSolidBrush(COLORREF);
- HBRUSH WINAPI CreateHatchBrush(int, COLORREF);
- HBRUSH WINAPI CreatePatternBrush(HBITMAP);
- HBRUSH WINAPI CreateDIBPatternBrush(HGLOBAL, UINT);
- HBRUSH WINAPI CreateBrushIndirect(LOGBRUSH FAR*);
- /* Stock brushes for use with GetStockObject() */
- #define WHITE_BRUSH 0
- #define LTGRAY_BRUSH 1
- #define GRAY_BRUSH 2
- #define DKGRAY_BRUSH 3
- #define BLACK_BRUSH 4
- #define NULL_BRUSH 5
- #define HOLLOW_BRUSH NULL_BRUSH
- DWORD WINAPI SetBrushOrg(HDC, int, int);
- DWORD WINAPI GetBrushOrg(HDC);
- #if (WINVER >= 0x030a)
- BOOL WINAPI GetBrushOrgEx(HDC, POINT FAR*);
- #endif /* WINVER >= 0x030a */
- #endif /* NOGDIOBJ */
- /****** Region support ******************************************************/
- HRGN WINAPI CreateRectRgn(int, int, int, int);
- HRGN WINAPI CreateRectRgnIndirect(const RECT FAR*);
- HRGN WINAPI CreateEllipticRgnIndirect(const RECT FAR*);
- HRGN WINAPI CreateEllipticRgn(int, int, int, int);
- HRGN WINAPI CreatePolygonRgn(const POINT FAR*, int, int);
- HRGN WINAPI CreatePolyPolygonRgn(const POINT FAR*, const int FAR*, int, int);
- HRGN WINAPI CreateRoundRectRgn(int, int, int, int, int, int);
- /* Region type flags */
- #define ERROR 0
- #define NULLREGION 1
- #define SIMPLEREGION 2
- #define COMPLEXREGION 3
- void WINAPI SetRectRgn(HRGN, int, int, int, int);
- int WINAPI CombineRgn(HRGN, HRGN, HRGN, int);
- /* CombineRgn() command values */
- #define RGN_AND 1
- #define RGN_OR 2
- #define RGN_XOR 3
- #define RGN_DIFF 4
- #define RGN_COPY 5
- BOOL WINAPI EqualRgn(HRGN, HRGN);
- int WINAPI OffsetRgn(HRGN, int, int);
- int WINAPI GetRgnBox(HRGN, RECT FAR*);
- BOOL WINAPI RectInRegion(HRGN, const RECT FAR*);
- BOOL WINAPI PtInRegion(HRGN, int, int);
- /****** Color palette Support ************************************************/
- #define PALETTERGB(r,g,b) (0x02000000L | RGB(r,g,b))
- #define PALETTEINDEX(i) ((COLORREF)(0x01000000L | (DWORD)(WORD)(i)))
- typedef struct tagPALETTEENTRY
- {
- BYTE peRed;
- BYTE peGreen;
- BYTE peBlue;
- BYTE peFlags;
- } PALETTEENTRY;
- typedef PALETTEENTRY FAR* LPPALETTEENTRY;
- /* Palette entry flags */
- #define PC_RESERVED 0x01 /* palette index used for animation */
- #define PC_EXPLICIT 0x02 /* palette index is explicit to device */
- #define PC_NOCOLLAPSE 0x04 /* do not match color to system palette */
- /* Logical Palette */
- typedef struct tagLOGPALETTE
- {
- WORD palVersion;
- WORD palNumEntries;
- PALETTEENTRY palPalEntry[1];
- } LOGPALETTE;
- typedef LOGPALETTE* PLOGPALETTE;
- typedef LOGPALETTE NEAR* NPLOGPALETTE;
- typedef LOGPALETTE FAR* LPLOGPALETTE;
- HPALETTE WINAPI CreatePalette(const LOGPALETTE FAR*);
- HPALETTE WINAPI SelectPalette(HDC, HPALETTE, BOOL);
- UINT WINAPI RealizePalette(HDC);
- int WINAPI UpdateColors(HDC);
- void WINAPI AnimatePalette(HPALETTE, UINT, UINT, const PALETTEENTRY FAR*);
- UINT WINAPI SetPaletteEntries(HPALETTE, UINT, UINT, const PALETTEENTRY FAR*);
- UINT WINAPI GetPaletteEntries(HPALETTE, UINT, UINT, PALETTEENTRY FAR*);
- UINT WINAPI GetNearestPaletteIndex(HPALETTE, COLORREF);
- BOOL WINAPI ResizePalette(HPALETTE, UINT);
- UINT WINAPI GetSystemPaletteEntries(HDC, UINT, UINT, PALETTEENTRY FAR*);
- UINT WINAPI GetSystemPaletteUse(HDC);
- UINT WINAPI SetSystemPaletteUse(HDC, UINT);
- /* Get/SetSystemPaletteUse() values */
- #define SYSPAL_STATIC 1
- #define SYSPAL_NOSTATIC 2
- /* Palette window messages */
- #define WM_QUERYNEWPALETTE 0x030F
- #define WM_PALETTEISCHANGING 0x0310
- #define WM_PALETTECHANGED 0x0311
- #define WM_PALETTEGONNACHANGE WM_PALETTEISCHANGING /* ;Internal */
- #define WM_CHANGEPALETTE WM_PALETTECHANGED /* ;Internal */
- /****** Clipping support *****************************************************/
- int WINAPI SelectClipRgn(HDC, HRGN);
- int WINAPI GetClipBox(HDC, RECT FAR*);
- int WINAPI IntersectClipRect(HDC, int, int, int, int);
- int WINAPI OffsetClipRgn(HDC, int, int);
- int WINAPI ExcludeClipRect(HDC, int, int, int, int);
- BOOL WINAPI PtVisible(HDC, int, int);
- BOOL WINAPI RectVisible(HDC, const RECT FAR*);
- #if (WINVER >= 0x030a) /* ;Internal */
- /* DC hook callback function */ /* ;Internal */
- /* ;Internal */
- typedef UINT (CALLBACK* DCHOOKPROC)(HDC hDC, UINT code, DWORD data, DWORD lParam); /* ;Internal */
- /* ;Internal */
- BOOL WINAPI SetDCHook(HDC hDC, DCHOOKPROC lpNewProc, DWORD data); /* ;Internal */
- DWORD WINAPI GetDCHook(HDC hDC, DCHOOKPROC FAR* lplpproc); /* ;Internal */
- /* ;Internal */
- /* Callback reason code values */ /* ;Internal */
- /* ;Internal */
- #define DCHC_INVALIDVISRGN 0x0001 /* ;Internal */
- #define DCHC_DELETEDC 0x0002 /* ;Internal */
- /* ;Internal */
- UINT WINAPI SetHookFlags(HDC hDC, UINT flags); /* ;Internal */
- /* ;Internal */
- #define DCHF_INVALIDATEVISRGN 0x0001 /* ;Internal */
- #define DCHF_VALIDATEVISRGN 0x0002 /* ;Internal */
- #endif /* WINVER >= 0x030a */ /* ;Internal */
- /****** General drawing support ********************************************/
- DWORD WINAPI MoveTo(HDC, int, int);
- DWORD WINAPI GetCurrentPosition(HDC);
- #if (WINVER >= 0x030a)
- BOOL WINAPI MoveToEx(HDC, int, int, POINT FAR*);
- BOOL WINAPI GetCurrentPositionEx(HDC, POINT FAR*);
- #endif /* WINVER >= 0x030a */
- BOOL WINAPI LineTo(HDC, int, int);
- BOOL WINAPI Polyline(HDC, const POINT FAR*, int);
- #ifdef STRICT
- typedef void (CALLBACK* LINEDDAPROC)(int, int, LPARAM);
- #else
- typedef FARPROC LINEDDAPROC;
- #endif
- void WINAPI LineDDA(int, int, int, int, LINEDDAPROC, LPARAM);
- BOOL WINAPI Rectangle(HDC, int, int, int, int);
- BOOL WINAPI RoundRect(HDC, int, int, int, int, int, int);
- BOOL WINAPI Ellipse(HDC, int, int, int, int);
- BOOL WINAPI Arc(HDC, int, int, int, int, int, int, int, int);
- BOOL WINAPI Chord(HDC, int, int, int, int, int, int, int, int);
- BOOL WINAPI Pie(HDC, int, int, int, int, int, int, int, int);
- BOOL WINAPI Polygon(HDC, const POINT FAR*, int);
- BOOL WINAPI PolyPolygon(HDC, const POINT FAR*, int FAR*, int);
- /* PolyFill Modes */
- #define ALTERNATE 1
- #define WINDING 2
- int WINAPI SetPolyFillMode(HDC, int);
- int WINAPI GetPolyFillMode(HDC);
- BOOL WINAPI FloodFill(HDC, int, int, COLORREF);
- BOOL WINAPI ExtFloodFill(HDC, int, int, COLORREF, UINT);
- /* ExtFloodFill style flags */
- #define FLOODFILLBORDER 0
- #define FLOODFILLSURFACE 1
- BOOL WINAPI FillRgn(HDC, HRGN, HBRUSH);
- BOOL WINAPI FrameRgn(HDC, HRGN, HBRUSH, int, int);
- BOOL WINAPI InvertRgn(HDC, HRGN);
- BOOL WINAPI PaintRgn(HDC, HRGN);
- /* Rectangle output routines */
- int WINAPI FillRect(HDC, const RECT FAR*, HBRUSH);
- int WINAPI FrameRect(HDC, const RECT FAR*, HBRUSH);
- void WINAPI InvertRect(HDC, const RECT FAR*);
- void WINAPI DrawFocusRect(HDC, const RECT FAR*);
- BOOL WINAPI FastWindowFrame(HDC, const RECT FAR*, UINT, UINT, DWORD); /* ;Internal */
- /****** Text support ********************************************************/
- BOOL WINAPI TextOut(HDC, int, int, LPCSTR, int);
- LONG WINAPI TabbedTextOut(HDC, int, int, LPCSTR, int, int, int FAR*, int);
- BOOL WINAPI ExtTextOut(HDC, int, int, UINT, const RECT FAR*, LPCSTR, UINT, int FAR*);
- #define ETO_GRAYED 0x0001
- #define ETO_OPAQUE 0x0002
- #define ETO_CLIPPED 0x0004
- DWORD WINAPI GetTextExtent(HDC, LPCSTR, int);
- DWORD WINAPI GetTabbedTextExtent(HDC, LPCSTR, int, int, int FAR*);
- #if (WINVER >= 0x030a)
- BOOL WINAPI GetTextExtentPoint(HDC, LPCSTR, int, SIZE FAR*);
- #endif /* WINVER >= 0x030a */
- /* DrawText() Format Flags */
- #ifndef NODRAWTEXT
- #define DT_TOP 0x0000
- #define DT_LEFT 0x0000
- #define DT_CENTER 0x0001
- #define DT_RIGHT 0x0002
- #define DT_VCENTER 0x0004
- #define DT_BOTTOM 0x0008
- #define DT_WORDBREAK 0x0010
- #define DT_SINGLELINE 0x0020
- #define DT_EXPANDTABS 0x0040
- #define DT_TABSTOP 0x0080
- #define DT_NOCLIP 0x0100
- #define DT_EXTERNALLEADING 0x0200
- #define DT_CALCRECT 0x0400
- #define DT_NOPREFIX 0x0800
- #define DT_INTERNAL 0x1000
- #define DT_VALID 0x1fff /* ;Internal: Union of all those above */
- int WINAPI DrawText(HDC, LPCSTR, int, RECT FAR*, UINT);
- #endif /* NODRAWTEXT */
- #ifdef STRICT
- typedef BOOL (CALLBACK* GRAYSTRINGPROC)(HDC, LPARAM, int);
- #else
- typedef FARPROC GRAYSTRINGPROC;
- #endif
- BOOL WINAPI GrayString(HDC, HBRUSH, GRAYSTRINGPROC, LPARAM, int, int, int, int, int);
- BOOL WINAPI GetCharWidth(HDC, UINT, UINT, int FAR*);
- COLORREF WINAPI SetTextColor(HDC, COLORREF);
- COLORREF WINAPI GetTextColor(HDC);
- COLORREF WINAPI SetBkColor(HDC, COLORREF);
- COLORREF WINAPI GetBkColor(HDC);
- int WINAPI SetBkMode(HDC, int);
- int WINAPI GetBkMode(HDC);
- /* Background Modes */
- #define TRANSPARENT 1
- #define OPAQUE 2
- #define TRANSPARENT1 3 /* ;Internal */
- UINT WINAPI SetTextAlign(HDC, UINT);
- UINT WINAPI GetTextAlign(HDC);
- /* Text Alignment Options */
- #define TA_NOUPDATECP 0x0000
- #define TA_UPDATECP 0x0001
- #define TA_LEFT 0x0000
- #define TA_RIGHT 0x0002
- #define TA_CENTER 0x0006
- #define TA_TOP 0x0000
- #define TA_BOTTOM 0x0008
- #define TA_BASELINE 0x0018
- int WINAPI SetTextCharacterExtra(HDC, int);
- int WINAPI GetTextCharacterExtra(HDC);
- int WINAPI SetTextJustification(HDC, int, int);
- /****** Font support ********************************************************/
- #ifndef NOGDIOBJ
- /* Logical Font */
- #define LF_FACESIZE 32
- typedef struct tagLOGFONT
- {
- int lfHeight;
- int lfWidth;
- int lfEscapement;
- int lfOrientation;
- int lfWeight;
- BYTE lfItalic;
- BYTE lfUnderline;
- BYTE lfStrikeOut;
- BYTE lfCharSet;
- BYTE lfOutPrecision;
- BYTE lfClipPrecision;
- BYTE lfQuality;
- BYTE lfPitchAndFamily;
- char lfFaceName[LF_FACESIZE];
- } LOGFONT;
- typedef LOGFONT* PLOGFONT;
- typedef LOGFONT NEAR* NPLOGFONT;
- typedef LOGFONT FAR* LPLOGFONT;
- /* weight values */
- #define FW_DONTCARE 0
- #define FW_THIN 100
- #define FW_EXTRALIGHT 200
- #define FW_LIGHT 300
- #define FW_NORMAL 400
- #define FW_MEDIUM 500
- #define FW_SEMIBOLD 600
- #define FW_BOLD 700
- #define FW_EXTRABOLD 800
- #define FW_HEAVY 900
- #define FW_ULTRALIGHT FW_EXTRALIGHT
- #define FW_REGULAR FW_NORMAL
- #define FW_DEMIBOLD FW_SEMIBOLD
- #define FW_ULTRABOLD FW_EXTRABOLD
- #define FW_BLACK FW_HEAVY
- /* CharSet values */
- #define ANSI_CHARSET 0
- #define DEFAULT_CHARSET 1
- #define SYMBOL_CHARSET 2
- #define SHIFTJIS_CHARSET 128
- #define HANGEUL_CHARSET 129
- #define CHINESEBIG5_CHARSET 136
- #define OEM_CHARSET 255
- /* OutPrecision values */
- #define OUT_DEFAULT_PRECIS 0
- #define OUT_STRING_PRECIS 1
- #define OUT_CHARACTER_PRECIS 2
- #define OUT_STROKE_PRECIS 3
- #if (WINVER >= 0x030a)
- #define OUT_TT_PRECIS 4
- #define OUT_DEVICE_PRECIS 5
- #define OUT_RASTER_PRECIS 6
- #define OUT_TT_ONLY_PRECIS 7
- #endif /* WINVER >= 0x030a */
- /* ClipPrecision values */
- #define CLIP_DEFAULT_PRECIS 0x00
- #define CLIP_CHARACTER_PRECIS 0x01
- #define CLIP_STROKE_PRECIS 0x02
- #define CLIP_MASK 0x0F
- #if (WINVER >= 0x030a)
- #define CLIP_LH_ANGLES 0x10
- #define CLIP_TT_ALWAYS 0x20
- #define CLIP_EMBEDDED 0x80
- #endif /* WINVER >= 0x030a */
- /* Quality values */
- #define DEFAULT_QUALITY 0
- #define DRAFT_QUALITY 1
- #define PROOF_QUALITY 2
- /* PitchAndFamily pitch values (low 4 bits) */
- #define DEFAULT_PITCH 0x00
- #define FIXED_PITCH 0x01
- #define VARIABLE_PITCH 0x02
- /* PitchAndFamily family values (high 4 bits) */
- #define FF_DONTCARE 0x00
- #define FF_ROMAN 0x10
- #define FF_SWISS 0x20
- #define FF_MODERN 0x30
- #define FF_SCRIPT 0x40
- #define FF_DECORATIVE 0x50
- HFONT WINAPI CreateFont(int, int, int, int, int, BYTE, BYTE, BYTE, BYTE, BYTE, BYTE, BYTE, BYTE, LPCSTR);
- HFONT WINAPI CreateFontIndirect(const LOGFONT FAR*);
- /* Stock fonts for use with GetStockObject() */
- #define OEM_FIXED_FONT 10
- #define ANSI_FIXED_FONT 11
- #define ANSI_VAR_FONT 12
- #define SYSTEM_FONT 13
- #define DEVICE_DEFAULT_FONT 14
- #define DEFAULT_PALETTE 15
- #define SYSTEM_FIXED_FONT 16
- DWORD WINAPI SetMapperFlags(HDC, DWORD);
- #define ASPECT_FILTERING 0x00000001L
- int WINAPI AddFontResource(LPCSTR);
- BOOL WINAPI RemoveFontResource(LPCSTR);
- #define WM_FONTCHANGE 0x001D
- int WINAPI GetTextFace(HDC, int, LPSTR);
- DWORD WINAPI GetAspectRatioFilter(HDC);
- #if (WINVER >= 0x030a)
- BOOL WINAPI GetAspectRatioFilterEx(HDC, SIZE FAR*);
- #endif /* WINVER >= 0x030a */
- #endif /* NOGDIOBJ */
- #ifndef NOTEXTMETRIC
- typedef struct tagTEXTMETRIC
- {
- int tmHeight;
- int tmAscent;
- int tmDescent;
- int tmInternalLeading;
- int tmExternalLeading;
- int tmAveCharWidth;
- int tmMaxCharWidth;
- int tmWeight;
- BYTE tmItalic;
- BYTE tmUnderlined;
- BYTE tmStruckOut;
- BYTE tmFirstChar;
- BYTE tmLastChar;
- BYTE tmDefaultChar;
- BYTE tmBreakChar;
- BYTE tmPitchAndFamily;
- BYTE tmCharSet;
- int tmOverhang;
- int tmDigitizedAspectX;
- int tmDigitizedAspectY;
- } TEXTMETRIC;
- typedef TEXTMETRIC* PTEXTMETRIC;
- typedef TEXTMETRIC NEAR* NPTEXTMETRIC;
- typedef TEXTMETRIC FAR* LPTEXTMETRIC;
- /* tmPitchAndFamily values */
- #define TMPF_FIXED_PITCH 0x01
- #define TMPF_VECTOR 0x02
- #define TMPF_DEVICE 0x08
- #if (WINVER >= 0x030a)
- #define TMPF_TRUETYPE 0x04
- #endif /* WINVER >= 0x030a */
- BOOL WINAPI GetTextMetrics(HDC, TEXTMETRIC FAR*);
- #if (WINVER >= 0x030a)
- #ifndef NOSCALABLEFONT
- typedef struct tagPANOSE
- {
- BYTE bFamilyType;
- BYTE bSerifStyle;
- BYTE bWeight;
- BYTE bProportion;
- BYTE bContrast;
- BYTE bStrokeVariation;
- BYTE bArmStyle;
- BYTE bLetterform;
- BYTE bMidline;
- BYTE bXHeight;
- } PANOSE, FAR* LPPANOSE;
- typedef struct tagOUTLINETEXTMETRIC
- {
- UINT otmSize;
- TEXTMETRIC otmTextMetrics;
- BYTE otmFiller;
- PANOSE otmPanoseNumber;
- UINT otmfsSelection;
- UINT otmfsType;
- int otmsCharSlopeRise;
- int otmsCharSlopeRun;
- int otmItalicAngle;
- UINT otmEMSquare;
- int otmAscent;
- int otmDescent;
- UINT otmLineGap;
- UINT otmsCapEmHeight;
- UINT otmsXHeight;
- RECT otmrcFontBox;
- int otmMacAscent;
- int otmMacDescent;
- UINT otmMacLineGap;
- UINT otmusMinimumPPEM;
- POINT otmptSubscriptSize;
- POINT otmptSubscriptOffset;
- POINT otmptSuperscriptSize;
- POINT otmptSuperscriptOffset;
- UINT otmsStrikeoutSize;
- int otmsStrikeoutPosition;
- int otmsUnderscorePosition;
- int otmsUnderscoreSize;
- PSTR otmpFamilyName;
- PSTR otmpFaceName;
- PSTR otmpStyleName;
- PSTR otmpFullName;
- } OUTLINETEXTMETRIC, FAR* LPOUTLINETEXTMETRIC;
- WORD WINAPI GetOutlineTextMetrics(HDC, UINT, OUTLINETEXTMETRIC FAR*);
- #endif /* WINVER >= 0x030a */
- #endif /* NOSCALABLEFONT */
- #ifndef NOGDIOBJ
- #if (WINVER >= 0x030a)
- /* Structure passed to FONTENUMPROC */
- /* NOTE: NEWTEXTMETRIC is the same as TEXTMETRIC plus 4 new fields */
- typedef struct tagNEWTEXTMETRIC
- {
- int tmHeight;
- int tmAscent;
- int tmDescent;
- int tmInternalLeading;
- int tmExternalLeading;
- int tmAveCharWidth;
- int tmMaxCharWidth;
- int tmWeight;
- BYTE tmItalic;
- BYTE tmUnderlined;
- BYTE tmStruckOut;
- BYTE tmFirstChar;
- BYTE tmLastChar;
- BYTE tmDefaultChar;
- BYTE tmBreakChar;
- BYTE tmPitchAndFamily;
- BYTE tmCharSet;
- int tmOverhang;
- int tmDigitizedAspectX;
- int tmDigitizedAspectY;
- DWORD ntmFlags;
- UINT ntmSizeEM;
- UINT ntmCellHeight;
- UINT ntmAvgWidth;
- } NEWTEXTMETRIC;
- typedef NEWTEXTMETRIC* PNEWTEXTMETRIC;
- typedef NEWTEXTMETRIC NEAR* NPNEWTEXTMETRIC;
- typedef NEWTEXTMETRIC FAR* LPNEWTEXTMETRIC;
- /* ntmFlags field flags */
- #define NTM_REGULAR 0x00000040L
- #define NTM_BOLD 0x00000020L
- #define NTM_ITALIC 0x00000001L
- #define LF_FULLFACESIZE 64
- /* Structure passed to FONTENUMPROC */
- typedef struct tagENUMLOGFONT
- {
- LOGFONT elfLogFont;
- char elfFullName[LF_FULLFACESIZE];
- char elfStyle[LF_FACESIZE];
- } ENUMLOGFONT, FAR* LPENUMLOGFONT;
- #endif /* WINVER >= 0x030a */
- #endif /* NOGDIOBJ */
- #ifdef STRICT
- #ifndef NOGDIOBJ
- typedef int (CALLBACK* OLDFONTENUMPROC)(const LOGFONT FAR*, const TEXTMETRIC FAR*, int, LPARAM);
- #if (WINVER >= 0x030a)
- typedef int (CALLBACK* FONTENUMPROC)(const ENUMLOGFONT FAR*, const NEWTEXTMETRIC FAR*, int, LPARAM);
- int WINAPI EnumFontFamilies(HDC, LPCSTR, FONTENUMPROC, LPARAM);
- #else /* WINVER >= 0x030a */
- typedef OLDFONTENUMPROC FONTENUMPROC;
- #endif /* WINVER >= 0x030a) */
- int WINAPI EnumFonts(HDC, LPCSTR, OLDFONTENUMPROC, LPARAM);
- #endif /* NOGDIOBJ */
- #else /* STRICT */
- typedef FARPROC OLDFONTENUMPROC;
- typedef FARPROC FONTENUMPROC;
- int WINAPI EnumFonts(HDC, LPCSTR, OLDFONTENUMPROC, LPSTR);
- #if (WINVER >= 0x030a)
- int WINAPI EnumFontFamilies(HDC, LPCSTR, FONTENUMPROC, LPSTR);
- #endif /* WINVER >= 0x030a */
- #endif /* !STRICT */
- /* EnumFonts font type values */
- #define RASTER_FONTTYPE 0x0001
- #define DEVICE_FONTTYPE 0X0002
- #if (WINVER >= 0x030a)
- #define TRUETYPE_FONTTYPE 0x0004
- #endif /* WINVER >= 0x030a */
- #endif /* NOTEXTMETRIC */
- #ifndef NOSCALABLEFONT
- #if (WINVER >= 0x030a)
- DWORD WINAPI ConvertOutlineFontFile(LPCSTR, LPCSTR, LPCSTR); /* ;Internal */
- DWORD WINAPI GetFontData(HDC, DWORD, DWORD, void FAR*, DWORD);
- BOOL WINAPI CreateScalableFontResource(UINT, LPCSTR, LPCSTR, LPCSTR);
- typedef struct tagGLYPHMETRICS
- {
- UINT gmBlackBoxX;
- UINT gmBlackBoxY;
- POINT gmptGlyphOrigin;
- int gmCellIncX;
- int gmCellIncY;
- } GLYPHMETRICS, FAR* LPGLYPHMETRICS;
- typedef struct tagFIXED
- {
- UINT fract;
- int value;
- } FIXED, FAR* LPFIXED;
- typedef struct tagMAT2
- {
- FIXED eM11;
- FIXED eM12;
- FIXED eM21;
- FIXED eM22;
- } MAT2, FAR* LPMAT2;
- DWORD WINAPI GetGlyphOutline(HDC, UINT, UINT, GLYPHMETRICS FAR*, DWORD, void FAR*, const MAT2 FAR*);
- /* GetGlyphOutline constants */
- #define GGO_METRICS 0
- #define GGO_BITMAP 1
- #define GGO_NATIVE 2
- #define TT_POLYGON_TYPE 24
- #define TT_PRIM_LINE 1
- #define TT_PRIM_QSPLINE 2
- typedef struct tagPOINTFX
- {
- FIXED x;
- FIXED y;
- } POINTFX, FAR* LPPOINTFX;
- typedef struct tagTTPOLYCURVE
- {
- UINT wType;
- UINT cpfx;
- POINTFX apfx[1];
- } TTPOLYCURVE, FAR* LPTTPOLYCURVE;
- typedef struct tagTTPOLYGONHEADER
- {
- DWORD cb;
- DWORD dwType;
- POINTFX pfxStart;
- } TTPOLYGONHEADER, FAR* LPTTPOLYGONHEADER;
- typedef UINT FAR* LPFONTDIR; /* ;Internal */
- /* ;Internal */
- DWORD WINAPI EngineMakeFontDir(HDC, LPFONTDIR, LPCSTR); /* ;Internal */
- /* ;Internal */
- typedef struct tagABC
- {
- int abcA;
- UINT abcB;
- int abcC;
- } ABC;
- typedef ABC FAR* LPABC;
- BOOL WINAPI GetCharABCWidths(HDC, UINT, UINT, ABC FAR*);
- typedef struct tagKERNINGPAIR
- {
- WORD wFirst;
- WORD wSecond;
- int iKernAmount;
- } KERNINGPAIR, FAR* LPKERNINGPAIR;
- int WINAPI GetKerningPairs(HDC, int, KERNINGPAIR FAR*);
- typedef struct tagRASTERIZER_STATUS
- {
- int nSize;
- int wFlags;
- int nLanguageID;
- } RASTERIZER_STATUS;
- typedef RASTERIZER_STATUS FAR* LPRASTERIZER_STATUS;
- /* bits defined in wFlags of RASTERIZER_STATUS */
- #define TT_AVAILABLE 0x0001
- #define TT_ENABLED 0x0002
- BOOL WINAPI GetRasterizerCaps(RASTERIZER_STATUS FAR*, int);
- #endif /* WINVER >= 0x030a */
- #endif /* NOSCALABLEFONT */
- /****** Bitmap support ******************************************************/
- #ifndef NOBITMAP
- typedef struct tagBITMAP
- {
- int bmType;
- int bmWidth;
- int bmHeight;
- int bmWidthBytes;
- BYTE bmPlanes;
- BYTE bmBitsPixel;
- void FAR* bmBits;
- } BITMAP;
- typedef BITMAP* PBITMAP;
- typedef BITMAP NEAR* NPBITMAP;
- typedef BITMAP FAR* LPBITMAP;
- /* Bitmap Header structures */
- typedef struct tagRGBTRIPLE
- {
- BYTE rgbtBlue;
- BYTE rgbtGreen;
- BYTE rgbtRed;
- } RGBTRIPLE;
- typedef RGBTRIPLE FAR* LPRGBTRIPLE;
- typedef struct tagRGBQUAD
- {
- BYTE rgbBlue;
- BYTE rgbGreen;
- BYTE rgbRed;
- BYTE rgbReserved;
- } RGBQUAD;
- typedef RGBQUAD FAR* LPRGBQUAD;
- /* structures for defining DIBs */
- typedef struct tagBITMAPCOREHEADER
- {
- DWORD bcSize;
- short bcWidth;
- short bcHeight;
- WORD bcPlanes;
- WORD bcBitCount;
- } BITMAPCOREHEADER;
- typedef BITMAPCOREHEADER* PBITMAPCOREHEADER;
- typedef BITMAPCOREHEADER FAR* LPBITMAPCOREHEADER;
- typedef struct tagBITMAPINFOHEADER
- {
- DWORD biSize;
- LONG biWidth;
- LONG biHeight;
- WORD biPlanes;
- WORD biBitCount;
- DWORD biCompression;
- DWORD biSizeImage;
- LONG biXPelsPerMeter;
- LONG biYPelsPerMeter;
- DWORD biClrUsed;
- DWORD biClrImportant;
- } BITMAPINFOHEADER;
- typedef BITMAPINFOHEADER* PBITMAPINFOHEADER;
- typedef BITMAPINFOHEADER FAR* LPBITMAPINFOHEADER;
- /* constants for the biCompression field */
- #define BI_RGB 0L
- #define BI_RLE8 1L
- #define BI_RLE4 2L
- typedef struct tagBITMAPINFO
- {
- BITMAPINFOHEADER bmiHeader;
- RGBQUAD bmiColors[1];
- } BITMAPINFO;
- typedef BITMAPINFO* PBITMAPINFO;
- typedef BITMAPINFO FAR* LPBITMAPINFO;
- typedef struct tagBITMAPCOREINFO
- {
- BITMAPCOREHEADER bmciHeader;
- RGBTRIPLE bmciColors[1];
- } BITMAPCOREINFO;
- typedef BITMAPCOREINFO* PBITMAPCOREINFO;
- typedef BITMAPCOREINFO FAR* LPBITMAPCOREINFO;
- typedef struct tagBITMAPFILEHEADER
- {
- UINT bfType;
- DWORD bfSize;
- UINT bfReserved1;
- UINT bfReserved2;
- DWORD bfOffBits;
- } BITMAPFILEHEADER;
- typedef BITMAPFILEHEADER* PBITMAPFILEHEADER;
- typedef BITMAPFILEHEADER FAR* LPBITMAPFILEHEADER;
- /* Pel Array */ /* ;Internal */
- typedef struct tagPELARRAY /* ;Internal */
- { /* ;Internal */
- int paXCount; /* ;Internal */
- int paYCount; /* ;Internal */
- int paXExt; /* ;Internal */
- int paYExt; /* ;Internal */
- BYTE paRGBs; /* ;Internal */
- } PELARRAY; /* ;Internal */
- typedef PELARRAY* PPELARRAY; /* ;Internal */
- typedef PELARRAY NEAR* NPPELARRAY; /* ;Internal */
- typedef PELARRAY FAR* LPPELARRAY; /* ;Internal */
- HBITMAP WINAPI CreateBitmap(int, int, UINT, UINT, const void FAR*);
- HBITMAP WINAPI CreateBitmapIndirect(BITMAP FAR* );
- HBITMAP WINAPI CreateCompatibleBitmap(HDC, int, int);
- HBITMAP WINAPI CreateDiscardableBitmap(HDC, int, int);
- HBITMAP WINAPI CreateDIBitmap(HDC, BITMAPINFOHEADER FAR*, DWORD, const void FAR*, BITMAPINFO FAR*, UINT);
- HBITMAP WINAPI LoadBitmap(HINSTANCE, LPCSTR);
- /* DIB color table identifiers */
- #define DIB_RGB_COLORS 0
- #define DIB_PAL_COLORS 1
- /* constants for CreateDIBitmap */
- #define CBM_INIT 0x00000004L
- #endif /* NOBITMAP */
- #ifndef NORASTEROPS
- /* Binary raster ops */
- #define R2_BLACK 1
- #define R2_NOTMERGEPEN 2
- #define R2_MASKNOTPEN 3
- #define R2_NOTCOPYPEN 4
- #define R2_MASKPENNOT 5
- #define R2_NOT 6
- #define R2_XORPEN 7
- #define R2_NOTMASKPEN 8
- #define R2_MASKPEN 9
- #define R2_NOTXORPEN 10
- #define R2_NOP 11
- #define R2_MERGENOTPEN 12
- #define R2_COPYPEN 13
- #define R2_MERGEPENNOT 14
- #define R2_MERGEPEN 15
- #define R2_WHITE 16
- /* Ternary raster operations */
- #define SRCCOPY 0x00CC0020L
- #define SRCPAINT 0x00EE0086L
- #define SRCAND 0x008800C6L
- #define SRCINVERT 0x00660046L
- #define SRCERASE 0x00440328L
- #define NOTSRCCOPY 0x00330008L
- #define NOTSRCERASE 0x001100A6L
- #define MERGECOPY 0x00C000CAL
- #define MERGEPAINT 0x00BB0226L
- #define PATCOPY 0x00F00021L
- #define PATPAINT 0x00FB0A09L
- #define PATINVERT 0x005A0049L
- #define DSTINVERT 0x00550009L
- #define BLACKNESS 0x00000042L
- #define WHITENESS 0x00FF0062L
- #endif /* NORASTEROPS */
- #ifndef NOBITMAP
- BOOL WINAPI BitBlt(HDC, int, int, int, int, HDC, int, int, DWORD);
- BOOL WINAPI PatBlt(HDC, int, int, int, int, DWORD);
- BOOL WINAPI StretchBlt(HDC, int, int, int, int, HDC, int, int, int, int, DWORD);
- int WINAPI StretchDIBits(HDC, int, int, int, int, int,
- int, int, int, const void FAR*, LPBITMAPINFO, UINT, DWORD);
- COLORREF WINAPI SetPixel(HDC, int, int, COLORREF);
- COLORREF WINAPI GetPixel(HDC, int, int);
- /* StretchBlt() Modes */
- #define BLACKONWHITE 1
- #define WHITEONBLACK 2
- #define COLORONCOLOR 3
- /* new StretchBlt() Modes (simpler names) */
- #define STRETCH_ANDSCANS 1
- #define STRETCH_ORSCANS 2
- #define STRETCH_DELETESCANS 3
- int WINAPI SetStretchBltMode(HDC, int);
- int WINAPI GetStretchBltMode(HDC);
- DWORD WINAPI SetBitmapDimension(HBITMAP, int, int);
- DWORD WINAPI GetBitmapDimension(HBITMAP);
- #if (WINVER >= 0x030a)
- BOOL WINAPI SetBitmapDimensionEx(HBITMAP, int, int, SIZE FAR*);
- BOOL WINAPI GetBitmapDimensionEx(HBITMAP, SIZE FAR*);
- #endif /* WINVER >= 0x030a */
- int WINAPI SetROP2(HDC, int);
- int WINAPI GetROP2(HDC);
- LONG WINAPI SetBitmapBits(HBITMAP, DWORD, const void FAR*);
- LONG WINAPI GetBitmapBits(HBITMAP, LONG, void FAR*);
- int WINAPI SetDIBits(HDC, HBITMAP, UINT, UINT, const void FAR*, BITMAPINFO FAR*, UINT);
- int WINAPI GetDIBits(HDC, HBITMAP, UINT, UINT, void FAR*, BITMAPINFO FAR*, UINT);
- int WINAPI SetDIBitsToDevice(HDC, int, int, int, int, int, int, UINT, UINT,
- void FAR*, BITMAPINFO FAR*, UINT);
- #endif /* NOBITMAP */
- /****** Metafile support ****************************************************/
- #ifndef NOMETAFILE
- DECLARE_HANDLE(HMETAFILE);
- HDC WINAPI CreateMetaFile(LPCSTR);
- HMETAFILE WINAPI CloseMetaFile(HDC);
- HMETAFILE WINAPI GetMetaFile(LPCSTR);
- BOOL WINAPI DeleteMetaFile(HMETAFILE);
- HMETAFILE WINAPI CopyMetaFile(HMETAFILE, LPCSTR);
- BOOL WINAPI PlayMetaFile(HDC, HMETAFILE);
- HGLOBAL WINAPI GetMetaFileBits(HMETAFILE);
- HMETAFILE WINAPI SetMetaFileBits(HGLOBAL);
- #if (WINVER >= 0x030a)
- HMETAFILE WINAPI SetMetaFileBitsBetter(HGLOBAL);
- #endif /* WINVER >= 0x030a */
- /* Clipboard Metafile Picture Structure */
- typedef struct tagMETAFILEPICT
- {
- int mm;
- int xExt;
- int yExt;
- HMETAFILE hMF;
- } METAFILEPICT;
- typedef METAFILEPICT FAR* LPMETAFILEPICT;
- typedef struct tagMETAHEADER
- {
- UINT mtType;
- UINT mtHeaderSize;
- UINT mtVersion;
- DWORD mtSize;
- UINT mtNoObjects;
- DWORD mtMaxRecord;
- UINT mtNoParameters;
- } METAHEADER;
- typedef struct tagHANDLETABLE
- {
- HGDIOBJ objectHandle[1];
- } HANDLETABLE;
- typedef HANDLETABLE* PHANDLETABLE;
- typedef HANDLETABLE FAR* LPHANDLETABLE;
- typedef struct tagMETARECORD
- {
- DWORD rdSize;
- UINT rdFunction;
- UINT rdParm[1];
- } METARECORD;
- typedef METARECORD* PMETARECORD;
- typedef METARECORD FAR* LPMETARECORD;
- /* Metafile Functions */
- #define META_SETBKCOLOR 0x0201
- #define META_SETBKMODE 0x0102
- #define META_SETMAPMODE 0x0103
- #define META_SETROP2 0x0104
- #define META_SETRELABS 0x0105
- #define META_SETPOLYFILLMODE 0x0106
- #define META_SETSTRETCHBLTMODE 0x0107
- #define META_SETTEXTCHAREXTRA 0x0108
- #define META_SETTEXTCOLOR 0x0209
- #define META_SETTEXTJUSTIFICATION 0x020A
- #define META_SETWINDOWORG 0x020B
- #define META_SETWINDOWEXT 0x020C
- #define META_SETVIEWPORTORG 0x020D
- #define META_SETVIEWPORTEXT 0x020E
- #define META_OFFSETWINDOWORG 0x020F
- #define META_SCALEWINDOWEXT 0x0410
- #define META_OFFSETVIEWPORTORG 0x0211
- #define META_SCALEVIEWPORTEXT 0x0412
- #define META_LINETO 0x0213
- #define META_MOVETO 0x0214
- #define META_EXCLUDECLIPRECT 0x0415
- #define META_INTERSECTCLIPRECT 0x0416
- #define META_ARC 0x0817
- #define META_ELLIPSE 0x0418
- #define META_FLOODFILL 0x0419
- #define META_PIE 0x081A
- #define META_RECTANGLE 0x041B
- #define META_ROUNDRECT 0x061C
- #define META_PATBLT 0x061D
- #define META_SAVEDC 0x001E
- #define META_SETPIXEL 0x041F
- #define META_OFFSETCLIPRGN 0x0220
- #define META_TEXTOUT 0x0521
- #define META_BITBLT 0x0922
- #define META_STRETCHBLT 0x0B23
- #define META_POLYGON 0x0324
- #define META_POLYLINE 0x0325
- #define META_ESCAPE 0x0626
- #define META_RESTOREDC 0x0127
- #define META_FILLREGION 0x0228
- #define META_FRAMEREGION 0x0429
- #define META_INVERTREGION 0x012A
- #define META_PAINTREGION 0x012B
- #define META_SELECTCLIPREGION 0x012C
- #define META_SELECTOBJECT 0x012D
- #define META_SETTEXTALIGN 0x012E
- #define META_DRAWTEXT 0x062F
- #define META_CHORD 0x0830
- #define META_SETMAPPERFLAGS 0x0231
- #define META_EXTTEXTOUT 0x0a32
- #define META_SETDIBTODEV 0x0d33
- #define META_SELECTPALETTE 0x0234
- #define META_REALIZEPALETTE 0x0035
- #define META_ANIMATEPALETTE 0x0436
- #define META_SETPALENTRIES 0x0037
- #define META_POLYPOLYGON 0x0538
- #define META_RESIZEPALETTE 0x0139
- #define META_DIBBITBLT 0x0940
- #define META_DIBSTRETCHBLT 0x0b41
- #define META_DIBCREATEPATTERNBRUSH 0x0142
- #define META_STRETCHDIB 0x0f43
- #define META_EXTFLOODFILL 0x0548
- #define META_RESETDC 0x014C
- #define META_STARTDOC 0x014D
- #define META_STARTPAGE 0x004F
- #define META_ENDPAGE 0x0050
- #define META_ABORTDOC 0x0052
- #define META_ENDDOC 0x005E
- #define META_DELETEOBJECT 0x01f0
- #define META_CREATEPALETTE 0x00f7
- #define META_CREATEBRUSH 0x00F8
- #define META_CREATEPATTERNBRUSH 0x01F9
- #define META_CREATEPENINDIRECT 0x02FA
- #define META_CREATEFONTINDIRECT 0x02FB
- #define META_CREATEBRUSHINDIRECT 0x02FC
- #define META_CREATEBITMAPINDIRECT 0x02FD
- #define META_CREATEBITMAP 0x06FE
- #define META_CREATEREGION 0x06FF
- void WINAPI PlayMetaFileRecord(HDC, HANDLETABLE FAR*, METARECORD FAR*, UINT);
- #ifdef STRICT
- typedef int (CALLBACK* MFENUMPROC)(HDC, HANDLETABLE FAR*, METARECORD FAR*, int, LPARAM);
- #else
- typedef FARPROC MFENUMPROC;
- #endif
- BOOL WINAPI EnumMetaFile(HDC, HMETAFILE, MFENUMPROC, LPARAM);
- #endif /* NOMETAFILE */
- /****** Printing support ****************************************************/
- #ifdef STRICT
- typedef BOOL (CALLBACK* ABORTPROC)(HDC, int);
- #else
- typedef FARPROC ABORTPROC;
- #endif
- #if (WINVER >= 0x030a)
- typedef struct
- {
- int cbSize;
- LPCSTR lpszDocName;
- LPCSTR lpszOutput;
- } DOCINFO;
- typedef DOCINFO FAR* LPDOCINFO;
- int WINAPI StartDoc(HDC, DOCINFO FAR*);
- int WINAPI StartPage(HDC);
- int WINAPI EndPage(HDC);
- int WINAPI EndDoc(HDC);
- int WINAPI AbortDoc(HDC);
- int WINAPI SetAbortProc(HDC, ABORTPROC);
- HANDLE WINAPI SpoolFile(LPSTR, LPSTR, LPSTR, LPSTR);
- BOOL WINAPI QueryJob(HANDLE, int); /* ;Internal */
- #endif /* WINVER >= 0x030a */
- BOOL WINAPI QueryAbort(HDC, int);
- /* Spooler Error Codes */
- #define SP_NOTREPORTED 0x4000
- #define SP_ERROR (-1)
- #define SP_APPABORT (-2)
- #define SP_USERABORT (-3)
- #define SP_OUTOFDISK (-4)
- #define SP_OUTOFMEMORY (-5)
- #define PR_JOBSTATUS 0x0000
- #endif /* NOGDI */
- /* Spooler status notification message */
- #define WM_SPOOLERSTATUS 0x002A
- #ifndef NOGDI
- /******* GDI Escape support *************************************************/
- int WINAPI Escape(HDC, int, int, LPCSTR, void FAR*);
- /* GDI Escapes */
- #define NEWFRAME 1
- #define ABORTDOC 2
- #define NEXTBAND 3
- #define SETCOLORTABLE 4
- #define GETCOLORTABLE 5
- #define FLUSHOUTPUT 6
- #define DRAFTMODE 7
- #define QUERYESCSUPPORT 8
- #define SETABORTPROC 9
- #define STARTDOC 10
- #define ENDDOC 11
- #define GETPHYSPAGESIZE 12
- #define GETPRINTINGOFFSET 13
- #define GETSCALINGFACTOR 14
- #define MFCOMMENT 15
- #define GETPENWIDTH 16
- #define SETCOPYCOUNT 17
- #define SELECTPAPERSOURCE 18
- #define DEVICEDATA 19
- #define PASSTHROUGH 19
- #define GETTECHNOLGY 20
- #define GETTECHNOLOGY 20
- #define SETLINECAP 21
- #define SETLINEJOIN 22
- #define SETMITERLIMIT 23
- #define BANDINFO 24
- #define DRAWPATTERNRECT 25
- #define GETVECTORPENSIZE 26
- #define GETVECTORBRUSHSIZE 27
- #define ENABLEDUPLEX 28
- #define GETSETPAPERBINS 29
- #define GETSETPRINTORIENT 30
- #define ENUMPAPERBINS 31
- #define SETDIBSCALING 32
- #define EPSPRINTING 33
- #define ENUMPAPERMETRICS 34
- #define GETSETPAPERMETRICS 35
- #define POSTSCRIPT_DATA 37
- #define POSTSCRIPT_IGNORE 38
- #define MOUSETRAILS 39
- #define GETEXTENDEDTEXTMETRICS 256
- #define GETEXTENTTABLE 257
- #define GETPAIRKERNTABLE 258
- #define GETTRACKKERNTABLE 259
- #define EXTTEXTOUT 512
- #define GETFACENAME 513
- #define ENABLERELATIVEWIDTHS 768
- #define ENABLEPAIRKERNING 769
- #define SETKERNTRACK 770
- #define SETALLJUSTVALUES 771
- #define SETCHARSET 772
- #define STRETCHBLT 2048
- #define GETSETSCREENPARAMS 3072
- #define BEGIN_PATH 4096
- #define CLIP_TO_PATH 4097
- #define END_PATH 4098
- #define EXT_DEVICE_CAPS 4099
- #define RESTORE_CTM 4100
- #define SAVE_CTM 4101
- #define SET_ARC_DIRECTION 4102
- #define SET_BACKGROUND_COLOR 4103
- #define SET_POLY_MODE 4104
- #define SET_SCREEN_ANGLE 4105
- #define SET_SPREAD 4106
- #define TRANSFORM_CTM 4107
- #define SET_CLIP_BOX 4108
- #define SET_BOUNDS 4109
- #endif /* NOGDI */
- /****** USER typedefs, structures, and functions *****************************/
- #ifdef tagWND /* ;Internal */
- typedef struct tagWND NEAR* HWND; /* ;Internal */
- #else /* ;Internal */
- DECLARE_HANDLE(HWND);
- #endif /* ;Internal */
- #ifndef NOUSER
- DECLARE_HANDLE(HMENU);
- DECLARE_HANDLE(HICON);
- typedef HICON HCURSOR; /* HICONs & HCURSORs are polymorphic */
- /****** System Metrics *******************************************************/
- #ifndef NOSYSMETRICS
- int WINAPI GetSystemMetrics(int);
- /* GetSystemMetrics() codes */
- #define SM_CXSCREEN 0
- #define SM_CYSCREEN 1
- #define SM_CXVSCROLL 2
- #define SM_CYHSCROLL 3
- #define SM_CYCAPTION 4
- #define SM_CXBORDER 5
- #define SM_CYBORDER 6
- #define SM_CXDLGFRAME 7
- #define SM_CYDLGFRAME 8
- #define SM_CYVTHUMB 9
- #define SM_CXHTHUMB 10
- #define SM_CXICON 11
- #define SM_CYICON 12
- #define SM_CXCURSOR 13
- #define SM_CYCURSOR 14
- #define SM_CYMENU 15
- #define SM_CXFULLSCREEN 16
- #define SM_CYFULLSCREEN 17
- #define SM_CYKANJIWINDOW 18
- #define SM_MOUSEPRESENT 19
- #define SM_CYVSCROLL 20
- #define SM_CXHSCROLL 21
- #define SM_DEBUG 22
- #define SM_SWAPBUTTON 23
- #define SM_RESERVED1 24
- #define SM_RESERVED2 25
- #define SM_RESERVED3 26
- #define SM_RESERVED4 27
- #define SM_CXMIN 28
- #define SM_CYMIN 29
- #define SM_CXSIZE 30
- #define SM_CYSIZE 31
- #define SM_CXFRAME 32
- #define SM_CYFRAME 33
- #define SM_CXMINTRACK 34
- #define SM_CYMINTRACK 35
- #if (WINVER >= 0x030a)
- #define SM_CXDOUBLECLK 36
- #define SM_CYDOUBLECLK 37
- #define SM_CXICONSPACING 38
- #define SM_CYICONSPACING 39
- #define SM_MENUDROPALIGNMENT 40
- #define SM_PENWINDOWS 41
- #define SM_DBCSENABLED 42
- #endif /* WINVER >= 0x030a */
- #define SM_MAX 42 /* ;Internal */
- #define SM_CMETRICS 43
- #endif /* NOSYSMETRICS */
- UINT WINAPI GetDoubleClickTime(void);
- void WINAPI SetDoubleClickTime(UINT);