''
''
'' wingdi -- header translated with help of SWIG FB wrapper
''
'' NOTICE: This file is part of the FreeBASIC Compiler package and can't
''         be included in other distributions without authorization.
''
''
#ifndef __win_wingdi_bi__
#define __win_wingdi_bi__

#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 8
#define ILLUMINANT_TUNGSTEN 1
#define ILLUMINANT_DAYLIGHT 3
#define ILLUMINANT_FLUORESCENT 8
#define ILLUMINANT_NTSC 3
#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 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
#define ENHMETA_SIGNATURE 1179469088
#define EPS_SIGNATURE &h46535045
#define FR_PRIVATE &h10
#define FR_NOT_ENUM &h20
#define META_SETBKCOLOR &h201
#define META_SETBKMODE &h102
#define META_SETMAPMODE &h103
#define META_SETROP2 &h104
#define META_SETRELABS &h105
#define META_SETPOLYFILLMODE &h106
#define META_SETSTRETCHBLTMODE &h107
#define META_SETTEXTCHAREXTRA &h108
#define META_SETTEXTCOLOR &h209
#define META_SETTEXTJUSTIFICATION &h20A
#define META_SETWINDOWORG &h20B
#define META_SETWINDOWEXT &h20C
#define META_SETVIEWPORTORG &h20D
#define META_SETVIEWPORTEXT &h20E
#define META_OFFSETWINDOWORG &h20F
#define META_SCALEWINDOWEXT &h410
#define META_OFFSETVIEWPORTORG &h211
#define META_SCALEVIEWPORTEXT &h412
#define META_LINETO &h213
#define META_MOVETO &h214
#define META_EXCLUDECLIPRECT &h415
#define META_INTERSECTCLIPRECT &h416
#define META_ARC &h817
#define META_ELLIPSE &h418
#define META_FLOODFILL &h419
#define META_PIE &h81A
#define META_RECTANGLE &h41B
#define META_ROUNDRECT &h61C
#define META_PATBLT &h61D
#define META_SAVEDC &h1E
#define META_SETPIXEL &h41F
#define META_OFFSETCLIPRGN &h220
#define META_TEXTOUT &h521
#define META_BITBLT &h922
#define META_STRETCHBLT &hB23
#define META_POLYGON &h324
#define META_POLYLINE &h325
#define META_ESCAPE &h626
#define META_RESTOREDC &h127
#define META_FILLREGION &h228
#define META_FRAMEREGION &h429
#define META_INVERTREGION &h12A
#define META_PAINTREGION &h12B
#define META_SELECTCLIPREGION &h12C
#define META_SELECTOBJECT &h12D
#define META_SETTEXTALIGN &h12E
#define META_CHORD &h830
#define META_SETMAPPERFLAGS &h231
#define META_EXTTEXTOUT &ha32
#define META_SETDIBTODEV &hd33
#define META_SELECTPALETTE &h234
#define META_REALIZEPALETTE &h35
#define META_ANIMATEPALETTE &h436
#define META_SETPALENTRIES &h37
#define META_POLYPOLYGON &h538
#define META_RESIZEPALETTE &h139
#define META_DIBBITBLT &h940
#define META_DIBSTRETCHBLT &hb41
#define META_DIBCREATEPATTERNBRUSH &h142
#define META_STRETCHDIB &hf43
#define META_EXTFLOODFILL &h548
#define META_DELETEOBJECT &h1f0
#define META_CREATEPALETTE &hf7
#define META_CREATEPATTERNBRUSH &h1F9
#define META_CREATEPENINDIRECT &h2FA
#define META_CREATEFONTINDIRECT &h2FB
#define META_CREATEBRUSHINDIRECT &h2FC
#define META_CREATEREGION &h6FF
#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 &h00000100
#define PFD_SWAP_EXCHANGE &h00000200
#define PFD_SWAP_COPY &h00000400
#define PFD_SWAP_LAYER_BUFFERS &h00000800
#define PFD_GENERIC_ACCELERATED &h00001000
#define PFD_DEPTH_DONTCARE &h20000000
#define PFD_DOUBLEBUFFER_DONTCARE &h40000000
#define PFD_STEREO_DONTCARE &h80000000
#define SP_ERROR (-1)
#define SP_OUTOFDISK (-4)
#define SP_OUTOFMEMORY (-5)
#define SP_USERABORT (-3)
#define SP_APPABORT (-2)
#define BLACKNESS &h42
#define NOTSRCERASE &h1100A6
#define NOTSRCCOPY &h330008
#define SRCERASE &h440328
#define DSTINVERT &h550009
#define PATINVERT &h5A0049
#define SRCINVERT &h660046
#define SRCAND &h8800C6
#define MERGEPAINT &hBB0226
#define MERGECOPY &hC000CA
#define SRCCOPY &hCC0020
#define SRCPAINT &hEE0086
#define PATCOPY &hF00021
#define PATPAINT &hFB0A09
#define WHITENESS &hFF0062
#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 200
#define FW_LIGHT 300
#define FW_NORMAL 400
#define FW_REGULAR 400
#define FW_MEDIUM 500
#define FW_SEMIBOLD 600
#define FW_DEMIBOLD 600
#define FW_BOLD 700
#define FW_EXTRABOLD 800
#define FW_ULTRABOLD 800
#define FW_HEAVY 900
#define FW_BLACK 900
#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 EASTEUROPE_CHARSET 238
#define OEM_CHARSET 255
#define JOHAB_CHARSET 130
#define VIETNAMESE_CHARSET 163
#define MAC_CHARSET 77
#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 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
#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 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_THAI &h10000
#define FS_JISJAPAN &h20000
#define FS_CHINESESIMP &h40000
#define FS_WANSUNG &h80000
#define FS_CHINESETRAD &h100000
#define FS_JOHAB &h200000
#define FS_SYMBOL &h80000000
#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 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_STYLE_MASK 15
#define PS_ENDCAP_MASK 3840
#define PS_TYPE_MASK 983040
#define ALTERNATE 1
#define WINDING 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_CLIPPED 4
#define ETO_GLYPH_INDEX 16
#define ETO_OPAQUE 2
#define ETO_RTLREADING 128
#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 &h8000
#define GCPGLYPH_LINKAFTER &h4000
#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 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 &h8000
#define RC_OP_DX_OUTPUT &h4000
#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 &h8000
#define RC_DI_BITMAP 128
#define RC_GDI20_OUTPUT 16
#define RC_GDI20_STATE 32
#define RC_NONE 0
#define RC_OP_DX_OUTPUT &h4000
#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
#define GCP_DBCS 1
#define GCP_ERROR &h8000
#define GCP_CLASSIN &h80000
#define GCP_DIACRITIC 256
#define GCP_DISPLAYZWG &h400000
#define GCP_GLYPHSHAPE 16
#define GCP_JUSTIFY &h10000
#define GCP_JUSTIFYIN &h200000
#define GCP_KASHIDA 1024
#define GCP_LIGATE 32
#define GCP_MAXEXTENT &h100000
#define GCP_NEUTRALOVERRIDE &h2000000
#define GCP_NUMERICOVERRIDE &h1000000
#define GCP_NUMERICSLATIN &h4000000
#define GCP_NUMERICSLOCAL &h8000000
#define GCP_REORDER 2
#define GCP_SYMSWAPOFF &h800000
#define GCP_USEKERNING 8
#define FLI_GLYPHS &h40000
#define FLI_MASK &h103b
#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
#define GM_COMPATIBLE 1
#define GM_ADVANCED 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 6
#define ABSOLUTE 1
#define RELATIVE 2
#define PC_EXPLICIT 2
#define PC_NOCOLLAPSE 4
#define PC_RESERVED 1
#define CLR_NONE &hffffffff
#define CLR_INVALID &hffffffff
#define CLR_DEFAULT &hff000000
#define PT_MOVETO 6
#define PT_LINETO 2
#define PT_BEZIERTO 4
#define PT_CLOSEFIGURE 1
#define TT_AVAILABLE 1
#define TT_ENABLED 2
#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
#define DC_BRUSH 18
#define DC_PEN 19
#define SYSPAL_ERROR 0
#define SYSPAL_STATIC 1
#define SYSPAL_NOSTATIC 2
#define SYSPAL_NOSTATIC256 3
#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 (24+6+1+256)
#define VTA_BASELINE 24
#define VTA_CENTER 6
#define VTA_LEFT 8
#define VTA_RIGHT 0
#define VTA_BOTTOM 2
#define VTA_TOP 0
#define MWT_IDENTITY 1
#define MWT_LEFTMULTIPLY 2
#define MWT_RIGHTMULTIPLY 3
#define OPAQUE 2
#define TRANSPARENT 1
#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 ICM_ON 2
#define ICM_OFF 1
#define ICM_QUERY 3
#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 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 QDI_SETDIBITS 1
#define QDI_GETDIBITS 2
#define QDI_DIBTOSCREEN 4
#define QDI_STRETCHDIB 8
#define SP_NOTREPORTED &h4000
#define PR_JOBSTATUS 0
#define ASPECT_FILTERING 1
#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 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 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 DM_SPECVERSION 800
#define DM_GRAYSCALE 1
#define DM_INTERLACED 2
#define DM_UPDATE 1
#define DM_COPY 2
#define DM_PROMPT 4
#define DM_MODIFY 8
#define DM_IN_BUFFER 8
#define DM_IN_PROMPT 4
#define DM_OUT_BUFFER 2
#define DM_OUT_DEFAULT 1
#define DM_ORIENTATION 1
#define DM_PAPERSIZE 2
#define DM_PAPERLENGTH 4
#define DM_PAPERWIDTH 8
#define DM_SCALE 16
#define DM_COPIES 256
#define DM_DEFAULTSOURCE 512
#define DM_PRINTQUALITY 1024
#define DM_COLOR 2048
#define DM_DUPLEX 4096
#define DM_YRESOLUTION 8192
#define DM_TTOPTION 16384
#define DM_COLLATE 32768
#define DM_FORMNAME 65536
#define DM_LOGPIXELS &h20000
#define DM_BITSPERPEL &h40000
#define DM_PELSWIDTH &h80000
#define DM_PELSHEIGHT &h100000
#define DM_DISPLAYFLAGS &h200000
#define DM_DISPLAYFREQUENCY &h400000
#define DM_ICMMETHOD &h800000
#define DM_ICMINTENT &h1000000
#define DM_MEDIATYPE &h2000000
#define DM_DITHERTYPE &h4000000
#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 &hFFFFFFFF
#define HGDI_ERROR (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 &h80000000
#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 &h20000
#define WGL_SWAP_UNDERLAY3 &h40000
#define WGL_SWAP_UNDERLAY4 &h80000
#define WGL_SWAP_UNDERLAY5 &h100000
#define WGL_SWAP_UNDERLAY6 &h200000
#define WGL_SWAP_UNDERLAY7 &h400000
#define WGL_SWAP_UNDERLAY8 &h800000
#define WGL_SWAP_UNDERLAY9 &h1000000
#define WGL_SWAP_UNDERLAY10 &h2000000
#define WGL_SWAP_UNDERLAY11 &h4000000
#define WGL_SWAP_UNDERLAY12 &h8000000
#define WGL_SWAP_UNDERLAY13 &h10000000
#define WGL_SWAP_UNDERLAY14 &h20000000
#define WGL_SWAP_UNDERLAY15 &h40000000
#define AC_SRC_OVER &h00
#define AC_SRC_ALPHA &h01
#define AC_SRC_NO_PREMULT_ALPHA &h01
#define AC_SRC_NO_ALPHA &h02
#define AC_DST_NO_PREMULT_ALPHA &h10
#define AC_DST_NO_ALPHA &h20
#define LAYOUT_RTL 1
#define LAYOUT_BITMAPORIENTATIONPRESERVED 8
#define DISPLAY_DEVICE_ATTACHED_TO_DESKTOP &h00000001
#define DISPLAY_DEVICE_MULTI_DRIVER &h00000002
#define DISPLAY_DEVICE_PRIMARY_DEVICE &h00000004
#define DISPLAY_DEVICE_MIRRORING_DRIVER &h00000008
#define DISPLAY_DEVICE_VGA_COMPATIBLE &h00000010
#define DISPLAY_DEVICE_REMOVABLE &h00000020
#define DISPLAY_DEVICE_MODESPRUNED &h08000000
#define GGI_MARK_NONEXISTING_GLYPHS 1

type ABC
	abcA as integer
	abcB as UINT
	abcC as integer
end type

type LPABC as ABC ptr

type ABCFLOAT
	abcfA as FLOAT
	abcfB as FLOAT
	abcfC as FLOAT
end type

type LPABCFLOAT as ABCFLOAT ptr

type BITMAP
	bmType as LONG
	bmWidth as LONG
	bmHeight as LONG
	bmWidthBytes as LONG
	bmPlanes as WORD
	bmBitsPixel as WORD
	bmBits as LPVOID
end type

type PBITMAP as BITMAP ptr
type LPBITMAP as BITMAP ptr

type BITMAPCOREHEADER
	bcSize as DWORD
	bcWidth as WORD
	bcHeight as WORD
	bcPlanes as WORD
	bcBitCount as WORD
end type

type LPBITMAPCOREHEADER as BITMAPCOREHEADER ptr
type PBITMAPCOREHEADER as BITMAPCOREHEADER ptr

type RGBTRIPLE field=1
	rgbtBlue as UBYTE
	rgbtGreen as UBYTE
	rgbtRed as UBYTE
end type

type LPRGBTRIPLE as RGBTRIPLE ptr

type BITMAPFILEHEADER field=2
	bfType as WORD
	bfSize as DWORD
	bfReserved1 as WORD
	bfReserved2 as WORD
	bfOffBits as DWORD
end type

type LPBITMAPFILEHEADER as BITMAPFILEHEADER ptr
type PBITMAPFILEHEADER as BITMAPFILEHEADER ptr

type BITMAPCOREINFO
	bmciHeader as BITMAPCOREHEADER
	bmciColors(0 to 1-1) as RGBTRIPLE
end type

type LPBITMAPCOREINFO as BITMAPCOREINFO ptr
type PBITMAPCOREINFO as BITMAPCOREINFO ptr

type BITMAPINFOHEADER
	biSize as DWORD
	biWidth as LONG
	biHeight as LONG
	biPlanes as WORD
	biBitCount as WORD
	biCompression as DWORD
	biSizeImage as DWORD
	biXPelsPerMeter as LONG
	biYPelsPerMeter as LONG
	biClrUsed as DWORD
	biClrImportant as DWORD
end type

type LPBITMAPINFOHEADER as BITMAPINFOHEADER ptr
type PBITMAPINFOHEADER as BITMAPINFOHEADER ptr

type RGBQUAD
	rgbBlue as UBYTE
	rgbGreen as UBYTE
	rgbRed as UBYTE
	rgbReserved as UBYTE
end type

