WinGDI.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:178k
- typedef struct _MAT2 {
- FIXED eM11;
- FIXED eM12;
- FIXED eM21;
- FIXED eM22;
- } MAT2, FAR *LPMAT2;
- typedef struct _GLYPHMETRICS {
- UINT gmBlackBoxX;
- UINT gmBlackBoxY;
- POINT gmptGlyphOrigin;
- short gmCellIncX;
- short gmCellIncY;
- } GLYPHMETRICS, FAR *LPGLYPHMETRICS;
- // GetGlyphOutline constants
- #define GGO_METRICS 0
- #define GGO_BITMAP 1
- #define GGO_NATIVE 2
- #define GGO_BEZIER 3
- #if(WINVER >= 0x0400)
- #define GGO_GRAY2_BITMAP 4
- #define GGO_GRAY4_BITMAP 5
- #define GGO_GRAY8_BITMAP 6
- #define GGO_GLYPH_INDEX 0x0080
- #endif /* WINVER >= 0x0400 */
- #if (_WIN32_WINNT >= 0x0500)
- #define GGO_UNHINTED 0x0100
- #endif // (_WIN32_WINNT >= 0x0500)
- #define TT_POLYGON_TYPE 24
- #define TT_PRIM_LINE 1
- #define TT_PRIM_QSPLINE 2
- #define TT_PRIM_CSPLINE 3
- typedef struct tagPOINTFX
- {
- FIXED x;
- FIXED y;
- } POINTFX, FAR* LPPOINTFX;
- typedef struct tagTTPOLYCURVE
- {
- WORD wType;
- WORD cpfx;
- POINTFX apfx[1];
- } TTPOLYCURVE, FAR* LPTTPOLYCURVE;
- typedef struct tagTTPOLYGONHEADER
- {
- DWORD cb;
- DWORD dwType;
- POINTFX pfxStart;
- } TTPOLYGONHEADER, FAR* LPTTPOLYGONHEADER;
- #if(WINVER >= 0x0400)
- #define GCP_DBCS 0x0001
- #define GCP_REORDER 0x0002
- #define GCP_USEKERNING 0x0008
- #define GCP_GLYPHSHAPE 0x0010
- #define GCP_LIGATE 0x0020
- ////#define GCP_GLYPHINDEXING 0x0080
- #define GCP_DIACRITIC 0x0100
- #define GCP_KASHIDA 0x0400
- #define GCP_ERROR 0x8000
- #define FLI_MASK 0x103B
- #define GCP_JUSTIFY 0x00010000L
- ////#define GCP_NODIACRITICS 0x00020000L
- #define FLI_GLYPHS 0x00040000L
- #define GCP_CLASSIN 0x00080000L
- #define GCP_MAXEXTENT 0x00100000L
- #define GCP_JUSTIFYIN 0x00200000L
- #define GCP_DISPLAYZWG 0x00400000L
- #define GCP_SYMSWAPOFF 0x00800000L
- #define GCP_NUMERICOVERRIDE 0x01000000L
- #define GCP_NEUTRALOVERRIDE 0x02000000L
- #define GCP_NUMERICSLATIN 0x04000000L
- #define GCP_NUMERICSLOCAL 0x08000000L
- #define GCPCLASS_LATIN 1
- #define GCPCLASS_HEBREW 2
- #define GCPCLASS_ARABIC 2
- #define GCPCLASS_NEUTRAL 3
- #define GCPCLASS_LOCALNUMBER 4
- #define GCPCLASS_LATINNUMBER 5
- #define GCPCLASS_LATINNUMERICTERMINATOR 6
- #define GCPCLASS_LATINNUMERICSEPARATOR 7
- #define GCPCLASS_NUMERICSEPARATOR 8
- #define GCPCLASS_PREBOUNDLTR 0x80
- #define GCPCLASS_PREBOUNDRTL 0x40
- #define GCPCLASS_POSTBOUNDLTR 0x20
- #define GCPCLASS_POSTBOUNDRTL 0x10
- #define GCPGLYPH_LINKBEFORE 0x8000
- #define GCPGLYPH_LINKAFTER 0x4000
- typedef struct tagGCP_RESULTSA
- {
- DWORD lStructSize;
- LPSTR lpOutString;
- UINT FAR *lpOrder;
- int FAR *lpDx;
- int FAR *lpCaretPos;
- LPSTR lpClass;
- LPWSTR lpGlyphs;
- UINT nGlyphs;
- int nMaxFit;
- } GCP_RESULTSA, FAR* LPGCP_RESULTSA;
- typedef struct tagGCP_RESULTSW
- {
- DWORD lStructSize;
- LPWSTR lpOutString;
- UINT FAR *lpOrder;
- int FAR *lpDx;
- int FAR *lpCaretPos;
- LPSTR lpClass;
- LPWSTR lpGlyphs;
- UINT nGlyphs;
- int nMaxFit;
- } GCP_RESULTSW, FAR* LPGCP_RESULTSW;
- #ifdef UNICODE
- typedef GCP_RESULTSW GCP_RESULTS;
- typedef LPGCP_RESULTSW LPGCP_RESULTS;
- #else
- typedef GCP_RESULTSA GCP_RESULTS;
- typedef LPGCP_RESULTSA LPGCP_RESULTS;
- #endif // UNICODE
- #endif /* WINVER >= 0x0400 */
- typedef struct _RASTERIZER_STATUS {
- short nSize;
- short wFlags;
- short nLanguageID;
- } RASTERIZER_STATUS, FAR *LPRASTERIZER_STATUS;
- /* bits defined in wFlags of RASTERIZER_STATUS */
- #define TT_AVAILABLE 0x0001
- #define TT_ENABLED 0x0002
- /* Pixel format descriptor */
- typedef struct tagPIXELFORMATDESCRIPTOR
- {
- WORD nSize;
- WORD nVersion;
- DWORD dwFlags;
- BYTE iPixelType;
- BYTE cColorBits;
- BYTE cRedBits;
- BYTE cRedShift;
- BYTE cGreenBits;
- BYTE cGreenShift;
- BYTE cBlueBits;
- BYTE cBlueShift;
- BYTE cAlphaBits;
- BYTE cAlphaShift;
- BYTE cAccumBits;
- BYTE cAccumRedBits;
- BYTE cAccumGreenBits;
- BYTE cAccumBlueBits;
- BYTE cAccumAlphaBits;
- BYTE cDepthBits;
- BYTE cStencilBits;
- BYTE cAuxBuffers;
- BYTE iLayerType;
- BYTE bReserved;
- DWORD dwLayerMask;
- DWORD dwVisibleMask;
- DWORD dwDamageMask;
- } PIXELFORMATDESCRIPTOR, *PPIXELFORMATDESCRIPTOR, FAR *LPPIXELFORMATDESCRIPTOR;
- /* pixel types */
- #define PFD_TYPE_RGBA 0
- #define PFD_TYPE_COLORINDEX 1
- /* layer types */
- #define PFD_MAIN_PLANE 0
- #define PFD_OVERLAY_PLANE 1
- #define PFD_UNDERLAY_PLANE (-1)
- /* PIXELFORMATDESCRIPTOR flags */
- #define PFD_DOUBLEBUFFER 0x00000001
- #define PFD_STEREO 0x00000002
- #define PFD_DRAW_TO_WINDOW 0x00000004
- #define PFD_DRAW_TO_BITMAP 0x00000008
- #define PFD_SUPPORT_GDI 0x00000010
- #define PFD_SUPPORT_OPENGL 0x00000020
- #define PFD_GENERIC_FORMAT 0x00000040
- #define PFD_NEED_PALETTE 0x00000080
- #define PFD_NEED_SYSTEM_PALETTE 0x00000100
- #define PFD_SWAP_EXCHANGE 0x00000200
- #define PFD_SWAP_COPY 0x00000400
- #define PFD_SWAP_LAYER_BUFFERS 0x00000800
- #define PFD_GENERIC_ACCELERATED 0x00001000
- #define PFD_SUPPORT_DIRECTDRAW 0x00002000
- /* PIXELFORMATDESCRIPTOR flags for use in ChoosePixelFormat only */
- #define PFD_DEPTH_DONTCARE 0x20000000
- #define PFD_DOUBLEBUFFER_DONTCARE 0x40000000
- #define PFD_STEREO_DONTCARE 0x80000000
- #ifdef STRICT
- #if !defined(NOTEXTMETRIC)
- typedef int (CALLBACK* OLDFONTENUMPROCA)(CONST LOGFONTA *, CONST TEXTMETRICA *, DWORD, LPARAM);
- typedef int (CALLBACK* OLDFONTENUMPROCW)(CONST LOGFONTW *, CONST TEXTMETRICW *, DWORD, LPARAM);
- #ifdef UNICODE
- #define OLDFONTENUMPROC OLDFONTENUMPROCW
- #else
- #define OLDFONTENUMPROC OLDFONTENUMPROCA
- #endif // !UNICODE
- #else
- typedef int (CALLBACK* OLDFONTENUMPROCA)(CONST LOGFONTA *, CONST VOID *, DWORD, LPARAM);
- typedef int (CALLBACK* OLDFONTENUMPROCW)(CONST LOGFONTW *, CONST VOID *, DWORD, LPARAM);
- #ifdef UNICODE
- #define OLDFONTENUMPROC OLDFONTENUMPROCW
- #else
- #define OLDFONTENUMPROC OLDFONTENUMPROCA
- #endif // !UNICODE
- #endif
- typedef OLDFONTENUMPROCA FONTENUMPROCA;
- typedef OLDFONTENUMPROCW FONTENUMPROCW;
- #ifdef UNICODE
- typedef FONTENUMPROCW FONTENUMPROC;
- #else
- typedef FONTENUMPROCA FONTENUMPROC;
- #endif // UNICODE
- typedef int (CALLBACK* GOBJENUMPROC)(LPVOID, LPARAM);
- typedef VOID (CALLBACK* LINEDDAPROC)(int, int, LPARAM);
- #else
- typedef FARPROC OLDFONTENUMPROC;
- typedef FARPROC FONTENUMPROCA;
- typedef FARPROC FONTENUMPROCW;
- #ifdef UNICODE
- typedef FONTENUMPROCW FONTENUMPROC;
- #else
- typedef FONTENUMPROCA FONTENUMPROC;
- #endif // UNICODE
- typedef FARPROC GOBJENUMPROC;
- typedef FARPROC LINEDDAPROC;
- #endif
- WINGDIAPI int WINAPI AddFontResourceA(IN LPCSTR);
- WINGDIAPI int WINAPI AddFontResourceW(IN LPCWSTR);
- #ifdef UNICODE
- #define AddFontResource AddFontResourceW
- #else
- #define AddFontResource AddFontResourceA
- #endif // !UNICODE
- WINGDIAPI BOOL WINAPI AnimatePalette( IN HPALETTE, IN UINT, IN UINT, IN CONST PALETTEENTRY *);
- WINGDIAPI BOOL WINAPI Arc( IN HDC, IN int, IN int, IN int, IN int, IN int, IN int, IN int, IN int);
- WINGDIAPI BOOL WINAPI BitBlt( IN HDC, IN int, IN int, IN int, IN int, IN HDC, IN int, IN int, IN DWORD);
- WINGDIAPI BOOL WINAPI CancelDC( IN HDC);
- WINGDIAPI BOOL WINAPI Chord( IN HDC, IN int, IN int, IN int, IN int, IN int, IN int, IN int, IN int);
- WINGDIAPI int WINAPI ChoosePixelFormat( IN HDC, IN CONST PIXELFORMATDESCRIPTOR *);
- WINGDIAPI HMETAFILE WINAPI CloseMetaFile( IN HDC);
- WINGDIAPI int WINAPI CombineRgn( IN HRGN, IN HRGN, IN HRGN, IN int);
- WINGDIAPI HMETAFILE WINAPI CopyMetaFileA( IN HMETAFILE, IN LPCSTR);
- WINGDIAPI HMETAFILE WINAPI CopyMetaFileW( IN HMETAFILE, IN LPCWSTR);
- #ifdef UNICODE
- #define CopyMetaFile CopyMetaFileW
- #else
- #define CopyMetaFile CopyMetaFileA
- #endif // !UNICODE
- WINGDIAPI HBITMAP WINAPI CreateBitmap( IN int, IN int, IN UINT, IN UINT, IN CONST VOID *);
- WINGDIAPI HBITMAP WINAPI CreateBitmapIndirect( IN CONST BITMAP *);
- WINGDIAPI HBRUSH WINAPI CreateBrushIndirect( IN CONST LOGBRUSH *);
- WINGDIAPI HBITMAP WINAPI CreateCompatibleBitmap( IN HDC, IN int, IN int);
- WINGDIAPI HBITMAP WINAPI CreateDiscardableBitmap( IN HDC, IN int, IN int);
- WINGDIAPI HDC WINAPI CreateCompatibleDC( IN HDC);
- WINGDIAPI HDC WINAPI CreateDCA( IN LPCSTR, IN LPCSTR, IN LPCSTR, IN CONST DEVMODEA *);
- WINGDIAPI HDC WINAPI CreateDCW( IN LPCWSTR, IN LPCWSTR, IN LPCWSTR, IN CONST DEVMODEW *);
- #ifdef UNICODE
- #define CreateDC CreateDCW
- #else
- #define CreateDC CreateDCA
- #endif // !UNICODE
- WINGDIAPI HBITMAP WINAPI CreateDIBitmap( IN HDC, IN CONST BITMAPINFOHEADER *, IN DWORD, IN CONST VOID *, IN CONST BITMAPINFO *, IN UINT);
- WINGDIAPI HBRUSH WINAPI CreateDIBPatternBrush( IN HGLOBAL, IN UINT);
- WINGDIAPI HBRUSH WINAPI CreateDIBPatternBrushPt( IN CONST VOID *, IN UINT);
- WINGDIAPI HRGN WINAPI CreateEllipticRgn( IN int, IN int, IN int, IN int);
- WINGDIAPI HRGN WINAPI CreateEllipticRgnIndirect( IN CONST RECT *);
- WINGDIAPI HFONT WINAPI CreateFontIndirectA( IN CONST LOGFONTA *);
- WINGDIAPI HFONT WINAPI CreateFontIndirectW( IN CONST LOGFONTW *);
- #ifdef UNICODE
- #define CreateFontIndirect CreateFontIndirectW
- #else
- #define CreateFontIndirect CreateFontIndirectA
- #endif // !UNICODE
- WINGDIAPI HFONT WINAPI CreateFontA( IN int, IN int, IN int, IN int, IN int, IN DWORD,
- IN DWORD, IN DWORD, IN DWORD, IN DWORD, IN DWORD,
- IN DWORD, IN DWORD, IN LPCSTR);
- WINGDIAPI HFONT WINAPI CreateFontW( IN int, IN int, IN int, IN int, IN int, IN DWORD,
- IN DWORD, IN DWORD, IN DWORD, IN DWORD, IN DWORD,
- IN DWORD, IN DWORD, IN LPCWSTR);
- #ifdef UNICODE
- #define CreateFont CreateFontW
- #else
- #define CreateFont CreateFontA
- #endif // !UNICODE
- WINGDIAPI HBRUSH WINAPI CreateHatchBrush( IN int, IN COLORREF);
- WINGDIAPI HDC WINAPI CreateICA( IN LPCSTR, IN LPCSTR, IN LPCSTR, IN CONST DEVMODEA *);
- WINGDIAPI HDC WINAPI CreateICW( IN LPCWSTR, IN LPCWSTR, IN LPCWSTR, IN CONST DEVMODEW *);
- #ifdef UNICODE
- #define CreateIC CreateICW
- #else
- #define CreateIC CreateICA
- #endif // !UNICODE
- WINGDIAPI HDC WINAPI CreateMetaFileA( IN LPCSTR);
- WINGDIAPI HDC WINAPI CreateMetaFileW( IN LPCWSTR);
- #ifdef UNICODE
- #define CreateMetaFile CreateMetaFileW
- #else
- #define CreateMetaFile CreateMetaFileA
- #endif // !UNICODE
- WINGDIAPI HPALETTE WINAPI CreatePalette( IN CONST LOGPALETTE *);
- WINGDIAPI HPEN WINAPI CreatePen( IN int, IN int, IN COLORREF);
- WINGDIAPI HPEN WINAPI CreatePenIndirect( IN CONST LOGPEN *);
- WINGDIAPI HRGN WINAPI CreatePolyPolygonRgn( IN CONST POINT *, IN CONST INT *, IN int, IN int);
- WINGDIAPI HBRUSH WINAPI CreatePatternBrush( IN HBITMAP);
- WINGDIAPI HRGN WINAPI CreateRectRgn( IN int, IN int, IN int, IN int);
- WINGDIAPI HRGN WINAPI CreateRectRgnIndirect( IN CONST RECT *);
- WINGDIAPI HRGN WINAPI CreateRoundRectRgn( IN int, IN int, IN int, IN int, IN int, IN int);
- WINGDIAPI BOOL WINAPI CreateScalableFontResourceA( IN DWORD, IN LPCSTR, IN LPCSTR, IN LPCSTR);
- WINGDIAPI BOOL WINAPI CreateScalableFontResourceW( IN DWORD, IN LPCWSTR, IN LPCWSTR, IN LPCWSTR);
- #ifdef UNICODE
- #define CreateScalableFontResource CreateScalableFontResourceW
- #else
- #define CreateScalableFontResource CreateScalableFontResourceA
- #endif // !UNICODE
- WINGDIAPI HBRUSH WINAPI CreateSolidBrush( IN COLORREF);
- WINGDIAPI BOOL WINAPI DeleteDC( IN HDC);
- WINGDIAPI BOOL WINAPI DeleteMetaFile( IN HMETAFILE);
- WINGDIAPI BOOL WINAPI DeleteObject( IN HGDIOBJ);
- WINGDIAPI int WINAPI DescribePixelFormat( IN HDC, IN int, IN UINT, OUT LPPIXELFORMATDESCRIPTOR);
- /* define types of pointers to ExtDeviceMode() and DeviceCapabilities()
- * functions for Win 3.1 compatibility
- */
- typedef UINT (CALLBACK* LPFNDEVMODE)(HWND, HMODULE, LPDEVMODE, LPSTR, LPSTR, LPDEVMODE, LPSTR, UINT);
- typedef DWORD (CALLBACK* LPFNDEVCAPS)(LPSTR, LPSTR, UINT, LPSTR, LPDEVMODE);
- /* mode selections for the device mode function */
- #define DM_UPDATE 1
- #define DM_COPY 2
- #define DM_PROMPT 4
- #define DM_MODIFY 8
- #define DM_IN_BUFFER DM_MODIFY
- #define DM_IN_PROMPT DM_PROMPT
- #define DM_OUT_BUFFER DM_COPY
- #define DM_OUT_DEFAULT DM_UPDATE
- /* device capabilities indices */
- #define DC_FIELDS 1
- #define DC_PAPERS 2
- #define DC_PAPERSIZE 3
- #define DC_MINEXTENT 4
- #define DC_MAXEXTENT 5
- #define DC_BINS 6
- #define DC_DUPLEX 7
- #define DC_SIZE 8
- #define DC_EXTRA 9
- #define DC_VERSION 10
- #define DC_DRIVER 11
- #define DC_BINNAMES 12
- #define DC_ENUMRESOLUTIONS 13
- #define DC_FILEDEPENDENCIES 14
- #define DC_TRUETYPE 15
- #define DC_PAPERNAMES 16
- #define DC_ORIENTATION 17
- #define DC_COPIES 18
- #if(WINVER >= 0x0400)
- #define DC_BINADJUST 19
- #define DC_EMF_COMPLIANT 20
- #define DC_DATATYPE_PRODUCED 21
- #define DC_COLLATE 22
- #define DC_MANUFACTURER 23
- #define DC_MODEL 24
- #endif /* WINVER >= 0x0400 */
- #if(WINVER >= 0x0500)
- #define DC_PERSONALITY 25
- #define DC_PRINTRATE 26
- #define DC_PRINTRATEUNIT 27
- #define PRINTRATEUNIT_PPM 1
- #define PRINTRATEUNIT_CPS 2
- #define PRINTRATEUNIT_LPM 3
- #define PRINTRATEUNIT_IPM 4
- #define DC_PRINTERMEM 28
- #define DC_MEDIAREADY 29
- #define DC_STAPLE 30
- #define DC_PRINTRATEPPM 31
- #define DC_COLORDEVICE 32
- #define DC_NUP 33
- #define DC_MEDIATYPENAMES 34
- #define DC_MEDIATYPES 35
- #endif /* WINVER >= 0x0500 */
- /* bit fields of the return value (DWORD) for DC_TRUETYPE */
- #define DCTT_BITMAP 0x0000001L
- #define DCTT_DOWNLOAD 0x0000002L
- #define DCTT_SUBDEV 0x0000004L
- #if(WINVER >= 0x0400)
- #define DCTT_DOWNLOAD_OUTLINE 0x0000008L
- /* return values for DC_BINADJUST */
- #define DCBA_FACEUPNONE 0x0000
- #define DCBA_FACEUPCENTER 0x0001
- #define DCBA_FACEUPLEFT 0x0002
- #define DCBA_FACEUPRIGHT 0x0003
- #define DCBA_FACEDOWNNONE 0x0100
- #define DCBA_FACEDOWNCENTER 0x0101
- #define DCBA_FACEDOWNLEFT 0x0102
- #define DCBA_FACEDOWNRIGHT 0x0103
- #endif /* WINVER >= 0x0400 */
- WINSPOOLAPI int WINAPI DeviceCapabilitiesA( IN LPCSTR, IN LPCSTR, IN WORD,
- OUT LPSTR, IN CONST DEVMODEA *);
- WINSPOOLAPI int WINAPI DeviceCapabilitiesW( IN LPCWSTR, IN LPCWSTR, IN WORD,
- OUT LPWSTR, IN CONST DEVMODEW *);
- #ifdef UNICODE
- #define DeviceCapabilities DeviceCapabilitiesW
- #else
- #define DeviceCapabilities DeviceCapabilitiesA
- #endif // !UNICODE
- WINGDIAPI int WINAPI DrawEscape( IN HDC, IN int, IN int, IN LPCSTR);
- WINGDIAPI BOOL WINAPI Ellipse( IN HDC, IN int, IN int, IN int, IN int);
- #if(WINVER >= 0x0400)
- WINGDIAPI int WINAPI EnumFontFamiliesExA( IN HDC, IN LPLOGFONTA, IN FONTENUMPROCA, IN LPARAM, IN DWORD);
- WINGDIAPI int WINAPI EnumFontFamiliesExW( IN HDC, IN LPLOGFONTW, IN FONTENUMPROCW, IN LPARAM, IN DWORD);
- #ifdef UNICODE
- #define EnumFontFamiliesEx EnumFontFamiliesExW
- #else
- #define EnumFontFamiliesEx EnumFontFamiliesExA
- #endif // !UNICODE
- #endif /* WINVER >= 0x0400 */
- WINGDIAPI int WINAPI EnumFontFamiliesA( IN HDC, IN LPCSTR, IN FONTENUMPROCA, IN LPARAM);
- WINGDIAPI int WINAPI EnumFontFamiliesW( IN HDC, IN LPCWSTR, IN FONTENUMPROCW, IN LPARAM);
- #ifdef UNICODE
- #define EnumFontFamilies EnumFontFamiliesW
- #else
- #define EnumFontFamilies EnumFontFamiliesA
- #endif // !UNICODE
- WINGDIAPI int WINAPI EnumFontsA( IN HDC, IN LPCSTR, IN FONTENUMPROCA, IN LPARAM);
- WINGDIAPI int WINAPI EnumFontsW( IN HDC, IN LPCWSTR, IN FONTENUMPROCW, IN LPARAM);
- #ifdef UNICODE
- #define EnumFonts EnumFontsW
- #else
- #define EnumFonts EnumFontsA
- #endif // !UNICODE
- #ifdef STRICT
- WINGDIAPI int WINAPI EnumObjects( IN HDC, IN int, IN GOBJENUMPROC, IN LPARAM);
- #else
- WINGDIAPI int WINAPI EnumObjects( IN HDC, IN int, IN GOBJENUMPROC, IN LPVOID);
- #endif
- WINGDIAPI BOOL WINAPI EqualRgn( IN HRGN, IN HRGN);
- WINGDIAPI int WINAPI Escape( IN HDC, IN int, IN int, IN LPCSTR, OUT LPVOID);
- WINGDIAPI int WINAPI ExtEscape( IN HDC, IN int, IN int, IN LPCSTR, IN int, OUT LPSTR);
- WINGDIAPI int WINAPI ExcludeClipRect( IN HDC, IN int, IN int, IN int, IN int);
- WINGDIAPI HRGN WINAPI ExtCreateRegion( IN CONST XFORM *, IN DWORD, IN CONST RGNDATA *);
- WINGDIAPI BOOL WINAPI ExtFloodFill( IN HDC, IN int, IN int, IN COLORREF, IN UINT);
- WINGDIAPI BOOL WINAPI FillRgn( IN HDC, IN HRGN, IN HBRUSH);
- WINGDIAPI BOOL WINAPI FloodFill( IN HDC, IN int, IN int, IN COLORREF);
- WINGDIAPI BOOL WINAPI FrameRgn( IN HDC, IN HRGN, IN HBRUSH, IN int, IN int);
- WINGDIAPI int WINAPI GetROP2( IN HDC);
- WINGDIAPI BOOL WINAPI GetAspectRatioFilterEx( IN HDC, OUT LPSIZE);
- WINGDIAPI COLORREF WINAPI GetBkColor( IN HDC);
- #if (_WIN32_WINNT >= 0x0500)
- WINGDIAPI COLORREF WINAPI GetDCBrushColor( IN HDC);
- WINGDIAPI COLORREF WINAPI GetDCPenColor( IN HDC);
- #endif
- WINGDIAPI int WINAPI GetBkMode( IN HDC);
- WINGDIAPI LONG WINAPI GetBitmapBits( IN HBITMAP, IN LONG, OUT LPVOID);
- WINGDIAPI BOOL WINAPI GetBitmapDimensionEx( IN HBITMAP, OUT LPSIZE);
- WINGDIAPI UINT WINAPI GetBoundsRect( IN HDC, OUT LPRECT, IN UINT);
- WINGDIAPI BOOL WINAPI GetBrushOrgEx( IN HDC, OUT LPPOINT);
- WINGDIAPI BOOL WINAPI GetCharWidthA( IN HDC, IN UINT, IN UINT, OUT LPINT);
- WINGDIAPI BOOL WINAPI GetCharWidthW( IN HDC, IN UINT, IN UINT, OUT LPINT);
- #ifdef UNICODE
- #define GetCharWidth GetCharWidthW
- #else
- #define GetCharWidth GetCharWidthA
- #endif // !UNICODE
- WINGDIAPI BOOL WINAPI GetCharWidth32A( IN HDC, IN UINT, IN UINT, OUT LPINT);
- WINGDIAPI BOOL WINAPI GetCharWidth32W( IN HDC, IN UINT, IN UINT, OUT LPINT);
- #ifdef UNICODE
- #define GetCharWidth32 GetCharWidth32W
- #else
- #define GetCharWidth32 GetCharWidth32A
- #endif // !UNICODE
- WINGDIAPI BOOL APIENTRY GetCharWidthFloatA( IN HDC, IN UINT, IN UINT, OUT PFLOAT);
- WINGDIAPI BOOL APIENTRY GetCharWidthFloatW( IN HDC, IN UINT, IN UINT, OUT PFLOAT);
- #ifdef UNICODE
- #define GetCharWidthFloat GetCharWidthFloatW
- #else
- #define GetCharWidthFloat GetCharWidthFloatA
- #endif // !UNICODE
- WINGDIAPI BOOL APIENTRY GetCharABCWidthsA( IN HDC, IN UINT, IN UINT, OUT LPABC);
- WINGDIAPI BOOL APIENTRY GetCharABCWidthsW( IN HDC, IN UINT, IN UINT, OUT LPABC);
- #ifdef UNICODE
- #define GetCharABCWidths GetCharABCWidthsW
- #else
- #define GetCharABCWidths GetCharABCWidthsA
- #endif // !UNICODE
- WINGDIAPI BOOL APIENTRY GetCharABCWidthsFloatA( IN HDC, IN UINT, IN UINT, OUT LPABCFLOAT);
- WINGDIAPI BOOL APIENTRY GetCharABCWidthsFloatW( IN HDC, IN UINT, IN UINT, OUT LPABCFLOAT);
- #ifdef UNICODE
- #define GetCharABCWidthsFloat GetCharABCWidthsFloatW
- #else
- #define GetCharABCWidthsFloat GetCharABCWidthsFloatA
- #endif // !UNICODE
- WINGDIAPI int WINAPI GetClipBox( IN HDC, OUT LPRECT);
- WINGDIAPI int WINAPI GetClipRgn( IN HDC, IN HRGN);
- WINGDIAPI int WINAPI GetMetaRgn( IN HDC, IN HRGN);
- WINGDIAPI HGDIOBJ WINAPI GetCurrentObject( IN HDC, IN UINT);
- WINGDIAPI BOOL WINAPI GetCurrentPositionEx( IN HDC, OUT LPPOINT);
- WINGDIAPI int WINAPI GetDeviceCaps( IN HDC, IN int);
- WINGDIAPI int WINAPI GetDIBits( IN HDC, IN HBITMAP, IN UINT, IN UINT, OUT LPVOID, IN OUT LPBITMAPINFO, IN UINT);
- WINGDIAPI DWORD WINAPI GetFontData( IN HDC, IN DWORD, IN DWORD, OUT LPVOID, IN DWORD);
- WINGDIAPI DWORD WINAPI GetGlyphOutlineA( IN HDC, IN UINT, IN UINT, OUT LPGLYPHMETRICS, IN DWORD, OUT LPVOID, IN CONST MAT2 *);
- WINGDIAPI DWORD WINAPI GetGlyphOutlineW( IN HDC, IN UINT, IN UINT, OUT LPGLYPHMETRICS, IN DWORD, OUT LPVOID, IN CONST MAT2 *);
- #ifdef UNICODE
- #define GetGlyphOutline GetGlyphOutlineW
- #else
- #define GetGlyphOutline GetGlyphOutlineA
- #endif // !UNICODE
- WINGDIAPI int WINAPI GetGraphicsMode( IN HDC);
- WINGDIAPI int WINAPI GetMapMode( IN HDC);
- WINGDIAPI UINT WINAPI GetMetaFileBitsEx( IN HMETAFILE, IN UINT, OUT LPVOID);
- WINGDIAPI HMETAFILE WINAPI GetMetaFileA( IN LPCSTR);
- WINGDIAPI HMETAFILE WINAPI GetMetaFileW( IN LPCWSTR);
- #ifdef UNICODE
- #define GetMetaFile GetMetaFileW
- #else
- #define GetMetaFile GetMetaFileA
- #endif // !UNICODE
- WINGDIAPI COLORREF WINAPI GetNearestColor( IN HDC, IN COLORREF);
- WINGDIAPI UINT WINAPI GetNearestPaletteIndex( IN HPALETTE, IN COLORREF);
- WINGDIAPI DWORD WINAPI GetObjectType( IN HGDIOBJ h);
- #ifndef NOTEXTMETRIC
- WINGDIAPI UINT APIENTRY GetOutlineTextMetricsA( IN HDC, IN UINT, OUT LPOUTLINETEXTMETRICA);
- WINGDIAPI UINT APIENTRY GetOutlineTextMetricsW( IN HDC, IN UINT, OUT LPOUTLINETEXTMETRICW);
- #ifdef UNICODE
- #define GetOutlineTextMetrics GetOutlineTextMetricsW
- #else
- #define GetOutlineTextMetrics GetOutlineTextMetricsA
- #endif // !UNICODE
- #endif /* NOTEXTMETRIC */
- WINGDIAPI UINT WINAPI GetPaletteEntries( IN HPALETTE, IN UINT, IN UINT, OUT LPPALETTEENTRY);
- WINGDIAPI COLORREF WINAPI GetPixel( IN HDC, IN int, IN int);
- WINGDIAPI int WINAPI GetPixelFormat( IN HDC);
- WINGDIAPI int WINAPI GetPolyFillMode( IN HDC);
- WINGDIAPI BOOL WINAPI GetRasterizerCaps( OUT LPRASTERIZER_STATUS, IN UINT);
- WINGDIAPI int WINAPI GetRandomRgn (IN HDC, IN HRGN, IN INT);
- WINGDIAPI DWORD WINAPI GetRegionData( IN HRGN, IN DWORD, OUT LPRGNDATA);
- WINGDIAPI int WINAPI GetRgnBox( IN HRGN, OUT LPRECT);
- WINGDIAPI HGDIOBJ WINAPI GetStockObject( IN int);
- WINGDIAPI int WINAPI GetStretchBltMode( IN HDC);
- WINGDIAPI UINT WINAPI GetSystemPaletteEntries( IN HDC, IN UINT, IN UINT, OUT LPPALETTEENTRY);
- WINGDIAPI UINT WINAPI GetSystemPaletteUse( IN HDC);
- WINGDIAPI int WINAPI GetTextCharacterExtra( IN HDC);
- WINGDIAPI UINT WINAPI GetTextAlign( IN HDC);
- WINGDIAPI COLORREF WINAPI GetTextColor( IN HDC);
- WINGDIAPI BOOL APIENTRY GetTextExtentPointA(
- IN HDC,
- IN LPCSTR,
- IN int,
- OUT LPSIZE
- );
- WINGDIAPI BOOL APIENTRY GetTextExtentPointW(
- IN HDC,
- IN LPCWSTR,
- IN int,
- OUT LPSIZE
- );
- #ifdef UNICODE
- #define GetTextExtentPoint GetTextExtentPointW
- #else
- #define GetTextExtentPoint GetTextExtentPointA
- #endif // !UNICODE
- WINGDIAPI BOOL APIENTRY GetTextExtentPoint32A(
- IN HDC,
- IN LPCSTR,
- IN int,
- OUT LPSIZE
- );
- WINGDIAPI BOOL APIENTRY GetTextExtentPoint32W(
- IN HDC,
- IN LPCWSTR,
- IN int,
- OUT LPSIZE
- );
- #ifdef UNICODE
- #define GetTextExtentPoint32 GetTextExtentPoint32W
- #else
- #define GetTextExtentPoint32 GetTextExtentPoint32A
- #endif // !UNICODE
- WINGDIAPI BOOL APIENTRY GetTextExtentExPointA(
- IN HDC,
- IN LPCSTR,
- IN int,
- IN int,
- OUT LPINT,
- OUT LPINT,
- OUT LPSIZE
- );
- WINGDIAPI BOOL APIENTRY GetTextExtentExPointW(
- IN HDC,
- IN LPCWSTR,
- IN int,
- IN int,
- OUT LPINT,
- OUT LPINT,
- OUT LPSIZE
- );
- #ifdef UNICODE
- #define GetTextExtentExPoint GetTextExtentExPointW
- #else
- #define GetTextExtentExPoint GetTextExtentExPointA
- #endif // !UNICODE
- #if(WINVER >= 0x0400)
- WINGDIAPI int WINAPI GetTextCharset( IN HDC hdc);
- WINGDIAPI int WINAPI GetTextCharsetInfo( IN HDC hdc, OUT LPFONTSIGNATURE lpSig, IN DWORD dwFlags);
- WINGDIAPI BOOL WINAPI TranslateCharsetInfo( IN OUT DWORD FAR *lpSrc, OUT LPCHARSETINFO lpCs, IN DWORD dwFlags);
- WINGDIAPI DWORD WINAPI GetFontLanguageInfo( IN HDC );
- WINGDIAPI DWORD WINAPI GetCharacterPlacementA( IN HDC, IN LPCSTR, IN int, IN int, IN OUT LPGCP_RESULTSA, IN DWORD);
- WINGDIAPI DWORD WINAPI GetCharacterPlacementW( IN HDC, IN LPCWSTR, IN int, IN int, IN OUT LPGCP_RESULTSW, IN DWORD);
- #ifdef UNICODE
- #define GetCharacterPlacement GetCharacterPlacementW
- #else
- #define GetCharacterPlacement GetCharacterPlacementA
- #endif // !UNICODE
- #endif /* WINVER >= 0x0400 */
- #if (_WIN32_WINNT >= 0x0500)
- typedef struct tagWCRANGE
- {
- WCHAR wcLow;
- USHORT cGlyphs;
- } WCRANGE, *PWCRANGE,FAR *LPWCRANGE;
- typedef struct tagGLYPHSET
- {
- DWORD cbThis;
- DWORD flAccel;
- DWORD cGlyphsSupported;
- DWORD cRanges;
- WCRANGE ranges[1];
- } GLYPHSET, *PGLYPHSET, FAR *LPGLYPHSET;
- /* flAccel flags for the GLYPHSET structure above */
- #define GS_8BIT_INDICES 0x00000001
- /* flags for GetGlyphIndices */
- #define GGI_MARK_NONEXISTING_GLYPHS 0X0001
- WINGDIAPI DWORD WINAPI GetFontUnicodeRanges( IN HDC, OUT LPGLYPHSET);
- WINGDIAPI DWORD WINAPI GetGlyphIndicesA( IN HDC, IN LPCSTR, IN int, OUT LPWORD, IN DWORD);
- WINGDIAPI DWORD WINAPI GetGlyphIndicesW( IN HDC, IN LPCWSTR, IN int, OUT LPWORD, IN DWORD);
- #ifdef UNICODE
- #define GetGlyphIndices GetGlyphIndicesW
- #else
- #define GetGlyphIndices GetGlyphIndicesA
- #endif // !UNICODE
- WINGDIAPI BOOL WINAPI GetTextExtentPointI( IN HDC, IN LPWORD, IN int, OUT LPSIZE);
- WINGDIAPI BOOL WINAPI GetTextExtentExPointI( IN HDC, IN LPWORD, IN int, IN int, OUT LPINT, OUT LPINT, OUT LPSIZE);
- WINGDIAPI BOOL WINAPI GetCharWidthI( IN HDC, IN UINT, IN UINT, IN LPWORD, OUT LPINT);
- WINGDIAPI BOOL WINAPI GetCharABCWidthsI( IN HDC, IN UINT, IN UINT, IN LPWORD, OUT LPABC);
- #define STAMP_DESIGNVECTOR (0x8000000 + 'd' + ('v' << 8))
- #define STAMP_AXESLIST (0x8000000 + 'a' + ('l' << 8))
- #define MM_MAX_NUMAXES 16
- typedef struct tagDESIGNVECTOR
- {
- DWORD dvReserved;
- DWORD dvNumAxes;
- LONG dvValues[MM_MAX_NUMAXES];
- } DESIGNVECTOR, *PDESIGNVECTOR, FAR *LPDESIGNVECTOR;
- WINGDIAPI int WINAPI AddFontResourceExA( IN LPCSTR, IN DWORD, IN PVOID);
- WINGDIAPI int WINAPI AddFontResourceExW( IN LPCWSTR, IN DWORD, IN PVOID);
- #ifdef UNICODE
- #define AddFontResourceEx AddFontResourceExW
- #else
- #define AddFontResourceEx AddFontResourceExA
- #endif // !UNICODE
- WINGDIAPI BOOL WINAPI RemoveFontResourceExA( IN LPCSTR, IN DWORD, IN PVOID);
- WINGDIAPI BOOL WINAPI RemoveFontResourceExW( IN LPCWSTR, IN DWORD, IN PVOID);
- #ifdef UNICODE
- #define RemoveFontResourceEx RemoveFontResourceExW
- #else
- #define RemoveFontResourceEx RemoveFontResourceExA
- #endif // !UNICODE
- WINGDIAPI HANDLE WINAPI AddFontMemResourceEx( IN PVOID, IN DWORD, IN PVOID , IN DWORD*);
- WINGDIAPI BOOL WINAPI RemoveFontMemResourceEx( IN HANDLE);
- #define FR_PRIVATE 0x10
- #define FR_NOT_ENUM 0x20
- // The actual size of the DESIGNVECTOR and ENUMLOGFONTEXDV structures
- // is determined by dvNumAxes,
- // MM_MAX_NUMAXES only detemines the maximal size allowed
- #define MM_MAX_AXES_NAMELEN 16
- typedef struct tagAXISINFOA
- {
- LONG axMinValue;
- LONG axMaxValue;
- BYTE axAxisName[MM_MAX_AXES_NAMELEN];
- } AXISINFOA, *PAXISINFOA, FAR *LPAXISINFOA;
- typedef struct tagAXISINFOW
- {
- LONG axMinValue;
- LONG axMaxValue;
- WCHAR axAxisName[MM_MAX_AXES_NAMELEN];
- } AXISINFOW, *PAXISINFOW, FAR *LPAXISINFOW;
- #ifdef UNICODE
- typedef AXISINFOW AXISINFO;
- typedef PAXISINFOW PAXISINFO;
- typedef LPAXISINFOW LPAXISINFO;
- #else
- typedef AXISINFOA AXISINFO;
- typedef PAXISINFOA PAXISINFO;
- typedef LPAXISINFOA LPAXISINFO;
- #endif // UNICODE
- typedef struct tagAXESLISTA
- {
- DWORD axlReserved;
- DWORD axlNumAxes;
- AXISINFOA axlAxisInfo[MM_MAX_NUMAXES];
- } AXESLISTA, *PAXESLISTA, FAR *LPAXESLISTA;
- typedef struct tagAXESLISTW
- {
- DWORD axlReserved;
- DWORD axlNumAxes;
- AXISINFOW axlAxisInfo[MM_MAX_NUMAXES];
- } AXESLISTW, *PAXESLISTW, FAR *LPAXESLISTW;
- #ifdef UNICODE
- typedef AXESLISTW AXESLIST;
- typedef PAXESLISTW PAXESLIST;
- typedef LPAXESLISTW LPAXESLIST;
- #else
- typedef AXESLISTA AXESLIST;
- typedef PAXESLISTA PAXESLIST;
- typedef LPAXESLISTA LPAXESLIST;
- #endif // UNICODE
- // The actual size of the AXESLIST and ENUMTEXTMETRIC structure is
- // determined by axlNumAxes,
- // MM_MAX_NUMAXES only detemines the maximal size allowed
- typedef struct tagENUMLOGFONTEXDVA
- {
- ENUMLOGFONTEXA elfEnumLogfontEx;
- DESIGNVECTOR elfDesignVector;
- } ENUMLOGFONTEXDVA, *PENUMLOGFONTEXDVA, FAR *LPENUMLOGFONTEXDVA;
- typedef struct tagENUMLOGFONTEXDVW
- {
- ENUMLOGFONTEXW elfEnumLogfontEx;
- DESIGNVECTOR elfDesignVector;
- } ENUMLOGFONTEXDVW, *PENUMLOGFONTEXDVW, FAR *LPENUMLOGFONTEXDVW;
- #ifdef UNICODE
- typedef ENUMLOGFONTEXDVW ENUMLOGFONTEXDV;
- typedef PENUMLOGFONTEXDVW PENUMLOGFONTEXDV;
- typedef LPENUMLOGFONTEXDVW LPENUMLOGFONTEXDV;
- #else
- typedef ENUMLOGFONTEXDVA ENUMLOGFONTEXDV;
- typedef PENUMLOGFONTEXDVA PENUMLOGFONTEXDV;
- typedef LPENUMLOGFONTEXDVA LPENUMLOGFONTEXDV;
- #endif // UNICODE
- WINGDIAPI HFONT WINAPI CreateFontIndirectExA( IN CONST ENUMLOGFONTEXDVA *);
- WINGDIAPI HFONT WINAPI CreateFontIndirectExW( IN CONST ENUMLOGFONTEXDVW *);
- #ifdef UNICODE
- #define CreateFontIndirectEx CreateFontIndirectExW
- #else
- #define CreateFontIndirectEx CreateFontIndirectExA
- #endif // !UNICODE
- #ifndef NOTEXTMETRIC
- typedef struct tagENUMTEXTMETRICA
- {
- NEWTEXTMETRICEXA etmNewTextMetricEx;
- AXESLISTA etmAxesList;
- } ENUMTEXTMETRICA, *PENUMTEXTMETRICA, FAR *LPENUMTEXTMETRICA;
- typedef struct tagENUMTEXTMETRICW
- {
- NEWTEXTMETRICEXW etmNewTextMetricEx;
- AXESLISTW etmAxesList;
- } ENUMTEXTMETRICW, *PENUMTEXTMETRICW, FAR *LPENUMTEXTMETRICW;
- #ifdef UNICODE
- typedef ENUMTEXTMETRICW ENUMTEXTMETRIC;
- typedef PENUMTEXTMETRICW PENUMTEXTMETRIC;
- typedef LPENUMTEXTMETRICW LPENUMTEXTMETRIC;
- #else
- typedef ENUMTEXTMETRICA ENUMTEXTMETRIC;
- typedef PENUMTEXTMETRICA PENUMTEXTMETRIC;
- typedef LPENUMTEXTMETRICA LPENUMTEXTMETRIC;
- #endif // UNICODE
- #endif /* NOTEXTMETRIC */
- #endif // (_WIN32_WINNT >= 0x0500)
- WINGDIAPI BOOL WINAPI GetViewportExtEx( IN HDC, OUT LPSIZE);
- WINGDIAPI BOOL WINAPI GetViewportOrgEx( IN HDC, OUT LPPOINT);
- WINGDIAPI BOOL WINAPI GetWindowExtEx( IN HDC, OUT LPSIZE);
- WINGDIAPI BOOL WINAPI GetWindowOrgEx( IN HDC, OUT LPPOINT);
- WINGDIAPI int WINAPI IntersectClipRect( IN HDC, IN int, IN int, IN int, IN int);
- WINGDIAPI BOOL WINAPI InvertRgn( IN HDC, IN HRGN);
- WINGDIAPI BOOL WINAPI LineDDA( IN int, IN int, IN int, IN int, IN LINEDDAPROC, IN LPARAM);
- WINGDIAPI BOOL WINAPI LineTo( IN HDC, IN int, IN int);
- WINGDIAPI BOOL WINAPI MaskBlt( IN HDC, IN int, IN int, IN int, IN int,
- IN HDC, IN int, IN int, IN HBITMAP, IN int, IN int, IN DWORD);
- WINGDIAPI BOOL WINAPI PlgBlt( IN HDC, IN CONST POINT *, IN HDC, IN int, IN int, IN int,
- IN int, IN HBITMAP, IN int, IN int);
- WINGDIAPI int WINAPI OffsetClipRgn(IN HDC, IN int, IN int);
- WINGDIAPI int WINAPI OffsetRgn(IN HRGN, IN int, IN int);
- WINGDIAPI BOOL WINAPI PatBlt(IN HDC, IN int, IN int, IN int, IN int, IN DWORD);
- WINGDIAPI BOOL WINAPI Pie(IN HDC, IN int, IN int, IN int, IN int, IN int, IN int, IN int, IN int);
- WINGDIAPI BOOL WINAPI PlayMetaFile(IN HDC, IN HMETAFILE);
- WINGDIAPI BOOL WINAPI PaintRgn(IN HDC, IN HRGN);
- WINGDIAPI BOOL WINAPI PolyPolygon(IN HDC, IN CONST POINT *, IN CONST INT *, IN int);
- WINGDIAPI BOOL WINAPI PtInRegion(IN HRGN, IN int, IN int);
- WINGDIAPI BOOL WINAPI PtVisible(IN HDC, IN int, IN int);
- WINGDIAPI BOOL WINAPI RectInRegion(IN HRGN, IN CONST RECT *);
- WINGDIAPI BOOL WINAPI RectVisible(IN HDC, IN CONST RECT *);
- WINGDIAPI BOOL WINAPI Rectangle(IN HDC, IN int, IN int, IN int, IN int);
- WINGDIAPI BOOL WINAPI RestoreDC(IN HDC, IN int);
- WINGDIAPI HDC WINAPI ResetDCA(IN HDC, IN CONST DEVMODEA *);
- WINGDIAPI HDC WINAPI ResetDCW(IN HDC, IN CONST DEVMODEW *);
- #ifdef UNICODE
- #define ResetDC ResetDCW
- #else
- #define ResetDC ResetDCA
- #endif // !UNICODE
- WINGDIAPI UINT WINAPI RealizePalette(IN HDC);
- WINGDIAPI BOOL WINAPI RemoveFontResourceA(IN LPCSTR);
- WINGDIAPI BOOL WINAPI RemoveFontResourceW(IN LPCWSTR);
- #ifdef UNICODE
- #define RemoveFontResource RemoveFontResourceW
- #else
- #define RemoveFontResource RemoveFontResourceA
- #endif // !UNICODE
- WINGDIAPI BOOL WINAPI RoundRect(IN HDC, IN int, IN int, IN int, IN int, IN int, IN int);
- WINGDIAPI BOOL WINAPI ResizePalette(IN HPALETTE, IN UINT);
- WINGDIAPI int WINAPI SaveDC(IN HDC);
- WINGDIAPI int WINAPI SelectClipRgn(IN HDC, IN HRGN);
- WINGDIAPI int WINAPI ExtSelectClipRgn(IN HDC, IN HRGN, IN int);
- WINGDIAPI int WINAPI SetMetaRgn(IN HDC);
- WINGDIAPI HGDIOBJ WINAPI SelectObject(IN HDC, IN HGDIOBJ);
- WINGDIAPI HPALETTE WINAPI SelectPalette(IN HDC, IN HPALETTE, IN BOOL);
- WINGDIAPI COLORREF WINAPI SetBkColor(IN HDC, IN COLORREF);
- #if (_WIN32_WINNT >= 0x0500)
- WINGDIAPI COLORREF WINAPI SetDCBrushColor(IN HDC, IN COLORREF);
- WINGDIAPI COLORREF WINAPI SetDCPenColor(IN HDC, IN COLORREF);
- #endif
- WINGDIAPI int WINAPI SetBkMode(IN HDC, IN int);
- WINGDIAPI LONG WINAPI SetBitmapBits(IN HBITMAP, IN DWORD, IN CONST VOID *);
- WINGDIAPI UINT WINAPI SetBoundsRect(IN HDC, IN CONST RECT *, IN UINT);
- WINGDIAPI int WINAPI SetDIBits(IN HDC, IN HBITMAP, IN UINT, IN UINT, IN CONST VOID *, IN CONST BITMAPINFO *, IN UINT);
- WINGDIAPI int WINAPI SetDIBitsToDevice(IN HDC, IN int, IN int, IN DWORD, IN DWORD, IN int,
- IN int, IN UINT, IN UINT, IN CONST VOID *, IN CONST BITMAPINFO *, IN UINT);
- WINGDIAPI DWORD WINAPI SetMapperFlags(IN HDC, IN DWORD);
- WINGDIAPI int WINAPI SetGraphicsMode(IN HDC hdc, IN int iMode);
- WINGDIAPI int WINAPI SetMapMode(IN HDC, IN int);
- #if(WINVER >= 0x0500)
- WINGDIAPI DWORD WINAPI SetLayout(IN HDC, IN DWORD);
- WINGDIAPI DWORD WINAPI GetLayout(IN HDC);
- #endif /* WINVER >= 0x0500 */
- WINGDIAPI HMETAFILE WINAPI SetMetaFileBitsEx(IN UINT, IN CONST BYTE *);
- WINGDIAPI UINT WINAPI SetPaletteEntries(IN HPALETTE, IN UINT, IN UINT, IN CONST PALETTEENTRY *);
- WINGDIAPI COLORREF WINAPI SetPixel(IN HDC, IN int, IN int, IN COLORREF);
- WINGDIAPI BOOL WINAPI SetPixelV(IN HDC, IN int, IN int, IN COLORREF);
- WINGDIAPI BOOL WINAPI SetPixelFormat(IN HDC, IN int, IN CONST PIXELFORMATDESCRIPTOR *);
- WINGDIAPI int WINAPI SetPolyFillMode(IN HDC, IN int);
- WINGDIAPI BOOL WINAPI StretchBlt(IN HDC, IN int, IN int, IN int, IN int, IN HDC, IN int, IN int, IN int, IN int, IN DWORD);
- WINGDIAPI BOOL WINAPI SetRectRgn(IN HRGN, IN int, IN int, IN int, IN int);
- WINGDIAPI int WINAPI StretchDIBits(IN HDC, IN int, IN int, IN int, IN int, IN int, IN int, IN int, IN int, IN CONST
- VOID *, IN CONST BITMAPINFO *, IN UINT, IN DWORD);
- WINGDIAPI int WINAPI SetROP2(IN HDC, IN int);
- WINGDIAPI int WINAPI SetStretchBltMode(IN HDC, IN int);
- WINGDIAPI UINT WINAPI SetSystemPaletteUse(IN HDC, IN UINT);
- WINGDIAPI int WINAPI SetTextCharacterExtra(IN HDC, IN int);
- WINGDIAPI COLORREF WINAPI SetTextColor(IN HDC, IN COLORREF);
- WINGDIAPI UINT WINAPI SetTextAlign(IN HDC, IN UINT);
- WINGDIAPI BOOL WINAPI SetTextJustification(IN HDC, IN int, IN int);
- WINGDIAPI BOOL WINAPI UpdateColors(IN HDC);
- #if (WINVER >= 0x0400)
- //
- // image blt
- //
- typedef USHORT COLOR16;
- typedef struct _TRIVERTEX
- {
- LONG x;
- LONG y;
- COLOR16 Red;
- COLOR16 Green;
- COLOR16 Blue;
- COLOR16 Alpha;
- }TRIVERTEX,*PTRIVERTEX,*LPTRIVERTEX;
- typedef struct _GRADIENT_TRIANGLE
- {
- ULONG Vertex1;
- ULONG Vertex2;
- ULONG Vertex3;
- } GRADIENT_TRIANGLE,*PGRADIENT_TRIANGLE,*LPGRADIENT_TRIANGLE;
- typedef struct _GRADIENT_RECT
- {
- ULONG UpperLeft;
- ULONG LowerRight;
- }GRADIENT_RECT,*PGRADIENT_RECT,*LPGRADIENT_RECT;
- typedef struct _BLENDFUNCTION
- {
- BYTE BlendOp;
- BYTE BlendFlags;
- BYTE SourceConstantAlpha;
- BYTE AlphaFormat;
- }BLENDFUNCTION,*PBLENDFUNCTION;
- //
- // currentlly defined blend function
- //
- #define AC_SRC_OVER 0x00
- //
- // alpha format flags
- //
- #define AC_SRC_ALPHA 0x01
- WINGDIAPI BOOL WINAPI AlphaBlend( IN HDC, IN int, IN int, IN int, IN int, IN HDC, IN int, IN int, IN int, IN int, IN BLENDFUNCTION);
- WINGDIAPI BOOL WINAPI TransparentBlt(IN HDC,IN int,IN int,IN int,IN int,IN HDC,IN int,IN int,IN int,IN int,IN UINT);
- //
- // gradient drawing modes
- //
- #define GRADIENT_FILL_RECT_H 0x00000000
- #define GRADIENT_FILL_RECT_V 0x00000001
- #define GRADIENT_FILL_TRIANGLE 0x00000002
- #define GRADIENT_FILL_OP_FLAG 0x000000ff
- WINGDIAPI BOOL WINAPI GradientFill( IN HDC, IN PTRIVERTEX, IN ULONG, IN PVOID, IN ULONG, IN ULONG);
- #endif
- #ifndef NOMETAFILE
- WINGDIAPI BOOL WINAPI PlayMetaFileRecord( IN HDC, IN LPHANDLETABLE, IN LPMETARECORD, IN UINT);
- typedef int (CALLBACK* MFENUMPROC)( IN HDC, IN HANDLETABLE FAR*, IN METARECORD FAR*, IN int, IN LPARAM);
- WINGDIAPI BOOL WINAPI EnumMetaFile( IN HDC, IN HMETAFILE, IN MFENUMPROC, IN LPARAM);
- typedef int (CALLBACK* ENHMFENUMPROC)(HDC, HANDLETABLE FAR*, CONST ENHMETARECORD *, int, LPARAM);
- // Enhanced Metafile Function Declarations
- WINGDIAPI HENHMETAFILE WINAPI CloseEnhMetaFile( IN HDC);
- WINGDIAPI HENHMETAFILE WINAPI CopyEnhMetaFileA( IN HENHMETAFILE, IN LPCSTR);
- WINGDIAPI HENHMETAFILE WINAPI CopyEnhMetaFileW( IN HENHMETAFILE, IN LPCWSTR);
- #ifdef UNICODE
- #define CopyEnhMetaFile CopyEnhMetaFileW
- #else
- #define CopyEnhMetaFile CopyEnhMetaFileA
- #endif // !UNICODE
- WINGDIAPI HDC WINAPI CreateEnhMetaFileA( IN HDC, IN LPCSTR, IN CONST RECT *, IN LPCSTR);
- WINGDIAPI HDC WINAPI CreateEnhMetaFileW( IN HDC, IN LPCWSTR, IN CONST RECT *, IN LPCWSTR);
- #ifdef UNICODE
- #define CreateEnhMetaFile CreateEnhMetaFileW
- #else
- #define CreateEnhMetaFile CreateEnhMetaFileA
- #endif // !UNICODE
- WINGDIAPI BOOL WINAPI DeleteEnhMetaFile( IN HENHMETAFILE);
- WINGDIAPI BOOL WINAPI EnumEnhMetaFile( IN HDC, IN HENHMETAFILE, IN ENHMFENUMPROC,
- IN LPVOID, IN CONST RECT *);
- WINGDIAPI HENHMETAFILE WINAPI GetEnhMetaFileA( IN LPCSTR);
- WINGDIAPI HENHMETAFILE WINAPI GetEnhMetaFileW( IN LPCWSTR);
- #ifdef UNICODE
- #define GetEnhMetaFile GetEnhMetaFileW
- #else
- #define GetEnhMetaFile GetEnhMetaFileA
- #endif // !UNICODE
- WINGDIAPI UINT WINAPI GetEnhMetaFileBits( IN HENHMETAFILE, IN UINT, OUT LPBYTE);
- WINGDIAPI UINT WINAPI GetEnhMetaFileDescriptionA( IN HENHMETAFILE, IN UINT, OUT LPSTR );
- WINGDIAPI UINT WINAPI GetEnhMetaFileDescriptionW( IN HENHMETAFILE, IN UINT, OUT LPWSTR );
- #ifdef UNICODE
- #define GetEnhMetaFileDescription GetEnhMetaFileDescriptionW
- #else
- #define GetEnhMetaFileDescription GetEnhMetaFileDescriptionA
- #endif // !UNICODE
- WINGDIAPI UINT WINAPI GetEnhMetaFileHeader( IN HENHMETAFILE, IN UINT, OUT LPENHMETAHEADER );
- WINGDIAPI UINT WINAPI GetEnhMetaFilePaletteEntries( IN HENHMETAFILE, IN UINT, OUT LPPALETTEENTRY );
- WINGDIAPI UINT WINAPI GetEnhMetaFilePixelFormat( IN HENHMETAFILE, IN UINT,
- OUT PIXELFORMATDESCRIPTOR *);
- WINGDIAPI UINT WINAPI GetWinMetaFileBits( IN HENHMETAFILE, IN UINT, OUT LPBYTE, IN INT, IN HDC);
- WINGDIAPI BOOL WINAPI PlayEnhMetaFile( IN HDC, IN HENHMETAFILE, IN CONST RECT *);
- WINGDIAPI BOOL WINAPI PlayEnhMetaFileRecord( IN HDC, IN LPHANDLETABLE, IN CONST ENHMETARECORD *, IN UINT);
- WINGDIAPI HENHMETAFILE WINAPI SetEnhMetaFileBits( IN UINT, IN CONST BYTE *);
- WINGDIAPI HENHMETAFILE WINAPI SetWinMetaFileBits( IN UINT, IN CONST BYTE *, IN HDC, IN CONST METAFILEPICT *);
- WINGDIAPI BOOL WINAPI GdiComment( IN HDC, IN UINT, IN CONST BYTE *);
- #endif /* NOMETAFILE */
- #ifndef NOTEXTMETRIC
- WINGDIAPI BOOL WINAPI GetTextMetricsA( IN HDC, OUT LPTEXTMETRICA);
- WINGDIAPI BOOL WINAPI GetTextMetricsW( IN HDC, OUT LPTEXTMETRICW);
- #ifdef UNICODE
- #define GetTextMetrics GetTextMetricsW
- #else
- #define GetTextMetrics GetTextMetricsA
- #endif // !UNICODE
- #endif
- /* new GDI */
- typedef struct tagDIBSECTION {
- BITMAP dsBm;
- BITMAPINFOHEADER dsBmih;
- DWORD dsBitfields[3];
- HANDLE dshSection;
- DWORD dsOffset;
- } DIBSECTION, FAR *LPDIBSECTION, *PDIBSECTION;
- WINGDIAPI BOOL WINAPI AngleArc( IN HDC, IN int, IN int, IN DWORD, IN FLOAT, IN FLOAT);
- WINGDIAPI BOOL WINAPI PolyPolyline( IN HDC, IN CONST POINT *, IN CONST DWORD *, IN DWORD);
- WINGDIAPI BOOL WINAPI GetWorldTransform( IN HDC, OUT LPXFORM);
- WINGDIAPI BOOL WINAPI SetWorldTransform( IN HDC, IN CONST XFORM *);
- WINGDIAPI BOOL WINAPI ModifyWorldTransform( IN HDC, IN CONST XFORM *, IN DWORD);
- WINGDIAPI BOOL WINAPI CombineTransform( OUT LPXFORM, IN CONST XFORM *, IN CONST XFORM *);
- WINGDIAPI HBITMAP WINAPI CreateDIBSection( IN HDC, IN CONST BITMAPINFO *, IN UINT, OUT VOID **, IN HANDLE, IN DWORD);
- WINGDIAPI UINT WINAPI GetDIBColorTable( IN HDC, IN UINT, IN UINT, OUT RGBQUAD *);
- WINGDIAPI UINT WINAPI SetDIBColorTable( IN HDC, IN UINT, IN UINT, IN CONST RGBQUAD *);
- /* Flags value for COLORADJUSTMENT */
- #define CA_NEGATIVE 0x0001
- #define CA_LOG_FILTER 0x0002
- /* IlluminantIndex values */
- #define ILLUMINANT_DEVICE_DEFAULT 0
- #define ILLUMINANT_A 1
- #define ILLUMINANT_B 2
- #define ILLUMINANT_C 3
- #define ILLUMINANT_D50 4
- #define ILLUMINANT_D55 5
- #define ILLUMINANT_D65 6
- #define ILLUMINANT_D75 7
- #define ILLUMINANT_F2 8
- #define ILLUMINANT_MAX_INDEX ILLUMINANT_F2
- #define ILLUMINANT_TUNGSTEN ILLUMINANT_A
- #define ILLUMINANT_DAYLIGHT ILLUMINANT_C
- #define ILLUMINANT_FLUORESCENT ILLUMINANT_F2
- #define ILLUMINANT_NTSC ILLUMINANT_C
- /* Min and max for RedGamma, GreenGamma, BlueGamma */
- #define RGB_GAMMA_MIN (WORD)02500
- #define RGB_GAMMA_MAX (WORD)65000
- /* Min and max for ReferenceBlack and ReferenceWhite */
- #define REFERENCE_WHITE_MIN (WORD)6000
- #define REFERENCE_WHITE_MAX (WORD)10000
- #define REFERENCE_BLACK_MIN (WORD)0
- #define REFERENCE_BLACK_MAX (WORD)4000
- /* Min and max for Contrast, Brightness, Colorfulness, RedGreenTint */
- #define COLOR_ADJ_MIN (SHORT)-100
- #define COLOR_ADJ_MAX (SHORT)100
- typedef struct tagCOLORADJUSTMENT {
- WORD caSize;
- WORD caFlags;
- WORD caIlluminantIndex;
- WORD caRedGamma;
- WORD caGreenGamma;
- WORD caBlueGamma;
- WORD caReferenceBlack;
- WORD caReferenceWhite;
- SHORT caContrast;
- SHORT caBrightness;
- SHORT caColorfulness;
- SHORT caRedGreenTint;
- } COLORADJUSTMENT, *PCOLORADJUSTMENT, FAR *LPCOLORADJUSTMENT;
- WINGDIAPI BOOL WINAPI SetColorAdjustment( IN HDC, IN CONST COLORADJUSTMENT *);
- WINGDIAPI BOOL WINAPI GetColorAdjustment( IN HDC, OUT LPCOLORADJUSTMENT);
- WINGDIAPI HPALETTE WINAPI CreateHalftonePalette( IN HDC);
- #ifdef STRICT
- typedef BOOL (CALLBACK* ABORTPROC)( IN HDC, IN int);
- #else
- typedef FARPROC ABORTPROC;
- #endif
- typedef struct _DOCINFOA {
- int cbSize;
- LPCSTR lpszDocName;
- LPCSTR lpszOutput;
- #if (WINVER >= 0x0400)
- LPCSTR lpszDatatype;
- DWORD fwType;
- #endif /* WINVER */
- } DOCINFOA, *LPDOCINFOA;
- typedef struct _DOCINFOW {
- int cbSize;
- LPCWSTR lpszDocName;
- LPCWSTR lpszOutput;
- #if (WINVER >= 0x0400)
- LPCWSTR lpszDatatype;
- DWORD fwType;
- #endif /* WINVER */
- } DOCINFOW, *LPDOCINFOW;
- #ifdef UNICODE
- typedef DOCINFOW DOCINFO;
- typedef LPDOCINFOW LPDOCINFO;
- #else
- typedef DOCINFOA DOCINFO;
- typedef LPDOCINFOA LPDOCINFO;
- #endif // UNICODE
- #if(WINVER >= 0x0400)
- #define DI_APPBANDING 0x00000001
- #define DI_ROPS_READ_DESTINATION 0x00000002
- #endif /* WINVER >= 0x0400 */
- WINGDIAPI int WINAPI StartDocA(IN HDC, IN CONST DOCINFOA *);
- WINGDIAPI int WINAPI StartDocW(IN HDC, IN CONST DOCINFOW *);
- #ifdef UNICODE
- #define StartDoc StartDocW
- #else
- #define StartDoc StartDocA
- #endif // !UNICODE
- WINGDIAPI int WINAPI EndDoc(IN HDC);
- WINGDIAPI int WINAPI StartPage(IN HDC);
- WINGDIAPI int WINAPI EndPage(IN HDC);
- WINGDIAPI int WINAPI AbortDoc(IN HDC);
- WINGDIAPI int WINAPI SetAbortProc(IN HDC, IN ABORTPROC);
- WINGDIAPI BOOL WINAPI AbortPath(IN HDC);
- WINGDIAPI BOOL WINAPI ArcTo(IN HDC, IN int, IN int, IN int, IN int, IN int, IN int, IN int, IN int);
- WINGDIAPI BOOL WINAPI BeginPath(IN HDC);
- WINGDIAPI BOOL WINAPI CloseFigure(IN HDC);
- WINGDIAPI BOOL WINAPI EndPath(IN HDC);
- WINGDIAPI BOOL WINAPI FillPath(IN HDC);
- WINGDIAPI BOOL WINAPI FlattenPath(IN HDC);
- WINGDIAPI int WINAPI GetPath(IN HDC, OUT LPPOINT, OUT LPBYTE, IN int);
- WINGDIAPI HRGN WINAPI PathToRegion(IN HDC);
- WINGDIAPI BOOL WINAPI PolyDraw(IN HDC, IN CONST POINT *, IN CONST BYTE *, IN int);
- WINGDIAPI BOOL WINAPI SelectClipPath(IN HDC, IN int);
- WINGDIAPI int WINAPI SetArcDirection(IN HDC, IN int);
- WINGDIAPI BOOL WINAPI SetMiterLimit(IN HDC, IN FLOAT, OUT PFLOAT);
- WINGDIAPI BOOL WINAPI StrokeAndFillPath(IN HDC);
- WINGDIAPI BOOL WINAPI StrokePath(IN HDC);
- WINGDIAPI BOOL WINAPI WidenPath(IN HDC);
- WINGDIAPI HPEN WINAPI ExtCreatePen(IN DWORD, IN DWORD, IN CONST LOGBRUSH *, IN DWORD, IN CONST DWORD *);
- WINGDIAPI BOOL WINAPI GetMiterLimit(IN HDC, OUT PFLOAT);
- WINGDIAPI int WINAPI GetArcDirection(IN HDC);
- WINGDIAPI int WINAPI GetObjectA( IN HGDIOBJ, IN int, OUT LPVOID);
- WINGDIAPI int WINAPI GetObjectW( IN HGDIOBJ, IN int, OUT LPVOID);
- #ifdef UNICODE
- #define GetObject GetObjectW
- #else
- #define GetObject GetObjectA
- #endif // !UNICODE
- WINGDIAPI BOOL WINAPI MoveToEx( IN HDC, IN int, IN int, OUT LPPOINT);
- WINGDIAPI BOOL WINAPI TextOutA( IN HDC, IN int, IN int, IN LPCSTR, IN int);
- WINGDIAPI BOOL WINAPI TextOutW( IN HDC, IN int, IN int, IN LPCWSTR, IN int);
- #ifdef UNICODE
- #define TextOut TextOutW
- #else
- #define TextOut TextOutA
- #endif // !UNICODE
- WINGDIAPI BOOL WINAPI ExtTextOutA( IN HDC, IN int, IN int, IN UINT, IN CONST RECT *, IN LPCSTR, IN UINT, IN CONST INT *);
- WINGDIAPI BOOL WINAPI ExtTextOutW( IN HDC, IN int, IN int, IN UINT, IN CONST RECT *, IN LPCWSTR, IN UINT, IN CONST INT *);
- #ifdef UNICODE
- #define ExtTextOut ExtTextOutW
- #else
- #define ExtTextOut ExtTextOutA
- #endif // !UNICODE
- WINGDIAPI BOOL WINAPI PolyTextOutA( IN HDC, IN CONST POLYTEXTA *, IN int);
- WINGDIAPI BOOL WINAPI PolyTextOutW( IN HDC, IN CONST POLYTEXTW *, IN int);
- #ifdef UNICODE
- #define PolyTextOut PolyTextOutW
- #else
- #define PolyTextOut PolyTextOutA
- #endif // !UNICODE
- WINGDIAPI HRGN WINAPI CreatePolygonRgn( IN CONST POINT *, IN int, IN int);
- WINGDIAPI BOOL WINAPI DPtoLP( IN HDC, IN OUT LPPOINT, IN int);
- WINGDIAPI BOOL WINAPI LPtoDP( IN HDC, IN OUT LPPOINT, IN int);
- WINGDIAPI BOOL WINAPI Polygon( IN HDC, IN CONST POINT *, IN int);
- WINGDIAPI BOOL WINAPI Polyline( IN HDC, IN CONST POINT *, IN int);
- WINGDIAPI BOOL WINAPI PolyBezier( IN HDC, IN CONST POINT *, IN DWORD);
- WINGDIAPI BOOL WINAPI PolyBezierTo( IN HDC, IN CONST POINT *, IN DWORD);
- WINGDIAPI BOOL WINAPI PolylineTo( IN HDC, IN CONST POINT *, IN DWORD);
- WINGDIAPI BOOL WINAPI SetViewportExtEx( IN HDC, IN int, IN int, OUT LPSIZE);
- WINGDIAPI BOOL WINAPI SetViewportOrgEx( IN HDC, IN int, IN int, OUT LPPOINT);
- WINGDIAPI BOOL WINAPI SetWindowExtEx( IN HDC, IN int, IN int, OUT LPSIZE);
- WINGDIAPI BOOL WINAPI SetWindowOrgEx( IN HDC, IN int, IN int, OUT LPPOINT);
- WINGDIAPI BOOL WINAPI OffsetViewportOrgEx( IN HDC, IN int, IN int, OUT LPPOINT);
- WINGDIAPI BOOL WINAPI OffsetWindowOrgEx( IN HDC, IN int, IN int, OUT LPPOINT);
- WINGDIAPI BOOL WINAPI ScaleViewportExtEx( IN HDC, IN int, IN int, IN int, IN int, OUT LPSIZE);
- WINGDIAPI BOOL WINAPI ScaleWindowExtEx( IN HDC, IN int, IN int, IN int, IN int, OUT LPSIZE);
- WINGDIAPI BOOL WINAPI SetBitmapDimensionEx( IN HBITMAP, IN int, IN int, OUT LPSIZE);
- WINGDIAPI BOOL WINAPI SetBrushOrgEx( IN HDC, IN int, IN int, OUT LPPOINT);
- WINGDIAPI int WINAPI GetTextFaceA( IN HDC, IN int, OUT LPSTR);
- WINGDIAPI int WINAPI GetTextFaceW( IN HDC, IN int, OUT LPWSTR);
- #ifdef UNICODE
- #define GetTextFace GetTextFaceW
- #else
- #define GetTextFace GetTextFaceA
- #endif // !UNICODE
- #define FONTMAPPER_MAX 10
- typedef struct tagKERNINGPAIR {
- WORD wFirst;
- WORD wSecond;
- int iKernAmount;
- } KERNINGPAIR, *LPKERNINGPAIR;
- WINGDIAPI DWORD WINAPI GetKerningPairsA( IN HDC, IN DWORD, OUT LPKERNINGPAIR);
- WINGDIAPI DWORD WINAPI GetKerningPairsW( IN HDC, IN DWORD, OUT LPKERNINGPAIR);
- #ifdef UNICODE
- #define GetKerningPairs GetKerningPairsW
- #else
- #define GetKerningPairs GetKerningPairsA
- #endif // !UNICODE
- WINGDIAPI BOOL WINAPI GetDCOrgEx( IN HDC, OUT LPPOINT);
- WINGDIAPI BOOL WINAPI FixBrushOrgEx( IN HDC, IN int, IN int, IN LPPOINT);
- WINGDIAPI BOOL WINAPI UnrealizeObject( IN HGDIOBJ);
- WINGDIAPI BOOL WINAPI GdiFlush();
- WINGDIAPI DWORD WINAPI GdiSetBatchLimit( IN DWORD);
- WINGDIAPI DWORD WINAPI GdiGetBatchLimit();
- #if(WINVER >= 0x0400)
- #define ICM_OFF 1
- #define ICM_ON 2
- #define ICM_QUERY 3
- #define ICM_DONE_OUTSIDEDC 4
- typedef int (CALLBACK* ICMENUMPROCA)(LPSTR, LPARAM);
- typedef int (CALLBACK* ICMENUMPROCW)(LPWSTR, LPARAM);
- #ifdef UNICODE
- #define ICMENUMPROC ICMENUMPROCW
- #else
- #define ICMENUMPROC ICMENUMPROCA
- #endif // !UNICODE
- WINGDIAPI int WINAPI SetICMMode( IN HDC, IN int);
- WINGDIAPI BOOL WINAPI CheckColorsInGamut( IN HDC, IN LPVOID, OUT LPVOID, IN DWORD);
- WINGDIAPI HCOLORSPACE WINAPI GetColorSpace( IN HDC);
- WINGDIAPI BOOL WINAPI GetLogColorSpaceA( IN HCOLORSPACE, OUT LPLOGCOLORSPACEA, IN DWORD);
- WINGDIAPI BOOL WINAPI GetLogColorSpaceW( IN HCOLORSPACE, OUT LPLOGCOLORSPACEW, IN DWORD);
- #ifdef UNICODE
- #define GetLogColorSpace GetLogColorSpaceW
- #else
- #define GetLogColorSpace GetLogColorSpaceA
- #endif // !UNICODE
- WINGDIAPI HCOLORSPACE WINAPI CreateColorSpaceA( IN LPLOGCOLORSPACEA);
- WINGDIAPI HCOLORSPACE WINAPI CreateColorSpaceW( IN LPLOGCOLORSPACEW);
- #ifdef UNICODE
- #define CreateColorSpace CreateColorSpaceW
- #else
- #define CreateColorSpace CreateColorSpaceA
- #endif // !UNICODE
- WINGDIAPI HCOLORSPACE WINAPI SetColorSpace( IN HDC, IN HCOLORSPACE);
- WINGDIAPI BOOL WINAPI DeleteColorSpace( IN HCOLORSPACE);
- WINGDIAPI BOOL WINAPI GetICMProfileA( IN HDC, IN OUT LPDWORD, OUT LPSTR);
- WINGDIAPI BOOL WINAPI GetICMProfileW( IN HDC, IN OUT LPDWORD, OUT LPWSTR);
- #ifdef UNICODE
- #define GetICMProfile GetICMProfileW
- #else
- #define GetICMProfile GetICMProfileA
- #endif // !UNICODE
- WINGDIAPI BOOL WINAPI SetICMProfileA( IN HDC, IN LPSTR);
- WINGDIAPI BOOL WINAPI SetICMProfileW( IN HDC, IN LPWSTR);
- #ifdef UNICODE
- #define SetICMProfile SetICMProfileW
- #else
- #define SetICMProfile SetICMProfileA
- #endif // !UNICODE
- WINGDIAPI BOOL WINAPI GetDeviceGammaRamp( IN HDC, OUT LPVOID);
- WINGDIAPI BOOL WINAPI SetDeviceGammaRamp( IN HDC, IN LPVOID);
- WINGDIAPI BOOL WINAPI ColorMatchToTarget( IN HDC, IN HDC, IN DWORD);
- WINGDIAPI int WINAPI EnumICMProfilesA( IN HDC, IN ICMENUMPROCA, IN LPARAM);
- WINGDIAPI int WINAPI EnumICMProfilesW( IN HDC, IN ICMENUMPROCW, IN LPARAM);
- #ifdef UNICODE
- #define EnumICMProfiles EnumICMProfilesW
- #else
- #define EnumICMProfiles EnumICMProfilesA
- #endif // !UNICODE
- WINGDIAPI BOOL WINAPI UpdateICMRegKeyA( IN DWORD, IN LPSTR, IN LPSTR, IN UINT);
- WINGDIAPI BOOL WINAPI UpdateICMRegKeyW( IN DWORD, IN LPWSTR, IN LPWSTR, IN UINT);
- #ifdef UNICODE
- #define UpdateICMRegKey UpdateICMRegKeyW
- #else
- #define UpdateICMRegKey UpdateICMRegKeyA
- #endif // !UNICODE
- #endif /* WINVER >= 0x0400 */
- #if (WINVER >= 0x0500)
- WINGDIAPI BOOL WINAPI ColorCorrectPalette( IN HDC, IN HPALETTE, IN DWORD, IN DWORD);
- #endif
- #ifndef NOMETAFILE
- // Enhanced metafile constants.
- #ifndef _MAC
- #define ENHMETA_SIGNATURE 0x464D4520
- #else
- #define ENHMETA_SIGNATURE 0x20454D46
- #endif
- // Stock object flag used in the object handle index in the enhanced
- // metafile records.
- // E.g. The object handle index (META_STOCK_OBJECT | BLACK_BRUSH)
- // represents the stock object BLACK_BRUSH.
- #define ENHMETA_STOCK_OBJECT 0x80000000
- // Enhanced metafile record types.
- #define EMR_HEADER 1
- #define EMR_POLYBEZIER 2
- #define EMR_POLYGON 3
- #define EMR_POLYLINE 4
- #define EMR_POLYBEZIERTO 5
- #define EMR_POLYLINETO 6
- #define EMR_POLYPOLYLINE 7
- #define EMR_POLYPOLYGON 8
- #define EMR_SETWINDOWEXTEX 9
- #define EMR_SETWINDOWORGEX 10
- #define EMR_SETVIEWPORTEXTEX 11
- #define EMR_SETVIEWPORTORGEX 12
- #define EMR_SETBRUSHORGEX 13
- #define EMR_EOF 14
- #define EMR_SETPIXELV 15
- #define EMR_SETMAPPERFLAGS 16
- #define EMR_SETMAPMODE 17
- #define EMR_SETBKMODE 18
- #define EMR_SETPOLYFILLMODE 19
- #define EMR_SETROP2 20
- #define EMR_SETSTRETCHBLTMODE 21
- #define EMR_SETTEXTALIGN 22
- #define EMR_SETCOLORADJUSTMENT 23
- #define EMR_SETTEXTCOLOR 24
- #define EMR_SETBKCOLOR 25
- #define EMR_OFFSETCLIPRGN 26
- #define EMR_MOVETOEX 27
- #define EMR_SETMETARGN 28
- #define EMR_EXCLUDECLIPRECT 29
- #define EMR_INTERSECTCLIPRECT 30
- #define EMR_SCALEVIEWPORTEXTEX 31
- #define EMR_SCALEWINDOWEXTEX 32
- #define EMR_SAVEDC 33
- #define EMR_RESTOREDC 34
- #define EMR_SETWORLDTRANSFORM 35
- #define EMR_MODIFYWORLDTRANSFORM 36
- #define EMR_SELECTOBJECT 37
- #define EMR_CREATEPEN 38
- #define EMR_CREATEBRUSHINDIRECT 39
- #define EMR_DELETEOBJECT 40
- #define EMR_ANGLEARC 41
- #define EMR_ELLIPSE 42
- #define EMR_RECTANGLE 43
- #define EMR_ROUNDRECT 44
- #define EMR_ARC 45
- #define EMR_CHORD 46
- #define EMR_PIE 47
- #define EMR_SELECTPALETTE 48
- #define EMR_CREATEPALETTE 49
- #define EMR_SETPALETTEENTRIES 50
- #define EMR_RESIZEPALETTE 51
- #define EMR_REALIZEPALETTE 52
- #define EMR_EXTFLOODFILL 53
- #define EMR_LINETO 54
- #define EMR_ARCTO 55
- #define EMR_POLYDRAW 56
- #define EMR_SETARCDIRECTION 57
- #define EMR_SETMITERLIMIT 58
- #define EMR_BEGINPATH 59
- #define EMR_ENDPATH 60
- #define EMR_CLOSEFIGURE 61
- #define EMR_FILLPATH 62
- #define EMR_STROKEANDFILLPATH 63
- #define EMR_STROKEPATH 64
- #define EMR_FLATTENPATH 65
- #define EMR_WIDENPATH 66
- #define EMR_SELECTCLIPPATH 67
- #define EMR_ABORTPATH 68
- #define EMR_GDICOMMENT 70
- #define EMR_FILLRGN 71
- #define EMR_FRAMERGN 72
- #define EMR_INVERTRGN 73
- #define EMR_PAINTRGN 74
- #define EMR_EXTSELECTCLIPRGN 75
- #define EMR_BITBLT 76
- #define EMR_STRETCHBLT 77
- #define EMR_MASKBLT 78
- #define EMR_PLGBLT 79
- #define EMR_SETDIBITSTODEVICE 80
- #define EMR_STRETCHDIBITS 81
- #define EMR_EXTCREATEFONTINDIRECTW 82
- #define EMR_EXTTEXTOUTA 83
- #define EMR_EXTTEXTOUTW 84
- #define EMR_POLYBEZIER16 85
- #define EMR_POLYGON16 86
- #define EMR_POLYLINE16 87
- #define EMR_POLYBEZIERTO16 88
- #define EMR_POLYLINETO16 89
- #define EMR_POLYPOLYLINE16 90
- #define EMR_POLYPOLYGON16 91
- #define EMR_POLYDRAW16 92
- #define EMR_CREATEMONOBRUSH 93
- #define EMR_CREATEDIBPATTERNBRUSHPT 94
- #define EMR_EXTCREATEPEN 95
- #define EMR_POLYTEXTOUTA 96
- #define EMR_POLYTEXTOUTW 97
- #if(WINVER >= 0x0400)
- #define EMR_SETICMMODE 98
- #define EMR_CREATECOLORSPACE 99
- #define EMR_SETCOLORSPACE 100
- #define EMR_DELETECOLORSPACE 101
- #define EMR_GLSRECORD 102
- #define EMR_GLSBOUNDEDRECORD 103
- #define EMR_PIXELFORMAT 104
- #endif /* WINVER >= 0x0400 */
- #if(WINVER >= 0x0500)
- #define EMR_RESERVED_105 105
- #define EMR_RESERVED_106 106
- #define EMR_RESERVED_107 107
- #define EMR_RESERVED_108 108
- #define EMR_RESERVED_109 109
- #define EMR_RESERVED_110 110
- #define EMR_COLORCORRECTPALETTE 111
- #define EMR_SETICMPROFILEA 112
- #define EMR_SETICMPROFILEW 113
- #define EMR_ALPHABLEND 114
- #define EMR_SETLAYOUT 115
- #define EMR_TRANSPARENTBLT 116
- #define EMR_RESERVED_117 117
- #define EMR_GRADIENTFILL 118
- #define EMR_RESERVED_119 119
- #define EMR_RESERVED_120 120
- #define EMR_COLORMATCHTOTARGETW 121
- #define EMR_CREATECOLORSPACEW 122
- #endif /* WINVER >= 0x0500 */
- #define EMR_MIN 1
- #if (WINVER >= 0x0500)
- #define EMR_MAX 122
- #elif (WINVER >= 0x0400)
- #define EMR_MAX 104
- #else
- #define EMR_MAX 97
- #endif
- // Base record type for the enhanced metafile.
- typedef struct tagEMR
- {
- DWORD iType; // Enhanced metafile record type
- DWORD nSize; // Length of the record in bytes.
- // This must be a multiple of 4.
- } EMR, *PEMR;
- // Base text record type for the enhanced metafile.
- typedef struct tagEMRTEXT
- {
- POINTL ptlReference;
- DWORD nChars;
- DWORD offString; // Offset to the string
- DWORD fOptions;
- RECTL rcl;
- DWORD offDx; // Offset to the inter-character spacing array.
- // This is always given.
- } EMRTEXT, *PEMRTEXT;
- // Record structures for the enhanced metafile.
- typedef struct tagABORTPATH
- {
- EMR emr;
- } EMRABORTPATH, *PEMRABORTPATH,
- EMRBEGINPATH, *PEMRBEGINPATH,
- EMRENDPATH, *PEMRENDPATH,
- EMRCLOSEFIGURE, *PEMRCLOSEFIGURE,
- EMRFLATTENPATH, *PEMRFLATTENPATH,
- EMRWIDENPATH, *PEMRWIDENPATH,
- EMRSETMETARGN, *PEMRSETMETARGN,
- EMRSAVEDC, *PEMRSAVEDC,
- EMRREALIZEPALETTE, *PEMRREALIZEPALETTE;
- typedef struct tagEMRSELECTCLIPPATH
- {
- EMR emr;
- DWORD iMode;
- } EMRSELECTCLIPPATH, *PEMRSELECTCLIPPATH,
- EMRSETBKMODE, *PEMRSETBKMODE,
- EMRSETMAPMODE, *PEMRSETMAPMODE,
- #if(WINVER >= 0x0500)
- EMRSETLAYOUT, *PEMRSETLAYOUT,
- #endif /* WINVER >= 0x0500 */
- EMRSETPOLYFILLMODE, *PEMRSETPOLYFILLMODE,
- EMRSETROP2, *PEMRSETROP2,
- EMRSETSTRETCHBLTMODE, *PEMRSETSTRETCHBLTMODE,
- EMRSETICMMODE, *PEMRSETICMMODE,
- EMRSETTEXTALIGN, *PEMRSETTEXTALIGN;
- typedef struct tagEMRSETMITERLIMIT
- {
- EMR emr;
- FLOAT eMiterLimit;
- } EMRSETMITERLIMIT, *PEMRSETMITERLIMIT;
- typedef struct tagEMRRESTOREDC
- {
- EMR emr;
- LONG iRelative; // Specifies a relative instance
- } EMRRESTOREDC, *PEMRRESTOREDC;
- typedef struct tagEMRSETARCDIRECTION
- {
- EMR emr;
- DWORD iArcDirection; // Specifies the arc direction in the
- // advanced graphics mode.
- } EMRSETARCDIRECTION, *PEMRSETARCDIRECTION;
- typedef struct tagEMRSETMAPPERFLAGS
- {
- EMR emr;
- DWORD dwFlags;
- } EMRSETMAPPERFLAGS, *PEMRSETMAPPERFLAGS;
- typedef struct tagEMRSETTEXTCOLOR
- {
- EMR emr;
- COLORREF crColor;
- } EMRSETBKCOLOR, *PEMRSETBKCOLOR,
- EMRSETTEXTCOLOR, *PEMRSETTEXTCOLOR;
- typedef struct tagEMRSELECTOBJECT
- {
- EMR emr;
- DWORD ihObject; // Object handle index
- } EMRSELECTOBJECT, *PEMRSELECTOBJECT,
- EMRDELETEOBJECT, *PEMRDELETEOBJECT;
- typedef struct tagEMRSELECTPALETTE
- {
- EMR emr;
- DWORD ihPal; // Palette handle index, background mode only
- } EMRSELECTPALETTE, *PEMRSELECTPALETTE;
- typedef struct tagEMRRESIZEPALETTE
- {
- EMR emr;
- DWORD ihPal; // Palette handle index
- DWORD cEntries;
- } EMRRESIZEPALETTE, *PEMRRESIZEPALETTE;
- typedef struct tagEMRSETPALETTEENTRIES
- {
- EMR emr;
- DWORD ihPal; // Palette handle index
- DWORD iStart;
- DWORD cEntries;
- PALETTEENTRY aPalEntries[1];// The peFlags fields do not contain any flags
- } EMRSETPALETTEENTRIES, *PEMRSETPALETTEENTRIES;
- typedef struct tagEMRSETCOLORADJUSTMENT
- {
- EMR emr;
- COLORADJUSTMENT ColorAdjustment;
- } EMRSETCOLORADJUSTMENT, *PEMRSETCOLORADJUSTMENT;
- typedef struct tagEMRGDICOMMENT
- {
- EMR emr;
- DWORD cbData; // Size of data in bytes
- BYTE Data[1];
- } EMRGDICOMMENT, *PEMRGDICOMMENT;
- typedef struct tagEMREOF
- {
- EMR emr;
- DWORD nPalEntries; // Number of palette entries
- DWORD offPalEntries; // Offset to the palette entries
- DWORD nSizeLast; // Same as nSize and must be the last DWORD
- // of the record. The palette entries,
- // if exist, precede this field.
- } EMREOF, *PEMREOF;
- typedef struct tagEMRLINETO
- {
- EMR emr;
- POINTL ptl;
- } EMRLINETO, *PEMRLINETO,
- EMRMOVETOEX, *PEMRMOVETOEX;
- typedef struct tagEMROFFSETCLIPRGN
- {
- EMR emr;
- POINTL ptlOffset;
- } EMROFFSETCLIPRGN, *PEMROFFSETCLIPRGN;
- typedef struct tagEMRFILLPATH
- {
- EMR emr;
- RECTL rclBounds; // Inclusive-inclusive bounds in device units
- } EMRFILLPATH, *PEMRFILLPATH,
- EMRSTROKEANDFILLPATH, *PEMRSTROKEANDFILLPATH,
- EMRSTROKEPATH, *PEMRSTROKEPATH;
- typedef struct tagEMREXCLUDECLIPRECT
- {
- EMR emr;
- RECTL rclClip;
- } EMREXCLUDECLIPRECT, *PEMREXCLUDECLIPRECT,
- EMRINTERSECTCLIPRECT, *PEMRINTERSECTCLIPRECT;
- typedef struct tagEMRSETVIEWPORTORGEX
- {
- EMR emr;
- POINTL ptlOrigin;
- } EMRSETVIEWPORTORGEX, *PEMRSETVIEWPORTORGEX,
- EMRSETWINDOWORGEX, *PEMRSETWINDOWORGEX,
- EMRSETBRUSHORGEX, *PEMRSETBRUSHORGEX;
- typedef struct tagEMRSETVIEWPORTEXTEX
- {
- EMR emr;
- SIZEL szlExtent;
- } EMRSETVIEWPORTEXTEX, *PEMRSETVIEWPORTEXTEX,
- EMRSETWINDOWEXTEX, *PEMRSETWINDOWEXTEX;
- typedef struct tagEMRSCALEVIEWPORTEXTEX
- {
- EMR emr;
- LONG xNum;
- LONG xDenom;
- LONG yNum;
- LONG yDenom;
- } EMRSCALEVIEWPORTEXTEX, *PEMRSCALEVIEWPORTEXTEX,
- EMRSCALEWINDOWEXTEX, *PEMRSCALEWINDOWEXTEX;
- typedef struct tagEMRSETWORLDTRANSFORM
- {
- EMR emr;
- XFORM xform;
- } EMRSETWORLDTRANSFORM, *PEMRSETWORLDTRANSFORM;
- typedef struct tagEMRMODIFYWORLDTRANSFORM
- {
- EMR emr;
- XFORM xform;
- DWORD iMode;
- } EMRMODIFYWORLDTRANSFORM, *PEMRMODIFYWORLDTRANSFORM;
- typedef struct tagEMRSETPIXELV
- {
- EMR emr;
- POINTL ptlPixel;
- COLORREF crColor;
- } EMRSETPIXELV, *PEMRSETPIXELV;
- typedef struct tagEMREXTFLOODFILL
- {
- EMR emr;
- POINTL ptlStart;
- COLORREF crColor;
- DWORD iMode;
- } EMREXTFLOODFILL, *PEMREXTFLOODFILL;
- typedef struct tagEMRELLIPSE
- {
- EMR emr;
- RECTL rclBox; // Inclusive-inclusive bounding rectangle
- } EMRELLIPSE, *PEMRELLIPSE,
- EMRRECTANGLE, *PEMRRECTANGLE;
- typedef struct tagEMRROUNDRECT
- {
- EMR emr;
- RECTL rclBox; // Inclusive-inclusive bounding rectangle
- SIZEL szlCorner;
- } EMRROUNDRECT, *PEMRROUNDRECT;
- typedef struct tagEMRARC
- {
- EMR emr;
- RECTL rclBox; // Inclusive-inclusive bounding rectangle
- POINTL ptlStart;
- POINTL ptlEnd;
- } EMRARC, *PEMRARC,
- EMRARCTO, *PEMRARCTO,
- EMRCHORD, *PEMRCHORD,
- EMRPIE, *PEMRPIE;
- typedef struct tagEMRANGLEARC
- {
- EMR emr;
- POINTL ptlCenter;
- DWORD nRadius;
- FLOAT eStartAngle;
- FLOAT eSweepAngle;
- } EMRANGLEARC, *PEMRANGLEARC;
- typedef struct tagEMRPOLYLINE
- {
- EMR emr;
- RECTL rclBounds; // Inclusive-inclusive bounds in device units
- DWORD cptl;
- POINTL aptl[1];
- } EMRPOLYLINE, *PEMRPOLYLINE,
- EMRPOLYBEZIER, *PEMRPOLYBEZIER,
- EMRPOLYGON, *PEMRPOLYGON,
- EMRPOLYBEZIERTO, *PEMRPOLYBEZIERTO,
- EMRPOLYLINETO, *PEMRPOLYLINETO;
- typedef struct tagEMRPOLYLINE16
- {
- EMR emr;
- RECTL rclBounds; // Inclusive-inclusive bounds in device units
- DWORD cpts;
- POINTS apts[1];
- } EMRPOLYLINE16, *PEMRPOLYLINE16,
- EMRPOLYBEZIER16, *PEMRPOLYBEZIER16,
- EMRPOLYGON16, *PEMRPOLYGON16,
- EMRPOLYBEZIERTO16, *PEMRPOLYBEZIERTO16,
- EMRPOLYLINETO16, *PEMRPOLYLINETO16;
- typedef struct tagEMRPOLYDRAW
- {
- EMR emr;
- RECTL rclBounds; // Inclusive-inclusive bounds in device units
- DWORD cptl; // Number of points
- POINTL aptl[1]; // Array of points
- BYTE abTypes[1]; // Array of point types
- } EMRPOLYDRAW, *PEMRPOLYDRAW;
- typedef struct tagEMRPOLYDRAW16
- {
- EMR emr;
- RECTL rclBounds; // Inclusive-inclusive bounds in device units
- DWORD cpts; // Number of points
- POINTS apts[1]; // Array of points
- BYTE abTypes[1]; // Array of point types
- } EMRPOLYDRAW16, *PEMRPOLYDRAW16;
- typedef struct tagEMRPOLYPOLYLINE
- {
- EMR emr;
- RECTL rclBounds; // Inclusive-inclusive bounds in device units
- DWORD nPolys; // Number of polys
- DWORD cptl; // Total number of points in all polys
- DWORD aPolyCounts[1]; // Array of point counts for each poly
- POINTL aptl[1]; // Array of points
- } EMRPOLYPOLYLINE, *PEMRPOLYPOLYLINE,
- EMRPOLYPOLYGON, *PEMRPOLYPOLYGON;
- typedef struct tagEMRPOLYPOLYLINE16
- {
- EMR emr;
- RECTL rclBounds; // Inclusive-inclusive bounds in device units
- DWORD nPolys; // Number of polys
- DWORD cpts; // Total number of points in all polys
- DWORD aPolyCounts[1]; // Array of point counts for each poly
- POINTS apts[1]; // Array of points
- } EMRPOLYPOLYLINE16, *PEMRPOLYPOLYLINE16,
- EMRPOLYPOLYGON16, *PEMRPOLYPOLYGON16;
- typedef struct tagEMRINVERTRGN
- {
- EMR emr;
- RECTL rclBounds; // Inclusive-inclusive bounds in device units
- DWORD cbRgnData; // Size of region data in bytes
- BYTE RgnData[1];
- } EMRINVERTRGN, *PEMRINVERTRGN,
- EMRPAINTRGN, *PEMRPAINTRGN;
- typedef struct tagEMRFILLRGN
- {
- EMR emr;
- RECTL rclBounds; // Inclusive-inclusive bounds in device units
- DWORD cbRgnData; // Size of region data in bytes
- DWORD ihBrush; // Brush handle index
- BYTE RgnData[1];
- } EMRFILLRGN, *PEMRFILLRGN;
- typedef struct tagEMRFRAMERGN
- {
- EMR emr;
- RECTL rclBounds; // Inclusive-inclusive bounds in device units
- DWORD cbRgnData; // Size of region data in bytes
- DWORD ihBrush; // Brush handle index
- SIZEL szlStroke;
- BYTE RgnData[1];
- } EMRFRAMERGN, *PEMRFRAMERGN;
- typedef struct tagEMREXTSELECTCLIPRGN
- {
- EMR emr;
- DWORD cbRgnData; // Size of region data in bytes
- DWORD iMode;
- BYTE RgnData[1];
- } EMREXTSELECTCLIPRGN, *PEMREXTSELECTCLIPRGN;
- typedef struct tagEMREXTTEXTOUTA
- {
- EMR emr;
- RECTL rclBounds; // Inclusive-inclusive bounds in device units
- DWORD iGraphicsMode; // Current graphics mode
- FLOAT exScale; // X and Y scales from Page units to .01mm units
- FLOAT eyScale; // if graphics mode is GM_COMPATIBLE.
- EMRTEXT emrtext; // This is followed by the string and spacing
- // array
- } EMREXTTEXTOUTA, *PEMREXTTEXTOUTA,
- EMREXTTEXTOUTW, *PEMREXTTEXTOUTW;
- typedef struct tagEMRPOLYTEXTOUTA
- {
- EMR emr;
- RECTL rclBounds; // Inclusive-inclusive bounds in device units
- DWORD iGraphicsMode; // Current graphics mode
- FLOAT exScale; // X and Y scales from Page units to .01mm units
- FLOAT eyScale; // if graphics mode is GM_COMPATIBLE.
- LONG cStrings;
- EMRTEXT aemrtext[1]; // Array of EMRTEXT structures. This is
- // followed by the strings and spacing arrays.
- } EMRPOLYTEXTOUTA, *PEMRPOLYTEXTOUTA,
- EMRPOLYTEXTOUTW, *PEMRPOLYTEXTOUTW;
- typedef struct tagEMRBITBLT
- {
- EMR emr;
- RECTL rclBounds; // Inclusive-inclusive bounds in device units
- LONG xDest;
- LONG yDest;
- LONG cxDest;
- LONG cyDest;
- DWORD dwRop;
- LONG xSrc;
- LONG ySrc;
- XFORM xformSrc; // Source DC transform
- COLORREF crBkColorSrc; // Source DC BkColor in RGB
- DWORD iUsageSrc; // Source bitmap info color table usage
- // (DIB_RGB_COLORS)
- DWORD offBmiSrc; // Offset to the source BITMAPINFO structure
- DWORD cbBmiSrc; // Size of the source BITMAPINFO structure
- DWORD offBitsSrc; // Offset to the source bitmap bits
- DWORD cbBitsSrc; // Size of the source bitmap bits
- } EMRBITBLT, *PEMRBITBLT;
- typedef struct tagEMRSTRETCHBLT
- {
- EMR emr;
- RECTL rclBounds; // Inclusive-inclusive bounds in device units
- LONG xDest;
- LONG yDest;
- LONG cxDest;
- LONG cyDest;
- DWORD dwRop;
- LONG xSrc;
- LONG ySrc;
- XFORM xformSrc; // Source DC transform
- COLORREF crBkColorSrc; // Source DC BkColor in RGB
- DWORD iUsageSrc; // Source bitmap info color table usage
- // (DIB_RGB_COLORS)
- DWORD offBmiSrc; // Offset to the source BITMAPINFO structure
- DWORD cbBmiSrc; // Size of the source BITMAPINFO structure
- DWORD offBitsSrc; // Offset to the source bitmap bits
- DWORD cbBitsSrc; // Size of the source bitmap bits
- LONG cxSrc;
- LONG cySrc;
- } EMRSTRETCHBLT, *PEMRSTRETCHBLT;
- typedef struct tagEMRMASKBLT
- {
- EMR emr;
- RECTL rclBounds; // Inclusive-inclusive bounds in device units
- LONG xDest;
- LONG yDest;
- LONG cxDest;
- LONG cyDest;
- DWORD dwRop;
- LONG xSrc;
- LONG ySrc;
- XFORM xformSrc; // Source DC transform
- COLORREF crBkColorSrc; // Source DC BkColor in RGB
- DWORD iUsageSrc; // Source bitmap info color table usage
- // (DIB_RGB_COLORS)
- DWORD offBmiSrc; // Offset to the source BITMAPINFO structure
- DWORD cbBmiSrc; // Size of the source BITMAPINFO structure
- DWORD offBitsSrc; // Offset to the source bitmap bits
- DWORD cbBitsSrc; // Size of the source bitmap bits
- LONG xMask;
- LONG yMask;
- DWORD iUsageMask; // Mask bitmap info color table usage
- DWORD offBmiMask; // Offset to the mask BITMAPINFO structure if any
- DWORD cbBmiMask; // Size of the mask BITMAPINFO structure if any
- DWORD offBitsMask; // Offset to the mask bitmap bits if any
- DWORD cbBitsMask; // Size of the mask bitmap bits if any
- } EMRMASKBLT, *PEMRMASKBLT;
- typedef struct tagEMRPLGBLT
- {
- EMR emr;
- RECTL rclBounds; // Inclusive-inclusive bounds in device units
- POINTL aptlDest[3];
- LONG xSrc;
- LONG ySrc;
- LONG cxSrc;
- LONG cySrc;
- XFORM xformSrc; // Source DC transform
- COLORREF crBkColorSrc; // Source DC BkColor in RGB
- DWORD iUsageSrc; // Source bitmap info color table usage
- // (DIB_RGB_COLORS)
- DWORD offBmiSrc; // Offset to the source BITMAPINFO structure
- DWORD cbBmiSrc; // Size of the source BITMAPINFO structure
- DWORD offBitsSrc; // Offset to the source bitmap bits
- DWORD cbBitsSrc; // Size of the source bitmap bits
- LONG xMask;
- LONG yMask;
- DWORD iUsageMask; // Mask bitmap info color table usage
- DWORD offBmiMask; // Offset to the mask BITMAPINFO structure if any
- DWORD cbBmiMask; // Size of the mask BITMAPINFO structure if any
- DWORD offBitsMask; // Offset to the mask bitmap bits if any
- DWORD cbBitsMask; // Size of the mask bitmap bits if any
- } EMRPLGBLT, *PEMRPLGBLT;
- typedef struct tagEMRSETDIBITSTODEVICE
- {
- EMR emr;
- RECTL rclBounds; // Inclusive-inclusive bounds in device units
- LONG xDest;
- LONG yDest;
- LONG xSrc;
- LONG ySrc;
- LONG cxSrc;
- LONG cySrc;
- DWORD offBmiSrc; // Offset to the source BITMAPINFO structure
- DWORD cbBmiSrc; // Size of the source BITMAPINFO structure
- DWORD offBitsSrc; // Offset to the source bitmap bits
- DWORD cbBitsSrc; // Size of the source bitmap bits
- DWORD iUsageSrc; // Source bitmap info color table usage
- DWORD iStartScan;
- DWORD cScans;
- } EMRSETDIBITSTODEVICE, *PEMRSETDIBITSTODEVICE;
- typedef struct tagEMRSTRETCHDIBITS
- {
- EMR emr;
- RECTL rclBounds; // Inclusive-inclusive bounds in device units
- LONG xDest;
- LONG yDest;
- LONG xSrc;
- LONG ySrc;
- LONG cxSrc;
- LONG cySrc;
- DWORD offBmiSrc; // Offset to the source BITMAPINFO structure
- DWORD cbBmiSrc; // Size of the source BITMAPINFO structure
- DWORD offBitsSrc; // Offset to the source bitmap bits
- DWORD cbBitsSrc; // Size of the source bitmap bits
- DWORD iUsageSrc; // Source bitmap info color table usage
- DWORD dwRop;
- LONG cxDest;
- LONG cyDest;
- } EMRSTRETCHDIBITS, *PEMRSTRETCHDIBITS;
- typedef struct tagEMREXTCREATEFONTINDIRECTW
- {
- EMR emr;
- DWORD ihFont; // Font handle index
- EXTLOGFONTW elfw;
- } EMREXTCREATEFONTINDIRECTW, *PEMREXTCREATEFONTINDIRECTW;
- typedef struct tagEMRCREATEPALETTE
- {
- EMR emr;
- DWORD ihPal; // Palette handle index
- LOGPALETTE lgpl; // The peFlags fields in the palette entries
- // do not contain any flags
- } EMRCREATEPALETTE, *PEMRCREATEPALETTE;
- typedef struct tagEMRCREATEPEN
- {
- EMR emr;
- DWORD ihPen; // Pen handle index
- LOGPEN lopn;
- } EMRCREATEPEN, *PEMRCREATEPEN;
- typedef struct tagEMREXTCREATEPEN
- {
- EMR emr;
- DWORD ihPen; // Pen handle index
- DWORD offBmi; // Offset to the BITMAPINFO structure if any
- DWORD cbBmi; // Size of the BITMAPINFO structure if any
- // The bitmap info is followed by the bitmap
- // bits to form a packed DIB.
- DWORD offBits; // Offset to the brush bitmap bits if any
- DWORD cbBits; // Size of the brush bitmap bits if any
- EXTLOGPEN elp; // The extended pen with the style array.
- } EMREXTCREATEPEN, *PEMREXTCREATEPEN;
- typedef struct tagEMRCREATEBRUSHINDIRECT
- {
- EMR emr;
- DWORD ihBrush; // Brush handle index
- LOGBRUSH32 lb; // The style must be BS_SOLID, BS_HOLLOW,
- // BS_NULL or BS_HATCHED.
- } EMRCREATEBRUSHINDIRECT, *PEMRCREATEBRUSHINDIRECT;
- typedef struct tagEMRCREATEMONOBRUSH
- {
- EMR emr;
- DWORD ihBrush; // Brush handle index
- DWORD iUsage; // Bitmap info color table usage
- DWORD offBmi; // Offset to the BITMAPINFO structure
- DWORD cbBmi; // Size of the BITMAPINFO structure
- DWORD offBits; // Offset to the bitmap bits
- DWORD cbBits; // Size of the bitmap bits
- } EMRCREATEMONOBRUSH, *PEMRCREATEMONOBRUSH;
- typedef struct tagEMRCREATEDIBPATTERNBRUSHPT
- {
- EMR emr;
- DWORD ihBrush; // Brush handle index
- DWORD iUsage; // Bitmap info color table usage
- DWORD offBmi; // Offset to the BITMAPINFO structure
- DWORD cbBmi; // Size of the BITMAPINFO structure
- // The bitmap info is followed by the bitmap
- // bits to form a packed DIB.
- DWORD offBits; // Offset to the bitmap bits
- DWORD cbBits; // Size of the bitmap bits
- } EMRCREATEDIBPATTERNBRUSHPT, *PEMRCREATEDIBPATTERNBRUSHPT;
- typedef struct tagEMRFORMAT
- {
- DWORD dSignature; // Format signature, e.g. ENHMETA_SIGNATURE.
- DWORD nVersion; // Format version number.
- DWORD cbData; // Size of data in bytes.
- DWORD offData; // Offset to data from GDICOMMENT_IDENTIFIER.
- // It must begin at a DWORD offset.
- } EMRFORMAT, *PEMRFORMAT;
- #if(WINVER >= 0x0400)
- typedef struct tagEMRGLSRECORD
- {
- EMR emr;
- DWORD cbData; // Size of data in bytes
- BYTE Data[1];
- } EMRGLSRECORD, *PEMRGLSRECORD;
- typedef struct tagEMRGLSBOUNDEDRECORD
- {
- EMR emr;
- RECTL rclBounds; // Bounds in recording coordinates
- DWORD cbData; // Size of data in bytes
- BYTE Data[1];
- } EMRGLSBOUNDEDRECORD, *PEMRGLSBOUNDEDRECORD;
- typedef struct tagEMRPIXELFORMAT
- {
- EMR emr;
- PIXELFORMATDESCRIPTOR pfd;
- } EMRPIXELFORMAT, *PEMRPIXELFORMAT;
- typedef struct tagEMRCREATECOLORSPACE
- {
- EMR emr;
- DWORD ihCS; // ColorSpace handle index
- LOGCOLORSPACEA lcs; // Ansi version of LOGCOLORSPACE
- } EMRCREATECOLORSPACE, *PEMRCREATECOLORSPACE;
- typedef struct tagEMRSETCOLORSPACE
- {
- EMR emr;
- DWORD ihCS; // ColorSpace handle index
- } EMRSETCOLORSPACE, *PEMRSETCOLORSPACE,
- EMRSELECTCOLORSPACE, *PEMRSELECTCOLORSPACE,
- EMRDELETECOLORSPACE, *PEMRDELETECOLORSPACE;
- #endif /* WINVER >= 0x0400 */
- #if(WINVER >= 0x0500)
- typedef struct tagEMREXTESCAPE
- {
- EMR emr;
- INT iEscape; // Escape code
- INT cbEscData; // Size of escape data
- BYTE EscData[1]; // Escape data
- } EMREXTESCAPE, *PEMREXTESCAPE,
- EMRDRAWESCAPE, *PEMRDRAWESCAPE;
- typedef struct tagEMRNAMEDESCAPE
- {
- EMR emr;
- INT iEscape; // Escape code
- INT cbDriver; // Size of driver name
- INT cbEscData; // Size of escape data
- BYTE EscData[1]; // Driver name and Escape data
- } EMRNAMEDESCAPE, *PEMRNAMEDESCAPE;
- #define SETICMPROFILE_EMBEDED 0x00000001
- typedef struct tagEMRSETICMPROFILE
- {
- EMR emr;
- DWORD dwFlags; // flags
- DWORD cbName; // Size of desired profile name
- DWORD cbData; // Size of raw profile data if attached
- BYTE Data[1]; // Array size is cbName + cbData
- } EMRSETICMPROFILE, *PEMRSETICMPROFILE,
- EMRSETICMPROFILEA, *PEMRSETICMPROFILEA,
- EMRSETICMPROFILEW, *PEMRSETICMPROFILEW;
- #define CREATECOLORSPACE_EMBEDED 0x00000001
- typedef struct tagEMRCREATECOLORSPACEW
- {
- EMR emr;
- DWORD ihCS; // ColorSpace handle index
- LOGCOLORSPACEW lcs; // Unicode version of logical color space structure
- DWORD dwFlags; // flags
- DWORD cbData; // size of raw source profile data if attached
- BYTE Data[1]; // Array size is cbData
- } EMRCREATECOLORSPACEW, *PEMRCREATECOLORSPACEW;
- #define COLORMATCHTOTARGET_EMBEDED 0x00000001
- typedef struct tagCOLORMATCHTOTARGET
- {
- EMR emr;
- DWORD dwAction; // CS_ENABLE, CS_DISABLE or CS_DELETE_TRANSFORM
- DWORD dwFlags; // flags
- DWORD cbName; // Size of desired target profile name
- DWORD cbData; // Size of raw target profile data if attached
- BYTE Data[1]; // Array size is cbName + cbData
- } EMRCOLORMATCHTOTARGET, *PEMRCOLORMATCHTOTARGET;
- typedef struct tagCOLORCORRECTPALETTE
- {
- EMR emr;
- DWORD ihPalette; // Palette handle index
- DWORD nFirstEntry; // Index of first entry to correct
- DWORD nPalEntries; // Number of palette entries to correct
- DWORD nReserved; // Reserved
- } EMRCOLORCORRECTPALETTE, *PEMRCOLORCORRECTPALETTE;
- typedef struct tagEMRALPHABLEND
- {
- EMR emr;
- RECTL rclBounds; // Inclusive-inclusive bounds in device units
- LONG xDest;
- LONG yDest;
- LONG cxDest;
- LONG cyDest;
- DWORD dwRop;
- LONG xSrc;
- LONG ySrc;
- XFORM xformSrc; // Source DC transform
- COLORREF crBkColorSrc; // Source DC BkColor in RGB
- DWORD iUsageSrc; // Source bitmap info color table usage
- // (DIB_RGB_COLORS)
- DWORD offBmiSrc; // Offset to the source BITMAPINFO structure
- DWORD cbBmiSrc; // Size of the source BITMAPINFO structure
- DWORD offBitsSrc; // Offset to the source bitmap bits
- DWORD cbBitsSrc; // Size of the source bitmap bits
- LONG cxSrc;
- LONG cySrc;
- } EMRALPHABLEND, *PEMRALPHABLEND;
- typedef struct tagEMRGRADIENTFILL
- {
- EMR emr;
- RECTL rclBounds; // Inclusive-inclusive bounds in device units
- DWORD nVer;
- DWORD nTri;
- ULONG ulMode;
- TRIVERTEX Ver[1];
- }EMRGRADIENTFILL,*PEMRGRADIENTFILL;
- typedef struct tagEMRTRANSPARENTBLT
- {
- EMR emr;
- RECTL rclBounds; // Inclusive-inclusive bounds in device units
- LONG xDest;
- LONG yDest;
- LONG cxDest;
- LONG cyDest;
- DWORD dwRop;
- LONG xSrc;
- LONG ySrc;
- XFORM xformSrc; // Source DC transform
- COLORREF crBkColorSrc; // Source DC BkColor in RGB
- DWORD iUsageSrc; // Source bitmap info color table usage
- // (DIB_RGB_COLORS)
- DWORD offBmiSrc; // Offset to the source BITMAPINFO structure
- DWORD cbBmiSrc; // Size of the source BITMAPINFO structure
- DWORD offBitsSrc; // Offset to the source bitmap bits
- DWORD cbBitsSrc; // Size of the source bitmap bits
- LONG cxSrc;
- LONG cySrc;
- } EMRTRANSPARENTBLT, *PEMRTRANSPARENTBLT;
- #endif /* WINVER >= 0x0500 */
- #define GDICOMMENT_IDENTIFIER 0x43494447
- #define GDICOMMENT_WINDOWS_METAFILE 0x80000001
- #define GDICOMMENT_BEGINGROUP 0x00000002
- #define GDICOMMENT_ENDGROUP 0x00000003
- #define GDICOMMENT_MULTIFORMATS 0x40000004
- #define EPS_SIGNATURE 0x46535045
- #define GDICOMMENT_UNICODE_STRING 0x00000040
- #define GDICOMMENT_UNICODE_END 0x00000080
- #endif /* NOMETAFILE */
- // OpenGL wgl prototypes
- WINGDIAPI BOOL WINAPI wglCopyContext(HGLRC, HGLRC, UINT);
- WINGDIAPI HGLRC WINAPI wglCreateContext(HDC);
- WINGDIAPI HGLRC WINAPI wglCreateLayerContext(HDC, int);
- WINGDIAPI BOOL WINAPI wglDeleteContext(HGLRC);
- WINGDIAPI HGLRC WINAPI wglGetCurrentContext(VOID);
- WINGDIAPI HDC WINAPI wglGetCurrentDC(VOID);
- WINGDIAPI PROC WINAPI wglGetProcAddress(LPCSTR);
- WINGDIAPI BOOL WINAPI wglMakeCurrent(HDC, HGLRC);
- WINGDIAPI BOOL WINAPI wglShareLists(HGLRC, HGLRC);
- WINGDIAPI BOOL WINAPI wglUseFontBitmapsA(HDC, DWORD, DWORD, DWORD);
- WINGDIAPI BOOL WINAPI wglUseFontBitmapsW(HDC, DWORD, DWORD, DWORD);
- #ifdef UNICODE
- #define wglUseFontBitmaps wglUseFontBitmapsW
- #else
- #define wglUseFontBitmaps wglUseFontBitmapsA
- #endif // !UNICODE
- WINGDIAPI BOOL WINAPI SwapBuffers(HDC);
- typedef struct _POINTFLOAT {
- FLOAT x;
- FLOAT y;
- } POINTFLOAT, *PPOINTFLOAT;
- typedef struct _GLYPHMETRICSFLOAT {
- FLOAT gmfBlackBoxX;
- FLOAT gmfBlackBoxY;
- POINTFLOAT gmfptGlyphOrigin;
- FLOAT gmfCellIncX;
- FLOAT gmfCellIncY;
- } GLYPHMETRICSFLOAT, *PGLYPHMETRICSFLOAT, FAR *LPGLYPHMETRICSFLOAT;
- #define WGL_FONT_LINES 0
- #define WGL_FONT_POLYGONS 1
- WINGDIAPI BOOL WINAPI wglUseFontOutlinesA(HDC, DWORD, DWORD, DWORD, FLOAT,
- FLOAT, int, LPGLYPHMETRICSFLOAT);
- WINGDIAPI BOOL WINAPI wglUseFontOutlinesW(HDC, DWORD, DWORD, DWORD, FLOAT,
- FLOAT, int, LPGLYPHMETRICSFLOAT);
- #ifdef UNICODE
- #define wglUseFontOutlines wglUseFontOutlinesW
- #else
- #define wglUseFontOutlines wglUseFontOutlinesA
- #endif // !UNICODE
- /* Layer plane descriptor */
- typedef struct tagLAYERPLANEDESCRIPTOR { // lpd
- WORD nSize;
- WORD nVersion;
- DWORD dwFlags;
- BYTE iPixelType;
- BYTE cColorBits;
- BYTE cRedBits;
- BYTE cRedShift;
- BYTE cGreenBits;
- BYTE cGreenShift;
- BYTE cBlueBits;
- BYTE cBlueShift;
- BYTE cAlphaBits;
- BYTE cAlphaShift;
- BYTE cAccumBits;
- BYTE cAccumRedBits;
- BYTE cAccumGreenBits;
- BYTE cAccumBlueBits;
- BYTE cAccumAlphaBits;
- BYTE cDepthBits;
- BYTE cStencilBits;
- BYTE cAuxBuffers;
- BYTE iLayerPlane;
- BYTE bReserved;
- COLORREF crTransparent;
- } LAYERPLANEDESCRIPTOR, *PLAYERPLANEDESCRIPTOR, FAR *LPLAYERPLANEDESCRIPTOR;
- /* LAYERPLANEDESCRIPTOR flags */
- #define LPD_DOUBLEBUFFER 0x00000001
- #define LPD_STEREO 0x00000002
- #define LPD_SUPPORT_GDI 0x00000010
- #define LPD_SUPPORT_OPENGL 0x00000020
- #define LPD_SHARE_DEPTH 0x00000040
- #define LPD_SHARE_STENCIL 0x00000080
- #define LPD_SHARE_ACCUM 0x00000100
- #define LPD_SWAP_EXCHANGE 0x00000200
- #define LPD_SWAP_COPY 0x00000400
- #define LPD_TRANSPARENT 0x00001000
- #define LPD_TYPE_RGBA 0
- #define LPD_TYPE_COLORINDEX 1
- /* wglSwapLayerBuffers flags */
- #define WGL_SWAP_MAIN_PLANE 0x00000001
- #define WGL_SWAP_OVERLAY1 0x00000002
- #define WGL_SWAP_OVERLAY2 0x00000004
- #define WGL_SWAP_OVERLAY3 0x00000008
- #define WGL_SWAP_OVERLAY4 0x00000010
- #define WGL_SWAP_OVERLAY5 0x00000020
- #define WGL_SWAP_OVERLAY6 0x00000040
- #define WGL_SWAP_OVERLAY7 0x00000080
- #define WGL_SWAP_OVERLAY8 0x00000100
- #define WGL_SWAP_OVERLAY9 0x00000200
- #define WGL_SWAP_OVERLAY10 0x00000400
- #define WGL_SWAP_OVERLAY11 0x00000800
- #define WGL_SWAP_OVERLAY12 0x00001000
- #define WGL_SWAP_OVERLAY13 0x00002000
- #define WGL_SWAP_OVERLAY14 0x00004000
- #define WGL_SWAP_OVERLAY15 0x00008000
- #define WGL_SWAP_UNDERLAY1 0x00010000
- #define WGL_SWAP_UNDERLAY2 0x00020000
- #define WGL_SWAP_UNDERLAY3 0x00040000
- #define WGL_SWAP_UNDERLAY4 0x00080000
- #define WGL_SWAP_UNDERLAY5 0x00100000
- #define WGL_SWAP_UNDERLAY6 0x00200000
- #define WGL_SWAP_UNDERLAY7 0x00400000
- #define WGL_SWAP_UNDERLAY8 0x00800000
- #define WGL_SWAP_UNDERLAY9 0x01000000
- #define WGL_SWAP_UNDERLAY10 0x02000000
- #define WGL_SWAP_UNDERLAY11 0x04000000
- #define WGL_SWAP_UNDERLAY12 0x08000000
- #define WGL_SWAP_UNDERLAY13 0x10000000
- #define WGL_SWAP_UNDERLAY14 0x20000000
- #define WGL_SWAP_UNDERLAY15 0x40000000
- WINGDIAPI BOOL WINAPI wglDescribeLayerPlane(HDC, int, int, UINT,
- LPLAYERPLANEDESCRIPTOR);
- WINGDIAPI int WINAPI wglSetLayerPaletteEntries(HDC, int, int, int,
- CONST COLORREF *);
- WINGDIAPI int WINAPI wglGetLayerPaletteEntries(HDC, int, int, int,
- COLORREF *);
- WINGDIAPI BOOL WINAPI wglRealizeLayerPalette(HDC, int, BOOL);
- WINGDIAPI BOOL WINAPI wglSwapLayerBuffers(HDC, UINT);
- #if (WINVER >= 0x0500)
- typedef struct _WGLSWAP
- {
- HDC hdc;
- UINT uiFlags;
- } WGLSWAP, *PWGLSWAP, FAR *LPWGLSWAP;
- #define WGL_SWAPMULTIPLE_MAX 16
- WINGDIAPI DWORD WINAPI wglSwapMultipleBuffers(UINT, CONST WGLSWAP *);
- #endif // (WINVER >= 0x0500)
- #endif /* NOGDI */
- #ifdef __cplusplus
- }
- #endif
- #endif /* _WINGDI_ */