reactos/sdk/include/psdk/wingdi.h
James Tabor fc16259faf [GDI32] Update Wine Metafile Code
Sync/Port: Metafile code from wine.

Patches by Jacek Caban, Daniel Lehman, Zhiyi Zhang. Gabriel Ivancescu, Michael Stefaniuc, Francois Gouget, Nikolay Sivov Dmitry Timoshkov, Andrew EiKum, Piotr Caban and Alexandre Julliard.

This commit is dedicated to George Bisoc!
2021-09-27 16:18:20 -05:00

4516 lines
114 KiB
C

#ifndef _WINGDI_H
#define _WINGDI_H
#define _WINGDI_
#ifndef NOGDI
#ifdef __cplusplus
extern "C" {
#endif
#ifdef _MSC_VER
#pragma warning(push)
#pragma warning(disable:4201)
#pragma warning(disable:4820)
#endif
/* Get/SetSystemPaletteUse() values */
#define SYSPAL_ERROR 0
#define SYSPAL_STATIC 1
#define SYSPAL_NOSTATIC 2
#define SYSPAL_NOSTATIC256 3
#define WINGDIAPI
#define NTM_NONNEGATIVE_AC 0x00010000
#define NTM_PS_OPENTYPE 0x00020000
#define NTM_TT_OPENTYPE 0x00040000
#define NTM_MULTIPLEMASTER 0x00080000
#define NTM_TYPE1 0x00100000
#define NTM_DSIG 0x00200000
#define AC_SRC_OVER 0
#define AC_SRC_ALPHA 1
#define BI_RGB 0
#define BI_RLE8 1
#define BI_RLE4 2
#define BI_BITFIELDS 3
#define BI_JPEG 4
#define BI_PNG 5
#define LF_FACESIZE 32
#define LF_FULLFACESIZE 64
#define CA_NEGATIVE 1
#define CA_LOG_FILTER 2
#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
#define RGB_GAMMA_MIN 2500
#define RGB_GAMMA_MAX 65000
#define REFERENCE_WHITE_MIN 6000
#define REFERENCE_WHITE_MAX 10000
#define REFERENCE_BLACK_MIN 0
#define REFERENCE_BLACK_MAX 4000
#define COLOR_ADJ_MIN (-100)
#define COLOR_ADJ_MAX 100
#define CCHDEVICENAME 32
#define CCHFORMNAME 32
#define DI_COMPAT 4
#define DI_DEFAULTSIZE 8
#define DI_IMAGE 2
#define DI_MASK 1
#define DI_NORMAL 3
#define DI_APPBANDING 1
#define DI_NOMIRROR 16
#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
#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
#if (_WIN32_WINNT >= 0x0500)
#define EMR_DRAWESCAPE 105
#define EMR_EXTESCAPE 106
#define EMR_STARTDOC 107
#define EMR_SMALLTEXTOUT 108
#define EMR_FORCEUFIMAPPING 109
#define EMR_NAMEDESCAPE 110
#define EMR_COLORCORRECTPALETTE 111
#define EMR_SETICMPROFILEA 112
#define EMR_SETICMPROFILEW 113
#define EMR_ALPHABLEND 114
#define EMR_ALPHADIBBLEND 115
#define EMR_SETLAYOUT 115
#define EMR_TRANSPARENTBLT 116
#define EMR_TRANSPARENTDIB 117
#define EMR_RESERVED_117 117
#define EMR_GRADIENTFILL 118
#define EMR_SETLINKEDUFIS 119
#define EMR_SETTEXTJUSTIFICATION 120
#define EMR_COLORMATCHTOTARGETW 121
#define EMR_CREATECOLORSPACEW 122
#define EMR_MIN 1
#define EMR_MAX 122
#endif
#define ENHMETA_SIGNATURE 1179469088
#define EPS_SIGNATURE 0x46535045
#if (_WIN32_WINNT >= 0x0500)
#define FR_PRIVATE 0x10
#define FR_NOT_ENUM 0x20
#endif
#define META_SETBKCOLOR 0x201
#define META_SETBKMODE 0x102
#define META_SETMAPMODE 0x103
#define META_SETROP2 0x104
#define META_SETRELABS 0x105
#define META_SETPOLYFILLMODE 0x106
#define META_SETSTRETCHBLTMODE 0x107
#define META_SETTEXTCHAREXTRA 0x108
#define META_SETLAYOUT 0x149
#define META_SETTEXTCOLOR 0x209
#define META_SETTEXTJUSTIFICATION 0x20A
#define META_SETWINDOWORG 0x20B
#define META_SETWINDOWEXT 0x20C
#define META_SETVIEWPORTORG 0x20D
#define META_SETVIEWPORTEXT 0x20E
#define META_OFFSETWINDOWORG 0x20F
#define META_SCALEWINDOWEXT 0x410
#define META_OFFSETVIEWPORTORG 0x211
#define META_SCALEVIEWPORTEXT 0x412
#define META_LINETO 0x213
#define META_MOVETO 0x214
#define META_EXCLUDECLIPRECT 0x415
#define META_INTERSECTCLIPRECT 0x416
#define META_ARC 0x817
#define META_ELLIPSE 0x418
#define META_FLOODFILL 0x419
#define META_PIE 0x81A
#define META_RECTANGLE 0x41B
#define META_ROUNDRECT 0x61C
#define META_PATBLT 0x61D
#define META_SAVEDC 0x1E
#define META_SETPIXEL 0x41F
#define META_OFFSETCLIPRGN 0x220
#define META_TEXTOUT 0x521
#define META_BITBLT 0x922
#define META_STRETCHBLT 0xB23
#define META_POLYGON 0x324
#define META_POLYLINE 0x325
#define META_ESCAPE 0x626
#define META_RESTOREDC 0x127
#define META_FILLREGION 0x228
#define META_FRAMEREGION 0x429
#define META_INVERTREGION 0x12A
#define META_PAINTREGION 0x12B
#define META_SELECTCLIPREGION 0x12C
#define META_SELECTOBJECT 0x12D
#define META_SETTEXTALIGN 0x12E
#define META_CHORD 0x830
#define META_SETMAPPERFLAGS 0x231
#define META_EXTTEXTOUT 0xa32
#define META_SETDIBTODEV 0xd33
#define META_SELECTPALETTE 0x234
#define META_REALIZEPALETTE 0x35
#define META_ANIMATEPALETTE 0x436
#define META_SETPALENTRIES 0x37
#define META_POLYPOLYGON 0x538
#define META_RESIZEPALETTE 0x139
#define META_DIBBITBLT 0x940
#define META_DIBSTRETCHBLT 0xb41
#define META_DIBCREATEPATTERNBRUSH 0x142
#define META_STRETCHDIB 0xf43
#define META_EXTFLOODFILL 0x548
#define META_DELETEOBJECT 0x1f0
#define META_CREATEPALETTE 0xf7
#define META_CREATEPATTERNBRUSH 0x1F9
#define META_CREATEPENINDIRECT 0x2FA
#define META_CREATEFONTINDIRECT 0x2FB
#define META_CREATEBRUSHINDIRECT 0x2FC
#define META_CREATEREGION 0x6FF
#define META_DRAWTEXT 0x062F
#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_CREATEBRUSH 0x00F8
#define META_CREATEBITMAPINDIRECT 0x02FD
#define META_CREATEBITMAP 0x06FE
#define PT_MOVETO 6
#define PT_LINETO 2
#define PT_BEZIERTO 4
#define PT_CLOSEFIGURE 1
#define ELF_VENDOR_SIZE 4
#define ELF_VERSION 0
#define ELF_CULTURE_LATIN 0
#define PFD_TYPE_RGBA 0
#define PFD_TYPE_COLORINDEX 1
#define PFD_MAIN_PLANE 0
#define PFD_OVERLAY_PLANE 1
#define PFD_UNDERLAY_PLANE (-1)
#define PFD_DOUBLEBUFFER 1
#define PFD_STEREO 2
#define PFD_DRAW_TO_WINDOW 4
#define PFD_DRAW_TO_BITMAP 8
#define PFD_SUPPORT_GDI 16
#define PFD_SUPPORT_OPENGL 32
#define PFD_GENERIC_FORMAT 64
#define PFD_NEED_PALETTE 128
#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_COMPOSITION 0x00008000
#define PFD_DEPTH_DONTCARE 0x20000000
#define PFD_DOUBLEBUFFER_DONTCARE 0x40000000
#define PFD_STEREO_DONTCARE 0x80000000
#define SP_ERROR (-1)
#define SP_OUTOFDISK (-4)
#define SP_OUTOFMEMORY (-5)
#define SP_USERABORT (-3)
#define SP_APPABORT (-2)
#define BLACKNESS 0x42
#define NOTSRCERASE 0x1100A6
#define NOTSRCCOPY 0x330008
#define SRCERASE 0x440328
#define DSTINVERT 0x550009
#define PATINVERT 0x5A0049
#define SRCINVERT 0x660046
#define SRCAND 0x8800C6
#define MERGEPAINT 0xBB0226
#define MERGECOPY 0xC000CA
#define SRCCOPY 0xCC0020
#define SRCPAINT 0xEE0086
#define PATCOPY 0xF00021
#define PATPAINT 0xFB0A09
#define WHITENESS 0xFF0062
#define R2_BLACK 1
#define R2_COPYPEN 13
#define R2_MASKNOTPEN 3
#define R2_MASKPEN 9
#define R2_MASKPENNOT 5
#define R2_MERGENOTPEN 12
#define R2_MERGEPEN 15
#define R2_MERGEPENNOT 14
#define R2_NOP 11
#define R2_NOT 6
#define R2_NOTCOPYPEN 4
#define R2_NOTMASKPEN 8
#define R2_NOTMERGEPEN 2
#define R2_NOTXORPEN 10
#define R2_WHITE 16
#define R2_XORPEN 7
#define CM_OUT_OF_GAMUT 255
#define CM_IN_GAMUT 0
#define RGN_AND 1
#define RGN_COPY 5
#define RGN_DIFF 4
#define RGN_OR 2
#define RGN_XOR 3
#define NULLREGION 1
#define SIMPLEREGION 2
#define COMPLEXREGION 3
#define ERROR 0
#define CBM_INIT 4
#define DIB_PAL_COLORS 1
#define DIB_RGB_COLORS 0
#define FW_DONTCARE 0
#define FW_THIN 100
#define FW_EXTRALIGHT 200
#define FW_ULTRALIGHT FW_EXTRALIGHT
#define FW_LIGHT 300
#define FW_NORMAL 400
#define FW_REGULAR 400
#define FW_MEDIUM 500
#define FW_SEMIBOLD 600
#define FW_DEMIBOLD FW_SEMIBOLD
#define FW_BOLD 700
#define FW_EXTRABOLD 800
#define FW_ULTRABOLD FW_EXTRABOLD
#define FW_HEAVY 900
#define FW_BLACK FW_HEAVY
#define ANSI_CHARSET 0
#define DEFAULT_CHARSET 1
#define SYMBOL_CHARSET 2
#define SHIFTJIS_CHARSET 128
#define HANGEUL_CHARSET 129
#define HANGUL_CHARSET 129
#define GB2312_CHARSET 134
#define CHINESEBIG5_CHARSET 136
#define GREEK_CHARSET 161
#define TURKISH_CHARSET 162
#define HEBREW_CHARSET 177
#define ARABIC_CHARSET 178
#define BALTIC_CHARSET 186
#define RUSSIAN_CHARSET 204
#define THAI_CHARSET 222
#define EE_CHARSET 238
#define EASTEUROPE_CHARSET 238
#define OEM_CHARSET 255
#define JOHAB_CHARSET 130
#define VIETNAMESE_CHARSET 163
#define MAC_CHARSET 77
/* I don't know if the values of *_CHARSET macros are defined in Windows
* or if we can choose them as we want. -- srtxg
*/
#define VISCII_CHARSET (BYTE)240 /* viscii1.1-1 */
#define TCVN_CHARSET (BYTE)241 /* tcvn-0 */
#define KOI8_CHARSET (BYTE)242 /* koi8-{r,u,ru} */
#define ISO3_CHARSET (BYTE)243 /* iso8859-3 */
#define ISO4_CHARSET (BYTE)244 /* iso8859-4 */
#define ISO10_CHARSET (BYTE)245 /* iso8859-10 */
#define CELTIC_CHARSET (BYTE)246 /* iso8859-14 */
#define OUT_DEFAULT_PRECIS 0
#define OUT_STRING_PRECIS 1
#define OUT_CHARACTER_PRECIS 2
#define OUT_STROKE_PRECIS 3
#define OUT_TT_PRECIS 4
#define OUT_DEVICE_PRECIS 5
#define OUT_RASTER_PRECIS 6
#define OUT_TT_ONLY_PRECIS 7
#define OUT_OUTLINE_PRECIS 8
#define OUT_SCREEN_OUTLINE_PRECIS 9
#define OUT_PS_ONLY_PRECIS 10
#define CLIP_DEFAULT_PRECIS 0
#define CLIP_CHARACTER_PRECIS 1
#define CLIP_STROKE_PRECIS 2
#define CLIP_MASK 15
#define CLIP_LH_ANGLES 16
#define CLIP_TT_ALWAYS 32
#if (_WIN32_WINNT >= _WIN32_WINNT_LONGHORN)
#define CLIP_DFA_DISABLE 64
#endif
#define CLIP_EMBEDDED 128
#define DEFAULT_QUALITY 0
#define DRAFT_QUALITY 1
#define PROOF_QUALITY 2
#define NONANTIALIASED_QUALITY 3
#define ANTIALIASED_QUALITY 4
#define CLEARTYPE_QUALITY 5
#define CLEARTYPE_NATURAL_QUALITY 6
#define DEFAULT_PITCH 0
#define FIXED_PITCH 1
#define VARIABLE_PITCH 2
#define MONO_FONT 8
#define FF_DECORATIVE 80
#define FF_DONTCARE 0
#define FF_MODERN 48
#define FF_ROMAN 16
#define FF_SCRIPT 64
#define FF_SWISS 32
#define PANOSE_COUNT 10
#define PAN_FAMILYTYPE_INDEX 0
#define PAN_SERIFSTYLE_INDEX 1
#define PAN_WEIGHT_INDEX 2
#define PAN_PROPORTION_INDEX 3
#define PAN_CONTRAST_INDEX 4
#define PAN_STROKEVARIATION_INDEX 5
#define PAN_ARMSTYLE_INDEX 6
#define PAN_LETTERFORM_INDEX 7
#define PAN_MIDLINE_INDEX 8
#define PAN_XHEIGHT_INDEX 9
#define PAN_CULTURE_LATIN 0
#define PAN_ANY 0
#define PAN_NO_FIT 1
#define PAN_FAMILY_TEXT_DISPLAY 2
#define PAN_FAMILY_SCRIPT 3
#define PAN_FAMILY_DECORATIVE 4
#define PAN_FAMILY_PICTORIAL 5
#define PAN_SERIF_COVE 2
#define PAN_SERIF_OBTUSE_COVE 3
#define PAN_SERIF_SQUARE_COVE 4
#define PAN_SERIF_OBTUSE_SQUARE_COVE 5
#define PAN_SERIF_SQUARE 6
#define PAN_SERIF_THIN 7
#define PAN_SERIF_BONE 8
#define PAN_SERIF_EXAGGERATED 9
#define PAN_SERIF_TRIANGLE 10
#define PAN_SERIF_NORMAL_SANS 11
#define PAN_SERIF_OBTUSE_SANS 12
#define PAN_SERIF_PERP_SANS 13
#define PAN_SERIF_FLARED 14
#define PAN_SERIF_ROUNDED 15
#define PAN_WEIGHT_VERY_LIGHT 2
#define PAN_WEIGHT_LIGHT 3
#define PAN_WEIGHT_THIN 4
#define PAN_WEIGHT_BOOK 5
#define PAN_WEIGHT_MEDIUM 6
#define PAN_WEIGHT_DEMI 7
#define PAN_WEIGHT_BOLD 8
#define PAN_WEIGHT_HEAVY 9
#define PAN_WEIGHT_BLACK 10
#define PAN_WEIGHT_NORD 11
#define PAN_PROP_OLD_STYLE 2
#define PAN_PROP_MODERN 3
#define PAN_PROP_EVEN_WIDTH 4
#define PAN_PROP_EXPANDED 5
#define PAN_PROP_CONDENSED 6
#define PAN_PROP_VERY_EXPANDED 7
#define PAN_PROP_VERY_CONDENSED 8
#define PAN_PROP_MONOSPACED 9
#define PAN_CONTRAST_NONE 2
#define PAN_CONTRAST_VERY_LOW 3
#define PAN_CONTRAST_LOW 4
#define PAN_CONTRAST_MEDIUM_LOW 5
#define PAN_CONTRAST_MEDIUM 6
#define PAN_CONTRAST_MEDIUM_HIGH 7
#define PAN_CONTRAST_HIGH 8
#define PAN_CONTRAST_VERY_HIGH 9
#define PAN_STROKE_GRADUAL_DIAG 2
#define PAN_STROKE_GRADUAL_TRAN 3
#define PAN_STROKE_GRADUAL_VERT 4
#define PAN_STROKE_GRADUAL_HORZ 5
#define PAN_STROKE_RAPID_VERT 6
#define PAN_STROKE_RAPID_HORZ 7
#define PAN_STROKE_INSTANT_VERT 8
#define PAN_STRAIGHT_ARMS_HORZ 2
#define PAN_STRAIGHT_ARMS_WEDGE 3
#define PAN_STRAIGHT_ARMS_VERT 4
#define PAN_STRAIGHT_ARMS_SINGLE_SERIF 5
#define PAN_STRAIGHT_ARMS_DOUBLE_SERIF 6
#define PAN_BENT_ARMS_HORZ 7
#define PAN_BENT_ARMS_WEDGE 8
#define PAN_BENT_ARMS_VERT 9
#define PAN_BENT_ARMS_SINGLE_SERIF 10
#define PAN_BENT_ARMS_DOUBLE_SERIF 11
#define PAN_LETT_NORMAL_CONTACT 2
#define PAN_LETT_NORMAL_WEIGHTED 3
#define PAN_LETT_NORMAL_BOXED 4
#define PAN_LETT_NORMAL_FLATTENED 5
#define PAN_LETT_NORMAL_ROUNDED 6
#define PAN_LETT_NORMAL_OFF_CENTER 7
#define PAN_LETT_NORMAL_SQUARE 8
#define PAN_LETT_OBLIQUE_CONTACT 9
#define PAN_LETT_OBLIQUE_WEIGHTED 10
#define PAN_LETT_OBLIQUE_BOXED 11
#define PAN_LETT_OBLIQUE_FLATTENED 12
#define PAN_LETT_OBLIQUE_ROUNDED 13
#define PAN_LETT_OBLIQUE_OFF_CENTER 14
#define PAN_LETT_OBLIQUE_SQUARE 15
#define PAN_MIDLINE_STANDARD_TRIMMED 2
#define PAN_MIDLINE_STANDARD_POINTED 3
#define PAN_MIDLINE_STANDARD_SERIFED 4
#define PAN_MIDLINE_HIGH_TRIMMED 5
#define PAN_MIDLINE_HIGH_POINTED 6
#define PAN_MIDLINE_HIGH_SERIFED 7
#define PAN_MIDLINE_CONSTANT_TRIMMED 8
#define PAN_MIDLINE_CONSTANT_POINTED 9
#define PAN_MIDLINE_CONSTANT_SERIFED 10
#define PAN_MIDLINE_LOW_TRIMMED 11
#define PAN_MIDLINE_LOW_POINTED 12
#define PAN_MIDLINE_LOW_SERIFED 13
#define PAN_XHEIGHT_CONSTANT_SMALL 2
#define PAN_XHEIGHT_CONSTANT_STD 3
#define PAN_XHEIGHT_CONSTANT_LARGE 4
#define PAN_XHEIGHT_DUCKING_SMALL 5
#define PAN_XHEIGHT_DUCKING_STD 6
#define PAN_XHEIGHT_DUCKING_LARGE 7
#define FS_LATIN1 1
#define FS_LATIN2 2
#define FS_CYRILLIC 4
#define FS_GREEK 8
#define FS_TURKISH 16
#define FS_HEBREW 32
#define FS_ARABIC 64
#define FS_BALTIC 128
#define FS_VIETNAMESE 256
#define FS_THAI 0x10000
#define FS_JISJAPAN 0x20000
#define FS_CHINESESIMP 0x40000
#define FS_WANSUNG 0x80000
#define FS_CHINESETRAD 0x100000
#define FS_JOHAB 0x200000
#define FS_SYMBOL 0x80000000
#define HS_BDIAGONAL 3
#define HS_CROSS 4
#define HS_DIAGCROSS 5
#define HS_FDIAGONAL 2
#define HS_HORIZONTAL 0
#define HS_VERTICAL 1
#define HS_API_MAX 12
#define PS_GEOMETRIC 65536
#define PS_COSMETIC 0
#define PS_ALTERNATE 8
#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_USERSTYLE 7
#define PS_INSIDEFRAME 6
#define PS_ENDCAP_ROUND 0
#define PS_ENDCAP_SQUARE 256
#define PS_ENDCAP_FLAT 512
#define PS_JOIN_BEVEL 4096
#define PS_JOIN_MITER 8192
#define PS_JOIN_ROUND 0
#define PS_JOIN_MASK 0x0000F000
#define PS_STYLE_MASK 15
#define PS_ENDCAP_MASK 3840
#define PS_TYPE_MASK 983040
#define ALTERNATE 1
#define WINDING 2
#define POLYFILL_LAST 2
#define DC_BINNAMES 12
#define DC_BINS 6
#define DC_COPIES 18
#define DC_DRIVER 11
#define DC_DATATYPE_PRODUCED 21
#define DC_DUPLEX 7
#define DC_EMF_COMPLIANT 20
#define DC_ENUMRESOLUTIONS 13
#define DC_EXTRA 9
#define DC_FIELDS 1
#define DC_FILEDEPENDENCIES 14
#define DC_MAXEXTENT 5
#define DC_MINEXTENT 4
#define DC_ORIENTATION 17
#define DC_PAPERNAMES 16
#define DC_PAPERS 2
#define DC_PAPERSIZE 3
#define DC_SIZE 8
#define DC_TRUETYPE 15
#define DCTT_BITMAP 1
#define DCTT_DOWNLOAD 2
#define DCTT_SUBDEV 4
#define DCTT_DOWNLOAD_OUTLINE 8
#define DC_VERSION 10
#define DC_BINADJUST 19
#define DC_EMF_COMPLIANT 20
#define DC_DATATYPE_PRODUCED 21
#define DC_MANUFACTURER 23
#define DC_MODEL 24
#define DCBA_FACEUPNONE 0
#define DCBA_FACEUPCENTER 1
#define DCBA_FACEUPLEFT 2
#define DCBA_FACEUPRIGHT 3
#define DCBA_FACEDOWNNONE 256
#define DCBA_FACEDOWNCENTER 257
#define DCBA_FACEDOWNLEFT 258
#define DCBA_FACEDOWNRIGHT 259
#define FLOODFILLBORDER 0
#define FLOODFILLSURFACE 1
#define ETO_GRAYED 0x00001
#define ETO_OPAQUE 0x00002
#define ETO_CLIPPED 0x00004
#if (WINVER >= 0x0400)
#define ETO_GLYPH_INDEX 0x00010
#define ETO_RTLREADING 0x00080
#define ETO_NUMERICSLOCAL 0x00400
#define ETO_NUMERICSLATIN 0x00800
#define ETO_IGNORELANGUAGE 0x01000
#endif
#if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
#define ETO_PDY 0x02000
#endif
#if (_WIN32_WINNT >= _WIN32_WINNT_LONGHORN)
#define ETO_REVERSE_INDEX_MAP 0x10000
#endif
#define GDICOMMENT_WINDOWS_METAFILE (-2147483647)
#define GDICOMMENT_BEGINGROUP 2
#define GDICOMMENT_ENDGROUP 3
#define GDICOMMENT_MULTIFORMATS 1073741828
#define GDICOMMENT_IDENTIFIER 1128875079
#define AD_COUNTERCLOCKWISE 1
#define AD_CLOCKWISE 2
#define RDH_RECTANGLES 1
#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 128
#define GCPCLASS_PREBOUNDRTL 64
#define GCPCLASS_POSTBOUNDLTR 32
#define GCPCLASS_POSTBOUNDRTL 16
#define GCPGLYPH_LINKBEFORE 0x8000
#define GCPGLYPH_LINKAFTER 0x4000
#define DCB_DISABLE 8
#define DCB_ENABLE 4
#define DCB_RESET 1
#define DCB_SET 3
#define DCB_ACCUMULATE 2
#define DCB_DIRTY 2
#define OBJ_BRUSH 2
#define OBJ_PEN 1
#define OBJ_PAL 5
#define OBJ_FONT 6
#define OBJ_BITMAP 7
#define OBJ_EXTPEN 11
#define OBJ_REGION 8
#define OBJ_DC 3
#define OBJ_MEMDC 10
#define OBJ_METAFILE 9
#define OBJ_METADC 4
#define OBJ_ENHMETAFILE 13
#define OBJ_ENHMETADC 12
#define OBJ_COLORSPACE 14
#define DRIVERVERSION 0
#define TECHNOLOGY 2
#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
#define HORZSIZE 4
#define VERTSIZE 6
#define HORZRES 8
#define VERTRES 10
#define LOGPIXELSX 88
#define LOGPIXELSY 90
#define BITSPIXEL 12
#define PLANES 14
#define NUMBRUSHES 16
#define NUMPENS 18
#define NUMFONTS 22
#define NUMCOLORS 24
#define NUMMARKERS 20
#define ASPECTX 40
#define ASPECTY 42
#define ASPECTXY 44
#define PDEVICESIZE 26
#define CLIPCAPS 36
#define SIZEPALETTE 104
#define NUMRESERVED 106
#define COLORRES 108
#define PHYSICALWIDTH 110
#define PHYSICALHEIGHT 111
#define PHYSICALOFFSETX 112
#define PHYSICALOFFSETY 113
#define SCALINGFACTORX 114
#define SCALINGFACTORY 115
#define VREFRESH 116
#define DESKTOPHORZRES 118
#define DESKTOPVERTRES 117
#define BLTALIGNMENT 119
#define RASTERCAPS 38
#define RC_BANDING 2
#define RC_BITBLT 1
#define RC_BITMAP64 8
#define RC_DI_BITMAP 128
#define RC_DIBTODEV 512
#define RC_FLOODFILL 4096
#define RC_GDI20_OUTPUT 16
#define RC_PALETTE 256
#define RC_SCALING 4
#define RC_STRETCHBLT 2048
#define RC_STRETCHDIB 8192
#define RC_DEVBITS 0x8000
#define RC_OP_DX_OUTPUT 0x4000
#define CURVECAPS 28
#define CC_NONE 0
#define CC_CIRCLES 1
#define CC_PIE 2
#define CC_CHORD 4
#define CC_ELLIPSES 8
#define CC_WIDE 16
#define CC_STYLED 32
#define CC_WIDESTYLED 64
#define CC_INTERIORS 128
#define CC_ROUNDRECT 256
#define LINECAPS 30
#define LC_NONE 0
#define LC_POLYLINE 2
#define LC_MARKER 4
#define LC_POLYMARKER 8
#define LC_WIDE 16
#define LC_STYLED 32
#define LC_WIDESTYLED 64
#define LC_INTERIORS 128
#define POLYGONALCAPS 32
#define RC_BANDING 2
#define RC_BIGFONT 1024
#define RC_BITBLT 1
#define RC_BITMAP64 8
#define RC_DEVBITS 0x8000
#define RC_DI_BITMAP 128
#define RC_GDI20_OUTPUT 16
#define RC_GDI20_STATE 32
#define RC_NONE 0
#define RC_OP_DX_OUTPUT 0x4000
#define RC_PALETTE 256
#define RC_SAVEBITMAP 64
#define RC_SCALING 4
#define PC_NONE 0
#define PC_POLYGON 1
#define PC_POLYPOLYGON 256
#define PC_PATHS 512
#define PC_RECTANGLE 2
#define PC_WINDPOLYGON 4
#define PC_SCANLINE 8
#define PC_TRAPEZOID 4
#define PC_WIDE 16
#define PC_STYLED 32
#define PC_WIDESTYLED 64
#define PC_INTERIORS 128
#define PC_PATHS 512
#define TEXTCAPS 34
#define TC_OP_CHARACTER 1
#define TC_OP_STROKE 2
#define TC_CP_STROKE 4
#define TC_CR_90 8
#define TC_CR_ANY 16
#define TC_SF_X_YINDEP 32
#define TC_SA_DOUBLE 64
#define TC_SA_INTEGER 128
#define TC_SA_CONTIN 256
#define TC_EA_DOUBLE 512
#define TC_IA_ABLE 1024
#define TC_UA_ABLE 2048
#define TC_SO_ABLE 4096
#define TC_RA_ABLE 8192
#define TC_VA_ABLE 16384
#define TC_RESERVED 32768
#define TC_SCROLLBLT 65536
/* CLIPCAPS */
#define CP_NONE 0
#define CP_RECTANGLE 1
#define CP_REGION 2
#define GCP_DBCS 1
#define GCP_ERROR 0x8000
#define GCP_CLASSIN 0x80000
#define GCP_DIACRITIC 256
#define GCP_DISPLAYZWG 0x400000
#define GCP_GLYPHSHAPE 16
#define GCP_JUSTIFY 0x10000
#define GCP_JUSTIFYIN 0x200000
#define GCP_KASHIDA 1024
#define GCP_LIGATE 32
#define GCP_MAXEXTENT 0x100000
#define GCP_NEUTRALOVERRIDE 0x2000000
#define GCP_NUMERICOVERRIDE 0x1000000
#define GCP_NUMERICSLATIN 0x4000000
#define GCP_NUMERICSLOCAL 0x8000000
#define GCP_REORDER 2
#define GCP_SYMSWAPOFF 0x800000
#define GCP_USEKERNING 8
#define FLI_GLYPHS 0x40000
#define FLI_MASK 0x103b
#define GGO_METRICS 0
#define GGO_BITMAP 1
#define GGO_NATIVE 2
#define GGO_BEZIER 3
#define GGO_GRAY2_BITMAP 4
#define GGO_GRAY4_BITMAP 5
#define GGO_GRAY8_BITMAP 6
#define GGO_GLYPH_INDEX 128
#define GGO_UNHINTED 256
#ifdef __WINESRC__
#define WINE_GGO_GRAY16_BITMAP 0x10
#define WINE_GGO_HRGB_BITMAP 0x11
#define WINE_GGO_HBGR_BITMAP 0x12
#define WINE_GGO_VRGB_BITMAP 0x13
#define WINE_GGO_VBGR_BITMAP 0x14
#endif
#define GM_COMPATIBLE 1
#define GM_ADVANCED 2
#define GM_LAST 2
#define MM_ANISOTROPIC 8
#define MM_HIENGLISH 5
#define MM_HIMETRIC 3
#define MM_ISOTROPIC 7
#define MM_LOENGLISH 4
#define MM_LOMETRIC 2
#define MM_TEXT 1
#define MM_TWIPS 6
#define MM_MAX_FIXEDSCALE MM_TWIPS
#define MM_MIN MM_TEXT
#define MM_MAX MM_ANISOTROPIC
#define ABSOLUTE 1
#define RELATIVE 2
#define PC_EXPLICIT 2
#define PC_NOCOLLAPSE 4
#define PC_RESERVED 1
#define CLR_INVALID 0xFFFFFFFF
#define PT_MOVETO 6
#define PT_LINETO 2
#define PT_BEZIERTO 4
#define PT_CLOSEFIGURE 1
#define TT_AVAILABLE 1
#define TT_ENABLED 2
#ifdef __WINESRC__
#define WINE_TT_SUBPIXEL_RENDERING_ENABLED 0x4000
#define WINE_TT_HINTER_ENABLED 0x8000
#endif
#define BLACK_BRUSH 4
#define DKGRAY_BRUSH 3
#define GRAY_BRUSH 2
#define HOLLOW_BRUSH 5
#define LTGRAY_BRUSH 1
#define NULL_BRUSH 5
#define WHITE_BRUSH 0
#define BLACK_PEN 7
#define NULL_PEN 8
#define WHITE_PEN 6
#define ANSI_FIXED_FONT 11
#define ANSI_VAR_FONT 12
#define DEVICE_DEFAULT_FONT 14
#define DEFAULT_GUI_FONT 17
#define OEM_FIXED_FONT 10
#define SYSTEM_FONT 13
#define SYSTEM_FIXED_FONT 16
#define DEFAULT_PALETTE 15
#if (_WIN32_WINNT >= 0x0500)
#define DC_BRUSH 18
#define DC_PEN 19
#endif
#if (_WIN32_WINNT >= 0x0500)
#define STOCK_LAST 19
#elif (WINVER >= 0x0400)
#define STOCK_LAST 17
#else
#define STOCK_LAST 16
#endif
#define SYSPAL_NOSTATIC 2
#define SYSPAL_STATIC 1
#define SYSPAL_ERROR 0
#define TA_BASELINE 24
#define TA_BOTTOM 8
#define TA_TOP 0
#define TA_CENTER 6
#define TA_LEFT 0
#define TA_RIGHT 2
#define TA_RTLREADING 256
#define TA_NOUPDATECP 0
#define TA_UPDATECP 1
#define TA_MASK (TA_BASELINE+TA_CENTER+TA_UPDATECP+TA_RTLREADING)
#define VTA_BASELINE 24
#define VTA_CENTER 6
#define VTA_LEFT TA_BOTTOM
#define VTA_RIGHT TA_TOP
#define VTA_BOTTOM TA_RIGHT
#define VTA_TOP TA_LEFT
#define MWT_IDENTITY 1
#define MWT_LEFTMULTIPLY 2
#define MWT_RIGHTMULTIPLY 3
#define MWT_MIN MWT_IDENTITY
#define MWT_MAX MWT_RIGHTMULTIPLY
#define OPAQUE 2
#define TRANSPARENT 1
#define BKMODE_LAST 2
#define BLACKONWHITE 1
#define WHITEONBLACK 2
#define COLORONCOLOR 3
#define HALFTONE 4
#define MAXSTRETCHBLTMODE 4
#define STRETCH_ANDSCANS 1
#define STRETCH_DELETESCANS 3
#define STRETCH_HALFTONE 4
#define STRETCH_ORSCANS 2
#define TCI_SRCCHARSET 1
#define TCI_SRCCODEPAGE 2
#define TCI_SRCFONTSIG 3
#define TCI_SRCLOCALE 4096
#if (_WIN32_WINNT >= 0x0500)
#define SHADEBLENDCAPS 120
#define COLORMGMTCAPS 121
/* SHADEBLENDCAPS */
#define SB_NONE 0x00000000
#define SB_CONST_ALPHA 0x00000001
#define SB_PIXEL_ALPHA 0x00000002
#define SB_PREMULT_ALPHA 0x00000004
#define SB_GRAD_RECT 0x00000010
#define SB_GRAD_TRI 0x00000020
/* Color Management caps */
#define CM_NONE 0x00000000
#define CM_DEVICE_ICM 0x00000001
#define CM_GAMMA_RAMP 0x00000002
#define CM_CMYK_COLOR 0x00000004
#endif
#define ICM_ON 2
#define ICM_OFF 1
#define ICM_QUERY 3
#if (WINVER >= 0x0400)
typedef struct _DRAWPATRECT {
POINT ptPosition;
POINT ptSize;
WORD wStyle;
WORD wPattern;
} DRAWPATRECT, *PDRAWPATRECT;
#endif
#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 GETDEVICEUNITS 42
#define GETEXTENDEDTEXTMETRICS 256
#define GETEXTENTTABLE 257
#define GETPAIRKERNTABLE 258
#define GETTRACKKERNTABLE 259
#define EXTTEXTOUT 512
#define GETFACENAME 513
#define DOWNLOADFACE 514
#define ENABLERELATIVEWIDTHS 768
#define ENABLEPAIRKERNING 769
#define SETKERNTRACK 770
#define SETALLJUSTVALUES 771
#define SETCHARSET 772
#define STRETCHBLT 2048
#define METAFILE_DRIVER 2049
#define GETSETSCREENPARAMS 3072
#define QUERYDIBSUPPORT 3073
#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
#define SET_MIRROR_MODE 4110
#define OPENCHANNEL 4110
#define DOWNLOADHEADER 4111
#define CLOSECHANNEL 4112
#define POSTSCRIPT_PASSTHROUGH 4115
#define ENCAPSULATED_POSTSCRIPT 4116
#define POSTSCRIPT_IDENTIFY 4117
#define POSTSCRIPT_INJECTION 4118
#define CHECKJPEGFORMAT 4119
#define CHECKPNGFORMAT 4120
#define GET_PS_FEATURESETTING 4121
#define SPCLPASSTHROUGH2 4568
#define QDI_SETDIBITS 1
#define QDI_GETDIBITS 2
#define QDI_DIBTOSCREEN 4
#define QDI_STRETCHDIB 8
#define SP_NOTREPORTED 0x4000
#define PR_JOBSTATUS 0
#define ASPECT_FILTERING 1
#define GS_8BIT_INDICES 0x00000001
#define GGI_MARK_NONEXISTING_GLYPHS 0X0001
#define BS_SOLID 0
#define BS_NULL 1
#define BS_HOLLOW 1
#define BS_HATCHED 2
#define BS_PATTERN 3
#define BS_INDEXED 4
#define BS_DIBPATTERN 5
#define BS_DIBPATTERNPT 6
#define BS_PATTERN8X8 7
#define BS_DIBPATTERN8X8 8
#define BS_MONOPATTERN 9
#define LCS_CALIBRATED_RGB 0
#define LCS_DEVICE_RGB 1
#define LCS_DEVICE_CMYK 2
#define LCS_GM_BUSINESS 1
#define LCS_GM_GRAPHICS 2
#define LCS_GM_IMAGES 4
#define LCS_GM_ABS_COLORIMETRIC 8
#define LCS_SIGNATURE 0x50534F43 // 'PSOC'
#define LCS_sRGB 'sRGB'
#define LCS_WINDOWS_COLOR_SPACE 'Win '
#define RASTER_FONTTYPE 1
#define DEVICE_FONTTYPE 2
#define TRUETYPE_FONTTYPE 4
#define DMORIENT_PORTRAIT 1
#define DMORIENT_LANDSCAPE 2
#define DMPAPER_FIRST 1
#define DMPAPER_LETTER 1
#define DMPAPER_LETTERSMALL 2
#define DMPAPER_TABLOID 3
#define DMPAPER_LEDGER 4
#define DMPAPER_LEGAL 5
#define DMPAPER_STATEMENT 6
#define DMPAPER_EXECUTIVE 7
#define DMPAPER_A3 8
#define DMPAPER_A4 9
#define DMPAPER_A4SMALL 10
#define DMPAPER_A5 11
#define DMPAPER_B4 12
#define DMPAPER_B5 13
#define DMPAPER_FOLIO 14
#define DMPAPER_QUARTO 15
#define DMPAPER_10X14 16
#define DMPAPER_11X17 17
#define DMPAPER_NOTE 18
#define DMPAPER_ENV_9 19
#define DMPAPER_ENV_10 20
#define DMPAPER_ENV_11 21
#define DMPAPER_ENV_12 22
#define DMPAPER_ENV_14 23
#define DMPAPER_CSHEET 24
#define DMPAPER_DSHEET 25
#define DMPAPER_ESHEET 26
#define DMPAPER_ENV_DL 27
#define DMPAPER_ENV_C5 28
#define DMPAPER_ENV_C3 29
#define DMPAPER_ENV_C4 30
#define DMPAPER_ENV_C6 31
#define DMPAPER_ENV_C65 32
#define DMPAPER_ENV_B4 33
#define DMPAPER_ENV_B5 34
#define DMPAPER_ENV_B6 35
#define DMPAPER_ENV_ITALY 36
#define DMPAPER_ENV_MONARCH 37
#define DMPAPER_ENV_PERSONAL 38
#define DMPAPER_FANFOLD_US 39
#define DMPAPER_FANFOLD_STD_GERMAN 40
#define DMPAPER_FANFOLD_LGL_GERMAN 41
#define DMPAPER_ISO_B4 42
#define DMPAPER_JAPANESE_POSTCARD 43
#define DMPAPER_9X11 44
#define DMPAPER_10X11 45
#define DMPAPER_15X11 46
#define DMPAPER_ENV_INVITE 47
#define DMPAPER_RESERVED_48 48
#define DMPAPER_RESERVED_49 49
#define DMPAPER_LETTER_EXTRA 50
#define DMPAPER_LEGAL_EXTRA 51
#define DMPAPER_TABLOID_EXTRA 52
#define DMPAPER_A4_EXTRA 53
#define DMPAPER_LETTER_TRANSVERSE 54
#define DMPAPER_A4_TRANSVERSE 55
#define DMPAPER_LETTER_EXTRA_TRANSVERSE 56
#define DMPAPER_A_PLUS 57
#define DMPAPER_B_PLUS 58
#define DMPAPER_LETTER_PLUS 59
#define DMPAPER_A4_PLUS 60
#define DMPAPER_A5_TRANSVERSE 61
#define DMPAPER_B5_TRANSVERSE 62
#define DMPAPER_A3_EXTRA 63
#define DMPAPER_A5_EXTRA 64
#define DMPAPER_B5_EXTRA 65
#define DMPAPER_A2 66
#define DMPAPER_A3_TRANSVERSE 67
#define DMPAPER_A3_EXTRA_TRANSVERSE 68
#define DMPAPER_LAST 68
#define DMPAPER_USER 256
#define DMBIN_FIRST 1
#define DMBIN_UPPER 1
#define DMBIN_ONLYONE 1
#define DMBIN_LOWER 2
#define DMBIN_MIDDLE 3
#define DMBIN_MANUAL 4
#define DMBIN_ENVELOPE 5
#define DMBIN_ENVMANUAL 6
#define DMBIN_AUTO 7
#define DMBIN_TRACTOR 8
#define DMBIN_SMALLFMT 9
#define DMBIN_LARGEFMT 10
#define DMBIN_LARGECAPACITY 11
#define DMBIN_CASSETTE 14
#define DMBIN_FORMSOURCE 15
#define DMBIN_LAST 15
#define DMBIN_USER 256
#define DMRES_DRAFT (-1)
#define DMRES_LOW (-2)
#define DMRES_MEDIUM (-3)
#define DMRES_HIGH (-4)
#define DMCOLOR_MONOCHROME 1
#define DMCOLOR_COLOR 2
#define DMDUP_SIMPLEX 1
#define DMDUP_VERTICAL 2
#define DMDUP_HORIZONTAL 3
#define DMTT_BITMAP 1
#define DMTT_DOWNLOAD 2
#define DMTT_SUBDEV 3
#define DMTT_DOWNLOAD_OUTLINE 4
#define DMCOLLATE_FALSE 0
#define DMCOLLATE_TRUE 1
#define DMDO_DEFAULT 0
#define DMDO_90 1
#define DMDO_180 2
#define DMDO_270 3
#define DMDFO_DEFAULT 0
#define DMDFO_STRETCH 1
#define DMDFO_CENTER 2
#define DM_GRAYSCALE 0x00000001
#define DM_INTERLACED 0x00000002
#define DMDISPLAYFLAGS_TEXTMODE 0x00000004
#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
#if (WINVER >= 0x0500) || (_WIN32_WINNT >= _WIN32_WINNT_NT4)
#define DM_SPECVERSION 0x0401
#elif (WINVER >= 0x0400)
#define DM_SPECVERSION 0x0400
#else
#define DM_SPECVERSION 0x0320
#endif
#define DM_ORIENTATION 0x00000001
#define DM_PAPERSIZE 0x00000002
#define DM_PAPERLENGTH 0x00000004
#define DM_PAPERWIDTH 0x00000008
#define DM_SCALE 0x00000010
#define DM_POSITION 0x00000020
#define DM_NUP 0x00000040
#define DM_DISPLAYORIENTATION 0x00000080
#define DM_COPIES 0x00000100
#define DM_DEFAULTSOURCE 0x00000200
#define DM_PRINTQUALITY 0x00000400
#define DM_COLOR 0x00000800
#define DM_DUPLEX 0x00001000
#define DM_YRESOLUTION 0x00002000
#define DM_TTOPTION 0x00004000
#define DM_COLLATE 0x00008000
#define DM_FORMNAME 0x00010000
#define DM_LOGPIXELS 0x00020000
#define DM_BITSPERPEL 0x00040000
#define DM_PELSWIDTH 0x00080000
#define DM_PELSHEIGHT 0x00100000
#define DM_DISPLAYFLAGS 0x00200000
#define DM_DISPLAYFREQUENCY 0x00400000
#define DM_ICMMETHOD 0x00800000
#define DM_ICMINTENT 0x01000000
#define DM_MEDIATYPE 0x02000000
#define DM_DITHERTYPE 0x04000000
#define DM_PANNINGWIDTH 0x08000000
#define DM_PANNINGHEIGHT 0x10000000
#if (WINVER >= 0x0501)
#define DM_DISPLAYFIXEDOUTPUT 0x20000000
#endif
#define QDC_ALL_PATHS 0x00000001
#define DMICMMETHOD_NONE 1
#define DMICMMETHOD_SYSTEM 2
#define DMICMMETHOD_DRIVER 3
#define DMICMMETHOD_DEVICE 4
#define DMICMMETHOD_USER 256
#define DMICM_SATURATE 1
#define DMICM_CONTRAST 2
#define DMICM_COLORMETRIC 3
#define DMICM_USER 256
#define DMMEDIA_STANDARD 1
#define DMMEDIA_TRANSPARENCY 2
#define DMMEDIA_GLOSSY 3
#define DMMEDIA_USER 256
#define DMDITHER_NONE 1
#define DMDITHER_COARSE 2
#define DMDITHER_FINE 3
#define DMDITHER_LINEART 4
#define DMDITHER_ERRORDIFFUSION 5
#define DMDITHER_RESERVED6 6
#define DMDITHER_RESERVED7 7
#define DMDITHER_RESERVED8 8
#define DMDITHER_RESERVED9 9
#define DMDITHER_GRAYSCALE 10
#define DMDITHER_USER 256
#define GDI_ERROR 0xFFFFFFFF
#define HGDI_ERROR ((HANDLE)GDI_ERROR)
#define TMPF_FIXED_PITCH 1
#define TMPF_VECTOR 2
#define TMPF_TRUETYPE 4
#define TMPF_DEVICE 8
#define NTM_ITALIC 1
#define NTM_BOLD 32
#define NTM_REGULAR 64
#define TT_POLYGON_TYPE 24
#define TT_PRIM_LINE 1
#define TT_PRIM_QSPLINE 2
#define TT_PRIM_CSPLINE 3
#define FONTMAPPER_MAX 10
#define ENHMETA_STOCK_OBJECT 0x80000000
#define WGL_FONT_LINES 0
#define WGL_FONT_POLYGONS 1
#define LPD_DOUBLEBUFFER 1
#define LPD_STEREO 2
#define LPD_SUPPORT_GDI 16
#define LPD_SUPPORT_OPENGL 32
#define LPD_SHARE_DEPTH 64
#define LPD_SHARE_STENCIL 128
#define LPD_SHARE_ACCUM 256
#define LPD_SWAP_EXCHANGE 512
#define LPD_SWAP_COPY 1024
#define LPD_TRANSPARENT 4096
#define LPD_TYPE_RGBA 0
#define LPD_TYPE_COLORINDEX 1
#define WGL_SWAP_MAIN_PLANE 1
#define WGL_SWAP_OVERLAY1 2
#define WGL_SWAP_OVERLAY2 4
#define WGL_SWAP_OVERLAY3 8
#define WGL_SWAP_OVERLAY4 16
#define WGL_SWAP_OVERLAY5 32
#define WGL_SWAP_OVERLAY6 64
#define WGL_SWAP_OVERLAY7 128
#define WGL_SWAP_OVERLAY8 256
#define WGL_SWAP_OVERLAY9 512
#define WGL_SWAP_OVERLAY10 1024
#define WGL_SWAP_OVERLAY11 2048
#define WGL_SWAP_OVERLAY12 4096
#define WGL_SWAP_OVERLAY13 8192
#define WGL_SWAP_OVERLAY14 16384
#define WGL_SWAP_OVERLAY15 32768
#define WGL_SWAP_UNDERLAY1 65536
#define WGL_SWAP_UNDERLAY2 0x20000
#define WGL_SWAP_UNDERLAY3 0x40000
#define WGL_SWAP_UNDERLAY4 0x80000
#define WGL_SWAP_UNDERLAY5 0x100000
#define WGL_SWAP_UNDERLAY6 0x200000
#define WGL_SWAP_UNDERLAY7 0x400000
#define WGL_SWAP_UNDERLAY8 0x800000
#define WGL_SWAP_UNDERLAY9 0x1000000
#define WGL_SWAP_UNDERLAY10 0x2000000
#define WGL_SWAP_UNDERLAY11 0x4000000
#define WGL_SWAP_UNDERLAY12 0x8000000
#define WGL_SWAP_UNDERLAY13 0x10000000
#define WGL_SWAP_UNDERLAY14 0x20000000
#define WGL_SWAP_UNDERLAY15 0x40000000
#define AC_SRC_OVER 0
#define LAYOUT_LTR 0
#define LAYOUT_RTL 1 // Right to left
#define LAYOUT_BTT 2 // Bottom to top
#define LAYOUT_VBH 4 // Vertical before horizontal
#define LAYOUT_ORIENTATIONMASK (LAYOUT_RTL | LAYOUT_BTT | LAYOUT_VBH)
#define LAYOUT_BITMAPORIENTATIONPRESERVED 8
#define CAPTUREBLT 0x40000000
#define NOMIRRORBITMAP 0x80000000
#if (WINVER > 0x400)
#define CS_ENABLE 0x00000001
#define CS_DISABLE 0x00000002
#define CS_DELETE_TRANSFORM 0x00000003
#endif
#if (WINVER > 0x500)
#define GRADIENT_FILL_RECT_H 0x00
#define GRADIENT_FILL_RECT_V 0x01
#define GRADIENT_FILL_TRIANGLE 0x02
#define GRADIENT_FILL_OP_FLAG 0xff
#define COLORMATCHTOTARGET_EMBEDED 0x00000001
#define CREATECOLORSPACE_EMBEDED 0x00000001
#define SETICMPROFILE_EMBEDED 0x00000001
#endif
#define DISPLAY_DEVICE_ATTACHED_TO_DESKTOP 0x00000001
#define DISPLAY_DEVICE_MULTI_DRIVER 0x00000002
#define DISPLAY_DEVICE_PRIMARY_DEVICE 0x00000004
#define DISPLAY_DEVICE_MIRRORING_DRIVER 0x00000008
#define DISPLAY_DEVICE_VGA_COMPATIBLE 0x00000010
#define DISPLAY_DEVICE_REMOVABLE 0x00000020
#define DISPLAY_DEVICE_DISCONNECT 0x02000000
#define DISPLAY_DEVICE_REMOTE 0x04000000
#define DISPLAY_DEVICE_MODESPRUNED 0x08000000
#define DISPLAY_DEVICE_ACTIVE 0x00000001
#define DISPLAY_DEVICE_ATTACHED 0x00000002
#ifndef RC_INVOKED
typedef struct _ABC {
int abcA;
UINT abcB;
int abcC;
} ABC, *PABC, *LPABC;
typedef struct _ABCFLOAT {
FLOAT abcfA;
FLOAT abcfB;
FLOAT abcfC;
} ABCFLOAT, *PABCFLOAT, *LPABCFLOAT;
typedef struct tagBITMAP {
LONG bmType;
LONG bmWidth;
LONG bmHeight;
LONG bmWidthBytes;
WORD bmPlanes;
WORD bmBitsPixel;
LPVOID bmBits;
} BITMAP,*PBITMAP,*LPBITMAP;
typedef struct tagBITMAPCOREHEADER {
DWORD bcSize;
WORD bcWidth;
WORD bcHeight;
WORD bcPlanes;
WORD bcBitCount;
} BITMAPCOREHEADER,*LPBITMAPCOREHEADER,*PBITMAPCOREHEADER;
#include "pshpack1.h"
typedef struct tagRGBTRIPLE {
BYTE rgbtBlue;
BYTE rgbtGreen;
BYTE rgbtRed;
} RGBTRIPLE,*LPRGBTRIPLE;
#include "poppack.h"
#include "pshpack2.h"
typedef struct tagBITMAPFILEHEADER {
WORD bfType;
DWORD bfSize;
WORD bfReserved1;
WORD bfReserved2;
DWORD bfOffBits;
} BITMAPFILEHEADER,*LPBITMAPFILEHEADER,*PBITMAPFILEHEADER;
#include "poppack.h"
typedef struct _BITMAPCOREINFO {
BITMAPCOREHEADER bmciHeader;
RGBTRIPLE bmciColors[1];
} BITMAPCOREINFO,*LPBITMAPCOREINFO,*PBITMAPCOREINFO;
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,*LPBITMAPINFOHEADER,*PBITMAPINFOHEADER;
typedef struct tagRGBQUAD {
BYTE rgbBlue;
BYTE rgbGreen;
BYTE rgbRed;
BYTE rgbReserved;
} RGBQUAD,*LPRGBQUAD;
typedef struct tagBITMAPINFO {
BITMAPINFOHEADER bmiHeader;
RGBQUAD bmiColors[1];
} BITMAPINFO,*LPBITMAPINFO,*PBITMAPINFO;
typedef long FXPT16DOT16,*LPFXPT16DOT16;
typedef long FXPT2DOT30,*LPFXPT2DOT30;
typedef struct tagCIEXYZ {
FXPT2DOT30 ciexyzX;
FXPT2DOT30 ciexyzY;
FXPT2DOT30 ciexyzZ;
} CIEXYZ,*LPCIEXYZ;
typedef struct tagCIEXYZTRIPLE {
CIEXYZ ciexyzRed;
CIEXYZ ciexyzGreen;
CIEXYZ ciexyzBlue;
} CIEXYZTRIPLE,*LPCIEXYZTRIPLE;
typedef struct {
DWORD bV4Size;
LONG bV4Width;
LONG bV4Height;
WORD bV4Planes;
WORD bV4BitCount;
DWORD bV4V4Compression;
DWORD bV4SizeImage;
LONG bV4XPelsPerMeter;
LONG bV4YPelsPerMeter;
DWORD bV4ClrUsed;
DWORD bV4ClrImportant;
DWORD bV4RedMask;
DWORD bV4GreenMask;
DWORD bV4BlueMask;
DWORD bV4AlphaMask;
DWORD bV4CSType;
CIEXYZTRIPLE bV4Endpoints;
DWORD bV4GammaRed;
DWORD bV4GammaGreen;
DWORD bV4GammaBlue;
} BITMAPV4HEADER,*LPBITMAPV4HEADER,*PBITMAPV4HEADER;
#if (WINVER >= 0x500)
typedef struct {
DWORD bV5Size;
LONG bV5Width;
LONG bV5Height;
WORD bV5Planes;
WORD bV5BitCount;
DWORD bV5Compression;
DWORD bV5SizeImage;
LONG bV5XPelsPerMeter;
LONG bV5YPelsPerMeter;
DWORD bV5ClrUsed;
DWORD bV5ClrImportant;
DWORD bV5RedMask;
DWORD bV5GreenMask;
DWORD bV5BlueMask;
DWORD bV5AlphaMask;
DWORD bV5CSType;
CIEXYZTRIPLE bV5Endpoints;
DWORD bV5GammaRed;
DWORD bV5GammaGreen;
DWORD bV5GammaBlue;
DWORD bV5Intent;
DWORD bV5ProfileData;
DWORD bV5ProfileSize;
DWORD bV5Reserved;
} BITMAPV5HEADER,*LPBITMAPV5HEADER,*PBITMAPV5HEADER;
#endif
typedef struct tagFONTSIGNATURE {
DWORD fsUsb[4];
DWORD fsCsb[2];
} FONTSIGNATURE, *PFONTSIGNATURE,*LPFONTSIGNATURE;
typedef struct tagCHARSETINFO {
UINT ciCharset;
UINT ciACP;
FONTSIGNATURE fs;
} CHARSETINFO, *PCHARSETINFO, *LPCHARSETINFO;
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;
typedef struct _devicemodeA {
BYTE dmDeviceName[CCHDEVICENAME];
WORD dmSpecVersion;
WORD dmDriverVersion;
WORD dmSize;
WORD dmDriverExtra;
DWORD dmFields;
_ANONYMOUS_UNION union {
_ANONYMOUS_STRUCT struct {
short dmOrientation;
short dmPaperSize;
short dmPaperLength;
short dmPaperWidth;
short dmScale;
short dmCopies;
short dmDefaultSource;
short dmPrintQuality;
} DUMMYSTRUCTNAME1;
struct {
POINTL dmPosition;
DWORD dmDisplayOrientation;
DWORD dmDisplayFixedOutput;
} DUMMYSTRUCTNAME2;
} DUMMYUNIONNAME1;
short dmColor;
short dmDuplex;
short dmYResolution;
short dmTTOption;
short dmCollate;
BYTE dmFormName[CCHFORMNAME];
WORD dmLogPixels;
DWORD dmBitsPerPel;
DWORD dmPelsWidth;
DWORD dmPelsHeight;
_ANONYMOUS_UNION union {
DWORD dmDisplayFlags;
DWORD dmNup;
} DUMMYUNIONNAME2;
DWORD dmDisplayFrequency;
#if(WINVER >= 0x0400)
DWORD dmICMMethod;
DWORD dmICMIntent;
DWORD dmMediaType;
DWORD dmDitherType;
DWORD dmReserved1;
DWORD dmReserved2;
#if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400)
DWORD dmPanningWidth;
DWORD dmPanningHeight;
#endif
#endif /* WINVER >= 0x0400 */
} DEVMODEA,*LPDEVMODEA,*PDEVMODEA;
typedef struct _devicemodeW {
WCHAR dmDeviceName[CCHDEVICENAME];
WORD dmSpecVersion;
WORD dmDriverVersion;
WORD dmSize;
WORD dmDriverExtra;
DWORD dmFields;
_ANONYMOUS_UNION union {
_ANONYMOUS_STRUCT struct {
short dmOrientation;
short dmPaperSize;
short dmPaperLength;
short dmPaperWidth;
short dmScale;
short dmCopies;
short dmDefaultSource;
short dmPrintQuality;
} DUMMYSTRUCTNAME1;
struct {
POINTL dmPosition;
DWORD dmDisplayOrientation;
DWORD dmDisplayFixedOutput;
} DUMMYSTRUCTNAME2;
} DUMMYUNIONNAME1;
short dmColor;
short dmDuplex;
short dmYResolution;
short dmTTOption;
short dmCollate;
WCHAR dmFormName[CCHFORMNAME];
WORD dmLogPixels;
DWORD dmBitsPerPel;
DWORD dmPelsWidth;
DWORD dmPelsHeight;
_ANONYMOUS_UNION union {
DWORD dmDisplayFlags;
DWORD dmNup;
} DUMMYUNIONNAME2;
DWORD dmDisplayFrequency;
#if(WINVER >= 0x0400)
DWORD dmICMMethod;
DWORD dmICMIntent;
DWORD dmMediaType;
DWORD dmDitherType;
DWORD dmReserved1;
DWORD dmReserved2;
#if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400)
DWORD dmPanningWidth;
DWORD dmPanningHeight;
#endif
#endif /* WINVER >= 0x0400 */
} DEVMODEW,*LPDEVMODEW,*PDEVMODEW,*NPDEVMODEW;
typedef struct tagDIBSECTION {
BITMAP dsBm;
BITMAPINFOHEADER dsBmih;
DWORD dsBitfields[3];
HANDLE dshSection;
DWORD dsOffset;
} DIBSECTION,*PDIBSECTION,*LPDIBSECTION;
typedef struct _DOCINFOA {
int cbSize;
LPCSTR lpszDocName;
LPCSTR lpszOutput;
LPCSTR lpszDatatype;
DWORD fwType;
} DOCINFOA,*LPDOCINFOA;
typedef struct _DOCINFOW {
int cbSize;
LPCWSTR lpszDocName;
LPCWSTR lpszOutput;
LPCWSTR lpszDatatype;
DWORD fwType;
} DOCINFOW,*LPDOCINFOW;
typedef struct tagEMR {
DWORD iType;
DWORD nSize;
} EMR,*PEMR;
#if(WINVER >= 0x0400)
typedef struct tagEMRGLSRECORD {
EMR emr;
DWORD cbData;
BYTE Data[1];
} EMRGLSRECORD, *PEMRGLSRECORD;
typedef struct tagEMRGLSBOUNDEDRECORD {
EMR emr;
RECTL rclBounds;
DWORD cbData;
BYTE Data[1];
} EMRGLSBOUNDEDRECORD, *PEMRGLSBOUNDEDRECORD;
#endif
typedef struct tagEMRANGLEARC {
EMR emr;
POINTL ptlCenter;
DWORD nRadius;
FLOAT eStartAngle;
FLOAT eSweepAngle;
} EMRANGLEARC,*PEMRANGLEARC;
typedef struct tagEMRARC {
EMR emr;
RECTL rclBox;
POINTL ptlStart;
POINTL ptlEnd;
} EMRARC,*PEMRARC,EMRARCTO,*PEMRARCTO,EMRCHORD,*PEMRCHORD,EMRPIE,*PEMRPIE;
typedef struct _XFORM {
FLOAT eM11;
FLOAT eM12;
FLOAT eM21;
FLOAT eM22;
FLOAT eDx;
FLOAT eDy;
} XFORM,*PXFORM,*LPXFORM;
typedef struct tagEMRBITBLT {
EMR emr;
RECTL rclBounds;
LONG xDest;
LONG yDest;
LONG cxDest;
LONG cyDest;
DWORD dwRop;
LONG xSrc;
LONG ySrc;
XFORM xformSrc;
COLORREF crBkColorSrc;
DWORD iUsageSrc;
DWORD offBmiSrc;
DWORD cbBmiSrc;
DWORD offBitsSrc;
DWORD cbBitsSrc;
} EMRBITBLT,*PEMRBITBLT;
typedef struct tagLOGBRUSH {
UINT lbStyle;
COLORREF lbColor;
ULONG_PTR lbHatch;
} LOGBRUSH,*PLOGBRUSH,*LPLOGBRUSH;
typedef LOGBRUSH PATTERN,*PPATTERN,*LPPATTERN;
typedef struct tagLOGBRUSH32 {
UINT lbStyle;
COLORREF lbColor;
ULONG lbHatch;
} LOGBRUSH32, *PLOGBRUSH32;
typedef struct tagEMRCREATEBRUSHINDIRECT {
EMR emr;
DWORD ihBrush;
LOGBRUSH32 lb;
} EMRCREATEBRUSHINDIRECT,*PEMRCREATEBRUSHINDIRECT;
typedef LONG LCSCSTYPE;
typedef LONG LCSGAMUTMATCH;
typedef struct tagLOGCOLORSPACEA {
DWORD lcsSignature;
DWORD lcsVersion;
DWORD lcsSize;
LCSCSTYPE lcsCSType;
LCSGAMUTMATCH lcsIntent;
CIEXYZTRIPLE lcsEndpoints;
DWORD lcsGammaRed;
DWORD lcsGammaGreen;
DWORD lcsGammaBlue;
CHAR lcsFilename[MAX_PATH];
} LOGCOLORSPACEA,*LPLOGCOLORSPACEA;
typedef struct tagLOGCOLORSPACEW {
DWORD lcsSignature;
DWORD lcsVersion;
DWORD lcsSize;
LCSCSTYPE lcsCSType;
LCSGAMUTMATCH lcsIntent;
CIEXYZTRIPLE lcsEndpoints;
DWORD lcsGammaRed;
DWORD lcsGammaGreen;
DWORD lcsGammaBlue;
WCHAR lcsFilename[MAX_PATH];
} LOGCOLORSPACEW,*LPLOGCOLORSPACEW;
typedef struct tagEMRCREATECOLORSPACEW {
EMR emr;
DWORD ihCS;
LOGCOLORSPACEW lcs;
DWORD dwFlags;
DWORD cbData;
BYTE Data[1];
} EMRCREATECOLORSPACEW, *PEMRCREATECOLORSPACEW;
typedef struct tagEMRCREATECOLORSPACE {
EMR emr;
DWORD ihCS;
LOGCOLORSPACEA lcs;
} EMRCREATECOLORSPACE,*PEMRCREATECOLORSPACE;
typedef struct tagEMRCREATEDIBPATTERNBRUSHPT {
EMR emr;
DWORD ihBrush;
DWORD iUsage;
DWORD offBmi;
DWORD cbBmi;
DWORD offBits;
DWORD cbBits;
} EMRCREATEDIBPATTERNBRUSHPT,*PEMRCREATEDIBPATTERNBRUSHPT;
typedef struct tagEMRCREATEMONOBRUSH {
EMR emr;
DWORD ihBrush;
DWORD iUsage;
DWORD offBmi;
DWORD cbBmi;
DWORD offBits;
DWORD cbBits;
} EMRCREATEMONOBRUSH,*PEMRCREATEMONOBRUSH;
#ifndef _PALETTEENTRY_DEFINED
#define _PALETTEENTRY_DEFINED
typedef struct tagPALETTEENTRY {
BYTE peRed;
BYTE peGreen;
BYTE peBlue;
BYTE peFlags;
} PALETTEENTRY,*LPPALETTEENTRY,*PPALETTEENTRY;
#endif
#ifndef _LOGPALETTE_DEFINED
#define _LOGPALETTE_DEFINED
typedef struct tagLOGPALETTE {
WORD palVersion;
WORD palNumEntries;
_Field_size_opt_(palNumEntries) PALETTEENTRY palPalEntry[1];
} LOGPALETTE, *NPLOGPALETTE, *PLOGPALETTE, *LPLOGPALETTE;
#endif
typedef struct tagEMRCREATEPALETTE {
EMR emr;
DWORD ihPal;
LOGPALETTE lgpl;
} EMRCREATEPALETTE,*PEMRCREATEPALETTE;
typedef struct tagLOGPEN {
UINT lopnStyle;
POINT lopnWidth;
COLORREF lopnColor;
} LOGPEN,*PLOGPEN,*LPLOGPEN;
typedef struct tagEMRCREATEPEN {
EMR emr;
DWORD ihPen;
LOGPEN lopn;
} EMRCREATEPEN,*PEMRCREATEPEN;
typedef struct tagEMRELLIPSE {
EMR emr;
RECTL rclBox;
} EMRELLIPSE,*PEMRELLIPSE,EMRRECTANGLE,*PEMRRECTANGLE;
typedef struct tagEMREOF {
EMR emr;
DWORD nPalEntries;
DWORD offPalEntries;
DWORD nSizeLast;
} EMREOF,*PEMREOF;
typedef struct tagEMREXCLUDECLIPRECT {
EMR emr;
RECTL rclClip;
} EMREXCLUDECLIPRECT,*PEMREXCLUDECLIPRECT,EMRINTERSECTCLIPRECT,*PEMRINTERSECTCLIPRECT;
typedef struct tagPANOSE {
BYTE bFamilyType;
BYTE bSerifStyle;
BYTE bWeight;
BYTE bProportion;
BYTE bContrast;
BYTE bStrokeVariation;
BYTE bArmStyle;
BYTE bLetterform;
BYTE bMidline;
BYTE bXHeight;
} PANOSE, *LPPANOSE;
typedef struct tagLOGFONTA {
LONG lfHeight;
LONG lfWidth;
LONG lfEscapement;
LONG lfOrientation;
LONG lfWeight;
BYTE lfItalic;
BYTE lfUnderline;
BYTE lfStrikeOut;
BYTE lfCharSet;
BYTE lfOutPrecision;
BYTE lfClipPrecision;
BYTE lfQuality;
BYTE lfPitchAndFamily;
CHAR lfFaceName[LF_FACESIZE];
} LOGFONTA,*PLOGFONTA,*LPLOGFONTA;
typedef struct tagLOGFONTW {
LONG lfHeight;
LONG lfWidth;
LONG lfEscapement;
LONG lfOrientation;
LONG lfWeight;
BYTE lfItalic;
BYTE lfUnderline;
BYTE lfStrikeOut;
BYTE lfCharSet;
BYTE lfOutPrecision;
BYTE lfClipPrecision;
BYTE lfQuality;
BYTE lfPitchAndFamily;
WCHAR lfFaceName[LF_FACESIZE];
} LOGFONTW,*PLOGFONTW,*LPLOGFONTW;
typedef struct tagEXTLOGFONTA {
LOGFONTA elfLogFont;
BYTE elfFullName[LF_FULLFACESIZE];
BYTE elfStyle[LF_FACESIZE];
DWORD elfVersion;
DWORD elfStyleSize;
DWORD elfMatch;
DWORD elfReserved;
BYTE elfVendorId[ELF_VENDOR_SIZE];
DWORD elfCulture;
PANOSE elfPanose;
} EXTLOGFONTA,*PEXTLOGFONTA,*LPEXTLOGFONTA;
typedef struct tagEXTLOGFONTW {
LOGFONTW elfLogFont;
WCHAR elfFullName[LF_FULLFACESIZE];
WCHAR elfStyle[LF_FACESIZE];
DWORD elfVersion;
DWORD elfStyleSize;
DWORD elfMatch;
DWORD elfReserved;
BYTE elfVendorId[ELF_VENDOR_SIZE];
DWORD elfCulture;
PANOSE elfPanose;
} EXTLOGFONTW,*PEXTLOGFONTW,*LPEXTLOGFONTW;
typedef struct tagEMREXTCREATEFONTINDIRECTW {
EMR emr;
DWORD ihFont;
EXTLOGFONTW elfw;
} EMREXTCREATEFONTINDIRECTW,*PEMREXTCREATEFONTINDIRECTW;
typedef struct tagEXTLOGPEN {
DWORD elpPenStyle;
DWORD elpWidth;
UINT elpBrushStyle;
COLORREF elpColor;
ULONG_PTR elpHatch;
DWORD elpNumEntries;
DWORD elpStyleEntry[1];
} EXTLOGPEN,*PEXTLOGPEN,*LPEXTLOGPEN,*NPEXTLOGPEN;
typedef struct tagEMREXTCREATEPEN {
EMR emr;
DWORD ihPen;
DWORD offBmi;
DWORD cbBmi;
DWORD offBits;
DWORD cbBits;
EXTLOGPEN elp;
} EMREXTCREATEPEN,*PEMREXTCREATEPEN;
typedef struct tagEMREXTFLOODFILL {
EMR emr;
POINTL ptlStart;
COLORREF crColor;
DWORD iMode;
} EMREXTFLOODFILL,*PEMREXTFLOODFILL;
typedef struct tagEMREXTSELECTCLIPRGN {
EMR emr;
DWORD cbRgnData;
DWORD iMode;
BYTE RgnData[1];
} EMREXTSELECTCLIPRGN,*PEMREXTSELECTCLIPRGN;
typedef struct tagEMRTEXT {
POINTL ptlReference;
DWORD nChars;
DWORD offString;
DWORD fOptions;
RECTL rcl;
DWORD offDx;
} EMRTEXT,*PEMRTEXT;
typedef struct tagEMREXTTEXTOUTA {
EMR emr;
RECTL rclBounds;
DWORD iGraphicsMode;
FLOAT exScale;
FLOAT eyScale;
EMRTEXT emrtext;
} EMREXTTEXTOUTA,*PEMREXTTEXTOUTA,EMREXTTEXTOUTW,*PEMREXTTEXTOUTW;
typedef struct tagEMRFILLPATH {
EMR emr;
RECTL rclBounds;
} EMRFILLPATH,*PEMRFILLPATH,EMRSTROKEANDFILLPATH,*PEMRSTROKEANDFILLPATH,EMRSTROKEPATH,*PEMRSTROKEPATH;
typedef struct tagEMRFILLRGN {
EMR emr;
RECTL rclBounds;
DWORD cbRgnData;
DWORD ihBrush;
BYTE RgnData[1];
} EMRFILLRGN,*PEMRFILLRGN;
typedef struct tagEMRFORMAT {
DWORD dSignature;
DWORD nVersion;
DWORD cbData;
DWORD offData;
} EMRFORMAT, *PEMRFORMAT;
typedef struct tagEMRSETCOLORSPACE
{
EMR emr;
DWORD ihCS;
} EMRSETCOLORSPACE, *PEMRSETCOLORSPACE, EMRSELECTCOLORSPACE, *PEMRSELECTCOLORSPACE,
EMRDELETECOLORSPACE, *PEMRDELETECOLORSPACE;
typedef struct tagEMRFRAMERGN {
EMR emr;
RECTL rclBounds;
DWORD cbRgnData;
DWORD ihBrush;
SIZEL szlStroke;
BYTE RgnData[1];
} EMRFRAMERGN,*PEMRFRAMERGN;
typedef struct tagEMRGDICOMMENT {
EMR emr;
DWORD cbData;
BYTE Data[1];
} EMRGDICOMMENT,*PEMRGDICOMMENT;
typedef struct tagEMRINVERTRGN {
EMR emr;
RECTL rclBounds;
DWORD cbRgnData;
BYTE RgnData[1];
} EMRINVERTRGN,*PEMRINVERTRGN,EMRPAINTRGN,*PEMRPAINTRGN;
typedef struct tagEMRLINETO {
EMR emr;
POINTL ptl;
} EMRLINETO,*PEMRLINETO,EMRMOVETOEX,*PEMRMOVETOEX;
typedef struct tagEMRMASKBLT {
EMR emr;
RECTL rclBounds;
LONG xDest;
LONG yDest;
LONG cxDest;
LONG cyDest;
DWORD dwRop;
LONG xSrc;
LONG ySrc;
XFORM xformSrc;
COLORREF crBkColorSrc;
DWORD iUsageSrc;
DWORD offBmiSrc;
DWORD cbBmiSrc;
DWORD offBitsSrc;
DWORD cbBitsSrc;
LONG xMask;
LONG yMask;
DWORD iUsageMask;
DWORD offBmiMask;
DWORD cbBmiMask;
DWORD offBitsMask;
DWORD cbBitsMask;
} EMRMASKBLT,*PEMRMASKBLT;
typedef struct tagEMRMODIFYWORLDTRANSFORM {
EMR emr;
XFORM xform;
DWORD iMode;
} EMRMODIFYWORLDTRANSFORM,*PEMRMODIFYWORLDTRANSFORM;
typedef struct tagEMROFFSETCLIPRGN {
EMR emr;
POINTL ptlOffset;
} EMROFFSETCLIPRGN,*PEMROFFSETCLIPRGN;
typedef struct tagEMRPLGBLT {
EMR emr;
RECTL rclBounds;
POINTL aptlDest[3];
LONG xSrc;
LONG ySrc;
LONG cxSrc;
LONG cySrc;
XFORM xformSrc;
COLORREF crBkColorSrc;
DWORD iUsageSrc;
DWORD offBmiSrc;
DWORD cbBmiSrc;
DWORD offBitsSrc;
DWORD cbBitsSrc;
LONG xMask;
LONG yMask;
DWORD iUsageMask;
DWORD offBmiMask;
DWORD cbBmiMask;
DWORD offBitsMask;
DWORD cbBitsMask;
} EMRPLGBLT,*PEMRPLGBLT;
typedef struct tagEMRPOLYDRAW {
EMR emr;
RECTL rclBounds;
DWORD cptl;
POINTL aptl[1];
BYTE abTypes[1];
} EMRPOLYDRAW,*PEMRPOLYDRAW;
typedef struct tagEMRPOLYDRAW16 {
EMR emr;
RECTL rclBounds;
DWORD cpts;
POINTS apts[1];
BYTE abTypes[1];
} EMRPOLYDRAW16,*PEMRPOLYDRAW16;
typedef struct tagEMRPOLYLINE {
EMR emr;
RECTL rclBounds;
DWORD cptl;
POINTL aptl[1];
} EMRPOLYLINE,*PEMRPOLYLINE,EMRPOLYBEZIER,*PEMRPOLYBEZIER,EMRPOLYGON,*PEMRPOLYGON,EMRPOLYBEZIERTO,*PEMRPOLYBEZIERTO,EMRPOLYLINETO,*PEMRPOLYLINETO;
typedef struct tagEMRPOLYLINE16 {
EMR emr;
RECTL rclBounds;
DWORD cpts;
POINTS apts[1];
} EMRPOLYLINE16,*PEMRPOLYLINE16,EMRPOLYBEZIER16,*PEMRPOLYBEZIER16,EMRPOLYGON16,*PEMRPOLYGON16,EMRPOLYBEZIERTO16,*PEMRPOLYBEZIERTO16,EMRPOLYLINETO16,*PEMRPOLYLINETO16;
typedef struct tagEMRPOLYPOLYLINE {
EMR emr;
RECTL rclBounds;
DWORD nPolys;
DWORD cptl;
DWORD aPolyCounts[1];
POINTL aptl[1];
} EMRPOLYPOLYLINE,*PEMRPOLYPOLYLINE,EMRPOLYPOLYGON,*PEMRPOLYPOLYGON;
typedef struct tagEMRPOLYPOLYLINE16 {
EMR emr;
RECTL rclBounds;
DWORD nPolys;
DWORD cpts;
DWORD aPolyCounts[1];
POINTS apts[1];
} EMRPOLYPOLYLINE16,*PEMRPOLYPOLYLINE16,EMRPOLYPOLYGON16,*PEMRPOLYPOLYGON16;
typedef struct tagEMRPOLYTEXTOUTA {
EMR emr;
RECTL rclBounds;
DWORD iGraphicsMode;
FLOAT exScale;
FLOAT eyScale;
LONG cStrings;
EMRTEXT aemrtext[1];
} EMRPOLYTEXTOUTA,*PEMRPOLYTEXTOUTA,EMRPOLYTEXTOUTW,*PEMRPOLYTEXTOUTW;
typedef struct tagEMRRESIZEPALETTE {
EMR emr;
DWORD ihPal;
DWORD cEntries;
} EMRRESIZEPALETTE,*PEMRRESIZEPALETTE;
typedef struct tagEMRRESTOREDC {
EMR emr;
LONG iRelative;
} EMRRESTOREDC,*PEMRRESTOREDC;
typedef struct tagEMRROUNDRECT {
EMR emr;
RECTL rclBox;
SIZEL szlCorner;
} EMRROUNDRECT,*PEMRROUNDRECT;
typedef struct tagEMRSCALEVIEWPORTEXTEX {
EMR emr;
LONG xNum;
LONG xDenom;
LONG yNum;
LONG yDenom;
} EMRSCALEVIEWPORTEXTEX,*PEMRSCALEVIEWPORTEXTEX,EMRSCALEWINDOWEXTEX,*PEMRSCALEWINDOWEXTEX;
typedef struct tagEMRSELECTOBJECT {
EMR emr;
DWORD ihObject;
} EMRSELECTOBJECT,*PEMRSELECTOBJECT,EMRDELETEOBJECT,*PEMRDELETEOBJECT;
typedef struct tagEMRSELECTPALETTE {
EMR emr;
DWORD ihPal;
} EMRSELECTPALETTE,*PEMRSELECTPALETTE;
typedef struct tagEMRSETARCDIRECTION {
EMR emr;
DWORD iArcDirection;
} EMRSETARCDIRECTION,*PEMRSETARCDIRECTION;
typedef struct tagEMRSETTEXTCOLOR {
EMR emr;
COLORREF crColor;
} EMRSETBKCOLOR,*PEMRSETBKCOLOR,EMRSETTEXTCOLOR,*PEMRSETTEXTCOLOR;
typedef struct tagEMRSETCOLORADJUSTMENT {
EMR emr;
COLORADJUSTMENT ColorAdjustment;
} EMRSETCOLORADJUSTMENT,*PEMRSETCOLORADJUSTMENT;
typedef struct tagEMRSETDIBITSTODEVICE {
EMR emr;
RECTL rclBounds;
LONG xDest;
LONG yDest;
LONG xSrc;
LONG ySrc;
LONG cxSrc;
LONG cySrc;
DWORD offBmiSrc;
DWORD cbBmiSrc;
DWORD offBitsSrc;
DWORD cbBitsSrc;
DWORD iUsageSrc;
DWORD iStartScan;
DWORD cScans;
} EMRSETDIBITSTODEVICE,*PEMRSETDIBITSTODEVICE;
typedef struct tagEMRSETMAPPERFLAGS {
EMR emr;
DWORD dwFlags;
} EMRSETMAPPERFLAGS,*PEMRSETMAPPERFLAGS;
typedef struct tagEMRSETMITERLIMIT {
EMR emr;
FLOAT eMiterLimit;
} EMRSETMITERLIMIT,*PEMRSETMITERLIMIT;
typedef struct tagEMRSETPALETTEENTRIES {
EMR emr;
DWORD ihPal;
DWORD iStart;
DWORD cEntries;
PALETTEENTRY aPalEntries[1];
} EMRSETPALETTEENTRIES,*PEMRSETPALETTEENTRIES;
typedef struct tagEMRSETPIXELV {
EMR emr;
POINTL ptlPixel;
COLORREF crColor;
} EMRSETPIXELV,*PEMRSETPIXELV;
typedef struct tagEMRSETVIEWPORTEXTEX {
EMR emr;
SIZEL szlExtent;
} EMRSETVIEWPORTEXTEX,*PEMRSETVIEWPORTEXTEX,EMRSETWINDOWEXTEX,*PEMRSETWINDOWEXTEX;
typedef struct tagEMRSETVIEWPORTORGEX {
EMR emr;
POINTL ptlOrigin;
} EMRSETVIEWPORTORGEX,*PEMRSETVIEWPORTORGEX,EMRSETWINDOWORGEX,*PEMRSETWINDOWORGEX,EMRSETBRUSHORGEX,*PEMRSETBRUSHORGEX;
typedef struct tagEMRSETWORLDTRANSFORM {
EMR emr;
XFORM xform;
} EMRSETWORLDTRANSFORM,*PEMRSETWORLDTRANSFORM;
typedef struct tagEMRSTRETCHBLT {
EMR emr;
RECTL rclBounds;
LONG xDest;
LONG yDest;
LONG cxDest;
LONG cyDest;
DWORD dwRop;
LONG xSrc;
LONG ySrc;
XFORM xformSrc;
COLORREF crBkColorSrc;
DWORD iUsageSrc;
DWORD offBmiSrc;
DWORD cbBmiSrc;
DWORD offBitsSrc;
DWORD cbBitsSrc;
LONG cxSrc;
LONG cySrc;
} EMRSTRETCHBLT,*PEMRSTRETCHBLT;
typedef struct tagEMRALPHABLEND {
EMR emr;
RECTL rclBounds;
LONG xDest;
LONG yDest;
LONG cxDest;
LONG cyDest;
DWORD dwRop;
LONG xSrc;
LONG ySrc;
XFORM xformSrc;
COLORREF crBkColorSrc;
DWORD iUsageSrc;
DWORD offBmiSrc;
DWORD cbBmiSrc;
DWORD offBitsSrc;
DWORD cbBitsSrc;
LONG cxSrc;
LONG cySrc;
} EMRALPHABLEND, *PEMRALPHABLEND;
typedef struct tagEMRSTRETCHDIBITS {
EMR emr;
RECTL rclBounds;
LONG xDest;
LONG yDest;
LONG xSrc;
LONG ySrc;
LONG cxSrc;
LONG cySrc;
DWORD offBmiSrc;
DWORD cbBmiSrc;
DWORD offBitsSrc;
DWORD cbBitsSrc;
DWORD iUsageSrc;
DWORD dwRop;
LONG cxDest;
LONG cyDest;
} EMRSTRETCHDIBITS,*PEMRSTRETCHDIBITS;
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,
EMRSETPOLYFILLMODE, *PEMRSETPOLYFILLMODE, EMRSETROP2, *PEMRSETROP2, EMRSETSTRETCHBLTMODE, *PEMRSETSTRETCHBLTMODE,
EMRSETICMMODE, *PEMRSETICMMODE, EMRSETTEXTALIGN,
#if(WINVER >= 0x0500)
EMRSETLAYOUT, *PEMRSETLAYOUT,
#endif
*PEMRSETTEXTALIGN;
#include "pshpack2.h"
typedef struct tagMETAHEADER {
WORD mtType;
WORD mtHeaderSize;
WORD mtVersion;
DWORD mtSize;
WORD mtNoObjects;
DWORD mtMaxRecord;
WORD mtNoParameters;
} METAHEADER,*PMETAHEADER,*LPMETAHEADER;
#include "poppack.h"
typedef struct tagENHMETAHEADER {
DWORD iType;
DWORD nSize;
RECTL rclBounds;
RECTL rclFrame;
DWORD dSignature;
DWORD nVersion;
DWORD nBytes;
DWORD nRecords;
WORD nHandles;
WORD sReserved;
DWORD nDescription;
DWORD offDescription;
DWORD nPalEntries;
SIZEL szlDevice;
SIZEL szlMillimeters;
#if (WINVER >= 0x0400)
DWORD cbPixelFormat;
DWORD offPixelFormat;
DWORD bOpenGL;
#endif
#if (WINVER >= 0x0500)
SIZEL szlMicrometers;
#endif
} ENHMETAHEADER,*PENHMETAHEADER,*LPENHMETAHEADER;
typedef struct tagMETARECORD {
DWORD rdSize;
WORD rdFunction;
WORD rdParm[1];
} METARECORD,*PMETARECORD,*LPMETARECORD;
typedef struct tagENHMETARECORD {
DWORD iType;
DWORD nSize;
DWORD dParm[1];
} ENHMETARECORD,*LPENHMETARECORD;
typedef struct tagHANDLETABLE {
HGDIOBJ objectHandle[1];
} HANDLETABLE,*PHANDLETABLE, *LPHANDLETABLE;
#ifndef _TEXTMETRIC_DEFINED
#define _TEXTMETRIC_DEFINED
typedef struct tagTEXTMETRICA {
LONG tmHeight;
LONG tmAscent;
LONG tmDescent;
LONG tmInternalLeading;
LONG tmExternalLeading;
LONG tmAveCharWidth;
LONG tmMaxCharWidth;
LONG tmWeight;
LONG tmOverhang;
LONG tmDigitizedAspectX;
LONG tmDigitizedAspectY;
BYTE tmFirstChar;
BYTE tmLastChar;
BYTE tmDefaultChar;
BYTE tmBreakChar;
BYTE tmItalic;
BYTE tmUnderlined;
BYTE tmStruckOut;
BYTE tmPitchAndFamily;
BYTE tmCharSet;
} TEXTMETRICA,*PTEXTMETRICA,*LPTEXTMETRICA;
typedef struct tagTEXTMETRICW {
LONG tmHeight;
LONG tmAscent;
LONG tmDescent;
LONG tmInternalLeading;
LONG tmExternalLeading;
LONG tmAveCharWidth;
LONG tmMaxCharWidth;
LONG tmWeight;
LONG tmOverhang;
LONG tmDigitizedAspectX;
LONG tmDigitizedAspectY;
WCHAR tmFirstChar;
WCHAR tmLastChar;
WCHAR tmDefaultChar;
WCHAR tmBreakChar;
BYTE tmItalic;
BYTE tmUnderlined;
BYTE tmStruckOut;
BYTE tmPitchAndFamily;
BYTE tmCharSet;
} TEXTMETRICW,*PTEXTMETRICW,*LPTEXTMETRICW;
#endif
typedef struct _RGNDATAHEADER {
DWORD dwSize;
DWORD iType;
DWORD nCount;
DWORD nRgnSize;
RECT rcBound;
} RGNDATAHEADER, *PRGNDATAHEADER;
typedef struct _RGNDATA {
RGNDATAHEADER rdh;
char Buffer[1];
} RGNDATA,*PRGNDATA, *LPRGNDATA;
/* for GetRandomRgn */
#define SYSRGN 4
typedef struct tagGCP_RESULTSA {
DWORD lStructSize;
LPSTR lpOutString;
UINT *lpOrder;
INT *lpDx;
INT *lpCaretPos;
LPSTR lpClass;
LPWSTR lpGlyphs;
UINT nGlyphs;
UINT nMaxFit;
} GCP_RESULTSA,*LPGCP_RESULTSA;
typedef struct tagGCP_RESULTSW {
DWORD lStructSize;
LPWSTR lpOutString;
UINT *lpOrder;
INT *lpDx;
INT *lpCaretPos;
LPWSTR lpClass;
LPWSTR lpGlyphs;
UINT nGlyphs;
UINT nMaxFit;
} GCP_RESULTSW,*LPGCP_RESULTSW;
typedef struct _GLYPHMETRICS {
UINT gmBlackBoxX;
UINT gmBlackBoxY;
POINT gmptGlyphOrigin;
short gmCellIncX;
short gmCellIncY;
} GLYPHMETRICS,*LPGLYPHMETRICS;
#if (_WIN32_WINNT >= 0x0500)
typedef struct tagWCRANGE
{
WCHAR wcLow;
USHORT cGlyphs;
} WCRANGE, *PWCRANGE, *LPWCRANGE;
typedef struct tagGLYPHSET
{
DWORD cbThis;
DWORD flAccel;
DWORD cGlyphsSupported;
DWORD cRanges;
WCRANGE ranges[1];
} GLYPHSET, *PGLYPHSET, *LPGLYPHSET;
#endif
typedef struct tagKERNINGPAIR {
WORD wFirst;
WORD wSecond;
int iKernAmount;
} KERNINGPAIR,*LPKERNINGPAIR;
typedef struct _FIXED {
WORD fract;
short value;
} FIXED;
typedef struct _MAT2 {
FIXED eM11;
FIXED eM12;
FIXED eM21;
FIXED eM22;
} MAT2,*LPMAT2;
typedef struct _OUTLINETEXTMETRICA {
UINT otmSize;
TEXTMETRICA 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 otmsUnderscoreSize;
int otmsUnderscorePosition;
PSTR otmpFamilyName;
PSTR otmpFaceName;
PSTR otmpStyleName;
PSTR otmpFullName;
} OUTLINETEXTMETRICA,*POUTLINETEXTMETRICA,*LPOUTLINETEXTMETRICA;
typedef struct _OUTLINETEXTMETRICW {
UINT otmSize;
TEXTMETRICW 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 otmsUnderscoreSize;
int otmsUnderscorePosition;
PSTR otmpFamilyName;
PSTR otmpFaceName;
PSTR otmpStyleName;
PSTR otmpFullName;
} OUTLINETEXTMETRICW,*POUTLINETEXTMETRICW,*LPOUTLINETEXTMETRICW;
typedef struct _RASTERIZER_STATUS {
short nSize;
short wFlags;
short nLanguageID;
} RASTERIZER_STATUS,*LPRASTERIZER_STATUS;
typedef struct _POLYTEXTA {
int x;
int y;
UINT n;
LPCSTR lpstr;
UINT uiFlags;
RECT rcl;
int *pdx;
} POLYTEXTA, *PPOLYTEXTA, *LPPOLYTEXTA;
typedef struct _POLYTEXTW {
int x;
int y;
UINT n;
LPCWSTR lpstr;
UINT uiFlags;
RECT rcl;
int *pdx;
} POLYTEXTW, *PPOLYTEXTW, *LPPOLYTEXTW;
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,*LPPIXELFORMATDESCRIPTOR;
typedef struct tagEMRPIXELFORMAT
{
EMR emr;
PIXELFORMATDESCRIPTOR pfd;
} EMRPIXELFORMAT, *PEMRPIXELFORMAT;
typedef struct tagMETAFILEPICT {
LONG mm;
LONG xExt;
LONG yExt;
HMETAFILE hMF;
} METAFILEPICT,*LPMETAFILEPICT;
typedef struct tagLOCALESIGNATURE {
DWORD lsUsb[4];
DWORD lsCsbDefault[2];
DWORD lsCsbSupported[2];
} LOCALESIGNATURE,*PLOCALESIGNATURE,*LPLOCALESIGNATURE;
typedef LONG LCSTYPE;
#include "pshpack4.h"
typedef struct tagNEWTEXTMETRICA {
LONG tmHeight;
LONG tmAscent;
LONG tmDescent;
LONG tmInternalLeading;
LONG tmExternalLeading;
LONG tmAveCharWidth;
LONG tmMaxCharWidth;
LONG tmWeight;
LONG tmOverhang;
LONG tmDigitizedAspectX;
LONG tmDigitizedAspectY;
BYTE tmFirstChar;
BYTE tmLastChar;
BYTE tmDefaultChar;
BYTE tmBreakChar;
BYTE tmItalic;
BYTE tmUnderlined;
BYTE tmStruckOut;
BYTE tmPitchAndFamily;
BYTE tmCharSet;
DWORD ntmFlags;
UINT ntmSizeEM;
UINT ntmCellHeight;
UINT ntmAvgWidth;
} NEWTEXTMETRICA,*PNEWTEXTMETRICA,*LPNEWTEXTMETRICA;
typedef struct tagNEWTEXTMETRICW {
LONG tmHeight;
LONG tmAscent;
LONG tmDescent;
LONG tmInternalLeading;
LONG tmExternalLeading;
LONG tmAveCharWidth;
LONG tmMaxCharWidth;
LONG tmWeight;
LONG tmOverhang;
LONG tmDigitizedAspectX;
LONG tmDigitizedAspectY;
WCHAR tmFirstChar;
WCHAR tmLastChar;
WCHAR tmDefaultChar;
WCHAR tmBreakChar;
BYTE tmItalic;
BYTE tmUnderlined;
BYTE tmStruckOut;
BYTE tmPitchAndFamily;
BYTE tmCharSet;
DWORD ntmFlags;
UINT ntmSizeEM;
UINT ntmCellHeight;
UINT ntmAvgWidth;
} NEWTEXTMETRICW,*PNEWTEXTMETRICW,*LPNEWTEXTMETRICW;
#include "poppack.h"
typedef struct tagNEWTEXTMETRICEXA {
NEWTEXTMETRICA ntmTm;
FONTSIGNATURE ntmFontSig;
} NEWTEXTMETRICEXA;
typedef struct tagNEWTEXTMETRICEXW {
NEWTEXTMETRICW ntmTm;
FONTSIGNATURE ntmFontSig;
} NEWTEXTMETRICEXW;
typedef struct tagPELARRAY {
LONG paXCount;
LONG paYCount;
LONG paXExt;
LONG paYExt;
BYTE paRGBs;
} PELARRAY,*PPELARRAY,*LPPELARRAY;
typedef struct tagENUMLOGFONTA {
LOGFONTA elfLogFont;
BYTE elfFullName[LF_FULLFACESIZE];
BYTE elfStyle[LF_FACESIZE];
} ENUMLOGFONTA,*LPENUMLOGFONTA;
typedef struct tagENUMLOGFONTW {
LOGFONTW elfLogFont;
WCHAR elfFullName[LF_FULLFACESIZE];
WCHAR elfStyle[LF_FACESIZE];
} ENUMLOGFONTW,*LPENUMLOGFONTW;
typedef struct tagENUMLOGFONTEXA {
LOGFONTA elfLogFont;
BYTE elfFullName[LF_FULLFACESIZE];
BYTE elfStyle[LF_FACESIZE];
BYTE elfScript[LF_FACESIZE];
} ENUMLOGFONTEXA,*LPENUMLOGFONTEXA;
typedef struct tagENUMLOGFONTEXW {
LOGFONTW elfLogFont;
WCHAR elfFullName[LF_FULLFACESIZE];
WCHAR elfStyle[LF_FACESIZE];
WCHAR elfScript[LF_FACESIZE];
} ENUMLOGFONTEXW,*LPENUMLOGFONTEXW;
typedef struct tagPOINTFX {
FIXED x;
FIXED y;
} POINTFX,*LPPOINTFX;
typedef struct tagTTPOLYCURVE {
WORD wType;
WORD cpfx;
POINTFX apfx[1];
} TTPOLYCURVE,*LPTTPOLYCURVE;
typedef struct tagTTPOLYGONHEADER {
DWORD cb;
DWORD dwType;
POINTFX pfxStart;
} TTPOLYGONHEADER,*LPTTPOLYGONHEADER;
typedef struct _POINTFLOAT {
FLOAT x;
FLOAT y;
} POINTFLOAT,*PPOINTFLOAT;
typedef struct _GLYPHMETRICSFLOAT {
FLOAT gmfBlackBoxX;
FLOAT gmfBlackBoxY;
POINTFLOAT gmfptGlyphOrigin;
FLOAT gmfCellIncX;
FLOAT gmfCellIncY;
} GLYPHMETRICSFLOAT,*PGLYPHMETRICSFLOAT,*LPGLYPHMETRICSFLOAT;
typedef struct tagLAYERPLANEDESCRIPTOR {
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,*LPLAYERPLANEDESCRIPTOR;
typedef struct _BLENDFUNCTION {
BYTE BlendOp;
BYTE BlendFlags;
BYTE SourceConstantAlpha;
BYTE AlphaFormat;
} BLENDFUNCTION,*PBLENDFUNCTION,*LPBLENDFUNCTION;
#define STAMP_DESIGNVECTOR (0x8000000 + 'd' + ('v' << 8))
#define STAMP_AXESLIST (0x8000000 + 'a' + ('l' << 8))
#define MM_MAX_NUMAXES 16
typedef struct _DESIGNVECTOR {
DWORD dvReserved;
DWORD dvNumAxes;
LONG dvValues[MM_MAX_NUMAXES];
} DESIGNVECTOR, *PDESIGNVECTOR, *LPDESIGNVECTOR;
typedef struct tagENUMLOGFONTEXDVA
{
ENUMLOGFONTEXA elfEnumLogfontEx;
DESIGNVECTOR elfDesignVector;
} ENUMLOGFONTEXDVA, *PENUMLOGFONTEXDVA, *LPENUMLOGFONTEXDVA;
typedef struct tagENUMLOGFONTEXDVW
{
ENUMLOGFONTEXW elfEnumLogfontEx;
DESIGNVECTOR elfDesignVector;
} ENUMLOGFONTEXDVW, *PENUMLOGFONTEXDVW, *LPENUMLOGFONTEXDVW;
typedef USHORT COLOR16;
typedef struct _TRIVERTEX {
LONG x;
LONG y;
COLOR16 Red;
COLOR16 Green;
COLOR16 Blue;
COLOR16 Alpha;
} TRIVERTEX, *PTRIVERTEX, *LPTRIVERTEX;
typedef struct tagEMRGRADIENTFILL {
EMR emr;
RECTL rclBounds;
DWORD nVer;
DWORD nTri;
ULONG ulMode;
TRIVERTEX Ver[1];
} EMRGRADIENTFILL, *PEMRGRADIENTFILL;
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 _DISPLAY_DEVICEA {
DWORD cb;
CHAR DeviceName[32];
CHAR DeviceString[128];
DWORD StateFlags;
CHAR DeviceID[128];
CHAR DeviceKey[128];
} DISPLAY_DEVICEA, *PDISPLAY_DEVICEA, *LPDISPLAY_DEVICEA;
typedef struct _DISPLAY_DEVICEW {
DWORD cb;
WCHAR DeviceName[32];
WCHAR DeviceString[128];
DWORD StateFlags;
WCHAR DeviceID[128];
WCHAR DeviceKey[128];
} DISPLAY_DEVICEW, *PDISPLAY_DEVICEW, *LPDISPLAY_DEVICEW;
#define MM_MAX_AXES_NAMELEN 16
typedef struct _AXISINFOA
{
LONG axMinValue;
LONG axMaxValue;
BYTE axAxisName[MM_MAX_AXES_NAMELEN];
} AXISINFOA, *PAXISINFOA, *LPAXISINFOA;
typedef struct _AXISINFOW
{
LONG axMinValue;
LONG axMaxValue;
WCHAR axAxisName[MM_MAX_AXES_NAMELEN];
} AXISINFOW, *PAXISINFOW, *LPAXISINFOW;
typedef struct _AXESLISTA
{
DWORD axlReserved;
DWORD axlNumAxes;
AXISINFOA axlAxisInfo[MM_MAX_NUMAXES];
} AXESLISTA, *PAXESLISTA, *LPAXESLISTA;
typedef struct _AXESLISTW
{
DWORD axlReserved;
DWORD axlNumAxes;
AXISINFOW axlAxisInfo[MM_MAX_NUMAXES];
} AXESLISTW, *PAXESLISTW, *LPAXESLISTW;
typedef struct _ENUMTEXTMETRICA
{
NEWTEXTMETRICEXA etmNewTextMetricEx;
AXESLISTA etmAxesList;
} ENUMTEXTMETRICA, *PENUMTEXTMETRICA, *LPENUMTEXTMETRICA;
typedef struct _ENUMTEXTMETRICW
{
NEWTEXTMETRICEXW etmNewTextMetricEx;
AXESLISTW etmAxesList;
} ENUMTEXTMETRICW, *PENUMTEXTMETRICW, *LPENUMTEXTMETRICW;
#if defined(STRICT)
#if !defined(NOTEXTMETRIC)
typedef int (CALLBACK *OLDFONTENUMPROCA)(CONST LOGFONTA *, CONST TEXTMETRICA *, DWORD, LPARAM);
typedef int (CALLBACK *OLDFONTENUMPROCW)(CONST LOGFONTW *, CONST TEXTMETRICW *, DWORD, LPARAM);
#else
typedef int (CALLBACK* OLDFONTENUMPROCA)(CONST LOGFONTA *, CONST VOID *, DWORD, LPARAM);
typedef int (CALLBACK* OLDFONTENUMPROCW)(CONST LOGFONTW *, CONST VOID *, DWORD, LPARAM);
#endif
#ifdef UNICODE
#define OLDFONTENUMPROC OLDFONTENUMPROCW
#else
#define OLDFONTENUMPROC OLDFONTENUMPROCA
#endif
typedef OLDFONTENUMPROCA FONTENUMPROCA;
typedef OLDFONTENUMPROCW FONTENUMPROCW;
#ifdef UNICODE
typedef FONTENUMPROCW FONTENUMPROC;
#else
typedef FONTENUMPROCA FONTENUMPROC;
#endif
typedef INT (CALLBACK *GOBJENUMPROC)(LPVOID, LPARAM);
typedef VOID (CALLBACK *LINEDDAPROC)(INT, INT, LPARAM);
#else // defined(STRICT)
typedef FARPROC OLDFONTENUMPROC;
typedef FARPROC FONTENUMPROCA;
typedef FARPROC FONTENUMPROCW;
#ifdef UNICODE
typedef FONTENUMPROCW FONTENUMPROC;
#else
typedef FONTENUMPROCA FONTENUMPROC;
#endif
typedef FARPROC GOBJENUMPROC;
typedef FARPROC LINEDDAPROC;
#endif
typedef BOOL (CALLBACK *ABORTPROC)(HDC,int);
typedef int
(CALLBACK *MFENUMPROC)(
_In_ HDC hdc,
_In_reads_(nObj) HANDLETABLE FAR* lpht,
_In_ METARECORD FAR* lpMR,
_In_ int nObj,
_In_opt_ LPARAM param);
typedef int
(CALLBACK *ENHMFENUMPROC)(
_In_ HDC hdc,
_In_reads_(nHandles) HANDLETABLE FAR* lpht,
_In_ CONST ENHMETARECORD * lpmr,
_In_ int nHandles,
_In_opt_ LPARAM data);
typedef int (CALLBACK *ICMENUMPROCA)(LPSTR,LPARAM);
typedef int (CALLBACK *ICMENUMPROCW)(LPWSTR,LPARAM);
typedef UINT (CALLBACK *LPFNDEVMODE)(HWND,HMODULE,LPDEVMODEA,LPSTR,LPSTR,LPDEVMODEA,LPSTR,UINT);
typedef DWORD (CALLBACK *LPFNDEVCAPS)(LPSTR,LPSTR,UINT,LPSTR,LPDEVMODEA);
#define GetRValue(rgb) ((BYTE)(rgb))
#define GetGValue(rgb) ((BYTE)(((WORD)(rgb)) >> 8))
#define GetBValue(rgb) ((BYTE)((rgb)>>16))
#define GetAValue(rgb) ((BYTE)((rgb)>>24))
#define RGB(r,g,b) ((COLORREF)(((BYTE)(r)|((WORD)((BYTE)(g))<<8))|(((DWORD)(BYTE)(b))<<16)))
#define RGBA(r,g,b,a) ((COLORREF)((((DWORD)(BYTE)(a))<<24) | RGB(r,g,b)))
#define PALETTERGB(r,g,b) (0x02000000 | RGB(r,g,b))
#define PALETTEINDEX(i) ((COLORREF)(0x01000000 | (DWORD)(WORD)(i)))
#define MAKEPOINTS(l) (*((POINTS*)&(l)))
#define MAKEROP4(f,b) (DWORD)((((b)<<8)&0xFF000000)|(f))
INT
WINAPI
AbortDoc(
_In_ HDC hdc);
BOOL
WINAPI
AbortPath(
_In_ HDC hdc);
int
WINAPI
AddFontResourceA(
_In_ LPCSTR pszFilename);
int
WINAPI
AddFontResourceW(
_In_ LPCWSTR pszFilename);
HANDLE
WINAPI
AddFontMemResourceEx(
_In_reads_bytes_(cjSize) PVOID pvFileView,
_In_ DWORD cjSize,
_Reserved_ PVOID pvResrved,
_In_ DWORD* pNumFonts);
INT
WINAPI
AddFontResourceExA(
_In_ LPCSTR pszFilename,
_In_ DWORD fl,
_Reserved_ PVOID pvReserved);
INT
WINAPI
AddFontResourceExW(
_In_ LPCWSTR pszFilename,
_In_ DWORD fl,
_Reserved_ PVOID pvReserved);
BOOL
WINAPI
AngleArc(
_In_ HDC hdc,
_In_ INT x,
_In_ INT y,
_In_ DWORD dwRadius,
_In_ FLOAT eStartAngle,
_In_ FLOAT eSweepAngle);
BOOL
WINAPI
AnimatePalette(
_In_ HPALETTE hPal,
_In_ UINT iStartIndex,
_In_ UINT cEntries,
_In_reads_(cEntries) CONST PALETTEENTRY *ppe);
BOOL
WINAPI
Arc(
_In_ HDC hdc,
_In_ INT xLeft,
_In_ INT yTop,
_In_ INT xRight,
_In_ INT yBottom,
_In_ INT xStartArc,
_In_ INT yStartArc,
_In_ INT xEndArc,
_In_ INT yEndArc);
BOOL
WINAPI
ArcTo(
_In_ HDC hdc,
_In_ INT xLeft,
_In_ INT yTop,
_In_ INT xRight,
_In_ INT yBottom,
_In_ INT xRadial1,
_In_ INT yRadial1,
_In_ INT xRadial2,
_In_ INT yRadial2);
BOOL
WINAPI
BeginPath(
_In_ HDC hdc);
BOOL
WINAPI
BitBlt(
_In_ HDC hdcDest,
_In_ INT xDest,
_In_ INT yDest,
_In_ INT cxDest,
_In_ INT cyDest,
_In_opt_ HDC hdcSrc,
_In_ INT xSrc,
_In_ INT ySrc,
_In_ DWORD dwRop);
BOOL
WINAPI
CancelDC(
_In_ HDC hdc);
BOOL
WINAPI
CheckColorsInGamut(
_In_ HDC hdc,
_In_reads_(nCount) LPVOID pRGBTriple,
_Out_writes_bytes_(nCount) LPVOID pvBuffer,
_In_ DWORD nCount);
BOOL
WINAPI
Chord(
_In_ HDC hdc,
_In_ INT xLeft,
_In_ INT yTop,
_In_ INT xRight,
_In_ INT yBottom,
_In_ INT xRadial1,
_In_ INT yRadial1,
_In_ INT xRadial2,
_In_ INT yRadial2);
int
WINAPI
ChoosePixelFormat(
_In_ HDC hdc,
_In_ const PIXELFORMATDESCRIPTOR* ppfd);
HENHMETAFILE
WINAPI
CloseEnhMetaFile(
_In_ HDC hdc);
BOOL
WINAPI
CloseFigure(
_In_ HDC hdc);
HMETAFILE
WINAPI
CloseMetaFile(
_In_ HDC hdc);
BOOL
WINAPI
ColorMatchToTarget(
_In_ HDC hdc,
_In_ HDC hdcTarget,
_In_ DWORD uAction);
int
WINAPI
CombineRgn(
_In_opt_ HRGN hrgnDest,
_In_opt_ HRGN hrgnSrc1,
_In_opt_ HRGN hrgnSrc2,
_In_ int fnCombineMode);
BOOL
WINAPI
CombineTransform(
_Out_ LPXFORM pxformResult,
_In_ const XFORM* pxform1,
_In_ const XFORM* pxform2);
HENHMETAFILE
WINAPI
CopyEnhMetaFileA(
_In_ HENHMETAFILE hemfSrc,
_In_opt_ LPCSTR pszFile);
HENHMETAFILE
WINAPI
CopyEnhMetaFileW(
_In_ HENHMETAFILE hemfSrc,
_In_opt_ LPCWSTR pszFile);
HMETAFILE
WINAPI
CopyMetaFileA(
_In_ HMETAFILE hmfSrc,
_In_opt_ LPCSTR pszFile);
HMETAFILE
WINAPI
CopyMetaFileW(
_In_ HMETAFILE hmfSrc,
_In_opt_ LPCWSTR pszFile);
HBITMAP
WINAPI
CreateBitmap(
_In_ INT cx,
_In_ INT cy,
_In_ UINT cPlanes,
_In_ UINT cBitsPerPel,
_In_opt_ const VOID* pvBits);
HBITMAP
WINAPI
CreateBitmapIndirect(
_In_ const BITMAP* pbm);
HBRUSH
WINAPI
CreateBrushIndirect(
_In_ const LOGBRUSH* plb);
HCOLORSPACE
WINAPI
CreateColorSpaceA(
_In_ LPLOGCOLORSPACEA pLogColorSpace);
HCOLORSPACE
WINAPI
CreateColorSpaceW(
_In_ LPLOGCOLORSPACEW pLogColorSpace);
HBITMAP
WINAPI
CreateCompatibleBitmap(
_In_ HDC hdc,
_In_ INT cx,
_In_ INT cy);
HDC
WINAPI
CreateCompatibleDC(
_In_opt_ HDC hdc);
HDC
WINAPI
CreateDCA(
_In_opt_ LPCSTR pszDriver,
_In_opt_ LPCSTR pszDevice,
_In_opt_ LPCSTR pszOutput,
_In_opt_ const DEVMODEA* pdmInit);
HDC
WINAPI
CreateDCW(
_In_opt_ LPCWSTR pszDriver,
_In_opt_ LPCWSTR pszDevice,
_In_opt_ LPCWSTR psz,
_In_opt_ const DEVMODEW* pdmInit);
HBITMAP
WINAPI
CreateDIBitmap(
_In_ HDC hdc,
_In_opt_ const BITMAPINFOHEADER* pbmih,
_In_ DWORD fdwInit,
_In_opt_ const VOID* pvInit,
_In_opt_ const BITMAPINFO* pbmi,
_In_ UINT uUsage);
HBRUSH
WINAPI
CreateDIBPatternBrush(
_In_ HGLOBAL hglbDIBPacked,
_In_ UINT uUsage);
HBRUSH
WINAPI
CreateDIBPatternBrushPt(
_In_ const VOID* pvPackedDIB,
_In_ UINT uUsage);
#define GDI_WIDTHBYTES(bits) ((DWORD)(((bits) + 31) & (~31)) / 8)
#define GDI_DIBWIDTHBYTES(bi) (DWORD)GDI_WIDTHBYTES((DWORD)(bi).biWidth * (DWORD)(bi).biBitCount)
#define GDI__DIBSIZE(bi) (GDI_DIBWIDTHBYTES(bi) * (DWORD)(bi).biHeight)
#define GDI_DIBSIZE(bi) ((bi).biHeight < 0 ? (-1) * (GDI__DIBSIZE(bi)) : GDI__DIBSIZE(bi))
_Success_(return != NULL)
HBITMAP
WINAPI
CreateDIBSection(
_In_opt_ HDC hdc,
_In_ const BITMAPINFO *pbmi,
_In_ UINT usage,
_When_((pbmi->bmiHeader.biBitCount != 0), _Outptr_result_bytebuffer_(GDI_DIBSIZE((pbmi->bmiHeader))))
_When_((pbmi->bmiHeader.biBitCount == 0), _Outptr_result_bytebuffer_((pbmi->bmiHeader).biSizeImage))
VOID **ppvBits,
_In_opt_ HANDLE hSection,
_In_ DWORD offset);
HBITMAP WINAPI CreateDiscardableBitmap(_In_ HDC, _In_ int, _In_ int);
HRGN WINAPI CreateEllipticRgn(_In_ int, _In_ int, _In_ int, _In_ int);
HRGN WINAPI CreateEllipticRgnIndirect(_In_ LPCRECT);
HDC WINAPI CreateEnhMetaFileA(_In_opt_ HDC, _In_opt_ LPCSTR, _In_opt_ LPCRECT, _In_opt_ LPCSTR);
HDC WINAPI CreateEnhMetaFileW(_In_opt_ HDC, _In_opt_ LPCWSTR, _In_opt_ LPCRECT, _In_opt_ LPCWSTR);
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_opt_ LPCSTR);
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_opt_ LPCWSTR);
HFONT WINAPI CreateFontIndirectA(_In_ const LOGFONTA*);
HFONT WINAPI CreateFontIndirectW(_In_ const LOGFONTW*);
HFONT WINAPI CreateFontIndirectExA(const ENUMLOGFONTEXDVA *);
HFONT WINAPI CreateFontIndirectExW(const ENUMLOGFONTEXDVW *);
HPALETTE WINAPI CreateHalftonePalette(_In_opt_ HDC);
HBRUSH WINAPI CreateHatchBrush(_In_ int, _In_ COLORREF);
HDC WINAPI CreateICA(_In_opt_ LPCSTR, _In_opt_ LPCSTR, _In_opt_ LPCSTR, _In_opt_ const DEVMODEA*);
HDC WINAPI CreateICW(_In_opt_ LPCWSTR, _In_opt_ LPCWSTR, _In_opt_ LPCWSTR, _In_opt_ const DEVMODEW*);
HDC WINAPI CreateMetaFileA(_In_opt_ LPCSTR);
HDC WINAPI CreateMetaFileW(_In_opt_ LPCWSTR);
HPALETTE
WINAPI
CreatePalette(
_In_reads_(_Inexpressible_(2*sizeof(WORD) + plpal->palNumEntries * sizeof(PALETTEENTRY))) const LOGPALETTE*);
HBRUSH WINAPI CreatePatternBrush(_In_ HBITMAP);
HPEN WINAPI CreatePen(_In_ int, _In_ int, _In_ COLORREF);
HPEN WINAPI CreatePenIndirect(_In_ const LOGPEN*);
HRGN
WINAPI
CreatePolygonRgn(
_In_reads_(cPoint) const POINT *pptl,
_In_ int cPoint,
_In_ int iMode);
HRGN
WINAPI
CreatePolyPolygonRgn(
_In_ const POINT *pptl,
_In_reads_(cPoly) const INT *pc,
_In_ int cPoly,
_In_ int iMode);
HRGN WINAPI CreateRectRgn(_In_ int, _In_ int, _In_ int, _In_ int);
HRGN WINAPI CreateRectRgnIndirect(_In_ LPCRECT);
HRGN WINAPI CreateRoundRectRgn(_In_ int, _In_ int, _In_ int, _In_ int, _In_ int, _In_ int);
BOOL WINAPI CreateScalableFontResourceA(_In_ DWORD, _In_ LPCSTR, _In_ LPCSTR, _In_opt_ LPCSTR);
BOOL WINAPI CreateScalableFontResourceW(_In_ DWORD, _In_ LPCWSTR, _In_ LPCWSTR, _In_opt_ LPCWSTR);
HBRUSH WINAPI CreateSolidBrush(_In_ COLORREF);
BOOL WINAPI DeleteColorSpace(_In_ HCOLORSPACE);
BOOL WINAPI DeleteDC(_In_ HDC);
BOOL WINAPI DeleteEnhMetaFile(_In_opt_ HENHMETAFILE);
BOOL WINAPI DeleteMetaFile(_In_ HMETAFILE);
BOOL WINAPI DeleteObject(_In_ HGDIOBJ);
int
WINAPI
DescribePixelFormat(
_In_ HDC hdc,
_In_ int iPixelFormat,
_In_ UINT nBytes,
_Out_writes_bytes_opt_(nBytes) LPPIXELFORMATDESCRIPTOR ppfd);
DWORD
WINAPI
DeviceCapabilitiesA(
_In_ LPCSTR pDevice,
_In_opt_ LPCSTR pPort,
_In_ WORD fwCapability,
_Out_writes_opt_(_Inexpressible_(1)) LPSTR pOutput,
_In_opt_ const DEVMODEA *pDevMode);
DWORD
WINAPI
DeviceCapabilitiesW(
_In_ LPCWSTR pDevice,
_In_opt_ LPCWSTR pPort,
_In_ WORD fwCapability,
_Out_writes_opt_(_Inexpressible_(1)) LPWSTR pOutput,
_In_opt_ const DEVMODEW *pDevMode);
BOOL
WINAPI
DPtoLP(
_In_ HDC hdc,
_Inout_updates_(c) LPPOINT lppt,
_In_ int c);
int
WINAPI
DrawEscape(
_In_ HDC hdc,
_In_ int iEscape,
_In_ int cjIn,
_In_reads_bytes_opt_(cjIn) LPCSTR lpIn);
BOOL WINAPI Ellipse(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int);
int WINAPI EndDoc(_In_ HDC);
int WINAPI EndPage(_In_ HDC);
BOOL WINAPI EndPath(_In_ HDC);
BOOL WINAPI EnumEnhMetaFile(_In_opt_ HDC, _In_ HENHMETAFILE, _In_ ENHMFENUMPROC, _In_opt_ PVOID, _In_opt_ LPCRECT);
int WINAPI EnumFontFamiliesA(_In_ HDC, _In_opt_ LPCSTR, _In_ FONTENUMPROCA, _In_ LPARAM);
int WINAPI EnumFontFamiliesW(_In_ HDC, _In_opt_ LPCWSTR, _In_ FONTENUMPROCW, _In_ LPARAM);
int WINAPI EnumFontFamiliesExA(_In_ HDC, _In_ PLOGFONTA, _In_ FONTENUMPROCA, _In_ LPARAM, _In_ DWORD);
int WINAPI EnumFontFamiliesExW(_In_ HDC, _In_ PLOGFONTW, _In_ FONTENUMPROCW, _In_ LPARAM, _In_ DWORD);
int WINAPI EnumFontsA(_In_ HDC, _In_opt_ LPCSTR, _In_ FONTENUMPROCA, _In_ LPARAM);
int WINAPI EnumFontsW(_In_ HDC, _In_opt_ LPCWSTR, _In_ FONTENUMPROCW, _In_ LPARAM);
int WINAPI EnumICMProfilesA(_In_ HDC, _In_ ICMENUMPROCA, _In_opt_ LPARAM);
int WINAPI EnumICMProfilesW(_In_ HDC, _In_ ICMENUMPROCW, _In_opt_ LPARAM);
BOOL WINAPI EnumMetaFile(_In_ HDC, _In_ HMETAFILE, _In_ MFENUMPROC, _In_opt_ LPARAM);
int WINAPI EnumObjects(_In_ HDC, _In_ int, _In_ GOBJENUMPROC, _In_ LPARAM);
BOOL WINAPI EqualRgn(_In_ HRGN, _In_ HRGN);
int
WINAPI
Escape(
_In_ HDC hdc,
_In_ int iEscape,
_In_ int cjIn,
_In_reads_bytes_opt_(cjIn) LPCSTR pvIn,
_Out_opt_ LPVOID pvOut);
int WINAPI ExcludeClipRect(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int);
int WINAPI ExcludeUpdateRgn(HDC,HWND);
HPEN
WINAPI
ExtCreatePen(
_In_ DWORD iPenStyle,
_In_ DWORD cWidth,
_In_ const LOGBRUSH *plbrush,
_In_ DWORD cStyle,
_In_reads_opt_(cStyle) const DWORD *pstyle);
HRGN
WINAPI
ExtCreateRegion(
_In_opt_ const XFORM *lpx,
_In_ DWORD nCount,
_In_reads_bytes_(nCount) const RGNDATA *lpData);
int
WINAPI
ExtEscape(
_In_ HDC hdc,
_In_ int iEscape,
_In_ int cjInput,
_In_reads_bytes_opt_(cjInput) LPCSTR lpInData,
_In_ int cjOutput,
_Out_writes_bytes_opt_(cjOutput) LPSTR lpOutData);
BOOL WINAPI ExtFloodFill(_In_ HDC, _In_ int, _In_ int, _In_ COLORREF, _In_ UINT);
int WINAPI ExtSelectClipRgn(_In_ HDC, _In_opt_ HRGN, _In_ int);
BOOL
WINAPI
ExtTextOutA(
_In_ HDC hdc,
_In_ int x,
_In_ int y,
_In_ UINT options,
_In_opt_ const RECT *lprect,
_In_reads_opt_(c) LPCSTR lpString,
_In_ UINT c,
_In_reads_opt_(c) const INT *lpDx);
BOOL
WINAPI
ExtTextOutW(
_In_ HDC hdc,
_In_ int x,
_In_ int y,
_In_ UINT options,
_In_opt_ const RECT *lprect,
_In_reads_opt_(c) LPCWSTR lpString,
_In_ UINT c,
_In_reads_opt_(c) const INT *lpDx);
BOOL WINAPI FillPath(_In_ HDC);
int WINAPI FillRect(HDC,LPCRECT,HBRUSH);
int WINAPI FillRgn(_In_ HDC, _In_ HRGN, _In_ HBRUSH);
BOOL WINAPI FixBrushOrgEx(_In_ HDC, _In_ int, _In_ int, _In_opt_ LPPOINT);
BOOL WINAPI FlattenPath(_In_ HDC);
BOOL WINAPI FloodFill(_In_ HDC, _In_ int, _In_ int, _In_ COLORREF);
BOOL WINAPI FrameRgn(_In_ HDC, _In_ HRGN, _In_ HBRUSH, _In_ int, _In_ int);
BOOL WINAPI GdiAlphaBlend(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ BLENDFUNCTION);
BOOL
WINAPI
GdiComment(
_In_ HDC hdc,
_In_ UINT nSize,
_In_reads_bytes_(nSize) const BYTE *lpData);
DEVMODEW * WINAPI GdiConvertToDevmodeW(const DEVMODEA *);
BOOL WINAPI GdiFlush(void);
LONG WINAPI GdiGetCharDimensions(HDC, LPTEXTMETRICW, LONG *);
DWORD WINAPI GdiGetCodePage(HDC);
DWORD WINAPI GdiGetBatchLimit(void);
DWORD WINAPI GdiSetBatchLimit(_In_ DWORD);
BOOL
WINAPI
GdiGradientFill(
_In_ HDC hdc,
_In_reads_(nVertex) PTRIVERTEX pVertex,
_In_ ULONG nVertex,
_In_ PVOID pMesh,
_In_ ULONG nCount,
_In_ ULONG ulMode);
BOOL WINAPI GdiTransparentBlt(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT);
BOOL WINAPI GdiIsMetaFileDC(HDC);
#define GetKValue(cmyk) ((BYTE)(cmyk))
#define GetYValue(cmyk) ((BYTE)((cmyk)>> 8))
#define GetMValue(cmyk) ((BYTE)((cmyk)>>16))
#define GetCValue(cmyk) ((BYTE)((cmyk)>>24))
#define CMYK(c,m,y,k) ((COLORREF)((((BYTE)(k)|((WORD)((BYTE)(y))<<8))|(((DWORD)(BYTE)(m))<<16))|(((DWORD)(BYTE)(c))<<24)))
int WINAPI GetArcDirection(_In_ HDC);
BOOL WINAPI GetAspectRatioFilterEx(_In_ HDC, _Out_ LPSIZE);
LONG
WINAPI
GetBitmapBits(
_In_ HBITMAP hbit,
_In_ LONG cb,
_Out_writes_bytes_(cb) LPVOID lpvBits);
BOOL WINAPI GetBitmapDimensionEx(_In_ HBITMAP, _Out_ LPSIZE);
COLORREF WINAPI GetBkColor(_In_ HDC);
int WINAPI GetBkMode(_In_ HDC);
UINT WINAPI GetBoundsRect(_In_ HDC, _Out_ LPRECT, _In_ UINT);
BOOL WINAPI GetBrushOrgEx(_In_ HDC, _Out_ LPPOINT);
BOOL
WINAPI
GetCharABCWidthsA(
_In_ HDC hdc,
_In_ UINT wFirst,
_In_ UINT wLast,
_Out_writes_(wLast - wFirst + 1) LPABC lpABC);
BOOL
WINAPI
GetCharABCWidthsW(
_In_ HDC hdc,
_In_ UINT wFirst,
_In_ UINT wLast,
_Out_writes_(wLast - wFirst + 1) LPABC lpABC);
BOOL
WINAPI
GetCharABCWidthsFloatA(
_In_ HDC hdc,
_In_ UINT iFirst,
_In_ UINT iLast,
_Out_writes_(iLast + 1 - iFirst) LPABCFLOAT lpABC);
BOOL
WINAPI
GetCharABCWidthsFloatW(
_In_ HDC hdc,
_In_ UINT iFirst,
_In_ UINT iLast,
_Out_writes_(iLast + 1 - iFirst) LPABCFLOAT lpABC);
BOOL
WINAPI
GetCharABCWidthsI(
_In_ HDC hdc,
_In_ UINT giFirst,
_In_ UINT cgi,
_In_reads_opt_(cgi) LPWORD pgi,
_Out_writes_(cgi) LPABC pabc);
DWORD
WINAPI
GetCharacterPlacementA(
_In_ HDC hdc,
_In_reads_(nCount) LPCSTR lpString,
_In_ int nCount,
_In_ int nMexExtent,
_Inout_ LPGCP_RESULTSA lpResults,
_In_ DWORD dwFlags);
DWORD
WINAPI
GetCharacterPlacementW(
_In_ HDC hdc,
_In_reads_(nCount) LPCWSTR lpString,
_In_ int nCount,
_In_ int nMexExtent,
_Inout_ LPGCP_RESULTSW lpResults,
_In_ DWORD dwFlags);
BOOL
WINAPI
GetCharWidth32A(
_In_ HDC hdc,
_In_ UINT iFirst,
_In_ UINT iLast,
_Out_writes_(iLast + 1 - iFirst) LPINT lpBuffer);
BOOL
WINAPI
GetCharWidth32W(
_In_ HDC hdc,
_In_ UINT iFirst,
_In_ UINT iLast,
_Out_writes_(iLast + 1 - iFirst) LPINT lpBuffer);
BOOL
WINAPI
GetCharWidthA(
_In_ HDC hdc,
_In_ UINT iFirst,
_In_ UINT iLast,
_Out_writes_(iLast + 1 - iFirst) LPINT lpBuffer);
BOOL
WINAPI
GetCharWidthW(
_In_ HDC hdc,
_In_ UINT iFirst,
_In_ UINT iLast,
_Out_writes_(iLast + 1 - iFirst) LPINT lpBuffer);
BOOL
WINAPI
GetCharWidthI(
_In_ HDC hdc,
_In_ UINT giFirst,
_In_ UINT cgi,
_In_reads_opt_(cgi) LPWORD pgi,
_Out_writes_(cgi) LPINT piWidths);
BOOL
WINAPI
GetCharWidthFloatA(
_In_ HDC hdc,
_In_ UINT iFirst,
_In_ UINT iLast,
_Out_writes_(iLast + 1 - iFirst) PFLOAT lpBuffer);
BOOL
WINAPI
GetCharWidthFloatW(
_In_ HDC hdc,
_In_ UINT iFirst,
_In_ UINT iLast,
_Out_writes_(iLast + 1 - iFirst) PFLOAT lpBuffer);
int WINAPI GetClipBox(_In_ HDC, _Out_ LPRECT);
int WINAPI GetClipRgn(_In_ HDC, _In_ HRGN);
BOOL WINAPI GetColorAdjustment(_In_ HDC, _Out_ LPCOLORADJUSTMENT);
HCOLORSPACE WINAPI GetColorSpace(_In_ HDC);
HGDIOBJ WINAPI GetCurrentObject(_In_ HDC, _In_ UINT);
BOOL WINAPI GetCurrentPositionEx(_In_ HDC, _Out_ LPPOINT);
HCURSOR WINAPI GetCursor(void);
BOOL WINAPI GetDCOrgEx(_In_ HDC, _Out_ LPPOINT);
#if (_WIN32_WINNT >= 0x0500)
COLORREF WINAPI GetDCBrushColor(_In_ HDC);
COLORREF WINAPI GetDCPenColor(_In_ HDC);
#endif
int WINAPI GetDeviceCaps(_In_opt_ HDC, _In_ int);
BOOL
WINAPI
GetDeviceGammaRamp(
_In_ HDC hdc,
_Out_writes_bytes_(3*256*2) LPVOID lpRamp);
_Ret_range_(0,cEntries)
UINT
WINAPI
GetDIBColorTable(
_In_ HDC hdc,
_In_ UINT iStart,
_In_ UINT cEntries,
_Out_writes_to_(cEntries,return) RGBQUAD *prgbq);
int
WINAPI
GetDIBits(
_In_ HDC hdc,
_In_ HBITMAP hbm,
_In_ UINT start,
_In_ UINT cLines,
_Out_opt_ LPVOID lpvBits,
_At_((LPBITMAPINFOHEADER)lpbmi, _Inout_) LPBITMAPINFO lpbmi,
_In_ UINT usage);
HENHMETAFILE WINAPI GetEnhMetaFileA(_In_ LPCSTR);
HENHMETAFILE WINAPI GetEnhMetaFileW(_In_ LPCWSTR);
UINT
WINAPI
GetEnhMetaFileBits(
_In_ HENHMETAFILE hEMF,
_In_ UINT nSize,
_Out_writes_bytes_opt_(nSize) LPBYTE lpData);
UINT
WINAPI
GetEnhMetaFileDescriptionA(
_In_ HENHMETAFILE hemf,
_In_ UINT cchBuffer,
_Out_writes_opt_(cchBuffer) LPSTR lpDescription);
UINT
WINAPI
GetEnhMetaFileDescriptionW(
_In_ HENHMETAFILE hemf,
_In_ UINT cchBuffer,
_Out_writes_opt_(cchBuffer) LPWSTR lpDescription);
UINT
WINAPI
GetEnhMetaFileHeader(
_In_ HENHMETAFILE hemf,
_In_ UINT nSize,
_Out_writes_bytes_opt_(nSize) LPENHMETAHEADER lpEnhMetaHeader);
UINT
WINAPI
GetEnhMetaFilePaletteEntries(
_In_ HENHMETAFILE hemf,
_In_ UINT nNumEntries,
_Out_writes_opt_(nNumEntries) LPPALETTEENTRY lpPaletteEntries);
UINT
WINAPI
GetEnhMetaFilePixelFormat(
_In_ HENHMETAFILE hemf,
_In_ UINT cbBuffer,
_Out_writes_bytes_opt_(cbBuffer) PIXELFORMATDESCRIPTOR *ppfd);
_Success_(return != GDI_ERROR)
DWORD
WINAPI
GetFontData(
_In_ HDC hdc,
_In_ DWORD dwTable,
_In_ DWORD dwOffset,
_Out_writes_bytes_to_opt_(cjBuffer, return) PVOID pvBuffer,
_In_ DWORD cjBuffer);
DWORD WINAPI GetFontLanguageInfo(_In_ HDC);
#if (_WIN32_WINNT >= 0x0500)
DWORD WINAPI GetFontUnicodeRanges(_In_ HDC, _Out_opt_ LPGLYPHSET);
#endif
DWORD
WINAPI
GetGlyphIndicesA(
_In_ HDC hdc,
_In_reads_(c) LPCSTR lpstr,
_In_ int c,
_Out_writes_(c) LPWORD pgi,
_In_ DWORD fl);
DWORD
WINAPI
GetGlyphIndicesW(
_In_ HDC hdc,
_In_reads_(c) LPCWSTR lpstr,
_In_ int c,
_Out_writes_(c) LPWORD pgi,
_In_ DWORD fl);
DWORD
WINAPI
GetGlyphOutlineA(
_In_ HDC hdc,
_In_ UINT uChar,
_In_ UINT fuFormat,
_Out_ LPGLYPHMETRICS lpgm,
_In_ DWORD cjBuffer,
_Out_writes_bytes_opt_(cjBuffer) LPVOID pvBuffer,
_In_ CONST MAT2 *lpmat2);
DWORD
WINAPI
GetGlyphOutlineW(
_In_ HDC hdc,
_In_ UINT uChar,
_In_ UINT fuFormat,
_Out_ LPGLYPHMETRICS lpgm,
_In_ DWORD cjBuffer,
_Out_writes_bytes_opt_(cjBuffer) LPVOID pvBuffer,
_In_ CONST MAT2 *lpmat2);
int WINAPI GetGraphicsMode(_In_ HDC);
BOOL
WINAPI
GetICMProfileA(
_In_ HDC hdc,
_Inout_ LPDWORD pBufSize,
_Out_writes_opt_(*pBufSize) LPSTR pszFilename);
BOOL
WINAPI
GetICMProfileW(
_In_ HDC hdc,
_Inout_ LPDWORD pBufSize,
_Out_writes_opt_(*pBufSize) LPWSTR pszFilename);
DWORD
WINAPI
GetKerningPairsA(
_In_ HDC hdc,
_In_ DWORD nPairs,
_Out_writes_to_opt_(nPairs, return) LPKERNINGPAIR lpKernPair);
DWORD
WINAPI
GetKerningPairsW(
_In_ HDC hdc,
_In_ DWORD nPairs,
_Out_writes_to_opt_(nPairs, return) LPKERNINGPAIR lpKernPair);
BOOL
WINAPI
GetLogColorSpaceA(
_In_ HCOLORSPACE hColorSpace,
_Out_writes_bytes_(nSize) LPLOGCOLORSPACEA lpBuffer,
_In_ DWORD nSize);
BOOL
WINAPI
GetLogColorSpaceW(
_In_ HCOLORSPACE hColorSpace,
_Out_writes_bytes_(nSize) LPLOGCOLORSPACEW lpBuffer,
_In_ DWORD nSize);
int WINAPI GetMapMode(_In_ HDC);
HMETAFILE WINAPI GetMetaFileA(_In_ LPCSTR);
HMETAFILE WINAPI GetMetaFileW(_In_ LPCWSTR);
UINT
WINAPI
GetMetaFileBitsEx(
_In_ HMETAFILE hMF,
_In_ UINT cbBuffer,
_Out_writes_bytes_opt_(cbBuffer) LPVOID lpData);
int WINAPI GetMetaRgn(_In_ HDC, _In_ HRGN);
BOOL WINAPI GetMiterLimit(_In_ HDC, _Out_ PFLOAT);
COLORREF WINAPI GetNearestColor(_In_ HDC, _In_ COLORREF);
UINT WINAPI GetNearestPaletteIndex(_In_ HPALETTE, _In_ COLORREF);
int
WINAPI
GetObjectA(
_In_ HANDLE h,
_In_ int c,
_Out_writes_bytes_opt_(c) LPVOID pv);
int
WINAPI
GetObjectW(
_In_ HANDLE h,
_In_ int c,
_Out_writes_bytes_opt_(c) LPVOID pv);
DWORD WINAPI GetObjectType(_In_ HGDIOBJ);
UINT
WINAPI
GetOutlineTextMetricsA(
_In_ HDC hdc,
_In_ UINT cjCopy,
_Out_writes_bytes_opt_(cjCopy) LPOUTLINETEXTMETRICA potm);
UINT
WINAPI
GetOutlineTextMetricsW(
_In_ HDC hdc,
_In_ UINT cjCopy,
_Out_writes_bytes_opt_(cjCopy) LPOUTLINETEXTMETRICW potm);
_Ret_range_(0,cEntries)
UINT
WINAPI
GetPaletteEntries(
_In_ HPALETTE hpal,
_In_ UINT iStart,
_In_ UINT cEntries,
_Out_writes_to_opt_(cEntries,return) LPPALETTEENTRY pPalEntries);
int
WINAPI
GetPath(
_In_ HDC hdc,
_Out_writes_opt_(cpt) LPPOINT apt,
_Out_writes_opt_(cpt) LPBYTE aj,
int cpt);
COLORREF WINAPI GetPixel(_In_ HDC, _In_ int, _In_ int);
int WINAPI GetPixelFormat(_In_ HDC);
int WINAPI GetPolyFillMode(_In_ HDC);
BOOL
WINAPI
GetRasterizerCaps(
_Out_writes_bytes_(cjBytes) LPRASTERIZER_STATUS lpraststat,
_In_ UINT cjBytes);
int WINAPI GetRandomRgn(_In_ HDC, _In_ HRGN, _In_ INT);
DWORD
WINAPI
GetRegionData(
_In_ HRGN hrgn,
_In_ DWORD nCount,
_Out_writes_bytes_to_opt_(nCount, return) LPRGNDATA lpRgnData);
int WINAPI GetRgnBox(_In_ HRGN, _Out_ LPRECT);
int WINAPI GetROP2(_In_ HDC);
HGDIOBJ WINAPI GetStockObject(_In_ int);
int WINAPI GetStretchBltMode(_In_ HDC);
UINT
WINAPI
GetSystemPaletteEntries(
_In_ HDC hdc,
_In_ UINT iStart,
_In_ UINT cEntries,
_Out_writes_opt_(cEntries) LPPALETTEENTRY pPalEntries);
UINT WINAPI GetSystemPaletteUse(_In_ HDC);
UINT WINAPI GetTextAlign(_In_ HDC);
int WINAPI GetTextCharacterExtra(_In_ HDC);
int WINAPI GetTextCharset(_In_ HDC);
int WINAPI GetTextCharsetInfo(_In_ HDC, _Out_opt_ LPFONTSIGNATURE, _In_ DWORD);
COLORREF WINAPI GetTextColor(_In_ HDC);
BOOL
WINAPI
GetTextExtentExPointA(
_In_ HDC hdc,
_In_reads_(cchString) LPCSTR lpszString,
_In_ int cchString,
_In_ int nMaxExtent,
_Out_opt_ LPINT lpnFit,
_Out_writes_to_opt_ (cchString, *lpnFit) LPINT lpnDx,
_Out_ LPSIZE lpSize);
BOOL
WINAPI
GetTextExtentExPointW(
_In_ HDC hdc,
_In_reads_(cchString) LPCWSTR lpszString,
_In_ int cchString,
_In_ int nMaxExtent,
_Out_opt_ LPINT lpnFit,
_Out_writes_to_opt_ (cchString, *lpnFit) LPINT lpnDx,
_Out_ LPSIZE lpSize);
BOOL
WINAPI
GetTextExtentExPointI(
_In_ HDC hdc,
_In_reads_(cwchString) LPWORD lpwszString,
_In_ int cwchString,
_In_ int nMaxExtent,
_Out_opt_ LPINT lpnFit,
_Out_writes_to_opt_(cwchString, *lpnFit) LPINT lpnDx,
_Out_ LPSIZE lpSize);
BOOL
WINAPI
GetTextExtentPointA(
_In_ HDC hdc,
_In_reads_(c) LPCSTR lpString,
_In_ int c,
_Out_ LPSIZE lpsz);
BOOL
WINAPI
GetTextExtentPointW(
_In_ HDC hdc,
_In_reads_(c) LPCWSTR lpString,
_In_ int c,
_Out_ LPSIZE lpsz);
BOOL
WINAPI
GetTextExtentPointI(
_In_ HDC hdc,
_In_reads_(cgi) LPWORD pgiIn,
_In_ int cgi,
_Out_ LPSIZE psize);
BOOL
WINAPI
GetTextExtentPoint32A(
_In_ HDC hdc,
_In_reads_(c) LPCSTR lpString,
_In_ int c,
_Out_ LPSIZE psizl);
BOOL
WINAPI
GetTextExtentPoint32W(
_In_ HDC hdc,
_In_reads_(c) LPCWSTR lpString,
_In_ int c,
_Out_ LPSIZE psizl);
int
WINAPI
GetTextFaceA(
_In_ HDC hdc,
_In_ int c,
_Out_writes_to_opt_(c, return) LPSTR lpName);
int
WINAPI
GetTextFaceW(
_In_ HDC hdc,
_In_ int c,
_Out_writes_to_opt_(c, return) LPWSTR lpName);
BOOL WINAPI GetTextMetricsA(_In_ HDC, _Out_ LPTEXTMETRICA);
BOOL WINAPI GetTextMetricsW(_In_ HDC, _Out_ LPTEXTMETRICW);
BOOL WINAPI GetTransform(HDC,DWORD,XFORM*);
BOOL WINAPI GetViewportExtEx(_In_ HDC, _Out_ LPSIZE);
BOOL WINAPI GetViewportOrgEx(_In_ HDC, _Out_ LPPOINT);
BOOL WINAPI GetWindowExtEx(_In_ HDC, _Out_ LPSIZE);
BOOL WINAPI GetWindowOrgEx(_In_ HDC, _Out_ LPPOINT);
UINT
WINAPI
GetWinMetaFileBits(
_In_ HENHMETAFILE hemf,
_In_ UINT cbData16,
_Out_writes_bytes_opt_(cbData16) LPBYTE pData16,
_In_ INT iMapMode,
_In_ HDC hdcRef);
BOOL WINAPI GetWorldTransform(_In_ HDC, _Out_ LPXFORM);
int WINAPI IntersectClipRect(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int);
BOOL WINAPI InvertRgn(_In_ HDC, _In_ HRGN);
BOOL WINAPI LineDDA(_In_ int, _In_ int, _In_ int, _In_ int, _In_ LINEDDAPROC, _In_opt_ LPARAM);
BOOL WINAPI LineTo(_In_ HDC, _In_ int, _In_ int);
BOOL
WINAPI
LPtoDP(
_In_ HDC hdc,
_Inout_updates_(c) LPPOINT lppt,
_In_ int c);
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);
BOOL WINAPI ModifyWorldTransform(_In_ HDC, _In_opt_ const XFORM*, _In_ DWORD);
BOOL WINAPI MoveToEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPPOINT);
int WINAPI OffsetClipRgn(_In_ HDC, _In_ int, _In_ int);
int WINAPI OffsetRgn(_In_ HRGN, _In_ int, _In_ int);
BOOL WINAPI OffsetViewportOrgEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPPOINT);
BOOL WINAPI OffsetWindowOrgEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPPOINT);
BOOL WINAPI PaintRgn(_In_ HDC, _In_ HRGN);
BOOL WINAPI PatBlt(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ DWORD);
HRGN WINAPI PathToRegion(_In_ HDC);
BOOL WINAPI Pie(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ int, _In_ int, _In_ int, _In_ int);
BOOL WINAPI PlayEnhMetaFile(_In_ HDC, _In_ HENHMETAFILE, _In_ LPCRECT);
BOOL
WINAPI
PlayEnhMetaFileRecord(
_In_ HDC hdc,
_In_reads_(cht) LPHANDLETABLE pht,
_In_ CONST ENHMETARECORD *pmr,
_In_ UINT cht);
BOOL WINAPI PlayMetaFile(_In_ HDC, _In_ HMETAFILE);
BOOL
WINAPI
PlayMetaFileRecord(
_In_ HDC hdc,
_In_reads_(noObjs) LPHANDLETABLE lpHandleTable,
_In_ LPMETARECORD lpMR,
_In_ UINT noObjs);
BOOL
WINAPI
PlgBlt(
_In_ HDC hdcDest,
_In_reads_(3) const POINT *lpPoint,
_In_ HDC hdcSrc,
_In_ int xSrc,
_In_ int ySrc,
_In_ int width,
_In_ int height,
_In_opt_ HBITMAP hbmMask,
_In_ int xMask,
_In_ int yMask);
BOOL
WINAPI
PolyBezier(
_In_ HDC hdc,
_In_reads_(cpt) const POINT *apt,
_In_ DWORD cpt);
BOOL
WINAPI
PolyBezierTo(
_In_ HDC hdc,
_In_reads_(cpt) const POINT *apt,
_In_ DWORD cpt);
BOOL
WINAPI
PolyDraw(
_In_ HDC hdc,
_In_reads_(cpt) const POINT * apt,
_In_reads_(cpt) const BYTE * aj,
_In_ int cpt);
BOOL
WINAPI
Polygon(
_In_ HDC hdc,
_In_reads_(cpt) const POINT *apt,
_In_ int cpt);
BOOL
WINAPI
Polyline(
_In_ HDC hdc,
_In_reads_(cpt) const POINT *apt,
_In_ int cpt);
BOOL
WINAPI
PolylineTo(
_In_ HDC hdc,
_In_reads_(cpt) const POINT *apt,
_In_ DWORD cpt);
BOOL
WINAPI
PolyPolygon(
_In_ HDC hdc,
_In_ const POINT *apt,
_In_reads_(csz) const INT *asz,
_In_ int csz);
BOOL
WINAPI
PolyPolyline(
_In_ HDC hdc,
_In_ const POINT *apt,
_In_reads_(csz) const DWORD *asz,
_In_ DWORD csz);
BOOL
WINAPI
PolyTextOutA(
_In_ HDC hdc,
_In_reads_(nstrings) const POLYTEXTA *ppt,
_In_ int nstrings);
BOOL
WINAPI
PolyTextOutW(
_In_ HDC hdc,
_In_reads_(nstrings) const POLYTEXTW *ppt,
_In_ int nstrings);
BOOL WINAPI PtInRegion(_In_ HRGN, _In_ int, _In_ int);
BOOL WINAPI PtVisible(_In_ HDC, _In_ int, _In_ int);
UINT WINAPI RealizePalette(_In_ HDC);
BOOL WINAPI Rectangle(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int);
BOOL WINAPI RectInRegion(_In_ HRGN, _In_ LPCRECT);
BOOL WINAPI RectVisible(_In_ HDC, _In_ LPCRECT);
BOOL WINAPI RemoveFontResourceA(_In_ LPCSTR);
BOOL WINAPI RemoveFontResourceW(_In_ LPCWSTR);
#if (_WIN32_WINNT >= 0x0500)
BOOL WINAPI RemoveFontMemResourceEx(_In_ HANDLE);
BOOL WINAPI RemoveFontResourceExA(_In_ LPCSTR, _In_ DWORD, _Reserved_ PVOID);
BOOL WINAPI RemoveFontResourceExW(_In_ LPCWSTR, _In_ DWORD, _Reserved_ PVOID);
#endif
HDC WINAPI ResetDCA(_In_ HDC, _In_ const DEVMODEA*);
HDC WINAPI ResetDCW(_In_ HDC, _In_ const DEVMODEW*);
BOOL WINAPI ResizePalette(_In_ HPALETTE, _In_ UINT);
BOOL WINAPI RestoreDC(_In_ HDC, _In_ int);
BOOL WINAPI RoundRect(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ int, _In_ int);
int WINAPI SaveDC(_In_ HDC);
BOOL WINAPI ScaleViewportExtEx(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _Out_opt_ LPSIZE);
BOOL WINAPI ScaleWindowExtEx(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _Out_opt_ LPSIZE);
BOOL WINAPI SelectClipPath(_In_ HDC, _In_ int);
int WINAPI SelectClipRgn(_In_ HDC, _In_opt_ HRGN);
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ);
HPALETTE WINAPI SelectPalette(_In_ HDC, _In_ HPALETTE, _In_ BOOL);
int WINAPI SetAbortProc(_In_ HDC, _In_ ABORTPROC);
int WINAPI SetArcDirection(_In_ HDC, _In_ int);
LONG
WINAPI
SetBitmapBits(
_In_ HBITMAP hbm,
_In_ DWORD cb,
_In_reads_bytes_(cb) CONST VOID *pvBits);
BOOL WINAPI SetBitmapDimensionEx(_In_ HBITMAP, _In_ int, _In_ int, _Out_opt_ LPSIZE);
COLORREF WINAPI SetBkColor(_In_ HDC, _In_ COLORREF);
int WINAPI SetBkMode(_In_ HDC, _In_ int);
UINT WINAPI SetBoundsRect(_In_ HDC, _In_opt_ LPCRECT, _In_ UINT);
BOOL WINAPI SetBrushOrgEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPPOINT);
BOOL WINAPI SetColorAdjustment(_In_ HDC, _In_ const COLORADJUSTMENT*);
HCOLORSPACE WINAPI SetColorSpace(_In_ HDC, _In_ HCOLORSPACE);
#if (_WIN32_WINNT >= 0x0500)
COLORREF WINAPI SetDCBrushColor(_In_ HDC, _In_ COLORREF);
COLORREF WINAPI SetDCPenColor(_In_ HDC, _In_ COLORREF);
#endif
BOOL
WINAPI
SetDeviceGammaRamp(
_In_ HDC hdc,
_In_reads_bytes_(3*256*2) LPVOID lpRamp);
UINT
WINAPI
SetDIBColorTable(
_In_ HDC hdc,
_In_ UINT iStart,
_In_ UINT cEntries,
_In_reads_(cEntries) const RGBQUAD *prgbq);
int WINAPI SetDIBits(_In_opt_ HDC, _In_ HBITMAP, _In_ UINT, _In_ UINT, _In_ CONST VOID*, _In_ CONST BITMAPINFO*, _In_ UINT);
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);
HENHMETAFILE
WINAPI
SetEnhMetaFileBits(
_In_ UINT nSize,
_In_reads_bytes_(nSize) const BYTE * pb);
int WINAPI SetGraphicsMode(_In_ HDC, _In_ int);
int WINAPI SetICMMode(_In_ HDC, _In_ int);
BOOL WINAPI SetICMProfileA(_In_ HDC, _In_ LPSTR);
BOOL WINAPI SetICMProfileW(_In_ HDC, _In_ LPWSTR);
int WINAPI SetMapMode(_In_ HDC, _In_ int);
DWORD WINAPI SetMapperFlags(_In_ HDC, _In_ DWORD);
#if (_WIN32_WINNT >= 0x0500)
DWORD WINAPI SetLayout(_In_ HDC, _In_ DWORD);
DWORD WINAPI GetLayout(_In_ HDC);
#endif
HMETAFILE
WINAPI
SetMetaFileBitsEx(
_In_ UINT cbBuffer,
_In_reads_bytes_(cbBuffer) CONST BYTE *lpData);
int WINAPI SetMetaRgn(_In_ HDC);
BOOL WINAPI SetMiterLimit(_In_ HDC, _In_ FLOAT, _Out_opt_ PFLOAT);
UINT
WINAPI
SetPaletteEntries(
_In_ HPALETTE hpal,
_In_ UINT iStart,
_In_ UINT cEntries,
_In_reads_(cEntries) CONST PALETTEENTRY *pPalEntries);
COLORREF WINAPI SetPixel(_In_ HDC, _In_ int, _In_ int, _In_ COLORREF);
BOOL WINAPI SetPixelFormat(_In_ HDC, _In_ int, _In_ const PIXELFORMATDESCRIPTOR*);
BOOL WINAPI SetPixelV(_In_ HDC, _In_ int, _In_ int, _In_ COLORREF);
int WINAPI SetPolyFillMode(_In_ HDC, _In_ int);
BOOL WINAPI SetRectRgn(_In_ HRGN, _In_ int, _In_ int, _In_ int, _In_ int);
INT WINAPI SetRelAbs(HDC,INT);
int WINAPI SetROP2(_In_ HDC, _In_ int);
int WINAPI SetStretchBltMode(_In_ HDC, _In_ int);
UINT WINAPI SetSystemPaletteUse(_In_ HDC, _In_ UINT);
UINT WINAPI SetTextAlign(_In_ HDC, _In_ UINT);
int WINAPI SetTextCharacterExtra(_In_ HDC, _In_ int);
COLORREF WINAPI SetTextColor(_In_ HDC, _In_ COLORREF);
BOOL WINAPI SetTextJustification(_In_ HDC, _In_ int, _In_ int);
BOOL WINAPI SetViewportExtEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPSIZE);
BOOL WINAPI SetViewportOrgEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPPOINT);
BOOL WINAPI SetWindowExtEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPSIZE);
BOOL WINAPI SetWindowOrgEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPPOINT);
HENHMETAFILE
WINAPI
SetWinMetaFileBits(
_In_ UINT nSize,
_In_reads_bytes_(nSize) const BYTE *lpMeta16Data,
_In_opt_ HDC hdcRef,
_In_opt_ const METAFILEPICT *lpMFP);
BOOL WINAPI SetWorldTransform(_In_ HDC, _In_ const XFORM *);
int WINAPI StartDocA(_In_ HDC, _In_ const DOCINFOA*);
int WINAPI StartDocW(_In_ HDC, _In_ const DOCINFOW*);
int WINAPI StartPage(_In_ HDC);
BOOL WINAPI StretchBlt(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_opt_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ DWORD);
int WINAPI StretchDIBits(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ int, _In_ int, _In_ int, _In_ int, _In_opt_ const VOID *, _In_ const BITMAPINFO *, _In_ UINT, _In_ DWORD);
BOOL WINAPI StrokeAndFillPath(_In_ HDC);
BOOL WINAPI StrokePath(_In_ HDC);
BOOL WINAPI SwapBuffers(HDC);
BOOL
WINAPI
TextOutA(
_In_ HDC hdc,
_In_ int x,
_In_ int y,
_In_reads_(c) LPCSTR lpString,
_In_ int c);
BOOL
WINAPI
TextOutW(
_In_ HDC hdc,
_In_ int x,
_In_ int y,
_In_reads_(c) LPCWSTR lpString,
_In_ int c);
BOOL WINAPI TranslateCharsetInfo(_Inout_ PDWORD, _Out_ LPCHARSETINFO, _In_ DWORD);
BOOL WINAPI UnrealizeObject(_In_ HGDIOBJ);
BOOL WINAPI UpdateColors(_In_ HDC);
BOOL WINAPI UpdateICMRegKeyA(_Reserved_ DWORD, _In_ LPSTR, _In_ LPSTR, _In_ UINT);
BOOL WINAPI UpdateICMRegKeyW(_Reserved_ DWORD, _In_ LPWSTR, _In_ LPWSTR, _In_ UINT);
BOOL WINAPI WidenPath(_In_ HDC);
BOOL WINAPI wglCopyContext(HGLRC,HGLRC,UINT);
HGLRC WINAPI wglCreateContext(HDC);
HGLRC WINAPI wglCreateLayerContext(HDC,int);
BOOL WINAPI wglDeleteContext(HGLRC);
BOOL WINAPI wglDescribeLayerPlane(HDC,int,int,UINT,LPLAYERPLANEDESCRIPTOR);
HGLRC WINAPI wglGetCurrentContext(void);
HDC WINAPI wglGetCurrentDC(void);
int WINAPI wglGetLayerPaletteEntries(HDC,int,int,int,COLORREF*);
PROC WINAPI wglGetProcAddress(LPCSTR);
BOOL WINAPI wglMakeCurrent(HDC,HGLRC);
BOOL WINAPI wglRealizeLayerPalette(HDC,int,BOOL);
int WINAPI wglSetLayerPaletteEntries(HDC,int,int,int,const COLORREF*);
BOOL WINAPI wglShareLists(HGLRC,HGLRC);
BOOL WINAPI wglSwapLayerBuffers(HDC,UINT);
BOOL WINAPI wglUseFontBitmapsA(HDC,DWORD,DWORD,DWORD);
BOOL WINAPI wglUseFontBitmapsW(HDC,DWORD,DWORD,DWORD);
BOOL WINAPI wglUseFontOutlinesA(HDC,DWORD,DWORD,DWORD,FLOAT,FLOAT,int,LPGLYPHMETRICSFLOAT);
BOOL WINAPI wglUseFontOutlinesW(HDC,DWORD,DWORD,DWORD,FLOAT,FLOAT,int,LPGLYPHMETRICSFLOAT);
#if (WINVER >= 0x0500)
typedef struct _WGLSWAP
{
HDC hdc;
UINT uiFlags;
} WGLSWAP, *PWGLSWAP, FAR *LPWGLSWAP;
#define WGL_SWAPMULTIPLE_MAX 16
DWORD WINAPI wglSwapMultipleBuffers(UINT, CONST WGLSWAP *);
#endif // (WINVER >= 0x0500)
#if (WINVER>= 0x0500)
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);
BOOL
WINAPI
GradientFill(
_In_ HDC hdc,
_In_reads_(nVertex) PTRIVERTEX pVertex,
_In_ ULONG nVertex,
_In_ PVOID pMesh,
_In_ ULONG nMesh,
_In_ ULONG ulMode);
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);
#endif
#ifdef UNICODE
typedef AXESLISTW AXESLIST;
typedef PAXESLISTW PAXESLIST;
typedef LPAXESLISTW LPAXESLIST;
typedef AXISINFOA AXISINFO;
typedef PAXISINFOA PAXISINFO;
typedef LPAXISINFOA LPAXISINFO;
typedef WCHAR BCHAR;
typedef DOCINFOW DOCINFO, *LPDOCINFO;
typedef LOGFONTW LOGFONT,*PLOGFONT,*LPLOGFONT;
typedef TEXTMETRICW TEXTMETRIC,*PTEXTMETRIC,*LPTEXTMETRIC;
#define ICMENUMPROC ICMENUMPROCW
typedef DEVMODEW DEVMODE,*PDEVMODE,*LPDEVMODE;
typedef ENUMLOGFONTEXDVW ENUMLOGFONTEXDV;
typedef PENUMLOGFONTEXDVW PENUMLOGFONTEXDV;
typedef LPENUMLOGFONTEXDVW LPENUMLOGFONTEXDV;
typedef ENUMTEXTMETRICW ENUMTEXTMETRIC;
typedef PENUMTEXTMETRICW PENUMTEXTMETRIC;
typedef LPENUMTEXTMETRICW LPENUMTEXTMETRIC;
typedef EXTLOGFONTW EXTLOGFONT,*PEXTLOGFONT,*LPEXTLOGFONT;
typedef GCP_RESULTSW GCP_RESULTS,*LPGCP_RESULTS;
typedef OUTLINETEXTMETRICW OUTLINETEXTMETRIC,*POUTLINETEXTMETRIC,*LPOUTLINETEXTMETRIC;
typedef POLYTEXTW POLYTEXT,*PPOLYTEXT,*LPPOLYTEXT;
typedef LOGCOLORSPACEW LOGCOLORSPACE,*LPLOGCOLORSPACE;
typedef NEWTEXTMETRICW NEWTEXTMETRIC,*PNEWTEXTMETRIC,*LPNEWTEXTMETRIC;
typedef NEWTEXTMETRICEXW NEWTEXTMETRICEX;
typedef ENUMLOGFONTW ENUMLOGFONT,*LPENUMLOGFONT;
typedef ENUMLOGFONTEXW ENUMLOGFONTEX,*LPENUMLOGFONTEX;
typedef DISPLAY_DEVICEW DISPLAY_DEVICE, *PDISPLAY_DEVICE, *LPDISPLAY_DEVICE;
#define AddFontResource AddFontResourceW
#if (_WIN32_WINNT >= 0x0500)
#define AddFontResourceEx AddFontResourceExW
#endif
#define CopyEnhMetaFile CopyEnhMetaFileW
#define CopyMetaFile CopyMetaFileW
#define CreateDC CreateDCW
#define CreateEnhMetaFile CreateEnhMetaFileW
#define CreateFont CreateFontW
#define CreateFontIndirect CreateFontIndirectW
#define CreateFontIndirectEx CreateFontIndirectExW
#define CreateIC CreateICW
#define CreateMetaFile CreateMetaFileW
#define CreateScalableFontResource CreateScalableFontResourceW
#define DeviceCapabilities DeviceCapabilitiesW
#define EnumFontFamilies EnumFontFamiliesW
#define EnumFontFamiliesEx EnumFontFamiliesExW
#define EnumFonts EnumFontsW
#define EnumICMProfiles EnumICMProfilesW
#define ExtTextOut ExtTextOutW
#define GetCharABCWidthsFloat GetCharABCWidthsFloatW
#define GetCharABCWidths GetCharABCWidthsW
#define GetCharacterPlacement GetCharacterPlacementW
#define GetCharWidth32 GetCharWidth32W
#define GetCharWidthFloat GetCharWidthFloatW
#define GetCharWidth GetCharWidthW
#define GetEnhMetaFile GetEnhMetaFileW
#define GetEnhMetaFileDescription GetEnhMetaFileDescriptionW
#define GetGlyphOutline GetGlyphOutlineW
#define GetICMProfile GetICMProfileW
#define GetKerningPairs GetKerningPairsW
#define GetLogColorSpace GetLogColorSpaceW
#define GetMetaFile GetMetaFileW
#define GetObject GetObjectW
#define GetOutlineTextMetrics GetOutlineTextMetricsW
#define GetTextExtentPoint GetTextExtentPointW
#define GetTextExtentExPoint GetTextExtentExPointW
#define GetTextExtentPoint32 GetTextExtentPoint32W
#define GetTextFace GetTextFaceW
#define GetTextMetrics GetTextMetricsW
#define PolyTextOut PolyTextOutW
#define RemoveFontResource RemoveFontResourceW
#if (_WIN32_WINNT >= 0x0500)
#define RemoveFontResourceEx RemoveFontResourceExW
#endif
#define ResetDC ResetDCW
#define SetICMProfile SetICMProfileW
#define StartDoc StartDocW
#define TextOut TextOutW
#define UpdateICMRegKey UpdateICMRegKeyW
#define wglUseFontBitmaps wglUseFontBitmapsW
#define wglUseFontOutlines wglUseFontOutlinesW
#else
typedef AXESLISTA AXESLIST;
typedef PAXESLISTA PAXESLIST;
typedef LPAXESLISTA LPAXESLIST;
typedef AXISINFOA AXISINFO;
typedef PAXISINFOA PAXISINFO;
typedef LPAXISINFOA LPAXISINFO;
typedef BYTE BCHAR;
typedef DOCINFOA DOCINFO, *LPDOCINFO;
typedef LOGFONTA LOGFONT,*PLOGFONT,*LPLOGFONT;
typedef TEXTMETRICA TEXTMETRIC,*PTEXTMETRIC,*LPTEXTMETRIC;
#define ICMENUMPROC ICMENUMPROCA
typedef DEVMODEA DEVMODE,*PDEVMODE,*LPDEVMODE;
typedef ENUMLOGFONTEXDVA ENUMLOGFONTEXDV;
typedef PENUMLOGFONTEXDVA PENUMLOGFONTEXDV;
typedef LPENUMLOGFONTEXDVA LPENUMLOGFONTEXDV;
typedef ENUMTEXTMETRICA ENUMTEXTMETRIC;
typedef PENUMTEXTMETRICA PENUMTEXTMETRIC;
typedef LPENUMTEXTMETRICA LPENUMTEXTMETRIC;
typedef EXTLOGFONTA EXTLOGFONT,*PEXTLOGFONT,*LPEXTLOGFONT;
typedef GCP_RESULTSA GCP_RESULTS,*LPGCP_RESULTS;
typedef OUTLINETEXTMETRICA OUTLINETEXTMETRIC,*POUTLINETEXTMETRIC,*LPOUTLINETEXTMETRIC;
typedef POLYTEXTA POLYTEXT,*PPOLYTEXT,*LPPOLYTEXT;
typedef LOGCOLORSPACEA LOGCOLORSPACE,*LPLOGCOLORSPACE;
typedef NEWTEXTMETRICA NEWTEXTMETRIC,*PNEWTEXTMETRIC,*LPNEWTEXTMETRIC;
typedef NEWTEXTMETRICEXA NEWTEXTMETRICEX;
typedef ENUMLOGFONTA ENUMLOGFONT,*LPENUMLOGFONT;
typedef ENUMLOGFONTEXA ENUMLOGFONTEX,*LPENUMLOGFONTEX;
typedef DISPLAY_DEVICEA DISPLAY_DEVICE, *PDISPLAY_DEVICE, *LPDISPLAY_DEVICE;
#define AddFontResource AddFontResourceA
#if (_WIN32_WINNT >= 0x0500)
#define AddFontResourceEx AddFontResourceExA
#endif
#define CopyEnhMetaFile CopyEnhMetaFileA
#define CopyMetaFile CopyMetaFileA
#define CreateDC CreateDCA
#define CreateEnhMetaFile CreateEnhMetaFileA
#define CreateFont CreateFontA
#define CreateFontIndirect CreateFontIndirectA
#define CreateFontIndirectEx CreateFontIndirectExA
#define CreateIC CreateICA
#define CreateMetaFile CreateMetaFileA
#define CreateScalableFontResource CreateScalableFontResourceA
#define DeviceCapabilities DeviceCapabilitiesA
#define EnumFontFamilies EnumFontFamiliesA
#define EnumFontFamiliesEx EnumFontFamiliesExA
#define EnumFonts EnumFontsA
#define EnumICMProfiles EnumICMProfilesA
#define ExtTextOut ExtTextOutA
#define GetCharWidthFloat GetCharWidthFloatA
#define GetCharWidth GetCharWidthA
#define GetCharacterPlacement GetCharacterPlacementA
#define GetCharABCWidths GetCharABCWidthsA
#define GetCharABCWidthsFloat GetCharABCWidthsFloatA
#define GetCharWidth32 GetCharWidth32A
#define GetEnhMetaFile GetEnhMetaFileA
#define GetEnhMetaFileDescription GetEnhMetaFileDescriptionA
#define GetGlyphOutline GetGlyphOutlineA
#define GetICMProfile GetICMProfileA
#define GetKerningPairs GetKerningPairsA
#define GetLogColorSpace GetLogColorSpaceA
#define GetMetaFile GetMetaFileA
#define GetObject GetObjectA
#define GetOutlineTextMetrics GetOutlineTextMetricsA
#define GetTextExtentPoint GetTextExtentPointA
#define GetTextExtentExPoint GetTextExtentExPointA
#define GetTextExtentPoint32 GetTextExtentPoint32A
#define GetTextFace GetTextFaceA
#define GetTextMetrics GetTextMetricsA
#define PolyTextOut PolyTextOutA
#define RemoveFontResource RemoveFontResourceA
#if (_WIN32_WINNT >= 0x0500)
#define RemoveFontResourceEx RemoveFontResourceExA
#endif
#define ResetDC ResetDCA
#define SetICMProfile SetICMProfileA
#define StartDoc StartDocA
#define TextOut TextOutA
#define UpdateICMRegKey UpdateICMRegKeyA
#define wglUseFontBitmaps wglUseFontBitmapsA
#define wglUseFontOutlines wglUseFontOutlinesA
#endif
#endif
#ifdef __WINESRC__
/* the DC hook support is only exported on Win16, the 32-bit version is a Wine extension */
#define DCHC_INVALIDVISRGN 0x0001
#define DCHC_DELETEDC 0x0002
#define DCHF_INVALIDATEVISRGN 0x0001
#define DCHF_VALIDATEVISRGN 0x0002
typedef BOOL (CALLBACK *DCHOOKPROC)(HDC,WORD,DWORD_PTR,LPARAM);
WINGDIAPI DWORD_PTR WINAPI GetDCHook(HDC,DCHOOKPROC*);
WINGDIAPI BOOL WINAPI SetDCHook(HDC,DCHOOKPROC,DWORD_PTR);
WINGDIAPI WORD WINAPI SetHookFlags(HDC,WORD);
WINGDIAPI INT WINAPI SelectVisRgn(HDC,HRGN);
#endif /* __WINESRC__ */
#ifdef _MSC_VER
#pragma warning(pop)
#endif
#ifdef __cplusplus
}
#endif
#endif //!NOGDI
#endif // _WINGDI_H