type LPRGBQUAD as RGBQUAD ptr

type BITMAPINFO
	bmiHeader as BITMAPINFOHEADER
	bmiColors(0 to 1-1) as RGBQUAD
end type

type LPBITMAPINFO as BITMAPINFO ptr
type PBITMAPINFO as BITMAPINFO ptr
type FXPT16DOT16 as integer
type LPFXPT16DOT16 as integer ptr
type FXPT2DOT30 as integer
type LPFXPT2DOT30 as integer ptr

type CIEXYZ
	ciexyzX as FXPT2DOT30
	ciexyzY as FXPT2DOT30
	ciexyzZ as FXPT2DOT30
end type

type LPCIEXYZ as CIEXYZ ptr

type CIEXYZTRIPLE
	ciexyzRed as CIEXYZ
	ciexyzGreen as CIEXYZ
	ciexyzBlue as CIEXYZ
end type

type LPCIEXYZTRIPLE as CIEXYZTRIPLE ptr

type BITMAPV4HEADER
	bV4Size as DWORD
	bV4Width as LONG
	bV4Height as LONG
	bV4Planes as WORD
	bV4BitCount as WORD
	bV4V4Compression as DWORD
	bV4SizeImage as DWORD
	bV4XPelsPerMeter as LONG
	bV4YPelsPerMeter as LONG
	bV4ClrUsed as DWORD
	bV4ClrImportant as DWORD
	bV4RedMask as DWORD
	bV4GreenMask as DWORD
	bV4BlueMask as DWORD
	bV4AlphaMask as DWORD
	bV4CSType as DWORD
	bV4Endpoints as CIEXYZTRIPLE
	bV4GammaRed as DWORD
	bV4GammaGreen as DWORD
	bV4GammaBlue as DWORD
end type

type LPBITMAPV4HEADER as BITMAPV4HEADER ptr
type PBITMAPV4HEADER as BITMAPV4HEADER ptr

type FONTSIGNATURE
	fsUsb(0 to 4-1) as DWORD
	fsCsb(0 to 2-1) as DWORD
end type

type LPFONTSIGNATURE as FONTSIGNATURE ptr

type CHARSETINFO
	ciCharset as UINT
	ciACP as UINT
	fs as FONTSIGNATURE
end type

type LPCHARSETINFO as CHARSETINFO ptr

type COLORADJUSTMENT
	caSize as WORD
	caFlags as WORD
	caIlluminantIndex as WORD
	caRedGamma as WORD
	caGreenGamma as WORD
	caBlueGamma as WORD
	caReferenceBlack as WORD
	caReferenceWhite as WORD
	caContrast as SHORT
	caBrightness as SHORT
	caColorfulness as SHORT
	caRedGreenTint as SHORT
end type

type LPCOLORADJUSTMENT as COLORADJUSTMENT ptr

#ifndef UNICODE
type DEVMODEA
	dmDeviceName(0 to 32-1) as UBYTE
	dmSpecVersion as WORD
	dmDriverVersion as WORD
	dmSize as WORD
	dmDriverExtra as WORD
	dmFields as DWORD
	union
		type
			dmOrientation as short
			dmPaperSize as short
			dmPaperLength as short
			dmPaperWidth as short
			dmScale as short
			dmCopies as short
			dmDefaultSource as short
			dmPrintQuality as short
		end type
		dmPosition as POINTL
		dmDisplayOrientation as DWORD
		dmDisplayFixedOutput as DWORD
	end union
	dmColor as short
	dmDuplex as short
	dmYResolution as short
	dmTTOption as short
	dmCollate as short
	dmFormName(0 to 32-1) as UBYTE
	dmLogPixels as WORD
	dmBitsPerPel as DWORD
	dmPelsWidth as DWORD
	dmPelsHeight as DWORD
	union
		dmDisplayFlags as DWORD
		dmNup as DWORD
	end union
	dmDisplayFrequency as DWORD
	dmICMMethod as DWORD
	dmICMIntent as DWORD
	dmMediaType as DWORD
	dmDitherType as DWORD
	dmReserved1 as DWORD
	dmReserved2 as DWORD
	dmPanningWidth as DWORD
	dmPanningHeight as DWORD
end type

type LPDEVMODEA as DEVMODEA ptr
type PDEVMODEA as DEVMODEA ptr

#else ''UNICODE
type DEVMODEW
	dmDeviceName as wstring * 32
	dmSpecVersion as WORD
	dmDriverVersion as WORD
	dmSize as WORD
	dmDriverExtra as WORD
	dmFields as DWORD
	union
		type
			dmOrientation as short
			dmPaperSize as short
			dmPaperLength as short
			dmPaperWidth as short
			dmScale as short
			dmCopies as short
			dmDefaultSource as short
			dmPrintQuality as short
		end type
		dmPosition as POINTL
		dmDisplayOrientation as DWORD
		dmDisplayFixedOutput as DWORD
	end union
	dmColor as short
	dmDuplex as short
	dmYResolution as short
	dmTTOption as short
	dmCollate as short
	dmFormName as wstring * 32
	dmLogPixels as WORD
	dmBitsPerPel as DWORD
	dmPelsWidth as DWORD
	dmPelsHeight as DWORD
	union
		dmDisplayFlags as DWORD
		dmNup as DWORD
	end union
	dmDisplayFrequency as DWORD
	dmICMMethod as DWORD
	dmICMIntent as DWORD
	dmMediaType as DWORD
	dmDitherType as DWORD
	dmReserved1 as DWORD
	dmReserved2 as DWORD
	dmPanningWidth as DWORD
	dmPanningHeight as DWORD
end type

type LPDEVMODEW as DEVMODEW ptr
type PDEVMODEW as DEVMODEW ptr
#endif ''UNICODE

type DIBSECTION
	dsBm as BITMAP
	dsBmih as BITMAPINFOHEADER
	dsBitfields(0 to 3-1) as DWORD
	dshSection as HANDLE
	dsOffset as DWORD
end type

#ifndef UNICODE
type DOCINFOA
	cbSize as integer
	lpszDocName as LPCSTR
	lpszOutput as LPCSTR
	lpszDatatype as LPCSTR
	fwType as DWORD
end type

type LPDOCINFOA as DOCINFOA ptr

#else ''UNICODE
type DOCINFOW
	cbSize as integer
	lpszDocName as LPCWSTR
	lpszOutput as LPCWSTR
	lpszDatatype as LPCWSTR
	fwType as DWORD
end type

type LPDOCINFOW as DOCINFOW ptr
#endif ''UNICODE

type EMR
	iType as DWORD
	nSize as DWORD
end type

type PEMR as EMR ptr

type EMRANGLEARC
	emr as EMR
	ptlCenter as POINTL
	nRadius as DWORD
	eStartAngle as FLOAT
	eSweepAngle as FLOAT
end type

type PEMRANGLEARC as EMRANGLEARC ptr

type EMRARC
	emr as EMR
	rclBox as RECTL
	ptlStart as POINTL
	ptlEnd as POINTL
end type

type PEMRARC as EMRARC ptr
type EMRARCTO as EMRARC
type PEMRARCTO as EMRARC ptr
type EMRCHORD as EMRARC
type PEMRCHORD as EMRARC ptr
type EMRPIE as EMRARC
type PEMRPIE as EMRARC ptr

type XFORM
	eM11 as FLOAT
	eM12 as FLOAT
	eM21 as FLOAT
	eM22 as FLOAT
	eDx as FLOAT
	eDy as FLOAT
end type

type PXFORM as XFORM ptr
type LPXFORM as XFORM ptr

type EMRBITBLT
	emr as EMR
	rclBounds as RECTL
	xDest as LONG
	yDest as LONG
	cxDest as LONG
	cyDest as LONG
	dwRop as DWORD
	xSrc as LONG
	ySrc as LONG
	xformSrc as XFORM
	crBkColorSrc as COLORREF
	iUsageSrc as DWORD
	offBmiSrc as DWORD
	offBitsSrc as DWORD
	cbBitsSrc as DWORD
end type

type PEMRBITBLT as EMRBITBLT ptr

type LOGBRUSH
	lbStyle as UINT
	lbColor as COLORREF
	lbHatch as LONG
end type

type PLOGBRUSH as LOGBRUSH ptr
type LPLOGBRUSH as LOGBRUSH ptr
type PATTERN as LOGBRUSH
type PPATTERN as LOGBRUSH ptr
type LPPATTERN as LOGBRUSH ptr

type EMRCREATEBRUSHINDIRECT
	emr as EMR
	ihBrush as DWORD
	lb as LOGBRUSH
end type

type PEMRCREATEBRUSHINDIRECT as EMRCREATEBRUSHINDIRECT ptr
type LCSCSTYPE as LONG
type LCSGAMUTMATCH as LONG

#ifndef UNICODE
type LOGCOLORSPACEA
	lcsSignature as DWORD
	lcsVersion as DWORD
	lcsSize as DWORD
	lcsCSType as LCSCSTYPE
	lcsIntent as LCSGAMUTMATCH
	lcsEndpoints as CIEXYZTRIPLE
	lcsGammaRed as DWORD
	lcsGammaGreen as DWORD
	lcsGammaBlue as DWORD
	lcsFilename as zstring * 260
end type

type LPLOGCOLORSPACEA as LOGCOLORSPACEA ptr
#else ''UNICODE

type LOGCOLORSPACEW
	lcsSignature as DWORD
	lcsVersion as DWORD
	lcsSize as DWORD
	lcsCSType as LCSCSTYPE
	lcsIntent as LCSGAMUTMATCH
	lcsEndpoints as CIEXYZTRIPLE
	lcsGammaRed as DWORD
	lcsGammaGreen as DWORD
	lcsGammaBlue as DWORD
	lcsFilename as wstring * 260
end type

type LPLOGCOLORSPACEW as LOGCOLORSPACEW ptr

type EMRCREATECOLORSPACE
	emr as EMR
	ihCS as DWORD
	lcs as LOGCOLORSPACEW
end type

type PEMRCREATECOLORSPACE as EMRCREATECOLORSPACE ptr

#endif ''UNICODE

type EMRCREATEDIBPATTERNBRUSHPT
	emr as EMR
	ihBrush as DWORD
	iUsage as DWORD
	offBmi as DWORD
	cbBmi as DWORD
	offBits as DWORD
	cbBits as DWORD
end type

type PEMRCREATEDIBPATTERNBRUSHPT as EMRCREATEDIBPATTERNBRUSHPT ptr

type EMRCREATEMONOBRUSH
	emr as EMR
	ihBrush as DWORD
	iUsage as DWORD
	offBmi as DWORD
	cbBmi as DWORD
	offBits as DWORD
	cbBits as DWORD
end type

type PEMRCREATEMONOBRUSH as EMRCREATEMONOBRUSH ptr

type PALETTEENTRY
	peRed as UBYTE
	peGreen as UBYTE
	peBlue as UBYTE
	peFlags as UBYTE
end type

type LPPALETTEENTRY as PALETTEENTRY ptr
type PPALETTEENTRY as PALETTEENTRY ptr

type LOGPALETTE
	palVersion as WORD
	palNumEntries as WORD
	palPalEntry(0 to 1-1) as PALETTEENTRY
end type

type NPLOGPALETTE as LOGPALETTE ptr
type PLOGPALETTE as LOGPALETTE ptr
type LPLOGPALETTE as LOGPALETTE ptr

type EMRCREATEPALETTE
	emr as EMR
	ihPal as DWORD
	lgpl as LOGPALETTE
end type

type PEMRCREATEPALETTE as EMRCREATEPALETTE ptr

type LOGPEN
	lopnStyle as UINT
	lopnWidth as POINT
	lopnColor as COLORREF
end type

type PLOGPEN as LOGPEN ptr
type LPLOGPEN as LOGPEN ptr

type EMRCREATEPEN
	emr as EMR
	ihPen as DWORD
	lopn as LOGPEN
end type

type PEMRCREATEPEN as EMRCREATEPEN ptr

type EMRELLIPSE
	emr as EMR
	rclBox as RECTL
end type

type PEMRELLIPSE as EMRELLIPSE ptr
type EMRRECTANGLE as EMRELLIPSE
type PEMRRECTANGLE as EMRELLIPSE ptr

type EMREOF
	emr as EMR
	nPalEntries as DWORD
	offPalEntries as DWORD
	nSizeLast as DWORD
end type

type PEMREOF as EMREOF ptr

type EMREXCLUDECLIPRECT
	emr as EMR
	rclClip as RECTL
end type

type PEMREXCLUDECLIPRECT as EMREXCLUDECLIPRECT ptr
type EMRINTERSECTCLIPRECT as EMREXCLUDECLIPRECT
type PEMRINTERSECTCLIPRECT as EMREXCLUDECLIPRECT ptr

type PANOSE
	bFamilyType as UBYTE
	bSerifStyle as UBYTE
	bWeight as UBYTE
	bProportion as UBYTE
	bContrast as UBYTE
	bStrokeVariation as UBYTE
	bArmStyle as UBYTE
	bLetterform as UBYTE
	bMidline as UBYTE
	bXHeight as UBYTE
end type

#ifndef UNICODE
type LOGFONTA
	lfHeight as LONG
	lfWidth as LONG
	lfEscapement as LONG
	lfOrientation as LONG
	lfWeight as LONG
	lfItalic as UBYTE
	lfUnderline as UBYTE
	lfStrikeOut as UBYTE
	lfCharSet as UBYTE
	lfOutPrecision as UBYTE
	lfClipPrecision as UBYTE
	lfQuality as UBYTE
	lfPitchAndFamily as UBYTE
	lfFaceName as zstring * 32
end type

type PLOGFONTA as LOGFONTA ptr
type LPLOGFONTA as LOGFONTA ptr

#else ''UNICODE
type LOGFONTW
	lfHeight as LONG
	lfWidth as LONG
	lfEscapement as LONG
	lfOrientation as LONG
	lfWeight as LONG
	lfItalic as UBYTE
	lfUnderline as UBYTE
	lfStrikeOut as UBYTE
	lfCharSet as UBYTE
	lfOutPrecision as UBYTE
	lfClipPrecision as UBYTE
	lfQuality as UBYTE
	lfPitchAndFamily as UBYTE
	lfFaceName as wstring * 32
end type

type PLOGFONTW as LOGFONTW ptr
type LPLOGFONTW as LOGFONTW ptr
#endif ''UNICODE

#ifndef UNICODE
type EXTLOGFONTA
	elfLogFont as LOGFONTA
	elfFullName(0 to 64-1) as UBYTE
	elfStyle(0 to 32-1) as UBYTE
	elfVersion as DWORD
	elfStyleSize as DWORD
	elfMatch as DWORD
	elfReserved as DWORD
	elfVendorId(0 to 4-1) as UBYTE
	elfCulture as DWORD
	elfPanose as PANOSE
end type

type PEXTLOGFONTA as EXTLOGFONTA ptr
type LPEXTLOGFONTA as EXTLOGFONTA ptr

#else ''UNICODE
type EXTLOGFONTW
	elfLogFont as LOGFONTW
	elfFullName as wstring * 64
	elfStyle as wstring * 32
	elfVersion as DWORD
	elfStyleSize as DWORD
	elfMatch as DWORD
	elfReserved as DWORD
	elfVendorId(0 to 4-1) as UBYTE
	elfCulture as DWORD
	elfPanose as PANOSE
end type

type PEXTLOGFONTW as EXTLOGFONTW ptr
type LPEXTLOGFONTW as EXTLOGFONTW ptr

type EMREXTCREATEFONTINDIRECTW
	emr as EMR
	ihFont as DWORD
	elfw as EXTLOGFONTW
end type

type PEMREXTCREATEFONTINDIRECTW as EMREXTCREATEFONTINDIRECTW ptr
#endif ''UNICODE

type EXTLOGPEN
	elpPenStyle as UINT
	elpWidth as UINT
	elpBrushStyle as UINT
	elpColor as COLORREF
	elpHatch as LONG
	elpNumEntries as DWORD
	elpStyleEntry(0 to 1-1) as DWORD
end type

type PEXTLOGPEN as EXTLOGPEN ptr
type LPEXTLOGPEN as EXTLOGPEN ptr

type EMREXTCREATEPEN
	emr as EMR
	ihPen as DWORD
	offBmi as DWORD
	cbBmi as DWORD
	offBits as DWORD
	cbBits as DWORD
	elp as EXTLOGPEN
end type

type PEMREXTCREATEPEN as EMREXTCREATEPEN ptr

type EMREXTFLOODFILL
	emr as EMR
	ptlStart as POINTL
	crColor as COLORREF
	iMode as DWORD
end type

type PEMREXTFLOODFILL as EMREXTFLOODFILL ptr

type EMREXTSELECTCLIPRGN
	emr as EMR
	cbRgnData as DWORD
	iMode as DWORD
	RgnData(0 to 1-1) as UBYTE
end type

type PEMREXTSELECTCLIPRGN as EMREXTSELECTCLIPRGN ptr

type EMRTEXT
	ptlReference as POINTL
	nChars as DWORD
	offString as DWORD
	fOptions as DWORD
	rcl as RECTL
	offDx as DWORD
end type

type PEMRTEXT as EMRTEXT ptr

type EMREXTTEXTOUTA
	emr as EMR
	rclBounds as RECTL
	iGraphicsMode as DWORD
	exScale as FLOAT
	eyScale as FLOAT
	emrtext as EMRTEXT
end type

type PEMREXTTEXTOUTA as EMREXTTEXTOUTA ptr
type EMREXTTEXTOUTW as EMREXTTEXTOUTA
type PEMREXTTEXTOUTW as EMREXTTEXTOUTA ptr

type EMRFILLPATH
	emr as EMR
	rclBounds as RECTL
end type

type PEMRFILLPATH as EMRFILLPATH ptr
type EMRSTROKEANDFILLPATH as EMRFILLPATH
type PEMRSTROKEANDFILLPATH as EMRFILLPATH ptr
type EMRSTROKEPATH as EMRFILLPATH
type PEMRSTROKEPATH as EMRFILLPATH ptr

type EMRFILLRGN
	emr as EMR
	rclBounds as RECTL
	cbRgnData as DWORD
	ihBrush as DWORD
	RgnData(0 to 1-1) as UBYTE
end type

type PEMRFILLRGN as EMRFILLRGN ptr

type EMRFORMAT
	dSignature as DWORD
	nVersion as DWORD
	cbData as DWORD
	offData as DWORD
end type

type EMRFRAMERGN
	emr as EMR
	rclBounds as RECTL
	cbRgnData as DWORD
	ihBrush as DWORD
	szlStroke as SIZEL
	RgnData(0 to 1-1) as UBYTE
end type

type PEMRFRAMERGN as EMRFRAMERGN ptr

type EMRGDICOMMENT
	emr as EMR
	cbData as DWORD
	Data(0 to 1-1) as UBYTE
end type

type PEMRGDICOMMENT as EMRGDICOMMENT ptr

type EMRINVERTRGN
	emr as EMR
	rclBounds as RECTL
	cbRgnData as DWORD
	RgnData(0 to 1-1) as UBYTE
end type

type PEMRINVERTRGN as EMRINVERTRGN ptr
type EMRPAINTRGN as EMRINVERTRGN
type PEMRPAINTRGN as EMRINVERTRGN ptr

type EMRLINETO
	emr as EMR
	ptl as POINTL
end type

type PEMRLINETO as EMRLINETO ptr
type EMRMOVETOEX as EMRLINETO
type PEMRMOVETOEX as EMRLINETO ptr

type EMRMASKBLT
	emr as EMR
	rclBounds as RECTL
	xDest as LONG
	yDest as LONG
	cxDest as LONG
	cyDest as LONG
	dwRop as DWORD
	xSrc as LONG
	ySrc as LONG
	xformSrc as XFORM
	crBkColorSrc as COLORREF
	iUsageSrc as DWORD
	offBmiSrc as DWORD
	cbBmiSrc as DWORD
	offBitsSrc as DWORD
	cbBitsSrc as DWORD
	xMask as LONG
	yMask as LONG
	iUsageMask as DWORD
	offBmiMask as DWORD
	cbBmiMask as DWORD
	offBitsMask as DWORD
	cbBitsMask as DWORD
end type

type PEMRMASKBLT as EMRMASKBLT ptr

type EMRMODIFYWORLDTRANSFORM
	emr as EMR
	xform as XFORM
	iMode as DWORD
end type

type PEMRMODIFYWORLDTRANSFORM as EMRMODIFYWORLDTRANSFORM ptr

type EMROFFSETCLIPRGN
	emr as EMR
	ptlOffset as POINTL
end type

type PEMROFFSETCLIPRGN as EMROFFSETCLIPRGN ptr

type EMRPLGBLT
	emr as EMR
	rclBounds as RECTL
	aptlDest(0 to 3-1) as POINTL
	xSrc as LONG
	ySrc as LONG
	cxSrc as LONG
	cySrc as LONG
	xformSrc as XFORM
	crBkColorSrc as COLORREF
	iUsageSrc as DWORD
	offBmiSrc as DWORD
	cbBmiSrc as DWORD
	offBitsSrc as DWORD
	cbBitsSrc as DWORD
	xMask as LONG
	yMask as LONG
	iUsageMask as DWORD
	offBmiMask as DWORD
	cbBmiMask as DWORD
	offBitsMask as DWORD
	cbBitsMask as DWORD
end type

type PEMRPLGBLT as EMRPLGBLT ptr

type EMRPOLYDRAW
	emr as EMR
	rclBounds as RECTL
	cptl as DWORD
	aptl(0 to 1-1) as POINTL
	abTypes(0 to 1-1) as UBYTE
end type

type PEMRPOLYDRAW as EMRPOLYDRAW ptr

type EMRPOLYDRAW16
	emr as EMR
	rclBounds as RECTL
	cpts as DWORD
	apts(0 to 1-1) as POINTS
	abTypes(0 to 1-1) as UBYTE
end type

type PEMRPOLYDRAW16 as EMRPOLYDRAW16 ptr

type EMRPOLYLINE
	emr as EMR
	rclBounds as RECTL
	cptl as DWORD
	aptl(0 to 1-1) as POINTL
end type

type PEMRPOLYLINE as EMRPOLYLINE ptr
type EMRPOLYBEZIER as EMRPOLYLINE
type PEMRPOLYBEZIER as EMRPOLYLINE ptr
type EMRPOLYGON as EMRPOLYLINE
type PEMRPOLYGON as EMRPOLYLINE ptr
type EMRPOLYBEZIERTO as EMRPOLYLINE
type PEMRPOLYBEZIERTO as EMRPOLYLINE ptr
type EMRPOLYLINETO as EMRPOLYLINE
type PEMRPOLYLINETO as EMRPOLYLINE ptr

type EMRPOLYLINE16
	emr as EMR
	rclBounds as RECTL
	cpts as DWORD
	apts(0 to 1-1) as POINTL
end type

type PEMRPOLYLINE16 as EMRPOLYLINE16 ptr
type EMRPOLYBEZIER16 as EMRPOLYLINE16
type PEMRPOLYBEZIER16 as EMRPOLYLINE16 ptr
type EMRPOLYGON16 as EMRPOLYLINE16
type PEMRPOLYGON16 as EMRPOLYLINE16 ptr
type EMRPOLYBEZIERTO16 as EMRPOLYLINE16
type PEMRPOLYBEZIERTO16 as EMRPOLYLINE16 ptr
type EMRPOLYLINETO16 as EMRPOLYLINE16
type PEMRPOLYLINETO16 as EMRPOLYLINE16 ptr

type EMRPOLYPOLYLINE
	emr as EMR
	rclBounds as RECTL
	nPolys as DWORD
	cptl as DWORD
	aPolyCounts(0 to 1-1) as DWORD
	aptl(0 to 1-1) as POINTL
end type

type PEMRPOLYPOLYLINE as EMRPOLYPOLYLINE ptr
type EMRPOLYPOLYGON as EMRPOLYPOLYLINE
type PEMRPOLYPOLYGON as EMRPOLYPOLYLINE ptr

type EMRPOLYPOLYLINE16
	emr as EMR
	rclBounds as RECTL
	nPolys as DWORD
	cpts as DWORD
	aPolyCounts(0 to 1-1) as DWORD
	apts(0 to 1-1) as POINTS
end type

type PEMRPOLYPOLYLINE16 as EMRPOLYPOLYLINE16 ptr
type EMRPOLYPOLYGON16 as EMRPOLYPOLYLINE16
type PEMRPOLYPOLYGON16 as EMRPOLYPOLYLINE16 ptr

type EMRPOLYTEXTOUTA
	emr as EMR
	rclBounds as RECTL
	iGraphicsMode as DWORD
	exScale as FLOAT
	eyScale as FLOAT
	cStrings as LONG
	aemrtext(0 to 1-1) as EMRTEXT
end type

type PEMRPOLYTEXTOUTA as EMRPOLYTEXTOUTA ptr
type EMRPOLYTEXTOUTW as EMRPOLYTEXTOUTA
type PEMRPOLYTEXTOUTW as EMRPOLYTEXTOUTA ptr

type EMRRESIZEPALETTE
	emr as EMR
	ihPal as DWORD
	cEntries as DWORD
end type

type PEMRRESIZEPALETTE as EMRRESIZEPALETTE ptr

type EMRRESTOREDC
	emr as EMR
	iRelative as LONG
end type

type PEMRRESTOREDC as EMRRESTOREDC ptr

type EMRROUNDRECT
	emr as EMR
	rclBox as RECTL
	szlCorner as SIZEL
end type

type PEMRROUNDRECT as EMRROUNDRECT ptr

type EMRSCALEVIEWPORTEXTEX
	emr as EMR
	xNum as LONG
	xDenom as LONG
	yNum as LONG
	yDenom as LONG
end type

type PEMRSCALEVIEWPORTEXTEX as EMRSCALEVIEWPORTEXTEX ptr
type EMRSCALEWINDOWEXTEX as EMRSCALEVIEWPORTEXTEX
type PEMRSCALEWINDOWEXTEX as EMRSCALEVIEWPORTEXTEX ptr

type EMRSELECTCOLORSPACE
	emr as EMR
	ihCS as DWORD
end type

type PEMRSELECTCOLORSPACE as EMRSELECTCOLORSPACE ptr
type EMRDELETECOLORSPACE as EMRSELECTCOLORSPACE
type PEMRDELETECOLORSPACE as EMRSELECTCOLORSPACE ptr

type EMRSELECTOBJECT
	emr as EMR
	ihObject as DWORD
end type

type PEMRSELECTOBJECT as EMRSELECTOBJECT ptr
type EMRDELETEOBJECT as EMRSELECTOBJECT
type PEMRDELETEOBJECT as EMRSELECTOBJECT ptr

type EMRSELECTPALETTE
	emr as EMR
	ihPal as DWORD
end type

type PEMRSELECTPALETTE as EMRSELECTPALETTE ptr

type EMRSETARCDIRECTION
	emr as EMR
	iArcDirection as DWORD
end type

type PEMRSETARCDIRECTION as EMRSETARCDIRECTION ptr

type EMRSETTEXTCOLOR
	emr as EMR
	crColor as COLORREF
end type

type PEMRSETBKCOLOR as EMRSETTEXTCOLOR ptr
type PEMRSETTEXTCOLOR as EMRSETTEXTCOLOR ptr

type EMRSETCOLORADJUSTMENT
	emr as EMR
	ColorAdjustment as COLORADJUSTMENT
end type

type PEMRSETCOLORADJUSTMENT as EMRSETCOLORADJUSTMENT ptr

type EMRSETDIBITSTODEVICE
	emr as EMR
	rclBounds as RECTL
	xDest as LONG
	yDest as LONG
	xSrc as LONG
	ySrc as LONG
	cxSrc as LONG
	cySrc as LONG
	offBmiSrc as DWORD
	cbBmiSrc as DWORD
	offBitsSrc as DWORD
	cbBitsSrc as DWORD
	iUsageSrc as DWORD
	iStartScan as DWORD
	cScans as DWORD
end type

type PEMRSETDIBITSTODEVICE as EMRSETDIBITSTODEVICE ptr

type EMRSETMAPPERFLAGS
	emr as EMR
	dwFlags as DWORD
end type

type PEMRSETMAPPERFLAGS as EMRSETMAPPERFLAGS ptr

type EMRSETMITERLIMIT
	emr as EMR
	eMiterLimit as FLOAT
end type

type PEMRSETMITERLIMIT as EMRSETMITERLIMIT ptr

type EMRSETPALETTEENTRIES
	emr as EMR
	ihPal as DWORD
	iStart as DWORD
	cEntries as DWORD
	aPalEntries(0 to 1-1) as PALETTEENTRY
end type

type PEMRSETPALETTEENTRIES as EMRSETPALETTEENTRIES ptr

type EMRSETPIXELV
	emr as EMR
	ptlPixel as POINTL
	crColor as COLORREF
end type

type PEMRSETPIXELV as EMRSETPIXELV ptr

type EMRSETVIEWPORTEXTEX
	emr as EMR
	szlExtent as SIZEL
end type

type PEMRSETVIEWPORTEXTEX as EMRSETVIEWPORTEXTEX ptr
type EMRSETWINDOWEXTEX as EMRSETVIEWPORTEXTEX
type PEMRSETWINDOWEXTEX as EMRSETVIEWPORTEXTEX ptr

type EMRSETVIEWPORTORGEX
	emr as EMR
	ptlOrigin as POINTL
end type

type PEMRSETVIEWPORTORGEX as EMRSETVIEWPORTORGEX ptr
type EMRSETWINDOWORGEX as EMRSETVIEWPORTORGEX
type PEMRSETWINDOWORGEX as EMRSETVIEWPORTORGEX ptr
type EMRSETBRUSHORGEX as EMRSETVIEWPORTORGEX
type PEMRSETBRUSHORGEX as EMRSETVIEWPORTORGEX ptr

type EMRSETWORLDTRANSFORM
	emr as EMR
	xform as XFORM
end type

type PEMRSETWORLDTRANSFORM as EMRSETWORLDTRANSFORM ptr

type EMRSTRETCHBLT
	emr as EMR
	rclBounds as RECTL
	xDest as LONG
	yDest as LONG
	cxDest as LONG
	cyDest as LONG
	dwRop as DWORD
	xSrc as LONG
	ySrc as LONG
	xformSrc as XFORM
	crBkColorSrc as COLORREF
	iUsageSrc as DWORD
	offBmiSrc as DWORD
	cbBmiSrc as DWORD
	offBitsSrc as DWORD
	cbBitsSrc as DWORD
	cxSrc as LONG
	cySrc as LONG
end type

type PEMRSTRETCHBLT as EMRSTRETCHBLT ptr

type EMRSTRETCHDIBITS
	emr as EMR
	rclBounds as RECTL
	xDest as LONG
	yDest as LONG
	xSrc as LONG
	ySrc as LONG
	cxSrc as LONG
	cySrc as LONG
	offBmiSrc as DWORD
	cbBmiSrc as DWORD
	offBitsSrc as DWORD
	cbBitsSrc as DWORD
	iUsageSrc as DWORD
	dwRop as DWORD
	cxDest as LONG
	cyDest as LONG
end type

type PEMRSTRETCHDIBITS as EMRSTRETCHDIBITS ptr

type ABORTPATH
	emr as EMR
end type

type PEMRABORTPATH as ABORTPATH ptr
type EMRBEGINPATH as ABORTPATH
type PEMRBEGINPATH as ABORTPATH ptr
type EMRENDPATH as ABORTPATH
type PEMRENDPATH as ABORTPATH ptr
type EMRCLOSEFIGURE as ABORTPATH
type PEMRCLOSEFIGURE as ABORTPATH ptr
type EMRFLATTENPATH as ABORTPATH
type PEMRFLATTENPATH as ABORTPATH ptr
type EMRWIDENPATH as ABORTPATH
type PEMRWIDENPATH as ABORTPATH ptr
type EMRSETMETARGN as ABORTPATH
type PEMRSETMETARGN as ABORTPATH ptr
type EMRSAVEDC as ABORTPATH
type PEMRSAVEDC as ABORTPATH ptr
type EMRREALIZEPALETTE as ABORTPATH
type PEMRREALIZEPALETTE as ABORTPATH ptr

type EMRSELECTCLIPPATH
	emr as EMR
	iMode as DWORD
end type

type PEMRSELECTCLIPPATH as EMRSELECTCLIPPATH ptr
type EMRSETBKMODE as EMRSELECTCLIPPATH
type PEMRSETBKMODE as EMRSELECTCLIPPATH ptr
type EMRSETMAPMODE as EMRSELECTCLIPPATH
type PEMRSETMAPMODE as EMRSELECTCLIPPATH ptr
type EMRSETPOLYFILLMODE as EMRSELECTCLIPPATH
type PEMRSETPOLYFILLMODE as EMRSELECTCLIPPATH ptr
type EMRSETROP2 as EMRSELECTCLIPPATH
type PEMRSETROP2 as EMRSELECTCLIPPATH ptr
type EMRSETSTRETCHBLTMODE as EMRSELECTCLIPPATH
type PEMRSETSTRETCHBLTMODE as EMRSELECTCLIPPATH ptr
type EMRSETTEXTALIGN as EMRSELECTCLIPPATH
type PEMRSETTEXTALIGN as EMRSELECTCLIPPATH ptr
type EMRENABLEICM as EMRSELECTCLIPPATH
type PEMRENABLEICM as EMRSELECTCLIPPATH ptr

type METAHEADER field=2
	mtType as WORD
	mtHeaderSize as WORD
	mtVersion as WORD
	mtSize as DWORD
	mtNoObjects as WORD
	mtMaxRecord as DWORD
	mtNoParameters as WORD
end type

type PMETAHEADER as METAHEADER ptr
type LPMETAHEADER as METAHEADER ptr

type ENHMETAHEADER
	iType as DWORD
	nSize as DWORD
	rclBounds as RECTL
	rclFrame as RECTL
	dSignature as DWORD
	nVersion as DWORD
	nBytes as DWORD
	nRecords as DWORD
	nHandles as WORD
	sReserved as WORD
	nDescription as DWORD
	offDescription as DWORD
	nPalEntries as DWORD
	szlDevice as SIZEL
	szlMillimeters as SIZEL
end type

type LPENHMETAHEADER as ENHMETAHEADER ptr

type METARECORD
	rdSize as DWORD
	rdFunction as WORD
	rdParm(0 to 1-1) as WORD
end type

type PMETARECORD as METARECORD ptr
type LPMETARECORD as METARECORD ptr

type ENHMETARECORD
	iType as DWORD
	nSize as DWORD
	dParm(0 to 1-1) as DWORD
end type

type LPENHMETARECORD as ENHMETARECORD ptr

type HANDLETABLE
	objectHandle(0 to 1-1) as HGDIOBJ
end type

type LPHANDLETABLE as HANDLETABLE ptr

#ifndef UNICODE
type TEXTMETRICA
	tmHeight as LONG
	tmAscent as LONG
	tmDescent as LONG
	tmInternalLeading as LONG
	tmExternalLeading as LONG
	tmAveCharWidth as LONG
	tmMaxCharWidth as LONG
	tmWeight as LONG
	tmOverhang as LONG
	tmDigitizedAspectX as LONG
	tmDigitizedAspectY as LONG
	tmFirstChar as UBYTE
	tmLastChar as UBYTE
	tmDefaultChar as UBYTE
	tmBreakChar as UBYTE
	tmItalic as UBYTE
	tmUnderlined as UBYTE
	tmStruckOut as UBYTE
	tmPitchAndFamily as UBYTE
	tmCharSet as UBYTE
end type

type PTEXTMETRICA as TEXTMETRICA ptr
type LPTEXTMETRICA as TEXTMETRICA ptr

#else ''UNICODE
type TEXTMETRICW
	tmHeight as LONG
	tmAscent as LONG
	tmDescent as LONG
	tmInternalLeading as LONG
	tmExternalLeading as LONG
	tmAveCharWidth as LONG
	tmMaxCharWidth as LONG
	tmWeight as LONG
	tmOverhang as LONG
	tmDigitizedAspectX as LONG
	tmDigitizedAspectY as LONG
	tmFirstChar as WCHAR
	tmLastChar as WCHAR
	tmDefaultChar as WCHAR
	tmBreakChar as WCHAR
	tmItalic as UBYTE
	tmUnderlined as UBYTE
	tmStruckOut as UBYTE
	tmPitchAndFamily as UBYTE
	tmCharSet as UBYTE
end type

type PTEXTMETRICW as TEXTMETRICW ptr
type LPTEXTMETRICW as TEXTMETRICW ptr
#endif ''UNICODE

type RGNDATAHEADER
	dwSize as DWORD
	iType as DWORD
	nCount as DWORD
	nRgnSize as DWORD
	rcBound as RECT
end type

type RGNDATA
	rdh as RGNDATAHEADER
	Buffer as zstring * 1
end type

type PRGNDATA as RGNDATA ptr
type LPRGNDATA as RGNDATA ptr

#define SYSRGN 4

#ifndef UNICODE
type GCP_RESULTSA
	lStructSize as DWORD
	lpOutString as LPSTR
	lpOrder as UINT ptr
	lpDx as INT_ ptr
	lpCaretPos as INT_ ptr
	lpClass as LPSTR
	lpGlyphs as LPWSTR
	nGlyphs as UINT
	nMaxFit as UINT
end type

type LPGCP_RESULTSA as GCP_RESULTSA ptr

#else ''UNICODE
type GCP_RESULTSW
	lStructSize as DWORD
	lpOutString as LPWSTR
	lpOrder as UINT ptr
	lpDx as INT_ ptr
	lpCaretPos as INT_ ptr
	lpClass as LPWSTR
	lpGlyphs as LPWSTR
	nGlyphs as UINT
	nMaxFit as UINT
end type

type LPGCP_RESULTSW as GCP_RESULTSW ptr
#endif ''UNICODE

type GLYPHMETRICS
	gmBlackBoxX as UINT
	gmBlackBoxY as UINT
	gmptGlyphOrigin as POINT
	gmCellIncX as short
	gmCellIncY as short
end type

type LPGLYPHMETRICS as GLYPHMETRICS ptr
type WCRANGE
	wcLow as WCHAR
	cGlyphs as USHORT
end type

type PWCRANGE as WCRANGE ptr
type LPWCRANGE as WCRANGE ptr

type GLYPHSET
	cbThis as DWORD
	flAccel as DWORD
	cGlyphsSupported as DWORD
	cRanges as DWORD
	ranges(0 to 1-1) as WCRANGE
end type

type PGLYPHSET as GLYPHSET ptr
type LPGLYPHSET as GLYPHSET ptr


type KERNINGPAIR
	wFirst as WORD
	wSecond as WORD
	iKernAmount as integer
end type

type LPKERNINGPAIR as KERNINGPAIR ptr

type FIXED
	fract as WORD
	value as short
end type

type MAT2
	eM11 as FIXED
	eM12 as FIXED
	eM21 as FIXED
	eM22 as FIXED
end type

type LPMAT2 as MAT2 ptr

#ifndef UNICODE
type OUTLINETEXTMETRICA
	otmSize as UINT
	otmTextMetrics as TEXTMETRICA
	otmFiller as UBYTE
	otmPanoseNumber as PANOSE
	otmfsSelection as UINT
	otmfsType as UINT
	otmsCharSlopeRise as integer
	otmsCharSlopeRun as integer
	otmItalicAngle as integer
	otmEMSquare as UINT
	otmAscent as integer
	otmDescent as integer
	otmLineGap as UINT
	otmsCapEmHeight as UINT
	otmsXHeight as UINT
	otmrcFontBox as RECT
	otmMacAscent as integer
	otmMacDescent as integer
	otmMacLineGap as UINT
	otmusMinimumPPEM as UINT
	otmptSubscriptSize as POINT
	otmptSubscriptOffset as POINT
	otmptSuperscriptSize as POINT
	otmptSuperscriptOffset as POINT
	otmsStrikeoutSize as UINT
	otmsStrikeoutPosition as integer
	otmsUnderscoreSize as integer
	otmsUnderscorePosition as integer
	otmpFamilyName as PSTR
	otmpFaceName as PSTR
	otmpStyleName as PSTR
	otmpFullName as PSTR
end type

type POUTLINETEXTMETRICA as OUTLINETEXTMETRICA ptr
type LPOUTLINETEXTMETRICA as OUTLINETEXTMETRICA ptr

#else ''UNICODE
type OUTLINETEXTMETRICW
	otmSize as UINT
	otmTextMetrics as TEXTMETRICW
	otmFiller as UBYTE
	otmPanoseNumber as PANOSE
	otmfsSelection as UINT
	otmfsType as UINT
	otmsCharSlopeRise as integer
	otmsCharSlopeRun as integer
	otmItalicAngle as integer
	otmEMSquare as UINT
	otmAscent as integer
	otmDescent as integer
	otmLineGap as UINT
	otmsCapEmHeight as UINT
	otmsXHeight as UINT
	otmrcFontBox as RECT
	otmMacAscent as integer
	otmMacDescent as integer
	otmMacLineGap as UINT
	otmusMinimumPPEM as UINT
	otmptSubscriptSize as POINT
	otmptSubscriptOffset as POINT
	otmptSuperscriptSize as POINT
	otmptSuperscriptOffset as POINT
	otmsStrikeoutSize as UINT
	otmsStrikeoutPosition as integer
	otmsUnderscoreSize as integer
	otmsUnderscorePosition as integer
	otmpFamilyName as PSTR
	otmpFaceName as PSTR
	otmpStyleName as PSTR
	otmpFullName as PSTR
end type

type POUTLINETEXTMETRICW as OUTLINETEXTMETRICW ptr
type LPOUTLINETEXTMETRICW as OUTLINETEXTMETRICW ptr
#endif ''UNICODE

type RASTERIZER_STATUS
	nSize as short
	wFlags as short
	nLanguageID as short
end type

type LPRASTERIZER_STATUS as RASTERIZER_STATUS ptr

#ifndef UNICODE
type POLYTEXTA
	x as integer
	y as integer
	n as UINT
	lpstr as LPCSTR
	uiFlags as UINT
	rcl as RECT
	pdx as integer ptr
end type

type PPOLYTEXTA as POLYTEXTA ptr

#else ''UNICODE
type POLYTEXTW
	x as integer
	y as integer
	n as UINT
	lpstr as LPCWSTR
	uiFlags as UINT
	rcl as RECT
	pdx as integer ptr
end type

type PPOLYTEXTW as POLYTEXTW ptr
#endif ''UNICODE

type PIXELFORMATDESCRIPTOR
	nSize as WORD
	nVersion as WORD
	dwFlags as DWORD
	iPixelType as UBYTE
	cColorBits as UBYTE
	cRedBits as UBYTE
	cRedShift as UBYTE
	cGreenBits as UBYTE
	cGreenShift as UBYTE
	cBlueBits as UBYTE
	cBlueShift as UBYTE
	cAlphaBits as UBYTE
	cAlphaShift as UBYTE
	cAccumBits as UBYTE
	cAccumRedBits as UBYTE
	cAccumGreenBits as UBYTE
	cAccumBlueBits as UBYTE
	cAccumAlphaBits as UBYTE
	cDepthBits as UBYTE
	cStencilBits as UBYTE
	cAuxBuffers as UBYTE
	iLayerType as UBYTE
	bReserved as UBYTE
	dwLayerMask as DWORD
	dwVisibleMask as DWORD
	dwDamageMask as DWORD
end type

type PPIXELFORMATDESCRIPTOR as PIXELFORMATDESCRIPTOR ptr
type LPPIXELFORMATDESCRIPTOR as PIXELFORMATDESCRIPTOR ptr

type METAFILEPICT
	mm as LONG
	xExt as LONG
	yExt as LONG
	hMF as HMETAFILE
end type

type LPMETAFILEPICT as METAFILEPICT ptr

type LOCALESIGNATURE
	lsUsb(0 to 4-1) as DWORD
	lsCsbDefault(0 to 2-1) as DWORD
	lsCsbSupported(0 to 2-1) as DWORD
end type

type PLOCALESIGNATURE as LOCALESIGNATURE ptr
type LPLOCALESIGNATURE as LOCALESIGNATURE ptr
type LCSTYPE as LONG

#ifndef UNICODE
type NEWTEXTMETRICA
	tmHeight as LONG
	tmAscent as LONG
	tmDescent as LONG
	tmInternalLeading as LONG
	tmExternalLeading as LONG
	tmAveCharWidth as LONG
	tmMaxCharWidth as LONG
	tmWeight as LONG
	tmOverhang as LONG
	tmDigitizedAspectX as LONG
	tmDigitizedAspectY as LONG
	tmFirstChar as UBYTE
	tmLastChar as UBYTE
	tmDefaultChar as UBYTE
	tmBreakChar as UBYTE
	tmItalic as UBYTE
	tmUnderlined as UBYTE
	tmStruckOut as UBYTE
	tmPitchAndFamily as UBYTE
	tmCharSet as UBYTE
	ntmFlags as DWORD
	ntmSizeEM as UINT
	ntmCellHeight as UINT
	ntmAvgWidth as UINT
end type

type PNEWTEXTMETRICA as NEWTEXTMETRICA ptr
type LPNEWTEXTMETRICA as NEWTEXTMETRICA ptr

#else ''UNICODE
type NEWTEXTMETRICW
	tmHeight as LONG
	tmAscent as LONG
	tmDescent as LONG
	tmInternalLeading as LONG
	tmExternalLeading as LONG
	tmAveCharWidth as LONG
	tmMaxCharWidth as LONG
	tmWeight as LONG
	tmOverhang as LONG
	tmDigitizedAspectX as LONG
	tmDigitizedAspectY as LONG
	tmFirstChar as WCHAR
	tmLastChar as WCHAR
	tmDefaultChar as WCHAR
	tmBreakChar as WCHAR
	tmItalic as UBYTE
	tmUnderlined as UBYTE
	tmStruckOut as UBYTE
	tmPitchAndFamily as UBYTE
	tmCharSet as UBYTE
	ntmFlags as DWORD
	ntmSizeEM as UINT
	ntmCellHeight as UINT
	ntmAvgWidth as UINT
end type

type PNEWTEXTMETRICW as NEWTEXTMETRICW ptr
type LPNEWTEXTMETRICW as NEWTEXTMETRICW ptr
#endif ''UNICODE

#ifndef UNICODE
type NEWTEXTMETRICEXA
	ntmTm as NEWTEXTMETRICA
	ntmFontSig as FONTSIGNATURE
end type

#else ''UNICODE
type NEWTEXTMETRICEXW
	ntmTm as NEWTEXTMETRICW
	ntmFontSig as FONTSIGNATURE
end type

#endif ''UNICODE

type PELARRAY
	paXCount as LONG
	paYCount as LONG
	paXExt as LONG
	paYExt as LONG
	paRGBs as UBYTE
end type

type PPELARRAY as PELARRAY ptr
type LPPELARRAY as PELARRAY ptr

#ifndef UNICODE
type ENUMLOGFONTA
	elfLogFont as LOGFONTA
	elfFullName(0 to 64-1) as UBYTE
	elfStyle(0 to 32-1) as UBYTE
end type

type LPENUMLOGFONTA as ENUMLOGFONTA ptr

#else ''UNICODE
type ENUMLOGFONTW
	elfLogFont as LOGFONTW
	elfFullName as wstring * 64
	elfStyle as wstring * 32
end type

type LPENUMLOGFONTW as ENUMLOGFONTW ptr
#endif ''UNICODE

#ifndef UNICODE
type ENUMLOGFONTEXA
	elfLogFont as LOGFONTA
	elfFullName(0 to 64-1) as UBYTE
	elfStyle(0 to 32-1) as UBYTE
	elfScript(0 to 32-1) as UBYTE
end type

type LPENUMLOGFONTEXA as ENUMLOGFONTEXA ptr

#else ''UNICODE
type ENUMLOGFONTEXW
	elfLogFont as LOGFONTW
	elfFullName as wstring * 64
	elfStyle(0 to 32-1) as UBYTE
	elfScript(0 to 32-1) as UBYTE
end type

type LPENUMLOGFONTEXW as ENUMLOGFONTEXW ptr
#endif ''UNICODE

type POINTFX
	x as FIXED
	y as FIXED
end type

type LPPOINTFX as POINTFX ptr

type TTPOLYCURVE
	wType as WORD
	cpfx as WORD
	apfx(0 to 1-1) as POINTFX
end type

type LPTTPOLYCURVE as TTPOLYCURVE ptr

type TTPOLYGONHEADER
	cb as DWORD
	dwType as DWORD
	pfxStart as POINTFX
end type

type LPTTPOLYGONHEADER as TTPOLYGONHEADER ptr

type POINTFLOAT
	x as FLOAT
	y as FLOAT
end type

type PPOINTFLOAT as POINTFLOAT ptr

type GLYPHMETRICSFLOAT
	gmfBlackBoxX as FLOAT
	gmfBlackBoxY as FLOAT
	gmfptGlyphOrigin as POINTFLOAT
	gmfCellIncX as FLOAT
	gmfCellIncY as FLOAT
end type

type PGLYPHMETRICSFLOAT as GLYPHMETRICSFLOAT ptr
type LPGLYPHMETRICSFLOAT as GLYPHMETRICSFLOAT ptr

type LAYERPLANEDESCRIPTOR
	nSize as WORD
	nVersion as WORD
	dwFlags as DWORD
	iPixelType as UBYTE
	cColorBits as UBYTE
	cRedBits as UBYTE
	cRedShift as UBYTE
	cGreenBits as UBYTE
	cGreenShift as UBYTE
	cBlueBits as UBYTE
	cBlueShift as UBYTE
	cAlphaBits as UBYTE
	cAlphaShift as UBYTE
	cAccumBits as UBYTE
	cAccumRedBits as UBYTE
	cAccumGreenBits as UBYTE
	cAccumBlueBits as UBYTE
	cAccumAlphaBits as UBYTE
	cDepthBits as UBYTE
	cStencilBits as UBYTE
	cAuxBuffers as UBYTE
	iLayerPlane as UBYTE
	bReserved as UBYTE
	crTransparent as COLORREF
end type

type PLAYERPLANEDESCRIPTOR as LAYERPLANEDESCRIPTOR ptr
type LPLAYERPLANEDESCRIPTOR as LAYERPLANEDESCRIPTOR ptr

type BLENDFUNCTION
	BlendOp as UBYTE
	BlendFlags as UBYTE
	SourceConstantAlpha as UBYTE
	AlphaFormat as UBYTE
end type

type PBLENDFUNCTION as BLENDFUNCTION ptr
type LPBLENDFUNCTION as BLENDFUNCTION ptr

#define MM_MAX_NUMAXES 16

type DESIGNVECTOR
	dvReserved as DWORD
	dvNumAxes as DWORD
	dvValues(0 to 16-1) as LONG
end type

type PDESIGNVECTOR as DESIGNVECTOR ptr
type LPDESIGNVECTOR as DESIGNVECTOR ptr
#ifndef UNICODE
type ENUMLOGFONTEXDVA
	elfEnumLogfontEx as ENUMLOGFONTEXA
	elfDesignVector as DESIGNVECTOR
end type

type PENUMLOGFONTEXDVA as ENUMLOGFONTEXDVA ptr
type LPENUMLOGFONTEXDVA as ENUMLOGFONTEXDVA ptr

#else
type ENUMLOGFONTEXDVW
	elfEnumLogfontEx as ENUMLOGFONTEXW
	elfDesignVector as DESIGNVECTOR
end type

type PENUMLOGFONTEXDVW as ENUMLOGFONTEXDVW ptr
type LPENUMLOGFONTEXDVW as ENUMLOGFONTEXDVW ptr
#endif
type COLOR16 as USHORT

type TRIVERTEX
	x as LONG
	y as LONG
	Red as COLOR16
	Green as COLOR16
	Blue as COLOR16
	Alpha as COLOR16
end type

type PTRIVERTEX as TRIVERTEX ptr
type LPTRIVERTEX as TRIVERTEX ptr

type GRADIENT_TRIANGLE
	Vertex1 as ULONG
	Vertex2 as ULONG
	Vertex3 as ULONG
end type

type PGRADIENT_TRIANGLE as GRADIENT_TRIANGLE ptr
type LPGRADIENT_TRIANGLE as GRADIENT_TRIANGLE ptr

type GRADIENT_RECT
	UpperLeft as ULONG
	LowerRight as ULONG
end type

type PGRADIENT_RECT as GRADIENT_RECT ptr
type LPGRADIENT_RECT as GRADIENT_RECT ptr

#ifndef UNICODE
type DISPLAY_DEVICEA
	cb as DWORD
	DeviceName as zstring * 32
	DeviceString as zstring * 128
	StateFlags as DWORD
	DeviceID as zstring * 128
	DeviceKey as zstring * 128
end type

type PDISPLAY_DEVICEA as DISPLAY_DEVICEA ptr
type LPDISPLAY_DEVICEA as DISPLAY_DEVICEA ptr

#else ''UNICODE
type DISPLAY_DEVICEW
	cb as DWORD
	DeviceName as wstring * 32
	DeviceString as wstring * 128
	StateFlags as DWORD
	DeviceID as wstring * 128
	DeviceKey as wstring * 128
end type

type PDISPLAY_DEVICEW as DISPLAY_DEVICEW ptr
type LPDISPLAY_DEVICEW as DISPLAY_DEVICEW ptr
#endif ''UNICODE

#define DISPLAY_DEVICE_ATTACHED_TO_DESKTOP &h00000001
#define DISPLAY_DEVICE_MULTI_DRIVER &h00000002
#define DISPLAY_DEVICE_PRIMARY_DEVICE &h00000004
#define DISPLAY_DEVICE_MIRRORING_DRIVER &h00000008
#define DISPLAY_DEVICE_VGA_COMPATIBLE &h00000010

type ABORTPROC as function (byval as HDC, byval as integer) as BOOL
type MFENUMPROC as function (byval as HDC, byval as HANDLETABLE ptr, byval as METARECORD ptr, byval as integer, byval as LPARAM) as integer
type ENHMFENUMPROC as function (byval as HDC, byval as HANDLETABLE ptr, byval as ENHMETARECORD ptr, byval as integer, byval as LPARAM) as integer
type GOBJENUMPROC as sub (byval as LPVOID, byval as LPARAM)
type LINEDDAPROC as sub (byval as integer, byval as integer, byval as LPARAM)
#ifndef UNICODE
type LPFNDEVMODE as function (byval as HWND, byval as HMODULE, byval as LPDEVMODEA, byval as LPSTR, byval as LPSTR, byval as LPDEVMODEA, byval as LPSTR, byval as UINT) as UINT
type LPFNDEVCAPS as function (byval as LPSTR, byval as LPSTR, byval as UINT, byval as LPSTR, byval as LPDEVMODEA) as DWORD
type OLDFONTENUMPROCA as function (byval as LOGFONTA ptr, byval as TEXTMETRICA ptr, byval as DWORD, byval as LPARAM) as integer
type FONTENUMPROCA as OLDFONTENUMPROCA
type ICMENUMPROCA as function (byval as LPSTR, byval as LPARAM) as integer
#else ''UNICODE
type LPFNDEVMODE as function (byval as HWND, byval as HMODULE, byval as LPDEVMODEW, byval as LPWSTR, byval as LPWSTR, byval as LPDEVMODEW, byval as LPWSTR, byval as UINT) as UINT
type LPFNDEVCAPS as function (byval as LPWSTR, byval as LPWSTR, byval as UINT, byval as LPWSTR, byval as LPDEVMODEW) as DWORD
type OLDFONTENUMPROCW as function (byval as LOGFONTW ptr, byval as TEXTMETRICW ptr, byval as DWORD, byval as LPARAM) as integer
type FONTENUMPROCW as OLDFONTENUMPROCW
type ICMENUMPROCW as function (byval as LPWSTR, byval as LPARAM) as integer
#endif ''UNICODE

#define BGR(r,g,b) (cuint(r) or (cuint(g) shl 8) or (cuint(b) shl 16))
#define BGRA(r,g,b,a) (cuint(r) or (cuint(g) shl 8) or (cuint(b) shl 16) or (cuint(a) shl 24))
#define MAKEPOINTS(l) *cptr( POINTS ptr, @(l) )
#define MAKEROP4(f,b) cuint((((b) shl 8) and &hFF000000) or (f))
#define PALETTEINDEX(i)	(&h01000000 or cuint(i))
#define PALETTERGB(r,g,b) (&h02000000 or BGR(r,g,b))


extern "windows" lib "gdi32"

declare function AbortDoc (byval as HDC) as integer
declare function AbortPath (byval as HDC) as BOOL
declare function AddFontMemResourceEx (byval as PVOID, byval as DWORD, byval as PVOID, byval as DWORD ptr) as HANDLE
declare function AngleArc (byval as HDC, byval as integer, byval as integer, byval as DWORD, byval as FLOAT, byval as FLOAT) as BOOL
declare function AnimatePalette (byval as HPALETTE, byval as UINT, byval as UINT, byval as PALETTEENTRY ptr) as BOOL
declare function Arc (byval as HDC, byval as integer, byval as integer, byval as integer, byval as integer, byval as integer, byval as integer, byval as integer, byval as integer) as BOOL
declare function ArcTo (byval as HDC, byval as integer, byval as integer, byval as integer, byval as integer, byval as integer, byval as integer, byval as integer, byval as integer) as BOOL
declare function BeginPath (byval as HDC) as BOOL
declare function BitBlt (byval as HDC, byval as integer, byval as integer, byval as integer, byval as integer, byval as HDC, byval as integer, byval as integer, byval as DWORD) as BOOL
declare function CancelDC (byval as HDC) as BOOL
declare function CheckColorsInGamut (byval as HDC, byval as PVOID, byval as PVOID, byval as DWORD) as BOOL
declare function Chord (byval as HDC, byval as integer, byval as integer, byval as integer, byval as integer, byval as integer, byval as integer, byval as integer, byval as integer) as BOOL
declare function ChoosePixelFormat (byval as HDC, byval as PIXELFORMATDESCRIPTOR ptr) as integer
declare function CloseEnhMetaFile (byval as HDC) as HENHMETAFILE
declare function CloseFigure (byval as HDC) as BOOL
declare function CloseMetaFile (byval as HDC) as HMETAFILE
declare function ColorMatchToTarget (byval as HDC, byval as HDC, byval as DWORD) as BOOL
declare function CombineRgn (byval as HRGN, byval as HRGN, byval as HRGN, byval as integer) as integer
declare function CombineTransform (byval as LPXFORM, byval as XFORM ptr, byval as XFORM ptr) as BOOL
declare function CreateBitmap (byval as integer, byval as integer, byval as UINT, byval as UINT, byval as PCVOID) as HBITMAP
declare function CreateBitmapIndirect (byval as BITMAP ptr) as HBITMAP
declare function CreateBrushIndirect (byval as LOGBRUSH ptr) as HBRUSH
declare function CreateCompatibleBitmap (byval as HDC, byval as integer, byval as integer) as HBITMAP
declare function CreateCompatibleDC (byval as HDC) as HDC
declare function CreateDIBitmap (byval as HDC, byval as BITMAPINFOHEADER ptr, byval as DWORD, byval as PCVOID, byval as BITMAPINFO ptr, byval as UINT) as HBITMAP
declare function CreateDIBPatternBrush (byval as HGLOBAL, byval as UINT) as HBRUSH
declare function CreateDIBPatternBrushPt (byval as PCVOID, byval as UINT) as HBRUSH
declare function CreateDIBSection (byval as HDC, byval as BITMAPINFO ptr, byval as UINT, byval as any ptr ptr, byval as HANDLE, byval as DWORD) as HBITMAP
declare function CreateDiscardableBitmap (byval as HDC, byval as integer, byval as integer) as HBITMAP
declare function CreateEllipticRgn (byval as integer, byval as integer, byval as integer, byval as integer) as HRGN
declare function CreateEllipticRgnIndirect (byval as LPCRECT) as HRGN
declare function CreateHalftonePalette (byval as HDC) as HPALETTE
declare function CreateHatchBrush (byval as integer, byval as COLORREF) as HBRUSH
declare function CreatePalette (byval as LOGPALETTE ptr) as HPALETTE
declare function CreatePatternBrush (byval as HBITMAP) as HBRUSH
declare function CreatePen (byval as integer, byval as integer, byval as COLORREF) as HPEN
declare function CreatePenIndirect (byval as LOGPEN ptr) as HPEN
declare function CreatePolygonRgn (byval as POINT ptr, byval as integer, byval as integer) as HRGN
declare function CreatePolyPolygonRgn (byval as POINT ptr, byval as INT_ ptr, byval as integer, byval as integer) as HRGN
declare function CreateRectRgn (byval as integer, byval as integer, byval as integer, byval as integer) as HRGN
declare function CreateRectRgnIndirect (byval as LPCRECT) as HRGN
declare function CreateRoundRectRgn (byval as integer, byval as integer, byval as integer, byval as integer, byval as integer, byval as integer) as HRGN
declare function CreateSolidBrush (byval as COLORREF) as HBRUSH
declare function DeleteColorSpace (byval as HCOLORSPACE) as BOOL
declare function DeleteDC (byval as HDC) as BOOL
declare function DeleteEnhMetaFile (byval as HENHMETAFILE) as BOOL
declare function DeleteMetaFile (byval as HMETAFILE) as BOOL
declare function DeleteObject (byval as HGDIOBJ) as BOOL
declare function DescribePixelFormat (byval as HDC, byval as integer, byval as UINT, byval as LPPIXELFORMATDESCRIPTOR) as integer
declare function DPtoLP (byval as HDC, byval as LPPOINT, byval as integer) as BOOL
declare function DrawEscape (byval as HDC, byval as integer, byval as integer, byval as LPCSTR) as integer
declare function Ellipse (byval as HDC, byval as integer, byval as integer, byval as integer, byval as integer) as BOOL
declare function EndDoc (byval as HDC) as integer
declare function EndPage (byval as HDC) as integer
declare function EndPath (byval as HDC) as BOOL
declare function EnumEnhMetaFile (byval as HDC, byval as HENHMETAFILE, byval as ENHMFENUMPROC, byval as PVOID, byval as LPCRECT) as BOOL
declare function EnumMetaFile (byval as HDC, byval as HMETAFILE, byval as MFENUMPROC, byval as LPARAM) as BOOL
declare function EnumObjects (byval as HDC, byval as integer, byval as GOBJENUMPROC, byval as LPARAM) as integer
declare function EqualRgn (byval as HRGN, byval as HRGN) as BOOL
declare function Escape (byval as HDC, byval as integer, byval as integer, byval as LPCSTR, byval as PVOID) as integer
declare function ExcludeClipRect (byval as HDC, byval as integer, byval as integer, byval as integer, byval as integer) as integer
declare function ExcludeUpdateRgn (byval as HDC, byval as HWND) as integer
declare function ExtCreatePen (byval as DWORD, byval as DWORD, byval as LOGBRUSH ptr, byval as DWORD, byval as DWORD ptr) as HPEN
declare function ExtCreateRegion (byval as XFORM ptr, byval as DWORD, byval as RGNDATA ptr) as HRGN
declare function ExtEscape (byval as HDC, byval as integer, byval as integer, byval as LPCSTR, byval as integer, byval as LPSTR) as integer
declare function ExtFloodFill (byval as HDC, byval as integer, byval as integer, byval as COLORREF, byval as UINT) as BOOL
declare function ExtSelectClipRgn (byval as HDC, byval as HRGN, byval as integer) as integer
declare function FillPath (byval as HDC) as BOOL
declare function FillRect (byval as HDC, byval as LPCRECT, byval as HBRUSH) as integer
declare function FillRgn (byval as HDC, byval as HRGN, byval as HBRUSH) as integer
declare function FixBrushOrgEx (byval as HDC, byval as integer, byval as integer, byval as LPPOINT) as BOOL
declare function FlattenPath (byval as HDC) as BOOL
declare function FloodFill (byval as HDC, byval as integer, byval as integer, byval as COLORREF) as BOOL
declare function GdiComment (byval as HDC, byval as UINT, byval as UBYTE ptr) as BOOL
declare function GdiFlush () as BOOL
declare function GdiGetBatchLimit () as DWORD
declare function GdiSetBatchLimit (byval as DWORD) as DWORD
declare function GetArcDirection (byval as HDC) as integer
declare function GetAspectRatioFilterEx (byval as HDC, byval as LPSIZE) as BOOL
declare function GetBitmapBits (byval as HBITMAP, byval as LONG, byval as PVOID) as LONG
declare function GetBitmapDimensionEx (byval as HBITMAP, byval as LPSIZE) as BOOL
declare function GetBkColor (byval as HDC) as COLORREF
declare function GetBkMode (byval as HDC) as integer
declare function GetBoundsRect (byval as HDC, byval as LPRECT, byval as UINT) as UINT
declare function GetBrushOrgEx (byval as HDC, byval as LPPOINT) as BOOL
declare function GetClipBox (byval as HDC, byval as LPRECT) as integer
declare function GetClipRgn (byval as HDC, byval as HRGN) as integer
declare function GetColorAdjustment (byval as HDC, byval as LPCOLORADJUSTMENT) as BOOL
declare function GetColorSpace (byval as HDC) as HANDLE
declare function GetCurrentObject (byval as HDC, byval as UINT) as HGDIOBJ
declare function GetCurrentPositionEx (byval as HDC, byval as LPPOINT) as BOOL
declare function GetCursor () as HCURSOR
declare function GetDCOrgEx (byval as HDC, byval as LPPOINT) as BOOL
declare function GetDeviceCaps (byval as HDC, byval as integer) as integer
declare function GetDeviceGammaRamp (byval as HDC, byval as PVOID) as BOOL
declare function GetDIBColorTable (byval as HDC, byval as UINT, byval as UINT, byval as RGBQUAD ptr) as UINT
declare function GetDIBits (byval as HDC, byval as HBITMAP, byval as UINT, byval as UINT, byval as PVOID, byval as LPBITMAPINFO, byval as UINT) as integer
declare function GetEnhMetaFileBits (byval as HENHMETAFILE, byval as UINT, byval as LPBYTE) as UINT
declare function GetEnhMetaFileHeader (byval as HENHMETAFILE, byval as UINT, byval as LPENHMETAHEADER) as UINT
declare function GetEnhMetaFilePaletteEntries (byval as HENHMETAFILE, byval as UINT, byval as LPPALETTEENTRY) as UINT
declare function GetEnhMetaFilePixelFormat (byval as HENHMETAFILE, byval as DWORD, byval as PIXELFORMATDESCRIPTOR ptr) as UINT
declare function GetFontData (byval as HDC, byval as DWORD, byval as DWORD, byval as PVOID, byval as DWORD) as DWORD
declare function GetFontLanguageInfo (byval as HDC) as DWORD
declare function GetGraphicsMode (byval as HDC) as integer
declare function GetMapMode (byval as HDC) as integer
declare function GetMetaFileBitsEx (byval as HMETAFILE, byval as UINT, byval as PVOID) as UINT
declare function GetMetaRgn (byval as HDC, byval as HRGN) as integer
declare function GetMiterLimit (byval as HDC, byval as PFLOAT) as BOOL
declare function GetNearestColor (byval as HDC, byval as COLORREF) as COLORREF
declare function GetNearestPaletteIndex (byval as HPALETTE, byval as COLORREF) as UINT
declare function GetObjectType (byval as HGDIOBJ) as DWORD
declare function GetPaletteEntries (byval as HPALETTE, byval as UINT, byval as UINT, byval as LPPALETTEENTRY) as UINT
declare function GetPath (byval as HDC, byval as LPPOINT, byval as PBYTE, byval as integer) as integer
declare function GetPixel (byval as HDC, byval as integer, byval as integer) as COLORREF
declare function GetPixelFormat (byval as HDC) as integer
declare function GetPolyFillMode (byval as HDC) as integer
declare function GetRasterizerCaps (byval as LPRASTERIZER_STATUS, byval as UINT) as BOOL
declare function GetRandomRgn (byval as HDC, byval as HRGN, byval as INT_) as integer
declare function GetRegionData (byval as HRGN, byval as DWORD, byval as LPRGNDATA) as DWORD
declare function GetRgnBox (byval as HRGN, byval as LPRECT) as integer
declare function GetROP2 (byval as HDC) as integer
declare function GetStockObject (byval as integer) as HGDIOBJ
declare function GetStretchBltMode (byval as HDC) as integer
declare function GetSystemPaletteEntries (byval as HDC, byval as UINT, byval as UINT, byval as LPPALETTEENTRY) as UINT
declare function GetSystemPaletteUse (byval as HDC) as UINT
declare function GetTextAlign (byval as HDC) as UINT
declare function GetTextCharacterExtra (byval as HDC) as integer
declare function GetTextCharset (byval as HDC) as integer
declare function GetTextCharsetInfo (byval as HDC, byval as LPFONTSIGNATURE, byval as DWORD) as integer
declare function GetTextColor (byval as HDC) as COLORREF
declare function GetViewportExtEx (byval as HDC, byval as LPSIZE) as BOOL
declare function GetViewportOrgEx (byval as HDC, byval as LPPOINT) as BOOL
declare function GetWindowExtEx (byval as HDC, byval as LPSIZE) as BOOL
declare function GetWindowOrgEx (byval as HDC, byval as LPPOINT) as BOOL
declare function GetWinMetaFileBits (byval as HENHMETAFILE, byval as UINT, byval as LPBYTE, byval as INT_, byval as HDC) as UINT
declare function GetWorldTransform (byval as HDC, byval as LPXFORM) as BOOL
declare function IntersectClipRect (byval as HDC, byval as integer, byval as integer, byval as integer, byval as integer) as integer
declare function InvertRgn (byval as HDC, byval as HRGN) as BOOL
declare function LineDDA (byval as integer, byval as integer, byval as integer, byval as integer, byval as LINEDDAPROC, byval as LPARAM) as BOOL
declare function LineTo (byval as HDC, byval as integer, byval as integer) as BOOL
declare function LPtoDP (byval as HDC, byval as LPPOINT, byval as integer) as BOOL
declare function MaskBlt (byval as HDC, byval as integer, byval as integer, byval as integer, byval as integer, byval as HDC, byval as integer, byval as integer, byval as HBITMAP, byval as integer, byval as integer, byval as DWORD) as BOOL
declare function ModifyWorldTransform (byval as HDC, byval as XFORM ptr, byval as DWORD) as BOOL
declare function MoveToEx (byval as HDC, byval as integer, byval as integer, byval as LPPOINT) as BOOL
declare function OffsetClipRgn (byval as HDC, byval as integer, byval as integer) as integer
declare function OffsetRgn (byval as HRGN, byval as integer, byval as integer) as integer
declare function OffsetViewportOrgEx (byval as HDC, byval as integer, byval as integer, byval as LPPOINT) as BOOL
declare function OffsetWindowOrgEx (byval as HDC, byval as integer, byval as integer, byval as LPPOINT) as BOOL
declare function PaintRgn (byval as HDC, byval as HRGN) as BOOL
declare function PatBlt (byval as HDC, byval as integer, byval as integer, byval as integer, byval as integer, byval as DWORD) as BOOL
declare function PathToRegion (byval as HDC) as HRGN
declare function Pie (byval as HDC, byval as integer, byval as integer, byval as integer, byval as integer, byval as integer, byval as integer, byval as integer, byval as integer) as BOOL
declare function PlayEnhMetaFile (byval as HDC, byval as HENHMETAFILE, byval as LPCRECT) as BOOL
declare function PlayEnhMetaFileRecord (byval as HDC, byval as LPHANDLETABLE, byval as ENHMETARECORD ptr, byval as UINT) as BOOL
declare function PlayMetaFile (byval as HDC, byval as HMETAFILE) as BOOL
declare function PlayMetaFileRecord (byval as HDC, byval as LPHANDLETABLE, byval as LPMETARECORD, byval as UINT) as BOOL
declare function PlgBlt (byval as HDC, byval as POINT ptr, byval as HDC, byval as integer, byval as integer, byval as integer, byval as integer, byval as HBITMAP, byval as integer, byval as integer) as BOOL
declare function PolyBezier (byval as HDC, byval as POINT ptr, byval as DWORD) as BOOL
declare function PolyBezierTo (byval as HDC, byval as POINT ptr, byval as DWORD) as BOOL
declare function PolyDraw (byval as HDC, byval as POINT ptr, byval as UBYTE ptr, byval as integer) as BOOL
declare function Polygon (byval as HDC, byval as POINT ptr, byval as integer) as BOOL
declare function Polyline (byval as HDC, byval as POINT ptr, byval as integer) as BOOL
declare function PolylineTo (byval as HDC, byval as POINT ptr, byval as DWORD) as BOOL
declare function PolyPolygon (byval as HDC, byval as POINT ptr, byval as INT_ ptr, byval as integer) as BOOL
declare function PolyPolyline (byval as HDC, byval as POINT ptr, byval as DWORD ptr, byval as DWORD) as BOOL
declare function PtInRegion (byval as HRGN, byval as integer, byval as integer) as BOOL
declare function PtVisible (byval as HDC, byval as integer, byval as integer) as BOOL
declare function RealizePalette (byval as HDC) as UINT
declare function Rectangle (byval as HDC, byval as integer, byval as integer, byval as integer, byval as integer) as BOOL
declare function RectInRegion (byval as HRGN, byval as LPCRECT) as BOOL
declare function RectVisible (byval as HDC, byval as LPCRECT) as BOOL
declare function RemoveFontMemResourceEx (byval as HANDLE) as BOOL
declare function ResizePalette (byval as HPALETTE, byval as UINT) as BOOL
declare function RestoreDC (byval as HDC, byval as integer) as BOOL
declare function RoundRect (byval as HDC, byval as integer, byval as integer, byval as integer, byval as integer, byval as integer, byval as integer) as BOOL
declare function SaveDC (byval as HDC) as integer
declare function ScaleViewportExtEx (byval as HDC, byval as integer, byval as integer, byval as integer, byval as integer, byval as LPSIZE) as BOOL
declare function ScaleWindowExtEx (byval as HDC, byval as integer, byval as integer, byval as integer, byval as integer, byval as LPSIZE) as BOOL
declare function SelectClipPath (byval as HDC, byval as integer) as BOOL
declare function SelectClipRgn (byval as HDC, byval as HRGN) as integer
declare function SelectObject (byval as HDC, byval as HGDIOBJ) as HGDIOBJ
declare function SelectPalette (byval as HDC, byval as HPALETTE, byval as BOOL) as HPALETTE
declare function SetAbortProc (byval as HDC, byval as ABORTPROC) as integer
declare function SetArcDirection (byval as HDC, byval as integer) as integer
declare function SetBitmapBits (byval as HBITMAP, byval as DWORD, byval as PCVOID) as LONG
declare function SetBitmapDimensionEx (byval as HBITMAP, byval as integer, byval as integer, byval as LPSIZE) as BOOL
declare function SetBkColor (byval as HDC, byval as COLORREF) as COLORREF
declare function SetBkMode (byval as HDC, byval as integer) as integer
declare function SetBoundsRect (byval as HDC, byval as LPCRECT, byval as UINT) as UINT
declare function SetBrushOrgEx (byval as HDC, byval as integer, byval as integer, byval as LPPOINT) as BOOL
declare function SetColorAdjustment (byval as HDC, byval as COLORADJUSTMENT ptr) as BOOL
declare function SetColorSpace (byval as HDC, byval as HCOLORSPACE) as BOOL
declare function SetDCBrushColor (byval as HDC, byval as COLORREF) as COLORREF
declare function SetDCPenColor (byval as HDC, byval as COLORREF) as COLORREF
declare function SetDeviceGammaRamp (byval as HDC, byval as PVOID) as BOOL
declare function SetDIBColorTable (byval as HDC, byval as UINT, byval as UINT, byval as RGBQUAD ptr) as UINT
declare function SetDIBits (byval as HDC, byval as HBITMAP, byval as UINT, byval as UINT, byval as PCVOID, byval as BITMAPINFO ptr, byval as UINT) as integer
declare function SetDIBitsToDevice (byval as HDC, byval as integer, byval as integer, byval as DWORD, byval as DWORD, byval as integer, byval as integer, byval as UINT, byval as UINT, byval as PCVOID, byval as BITMAPINFO ptr, byval as UINT) as integer
declare function SetEnhMetaFileBits (byval as UINT, byval as UBYTE ptr) as HENHMETAFILE
declare function SetGraphicsMode (byval as HDC, byval as integer) as integer
declare function SetICMMode (byval as HDC, byval as integer) as integer
declare function SetMapMode (byval as HDC, byval as integer) as integer
declare function SetMapperFlags (byval as HDC, byval as DWORD) as DWORD
declare function SetMetaFileBitsEx (byval as UINT, byval as UBYTE ptr) as HMETAFILE
declare function SetMetaRgn (byval as HDC) as integer
declare function SetMiterLimit (byval as HDC, byval as FLOAT, byval as PFLOAT) as BOOL
declare function SetPaletteEntries (byval as HPALETTE, byval as UINT, byval as UINT, byval as PALETTEENTRY ptr) as UINT
declare function SetPixel (byval as HDC, byval as integer, byval as integer, byval as COLORREF) as COLORREF
declare function SetPixelFormat (byval as HDC, byval as integer, byval as PIXELFORMATDESCRIPTOR ptr) as BOOL
declare function SetPixelV (byval as HDC, byval as integer, byval as integer, byval as COLORREF) as BOOL
declare function SetPolyFillMode (byval as HDC, byval as integer) as integer
declare function SetRectRgn (byval as HRGN, byval as integer, byval as integer, byval as integer, byval as integer) as BOOL
declare function SetROP2 (byval as HDC, byval as integer) as integer
declare function SetStretchBltMode (byval as HDC, byval as integer) as integer
declare function SetSystemPaletteUse (byval as HDC, byval as UINT) as UINT
declare function SetTextAlign (byval as HDC, byval as UINT) as UINT
declare function SetTextCharacterExtra (byval as HDC, byval as integer) as integer
declare function SetTextColor (byval as HDC, byval as COLORREF) as COLORREF
declare function SetTextJustification (byval as HDC, byval as integer, byval as integer) as BOOL
declare function SetViewportExtEx (byval as HDC, byval as integer, byval as integer, byval as LPSIZE) as BOOL
declare function SetViewportOrgEx (byval as HDC, byval as integer, byval as integer, byval as LPPOINT) as BOOL
declare function SetWindowExtEx (byval as HDC, byval as integer, byval as integer, byval as LPSIZE) as BOOL
declare function SetWindowOrgEx (byval as HDC, byval as integer, byval as integer, byval as LPPOINT) as BOOL
declare function SetWinMetaFileBits (byval as UINT, byval as UBYTE ptr, byval as HDC, byval as METAFILEPICT ptr) as HENHMETAFILE
declare function SetWorldTransform (byval as HDC, byval as XFORM ptr) as BOOL
declare function StartPage (byval as HDC) as integer
declare function StretchBlt (byval as HDC, byval as integer, byval as integer, byval as integer, byval as integer, byval as HDC, byval as integer, byval as integer, byval as integer, byval as integer, byval as DWORD) as BOOL
declare function StretchDIBits (byval as HDC, byval as integer, byval as integer, byval as integer, byval as integer, byval as integer, byval as integer, byval as integer, byval as integer, byval as any ptr, byval as BITMAPINFO ptr, byval as UINT, byval as DWORD) as integer
declare function StrokeAndFillPath (byval as HDC) as BOOL
declare function StrokePath (byval as HDC) as BOOL
declare function SwapBuffers (byval as HDC) as BOOL
declare function TranslateCharsetInfo (byval as PDWORD, byval as LPCHARSETINFO, byval as DWORD) as BOOL
declare function UnrealizeObject (byval as HGDIOBJ) as BOOL
declare function UpdateColors (byval as HDC) as BOOL
declare function WidenPath (byval as HDC) as BOOL
declare function wglCopyContext (byval as HGLRC, byval as HGLRC, byval as UINT) as BOOL
declare function wglCreateContext (byval as HDC) as HGLRC
declare function wglCreateLayerContext (byval as HDC, byval as integer) as HGLRC
declare function wglDeleteContext (byval as HGLRC) as BOOL
declare function wglDescribeLayerPlane (byval as HDC, byval as integer, byval as integer, byval as UINT, byval as LPLAYERPLANEDESCRIPTOR) as BOOL
declare function wglGetCurrentContext () as HGLRC
declare function wglGetCurrentDC () as HDC
declare function wglGetLayerPaletteEntries (byval as HDC, byval as integer, byval as integer, byval as integer, byval as COLORREF ptr) as integer
declare function wglGetProcAddress (byval as LPCSTR) as PROC
declare function wglMakeCurrent (byval as HDC, byval as HGLRC) as BOOL
declare function wglRealizeLayerPalette (byval as HDC, byval as integer, byval as BOOL) as BOOL
declare function wglSetLayerPaletteEntries (byval as HDC, byval as integer, byval as integer, byval as integer, byval as COLORREF ptr) as integer
declare function wglShareLists (byval as HGLRC, byval as HGLRC) as BOOL
declare function wglSwapLayerBuffers (byval as HDC, byval as UINT) as BOOL
declare function GetFontUnicodeRanges (byval as HDC, byval as LPGLYPHSET) as DWORD

#ifdef UNICODE
type BCHAR as WCHAR
type DOCINFO as DOCINFOW
type LPDOCINFO as DOCINFOW ptr
type LOGFONT as LOGFONTW
type PLOGFONT as LOGFONTW ptr
type LPLOGFONT as LOGFONTW ptr
type TEXTMETRIC as TEXTMETRICW
type PTEXTMETRIC as TEXTMETRICW ptr
type LPTEXTMETRIC as TEXTMETRICW ptr
type DEVMODE as DEVMODEW
type PDEVMODE as DEVMODEW ptr
type LPDEVMODE as DEVMODEW ptr
type ENUMLOGFONTEXDV as ENUMLOGFONTEXDVW
type PENUMLOGFONTEXDV as PENUMLOGFONTEXDVW
type LPENUMLOGFONTEXDV as LPENUMLOGFONTEXDVW
type EXTLOGFONT as EXTLOGFONTW
type PEXTLOGFONT as EXTLOGFONTW ptr
type LPEXTLOGFONT as EXTLOGFONTW ptr
type GCP_RESULTS as GCP_RESULTSW
type LPGCP_RESULTS as GCP_RESULTSW ptr
type OUTLINETEXTMETRIC as OUTLINETEXTMETRICW
type POUTLINETEXTMETRIC as OUTLINETEXTMETRICW ptr
type LPOUTLINETEXTMETRIC as OUTLINETEXTMETRICW ptr
type POLYTEXT as POLYTEXTW
type PPOLYTEXT as POLYTEXTA ptr
type LPPOLYTEXT as POLYTEXTA ptr
type LOGCOLORSPACE as LOGCOLORSPACEW
type LPLOGCOLORSPACE as LOGCOLORSPACEW ptr
type NEWTEXTMETRIC as NEWTEXTMETRICW
type PNEWTEXTMETRIC as NEWTEXTMETRICW ptr
type LPNEWTEXTMETRIC as NEWTEXTMETRICW ptr
type NEWTEXTMETRICEX as NEWTEXTMETRICEXW
type ENUMLOGFONT as ENUMLOGFONTW
type LPENUMLOGFONT as ENUMLOGFONTW ptr
type ENUMLOGFONTEX as ENUMLOGFONTEXW
type LPENUMLOGFONTEX as ENUMLOGFONTEXW ptr
type DISPLAY_DEVICE as DISPLAY_DEVICEW
type PDISPLAY_DEVICE as DISPLAY_DEVICEW ptr
type LPDISPLAY_DEVICE as DISPLAY_DEVICEW ptr

#define ICMENUMPROC ICMENUMPROCW
#define FONTENUMPROC FONTENUMPROCW

declare function AddFontResource alias "AddFontResourceW" (byval as LPCWSTR) as integer
declare function AddFontResourceEx alias "AddFontResourceExW" (byval as LPCWSTR, byval as DWORD, byval as PVOID) as integer
declare function CopyEnhMetaFile alias "CopyEnhMetaFileW" (byval as HENHMETAFILE, byval as LPCWSTR) as HENHMETAFILE
declare function CopyMetaFile alias "CopyMetaFileW" (byval as HMETAFILE, byval as LPCWSTR) as HMETAFILE
declare function CreateColorSpace alias "CreateColorSpaceW" (byval as LPLOGCOLORSPACEW) as HCOLORSPACE
declare function CreateDC alias "CreateDCW" (byval as LPCWSTR, byval as LPCWSTR, byval as LPCWSTR, byval as DEVMODEW ptr) as HDC
declare function CreateEnhMetaFile alias "CreateEnhMetaFileW" (byval as HDC, byval as LPCWSTR, byval as LPCRECT, byval as LPCWSTR) as HDC
declare function CreateFont alias "CreateFontW" (byval as integer, byval as integer, byval as integer, byval as integer, byval as integer, byval as DWORD, byval as DWORD, byval as DWORD, byval as DWORD, byval as DWORD, byval as DWORD, byval as DWORD, byval as DWORD, byval as LPCWSTR) as HFONT
declare function CreateFontIndirect alias "CreateFontIndirectW" (byval as LOGFONTW ptr) as HFONT
declare function CreateIC alias "CreateICW" (byval as LPCWSTR, byval as LPCWSTR, byval as LPCWSTR, byval as DEVMODEW ptr) as HDC
declare function CreateMetaFile alias "CreateMetaFileW" (byval as LPCWSTR) as HDC
declare function CreateScalableFontResource alias "CreateScalableFontResourceW" (byval as DWORD, byval as LPCWSTR, byval as LPCWSTR, byval as LPCWSTR) as BOOL
declare function DeviceCapabilities alias "DeviceCapabilitiesW" (byval as LPCWSTR, byval as LPCWSTR, byval as WORD, byval as LPWSTR, byval as DEVMODEW ptr) as DWORD
declare function EnumFontFamilies alias "EnumFontFamiliesW" (byval as HDC, byval as LPCWSTR, byval as FONTENUMPROCW, byval as LPARAM) as integer
declare function EnumFontFamiliesEx alias "EnumFontFamiliesExW" (byval as HDC, byval as PLOGFONTW, byval as FONTENUMPROCW, byval as LPARAM, byval as DWORD) as integer
declare function EnumFonts alias "EnumFontsW" (byval as HDC, byval as LPCWSTR, byval as FONTENUMPROCW, byval as LPARAM) as integer
declare function EnumICMProfiles alias "EnumICMProfilesW" (byval as HDC, byval as ICMENUMPROCW, byval as LPARAM) as integer
declare function ExtTextOut alias "ExtTextOutW" (byval as HDC, byval as integer, byval as integer, byval as UINT, byval as LPCRECT, byval as LPCWSTR, byval as UINT, byval as INT_ ptr) as BOOL
declare function GetCharABCWidths alias "GetCharABCWidthsW" (byval as HDC, byval as UINT, byval as UINT, byval as LPABC) as BOOL
declare function GetCharABCWidthsFloat alias "GetCharABCWidthsFloatW" (byval as HDC, byval as UINT, byval as UINT, byval as LPABCFLOAT) as BOOL
declare function GetCharacterPlacement alias "GetCharacterPlacementW" (byval as HDC, byval as LPCWSTR, byval as integer, byval as integer, byval as LPGCP_RESULTSW, byval as DWORD) as DWORD
declare function GetCharWidth32 alias "GetCharWidth32W" (byval as HDC, byval as UINT, byval as UINT, byval as LPINT) as BOOL
declare function GetCharWidth alias "GetCharWidthW" (byval as HDC, byval as UINT, byval as UINT, byval as LPINT) as BOOL
declare function GetCharWidthFloat alias "GetCharWidthFloatW" (byval as HDC, byval as UINT, byval as UINT, byval as PFLOAT) as BOOL
declare function GetEnhMetaFile alias "GetEnhMetaFileW" (byval as LPCWSTR) as HENHMETAFILE
declare function GetEnhMetaFileDescription alias "GetEnhMetaFileDescriptionW" (byval as HENHMETAFILE, byval as UINT, byval as LPWSTR) as UINT
declare function GetGlyphOutline alias "GetGlyphOutlineW" (byval as HDC, byval as UINT, byval as UINT, byval as LPGLYPHMETRICS, byval as DWORD, byval as PVOID, byval as MAT2 ptr) as DWORD
declare function GetICMProfile alias "GetICMProfileW" (byval as HDC, byval as DWORD, byval as LPWSTR) as BOOL
declare function GetKerningPairs alias "GetKerningPairsW" (byval as HDC, byval as DWORD, byval as LPKERNINGPAIR) as DWORD
declare function GetLogColorSpace alias "GetLogColorSpaceW" (byval as HCOLORSPACE, byval as LPLOGCOLORSPACEW, byval as DWORD) as BOOL
declare function GetMetaFile alias "GetMetaFileW" (byval as LPCWSTR) as HMETAFILE
declare function GetObject alias "GetObjectW" (byval as HGDIOBJ, byval as integer, byval as PVOID) as integer
declare function GetOutlineTextMetrics alias "GetOutlineTextMetricsW" (byval as HDC, byval as UINT, byval as LPOUTLINETEXTMETRICW) as UINT
declare function GetTextExtentExPoint alias "GetTextExtentExPointW" (byval as HDC, byval as LPCWSTR, byval as integer, byval as integer, byval as LPINT, byval as LPINT, byval as LPSIZE) as BOOL
declare function GetTextExtentPoint alias "GetTextExtentPointW" (byval as HDC, byval as LPCWSTR, byval as integer, byval as LPSIZE) as BOOL
declare function GetTextExtentPoint32 alias "GetTextExtentPoint32W" (byval as HDC, byval as LPCWSTR, byval as integer, byval as LPSIZE) as BOOL
declare function GetTextFace alias "GetTextFaceW" (byval as HDC, byval as integer, byval as LPWSTR) as integer
declare function GetTextMetrics alias "GetTextMetricsW" (byval as HDC, byval as LPTEXTMETRICW) as BOOL
declare function PolyTextOut alias "PolyTextOutW" (byval as HDC, byval as POLYTEXTW ptr, byval as integer) as BOOL
declare function RemoveFontResource alias "RemoveFontResourceW" (byval as LPCWSTR) as BOOL
declare function RemoveFontResourceEx alias "RemoveFontResourceExW" (byval as LPCWSTR, byval as DWORD, byval as PVOID) as BOOL
declare function ResetDC alias "ResetDCW" (byval as HDC, byval as DEVMODEW ptr) as HDC
declare function SetICMProfile alias "SetICMProfileW" (byval as HDC, byval as LPWSTR) as BOOL
declare function StartDoc alias "StartDocW" (byval as HDC, byval as DOCINFOW ptr) as integer
declare function TextOut alias "TextOutW" (byval as HDC, byval as integer, byval as integer, byval as LPCWSTR, byval as integer) as BOOL
declare function UpdateICMRegKey alias "UpdateICMRegKeyW" (byval as DWORD, byval as DWORD, byval as LPWSTR, byval as UINT) as BOOL
declare function wglUseFontBitmaps alias "wglUseFontBitmapsW" (byval as HDC, byval as DWORD, byval as DWORD, byval as DWORD) as BOOL
declare function wglUseFontOutlines alias "wglUseFontOutlinesW" (byval as HDC, byval as DWORD, byval as DWORD, byval as DWORD, byval as FLOAT, byval as FLOAT, byval as integer, byval as LPGLYPHMETRICSFLOAT) as BOOL
declare function GetGlyphIndices alias "GetGlyphIndicesW" (byval as HDC, byval as LPCWSTR, byval as integer, byval as LPWORD, byval as DWORD) as DWORD

#else ''UNICODE
type BCHAR as UBYTE
type DOCINFO as DOCINFOA
type LPDOCINFO as DOCINFOA ptr
type LOGFONT as LOGFONTA
type PLOGFONT as LOGFONTA ptr
type LPLOGFONT as LOGFONTA ptr
type TEXTMETRIC as TEXTMETRICA
type PTEXTMETRIC as TEXTMETRICA ptr
type LPTEXTMETRIC as TEXTMETRICA ptr
type DEVMODE as DEVMODEA
type PDEVMODE as DEVMODEA ptr
type LPDEVMODE as DEVMODEA ptr
type ENUMLOGFONTEXDV as ENUMLOGFONTEXDVA
type PENUMLOGFONTEXDV as PENUMLOGFONTEXDVA
type LPENUMLOGFONTEXDV as LPENUMLOGFONTEXDVA
type EXTLOGFONT as EXTLOGFONTA
type PEXTLOGFONT as EXTLOGFONTA ptr
type LPEXTLOGFONT as EXTLOGFONTA ptr
type GCP_RESULTS as GCP_RESULTSA
type LPGCP_RESULTS as GCP_RESULTSA ptr
type OUTLINETEXTMETRIC as OUTLINETEXTMETRICA
type POUTLINETEXTMETRIC as OUTLINETEXTMETRICA ptr
type LPOUTLINETEXTMETRIC as OUTLINETEXTMETRICA ptr
type POLYTEXT as POLYTEXTA
type PPOLYTEXT as POLYTEXTA ptr
type LPPOLYTEXT as POLYTEXTA ptr
type LOGCOLORSPACE as LOGCOLORSPACEA
type LPLOGCOLORSPACE as LOGCOLORSPACEA ptr
type NEWTEXTMETRIC as NEWTEXTMETRICA
type PNEWTEXTMETRIC as NEWTEXTMETRICA ptr
type LPNEWTEXTMETRIC as NEWTEXTMETRICA ptr
type NEWTEXTMETRICEX as NEWTEXTMETRICEXA
type ENUMLOGFONT as ENUMLOGFONTA
type LPENUMLOGFONT as ENUMLOGFONTA ptr
type ENUMLOGFONTEX as ENUMLOGFONTEXA
type LPENUMLOGFONTEX as ENUMLOGFONTEXA ptr
type DISPLAY_DEVICE as DISPLAY_DEVICEA
type PDISPLAY_DEVICE as DISPLAY_DEVICEA ptr
type LPDISPLAY_DEVICE as DISPLAY_DEVICEA ptr

#define ICMENUMPROC ICMENUMPROCA
#define FONTENUMPROC FONTENUMPROCA

declare function AddFontResource alias "AddFontResourceA" (byval as LPCSTR) as integer
declare function AddFontResourceEx alias "AddFontResourceExA" (byval as LPCSTR, byval as DWORD, byval as PVOID) as integer
declare function CopyEnhMetaFile alias "CopyEnhMetaFileA" (byval as HENHMETAFILE, byval as LPCSTR) as HENHMETAFILE
declare function CopyMetaFile alias "CopyMetaFileA" (byval as HMETAFILE, byval as LPCSTR) as HMETAFILE
declare function CreateColorSpace alias "CreateColorSpaceA" (byval as LPLOGCOLORSPACEA) as HCOLORSPACE
declare function CreateDC alias "CreateDCA" (byval as LPCSTR, byval as LPCSTR, byval as LPCSTR, byval as DEVMODEA ptr) as HDC
declare function CreateEnhMetaFile alias "CreateEnhMetaFileA" (byval as HDC, byval as LPCSTR, byval as LPCRECT, byval as LPCSTR) as HDC
declare function CreateFont alias "CreateFontA" (byval as integer, byval as integer, byval as integer, byval as integer, byval as integer, byval as DWORD, byval as DWORD, byval as DWORD, byval as DWORD, byval as DWORD, byval as DWORD, byval as DWORD, byval as DWORD, byval as LPCSTR) as HFONT
declare function CreateFontIndirect alias "CreateFontIndirectA" (byval as LOGFONTA ptr) as HFONT
declare function CreateIC alias "CreateICA" (byval as LPCSTR, byval as LPCSTR, byval as LPCSTR, byval as DEVMODEA ptr) as HDC
declare function CreateMetaFile alias "CreateMetaFileA" (byval as LPCSTR) as HDC
declare function CreateScalableFontResource alias "CreateScalableFontResourceA" (byval as DWORD, byval as LPCSTR, byval as LPCSTR, byval as LPCSTR) as BOOL
declare function DeviceCapabilities alias "DeviceCapabilitiesA" (byval as LPCSTR, byval as LPCSTR, byval as WORD, byval as LPSTR, byval as DEVMODEA ptr) as DWORD
declare function EnumFontFamilies alias "EnumFontFamiliesA" (byval as HDC, byval as LPCSTR, byval as FONTENUMPROCA, byval as LPARAM) as integer
declare function EnumFontFamiliesEx alias "EnumFontFamiliesExA" (byval as HDC, byval as PLOGFONTA, byval as FONTENUMPROCA, byval as LPARAM, byval as DWORD) as integer
declare function EnumFonts alias "EnumFontsA" (byval as HDC, byval as LPCSTR, byval as FONTENUMPROCA, byval as LPARAM) as integer
declare function EnumICMProfiles alias "EnumICMProfilesA" (byval as HDC, byval as ICMENUMPROCA, byval as LPARAM) as integer
declare function ExtTextOut alias "ExtTextOutA" (byval as HDC, byval as integer, byval as integer, byval as UINT, byval as LPCRECT, byval as LPCSTR, byval as UINT, byval as INT_ ptr) as BOOL
declare function GetCharABCWidths alias "GetCharABCWidthsA" (byval as HDC, byval as UINT, byval as UINT, byval as LPABC) as BOOL
declare function GetCharABCWidthsFloat alias "GetCharABCWidthsFloatA" (byval as HDC, byval as UINT, byval as UINT, byval as LPABCFLOAT) as BOOL
declare function GetCharacterPlacement alias "GetCharacterPlacementA" (byval as HDC, byval as LPCSTR, byval as integer, byval as integer, byval as LPGCP_RESULTSA, byval as DWORD) as DWORD
declare function GetCharWidth32 alias "GetCharWidth32A" (byval as HDC, byval as UINT, byval as UINT, byval as LPINT) as BOOL
declare function GetCharWidth alias "GetCharWidthA" (byval as HDC, byval as UINT, byval as UINT, byval as LPINT) as BOOL
declare function GetCharWidthFloat alias "GetCharWidthFloatA" (byval as HDC, byval as UINT, byval as UINT, byval as PFLOAT) as BOOL
declare function GetEnhMetaFile alias "GetEnhMetaFileA" (byval as LPCSTR) as HENHMETAFILE
declare function GetEnhMetaFileDescription alias "GetEnhMetaFileDescriptionA" (byval as HENHMETAFILE, byval as UINT, byval as LPSTR) as UINT
declare function GetGlyphOutline alias "GetGlyphOutlineA" (byval as HDC, byval as UINT, byval as UINT, byval as LPGLYPHMETRICS, byval as DWORD, byval as PVOID, byval as MAT2 ptr) as DWORD
declare function GetICMProfile alias "GetICMProfileA" (byval as HDC, byval as DWORD, byval as LPSTR) as BOOL
declare function GetKerningPairs alias "GetKerningPairsA" (byval as HDC, byval as DWORD, byval as LPKERNINGPAIR) as DWORD
declare function GetLogColorSpace alias "GetLogColorSpaceA" (byval as HCOLORSPACE, byval as LPLOGCOLORSPACEA, byval as DWORD) as BOOL
declare function GetMetaFile alias "GetMetaFileA" (byval as LPCSTR) as HMETAFILE
declare function GetObject alias "GetObjectA" (byval as HGDIOBJ, byval as integer, byval as PVOID) as integer
declare function GetOutlineTextMetrics alias "GetOutlineTextMetricsA" (byval as HDC, byval as UINT, byval as LPOUTLINETEXTMETRICA) as UINT
declare function GetTextExtentExPoint alias "GetTextExtentExPointA" (byval as HDC, byval as LPCSTR, byval as integer, byval as integer, byval as LPINT, byval as LPINT, byval as LPSIZE) as BOOL
declare function GetTextExtentPoint alias "GetTextExtentPointA" (byval as HDC, byval as LPCSTR, byval as integer, byval as LPSIZE) as BOOL
declare function GetTextExtentPoint32 alias "GetTextExtentPoint32A" (byval as HDC, byval as LPCSTR, byval as integer, byval as LPSIZE) as BOOL
declare function GetTextFace alias "GetTextFaceA" (byval as HDC, byval as integer, byval as LPSTR) as integer
declare function GetTextMetrics alias "GetTextMetricsA" (byval as HDC, byval as LPTEXTMETRICA) as BOOL
declare function PolyTextOut alias "PolyTextOutA" (byval as HDC, byval as POLYTEXTA ptr, byval as integer) as BOOL
declare function RemoveFontResource alias "RemoveFontResourceA" (byval as LPCSTR) as BOOL
declare function RemoveFontResourceEx alias "RemoveFontResourceExA" (byval as LPCSTR, byval as DWORD, byval as PVOID) as BOOL
declare function ResetDC alias "ResetDCA" (byval as HDC, byval as DEVMODEA ptr) as HDC
declare function SetICMProfile alias "SetICMProfileA" (byval as HDC, byval as LPSTR) as BOOL
declare function StartDoc alias "StartDocA" (byval as HDC, byval as DOCINFOA ptr) as integer
declare function TextOut alias "TextOutA" (byval as HDC, byval as integer, byval as integer, byval as LPCSTR, byval as integer) as BOOL
declare function UpdateICMRegKey alias "UpdateICMRegKeyA" (byval as DWORD, byval as DWORD, byval as LPSTR, byval as UINT) as BOOL
declare function wglUseFontBitmaps alias "wglUseFontBitmapsA" (byval as HDC, byval as DWORD, byval as DWORD, byval as DWORD) as BOOL
declare function wglUseFontOutlines alias "wglUseFontOutlinesA" (byval as HDC, byval as DWORD, byval as DWORD, byval as DWORD, byval as FLOAT, byval as FLOAT, byval as integer, byval as LPGLYPHMETRICSFLOAT) as BOOL
declare function GetGlyphIndices alias "GetGlyphIndicesA" (byval as HDC, byval as LPCSTR, byval as integer, byval as LPWORD, byval as DWORD) as DWORD

#endif '' UNICODE

#define GetCValue(cmyk) cubyte(cmyk)
#define GetMValue(cmyk) cubyte((cmyk) shr 8)
#define GetYValue(cmyk) cubyte((cmyk) shr 16)
#define GetKValue(cmyk) cubyte((cmyk) shr 24)
#define CMYK(c,m,y,k) ((c) or (cuint(m) shl 8) or (cuint(y) shl 16) or (cuint(k) shl 24))
#define GetRValue(c) cubyte(c)
#define GetGValue(c) cubyte(cushort(c) shr 8)
#define GetBValue(c) cubyte((c) shr 16)

end extern

#endif
