Differences From Artifact [8dc90b344401d2c4]:
- File        
src/win32/wingdi.d
- 2011-02-23 12:53:16 - part of checkin [c2b7a98c21] on branch trunk - Initial import (user: kinaba) [annotate]
 
 
To Artifact [831d9d5a2951cb99]:
- File        
src/win32/wingdi.d
- 2015-04-21 10:46:55 - part of checkin [4e2933c620] on branch trunk - Rebased to the latest verson dmd 2.067. Not yet verified the outcome. (user: kinaba) [annotate]
 
 
                                                                                        >     1  
                                                                                        >     2  /***********************************************************************\
                                                                                        >     3  *                                wingdi.d                               *
                                                                                        >     4  *                                                                       *
                                                                                        >     5  *                       Windows API header module                       *
                                                                                        >     6  *                                                                       *
                                                                                        >     7  *                 Translated from MinGW Windows headers                 *
                                                                                        >     8  *                                                                       *
                                                                                        >     9  *                       Placed into public domain                       *
                                                                                        >    10  \***********************************************************************/
    1  module win32.wingdi;                                                                  11  module win32.wingdi;
                                                                                        >    12  pragma(lib, "gdi32.lib");
    2                                                                                   |    13  
    3  // Translated from Microsoft Platform SDK August 2001 Edition                    <
    4  // by Y.Tomino (demoonlit@inter7.jp)                                             |    14  // FIXME: clean up Windows version support
    5                                                                                   |    15  
    6  import win32.windef;                                                             |    16  private import win32.w32api, win32.windef, win32.winver;
    7                                                                                   |    17  
    8  // #ifndef _WINGDI_                                                              |    18  // BITMAPINFOHEADER.biCompression
    9  // #define _WINGDI_                                                              |    19  enum : DWORD {
                                                                                        >    20      BI_RGB = 0,
                                                                                        >    21      BI_RLE8,
                                                                                        >    22      BI_RLE4,
                                                                                        >    23      BI_BITFIELDS,
                                                                                        >    24      BI_JPEG,
                                                                                        >    25      BI_PNG
   10                                                                                   |    26  }
   11  // #ifdef _MAC                                                                   <
                                                                                        >    27  
   12  // #...                                                                          |    28  // ---
                                                                                        >    29  // COLORADJUSTMENT -- only for NT 3.1+, Win2000+
                                                                                        >    30  const WORD
                                                                                        >    31  CA_NEGATIVE   = 1,
                                                                                        >    32  CA_LOG_FILTER = 2;
                                                                                        >    33  
                                                                                        >    34  // COLORADJUSTMENT
                                                                                        >    35  enum : WORD  {
                                                                                        >    36      ILLUMINANT_DEVICE_DEFAULT = 0,
                                                                                        >    37      ILLUMINANT_A,
                                                                                        >    38      ILLUMINANT_B,
                                                                                        >    39      ILLUMINANT_C,
                                                                                        >    40      ILLUMINANT_D50,
                                                                                        >    41      ILLUMINANT_D55,
                                                                                        >    42      ILLUMINANT_D65,
                                                                                        >    43      ILLUMINANT_D75,
                                                                                        >    44      ILLUMINANT_F2,
                                                                                        >    45      ILLUMINANT_MAX_INDEX   = ILLUMINANT_F2,
                                                                                        >    46      ILLUMINANT_TUNGSTEN    = ILLUMINANT_A,
                                                                                        >    47      ILLUMINANT_DAYLIGHT    = ILLUMINANT_C,
                                                                                        >    48      ILLUMINANT_FLUORESCENT = ILLUMINANT_F2,
                                                                                        >    49      ILLUMINANT_NTSC        = ILLUMINANT_C
                                                                                        >    50  }
                                                                                        >    51  
                                                                                        >    52  enum {
                                                                                        >    53      RGB_GAMMA_MIN       = 2500,
                                                                                        >    54      RGB_GAMMA_MAX       = 65000,
                                                                                        >    55      REFERENCE_WHITE_MIN = 6000,
                                                                                        >    56      REFERENCE_WHITE_MAX = 10000,
                                                                                        >    57      REFERENCE_BLACK_MIN = 0,
                                                                                        >    58      REFERENCE_BLACK_MAX = 4000,
                                                                                        >    59      COLOR_ADJ_MIN       = -100,
                                                                                        >    60      COLOR_ADJ_MAX       = 100,
                                                                                        >    61  }
                                                                                        >    62  
   13  // #endif                                                                        |    63  // ---
   14                                                                                   |    64  
   15  // #if !defined(_GDI32_)                                                         <
   16  // #define WINGDIAPI DECLSPEC_IMPORT                                             <
                                                                                        >    65  /* FIXME: move to win32.winuser ? */
                                                                                        >    66  
                                                                                        >    67  // DrawIconEx()
                                                                                        >    68  enum : UINT {
                                                                                        >    69      DI_MASK        = 1,
                                                                                        >    70      DI_IMAGE       = 2,
                                                                                        >    71      DI_NORMAL      = 3,
                                                                                        >    72      DI_COMPAT      = 4,
                                                                                        >    73      DI_DEFAULTSIZE = 8
                                                                                        >    74  }
                                                                                        >    75  
                                                                                        >    76  // DOCINFO
                                                                                        >    77  enum : DWORD {
                                                                                        >    78      DI_APPBANDING = 1,
                                                                                        >    79      DI_ROPS_READ_DESTINATION = 2,
                                                                                        >    80  }
                                                                                        >    81  
                                                                                        >    82  // ENHMETAHEADER
                                                                                        >    83  enum : DWORD {
                                                                                        >    84      EMR_HEADER = 1,
                                                                                        >    85      EMR_POLYBEZIER,
                                                                                        >    86      EMR_POLYGON,
                                                                                        >    87      EMR_POLYLINE,
                                                                                        >    88      EMR_POLYBEZIERTO,
                                                                                        >    89      EMR_POLYLINETO,
                                                                                        >    90      EMR_POLYPOLYLINE,
                                                                                        >    91      EMR_POLYPOLYGON,
                                                                                        >    92      EMR_SETWINDOWEXTEX,
                                                                                        >    93      EMR_SETWINDOWORGEX,
                                                                                        >    94      EMR_SETVIEWPORTEXTEX,
                                                                                        >    95      EMR_SETVIEWPORTORGEX,
                                                                                        >    96      EMR_SETBRUSHORGEX,
                                                                                        >    97      EMR_EOF,
                                                                                        >    98      EMR_SETPIXELV,
                                                                                        >    99      EMR_SETMAPPERFLAGS,
                                                                                        >   100      EMR_SETMAPMODE,
                                                                                        >   101      EMR_SETBKMODE,
                                                                                        >   102      EMR_SETPOLYFILLMODE,
                                                                                        >   103      EMR_SETROP2,
                                                                                        >   104      EMR_SETSTRETCHBLTMODE,
                                                                                        >   105      EMR_SETTEXTALIGN,
                                                                                        >   106      EMR_SETCOLORADJUSTMENT,
                                                                                        >   107      EMR_SETTEXTCOLOR,
                                                                                        >   108      EMR_SETBKCOLOR,
                                                                                        >   109      EMR_OFFSETCLIPRGN,
                                                                                        >   110      EMR_MOVETOEX,
                                                                                        >   111      EMR_SETMETARGN,
                                                                                        >   112      EMR_EXCLUDECLIPRECT,
                                                                                        >   113      EMR_INTERSECTCLIPRECT,
                                                                                        >   114      EMR_SCALEVIEWPORTEXTEX,
                                                                                        >   115      EMR_SCALEWINDOWEXTEX,
                                                                                        >   116      EMR_SAVEDC,
                                                                                        >   117      EMR_RESTOREDC,
                                                                                        >   118      EMR_SETWORLDTRANSFORM,
                                                                                        >   119      EMR_MODIFYWORLDTRANSFORM,
                                                                                        >   120      EMR_SELECTOBJECT,
                                                                                        >   121      EMR_CREATEPEN,
                                                                                        >   122      EMR_CREATEBRUSHINDIRECT,
                                                                                        >   123      EMR_DELETEOBJECT,
                                                                                        >   124      EMR_ANGLEARC,
                                                                                        >   125      EMR_ELLIPSE,
                                                                                        >   126      EMR_RECTANGLE,
                                                                                        >   127      EMR_ROUNDRECT,
                                                                                        >   128      EMR_ARC,
                                                                                        >   129      EMR_CHORD,
                                                                                        >   130      EMR_PIE,
                                                                                        >   131      EMR_SELECTPALETTE,
                                                                                        >   132      EMR_CREATEPALETTE,
                                                                                        >   133      EMR_SETPALETTEENTRIES,
                                                                                        >   134      EMR_RESIZEPALETTE,
                                                                                        >   135      EMR_REALIZEPALETTE,
                                                                                        >   136      EMR_EXTFLOODFILL,
                                                                                        >   137      EMR_LINETO,
                                                                                        >   138      EMR_ARCTO,
                                                                                        >   139      EMR_POLYDRAW,
                                                                                        >   140      EMR_SETARCDIRECTION,
                                                                                        >   141      EMR_SETMITERLIMIT,
                                                                                        >   142      EMR_BEGINPATH,
                                                                                        >   143      EMR_ENDPATH,
                                                                                        >   144      EMR_CLOSEFIGURE,
                                                                                        >   145      EMR_FILLPATH,
                                                                                        >   146      EMR_STROKEANDFILLPATH,
                                                                                        >   147      EMR_STROKEPATH,
                                                                                        >   148      EMR_FLATTENPATH,
                                                                                        >   149      EMR_WIDENPATH,
                                                                                        >   150      EMR_SELECTCLIPPATH,
                                                                                        >   151      EMR_ABORTPATH,     // 68
                                                                                        >   152      // reserved 69
                                                                                        >   153      EMR_GDICOMMENT = 70,
                                                                                        >   154      EMR_FILLRGN,
                                                                                        >   155      EMR_FRAMERGN,
                                                                                        >   156      EMR_INVERTRGN,
                                                                                        >   157      EMR_PAINTRGN,
                                                                                        >   158      EMR_EXTSELECTCLIPRGN,
                                                                                        >   159      EMR_BITBLT,
                                                                                        >   160      EMR_STRETCHBLT,
                                                                                        >   161      EMR_MASKBLT,
                                                                                        >   162      EMR_PLGBLT,
                                                                                        >   163      EMR_SETDIBITSTODEVICE,
                                                                                        >   164      EMR_STRETCHDIBITS,
                                                                                        >   165      EMR_EXTCREATEFONTINDIRECTW,
                                                                                        >   166      EMR_EXTTEXTOUTA,
                                                                                        >   167      EMR_EXTTEXTOUTW,
                                                                                        >   168      EMR_POLYBEZIER16,
                                                                                        >   169      EMR_POLYGON16,
                                                                                        >   170      EMR_POLYLINE16,
                                                                                        >   171      EMR_POLYBEZIERTO16,
                                                                                        >   172      EMR_POLYLINETO16,
                                                                                        >   173      EMR_POLYPOLYLINE16,
                                                                                        >   174      EMR_POLYPOLYGON16,
                                                                                        >   175      EMR_POLYDRAW16,
                                                                                        >   176      EMR_CREATEMONOBRUSH,
                                                                                        >   177      EMR_CREATEDIBPATTERNBRUSHPT,
                                                                                        >   178      EMR_EXTCREATEPEN,
                                                                                        >   179      EMR_POLYTEXTOUTA,
                                                                                        >   180      EMR_POLYTEXTOUTW,     // 97
                                                                                        >   181      EMR_SETICMMODE,
                                                                                        >   182      EMR_CREATECOLORSPACE,
                                                                                        >   183      EMR_SETCOLORSPACE,
                                                                                        >   184      EMR_DELETECOLORSPACE,
                                                                                        >   185      EMR_GLSRECORD,
                                                                                        >   186      EMR_GLSBOUNDEDRECORD,
                                                                                        >   187      EMR_PIXELFORMAT,     // = 104
                                                                                        >   188      // reserved 105 - 110
                                                                                        >   189      EMR_COLORCORRECTPALETTE = 111,
                                                                                        >   190      EMR_SETICMPROFILEA,
                                                                                        >   191      EMR_SETICMPROFILEW,
                                                                                        >   192      EMR_ALPHABLEND,
                                                                                        >   193      EMR_SETLAYOUT,
                                                                                        >   194      EMR_TRANSPARENTBLT,     // 116
                                                                                        >   195      // reserved 117
                                                                                        >   196      EMR_GRADIENTFILL = 118,
                                                                                        >   197  
                                                                                        >   198      // reserved 119, 120
                                                                                        >   199      EMR_COLORMATCHTOTARGETW = 121,
                                                                                        >   200      EMR_CREATECOLORSPACEW     // 122
                                                                                        >   201  }
                                                                                        >   202  
                                                                                        >   203  const EMR_MIN = EMR_HEADER;
                                                                                        >   204  
                                                                                        >   205  static
                                                                                        >   206  
                                                                                        >   207  if (WINVER >= 0x0500)
                                                                                        >   208      const EMR_MAX = EMR_CREATECOLORSPACEW;
   17  // #else                                                                         |   209  else static
   18  // #...                                                                          <
   19  // #endif                                                                        <
   20                                                                                   |   210  
   21  // #if !defined(_SPOOL32_)                                                       <
   22  // #define WINSPOOLAPI DECLSPEC_IMPORT                                           <
                                                                                        >   211      if (WINVER >= 0x0400)
                                                                                        >   212          const EMR_MAX = EMR_PIXELFORMAT;
   23  // #else                                                                         |   213      else
                                                                                        >   214          const EMR_MAX = EMR_POLYTEXTOUTW;
                                                                                        >   215  
                                                                                        >   216  // ENHMETAHEADER.dSignature, ENHMETAHEADER3.dSignature,
                                                                                        >   217  // EMRFORMAT.dSignature
                                                                                        >   218  enum : DWORD {
                                                                                        >   219      ENHMETA_SIGNATURE = 1179469088,
                                                                                        >   220      EPS_SIGNATURE     = 0x46535045
                                                                                        >   221  }
                                                                                        >   222  
                                                                                        >   223  static
                                                                                        >   224  
                                                                                        >   225  if (_WIN32_WINNT >= 0x0500)
                                                                                        >   226  {
                                                                                        >   227      // AddFontResourceEx()
                                                                                        >   228      enum : DWORD {
                                                                                        >   229          FR_PRIVATE  = 0x10,
                                                                                        >   230          FR_NOT_ENUM = 0x20
                                                                                        >   231      }
                                                                                        >   232  }
                                                                                        >   233  
                                                                                        >   234  enum {
                                                                                        >   235      META_SAVEDC = 0x1E,
                                                                                        >   236      META_REALIZEPALETTE        = 0x35,
                                                                                        >   237      META_SETPALENTRIES         = 0x37,
                                                                                        >   238      META_CREATEPALETTE         = 0xf7,
                                                                                        >   239      META_SETBKMODE             = 0x102,
                                                                                        >   240      META_SETMAPMODE            = 0x103,
                                                                                        >   241      META_SETROP2               = 0x104,
                                                                                        >   242      META_SETRELABS             = 0x105,
                                                                                        >   243      META_SETPOLYFILLMODE       = 0x106,
                                                                                        >   244      META_SETSTRETCHBLTMODE     = 0x107,
                                                                                        >   245      META_SETTEXTCHAREXTRA      = 0x108,
                                                                                        >   246      META_RESTOREDC             = 0x127,
                                                                                        >   247      META_INVERTREGION          = 0x12A,
                                                                                        >   248      META_PAINTREGION           = 0x12B,
                                                                                        >   249      META_SELECTCLIPREGION      = 0x12C,
                                                                                        >   250      META_SELECTOBJECT          = 0x12D,
                                                                                        >   251      META_SETTEXTALIGN          = 0x12E,
                                                                                        >   252      META_RESIZEPALETTE         = 0x139,
                                                                                        >   253      META_DIBCREATEPATTERNBRUSH = 0x142,
                                                                                        >   254      META_SETLAYOUT             = 0x149,
                                                                                        >   255      META_DELETEOBJECT          = 0x1F0,
                                                                                        >   256      META_CREATEPATTERNBRUSH    = 0x1F9,
                                                                                        >   257      META_SETBKCOLOR            = 0x201,
                                                                                        >   258      META_SETTEXTCOLOR          = 0x209,
                                                                                        >   259      META_SETTEXTJUSTIFICATION  = 0x20A,
                                                                                        >   260      META_SETWINDOWORG          = 0x20B,
                                                                                        >   261      META_SETWINDOWEXT          = 0x20C,
                                                                                        >   262      META_SETVIEWPORTORG        = 0x20D,
                                                                                        >   263      META_SETVIEWPORTEXT        = 0x20E,
                                                                                        >   264      META_OFFSETWINDOWORG       = 0x20F,
                                                                                        >   265      META_OFFSETVIEWPORTORG     = 0x211,
                                                                                        >   266      META_LINETO                = 0x213,
                                                                                        >   267      META_MOVETO                = 0x214,
                                                                                        >   268      META_OFFSETCLIPRGN         = 0x220,
                                                                                        >   269      META_FILLREGION            = 0x228,
                                                                                        >   270      META_SETMAPPERFLAGS        = 0x231,
                                                                                        >   271      META_SELECTPALETTE         = 0x234,
                                                                                        >   272      META_CREATEPENINDIRECT     = 0x2FA,
                                                                                        >   273      META_CREATEFONTINDIRECT    = 0x2FB,
                                                                                        >   274      META_CREATEBRUSHINDIRECT   = 0x2FC,
                                                                                        >   275      META_POLYGON               = 0x324,
                                                                                        >   276      META_POLYLINE              = 0x325,
                                                                                        >   277      META_SCALEWINDOWEXT        = 0x410,
                                                                                        >   278      META_SCALEVIEWPORTEXT      = 0x412,
                                                                                        >   279      META_EXCLUDECLIPRECT       = 0x415,
                                                                                        >   280      META_INTERSECTCLIPRECT     = 0x416,
                                                                                        >   281      META_ELLIPSE               = 0x418,
                                                                                        >   282      META_FLOODFILL             = 0x419,
                                                                                        >   283      META_RECTANGLE             = 0x41B,
                                                                                        >   284      META_SETPIXEL              = 0x41F,
                                                                                        >   285      META_FRAMEREGION           = 0x429,
                                                                                        >   286      META_ANIMATEPALETTE        = 0x436,
                                                                                        >   287      META_TEXTOUT               = 0x521,
                                                                                        >   288      META_POLYPOLYGON           = 0x538,
                                                                                        >   289      META_EXTFLOODFILL          = 0x548,
                                                                                        >   290      META_ROUNDRECT             = 0x61C,
                                                                                        >   291      META_PATBLT                = 0x61D,
                                                                                        >   292      META_ESCAPE                = 0x626,
                                                                                        >   293      META_CREATEREGION          = 0x6FF,
                                                                                        >   294      META_ARC                   = 0x817,
                                                                                        >   295      META_PIE                   = 0x81A,
                                                                                        >   296      META_CHORD                 = 0x830,
                                                                                        >   297      META_BITBLT                = 0x922,
                                                                                        >   298      META_DIBBITBLT             = 0x940,
                                                                                        >   299      META_EXTTEXTOUT            = 0xA32,
                                                                                        >   300      META_STRETCHBLT            = 0xB23,
                                                                                        >   301      META_DIBSTRETCHBLT         = 0xB41,
                                                                                        >   302      META_SETDIBTODEV           = 0xD33,
                                                                                        >   303      META_STRETCHDIB            = 0xF43
                                                                                        >   304  }
                                                                                        >   305  
                                                                                        >   306  // EMRPOLYDRAW
                                                                                        >   307  enum : BYTE {
                                                                                        >   308      PT_CLOSEFIGURE = 1,
                                                                                        >   309      PT_LINETO      = 2,
                                                                                        >   310      PT_BEZIERTO    = 4,
                                                                                        >   311      PT_MOVETO      = 6
                                                                                        >   312  }
                                                                                        >   313  
   24  // #...                                                                          |   314  // ----
   25  // #endif                                                                        <
                                                                                        >   315  // PIXELFORMATDESCRIPTOR.iPixelType
                                                                                        >   316  enum : BYTE {
                                                                                        >   317      PFD_TYPE_RGBA       = 0,
                                                                                        >   318      PFD_TYPE_COLORINDEX = 1
   26                                                                                   |   319  }
   27  // #ifdef __cplusplus                                                            <
   28  // extern "C" {                                                                  <
   29  // #endif                                                                        <
   30                                                                                   |   320  
   31  // #ifndef WINVER                                                                <
                                                                                        >   321  deprecated {
                                                                                        >   322      // PIXELFORMATDESCRIPTOR.
                                                                                        >   323      const byte
                                                                                        >   324      PFD_MAIN_PLANE     = 0,
                                                                                        >   325      PFD_OVERLAY_PLANE  = 1,
                                                                                        >   326      PFD_UNDERLAY_PLANE = -1;
                                                                                        >   327  }
                                                                                        >   328  
                                                                                        >   329  // PIXELFORMATDESCRIPTOR.dwFlags
                                                                                        >   330  const DWORD
                                                                                        >   331  PFD_DOUBLEBUFFER = 0x00000001,
                                                                                        >   332  PFD_STEREO = 0x00000002,
                                                                                        >   333  PFD_DRAW_TO_WINDOW      = 0x00000004,
                                                                                        >   334  PFD_DRAW_TO_BITMAP      = 0x00000008,
                                                                                        >   335  PFD_SUPPORT_GDI         = 0x00000010,
                                                                                        >   336  PFD_SUPPORT_OPENGL      = 0x00000020,
                                                                                        >   337  PFD_GENERIC_FORMAT      = 0x00000040,
                                                                                        >   338  PFD_NEED_PALETTE        = 0x00000080,
                                                                                        >   339  PFD_NEED_SYSTEM_PALETTE = 0x00000100,
                                                                                        >   340  PFD_SWAP_EXCHANGE       = 0x00000200,
                                                                                        >   341  PFD_SWAP_COPY           = 0x00000400,
                                                                                        >   342  PFD_SWAP_LAYER_BUFFERS  = 0x00000800,
                                                                                        >   343  PFD_GENERIC_ACCELERATED = 0x00001000,
                                                                                        >   344  PFD_SUPPORT_DIRECTDRAW  = 0x00002000,
                                                                                        >   345  
                                                                                        >   346  /* PIXELFORMATDESCRIPTOR flags for use in ChoosePixelFormat only */
                                                                                        >   347  PFD_DEPTH_DONTCARE        = 0x20000000,
                                                                                        >   348  PFD_DOUBLEBUFFER_DONTCARE = 0x40000000,
                                                                                        >   349  PFD_STEREO_DONTCARE       = 0x80000000;
                                                                                        >   350  
   32  // #...                                                                          |   351  // ----
   33  // #endif /* WINVER */                                                           <
   34                                                                                   |   352  
   35  // #ifndef NOGDI                                                                 <
                                                                                        >   353  const DWORD
                                                                                        >   354  BLACKNESS   = 0x000042,
                                                                                        >   355  NOTSRCERASE = 0x1100A6,
                                                                                        >   356  NOTSRCCOPY  = 0x330008,
                                                                                        >   357  SRCERASE    = 0x440328,
                                                                                        >   358  DSTINVERT   = 0x550009,
                                                                                        >   359  PATINVERT   = 0x5A0049,
                                                                                        >   360  SRCINVERT   = 0x660046,
                                                                                        >   361  SRCAND      = 0x8800C6,
                                                                                        >   362  MERGEPAINT  = 0xBB0226,
                                                                                        >   363  MERGECOPY   = 0xC000CA,
                                                                                        >   364  SRCCOPY     = 0xCC0020,
                                                                                        >   365  SRCPAINT    = 0xEE0086,
                                                                                        >   366  PATCOPY     = 0xF00021,
                                                                                        >   367  PATPAINT    = 0xFB0A09,
                                                                                        >   368  WHITENESS   = 0xFF0062;
                                                                                        >   369  static
   36                                                                                   |   370  
   37  // #ifndef NORASTEROPS                                                           <
                                                                                        >   371  if (WINVER >= 0x0500)
   38                                                                                   |   372  {
                                                                                        >   373      const DWORD
                                                                                        >   374      NOMIRRORBITMAP = 0x80000000,
                                                                                        >   375      CAPTUREBLT     = 0x40000000;
                                                                                        >   376  }
                                                                                        >   377  
                                                                                        >   378  // GetROP2(), SetROP2()
                                                                                        >   379  enum : int {
   39  enum : uint { R2_BLACK = 1 }                                                     |   380      R2_BLACK       = 1,
   40  enum : uint { R2_NOTMERGEPEN = 2 }                                               |   381      R2_NOTMERGEPEN = 2,
   41  enum : uint { R2_MASKNOTPEN = 3 }                                                |   382      R2_MASKNOTPEN  = 3,
   42  enum : uint { R2_NOTCOPYPEN = 4 }                                                |   383      R2_NOTCOPYPEN  = 4,
   43  enum : uint { R2_MASKPENNOT = 5 }                                                |   384      R2_MASKPENNOT  = 5,
   44  enum : uint { R2_NOT = 6 }                                                       <
                                                                                        >   385      R2_NOT         = 6,
   45  enum : uint { R2_XORPEN = 7 }                                                    |   386      R2_XORPEN      = 7,
   46  enum : uint { R2_NOTMASKPEN = 8 }                                                |   387      R2_NOTMASKPEN  = 8,
   47  enum : uint { R2_MASKPEN = 9 }                                                   |   388      R2_MASKPEN     = 9,
   48  enum : uint { R2_NOTXORPEN = 10 }                                                |   389      R2_NOTXORPEN   = 10,
   49  enum : uint { R2_NOP = 11 }                                                      <
                                                                                        >   390      R2_NOP         = 11,
   50  enum : uint { R2_MERGENOTPEN = 12 }                                              |   391      R2_MERGENOTPEN = 12,
   51  enum : uint { R2_COPYPEN = 13 }                                                  |   392      R2_COPYPEN     = 13,
   52  enum : uint { R2_MERGEPENNOT = 14 }                                              |   393      R2_MERGEPENNOT = 14,
   53  enum : uint { R2_MERGEPEN = 15 }                                                 |   394      R2_MERGEPEN    = 15,
   54  enum : uint { R2_WHITE = 16 }                                                    |   395      R2_WHITE       = 16
                                                                                        >   396  }
                                                                                        >   397  
   55  enum : uint { R2_LAST = 16 }                                                     |   398  const R2_LAST = R2_WHITE;
   56                                                                                   |   399  
   57  enum : DWORD { SRCCOPY = 0x00CC0020 }                                            <
   58  enum : DWORD { SRCPAINT = 0x00EE0086 }                                           <
   59  enum : DWORD { SRCAND = 0x008800C6 }                                             <
   60  enum : DWORD { SRCINVERT = 0x00660046 }                                          <
   61  enum : DWORD { SRCERASE = 0x00440328 }                                           <
   62  enum : DWORD { NOTSRCCOPY = 0x00330008 }                                         <
   63  enum : DWORD { NOTSRCERASE = 0x001100A6 }                                        <
   64  enum : DWORD { MERGECOPY = 0x00C000CA }                                          <
   65  enum : DWORD { MERGEPAINT = 0x00BB0226 }                                         <
   66  enum : DWORD { PATCOPY = 0x00F00021 }                                            <
   67  enum : DWORD { PATPAINT = 0x00FB0A09 }                                           <
   68  enum : DWORD { PATINVERT = 0x005A0049 }                                          <
   69  enum : DWORD { DSTINVERT = 0x00550009 }                                          <
   70  enum : DWORD { BLACKNESS = 0x00000042 }                                          <
   71  enum : DWORD { WHITENESS = 0x00FF0062 }                                          <
   72  // #if(WINVER >= 0x0500)                                                         <
                                                                                        >   400  // CheckColorsInGamut()
                                                                                        >   401  const ubyte
                                                                                        >   402  CM_IN_GAMUT     = 0,
                                                                                        >   403  CM_OUT_OF_GAMUT = 255;
   73                                                                                   |   404  
   74  enum : DWORD { NOMIRRORBITMAP = 0x80000000 }                                     <
   75  enum : DWORD { CAPTUREBLT = 0x40000000 }                                         <
   76  // #endif /* WINVER >= 0x0500 */                                                 <
                                                                                        >   405  /* UpdateICMRegKey Constants               */
                                                                                        >   406  const int
                                                                                        >   407  ICM_ADDPROFILE          = 1,
                                                                                        >   408  ICM_DELETEPROFILE       = 2,
                                                                                        >   409  ICM_QUERYPROFILE        = 3,
                                                                                        >   410  ICM_SETDEFAULTPROFILE   = 4,
                                                                                        >   411  ICM_REGISTERICMATCHER   = 5,
                                                                                        >   412  ICM_UNREGISTERICMATCHER = 6,
                                                                                        >   413  ICM_QUERYMATCH          = 7;
   77                                                                                   |   414  
   78  DWORD MAKEROP4(DWORD fore, DWORD back){ return ((back << 8) & 0xFF000000) | fore <
                                                                                        >   415  enum : int {
                                                                                        >   416      RGN_AND  = 1,
                                                                                        >   417      RGN_OR   = 2,
                                                                                        >   418      RGN_XOR  = 3,
                                                                                        >   419      RGN_DIFF = 4,
                                                                                        >   420      RGN_COPY = 5
   79                                                                                   |   421  }
   80  // #endif /* NORASTEROPS */                                                      <
   81                                                                                   |   422  
   82  enum : uint { GDI_ERROR = 0xFFFFFFFF }                                           <
   83  const HANDLE HGDI_ERROR = cast(HANDLE)(0xFFFFFFFFL);                             <
                                                                                        >   423  const RGN_MIN = RGN_AND;
                                                                                        >   424  const RGN_MAX = RGN_COPY;
   84                                                                                   |   425  
   85  enum : uint { ERROR = 0 }                                                        <
                                                                                        >   426  // Return values for CombineRgn()
                                                                                        >   427  enum {
   86  enum : uint { NULLREGION = 1 }                                                   |   428      NULLREGION    = 1,
   87  enum : uint { SIMPLEREGION = 2 }                                                 |   429      SIMPLEREGION  = 2,
   88  enum : uint { COMPLEXREGION = 3 }                                                |   430      COMPLEXREGION = 3
                                                                                        >   431  }
                                                                                        >   432  
                                                                                        >   433  const ERROR = 0;
   89  alias ERROR RGN_ERROR;                                                               434  alias ERROR RGN_ERROR;
   90                                                                                       435  
                                                                                        >   436  // CreateDIBitmap()
                                                                                        >   437  const DWORD CBM_INIT = 4;
                                                                                        >   438  
                                                                                        >   439  // CreateDIBitmap()
   91  enum : uint { RGN_AND = 1 }                                                      |   440  enum : UINT {
                                                                                        >   441      DIB_RGB_COLORS = 0,
                                                                                        >   442      DIB_PAL_COLORS = 1
                                                                                        >   443  }
                                                                                        >   444  
                                                                                        >   445  // ---
                                                                                        >   446  //  Values for LOGFONT and CreateFont()
                                                                                        >   447  
                                                                                        >   448  // FIXME: For D, replace with lfFaceName.length()
                                                                                        >   449  const LF_FACESIZE     = 32;
                                                                                        >   450  const LF_FULLFACESIZE = 64;
                                                                                        >   451  
                                                                                        >   452  // FIXME: Not needed for D, only EXTLOGFONT
                                                                                        >   453  const ELF_VENDOR_SIZE = 4;
                                                                                        >   454  
                                                                                        >   455  // ???
                                                                                        >   456  const ELF_VERSION       = 0;
                                                                                        >   457  const ELF_CULTURE_LATIN = 0;
                                                                                        >   458  
                                                                                        >   459  // LOGFONT.lfWeight
                                                                                        >   460  const LONG
                                                                                        >   461  FW_DONTCARE   = 0,
                                                                                        >   462  FW_THIN       = 100,
                                                                                        >   463  FW_EXTRALIGHT = 200,
                                                                                        >   464  FW_ULTRALIGHT = FW_EXTRALIGHT,
                                                                                        >   465  FW_LIGHT      = 300,
                                                                                        >   466  FW_NORMAL     = 400,
                                                                                        >   467  FW_REGULAR    = FW_NORMAL,
                                                                                        >   468  FW_MEDIUM     = 500,
                                                                                        >   469  FW_SEMIBOLD   = 600,
                                                                                        >   470  FW_DEMIBOLD   = FW_SEMIBOLD,
                                                                                        >   471  FW_BOLD       = 700,
                                                                                        >   472  FW_EXTRABOLD  = 800,
                                                                                        >   473  FW_ULTRABOLD  = FW_EXTRABOLD,
                                                                                        >   474  FW_HEAVY      = 900,
                                                                                        >   475  FW_BLACK      = FW_HEAVY;
                                                                                        >   476  
                                                                                        >   477  // LOGFONT.lfCharSet
                                                                                        >   478  enum : DWORD {
                                                                                        >   479      ANSI_CHARSET        = 0,
                                                                                        >   480      DEFAULT_CHARSET     = 1,
                                                                                        >   481      SYMBOL_CHARSET      = 2,
                                                                                        >   482      MAC_CHARSET         = 77,
                                                                                        >   483      SHIFTJIS_CHARSET    = 128,
                                                                                        >   484      HANGEUL_CHARSET     = 129,
                                                                                        >   485      HANGUL_CHARSET      = 129,
                                                                                        >   486      JOHAB_CHARSET       = 130,
                                                                                        >   487      GB2312_CHARSET      = 134,
                                                                                        >   488      CHINESEBIG5_CHARSET = 136,
                                                                                        >   489      GREEK_CHARSET       = 161,
                                                                                        >   490      TURKISH_CHARSET     = 162,
                                                                                        >   491      VIETNAMESE_CHARSET  = 163,
                                                                                        >   492      HEBREW_CHARSET      = 177,
                                                                                        >   493      ARABIC_CHARSET      = 178,
                                                                                        >   494      BALTIC_CHARSET      = 186,
                                                                                        >   495      RUSSIAN_CHARSET     = 204,
                                                                                        >   496      THAI_CHARSET        = 222,
                                                                                        >   497      EASTEUROPE_CHARSET  = 238,
                                                                                        >   498      OEM_CHARSET         = 255
                                                                                        >   499  }
                                                                                        >   500  
                                                                                        >   501  // LOGFONT.lfOutPrecision
   92  enum : uint { RGN_OR = 2 }                                                       |   502  enum : BYTE {
                                                                                        >   503      OUT_DEFAULT_PRECIS = 0,
                                                                                        >   504      OUT_STRING_PRECIS,
                                                                                        >   505      OUT_CHARACTER_PRECIS,
                                                                                        >   506      OUT_STROKE_PRECIS,
                                                                                        >   507      OUT_TT_PRECIS,
                                                                                        >   508      OUT_DEVICE_PRECIS,
                                                                                        >   509      OUT_RASTER_PRECIS,
                                                                                        >   510      OUT_TT_ONLY_PRECIS,
                                                                                        >   511      OUT_OUTLINE_PRECIS,
                                                                                        >   512      OUT_SCREEN_OUTLINE_PRECIS,
                                                                                        >   513      OUT_PS_ONLY_PRECIS,     // 10
                                                                                        >   514  }
                                                                                        >   515  
                                                                                        >   516  // LOGFONT.lfClipPrecision
   93  enum : uint { RGN_XOR = 3 }                                                      |   517  enum : BYTE  {
                                                                                        >   518      CLIP_DEFAULT_PRECIS   = 0,
                                                                                        >   519      CLIP_CHARACTER_PRECIS = 1,
                                                                                        >   520      CLIP_STROKE_PRECIS    = 2,
                                                                                        >   521      CLIP_MASK             = 15,
                                                                                        >   522      CLIP_LH_ANGLES        = 16,
                                                                                        >   523      CLIP_TT_ALWAYS        = 32,
                                                                                        >   524      CLIP_DFA_DISABLE      = 64,
                                                                                        >   525      CLIP_EMBEDDED         = 128
                                                                                        >   526  }
                                                                                        >   527  
                                                                                        >   528  // LOGFONT.lfQuality
   94  enum : uint { RGN_DIFF = 4 }                                                     |   529  enum : BYTE {
                                                                                        >   530      DEFAULT_QUALITY = 0,
                                                                                        >   531      DRAFT_QUALITY,
                                                                                        >   532      PROOF_QUALITY,
                                                                                        >   533      NONANTIALIASED_QUALITY,
                                                                                        >   534      ANTIALIASED_QUALITY
                                                                                        >   535  }
                                                                                        >   536  
                                                                                        >   537  // LOGFONT.lfPitchAndFamily
                                                                                        >   538  
                                                                                        >   539  const BYTE
                                                                                        >   540  DEFAULT_PITCH  = 0,
                                                                                        >   541  FIXED_PITCH    = 1,
                                                                                        >   542  VARIABLE_PITCH = 2,
                                                                                        >   543  MONO_FONT      = 8,
                                                                                        >   544  FF_DONTCARE    = 0,
                                                                                        >   545  FF_ROMAN       = 16,
                                                                                        >   546  FF_SWISS       = 32,
                                                                                        >   547  FF_SCRIPT      = 64,
                                                                                        >   548  FF_MODERN      = 48,
                                                                                        >   549  FF_DECORATIVE  = 80;
                                                                                        >   550  
                                                                                        >   551  // ----
                                                                                        >   552  // Enums for the PANOSE struct
                                                                                        >   553  
                                                                                        >   554  const PANOSE_COUNT=10;
                                                                                        >   555  
                                                                                        >   556  enum {
                                                                                        >   557      PAN_FAMILYTYPE_INDEX = 0,
                                                                                        >   558      PAN_SERIFSTYLE_INDEX,
                                                                                        >   559      PAN_WEIGHT_INDEX,
                                                                                        >   560      PAN_PROPORTION_INDEX,
                                                                                        >   561      PAN_CONTRAST_INDEX,
                                                                                        >   562      PAN_STROKEVARIATION_INDEX,
                                                                                        >   563      PAN_ARMSTYLE_INDEX,
                                                                                        >   564      PAN_LETTERFORM_INDEX,
                                                                                        >   565      PAN_MIDLINE_INDEX,
                                                                                        >   566      PAN_XHEIGHT_INDEX
                                                                                        >   567  }
                                                                                        >   568  
                                                                                        >   569  const PAN_CULTURE_LATIN=0;
                                                                                        >   570  
                                                                                        >   571  // NOTE: the first two values (PAN_ANY and PAN_NO_FIT) apply to all these enums!
   95  enum : uint { RGN_COPY = 5 }                                                     |   572  enum : BYTE {
   96  alias RGN_AND RGN_MIN;                                                           <
   97  alias RGN_COPY RGN_MAX;                                                          <
                                                                                        >   573      PAN_ANY    = 0,
                                                                                        >   574      PAN_NO_FIT = 1,
   98                                                                                   |   575  }
   99  enum : uint { BLACKONWHITE = 1 }                                                 <
  100  enum : uint { WHITEONBLACK = 2 }                                                 <
  101  enum : uint { COLORONCOLOR = 3 }                                                 <
                                                                                        >   576  
  102  enum : uint { HALFTONE = 4 }                                                     |   577  enum : BYTE {
  103  enum : uint { MAXSTRETCHBLTMODE = 4 }                                            <
                                                                                        >   578      PAN_FAMILY_TEXT_DISPLAY = 2,
                                                                                        >   579      PAN_FAMILY_SCRIPT,
                                                                                        >   580      PAN_FAMILY_DECORATIVE,
                                                                                        >   581      PAN_FAMILY_PICTORIAL
  104                                                                                   |   582  }
  105  // #if(WINVER >= 0x0400)                                                         <
                                                                                        >   583  enum : BYTE {
                                                                                        >   584      PAN_SERIF_COVE = 2,
                                                                                        >   585      PAN_SERIF_OBTUSE_COVE,
                                                                                        >   586      PAN_SERIF_SQUARE_COVE,
                                                                                        >   587      PAN_SERIF_OBTUSE_SQUARE_COVE,
                                                                                        >   588      PAN_SERIF_SQUARE,
                                                                                        >   589      PAN_SERIF_THIN,
                                                                                        >   590      PAN_SERIF_BONE,
                                                                                        >   591      PAN_SERIF_EXAGGERATED,
                                                                                        >   592      PAN_SERIF_TRIANGLE,
                                                                                        >   593      PAN_SERIF_NORMAL_SANS,
                                                                                        >   594      PAN_SERIF_OBTUSE_SANS,
                                                                                        >   595      PAN_SERIF_PERP_SANS,
                                                                                        >   596      PAN_SERIF_FLARED,
                                                                                        >   597      PAN_SERIF_ROUNDED
  106                                                                                   |   598  }
  107  alias BLACKONWHITE STRETCH_ANDSCANS;                                             <
  108  alias WHITEONBLACK STRETCH_ORSCANS;                                              <
  109  alias COLORONCOLOR STRETCH_DELETESCANS;                                          <
  110  alias HALFTONE STRETCH_HALFTONE;                                                 <
  111  // #endif /* WINVER >= 0x0400 */                                                 <
  112                                                                                   |   599  
                                                                                        >   600  enum : BYTE {
                                                                                        >   601      PAN_WEIGHT_VERY_LIGHT = 2,
                                                                                        >   602      PAN_WEIGHT_LIGHT,
                                                                                        >   603      PAN_WEIGHT_THIN,
                                                                                        >   604      PAN_WEIGHT_BOOK,
                                                                                        >   605      PAN_WEIGHT_MEDIUM,
                                                                                        >   606      PAN_WEIGHT_DEMI,
                                                                                        >   607      PAN_WEIGHT_BOLD,
                                                                                        >   608      PAN_WEIGHT_HEAVY,
                                                                                        >   609      PAN_WEIGHT_BLACK,
                                                                                        >   610      PAN_WEIGHT_NORD
                                                                                        >   611  }
                                                                                        >   612  
                                                                                        >   613  enum : BYTE {
                                                                                        >   614      PAN_PROP_OLD_STYLE = 2,
                                                                                        >   615      PAN_PROP_MODERN,
                                                                                        >   616      PAN_PROP_EVEN_WIDTH,
                                                                                        >   617      PAN_PROP_EXPANDED,
                                                                                        >   618      PAN_PROP_CONDENSED,
                                                                                        >   619      PAN_PROP_VERY_EXPANDED,
                                                                                        >   620      PAN_PROP_VERY_CONDENSED,
                                                                                        >   621      PAN_PROP_MONOSPACED
                                                                                        >   622  }
                                                                                        >   623  
                                                                                        >   624  enum : BYTE {
                                                                                        >   625      PAN_CONTRAST_NONE = 2,
                                                                                        >   626      PAN_CONTRAST_VERY_LOW,
                                                                                        >   627      PAN_CONTRAST_LOW,
                                                                                        >   628      PAN_CONTRAST_MEDIUM_LOW,
                                                                                        >   629      PAN_CONTRAST_MEDIUM,
                                                                                        >   630      PAN_CONTRAST_MEDIUM_HIGH,
                                                                                        >   631      PAN_CONTRAST_HIGH,
                                                                                        >   632      PAN_CONTRAST_VERY_HIGH
                                                                                        >   633  }
                                                                                        >   634  
                                                                                        >   635  // PANOSE.bStrokeVariation
                                                                                        >   636  enum : BYTE {
                                                                                        >   637      PAN_STROKE_GRADUAL_DIAG = 2,
                                                                                        >   638      PAN_STROKE_GRADUAL_TRAN,
                                                                                        >   639      PAN_STROKE_GRADUAL_VERT,
                                                                                        >   640      PAN_STROKE_GRADUAL_HORZ,
                                                                                        >   641      PAN_STROKE_RAPID_VERT,
                                                                                        >   642      PAN_STROKE_RAPID_HORZ,
                                                                                        >   643      PAN_STROKE_INSTANT_VERT
                                                                                        >   644  }
                                                                                        >   645  
                                                                                        >   646  // PANOSE.bArmStyle
                                                                                        >   647  enum : BYTE {
                                                                                        >   648      PAN_STRAIGHT_ARMS_HORZ = 2,
                                                                                        >   649      PAN_STRAIGHT_ARMS_WEDGE,
                                                                                        >   650      PAN_STRAIGHT_ARMS_VERT,
                                                                                        >   651      PAN_STRAIGHT_ARMS_SINGLE_SERIF,
                                                                                        >   652      PAN_STRAIGHT_ARMS_DOUBLE_SERIF,
                                                                                        >   653      PAN_BENT_ARMS_HORZ,
                                                                                        >   654      PAN_BENT_ARMS_WEDGE,
                                                                                        >   655      PAN_BENT_ARMS_VERT,
                                                                                        >   656      PAN_BENT_ARMS_SINGLE_SERIF,
                                                                                        >   657      PAN_BENT_ARMS_DOUBLE_SERIF
                                                                                        >   658  }
                                                                                        >   659  
                                                                                        >   660  // PANOSE.bLetterForm
                                                                                        >   661  enum : BYTE {
                                                                                        >   662      PAN_LETT_NORMAL_CONTACT = 2,
                                                                                        >   663      PAN_LETT_NORMAL_WEIGHTED,
                                                                                        >   664      PAN_LETT_NORMAL_BOXED,
                                                                                        >   665      PAN_LETT_NORMAL_FLATTENED,
                                                                                        >   666      PAN_LETT_NORMAL_ROUNDED,
                                                                                        >   667      PAN_LETT_NORMAL_OFF_CENTER,
                                                                                        >   668      PAN_LETT_NORMAL_SQUARE,
                                                                                        >   669      PAN_LETT_OBLIQUE_CONTACT,
                                                                                        >   670      PAN_LETT_OBLIQUE_WEIGHTED,
                                                                                        >   671      PAN_LETT_OBLIQUE_BOXED,
                                                                                        >   672      PAN_LETT_OBLIQUE_FLATTENED,
                                                                                        >   673      PAN_LETT_OBLIQUE_ROUNDED,
                                                                                        >   674      PAN_LETT_OBLIQUE_OFF_CENTER,
                                                                                        >   675      PAN_LETT_OBLIQUE_SQUARE
                                                                                        >   676  }
                                                                                        >   677  
                                                                                        >   678  // PANOSE.bMidLine
                                                                                        >   679  enum : BYTE {
                                                                                        >   680      PAN_MIDLINE_STANDARD_TRIMMED = 2,
                                                                                        >   681      PAN_MIDLINE_STANDARD_POINTED,
                                                                                        >   682      PAN_MIDLINE_STANDARD_SERIFED,
                                                                                        >   683      PAN_MIDLINE_HIGH_TRIMMED,
                                                                                        >   684      PAN_MIDLINE_HIGH_POINTED,
                                                                                        >   685      PAN_MIDLINE_HIGH_SERIFED,
                                                                                        >   686      PAN_MIDLINE_CONSTANT_TRIMMED,
                                                                                        >   687      PAN_MIDLINE_CONSTANT_POINTED,
                                                                                        >   688      PAN_MIDLINE_CONSTANT_SERIFED,
                                                                                        >   689      PAN_MIDLINE_LOW_TRIMMED,
                                                                                        >   690      PAN_MIDLINE_LOW_POINTED,
                                                                                        >   691      PAN_MIDLINE_LOW_SERIFED
                                                                                        >   692  }
                                                                                        >   693  
                                                                                        >   694  // PANOSE.bXHeight
                                                                                        >   695  enum : BYTE {
                                                                                        >   696      PAN_XHEIGHT_CONSTANT_SMALL = 2,
                                                                                        >   697      PAN_XHEIGHT_CONSTANT_STD,
                                                                                        >   698      PAN_XHEIGHT_CONSTANT_LARGE,
                                                                                        >   699      PAN_XHEIGHT_DUCKING_SMALL,
                                                                                        >   700      PAN_XHEIGHT_DUCKING_STD,
                                                                                        >   701      PAN_XHEIGHT_DUCKING_LARGE
                                                                                        >   702  }
                                                                                        >   703  
                                                                                        >   704  // ----
                                                                                        >   705  // ???
                                                                                        >   706  const FS_LATIN1      = 0x00000001;
                                                                                        >   707  const FS_LATIN2      = 0x00000002;
                                                                                        >   708  const FS_CYRILLIC    = 0x00000004;
                                                                                        >   709  const FS_GREEK       = 0x00000008;
                                                                                        >   710  const FS_TURKISH     = 0x00000010;
                                                                                        >   711  const FS_HEBREW      = 0x00000020;
                                                                                        >   712  const FS_ARABIC      = 0x00000040;
                                                                                        >   713  const FS_BALTIC      = 0x00000080;
                                                                                        >   714  const FS_VIETNAMESE  = 0x00000100;
                                                                                        >   715  const FS_THAI        = 0x00010000;
                                                                                        >   716  const FS_JISJAPAN    = 0x00020000;
                                                                                        >   717  const FS_CHINESESIMP = 0x00040000;
                                                                                        >   718  const FS_WANSUNG     = 0x00080000;
                                                                                        >   719  const FS_CHINESETRAD = 0x00100000;
                                                                                        >   720  const FS_JOHAB       = 0x00200000;
                                                                                        >   721  const FS_SYMBOL      = 0x80000000;
                                                                                        >   722  
                                                                                        >   723  // ----
                                                                                        >   724  // Poly Fill Mode
                                                                                        >   725  enum : int {
  113  enum : uint { ALTERNATE = 1 }                                                    |   726      ALTERNATE = 1,
  114  enum : uint { WINDING = 2 }                                                      |   727      WINDING   = 2
                                                                                        >   728  }
  115  enum : uint { POLYFILL_LAST = 2 }                                                |   729  const int POLYFILL_LAST = WINDING;
  116                                                                                   |   730  
  117  // #if(WINVER >= 0x0500)                                                         <
                                                                                        >   731  // ---
                                                                                        >   732  // LOGBRUSH
                                                                                        >   733  enum : LONG {
                                                                                        >   734      HS_HORIZONTAL = 0,
                                                                                        >   735      HS_VERTICAL,
                                                                                        >   736      HS_FDIAGONAL,
                                                                                        >   737      HS_BDIAGONAL,
                                                                                        >   738      HS_CROSS,
                                                                                        >   739      HS_DIAGCROSS
                                                                                        >   740  }
                                                                                        >   741  
                                                                                        >   742  // LOGBRUSH.lbStyle
                                                                                        >   743  enum : UINT {
                                                                                        >   744      BS_SOLID  = 0,
                                                                                        >   745      BS_NULL   = 1,
                                                                                        >   746      BS_HOLLOW = BS_NULL,
                                                                                        >   747      BS_HATCHED,
                                                                                        >   748      BS_PATTERN,
                                                                                        >   749      BS_INDEXED,
                                                                                        >   750      BS_DIBPATTERN,
                                                                                        >   751      BS_DIBPATTERNPT,
                                                                                        >   752      BS_PATTERN8X8,
                                                                                        >   753      BS_DIBPATTERN8X8,
                                                                                        >   754      BS_MONOPATTERN,
                                                                                        >   755  }
                                                                                        >   756  
                                                                                        >   757  // -----
                                                                                        >   758  // EXTLOGPEN, ExtCreatePen()
                                                                                        >   759  
                                                                                        >   760  // EXTLOGPEN.elpPenStyle
                                                                                        >   761  enum : DWORD {
                                                                                        >   762      PS_SOLID       = 0,
                                                                                        >   763      PS_DASH        = 1,
                                                                                        >   764      PS_DOT         = 2,
                                                                                        >   765      PS_DASHDOT     = 3,
                                                                                        >   766      PS_DASHDOTDOT  = 4,
                                                                                        >   767      PS_NULL        = 5,
                                                                                        >   768      PS_INSIDEFRAME = 6,
                                                                                        >   769      PS_USERSTYLE   = 7,
                                                                                        >   770      PS_ALTERNATE   = 8,
                                                                                        >   771      PS_STYLE_MASK  = 15,
                                                                                        >   772  }
                                                                                        >   773  
                                                                                        >   774  enum : DWORD {
  118  enum : uint { LAYOUT_RTL = 0x00000001 }                                          |   775      PS_COSMETIC  = 0x00000000,
                                                                                        >   776      PS_GEOMETRIC = 0x00010000,
                                                                                        >   777      PS_TYPE_MASK = 0x000F0000,
                                                                                        >   778  }
                                                                                        >   779  enum : DWORD {
  119  enum : uint { LAYOUT_BTT = 0x00000002 }                                          |   780      PS_ENDCAP_ROUND  = 0x00000000,
                                                                                        >   781      PS_ENDCAP_SQUARE = 0x00000100,
                                                                                        >   782      PS_ENDCAP_FLAT   = 0x00000200,
                                                                                        >   783      PS_ENDCAP_MASK   = 0x00000F00,
                                                                                        >   784  }
                                                                                        >   785  enum : DWORD {
  120  enum : uint { LAYOUT_VBH = 0x00000004 }                                          |   786      PS_JOIN_ROUND = 0x00000000,
  121  enum : uint { LAYOUT_ORIENTATIONMASK = LAYOUT_RTL | LAYOUT_BTT | LAYOUT_VBH }    <
  122  enum : uint { LAYOUT_BITMAPORIENTATIONPRESERVED = 0x00000008 }                   <
                                                                                        >   787      PS_JOIN_BEVEL = 0x00001000,
                                                                                        >   788      PS_JOIN_MITER = 0x00002000,
                                                                                        >   789      PS_JOIN_MASK  = 0x0000F000,
                                                                                        >   790  }
                                                                                        >   791  
                                                                                        >   792  // ---
                                                                                        >   793  // DeviceCapabilities()
                                                                                        >   794  
                                                                                        >   795  enum : WORD {
                                                                                        >   796      DC_FIELDS = 1,
                                                                                        >   797      DC_PAPERS,
                                                                                        >   798      DC_PAPERSIZE,
                                                                                        >   799      DC_MINEXTENT,
                                                                                        >   800      DC_MAXEXTENT,
                                                                                        >   801      DC_BINS,
                                                                                        >   802      DC_DUPLEX,
                                                                                        >   803      DC_SIZE,
                                                                                        >   804      DC_EXTRA,
                                                                                        >   805      DC_VERSION,
                                                                                        >   806      DC_DRIVER,
                                                                                        >   807      DC_BINNAMES,
                                                                                        >   808      DC_ENUMRESOLUTIONS,
                                                                                        >   809      DC_FILEDEPENDENCIES,
                                                                                        >   810      DC_TRUETYPE,
                                                                                        >   811      DC_PAPERNAMES,
                                                                                        >   812      DC_ORIENTATION,
                                                                                        >   813      DC_COPIES,
                                                                                        >   814      DC_BINADJUST,
                                                                                        >   815      DC_EMF_COMPLIANT,
                                                                                        >   816      DC_DATATYPE_PRODUCED,
                                                                                        >   817      DC_COLLATE,
                                                                                        >   818      DC_MANUFACTURER,
                                                                                        >   819      DC_MODEL,
                                                                                        >   820  }
                                                                                        >   821  
                                                                                        >   822  static
                                                                                        >   823  
  123  // #endif /* WINVER >= 0x0500 */                                                 |   824  if (WINVER >= 0x0500)
  124                                                                                   |   825  {
  125  enum : uint { TA_NOUPDATECP = 0 }                                                <
  126  enum : uint { TA_UPDATECP = 1 }                                                  <
                                                                                        >   826      enum {
                                                                                        >   827          DC_PERSONALITY   = 25,
                                                                                        >   828          DC_PRINTRATE     = 26,
                                                                                        >   829          DC_PRINTRATEUNIT = 27,
                                                                                        >   830          DC_PRINTERMEM    = 28,
                                                                                        >   831          DC_MEDIAREADY    = 29,
                                                                                        >   832          DC_STAPLE        = 30,
                                                                                        >   833          DC_PRINTRATEPPM  = 31,
                                                                                        >   834          DC_COLORDEVICE   = 32,
                                                                                        >   835          DC_NUP = 33,
                                                                                        >   836          DC_MEDIATYPENAMES = 34,
                                                                                        >   837          DC_MEDIATYPES     = 35,
  127                                                                                   |   838      }
  128  enum : uint { TA_LEFT = 0 }                                                      <
  129  enum : uint { TA_RIGHT = 2 }                                                     <
  130  enum : uint { TA_CENTER = 6 }                                                    <
                                                                                        >   839      enum {
                                                                                        >   840          PRINTRATEUNIT_PPM = 1,
                                                                                        >   841          PRINTRATEUNIT_CPS = 2,
                                                                                        >   842          PRINTRATEUNIT_LPM = 3,
                                                                                        >   843          PRINTRATEUNIT_IPM = 4,
  131                                                                                   |   844      }
  132  enum : uint { TA_TOP = 0 }                                                       <
  133  enum : uint { TA_BOTTOM = 8 }                                                    <
  134  enum : uint { TA_BASELINE = 24 }                                                 <
                                                                                        >   845  }
                                                                                        >   846  
                                                                                        >   847  // return from DC_TRUETYPE
                                                                                        >   848  const DWORD
                                                                                        >   849  DCTT_BITMAP = 1,
                                                                                        >   850  DCTT_DOWNLOAD         = 2,
                                                                                        >   851  DCTT_SUBDEV           = 4,
                                                                                        >   852  DCTT_DOWNLOAD_OUTLINE = 8;
                                                                                        >   853  
                                                                                        >   854  static
                                                                                        >   855  
  135  // #if (WINVER >= 0x0400)                                                        |   856  if (WINVER >= 0x0400)
  136  enum : uint { TA_RTLREADING = 256 }                                              <
  137  enum : uint { TA_MASK = TA_BASELINE+TA_CENTER+TA_UPDATECP+TA_RTLREADING }        <
  138  // #else                                                                         <
                                                                                        >   857  {
                                                                                        >   858      // return from DC_BINADJUST
                                                                                        >   859      enum : DWORD {
                                                                                        >   860          DCBA_FACEUPNONE     = 0x0000,
                                                                                        >   861          DCBA_FACEUPCENTER   = 0x0001,
                                                                                        >   862          DCBA_FACEUPLEFT     = 0x0002,
                                                                                        >   863          DCBA_FACEUPRIGHT    = 0x0003,
                                                                                        >   864          DCBA_FACEDOWNNONE   = 0x0100,
                                                                                        >   865          DCBA_FACEDOWNCENTER = 0x0101,
                                                                                        >   866          DCBA_FACEDOWNLEFT   = 0x0102,
                                                                                        >   867          DCBA_FACEDOWNRIGHT  = 0x0103,
                                                                                        >   868      }
                                                                                        >   869  }
                                                                                        >   870  
  139  // #...                                                                          |   871  // ---
  140  // #endif                                                                        <
  141                                                                                   |   872  
  142  alias TA_BASELINE VTA_BASELINE;                                                  <
  143  alias TA_BOTTOM VTA_LEFT;                                                        <
  144  alias TA_TOP VTA_RIGHT;                                                          <
  145  alias TA_CENTER VTA_CENTER;                                                      <
  146  alias TA_RIGHT VTA_BOTTOM;                                                       <
  147  alias TA_LEFT VTA_TOP;                                                           <
                                                                                        >   873  const FLOODFILLBORDER  = 0;
                                                                                        >   874  const FLOODFILLSURFACE = 1;
  148                                                                                   |   875  
                                                                                        >   876  // ExtTextOut()
                                                                                        >   877  const UINT
  149  enum : uint { ETO_OPAQUE = 0x0002 }                                              |   878  ETO_OPAQUE         = 0x0002,
  150  enum : uint { ETO_CLIPPED = 0x0004 }                                             |   879  ETO_CLIPPED        = 0x0004,
  151  // #if(WINVER >= 0x0400)                                                         <
  152  enum : uint { ETO_GLYPH_INDEX = 0x0010 }                                         |   880  ETO_GLYPH_INDEX    = 0x0010,
  153  enum : uint { ETO_RTLREADING = 0x0080 }                                          |   881  ETO_RTLREADING     = 0x0080,
  154  enum : uint { ETO_NUMERICSLOCAL = 0x0400 }                                       |   882  ETO_NUMERICSLOCAL  = 0x0400,
  155  enum : uint { ETO_NUMERICSLATIN = 0x0800 }                                       |   883  ETO_NUMERICSLATIN  = 0x0800,
  156  enum : uint { ETO_IGNORELANGUAGE = 0x1000 }                                      |   884  ETO_IGNORELANGUAGE = 0x1000;
  157  // #endif /* WINVER >= 0x0400 */                                                 <
                                                                                        >   885  static
                                                                                        >   886  
  158  // #if (_WIN32_WINNT >= 0x0500)                                                  |   887  if (_WIN32_WINNT >= 0x0500)
                                                                                        >   888  {
                                                                                        >   889      const UINT
  159  enum : uint { ETO_PDY = 0x2000 }                                                 |   890      ETO_PDY = 0x2000;
  160  // #endif // (_WIN32_WINNT >= 0x0500)                                            <
  161                                                                                   |   891  }
  162  enum : uint { ASPECT_FILTERING = 0x0001 }                                        <
  163                                                                                   |   892  
                                                                                        >   893  // GdiComment()
                                                                                        >   894  enum {
                                                                                        >   895      GDICOMMENT_BEGINGROUP       = 0x00000002,
                                                                                        >   896      GDICOMMENT_ENDGROUP         = 0x00000003,
                                                                                        >   897      GDICOMMENT_UNICODE_STRING   = 0x00000040,
                                                                                        >   898      GDICOMMENT_UNICODE_END      = 0x00000080,
                                                                                        >   899      GDICOMMENT_MULTIFORMATS     = 0x40000004,
                                                                                        >   900      GDICOMMENT_IDENTIFIER       = 0x43494447,
                                                                                        >   901      GDICOMMENT_WINDOWS_METAFILE = 0x80000001,
                                                                                        >   902  }
                                                                                        >   903  
                                                                                        >   904  // Get/SetArcDirection()
                                                                                        >   905  enum : int {
                                                                                        >   906      AD_COUNTERCLOCKWISE = 1,
                                                                                        >   907      AD_CLOCKWISE        = 2
                                                                                        >   908  }
                                                                                        >   909  
                                                                                        >   910  const RDH_RECTANGLES = 1;
                                                                                        >   911  
                                                                                        >   912  // GCPRESULTS.lpClass
                                                                                        >   913  enum {
                                                                                        >   914      GCPCLASS_LATIN  = 1,
                                                                                        >   915      GCPCLASS_HEBREW = 2,
                                                                                        >   916      GCPCLASS_ARABIC = 2,
                                                                                        >   917      GCPCLASS_NEUTRAL,
                                                                                        >   918      GCPCLASS_LOCALNUMBER,
                                                                                        >   919      GCPCLASS_LATINNUMBER,
                                                                                        >   920      GCPCLASS_LATINNUMERICTERMINATOR,
                                                                                        >   921      GCPCLASS_LATINNUMERICSEPARATOR,
                                                                                        >   922      GCPCLASS_NUMERICSEPARATOR,     // = 8,
                                                                                        >   923      GCPCLASS_POSTBOUNDRTL = 16,
                                                                                        >   924      GCPCLASS_POSTBOUNDLTR = 32,
                                                                                        >   925      GCPCLASS_PREBOUNDRTL  = 64,
                                                                                        >   926      GCPCLASS_PREBOUNDLTR  = 128,
                                                                                        >   927      GCPGLYPH_LINKAFTER    = 0x4000,
                                                                                        >   928      GCPGLYPH_LINKBEFORE   = 0x8000
                                                                                        >   929  }
                                                                                        >   930  
                                                                                        >   931  // GetBoundsRect(), SetBoundsRect()
                                                                                        >   932  const UINT
  164  enum : uint { DCB_RESET = 0x0001 }                                               |   933  DCB_RESET      = 1,
  165  enum : uint { DCB_ACCUMULATE = 0x0002 }                                          <
  166  alias DCB_ACCUMULATE DCB_DIRTY;                                                  |   934  DCB_ACCUMULATE = 2,
  167  enum : uint { DCB_SET = DCB_RESET | DCB_ACCUMULATE }                             |   935  DCB_SET        = DCB_RESET | DCB_ACCUMULATE,
  168  enum : uint { DCB_ENABLE = 0x0004 }                                              |   936  DCB_ENABLE     = 4,
  169  enum : uint { DCB_DISABLE = 0x0008 }                                             |   937  DCB_DISABLE    = 8,
                                                                                        >   938  DCB_DIRTY      = DCB_ACCUMULATE;
  170                                                                                   |   939  
                                                                                        >   940  // ---
                                                                                        >   941  // GetObjectType()
                                                                                        >   942  enum : DWORD {
                                                                                        >   943      OBJ_PEN = 1,
                                                                                        >   944      OBJ_BRUSH,
                                                                                        >   945      OBJ_DC,
                                                                                        >   946      OBJ_METADC,
                                                                                        >   947      OBJ_PAL,
                                                                                        >   948      OBJ_FONT,
                                                                                        >   949      OBJ_BITMAP,
                                                                                        >   950      OBJ_REGION,
                                                                                        >   951      OBJ_METAFILE,
                                                                                        >   952      OBJ_MEMDC,
                                                                                        >   953      OBJ_EXTPEN,
                                                                                        >   954      OBJ_ENHMETADC,
                                                                                        >   955      OBJ_ENHMETAFILE,
                                                                                        >   956      OBJ_COLORSPACE,
                                                                                        >   957  }
                                                                                        >   958  
                                                                                        >   959  // ---------------------
                                                                                        >   960  // Capabilities for GetDeviceCaps(dc, xxx)
                                                                                        >   961  
                                                                                        >   962  enum : int {
                                                                                        >   963      DRIVERVERSION   = 0,
                                                                                        >   964      TECHNOLOGY      = 2,
                                                                                        >   965      HORZSIZE        = 4,
                                                                                        >   966      VERTSIZE        = 6,
                                                                                        >   967      HORZRES         = 8,
                                                                                        >   968      VERTRES         = 10,
                                                                                        >   969      BITSPIXEL       = 12,
                                                                                        >   970      PLANES          = 14,
                                                                                        >   971      NUMBRUSHES      = 16,
                                                                                        >   972      NUMPENS         = 18,
                                                                                        >   973      NUMMARKERS      = 20,
                                                                                        >   974      NUMFONTS        = 22,
                                                                                        >   975      NUMCOLORS       = 24,
                                                                                        >   976      PDEVICESIZE     = 26,
                                                                                        >   977      CURVECAPS       = 28,
                                                                                        >   978      LINECAPS        = 30,
                                                                                        >   979      POLYGONALCAPS   = 32,
                                                                                        >   980      TEXTCAPS        = 34,
                                                                                        >   981      CLIPCAPS        = 36,
                                                                                        >   982      RASTERCAPS      = 38,
                                                                                        >   983      ASPECTX         = 40,
                                                                                        >   984      ASPECTY         = 42,
                                                                                        >   985      ASPECTXY        = 44,
                                                                                        >   986      LOGPIXELSX      = 88,
                                                                                        >   987      LOGPIXELSY      = 90,
                                                                                        >   988      SIZEPALETTE     = 104,
                                                                                        >   989      NUMRESERVED     = 106,
                                                                                        >   990      COLORRES        = 108,
                                                                                        >   991      PHYSICALWIDTH   = 110,
                                                                                        >   992      PHYSICALHEIGHT  = 111,
                                                                                        >   993      PHYSICALOFFSETX = 112,
                                                                                        >   994      PHYSICALOFFSETY = 113,
                                                                                        >   995      SCALINGFACTORX  = 114,
                                                                                        >   996      SCALINGFACTORY  = 115,
                                                                                        >   997      VREFRESH        = 116,
                                                                                        >   998      DESKTOPVERTRES  = 117,
                                                                                        >   999      DESKTOPHORZRES  = 118,
                                                                                        >  1000      BLTALIGNMENT    = 119
                                                                                        >  1001  }
                                                                                        >  1002  static
                                                                                        >  1003  
                                                                                        >  1004  if (WINVER >= 0x0500)
                                                                                        >  1005  {
                                                                                        >  1006      int
                                                                                        >  1007      SHADEBLENDCAPS = 120,
                                                                                        >  1008      COLORMGMTCAPS  = 121;
                                                                                        >  1009  }
                                                                                        >  1010  
                                                                                        >  1011  // Return values for GetDeviceCaps(dc, TECHNOLOGY)
                                                                                        >  1012  enum : int {
                                                                                        >  1013      DT_PLOTTER = 0,
                                                                                        >  1014      DT_RASDISPLAY,
                                                                                        >  1015      DT_RASPRINTER,
                                                                                        >  1016      DT_RASCAMERA,
                                                                                        >  1017      DT_CHARSTREAM,
  171  // #ifndef NOMETAFILE                                                            |  1018      DT_METAFILE,
                                                                                        >  1019      DT_DISPFILE     // = 6
  172                                                                                   |  1020  }
  173  enum : uint { META_SETBKCOLOR = 0x0201 }                                         <
  174  enum : uint { META_SETBKMODE = 0x0102 }                                          <
  175  enum : uint { META_SETMAPMODE = 0x0103 }                                         <
  176  enum : uint { META_SETROP2 = 0x0104 }                                            <
  177  enum : uint { META_SETRELABS = 0x0105 }                                          <
  178  enum : uint { META_SETPOLYFILLMODE = 0x0106 }                                    <
  179  enum : uint { META_SETSTRETCHBLTMODE = 0x0107 }                                  <
  180  enum : uint { META_SETTEXTCHAREXTRA = 0x0108 }                                   <
  181  enum : uint { META_SETTEXTCOLOR = 0x0209 }                                       <
  182  enum : uint { META_SETTEXTJUSTIFICATION = 0x020A }                               <
  183  enum : uint { META_SETWINDOWORG = 0x020B }                                       <
  184  enum : uint { META_SETWINDOWEXT = 0x020C }                                       <
  185  enum : uint { META_SETVIEWPORTORG = 0x020D }                                     <
  186  enum : uint { META_SETVIEWPORTEXT = 0x020E }                                     <
  187  enum : uint { META_OFFSETWINDOWORG = 0x020F }                                    <
  188  enum : uint { META_SCALEWINDOWEXT = 0x0410 }                                     <
  189  enum : uint { META_OFFSETVIEWPORTORG = 0x0211 }                                  <
  190  enum : uint { META_SCALEVIEWPORTEXT = 0x0412 }                                   <
  191  enum : uint { META_LINETO = 0x0213 }                                             <
  192  enum : uint { META_MOVETO = 0x0214 }                                             <
  193  enum : uint { META_EXCLUDECLIPRECT = 0x0415 }                                    <
  194  enum : uint { META_INTERSECTCLIPRECT = 0x0416 }                                  <
  195  enum : uint { META_ARC = 0x0817 }                                                <
  196  enum : uint { META_ELLIPSE = 0x0418 }                                            <
                                                                                        >  1021  
                                                                                        >  1022  // Return values for GetDeviceCaps(dc, RASTERCAPS)
                                                                                        >  1023  const int
                                                                                        >  1024  RC_NONE         = 0,
                                                                                        >  1025  RC_BITBLT       = 1,
                                                                                        >  1026  RC_BANDING      = 2,
                                                                                        >  1027  RC_SCALING      = 4,
                                                                                        >  1028  RC_BITMAP64     = 8,
                                                                                        >  1029  RC_GDI20_OUTPUT = 16,
                                                                                        >  1030  RC_GDI20_STATE  = 32,
                                                                                        >  1031  RC_SAVEBITMAP   = 64,
                                                                                        >  1032  RC_DI_BITMAP    = 128,
                                                                                        >  1033  RC_PALETTE      = 256,
                                                                                        >  1034  RC_DIBTODEV     = 512,
                                                                                        >  1035  RC_BIGFONT      = 1024,
                                                                                        >  1036  RC_STRETCHBLT   = 2048,
  197  enum : uint { META_FLOODFILL = 0x0419 }                                          |  1037  RC_FLOODFILL    = 4096,
  198  enum : uint { META_PIE = 0x081A }                                                <
  199  enum : uint { META_RECTANGLE = 0x041B }                                          <
                                                                                        >  1038  RC_STRETCHDIB   = 8192,
                                                                                        >  1039  RC_OP_DX_OUTPUT = 0x4000,
                                                                                        >  1040  RC_DEVBITS      = 0x8000;
                                                                                        >  1041  
                                                                                        >  1042  static
                                                                                        >  1043  
                                                                                        >  1044  if (WINVER >= 0x0500)
                                                                                        >  1045  {
                                                                                        >  1046      /* Shading and blending caps */
                                                                                        >  1047      const SB_NONE          = 0x00000000;
                                                                                        >  1048      const SB_CONST_ALPHA   = 0x00000001;
                                                                                        >  1049      const SB_PIXEL_ALPHA   = 0x00000002;
                                                                                        >  1050      const SB_PREMULT_ALPHA = 0x00000004;
                                                                                        >  1051      const SB_GRAD_RECT     = 0x00000010;
                                                                                        >  1052      const SB_GRAD_TRI      = 0x00000020;
                                                                                        >  1053  
                                                                                        >  1054      /* Color Management caps */
                                                                                        >  1055      const CM_NONE       = 0x00000000;
                                                                                        >  1056      const CM_DEVICE_ICM = 0x00000001;
                                                                                        >  1057      const CM_GAMMA_RAMP = 0x00000002;
                                                                                        >  1058      const CM_CMYK_COLOR = 0x00000004;
                                                                                        >  1059  }
                                                                                        >  1060  
                                                                                        >  1061  // Return values for GetDeviceCaps(dc, CURVECAPS)
                                                                                        >  1062  const int
                                                                                        >  1063  CC_NONE       = 0,
                                                                                        >  1064  CC_CIRCLES    = 1,
                                                                                        >  1065  CC_PIE        = 2,
                                                                                        >  1066  CC_CHORD      = 4,
                                                                                        >  1067  CC_ELLIPSES   = 8,
                                                                                        >  1068  CC_WIDE       = 16,
                                                                                        >  1069  CC_STYLED     = 32,
                                                                                        >  1070  CC_WIDESTYLED = 64,
                                                                                        >  1071  CC_INTERIORS  = 128,
  200  enum : uint { META_ROUNDRECT = 0x061C }                                          |  1072  CC_ROUNDRECT  = 256;
  201  enum : uint { META_PATBLT = 0x061D }                                             <
  202  enum : uint { META_SAVEDC = 0x001E }                                             <
  203  enum : uint { META_SETPIXEL = 0x041F }                                           <
  204  enum : uint { META_OFFSETCLIPRGN = 0x0220 }                                      <
  205  enum : uint { META_TEXTOUT = 0x0521 }                                            <
  206  enum : uint { META_BITBLT = 0x0922 }                                             <
  207  enum : uint { META_STRETCHBLT = 0x0B23 }                                         <
  208  enum : uint { META_POLYGON = 0x0324 }                                            <
                                                                                        >  1073  
                                                                                        >  1074  // Return values for GetDeviceCaps(dc, LINECAPS)
                                                                                        >  1075  
                                                                                        >  1076  const int
                                                                                        >  1077  LC_NONE       = 0,
  209  enum : uint { META_POLYLINE = 0x0325 }                                           |  1078  LC_POLYLINE   = 2,
  210  enum : uint { META_ESCAPE = 0x0626 }                                             <
  211  enum : uint { META_RESTOREDC = 0x0127 }                                          <
  212  enum : uint { META_FILLREGION = 0x0228 }                                         <
  213  enum : uint { META_FRAMEREGION = 0x0429 }                                        <
  214  enum : uint { META_INVERTREGION = 0x012A }                                       <
  215  enum : uint { META_PAINTREGION = 0x012B }                                        <
  216  enum : uint { META_SELECTCLIPREGION = 0x012C }                                   <
  217  enum : uint { META_SELECTOBJECT = 0x012D }                                       <
  218  enum : uint { META_SETTEXTALIGN = 0x012E }                                       <
  219  enum : uint { META_CHORD = 0x0830 }                                              <
  220  enum : uint { META_SETMAPPERFLAGS = 0x0231 }                                     <
  221  enum : uint { META_EXTTEXTOUT = 0x0a32 }                                         <
  222  enum : uint { META_SETDIBTODEV = 0x0d33 }                                        <
  223  enum : uint { META_SELECTPALETTE = 0x0234 }                                      <
  224  enum : uint { META_REALIZEPALETTE = 0x0035 }                                     <
  225  enum : uint { META_ANIMATEPALETTE = 0x0436 }                                     <
  226  enum : uint { META_SETPALENTRIES = 0x0037 }                                      <
                                                                                        >  1079  LC_MARKER     = 4,
                                                                                        >  1080  LC_POLYMARKER = 8,
                                                                                        >  1081  LC_WIDE       = 16,
                                                                                        >  1082  LC_STYLED     = 32,
                                                                                        >  1083  LC_WIDESTYLED = 64,
                                                                                        >  1084  LC_INTERIORS  = 128;
                                                                                        >  1085  
                                                                                        >  1086  // Return values for GetDeviceCaps(dc, POLYGONALCAPS)
                                                                                        >  1087  
                                                                                        >  1088  const int
                                                                                        >  1089  PC_NONE        = 0,
                                                                                        >  1090  PC_POLYGON     = 1,
                                                                                        >  1091  PC_RECTANGLE   = 2,
                                                                                        >  1092  PC_WINDPOLYGON = 4,
                                                                                        >  1093  PC_TRAPEZOID   = 4,
                                                                                        >  1094  PC_SCANLINE    = 8,
                                                                                        >  1095  PC_WIDE        = 16,
                                                                                        >  1096  PC_STYLED      = 32,
                                                                                        >  1097  PC_WIDESTYLED  = 64,
                                                                                        >  1098  PC_INTERIORS   = 128,
  227  enum : uint { META_POLYPOLYGON = 0x0538 }                                        |  1099  PC_POLYPOLYGON = 256,
  228  enum : uint { META_RESIZEPALETTE = 0x0139 }                                      <
  229  enum : uint { META_DIBBITBLT = 0x0940 }                                          <
  230  enum : uint { META_DIBSTRETCHBLT = 0x0b41 }                                      <
  231  enum : uint { META_DIBCREATEPATTERNBRUSH = 0x0142 }                              <
  232  enum : uint { META_STRETCHDIB = 0x0f43 }                                         <
  233  enum : uint { META_EXTFLOODFILL = 0x0548 }                                       <
                                                                                        >  1100  PC_PATHS       = 512;
                                                                                        >  1101  
                                                                                        >  1102  /* Clipping Capabilities */
                                                                                        >  1103  const int CP_NONE      = 0,
                                                                                        >  1104            CP_RECTANGLE = 1,
                                                                                        >  1105            CP_REGION    = 2;
                                                                                        >  1106  
                                                                                        >  1107  // Return values for GetDeviceCaps(dc, TEXTCAPS)
                                                                                        >  1108  
                                                                                        >  1109  const int
                                                                                        >  1110  TC_OP_CHARACTER = 1,
                                                                                        >  1111  TC_OP_STROKE    = 2,
                                                                                        >  1112  TC_CP_STROKE    = 4,
                                                                                        >  1113  TC_CR_90        = 8,
                                                                                        >  1114  TC_CR_ANY       = 16,
                                                                                        >  1115  TC_SF_X_YINDEP  = 32,
                                                                                        >  1116  TC_SA_DOUBLE    = 64,
                                                                                        >  1117  TC_SA_INTEGER   = 128,
                                                                                        >  1118  TC_SA_CONTIN    = 256,
                                                                                        >  1119  TC_EA_DOUBLE    = 512,
                                                                                        >  1120  TC_IA_ABLE      = 1024,
                                                                                        >  1121  TC_UA_ABLE      = 2048,
                                                                                        >  1122  TC_SO_ABLE      = 4096,
                                                                                        >  1123  TC_RA_ABLE      = 8192,
                                                                                        >  1124  TC_VA_ABLE      = 16384,
                                                                                        >  1125  TC_RESERVED     = 32768,
                                                                                        >  1126  TC_SCROLLBLT    = 65536;
                                                                                        >  1127  
                                                                                        >  1128  // End GetDeviceCaps
                                                                                        >  1129  // ---------------------
                                                                                        >  1130  // GetCharacterPlacement(), and GetFontLanguageInfo()
                                                                                        >  1131  const DWORD
                                                                                        >  1132  GCP_DBCS = 1,
                                                                                        >  1133  GCP_REORDER         = 2,
                                                                                        >  1134  GCP_USEKERNING      = 8,
                                                                                        >  1135  GCP_GLYPHSHAPE      = 16,
                                                                                        >  1136  GCP_LIGATE          = 32,
                                                                                        >  1137  GCP_DIACRITIC       = 256,
                                                                                        >  1138  GCP_KASHIDA         = 1024,
                                                                                        >  1139  GCP_ERROR           = 0x8000,
                                                                                        >  1140  GCP_JUSTIFY         = 0x10000,
                                                                                        >  1141  GCP_CLASSIN         = 0x80000,
                                                                                        >  1142  GCP_MAXEXTENT       = 0x100000,
                                                                                        >  1143  GCP_JUSTIFYIN       = 0x200000,
                                                                                        >  1144  GCP_DISPLAYZWG      = 0x400000,
                                                                                        >  1145  GCP_SYMSWAPOFF      = 0x800000,
                                                                                        >  1146  GCP_NUMERICOVERRIDE = 0x1000000,
                                                                                        >  1147  GCP_NEUTRALOVERRIDE = 0x2000000,
                                                                                        >  1148  GCP_NUMERICSLATIN   = 0x4000000,
                                                                                        >  1149  GCP_NUMERICSLOCAL   = 0x8000000,
                                                                                        >  1150  
                                                                                        >  1151  // Only for GetFontLanguageInfo()
                                                                                        >  1152  FLI_GLYPHS = 0x40000,
                                                                                        >  1153  FLI_MASK = 0x103b;
                                                                                        >  1154  
                                                                                        >  1155  // GetGlyphOutline()
                                                                                        >  1156  enum : UINT {
                                                                                        >  1157      GGO_METRICS      = 0,
                                                                                        >  1158      GGO_BITMAP       = 1,
                                                                                        >  1159      GGO_NATIVE       = 2,
                                                                                        >  1160      GGO_BEZIER       = 3,
                                                                                        >  1161      GGO_GRAY2_BITMAP = 4,
                                                                                        >  1162      GGO_GRAY4_BITMAP = 5,
                                                                                        >  1163      GGO_GRAY8_BITMAP = 6,
                                                                                        >  1164      GGO_GLYPH_INDEX  = 128,
                                                                                        >  1165      GGO_UNHINTED     = 256
                                                                                        >  1166  }
                                                                                        >  1167  
                                                                                        >  1168  enum : int {
                                                                                        >  1169      GM_COMPATIBLE = 1,
                                                                                        >  1170      GM_ADVANCED
                                                                                        >  1171  }
                                                                                        >  1172  const GM_LAST = GM_ADVANCED;
                                                                                        >  1173  
                                                                                        >  1174  enum : int {
                                                                                        >  1175      MM_TEXT = 1,
                                                                                        >  1176      MM_LOMETRIC,
                                                                                        >  1177      MM_HIMETRIC,
                                                                                        >  1178      MM_LOENGLISH,
                                                                                        >  1179      MM_HIENGLISH,
                                                                                        >  1180      MM_TWIPS,
                                                                                        >  1181      MM_ISOTROPIC,
                                                                                        >  1182      MM_ANISOTROPIC,
                                                                                        >  1183  }
                                                                                        >  1184  
                                                                                        >  1185  const int
                                                                                        >  1186  MM_MIN = MM_TEXT,
                                                                                        >  1187  MM_MAX = MM_ANISOTROPIC,
                                                                                        >  1188  MM_MAX_FIXEDSCALE = MM_TWIPS;
                                                                                        >  1189  
                                                                                        >  1190  const ABSOLUTE = 1;
                                                                                        >  1191  const RELATIVE = 2;
                                                                                        >  1192  
                                                                                        >  1193  enum : BYTE {
                                                                                        >  1194      PC_RESERVED   = 1,
                                                                                        >  1195      PC_EXPLICIT   = 2,
                                                                                        >  1196      PC_NOCOLLAPSE = 4
                                                                                        >  1197  }
                                                                                        >  1198  
                                                                                        >  1199  /* FIXME: move to win32.commctrl ? */
                                                                                        >  1200  
                                                                                        >  1201  // ImageList
                                                                                        >  1202  const COLORREF
                                                                                        >  1203  CLR_NONE    = 0xffffffff,
                                                                                        >  1204  CLR_INVALID = CLR_NONE,
                                                                                        >  1205  CLR_DEFAULT = 0xff000000;
                                                                                        >  1206  
                                                                                        >  1207  // RASTERIZER_STATUS.wFlags
                                                                                        >  1208  const short
                                                                                        >  1209  TT_AVAILABLE = 1,
                                                                                        >  1210  TT_ENABLED   = 2;
                                                                                        >  1211  
                                                                                        >  1212  // GetStockObject()
                                                                                        >  1213  enum : int {
                                                                                        >  1214      WHITE_BRUSH = 0,
                                                                                        >  1215      LTGRAY_BRUSH,
                                                                                        >  1216      GRAY_BRUSH,
                                                                                        >  1217      DKGRAY_BRUSH,
                                                                                        >  1218      BLACK_BRUSH,
                                                                                        >  1219      HOLLOW_BRUSH,     // = 5
                                                                                        >  1220      NULL_BRUSH = HOLLOW_BRUSH,
                                                                                        >  1221      WHITE_PEN  = 6,
                                                                                        >  1222      BLACK_PEN,
                                                                                        >  1223      NULL_PEN,     // = 8
                                                                                        >  1224      OEM_FIXED_FONT = 10,
                                                                                        >  1225      ANSI_FIXED_FONT,
                                                                                        >  1226      ANSI_VAR_FONT,
                                                                                        >  1227      SYSTEM_FONT,
                                                                                        >  1228      DEVICE_DEFAULT_FONT,
                                                                                        >  1229      DEFAULT_PALETTE,
                                                                                        >  1230      SYSTEM_FIXED_FONT,
                                                                                        >  1231  }
                                                                                        >  1232  static
                                                                                        >  1233  
  234  // #if(WINVER >= 0x0500)                                                         |  1234  if (WINVER >= 0x0400)
  235  enum : uint { META_SETLAYOUT = 0x0149 }                                          <
                                                                                        >  1235  {
                                                                                        >  1236      enum : int {
                                                                                        >  1237          DEFAULT_GUI_FONT = SYSTEM_FIXED_FONT + 1,
                                                                                        >  1238      }
                                                                                        >  1239  }
                                                                                        >  1240  
                                                                                        >  1241  static
                                                                                        >  1242  
  236  // #endif /* WINVER >= 0x0500 */                                                 |  1243  if (_WIN32_WINNT >= 0x0500)
  237  enum : uint { META_DELETEOBJECT = 0x01f0 }                                       <
  238  enum : uint { META_CREATEPALETTE = 0x00f7 }                                      <
  239  enum : uint { META_CREATEPATTERNBRUSH = 0x01F9 }                                 <
  240  enum : uint { META_CREATEPENINDIRECT = 0x02FA }                                  <
  241  enum : uint { META_CREATEFONTINDIRECT = 0x02FB }                                 <
  242  enum : uint { META_CREATEBRUSHINDIRECT = 0x02FC }                                <
  243  enum : uint { META_CREATEREGION = 0x06FF }                                       <
  244                                                                                   |  1244  {
                                                                                        >  1245      enum : int {
                                                                                        >  1246          DC_BRUSH = DEFAULT_GUI_FONT + 1,
                                                                                        >  1247          DC_PEN,
                                                                                        >  1248      }
                                                                                        >  1249  }
                                                                                        >  1250  
                                                                                        >  1251  static
                                                                                        >  1252  
                                                                                        >  1253  if (_WIN32_WINNT >= 0x0500)
                                                                                        >  1254  {
                                                                                        >  1255      const STOCK_LAST = DC_PEN;
                                                                                        >  1256  }
                                                                                        >  1257  else static
                                                                                        >  1258  
  245  // #if(WINVER >= 0x0400)                                                         |  1259      if (WINVER >= 0x0400)
  246  struct _DRAWPATRECT {                                                            <
  247    POINT ptPosition;                                                              <
  248    POINT ptSize;                                                                  <
                                                                                        >  1260      {
                                                                                        >  1261          const STOCK_LAST = DEFAULT_GUI_FONT;
                                                                                        >  1262      }
                                                                                        >  1263      else
                                                                                        >  1264      {
                                                                                        >  1265          const STOCK_LAST = SYSTEM_FIXED_FONT;
                                                                                        >  1266      }
                                                                                        >  1267  
                                                                                        >  1268  // Get/SetSystemPaletteUse()
                                                                                        >  1269  enum : UINT {
                                                                                        >  1270      SYSPAL_ERROR       = 0,
                                                                                        >  1271      SYSPAL_STATIC      = 1,
                                                                                        >  1272      SYSPAL_NOSTATIC    = 2,
                                                                                        >  1273      SYSPAL_NOSTATIC256 = 3,
                                                                                        >  1274  }
                                                                                        >  1275  
                                                                                        >  1276  // SetTextAlign()
                                                                                        >  1277  const UINT
                                                                                        >  1278  TA_TOP        = 0,
                                                                                        >  1279  TA_CENTER     = 6,
                                                                                        >  1280  TA_BOTTOM     = 8,
                                                                                        >  1281  TA_BASELINE   = 24,
                                                                                        >  1282  TA_LEFT       = 0,
                                                                                        >  1283  TA_RIGHT      = 2,
                                                                                        >  1284  TA_RTLREADING = 256,
                                                                                        >  1285  TA_NOUPDATECP = 0,
                                                                                        >  1286  TA_UPDATECP   = 1,
                                                                                        >  1287  TA_MASK       = TA_BASELINE + TA_CENTER + TA_UPDATECP + TA_RTLREADING,
                                                                                        >  1288  VTA_BASELINE  = TA_BASELINE,
                                                                                        >  1289  VTA_CENTER    = TA_CENTER,
                                                                                        >  1290  VTA_LEFT      = TA_BOTTOM,
                                                                                        >  1291  VTA_RIGHT     = TA_TOP,
                                                                                        >  1292  VTA_BOTTOM    = TA_RIGHT,
                                                                                        >  1293  VTA_TOP       = TA_LEFT;
                                                                                        >  1294  
                                                                                        >  1295  // EMRMODIFYWORLDTRANSFORM.iMode
  249    WORD wStyle;                                                                   |  1296  enum : DWORD {
                                                                                        >  1297      MWT_IDENTITY = 1,
                                                                                        >  1298      MWT_LEFTMULTIPLY,
                                                                                        >  1299      MWT_RIGHTMULTIPLY
                                                                                        >  1300  }
                                                                                        >  1301  
                                                                                        >  1302  const DWORD
                                                                                        >  1303  MWT_MIN = MWT_IDENTITY,
                                                                                        >  1304  MWT_MAX = MWT_RIGHTMULTIPLY;
                                                                                        >  1305  
                                                                                        >  1306  enum {
                                                                                        >  1307      TRANSPARENT = 1,
                                                                                        >  1308      OPAQUE      = 2
                                                                                        >  1309  }
                                                                                        >  1310  
                                                                                        >  1311  // Get/SetStretchMode()
                                                                                        >  1312  enum : int {
                                                                                        >  1313      BLACKONWHITE = 1,
                                                                                        >  1314      WHITEONBLACK = 2,
                                                                                        >  1315      COLORONCOLOR = 3,
                                                                                        >  1316      HALFTONE     = 4,
                                                                                        >  1317  
                                                                                        >  1318      STRETCH_ANDSCANS    = 1,
                                                                                        >  1319      STRETCH_ORSCANS     = 2,
                                                                                        >  1320      STRETCH_DELETESCANS = 3,
                                                                                        >  1321      STRETCH_HALFTONE    = 4,
                                                                                        >  1322  
                                                                                        >  1323      MAXSTRETCHBLTMODE = 4
                                                                                        >  1324  }
                                                                                        >  1325  
                                                                                        >  1326  // TranslateCharsetInfo()
  250    WORD wPattern;                                                                 |  1327  enum : DWORD {
                                                                                        >  1328      TCI_SRCCHARSET  = 1,
                                                                                        >  1329      TCI_SRCCODEPAGE = 2,
                                                                                        >  1330      TCI_SRCFONTSIG  = 3,
                                                                                        >  1331      TCI_SRCLOCALE   = 0x1000,
  251  }                                                                                |  1332  }
  252  alias _DRAWPATRECT DRAWPATRECT;                                                  <
  253  alias _DRAWPATRECT* PDRAWPATRECT;                                                <
  254                                                                                   |  1333  
  255  // #endif /* WINVER >= 0x0400 */                                                 <
                                                                                        >  1334  // SetICMMode()
                                                                                        >  1335  enum : int {
                                                                                        >  1336      ICM_OFF   = 1,
                                                                                        >  1337      ICM_ON    = 2,
                                                                                        >  1338      ICM_QUERY = 3,
                                                                                        >  1339      ICM_DONE_OUTSIDEDC = 4,
  256                                                                                   |  1340  }
  257  // #endif /* NOMETAFILE */                                                       <
  258                                                                                   |  1341  
                                                                                        >  1342  // ----
                                                                                        >  1343  // Escape() Spooler Error Codes
  259  enum : uint { NEWFRAME = 1 }                                                     |  1344  enum : int {
                                                                                        >  1345      SP_NOTREPORTED = 0x4000,
                                                                                        >  1346      SP_ERROR       = -1,
                                                                                        >  1347      SP_APPABORT    = -2,
                                                                                        >  1348      SP_USERABORT   = -3,
                                                                                        >  1349      SP_OUTOFDISK   = -4,
                                                                                        >  1350      SP_OUTOFMEMORY = -5
                                                                                        >  1351  }
                                                                                        >  1352  
                                                                                        >  1353  // Escape(), ExtEscape()
                                                                                        >  1354  // Most of the following are deprecated (Win16 only)
  260  enum : uint { ABORTDOC = 2 }                                                     |  1355  enum : int {
  261  enum : uint { NEXTBAND = 3 }                                                     <
                                                                                        >  1356      NEWFRAME                = 1,
                                                                                        >  1357      ABORTDOC                = 2,
                                                                                        >  1358      NEXTBAND                = 3,
  262  enum : uint { SETCOLORTABLE = 4 }                                                |  1359      SETCOLORTABLE           = 4,
  263  enum : uint { GETCOLORTABLE = 5 }                                                |  1360      GETCOLORTABLE           = 5,
  264  enum : uint { FLUSHOUTPUT = 6 }                                                  |  1361      FLUSHOUTPUT             = 6,
  265  enum : uint { DRAFTMODE = 7 }                                                    |  1362      DRAFTMODE               = 7,
  266  enum : uint { QUERYESCSUPPORT = 8 }                                              |  1363      QUERYESCSUPPORT         = 8,
  267  enum : uint { SETABORTPROC = 9 }                                                 |  1364      SETABORTPROC            = 9,
  268  enum : uint { STARTDOC = 10 }                                                    <
  269  enum : uint { ENDDOC = 11 }                                                      <
                                                                                        >  1365      STARTDOC                = 10,
                                                                                        >  1366      ENDDOC                  = 11,
  270  enum : uint { GETPHYSPAGESIZE = 12 }                                             |  1367      GETPHYSPAGESIZE         = 12,
  271  enum : uint { GETPRINTINGOFFSET = 13 }                                           |  1368      GETPRINTINGOFFSET       = 13,
  272  enum : uint { GETSCALINGFACTOR = 14 }                                            |  1369      GETSCALINGFACTOR        = 14,
  273  enum : uint { MFCOMMENT = 15 }                                                   |  1370      MFCOMMENT               = 15,
  274  enum : uint { GETPENWIDTH = 16 }                                                 |  1371      GETPENWIDTH             = 16,
  275  enum : uint { SETCOPYCOUNT = 17 }                                                |  1372      SETCOPYCOUNT            = 17,
  276  enum : uint { SELECTPAPERSOURCE = 18 }                                           |  1373      SELECTPAPERSOURCE       = 18,
  277  enum : uint { DEVICEDATA = 19 }                                                  |  1374      DEVICEDATA              = 19,
  278  enum : uint { PASSTHROUGH = 19 }                                                 |  1375      PASSTHROUGH             = 19,
  279  enum : uint { GETTECHNOLGY = 20 }                                                <
  280  enum : uint { GETTECHNOLOGY = 20 }                                               |  1376      GETTECHNOLOGY           = 20,
  281  enum : uint { SETLINECAP = 21 }                                                  |  1377      SETLINECAP              = 21,
  282  enum : uint { SETLINEJOIN = 22 }                                                 |  1378      SETLINEJOIN             = 22,
  283  enum : uint { SETMITERLIMIT = 23 }                                               |  1379      SETMITERLIMIT           = 23,
  284  enum : uint { BANDINFO = 24 }                                                    <
                                                                                        >  1380      BANDINFO                = 24,
  285  enum : uint { DRAWPATTERNRECT = 25 }                                             |  1381      DRAWPATTERNRECT         = 25,
  286  enum : uint { GETVECTORPENSIZE = 26 }                                            |  1382      GETVECTORPENSIZE        = 26,
  287  enum : uint { GETVECTORBRUSHSIZE = 27 }                                          |  1383      GETVECTORBRUSHSIZE      = 27,
  288  enum : uint { ENABLEDUPLEX = 28 }                                                |  1384      ENABLEDUPLEX            = 28,
  289  enum : uint { GETSETPAPERBINS = 29 }                                             |  1385      GETSETPAPERBINS         = 29,
  290  enum : uint { GETSETPRINTORIENT = 30 }                                           |  1386      GETSETPRINTORIENT       = 30,
  291  enum : uint { ENUMPAPERBINS = 31 }                                               |  1387      ENUMPAPERBINS           = 31,
  292  enum : uint { SETDIBSCALING = 32 }                                               |  1388      SETDIBSCALING           = 32,
  293  enum : uint { EPSPRINTING = 33 }                                                 |  1389      EPSPRINTING             = 33,
  294  enum : uint { ENUMPAPERMETRICS = 34 }                                            |  1390      ENUMPAPERMETRICS        = 34,
  295  enum : uint { GETSETPAPERMETRICS = 35 }                                          |  1391      GETSETPAPERMETRICS      = 35,
  296  enum : uint { POSTSCRIPT_DATA = 37 }                                             |  1392      POSTSCRIPT_DATA         = 37,
  297  enum : uint { POSTSCRIPT_IGNORE = 38 }                                           |  1393      POSTSCRIPT_IGNORE       = 38,
  298  enum : uint { MOUSETRAILS = 39 }                                                 |  1394      MOUSETRAILS             = 39,
  299  enum : uint { GETDEVICEUNITS = 42 }                                              |  1395      GETDEVICEUNITS          = 42,
  300                                                                                   <
  301  enum : uint { GETEXTENDEDTEXTMETRICS = 256 }                                     |  1396      GETEXTENDEDTEXTMETRICS  = 256,
  302  enum : uint { GETEXTENTTABLE = 257 }                                             |  1397      GETEXTENTTABLE          = 257,
  303  enum : uint { GETPAIRKERNTABLE = 258 }                                           |  1398      GETPAIRKERNTABLE        = 258,
  304  enum : uint { GETTRACKKERNTABLE = 259 }                                          |  1399      GETTRACKKERNTABLE       = 259,
  305  enum : uint { EXTTEXTOUT = 512 }                                                 |  1400      EXTTEXTOUT              = 512,
  306  enum : uint { GETFACENAME = 513 }                                                |  1401      GETFACENAME             = 513,
  307  enum : uint { DOWNLOADFACE = 514 }                                               |  1402      DOWNLOADFACE            = 514,
  308  enum : uint { ENABLERELATIVEWIDTHS = 768 }                                       |  1403      ENABLERELATIVEWIDTHS    = 768,
  309  enum : uint { ENABLEPAIRKERNING = 769 }                                          |  1404      ENABLEPAIRKERNING       = 769,
  310  enum : uint { SETKERNTRACK = 770 }                                               |  1405      SETKERNTRACK            = 770,
  311  enum : uint { SETALLJUSTVALUES = 771 }                                           |  1406      SETALLJUSTVALUES        = 771,
  312  enum : uint { SETCHARSET = 772 }                                                 |  1407      SETCHARSET              = 772,
  313                                                                                   <
  314  enum : uint { STRETCHBLT = 2048 }                                                |  1408      STRETCHBLT              = 2048,
  315  enum : uint { METAFILE_DRIVER = 2049 }                                           |  1409      METAFILE_DRIVER         = 2049,
  316  enum : uint { GETSETSCREENPARAMS = 3072 }                                        |  1410      GETSETSCREENPARAMS      = 3072,
  317  enum : uint { QUERYDIBSUPPORT = 3073 }                                           |  1411      QUERYDIBSUPPORT         = 3073,
  318  enum : uint { BEGIN_PATH = 4096 }                                                |  1412      BEGIN_PATH              = 4096,
  319  enum : uint { CLIP_TO_PATH = 4097 }                                              |  1413      CLIP_TO_PATH            = 4097,
  320  enum : uint { END_PATH = 4098 }                                                  <
                                                                                        >  1414      END_PATH                = 4098,
  321  enum : uint { EXT_DEVICE_CAPS = 4099 }                                           |  1415      EXT_DEVICE_CAPS         = 4099,
  322  enum : uint { RESTORE_CTM = 4100 }                                               |  1416      RESTORE_CTM             = 4100,
  323  enum : uint { SAVE_CTM = 4101 }                                                  <
                                                                                        >  1417      SAVE_CTM                = 4101,
  324  enum : uint { SET_ARC_DIRECTION = 4102 }                                         |  1418      SET_ARC_DIRECTION       = 4102,
  325  enum : uint { SET_BACKGROUND_COLOR = 4103 }                                      |  1419      SET_BACKGROUND_COLOR    = 4103,
  326  enum : uint { SET_POLY_MODE = 4104 }                                             |  1420      SET_POLY_MODE           = 4104,
  327  enum : uint { SET_SCREEN_ANGLE = 4105 }                                          |  1421      SET_SCREEN_ANGLE        = 4105,
  328  enum : uint { SET_SPREAD = 4106 }                                                |  1422      SET_SPREAD              = 4106,
  329  enum : uint { TRANSFORM_CTM = 4107 }                                             |  1423      TRANSFORM_CTM           = 4107,
  330  enum : uint { SET_CLIP_BOX = 4108 }                                              |  1424      SET_CLIP_BOX            = 4108,
  331  enum : uint { SET_BOUNDS = 4109 }                                                |  1425      SET_BOUNDS              = 4109,
  332  enum : uint { SET_MIRROR_MODE = 4110 }                                           |  1426      SET_MIRROR_MODE         = 4110,
  333  enum : uint { OPENCHANNEL = 4110 }                                               |  1427      OPENCHANNEL             = 4110,
  334  enum : uint { DOWNLOADHEADER = 4111 }                                            |  1428      DOWNLOADHEADER          = 4111,
  335  enum : uint { CLOSECHANNEL = 4112 }                                              |  1429      CLOSECHANNEL            = 4112,
  336  enum : uint { POSTSCRIPT_PASSTHROUGH = 4115 }                                    |  1430      POSTSCRIPT_PASSTHROUGH  = 4115,
  337  enum : uint { ENCAPSULATED_POSTSCRIPT = 4116 }                                   |  1431      ENCAPSULATED_POSTSCRIPT = 4116,
  338                                                                                   <
  339  enum : uint { POSTSCRIPT_IDENTIFY = 4117 }                                       |  1432      POSTSCRIPT_IDENTIFY     = 4117,
  340  enum : uint { POSTSCRIPT_INJECTION = 4118 }                                      |  1433      POSTSCRIPT_INJECTION    = 4118,
  341                                                                                   <
  342  enum : uint { CHECKJPEGFORMAT = 4119 }                                           |  1434      CHECKJPEGFORMAT         = 4119,
  343  enum : uint { CHECKPNGFORMAT = 4120 }                                            |  1435      CHECKPNGFORMAT          = 4120,
  344                                                                                   <
  345  enum : uint { GET_PS_FEATURESETTING = 4121 }                                     |  1436      GET_PS_FEATURESETTING   = 4121,
                                                                                        >  1437      SPCLPASSTHROUGH2        = 4568,
  346                                                                                   |  1438  }
  347  enum : uint { SPCLPASSTHROUGH2 = 4568 }                                          <
  348                                                                                   |  1439  
                                                                                        >  1440  enum : int {
  349  enum : uint { PSIDENT_GDICENTRIC = 0 }                                           |  1441      PSIDENT_GDICENTRIC = 0,
  350  enum : uint { PSIDENT_PSCENTRIC = 1 }                                            |  1442      PSIDENT_PSCENTRIC  = 1,
  351                                                                                   |  1443  }
                                                                                        >  1444  
                                                                                        >  1445  /*
                                                                                        >  1446   * Header structure for the input buffer to POSTSCRIPT_INJECTION escape
                                                                                        >  1447   */
  352  struct _PSINJECTDATA {                                                           |  1448  struct PSINJECTDATA
  353                                                                                   |  1449  {
  354    DWORD DataBytes;                                                               |  1450      DWORD DataBytes;
  355    WORD InjectionPoint;                                                           |  1451      WORD InjectionPoint;
  356    WORD PageNumber;                                                               |  1452      WORD PageNumber;
  357                                                                                   |  1453  }
  358  }                                                                                <
  359  alias _PSINJECTDATA PSINJECTDATA;                                                |  1454  alias PSINJECTDATA*PPSINJECTDATA;
  360  alias _PSINJECTDATA* PPSINJECTDATA;                                              <
  361                                                                                   |  1455  
                                                                                        >  1456  /* Constants for PSINJECTDATA.InjectionPoint field */
                                                                                        >  1457  enum {
  362  enum : uint { PSINJECT_BEGINSTREAM = 1 }                                         |  1458      PSINJECT_BEGINSTREAM           = 1,
  363  enum : uint { PSINJECT_PSADOBE = 2 }                                             |  1459      PSINJECT_PSADOBE               = 2,
  364  enum : uint { PSINJECT_PAGESATEND = 3 }                                          |  1460      PSINJECT_PAGESATEND            = 3,
  365  enum : uint { PSINJECT_PAGES = 4 }                                               |  1461      PSINJECT_PAGES                 = 4,
  366                                                                                   <
  367  enum : uint { PSINJECT_DOCNEEDEDRES = 5 }                                        |  1462      PSINJECT_DOCNEEDEDRES          = 5,
  368  enum : uint { PSINJECT_DOCSUPPLIEDRES = 6 }                                      |  1463      PSINJECT_DOCSUPPLIEDRES        = 6,
  369  enum : uint { PSINJECT_PAGEORDER = 7 }                                           |  1464      PSINJECT_PAGEORDER             = 7,
  370  enum : uint { PSINJECT_ORIENTATION = 8 }                                         |  1465      PSINJECT_ORIENTATION           = 8,
  371  enum : uint { PSINJECT_BOUNDINGBOX = 9 }                                         |  1466      PSINJECT_BOUNDINGBOX           = 9,
  372  enum : uint { PSINJECT_DOCUMENTPROCESSCOLORS = 10 }                              |  1467      PSINJECT_DOCUMENTPROCESSCOLORS = 10,
  373                                                                                   <
  374  enum : uint { PSINJECT_COMMENTS = 11 }                                           |  1468      PSINJECT_COMMENTS              = 11,
  375  enum : uint { PSINJECT_BEGINDEFAULTS = 12 }                                      |  1469      PSINJECT_BEGINDEFAULTS         = 12,
  376  enum : uint { PSINJECT_ENDDEFAULTS = 13 }                                        |  1470      PSINJECT_ENDDEFAULTS           = 13,
  377  enum : uint { PSINJECT_BEGINPROLOG = 14 }                                        |  1471      PSINJECT_BEGINPROLOG           = 14,
  378  enum : uint { PSINJECT_ENDPROLOG = 15 }                                          |  1472      PSINJECT_ENDPROLOG             = 15,
  379  enum : uint { PSINJECT_BEGINSETUP = 16 }                                         |  1473      PSINJECT_BEGINSETUP            = 16,
  380  enum : uint { PSINJECT_ENDSETUP = 17 }                                           |  1474      PSINJECT_ENDSETUP              = 17,
  381  enum : uint { PSINJECT_TRAILER = 18 }                                            |  1475      PSINJECT_TRAILER               = 18,
  382  enum : uint { PSINJECT_EOF = 19 }                                                |  1476      PSINJECT_EOF       = 19,
  383  enum : uint { PSINJECT_ENDSTREAM = 20 }                                          |  1477      PSINJECT_ENDSTREAM = 20,
  384  enum : uint { PSINJECT_DOCUMENTPROCESSCOLORSATEND = 21 }                         |  1478      PSINJECT_DOCUMENTPROCESSCOLORSATEND = 21,
  385                                                                                   |  1479  
  386  enum : uint { PSINJECT_PAGENUMBER = 100 }                                        |  1480      PSINJECT_PAGENUMBER      = 100,
  387  enum : uint { PSINJECT_BEGINPAGESETUP = 101 }                                    |  1481      PSINJECT_BEGINPAGESETUP  = 101,
  388  enum : uint { PSINJECT_ENDPAGESETUP = 102 }                                      |  1482      PSINJECT_ENDPAGESETUP    = 102,
  389  enum : uint { PSINJECT_PAGETRAILER = 103 }                                       |  1483      PSINJECT_PAGETRAILER     = 103,
  390  enum : uint { PSINJECT_PLATECOLOR = 104 }                                        |  1484      PSINJECT_PLATECOLOR      = 104,
  391                                                                                   <
  392  enum : uint { PSINJECT_SHOWPAGE = 105 }                                          |  1485      PSINJECT_SHOWPAGE        = 105,
  393  enum : uint { PSINJECT_PAGEBBOX = 106 }                                          |  1486      PSINJECT_PAGEBBOX        = 106,
  394  enum : uint { PSINJECT_ENDPAGECOMMENTS = 107 }                                   |  1487      PSINJECT_ENDPAGECOMMENTS = 107,
  395                                                                                   |  1488  
  396  enum : uint { PSINJECT_VMSAVE = 200 }                                            |  1489      PSINJECT_VMSAVE    = 200,
  397  enum : uint { PSINJECT_VMRESTORE = 201 }                                         |  1490      PSINJECT_VMRESTORE = 201,
  398                                                                                   |  1491  }
                                                                                        >  1492  
                                                                                        >  1493  /* Parameter for GET_PS_FEATURESETTING escape */
                                                                                        >  1494  enum {
  399  enum : uint { FEATURESETTING_NUP = 0 }                                           |  1495      FEATURESETTING_NUP       = 0,
  400  enum : uint { FEATURESETTING_OUTPUT = 1 }                                        |  1496      FEATURESETTING_OUTPUT    = 1,
  401  enum : uint { FEATURESETTING_PSLEVEL = 2 }                                       |  1497      FEATURESETTING_PSLEVEL   = 2,
  402  enum : uint { FEATURESETTING_CUSTPAPER = 3 }                                     |  1498      FEATURESETTING_CUSTPAPER = 3,
  403  enum : uint { FEATURESETTING_MIRROR = 4 }                                        |  1499      FEATURESETTING_MIRROR    = 4,
  404  enum : uint { FEATURESETTING_NEGATIVE = 5 }                                      |  1500      FEATURESETTING_NEGATIVE  = 5,
  405  enum : uint { FEATURESETTING_PROTOCOL = 6 }                                      |  1501      FEATURESETTING_PROTOCOL  = 6,
  406                                                                                   |  1502  }
                                                                                        >  1503  
                                                                                        >  1504  enum {
  407  enum : uint { FEATURESETTING_PRIVATE_BEGIN = 0x1000 }                            |  1505      FEATURESETTING_PRIVATE_BEGIN = 0x1000,
  408  enum : uint { FEATURESETTING_PRIVATE_END = 0x1FFF }                              |  1506      FEATURESETTING_PRIVATE_END   = 0x1FFF,
  409                                                                                   |  1507  }
  410  struct _PSFEATURE_OUTPUT {                                                       <
  411                                                                                   |  1508  
  412    BOOL bPageIndependent;                                                         <
  413    BOOL bSetPageDevice;                                                           <
                                                                                        >  1509  /* Value returned for FEATURESETTING_PROTOCOL */
                                                                                        >  1510  const PSPROTOCOL_ASCII  = 0;
                                                                                        >  1511  const PSPROTOCOL_BCP    = 1;
                                                                                        >  1512  const PSPROTOCOL_TBCP   = 2;
                                                                                        >  1513  const PSPROTOCOL_BINARY = 3;
  414  }                                                                                |  1514  
  415  alias _PSFEATURE_OUTPUT PSFEATURE_OUTPUT;                                        <
  416  alias _PSFEATURE_OUTPUT* PPSFEATURE_OUTPUT;                                      <
                                                                                        >  1515  // ----
  417                                                                                   |  1516  
  418  struct _PSFEATURE_CUSTPAPER {                                                    <
                                                                                        >  1517  const WPARAM PR_JOBSTATUS = 0;
  419                                                                                   |  1518  
                                                                                        >  1519  // ???
                                                                                        >  1520  const QDI_SETDIBITS   = 1;
                                                                                        >  1521  const QDI_GETDIBITS   = 2;
                                                                                        >  1522  const QDI_DIBTOSCREEN = 4;
                                                                                        >  1523  const QDI_STRETCHDIB  = 8;
                                                                                        >  1524  
                                                                                        >  1525  const ASPECT_FILTERING = 1;
                                                                                        >  1526  
                                                                                        >  1527  // LOGCOLORSPACE.lcsCSType
                                                                                        >  1528  enum : LCSCSTYPE {
                                                                                        >  1529      LCS_CALIBRATED_RGB = 0,
                                                                                        >  1530      LCS_DEVICE_RGB,
                                                                                        >  1531      LCS_DEVICE_CMYK
                                                                                        >  1532  } /* What this for? */
                                                                                        >  1533  
                                                                                        >  1534  // LOGCOLORSPACE.lcsIntent
                                                                                        >  1535  enum : LCSGAMUTMATCH {
                                                                                        >  1536      LCS_GM_BUSINESS         = 1,
                                                                                        >  1537      LCS_GM_GRAPHICS         = 2,
                                                                                        >  1538      LCS_GM_IMAGES           = 4,
                                                                                        >  1539      LCS_GM_ABS_COLORIMETRIC = 8,
                                                                                        >  1540  }
                                                                                        >  1541  
                                                                                        >  1542  const DWORD
                                                                                        >  1543  RASTER_FONTTYPE   = 1,
                                                                                        >  1544  DEVICE_FONTTYPE   = 2,
                                                                                        >  1545  TRUETYPE_FONTTYPE = 4;
                                                                                        >  1546  
                                                                                        >  1547  // ---
                                                                                        >  1548  // DEVMODE struct
                                                                                        >  1549  
                                                                                        >  1550  // FIXME: Not needed for D (use .length instead)
                                                                                        >  1551  const CCHDEVICENAME = 32;
                                                                                        >  1552  const CCHFORMNAME   = 32;
                                                                                        >  1553  
                                                                                        >  1554  // DEVMODE.dmSpecVersion
                                                                                        >  1555  // current version of specification
                                                                                        >  1556  static
                                                                                        >  1557  
                                                                                        >  1558  if (WINVER >= 0x0500 || _WIN32_WINNT >= 0x0400)
                                                                                        >  1559  {
                                                                                        >  1560      const WORD DM_SPECVERSION = 0x0401;
                                                                                        >  1561  }
                                                                                        >  1562  else static
                                                                                        >  1563  
                                                                                        >  1564      if (WINVER >= 0x0400)
                                                                                        >  1565      {
                                                                                        >  1566          const WORD DM_SPECVERSION = 0x0400;
                                                                                        >  1567      }
                                                                                        >  1568      else
                                                                                        >  1569      {
                                                                                        >  1570          const WORD DM_SPECVERSION = 0x0320;
                                                                                        >  1571      }
                                                                                        >  1572  
  420    LONG lOrientation;                                                             |  1573  // DEVMODE.dmOrientation
  421    LONG lWidth;                                                                   <
  422    LONG lHeight;                                                                  <
  423    LONG lWidthOffset;                                                             <
  424    LONG lHeightOffset;                                                            <
                                                                                        >  1574  enum : short {
                                                                                        >  1575      DMORIENT_PORTRAIT  = 1,
                                                                                        >  1576      DMORIENT_LANDSCAPE = 2
  425  }                                                                                |  1577  }
  426  alias _PSFEATURE_CUSTPAPER PSFEATURE_CUSTPAPER;                                  <
  427  alias _PSFEATURE_CUSTPAPER* PPSFEATURE_CUSTPAPER;                                <
  428                                                                                   |  1578  
  429  enum : uint { PSPROTOCOL_ASCII = 0 }                                             <
  430  enum : uint { PSPROTOCOL_BCP = 1 }                                               <
  431  enum : uint { PSPROTOCOL_TBCP = 2 }                                              <
  432  enum : uint { PSPROTOCOL_BINARY = 3 }                                            <
                                                                                        >  1579  // DEVMODE.dmPaperSize
                                                                                        >  1580  enum : short {
                                                                                        >  1581      DMPAPER_LETTER = 1,
                                                                                        >  1582      DMPAPER_LETTERSMALL,
                                                                                        >  1583      DMPAPER_TABLOID,
                                                                                        >  1584      DMPAPER_LEDGER,
                                                                                        >  1585      DMPAPER_LEGAL,
                                                                                        >  1586      DMPAPER_STATEMENT,
                                                                                        >  1587      DMPAPER_EXECUTIVE,
                                                                                        >  1588      DMPAPER_A3,
                                                                                        >  1589      DMPAPER_A4,
                                                                                        >  1590      DMPAPER_A4SMALL,
                                                                                        >  1591      DMPAPER_A5,
                                                                                        >  1592      DMPAPER_B4,
                                                                                        >  1593      DMPAPER_B5,
                                                                                        >  1594      DMPAPER_FOLIO,
                                                                                        >  1595      DMPAPER_QUARTO,
                                                                                        >  1596      DMPAPER_10X14,
                                                                                        >  1597      DMPAPER_11X17,
                                                                                        >  1598      DMPAPER_NOTE,
                                                                                        >  1599      DMPAPER_ENV_9,
                                                                                        >  1600      DMPAPER_ENV_10,
                                                                                        >  1601      DMPAPER_ENV_11,
                                                                                        >  1602      DMPAPER_ENV_12,
                                                                                        >  1603      DMPAPER_ENV_14,
                                                                                        >  1604      DMPAPER_CSHEET,
                                                                                        >  1605      DMPAPER_DSHEET,
                                                                                        >  1606      DMPAPER_ESHEET,
                                                                                        >  1607      DMPAPER_ENV_DL,
                                                                                        >  1608      DMPAPER_ENV_C5,
                                                                                        >  1609      DMPAPER_ENV_C3,
                                                                                        >  1610      DMPAPER_ENV_C4,
                                                                                        >  1611      DMPAPER_ENV_C6,
                                                                                        >  1612      DMPAPER_ENV_C65,
                                                                                        >  1613      DMPAPER_ENV_B4,
                                                                                        >  1614      DMPAPER_ENV_B5,
                                                                                        >  1615      DMPAPER_ENV_B6,
                                                                                        >  1616      DMPAPER_ENV_ITALY,
                                                                                        >  1617      DMPAPER_ENV_MONARCH,
                                                                                        >  1618      DMPAPER_ENV_PERSONAL,
                                                                                        >  1619      DMPAPER_FANFOLD_US,
                                                                                        >  1620      DMPAPER_FANFOLD_STD_GERMAN,
                                                                                        >  1621      DMPAPER_FANFOLD_LGL_GERMAN,
                                                                                        >  1622      DMPAPER_ISO_B4,
                                                                                        >  1623      DMPAPER_JAPANESE_POSTCARD,
                                                                                        >  1624      DMPAPER_9X11,
                                                                                        >  1625      DMPAPER_10X11,
                                                                                        >  1626      DMPAPER_15X11,
                                                                                        >  1627      DMPAPER_ENV_INVITE,
                                                                                        >  1628      DMPAPER_RESERVED_48,
                                                                                        >  1629      DMPAPER_RESERVED_49,
                                                                                        >  1630      DMPAPER_LETTER_EXTRA,
                                                                                        >  1631      DMPAPER_LEGAL_EXTRA,
                                                                                        >  1632      DMPAPER_TABLOID_EXTRA,
                                                                                        >  1633      DMPAPER_A4_EXTRA,
                                                                                        >  1634      DMPAPER_LETTER_TRANSVERSE,
                                                                                        >  1635      DMPAPER_A4_TRANSVERSE,
                                                                                        >  1636      DMPAPER_LETTER_EXTRA_TRANSVERSE,
                                                                                        >  1637      DMPAPER_A_PLUS,
                                                                                        >  1638      DMPAPER_B_PLUS,
                                                                                        >  1639      DMPAPER_LETTER_PLUS,
                                                                                        >  1640      DMPAPER_A4_PLUS,
                                                                                        >  1641      DMPAPER_A5_TRANSVERSE,
                                                                                        >  1642      DMPAPER_B5_TRANSVERSE,
                                                                                        >  1643      DMPAPER_A3_EXTRA,
                                                                                        >  1644      DMPAPER_A5_EXTRA,
                                                                                        >  1645      DMPAPER_B5_EXTRA,
                                                                                        >  1646      DMPAPER_A2,
                                                                                        >  1647      DMPAPER_A3_TRANSVERSE,
                                                                                        >  1648      DMPAPER_A3_EXTRA_TRANSVERSE     // = 68
  433                                                                                   |  1649  }
  434  enum : uint { QDI_SETDIBITS = 1 }                                                <
  435  enum : uint { QDI_GETDIBITS = 2 }                                                <
  436  enum : uint { QDI_DIBTOSCREEN = 4 }                                              <
  437  enum : uint { QDI_STRETCHDIB = 8 }                                               <
                                                                                        >  1650  static
  438                                                                                   |  1651  
  439  enum : uint { SP_NOTREPORTED = 0x4000 }                                          <
  440  enum { SP_ERROR = -1 }                                                           <
  441  enum { SP_APPABORT = -2 }                                                        <
  442  enum { SP_USERABORT = -3 }                                                       <
  443  enum { SP_OUTOFDISK = -4 }                                                       <
  444  enum { SP_OUTOFMEMORY = -5 }                                                     <
                                                                                        >  1652  if (WINVER >= 0x0500)
  445                                                                                   |  1653  {
  446  enum : uint { PR_JOBSTATUS = 0x0000 }                                            <
                                                                                        >  1654      enum : short {
                                                                                        >  1655          DMPAPER_DBL_JAPANESE_POSTCARD = 69,
                                                                                        >  1656          DMPAPER_A6,
                                                                                        >  1657          DMPAPER_JENV_KAKU2,
                                                                                        >  1658          DMPAPER_JENV_KAKU3,
                                                                                        >  1659          DMPAPER_JENV_CHOU3,
                                                                                        >  1660          DMPAPER_JENV_CHOU4,
                                                                                        >  1661          DMPAPER_LETTER_ROTATED,
                                                                                        >  1662          DMPAPER_A3_ROTATED,
                                                                                        >  1663          DMPAPER_A4_ROTATED,
                                                                                        >  1664          DMPAPER_A5_ROTATED,
                                                                                        >  1665          DMPAPER_B4_JIS_ROTATED,
                                                                                        >  1666          DMPAPER_B5_JIS_ROTATED,
                                                                                        >  1667          DMPAPER_JAPANESE_POSTCARD_ROTATED,
                                                                                        >  1668          DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED,
                                                                                        >  1669          DMPAPER_A6_ROTATED,
                                                                                        >  1670          DMPAPER_JENV_KAKU2_ROTATED,
                                                                                        >  1671          DMPAPER_JENV_KAKU3_ROTATED,
                                                                                        >  1672          DMPAPER_JENV_CHOU3_ROTATED,
                                                                                        >  1673          DMPAPER_JENV_CHOU4_ROTATED,
                                                                                        >  1674          DMPAPER_B6_JIS,
                                                                                        >  1675          DMPAPER_B6_JIS_ROTATED,
                                                                                        >  1676          DMPAPER_12X11,
                                                                                        >  1677          DMPAPER_JENV_YOU4,
                                                                                        >  1678          DMPAPER_JENV_YOU4_ROTATED,
                                                                                        >  1679          DMPAPER_P16K,
                                                                                        >  1680          DMPAPER_P32K,
                                                                                        >  1681          DMPAPER_P32KBIG,
                                                                                        >  1682          DMPAPER_PENV_1,
                                                                                        >  1683          DMPAPER_PENV_2,
                                                                                        >  1684          DMPAPER_PENV_3,
                                                                                        >  1685          DMPAPER_PENV_4,
                                                                                        >  1686          DMPAPER_PENV_5,
                                                                                        >  1687          DMPAPER_PENV_6,
                                                                                        >  1688          DMPAPER_PENV_7,
                                                                                        >  1689          DMPAPER_PENV_8,
                                                                                        >  1690          DMPAPER_PENV_9,
                                                                                        >  1691          DMPAPER_PENV_10,
                                                                                        >  1692          DMPAPER_P16K_ROTATED,
                                                                                        >  1693          DMPAPER_P32K_ROTATED,
                                                                                        >  1694          DMPAPER_P32KBIG_ROTATED,
                                                                                        >  1695          DMPAPER_PENV_1_ROTATED,
                                                                                        >  1696          DMPAPER_PENV_2_ROTATED,
                                                                                        >  1697          DMPAPER_PENV_3_ROTATED,
                                                                                        >  1698          DMPAPER_PENV_4_ROTATED,
                                                                                        >  1699          DMPAPER_PENV_5_ROTATED,
                                                                                        >  1700          DMPAPER_PENV_6_ROTATED,
                                                                                        >  1701          DMPAPER_PENV_7_ROTATED,
                                                                                        >  1702          DMPAPER_PENV_8_ROTATED,
                                                                                        >  1703          DMPAPER_PENV_9_ROTATED,
                                                                                        >  1704          DMPAPER_PENV_10_ROTATED         // 118
  447                                                                                   |  1705      }
                                                                                        >  1706  }
                                                                                        >  1707  
                                                                                        >  1708  const short DMPAPER_FIRST = DMPAPER_LETTER;
                                                                                        >  1709  
                                                                                        >  1710  static
                                                                                        >  1711  
                                                                                        >  1712  if (WINVER >= 0x0500)
                                                                                        >  1713      const short DMPAPER_LAST = DMPAPER_PENV_10_ROTATED;
                                                                                        >  1714  else
                                                                                        >  1715      const short DMPAPER_LAST = DMPAPER_A3_EXTRA_TRANSVERSE;
                                                                                        >  1716  
                                                                                        >  1717  const short DMPAPER_USER = 256;
                                                                                        >  1718  
                                                                                        >  1719  // DEVMODE.dmDefaultSource
  448  enum : uint { OBJ_PEN = 1 }                                                      |  1720  enum : short {
  449  enum : uint { OBJ_BRUSH = 2 }                                                    <
                                                                                        >  1721      DMBIN_ONLYONE = 1,
                                                                                        >  1722      DMBIN_UPPER   = 1,
                                                                                        >  1723      DMBIN_LOWER,
                                                                                        >  1724      DMBIN_MIDDLE,
                                                                                        >  1725      DMBIN_MANUAL,
                                                                                        >  1726      DMBIN_ENVELOPE,
                                                                                        >  1727      DMBIN_ENVMANUAL,
                                                                                        >  1728      DMBIN_AUTO,
                                                                                        >  1729      DMBIN_TRACTOR,
                                                                                        >  1730      DMBIN_SMALLFMT,
                                                                                        >  1731      DMBIN_LARGEFMT,
                                                                                        >  1732      DMBIN_LARGECAPACITY,     // = 11
                                                                                        >  1733      DMBIN_CASSETTE = 14,
                                                                                        >  1734      DMBIN_FORMSOURCE,
                                                                                        >  1735  }
                                                                                        >  1736  short
                                                                                        >  1737  DMBIN_FIRST = DMBIN_UPPER,
                                                                                        >  1738  DMBIN_LAST  = DMBIN_FORMSOURCE,
                                                                                        >  1739  DMBIN_USER  = 256;
                                                                                        >  1740  
                                                                                        >  1741  // DEVMODE.dmPrintQuality
  450  enum : uint { OBJ_DC = 3 }                                                       |  1742  enum : short {
  451  enum : uint { OBJ_METADC = 4 }                                                   <
                                                                                        >  1743      DMRES_DRAFT  = -1,
                                                                                        >  1744      DMRES_LOW    = -2,
                                                                                        >  1745      DMRES_MEDIUM = -3,
                                                                                        >  1746      DMRES_HIGH   = -4
                                                                                        >  1747  }
                                                                                        >  1748  
                                                                                        >  1749  // DEVMODE.dmColor
  452  enum : uint { OBJ_PAL = 5 }                                                      |  1750  enum : short {
  453  enum : uint { OBJ_FONT = 6 }                                                     <
                                                                                        >  1751      DMCOLOR_MONOCHROME = 1,
                                                                                        >  1752      DMCOLOR_COLOR      = 2
                                                                                        >  1753  }
                                                                                        >  1754  
                                                                                        >  1755  // DEVMODE.dmDuplex
                                                                                        >  1756  enum : short {
                                                                                        >  1757      DMDUP_SIMPLEX    = 1,
                                                                                        >  1758      DMDUP_VERTICAL   = 2,
                                                                                        >  1759      DMDUP_HORIZONTAL = 3
                                                                                        >  1760  }
                                                                                        >  1761  
                                                                                        >  1762  // DEVMODE.dmTTOption
                                                                                        >  1763  enum : short {
  454  enum : uint { OBJ_BITMAP = 7 }                                                   |  1764      DMTT_BITMAP = 1,
  455  enum : uint { OBJ_REGION = 8 }                                                   <
  456  enum : uint { OBJ_METAFILE = 9 }                                                 <
  457  enum : uint { OBJ_MEMDC = 10 }                                                   <
  458  enum : uint { OBJ_EXTPEN = 11 }                                                  <
  459  enum : uint { OBJ_ENHMETADC = 12 }                                               <
  460  enum : uint { OBJ_ENHMETAFILE = 13 }                                             <
  461  enum : uint { OBJ_COLORSPACE = 14 }                                              <
                                                                                        >  1765      DMTT_DOWNLOAD,
                                                                                        >  1766      DMTT_SUBDEV,
                                                                                        >  1767      DMTT_DOWNLOAD_OUTLINE
  462                                                                                   |  1768  }
  463  enum : uint { MWT_IDENTITY = 1 }                                                 <
  464  enum : uint { MWT_LEFTMULTIPLY = 2 }                                             <
  465  enum : uint { MWT_RIGHTMULTIPLY = 3 }                                            <
  466                                                                                   |  1769  
  467  alias MWT_IDENTITY MWT_MIN;                                                      <
  468  alias MWT_RIGHTMULTIPLY MWT_MAX;                                                 <
                                                                                        >  1770  // DEVMODE.dmCollate
                                                                                        >  1771  enum : short {
                                                                                        >  1772      DMCOLLATE_FALSE = 0,
                                                                                        >  1773      DMCOLLATE_TRUE
  469                                                                                   |  1774  }
  470  // #define _XFORM_                                                               <
                                                                                        >  1775  
                                                                                        >  1776  static
                                                                                        >  1777  
                                                                                        >  1778  if (WINVER >= 0x0501)
                                                                                        >  1779  {
                                                                                        >  1780      /* DEVMODE dmDisplayOrientation specifiations */
                                                                                        >  1781      enum : short {
                                                                                        >  1782          DMDO_DEFAULT = 0,
                                                                                        >  1783          DMDO_90      = 1,
                                                                                        >  1784          DMDO_180     = 2,
                                                                                        >  1785          DMDO_270     = 3,
                                                                                        >  1786      }
                                                                                        >  1787  
                                                                                        >  1788      /* DEVMODE dmDisplayFixedOutput specifiations */
                                                                                        >  1789      enum : short {
                                                                                        >  1790          DMDFO_DEFAULT = 0,
                                                                                        >  1791          DMDFO_STRETCH = 1,
                                                                                        >  1792          DMDFO_CENTER  = 2,
                                                                                        >  1793      }
                                                                                        >  1794  }
                                                                                        >  1795  
                                                                                        >  1796  /* FIXME: this flags are deprecated ? */
                                                                                        >  1797  
                                                                                        >  1798  // DEVMODE.dmDisplayFlags
                                                                                        >  1799  const DWORD
                                                                                        >  1800  DM_GRAYSCALE  = 1,
                                                                                        >  1801  DM_INTERLACED = 2;
                                                                                        >  1802  
                                                                                        >  1803  const DWORD
                                                                                        >  1804  DMDISPLAYFLAGS_TEXTMODE = 0x00000004;
                                                                                        >  1805  
                                                                                        >  1806  /* dmNup , multiple logical page per physical page options */
                                                                                        >  1807  const DWORD
                                                                                        >  1808  DMNUP_SYSTEM = 1,
                                                                                        >  1809  DMNUP_ONEUP  = 2;
                                                                                        >  1810  
                                                                                        >  1811  // DEVMODE.dmFields
                                                                                        >  1812  const DWORD
                                                                                        >  1813  DM_ORIENTATION = 0x00000001,
                                                                                        >  1814  DM_PAPERSIZE   = 0x00000002,
                                                                                        >  1815  DM_PAPERLENGTH = 0x00000004,
                                                                                        >  1816  DM_PAPERWIDTH  = 0x00000008,
                                                                                        >  1817  DM_SCALE       = 0x00000010;
                                                                                        >  1818  static
                                                                                        >  1819  
                                                                                        >  1820  if (WINVER >= 0x0500)
                                                                                        >  1821  {
                                                                                        >  1822      const DWORD
                                                                                        >  1823      DM_POSITION = 0x00000020,
                                                                                        >  1824      DM_NUP      = 0x00000040;
                                                                                        >  1825  }
                                                                                        >  1826  
                                                                                        >  1827  static
                                                                                        >  1828  
                                                                                        >  1829  if (WINVER >= 0x0501)
                                                                                        >  1830  {
                                                                                        >  1831      const DWORD
                                                                                        >  1832      DM_DISPLAYORIENTATION = 0x00000080;
                                                                                        >  1833  }
                                                                                        >  1834  
                                                                                        >  1835  const DWORD
                                                                                        >  1836  DM_COPIES = 0x00000100,
                                                                                        >  1837  DM_DEFAULTSOURCE    = 0x00000200,
                                                                                        >  1838  DM_PRINTQUALITY     = 0x00000400,
                                                                                        >  1839  DM_COLOR            = 0x00000800,
                                                                                        >  1840  DM_DUPLEX           = 0x00001000,
                                                                                        >  1841  DM_YRESOLUTION      = 0x00002000,
                                                                                        >  1842  DM_TTOPTION         = 0x00004000,
                                                                                        >  1843  DM_COLLATE          = 0x00008000,
                                                                                        >  1844  DM_FORMNAME         = 0x00010000,
                                                                                        >  1845  DM_LOGPIXELS        = 0x00020000,
                                                                                        >  1846  DM_BITSPERPEL       = 0x00040000,
                                                                                        >  1847  DM_PELSWIDTH        = 0x00080000,
                                                                                        >  1848  DM_PELSHEIGHT       = 0x00100000,
                                                                                        >  1849  DM_DISPLAYFLAGS     = 0x00200000,
                                                                                        >  1850  DM_DISPLAYFREQUENCY = 0x00400000;
                                                                                        >  1851  static
                                                                                        >  1852  
                                                                                        >  1853  if (WINVER >= 0x0400)
                                                                                        >  1854  {
                                                                                        >  1855      const DWORD
                                                                                        >  1856      DM_ICMMETHOD     = 0x00800000,
                                                                                        >  1857      DM_ICMINTENT     = 0x01000000,
                                                                                        >  1858      DM_MEDIATYPE     = 0x02000000,
                                                                                        >  1859      DM_DITHERTYPE    = 0x04000000,
                                                                                        >  1860      DM_PANNINGWIDTH  = 0x08000000,
                                                                                        >  1861      DM_PANNINGHEIGHT = 0x10000000;
                                                                                        >  1862  }
                                                                                        >  1863  
                                                                                        >  1864  static
                                                                                        >  1865  
                                                                                        >  1866  if (WINVER >= 0x0501)
                                                                                        >  1867  {
                                                                                        >  1868      const DWORD
                                                                                        >  1869      DM_DISPLAYFIXEDOUTPUT = 0x20000000;
                                                                                        >  1870  }
                                                                                        >  1871  
                                                                                        >  1872  // DEVMODE.dmICMMethod
                                                                                        >  1873  enum : DWORD {
                                                                                        >  1874      DMICMMETHOD_NONE   = 1,
                                                                                        >  1875      DMICMMETHOD_SYSTEM = 2,
                                                                                        >  1876      DMICMMETHOD_DRIVER = 3,
                                                                                        >  1877      DMICMMETHOD_DEVICE = 4,
                                                                                        >  1878      DMICMMETHOD_USER   = 256
                                                                                        >  1879  }
                                                                                        >  1880  
                                                                                        >  1881  // DEVMODE.dmICMIntent
                                                                                        >  1882  enum : DWORD {
                                                                                        >  1883      DMICM_SATURATE         = 1,
                                                                                        >  1884      DMICM_CONTRAST         = 2,
                                                                                        >  1885      DMICM_COLORIMETRIC     = 3,
                                                                                        >  1886      DMICM_ABS_COLORIMETRIC = 4,
                                                                                        >  1887      DMICM_USER             = 256
                                                                                        >  1888  }
                                                                                        >  1889  
                                                                                        >  1890  // DEVMODE.dmMediaType
                                                                                        >  1891  enum : DWORD {
                                                                                        >  1892      DMMEDIA_STANDARD     = 1,
                                                                                        >  1893      DMMEDIA_TRANSPARENCY = 2,
                                                                                        >  1894      DMMEDIA_GLOSSY       = 3,
                                                                                        >  1895      DMMEDIA_USER         = 256
                                                                                        >  1896  }
                                                                                        >  1897  
                                                                                        >  1898  // DEVMODE.dmDitherType
                                                                                        >  1899  enum : DWORD {
                                                                                        >  1900      DMDITHER_NONE = 1,
                                                                                        >  1901      DMDITHER_COARSE,
                                                                                        >  1902      DMDITHER_FINE,
                                                                                        >  1903      DMDITHER_LINEART,
                                                                                        >  1904      DMDITHER_ERRORDIFFUSION,
                                                                                        >  1905      DMDITHER_RESERVED6,
                                                                                        >  1906      DMDITHER_RESERVED7,
                                                                                        >  1907      DMDITHER_RESERVED8,
                                                                                        >  1908      DMDITHER_RESERVED9,
                                                                                        >  1909      DMDITHER_GRAYSCALE,
                                                                                        >  1910      DMDITHER_USER = 256
                                                                                        >  1911  }
                                                                                        >  1912  
                                                                                        >  1913  // ----
                                                                                        >  1914  // DocumentProperties()
                                                                                        >  1915  const DWORD
                                                                                        >  1916  DM_UPDATE      = 1,
                                                                                        >  1917  DM_COPY        = 2,
                                                                                        >  1918  DM_PROMPT      = 4,
                                                                                        >  1919  DM_MODIFY      = 8,
                                                                                        >  1920  DM_IN_BUFFER   = DM_MODIFY,
                                                                                        >  1921  DM_IN_PROMPT   = DM_PROMPT,
                                                                                        >  1922  DM_OUT_BUFFER  = DM_COPY,
                                                                                        >  1923  DM_OUT_DEFAULT = DM_UPDATE;
                                                                                        >  1924  
                                                                                        >  1925  // ---
                                                                                        >  1926  
                                                                                        >  1927  const GDI_ERROR = 0xFFFFFFFF;
                                                                                        >  1928  const HGDI_ERROR= cast(HANDLE) GDI_ERROR;
                                                                                        >  1929  
                                                                                        >  1930  // TEXTMETRIC.tmPitchAndFamily
                                                                                        >  1931  const BYTE
                                                                                        >  1932  TMPF_FIXED_PITCH = 1,
                                                                                        >  1933  TMPF_VECTOR      = 2,
                                                                                        >  1934  TMPF_TRUETYPE    = 4,
                                                                                        >  1935  TMPF_DEVICE      = 8;
                                                                                        >  1936  
                                                                                        >  1937  // NEWTEXTMETRIC.ntmFlags
                                                                                        >  1938  const DWORD
                                                                                        >  1939  NTM_ITALIC         = 0x00000001,
                                                                                        >  1940  NTM_BOLD           = 0x00000020,
                                                                                        >  1941  NTM_REGULAR        = 0x00000040,
                                                                                        >  1942  NTM_NONNEGATIVE_AC = 0x00010000,
                                                                                        >  1943  NTM_PS_OPENTYPE    = 0x00020000,
                                                                                        >  1944  NTM_TT_OPENTYPE    = 0x00040000,
                                                                                        >  1945  NTM_MULTIPLEMASTER = 0x00080000,
                                                                                        >  1946  NTM_TYPE1          = 0x00100000,
                                                                                        >  1947  NTM_DSIG           = 0x00200000;
                                                                                        >  1948  
                                                                                        >  1949  // ---
                                                                                        >  1950  const DWORD TT_POLYGON_TYPE = 24;
                                                                                        >  1951  
                                                                                        >  1952  // TTPOLYCURVE
                                                                                        >  1953  enum : WORD {
                                                                                        >  1954      TT_PRIM_LINE    = 1,
                                                                                        >  1955      TT_PRIM_QSPLINE = 2,
                                                                                        >  1956      TT_PRIM_CSPLINE = 3,
                                                                                        >  1957  }
                                                                                        >  1958  
                                                                                        >  1959  // ---
                                                                                        >  1960  const FONTMAPPER_MAX       = 10;
                                                                                        >  1961  const ENHMETA_STOCK_OBJECT = 0x80000000;
                                                                                        >  1962  const WGL_FONT_LINES       = 0;
                                                                                        >  1963  const WGL_FONT_POLYGONS    = 1;
                                                                                        >  1964  
                                                                                        >  1965  // ---
                                                                                        >  1966  // LAYERPLANEDESCRIPTOR.dwFlags
                                                                                        >  1967  const DWORD
                                                                                        >  1968  LPD_DOUBLEBUFFER   = 1,
                                                                                        >  1969  LPD_STEREO         = 2,
                                                                                        >  1970  LPD_SUPPORT_GDI    = 16,
                                                                                        >  1971  LPD_SUPPORT_OPENGL = 32,
                                                                                        >  1972  LPD_SHARE_DEPTH    = 64,
                                                                                        >  1973  LPD_SHARE_STENCIL  = 128,
                                                                                        >  1974  LPD_SHARE_ACCUM    = 256,
                                                                                        >  1975  LPD_SWAP_EXCHANGE  = 512,
                                                                                        >  1976  LPD_SWAP_COPY      = 1024,
                                                                                        >  1977  LPD_TRANSPARENT    = 4096;
                                                                                        >  1978  
                                                                                        >  1979  // LAYERPLANEDESCRIPTOR.iPixelType
                                                                                        >  1980  enum : BYTE {
                                                                                        >  1981      LPD_TYPE_RGBA       = 0,
                                                                                        >  1982      LPD_TYPE_COLORINDEX = 1
                                                                                        >  1983  }
                                                                                        >  1984  
                                                                                        >  1985  // ---
                                                                                        >  1986  
                                                                                        >  1987  // wglSwapLayerBuffers()
                                                                                        >  1988  const UINT
                                                                                        >  1989  WGL_SWAP_MAIN_PLANE = 1,
                                                                                        >  1990  WGL_SWAP_OVERLAY1   = 2,
                                                                                        >  1991  WGL_SWAP_OVERLAY2   = 4,
                                                                                        >  1992  WGL_SWAP_OVERLAY3   = 8,
                                                                                        >  1993  WGL_SWAP_OVERLAY4   = 16,
                                                                                        >  1994  WGL_SWAP_OVERLAY5   = 32,
                                                                                        >  1995  WGL_SWAP_OVERLAY6   = 64,
                                                                                        >  1996  WGL_SWAP_OVERLAY7   = 128,
                                                                                        >  1997  WGL_SWAP_OVERLAY8   = 256,
                                                                                        >  1998  WGL_SWAP_OVERLAY9   = 512,
                                                                                        >  1999  WGL_SWAP_OVERLAY10  = 1024,
                                                                                        >  2000  WGL_SWAP_OVERLAY11  = 2048,
                                                                                        >  2001  WGL_SWAP_OVERLAY12  = 4096,
                                                                                        >  2002  WGL_SWAP_OVERLAY13  = 8192,
                                                                                        >  2003  WGL_SWAP_OVERLAY14  = 16384,
                                                                                        >  2004  WGL_SWAP_OVERLAY15  = 32768,
                                                                                        >  2005  WGL_SWAP_UNDERLAY1  = 65536,
                                                                                        >  2006  WGL_SWAP_UNDERLAY2  = 0x20000,
                                                                                        >  2007  WGL_SWAP_UNDERLAY3  = 0x40000,
                                                                                        >  2008  WGL_SWAP_UNDERLAY4  = 0x80000,
                                                                                        >  2009  WGL_SWAP_UNDERLAY5  = 0x100000,
                                                                                        >  2010  WGL_SWAP_UNDERLAY6  = 0x200000,
                                                                                        >  2011  WGL_SWAP_UNDERLAY7  = 0x400000,
                                                                                        >  2012  WGL_SWAP_UNDERLAY8  = 0x800000,
                                                                                        >  2013  WGL_SWAP_UNDERLAY9  = 0x1000000,
                                                                                        >  2014  WGL_SWAP_UNDERLAY10 = 0x2000000,
                                                                                        >  2015  WGL_SWAP_UNDERLAY11 = 0x4000000,
                                                                                        >  2016  WGL_SWAP_UNDERLAY12 = 0x8000000,
                                                                                        >  2017  WGL_SWAP_UNDERLAY13 = 0x10000000,
                                                                                        >  2018  WGL_SWAP_UNDERLAY14 = 0x20000000,
                                                                                        >  2019  WGL_SWAP_UNDERLAY15 = 0x40000000;
                                                                                        >  2020  
                                                                                        >  2021  const AC_SRC_OVER  = 0x00;
                                                                                        >  2022  const AC_SRC_ALPHA = 0x01;
                                                                                        >  2023  
                                                                                        >  2024  // ???
                                                                                        >  2025  const AC_SRC_NO_PREMULT_ALPHA = 0x01;
                                                                                        >  2026  const AC_SRC_NO_ALPHA         = 0x02;
                                                                                        >  2027  const AC_DST_NO_PREMULT_ALPHA = 0x10;
                                                                                        >  2028  const AC_DST_NO_ALPHA         = 0x20;
                                                                                        >  2029  
                                                                                        >  2030  const LAYOUT_RTL = 1;
                                                                                        >  2031  const LAYOUT_BTT = 2;
                                                                                        >  2032  const LAYOUT_VBH = 4;
                                                                                        >  2033  const LAYOUT_BITMAPORIENTATIONPRESERVED = 8;
                                                                                        >  2034  
                                                                                        >  2035  static
                                                                                        >  2036  
                                                                                        >  2037  if (WINVER > 0x0400)
                                                                                        >  2038  {
                                                                                        >  2039      const CS_ENABLE  = 0x00000001;
                                                                                        >  2040      const CS_DISABLE = 0x00000002;
                                                                                        >  2041      const CS_DELETE_TRANSFORM = 0x00000003;
                                                                                        >  2042  }
                                                                                        >  2043  
                                                                                        >  2044  static
                                                                                        >  2045  
                                                                                        >  2046  if (WINVER > 0x0500)
                                                                                        >  2047  {
                                                                                        >  2048      const GRADIENT_FILL_RECT_H      =0x00;
                                                                                        >  2049      const GRADIENT_FILL_RECT_V      =0x01;
                                                                                        >  2050      const GRADIENT_FILL_TRIANGLE    =0x02;
                                                                                        >  2051      const GRADIENT_FILL_OP_FLAG     =0xff;
                                                                                        >  2052      const COLORMATCHTOTARGET_EMBEDED=0x00000001;
                                                                                        >  2053      const CREATECOLORSPACE_EMBEDED  =0x00000001;
                                                                                        >  2054      const SETICMPROFILE_EMBEDED     =0x00000001;
                                                                                        >  2055  }
                                                                                        >  2056  
                                                                                        >  2057  // DISPLAY_DEVICE.StateFlags
                                                                                        >  2058  const DWORD
                                                                                        >  2059  DISPLAY_DEVICE_ATTACHED_TO_DESKTOP = 0x00000001,
                                                                                        >  2060  DISPLAY_DEVICE_MULTI_DRIVER        = 0x00000002,
                                                                                        >  2061  DISPLAY_DEVICE_PRIMARY_DEVICE      = 0x00000004,
                                                                                        >  2062  DISPLAY_DEVICE_MIRRORING_DRIVER    = 0x00000008,
                                                                                        >  2063  DISPLAY_DEVICE_VGA_COMPATIBLE      = 0x00000010,
                                                                                        >  2064  DISPLAY_DEVICE_REMOVABLE           = 0x00000020,
                                                                                        >  2065  DISPLAY_DEVICE_DISCONNECT          = 0x02000000,
                                                                                        >  2066  DISPLAY_DEVICE_REMOTE              = 0x04000000,
                                                                                        >  2067  DISPLAY_DEVICE_MODESPRUNED         = 0x08000000;
                                                                                        >  2068  
                                                                                        >  2069  /* Child device state */
                                                                                        >  2070  const DWORD
                                                                                        >  2071  DISPLAY_DEVICE_ACTIVE   = 0x00000001,
                                                                                        >  2072  DISPLAY_DEVICE_ATTACHED = 0x00000002;
                                                                                        >  2073  
                                                                                        >  2074  static
                                                                                        >  2075  
                                                                                        >  2076  if (_WIN32_WINNT >= 0x0500)
                                                                                        >  2077  {
                                                                                        >  2078      const GGI_MARK_NONEXISTING_GLYPHS = 1;
                                                                                        >  2079  }
                                                                                        >  2080  
                                                                                        >  2081  // ----------
                                                                                        >  2082  //   STRUCTS
                                                                                        >  2083  // ----------
                                                                                        >  2084  
  471  struct tagXFORM {                                                                |  2085  struct ABC
                                                                                        >  2086  {
                                                                                        >  2087      int abcA;
                                                                                        >  2088      UINT abcB;
                                                                                        >  2089      int abcC;
                                                                                        >  2090  }
                                                                                        >  2091  alias ABC*PABC, NPABC, LPABC;
                                                                                        >  2092  
  472    FLOAT eM11;                                                                    |  2093  struct ABCFLOAT
                                                                                        >  2094  {
  473    FLOAT eM12;                                                                    |  2095      FLOAT abcfA;
  474    FLOAT eM21;                                                                    |  2096      FLOAT abcfB;
  475    FLOAT eM22;                                                                    |  2097      FLOAT abcfC;
  476    FLOAT eDx;                                                                     <
  477    FLOAT eDy;                                                                     <
  478  }                                                                                |  2098  }
  479  alias tagXFORM XFORM;                                                            <
  480  alias tagXFORM* PXFORM;                                                          <
  481  alias tagXFORM* LPXFORM;                                                         <
                                                                                        >  2099  alias ABCFLOAT*PABCFLOAT, NPABCFLOAT, LPABCFLOAT;
  482                                                                                   |  2100  
  483  struct tagBITMAP {                                                               |  2101  struct BITMAP
                                                                                        >  2102  {
  484    LONG bmType;                                                                   |  2103      LONG bmType;
  485    LONG bmWidth;                                                                  |  2104      LONG bmWidth;
  486    LONG bmHeight;                                                                 |  2105      LONG bmHeight;
  487    LONG bmWidthBytes;                                                             |  2106      LONG bmWidthBytes;
  488    WORD bmPlanes;                                                                 |  2107      WORD bmPlanes;
  489    WORD bmBitsPixel;                                                              |  2108      WORD bmBitsPixel;
  490    LPVOID bmBits;                                                                 |  2109      LPVOID bmBits;
  491  }                                                                                |  2110  }
  492  alias tagBITMAP BITMAP;                                                          <
  493  alias tagBITMAP* PBITMAP;                                                        <
  494  alias tagBITMAP* NPBITMAP;                                                       <
  495  alias tagBITMAP* LPBITMAP;                                                       <
                                                                                        >  2111  alias BITMAP*PBITMAP, NPBITMAP, LPBITMAP;
  496                                                                                   |  2112  
                                                                                        >  2113  struct BITMAPCOREHEADER
                                                                                        >  2114  {
                                                                                        >  2115      DWORD bcSize;
                                                                                        >  2116      WORD bcWidth;
                                                                                        >  2117      WORD bcHeight;
                                                                                        >  2118      WORD bcPlanes;
                                                                                        >  2119      WORD bcBitCount;
                                                                                        >  2120  }
                                                                                        >  2121  alias BITMAPCOREHEADER*PBITMAPCOREHEADER, LPBITMAPCOREHEADER;
                                                                                        >  2122  
  497  align(1):                                                                        |  2123  align (1) :
  498  struct tagRGBTRIPLE {                                                            |  2124  struct RGBTRIPLE
                                                                                        >  2125  {
  499    BYTE rgbtBlue;                                                                 |  2126      BYTE rgbtBlue;
  500    BYTE rgbtGreen;                                                                |  2127      BYTE rgbtGreen;
  501    BYTE rgbtRed;                                                                  |  2128      BYTE rgbtRed;
  502  }                                                                                |  2129  }
  503  alias tagRGBTRIPLE RGBTRIPLE;                                                    |  2130  alias RGBTRIPLE*LPRGBTRIPLE;
  504                                                                                   |  2131  
  505  align:                                                                           |  2132  align (2) :
                                                                                        >  2133  struct BITMAPFILEHEADER
  506                                                                                   |  2134  {
  507  struct tagRGBQUAD {                                                              <
  508    BYTE rgbBlue;                                                                  <
  509    BYTE rgbGreen;                                                                 <
  510    BYTE rgbRed;                                                                   <
                                                                                        >  2135      WORD bfType;
                                                                                        >  2136      DWORD bfSize;
  511    BYTE rgbReserved;                                                              |  2137      WORD bfReserved1;
                                                                                        >  2138      WORD bfReserved2;
                                                                                        >  2139      DWORD bfOffBits;
  512  }                                                                                |  2140  }
  513  alias tagRGBQUAD RGBQUAD;                                                        <
                                                                                        >  2141  alias BITMAPFILEHEADER*LPBITMAPFILEHEADER, PBITMAPFILEHEADER;
  514                                                                                   |  2142  
  515  alias RGBQUAD* LPRGBQUAD;                                                        <
                                                                                        >  2143  align :
  516                                                                                   |  2144  
  517  // #if(WINVER >= 0x0400)                                                         <
                                                                                        >  2145  struct BITMAPCOREINFO
  518                                                                                   |  2146  {
  519  enum : uint { CS_ENABLE = 0x00000001 }                                           <
  520  enum : uint { CS_DISABLE = 0x00000002 }                                          <
  521  enum : uint { CS_DELETE_TRANSFORM = 0x00000003 }                                 <
                                                                                        >  2147      BITMAPCOREHEADER bmciHeader;
                                                                                        >  2148      RGBTRIPLE[1]     bmciColors;
  522                                                                                   |  2149  }
  523  // #define LCS_SIGNATURE 'PSOC'                                                  <
                                                                                        >  2150  alias BITMAPCOREINFO*LPBITMAPCOREINFO, PBITMAPCOREINFO;
  524                                                                                   |  2151  
  525  // #define LCS_sRGB 'sRGB'                                                       <
  526  // #define LCS_WINDOWS_COLOR_SPACE 'Win '                                        <
                                                                                        >  2152  struct BITMAPINFOHEADER
  527                                                                                   |  2153  {
  528  alias LONG LCSCSTYPE;                                                            <
  529  enum : uint { LCS_CALIBRATED_RGB = 0x00000000 }                                  <
                                                                                        >  2154      DWORD biSize;
                                                                                        >  2155      LONG biWidth;
                                                                                        >  2156      LONG biHeight;
                                                                                        >  2157      WORD biPlanes;
                                                                                        >  2158      WORD biBitCount;
                                                                                        >  2159      DWORD biCompression;
                                                                                        >  2160      DWORD biSizeImage;
                                                                                        >  2161      LONG biXPelsPerMeter;
                                                                                        >  2162      LONG biYPelsPerMeter;
                                                                                        >  2163      DWORD biClrUsed;
                                                                                        >  2164      DWORD biClrImportant;
  530                                                                                   |  2165  }
  531  alias LONG LCSGAMUTMATCH;                                                        <
  532  enum : uint { LCS_GM_BUSINESS = 0x00000001 }                                     <
  533  enum : uint { LCS_GM_GRAPHICS = 0x00000002 }                                     <
  534  enum : uint { LCS_GM_IMAGES = 0x00000004 }                                       <
  535  enum : uint { LCS_GM_ABS_COLORIMETRIC = 0x00000008 }                             <
  536                                                                                   |  2166  
  537  enum : uint { CM_OUT_OF_GAMUT = 255 }                                            <
  538  enum : uint { CM_IN_GAMUT = 0 }                                                  <
                                                                                        >  2167  alias BITMAPINFOHEADER*LPBITMAPINFOHEADER, PBITMAPINFOHEADER;
  539                                                                                   |  2168  
  540  enum : uint { ICM_ADDPROFILE = 1 }                                               <
  541  enum : uint { ICM_DELETEPROFILE = 2 }                                            <
  542  enum : uint { ICM_QUERYPROFILE = 3 }                                             <
  543  enum : uint { ICM_SETDEFAULTPROFILE = 4 }                                        <
  544  enum : uint { ICM_REGISTERICMATCHER = 5 }                                        <
  545  enum : uint { ICM_UNREGISTERICMATCHER = 6 }                                      <
  546  enum : uint { ICM_QUERYMATCH = 7 }                                               <
                                                                                        >  2169  struct RGBQUAD
  547                                                                                   |  2170  {
  548  BYTE GetKValue(DWORD cmyk){ return cast(BYTE)cmyk; }                             <
  549  BYTE GetYValue(DWORD cmyk){ return cast(BYTE)(cmyk >>> 8); }                     <
  550  BYTE GetMValue(DWORD cmyk){ return cast(BYTE)(cmyk >>> 16); }                    <
  551  BYTE GetCValue(DWORD cmyk){ return cast(BYTE)(cmyk >>> 24); }                    <
                                                                                        >  2171      BYTE rgbBlue;
                                                                                        >  2172      BYTE rgbGreen;
                                                                                        >  2173      BYTE rgbRed;
                                                                                        >  2174      BYTE rgbReserved;
                                                                                        >  2175  };
                                                                                        >  2176  alias RGBQUAD*LPRGBQUAD;
  552                                                                                   |  2177  
  553  DWORD CMYK(BYTE c, BYTE m, BYTE y, BYTE k){ return (cast(COLORREF)(((cast(BYTE)( <
                                                                                        >  2178  struct BITMAPINFO
                                                                                        >  2179  {
                                                                                        >  2180      BITMAPINFOHEADER bmiHeader;
                                                                                        >  2181      RGBQUAD[1]       bmiColors;
                                                                                        >  2182  };
                                                                                        >  2183  alias BITMAPINFO*PBITMAPINFO, LPBITMAPINFO;
  554                                                                                      2184  
  555  alias int FXPT16DOT16;                                                              2185  alias int FXPT16DOT16;
  556  alias int* LPFXPT16DOT16;                                                        |  2186  alias int*LPFXPT16DOT16;
  557  alias int FXPT2DOT30;                                                               2187  alias int FXPT2DOT30;
  558  alias int* LPFXPT2DOT30;                                                         |  2188  alias int*LPFXPT2DOT30;
  559                                                                                   |  2189  
  560  struct tagCIEXYZ {                                                               |  2190  struct CIEXYZ
                                                                                        >  2191  {
  561    FXPT2DOT30 ciexyzX;                                                            |  2192      FXPT2DOT30 ciexyzX;
  562    FXPT2DOT30 ciexyzY;                                                            |  2193      FXPT2DOT30 ciexyzY;
  563    FXPT2DOT30 ciexyzZ;                                                            |  2194      FXPT2DOT30 ciexyzZ;
  564  }                                                                                |  2195  }
  565  alias tagCIEXYZ CIEXYZ;                                                          <
  566                                                                                   <
  567  alias CIEXYZ* LPCIEXYZ;                                                          |  2196  alias CIEXYZ*LPCIEXYZ;
  568                                                                                   |  2197  
  569  struct tagICEXYZTRIPLE {                                                         |  2198  struct CIEXYZTRIPLE
                                                                                        >  2199  {
  570    CIEXYZ ciexyzRed;                                                              |  2200      CIEXYZ ciexyzRed;
  571    CIEXYZ ciexyzGreen;                                                            |  2201      CIEXYZ ciexyzGreen;
  572    CIEXYZ ciexyzBlue;                                                             |  2202      CIEXYZ ciexyzBlue;
  573  }                                                                                |  2203  }
  574  alias tagICEXYZTRIPLE CIEXYZTRIPLE;                                              <
  575                                                                                   <
  576  alias CIEXYZTRIPLE* LPCIEXYZTRIPLE;                                              |  2204  alias CIEXYZTRIPLE*LPCIEXYZTRIPLE;
  577                                                                                   |  2205  
  578  struct tagLOGCOLORSPACEA {                                                       <
  579    DWORD lcsSignature;                                                            <
  580    DWORD lcsVersion;                                                              <
  581    DWORD lcsSize;                                                                 <
  582    LCSCSTYPE lcsCSType;                                                           <
  583    LCSGAMUTMATCH lcsIntent;                                                       <
  584    CIEXYZTRIPLE lcsEndpoints;                                                     <
  585    DWORD lcsGammaRed;                                                             <
  586    DWORD lcsGammaGreen;                                                           <
  587    DWORD lcsGammaBlue;                                                            <
  588    CHAR lcsFilename[MAX_PATH];                                                    <
  589  }                                                                                <
  590  alias tagLOGCOLORSPACEA LOGCOLORSPACEA;                                          <
  591  alias tagLOGCOLORSPACEA* LPLOGCOLORSPACEA;                                       <
                                                                                        >  2206  struct BITMAPV4HEADER
  592                                                                                   |  2207  {
  593  struct tagLOGCOLORSPACEW {                                                       <
  594    DWORD lcsSignature;                                                            <
  595    DWORD lcsVersion;                                                              <
  596    DWORD lcsSize;                                                                 <
  597    LCSCSTYPE lcsCSType;                                                           <
  598    LCSGAMUTMATCH lcsIntent;                                                       <
  599    CIEXYZTRIPLE lcsEndpoints;                                                     <
  600    DWORD lcsGammaRed;                                                             <
  601    DWORD lcsGammaGreen;                                                           <
  602    DWORD lcsGammaBlue;                                                            <
  603    WCHAR lcsFilename[MAX_PATH];                                                   <
  604  }                                                                                <
  605  alias tagLOGCOLORSPACEW LOGCOLORSPACEW;                                          <
  606  alias tagLOGCOLORSPACEW* LPLOGCOLORSPACEW;                                       <
  607                                                                                   <
  608  // #ifdef UNICODE                                                                <
  609  alias LOGCOLORSPACEW LOGCOLORSPACE;                                              <
  610  alias LPLOGCOLORSPACEW LPLOGCOLORSPACE;                                          <
  611  // #else                                                                         <
  612  // ...                                                                           <
  613  // #endif // UNICODE                                                             <
  614                                                                                   <
  615  // #endif /* WINVER >= 0x0400 */                                                 <
  616                                                                                   <
  617  struct tagBITMAPCOREHEADER {                                                     <
  618    DWORD bcSize;                                                                  <
  619    WORD bcWidth;                                                                  <
  620    WORD bcHeight;                                                                 <
  621    WORD bcPlanes;                                                                 <
  622    WORD bcBitCount;                                                               <
  623  }                                                                                <
  624  alias tagBITMAPCOREHEADER BITMAPCOREHEADER;                                      <
  625  alias tagBITMAPCOREHEADER* LPBITMAPCOREHEADER;                                   <
  626  alias tagBITMAPCOREHEADER* PBITMAPCOREHEADER;                                    <
  627                                                                                   <
  628  struct tagBITMAPINFOHEADER {                                                     <
  629    DWORD biSize;                                                                  <
  630    LONG biWidth;                                                                  <
  631    LONG biHeight;                                                                 <
  632    WORD biPlanes;                                                                 <
  633    WORD biBitCount;                                                               <
  634    DWORD biCompression;                                                           <
  635    DWORD biSizeImage;                                                             <
  636    LONG biXPelsPerMeter;                                                          <
  637    LONG biYPelsPerMeter;                                                          <
  638    DWORD biClrUsed;                                                               <
  639    DWORD biClrImportant;                                                          <
  640  }                                                                                <
  641  alias tagBITMAPINFOHEADER BITMAPINFOHEADER;                                      <
  642  alias tagBITMAPINFOHEADER* LPBITMAPINFOHEADER;                                   <
  643  alias tagBITMAPINFOHEADER* PBITMAPINFOHEADER;                                    <
  644                                                                                   <
  645  // #if(WINVER >= 0x0400)                                                         <
  646  struct _0 {                                                                      <
  647    DWORD bV4Size;                                                                 |  2208      DWORD bV4Size;
  648    LONG bV4Width;                                                                 |  2209      LONG bV4Width;
  649    LONG bV4Height;                                                                |  2210      LONG bV4Height;
  650    WORD bV4Planes;                                                                |  2211      WORD bV4Planes;
  651    WORD bV4BitCount;                                                              |  2212      WORD bV4BitCount;
  652    DWORD bV4V4Compression;                                                        |  2213      DWORD bV4V4Compression;
  653    DWORD bV4SizeImage;                                                            |  2214      DWORD bV4SizeImage;
  654    LONG bV4XPelsPerMeter;                                                         |  2215      LONG bV4XPelsPerMeter;
  655    LONG bV4YPelsPerMeter;                                                         |  2216      LONG bV4YPelsPerMeter;
  656    DWORD bV4ClrUsed;                                                              |  2217      DWORD bV4ClrUsed;
  657    DWORD bV4ClrImportant;                                                         |  2218      DWORD bV4ClrImportant;
  658    DWORD bV4RedMask;                                                              |  2219      DWORD bV4RedMask;
  659    DWORD bV4GreenMask;                                                            |  2220      DWORD bV4GreenMask;
  660    DWORD bV4BlueMask;                                                             |  2221      DWORD bV4BlueMask;
  661    DWORD bV4AlphaMask;                                                            |  2222      DWORD bV4AlphaMask;
  662    DWORD bV4CSType;                                                               |  2223      DWORD bV4CSType;
  663    CIEXYZTRIPLE bV4Endpoints;                                                     |  2224      CIEXYZTRIPLE bV4Endpoints;
  664    DWORD bV4GammaRed;                                                             |  2225      DWORD bV4GammaRed;
  665    DWORD bV4GammaGreen;                                                           |  2226      DWORD bV4GammaGreen;
  666    DWORD bV4GammaBlue;                                                            |  2227      DWORD bV4GammaBlue;
  667  }                                                                                |  2228  }
  668  alias _0 BITMAPV4HEADER;                                                         <
  669  alias _0* LPBITMAPV4HEADER;                                                      <
  670  alias _0* PBITMAPV4HEADER;                                                       |  2229  alias BITMAPV4HEADER*LPBITMAPV4HEADER, PBITMAPV4HEADER;
  671                                                                                   |  2230  
  672  // #endif /* WINVER >= 0x0400 */                                                 <
                                                                                        >  2231  struct BITMAPV5HEADER
  673                                                                                   |  2232  {
  674  // #if (WINVER >= 0x0500)                                                        <
  675  struct _1 {                                                                      <
  676    DWORD bV5Size;                                                                 |  2233      DWORD bV5Size;
  677    LONG bV5Width;                                                                 |  2234      LONG bV5Width;
  678    LONG bV5Height;                                                                |  2235      LONG bV5Height;
  679    WORD bV5Planes;                                                                |  2236      WORD bV5Planes;
  680    WORD bV5BitCount;                                                              |  2237      WORD bV5BitCount;
  681    DWORD bV5Compression;                                                          |  2238      DWORD bV5Compression;
  682    DWORD bV5SizeImage;                                                            |  2239      DWORD bV5SizeImage;
  683    LONG bV5XPelsPerMeter;                                                         |  2240      LONG bV5XPelsPerMeter;
  684    LONG bV5YPelsPerMeter;                                                         |  2241      LONG bV5YPelsPerMeter;
  685    DWORD bV5ClrUsed;                                                              |  2242      DWORD bV5ClrUsed;
  686    DWORD bV5ClrImportant;                                                         |  2243      DWORD bV5ClrImportant;
  687    DWORD bV5RedMask;                                                              |  2244      DWORD bV5RedMask;
  688    DWORD bV5GreenMask;                                                            |  2245      DWORD bV5GreenMask;
  689    DWORD bV5BlueMask;                                                             |  2246      DWORD bV5BlueMask;
  690    DWORD bV5AlphaMask;                                                            |  2247      DWORD bV5AlphaMask;
  691    DWORD bV5CSType;                                                               |  2248      DWORD bV5CSType;
  692    CIEXYZTRIPLE bV5Endpoints;                                                     |  2249      CIEXYZTRIPLE bV5Endpoints;
  693    DWORD bV5GammaRed;                                                             |  2250      DWORD bV5GammaRed;
  694    DWORD bV5GammaGreen;                                                           |  2251      DWORD bV5GammaGreen;
  695    DWORD bV5GammaBlue;                                                            |  2252      DWORD bV5GammaBlue;
  696    DWORD bV5Intent;                                                               |  2253      DWORD bV5Intent;
  697    DWORD bV5ProfileData;                                                          |  2254      DWORD bV5ProfileData;
  698    DWORD bV5ProfileSize;                                                          |  2255      DWORD bV5ProfileSize;
  699    DWORD bV5Reserved;                                                             |  2256      DWORD bV5Reserved;
  700  }                                                                                |  2257  }
  701  alias _1 BITMAPV5HEADER;                                                         <
  702  alias _1* LPBITMAPV5HEADER;                                                      <
  703  alias _1* PBITMAPV5HEADER;                                                       |  2258  alias BITMAPV5HEADER*LPBITMAPV5HEADER, PBITMAPV5HEADER;
  704                                                                                   |  2259  
  705  // #define PROFILE_LINKED 'LINK'                                                 <
  706  // #define PROFILE_EMBEDDED 'MBED'                                               <
  707  // #endif                                                                        <
                                                                                        >  2260  struct FONTSIGNATURE
  708                                                                                   |  2261  {
  709  enum : uint { BI_RGB = 0 }                                                       <
  710  enum : uint { BI_RLE8 = 1 }                                                      <
  711  enum : uint { BI_RLE4 = 2 }                                                      <
  712  enum : uint { BI_BITFIELDS = 3 }                                                 <
  713  enum : uint { BI_JPEG = 4 }                                                      <
  714  enum : uint { BI_PNG = 5 }                                                       <
  715  // #if (_WIN32_WINNT >= 0x0400)                                                  <
  716  // #endif                                                                        <
                                                                                        >  2262      DWORD[4] fsUsb;
                                                                                        >  2263      DWORD[2] fsCsb;
  717                                                                                   |  2264  }
  718  struct tagBITMAPINFO {                                                           <
  719    BITMAPINFOHEADER bmiHeader;                                                    <
  720    RGBQUAD bmiColors[1];                                                          <
                                                                                        >  2265  alias FONTSIGNATURE*PFONTSIGNATURE, LPFONTSIGNATURE;
  721  }                                                                                |  2266  
  722  alias tagBITMAPINFO BITMAPINFO;                                                  <
  723  alias tagBITMAPINFO* LPBITMAPINFO;                                               <
  724  alias tagBITMAPINFO* PBITMAPINFO;                                                <
                                                                                        >  2267  struct CHARSETINFO
  725                                                                                   |  2268  {
  726  struct tagBITMAPCOREINFO {                                                       <
  727    BITMAPCOREHEADER bmciHeader;                                                   <
  728    RGBTRIPLE bmciColors[1];                                                       <
                                                                                        >  2269      UINT ciCharset;
                                                                                        >  2270      UINT ciACP;
                                                                                        >  2271      FONTSIGNATURE fs;
  729  }                                                                                |  2272  }
  730  alias tagBITMAPCOREINFO BITMAPCOREINFO;                                          <
  731  alias tagBITMAPCOREINFO* LPBITMAPCOREINFO;                                       <
  732  alias tagBITMAPCOREINFO* PBITMAPCOREINFO;                                        <
                                                                                        >  2273  alias CHARSETINFO*PCHARSETINFO, NPCHARSETINFO, LPCHARSETINFO;
  733                                                                                   |  2274  
  734  align(2):                                                                        <
  735  struct tagBITMAPFILEHEADER {                                                     <
                                                                                        >  2275  struct COLORADJUSTMENT
                                                                                        >  2276  {
  736    WORD bfType;                                                                   |  2277      WORD caSize;
  737    DWORD bfSize;                                                                  |  2278      WORD caFlags;
                                                                                        >  2279      WORD caIlluminantIndex;
                                                                                        >  2280      WORD caRedGamma;
                                                                                        >  2281      WORD caGreenGamma;
                                                                                        >  2282      WORD caBlueGamma;
                                                                                        >  2283      WORD caReferenceBlack;
                                                                                        >  2284      WORD caReferenceWhite;
                                                                                        >  2285      SHORT caContrast;
                                                                                        >  2286      SHORT caBrightness;
                                                                                        >  2287      SHORT caColorfulness;
                                                                                        >  2288      SHORT caRedGreenTint;
                                                                                        >  2289  }
                                                                                        >  2290  alias COLORADJUSTMENT*PCOLORADJUSTMENT, LPCOLORADJUSTMENT;
                                                                                        >  2291  
                                                                                        >  2292  struct DEVMODEA
                                                                                        >  2293  {
                                                                                        >  2294      BYTE[CCHDEVICENAME] dmDeviceName;
                                                                                        >  2295      WORD dmSpecVersion;
                                                                                        >  2296      WORD dmDriverVersion;
  738    WORD bfReserved1;                                                              |  2297      WORD dmSize;
  739    WORD bfReserved2;                                                              <
                                                                                        >  2298      WORD dmDriverExtra;
  740    DWORD bfOffBits;                                                               |  2299      DWORD dmFields;
                                                                                        >  2300      union {
                                                                                        >  2301          struct
                                                                                        >  2302          {
                                                                                        >  2303              short dmOrientation;
                                                                                        >  2304              short dmPaperSize;
                                                                                        >  2305              short dmPaperLength;
                                                                                        >  2306              short dmPaperWidth;
                                                                                        >  2307              short dmScale;
                                                                                        >  2308              short dmCopies;
                                                                                        >  2309              short dmDefaultSource;
                                                                                        >  2310              short dmPrintQuality;
  741  }                                                                                |  2311          }
  742  alias tagBITMAPFILEHEADER BITMAPFILEHEADER;                                      <
  743  alias tagBITMAPFILEHEADER* LPBITMAPFILEHEADER;                                   <
  744  alias tagBITMAPFILEHEADER* PBITMAPFILEHEADER;                                    <
                                                                                        >  2312          POINTL dmPosition;
                                                                                        >  2313          DWORD dmDisplayOrientation;
                                                                                        >  2314          DWORD dmDisplayFixedOutput;
  745                                                                                   |  2315      }
  746  align:                                                                           <
                                                                                        >  2316      short dmColor;
                                                                                        >  2317      short dmDuplex;
                                                                                        >  2318      short dmYResolution;
                                                                                        >  2319      short dmTTOption;
                                                                                        >  2320      short dmCollate;
                                                                                        >  2321      BYTE[CCHFORMNAME]   dmFormName;
                                                                                        >  2322      WORD dmLogPixels;
                                                                                        >  2323      DWORD dmBitsPerPel;
                                                                                        >  2324      DWORD dmPelsWidth;
                                                                                        >  2325      DWORD dmPelsHeight;
                                                                                        >  2326      union {
                                                                                        >  2327          DWORD dmDisplayFlags;
                                                                                        >  2328          DWORD dmNup;
  747                                                                                   |  2329      }
  748  // #define MAKEPOINTS(l) (*((POINTS FAR *)&(l)))                                 <
                                                                                        >  2330      DWORD dmDisplayFrequency;
                                                                                        >  2331      static
  749                                                                                   |  2332  
  750  // #if(WINVER >= 0x0400)                                                         |  2333      if (WINVER >= 0x0400)
  751  // #ifndef NOFONTSIG                                                             <
  752  struct tagFONTSIGNATURE {                                                        <
                                                                                        >  2334      {
  753    DWORD fsUsb[4];                                                                |  2335          DWORD dmICMMethod;
  754    DWORD fsCsb[2];                                                                |  2336          DWORD dmICMIntent;
                                                                                        >  2337          DWORD dmMediaType;
                                                                                        >  2338          DWORD dmDitherType;
                                                                                        >  2339          DWORD dmReserved1;
                                                                                        >  2340          DWORD dmReserved2;
                                                                                        >  2341          static
  755  }                                                                                |  2342  
  756  alias tagFONTSIGNATURE FONTSIGNATURE;                                            <
  757  alias tagFONTSIGNATURE* PFONTSIGNATURE;                                          <
  758  alias tagFONTSIGNATURE* LPFONTSIGNATURE;                                         <
                                                                                        >  2343          if ((WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400))
  759                                                                                   |  2344          {
  760  struct tagCHARSETINFO {                                                          <
  761    UINT ciCharset;                                                                <
  762    UINT ciACP;                                                                    <
  763    FONTSIGNATURE fs;                                                              <
                                                                                        >  2345              DWORD dmPanningWidth;
                                                                                        >  2346              DWORD dmPanningHeight;
  764  }                                                                                |  2347          }
  765  alias tagCHARSETINFO CHARSETINFO;                                                <
  766  alias tagCHARSETINFO* PCHARSETINFO;                                              <
  767  alias tagCHARSETINFO* NPCHARSETINFO;                                             <
  768  alias tagCHARSETINFO* LPCHARSETINFO;                                             <
  769                                                                                   |  2348      }
  770  enum : uint { TCI_SRCCHARSET = 1 }                                               <
  771  enum : uint { TCI_SRCCODEPAGE = 2 }                                              <
  772  enum : uint { TCI_SRCFONTSIG = 3 }                                               <
  773                                                                                   |  2349  }
  774  struct tagLOCALESIGNATURE {                                                      <
  775    DWORD lsUsb[4];                                                                <
  776    DWORD lsCsbDefault[2];                                                         <
  777    DWORD lsCsbSupported[2];                                                       <
                                                                                        >  2350  alias DEVMODEA*PDEVMODEA, NPDEVMODEA, LPDEVMODEA;
  778  }                                                                                |  2351  
  779  alias tagLOCALESIGNATURE LOCALESIGNATURE;                                        <
  780  alias tagLOCALESIGNATURE* PLOCALESIGNATURE;                                      <
  781  alias tagLOCALESIGNATURE* LPLOCALESIGNATURE;                                     <
                                                                                        >  2352  struct DEVMODEW
  782                                                                                   |  2353  {
  783  // #endif                                                                        <
  784  // #endif /* WINVER >= 0x0400 */                                                 <
                                                                                        >  2354      WCHAR[CCHDEVICENAME]   dmDeviceName;
                                                                                        >  2355      WORD dmSpecVersion;
                                                                                        >  2356      WORD dmDriverVersion;
                                                                                        >  2357      WORD dmSize;
                                                                                        >  2358      WORD dmDriverExtra;
                                                                                        >  2359      DWORD dmFields;
                                                                                        >  2360      union {
                                                                                        >  2361          struct
  785                                                                                   |  2362          {
  786  // #ifndef NOMETAFILE                                                            <
                                                                                        >  2363              short dmOrientation;
                                                                                        >  2364              short dmPaperSize;
                                                                                        >  2365              short dmPaperLength;
                                                                                        >  2366              short dmPaperWidth;
                                                                                        >  2367              short dmScale;
                                                                                        >  2368              short dmCopies;
                                                                                        >  2369              short dmDefaultSource;
                                                                                        >  2370              short dmPrintQuality;
  787                                                                                   |  2371          }
  788  struct tagHANDLETABLE {                                                          <
  789    HGDIOBJ objectHandle[1];                                                       <
                                                                                        >  2372          POINTL dmPosition;
                                                                                        >  2373          DWORD dmDisplayOrientation;
                                                                                        >  2374          DWORD dmDisplayFixedOutput;
  790  }                                                                                |  2375      }
  791  alias tagHANDLETABLE HANDLETABLE;                                                <
  792  alias tagHANDLETABLE* PHANDLETABLE;                                              <
  793  alias tagHANDLETABLE* LPHANDLETABLE;                                             <
  794                                                                                   |  2376  
  795  struct tagMETARECORD {                                                           <
                                                                                        >  2377      short dmColor;
                                                                                        >  2378      short dmDuplex;
                                                                                        >  2379      short dmYResolution;
                                                                                        >  2380      short dmTTOption;
                                                                                        >  2381      short dmCollate;
                                                                                        >  2382      WCHAR[CCHFORMNAME]  dmFormName;
                                                                                        >  2383      WORD dmLogPixels;
                                                                                        >  2384      DWORD dmBitsPerPel;
  796    DWORD rdSize;                                                                  |  2385      DWORD dmPelsWidth;
  797    WORD rdFunction;                                                               <
                                                                                        >  2386      DWORD dmPelsHeight;
                                                                                        >  2387      union {
                                                                                        >  2388          DWORD dmDisplayFlags;
  798    WORD rdParm[1];                                                                |  2389          DWORD dmNup;
  799  }                                                                                |  2390      }
  800  alias tagMETARECORD METARECORD;                                                  <
                                                                                        >  2391      DWORD dmDisplayFrequency;
                                                                                        >  2392      static
  801                                                                                   |  2393  
  802  alias tagMETARECORD* PMETARECORD;                                                <
  803  alias tagMETARECORD* LPMETARECORD;                                               <
                                                                                        >  2394      if (WINVER >= 0x0400)
  804                                                                                   |  2395      {
  805  struct tagMETAFILEPICT {                                                         <
  806    LONG mm;                                                                       <
  807    LONG xExt;                                                                     <
  808    LONG yExt;                                                                     <
  809    HMETAFILE hMF;                                                                 <
                                                                                        >  2396          DWORD dmICMMethod;
                                                                                        >  2397          DWORD dmICMIntent;
                                                                                        >  2398          DWORD dmMediaType;
                                                                                        >  2399          DWORD dmDitherType;
                                                                                        >  2400          DWORD dmReserved1;
                                                                                        >  2401          DWORD dmReserved2;
                                                                                        >  2402          static
  810  }                                                                                |  2403  
  811  alias tagMETAFILEPICT METAFILEPICT;                                              <
  812  alias tagMETAFILEPICT* LPMETAFILEPICT;                                           <
                                                                                        >  2404          if ((WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400))
  813                                                                                   |  2405          {
  814  align(2):                                                                        <
  815  struct tagMETAHEADER {                                                           <
  816    WORD mtType;                                                                   <
  817    WORD mtHeaderSize;                                                             <
  818    WORD mtVersion;                                                                <
  819    DWORD mtSize;                                                                  |  2406              DWORD dmPanningWidth;
  820    WORD mtNoObjects;                                                              <
  821    DWORD mtMaxRecord;                                                             <
  822    WORD mtNoParameters;                                                           <
                                                                                        >  2407              DWORD dmPanningHeight;
  823  }                                                                                |  2408          }
  824  alias tagMETAHEADER METAHEADER;                                                  <
  825                                                                                   |  2409      }
  826  alias tagMETAHEADER* PMETAHEADER;                                                <
  827  alias tagMETAHEADER* LPMETAHEADER;                                               <
  828                                                                                   |  2410  }
  829  align:                                                                           <
                                                                                        >  2411  alias DEVMODEW*PDEVMODEW, NPDEVMODEW, LPDEVMODEW;
  830                                                                                   |  2412  
  831  struct tagENHMETARECORD {                                                        <
  832    DWORD iType;                                                                   <
  833    DWORD nSize;                                                                   <
  834    DWORD dParm[1];                                                                <
                                                                                        >  2413  /*
                                                                                        >  2414   * Information about output options
                                                                                        >  2415   */
                                                                                        >  2416  struct PSFEATURE_OUTPUT
                                                                                        >  2417  {
                                                                                        >  2418      BOOL bPageIndependent;
                                                                                        >  2419      BOOL bSetPageDevice;
  835  }                                                                                |  2420  }
  836  alias tagENHMETARECORD ENHMETARECORD;                                            <
  837  alias tagENHMETARECORD* PENHMETARECORD;                                          <
  838  alias tagENHMETARECORD* LPENHMETARECORD;                                         <
                                                                                        >  2421  alias PSFEATURE_OUTPUT*PPSFEATURE_OUTPUT;
  839                                                                                   |  2422  
  840  struct tagENHMETAHEADER {                                                        <
  841    DWORD iType;                                                                   <
  842    DWORD nSize;                                                                   <
                                                                                        >  2423  /*
                                                                                        >  2424   * Information about custom paper size
                                                                                        >  2425   */
                                                                                        >  2426  struct PSFEATURE_CUSTPAPER
  843                                                                                   |  2427  {
  844    RECTL rclBounds;                                                               <
  845    RECTL rclFrame;                                                                <
  846    DWORD dSignature;                                                              <
  847    DWORD nVersion;                                                                <
  848    DWORD nBytes;                                                                  <
  849    DWORD nRecords;                                                                <
  850    WORD nHandles;                                                                 <
                                                                                        >  2428      LONG lOrientation;
                                                                                        >  2429      LONG lWidth;
                                                                                        >  2430      LONG lHeight;
                                                                                        >  2431      LONG lWidthOffset;
                                                                                        >  2432      LONG lHeightOffset;
  851                                                                                   |  2433  }
  852    WORD sReserved;                                                                <
  853    DWORD nDescription;                                                            <
                                                                                        >  2434  alias PSFEATURE_CUSTPAPER*PPSFEATURE_CUSTPAPER;
  854                                                                                   |  2435  
  855    DWORD offDescription;                                                          <
                                                                                        >  2436  struct DIBSECTION
  856                                                                                   |  2437  {
                                                                                        >  2438      BITMAP dsBm;
                                                                                        >  2439      BITMAPINFOHEADER dsBmih;
                                                                                        >  2440      DWORD[3]         dsBitfields;
                                                                                        >  2441      HANDLE dshSection;
  857    DWORD nPalEntries;                                                             |  2442      DWORD dsOffset;
  858    SIZEL szlDevice;                                                               <
  859    SIZEL szlMillimeters;                                                          <
  860  // #if(WINVER >= 0x0400)                                                         <
  861    DWORD cbPixelFormat;                                                           <
  862                                                                                   |  2443  }
  863    DWORD offPixelFormat;                                                          <
                                                                                        >  2444  alias DIBSECTION*PDIBSECTION;
  864                                                                                   |  2445  
                                                                                        >  2446  struct DOCINFOA
                                                                                        >  2447  {
                                                                                        >  2448      int cbSize = DOCINFOA.sizeof;
                                                                                        >  2449      LPCSTR lpszDocName;
                                                                                        >  2450      LPCSTR lpszOutput;
                                                                                        >  2451      LPCSTR lpszDatatype;
  865    DWORD bOpenGL;                                                                 |  2452      DWORD fwType;
  866                                                                                   |  2453  }
  867  // #endif /* WINVER >= 0x0400 */                                                 <
  868  // #if(WINVER >= 0x0500)                                                         <
  869    SIZEL szlMicrometers;                                                          <
  870  // #endif /* WINVER >= 0x0500 */                                                 <
                                                                                        >  2454  alias DOCINFOA*LPDOCINFOA;
  871                                                                                   |  2455  
                                                                                        >  2456  struct DOCINFOW
                                                                                        >  2457  {
                                                                                        >  2458      int cbSize = DOCINFOW.sizeof;
                                                                                        >  2459      LPCWSTR lpszDocName;
                                                                                        >  2460      LPCWSTR lpszOutput;
                                                                                        >  2461      LPCWSTR lpszDatatype;
                                                                                        >  2462      DWORD fwType;
  872  }                                                                                |  2463  }
  873  alias tagENHMETAHEADER ENHMETAHEADER;                                            <
  874  alias tagENHMETAHEADER* PENHMETAHEADER;                                          <
  875  alias tagENHMETAHEADER* LPENHMETAHEADER;                                         <
                                                                                        >  2464  alias DOCINFOW*LPDOCINFOW;
  876                                                                                   |  2465  
  877  // #endif /* NOMETAFILE */                                                       <
                                                                                        >  2466  struct PANOSE
  878                                                                                   |  2467  {
  879  // #ifndef NOTEXTMETRIC                                                          <
                                                                                        >  2468      BYTE bFamilyType;
                                                                                        >  2469      BYTE bSerifStyle;
                                                                                        >  2470      BYTE bWeight;
                                                                                        >  2471      BYTE bProportion;
                                                                                        >  2472      BYTE bContrast;
                                                                                        >  2473      BYTE bStrokeVariation;
                                                                                        >  2474      BYTE bArmStyle;
                                                                                        >  2475      BYTE bLetterform;
                                                                                        >  2476      BYTE bMidline;
                                                                                        >  2477      BYTE bXHeight;
  880                                                                                   |  2478  }
  881  enum : uint { TMPF_FIXED_PITCH = 0x01 }                                          <
  882  enum : uint { TMPF_VECTOR = 0x02 }                                               <
  883  enum : uint { TMPF_DEVICE = 0x08 }                                               <
  884  enum : uint { TMPF_TRUETYPE = 0x04 }                                             <
                                                                                        >  2479  alias PANOSE*LPPANOSE;
  885                                                                                   |  2480  
  886  // #ifdef UNICODE                                                                <
  887  alias WCHAR BCHAR;                                                               <
  888  // #else                                                                         <
  889  // ...                                                                           <
  890  // #endif                                                                        <
                                                                                        >  2481  struct LOGFONTA
  891                                                                                   |  2482  {
  892  // #ifndef _TEXTMETRIC_DEFINED                                                   <
  893  // #define _TEXTMETRIC_DEFINED                                                   <
  894  struct tagTEXTMETRICA {                                                          <
  895    LONG tmHeight;                                                                 |  2483      LONG lfHeight;
  896    LONG tmAscent;                                                                 |  2484      LONG lfWidth;
  897    LONG tmDescent;                                                                <
  898    LONG tmInternalLeading;                                                        <
  899    LONG tmExternalLeading;                                                        <
  900    LONG tmAveCharWidth;                                                           <
  901    LONG tmMaxCharWidth;                                                           <
                                                                                        >  2485      LONG lfEscapement;
                                                                                        >  2486      LONG lfOrientation;
  902    LONG tmWeight;                                                                 |  2487      LONG lfWeight;
  903    LONG tmOverhang;                                                               <
  904    LONG tmDigitizedAspectX;                                                       <
  905    LONG tmDigitizedAspectY;                                                       <
  906    BYTE tmFirstChar;                                                              <
  907    BYTE tmLastChar;                                                               <
  908    BYTE tmDefaultChar;                                                            <
  909    BYTE tmBreakChar;                                                              <
  910    BYTE tmItalic;                                                                 |  2488      BYTE lfItalic;
  911    BYTE tmUnderlined;                                                             |  2489      BYTE lfUnderline;
  912    BYTE tmStruckOut;                                                              <
                                                                                        >  2490      BYTE lfStrikeOut;
                                                                                        >  2491      BYTE lfCharSet;
                                                                                        >  2492      BYTE lfOutPrecision;
                                                                                        >  2493      BYTE lfClipPrecision;
                                                                                        >  2494      BYTE lfQuality;
  913    BYTE tmPitchAndFamily;                                                         |  2495      BYTE lfPitchAndFamily;
  914    BYTE tmCharSet;                                                                <
                                                                                        >  2496      CHAR[LF_FACESIZE] lfFaceName;
  915  }                                                                                |  2497  }
  916  alias tagTEXTMETRICA TEXTMETRICA;                                                <
  917  alias tagTEXTMETRICA* PTEXTMETRICA;                                              <
  918  alias tagTEXTMETRICA* NPTEXTMETRICA;                                             <
  919  alias tagTEXTMETRICA* LPTEXTMETRICA;                                             <
                                                                                        >  2498  alias LOGFONTA*PLOGFONTA, NPLOGFONTA, LPLOGFONTA;
  920                                                                                   |  2499  
  921  struct tagTEXTMETRICW {                                                          |  2500  struct LOGFONTW
                                                                                        >  2501  {
  922    LONG tmHeight;                                                                 |  2502      LONG lfHeight;
  923    LONG tmAscent;                                                                 |  2503      LONG lfWidth;
  924    LONG tmDescent;                                                                <
  925    LONG tmInternalLeading;                                                        <
  926    LONG tmExternalLeading;                                                        <
  927    LONG tmAveCharWidth;                                                           <
  928    LONG tmMaxCharWidth;                                                           <
                                                                                        >  2504      LONG lfEscapement;
                                                                                        >  2505      LONG lfOrientation;
  929    LONG tmWeight;                                                                 |  2506      LONG lfWeight;
  930    LONG tmOverhang;                                                               <
  931    LONG tmDigitizedAspectX;                                                       <
  932    LONG tmDigitizedAspectY;                                                       <
  933    WCHAR tmFirstChar;                                                             <
  934    WCHAR tmLastChar;                                                              <
  935    WCHAR tmDefaultChar;                                                           <
  936    WCHAR tmBreakChar;                                                             <
  937    BYTE tmItalic;                                                                 |  2507      BYTE lfItalic;
  938    BYTE tmUnderlined;                                                             |  2508      BYTE lfUnderline;
  939    BYTE tmStruckOut;                                                              <
                                                                                        >  2509      BYTE lfStrikeOut;
                                                                                        >  2510      BYTE lfCharSet;
                                                                                        >  2511      BYTE lfOutPrecision;
                                                                                        >  2512      BYTE lfClipPrecision;
                                                                                        >  2513      BYTE lfQuality;
  940    BYTE tmPitchAndFamily;                                                         |  2514      BYTE lfPitchAndFamily;
  941    BYTE tmCharSet;                                                                <
                                                                                        >  2515      WCHAR[LF_FACESIZE] lfFaceName;
  942  }                                                                                |  2516  }
  943  alias tagTEXTMETRICW TEXTMETRICW;                                                <
  944  alias tagTEXTMETRICW* PTEXTMETRICW;                                              <
  945  alias tagTEXTMETRICW* NPTEXTMETRICW;                                             <
  946  alias tagTEXTMETRICW* LPTEXTMETRICW;                                             <
                                                                                        >  2517  alias LOGFONTW*PLOGFONTW, NPLOGFONTW, LPLOGFONTW;
  947                                                                                   |  2518  
  948  // #ifdef UNICODE                                                                <
  949  alias TEXTMETRICW TEXTMETRIC;                                                    <
  950  alias PTEXTMETRICW PTEXTMETRIC;                                                  <
  951  alias NPTEXTMETRICW NPTEXTMETRIC;                                                <
  952  alias LPTEXTMETRICW LPTEXTMETRIC;                                                <
  953  // #else                                                                         <
  954  // ...                                                                           <
  955  // #endif // UNICODE                                                             <
  956  // #endif // !_TEXTMETRIC_DEFINED                                                <
                                                                                        >  2519  struct EXTLOGFONTA
  957                                                                                   |  2520  {
  958  enum : uint { NTM_REGULAR = 0x00000040 }                                         <
  959  enum : uint { NTM_BOLD = 0x00000020 }                                            <
  960  enum : uint { NTM_ITALIC = 0x00000001 }                                          <
                                                                                        >  2521      LOGFONTA elfLogFont;
                                                                                        >  2522      BYTE[LF_FULLFACESIZE] elfFullName;
                                                                                        >  2523      BYTE[LF_FACESIZE]     elfStyle;
                                                                                        >  2524      DWORD elfVersion;
                                                                                        >  2525      DWORD elfStyleSize;
                                                                                        >  2526      DWORD elfMatch;
                                                                                        >  2527      DWORD elfReserved;
                                                                                        >  2528      BYTE[ELF_VENDOR_SIZE] elfVendorId;
                                                                                        >  2529      DWORD elfCulture;
                                                                                        >  2530      PANOSE elfPanose;
  961                                                                                   |  2531  }
  962  enum : uint { NTM_NONNEGATIVE_AC = 0x00010000 }                                  <
  963  enum : uint { NTM_PS_OPENTYPE = 0x00020000 }                                     <
  964  enum : uint { NTM_TT_OPENTYPE = 0x00040000 }                                     <
  965  enum : uint { NTM_MULTIPLEMASTER = 0x00080000 }                                  <
  966  enum : uint { NTM_TYPE1 = 0x00100000 }                                           <
  967  enum : uint { NTM_DSIG = 0x00200000 }                                            <
                                                                                        >  2532  alias EXTLOGFONTA*PEXTLOGFONTA, NPEXTLOGFONTA, LPEXTLOGFONTA;
  968                                                                                   |  2533  
  969  align(4):                                                                        <
  970  struct tagNEWTEXTMETRICA {                                                       <
  971    LONG tmHeight;                                                                 <
  972    LONG tmAscent;                                                                 <
  973    LONG tmDescent;                                                                <
  974    LONG tmInternalLeading;                                                        <
  975    LONG tmExternalLeading;                                                        <
  976    LONG tmAveCharWidth;                                                           <
  977    LONG tmMaxCharWidth;                                                           <
  978    LONG tmWeight;                                                                 <
  979    LONG tmOverhang;                                                               <
  980    LONG tmDigitizedAspectX;                                                       <
  981    LONG tmDigitizedAspectY;                                                       <
  982    BYTE tmFirstChar;                                                              <
  983    BYTE tmLastChar;                                                               <
  984    BYTE tmDefaultChar;                                                            <
  985    BYTE tmBreakChar;                                                              <
  986    BYTE tmItalic;                                                                 <
  987    BYTE tmUnderlined;                                                             <
  988    BYTE tmStruckOut;                                                              <
  989    BYTE tmPitchAndFamily;                                                         <
  990    BYTE tmCharSet;                                                                <
                                                                                        >  2534  struct EXTLOGFONTW
                                                                                        >  2535  {
                                                                                        >  2536      LOGFONTW elfLogFont;
                                                                                        >  2537      WCHAR[LF_FULLFACESIZE] elfFullName;
                                                                                        >  2538      WCHAR[LF_FACESIZE]     elfStyle;
                                                                                        >  2539      DWORD elfVersion;
                                                                                        >  2540      DWORD elfStyleSize;
  991    DWORD ntmFlags;                                                                |  2541      DWORD elfMatch;
  992    UINT ntmSizeEM;                                                                <
  993    UINT ntmCellHeight;                                                            <
                                                                                        >  2542      DWORD elfReserved;
                                                                                        >  2543      BYTE[ELF_VENDOR_SIZE]  elfVendorId;
                                                                                        >  2544      DWORD elfCulture;
                                                                                        >  2545      PANOSE elfPanose;
                                                                                        >  2546  }
                                                                                        >  2547  alias EXTLOGFONTW*PEXTLOGFONTW, NPEXTLOGFONTW, LPEXTLOGFONTW;
                                                                                        >  2548  
                                                                                        >  2549  struct LOGPEN
                                                                                        >  2550  {
                                                                                        >  2551      UINT lopnStyle;
  994    UINT ntmAvgWidth;                                                              |  2552      POINT lopnWidth;
                                                                                        >  2553      COLORREF lopnColor;
  995  }                                                                                |  2554  }
  996  alias tagNEWTEXTMETRICA NEWTEXTMETRICA;                                          <
  997  alias tagNEWTEXTMETRICA* PNEWTEXTMETRICA;                                        <
  998  alias tagNEWTEXTMETRICA* NPNEWTEXTMETRICA;                                       <
  999  alias tagNEWTEXTMETRICA* LPNEWTEXTMETRICA;                                       <
                                                                                        >  2555  alias LOGPEN*PLOGPEN, NPLOGPEN, LPLOGPEN;
 1000                                                                                   |  2556  
                                                                                        >  2557  // ---------------------- EMR ------------
                                                                                        >  2558  
 1001  struct tagNEWTEXTMETRICW {                                                       |  2559  struct EMR
 1002    LONG tmHeight;                                                                 <
 1003    LONG tmAscent;                                                                 <
 1004    LONG tmDescent;                                                                <
 1005    LONG tmInternalLeading;                                                        <
 1006    LONG tmExternalLeading;                                                        <
 1007    LONG tmAveCharWidth;                                                           <
 1008    LONG tmMaxCharWidth;                                                           <
 1009    LONG tmWeight;                                                                 <
 1010    LONG tmOverhang;                                                               <
 1011    LONG tmDigitizedAspectX;                                                       <
 1012    LONG tmDigitizedAspectY;                                                       <
 1013    WCHAR tmFirstChar;                                                             <
 1014    WCHAR tmLastChar;                                                              <
 1015    WCHAR tmDefaultChar;                                                           <
 1016    WCHAR tmBreakChar;                                                             <
 1017    BYTE tmItalic;                                                                 <
 1018    BYTE tmUnderlined;                                                             <
 1019    BYTE tmStruckOut;                                                              <
 1020    BYTE tmPitchAndFamily;                                                         <
 1021    BYTE tmCharSet;                                                                <
                                                                                        >  2560  {
                                                                                        >  2561      DWORD iType;
 1022    DWORD ntmFlags;                                                                |  2562      DWORD nSize;
 1023    UINT ntmSizeEM;                                                                <
 1024    UINT ntmCellHeight;                                                            <
 1025    UINT ntmAvgWidth;                                                              <
 1026  }                                                                                |  2563  }
 1027  alias tagNEWTEXTMETRICW NEWTEXTMETRICW;                                          <
 1028  alias tagNEWTEXTMETRICW* PNEWTEXTMETRICW;                                        <
 1029  alias tagNEWTEXTMETRICW* NPNEWTEXTMETRICW;                                       <
 1030  alias tagNEWTEXTMETRICW* LPNEWTEXTMETRICW;                                       <
                                                                                        >  2564  alias EMR*PEMR;
 1031                                                                                   |  2565  
 1032  // #ifdef UNICODE                                                                <
 1033  alias NEWTEXTMETRICW NEWTEXTMETRIC;                                              <
 1034  alias PNEWTEXTMETRICW PNEWTEXTMETRIC;                                            <
 1035  alias NPNEWTEXTMETRICW NPNEWTEXTMETRIC;                                          <
 1036  alias LPNEWTEXTMETRICW LPNEWTEXTMETRIC;                                          <
 1037  // #else                                                                         <
 1038  // ...                                                                           <
 1039  // #endif // UNICODE                                                             <
 1040  align:                                                                           <
                                                                                        >  2566  struct EMRANGLEARC
 1041                                                                                   |  2567  {
 1042  // #if(WINVER >= 0x0400)                                                         <
 1043  struct tagNEWTEXTMETRICEXA {                                                     <
 1044    NEWTEXTMETRICA ntmTm;                                                          <
 1045    FONTSIGNATURE ntmFontSig;                                                      <
                                                                                        >  2568      EMR emr;
                                                                                        >  2569      POINTL ptlCenter;
                                                                                        >  2570      DWORD nRadius;
                                                                                        >  2571      FLOAT eStartAngle;
                                                                                        >  2572      FLOAT eSweepAngle;
 1046  }                                                                                |  2573  }
 1047  alias tagNEWTEXTMETRICEXA NEWTEXTMETRICEXA;                                      <
                                                                                        >  2574  alias EMRANGLEARC*PEMRANGLEARC;
 1048                                                                                   |  2575  
 1049  struct tagNEWTEXTMETRICEXW {                                                     |  2576  struct EMRARC
 1050    NEWTEXTMETRICW ntmTm;                                                          <
 1051    FONTSIGNATURE ntmFontSig;                                                      <
                                                                                        >  2577  {
                                                                                        >  2578      EMR emr;
                                                                                        >  2579      RECTL rclBox;
                                                                                        >  2580      POINTL ptlStart;
                                                                                        >  2581      POINTL ptlEnd;
 1052  }                                                                                |  2582  }
 1053  alias tagNEWTEXTMETRICEXW NEWTEXTMETRICEXW;                                      <
                                                                                        >  2583  alias EMRARC*PEMRARC;
                                                                                        >  2584  alias EMRARC EMRARCTO;
                                                                                        >  2585  alias EMRARCTO*PEMRARCTO;
                                                                                        >  2586  alias EMRARC EMRCHORD;
                                                                                        >  2587  alias EMRCHORD*PEMRCHORD;
                                                                                        >  2588  alias EMRARC EMRPIE;
                                                                                        >  2589  alias EMRPIE*PEMRPIE;
 1054                                                                                   |  2590  
 1055  // #ifdef UNICODE                                                                <
 1056  alias NEWTEXTMETRICEXW NEWTEXTMETRICEX;                                          <
 1057  // #else                                                                         <
 1058  // ...                                                                           <
 1059  // #endif // UNICODE                                                             <
 1060  // #endif /* WINVER >= 0x0400 */                                                 <
                                                                                        >  2591  struct XFORM
 1061                                                                                   |  2592  {
 1062  // #endif /* NOTEXTMETRIC */                                                     <
                                                                                        >  2593      FLOAT eM11;
                                                                                        >  2594      FLOAT eM12;
                                                                                        >  2595      FLOAT eM21;
                                                                                        >  2596      FLOAT eM22;
                                                                                        >  2597      FLOAT eDx;
                                                                                        >  2598      FLOAT eDy;
 1063                                                                                   |  2599  }
                                                                                        >  2600  alias XFORM*PXFORM, LPXFORM;
                                                                                        >  2601  
 1064  struct tagPELARRAY {                                                             |  2602  struct EMRBITBLT
                                                                                        >  2603  {
                                                                                        >  2604      EMR emr;
                                                                                        >  2605      RECTL rclBounds;
 1065    LONG paXCount;                                                                 |  2606      LONG xDest;
 1066    LONG paYCount;                                                                 |  2607      LONG yDest;
                                                                                        >  2608      LONG cxDest;
                                                                                        >  2609      LONG cyDest;
                                                                                        >  2610      DWORD dwRop;
 1067    LONG paXExt;                                                                   |  2611      LONG xSrc;
 1068    LONG paYExt;                                                                   |  2612      LONG ySrc;
 1069    BYTE paRGBs;                                                                   <
                                                                                        >  2613      XFORM xformSrc;
                                                                                        >  2614      COLORREF crBkColorSrc;
                                                                                        >  2615      DWORD iUsageSrc;
                                                                                        >  2616      DWORD offBmiSrc;
                                                                                        >  2617      DWORD cbBmiSrc;
                                                                                        >  2618      DWORD offBitsSrc;
                                                                                        >  2619      DWORD cbBitsSrc;
 1070  }                                                                                |  2620  }
 1071  alias tagPELARRAY PELARRAY;                                                      <
 1072  alias tagPELARRAY* PPELARRAY;                                                    <
 1073  alias tagPELARRAY* NPPELARRAY;                                                   <
 1074  alias tagPELARRAY* LPPELARRAY;                                                   <
                                                                                        >  2621  alias EMRBITBLT*PEMRBITBLT;
 1075                                                                                   |  2622  
 1076  struct tagLOGBRUSH {                                                             |  2623  struct LOGBRUSH
 1077    UINT lbStyle;                                                                  <
 1078    COLORREF lbColor;                                                              <
 1079    ULONG_PTR lbHatch;                                                             <
 1080  }                                                                                <
 1081  alias tagLOGBRUSH LOGBRUSH;                                                      <
 1082  alias tagLOGBRUSH* PLOGBRUSH;                                                    <
 1083  alias tagLOGBRUSH* NPLOGBRUSH;                                                   <
 1084  alias tagLOGBRUSH* LPLOGBRUSH;                                                   <
 1085                                                                                   |  2624  {
 1086  struct tagLOGBRUSH32 {                                                           <
 1087    UINT lbStyle;                                                                  |  2625      UINT lbStyle;
 1088    COLORREF lbColor;                                                              |  2626      COLORREF lbColor;
 1089    ULONG lbHatch;                                                                 |  2627      LONG lbHatch;
 1090  }                                                                                |  2628  }
 1091  alias tagLOGBRUSH32 LOGBRUSH32;                                                  <
 1092  alias tagLOGBRUSH32* PLOGBRUSH32;                                                <
 1093  alias tagLOGBRUSH32* NPLOGBRUSH32;                                               <
 1094  alias tagLOGBRUSH32* LPLOGBRUSH32;                                               <
 1095                                                                                   <
 1096  alias LOGBRUSH PATTERN;                                                             2629  alias LOGBRUSH PATTERN;
 1097  alias PATTERN* PPATTERN;                                                         |  2630  alias LOGBRUSH*PLOGBRUSH, NPLOGBRUSH, LPLOGBRUSH;
 1098  alias PATTERN* NPPATTERN;                                                        |  2631  alias PATTERN *PPATTERN, NPPATTERN, LPPATTERN;
 1099  alias PATTERN* LPPATTERN;                                                        <
 1100                                                                                   |  2632  
 1101  struct tagLOGPEN {                                                               |  2633  struct LOGBRUSH32
 1102    UINT lopnStyle;                                                                <
 1103    POINT lopnWidth;                                                               <
 1104    COLORREF lopnColor;                                                            <
 1105  }                                                                                <
 1106  alias tagLOGPEN LOGPEN;                                                          <
 1107  alias tagLOGPEN* PLOGPEN;                                                        <
 1108  alias tagLOGPEN* NPLOGPEN;                                                       <
 1109  alias tagLOGPEN* LPLOGPEN;                                                       <
 1110                                                                                   |  2634  {
 1111  struct tagEXTLOGPEN {                                                            <
 1112    DWORD elpPenStyle;                                                             |  2635      UINT lbStyle;
 1113    DWORD elpWidth;                                                                <
 1114    UINT elpBrushStyle;                                                            <
 1115    COLORREF elpColor;                                                             |  2636      COLORREF lbColor;
 1116    ULONG_PTR elpHatch;                                                            <
 1117    DWORD elpNumEntries;                                                           <
 1118    DWORD elpStyleEntry[1];                                                        <
 1119  }                                                                                <
 1120  alias tagEXTLOGPEN EXTLOGPEN;                                                    <
 1121  alias tagEXTLOGPEN* PEXTLOGPEN;                                                  <
 1122  alias tagEXTLOGPEN* NPEXTLOGPEN;                                                 <
 1123  alias tagEXTLOGPEN* LPEXTLOGPEN;                                                 <
 1124                                                                                   <
 1125  // #ifndef _PALETTEENTRY_DEFINED                                                 <
 1126  // #define _PALETTEENTRY_DEFINED                                                 <
 1127  struct tagPALETTEENTRY {                                                         <
 1128    BYTE peRed;                                                                    <
 1129    BYTE peGreen;                                                                  <
 1130    BYTE peBlue;                                                                   <
 1131    BYTE peFlags;                                                                  <
 1132  }                                                                                <
 1133  alias tagPALETTEENTRY PALETTEENTRY;                                              <
 1134  alias tagPALETTEENTRY* PPALETTEENTRY;                                            <
 1135  alias tagPALETTEENTRY* LPPALETTEENTRY;                                           <
 1136                                                                                   <
 1137  // #endif // !_PALETTEENTRY_DEFINED                                              <
 1138                                                                                   <
 1139  // #ifndef _LOGPALETTE_DEFINED                                                   <
 1140  // #define _LOGPALETTE_DEFINED                                                   <
 1141                                                                                   <
 1142  struct tagLOGPALETTE {                                                           <
 1143    WORD palVersion;                                                               <
 1144    WORD palNumEntries;                                                            <
 1145    PALETTEENTRY palPalEntry[1];                                                   <
 1146  }                                                                                <
 1147  alias tagLOGPALETTE LOGPALETTE;                                                  <
 1148  alias tagLOGPALETTE* PLOGPALETTE;                                                <
 1149  alias tagLOGPALETTE* NPLOGPALETTE;                                               <
 1150  alias tagLOGPALETTE* LPLOGPALETTE;                                               <
 1151                                                                                   <
 1152  // #endif // !_LOGPALETTE_DEFINED                                                <
 1153                                                                                   <
 1154  enum : uint { LF_FACESIZE = 32 }                                                 <
 1155                                                                                   <
 1156  struct tagLOGFONTA {                                                             <
 1157    LONG lfHeight;                                                                 <
 1158    LONG lfWidth;                                                                  |  2637      ULONG lbHatch;
 1159    LONG lfEscapement;                                                             <
 1160    LONG lfOrientation;                                                            <
 1161    LONG lfWeight;                                                                 <
 1162    BYTE lfItalic;                                                                 <
 1163    BYTE lfUnderline;                                                              <
 1164    BYTE lfStrikeOut;                                                              <
 1165    BYTE lfCharSet;                                                                <
 1166    BYTE lfOutPrecision;                                                           <
 1167    BYTE lfClipPrecision;                                                          <
 1168    BYTE lfQuality;                                                                <
 1169    BYTE lfPitchAndFamily;                                                         <
 1170    CHAR lfFaceName[LF_FACESIZE];                                                  <
 1171  }                                                                                |  2638  }
 1172  alias tagLOGFONTA LOGFONTA;                                                      <
 1173  alias tagLOGFONTA* PLOGFONTA;                                                    <
 1174  alias tagLOGFONTA* NPLOGFONTA;                                                   <
 1175  alias tagLOGFONTA* LPLOGFONTA;                                                   <
                                                                                        >  2639  alias LOGBRUSH32*PLOGBRUSH32, NPLOGBRUSH32, LPLOGBRUSH32;
 1176                                                                                   |  2640  
 1177  struct tagLOGFONTW {                                                             <
 1178    LONG lfHeight;                                                                 <
 1179    LONG lfWidth;                                                                  <
 1180    LONG lfEscapement;                                                             <
 1181    LONG lfOrientation;                                                            <
 1182    LONG lfWeight;                                                                 <
 1183    BYTE lfItalic;                                                                 <
 1184    BYTE lfUnderline;                                                              <
 1185    BYTE lfStrikeOut;                                                              <
 1186    BYTE lfCharSet;                                                                <
 1187    BYTE lfOutPrecision;                                                           <
 1188    BYTE lfClipPrecision;                                                          <
 1189    BYTE lfQuality;                                                                <
 1190    BYTE lfPitchAndFamily;                                                         <
 1191    WCHAR lfFaceName[LF_FACESIZE];                                                 <
 1192  }                                                                                <
 1193  alias tagLOGFONTW LOGFONTW;                                                      <
 1194  alias tagLOGFONTW* PLOGFONTW;                                                    <
 1195  alias tagLOGFONTW* NPLOGFONTW;                                                   <
 1196  alias tagLOGFONTW* LPLOGFONTW;                                                   <
 1197                                                                                   <
 1198  // #ifdef UNICODE                                                                <
 1199  alias LOGFONTW LOGFONT;                                                          <
 1200  alias PLOGFONTW PLOGFONT;                                                        <
 1201  alias NPLOGFONTW NPLOGFONT;                                                      <
 1202  alias LPLOGFONTW LPLOGFONT;                                                      <
 1203  // #else                                                                         <
 1204  // ...                                                                           <
 1205  // #endif // UNICODE                                                             <
 1206                                                                                   <
 1207  enum : uint { LF_FULLFACESIZE = 64 }                                             <
 1208                                                                                   <
 1209  struct tagENUMLOGFONTA {                                                         <
 1210    LOGFONTA elfLogFont;                                                           <
 1211    BYTE elfFullName[LF_FULLFACESIZE];                                             <
 1212    BYTE elfStyle[LF_FACESIZE];                                                    <
 1213  }                                                                                <
 1214  alias tagENUMLOGFONTA ENUMLOGFONTA;                                              <
 1215  alias tagENUMLOGFONTA* LPENUMLOGFONTA;                                           <
 1216                                                                                   <
 1217  struct tagENUMLOGFONTW {                                                         <
 1218    LOGFONTW elfLogFont;                                                           <
 1219    WCHAR elfFullName[LF_FULLFACESIZE];                                            <
 1220    WCHAR elfStyle[LF_FACESIZE];                                                   <
 1221  }                                                                                <
 1222  alias tagENUMLOGFONTW ENUMLOGFONTW;                                              <
 1223  alias tagENUMLOGFONTW* LPENUMLOGFONTW;                                           <
 1224                                                                                   <
 1225  // #ifdef UNICODE                                                                <
 1226  alias ENUMLOGFONTW ENUMLOGFONT;                                                  <
 1227  alias LPENUMLOGFONTW LPENUMLOGFONT;                                              <
 1228  // #else                                                                         <
 1229  // ...                                                                           <
 1230  // #endif // UNICODE                                                             <
 1231                                                                                   <
 1232  // #if(WINVER >= 0x0400)                                                         <
 1233  struct tagENUMLOGFONTEXA {                                                       <
 1234    LOGFONTA elfLogFont;                                                           <
 1235    BYTE elfFullName[LF_FULLFACESIZE];                                             <
 1236    BYTE elfStyle[LF_FACESIZE];                                                    <
 1237    BYTE elfScript[LF_FACESIZE];                                                   <
 1238  }                                                                                <
 1239  alias tagENUMLOGFONTEXA ENUMLOGFONTEXA;                                          <
 1240  alias tagENUMLOGFONTEXA* LPENUMLOGFONTEXA;                                       <
 1241                                                                                   <
 1242  struct tagENUMLOGFONTEXW {                                                       <
 1243    LOGFONTW elfLogFont;                                                           <
 1244    WCHAR elfFullName[LF_FULLFACESIZE];                                            <
 1245    WCHAR elfStyle[LF_FACESIZE];                                                   <
 1246    WCHAR elfScript[LF_FACESIZE];                                                  <
 1247  }                                                                                <
 1248  alias tagENUMLOGFONTEXW ENUMLOGFONTEXW;                                          <
 1249  alias tagENUMLOGFONTEXW* LPENUMLOGFONTEXW;                                       <
 1250                                                                                   <
 1251  // #ifdef UNICODE                                                                <
 1252  alias ENUMLOGFONTEXW ENUMLOGFONTEX;                                              <
 1253  alias LPENUMLOGFONTEXW LPENUMLOGFONTEX;                                          <
 1254  // #else                                                                         <
 1255  // ...                                                                           <
 1256  // #endif // UNICODE                                                             <
 1257  // #endif /* WINVER >= 0x0400 */                                                 <
 1258                                                                                   <
 1259  enum : uint { OUT_DEFAULT_PRECIS = 0 }                                           <
 1260  enum : uint { OUT_STRING_PRECIS = 1 }                                            <
 1261  enum : uint { OUT_CHARACTER_PRECIS = 2 }                                         <
 1262  enum : uint { OUT_STROKE_PRECIS = 3 }                                            <
 1263  enum : uint { OUT_TT_PRECIS = 4 }                                                <
 1264  enum : uint { OUT_DEVICE_PRECIS = 5 }                                            <
 1265  enum : uint { OUT_RASTER_PRECIS = 6 }                                            <
 1266  enum : uint { OUT_TT_ONLY_PRECIS = 7 }                                           <
 1267  enum : uint { OUT_OUTLINE_PRECIS = 8 }                                           <
 1268  enum : uint { OUT_SCREEN_OUTLINE_PRECIS = 9 }                                    <
 1269  enum : uint { OUT_PS_ONLY_PRECIS = 10 }                                          <
 1270                                                                                   <
 1271  enum : uint { CLIP_DEFAULT_PRECIS = 0 }                                          <
 1272  enum : uint { CLIP_CHARACTER_PRECIS = 1 }                                        <
 1273  enum : uint { CLIP_STROKE_PRECIS = 2 }                                           <
 1274  enum : uint { CLIP_MASK = 0xf }                                                  <
 1275  enum : uint { CLIP_LH_ANGLES = 1<<4 }                                            <
 1276  enum : uint { CLIP_TT_ALWAYS = 2<<4 }                                            <
 1277  enum : uint { CLIP_EMBEDDED = 8<<4 }                                             <
 1278                                                                                   <
 1279  enum : uint { DEFAULT_QUALITY = 0 }                                              <
 1280  enum : uint { DRAFT_QUALITY = 1 }                                                <
 1281  enum : uint { PROOF_QUALITY = 2 }                                                <
 1282  // #if(WINVER >= 0x0400)                                                         <
 1283  enum : uint { NONANTIALIASED_QUALITY = 3 }                                       <
 1284  enum : uint { ANTIALIASED_QUALITY = 4 }                                          <
 1285  // #endif /* WINVER >= 0x0400 */                                                 <
 1286                                                                                   <
 1287  // #if (_WIN32_WINNT >= 0x0500)                                                  <
 1288  enum : uint { CLEARTYPE_QUALITY = 5 }                                            <
 1289  // #endif                                                                        <
 1290                                                                                   <
 1291  enum : uint { DEFAULT_PITCH = 0 }                                                <
 1292  enum : uint { FIXED_PITCH = 1 }                                                  <
 1293  enum : uint { VARIABLE_PITCH = 2 }                                               <
 1294  // #if(WINVER >= 0x0400)                                                         <
 1295  enum : uint { MONO_FONT = 8 }                                                    <
 1296  // #endif /* WINVER >= 0x0400 */                                                 <
 1297                                                                                   <
 1298  enum : uint { ANSI_CHARSET = 0 }                                                 <
 1299  enum : uint { DEFAULT_CHARSET = 1 }                                              <
 1300  enum : uint { SYMBOL_CHARSET = 2 }                                               <
 1301  enum : uint { SHIFTJIS_CHARSET = 128 }                                           <
 1302  enum : uint { HANGEUL_CHARSET = 129 }                                            <
 1303  enum : uint { HANGUL_CHARSET = 129 }                                             <
 1304  enum : uint { GB2312_CHARSET = 134 }                                             <
 1305  enum : uint { CHINESEBIG5_CHARSET = 136 }                                        <
 1306  enum : uint { OEM_CHARSET = 255 }                                                <
 1307  // #if(WINVER >= 0x0400)                                                         <
 1308  enum : uint { JOHAB_CHARSET = 130 }                                              <
 1309  enum : uint { HEBREW_CHARSET = 177 }                                             <
 1310  enum : uint { ARABIC_CHARSET = 178 }                                             <
 1311  enum : uint { GREEK_CHARSET = 161 }                                              <
 1312  enum : uint { TURKISH_CHARSET = 162 }                                            <
 1313  enum : uint { VIETNAMESE_CHARSET = 163 }                                         <
 1314  enum : uint { THAI_CHARSET = 222 }                                               <
 1315  enum : uint { EASTEUROPE_CHARSET = 238 }                                         <
 1316  enum : uint { RUSSIAN_CHARSET = 204 }                                            <
 1317                                                                                   <
 1318  enum : uint { MAC_CHARSET = 77 }                                                 <
 1319  enum : uint { BALTIC_CHARSET = 186 }                                             <
 1320                                                                                   <
 1321  enum : uint { FS_LATIN1 = 0x00000001 }                                           <
 1322  enum : uint { FS_LATIN2 = 0x00000002 }                                           <
 1323  enum : uint { FS_CYRILLIC = 0x00000004 }                                         <
 1324  enum : uint { FS_GREEK = 0x00000008 }                                            <
 1325  enum : uint { FS_TURKISH = 0x00000010 }                                          <
 1326  enum : uint { FS_HEBREW = 0x00000020 }                                           <
 1327  enum : uint { FS_ARABIC = 0x00000040 }                                           <
 1328  enum : uint { FS_BALTIC = 0x00000080 }                                           <
 1329  enum : uint { FS_VIETNAMESE = 0x00000100 }                                       <
 1330  enum : uint { FS_THAI = 0x00010000 }                                             <
 1331  enum : uint { FS_JISJAPAN = 0x00020000 }                                         <
 1332  enum : uint { FS_CHINESESIMP = 0x00040000 }                                      <
 1333  enum : uint { FS_WANSUNG = 0x00080000 }                                          <
 1334  enum : uint { FS_CHINESETRAD = 0x00100000 }                                      <
 1335  enum : uint { FS_JOHAB = 0x00200000 }                                            <
 1336  enum : uint { FS_SYMBOL = 0x80000000 }                                           <
 1337  // #endif /* WINVER >= 0x0400 */                                                 <
 1338                                                                                   <
 1339  enum : uint { FF_DONTCARE = 0<<4 }                                               <
 1340  enum : uint { FF_ROMAN = 1<<4 }                                                  <
 1341                                                                                   <
 1342  enum : uint { FF_SWISS = 2<<4 }                                                  <
 1343                                                                                   <
 1344  enum : uint { FF_MODERN = 3<<4 }                                                 <
 1345                                                                                   <
 1346  enum : uint { FF_SCRIPT = 4<<4 }                                                 <
 1347  enum : uint { FF_DECORATIVE = 5<<4 }                                             <
 1348                                                                                   <
 1349  enum : uint { FW_DONTCARE = 0 }                                                  <
 1350  enum : uint { FW_THIN = 100 }                                                    <
 1351  enum : uint { FW_EXTRALIGHT = 200 }                                              <
 1352  enum : uint { FW_LIGHT = 300 }                                                   <
 1353  enum : uint { FW_NORMAL = 400 }                                                  <
 1354  enum : uint { FW_MEDIUM = 500 }                                                  <
 1355  enum : uint { FW_SEMIBOLD = 600 }                                                <
 1356  enum : uint { FW_BOLD = 700 }                                                    <
 1357  enum : uint { FW_EXTRABOLD = 800 }                                               <
 1358  enum : uint { FW_HEAVY = 900 }                                                   <
 1359                                                                                   <
 1360  alias FW_EXTRALIGHT FW_ULTRALIGHT;                                               <
 1361  alias FW_NORMAL FW_REGULAR;                                                      <
 1362  alias FW_SEMIBOLD FW_DEMIBOLD;                                                   <
 1363  alias FW_EXTRABOLD FW_ULTRABOLD;                                                 <
 1364  alias FW_HEAVY FW_BLACK;                                                         <
 1365                                                                                   <
 1366  enum : uint { PANOSE_COUNT = 10 }                                                <
 1367  enum : uint { PAN_FAMILYTYPE_INDEX = 0 }                                         <
 1368  enum : uint { PAN_SERIFSTYLE_INDEX = 1 }                                         <
 1369  enum : uint { PAN_WEIGHT_INDEX = 2 }                                             <
 1370  enum : uint { PAN_PROPORTION_INDEX = 3 }                                         <
 1371  enum : uint { PAN_CONTRAST_INDEX = 4 }                                           <
 1372  enum : uint { PAN_STROKEVARIATION_INDEX = 5 }                                    <
 1373  enum : uint { PAN_ARMSTYLE_INDEX = 6 }                                           <
 1374  enum : uint { PAN_LETTERFORM_INDEX = 7 }                                         <
 1375  enum : uint { PAN_MIDLINE_INDEX = 8 }                                            <
 1376  enum : uint { PAN_XHEIGHT_INDEX = 9 }                                            <
 1377                                                                                   <
 1378  enum : uint { PAN_CULTURE_LATIN = 0 }                                            <
 1379                                                                                   <
 1380  struct tagPANOSE {                                                               <
 1381    BYTE bFamilyType;                                                              <
 1382    BYTE bSerifStyle;                                                              <
 1383    BYTE bWeight;                                                                  <
 1384    BYTE bProportion;                                                              <
 1385    BYTE bContrast;                                                                <
 1386    BYTE bStrokeVariation;                                                         <
 1387    BYTE bArmStyle;                                                                <
 1388    BYTE bLetterform;                                                              <
 1389    BYTE bMidline;                                                                 <
 1390    BYTE bXHeight;                                                                 <
 1391  }                                                                                <
 1392  alias tagPANOSE PANOSE;                                                          <
 1393  alias tagPANOSE* LPPANOSE;                                                       <
 1394                                                                                   <
 1395  enum : uint { PAN_ANY = 0 }                                                      <
 1396  enum : uint { PAN_NO_FIT = 1 }                                                   <
 1397                                                                                   <
 1398  enum : uint { PAN_FAMILY_TEXT_DISPLAY = 2 }                                      <
 1399  enum : uint { PAN_FAMILY_SCRIPT = 3 }                                            <
 1400  enum : uint { PAN_FAMILY_DECORATIVE = 4 }                                        <
 1401  enum : uint { PAN_FAMILY_PICTORIAL = 5 }                                         <
 1402                                                                                   <
 1403  enum : uint { PAN_SERIF_COVE = 2 }                                               <
 1404  enum : uint { PAN_SERIF_OBTUSE_COVE = 3 }                                        <
 1405  enum : uint { PAN_SERIF_SQUARE_COVE = 4 }                                        <
 1406  enum : uint { PAN_SERIF_OBTUSE_SQUARE_COVE = 5 }                                 <
 1407  enum : uint { PAN_SERIF_SQUARE = 6 }                                             <
 1408  enum : uint { PAN_SERIF_THIN = 7 }                                               <
 1409  enum : uint { PAN_SERIF_BONE = 8 }                                               <
 1410  enum : uint { PAN_SERIF_EXAGGERATED = 9 }                                        <
 1411  enum : uint { PAN_SERIF_TRIANGLE = 10 }                                          <
 1412  enum : uint { PAN_SERIF_NORMAL_SANS = 11 }                                       <
 1413  enum : uint { PAN_SERIF_OBTUSE_SANS = 12 }                                       <
 1414  enum : uint { PAN_SERIF_PERP_SANS = 13 }                                         <
 1415  enum : uint { PAN_SERIF_FLARED = 14 }                                            <
 1416  enum : uint { PAN_SERIF_ROUNDED = 15 }                                           <
 1417                                                                                   <
 1418  enum : uint { PAN_WEIGHT_VERY_LIGHT = 2 }                                        <
 1419  enum : uint { PAN_WEIGHT_LIGHT = 3 }                                             <
 1420  enum : uint { PAN_WEIGHT_THIN = 4 }                                              <
 1421  enum : uint { PAN_WEIGHT_BOOK = 5 }                                              <
 1422  enum : uint { PAN_WEIGHT_MEDIUM = 6 }                                            <
 1423  enum : uint { PAN_WEIGHT_DEMI = 7 }                                              <
 1424  enum : uint { PAN_WEIGHT_BOLD = 8 }                                              <
 1425  enum : uint { PAN_WEIGHT_HEAVY = 9 }                                             <
 1426  enum : uint { PAN_WEIGHT_BLACK = 10 }                                            <
 1427  enum : uint { PAN_WEIGHT_NORD = 11 }                                             <
 1428                                                                                   <
 1429  enum : uint { PAN_PROP_OLD_STYLE = 2 }                                           <
 1430  enum : uint { PAN_PROP_MODERN = 3 }                                              <
 1431  enum : uint { PAN_PROP_EVEN_WIDTH = 4 }                                          <
 1432  enum : uint { PAN_PROP_EXPANDED = 5 }                                            <
 1433  enum : uint { PAN_PROP_CONDENSED = 6 }                                           <
 1434  enum : uint { PAN_PROP_VERY_EXPANDED = 7 }                                       <
 1435  enum : uint { PAN_PROP_VERY_CONDENSED = 8 }                                      <
 1436  enum : uint { PAN_PROP_MONOSPACED = 9 }                                          <
 1437                                                                                   <
 1438  enum : uint { PAN_CONTRAST_NONE = 2 }                                            <
 1439  enum : uint { PAN_CONTRAST_VERY_LOW = 3 }                                        <
 1440  enum : uint { PAN_CONTRAST_LOW = 4 }                                             <
 1441  enum : uint { PAN_CONTRAST_MEDIUM_LOW = 5 }                                      <
 1442  enum : uint { PAN_CONTRAST_MEDIUM = 6 }                                          <
 1443  enum : uint { PAN_CONTRAST_MEDIUM_HIGH = 7 }                                     <
 1444  enum : uint { PAN_CONTRAST_HIGH = 8 }                                            <
 1445  enum : uint { PAN_CONTRAST_VERY_HIGH = 9 }                                       <
 1446                                                                                   <
 1447  enum : uint { PAN_STROKE_GRADUAL_DIAG = 2 }                                      <
 1448  enum : uint { PAN_STROKE_GRADUAL_TRAN = 3 }                                      <
 1449  enum : uint { PAN_STROKE_GRADUAL_VERT = 4 }                                      <
 1450  enum : uint { PAN_STROKE_GRADUAL_HORZ = 5 }                                      <
 1451  enum : uint { PAN_STROKE_RAPID_VERT = 6 }                                        <
 1452  enum : uint { PAN_STROKE_RAPID_HORZ = 7 }                                        <
 1453  enum : uint { PAN_STROKE_INSTANT_VERT = 8 }                                      <
 1454                                                                                   <
 1455  enum : uint { PAN_STRAIGHT_ARMS_HORZ = 2 }                                       <
 1456  enum : uint { PAN_STRAIGHT_ARMS_WEDGE = 3 }                                      <
 1457  enum : uint { PAN_STRAIGHT_ARMS_VERT = 4 }                                       <
 1458  enum : uint { PAN_STRAIGHT_ARMS_SINGLE_SERIF = 5 }                               <
 1459  enum : uint { PAN_STRAIGHT_ARMS_DOUBLE_SERIF = 6 }                               <
 1460  enum : uint { PAN_BENT_ARMS_HORZ = 7 }                                           <
 1461  enum : uint { PAN_BENT_ARMS_WEDGE = 8 }                                          <
 1462  enum : uint { PAN_BENT_ARMS_VERT = 9 }                                           <
 1463  enum : uint { PAN_BENT_ARMS_SINGLE_SERIF = 10 }                                  <
 1464  enum : uint { PAN_BENT_ARMS_DOUBLE_SERIF = 11 }                                  <
 1465                                                                                   <
 1466  enum : uint { PAN_LETT_NORMAL_CONTACT = 2 }                                      <
 1467  enum : uint { PAN_LETT_NORMAL_WEIGHTED = 3 }                                     <
 1468  enum : uint { PAN_LETT_NORMAL_BOXED = 4 }                                        <
 1469  enum : uint { PAN_LETT_NORMAL_FLATTENED = 5 }                                    <
 1470  enum : uint { PAN_LETT_NORMAL_ROUNDED = 6 }                                      <
 1471  enum : uint { PAN_LETT_NORMAL_OFF_CENTER = 7 }                                   <
 1472  enum : uint { PAN_LETT_NORMAL_SQUARE = 8 }                                       <
 1473  enum : uint { PAN_LETT_OBLIQUE_CONTACT = 9 }                                     <
 1474  enum : uint { PAN_LETT_OBLIQUE_WEIGHTED = 10 }                                   <
 1475  enum : uint { PAN_LETT_OBLIQUE_BOXED = 11 }                                      <
 1476  enum : uint { PAN_LETT_OBLIQUE_FLATTENED = 12 }                                  <
 1477  enum : uint { PAN_LETT_OBLIQUE_ROUNDED = 13 }                                    <
 1478  enum : uint { PAN_LETT_OBLIQUE_OFF_CENTER = 14 }                                 <
 1479  enum : uint { PAN_LETT_OBLIQUE_SQUARE = 15 }                                     <
 1480                                                                                   <
 1481  enum : uint { PAN_MIDLINE_STANDARD_TRIMMED = 2 }                                 <
 1482  enum : uint { PAN_MIDLINE_STANDARD_POINTED = 3 }                                 <
 1483  enum : uint { PAN_MIDLINE_STANDARD_SERIFED = 4 }                                 <
 1484  enum : uint { PAN_MIDLINE_HIGH_TRIMMED = 5 }                                     <
 1485  enum : uint { PAN_MIDLINE_HIGH_POINTED = 6 }                                     <
 1486  enum : uint { PAN_MIDLINE_HIGH_SERIFED = 7 }                                     <
 1487  enum : uint { PAN_MIDLINE_CONSTANT_TRIMMED = 8 }                                 <
 1488  enum : uint { PAN_MIDLINE_CONSTANT_POINTED = 9 }                                 <
 1489  enum : uint { PAN_MIDLINE_CONSTANT_SERIFED = 10 }                                <
 1490  enum : uint { PAN_MIDLINE_LOW_TRIMMED = 11 }                                     <
 1491  enum : uint { PAN_MIDLINE_LOW_POINTED = 12 }                                     <
 1492  enum : uint { PAN_MIDLINE_LOW_SERIFED = 13 }                                     <
 1493                                                                                   <
 1494  enum : uint { PAN_XHEIGHT_CONSTANT_SMALL = 2 }                                   <
 1495  enum : uint { PAN_XHEIGHT_CONSTANT_STD = 3 }                                     <
 1496  enum : uint { PAN_XHEIGHT_CONSTANT_LARGE = 4 }                                   <
 1497  enum : uint { PAN_XHEIGHT_DUCKING_SMALL = 5 }                                    <
 1498  enum : uint { PAN_XHEIGHT_DUCKING_STD = 6 }                                      <
 1499  enum : uint { PAN_XHEIGHT_DUCKING_LARGE = 7 }                                    <
 1500                                                                                   <
 1501  enum : uint { ELF_VENDOR_SIZE = 4 }                                              <
 1502                                                                                   <
 1503  struct tagEXTLOGFONTA {                                                          <
 1504    LOGFONTA elfLogFont;                                                           <
 1505    BYTE elfFullName[LF_FULLFACESIZE];                                             <
 1506    BYTE elfStyle[LF_FACESIZE];                                                    <
 1507    DWORD elfVersion;                                                              <
 1508    DWORD elfStyleSize;                                                            <
 1509    DWORD elfMatch;                                                                <
 1510    DWORD elfReserved;                                                             <
 1511    BYTE elfVendorId[ELF_VENDOR_SIZE];                                             <
 1512    DWORD elfCulture;                                                              <
 1513    PANOSE elfPanose;                                                              <
 1514  }                                                                                <
 1515  alias tagEXTLOGFONTA EXTLOGFONTA;                                                <
 1516  alias tagEXTLOGFONTA* PEXTLOGFONTA;                                              <
 1517  alias tagEXTLOGFONTA* NPEXTLOGFONTA;                                             <
 1518  alias tagEXTLOGFONTA* LPEXTLOGFONTA;                                             <
 1519                                                                                   <
 1520  struct tagEXTLOGFONTW {                                                          <
 1521    LOGFONTW elfLogFont;                                                           <
 1522    WCHAR elfFullName[LF_FULLFACESIZE];                                            <
 1523    WCHAR elfStyle[LF_FACESIZE];                                                   <
 1524    DWORD elfVersion;                                                              <
 1525    DWORD elfStyleSize;                                                            <
 1526    DWORD elfMatch;                                                                <
 1527    DWORD elfReserved;                                                             <
 1528    BYTE elfVendorId[ELF_VENDOR_SIZE];                                             <
 1529    DWORD elfCulture;                                                              <
 1530    PANOSE elfPanose;                                                              <
 1531  }                                                                                <
 1532  alias tagEXTLOGFONTW EXTLOGFONTW;                                                <
 1533  alias tagEXTLOGFONTW* PEXTLOGFONTW;                                              <
 1534  alias tagEXTLOGFONTW* NPEXTLOGFONTW;                                             <
 1535  alias tagEXTLOGFONTW* LPEXTLOGFONTW;                                             <
 1536                                                                                   <
 1537  // #ifdef UNICODE                                                                <
 1538  alias EXTLOGFONTW EXTLOGFONT;                                                    <
 1539  alias PEXTLOGFONTW PEXTLOGFONT;                                                  <
 1540  alias NPEXTLOGFONTW NPEXTLOGFONT;                                                <
 1541  alias LPEXTLOGFONTW LPEXTLOGFONT;                                                <
 1542  // #else                                                                         <
 1543  // ...                                                                           <
 1544  // #endif // UNICODE                                                             <
 1545                                                                                   <
 1546  enum : uint { ELF_VERSION = 0 }                                                  <
 1547  enum : uint { ELF_CULTURE_LATIN = 0 }                                            <
 1548                                                                                   <
 1549  enum : uint { RASTER_FONTTYPE = 0x0001 }                                         <
 1550  enum : uint { DEVICE_FONTTYPE = 0x002 }                                          <
 1551  enum : uint { TRUETYPE_FONTTYPE = 0x004 }                                        <
 1552                                                                                   <
 1553  COLORREF RGB(BYTE r, BYTE g, BYTE b){ return r|(g <<8)|(b << 16); }              <
 1554  COLORREF PALETTERGB(BYTE r, BYTE g, BYTE b){ return (0x02000000 | RGB(r,g,b)); } <
 1555  COLORREF PALETTEINDEX(WORD i){ return (cast(COLORREF)(0x01000000 | cast(DWORD)ca <
 1556                                                                                   <
 1557  enum : uint { PC_RESERVED = 0x01 }                                               <
 1558  enum : uint { PC_EXPLICIT = 0x02 }                                               <
 1559  enum : uint { PC_NOCOLLAPSE = 0x04 }                                             <
 1560                                                                                   <
 1561  BYTE GetRValue(COLORREF rgb){ return cast(BYTE)rgb; }                            <
 1562  BYTE GetGValue(COLORREF rgb){ return cast(BYTE)(rgb >>> 8); }                    <
 1563  BYTE GetBValue(COLORREF rgb){ return cast(BYTE)(rgb >>> 16); }                   <
 1564                                                                                   <
 1565  enum : uint { TRANSPARENT = 1 }                                                  <
 1566  enum : uint { OPAQUE = 2 }                                                       <
 1567  enum : uint { BKMODE_LAST = 2 }                                                  <
 1568                                                                                   <
 1569  enum : uint { GM_COMPATIBLE = 1 }                                                <
 1570  enum : uint { GM_ADVANCED = 2 }                                                  <
 1571  enum : uint { GM_LAST = 2 }                                                      <
 1572                                                                                   <
 1573  enum : uint { PT_CLOSEFIGURE = 0x01 }                                            <
 1574  enum : uint { PT_LINETO = 0x02 }                                                 <
 1575  enum : uint { PT_BEZIERTO = 0x04 }                                               <
 1576  enum : uint { PT_MOVETO = 0x06 }                                                 <
 1577                                                                                   <
 1578  enum : uint { MM_TEXT = 1 }                                                      <
 1579  enum : uint { MM_LOMETRIC = 2 }                                                  <
 1580  enum : uint { MM_HIMETRIC = 3 }                                                  <
 1581  enum : uint { MM_LOENGLISH = 4 }                                                 <
 1582  enum : uint { MM_HIENGLISH = 5 }                                                 <
 1583  enum : uint { MM_TWIPS = 6 }                                                     <
 1584  enum : uint { MM_ISOTROPIC = 7 }                                                 <
 1585  enum : uint { MM_ANISOTROPIC = 8 }                                               <
 1586                                                                                   <
 1587  alias MM_TEXT MM_MIN;                                                            <
 1588  alias MM_ANISOTROPIC MM_MAX;                                                     <
 1589  alias MM_TWIPS MM_MAX_FIXEDSCALE;                                                <
 1590                                                                                   <
 1591  enum : uint { ABSOLUTE = 1 }                                                     <
 1592  enum : uint { RELATIVE = 2 }                                                     <
 1593                                                                                   <
 1594  enum : uint { WHITE_BRUSH = 0 }                                                  <
 1595  enum : uint { LTGRAY_BRUSH = 1 }                                                 <
 1596  enum : uint { GRAY_BRUSH = 2 }                                                   <
 1597  enum : uint { DKGRAY_BRUSH = 3 }                                                 <
 1598  enum : uint { BLACK_BRUSH = 4 }                                                  <
 1599  enum : uint { NULL_BRUSH = 5 }                                                   <
 1600  alias NULL_BRUSH HOLLOW_BRUSH;                                                   <
 1601  enum : uint { WHITE_PEN = 6 }                                                    <
 1602  enum : uint { BLACK_PEN = 7 }                                                    <
 1603  enum : uint { NULL_PEN = 8 }                                                     <
 1604  enum : uint { OEM_FIXED_FONT = 10 }                                              <
 1605  enum : uint { ANSI_FIXED_FONT = 11 }                                             <
 1606  enum : uint { ANSI_VAR_FONT = 12 }                                               <
 1607  enum : uint { SYSTEM_FONT = 13 }                                                 <
 1608  enum : uint { DEVICE_DEFAULT_FONT = 14 }                                         <
 1609  enum : uint { DEFAULT_PALETTE = 15 }                                             <
 1610  enum : uint { SYSTEM_FIXED_FONT = 16 }                                           <
 1611                                                                                   <
 1612  // #if(WINVER >= 0x0400)                                                         <
 1613  enum : uint { DEFAULT_GUI_FONT = 17 }                                            <
 1614  // #endif /* WINVER >= 0x0400 */                                                 <
 1615                                                                                   <
 1616  // #if (_WIN32_WINNT >= 0x0500)                                                  <
 1617  enum : uint { DC_BRUSH = 18 }                                                    <
 1618  enum : uint { DC_PEN = 19 }                                                      <
 1619  // #endif                                                                        <
 1620                                                                                   <
 1621  // #if (_WIN32_WINNT >= 0x0500)                                                  <
 1622  enum : uint { STOCK_LAST = 19 }                                                  <
 1623  // #elif (WINVER >= 0x0400)                                                      <
 1624  // #...                                                                          <
 1625  // #else                                                                         <
 1626  // #...                                                                          <
 1627  // #endif                                                                        <
 1628                                                                                   <
 1629  enum : uint { CLR_INVALID = 0xFFFFFFFF }                                         <
 1630                                                                                   <
 1631  enum : uint { BS_SOLID = 0 }                                                     <
 1632  enum : uint { BS_NULL = 1 }                                                      <
 1633  alias BS_NULL BS_HOLLOW;                                                         <
 1634  enum : uint { BS_HATCHED = 2 }                                                   <
 1635  enum : uint { BS_PATTERN = 3 }                                                   <
 1636  enum : uint { BS_INDEXED = 4 }                                                   <
 1637  enum : uint { BS_DIBPATTERN = 5 }                                                <
 1638  enum : uint { BS_DIBPATTERNPT = 6 }                                              <
 1639  enum : uint { BS_PATTERN8X8 = 7 }                                                <
 1640  enum : uint { BS_DIBPATTERN8X8 = 8 }                                             <
 1641  enum : uint { BS_MONOPATTERN = 9 }                                               <
 1642                                                                                   <
 1643  enum : uint { HS_HORIZONTAL = 0 }                                                <
 1644  enum : uint { HS_VERTICAL = 1 }                                                  <
 1645  enum : uint { HS_FDIAGONAL = 2 }                                                 <
 1646  enum : uint { HS_BDIAGONAL = 3 }                                                 <
 1647  enum : uint { HS_CROSS = 4 }                                                     <
 1648  enum : uint { HS_DIAGCROSS = 5 }                                                 <
 1649                                                                                   <
 1650  enum : uint { PS_SOLID = 0 }                                                     <
 1651  enum : uint { PS_DASH = 1 }                                                      <
 1652  enum : uint { PS_DOT = 2 }                                                       <
 1653  enum : uint { PS_DASHDOT = 3 }                                                   <
 1654  enum : uint { PS_DASHDOTDOT = 4 }                                                <
 1655  enum : uint { PS_NULL = 5 }                                                      <
 1656  enum : uint { PS_INSIDEFRAME = 6 }                                               <
 1657  enum : uint { PS_USERSTYLE = 7 }                                                 <
 1658  enum : uint { PS_ALTERNATE = 8 }                                                 <
 1659  enum : uint { PS_STYLE_MASK = 0x0000000F }                                       <
 1660                                                                                   <
 1661  enum : uint { PS_ENDCAP_ROUND = 0x00000000 }                                     <
 1662  enum : uint { PS_ENDCAP_SQUARE = 0x00000100 }                                    <
 1663  enum : uint { PS_ENDCAP_FLAT = 0x00000200 }                                      <
 1664  enum : uint { PS_ENDCAP_MASK = 0x00000F00 }                                      <
 1665                                                                                   <
 1666  enum : uint { PS_JOIN_ROUND = 0x00000000 }                                       <
 1667  enum : uint { PS_JOIN_BEVEL = 0x00001000 }                                       <
 1668  enum : uint { PS_JOIN_MITER = 0x00002000 }                                       <
 1669  enum : uint { PS_JOIN_MASK = 0x0000F000 }                                        <
 1670                                                                                   <
 1671  enum : uint { PS_COSMETIC = 0x00000000 }                                         <
 1672  enum : uint { PS_GEOMETRIC = 0x00010000 }                                        <
 1673  enum : uint { PS_TYPE_MASK = 0x000F0000 }                                        <
 1674                                                                                   <
 1675  enum : uint { AD_COUNTERCLOCKWISE = 1 }                                          <
 1676  enum : uint { AD_CLOCKWISE = 2 }                                                 <
 1677                                                                                   <
 1678  enum : uint { DRIVERVERSION = 0 }                                                <
 1679  enum : uint { TECHNOLOGY = 2 }                                                   <
 1680  enum : uint { HORZSIZE = 4 }                                                     <
 1681  enum : uint { VERTSIZE = 6 }                                                     <
 1682  enum : uint { HORZRES = 8 }                                                      <
 1683  enum : uint { VERTRES = 10 }                                                     <
 1684  enum : uint { BITSPIXEL = 12 }                                                   <
 1685  enum : uint { PLANES = 14 }                                                      <
 1686  enum : uint { NUMBRUSHES = 16 }                                                  <
 1687  enum : uint { NUMPENS = 18 }                                                     <
 1688  enum : uint { NUMMARKERS = 20 }                                                  <
 1689  enum : uint { NUMFONTS = 22 }                                                    <
 1690  enum : uint { NUMCOLORS = 24 }                                                   <
 1691  enum : uint { PDEVICESIZE = 26 }                                                 <
 1692  enum : uint { CURVECAPS = 28 }                                                   <
 1693  enum : uint { LINECAPS = 30 }                                                    <
 1694  enum : uint { POLYGONALCAPS = 32 }                                               <
 1695  enum : uint { TEXTCAPS = 34 }                                                    <
 1696  enum : uint { CLIPCAPS = 36 }                                                    <
 1697  enum : uint { RASTERCAPS = 38 }                                                  <
 1698  enum : uint { ASPECTX = 40 }                                                     <
 1699  enum : uint { ASPECTY = 42 }                                                     <
 1700  enum : uint { ASPECTXY = 44 }                                                    <
 1701                                                                                   <
 1702  enum : uint { LOGPIXELSX = 88 }                                                  <
 1703  enum : uint { LOGPIXELSY = 90 }                                                  <
 1704                                                                                   <
 1705  enum : uint { SIZEPALETTE = 104 }                                                <
 1706  enum : uint { NUMRESERVED = 106 }                                                <
 1707  enum : uint { COLORRES = 108 }                                                   <
 1708                                                                                   <
 1709  enum : uint { PHYSICALWIDTH = 110 }                                              <
 1710  enum : uint { PHYSICALHEIGHT = 111 }                                             <
 1711  enum : uint { PHYSICALOFFSETX = 112 }                                            <
 1712  enum : uint { PHYSICALOFFSETY = 113 }                                            <
 1713  enum : uint { SCALINGFACTORX = 114 }                                             <
 1714  enum : uint { SCALINGFACTORY = 115 }                                             <
 1715                                                                                   <
 1716  enum : uint { VREFRESH = 116 }                                                   <
 1717                                                                                   <
 1718  enum : uint { DESKTOPVERTRES = 117 }                                             <
 1719                                                                                   <
 1720  enum : uint { DESKTOPHORZRES = 118 }                                             <
 1721                                                                                   <
 1722  enum : uint { BLTALIGNMENT = 119 }                                               <
 1723                                                                                   <
 1724  // #if(WINVER >= 0x0500)                                                         <
 1725  enum : uint { SHADEBLENDCAPS = 120 }                                             <
 1726  enum : uint { COLORMGMTCAPS = 121 }                                              <
 1727  // #endif /* WINVER >= 0x0500 */                                                 <
 1728                                                                                   <
 1729  // #ifndef NOGDICAPMASKS                                                         <
 1730                                                                                   <
 1731  enum : uint { DT_PLOTTER = 0 }                                                   <
 1732  enum : uint { DT_RASDISPLAY = 1 }                                                <
 1733  enum : uint { DT_RASPRINTER = 2 }                                                <
 1734  enum : uint { DT_RASCAMERA = 3 }                                                 <
 1735  enum : uint { DT_CHARSTREAM = 4 }                                                <
 1736  enum : uint { DT_METAFILE = 5 }                                                  <
 1737  enum : uint { DT_DISPFILE = 6 }                                                  <
 1738                                                                                   <
 1739  enum : uint { CC_NONE = 0 }                                                      <
 1740  enum : uint { CC_CIRCLES = 1 }                                                   <
 1741  enum : uint { CC_PIE = 2 }                                                       <
 1742  enum : uint { CC_CHORD = 4 }                                                     <
 1743  enum : uint { CC_ELLIPSES = 8 }                                                  <
 1744  enum : uint { CC_WIDE = 16 }                                                     <
 1745  enum : uint { CC_STYLED = 32 }                                                   <
 1746  enum : uint { CC_WIDESTYLED = 64 }                                               <
 1747  enum : uint { CC_INTERIORS = 128 }                                               <
 1748  enum : uint { CC_ROUNDRECT = 256 }                                               <
 1749                                                                                   <
 1750  enum : uint { LC_NONE = 0 }                                                      <
 1751  enum : uint { LC_POLYLINE = 2 }                                                  <
 1752  enum : uint { LC_MARKER = 4 }                                                    <
 1753  enum : uint { LC_POLYMARKER = 8 }                                                <
 1754  enum : uint { LC_WIDE = 16 }                                                     <
 1755  enum : uint { LC_STYLED = 32 }                                                   <
 1756  enum : uint { LC_WIDESTYLED = 64 }                                               <
 1757  enum : uint { LC_INTERIORS = 128 }                                               <
 1758                                                                                   <
 1759  enum : uint { PC_NONE = 0 }                                                      <
 1760  enum : uint { PC_POLYGON = 1 }                                                   <
 1761  enum : uint { PC_RECTANGLE = 2 }                                                 <
 1762  enum : uint { PC_WINDPOLYGON = 4 }                                               <
 1763  enum : uint { PC_TRAPEZOID = 4 }                                                 <
 1764  enum : uint { PC_SCANLINE = 8 }                                                  <
 1765  enum : uint { PC_WIDE = 16 }                                                     <
 1766  enum : uint { PC_STYLED = 32 }                                                   <
 1767  enum : uint { PC_WIDESTYLED = 64 }                                               <
 1768  enum : uint { PC_INTERIORS = 128 }                                               <
 1769  enum : uint { PC_POLYPOLYGON = 256 }                                             <
 1770  enum : uint { PC_PATHS = 512 }                                                   <
 1771                                                                                   <
 1772  enum : uint { CP_NONE = 0 }                                                      <
 1773  enum : uint { CP_RECTANGLE = 1 }                                                 <
 1774  enum : uint { CP_REGION = 2 }                                                    <
 1775                                                                                   <
 1776  enum : uint { TC_OP_CHARACTER = 0x00000001 }                                     <
 1777  enum : uint { TC_OP_STROKE = 0x00000002 }                                        <
 1778  enum : uint { TC_CP_STROKE = 0x00000004 }                                        <
 1779  enum : uint { TC_CR_90 = 0x00000008 }                                            <
 1780  enum : uint { TC_CR_ANY = 0x00000010 }                                           <
 1781  enum : uint { TC_SF_X_YINDEP = 0x00000020 }                                      <
 1782  enum : uint { TC_SA_DOUBLE = 0x00000040 }                                        <
 1783  enum : uint { TC_SA_INTEGER = 0x00000080 }                                       <
 1784  enum : uint { TC_SA_CONTIN = 0x00000100 }                                        <
 1785  enum : uint { TC_EA_DOUBLE = 0x00000200 }                                        <
 1786  enum : uint { TC_IA_ABLE = 0x00000400 }                                          <
 1787  enum : uint { TC_UA_ABLE = 0x00000800 }                                          <
 1788  enum : uint { TC_SO_ABLE = 0x00001000 }                                          <
 1789  enum : uint { TC_RA_ABLE = 0x00002000 }                                          <
 1790  enum : uint { TC_VA_ABLE = 0x00004000 }                                          <
 1791  enum : uint { TC_RESERVED = 0x00008000 }                                         <
 1792  enum : uint { TC_SCROLLBLT = 0x00010000 }                                        <
 1793                                                                                   <
 1794  // #endif /* NOGDICAPMASKS */                                                    <
 1795                                                                                   <
 1796  // #define RC_NONE                                                               <
 1797  enum : uint { RC_BITBLT = 1 }                                                    <
 1798  enum : uint { RC_BANDING = 2 }                                                   <
 1799  enum : uint { RC_SCALING = 4 }                                                   <
 1800  enum : uint { RC_BITMAP64 = 8 }                                                  <
 1801  enum : uint { RC_GDI20_OUTPUT = 0x0010 }                                         <
 1802  enum : uint { RC_GDI20_STATE = 0x0020 }                                          <
 1803  enum : uint { RC_SAVEBITMAP = 0x0040 }                                           <
 1804  enum : uint { RC_DI_BITMAP = 0x0080 }                                            <
 1805  enum : uint { RC_PALETTE = 0x0100 }                                              <
 1806  enum : uint { RC_DIBTODEV = 0x0200 }                                             <
 1807  enum : uint { RC_BIGFONT = 0x0400 }                                              <
 1808  enum : uint { RC_STRETCHBLT = 0x0800 }                                           <
 1809  enum : uint { RC_FLOODFILL = 0x1000 }                                            <
 1810  enum : uint { RC_STRETCHDIB = 0x2000 }                                           <
 1811  enum : uint { RC_OP_DX_OUTPUT = 0x4000 }                                         <
 1812  enum : uint { RC_DEVBITS = 0x8000 }                                              <
 1813                                                                                   <
 1814  // #if(WINVER >= 0x0500)                                                         <
 1815                                                                                   <
 1816  enum : uint { SB_NONE = 0x00000000 }                                             <
 1817  enum : uint { SB_CONST_ALPHA = 0x00000001 }                                      <
 1818  enum : uint { SB_PIXEL_ALPHA = 0x00000002 }                                      <
 1819  enum : uint { SB_PREMULT_ALPHA = 0x00000004 }                                    <
 1820                                                                                   <
 1821  enum : uint { SB_GRAD_RECT = 0x00000010 }                                        <
 1822  enum : uint { SB_GRAD_TRI = 0x00000020 }                                         <
 1823                                                                                   <
 1824  enum : uint { CM_NONE = 0x00000000 }                                             <
 1825  enum : uint { CM_DEVICE_ICM = 0x00000001 }                                       <
 1826  enum : uint { CM_GAMMA_RAMP = 0x00000002 }                                       <
 1827  enum : uint { CM_CMYK_COLOR = 0x00000004 }                                       <
 1828                                                                                   <
 1829  // #endif /* WINVER >= 0x0500 */                                                 <
 1830                                                                                   <
 1831  enum : uint { DIB_RGB_COLORS = 0 }                                               <
 1832  enum : uint { DIB_PAL_COLORS = 1 }                                               <
 1833                                                                                   <
 1834  enum : uint { SYSPAL_ERROR = 0 }                                                 <
 1835  enum : uint { SYSPAL_STATIC = 1 }                                                <
 1836  enum : uint { SYSPAL_NOSTATIC = 2 }                                              <
 1837  enum : uint { SYSPAL_NOSTATIC256 = 3 }                                           <
 1838                                                                                   <
 1839  enum : uint { CBM_INIT = 0x04 }                                                  <
 1840                                                                                   <
 1841  enum : uint { FLOODFILLBORDER = 0 }                                              <
 1842  enum : uint { FLOODFILLSURFACE = 1 }                                             <
 1843                                                                                   <
 1844  enum : uint { CCHDEVICENAME = 32 }                                               <
 1845                                                                                   <
 1846  enum : uint { CCHFORMNAME = 32 }                                                 <
 1847                                                                                   <
 1848  struct _devicemodeA {                                                            <
 1849    BYTE dmDeviceName[CCHDEVICENAME];                                              <
 1850    WORD dmSpecVersion;                                                            <
 1851    WORD dmDriverVersion;                                                          <
 1852    WORD dmSize;                                                                   <
 1853    WORD dmDriverExtra;                                                            <
 1854    DWORD dmFields;                                                                <
 1855  union {                                                                          <
 1856  struct {                                                                         |  2641  struct EMRCREATEBRUSHINDIRECT
 1857    short dmOrientation;                                                           <
 1858    short dmPaperSize;                                                             <
 1859    short dmPaperLength;                                                           <
 1860    short dmPaperWidth;                                                            <
 1861  }                                                                                <
 1862                                                                                   |  2642  {
 1863    POINTL dmPosition;                                                             <
 1864  }                                                                                <
 1865                                                                                   <
 1866    short dmScale;                                                                 <
 1867    short dmCopies;                                                                <
 1868    short dmDefaultSource;                                                         <
 1869    short dmPrintQuality;                                                          <
 1870    short dmColor;                                                                 <
 1871    short dmDuplex;                                                                <
 1872    short dmYResolution;                                                           <
 1873    short dmTTOption;                                                              <
 1874    short dmCollate;                                                               <
 1875    BYTE dmFormName[CCHFORMNAME];                                                  <
 1876    WORD dmLogPixels;                                                              <
 1877    DWORD dmBitsPerPel;                                                            <
 1878    DWORD dmPelsWidth;                                                             <
 1879    DWORD dmPelsHeight;                                                            <
 1880  union {                                                                          <
 1881    DWORD dmDisplayFlags;                                                          <
                                                                                        >  2643      EMR emr;
 1882    DWORD dmNup;                                                                   |  2644      DWORD ihBrush;
                                                                                        >  2645      LOGBRUSH32 lb;
 1883  }                                                                                |  2646  }
                                                                                        >  2647  alias EMRCREATEBRUSHINDIRECT*PEMRCREATEBRUSHINDIRECT;
 1884                                                                                   |  2648  
 1885    DWORD dmDisplayFrequency;                                                      <
 1886  // #if(WINVER >= 0x0400)                                                         <
 1887    DWORD dmICMMethod;                                                             <
 1888    DWORD dmICMIntent;                                                             <
 1889    DWORD dmMediaType;                                                             <
 1890    DWORD dmDitherType;                                                            <
 1891    DWORD dmReserved1;                                                             <
 1892    DWORD dmReserved2;                                                             <
 1893  // #if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400)                            <
 1894    DWORD dmPanningWidth;                                                          <
 1895    DWORD dmPanningHeight;                                                         <
 1896  // #endif                                                                        <
 1897  // #endif /* WINVER >= 0x0400 */                                                 <
                                                                                        >  2649  alias LONG LCSCSTYPE, LCSGAMUTMATCH;
 1898  }                                                                                |  2650  
 1899  alias _devicemodeA DEVMODEA;                                                     <
 1900  alias _devicemodeA* PDEVMODEA;                                                   <
 1901  alias _devicemodeA* NPDEVMODEA;                                                  <
 1902  alias _devicemodeA* LPDEVMODEA;                                                  <
 1903                                                                                   <
 1904  struct _devicemodeW {                                                            <
 1905    WCHAR dmDeviceName[CCHDEVICENAME];                                             <
 1906    WORD dmSpecVersion;                                                            <
 1907    WORD dmDriverVersion;                                                          <
 1908    WORD dmSize;                                                                   <
 1909    WORD dmDriverExtra;                                                            <
 1910    DWORD dmFields;                                                                <
 1911  union {                                                                          <
 1912  struct {                                                                         |  2651  struct LOGCOLORSPACEA
 1913    short dmOrientation;                                                           <
 1914    short dmPaperSize;                                                             <
 1915    short dmPaperLength;                                                           <
 1916    short dmPaperWidth;                                                            <
 1917  }                                                                                <
 1918                                                                                   |  2652  {
 1919    POINTL dmPosition;                                                             <
 1920  }                                                                                <
 1921                                                                                   <
 1922    short dmScale;                                                                 <
 1923    short dmCopies;                                                                <
 1924    short dmDefaultSource;                                                         <
 1925    short dmPrintQuality;                                                          <
 1926    short dmColor;                                                                 <
 1927    short dmDuplex;                                                                <
 1928    short dmYResolution;                                                           <
 1929    short dmTTOption;                                                              <
 1930    short dmCollate;                                                               <
 1931    WCHAR dmFormName[CCHFORMNAME];                                                 <
 1932    WORD dmLogPixels;                                                              <
 1933    DWORD dmBitsPerPel;                                                            <
 1934    DWORD dmPelsWidth;                                                             <
 1935    DWORD dmPelsHeight;                                                            <
 1936  union {                                                                          <
 1937    DWORD dmDisplayFlags;                                                          <
 1938    DWORD dmNup;                                                                   |  2653      DWORD lcsSignature;
 1939  }                                                                                <
 1940                                                                                   <
 1941    DWORD dmDisplayFrequency;                                                      <
 1942  // #if(WINVER >= 0x0400)                                                         <
 1943    DWORD dmICMMethod;                                                             <
 1944    DWORD dmICMIntent;                                                             <
 1945    DWORD dmMediaType;                                                             <
 1946    DWORD dmDitherType;                                                            <
 1947    DWORD dmReserved1;                                                             <
 1948    DWORD dmReserved2;                                                             <
 1949  // #if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400)                            <
 1950    DWORD dmPanningWidth;                                                          <
 1951    DWORD dmPanningHeight;                                                         <
 1952  // #endif                                                                        <
 1953  // #endif /* WINVER >= 0x0400 */                                                 <
 1954  }                                                                                <
 1955  alias _devicemodeW DEVMODEW;                                                     <
 1956  alias _devicemodeW* PDEVMODEW;                                                   <
 1957  alias _devicemodeW* NPDEVMODEW;                                                  <
 1958  alias _devicemodeW* LPDEVMODEW;                                                  <
 1959                                                                                   <
 1960  // #ifdef UNICODE                                                                <
 1961  alias DEVMODEW DEVMODE;                                                          <
 1962  alias PDEVMODEW PDEVMODE;                                                        <
 1963  alias NPDEVMODEW NPDEVMODE;                                                      <
 1964  alias LPDEVMODEW LPDEVMODE;                                                      <
 1965  // #else                                                                         <
 1966  // ...                                                                           <
 1967  // #endif // UNICODE                                                             <
 1968                                                                                   <
 1969  // #if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400)                            <
 1970  enum : uint { DM_SPECVERSION = 0x0401 }                                          <
 1971  // #elif (WINVER >= 0x0400)                                                      <
 1972  // #...                                                                          <
 1973  // #else                                                                         <
 1974  // #...                                                                          <
 1975  // #endif /* WINVER */                                                           <
 1976                                                                                   <
 1977  enum : uint { DM_ORIENTATION = 0x00000001 }                                      <
 1978  enum : uint { DM_PAPERSIZE = 0x00000002 }                                        <
 1979  enum : uint { DM_PAPERLENGTH = 0x00000004 }                                      <
 1980  enum : uint { DM_PAPERWIDTH = 0x00000008 }                                       <
 1981  enum : uint { DM_SCALE = 0x00000010 }                                            <
 1982  // #if(WINVER >= 0x0500)                                                         <
 1983  enum : uint { DM_POSITION = 0x00000020 }                                         <
 1984  enum : uint { DM_NUP = 0x00000040 }                                              <
 1985  // #endif /* WINVER >= 0x0500 */                                                 <
 1986  enum : uint { DM_COPIES = 0x00000100 }                                           <
 1987  enum : uint { DM_DEFAULTSOURCE = 0x00000200 }                                    <
 1988  enum : uint { DM_PRINTQUALITY = 0x00000400 }                                     <
 1989  enum : uint { DM_COLOR = 0x00000800 }                                            <
 1990  enum : uint { DM_DUPLEX = 0x00001000 }                                           <
 1991  enum : uint { DM_YRESOLUTION = 0x00002000 }                                      <
 1992  enum : uint { DM_TTOPTION = 0x00004000 }                                         <
 1993  enum : uint { DM_COLLATE = 0x00008000 }                                          <
 1994  enum : uint { DM_FORMNAME = 0x00010000 }                                         <
 1995  enum : uint { DM_LOGPIXELS = 0x00020000 }                                        <
 1996  enum : uint { DM_BITSPERPEL = 0x00040000 }                                       <
 1997  enum : uint { DM_PELSWIDTH = 0x00080000 }                                        <
 1998  enum : uint { DM_PELSHEIGHT = 0x00100000 }                                       <
 1999  enum : uint { DM_DISPLAYFLAGS = 0x00200000 }                                     <
 2000  enum : uint { DM_DISPLAYFREQUENCY = 0x00400000 }                                 <
 2001  // #if(WINVER >= 0x0400)                                                         <
 2002  enum : uint { DM_ICMMETHOD = 0x00800000 }                                        <
 2003  enum : uint { DM_ICMINTENT = 0x01000000 }                                        <
 2004  enum : uint { DM_MEDIATYPE = 0x02000000 }                                        <
 2005  enum : uint { DM_DITHERTYPE = 0x04000000 }                                       <
 2006  enum : uint { DM_PANNINGWIDTH = 0x08000000 }                                     <
 2007  enum : uint { DM_PANNINGHEIGHT = 0x10000000 }                                    <
 2008  // #endif /* WINVER >= 0x0400 */                                                 <
 2009                                                                                   <
 2010  enum : uint { DMORIENT_PORTRAIT = 1 }                                            <
 2011  enum : uint { DMORIENT_LANDSCAPE = 2 }                                           <
 2012                                                                                   <
 2013  enum { DMPAPER_FIRST = 1 }                                                       <
 2014  enum : uint { DMPAPER_LETTER = 1 }                                               <
 2015  enum : uint { DMPAPER_LETTERSMALL = 2 }                                          <
 2016  enum : uint { DMPAPER_TABLOID = 3 }                                              <
 2017  enum : uint { DMPAPER_LEDGER = 4 }                                               <
 2018  enum : uint { DMPAPER_LEGAL = 5 }                                                <
 2019  enum : uint { DMPAPER_STATEMENT = 6 }                                            <
 2020  enum : uint { DMPAPER_EXECUTIVE = 7 }                                            <
 2021  enum : uint { DMPAPER_A3 = 8 }                                                   <
 2022  enum : uint { DMPAPER_A4 = 9 }                                                   <
 2023  enum : uint { DMPAPER_A4SMALL = 10 }                                             <
 2024  enum : uint { DMPAPER_A5 = 11 }                                                  <
 2025  enum : uint { DMPAPER_B4 = 12 }                                                  <
 2026  enum : uint { DMPAPER_B5 = 13 }                                                  <
 2027  enum : uint { DMPAPER_FOLIO = 14 }                                               <
 2028  enum : uint { DMPAPER_QUARTO = 15 }                                              <
 2029  enum : uint { DMPAPER_10X14 = 16 }                                               <
 2030  enum : uint { DMPAPER_11X17 = 17 }                                               <
 2031  enum : uint { DMPAPER_NOTE = 18 }                                                <
 2032  enum : uint { DMPAPER_ENV_9 = 19 }                                               <
 2033  enum : uint { DMPAPER_ENV_10 = 20 }                                              <
 2034  enum : uint { DMPAPER_ENV_11 = 21 }                                              <
 2035  enum : uint { DMPAPER_ENV_12 = 22 }                                              <
 2036  enum : uint { DMPAPER_ENV_14 = 23 }                                              <
 2037  enum : uint { DMPAPER_CSHEET = 24 }                                              <
 2038  enum : uint { DMPAPER_DSHEET = 25 }                                              <
 2039  enum : uint { DMPAPER_ESHEET = 26 }                                              <
 2040  enum : uint { DMPAPER_ENV_DL = 27 }                                              <
 2041  enum : uint { DMPAPER_ENV_C5 = 28 }                                              <
 2042  enum : uint { DMPAPER_ENV_C3 = 29 }                                              <
 2043  enum : uint { DMPAPER_ENV_C4 = 30 }                                              <
 2044  enum : uint { DMPAPER_ENV_C6 = 31 }                                              <
 2045  enum : uint { DMPAPER_ENV_C65 = 32 }                                             <
 2046  enum : uint { DMPAPER_ENV_B4 = 33 }                                              <
 2047  enum : uint { DMPAPER_ENV_B5 = 34 }                                              <
 2048  enum : uint { DMPAPER_ENV_B6 = 35 }                                              <
 2049  enum : uint { DMPAPER_ENV_ITALY = 36 }                                           <
 2050  enum : uint { DMPAPER_ENV_MONARCH = 37 }                                         <
 2051  enum : uint { DMPAPER_ENV_PERSONAL = 38 }                                        <
 2052  enum : uint { DMPAPER_FANFOLD_US = 39 }                                          <
 2053  enum : uint { DMPAPER_FANFOLD_STD_GERMAN = 40 }                                  <
 2054  enum : uint { DMPAPER_FANFOLD_LGL_GERMAN = 41 }                                  <
 2055  // #if(WINVER >= 0x0400)                                                         <
 2056  enum : uint { DMPAPER_ISO_B4 = 42 }                                              <
 2057  enum : uint { DMPAPER_JAPANESE_POSTCARD = 43 }                                   <
 2058  enum : uint { DMPAPER_9X11 = 44 }                                                <
 2059  enum : uint { DMPAPER_10X11 = 45 }                                               <
 2060  enum : uint { DMPAPER_15X11 = 46 }                                               <
 2061  enum : uint { DMPAPER_ENV_INVITE = 47 }                                          <
 2062  enum : uint { DMPAPER_RESERVED_48 = 48 }                                         <
 2063  enum : uint { DMPAPER_RESERVED_49 = 49 }                                         <
 2064  enum : uint { DMPAPER_LETTER_EXTRA = 50 }                                        <
 2065  enum : uint { DMPAPER_LEGAL_EXTRA = 51 }                                         <
 2066  enum : uint { DMPAPER_TABLOID_EXTRA = 52 }                                       <
 2067  enum : uint { DMPAPER_A4_EXTRA = 53 }                                            <
 2068  enum : uint { DMPAPER_LETTER_TRANSVERSE = 54 }                                   <
 2069  enum : uint { DMPAPER_A4_TRANSVERSE = 55 }                                       <
 2070  enum : uint { DMPAPER_LETTER_EXTRA_TRANSVERSE = 56 }                             <
 2071  enum : uint { DMPAPER_A_PLUS = 57 }                                              <
 2072  enum : uint { DMPAPER_B_PLUS = 58 }                                              <
 2073  enum : uint { DMPAPER_LETTER_PLUS = 59 }                                         <
 2074  enum : uint { DMPAPER_A4_PLUS = 60 }                                             <
 2075  enum : uint { DMPAPER_A5_TRANSVERSE = 61 }                                       <
 2076  enum : uint { DMPAPER_B5_TRANSVERSE = 62 }                                       <
 2077  enum : uint { DMPAPER_A3_EXTRA = 63 }                                            <
 2078  enum : uint { DMPAPER_A5_EXTRA = 64 }                                            <
 2079  enum : uint { DMPAPER_B5_EXTRA = 65 }                                            <
 2080  enum : uint { DMPAPER_A2 = 66 }                                                  <
 2081  enum : uint { DMPAPER_A3_TRANSVERSE = 67 }                                       <
 2082  enum : uint { DMPAPER_A3_EXTRA_TRANSVERSE = 68 }                                 <
 2083  // #endif /* WINVER >= 0x0400 */                                                 <
 2084                                                                                   <
 2085  // #if(WINVER >= 0x0500)                                                         <
 2086  enum : uint { DMPAPER_DBL_JAPANESE_POSTCARD = 69 }                               <
 2087  enum : uint { DMPAPER_A6 = 70 }                                                  <
 2088  enum : uint { DMPAPER_JENV_KAKU2 = 71 }                                          <
 2089  enum : uint { DMPAPER_JENV_KAKU3 = 72 }                                          <
 2090  enum : uint { DMPAPER_JENV_CHOU3 = 73 }                                          <
 2091  enum : uint { DMPAPER_JENV_CHOU4 = 74 }                                          <
 2092  enum : uint { DMPAPER_LETTER_ROTATED = 75 }                                      <
 2093  enum : uint { DMPAPER_A3_ROTATED = 76 }                                          <
 2094  enum : uint { DMPAPER_A4_ROTATED = 77 }                                          <
 2095  enum : uint { DMPAPER_A5_ROTATED = 78 }                                          <
 2096  enum : uint { DMPAPER_B4_JIS_ROTATED = 79 }                                      <
 2097  enum : uint { DMPAPER_B5_JIS_ROTATED = 80 }                                      <
 2098  enum : uint { DMPAPER_JAPANESE_POSTCARD_ROTATED = 81 }                           <
 2099  enum : uint { DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED = 82 }                       <
 2100  enum : uint { DMPAPER_A6_ROTATED = 83 }                                          <
 2101  enum : uint { DMPAPER_JENV_KAKU2_ROTATED = 84 }                                  <
 2102  enum : uint { DMPAPER_JENV_KAKU3_ROTATED = 85 }                                  <
 2103  enum : uint { DMPAPER_JENV_CHOU3_ROTATED = 86 }                                  <
 2104  enum : uint { DMPAPER_JENV_CHOU4_ROTATED = 87 }                                  <
 2105  enum : uint { DMPAPER_B6_JIS = 88 }                                              <
 2106  enum : uint { DMPAPER_B6_JIS_ROTATED = 89 }                                      <
 2107  enum : uint { DMPAPER_12X11 = 90 }                                               <
 2108  enum : uint { DMPAPER_JENV_YOU4 = 91 }                                           <
 2109  enum : uint { DMPAPER_JENV_YOU4_ROTATED = 92 }                                   <
 2110  enum : uint { DMPAPER_P16K = 93 }                                                <
 2111  enum : uint { DMPAPER_P32K = 94 }                                                <
 2112  enum : uint { DMPAPER_P32KBIG = 95 }                                             <
 2113  enum : uint { DMPAPER_PENV_1 = 96 }                                              <
 2114  enum : uint { DMPAPER_PENV_2 = 97 }                                              <
 2115  enum : uint { DMPAPER_PENV_3 = 98 }                                              <
 2116  enum : uint { DMPAPER_PENV_4 = 99 }                                              <
 2117  enum : uint { DMPAPER_PENV_5 = 100 }                                             <
 2118  enum : uint { DMPAPER_PENV_6 = 101 }                                             <
 2119  enum : uint { DMPAPER_PENV_7 = 102 }                                             <
 2120  enum : uint { DMPAPER_PENV_8 = 103 }                                             <
 2121  enum : uint { DMPAPER_PENV_9 = 104 }                                             <
 2122  enum : uint { DMPAPER_PENV_10 = 105 }                                            <
 2123  enum : uint { DMPAPER_P16K_ROTATED = 106 }                                       <
 2124  enum : uint { DMPAPER_P32K_ROTATED = 107 }                                       <
 2125  enum : uint { DMPAPER_P32KBIG_ROTATED = 108 }                                    <
 2126  enum : uint { DMPAPER_PENV_1_ROTATED = 109 }                                     <
 2127  enum : uint { DMPAPER_PENV_2_ROTATED = 110 }                                     <
 2128  enum : uint { DMPAPER_PENV_3_ROTATED = 111 }                                     <
 2129  enum : uint { DMPAPER_PENV_4_ROTATED = 112 }                                     <
 2130  enum : uint { DMPAPER_PENV_5_ROTATED = 113 }                                     <
 2131  enum : uint { DMPAPER_PENV_6_ROTATED = 114 }                                     <
 2132  enum : uint { DMPAPER_PENV_7_ROTATED = 115 }                                     <
 2133  enum : uint { DMPAPER_PENV_8_ROTATED = 116 }                                     <
 2134  enum : uint { DMPAPER_PENV_9_ROTATED = 117 }                                     <
 2135  enum : uint { DMPAPER_PENV_10_ROTATED = 118 }                                    <
 2136  // #endif /* WINVER >= 0x0500 */                                                 <
 2137                                                                                   <
 2138  // #if (WINVER >= 0x0500)                                                        <
 2139  alias DMPAPER_PENV_10_ROTATED DMPAPER_LAST;                                      <
 2140  // #elif (WINVER >= 0x0400)                                                      <
 2141  // #...                                                                          <
 2142  // #else                                                                         <
 2143  // #...                                                                          <
 2144  // #endif                                                                        <
 2145                                                                                   <
 2146  enum : uint { DMPAPER_USER = 256 }                                               <
 2147                                                                                   <
 2148  enum { DMBIN_FIRST = 1 }                                                         <
 2149  enum : uint { DMBIN_UPPER = 1 }                                                  <
 2150  enum : uint { DMBIN_ONLYONE = 1 }                                                <
 2151  enum : uint { DMBIN_LOWER = 2 }                                                  <
 2152  enum : uint { DMBIN_MIDDLE = 3 }                                                 <
 2153  enum : uint { DMBIN_MANUAL = 4 }                                                 <
 2154  enum : uint { DMBIN_ENVELOPE = 5 }                                               <
 2155  enum : uint { DMBIN_ENVMANUAL = 6 }                                              <
 2156  enum : uint { DMBIN_AUTO = 7 }                                                   <
 2157  enum : uint { DMBIN_TRACTOR = 8 }                                                <
 2158  enum : uint { DMBIN_SMALLFMT = 9 }                                               <
 2159  enum : uint { DMBIN_LARGEFMT = 10 }                                              <
 2160  enum : uint { DMBIN_LARGECAPACITY = 11 }                                         <
 2161  enum : uint { DMBIN_CASSETTE = 14 }                                              <
 2162  enum : uint { DMBIN_FORMSOURCE = 15 }                                            <
 2163  alias DMBIN_FORMSOURCE DMBIN_LAST;                                               <
 2164                                                                                   <
 2165  enum : uint { DMBIN_USER = 256 }                                                 <
 2166                                                                                   <
 2167  enum { DMRES_DRAFT = -1 }                                                        <
 2168  enum { DMRES_LOW = -2 }                                                          <
 2169  enum { DMRES_MEDIUM = -3 }                                                       <
 2170  enum { DMRES_HIGH = -4 }                                                         <
 2171                                                                                   <
 2172  enum : uint { DMCOLOR_MONOCHROME = 1 }                                           <
 2173  enum : uint { DMCOLOR_COLOR = 2 }                                                <
 2174                                                                                   <
 2175  enum : uint { DMDUP_SIMPLEX = 1 }                                                <
 2176  enum : uint { DMDUP_VERTICAL = 2 }                                               <
 2177  enum : uint { DMDUP_HORIZONTAL = 3 }                                             <
 2178                                                                                   <
 2179  enum : uint { DMTT_BITMAP = 1 }                                                  <
 2180  enum : uint { DMTT_DOWNLOAD = 2 }                                                <
 2181  enum : uint { DMTT_SUBDEV = 3 }                                                  <
 2182  // #if(WINVER >= 0x0400)                                                         <
 2183  enum : uint { DMTT_DOWNLOAD_OUTLINE = 4 }                                        <
 2184  // #endif /* WINVER >= 0x0400 */                                                 <
 2185                                                                                   <
 2186  enum : uint { DMCOLLATE_FALSE = 0 }                                              <
 2187  enum : uint { DMCOLLATE_TRUE = 1 }                                               <
 2188                                                                                   <
 2189  enum : uint { DMDISPLAYFLAGS_TEXTMODE = 0x00000004 }                             <
 2190                                                                                   <
 2191  enum : uint { DMNUP_SYSTEM = 1 }                                                 <
 2192  enum : uint { DMNUP_ONEUP = 2 }                                                  <
 2193                                                                                   <
 2194  // #if(WINVER >= 0x0400)                                                         <
 2195                                                                                   <
 2196  enum : uint { DMICMMETHOD_NONE = 1 }                                             <
 2197  enum : uint { DMICMMETHOD_SYSTEM = 2 }                                           <
 2198  enum : uint { DMICMMETHOD_DRIVER = 3 }                                           <
 2199  enum : uint { DMICMMETHOD_DEVICE = 4 }                                           <
 2200                                                                                   <
 2201  enum : uint { DMICMMETHOD_USER = 256 }                                           <
 2202                                                                                   <
 2203  enum : uint { DMICM_SATURATE = 1 }                                               <
 2204  enum : uint { DMICM_CONTRAST = 2 }                                               <
 2205  enum : uint { DMICM_COLORIMETRIC = 3 }                                           <
 2206  enum : uint { DMICM_ABS_COLORIMETRIC = 4 }                                       <
 2207                                                                                   <
 2208  enum : uint { DMICM_USER = 256 }                                                 <
 2209                                                                                   <
 2210  enum : uint { DMMEDIA_STANDARD = 1 }                                             <
 2211  enum : uint { DMMEDIA_TRANSPARENCY = 2 }                                         <
 2212  enum : uint { DMMEDIA_GLOSSY = 3 }                                               <
 2213                                                                                   <
 2214  enum : uint { DMMEDIA_USER = 256 }                                               <
 2215                                                                                   <
 2216  enum : uint { DMDITHER_NONE = 1 }                                                <
 2217  enum : uint { DMDITHER_COARSE = 2 }                                              <
 2218  enum : uint { DMDITHER_FINE = 3 }                                                <
 2219  enum : uint { DMDITHER_LINEART = 4 }                                             <
 2220  enum : uint { DMDITHER_ERRORDIFFUSION = 5 }                                      <
 2221  enum : uint { DMDITHER_RESERVED6 = 6 }                                           <
 2222  enum : uint { DMDITHER_RESERVED7 = 7 }                                           <
 2223  enum : uint { DMDITHER_RESERVED8 = 8 }                                           <
 2224  enum : uint { DMDITHER_RESERVED9 = 9 }                                           <
 2225  enum : uint { DMDITHER_GRAYSCALE = 10 }                                          <
 2226                                                                                   <
 2227  enum : uint { DMDITHER_USER = 256 }                                              <
 2228  // #endif /* WINVER >= 0x0400 */                                                 <
 2229                                                                                   <
 2230  struct _DISPLAY_DEVICEA {                                                        <
 2231    DWORD cb;                                                                      |  2654      DWORD lcsVersion;
 2232    CHAR DeviceName[32];                                                           <
 2233    CHAR DeviceString[128];                                                        <
 2234    DWORD StateFlags;                                                              <
 2235    CHAR DeviceID[128];                                                            <
 2236    CHAR DeviceKey[128];                                                           <
 2237  }                                                                                <
 2238  alias _DISPLAY_DEVICEA DISPLAY_DEVICEA;                                          <
 2239  alias _DISPLAY_DEVICEA* PDISPLAY_DEVICEA;                                        <
 2240  alias _DISPLAY_DEVICEA* LPDISPLAY_DEVICEA;                                       <
 2241                                                                                   <
 2242  struct _DISPLAY_DEVICEW {                                                        <
 2243    DWORD cb;                                                                      |  2655      DWORD lcsSize;
 2244    WCHAR DeviceName[32];                                                          <
 2245    WCHAR DeviceString[128];                                                       <
 2246    DWORD StateFlags;                                                              <
 2247    WCHAR DeviceID[128];                                                           <
 2248    WCHAR DeviceKey[128];                                                          <
 2249  }                                                                                <
 2250  alias _DISPLAY_DEVICEW DISPLAY_DEVICEW;                                          <
 2251  alias _DISPLAY_DEVICEW* PDISPLAY_DEVICEW;                                        <
 2252  alias _DISPLAY_DEVICEW* LPDISPLAY_DEVICEW;                                       <
 2253                                                                                   <
 2254  // #ifdef UNICODE                                                                <
 2255  alias DISPLAY_DEVICEW DISPLAY_DEVICE;                                            <
 2256  alias PDISPLAY_DEVICEW PDISPLAY_DEVICE;                                          <
 2257  alias LPDISPLAY_DEVICEW LPDISPLAY_DEVICE;                                        <
 2258  // #else                                                                         <
 2259  // ...                                                                           <
 2260  // #endif // UNICODE                                                             <
 2261                                                                                   <
 2262  enum : uint { DISPLAY_DEVICE_ATTACHED_TO_DESKTOP = 0x00000001 }                  <
 2263  enum : uint { DISPLAY_DEVICE_MULTI_DRIVER = 0x00000002 }                         <
 2264  enum : uint { DISPLAY_DEVICE_PRIMARY_DEVICE = 0x00000004 }                       <
 2265  enum : uint { DISPLAY_DEVICE_MIRRORING_DRIVER = 0x00000008 }                     <
 2266  enum : uint { DISPLAY_DEVICE_VGA_COMPATIBLE = 0x00000010 }                       <
 2267  enum : uint { DISPLAY_DEVICE_REMOVABLE = 0x00000020 }                            <
 2268  enum : uint { DISPLAY_DEVICE_MODESPRUNED = 0x08000000 }                          <
 2269  enum : uint { DISPLAY_DEVICE_REMOTE = 0x04000000 }                               <
 2270  enum : uint { DISPLAY_DEVICE_DISCONNECT = 0x02000000 }                           <
 2271                                                                                   <
 2272  enum : uint { DISPLAY_DEVICE_ACTIVE = 0x00000001 }                               <
 2273  enum : uint { DISPLAY_DEVICE_ATTACHED = 0x00000002 }                             <
 2274                                                                                   <
 2275  enum : uint { RDH_RECTANGLES = 1 }                                               <
 2276                                                                                   <
 2277  struct _RGNDATAHEADER {                                                          <
                                                                                        >  2656      LCSCSTYPE lcsCSType;
                                                                                        >  2657      LCSGAMUTMATCH lcsIntent;
                                                                                        >  2658      CIEXYZTRIPLE lcsEndpoints;
 2278    DWORD dwSize;                                                                  |  2659      DWORD lcsGammaRed;
 2279    DWORD iType;                                                                   |  2660      DWORD lcsGammaGreen;
 2280    DWORD nCount;                                                                  |  2661      DWORD lcsGammaBlue;
 2281    DWORD nRgnSize;                                                                <
 2282    RECT rcBound;                                                                  <
                                                                                        >  2662      CHAR[MAX_PATH] lcsFilename;
 2283  }                                                                                |  2663  }
 2284  alias _RGNDATAHEADER RGNDATAHEADER;                                              <
 2285  alias _RGNDATAHEADER* PRGNDATAHEADER;                                            <
                                                                                        >  2664  alias LOGCOLORSPACEA*LPLOGCOLORSPACEA;
 2286                                                                                   |  2665  
 2287  struct _RGNDATA {                                                                <
 2288    RGNDATAHEADER rdh;                                                             <
 2289    char Buffer[1];                                                                <
 2290  }                                                                                <
 2291  alias _RGNDATA RGNDATA;                                                          <
 2292  alias _RGNDATA* PRGNDATA;                                                        <
 2293  alias _RGNDATA* NPRGNDATA;                                                       <
 2294  alias _RGNDATA* LPRGNDATA;                                                       <
 2295                                                                                   <
 2296  enum : uint { SYSRGN = 4 }                                                       <
 2297                                                                                   <
 2298  struct _ABC {                                                                    |  2666  struct LOGCOLORSPACEW
 2299    int abcA;                                                                      <
 2300    UINT abcB;                                                                     <
 2301    int abcC;                                                                      <
 2302  }                                                                                <
 2303  alias _ABC ABC;                                                                  <
 2304  alias _ABC* PABC;                                                                <
 2305  alias _ABC* NPABC;                                                               <
 2306  alias _ABC* LPABC;                                                               <
 2307                                                                                   |  2667  {
 2308  struct _ABCFLOAT {                                                               <
 2309    FLOAT abcfA;                                                                   <
 2310    FLOAT abcfB;                                                                   <
 2311    FLOAT abcfC;                                                                   <
 2312  }                                                                                <
 2313  alias _ABCFLOAT ABCFLOAT;                                                        <
 2314  alias _ABCFLOAT* PABCFLOAT;                                                      <
 2315  alias _ABCFLOAT* NPABCFLOAT;                                                     <
 2316  alias _ABCFLOAT* LPABCFLOAT;                                                     <
 2317                                                                                   <
 2318  // #ifndef NOTEXTMETRIC                                                          <
 2319                                                                                   <
 2320  // #ifdef _MAC                                                                   <
 2321  // #...                                                                          <
 2322  // #endif                                                                        <
 2323  struct _OUTLINETEXTMETRICA {                                                     <
 2324    UINT otmSize;                                                                  <
 2325    TEXTMETRICA otmTextMetrics;                                                    <
 2326    BYTE otmFiller;                                                                <
 2327    PANOSE otmPanoseNumber;                                                        <
 2328    UINT otmfsSelection;                                                           <
 2329    UINT otmfsType;                                                                <
 2330    int otmsCharSlopeRise;                                                         <
 2331    int otmsCharSlopeRun;                                                          <
 2332    int otmItalicAngle;                                                            <
 2333    UINT otmEMSquare;                                                              <
 2334    int otmAscent;                                                                 <
 2335    int otmDescent;                                                                <
 2336    UINT otmLineGap;                                                               <
 2337    UINT otmsCapEmHeight;                                                          <
 2338    UINT otmsXHeight;                                                              <
 2339    RECT otmrcFontBox;                                                             <
 2340    int otmMacAscent;                                                              <
 2341    int otmMacDescent;                                                             <
 2342    UINT otmMacLineGap;                                                            <
 2343    UINT otmusMinimumPPEM;                                                         <
 2344    POINT otmptSubscriptSize;                                                      <
 2345    POINT otmptSubscriptOffset;                                                    <
 2346    POINT otmptSuperscriptSize;                                                    <
 2347    POINT otmptSuperscriptOffset;                                                  <
 2348    UINT otmsStrikeoutSize;                                                        <
 2349    int otmsStrikeoutPosition;                                                     <
 2350    int otmsUnderscoreSize;                                                        <
 2351    int otmsUnderscorePosition;                                                    <
 2352    PSTR otmpFamilyName;                                                           <
 2353    PSTR otmpFaceName;                                                             <
 2354    PSTR otmpStyleName;                                                            <
 2355    PSTR otmpFullName;                                                             <
 2356  }                                                                                <
 2357  alias _OUTLINETEXTMETRICA OUTLINETEXTMETRICA;                                    <
 2358  alias _OUTLINETEXTMETRICA* POUTLINETEXTMETRICA;                                  <
 2359  alias _OUTLINETEXTMETRICA* NPOUTLINETEXTMETRICA;                                 <
 2360  alias _OUTLINETEXTMETRICA* LPOUTLINETEXTMETRICA;                                 <
 2361                                                                                   <
 2362  struct _OUTLINETEXTMETRICW {                                                     <
 2363    UINT otmSize;                                                                  <
 2364    TEXTMETRICW otmTextMetrics;                                                    <
 2365    BYTE otmFiller;                                                                <
 2366    PANOSE otmPanoseNumber;                                                        <
 2367    UINT otmfsSelection;                                                           <
 2368    UINT otmfsType;                                                                <
 2369    int otmsCharSlopeRise;                                                         <
 2370    int otmsCharSlopeRun;                                                          <
 2371    int otmItalicAngle;                                                            <
 2372    UINT otmEMSquare;                                                              <
 2373    int otmAscent;                                                                 <
 2374    int otmDescent;                                                                <
 2375    UINT otmLineGap;                                                               <
 2376    UINT otmsCapEmHeight;                                                          <
 2377    UINT otmsXHeight;                                                              <
 2378    RECT otmrcFontBox;                                                             <
 2379    int otmMacAscent;                                                              <
 2380    int otmMacDescent;                                                             <
 2381    UINT otmMacLineGap;                                                            <
 2382    UINT otmusMinimumPPEM;                                                         <
 2383    POINT otmptSubscriptSize;                                                      <
 2384    POINT otmptSubscriptOffset;                                                    <
 2385    POINT otmptSuperscriptSize;                                                    <
 2386    POINT otmptSuperscriptOffset;                                                  <
 2387    UINT otmsStrikeoutSize;                                                        <
 2388    int otmsStrikeoutPosition;                                                     <
 2389    int otmsUnderscoreSize;                                                        <
 2390    int otmsUnderscorePosition;                                                    <
 2391    PSTR otmpFamilyName;                                                           <
 2392    PSTR otmpFaceName;                                                             <
 2393    PSTR otmpStyleName;                                                            <
 2394    PSTR otmpFullName;                                                             <
 2395  }                                                                                <
 2396  alias _OUTLINETEXTMETRICW OUTLINETEXTMETRICW;                                    <
 2397  alias _OUTLINETEXTMETRICW* POUTLINETEXTMETRICW;                                  <
 2398  alias _OUTLINETEXTMETRICW* NPOUTLINETEXTMETRICW;                                 <
 2399  alias _OUTLINETEXTMETRICW* LPOUTLINETEXTMETRICW;                                 <
 2400                                                                                   <
 2401  // #ifdef UNICODE                                                                <
 2402  alias OUTLINETEXTMETRICW OUTLINETEXTMETRIC;                                      <
 2403  alias POUTLINETEXTMETRICW POUTLINETEXTMETRIC;                                    <
 2404  alias NPOUTLINETEXTMETRICW NPOUTLINETEXTMETRIC;                                  <
 2405  alias LPOUTLINETEXTMETRICW LPOUTLINETEXTMETRIC;                                  <
 2406  // #else                                                                         <
 2407  // ...                                                                           <
 2408  // #endif // UNICODE                                                             <
 2409                                                                                   <
 2410  // #ifdef _MAC                                                                   <
 2411  // #...                                                                          <
 2412  // #endif                                                                        <
 2413                                                                                   <
 2414  // #endif /* NOTEXTMETRIC */                                                     <
 2415                                                                                   <
 2416  struct tagPOLYTEXTA {                                                            <
 2417    int x;                                                                         <
 2418    int y;                                                                         <
 2419    UINT n;                                                                        <
 2420    LPCSTR lpstr;                                                                  <
 2421    UINT uiFlags;                                                                  <
 2422    RECT rcl;                                                                      <
 2423    int *pdx;                                                                      <
 2424  }                                                                                <
 2425  alias tagPOLYTEXTA POLYTEXTA;                                                    <
 2426  alias tagPOLYTEXTA* PPOLYTEXTA;                                                  <
 2427  alias tagPOLYTEXTA* NPPOLYTEXTA;                                                 <
 2428  alias tagPOLYTEXTA* LPPOLYTEXTA;                                                 <
 2429                                                                                   <
 2430  struct tagPOLYTEXTW {                                                            <
 2431    int x;                                                                         <
 2432    int y;                                                                         <
 2433    UINT n;                                                                        <
 2434    LPCWSTR lpstr;                                                                 <
 2435    UINT uiFlags;                                                                  <
 2436    RECT rcl;                                                                      <
 2437    int *pdx;                                                                      <
 2438  }                                                                                <
 2439  alias tagPOLYTEXTW POLYTEXTW;                                                    <
 2440  alias tagPOLYTEXTW* PPOLYTEXTW;                                                  <
 2441  alias tagPOLYTEXTW* NPPOLYTEXTW;                                                 <
 2442  alias tagPOLYTEXTW* LPPOLYTEXTW;                                                 <
 2443                                                                                   <
 2444  // #ifdef UNICODE                                                                <
 2445  alias POLYTEXTW POLYTEXT;                                                        <
 2446  alias PPOLYTEXTW PPOLYTEXT;                                                      <
 2447  alias NPPOLYTEXTW NPPOLYTEXT;                                                    <
 2448  alias LPPOLYTEXTW LPPOLYTEXT;                                                    <
 2449  // #else                                                                         <
 2450  // ...                                                                           <
 2451  // #endif // UNICODE                                                             <
 2452                                                                                   <
 2453  struct _FIXED {                                                                  <
 2454  // #ifndef _MAC                                                                  <
 2455    WORD fract;                                                                    <
 2456    short value;                                                                   <
 2457  // #else                                                                         <
 2458  // ...                                                                           <
 2459  // #endif                                                                        <
 2460  }                                                                                <
 2461  alias _FIXED FIXED;                                                              <
 2462                                                                                   <
 2463  struct _MAT2 {                                                                   <
 2464    FIXED eM11;                                                                    <
 2465    FIXED eM12;                                                                    <
 2466    FIXED eM21;                                                                    <
 2467    FIXED eM22;                                                                    <
 2468  }                                                                                <
 2469  alias _MAT2 MAT2;                                                                <
 2470  alias _MAT2* LPMAT2;                                                             <
 2471                                                                                   <
 2472  struct _GLYPHMETRICS {                                                           <
 2473    UINT gmBlackBoxX;                                                              <
 2474    UINT gmBlackBoxY;                                                              <
 2475    POINT gmptGlyphOrigin;                                                         <
 2476    short gmCellIncX;                                                              <
 2477    short gmCellIncY;                                                              <
 2478  }                                                                                <
 2479  alias _GLYPHMETRICS GLYPHMETRICS;                                                <
 2480  alias _GLYPHMETRICS* LPGLYPHMETRICS;                                             <
 2481                                                                                   <
 2482  enum : uint { GGO_METRICS = 0 }                                                  <
 2483  enum : uint { GGO_BITMAP = 1 }                                                   <
 2484  enum : uint { GGO_NATIVE = 2 }                                                   <
 2485  enum : uint { GGO_BEZIER = 3 }                                                   <
 2486                                                                                   <
 2487  // #if(WINVER >= 0x0400)                                                         <
 2488  enum : uint { GGO_GRAY2_BITMAP = 4 }                                             <
 2489  enum : uint { GGO_GRAY4_BITMAP = 5 }                                             <
 2490  enum : uint { GGO_GRAY8_BITMAP = 6 }                                             <
 2491  enum : uint { GGO_GLYPH_INDEX = 0x0080 }                                         <
 2492  // #endif /* WINVER >= 0x0400 */                                                 <
 2493                                                                                   <
 2494  // #if (_WIN32_WINNT >= 0x0500)                                                  <
 2495  enum : uint { GGO_UNHINTED = 0x0100 }                                            <
 2496  // #endif // (_WIN32_WINNT >= 0x0500)                                            <
 2497                                                                                   <
 2498  enum : uint { TT_POLYGON_TYPE = 24 }                                             <
 2499                                                                                   <
 2500  enum : uint { TT_PRIM_LINE = 1 }                                                 <
 2501  enum : uint { TT_PRIM_QSPLINE = 2 }                                              <
 2502  enum : uint { TT_PRIM_CSPLINE = 3 }                                              <
 2503                                                                                   <
 2504  struct tagPOINTFX {                                                              <
 2505    FIXED x;                                                                       <
 2506    FIXED y;                                                                       <
 2507  }                                                                                <
 2508  alias tagPOINTFX POINTFX;                                                        <
 2509  alias tagPOINTFX* LPPOINTFX;                                                     <
 2510                                                                                   <
 2511  struct tagTTPOLYCURVE {                                                          <
 2512    WORD wType;                                                                    <
 2513    WORD cpfx;                                                                     <
 2514    POINTFX apfx[1];                                                               <
 2515  }                                                                                <
 2516  alias tagTTPOLYCURVE TTPOLYCURVE;                                                <
 2517  alias tagTTPOLYCURVE* LPTTPOLYCURVE;                                             <
 2518                                                                                   <
 2519  struct tagTTPOLYGONHEADER {                                                      <
 2520    DWORD cb;                                                                      |  2668      DWORD lcsSignature;
 2521    DWORD dwType;                                                                  <
 2522    POINTFX pfxStart;                                                              <
 2523  }                                                                                <
 2524  alias tagTTPOLYGONHEADER TTPOLYGONHEADER;                                        <
 2525  alias tagTTPOLYGONHEADER* LPTTPOLYGONHEADER;                                     <
 2526                                                                                   <
 2527  // #if(WINVER >= 0x0400)                                                         <
 2528  enum : uint { GCP_DBCS = 0x0001 }                                                <
 2529  enum : uint { GCP_REORDER = 0x0002 }                                             <
 2530  enum : uint { GCP_USEKERNING = 0x0008 }                                          <
 2531  enum : uint { GCP_GLYPHSHAPE = 0x0010 }                                          <
 2532  enum : uint { GCP_LIGATE = 0x0020 }                                              <
 2533                                                                                   <
 2534  enum : uint { GCP_DIACRITIC = 0x0100 }                                           <
 2535  enum : uint { GCP_KASHIDA = 0x0400 }                                             <
 2536  enum : uint { GCP_ERROR = 0x8000 }                                               <
 2537  enum : uint { FLI_MASK = 0x103B }                                                <
 2538                                                                                   <
 2539  enum : uint { GCP_JUSTIFY = 0x00010000 }                                         <
 2540                                                                                   <
 2541  enum : uint { FLI_GLYPHS = 0x00040000 }                                          <
 2542  enum : uint { GCP_CLASSIN = 0x00080000 }                                         <
 2543  enum : uint { GCP_MAXEXTENT = 0x00100000 }                                       <
 2544  enum : uint { GCP_JUSTIFYIN = 0x00200000 }                                       <
 2545  enum : uint { GCP_DISPLAYZWG = 0x00400000 }                                      <
 2546  enum : uint { GCP_SYMSWAPOFF = 0x00800000 }                                      <
 2547  enum : uint { GCP_NUMERICOVERRIDE = 0x01000000 }                                 <
 2548  enum : uint { GCP_NEUTRALOVERRIDE = 0x02000000 }                                 <
 2549  enum : uint { GCP_NUMERICSLATIN = 0x04000000 }                                   <
 2550  enum : uint { GCP_NUMERICSLOCAL = 0x08000000 }                                   <
 2551                                                                                   <
 2552  enum : uint { GCPCLASS_LATIN = 1 }                                               <
 2553  enum : uint { GCPCLASS_HEBREW = 2 }                                              <
 2554  enum : uint { GCPCLASS_ARABIC = 2 }                                              <
 2555  enum : uint { GCPCLASS_NEUTRAL = 3 }                                             <
 2556  enum : uint { GCPCLASS_LOCALNUMBER = 4 }                                         <
 2557  enum : uint { GCPCLASS_LATINNUMBER = 5 }                                         <
 2558  enum : uint { GCPCLASS_LATINNUMERICTERMINATOR = 6 }                              <
 2559  enum : uint { GCPCLASS_LATINNUMERICSEPARATOR = 7 }                               <
 2560  enum : uint { GCPCLASS_NUMERICSEPARATOR = 8 }                                    <
 2561  enum : uint { GCPCLASS_PREBOUNDLTR = 0x80 }                                      <
 2562  enum : uint { GCPCLASS_PREBOUNDRTL = 0x40 }                                      <
 2563  enum : uint { GCPCLASS_POSTBOUNDLTR = 0x20 }                                     <
 2564  enum : uint { GCPCLASS_POSTBOUNDRTL = 0x10 }                                     <
 2565                                                                                   <
 2566  enum : uint { GCPGLYPH_LINKBEFORE = 0x8000 }                                     <
 2567  enum : uint { GCPGLYPH_LINKAFTER = 0x4000 }                                      <
 2568                                                                                   <
 2569  struct tagGCP_RESULTSA {                                                         <
 2570    DWORD lStructSize;                                                             <
 2571    LPSTR lpOutString;                                                             <
 2572    UINT *lpOrder;                                                                 <
 2573    int *lpDx;                                                                     <
 2574    int *lpCaretPos;                                                               <
 2575    LPSTR lpClass;                                                                 <
 2576    LPWSTR lpGlyphs;                                                               <
 2577    UINT nGlyphs;                                                                  <
 2578    int nMaxFit;                                                                   <
 2579  }                                                                                <
 2580  alias tagGCP_RESULTSA GCP_RESULTSA;                                              <
 2581  alias tagGCP_RESULTSA* LPGCP_RESULTSA;                                           <
 2582                                                                                   <
 2583  struct tagGCP_RESULTSW {                                                         <
 2584    DWORD lStructSize;                                                             <
 2585    LPWSTR lpOutString;                                                            <
 2586    UINT *lpOrder;                                                                 <
 2587    int *lpDx;                                                                     <
 2588    int *lpCaretPos;                                                               <
 2589    LPSTR lpClass;                                                                 <
 2590    LPWSTR lpGlyphs;                                                               <
 2591    UINT nGlyphs;                                                                  <
 2592    int nMaxFit;                                                                   <
 2593  }                                                                                <
 2594  alias tagGCP_RESULTSW GCP_RESULTSW;                                              <
 2595  alias tagGCP_RESULTSW* LPGCP_RESULTSW;                                           <
 2596                                                                                   <
 2597  // #ifdef UNICODE                                                                <
 2598  alias GCP_RESULTSW GCP_RESULTS;                                                  <
 2599  alias LPGCP_RESULTSW LPGCP_RESULTS;                                              <
 2600  // #else                                                                         <
 2601  // ...                                                                           <
 2602  // #endif // UNICODE                                                             <
 2603  // #endif /* WINVER >= 0x0400 */                                                 <
 2604                                                                                   <
 2605  struct _RASTERIZER_STATUS {                                                      <
 2606    short nSize;                                                                   <
 2607    short wFlags;                                                                  <
 2608    short nLanguageID;                                                             <
 2609  }                                                                                <
 2610  alias _RASTERIZER_STATUS RASTERIZER_STATUS;                                      <
 2611  alias _RASTERIZER_STATUS* LPRASTERIZER_STATUS;                                   <
 2612                                                                                   <
 2613  enum : uint { TT_AVAILABLE = 0x0001 }                                            <
 2614  enum : uint { TT_ENABLED = 0x0002 }                                              <
 2615                                                                                   <
 2616  struct tagPIXELFORMATDESCRIPTOR {                                                <
 2617    WORD nSize;                                                                    <
 2618    WORD nVersion;                                                                 |  2669      DWORD lcsVersion;
 2619    DWORD dwFlags;                                                                 |  2670      DWORD lcsSize;
 2620    BYTE iPixelType;                                                               <
 2621    BYTE cColorBits;                                                               <
 2622    BYTE cRedBits;                                                                 <
 2623    BYTE cRedShift;                                                                <
 2624    BYTE cGreenBits;                                                               <
 2625    BYTE cGreenShift;                                                              <
 2626    BYTE cBlueBits;                                                                <
 2627    BYTE cBlueShift;                                                               <
 2628    BYTE cAlphaBits;                                                               <
 2629    BYTE cAlphaShift;                                                              <
 2630    BYTE cAccumBits;                                                               <
 2631    BYTE cAccumRedBits;                                                            <
 2632    BYTE cAccumGreenBits;                                                          <
 2633    BYTE cAccumBlueBits;                                                           <
 2634    BYTE cAccumAlphaBits;                                                          <
 2635    BYTE cDepthBits;                                                               <
 2636    BYTE cStencilBits;                                                             <
 2637    BYTE cAuxBuffers;                                                              <
 2638    BYTE iLayerType;                                                               <
 2639    BYTE bReserved;                                                                <
 2640    DWORD dwLayerMask;                                                             <
 2641    DWORD dwVisibleMask;                                                           <
 2642    DWORD dwDamageMask;                                                            <
 2643  }                                                                                <
 2644  alias tagPIXELFORMATDESCRIPTOR PIXELFORMATDESCRIPTOR;                            <
 2645  alias tagPIXELFORMATDESCRIPTOR* PPIXELFORMATDESCRIPTOR;                          <
 2646  alias tagPIXELFORMATDESCRIPTOR* LPPIXELFORMATDESCRIPTOR;                         <
 2647                                                                                   <
 2648  enum : uint { PFD_TYPE_RGBA = 0 }                                                <
 2649  enum : uint { PFD_TYPE_COLORINDEX = 1 }                                          <
 2650                                                                                   <
 2651  enum : uint { PFD_MAIN_PLANE = 0 }                                               <
 2652  enum : uint { PFD_OVERLAY_PLANE = 1 }                                            <
 2653  enum { PFD_UNDERLAY_PLANE = -1 }                                                 <
 2654                                                                                   <
 2655  enum : uint { PFD_DOUBLEBUFFER = 0x00000001 }                                    <
 2656  enum : uint { PFD_STEREO = 0x00000002 }                                          <
 2657  enum : uint { PFD_DRAW_TO_WINDOW = 0x00000004 }                                  <
 2658  enum : uint { PFD_DRAW_TO_BITMAP = 0x00000008 }                                  <
 2659  enum : uint { PFD_SUPPORT_GDI = 0x00000010 }                                     <
 2660  enum : uint { PFD_SUPPORT_OPENGL = 0x00000020 }                                  <
 2661  enum : uint { PFD_GENERIC_FORMAT = 0x00000040 }                                  <
 2662  enum : uint { PFD_NEED_PALETTE = 0x00000080 }                                    <
 2663  enum : uint { PFD_NEED_SYSTEM_PALETTE = 0x00000100 }                             <
 2664  enum : uint { PFD_SWAP_EXCHANGE = 0x00000200 }                                   <
 2665  enum : uint { PFD_SWAP_COPY = 0x00000400 }                                       <
 2666  enum : uint { PFD_SWAP_LAYER_BUFFERS = 0x00000800 }                              <
 2667  enum : uint { PFD_GENERIC_ACCELERATED = 0x00001000 }                             <
 2668  enum : uint { PFD_SUPPORT_DIRECTDRAW = 0x00002000 }                              <
 2669                                                                                   <
 2670  enum : uint { PFD_DEPTH_DONTCARE = 0x20000000 }                                  <
 2671  enum : uint { PFD_DOUBLEBUFFER_DONTCARE = 0x40000000 }                           <
 2672  enum : uint { PFD_STEREO_DONTCARE = 0x80000000 }                                 <
 2673                                                                                   <
 2674  // #ifdef STRICT                                                                 <
 2675  // #if !defined(NOTEXTMETRIC)                                                    <
 2676  extern(Windows) alias int function( LOGFONTA *,  TEXTMETRICA *, DWORD, LPARAM) O <
 2677  extern(Windows) alias int function( LOGFONTW *,  TEXTMETRICW *, DWORD, LPARAM) O <
 2678  // #ifdef UNICODE                                                                <
 2679  alias OLDFONTENUMPROCW OLDFONTENUMPROC;                                          <
 2680  // #else                                                                         <
 2681  // #...                                                                          <
 2682  // #endif // !UNICODE                                                            <
 2683  // #else                                                                         <
 2684  // ...                                                                           <
 2685  // #ifdef UNICODE                                                                <
 2686  // #...                                                                          <
 2687  // #else                                                                         <
 2688  // #...                                                                          <
 2689  // #endif // !UNICODE                                                            <
 2690  // #endif                                                                        <
 2691                                                                                   <
 2692  alias OLDFONTENUMPROCA FONTENUMPROCA;                                            <
 2693  alias OLDFONTENUMPROCW FONTENUMPROCW;                                            <
 2694  // #ifdef UNICODE                                                                <
 2695  alias FONTENUMPROCW FONTENUMPROC;                                                <
 2696  // #else                                                                         <
 2697  // ...                                                                           <
 2698  // #endif // UNICODE                                                             <
 2699                                                                                   <
 2700  extern(Windows) alias int function(LPVOID, LPARAM) GOBJENUMPROC;                 <
 2701  extern(Windows) alias VOID function(int, int, LPARAM) LINEDDAPROC;               <
 2702  // #else                                                                         <
 2703  // ...                                                                           <
 2704  // #ifdef UNICODE                                                                <
 2705  // ...                                                                           <
 2706  // #else                                                                         <
 2707  // ...                                                                           <
 2708  // #endif // UNICODE                                                             <
 2709  // ...                                                                           <
 2710  // #endif                                                                        <
 2711                                                                                   <
 2712  extern(Windows) export int AddFontResourceA(LPCSTR);                             <
 2713  extern(Windows) export int AddFontResourceW(LPCWSTR);                            <
 2714  // #ifdef UNICODE                                                                <
 2715  alias AddFontResourceW AddFontResource;                                          <
 2716  // #else                                                                         <
 2717  // #...                                                                          <
 2718  // #endif // !UNICODE                                                            <
 2719                                                                                   <
 2720  extern(Windows) export BOOL AnimatePalette(HPALETTE, UINT, UINT, PALETTEENTRY *) <
 2721  extern(Windows) export BOOL Arc(HDC, int, int, int, int, int, int, int, int);    <
 2722  extern(Windows) export BOOL BitBlt(HDC, int, int, int, int, HDC, int, int, DWORD <
 2723  extern(Windows) export BOOL CancelDC(HDC);                                       <
 2724  extern(Windows) export BOOL Chord(HDC, int, int, int, int, int, int, int, int);  <
 2725  extern(Windows) export int ChoosePixelFormat(HDC, PIXELFORMATDESCRIPTOR *);      <
 2726  extern(Windows) export HMETAFILE CloseMetaFile(HDC);                             <
 2727  extern(Windows) export int CombineRgn(HRGN, HRGN, HRGN, int);                    <
 2728  extern(Windows) export HMETAFILE CopyMetaFileA(HMETAFILE, LPCSTR);               <
 2729  extern(Windows) export HMETAFILE CopyMetaFileW(HMETAFILE, LPCWSTR);              <
 2730  // #ifdef UNICODE                                                                <
 2731  alias CopyMetaFileW CopyMetaFile;                                                <
 2732  // #else                                                                         <
 2733  // #...                                                                          <
 2734  // #endif // !UNICODE                                                            <
 2735  extern(Windows) export HBITMAP CreateBitmap(int, int, UINT, UINT, VOID *);       <
 2736  extern(Windows) export HBITMAP CreateBitmapIndirect(BITMAP *);                   <
 2737  extern(Windows) export HBRUSH CreateBrushIndirect(LOGBRUSH *);                   <
 2738  extern(Windows) export HBITMAP CreateCompatibleBitmap(HDC, int, int);            <
 2739  extern(Windows) export HBITMAP CreateDiscardableBitmap(HDC, int, int);           <
 2740  extern(Windows) export HDC CreateCompatibleDC(HDC);                              <
 2741  extern(Windows) export HDC CreateDCA(LPCSTR, LPCSTR, LPCSTR, DEVMODEA *);        <
 2742  extern(Windows) export HDC CreateDCW(LPCWSTR, LPCWSTR, LPCWSTR, DEVMODEW *);     <
 2743  // #ifdef UNICODE                                                                <
 2744  alias CreateDCW CreateDC;                                                        <
 2745  // #else                                                                         <
 2746  // #...                                                                          <
 2747  // #endif // !UNICODE                                                            <
 2748  extern(Windows) export HBITMAP CreateDIBitmap(HDC, BITMAPINFOHEADER *, DWORD, VO <
 2749  extern(Windows) export HBRUSH CreateDIBPatternBrush(HGLOBAL, UINT);              <
 2750  extern(Windows) export HBRUSH CreateDIBPatternBrushPt(VOID *, UINT);             <
 2751  extern(Windows) export HRGN CreateEllipticRgn(int, int, int, int);               <
 2752  extern(Windows) export HRGN CreateEllipticRgnIndirect(RECT *);                   <
 2753  extern(Windows) export HFONT CreateFontIndirectA(LOGFONTA *);                    <
 2754  extern(Windows) export HFONT CreateFontIndirectW(LOGFONTW *);                    <
 2755  // #ifdef UNICODE                                                                <
 2756  alias CreateFontIndirectW CreateFontIndirect;                                    <
 2757  // #else                                                                         <
 2758  // #...                                                                          <
 2759  // #endif // !UNICODE                                                            <
 2760  extern(Windows) export HFONT CreateFontA(int, int, int, int, int, DWORD,         <
 2761    DWORD, DWORD, DWORD, DWORD, DWORD,                                             <
 2762    DWORD, DWORD, LPCSTR);                                                         <
 2763  extern(Windows) export HFONT CreateFontW(int, int, int, int, int, DWORD,         <
 2764    DWORD, DWORD, DWORD, DWORD, DWORD,                                             <
 2765    DWORD, DWORD, LPCWSTR);                                                        <
 2766  // #ifdef UNICODE                                                                <
 2767  alias CreateFontW CreateFont;                                                    <
 2768  // #else                                                                         <
 2769  // #...                                                                          <
 2770  // #endif // !UNICODE                                                            <
 2771                                                                                   <
 2772  extern(Windows) export HBRUSH CreateHatchBrush(int, COLORREF);                   <
 2773  extern(Windows) export HDC CreateICA(LPCSTR, LPCSTR, LPCSTR, DEVMODEA *);        <
 2774  extern(Windows) export HDC CreateICW(LPCWSTR, LPCWSTR, LPCWSTR, DEVMODEW *);     <
 2775  // #ifdef UNICODE                                                                <
 2776  alias CreateICW CreateIC;                                                        <
 2777  // #else                                                                         <
 2778  // #...                                                                          <
 2779  // #endif // !UNICODE                                                            <
 2780  extern(Windows) export HDC CreateMetaFileA(LPCSTR);                              <
 2781  extern(Windows) export HDC CreateMetaFileW(LPCWSTR);                             <
 2782  // #ifdef UNICODE                                                                <
 2783  alias CreateMetaFileW CreateMetaFile;                                            <
 2784  // #else                                                                         <
 2785  // #...                                                                          <
 2786  // #endif // !UNICODE                                                            <
 2787  extern(Windows) export HPALETTE CreatePalette(LOGPALETTE *);                     <
 2788  extern(Windows) export HPEN CreatePen(int, int, COLORREF);                       <
 2789  extern(Windows) export HPEN CreatePenIndirect(LOGPEN *);                         <
 2790  extern(Windows) export HRGN CreatePolyPolygonRgn(POINT *, INT *, int, int);      <
 2791  extern(Windows) export HBRUSH CreatePatternBrush(HBITMAP);                       <
 2792  extern(Windows) export HRGN CreateRectRgn(int, int, int, int);                   <
 2793  extern(Windows) export HRGN CreateRectRgnIndirect(RECT *);                       <
 2794  extern(Windows) export HRGN CreateRoundRectRgn(int, int, int, int, int, int);    <
 2795  extern(Windows) export BOOL CreateScalableFontResourceA(DWORD, LPCSTR, LPCSTR, L <
 2796  extern(Windows) export BOOL CreateScalableFontResourceW(DWORD, LPCWSTR, LPCWSTR, <
 2797  // #ifdef UNICODE                                                                <
 2798  alias CreateScalableFontResourceW CreateScalableFontResource;                    <
 2799  // #else                                                                         <
 2800  // #...                                                                          <
 2801  // #endif // !UNICODE                                                            <
 2802  extern(Windows) export HBRUSH CreateSolidBrush(COLORREF);                        <
 2803                                                                                   <
 2804  extern(Windows) export BOOL DeleteDC(HDC);                                       <
 2805  extern(Windows) export BOOL DeleteMetaFile(HMETAFILE);                           <
 2806  extern(Windows) export BOOL DeleteObject(HGDIOBJ);                               <
 2807  extern(Windows) export int DescribePixelFormat(HDC, int, UINT, LPPIXELFORMATDESC <
 2808                                                                                   <
 2809  extern(Windows) alias UINT function(HWND, HMODULE, LPDEVMODE, LPSTR, LPSTR, LPDE <
 2810                                                                                   <
 2811  extern(Windows) alias DWORD function(LPSTR, LPSTR, UINT, LPSTR, LPDEVMODE) LPFND <
 2812                                                                                   <
 2813  enum : uint { DM_UPDATE = 1 }                                                    <
 2814  enum : uint { DM_COPY = 2 }                                                      <
 2815  enum : uint { DM_PROMPT = 4 }                                                    <
 2816  enum : uint { DM_MODIFY = 8 }                                                    <
 2817                                                                                   <
 2818  alias DM_MODIFY DM_IN_BUFFER;                                                    <
 2819  alias DM_PROMPT DM_IN_PROMPT;                                                    <
 2820  alias DM_COPY DM_OUT_BUFFER;                                                     <
 2821  alias DM_UPDATE DM_OUT_DEFAULT;                                                  <
 2822                                                                                   <
 2823  enum : uint { DC_FIELDS = 1 }                                                    <
 2824  enum : uint { DC_PAPERS = 2 }                                                    <
 2825  enum : uint { DC_PAPERSIZE = 3 }                                                 <
 2826  enum : uint { DC_MINEXTENT = 4 }                                                 <
 2827  enum : uint { DC_MAXEXTENT = 5 }                                                 <
 2828  enum : uint { DC_BINS = 6 }                                                      <
 2829  enum : uint { DC_DUPLEX = 7 }                                                    <
 2830  enum : uint { DC_SIZE = 8 }                                                      <
 2831  enum : uint { DC_EXTRA = 9 }                                                     <
 2832  enum : uint { DC_VERSION = 10 }                                                  <
 2833  enum : uint { DC_DRIVER = 11 }                                                   <
 2834  enum : uint { DC_BINNAMES = 12 }                                                 <
 2835  enum : uint { DC_ENUMRESOLUTIONS = 13 }                                          <
 2836  enum : uint { DC_FILEDEPENDENCIES = 14 }                                         <
 2837  enum : uint { DC_TRUETYPE = 15 }                                                 <
 2838  enum : uint { DC_PAPERNAMES = 16 }                                               <
 2839  enum : uint { DC_ORIENTATION = 17 }                                              <
 2840  enum : uint { DC_COPIES = 18 }                                                   <
 2841  // #if(WINVER >= 0x0400)                                                         <
 2842  enum : uint { DC_BINADJUST = 19 }                                                <
 2843  enum : uint { DC_EMF_COMPLIANT = 20 }                                            <
 2844  enum : uint { DC_DATATYPE_PRODUCED = 21 }                                        <
 2845  enum : uint { DC_COLLATE = 22 }                                                  <
 2846  enum : uint { DC_MANUFACTURER = 23 }                                             <
 2847  enum : uint { DC_MODEL = 24 }                                                    <
 2848  // #endif /* WINVER >= 0x0400 */                                                 <
 2849                                                                                   <
 2850  // #if(WINVER >= 0x0500)                                                         <
 2851  enum : uint { DC_PERSONALITY = 25 }                                              <
 2852  enum : uint { DC_PRINTRATE = 26 }                                                <
 2853  enum : uint { DC_PRINTRATEUNIT = 27 }                                            <
 2854  enum : uint { PRINTRATEUNIT_PPM = 1 }                                            <
 2855  enum : uint { PRINTRATEUNIT_CPS = 2 }                                            <
 2856  enum : uint { PRINTRATEUNIT_LPM = 3 }                                            <
 2857  enum : uint { PRINTRATEUNIT_IPM = 4 }                                            <
 2858  enum : uint { DC_PRINTERMEM = 28 }                                               <
 2859  enum : uint { DC_MEDIAREADY = 29 }                                               <
 2860  enum : uint { DC_STAPLE = 30 }                                                   <
 2861  enum : uint { DC_PRINTRATEPPM = 31 }                                             <
 2862  enum : uint { DC_COLORDEVICE = 32 }                                              <
 2863  enum : uint { DC_NUP = 33 }                                                      <
 2864  enum : uint { DC_MEDIATYPENAMES = 34 }                                           <
 2865  enum : uint { DC_MEDIATYPES = 35 }                                               <
 2866  // #endif /* WINVER >= 0x0500 */                                                 <
 2867                                                                                   <
 2868  enum : uint { DCTT_BITMAP = 0x0000001 }                                          <
 2869  enum : uint { DCTT_DOWNLOAD = 0x0000002 }                                        <
 2870  enum : uint { DCTT_SUBDEV = 0x0000004 }                                          <
 2871  // #if(WINVER >= 0x0400)                                                         <
 2872  enum : uint { DCTT_DOWNLOAD_OUTLINE = 0x0000008 }                                <
 2873                                                                                   <
 2874  enum : uint { DCBA_FACEUPNONE = 0x0000 }                                         <
 2875  enum : uint { DCBA_FACEUPCENTER = 0x0001 }                                       <
 2876  enum : uint { DCBA_FACEUPLEFT = 0x0002 }                                         <
 2877  enum : uint { DCBA_FACEUPRIGHT = 0x0003 }                                        <
 2878  enum : uint { DCBA_FACEDOWNNONE = 0x0100 }                                       <
 2879  enum : uint { DCBA_FACEDOWNCENTER = 0x0101 }                                     <
 2880  enum : uint { DCBA_FACEDOWNLEFT = 0x0102 }                                       <
 2881  enum : uint { DCBA_FACEDOWNRIGHT = 0x0103 }                                      <
 2882  // #endif /* WINVER >= 0x0400 */                                                 <
 2883                                                                                   <
 2884  extern(Windows) export int DeviceCapabilitiesA(LPCSTR, LPCSTR, WORD,             <
 2885    LPSTR, DEVMODEA *);                                                            <
 2886  extern(Windows) export int DeviceCapabilitiesW(LPCWSTR, LPCWSTR, WORD,           <
 2887    LPWSTR, DEVMODEW *);                                                           <
 2888  // #ifdef UNICODE                                                                <
 2889  alias DeviceCapabilitiesW DeviceCapabilities;                                    <
 2890  // #else                                                                         <
 2891  // #...                                                                          <
 2892  // #endif // !UNICODE                                                            <
 2893                                                                                   <
 2894  extern(Windows) export int DrawEscape(HDC, int, int, LPCSTR);                    <
 2895  extern(Windows) export BOOL Ellipse(HDC, int, int, int, int);                    <
 2896                                                                                   <
 2897  // #if(WINVER >= 0x0400)                                                         <
 2898  extern(Windows) export int EnumFontFamiliesExA(HDC, LPLOGFONTA, FONTENUMPROCA, L <
 2899  extern(Windows) export int EnumFontFamiliesExW(HDC, LPLOGFONTW, FONTENUMPROCW, L <
 2900  // #ifdef UNICODE                                                                <
 2901  alias EnumFontFamiliesExW EnumFontFamiliesEx;                                    <
 2902  // #else                                                                         <
 2903  // #...                                                                          <
 2904  // #endif // !UNICODE                                                            <
 2905  // #endif /* WINVER >= 0x0400 */                                                 <
 2906                                                                                   <
 2907  extern(Windows) export int EnumFontFamiliesA(HDC, LPCSTR, FONTENUMPROCA, LPARAM) <
 2908  extern(Windows) export int EnumFontFamiliesW(HDC, LPCWSTR, FONTENUMPROCW, LPARAM <
 2909  // #ifdef UNICODE                                                                <
 2910  alias EnumFontFamiliesW EnumFontFamilies;                                        <
 2911  // #else                                                                         <
 2912  // #...                                                                          <
 2913  // #endif // !UNICODE                                                            <
 2914  extern(Windows) export int EnumFontsA(HDC, LPCSTR, FONTENUMPROCA, LPARAM);       <
 2915  extern(Windows) export int EnumFontsW(HDC, LPCWSTR, FONTENUMPROCW, LPARAM);      <
 2916  // #ifdef UNICODE                                                                <
 2917  alias EnumFontsW EnumFonts;                                                      <
 2918  // #else                                                                         <
 2919  // #...                                                                          <
 2920  // #endif // !UNICODE                                                            <
 2921                                                                                   <
 2922  // #ifdef STRICT                                                                 <
 2923  extern(Windows) export int EnumObjects(HDC, int, GOBJENUMPROC, LPARAM);          <
 2924  // #else                                                                         <
 2925  // ...                                                                           <
 2926  // #endif                                                                        <
 2927                                                                                   <
 2928  extern(Windows) export BOOL EqualRgn(HRGN, HRGN);                                <
 2929  extern(Windows) export int Escape(HDC, int, int, LPCSTR, LPVOID);                <
 2930  extern(Windows) export int ExtEscape(HDC, int, int, LPCSTR, int, LPSTR);         <
 2931  extern(Windows) export int ExcludeClipRect(HDC, int, int, int, int);             <
 2932  extern(Windows) export HRGN ExtCreateRegion(XFORM *, DWORD, RGNDATA *);          <
 2933  extern(Windows) export BOOL ExtFloodFill(HDC, int, int, COLORREF, UINT);         <
 2934  extern(Windows) export BOOL FillRgn(HDC, HRGN, HBRUSH);                          <
 2935  extern(Windows) export BOOL FloodFill(HDC, int, int, COLORREF);                  <
 2936  extern(Windows) export BOOL FrameRgn(HDC, HRGN, HBRUSH, int, int);               <
 2937  extern(Windows) export int GetROP2(HDC);                                         <
 2938  extern(Windows) export BOOL GetAspectRatioFilterEx(HDC, LPSIZE);                 <
 2939  extern(Windows) export COLORREF GetBkColor(HDC);                                 <
 2940                                                                                   <
 2941  // #if (_WIN32_WINNT >= 0x0500)                                                  <
 2942  extern(Windows) export COLORREF GetDCBrushColor(HDC);                            <
 2943  extern(Windows) export COLORREF GetDCPenColor(HDC);                              <
 2944  // #endif                                                                        <
 2945                                                                                   <
 2946  extern(Windows) export int GetBkMode(HDC);                                       <
 2947  extern(Windows) export LONG GetBitmapBits(HBITMAP, LONG, LPVOID);                <
 2948  extern(Windows) export BOOL GetBitmapDimensionEx(HBITMAP, LPSIZE);               <
 2949  extern(Windows) export UINT GetBoundsRect(HDC, LPRECT, UINT);                    <
 2950                                                                                   <
 2951  extern(Windows) export BOOL GetBrushOrgEx(HDC, LPPOINT);                         <
 2952                                                                                   <
 2953  extern(Windows) export BOOL GetCharWidthA(HDC, UINT, UINT, LPINT);               <
 2954  extern(Windows) export BOOL GetCharWidthW(HDC, UINT, UINT, LPINT);               <
 2955  // #ifdef UNICODE                                                                <
 2956  alias GetCharWidthW GetCharWidth;                                                <
 2957  // #else                                                                         <
 2958  // #...                                                                          <
 2959  // #endif // !UNICODE                                                            <
 2960  extern(Windows) export BOOL GetCharWidth32A(HDC, UINT, UINT, LPINT);             <
 2961  extern(Windows) export BOOL GetCharWidth32W(HDC, UINT, UINT, LPINT);             <
 2962  // #ifdef UNICODE                                                                <
 2963  alias GetCharWidth32W GetCharWidth32;                                            <
 2964  // #else                                                                         <
 2965  // #...                                                                          <
 2966  // #endif // !UNICODE                                                            <
 2967  extern(Windows) export BOOL GetCharWidthFloatA(HDC, UINT, UINT, PFLOAT);         <
 2968  extern(Windows) export BOOL GetCharWidthFloatW(HDC, UINT, UINT, PFLOAT);         <
 2969  // #ifdef UNICODE                                                                <
 2970  alias GetCharWidthFloatW GetCharWidthFloat;                                      <
 2971  // #else                                                                         <
 2972  // #...                                                                          <
 2973  // #endif // !UNICODE                                                            <
 2974  extern(Windows) export BOOL GetCharABCWidthsA(HDC, UINT, UINT, LPABC);           <
 2975  extern(Windows) export BOOL GetCharABCWidthsW(HDC, UINT, UINT, LPABC);           <
 2976  // #ifdef UNICODE                                                                <
 2977  alias GetCharABCWidthsW GetCharABCWidths;                                        <
 2978  // #else                                                                         <
 2979  // #...                                                                          <
 2980  // #endif // !UNICODE                                                            <
 2981  extern(Windows) export BOOL GetCharABCWidthsFloatA(HDC, UINT, UINT, LPABCFLOAT); <
 2982  extern(Windows) export BOOL GetCharABCWidthsFloatW(HDC, UINT, UINT, LPABCFLOAT); <
 2983  // #ifdef UNICODE                                                                <
 2984  alias GetCharABCWidthsFloatW GetCharABCWidthsFloat;                              <
 2985  // #else                                                                         <
 2986  // #...                                                                          <
 2987  // #endif // !UNICODE                                                            <
 2988  extern(Windows) export int GetClipBox(HDC, LPRECT);                              <
 2989  extern(Windows) export int GetClipRgn(HDC, HRGN);                                <
 2990  extern(Windows) export int GetMetaRgn(HDC, HRGN);                                <
 2991  extern(Windows) export HGDIOBJ GetCurrentObject(HDC, UINT);                      <
 2992  extern(Windows) export BOOL GetCurrentPositionEx(HDC, LPPOINT);                  <
 2993  extern(Windows) export int GetDeviceCaps(HDC, int);                              <
 2994  extern(Windows) export int GetDIBits(HDC, HBITMAP, UINT, UINT, LPVOID, LPBITMAPI <
 2995  extern(Windows) export DWORD GetFontData(HDC, DWORD, DWORD, LPVOID, DWORD);      <
 2996  extern(Windows) export DWORD GetGlyphOutlineA(HDC, UINT, UINT, LPGLYPHMETRICS, D <
 2997  extern(Windows) export DWORD GetGlyphOutlineW(HDC, UINT, UINT, LPGLYPHMETRICS, D <
 2998  // #ifdef UNICODE                                                                <
 2999  alias GetGlyphOutlineW GetGlyphOutline;                                          <
 3000  // #else                                                                         <
 3001  // #...                                                                          <
 3002  // #endif // !UNICODE                                                            <
 3003  extern(Windows) export int GetGraphicsMode(HDC);                                 <
 3004  extern(Windows) export int GetMapMode(HDC);                                      <
 3005  extern(Windows) export UINT GetMetaFileBitsEx(HMETAFILE, UINT, LPVOID);          <
 3006  extern(Windows) export HMETAFILE GetMetaFileA(LPCSTR);                           <
 3007  extern(Windows) export HMETAFILE GetMetaFileW(LPCWSTR);                          <
 3008  // #ifdef UNICODE                                                                <
 3009  alias GetMetaFileW GetMetaFile;                                                  <
 3010  // #else                                                                         <
 3011  // #...                                                                          <
 3012  // #endif // !UNICODE                                                            <
 3013  extern(Windows) export COLORREF GetNearestColor(HDC, COLORREF);                  <
 3014  extern(Windows) export UINT GetNearestPaletteIndex(HPALETTE, COLORREF);          <
 3015  extern(Windows) export DWORD GetObjectType(HGDIOBJ h);                           <
 3016                                                                                   <
 3017  // #ifndef NOTEXTMETRIC                                                          <
 3018                                                                                   <
 3019  extern(Windows) export UINT GetOutlineTextMetricsA(HDC, UINT, LPOUTLINETEXTMETRI <
 3020  extern(Windows) export UINT GetOutlineTextMetricsW(HDC, UINT, LPOUTLINETEXTMETRI <
 3021  // #ifdef UNICODE                                                                <
 3022  alias GetOutlineTextMetricsW GetOutlineTextMetrics;                              <
 3023  // #else                                                                         <
 3024  // #...                                                                          <
 3025  // #endif // !UNICODE                                                            <
 3026                                                                                   <
 3027  // #endif /* NOTEXTMETRIC */                                                     <
 3028                                                                                   <
 3029  extern(Windows) export UINT GetPaletteEntries(HPALETTE, UINT, UINT, LPPALETTEENT <
 3030  extern(Windows) export COLORREF GetPixel(HDC, int, int);                         <
 3031  extern(Windows) export int GetPixelFormat(HDC);                                  <
 3032  extern(Windows) export int GetPolyFillMode(HDC);                                 <
 3033  extern(Windows) export BOOL GetRasterizerCaps(LPRASTERIZER_STATUS, UINT);        <
 3034  extern(Windows) export int GetRandomRgn(HDC, HRGN, INT);                         <
 3035  extern(Windows) export DWORD GetRegionData(HRGN, DWORD, LPRGNDATA);              <
 3036  extern(Windows) export int GetRgnBox(HRGN, LPRECT);                              <
 3037  extern(Windows) export HGDIOBJ GetStockObject(int);                              <
 3038  extern(Windows) export int GetStretchBltMode(HDC);                               <
 3039  extern(Windows) export UINT GetSystemPaletteEntries(HDC, UINT, UINT, LPPALETTEEN <
 3040  extern(Windows) export UINT GetSystemPaletteUse(HDC);                            <
 3041  extern(Windows) export int GetTextCharacterExtra(HDC);                           <
 3042  extern(Windows) export UINT GetTextAlign(HDC);                                   <
 3043  extern(Windows) export COLORREF GetTextColor(HDC);                               <
 3044                                                                                   <
 3045  extern(Windows) export BOOL GetTextExtentPointA(                                 <
 3046    HDC,                                                                           <
 3047    LPCSTR,                                                                        <
 3048    int,                                                                           <
 3049    LPSIZE);                                                                       <
 3050  extern(Windows) export BOOL GetTextExtentPointW(                                 <
 3051    HDC,                                                                           <
 3052    LPCWSTR,                                                                       <
 3053    int,                                                                           <
 3054    LPSIZE);                                                                       <
 3055  // #ifdef UNICODE                                                                <
 3056  alias GetTextExtentPointW GetTextExtentPoint;                                    <
 3057  // #else                                                                         <
 3058  // #...                                                                          <
 3059  // #endif // !UNICODE                                                            <
 3060                                                                                   <
 3061  extern(Windows) export BOOL GetTextExtentPoint32A(                               <
 3062    HDC,                                                                           <
 3063    LPCSTR,                                                                        <
 3064    int,                                                                           <
 3065    LPSIZE);                                                                       <
 3066  extern(Windows) export BOOL GetTextExtentPoint32W(                               <
 3067    HDC,                                                                           <
 3068    LPCWSTR,                                                                       <
 3069    int,                                                                           <
 3070    LPSIZE);                                                                       <
 3071  // #ifdef UNICODE                                                                <
 3072  alias GetTextExtentPoint32W GetTextExtentPoint32;                                <
 3073  // #else                                                                         <
 3074  // #...                                                                          <
 3075  // #endif // !UNICODE                                                            <
 3076                                                                                   <
 3077  extern(Windows) export BOOL GetTextExtentExPointA(                               <
 3078    HDC,                                                                           <
 3079    LPCSTR,                                                                        <
 3080    int,                                                                           <
 3081    int,                                                                           <
 3082    LPINT,                                                                         <
 3083    LPINT,                                                                         <
 3084    LPSIZE);                                                                       <
 3085  extern(Windows) export BOOL GetTextExtentExPointW(                               <
 3086    HDC,                                                                           <
 3087    LPCWSTR,                                                                       <
 3088    int,                                                                           <
 3089    int,                                                                           <
 3090    LPINT,                                                                         <
 3091    LPINT,                                                                         <
 3092    LPSIZE);                                                                       <
 3093  // #ifdef UNICODE                                                                <
 3094  alias GetTextExtentExPointW GetTextExtentExPoint;                                <
 3095  // #else                                                                         <
 3096  // #...                                                                          <
 3097  // #endif // !UNICODE                                                            <
 3098  // #if(WINVER >= 0x0400)                                                         <
 3099  extern(Windows) export int GetTextCharset(HDC hdc);                              <
 3100  extern(Windows) export int GetTextCharsetInfo(HDC hdc, LPFONTSIGNATURE lpSig, DW <
 3101  extern(Windows) export BOOL TranslateCharsetInfo(DWORD *lpSrc, LPCHARSETINFO lpC <
 3102  extern(Windows) export DWORD GetFontLanguageInfo(HDC );                          <
 3103  extern(Windows) export DWORD GetCharacterPlacementA(HDC, LPCSTR, int, int, LPGCP <
 3104  extern(Windows) export DWORD GetCharacterPlacementW(HDC, LPCWSTR, int, int, LPGC <
 3105  // #ifdef UNICODE                                                                <
 3106  alias GetCharacterPlacementW GetCharacterPlacement;                              <
 3107  // #else                                                                         <
 3108  // #...                                                                          <
 3109  // #endif // !UNICODE                                                            <
 3110  // #endif /* WINVER >= 0x0400 */                                                 <
 3111                                                                                   <
 3112  // #if (_WIN32_WINNT >= 0x0500)                                                  <
 3113                                                                                   <
 3114  struct tagWCRANGE {                                                              <
 3115    WCHAR wcLow;                                                                   <
 3116    USHORT cGlyphs;                                                                <
 3117  }                                                                                <
 3118  alias tagWCRANGE WCRANGE;                                                        <
 3119  alias tagWCRANGE* PWCRANGE;                                                      <
 3120  alias tagWCRANGE* LPWCRANGE;                                                     <
 3121                                                                                   <
 3122  struct tagGLYPHSET {                                                             <
                                                                                        >  2671      LCSCSTYPE lcsCSType;
                                                                                        >  2672      LCSGAMUTMATCH lcsIntent;
                                                                                        >  2673      CIEXYZTRIPLE lcsEndpoints;
 3123    DWORD cbThis;                                                                  |  2674      DWORD lcsGammaRed;
 3124    DWORD flAccel;                                                                 |  2675      DWORD lcsGammaGreen;
 3125    DWORD cGlyphsSupported;                                                        <
 3126    DWORD cRanges;                                                                 |  2676      DWORD lcsGammaBlue;
 3127    WCRANGE ranges[1];                                                             <
                                                                                        >  2677      WCHAR[MAX_PATH] lcsFilename;
 3128  }                                                                                |  2678  }
 3129  alias tagGLYPHSET GLYPHSET;                                                      <
 3130  alias tagGLYPHSET* PGLYPHSET;                                                    <
 3131  alias tagGLYPHSET* LPGLYPHSET;                                                   <
 3132                                                                                   <
 3133  enum : uint { GS_8BIT_INDICES = 0x00000001 }                                     <
 3134                                                                                   <
 3135  enum : uint { GGI_MARK_NONEXISTING_GLYPHS = 0X0001 }                             <
 3136                                                                                   <
 3137  extern(Windows) export DWORD GetFontUnicodeRanges(HDC, LPGLYPHSET);              <
 3138  extern(Windows) export DWORD GetGlyphIndicesA(HDC, LPCSTR, int, LPWORD, DWORD);  <
 3139  extern(Windows) export DWORD GetGlyphIndicesW(HDC, LPCWSTR, int, LPWORD, DWORD); <
 3140  // #ifdef UNICODE                                                                <
 3141  alias GetGlyphIndicesW GetGlyphIndices;                                          <
 3142  // #else                                                                         <
 3143  // #...                                                                          <
 3144  // #endif // !UNICODE                                                            <
 3145  extern(Windows) export BOOL GetTextExtentPointI(HDC, LPWORD, int, LPSIZE);       <
 3146  extern(Windows) export BOOL GetTextExtentExPointI(HDC, LPWORD, int, int, LPINT,  <
 3147  extern(Windows) export BOOL GetCharWidthI(HDC, UINT, UINT, LPWORD, LPINT);       <
 3148  extern(Windows) export BOOL GetCharABCWidthsI(HDC, UINT, UINT, LPWORD, LPABC);   <
 3149                                                                                   <
 3150  enum : uint { STAMP_DESIGNVECTOR = 0x8000000 + 'd' + ('v' << 8) }                <
 3151  enum : uint { STAMP_AXESLIST = 0x8000000 + 'a' + ('l' << 8) }                    <
 3152  enum : uint { MM_MAX_NUMAXES = 16 }                                              <
 3153                                                                                   <
 3154  struct tagDESIGNVECTOR {                                                         <
 3155    DWORD dvReserved;                                                              <
 3156    DWORD dvNumAxes;                                                               <
 3157    LONG dvValues[MM_MAX_NUMAXES];                                                 <
 3158  }                                                                                <
 3159  alias tagDESIGNVECTOR DESIGNVECTOR;                                              <
 3160  alias tagDESIGNVECTOR* PDESIGNVECTOR;                                            <
 3161  alias tagDESIGNVECTOR* LPDESIGNVECTOR;                                           <
 3162                                                                                   <
 3163  extern(Windows) export int AddFontResourceExA(LPCSTR, DWORD, PVOID);             <
 3164  extern(Windows) export int AddFontResourceExW(LPCWSTR, DWORD, PVOID);            <
 3165  // #ifdef UNICODE                                                                <
 3166  alias AddFontResourceExW AddFontResourceEx;                                      <
 3167  // #else                                                                         <
 3168  // #...                                                                          <
 3169  // #endif // !UNICODE                                                            <
 3170  extern(Windows) export BOOL RemoveFontResourceExA(LPCSTR, DWORD, PVOID);         <
 3171  extern(Windows) export BOOL RemoveFontResourceExW(LPCWSTR, DWORD, PVOID);        <
 3172  // #ifdef UNICODE                                                                <
 3173  alias RemoveFontResourceExW RemoveFontResourceEx;                                <
 3174  // #else                                                                         <
 3175  // #...                                                                          <
 3176  // #endif // !UNICODE                                                            <
 3177  extern(Windows) export HANDLE AddFontMemResourceEx(PVOID, DWORD, PVOID , DWORD*) <
 3178  extern(Windows) export BOOL RemoveFontMemResourceEx(HANDLE);                     <
 3179  enum : uint { FR_PRIVATE = 0x10 }                                                <
 3180  enum : uint { FR_NOT_ENUM = 0x20 }                                               <
 3181                                                                                   <
 3182  enum : uint { MM_MAX_AXES_NAMELEN = 16 }                                         <
 3183                                                                                   <
 3184  struct tagAXISINFOA {                                                            <
 3185    LONG axMinValue;                                                               <
 3186    LONG axMaxValue;                                                               <
 3187    BYTE axAxisName[MM_MAX_AXES_NAMELEN];                                          <
 3188  }                                                                                <
 3189  alias tagAXISINFOA AXISINFOA;                                                    <
 3190  alias tagAXISINFOA* PAXISINFOA;                                                  <
 3191  alias tagAXISINFOA* LPAXISINFOA;                                                 <
 3192                                                                                   <
 3193  struct tagAXISINFOW {                                                            <
 3194    LONG axMinValue;                                                               <
 3195    LONG axMaxValue;                                                               <
 3196    WCHAR axAxisName[MM_MAX_AXES_NAMELEN];                                         <
 3197  }                                                                                <
 3198  alias tagAXISINFOW AXISINFOW;                                                    <
 3199  alias tagAXISINFOW* PAXISINFOW;                                                  <
 3200  alias tagAXISINFOW* LPAXISINFOW;                                                 <
 3201                                                                                   <
 3202  // #ifdef UNICODE                                                                <
 3203  alias AXISINFOW AXISINFO;                                                        <
 3204  alias PAXISINFOW PAXISINFO;                                                      <
 3205  alias LPAXISINFOW LPAXISINFO;                                                    <
 3206  // #else                                                                         <
 3207  // ...                                                                           <
 3208  // #endif // UNICODE                                                             <
 3209                                                                                   <
 3210  struct tagAXESLISTA {                                                            <
 3211    DWORD axlReserved;                                                             <
 3212    DWORD axlNumAxes;                                                              <
 3213    AXISINFOA axlAxisInfo[MM_MAX_NUMAXES];                                         <
 3214  }                                                                                <
 3215  alias tagAXESLISTA AXESLISTA;                                                    <
 3216  alias tagAXESLISTA* PAXESLISTA;                                                  <
 3217  alias tagAXESLISTA* LPAXESLISTA;                                                 <
 3218                                                                                   <
 3219  struct tagAXESLISTW {                                                            <
 3220    DWORD axlReserved;                                                             <
 3221    DWORD axlNumAxes;                                                              <
 3222    AXISINFOW axlAxisInfo[MM_MAX_NUMAXES];                                         <
 3223  }                                                                                <
 3224  alias tagAXESLISTW AXESLISTW;                                                    <
 3225  alias tagAXESLISTW* PAXESLISTW;                                                  <
 3226  alias tagAXESLISTW* LPAXESLISTW;                                                 <
 3227                                                                                   <
 3228  // #ifdef UNICODE                                                                <
 3229  alias AXESLISTW AXESLIST;                                                        <
 3230  alias PAXESLISTW PAXESLIST;                                                      <
 3231  alias LPAXESLISTW LPAXESLIST;                                                    <
 3232  // #else                                                                         <
 3233  // ...                                                                           <
 3234  // #endif // UNICODE                                                             <
 3235                                                                                   <
 3236  struct tagENUMLOGFONTEXDVA {                                                     <
 3237    ENUMLOGFONTEXA elfEnumLogfontEx;                                               <
 3238    DESIGNVECTOR elfDesignVector;                                                  <
 3239  }                                                                                <
 3240  alias tagENUMLOGFONTEXDVA ENUMLOGFONTEXDVA;                                      <
 3241  alias tagENUMLOGFONTEXDVA* PENUMLOGFONTEXDVA;                                    <
 3242  alias tagENUMLOGFONTEXDVA* LPENUMLOGFONTEXDVA;                                   <
 3243                                                                                   <
 3244  struct tagENUMLOGFONTEXDVW {                                                     <
 3245    ENUMLOGFONTEXW elfEnumLogfontEx;                                               <
 3246    DESIGNVECTOR elfDesignVector;                                                  <
 3247  }                                                                                <
 3248  alias tagENUMLOGFONTEXDVW ENUMLOGFONTEXDVW;                                      <
 3249  alias tagENUMLOGFONTEXDVW* PENUMLOGFONTEXDVW;                                    <
 3250  alias tagENUMLOGFONTEXDVW* LPENUMLOGFONTEXDVW;                                   <
 3251                                                                                   <
 3252  // #ifdef UNICODE                                                                <
 3253  alias ENUMLOGFONTEXDVW ENUMLOGFONTEXDV;                                          <
 3254  alias PENUMLOGFONTEXDVW PENUMLOGFONTEXDV;                                        <
 3255  alias LPENUMLOGFONTEXDVW LPENUMLOGFONTEXDV;                                      <
 3256  // #else                                                                         <
 3257  // ...                                                                           <
 3258  // #endif // UNICODE                                                             <
 3259                                                                                   <
 3260  extern(Windows) export HFONT CreateFontIndirectExA(ENUMLOGFONTEXDVA *);          <
 3261  extern(Windows) export HFONT CreateFontIndirectExW(ENUMLOGFONTEXDVW *);          <
 3262  // #ifdef UNICODE                                                                <
 3263  alias CreateFontIndirectExW CreateFontIndirectEx;                                <
 3264  // #else                                                                         <
 3265  // #...                                                                          <
 3266  // #endif // !UNICODE                                                            <
 3267                                                                                   <
 3268  // #ifndef NOTEXTMETRIC                                                          <
 3269  struct tagENUMTEXTMETRICA {                                                      <
 3270    NEWTEXTMETRICEXA etmNewTextMetricEx;                                           <
 3271    AXESLISTA etmAxesList;                                                         <
 3272  }                                                                                <
 3273  alias tagENUMTEXTMETRICA ENUMTEXTMETRICA;                                        <
 3274  alias tagENUMTEXTMETRICA* PENUMTEXTMETRICA;                                      <
 3275  alias tagENUMTEXTMETRICA* LPENUMTEXTMETRICA;                                     <
 3276                                                                                   <
 3277  struct tagENUMTEXTMETRICW {                                                      <
 3278    NEWTEXTMETRICEXW etmNewTextMetricEx;                                           <
 3279    AXESLISTW etmAxesList;                                                         <
 3280  }                                                                                <
 3281  alias tagENUMTEXTMETRICW ENUMTEXTMETRICW;                                        <
 3282  alias tagENUMTEXTMETRICW* PENUMTEXTMETRICW;                                      <
 3283  alias tagENUMTEXTMETRICW* LPENUMTEXTMETRICW;                                     <
 3284                                                                                   <
 3285  // #ifdef UNICODE                                                                <
 3286  alias ENUMTEXTMETRICW ENUMTEXTMETRIC;                                            <
 3287  alias PENUMTEXTMETRICW PENUMTEXTMETRIC;                                          <
 3288  alias LPENUMTEXTMETRICW LPENUMTEXTMETRIC;                                        <
 3289  // #else                                                                         <
 3290  // ...                                                                           <
 3291  // #endif // UNICODE                                                             <
 3292  // #endif /* NOTEXTMETRIC */                                                     <
 3293                                                                                   <
 3294  // #endif // (_WIN32_WINNT >= 0x0500)                                            <
 3295                                                                                   <
 3296  extern(Windows) export BOOL GetViewportExtEx(HDC, LPSIZE);                       <
 3297  extern(Windows) export BOOL GetViewportOrgEx(HDC, LPPOINT);                      <
 3298  extern(Windows) export BOOL GetWindowExtEx(HDC, LPSIZE);                         <
 3299  extern(Windows) export BOOL GetWindowOrgEx(HDC, LPPOINT);                        <
 3300                                                                                   <
 3301  extern(Windows) export int IntersectClipRect(HDC, int, int, int, int);           <
 3302  extern(Windows) export BOOL InvertRgn(HDC, HRGN);                                <
 3303  extern(Windows) export BOOL LineDDA(int, int, int, int, LINEDDAPROC, LPARAM);    <
 3304  extern(Windows) export BOOL LineTo(HDC, int, int);                               <
 3305  extern(Windows) export BOOL MaskBlt(HDC, int, int, int, int,                     <
 3306    HDC, int, int, HBITMAP, int, int, DWORD);                                      <
 3307  extern(Windows) export BOOL PlgBlt(HDC, POINT *, HDC, int, int, int,             <
 3308    int, HBITMAP, int, int);                                                       <
 3309                                                                                   <
 3310  extern(Windows) export int OffsetClipRgn(HDC, int, int);                         <
 3311  extern(Windows) export int OffsetRgn(HRGN, int, int);                            <
 3312  extern(Windows) export BOOL PatBlt(HDC, int, int, int, int, DWORD);              <
 3313  extern(Windows) export BOOL Pie(HDC, int, int, int, int, int, int, int, int);    <
 3314  extern(Windows) export BOOL PlayMetaFile(HDC, HMETAFILE);                        <
 3315  extern(Windows) export BOOL PaintRgn(HDC, HRGN);                                 <
 3316  extern(Windows) export BOOL PolyPolygon(HDC, POINT *, INT *, int);               <
 3317  extern(Windows) export BOOL PtInRegion(HRGN, int, int);                          <
 3318  extern(Windows) export BOOL PtVisible(HDC, int, int);                            <
 3319  extern(Windows) export BOOL RectInRegion(HRGN, RECT *);                          <
 3320  extern(Windows) export BOOL RectVisible(HDC, RECT *);                            <
 3321  extern(Windows) export BOOL Rectangle(HDC, int, int, int, int);                  <
 3322  extern(Windows) export BOOL RestoreDC(HDC, int);                                 <
 3323  extern(Windows) export HDC ResetDCA(HDC, DEVMODEA *);                            <
 3324  extern(Windows) export HDC ResetDCW(HDC, DEVMODEW *);                            <
 3325  // #ifdef UNICODE                                                                <
 3326  alias ResetDCW ResetDC;                                                          <
 3327  // #else                                                                         <
 3328  // #...                                                                          <
 3329  // #endif // !UNICODE                                                            <
 3330  extern(Windows) export UINT RealizePalette(HDC);                                 <
 3331  extern(Windows) export BOOL RemoveFontResourceA(LPCSTR);                         <
 3332  extern(Windows) export BOOL RemoveFontResourceW(LPCWSTR);                        <
 3333  // #ifdef UNICODE                                                                <
 3334  alias RemoveFontResourceW RemoveFontResource;                                    <
 3335  // #else                                                                         <
 3336  // #...                                                                          <
 3337  // #endif // !UNICODE                                                            <
 3338  extern(Windows) export BOOL RoundRect(HDC, int, int, int, int, int, int);        <
 3339  extern(Windows) export BOOL ResizePalette(HPALETTE, UINT);                       <
 3340                                                                                   <
 3341  extern(Windows) export int SaveDC(HDC);                                          <
 3342  extern(Windows) export int SelectClipRgn(HDC, HRGN);                             <
 3343  extern(Windows) export int ExtSelectClipRgn(HDC, HRGN, int);                     <
 3344  extern(Windows) export int SetMetaRgn(HDC);                                      <
 3345  extern(Windows) export HGDIOBJ SelectObject(HDC, HGDIOBJ);                       <
 3346  extern(Windows) export HPALETTE SelectPalette(HDC, HPALETTE, BOOL);              <
 3347  extern(Windows) export COLORREF SetBkColor(HDC, COLORREF);                       <
 3348                                                                                   <
 3349  // #if (_WIN32_WINNT >= 0x0500)                                                  <
 3350  extern(Windows) export COLORREF SetDCBrushColor(HDC, COLORREF);                  <
 3351  extern(Windows) export COLORREF SetDCPenColor(HDC, COLORREF);                    <
 3352  // #endif                                                                        <
 3353                                                                                   <
 3354  extern(Windows) export int SetBkMode(HDC, int);                                  <
 3355  extern(Windows) export LONG SetBitmapBits(HBITMAP, DWORD, VOID *);               <
 3356                                                                                   <
 3357  extern(Windows) export UINT SetBoundsRect(HDC, RECT *, UINT);                    <
 3358  extern(Windows) export int SetDIBits(HDC, HBITMAP, UINT, UINT, VOID *, BITMAPINF <
 3359  extern(Windows) export int SetDIBitsToDevice(HDC, int, int, DWORD, DWORD, int,   <
 3360    int, UINT, UINT, VOID *, BITMAPINFO *, UINT);                                  <
 3361  extern(Windows) export DWORD SetMapperFlags(HDC, DWORD);                         <
 3362  extern(Windows) export int SetGraphicsMode(HDC hdc, int iMode);                  <
 3363  extern(Windows) export int SetMapMode(HDC, int);                                 <
 3364                                                                                   <
 3365  // #if(WINVER >= 0x0500)                                                         <
 3366  extern(Windows) export DWORD SetLayout(HDC, DWORD);                              <
 3367  extern(Windows) export DWORD GetLayout(HDC);                                     <
 3368  // #endif /* WINVER >= 0x0500 */                                                 <
 3369                                                                                   <
 3370  extern(Windows) export HMETAFILE SetMetaFileBitsEx(UINT, BYTE *);                <
 3371  extern(Windows) export UINT SetPaletteEntries(HPALETTE, UINT, UINT, PALETTEENTRY <
 3372  extern(Windows) export COLORREF SetPixel(HDC, int, int, COLORREF);               <
 3373  extern(Windows) export BOOL SetPixelV(HDC, int, int, COLORREF);                  <
 3374  extern(Windows) export BOOL SetPixelFormat(HDC, int, PIXELFORMATDESCRIPTOR *);   <
 3375  extern(Windows) export int SetPolyFillMode(HDC, int);                            <
 3376  extern(Windows) export BOOL StretchBlt(HDC, int, int, int, int, HDC, int, int, i <
 3377  extern(Windows) export BOOL SetRectRgn(HRGN, int, int, int, int);                <
 3378  extern(Windows) export int StretchDIBits(HDC, int, int, int, int, int, int, int, <
 3379    VOID *, BITMAPINFO *, UINT, DWORD);                                            <
 3380  extern(Windows) export int SetROP2(HDC, int);                                    <
 3381  extern(Windows) export int SetStretchBltMode(HDC, int);                          <
 3382  extern(Windows) export UINT SetSystemPaletteUse(HDC, UINT);                      <
 3383  extern(Windows) export int SetTextCharacterExtra(HDC, int);                      <
 3384  extern(Windows) export COLORREF SetTextColor(HDC, COLORREF);                     <
 3385  extern(Windows) export UINT SetTextAlign(HDC, UINT);                             <
 3386  extern(Windows) export BOOL SetTextJustification(HDC, int, int);                 <
 3387  extern(Windows) export BOOL UpdateColors(HDC);                                   <
 3388                                                                                   <
 3389  // #if (WINVER >= 0x0400)                                                        <
                                                                                        >  2679  alias LOGCOLORSPACEW*LPLOGCOLORSPACEW;
 3390                                                                                      2680  
 3391  alias USHORT COLOR16;                                                               2681  alias USHORT COLOR16;
                                                                                        >  2682  struct TRIVERTEX
 3392                                                                                   |  2683  {
 3393  struct _TRIVERTEX {                                                              <
 3394    LONG x;                                                                        |  2684      LONG x;
 3395    LONG y;                                                                        |  2685      LONG y;
 3396    COLOR16 Red;                                                                   |  2686      COLOR16 Red;
 3397    COLOR16 Green;                                                                 |  2687      COLOR16 Green;
 3398    COLOR16 Blue;                                                                  |  2688      COLOR16 Blue;
 3399    COLOR16 Alpha;                                                                 |  2689      COLOR16 Alpha;
                                                                                        >  2690  }
                                                                                        >  2691  alias TRIVERTEX*PTRIVERTEX, LPTRIVERTEX;
                                                                                        >  2692  
                                                                                        >  2693  static
                                                                                        >  2694  
                                                                                        >  2695  if (WINVER >= 0x0400)
                                                                                        >  2696  {
                                                                                        >  2697      struct EMRGLSRECORD
                                                                                        >  2698      {
                                                                                        >  2699          EMR emr;
                                                                                        >  2700          DWORD cbData;
                                                                                        >  2701          BYTE[1] Data;
                                                                                        >  2702      }
                                                                                        >  2703      alias EMRGLSRECORD*PEMRGLSRECORD;
                                                                                        >  2704  
                                                                                        >  2705      struct EMRGLSBOUNDEDRECORD
                                                                                        >  2706      {
                                                                                        >  2707          EMR emr;
                                                                                        >  2708          RECTL rclBounds;
                                                                                        >  2709          DWORD cbData;
                                                                                        >  2710          BYTE[1] Data;
                                                                                        >  2711      }
                                                                                        >  2712      alias EMRGLSBOUNDEDRECORD*PEMRGLSBOUNDEDRECORD;
                                                                                        >  2713  
                                                                                        >  2714      struct EMRPIXELFORMAT
                                                                                        >  2715      {
                                                                                        >  2716          EMR emr;
                                                                                        >  2717          PIXELFORMATDESCRIPTOR pfd;
                                                                                        >  2718      }
                                                                                        >  2719      alias EMRPIXELFORMAT*PEMRPIXELFORMAT;
                                                                                        >  2720  
                                                                                        >  2721      struct EMRCREATECOLORSPACE
                                                                                        >  2722      {
                                                                                        >  2723          EMR emr;
                                                                                        >  2724          DWORD ihCS;
                                                                                        >  2725          LOGCOLORSPACE lcs;
                                                                                        >  2726      }
                                                                                        >  2727      alias EMRCREATECOLORSPACE*PEMRCREATECOLORSPACE;
                                                                                        >  2728  
                                                                                        >  2729      struct EMRSETCOLORSPACE
                                                                                        >  2730      {
                                                                                        >  2731          EMR emr;
                                                                                        >  2732          DWORD ihCS;
                                                                                        >  2733      }
                                                                                        >  2734      alias EMRSETCOLORSPACE*PEMRSETCOLORSPACE;
                                                                                        >  2735      alias EMRSETCOLORSPACE EMRSELECTCOLORSPACE;
                                                                                        >  2736      alias EMRSELECTCOLORSPACE*PEMRSELECTCOLORSPACE;
                                                                                        >  2737      alias EMRSETCOLORSPACE EMRDELETECOLORSPACE;
                                                                                        >  2738      alias EMRDELETECOLORSPACE*PEMRDELETECOLORSPACE;
                                                                                        >  2739  }
                                                                                        >  2740  
                                                                                        >  2741  static
                                                                                        >  2742  
                                                                                        >  2743  if (WINVER >= 0x0500)
                                                                                        >  2744  {
                                                                                        >  2745      struct EMREXTESCAPE
                                                                                        >  2746      {
                                                                                        >  2747          EMR emr;
                                                                                        >  2748          INT iEscape;
                                                                                        >  2749          INT cbEscData;
                                                                                        >  2750          BYTE[1] EscData;
                                                                                        >  2751      }
                                                                                        >  2752      alias EMREXTESCAPE*PEMREXTESCAPE;
                                                                                        >  2753      alias EMREXTESCAPE EMRDRAWESCAPE;
                                                                                        >  2754      alias EMRDRAWESCAPE*PEMRDRAWESCAPE;
                                                                                        >  2755  
                                                                                        >  2756      struct EMRNAMEDESCAPE
                                                                                        >  2757      {
                                                                                        >  2758          EMR emr;
                                                                                        >  2759          INT iEscape;
                                                                                        >  2760          INT cbDriver;
                                                                                        >  2761          INT cbEscData;
                                                                                        >  2762          BYTE[1] EscData;
                                                                                        >  2763      }
                                                                                        >  2764      alias EMRNAMEDESCAPE*PEMRNAMEDESCAPE;
                                                                                        >  2765  
                                                                                        >  2766      struct EMRSETICMPROFILE
                                                                                        >  2767      {
                                                                                        >  2768          EMR emr;
                                                                                        >  2769          DWORD dwFlags;
                                                                                        >  2770          DWORD cbName;
                                                                                        >  2771          DWORD cbData;
                                                                                        >  2772          BYTE[1] Data;
                                                                                        >  2773      }
                                                                                        >  2774      alias EMRSETICMPROFILE*PEMRSETICMPROFILE;
                                                                                        >  2775      alias EMRSETICMPROFILE EMRSETICMPROFILEA;
                                                                                        >  2776      alias EMRSETICMPROFILEA*PEMRSETICMPROFILEA;
                                                                                        >  2777      alias EMRSETICMPROFILE EMRSETICMPROFILEW;
                                                                                        >  2778      alias EMRSETICMPROFILEW*PEMRSETICMPROFILEW;
                                                                                        >  2779  
                                                                                        >  2780      struct EMRCREATECOLORSPACEW
                                                                                        >  2781      {
                                                                                        >  2782          EMR emr;
                                                                                        >  2783          DWORD ihCS;
                                                                                        >  2784          LOGCOLORSPACEW lcs;
                                                                                        >  2785          DWORD dwFlags;
                                                                                        >  2786          DWORD cbData;
                                                                                        >  2787          BYTE[1] Data;
                                                                                        >  2788      }
                                                                                        >  2789      alias EMRCREATECOLORSPACEW*PEMRCREATECOLORSPACEW;
                                                                                        >  2790  
                                                                                        >  2791      struct EMRCOLORMATCHTOTARGET
                                                                                        >  2792      {
                                                                                        >  2793          EMR emr;
                                                                                        >  2794          DWORD dwAction;
                                                                                        >  2795          DWORD dwFlags;
                                                                                        >  2796          DWORD cbName;
                                                                                        >  2797          DWORD cbData;
                                                                                        >  2798          BYTE[1] Data;
                                                                                        >  2799      }
                                                                                        >  2800      alias EMRCOLORMATCHTOTARGET*PEMRCOLORMATCHTOTARGET;
                                                                                        >  2801  
                                                                                        >  2802      struct EMRCOLORCORRECTPALETTE
                                                                                        >  2803      {
                                                                                        >  2804          EMR emr;
                                                                                        >  2805          DWORD ihPalette;
                                                                                        >  2806          DWORD nFirstEntry;
                                                                                        >  2807          DWORD nPalEntries;
                                                                                        >  2808          DWORD nReserved;
                                                                                        >  2809      }
                                                                                        >  2810      alias EMRCOLORCORRECTPALETTE*PEMRCOLORCORRECTPALETTE;
                                                                                        >  2811  
                                                                                        >  2812      struct EMRALPHABLEND
                                                                                        >  2813      {
                                                                                        >  2814          EMR emr;
                                                                                        >  2815          RECTL rclBounds;
                                                                                        >  2816          LONG xDest;
                                                                                        >  2817          LONG yDest;
                                                                                        >  2818          LONG cxDest;
                                                                                        >  2819          LONG cyDest;
                                                                                        >  2820          DWORD dwRop;
                                                                                        >  2821          LONG xSrc;
                                                                                        >  2822          LONG ySrc;
                                                                                        >  2823          XFORM xformSrc;
                                                                                        >  2824          COLORREF crBkColorSrc;
                                                                                        >  2825          DWORD iUsageSrc;
                                                                                        >  2826          DWORD offBmiSrc;
                                                                                        >  2827          DWORD cbBmiSrc;
                                                                                        >  2828          DWORD offBitsSrc;
                                                                                        >  2829          DWORD cbBitsSrc;
                                                                                        >  2830          LONG cxSrc;
                                                                                        >  2831          LONG cySrc;
                                                                                        >  2832      }
                                                                                        >  2833      alias EMRALPHABLEND*PEMRALPHABLEND;
                                                                                        >  2834  
                                                                                        >  2835      struct EMRGRADIENTFILL
                                                                                        >  2836      {
                                                                                        >  2837          EMR emr;
                                                                                        >  2838          RECTL rclBounds;
                                                                                        >  2839          DWORD nVer;
                                                                                        >  2840          DWORD nTri;
                                                                                        >  2841          ULONG ulMode;
                                                                                        >  2842          TRIVERTEX[1] Ver;
                                                                                        >  2843      }
                                                                                        >  2844      alias EMRGRADIENTFILL*PEMRGRADIENTFILL;
                                                                                        >  2845  
                                                                                        >  2846      struct EMRTRANSPARENTBLT
                                                                                        >  2847      {
                                                                                        >  2848          EMR emr;
                                                                                        >  2849          RECTL rclBounds;
                                                                                        >  2850          LONG xDest;
                                                                                        >  2851          LONG yDest;
                                                                                        >  2852          LONG cxDest;
                                                                                        >  2853          LONG cyDest;
                                                                                        >  2854          DWORD dwRop;
                                                                                        >  2855          LONG xSrc;
                                                                                        >  2856          LONG ySrc;
                                                                                        >  2857          XFORM xformSrc;
                                                                                        >  2858          COLORREF crBkColorSrc;
                                                                                        >  2859          DWORD iUsageSrc;
                                                                                        >  2860          DWORD offBmiSrc;
                                                                                        >  2861          DWORD cbBmiSrc;
                                                                                        >  2862          DWORD offBitsSrc;
                                                                                        >  2863          DWORD cbBitsSrc;
                                                                                        >  2864          LONG cxSrc;
                                                                                        >  2865          LONG cySrc;
                                                                                        >  2866      }
                                                                                        >  2867      alias EMRTRANSPARENTBLT*PEMRTRANSPARENTBLT;
                                                                                        >  2868  }
                                                                                        >  2869  
                                                                                        >  2870  struct EMRCREATEDIBPATTERNBRUSHPT
                                                                                        >  2871  {
                                                                                        >  2872      EMR emr;
                                                                                        >  2873      DWORD ihBrush;
                                                                                        >  2874      DWORD iUsage;
                                                                                        >  2875      DWORD offBmi;
                                                                                        >  2876      DWORD cbBmi;
                                                                                        >  2877      DWORD offBits;
                                                                                        >  2878      DWORD cbBits;
                                                                                        >  2879  }
                                                                                        >  2880  alias EMRCREATEDIBPATTERNBRUSHPT*PEMRCREATEDIBPATTERNBRUSHPT;
                                                                                        >  2881  
                                                                                        >  2882  struct EMRCREATEMONOBRUSH
                                                                                        >  2883  {
                                                                                        >  2884      EMR emr;
                                                                                        >  2885      DWORD ihBrush;
                                                                                        >  2886      DWORD iUsage;
                                                                                        >  2887      DWORD offBmi;
                                                                                        >  2888      DWORD cbBmi;
                                                                                        >  2889      DWORD offBits;
                                                                                        >  2890      DWORD cbBits;
                                                                                        >  2891  }
                                                                                        >  2892  alias EMRCREATEMONOBRUSH*PEMRCREATEMONOBRUSH;
                                                                                        >  2893  
                                                                                        >  2894  struct PALETTEENTRY
                                                                                        >  2895  {
                                                                                        >  2896      BYTE peRed;
                                                                                        >  2897      BYTE peGreen;
                                                                                        >  2898      BYTE peBlue;
                                                                                        >  2899      BYTE peFlags;
                                                                                        >  2900  }
                                                                                        >  2901  alias PALETTEENTRY*PPALETTEENTRY, LPPALETTEENTRY;
                                                                                        >  2902  
                                                                                        >  2903  struct LOGPALETTE
                                                                                        >  2904  {
                                                                                        >  2905      WORD palVersion;
                                                                                        >  2906      WORD palNumEntries;
                                                                                        >  2907      PALETTEENTRY[1] palPalEntry;
                                                                                        >  2908  }
                                                                                        >  2909  alias LOGPALETTE*PLOGPALETTE, NPLOGPALETTE, LPLOGPALETTE;
                                                                                        >  2910  
                                                                                        >  2911  struct EMRCREATEPALETTE
                                                                                        >  2912  {
                                                                                        >  2913      EMR emr;
                                                                                        >  2914      DWORD ihPal;
                                                                                        >  2915      LOGPALETTE lgpl;
                                                                                        >  2916  }
                                                                                        >  2917  alias EMRCREATEPALETTE*PEMRCREATEPALETTE;
                                                                                        >  2918  
                                                                                        >  2919  struct EMRCREATEPEN
                                                                                        >  2920  {
                                                                                        >  2921      EMR emr;
                                                                                        >  2922      DWORD ihPen;
                                                                                        >  2923      LOGPEN lopn;
                                                                                        >  2924  }
                                                                                        >  2925  alias EMRCREATEPEN*PEMRCREATEPEN;
                                                                                        >  2926  
                                                                                        >  2927  struct EMRELLIPSE
                                                                                        >  2928  {
                                                                                        >  2929      EMR emr;
                                                                                        >  2930      RECTL rclBox;
                                                                                        >  2931  }
                                                                                        >  2932  alias EMRELLIPSE*PEMRELLIPSE;
                                                                                        >  2933  
                                                                                        >  2934  alias EMRELLIPSE EMRRECTANGLE;
                                                                                        >  2935  alias EMRRECTANGLE*PEMRRECTANGLE;
                                                                                        >  2936  
                                                                                        >  2937  struct EMREOF
                                                                                        >  2938  {
                                                                                        >  2939      EMR emr;
                                                                                        >  2940      DWORD nPalEntries;
                                                                                        >  2941      DWORD offPalEntries;
                                                                                        >  2942      DWORD nSizeLast;
                                                                                        >  2943  }
                                                                                        >  2944  alias EMREOF*PEMREOF;
                                                                                        >  2945  
                                                                                        >  2946  struct EMREXCLUDECLIPRECT
                                                                                        >  2947  {
                                                                                        >  2948      EMR emr;
                                                                                        >  2949      RECTL rclClip;
                                                                                        >  2950  }
                                                                                        >  2951  alias EMREXCLUDECLIPRECT*PEMREXCLUDECLIPRECT;
                                                                                        >  2952  alias EMREXCLUDECLIPRECT EMRINTERSECTCLIPRECT;
                                                                                        >  2953  alias EMRINTERSECTCLIPRECT*PEMRINTERSECTCLIPRECT;
                                                                                        >  2954  
                                                                                        >  2955  struct EMREXTCREATEFONTINDIRECTW
                                                                                        >  2956  {
                                                                                        >  2957      EMR emr;
                                                                                        >  2958      DWORD ihFont;
                                                                                        >  2959      EXTLOGFONTW elfw;
                                                                                        >  2960  }
                                                                                        >  2961  alias EMREXTCREATEFONTINDIRECTW*PEMREXTCREATEFONTINDIRECTW;
                                                                                        >  2962  
                                                                                        >  2963  struct EXTLOGPEN
                                                                                        >  2964  {
                                                                                        >  2965      UINT elpPenStyle;
                                                                                        >  2966      UINT elpWidth;
                                                                                        >  2967      UINT elpBrushStyle;
                                                                                        >  2968      COLORREF elpColor;
                                                                                        >  2969      LONG elpHatch;
                                                                                        >  2970      DWORD elpNumEntries;
                                                                                        >  2971      DWORD[1] elpStyleEntry;
                                                                                        >  2972  }
                                                                                        >  2973  alias EXTLOGPEN*PEXTLOGPEN, NPEXTLOGPEN, LPEXTLOGPEN;
                                                                                        >  2974  
                                                                                        >  2975  struct EMREXTCREATEPEN
                                                                                        >  2976  {
                                                                                        >  2977      EMR emr;
                                                                                        >  2978      DWORD ihPen;
                                                                                        >  2979      DWORD offBmi;
                                                                                        >  2980      DWORD cbBmi;
                                                                                        >  2981      DWORD offBits;
                                                                                        >  2982      DWORD cbBits;
                                                                                        >  2983      EXTLOGPEN elp;
                                                                                        >  2984  }
                                                                                        >  2985  alias EMREXTCREATEPEN*PEMREXTCREATEPEN;
                                                                                        >  2986  
                                                                                        >  2987  struct EMREXTFLOODFILL
                                                                                        >  2988  {
                                                                                        >  2989      EMR emr;
                                                                                        >  2990      POINTL ptlStart;
                                                                                        >  2991      COLORREF crColor;
                                                                                        >  2992      DWORD iMode;
                                                                                        >  2993  }
                                                                                        >  2994  alias EMREXTFLOODFILL*PEMREXTFLOODFILL;
                                                                                        >  2995  
                                                                                        >  2996  struct EMREXTSELECTCLIPRGN
                                                                                        >  2997  {
                                                                                        >  2998      EMR emr;
                                                                                        >  2999      DWORD cbRgnData;
                                                                                        >  3000      DWORD iMode;
                                                                                        >  3001      BYTE [1] RgnData;
                                                                                        >  3002  }
                                                                                        >  3003  alias EMREXTSELECTCLIPRGN*PEMREXTSELECTCLIPRGN;
                                                                                        >  3004  
                                                                                        >  3005  struct EMRTEXT
                                                                                        >  3006  {
                                                                                        >  3007      POINTL ptlReference;
                                                                                        >  3008      DWORD nChars;
                                                                                        >  3009      DWORD offString;
                                                                                        >  3010      DWORD fOptions;
                                                                                        >  3011      RECTL rcl;
                                                                                        >  3012      DWORD offDx;
                                                                                        >  3013  }
                                                                                        >  3014  alias EMRTEXT*PEMRTEXT;
                                                                                        >  3015  
                                                                                        >  3016  struct EMREXTTEXTOUTA
                                                                                        >  3017  {
                                                                                        >  3018      EMR emr;
                                                                                        >  3019      RECTL rclBounds;
                                                                                        >  3020      DWORD iGraphicsMode;
                                                                                        >  3021      FLOAT exScale;
                                                                                        >  3022      FLOAT eyScale;
                                                                                        >  3023      EMRTEXT emrtext;
                                                                                        >  3024  }
                                                                                        >  3025  alias EMREXTTEXTOUTA*PEMREXTTEXTOUTA;
                                                                                        >  3026  alias EMREXTTEXTOUTA EMREXTTEXTOUTW;
                                                                                        >  3027  alias EMREXTTEXTOUTW*PEMREXTTEXTOUTW;
                                                                                        >  3028  
                                                                                        >  3029  struct EMRFILLPATH
                                                                                        >  3030  {
                                                                                        >  3031      EMR emr;
                                                                                        >  3032      RECTL rclBounds;
                                                                                        >  3033  }
                                                                                        >  3034  alias EMRFILLPATH*PEMRFILLPATH;
                                                                                        >  3035  
                                                                                        >  3036  alias EMRFILLPATH EMRSTROKEANDFILLPATH;
                                                                                        >  3037  alias EMRSTROKEANDFILLPATH*PEMRSTROKEANDFILLPATH;
                                                                                        >  3038  
                                                                                        >  3039  alias EMRFILLPATH EMRSTROKEPATH;
                                                                                        >  3040  alias EMRSTROKEPATH*PEMRSTROKEPATH;
                                                                                        >  3041  
                                                                                        >  3042  struct EMRFILLRGN
                                                                                        >  3043  {
                                                                                        >  3044      EMR emr;
                                                                                        >  3045      RECTL rclBounds;
                                                                                        >  3046      DWORD cbRgnData;
                                                                                        >  3047      DWORD ihBrush;
                                                                                        >  3048      BYTE[1] RgnData;
                                                                                        >  3049  }
                                                                                        >  3050  alias EMRFILLRGN*PEMRFILLRGN;
                                                                                        >  3051  
                                                                                        >  3052  struct EMRFORMAT
                                                                                        >  3053  {
                                                                                        >  3054      DWORD dSignature;
                                                                                        >  3055      DWORD nVersion;
                                                                                        >  3056      DWORD cbData;
                                                                                        >  3057      DWORD offData;
                                                                                        >  3058  }
                                                                                        >  3059  alias EMRFORMAT*PEMRFORMAT;
                                                                                        >  3060  
                                                                                        >  3061  struct EMRFRAMERGN
                                                                                        >  3062  {
                                                                                        >  3063      EMR emr;
                                                                                        >  3064      RECTL rclBounds;
                                                                                        >  3065      DWORD cbRgnData;
                                                                                        >  3066      DWORD ihBrush;
                                                                                        >  3067      SIZEL szlStroke;
                                                                                        >  3068      BYTE[1] RgnData;
                                                                                        >  3069  }
                                                                                        >  3070  alias EMRFRAMERGN*PEMRFRAMERGN;
                                                                                        >  3071  
                                                                                        >  3072  struct EMRGDICOMMENT
                                                                                        >  3073  {
                                                                                        >  3074      EMR emr;
                                                                                        >  3075      DWORD cbData;
                                                                                        >  3076      BYTE[1] Data;
                                                                                        >  3077  }
                                                                                        >  3078  alias EMRGDICOMMENT*PEMRGDICOMMENT;
                                                                                        >  3079  
                                                                                        >  3080  struct EMRINVERTRGN
                                                                                        >  3081  {
                                                                                        >  3082      EMR emr;
                                                                                        >  3083      RECTL rclBounds;
                                                                                        >  3084      DWORD cbRgnData;
                                                                                        >  3085      BYTE[1] RgnData;
                                                                                        >  3086  }
                                                                                        >  3087  alias EMRINVERTRGN*PEMRINVERTRGN;
                                                                                        >  3088  alias EMRINVERTRGN EMRPAINTRGN;
                                                                                        >  3089  alias EMRPAINTRGN*PEMRPAINTRGN;
                                                                                        >  3090  
                                                                                        >  3091  struct EMRLINETO
                                                                                        >  3092  {
                                                                                        >  3093      EMR emr;
                                                                                        >  3094      POINTL ptl;
                                                                                        >  3095  }
                                                                                        >  3096  alias EMRLINETO*PEMRLINETO;
                                                                                        >  3097  alias EMRLINETO EMRMOVETOEX;
                                                                                        >  3098  alias EMRMOVETOEX*PEMRMOVETOEX;
                                                                                        >  3099  
                                                                                        >  3100  struct EMRMASKBLT
                                                                                        >  3101  {
                                                                                        >  3102      EMR emr;
                                                                                        >  3103      RECTL rclBounds;
                                                                                        >  3104      LONG xDest;
                                                                                        >  3105      LONG yDest;
                                                                                        >  3106      LONG cxDest;
                                                                                        >  3107      LONG cyDest;
                                                                                        >  3108      DWORD dwRop;
                                                                                        >  3109      LONG xSrc;
                                                                                        >  3110      LONG ySrc;
                                                                                        >  3111      XFORM xformSrc;
                                                                                        >  3112      COLORREF crBkColorSrc;
                                                                                        >  3113      DWORD iUsageSrc;
                                                                                        >  3114      DWORD offBmiSrc;
                                                                                        >  3115      DWORD cbBmiSrc;
                                                                                        >  3116      DWORD offBitsSrc;
                                                                                        >  3117      DWORD cbBitsSrc;
                                                                                        >  3118      LONG xMask;
                                                                                        >  3119      LONG yMask;
                                                                                        >  3120      DWORD iUsageMask;
                                                                                        >  3121      DWORD offBmiMask;
                                                                                        >  3122      DWORD cbBmiMask;
                                                                                        >  3123      DWORD offBitsMask;
                                                                                        >  3124      DWORD cbBitsMask;
                                                                                        >  3125  }
                                                                                        >  3126  alias EMRMASKBLT*PEMRMASKBLT;
                                                                                        >  3127  
                                                                                        >  3128  struct EMRMODIFYWORLDTRANSFORM
                                                                                        >  3129  {
                                                                                        >  3130      EMR emr;
                                                                                        >  3131      XFORM xform;
                                                                                        >  3132      DWORD iMode;
                                                                                        >  3133  }
                                                                                        >  3134  alias EMRMODIFYWORLDTRANSFORM*PEMRMODIFYWORLDTRANSFORM;
                                                                                        >  3135  
                                                                                        >  3136  struct EMROFFSETCLIPRGN
                                                                                        >  3137  {
                                                                                        >  3138      EMR emr;
                                                                                        >  3139      POINTL ptlOffset;
                                                                                        >  3140  }
                                                                                        >  3141  alias EMROFFSETCLIPRGN*PEMROFFSETCLIPRGN;
                                                                                        >  3142  
                                                                                        >  3143  struct EMRPLGBLT
                                                                                        >  3144  {
                                                                                        >  3145      EMR emr;
                                                                                        >  3146      RECTL rclBounds;
                                                                                        >  3147      POINTL[3] aptlDest;
                                                                                        >  3148      LONG xSrc;
                                                                                        >  3149      LONG ySrc;
                                                                                        >  3150      LONG cxSrc;
                                                                                        >  3151      LONG cySrc;
                                                                                        >  3152      XFORM xformSrc;
                                                                                        >  3153      COLORREF crBkColorSrc;
                                                                                        >  3154      DWORD iUsageSrc;
                                                                                        >  3155      DWORD offBmiSrc;
                                                                                        >  3156      DWORD cbBmiSrc;
                                                                                        >  3157      DWORD offBitsSrc;
                                                                                        >  3158      DWORD cbBitsSrc;
                                                                                        >  3159      LONG xMask;
                                                                                        >  3160      LONG yMask;
                                                                                        >  3161      DWORD iUsageMask;
                                                                                        >  3162      DWORD offBmiMask;
                                                                                        >  3163      DWORD cbBmiMask;
                                                                                        >  3164      DWORD offBitsMask;
                                                                                        >  3165      DWORD cbBitsMask;
                                                                                        >  3166  }
                                                                                        >  3167  alias EMRPLGBLT*PEMRPLGBLT;
                                                                                        >  3168  
                                                                                        >  3169  struct EMRPOLYDRAW
                                                                                        >  3170  {
                                                                                        >  3171      EMR emr;
                                                                                        >  3172      RECTL rclBounds;
                                                                                        >  3173      DWORD cptl;
                                                                                        >  3174      POINTL[1] aptl;
                                                                                        >  3175      BYTE[1] abTypes;
                                                                                        >  3176  }
                                                                                        >  3177  alias EMRPOLYDRAW*PEMRPOLYDRAW;
                                                                                        >  3178  
                                                                                        >  3179  struct EMRPOLYDRAW16
                                                                                        >  3180  {
                                                                                        >  3181      EMR emr;
                                                                                        >  3182      RECTL rclBounds;
                                                                                        >  3183      DWORD cpts;
                                                                                        >  3184      POINTS[1] apts;
                                                                                        >  3185      BYTE[1] abTypes;
                                                                                        >  3186  }
                                                                                        >  3187  alias EMRPOLYDRAW16*PEMRPOLYDRAW16;
                                                                                        >  3188  
                                                                                        >  3189  struct EMRPOLYLINE
                                                                                        >  3190  {
                                                                                        >  3191      EMR emr;
                                                                                        >  3192      RECTL rclBounds;
                                                                                        >  3193      DWORD cptl;
                                                                                        >  3194      POINTL[1] aptl;
                                                                                        >  3195  }
                                                                                        >  3196  alias EMRPOLYLINE*PEMRPOLYLINE;
                                                                                        >  3197  alias EMRPOLYLINE EMRPOLYBEZIER;
                                                                                        >  3198  alias EMRPOLYBEZIER*PEMRPOLYBEZIER;
                                                                                        >  3199  alias EMRPOLYLINE EMRPOLYGON;
                                                                                        >  3200  alias EMRPOLYGON*PEMRPOLYGON;
                                                                                        >  3201  alias EMRPOLYLINE EMRPOLYBEZIERTO;
                                                                                        >  3202  alias EMRPOLYBEZIERTO*PEMRPOLYBEZIERTO;
                                                                                        >  3203  alias EMRPOLYLINE EMRPOLYLINETO;
                                                                                        >  3204  alias EMRPOLYLINETO*PEMRPOLYLINETO;
                                                                                        >  3205  
                                                                                        >  3206  struct EMRPOLYLINE16
                                                                                        >  3207  {
                                                                                        >  3208      EMR emr;
                                                                                        >  3209      RECTL rclBounds;
                                                                                        >  3210      DWORD cpts;
                                                                                        >  3211      POINTS[1] apts;
                                                                                        >  3212  }
                                                                                        >  3213  alias EMRPOLYLINE16*PEMRPOLYLINE16;
                                                                                        >  3214  alias EMRPOLYLINE16 EMRPOLYBEZIER16;
                                                                                        >  3215  alias EMRPOLYBEZIER16*PEMRPOLYBEZIER16;
                                                                                        >  3216  alias EMRPOLYLINE16 EMRPOLYGON16;
                                                                                        >  3217  alias EMRPOLYGON16*PEMRPOLYGON16;
                                                                                        >  3218  alias EMRPOLYLINE16 EMRPOLYBEZIERTO16;
                                                                                        >  3219  alias EMRPOLYBEZIERTO16*PEMRPOLYBEZIERTO16;
                                                                                        >  3220  alias EMRPOLYLINE16 EMRPOLYLINETO16;
                                                                                        >  3221  alias EMRPOLYLINETO16*PEMRPOLYLINETO16;
                                                                                        >  3222  
                                                                                        >  3223  struct EMRPOLYPOLYLINE
                                                                                        >  3224  {
                                                                                        >  3225      EMR emr;
                                                                                        >  3226      RECTL rclBounds;
                                                                                        >  3227      DWORD nPolys;
                                                                                        >  3228      DWORD cptl;
                                                                                        >  3229      DWORD[1] aPolyCounts;
                                                                                        >  3230      POINTL[1] aptl;
                                                                                        >  3231  }
                                                                                        >  3232  alias EMRPOLYPOLYLINE*PEMRPOLYPOLYLINE;
                                                                                        >  3233  alias EMRPOLYPOLYLINE EMRPOLYPOLYGON;
                                                                                        >  3234  alias EMRPOLYPOLYGON*PEMRPOLYPOLYGON;
                                                                                        >  3235  
                                                                                        >  3236  struct EMRPOLYPOLYLINE16
                                                                                        >  3237  {
                                                                                        >  3238      EMR emr;
                                                                                        >  3239      RECTL rclBounds;
                                                                                        >  3240      DWORD nPolys;
                                                                                        >  3241      DWORD cpts;
                                                                                        >  3242      DWORD[1] aPolyCounts;
                                                                                        >  3243      POINTS[1] apts;
                                                                                        >  3244  }
                                                                                        >  3245  alias EMRPOLYPOLYLINE16*PEMRPOLYPOLYLINE16;
                                                                                        >  3246  alias EMRPOLYPOLYLINE16 EMRPOLYPOLYGON16;
                                                                                        >  3247  alias EMRPOLYPOLYGON16*PEMRPOLYPOLYGON16;
                                                                                        >  3248  
                                                                                        >  3249  struct EMRPOLYTEXTOUTA
                                                                                        >  3250  {
                                                                                        >  3251      EMR emr;
                                                                                        >  3252      RECTL rclBounds;
                                                                                        >  3253      DWORD iGraphicsMode;
                                                                                        >  3254      FLOAT exScale;
                                                                                        >  3255      FLOAT eyScale;
                                                                                        >  3256      LONG cStrings;
                                                                                        >  3257      EMRTEXT[1] aemrtext;
                                                                                        >  3258  }
                                                                                        >  3259  alias EMRPOLYTEXTOUTA*PEMRPOLYTEXTOUTA;
                                                                                        >  3260  alias EMRPOLYTEXTOUTA EMRPOLYTEXTOUTW;
                                                                                        >  3261  alias EMRPOLYTEXTOUTW*PEMRPOLYTEXTOUTW;
                                                                                        >  3262  
                                                                                        >  3263  struct EMRRESIZEPALETTE
                                                                                        >  3264  {
                                                                                        >  3265      EMR emr;
                                                                                        >  3266      DWORD ihPal;
                                                                                        >  3267      DWORD cEntries;
                                                                                        >  3268  }
                                                                                        >  3269  alias EMRRESIZEPALETTE*PEMRRESIZEPALETTE;
                                                                                        >  3270  
                                                                                        >  3271  struct EMRRESTOREDC
                                                                                        >  3272  {
                                                                                        >  3273      EMR emr;
                                                                                        >  3274      LONG iRelative;
                                                                                        >  3275  }
                                                                                        >  3276  alias EMRRESTOREDC*PEMRRESTOREDC;
                                                                                        >  3277  
                                                                                        >  3278  struct EMRROUNDRECT
                                                                                        >  3279  {
                                                                                        >  3280      EMR emr;
                                                                                        >  3281      RECTL rclBox;
                                                                                        >  3282      SIZEL szlCorner;
                                                                                        >  3283  }
                                                                                        >  3284  alias EMRROUNDRECT*PEMRROUNDRECT;
                                                                                        >  3285  
                                                                                        >  3286  struct EMRSCALEVIEWPORTEXTEX
                                                                                        >  3287  {
                                                                                        >  3288      EMR emr;
                                                                                        >  3289      LONG xNum;
                                                                                        >  3290      LONG xDenom;
                                                                                        >  3291      LONG yNum;
                                                                                        >  3292      LONG yDenom;
                                                                                        >  3293  }
                                                                                        >  3294  alias EMRSCALEVIEWPORTEXTEX*PEMRSCALEVIEWPORTEXTEX;
                                                                                        >  3295  alias EMRSCALEVIEWPORTEXTEX EMRSCALEWINDOWEXTEX;
                                                                                        >  3296  alias EMRSCALEWINDOWEXTEX*PEMRSCALEWINDOWEXTEX;
                                                                                        >  3297  
                                                                                        >  3298  struct EMRSELECTOBJECT
                                                                                        >  3299  {
                                                                                        >  3300      EMR emr;
                                                                                        >  3301      DWORD ihObject;
                                                                                        >  3302  }
                                                                                        >  3303  alias EMRSELECTOBJECT*PEMRSELECTOBJECT;
                                                                                        >  3304  alias EMRSELECTOBJECT EMRDELETEOBJECT;
                                                                                        >  3305  alias EMRDELETEOBJECT*PEMRDELETEOBJECT;
                                                                                        >  3306  
                                                                                        >  3307  struct EMRSELECTPALETTE
                                                                                        >  3308  {
                                                                                        >  3309      EMR emr;
                                                                                        >  3310      DWORD ihPal;
                                                                                        >  3311  }
                                                                                        >  3312  alias EMRSELECTPALETTE*PEMRSELECTPALETTE;
                                                                                        >  3313  
                                                                                        >  3314  struct EMRSETARCDIRECTION
                                                                                        >  3315  {
                                                                                        >  3316      EMR emr;
                                                                                        >  3317      DWORD iArcDirection;
                                                                                        >  3318  }
                                                                                        >  3319  alias EMRSETARCDIRECTION*PEMRSETARCDIRECTION;
                                                                                        >  3320  
                                                                                        >  3321  struct EMRSETTEXTCOLOR
                                                                                        >  3322  {
                                                                                        >  3323      EMR emr;
                                                                                        >  3324      COLORREF crColor;
                                                                                        >  3325  }
                                                                                        >  3326  alias EMRSETTEXTCOLOR*PEMRSETTEXTCOLOR;
                                                                                        >  3327  alias EMRSETTEXTCOLOR EMRSETBKCOLOR;
                                                                                        >  3328  alias EMRSETBKCOLOR*PEMRSETBKCOLOR;
                                                                                        >  3329  
                                                                                        >  3330  struct EMRSETCOLORADJUSTMENT
                                                                                        >  3331  {
                                                                                        >  3332      EMR emr;
                                                                                        >  3333      COLORADJUSTMENT ColorAdjustment;
                                                                                        >  3334  }
                                                                                        >  3335  alias EMRSETCOLORADJUSTMENT*PEMRSETCOLORADJUSTMENT;
                                                                                        >  3336  
                                                                                        >  3337  struct EMRSETDIBITSTODEVICE
                                                                                        >  3338  {
                                                                                        >  3339      EMR emr;
                                                                                        >  3340      RECTL rclBounds;
                                                                                        >  3341      LONG xDest;
                                                                                        >  3342      LONG yDest;
                                                                                        >  3343      LONG xSrc;
                                                                                        >  3344      LONG ySrc;
                                                                                        >  3345      LONG cxSrc;
                                                                                        >  3346      LONG cySrc;
                                                                                        >  3347      DWORD offBmiSrc;
                                                                                        >  3348      DWORD cbBmiSrc;
                                                                                        >  3349      DWORD offBitsSrc;
                                                                                        >  3350      DWORD cbBitsSrc;
                                                                                        >  3351      DWORD iUsageSrc;
                                                                                        >  3352      DWORD iStartScan;
                                                                                        >  3353      DWORD cScans;
                                                                                        >  3354  }
                                                                                        >  3355  alias EMRSETDIBITSTODEVICE*PEMRSETDIBITSTODEVICE;
                                                                                        >  3356  
                                                                                        >  3357  struct EMRSETMAPPERFLAGS
                                                                                        >  3358  {
                                                                                        >  3359      EMR emr;
                                                                                        >  3360      DWORD dwFlags;
                                                                                        >  3361  }
                                                                                        >  3362  alias EMRSETMAPPERFLAGS*PEMRSETMAPPERFLAGS;
                                                                                        >  3363  
                                                                                        >  3364  struct EMRSETMITERLIMIT
                                                                                        >  3365  {
                                                                                        >  3366      EMR emr;
                                                                                        >  3367      FLOAT eMiterLimit;
                                                                                        >  3368  }
                                                                                        >  3369  alias EMRSETMITERLIMIT*PEMRSETMITERLIMIT;
                                                                                        >  3370  
                                                                                        >  3371  struct EMRSETPALETTEENTRIES
                                                                                        >  3372  {
                                                                                        >  3373      EMR emr;
                                                                                        >  3374      DWORD ihPal;
                                                                                        >  3375      DWORD iStart;
                                                                                        >  3376      DWORD cEntries;
                                                                                        >  3377      PALETTEENTRY[1] aPalEntries;
                                                                                        >  3378  }
                                                                                        >  3379  alias EMRSETPALETTEENTRIES*PEMRSETPALETTEENTRIES;
                                                                                        >  3380  
                                                                                        >  3381  struct EMRSETPIXELV
                                                                                        >  3382  {
                                                                                        >  3383      EMR emr;
                                                                                        >  3384      POINTL ptlPixel;
                                                                                        >  3385      COLORREF crColor;
                                                                                        >  3386  }
                                                                                        >  3387  alias EMRSETPIXELV*PEMRSETPIXELV;
                                                                                        >  3388  
                                                                                        >  3389  struct EMRSETVIEWPORTEXTEX
                                                                                        >  3390  {
                                                                                        >  3391      EMR emr;
                                                                                        >  3392      SIZEL szlExtent;
                                                                                        >  3393  }
                                                                                        >  3394  alias EMRSETVIEWPORTEXTEX*PEMRSETVIEWPORTEXTEX;
                                                                                        >  3395  alias EMRSETVIEWPORTEXTEX EMRSETWINDOWEXTEX;
                                                                                        >  3396  alias EMRSETWINDOWEXTEX*PEMRSETWINDOWEXTEX;
                                                                                        >  3397  
                                                                                        >  3398  struct EMRSETVIEWPORTORGEX
                                                                                        >  3399  {
                                                                                        >  3400      EMR emr;
                                                                                        >  3401      POINTL ptlOrigin;
                                                                                        >  3402  }
                                                                                        >  3403  alias EMRSETVIEWPORTORGEX*PEMRSETVIEWPORTORGEX;
                                                                                        >  3404  alias EMRSETVIEWPORTORGEX EMRSETWINDOWORGEX;
                                                                                        >  3405  alias EMRSETWINDOWORGEX*PEMRSETWINDOWORGEX;
                                                                                        >  3406  alias EMRSETVIEWPORTORGEX EMRSETBRUSHORGEX;
                                                                                        >  3407  alias EMRSETBRUSHORGEX*PEMRSETBRUSHORGEX;
                                                                                        >  3408  
                                                                                        >  3409  struct EMRSETWORLDTRANSFORM
                                                                                        >  3410  {
                                                                                        >  3411      EMR emr;
                                                                                        >  3412      XFORM xform;
                                                                                        >  3413  }
                                                                                        >  3414  alias EMRSETWORLDTRANSFORM*PEMRSETWORLDTRANSFORM;
                                                                                        >  3415  
                                                                                        >  3416  struct EMRSTRETCHBLT
                                                                                        >  3417  {
                                                                                        >  3418      EMR emr;
                                                                                        >  3419      RECTL rclBounds;
                                                                                        >  3420      LONG xDest;
                                                                                        >  3421      LONG yDest;
                                                                                        >  3422      LONG cxDest;
                                                                                        >  3423      LONG cyDest;
                                                                                        >  3424      DWORD dwRop;
                                                                                        >  3425      LONG xSrc;
                                                                                        >  3426      LONG ySrc;
                                                                                        >  3427      XFORM xformSrc;
                                                                                        >  3428      COLORREF crBkColorSrc;
                                                                                        >  3429      DWORD iUsageSrc;
                                                                                        >  3430      DWORD offBmiSrc;
                                                                                        >  3431      DWORD cbBmiSrc;
                                                                                        >  3432      DWORD offBitsSrc;
                                                                                        >  3433      DWORD cbBitsSrc;
                                                                                        >  3434      LONG cxSrc;
                                                                                        >  3435      LONG cySrc;
                                                                                        >  3436  }
                                                                                        >  3437  alias EMRSTRETCHBLT*PEMRSTRETCHBLT;
                                                                                        >  3438  
                                                                                        >  3439  struct EMRSTRETCHDIBITS
                                                                                        >  3440  {
                                                                                        >  3441      EMR emr;
                                                                                        >  3442      RECTL rclBounds;
                                                                                        >  3443      LONG xDest;
                                                                                        >  3444      LONG yDest;
                                                                                        >  3445      LONG xSrc;
                                                                                        >  3446      LONG ySrc;
                                                                                        >  3447      LONG cxSrc;
                                                                                        >  3448      LONG cySrc;
                                                                                        >  3449      DWORD offBmiSrc;
                                                                                        >  3450      DWORD cbBmiSrc;
                                                                                        >  3451      DWORD offBitsSrc;
                                                                                        >  3452      DWORD cbBitsSrc;
                                                                                        >  3453      DWORD iUsageSrc;
                                                                                        >  3454      DWORD dwRop;
                                                                                        >  3455      LONG cxDest;
                                                                                        >  3456      LONG cyDest;
                                                                                        >  3457  }
                                                                                        >  3458  alias EMRSTRETCHDIBITS*PEMRSTRETCHDIBITS;
                                                                                        >  3459  
                                                                                        >  3460  struct EMRABORTPATH
                                                                                        >  3461  {
                                                                                        >  3462      EMR emr;
                                                                                        >  3463  }
                                                                                        >  3464  alias EMRABORTPATH*PEMRABORTPATH;
                                                                                        >  3465  alias EMRABORTPATH EMRBEGINPATH;
                                                                                        >  3466  alias EMRBEGINPATH*PEMRBEGINPATH;
                                                                                        >  3467  alias EMRABORTPATH EMRENDPATH;
                                                                                        >  3468  alias EMRENDPATH*PEMRENDPATH;
                                                                                        >  3469  alias EMRABORTPATH EMRCLOSEFIGURE;
                                                                                        >  3470  alias EMRCLOSEFIGURE*PEMRCLOSEFIGURE;
                                                                                        >  3471  alias EMRABORTPATH EMRFLATTENPATH;
                                                                                        >  3472  alias EMRFLATTENPATH*PEMRFLATTENPATH;
                                                                                        >  3473  alias EMRABORTPATH EMRWIDENPATH;
                                                                                        >  3474  alias EMRWIDENPATH*PEMRWIDENPATH;
                                                                                        >  3475  alias EMRABORTPATH EMRSETMETARGN;
                                                                                        >  3476  alias EMRSETMETARGN*PEMRSETMETARGN;
                                                                                        >  3477  alias EMRABORTPATH EMRSAVEDC;
                                                                                        >  3478  alias EMRSAVEDC*PEMRSAVEDC;
                                                                                        >  3479  alias EMRABORTPATH EMRREALIZEPALETTE;
                                                                                        >  3480  alias EMRREALIZEPALETTE*PEMRREALIZEPALETTE;
                                                                                        >  3481  
                                                                                        >  3482  struct EMRSELECTCLIPPATH
                                                                                        >  3483  {
                                                                                        >  3484      EMR emr;
                                                                                        >  3485      DWORD iMode;
                                                                                        >  3486  }
                                                                                        >  3487  alias EMRSELECTCLIPPATH*PEMRSELECTCLIPPATH;
                                                                                        >  3488  alias EMRSELECTCLIPPATH EMRSETBKMODE;
                                                                                        >  3489  alias EMRSETBKMODE*PEMRSETBKMODE;
                                                                                        >  3490  alias EMRSELECTCLIPPATH EMRSETMAPMODE;
                                                                                        >  3491  alias EMRSETMAPMODE*PEMRSETMAPMODE;
                                                                                        >  3492  alias EMRSELECTCLIPPATH EMRSETPOLYFILLMODE;
                                                                                        >  3493  alias EMRSETPOLYFILLMODE*PEMRSETPOLYFILLMODE;
                                                                                        >  3494  alias EMRSELECTCLIPPATH EMRSETROP2;
                                                                                        >  3495  alias EMRSETROP2*PEMRSETROP2;
                                                                                        >  3496  alias EMRSELECTCLIPPATH EMRSETSTRETCHBLTMODE;
                                                                                        >  3497  alias EMRSETSTRETCHBLTMODE*PEMRSETSTRETCHBLTMODE;
                                                                                        >  3498  alias EMRSELECTCLIPPATH EMRSETICMMODE;
                                                                                        >  3499  alias EMRSETICMMODE*PEMRSETICMMODE;
                                                                                        >  3500  alias EMRSELECTCLIPPATH EMRSETTEXTALIGN;
                                                                                        >  3501  alias EMRSETTEXTALIGN*PEMRSETTEXTALIGN;
                                                                                        >  3502  alias EMRSELECTCLIPPATH EMRENABLEICM;
                                                                                        >  3503  alias EMRENABLEICM*PEMRENABLEICM;
                                                                                        >  3504  static
                                                                                        >  3505  
                                                                                        >  3506  if (WINVER >= 0x0500)
                                                                                        >  3507  {
                                                                                        >  3508      alias EMRSELECTCLIPPATH EMRSETLAYOUT;
                                                                                        >  3509      alias EMRSETLAYOUT*PEMRSETLAYOUT;
                                                                                        >  3510  }
                                                                                        >  3511  
                                                                                        >  3512  align (2) :
                                                                                        >  3513  struct METAHEADER
                                                                                        >  3514  {
                                                                                        >  3515      WORD mtType;
                                                                                        >  3516      WORD mtHeaderSize;
                                                                                        >  3517      WORD mtVersion;
                                                                                        >  3518      DWORD mtSize;
                                                                                        >  3519      WORD mtNoObjects;
                                                                                        >  3520      DWORD mtMaxRecord;
                                                                                        >  3521      WORD mtNoParameters;
                                                                                        >  3522  }
                                                                                        >  3523  alias METAHEADER*PMETAHEADER;
                                                                                        >  3524  alias METAHEADER*LPMETAHEADER;
                                                                                        >  3525  
                                                                                        >  3526  align :
                                                                                        >  3527  
                                                                                        >  3528  struct ENHMETAHEADER
                                                                                        >  3529  {
                                                                                        >  3530      DWORD iType;
                                                                                        >  3531      DWORD nSize;
                                                                                        >  3532      RECTL rclBounds;
                                                                                        >  3533      RECTL rclFrame;
                                                                                        >  3534      DWORD dSignature = ENHMETA_SIGNATURE;
                                                                                        >  3535      DWORD nVersion;
                                                                                        >  3536      DWORD nBytes;
                                                                                        >  3537      DWORD nRecords;
                                                                                        >  3538      WORD nHandles;
                                                                                        >  3539      WORD sReserved;
                                                                                        >  3540      DWORD nDescription;
                                                                                        >  3541      DWORD offDescription;
                                                                                        >  3542      DWORD nPalEntries;
                                                                                        >  3543      SIZEL szlDevice;
                                                                                        >  3544      SIZEL szlMillimeters;
                                                                                        >  3545      static
                                                                                        >  3546  
                                                                                        >  3547      if (WINVER >= 0x0400)
                                                                                        >  3548      {
                                                                                        >  3549          DWORD cbPixelFormat;
                                                                                        >  3550          DWORD offPixelFormat;
                                                                                        >  3551          DWORD bOpenGL;
                                                                                        >  3552      }
                                                                                        >  3553  
                                                                                        >  3554      static
                                                                                        >  3555  
                                                                                        >  3556      if (WINVER >= 0x0500)
                                                                                        >  3557      {
                                                                                        >  3558          SIZEL szlMicrometers;
                                                                                        >  3559      }
                                                                                        >  3560  }
                                                                                        >  3561  alias ENHMETAHEADER*PENHMETAHEADER, LPENHMETAHEADER;
                                                                                        >  3562  
                                                                                        >  3563  struct METARECORD
                                                                                        >  3564  {
                                                                                        >  3565      DWORD rdSize;
                                                                                        >  3566      WORD rdFunction;
                                                                                        >  3567      WORD[1] rdParm;
                                                                                        >  3568  }
                                                                                        >  3569  alias METARECORD*PMETARECORD;
                                                                                        >  3570  alias METARECORD*LPMETARECORD;
                                                                                        >  3571  
                                                                                        >  3572  struct ENHMETARECORD
                                                                                        >  3573  {
                                                                                        >  3574      DWORD iType;
                                                                                        >  3575      DWORD nSize;
                                                                                        >  3576      DWORD[1] dParm;
                                                                                        >  3577  }
                                                                                        >  3578  alias ENHMETARECORD*PENHMETARECORD, LPENHMETARECORD;
                                                                                        >  3579  
                                                                                        >  3580  // ---
                                                                                        >  3581  
                                                                                        >  3582  struct HANDLETABLE
                                                                                        >  3583  {
                                                                                        >  3584      HGDIOBJ[1] objectHandle;
                                                                                        >  3585  }
                                                                                        >  3586  alias HANDLETABLE*PHANDLETABLE, LPHANDLETABLE;
                                                                                        >  3587  
                                                                                        >  3588  struct TEXTMETRICA
                                                                                        >  3589  {
                                                                                        >  3590      LONG tmHeight;
                                                                                        >  3591      LONG tmAscent;
                                                                                        >  3592      LONG tmDescent;
                                                                                        >  3593      LONG tmInternalLeading;
                                                                                        >  3594      LONG tmExternalLeading;
                                                                                        >  3595      LONG tmAveCharWidth;
                                                                                        >  3596      LONG tmMaxCharWidth;
                                                                                        >  3597      LONG tmWeight;
                                                                                        >  3598      LONG tmOverhang;
                                                                                        >  3599      LONG tmDigitizedAspectX;
                                                                                        >  3600      LONG tmDigitizedAspectY;
                                                                                        >  3601      BYTE tmFirstChar;
                                                                                        >  3602      BYTE tmLastChar;
                                                                                        >  3603      BYTE tmDefaultChar;
                                                                                        >  3604      BYTE tmBreakChar;
                                                                                        >  3605      BYTE tmItalic;
                                                                                        >  3606      BYTE tmUnderlined;
                                                                                        >  3607      BYTE tmStruckOut;
                                                                                        >  3608      BYTE tmPitchAndFamily;
                                                                                        >  3609      BYTE tmCharSet;
                                                                                        >  3610  }
                                                                                        >  3611  alias TEXTMETRICA*PTEXTMETRICA, NPTEXTMETRICA, LPTEXTMETRICA;
                                                                                        >  3612  
                                                                                        >  3613  struct TEXTMETRICW
                                                                                        >  3614  {
                                                                                        >  3615      LONG tmHeight;
                                                                                        >  3616      LONG tmAscent;
                                                                                        >  3617      LONG tmDescent;
                                                                                        >  3618      LONG tmInternalLeading;
                                                                                        >  3619      LONG tmExternalLeading;
                                                                                        >  3620      LONG tmAveCharWidth;
                                                                                        >  3621      LONG tmMaxCharWidth;
                                                                                        >  3622      LONG tmWeight;
                                                                                        >  3623      LONG tmOverhang;
                                                                                        >  3624      LONG tmDigitizedAspectX;
                                                                                        >  3625      LONG tmDigitizedAspectY;
                                                                                        >  3626      WCHAR tmFirstChar;
                                                                                        >  3627      WCHAR tmLastChar;
                                                                                        >  3628      WCHAR tmDefaultChar;
                                                                                        >  3629      WCHAR tmBreakChar;
                                                                                        >  3630      BYTE tmItalic;
                                                                                        >  3631      BYTE tmUnderlined;
                                                                                        >  3632      BYTE tmStruckOut;
                                                                                        >  3633      BYTE tmPitchAndFamily;
                                                                                        >  3634      BYTE tmCharSet;
                                                                                        >  3635  }
                                                                                        >  3636  alias TEXTMETRICW*PTEXTMETRICW, NPTEXTMETRICW, LPTEXTMETRICW;
                                                                                        >  3637  
                                                                                        >  3638  struct RGNDATAHEADER
                                                                                        >  3639  {
                                                                                        >  3640      DWORD dwSize;
                                                                                        >  3641      DWORD iType;
                                                                                        >  3642      DWORD nCount;
                                                                                        >  3643      DWORD nRgnSize;
                                                                                        >  3644      RECT rcBound;
                                                                                        >  3645  }
                                                                                        >  3646  alias RGNDATAHEADER*PRGNDATAHEADER;
                                                                                        >  3647  
                                                                                        >  3648  struct RGNDATA
                                                                                        >  3649  {
                                                                                        >  3650      RGNDATAHEADER rdh;
                                                                                        >  3651      char[1] Buffer;
                                                                                        >  3652  }
                                                                                        >  3653  alias RGNDATA*PRGNDATA, NPRGNDATA, LPRGNDATA;
                                                                                        >  3654  
                                                                                        >  3655  /* for GetRandomRgn */
                                                                                        >  3656  const SYSRGN=4;
                                                                                        >  3657  struct GCP_RESULTSA
                                                                                        >  3658  {
                                                                                        >  3659      DWORD lStructSize;
                                                                                        >  3660      LPSTR lpOutString;
                                                                                        >  3661      UINT*lpOrder;
                                                                                        >  3662      INT*lpDx;
                                                                                        >  3663      INT*lpCaretPos;
                                                                                        >  3664      LPSTR lpClass;
                                                                                        >  3665      LPWSTR lpGlyphs;
                                                                                        >  3666      UINT nGlyphs;
                                                                                        >  3667      UINT nMaxFit;
                                                                                        >  3668  }
                                                                                        >  3669  alias GCP_RESULTSA*LPGCP_RESULTSA;
                                                                                        >  3670  
                                                                                        >  3671  struct GCP_RESULTSW
                                                                                        >  3672  {
                                                                                        >  3673      DWORD lStructSize;
                                                                                        >  3674      LPWSTR lpOutString;
                                                                                        >  3675      UINT*lpOrder;
                                                                                        >  3676      INT*lpDx;
                                                                                        >  3677      INT*lpCaretPos;
                                                                                        >  3678      LPWSTR lpClass;
                                                                                        >  3679      LPWSTR lpGlyphs;
                                                                                        >  3680      UINT nGlyphs;
                                                                                        >  3681      UINT nMaxFit;
                                                                                        >  3682  }
                                                                                        >  3683  alias GCP_RESULTSW*LPGCP_RESULTSW;
                                                                                        >  3684  
                                                                                        >  3685  struct GLYPHMETRICS
                                                                                        >  3686  {
                                                                                        >  3687      UINT gmBlackBoxX;
                                                                                        >  3688      UINT gmBlackBoxY;
                                                                                        >  3689      POINT gmptGlyphOrigin;
                                                                                        >  3690      short gmCellIncX;
                                                                                        >  3691      short gmCellIncY;
                                                                                        >  3692  }
                                                                                        >  3693  alias GLYPHMETRICS*LPGLYPHMETRICS;
                                                                                        >  3694  
                                                                                        >  3695  static
                                                                                        >  3696  
                                                                                        >  3697  if (_WIN32_WINNT >= 0x0500)
                                                                                        >  3698  {
                                                                                        >  3699      struct WCRANGE
                                                                                        >  3700      {
                                                                                        >  3701          WCHAR wcLow;
                                                                                        >  3702          USHORT cGlyphs;
                                                                                        >  3703      }
                                                                                        >  3704      alias WCRANGE*PWCRANGE, LPWCRANGE;
                                                                                        >  3705  
                                                                                        >  3706      struct GLYPHSET
                                                                                        >  3707      {
                                                                                        >  3708          DWORD cbThis;
                                                                                        >  3709          DWORD flAccel;
                                                                                        >  3710          DWORD cGlyphsSupported;
                                                                                        >  3711          DWORD cRanges;
                                                                                        >  3712          WCRANGE[1] ranges;
                                                                                        >  3713      }
                                                                                        >  3714      alias GLYPHSET*PGLYPHSET, LPGLYPHSET;
                                                                                        >  3715  
                                                                                        >  3716      const DWORD GS_8BIT_INDICES = 0x00000001;
                                                                                        >  3717  }
                                                                                        >  3718  
                                                                                        >  3719  struct KERNINGPAIR
                                                                                        >  3720  {
                                                                                        >  3721      WORD wFirst;
                                                                                        >  3722      WORD wSecond;
                                                                                        >  3723      int iKernAmount;
                                                                                        >  3724  }
                                                                                        >  3725  alias KERNINGPAIR*LPKERNINGPAIR;
                                                                                        >  3726  
                                                                                        >  3727  struct FIXED
                                                                                        >  3728  {
                                                                                        >  3729      WORD fract;
                                                                                        >  3730      short value;
                                                                                        >  3731  }
                                                                                        >  3732  
                                                                                        >  3733  struct MAT2
                                                                                        >  3734  {
                                                                                        >  3735      FIXED eM11;
                                                                                        >  3736      FIXED eM12;
                                                                                        >  3737      FIXED eM21;
                                                                                        >  3738      FIXED eM22;
                                                                                        >  3739  }
                                                                                        >  3740  alias MAT2*LPMAT2;
                                                                                        >  3741  
                                                                                        >  3742  struct OUTLINETEXTMETRICA
                                                                                        >  3743  {
                                                                                        >  3744      UINT otmSize;
                                                                                        >  3745      TEXTMETRICA otmTextMetrics;
                                                                                        >  3746      BYTE otmFiller;
                                                                                        >  3747      PANOSE otmPanoseNumber;
                                                                                        >  3748      UINT otmfsSelection;
                                                                                        >  3749      UINT otmfsType;
                                                                                        >  3750      int otmsCharSlopeRise;
                                                                                        >  3751      int otmsCharSlopeRun;
                                                                                        >  3752      int otmItalicAngle;
                                                                                        >  3753      UINT otmEMSquare;
                                                                                        >  3754      int otmAscent;
                                                                                        >  3755      int otmDescent;
                                                                                        >  3756      UINT otmLineGap;
                                                                                        >  3757      UINT otmsCapEmHeight;
                                                                                        >  3758      UINT otmsXHeight;
                                                                                        >  3759      RECT otmrcFontBox;
                                                                                        >  3760      int otmMacAscent;
                                                                                        >  3761      int otmMacDescent;
                                                                                        >  3762      UINT otmMacLineGap;
                                                                                        >  3763      UINT otmusMinimumPPEM;
                                                                                        >  3764      POINT otmptSubscriptSize;
                                                                                        >  3765      POINT otmptSubscriptOffset;
                                                                                        >  3766      POINT otmptSuperscriptSize;
                                                                                        >  3767      POINT otmptSuperscriptOffset;
                                                                                        >  3768      UINT otmsStrikeoutSize;
                                                                                        >  3769      int otmsStrikeoutPosition;
                                                                                        >  3770      int otmsUnderscoreSize;
                                                                                        >  3771      int otmsUnderscorePosition;
                                                                                        >  3772      PSTR otmpFamilyName;
                                                                                        >  3773      PSTR otmpFaceName;
                                                                                        >  3774      PSTR otmpStyleName;
                                                                                        >  3775      PSTR otmpFullName;
                                                                                        >  3776  }
                                                                                        >  3777  alias OUTLINETEXTMETRICA*POUTLINETEXTMETRICA, NPOUTLINETEXTMETRICA, LPOUTLINETEX
                                                                                        >  3778  
                                                                                        >  3779  struct OUTLINETEXTMETRICW
                                                                                        >  3780  {
                                                                                        >  3781      UINT otmSize;
                                                                                        >  3782      TEXTMETRICW otmTextMetrics;
                                                                                        >  3783      BYTE otmFiller;
                                                                                        >  3784      PANOSE otmPanoseNumber;
                                                                                        >  3785      UINT otmfsSelection;
                                                                                        >  3786      UINT otmfsType;
                                                                                        >  3787      int otmsCharSlopeRise;
                                                                                        >  3788      int otmsCharSlopeRun;
                                                                                        >  3789      int otmItalicAngle;
                                                                                        >  3790      UINT otmEMSquare;
                                                                                        >  3791      int otmAscent;
                                                                                        >  3792      int otmDescent;
                                                                                        >  3793      UINT otmLineGap;
                                                                                        >  3794      UINT otmsCapEmHeight;
                                                                                        >  3795      UINT otmsXHeight;
                                                                                        >  3796      RECT otmrcFontBox;
                                                                                        >  3797      int otmMacAscent;
                                                                                        >  3798      int otmMacDescent;
                                                                                        >  3799      UINT otmMacLineGap;
                                                                                        >  3800      UINT otmusMinimumPPEM;
                                                                                        >  3801      POINT otmptSubscriptSize;
                                                                                        >  3802      POINT otmptSubscriptOffset;
                                                                                        >  3803      POINT otmptSuperscriptSize;
                                                                                        >  3804      POINT otmptSuperscriptOffset;
                                                                                        >  3805      UINT otmsStrikeoutSize;
                                                                                        >  3806      int otmsStrikeoutPosition;
                                                                                        >  3807      int otmsUnderscoreSize;
                                                                                        >  3808      int otmsUnderscorePosition;
                                                                                        >  3809      PSTR otmpFamilyName;
                                                                                        >  3810      PSTR otmpFaceName;
                                                                                        >  3811      PSTR otmpStyleName;
                                                                                        >  3812      PSTR otmpFullName;
                                                                                        >  3813  }
                                                                                        >  3814  alias OUTLINETEXTMETRICW*POUTLINETEXTMETRICW, NPOUTLINETEXTMETRICW, LPOUTLINETEX
                                                                                        >  3815  
                                                                                        >  3816  struct RASTERIZER_STATUS
                                                                                        >  3817  {
                                                                                        >  3818      short nSize;
                                                                                        >  3819      short wFlags;
                                                                                        >  3820      short nLanguageID;
                                                                                        >  3821  }
                                                                                        >  3822  alias RASTERIZER_STATUS*LPRASTERIZER_STATUS;
                                                                                        >  3823  
                                                                                        >  3824  struct POLYTEXTA
                                                                                        >  3825  {
                                                                                        >  3826      int x;
                                                                                        >  3827      int y;
                                                                                        >  3828      UINT n;
                                                                                        >  3829      LPCSTR lpstr;
                                                                                        >  3830      UINT uiFlags;
                                                                                        >  3831      RECT rcl;
                                                                                        >  3832      int*pdx;
                                                                                        >  3833  }
                                                                                        >  3834  alias POLYTEXTA*PPOLYTEXTA, NPPOLYTEXTA, LPPOLYTEXTA;
                                                                                        >  3835  
                                                                                        >  3836  struct POLYTEXTW
                                                                                        >  3837  {
                                                                                        >  3838      int x;
                                                                                        >  3839      int y;
                                                                                        >  3840      UINT n;
                                                                                        >  3841      LPCWSTR lpstr;
                                                                                        >  3842      UINT uiFlags;
                                                                                        >  3843      RECT rcl;
                                                                                        >  3844      int*pdx;
                                                                                        >  3845  }
                                                                                        >  3846  alias POLYTEXTW*PPOLYTEXTW, NPPOLYTEXTW, LPPOLYTEXTW;
                                                                                        >  3847  
                                                                                        >  3848  struct PIXELFORMATDESCRIPTOR
                                                                                        >  3849  {
                                                                                        >  3850      WORD nSize;
                                                                                        >  3851      WORD nVersion;
                                                                                        >  3852      DWORD dwFlags;
                                                                                        >  3853      BYTE iPixelType;
                                                                                        >  3854      BYTE cColorBits;
                                                                                        >  3855      BYTE cRedBits;
                                                                                        >  3856      BYTE cRedShift;
                                                                                        >  3857      BYTE cGreenBits;
                                                                                        >  3858      BYTE cGreenShift;
                                                                                        >  3859      BYTE cBlueBits;
                                                                                        >  3860      BYTE cBlueShift;
                                                                                        >  3861      BYTE cAlphaBits;
                                                                                        >  3862      BYTE cAlphaShift;
                                                                                        >  3863      BYTE cAccumBits;
                                                                                        >  3864      BYTE cAccumRedBits;
                                                                                        >  3865      BYTE cAccumGreenBits;
                                                                                        >  3866      BYTE cAccumBlueBits;
                                                                                        >  3867      BYTE cAccumAlphaBits;
                                                                                        >  3868      BYTE cDepthBits;
                                                                                        >  3869      BYTE cStencilBits;
                                                                                        >  3870      BYTE cAuxBuffers;
                                                                                        >  3871      BYTE iLayerType;
                                                                                        >  3872      BYTE bReserved;
                                                                                        >  3873      DWORD dwLayerMask;
                                                                                        >  3874      DWORD dwVisibleMask;
                                                                                        >  3875      DWORD dwDamageMask;
                                                                                        >  3876  }
                                                                                        >  3877  alias PIXELFORMATDESCRIPTOR*PPIXELFORMATDESCRIPTOR, LPPIXELFORMATDESCRIPTOR;
                                                                                        >  3878  
                                                                                        >  3879  struct METAFILEPICT
                                                                                        >  3880  {
                                                                                        >  3881      LONG mm;
                                                                                        >  3882      LONG xExt;
                                                                                        >  3883      LONG yExt;
                                                                                        >  3884      HMETAFILE hMF;
                                                                                        >  3885  }
                                                                                        >  3886  alias METAFILEPICT*LPMETAFILEPICT;
                                                                                        >  3887  
                                                                                        >  3888  struct LOCALESIGNATURE
                                                                                        >  3889  {
                                                                                        >  3890      DWORD[4] lsUsb;
                                                                                        >  3891      DWORD[2] lsCsbDefault;
                                                                                        >  3892      DWORD[2] lsCsbSupported;
                                                                                        >  3893  }
                                                                                        >  3894  alias LOCALESIGNATURE*PLOCALESIGNATURE, LPLOCALESIGNATURE;
                                                                                        >  3895  
                                                                                        >  3896  alias LONG LCSTYPE; /* What this for? */
                                                                                        >  3897  
                                                                                        >  3898  align (4) :
                                                                                        >  3899  struct NEWTEXTMETRICA
                                                                                        >  3900  {
                                                                                        >  3901      LONG tmHeight;
                                                                                        >  3902      LONG tmAscent;
                                                                                        >  3903      LONG tmDescent;
                                                                                        >  3904      LONG tmInternalLeading;
                                                                                        >  3905      LONG tmExternalLeading;
                                                                                        >  3906      LONG tmAveCharWidth;
                                                                                        >  3907      LONG tmMaxCharWidth;
                                                                                        >  3908      LONG tmWeight;
                                                                                        >  3909      LONG tmOverhang;
                                                                                        >  3910      LONG tmDigitizedAspectX;
                                                                                        >  3911      LONG tmDigitizedAspectY;
                                                                                        >  3912      BYTE tmFirstChar;
                                                                                        >  3913      BYTE tmLastChar;
                                                                                        >  3914      BYTE tmDefaultChar;
                                                                                        >  3915      BYTE tmBreakChar;
                                                                                        >  3916      BYTE tmItalic;
                                                                                        >  3917      BYTE tmUnderlined;
                                                                                        >  3918      BYTE tmStruckOut;
                                                                                        >  3919      BYTE tmPitchAndFamily;
                                                                                        >  3920      BYTE tmCharSet;
                                                                                        >  3921      DWORD ntmFlags;
                                                                                        >  3922      UINT ntmSizeEM;
                                                                                        >  3923      UINT ntmCellHeight;
                                                                                        >  3924      UINT ntmAvgWidth;
                                                                                        >  3925  }
                                                                                        >  3926  alias NEWTEXTMETRICA*PNEWTEXTMETRICA, NPNEWTEXTMETRICA, LPNEWTEXTMETRICA;
                                                                                        >  3927  
                                                                                        >  3928  struct NEWTEXTMETRICW
                                                                                        >  3929  {
                                                                                        >  3930      LONG tmHeight;
                                                                                        >  3931      LONG tmAscent;
                                                                                        >  3932      LONG tmDescent;
                                                                                        >  3933      LONG tmInternalLeading;
                                                                                        >  3934      LONG tmExternalLeading;
                                                                                        >  3935      LONG tmAveCharWidth;
                                                                                        >  3936      LONG tmMaxCharWidth;
                                                                                        >  3937      LONG tmWeight;
                                                                                        >  3938      LONG tmOverhang;
                                                                                        >  3939      LONG tmDigitizedAspectX;
                                                                                        >  3940      LONG tmDigitizedAspectY;
                                                                                        >  3941      WCHAR tmFirstChar;
                                                                                        >  3942      WCHAR tmLastChar;
                                                                                        >  3943      WCHAR tmDefaultChar;
                                                                                        >  3944      WCHAR tmBreakChar;
                                                                                        >  3945      BYTE tmItalic;
                                                                                        >  3946      BYTE tmUnderlined;
                                                                                        >  3947      BYTE tmStruckOut;
                                                                                        >  3948      BYTE tmPitchAndFamily;
                                                                                        >  3949      BYTE tmCharSet;
                                                                                        >  3950      DWORD ntmFlags;
                                                                                        >  3951      UINT ntmSizeEM;
                                                                                        >  3952      UINT ntmCellHeight;
                                                                                        >  3953      UINT ntmAvgWidth;
                                                                                        >  3954  }
                                                                                        >  3955  alias NEWTEXTMETRICW*PNEWTEXTMETRICW, NPNEWTEXTMETRICW, LPNEWTEXTMETRICW;
                                                                                        >  3956  
                                                                                        >  3957  align :
                                                                                        >  3958  struct NEWTEXTMETRICEXA
                                                                                        >  3959  {
                                                                                        >  3960      NEWTEXTMETRICA ntmTm;
                                                                                        >  3961      FONTSIGNATURE ntmFontSig;
                                                                                        >  3962  }
                                                                                        >  3963  
                                                                                        >  3964  struct NEWTEXTMETRICEXW
                                                                                        >  3965  {
                                                                                        >  3966      NEWTEXTMETRICW ntmTm;
                                                                                        >  3967      FONTSIGNATURE ntmFontSig;
                                                                                        >  3968  }
                                                                                        >  3969  
                                                                                        >  3970  struct PELARRAY
                                                                                        >  3971  {
                                                                                        >  3972      LONG paXCount;
                                                                                        >  3973      LONG paYCount;
                                                                                        >  3974      LONG paXExt;
                                                                                        >  3975      LONG paYExt;
                                                                                        >  3976      BYTE paRGBs;
                                                                                        >  3977  }
                                                                                        >  3978  alias PELARRAY*PPELARRAY, NPPELARRAY, LPPELARRAY;
                                                                                        >  3979  
                                                                                        >  3980  struct ENUMLOGFONTA
                                                                                        >  3981  {
                                                                                        >  3982      LOGFONTA elfLogFont;
                                                                                        >  3983      BYTE[LF_FULLFACESIZE] elfFullName;
                                                                                        >  3984      BYTE[LF_FACESIZE] elfStyle;
                                                                                        >  3985  }
                                                                                        >  3986  alias ENUMLOGFONTA*LPENUMLOGFONTA;
                                                                                        >  3987  
                                                                                        >  3988  struct ENUMLOGFONTW
                                                                                        >  3989  {
                                                                                        >  3990      LOGFONTW elfLogFont;
                                                                                        >  3991      WCHAR[LF_FULLFACESIZE] elfFullName;
                                                                                        >  3992      WCHAR[LF_FACESIZE] elfStyle;
                                                                                        >  3993  }
                                                                                        >  3994  alias ENUMLOGFONTW*LPENUMLOGFONTW;
                                                                                        >  3995  
                                                                                        >  3996  struct ENUMLOGFONTEXA
                                                                                        >  3997  {
                                                                                        >  3998      LOGFONTA elfLogFont;
                                                                                        >  3999      BYTE[LF_FULLFACESIZE] elfFullName;
                                                                                        >  4000      BYTE[LF_FACESIZE] elfStyle;
                                                                                        >  4001      BYTE[LF_FACESIZE] elfScript;
                                                                                        >  4002  }
                                                                                        >  4003  alias ENUMLOGFONTEXA*LPENUMLOGFONTEXA;
                                                                                        >  4004  
                                                                                        >  4005  struct ENUMLOGFONTEXW
                                                                                        >  4006  {
                                                                                        >  4007      LOGFONTW elfLogFont;
                                                                                        >  4008      WCHAR[LF_FULLFACESIZE] elfFullName;
                                                                                        >  4009      WCHAR[LF_FACESIZE] elfStyle;
                                                                                        >  4010      WCHAR[LF_FACESIZE] elfScript;
                                                                                        >  4011  }
                                                                                        >  4012  alias ENUMLOGFONTEXW*LPENUMLOGFONTEXW;
                                                                                        >  4013  
                                                                                        >  4014  struct POINTFX
                                                                                        >  4015  {
                                                                                        >  4016      FIXED x;
                                                                                        >  4017      FIXED y;
                                                                                        >  4018  }
                                                                                        >  4019  alias POINTFX*LPPOINTFX;
                                                                                        >  4020  
                                                                                        >  4021  struct TTPOLYCURVE
                                                                                        >  4022  {
                                                                                        >  4023      WORD wType;
                                                                                        >  4024      WORD cpfx;
                                                                                        >  4025      POINTFX[1] apfx;
                                                                                        >  4026  }
                                                                                        >  4027  alias TTPOLYCURVE*LPTTPOLYCURVE;
                                                                                        >  4028  
                                                                                        >  4029  struct TTPOLYGONHEADER
                                                                                        >  4030  {
                                                                                        >  4031      DWORD cb;
                                                                                        >  4032      DWORD dwType;
                                                                                        >  4033      POINTFX pfxStart;
                                                                                        >  4034  }
                                                                                        >  4035  alias TTPOLYGONHEADER*LPTTPOLYGONHEADER;
                                                                                        >  4036  
                                                                                        >  4037  struct POINTFLOAT
                                                                                        >  4038  {
                                                                                        >  4039      FLOAT x;
                                                                                        >  4040      FLOAT y;
                                                                                        >  4041  }
                                                                                        >  4042  alias POINTFLOAT*PPOINTFLOAT;
                                                                                        >  4043  
                                                                                        >  4044  struct GLYPHMETRICSFLOAT
                                                                                        >  4045  {
                                                                                        >  4046      FLOAT gmfBlackBoxX;
                                                                                        >  4047      FLOAT gmfBlackBoxY;
                                                                                        >  4048      POINTFLOAT gmfptGlyphOrigin;
                                                                                        >  4049      FLOAT gmfCellIncX;
                                                                                        >  4050      FLOAT gmfCellIncY;
                                                                                        >  4051  }
                                                                                        >  4052  alias GLYPHMETRICSFLOAT*PGLYPHMETRICSFLOAT, LPGLYPHMETRICSFLOAT;
                                                                                        >  4053  
                                                                                        >  4054  struct LAYERPLANEDESCRIPTOR
                                                                                        >  4055  {
                                                                                        >  4056      WORD nSize;
                                                                                        >  4057      WORD nVersion;
                                                                                        >  4058      DWORD dwFlags;
                                                                                        >  4059      BYTE iPixelType;
                                                                                        >  4060      BYTE cColorBits;
                                                                                        >  4061      BYTE cRedBits;
                                                                                        >  4062      BYTE cRedShift;
                                                                                        >  4063      BYTE cGreenBits;
                                                                                        >  4064      BYTE cGreenShift;
                                                                                        >  4065      BYTE cBlueBits;
                                                                                        >  4066      BYTE cBlueShift;
                                                                                        >  4067      BYTE cAlphaBits;
                                                                                        >  4068      BYTE cAlphaShift;
                                                                                        >  4069      BYTE cAccumBits;
                                                                                        >  4070      BYTE cAccumRedBits;
                                                                                        >  4071      BYTE cAccumGreenBits;
                                                                                        >  4072      BYTE cAccumBlueBits;
                                                                                        >  4073      BYTE cAccumAlphaBits;
                                                                                        >  4074      BYTE cDepthBits;
                                                                                        >  4075      BYTE cStencilBits;
                                                                                        >  4076      BYTE cAuxBuffers;
                                                                                        >  4077      BYTE iLayerPlane;
                                                                                        >  4078      BYTE bReserved;
                                                                                        >  4079      COLORREF crTransparent;
                                                                                        >  4080  }
                                                                                        >  4081  alias LAYERPLANEDESCRIPTOR*PLAYERPLANEDESCRIPTOR, LPLAYERPLANEDESCRIPTOR;
                                                                                        >  4082  
                                                                                        >  4083  struct BLENDFUNCTION
                                                                                        >  4084  {
                                                                                        >  4085      BYTE BlendOp;
                                                                                        >  4086      BYTE BlendFlags;
                                                                                        >  4087      BYTE SourceConstantAlpha;
                                                                                        >  4088      BYTE AlphaFormat;
                                                                                        >  4089  }
                                                                                        >  4090  alias BLENDFUNCTION*PBLENDFUNCTION, LPBLENDFUNCTION;
                                                                                        >  4091  
                                                                                        >  4092  const MM_MAX_NUMAXES = 16;
                                                                                        >  4093  
                                                                                        >  4094  struct DESIGNVECTOR
                                                                                        >  4095  {
                                                                                        >  4096      DWORD dvReserved;
                                                                                        >  4097      DWORD dvNumAxes;
                                                                                        >  4098      LONG[MM_MAX_NUMAXES] dvValues;
                                                                                        >  4099  }
                                                                                        >  4100  alias DESIGNVECTOR*PDESIGNVECTOR, LPDESIGNVECTOR;
                                                                                        >  4101  const STAMP_DESIGNVECTOR = 0x8000000 + 'd' + ('v' << 8);
                                                                                        >  4102  const STAMP_AXESLIST     = 0x8000000 + 'a' + ('l' << 8);
                                                                                        >  4103  
                                                                                        >  4104  static
                                                                                        >  4105  
                                                                                        >  4106  if (_WIN32_WINNT >= 0x0500)
                                                                                        >  4107  {
                                                                                        >  4108      const MM_MAX_AXES_NAMELEN = 16;
                                                                                        >  4109  
                                                                                        >  4110      struct AXISINFOA
                                                                                        >  4111      {
                                                                                        >  4112          LONG axMinValue;
                                                                                        >  4113          LONG axMaxValue;
                                                                                        >  4114          BYTE[MM_MAX_AXES_NAMELEN] axAxisName;
                                                                                        >  4115      }
                                                                                        >  4116      alias AXISINFOA*PAXISINFOA, LPAXISINFOA;
                                                                                        >  4117  
                                                                                        >  4118      struct AXISINFOW
                                                                                        >  4119      {
                                                                                        >  4120          LONG axMinValue;
                                                                                        >  4121          LONG axMaxValue;
                                                                                        >  4122          WCHAR[MM_MAX_AXES_NAMELEN] axAxisName;
                                                                                        >  4123      }
                                                                                        >  4124      alias AXISINFOW*PAXISINFOW, LPAXISINFOW;
                                                                                        >  4125  
                                                                                        >  4126      version (Unicode)
                                                                                        >  4127      {
                                                                                        >  4128          alias AXISINFOW   AXISINFO;
                                                                                        >  4129          alias PAXISINFOW  PAXISINFO;
                                                                                        >  4130          alias LPAXISINFOW LPAXISINFO;
                                                                                        >  4131      }
                                                                                        >  4132      else
                                                                                        >  4133      {
                                                                                        >  4134          alias AXISINFOA   AXISINFO;
                                                                                        >  4135          alias PAXISINFOA  PAXISINFO;
                                                                                        >  4136          alias LPAXISINFOA LPAXISINFO;
                                                                                        >  4137      }
                                                                                        >  4138  
                                                                                        >  4139      struct AXESLISTA
                                                                                        >  4140      {
                                                                                        >  4141          DWORD axlReserved;
                                                                                        >  4142          DWORD axlNumAxes;
                                                                                        >  4143          AXISINFOA[MM_MAX_NUMAXES] axlAxisInfo;
                                                                                        >  4144      }
                                                                                        >  4145      alias AXESLISTA*PAXESLISTA, LPAXESLISTA;
                                                                                        >  4146  
                                                                                        >  4147      struct AXESLISTW
                                                                                        >  4148      {
                                                                                        >  4149          DWORD axlReserved;
                                                                                        >  4150          DWORD axlNumAxes;
                                                                                        >  4151          AXISINFOW[MM_MAX_NUMAXES] axlAxisInfo;
                                                                                        >  4152      }
                                                                                        >  4153      alias AXESLISTW*PAXESLISTW, LPAXESLISTW;
                                                                                        >  4154  
                                                                                        >  4155      version (Unicode)
                                                                                        >  4156      {
                                                                                        >  4157          alias AXESLISTW   AXESLIST;
                                                                                        >  4158          alias PAXESLISTW  PAXESLIST;
                                                                                        >  4159          alias LPAXESLISTW LPAXESLIST;
                                                                                        >  4160      }
                                                                                        >  4161      else
                                                                                        >  4162      {
                                                                                        >  4163          alias AXESLISTA   AXESLIST;
                                                                                        >  4164          alias PAXESLISTA  PAXESLIST;
                                                                                        >  4165          alias LPAXESLISTA LPAXESLIST;
                                                                                        >  4166      }
                                                                                        >  4167  
                                                                                        >  4168      struct ENUMLOGFONTEXDVA
                                                                                        >  4169      {
                                                                                        >  4170          ENUMLOGFONTEXA elfEnumLogfontEx;
                                                                                        >  4171          DESIGNVECTOR elfDesignVector;
                                                                                        >  4172      }
                                                                                        >  4173      alias ENUMLOGFONTEXDVA*PENUMLOGFONTEXDVA, LPENUMLOGFONTEXDVA;
                                                                                        >  4174  
                                                                                        >  4175      struct ENUMLOGFONTEXDVW
                                                                                        >  4176      {
                                                                                        >  4177          ENUMLOGFONTEXW elfEnumLogfontEx;
                                                                                        >  4178          DESIGNVECTOR elfDesignVector;
                                                                                        >  4179      }
                                                                                        >  4180      alias ENUMLOGFONTEXDVW*PENUMLOGFONTEXDVW, LPENUMLOGFONTEXDVW;
                                                                                        >  4181  
                                                                                        >  4182      HFONT CreateFontIndirectExA(ENUMLOGFONTEXDVA*);
                                                                                        >  4183  
                                                                                        >  4184      HFONT CreateFontIndirectExW(ENUMLOGFONTEXDVW*);
                                                                                        >  4185  
                                                                                        >  4186      version (Unicode)
                                                                                        >  4187          alias CreateFontIndirectExW CreateFontIndirectEx;
                                                                                        >  4188      else
                                                                                        >  4189          alias CreateFontIndirectExA CreateFontIndirectEx;
                                                                                        >  4190  
                                                                                        >  4191      struct ENUMTEXTMETRICA
                                                                                        >  4192      {
                                                                                        >  4193          NEWTEXTMETRICEXA etmNewTextMetricEx;
                                                                                        >  4194          AXESLISTA etmAxesList;
                                                                                        >  4195      }
                                                                                        >  4196      alias ENUMTEXTMETRICA*PENUMTEXTMETRICA, LPENUMTEXTMETRICA;
                                                                                        >  4197  
                                                                                        >  4198      struct ENUMTEXTMETRICW
                                                                                        >  4199      {
                                                                                        >  4200          NEWTEXTMETRICEXW etmNewTextMetricEx;
                                                                                        >  4201          AXESLISTW etmAxesList;
                                                                                        >  4202      }
                                                                                        >  4203      alias ENUMTEXTMETRICW*PENUMTEXTMETRICW, LPENUMTEXTMETRICW;
                                                                                        >  4204  
                                                                                        >  4205      version (Unicode)
                                                                                        >  4206      {
                                                                                        >  4207          alias ENUMTEXTMETRICW   ENUMTEXTMETRIC;
                                                                                        >  4208          alias PENUMTEXTMETRICW  PENUMTEXTMETRIC;
                                                                                        >  4209          alias LPENUMTEXTMETRICW LPENUMTEXTMETRIC;
                                                                                        >  4210      }
                                                                                        >  4211      else
                                                                                        >  4212      {
                                                                                        >  4213          alias ENUMTEXTMETRICA   ENUMTEXTMETRIC;
                                                                                        >  4214          alias PENUMTEXTMETRICA  PENUMTEXTMETRIC;
                                                                                        >  4215          alias LPENUMTEXTMETRICA LPENUMTEXTMETRIC;
                                                                                        >  4216      }
                                                                                        >  4217  } /* _WIN32_WINNT >= 0x0500 */
                                                                                        >  4218  
                                                                                        >  4219  struct GRADIENT_TRIANGLE
                                                                                        >  4220  {
                                                                                        >  4221      ULONG Vertex1;
                                                                                        >  4222      ULONG Vertex2;
                                                                                        >  4223      ULONG Vertex3;
                                                                                        >  4224  }
                                                                                        >  4225  alias GRADIENT_TRIANGLE*PGRADIENT_TRIANGLE, LPGRADIENT_TRIANGLE;
                                                                                        >  4226  
                                                                                        >  4227  struct GRADIENT_RECT
                                                                                        >  4228  {
                                                                                        >  4229      ULONG UpperLeft;
                                                                                        >  4230      ULONG LowerRight;
                                                                                        >  4231  }
                                                                                        >  4232  alias GRADIENT_RECT*PGRADIENT_RECT, LPGRADIENT_RECT;
                                                                                        >  4233  
                                                                                        >  4234  struct DISPLAY_DEVICEA
                                                                                        >  4235  {
                                                                                        >  4236      DWORD cb;
                                                                                        >  4237      CHAR[32] DeviceName;
                                                                                        >  4238      CHAR[128] DeviceString;
                                                                                        >  4239      DWORD StateFlags;
                                                                                        >  4240      CHAR[128] DeviceID;
                                                                                        >  4241      CHAR[128] DeviceKey;
                                                                                        >  4242  }
                                                                                        >  4243  alias DISPLAY_DEVICEA*PDISPLAY_DEVICEA, LPDISPLAY_DEVICEA;
                                                                                        >  4244  
                                                                                        >  4245  struct DISPLAY_DEVICEW
                                                                                        >  4246  {
                                                                                        >  4247      DWORD cb;
                                                                                        >  4248      WCHAR[32] DeviceName;
                                                                                        >  4249      WCHAR[128] DeviceString;
                                                                                        >  4250      DWORD StateFlags;
                                                                                        >  4251      WCHAR[128] DeviceID;
                                                                                        >  4252      WCHAR[128] DeviceKey;
                                                                                        >  4253  }
                                                                                        >  4254  alias DISPLAY_DEVICEW*PDISPLAY_DEVICEW, LPDISPLAY_DEVICEW;
                                                                                        >  4255  
                                                                                        >  4256  static
                                                                                        >  4257  
                                                                                        >  4258  if (WINVER >= 0x0400)
                                                                                        >  4259  {
                                                                                        >  4260      struct DRAWPATRECT
                                                                                        >  4261      {
                                                                                        >  4262          POINT ptPosition;
                                                                                        >  4263          POINT ptSize;
                                                                                        >  4264          WORD wStyle;
                                                                                        >  4265          WORD wPattern;
                                                                                        >  4266      }
                                                                                        >  4267      alias DRAWPATRECT*PDRAWPATRECT;
                                                                                        >  4268  }
                                                                                        >  4269  
                                                                                        >  4270  // ---------
                                                                                        >  4271  // Callbacks
                                                                                        >  4272  
                                                                                        >  4273  alias BOOL function(HDC, int) ABORTPROC;
                                                                                        >  4274  
                                                                                        >  4275  alias int function(HDC, HANDLETABLE*, METARECORD*, int, LPARAM) MFENUMPROC;
                                                                                        >  4276  
                                                                                        >  4277  alias int function(HDC, HANDLETABLE*, CPtr!(ENHMETARECORD), int, LPARAM) ENHMFEN
                                                                                        >  4278  
                                                                                        >  4279  alias int function(CPtr!(LOGFONTA), CPtr!(TEXTMETRICA), DWORD, LPARAM) FONTENUMP
                                                                                        >  4280  
                                                                                        >  4281  alias int function(CPtr!(LOGFONTW), CPtr!(TEXTMETRICW), DWORD, LPARAM) FONTENUMP
                                                                                        >  4282  
                                                                                        >  4283  alias int function(LPSTR, LPARAM) ICMENUMPROCA;
                                                                                        >  4284  
                                                                                        >  4285  alias int function(LPWSTR, LPARAM) ICMENUMPROCW;
                                                                                        >  4286  
                                                                                        >  4287  alias void function(LPVOID, LPARAM) GOBJENUMPROC;
                                                                                        >  4288  
                                                                                        >  4289  alias void function(int, int, LPARAM) LINEDDAPROC;
                                                                                        >  4290  
                                                                                        >  4291  alias UINT function(HWND, HMODULE, LPDEVMODEA, LPSTR, LPSTR, LPDEVMODEA, LPSTR, 
                                                                                        >  4292  
                                                                                        >  4293  alias DWORD function(LPSTR, LPSTR, UINT, LPSTR, LPDEVMODEA) LPFNDEVCAPS;
                                                                                        >  4294  
                                                                                        >  4295  // ---------
                                                                                        >  4296  // C Macros.
                                                                                        >  4297  // FIXME:
                                                                                        >  4298  // POINTS MAKEPOINTS(DWORD dwValue) #define MAKEPOINTS(l) (*((POINTS*)&(l)))
                                                                                        >  4299  DWORD MAKEROP4(DWORD fore, DWORD back)
                                                                                        >  4300  {
                                                                                        >  4301      return ((back << 8) & 0xFF000000) | (fore);
                                                                                        >  4302  }
                                                                                        >  4303  
                                                                                        >  4304  
                                                                                        >  4305  COLORREF CMYK(BYTE c, BYTE m, BYTE y, BYTE k)
                                                                                        >  4306  {
                                                                                        >  4307      return cast(COLORREF) (k | (y << 8) | (m << 16) | (c << 24));
                                                                                        >  4308  }
                                                                                        >  4309  
                                                                                        >  4310  
                                                                                        >  4311  BYTE GetCValue(COLORREF cmyk)
                                                                                        >  4312  {
                                                                                        >  4313      return cast(BYTE) (cmyk >> 24);
                                                                                        >  4314  }
                                                                                        >  4315  
                                                                                        >  4316  
                                                                                        >  4317  BYTE GetMValue(COLORREF cmyk)
                                                                                        >  4318  {
                                                                                        >  4319      return cast(BYTE) (cmyk >> 16);
                                                                                        >  4320  }
                                                                                        >  4321  
                                                                                        >  4322  
                                                                                        >  4323  BYTE GetYValue(COLORREF cmyk)
                                                                                        >  4324  {
                                                                                        >  4325      return cast(BYTE) (cmyk >> 8);
                                                                                        >  4326  }
                                                                                        >  4327  
                                                                                        >  4328  
                                                                                        >  4329  BYTE GetKValue(COLORREF cmyk)
                                                                                        >  4330  {
                                                                                        >  4331      return cast(BYTE) cmyk;
                                                                                        >  4332  }
                                                                                        >  4333  
                                                                                        >  4334  
                                                                                        >  4335  COLORREF RGB(BYTE r, BYTE g, BYTE b)
                                                                                        >  4336  {
                                                                                        >  4337      return cast(COLORREF) (r | (g << 8) | (b << 16));
                                                                                        >  4338  }
                                                                                        >  4339  
                                                                                        >  4340  
                                                                                        >  4341  BYTE GetRValue(COLORREF c)
                                                                                        >  4342  {
                                                                                        >  4343      return cast(BYTE) c;
                                                                                        >  4344  }
                                                                                        >  4345  
                                                                                        >  4346  
                                                                                        >  4347  BYTE GetGValue(COLORREF c)
                                                                                        >  4348  {
                                                                                        >  4349      return cast(BYTE) (c >> 8);
                                                                                        >  4350  }
                                                                                        >  4351  
                                                                                        >  4352  
                                                                                        >  4353  BYTE GetBValue(COLORREF c)
                                                                                        >  4354  {
                                                                                        >  4355      return cast(BYTE) (c >> 16);
                                                                                        >  4356  }
                                                                                        >  4357  
                                                                                        >  4358  
                                                                                        >  4359  COLORREF PALETTEINDEX(WORD i)
                                                                                        >  4360  {
                                                                                        >  4361      return 0x01000000 | cast(COLORREF) i;
 3400  }                                                                                   4362  }
 3401  alias _TRIVERTEX TRIVERTEX;                                                      <
 3402  alias _TRIVERTEX* PTRIVERTEX;                                                    <
 3403  alias _TRIVERTEX* LPTRIVERTEX;                                                   <
 3404                                                                                      4363  
 3405  struct _GRADIENT_TRIANGLE {                                                      <
                                                                                        >  4364  
 3406    ULONG Vertex1;                                                                 |  4365  COLORREF PALETTERGB(BYTE r, BYTE g, BYTE b)
 3407    ULONG Vertex2;                                                                 <
                                                                                        >  4366  {
 3408    ULONG Vertex3;                                                                 |  4367      return 0x02000000 | RGB(r, g, b);
 3409  }                                                                                   4368  }
 3410  alias _GRADIENT_TRIANGLE GRADIENT_TRIANGLE;                                      <
 3411  alias _GRADIENT_TRIANGLE* PGRADIENT_TRIANGLE;                                    <
                                                                                        >  4369  
                                                                                        >  4370  
 3412  alias _GRADIENT_TRIANGLE* LPGRADIENT_TRIANGLE;                                   |  4371  extern (Windows) {
                                                                                        >  4372  int AbortDoc(HDC);
 3413                                                                                   |  4373  
 3414  struct _GRADIENT_RECT {                                                          <
 3415    ULONG UpperLeft;                                                               |  4374  BOOL AbortPath(HDC);
 3416    ULONG LowerRight;                                                              <
 3417  }                                                                                |  4375  
 3418  alias _GRADIENT_RECT GRADIENT_RECT;                                              <
                                                                                        >  4376  int AddFontResourceA(LPCSTR);
                                                                                        >  4377  
 3419  alias _GRADIENT_RECT* PGRADIENT_RECT;                                            |  4378  int AddFontResourceW(LPCWSTR);
 3420  alias _GRADIENT_RECT* LPGRADIENT_RECT;                                           <
 3421                                                                                   |  4379  
 3422  struct _BLENDFUNCTION {                                                          <
                                                                                        >  4380  BOOL AngleArc(HDC, int, int, DWORD, FLOAT, FLOAT);
                                                                                        >  4381  
 3423    BYTE BlendOp;                                                                  |  4382  BOOL AnimatePalette(HPALETTE, UINT, UINT, CPtr!(PALETTEENTRY));
 3424    BYTE BlendFlags;                                                               <
                                                                                        >  4383  
 3425    BYTE SourceConstantAlpha;                                                      |  4384  BOOL Arc(HDC, int, int, int, int, int, int, int, int);
 3426    BYTE AlphaFormat;                                                              <
                                                                                        >  4385  
                                                                                        >  4386  BOOL ArcTo(HDC, int, int, int, int, int, int, int, int);
                                                                                        >  4387  
                                                                                        >  4388  BOOL BeginPath(HDC);
                                                                                        >  4389  
                                                                                        >  4390  BOOL BitBlt(HDC, int, int, int, int, HDC, int, int, DWORD);
                                                                                        >  4391  
                                                                                        >  4392  BOOL CancelDC(HDC);
                                                                                        >  4393  
                                                                                        >  4394  BOOL CheckColorsInGamut(HDC, PVOID, PVOID, DWORD);
                                                                                        >  4395  
                                                                                        >  4396  BOOL Chord(HDC, int, int, int, int, int, int, int, int);
                                                                                        >  4397  
                                                                                        >  4398  int ChoosePixelFormat(HDC, CPtr!(PIXELFORMATDESCRIPTOR));
                                                                                        >  4399  
                                                                                        >  4400  HENHMETAFILE CloseEnhMetaFile(HDC);
                                                                                        >  4401  
                                                                                        >  4402  BOOL CloseFigure(HDC);
                                                                                        >  4403  
                                                                                        >  4404  HMETAFILE CloseMetaFile(HDC);
                                                                                        >  4405  
                                                                                        >  4406  BOOL ColorMatchToTarget(HDC, HDC, DWORD);
                                                                                        >  4407  
                                                                                        >  4408  BOOL ColorCorrectPalette(HDC, HPALETTE, DWORD, DWORD);
                                                                                        >  4409  
                                                                                        >  4410  int CombineRgn(HRGN, HRGN, HRGN, int);
                                                                                        >  4411  
                                                                                        >  4412  BOOL CombineTransform(LPXFORM, CPtr!(XFORM), CPtr!(XFORM));
                                                                                        >  4413  
                                                                                        >  4414  HENHMETAFILE CopyEnhMetaFileA(HENHMETAFILE, LPCSTR);
                                                                                        >  4415  
                                                                                        >  4416  HENHMETAFILE CopyEnhMetaFileW(HENHMETAFILE, LPCWSTR);
                                                                                        >  4417  
                                                                                        >  4418  HMETAFILE CopyMetaFileA(HMETAFILE, LPCSTR);
                                                                                        >  4419  
                                                                                        >  4420  HMETAFILE CopyMetaFileW(HMETAFILE, LPCWSTR);
                                                                                        >  4421  
                                                                                        >  4422  HBITMAP CreateBitmap(int, int, UINT, UINT, PCVOID);
                                                                                        >  4423  
                                                                                        >  4424  HBITMAP CreateBitmapIndirect(CPtr!(BITMAP));
                                                                                        >  4425  
                                                                                        >  4426  HBRUSH CreateBrushIndirect(CPtr!(LOGBRUSH));
                                                                                        >  4427  
                                                                                        >  4428  HCOLORSPACE CreateColorSpaceA(LPLOGCOLORSPACEA);
                                                                                        >  4429  
                                                                                        >  4430  HCOLORSPACE CreateColorSpaceW(LPLOGCOLORSPACEW);
                                                                                        >  4431  
                                                                                        >  4432  HBITMAP CreateCompatibleBitmap(HDC, int, int);
                                                                                        >  4433  
                                                                                        >  4434  HDC CreateCompatibleDC(HDC);
                                                                                        >  4435  
                                                                                        >  4436  HDC CreateDCA(LPCSTR, LPCSTR, LPCSTR, CPtr!(DEVMODEA));
                                                                                        >  4437  
                                                                                        >  4438  HDC CreateDCW(LPCWSTR, LPCWSTR, LPCWSTR, CPtr!(DEVMODEW));
                                                                                        >  4439  
                                                                                        >  4440  HBITMAP CreateDIBitmap(HDC, CPtr!(BITMAPINFOHEADER), DWORD, PCVOID, CPtr!(BITMAP
                                                                                        >  4441  
                                                                                        >  4442  HBRUSH CreateDIBPatternBrush(HGLOBAL, UINT);
                                                                                        >  4443  
                                                                                        >  4444  HBRUSH CreateDIBPatternBrushPt(PCVOID, UINT);
                                                                                        >  4445  
                                                                                        >  4446  HBITMAP CreateDIBSection(HDC, CPtr!(BITMAPINFO), UINT, void**, HANDLE, DWORD);
                                                                                        >  4447  
                                                                                        >  4448  HBITMAP CreateDiscardableBitmap(HDC, int, int);
                                                                                        >  4449  
                                                                                        >  4450  HRGN CreateEllipticRgn(int, int, int, int);
                                                                                        >  4451  
                                                                                        >  4452  HRGN CreateEllipticRgnIndirect(LPCRECT);
                                                                                        >  4453  
                                                                                        >  4454  HDC CreateEnhMetaFileA(HDC, LPCSTR, LPCRECT, LPCSTR);
                                                                                        >  4455  
                                                                                        >  4456  HDC CreateEnhMetaFileW(HDC, LPCWSTR, LPCRECT, LPCWSTR);
                                                                                        >  4457  
                                                                                        >  4458  HFONT CreateFontA(int, int, int, int, int, DWORD, DWORD, DWORD, DWORD, DWORD, DW
                                                                                        >  4459  
                                                                                        >  4460  HFONT CreateFontW(int, int, int, int, int, DWORD, DWORD, DWORD, DWORD, DWORD, DW
                                                                                        >  4461  
                                                                                        >  4462  HFONT CreateFontIndirectA(CPtr!(LOGFONTA));
                                                                                        >  4463  
                                                                                        >  4464  HFONT CreateFontIndirectW(CPtr!(LOGFONTW));
                                                                                        >  4465  
                                                                                        >  4466  HPALETTE CreateHalftonePalette(HDC);
                                                                                        >  4467  
                                                                                        >  4468  HBRUSH CreateHatchBrush(int, COLORREF);
                                                                                        >  4469  
                                                                                        >  4470  HDC CreateICA(LPCSTR, LPCSTR, LPCSTR, CPtr!(DEVMODEA));
                                                                                        >  4471  
                                                                                        >  4472  HDC CreateICW(LPCWSTR, LPCWSTR, LPCWSTR, CPtr!(DEVMODEW));
                                                                                        >  4473  
                                                                                        >  4474  HDC CreateMetaFileA(LPCSTR);
                                                                                        >  4475  
                                                                                        >  4476  HDC CreateMetaFileW(LPCWSTR);
                                                                                        >  4477  
                                                                                        >  4478  HPALETTE CreatePalette(CPtr!(LOGPALETTE));
                                                                                        >  4479  
                                                                                        >  4480  HBRUSH CreatePatternBrush(HBITMAP);
                                                                                        >  4481  
                                                                                        >  4482  HPEN CreatePen(int, int, COLORREF);
                                                                                        >  4483  
                                                                                        >  4484  HPEN CreatePenIndirect(CPtr!(LOGPEN));
                                                                                        >  4485  
                                                                                        >  4486  HRGN CreatePolygonRgn(CPtr!(POINT), int, int);
                                                                                        >  4487  
                                                                                        >  4488  HRGN CreatePolyPolygonRgn(CPtr!(POINT), CPtr!(INT), int, int);
                                                                                        >  4489  
                                                                                        >  4490  HRGN CreateRectRgn(int, int, int, int);
                                                                                        >  4491  
                                                                                        >  4492  HRGN CreateRectRgnIndirect(LPCRECT);
                                                                                        >  4493  
                                                                                        >  4494  HRGN CreateRoundRectRgn(int, int, int, int, int, int);
                                                                                        >  4495  
                                                                                        >  4496  BOOL CreateScalableFontResourceA(DWORD, LPCSTR, LPCSTR, LPCSTR);
                                                                                        >  4497  
                                                                                        >  4498  BOOL CreateScalableFontResourceW(DWORD, LPCWSTR, LPCWSTR, LPCWSTR);
                                                                                        >  4499  
                                                                                        >  4500  HBRUSH CreateSolidBrush(COLORREF);
                                                                                        >  4501  
                                                                                        >  4502  BOOL DeleteColorSpace(HCOLORSPACE);
                                                                                        >  4503  
                                                                                        >  4504  BOOL DeleteDC(HDC);
                                                                                        >  4505  
                                                                                        >  4506  BOOL DeleteEnhMetaFile(HENHMETAFILE);
                                                                                        >  4507  
                                                                                        >  4508  BOOL DeleteMetaFile(HMETAFILE);
                                                                                        >  4509  
                                                                                        >  4510  BOOL DeleteObject(HGDIOBJ);
                                                                                        >  4511  
                                                                                        >  4512  int DescribePixelFormat(HDC, int, UINT, LPPIXELFORMATDESCRIPTOR);
                                                                                        >  4513  
                                                                                        >  4514  DWORD DeviceCapabilitiesA(LPCSTR, LPCSTR, WORD, LPSTR, CPtr!(DEVMODEA));
                                                                                        >  4515  
                                                                                        >  4516  DWORD DeviceCapabilitiesW(LPCWSTR, LPCWSTR, WORD, LPWSTR, CPtr!(DEVMODEW));
                                                                                        >  4517  
                                                                                        >  4518  BOOL DPtoLP(HDC, LPPOINT, int);
                                                                                        >  4519  
                                                                                        >  4520  int DrawEscape(HDC, int, int, LPCSTR);
                                                                                        >  4521  
                                                                                        >  4522  BOOL Ellipse(HDC, int, int, int, int);
                                                                                        >  4523  
                                                                                        >  4524  int EndDoc(HDC);
                                                                                        >  4525  
                                                                                        >  4526  int EndPage(HDC);
                                                                                        >  4527  
                                                                                        >  4528  BOOL EndPath(HDC);
                                                                                        >  4529  
                                                                                        >  4530  BOOL EnumEnhMetaFile(HDC, HENHMETAFILE, ENHMFENUMPROC, PVOID, LPCRECT);
                                                                                        >  4531  
                                                                                        >  4532  int EnumFontFamiliesA(HDC, LPCSTR, FONTENUMPROCA, LPARAM);
                                                                                        >  4533  
                                                                                        >  4534  int EnumFontFamiliesW(HDC, LPCWSTR, FONTENUMPROCW, LPARAM);
                                                                                        >  4535  
                                                                                        >  4536  int EnumFontFamiliesExA(HDC, PLOGFONTA, FONTENUMPROCA, LPARAM, DWORD);
                                                                                        >  4537  
                                                                                        >  4538  int EnumFontFamiliesExW(HDC, PLOGFONTW, FONTENUMPROCW, LPARAM, DWORD);
                                                                                        >  4539  
                                                                                        >  4540  int EnumFontsA(HDC, LPCSTR, FONTENUMPROCA, LPARAM);
                                                                                        >  4541  
                                                                                        >  4542  int EnumFontsW(HDC, LPCWSTR, FONTENUMPROCW, LPARAM);
                                                                                        >  4543  
                                                                                        >  4544  int EnumICMProfilesA(HDC, ICMENUMPROCA, LPARAM);
                                                                                        >  4545  
                                                                                        >  4546  int EnumICMProfilesW(HDC, ICMENUMPROCW, LPARAM);
                                                                                        >  4547  
                                                                                        >  4548  BOOL EnumMetaFile(HDC, HMETAFILE, MFENUMPROC, LPARAM);
                                                                                        >  4549  
                                                                                        >  4550  int EnumObjects(HDC, int, GOBJENUMPROC, LPARAM);
                                                                                        >  4551  
                                                                                        >  4552  BOOL EqualRgn(HRGN, HRGN);
                                                                                        >  4553  
                                                                                        >  4554  int Escape(HDC, int, int, LPCSTR, PVOID);
                                                                                        >  4555  
                                                                                        >  4556  int ExcludeClipRect(HDC, int, int, int, int);
                                                                                        >  4557  
                                                                                        >  4558  int ExcludeUpdateRgn(HDC, HWND);
                                                                                        >  4559  
                                                                                        >  4560  HPEN ExtCreatePen(DWORD, DWORD, CPtr!(LOGBRUSH), DWORD, CPtr!(DWORD));
                                                                                        >  4561  
                                                                                        >  4562  HRGN ExtCreateRegion(CPtr!(XFORM), DWORD, CPtr!(RGNDATA));
                                                                                        >  4563  
                                                                                        >  4564  int ExtEscape(HDC, int, int, LPCSTR, int, LPSTR);
                                                                                        >  4565  
                                                                                        >  4566  BOOL ExtFloodFill(HDC, int, int, COLORREF, UINT);
                                                                                        >  4567  
                                                                                        >  4568  int ExtSelectClipRgn(HDC, HRGN, int);
                                                                                        >  4569  
                                                                                        >  4570  BOOL ExtTextOutA(HDC, int, int, UINT, LPCRECT, LPCSTR, UINT, CPtr!(INT));
                                                                                        >  4571  
                                                                                        >  4572  BOOL ExtTextOutW(HDC, int, int, UINT, LPCRECT, LPCWSTR, UINT, CPtr!(INT));
                                                                                        >  4573  
                                                                                        >  4574  BOOL FillPath(HDC);
                                                                                        >  4575  
                                                                                        >  4576  int FillRect(HDC, LPCRECT, HBRUSH);
                                                                                        >  4577  
                                                                                        >  4578  int FillRgn(HDC, HRGN, HBRUSH);
                                                                                        >  4579  
                                                                                        >  4580  BOOL FixBrushOrgEx(HDC, int, int, LPPOINT);
                                                                                        >  4581  
                                                                                        >  4582  BOOL FlattenPath(HDC);
                                                                                        >  4583  
                                                                                        >  4584  BOOL FloodFill(HDC, int, int, COLORREF);
                                                                                        >  4585  
                                                                                        >  4586  BOOL FrameRgn(HDC, HRGN, HBRUSH, int, int);
                                                                                        >  4587  
                                                                                        >  4588  BOOL GdiComment(HDC, UINT, CPtr!(BYTE));
                                                                                        >  4589  
                                                                                        >  4590  BOOL GdiFlush();
                                                                                        >  4591  
                                                                                        >  4592  DWORD GdiGetBatchLimit();
                                                                                        >  4593  
                                                                                        >  4594  DWORD GdiSetBatchLimit(DWORD);
                                                                                        >  4595  
                                                                                        >  4596  int GetArcDirection(HDC);
                                                                                        >  4597  
                                                                                        >  4598  BOOL GetAspectRatioFilterEx(HDC, LPSIZE);
                                                                                        >  4599  
                                                                                        >  4600  LONG GetBitmapBits(HBITMAP, LONG, PVOID);
                                                                                        >  4601  
                                                                                        >  4602  BOOL GetBitmapDimensionEx(HBITMAP, LPSIZE);
                                                                                        >  4603  
                                                                                        >  4604  COLORREF GetBkColor(HDC);
                                                                                        >  4605  
                                                                                        >  4606  int GetBkMode(HDC);
                                                                                        >  4607  
                                                                                        >  4608  UINT GetBoundsRect(HDC, LPRECT, UINT);
                                                                                        >  4609  
                                                                                        >  4610  BOOL GetBrushOrgEx(HDC, LPPOINT);
                                                                                        >  4611  
                                                                                        >  4612  BOOL GetCharABCWidthsA(HDC, UINT, UINT, LPABC);
                                                                                        >  4613  
                                                                                        >  4614  BOOL GetCharABCWidthsW(HDC, UINT, UINT, LPABC);
                                                                                        >  4615  
                                                                                        >  4616  BOOL GetCharABCWidthsFloatA(HDC, UINT, UINT, LPABCFLOAT);
                                                                                        >  4617  
                                                                                        >  4618  BOOL GetCharABCWidthsFloatW(HDC, UINT, UINT, LPABCFLOAT);
                                                                                        >  4619  
                                                                                        >  4620  DWORD GetCharacterPlacementA(HDC, LPCSTR, int, int, LPGCP_RESULTSA, DWORD);
                                                                                        >  4621  
                                                                                        >  4622  DWORD GetCharacterPlacementW(HDC, LPCWSTR, int, int, LPGCP_RESULTSW, DWORD);
                                                                                        >  4623  
                                                                                        >  4624  BOOL GetCharWidth32A(HDC, UINT, UINT, LPINT);
                                                                                        >  4625  
                                                                                        >  4626  BOOL GetCharWidth32W(HDC, UINT, UINT, LPINT);
                                                                                        >  4627  
                                                                                        >  4628  BOOL GetCharWidthA(HDC, UINT, UINT, LPINT);
                                                                                        >  4629  
                                                                                        >  4630  BOOL GetCharWidthW(HDC, UINT, UINT, LPINT);
                                                                                        >  4631  
                                                                                        >  4632  BOOL GetCharWidthFloatA(HDC, UINT, UINT, PFLOAT);
                                                                                        >  4633  
                                                                                        >  4634  BOOL GetCharWidthFloatW(HDC, UINT, UINT, PFLOAT);
                                                                                        >  4635  
                                                                                        >  4636  int GetClipBox(HDC, LPRECT);
                                                                                        >  4637  
                                                                                        >  4638  int GetClipRgn(HDC, HRGN);
                                                                                        >  4639  
                                                                                        >  4640  BOOL GetColorAdjustment(HDC, LPCOLORADJUSTMENT);
                                                                                        >  4641  
                                                                                        >  4642  HANDLE GetColorSpace(HDC);
                                                                                        >  4643  
                                                                                        >  4644  HGDIOBJ GetCurrentObject(HDC, UINT);
                                                                                        >  4645  
                                                                                        >  4646  BOOL GetCurrentPositionEx(HDC, LPPOINT);
                                                                                        >  4647  
                                                                                        >  4648  HCURSOR GetCursor();
                                                                                        >  4649  
                                                                                        >  4650  BOOL GetDCOrgEx(HDC, LPPOINT);
                                                                                        >  4651  
                                                                                        >  4652  int GetDeviceCaps(HDC, int);
                                                                                        >  4653  
                                                                                        >  4654  BOOL GetDeviceGammaRamp(HDC, PVOID);
                                                                                        >  4655  
                                                                                        >  4656  UINT GetDIBColorTable(HDC, UINT, UINT, RGBQUAD*);
                                                                                        >  4657  
                                                                                        >  4658  int GetDIBits(HDC, HBITMAP, UINT, UINT, PVOID, LPBITMAPINFO, UINT);
                                                                                        >  4659  
                                                                                        >  4660  HENHMETAFILE GetEnhMetaFileA(LPCSTR);
                                                                                        >  4661  
                                                                                        >  4662  HENHMETAFILE GetEnhMetaFileW(LPCWSTR);
                                                                                        >  4663  
                                                                                        >  4664  UINT GetEnhMetaFileBits(HENHMETAFILE, UINT, LPBYTE);
                                                                                        >  4665  
                                                                                        >  4666  UINT GetEnhMetaFileDescriptionA(HENHMETAFILE, UINT, LPSTR);
                                                                                        >  4667  
                                                                                        >  4668  UINT GetEnhMetaFileDescriptionW(HENHMETAFILE, UINT, LPWSTR);
                                                                                        >  4669  
                                                                                        >  4670  UINT GetEnhMetaFileHeader(HENHMETAFILE, UINT, LPENHMETAHEADER);
                                                                                        >  4671  
                                                                                        >  4672  UINT GetEnhMetaFilePaletteEntries(HENHMETAFILE, UINT, LPPALETTEENTRY);
                                                                                        >  4673  
                                                                                        >  4674  UINT GetEnhMetaFilePixelFormat(HENHMETAFILE, DWORD, CPtr!(PIXELFORMATDESCRIPTOR)
                                                                                        >  4675  
                                                                                        >  4676  DWORD GetFontData(HDC, DWORD, DWORD, PVOID, DWORD);
                                                                                        >  4677  
                                                                                        >  4678  DWORD GetFontLanguageInfo(HDC);
                                                                                        >  4679  
                                                                                        >  4680  DWORD GetGlyphOutlineA(HDC, UINT, UINT, LPGLYPHMETRICS, DWORD, PVOID, CPtr!(MAT2
                                                                                        >  4681  
                                                                                        >  4682  DWORD GetGlyphOutlineW(HDC, UINT, UINT, LPGLYPHMETRICS, DWORD, PVOID, CPtr!(MAT2
                                                                                        >  4683  
                                                                                        >  4684  int GetGraphicsMode(HDC);
                                                                                        >  4685  
                                                                                        >  4686  BOOL GetICMProfileA(HDC, DWORD, LPSTR);
                                                                                        >  4687  
                                                                                        >  4688  BOOL GetICMProfileW(HDC, DWORD, LPWSTR);
                                                                                        >  4689  
                                                                                        >  4690  DWORD GetKerningPairsA(HDC, DWORD, LPKERNINGPAIR);
                                                                                        >  4691  
                                                                                        >  4692  DWORD GetKerningPairsW(HDC, DWORD, LPKERNINGPAIR);
                                                                                        >  4693  
                                                                                        >  4694  BOOL GetLogColorSpaceA(HCOLORSPACE, LPLOGCOLORSPACEA, DWORD);
                                                                                        >  4695  
                                                                                        >  4696  BOOL GetLogColorSpaceW(HCOLORSPACE, LPLOGCOLORSPACEW, DWORD);
                                                                                        >  4697  
                                                                                        >  4698  int GetMapMode(HDC);
                                                                                        >  4699  
                                                                                        >  4700  HMETAFILE GetMetaFileA(LPCSTR);
                                                                                        >  4701  
                                                                                        >  4702  HMETAFILE GetMetaFileW(LPCWSTR);
                                                                                        >  4703  
                                                                                        >  4704  UINT GetMetaFileBitsEx(HMETAFILE, UINT, PVOID);
                                                                                        >  4705  
                                                                                        >  4706  int GetMetaRgn(HDC, HRGN);
                                                                                        >  4707  
                                                                                        >  4708  BOOL GetMiterLimit(HDC, PFLOAT);
                                                                                        >  4709  
                                                                                        >  4710  COLORREF GetNearestColor(HDC, COLORREF);
                                                                                        >  4711  
                                                                                        >  4712  UINT GetNearestPaletteIndex(HPALETTE, COLORREF);
                                                                                        >  4713  
                                                                                        >  4714  int GetObjectA(HGDIOBJ, int, PVOID);
                                                                                        >  4715  
                                                                                        >  4716  int GetObjectW(HGDIOBJ, int, PVOID);
                                                                                        >  4717  
                                                                                        >  4718  DWORD GetObjectType(HGDIOBJ);
                                                                                        >  4719  
                                                                                        >  4720  UINT GetOutlineTextMetricsA(HDC, UINT, LPOUTLINETEXTMETRICA);
                                                                                        >  4721  
                                                                                        >  4722  UINT GetOutlineTextMetricsW(HDC, UINT, LPOUTLINETEXTMETRICW);
                                                                                        >  4723  
                                                                                        >  4724  UINT GetPaletteEntries(HPALETTE, UINT, UINT, LPPALETTEENTRY);
                                                                                        >  4725  
                                                                                        >  4726  int GetPath(HDC, LPPOINT, PBYTE, int);
                                                                                        >  4727  
                                                                                        >  4728  COLORREF GetPixel(HDC, int, int);
                                                                                        >  4729  
                                                                                        >  4730  int GetPixelFormat(HDC);
                                                                                        >  4731  
                                                                                        >  4732  int GetPolyFillMode(HDC);
                                                                                        >  4733  
                                                                                        >  4734  BOOL GetRasterizerCaps(LPRASTERIZER_STATUS, UINT);
                                                                                        >  4735  
                                                                                        >  4736  int GetRandomRgn(HDC, HRGN, INT);
                                                                                        >  4737  
                                                                                        >  4738  DWORD GetRegionData(HRGN, DWORD, LPRGNDATA);
                                                                                        >  4739  
                                                                                        >  4740  int GetRgnBox(HRGN, LPRECT);
                                                                                        >  4741  
                                                                                        >  4742  int GetROP2(HDC);
                                                                                        >  4743  
                                                                                        >  4744  HGDIOBJ GetStockObject(int);
                                                                                        >  4745  
                                                                                        >  4746  int GetStretchBltMode(HDC);
                                                                                        >  4747  
                                                                                        >  4748  UINT GetSystemPaletteEntries(HDC, UINT, UINT, LPPALETTEENTRY);
                                                                                        >  4749  
                                                                                        >  4750  UINT GetSystemPaletteUse(HDC);
                                                                                        >  4751  
                                                                                        >  4752  UINT GetTextAlign(HDC);
                                                                                        >  4753  
                                                                                        >  4754  int GetTextCharacterExtra(HDC);
                                                                                        >  4755  
                                                                                        >  4756  int GetTextCharset(HDC);
                                                                                        >  4757  
                                                                                        >  4758  int GetTextCharsetInfo(HDC, LPFONTSIGNATURE, DWORD);
                                                                                        >  4759  
                                                                                        >  4760  COLORREF GetTextColor(HDC);
                                                                                        >  4761  
                                                                                        >  4762  BOOL GetTextExtentExPointA(HDC, LPCSTR, int, int, LPINT, LPINT, LPSIZE);
                                                                                        >  4763  
                                                                                        >  4764  BOOL GetTextExtentExPointW(HDC, LPCWSTR, int, int, LPINT, LPINT, LPSIZE);
                                                                                        >  4765  
                                                                                        >  4766  BOOL GetTextExtentPointA(HDC, LPCSTR, int, LPSIZE);
                                                                                        >  4767  
                                                                                        >  4768  BOOL GetTextExtentPointW(HDC, LPCWSTR, int, LPSIZE);
                                                                                        >  4769  
                                                                                        >  4770  BOOL GetTextExtentPoint32A(HDC, LPCSTR, int, LPSIZE);
                                                                                        >  4771  
                                                                                        >  4772  BOOL GetTextExtentPoint32W(HDC, LPCWSTR, int, LPSIZE);
                                                                                        >  4773  
                                                                                        >  4774  int GetTextFaceA(HDC, int, LPSTR);
                                                                                        >  4775  
                                                                                        >  4776  int GetTextFaceW(HDC, int, LPWSTR);
                                                                                        >  4777  
                                                                                        >  4778  BOOL GetTextMetricsA(HDC, LPTEXTMETRICA);
                                                                                        >  4779  
                                                                                        >  4780  BOOL GetTextMetricsW(HDC, LPTEXTMETRICW);
                                                                                        >  4781  
                                                                                        >  4782  BOOL GetViewportExtEx(HDC, LPSIZE);
                                                                                        >  4783  
                                                                                        >  4784  BOOL GetViewportOrgEx(HDC, LPPOINT);
                                                                                        >  4785  
                                                                                        >  4786  BOOL GetWindowExtEx(HDC, LPSIZE);
                                                                                        >  4787  
                                                                                        >  4788  BOOL GetWindowOrgEx(HDC, LPPOINT);
                                                                                        >  4789  
                                                                                        >  4790  UINT GetWinMetaFileBits(HENHMETAFILE, UINT, LPBYTE, INT, HDC);
                                                                                        >  4791  
                                                                                        >  4792  BOOL GetWorldTransform(HDC, LPXFORM);
                                                                                        >  4793  
                                                                                        >  4794  int IntersectClipRect(HDC, int, int, int, int);
                                                                                        >  4795  
                                                                                        >  4796  BOOL InvertRgn(HDC, HRGN);
                                                                                        >  4797  
                                                                                        >  4798  BOOL LineDDA(int, int, int, int, LINEDDAPROC, LPARAM);
                                                                                        >  4799  
                                                                                        >  4800  BOOL LineTo(HDC, int, int);
                                                                                        >  4801  
                                                                                        >  4802  BOOL LPtoDP(HDC, LPPOINT, int);
                                                                                        >  4803  
                                                                                        >  4804  BOOL MaskBlt(HDC, int, int, int, int, HDC, int, int, HBITMAP, int, int, DWORD);
                                                                                        >  4805  
                                                                                        >  4806  BOOL ModifyWorldTransform(HDC, CPtr!(XFORM), DWORD);
                                                                                        >  4807  
                                                                                        >  4808  BOOL MoveToEx(HDC, int, int, LPPOINT);
                                                                                        >  4809  
                                                                                        >  4810  int OffsetClipRgn(HDC, int, int);
                                                                                        >  4811  
                                                                                        >  4812  int OffsetRgn(HRGN, int, int);
                                                                                        >  4813  
                                                                                        >  4814  BOOL OffsetViewportOrgEx(HDC, int, int, LPPOINT);
                                                                                        >  4815  
                                                                                        >  4816  BOOL OffsetWindowOrgEx(HDC, int, int, LPPOINT);
                                                                                        >  4817  
                                                                                        >  4818  BOOL PaintRgn(HDC, HRGN);
                                                                                        >  4819  
                                                                                        >  4820  BOOL PatBlt(HDC, int, int, int, int, DWORD);
                                                                                        >  4821  
                                                                                        >  4822  HRGN PathToRegion(HDC);
                                                                                        >  4823  
                                                                                        >  4824  BOOL Pie(HDC, int, int, int, int, int, int, int, int);
                                                                                        >  4825  
                                                                                        >  4826  BOOL PlayEnhMetaFile(HDC, HENHMETAFILE, LPCRECT);
                                                                                        >  4827  
                                                                                        >  4828  BOOL PlayEnhMetaFileRecord(HDC, LPHANDLETABLE, CPtr!(ENHMETARECORD), UINT);
                                                                                        >  4829  
                                                                                        >  4830  BOOL PlayMetaFile(HDC, HMETAFILE);
                                                                                        >  4831  
                                                                                        >  4832  BOOL PlayMetaFileRecord(HDC, LPHANDLETABLE, LPMETARECORD, UINT);
                                                                                        >  4833  
                                                                                        >  4834  BOOL PlgBlt(HDC, CPtr!(POINT), HDC, int, int, int, int, HBITMAP, int, int);
                                                                                        >  4835  
                                                                                        >  4836  BOOL PolyBezier(HDC, CPtr!(POINT), DWORD);
                                                                                        >  4837  
                                                                                        >  4838  BOOL PolyBezierTo(HDC, CPtr!(POINT), DWORD);
                                                                                        >  4839  
                                                                                        >  4840  BOOL PolyDraw(HDC, CPtr!(POINT), CPtr!(BYTE), int);
                                                                                        >  4841  
                                                                                        >  4842  BOOL Polygon(HDC, CPtr!(POINT), int);
                                                                                        >  4843  
                                                                                        >  4844  BOOL Polyline(HDC, CPtr!(POINT), int);
                                                                                        >  4845  
                                                                                        >  4846  BOOL PolylineTo(HDC, CPtr!(POINT), DWORD);
                                                                                        >  4847  
                                                                                        >  4848  BOOL PolyPolygon(HDC, CPtr!(POINT), CPtr!(INT), int);
                                                                                        >  4849  
                                                                                        >  4850  BOOL PolyPolyline(HDC, CPtr!(POINT), CPtr!(DWORD), DWORD);
                                                                                        >  4851  
                                                                                        >  4852  BOOL PolyTextOutA(HDC, CPtr!(POLYTEXTA), int);
                                                                                        >  4853  
                                                                                        >  4854  BOOL PolyTextOutW(HDC, CPtr!(POLYTEXTW), int);
                                                                                        >  4855  
                                                                                        >  4856  BOOL PtInRegion(HRGN, int, int);
                                                                                        >  4857  
                                                                                        >  4858  BOOL PtVisible(HDC, int, int);
                                                                                        >  4859  
                                                                                        >  4860  UINT RealizePalette(HDC);
                                                                                        >  4861  
                                                                                        >  4862  BOOL Rectangle(HDC, int, int, int, int);
                                                                                        >  4863  
                                                                                        >  4864  BOOL RectInRegion(HRGN, LPCRECT);
                                                                                        >  4865  
                                                                                        >  4866  BOOL RectVisible(HDC, LPCRECT);
                                                                                        >  4867  
                                                                                        >  4868  BOOL RemoveFontResourceA(LPCSTR);
                                                                                        >  4869  
                                                                                        >  4870  BOOL RemoveFontResourceW(LPCWSTR);
                                                                                        >  4871  
                                                                                        >  4872  HDC ResetDCA(HDC, CPtr!(DEVMODEA));
                                                                                        >  4873  
                                                                                        >  4874  HDC ResetDCW(HDC, CPtr!(DEVMODEW));
                                                                                        >  4875  
                                                                                        >  4876  BOOL ResizePalette(HPALETTE, UINT);
                                                                                        >  4877  
                                                                                        >  4878  BOOL RestoreDC(HDC, int);
                                                                                        >  4879  
                                                                                        >  4880  BOOL RoundRect(HDC, int, int, int, int, int, int);
                                                                                        >  4881  
                                                                                        >  4882  int SaveDC(HDC);
                                                                                        >  4883  
                                                                                        >  4884  BOOL ScaleViewportExtEx(HDC, int, int, int, int, LPSIZE);
                                                                                        >  4885  
                                                                                        >  4886  BOOL ScaleWindowExtEx(HDC, int, int, int, int, LPSIZE);
                                                                                        >  4887  
                                                                                        >  4888  BOOL SelectClipPath(HDC, int);
                                                                                        >  4889  
                                                                                        >  4890  int SelectClipRgn(HDC, HRGN);
                                                                                        >  4891  
                                                                                        >  4892  HGDIOBJ SelectObject(HDC, HGDIOBJ);
                                                                                        >  4893  
                                                                                        >  4894  HPALETTE SelectPalette(HDC, HPALETTE, BOOL);
                                                                                        >  4895  
                                                                                        >  4896  int SetAbortProc(HDC, ABORTPROC);
                                                                                        >  4897  
                                                                                        >  4898  int SetArcDirection(HDC, int);
                                                                                        >  4899  
                                                                                        >  4900  LONG SetBitmapBits(HBITMAP, DWORD, PCVOID);
                                                                                        >  4901  
                                                                                        >  4902  BOOL SetBitmapDimensionEx(HBITMAP, int, int, LPSIZE);
                                                                                        >  4903  
                                                                                        >  4904  COLORREF SetBkColor(HDC, COLORREF);
                                                                                        >  4905  
                                                                                        >  4906  int SetBkMode(HDC, int);
                                                                                        >  4907  
                                                                                        >  4908  UINT SetBoundsRect(HDC, LPCRECT, UINT);
                                                                                        >  4909  
                                                                                        >  4910  BOOL SetBrushOrgEx(HDC, int, int, LPPOINT);
                                                                                        >  4911  
                                                                                        >  4912  BOOL SetColorAdjustment(HDC, CPtr!(COLORADJUSTMENT));
                                                                                        >  4913  
                                                                                        >  4914  BOOL SetColorSpace(HDC, HCOLORSPACE);
                                                                                        >  4915  
                                                                                        >  4916  BOOL SetDeviceGammaRamp(HDC, PVOID);
                                                                                        >  4917  
                                                                                        >  4918  UINT SetDIBColorTable(HDC, UINT, UINT, CPtr!(RGBQUAD));
                                                                                        >  4919  
                                                                                        >  4920  int SetDIBits(HDC, HBITMAP, UINT, UINT, PCVOID, CPtr!(BITMAPINFO), UINT);
                                                                                        >  4921  
                                                                                        >  4922  int SetDIBitsToDevice(HDC, int, int, DWORD, DWORD, int, int, UINT, UINT, PCVOID,
                                                                                        >  4923  
                                                                                        >  4924  HENHMETAFILE SetEnhMetaFileBits(UINT, CPtr!(BYTE));
                                                                                        >  4925  
                                                                                        >  4926  int SetGraphicsMode(HDC, int);
                                                                                        >  4927  
                                                                                        >  4928  int SetICMMode(HDC, int);
                                                                                        >  4929  
                                                                                        >  4930  BOOL SetICMProfileA(HDC, LPSTR);
                                                                                        >  4931  
                                                                                        >  4932  BOOL SetICMProfileW(HDC, LPWSTR);
                                                                                        >  4933  
                                                                                        >  4934  int SetMapMode(HDC, int);
                                                                                        >  4935  
                                                                                        >  4936  static
                                                                                        >  4937  
                                                                                        >  4938  if (WINVER >= 0x0500)
                                                                                        >  4939  {
                                                                                        >  4940      DWORD SetLayout(HDC hdc, DWORD l);
                                                                                        >  4941  
                                                                                        >  4942      DWORD GetLayout(HDC hdc);
 3427  }                                                                                   4943  }
 3428  alias _BLENDFUNCTION BLENDFUNCTION;                                              <
                                                                                        >  4944  
 3429  alias _BLENDFUNCTION* PBLENDFUNCTION;                                            |  4945  DWORD SetMapperFlags(HDC, DWORD);
 3430                                                                                   |  4946  
 3431  enum : uint { AC_SRC_OVER = 0x00 }                                               |  4947  HMETAFILE SetMetaFileBitsEx(UINT, CPtr!(BYTE));
 3432                                                                                   |  4948  
 3433  enum : uint { AC_SRC_ALPHA = 0x01 }                                              |  4949  int SetMetaRgn(HDC);
 3434                                                                                   |  4950  
 3435  extern(Windows) export BOOL AlphaBlend(HDC, int, int, int, int, HDC, int, int, i |  4951  BOOL SetMiterLimit(HDC, FLOAT, PFLOAT);
 3436                                                                                   |  4952  
 3437  extern(Windows) export BOOL TransparentBlt(HDC, int, int, int, int, HDC, int, in |  4953  UINT SetPaletteEntries(HPALETTE, UINT, UINT, CPtr!(PALETTEENTRY));
 3438                                                                                   |  4954  
 3439  enum : uint { GRADIENT_FILL_RECT_H = 0x00000000 }                                |  4955  COLORREF SetPixel(HDC, int, int, COLORREF);
 3440  enum : uint { GRADIENT_FILL_RECT_V = 0x00000001 }                                <
                                                                                        >  4956  
 3441  enum : uint { GRADIENT_FILL_TRIANGLE = 0x00000002 }                              |  4957  BOOL SetPixelFormat(HDC, int, CPtr!(PIXELFORMATDESCRIPTOR));
 3442  enum : uint { GRADIENT_FILL_OP_FLAG = 0x000000ff }                               <
 3443                                                                                   |  4958  
 3444  extern(Windows) export BOOL GradientFill(HDC, PTRIVERTEX, ULONG, PVOID, ULONG, U <
                                                                                        >  4959  BOOL SetPixelV(HDC, int, int, COLORREF);
 3445                                                                                   |  4960  
 3446  // #endif                                                                        <
                                                                                        >  4961  int SetPolyFillMode(HDC, int);
 3447                                                                                   |  4962  
 3448  // #ifndef NOMETAFILE                                                            <
                                                                                        >  4963  BOOL SetRectRgn(HRGN, int, int, int, int);
 3449                                                                                   |  4964  
 3450  extern(Windows) export BOOL PlayMetaFileRecord(HDC, LPHANDLETABLE, LPMETARECORD, <
                                                                                        >  4965  int SetROP2(HDC, int);
                                                                                        >  4966  
 3451  extern(Windows) alias int function(  HDC,  HANDLETABLE *,  METARECORD *,  int,   |  4967  int SetStretchBltMode(HDC, int);
 3452  extern(Windows) export BOOL EnumMetaFile(HDC, HMETAFILE, MFENUMPROC, LPARAM);    <
 3453                                                                                   |  4968  
 3454  extern(Windows) alias int function(HDC, HANDLETABLE *,  ENHMETARECORD *, int, LP <
                                                                                        >  4969  UINT SetSystemPaletteUse(HDC, UINT);
 3455                                                                                   |  4970  
 3456  extern(Windows) export HENHMETAFILE CloseEnhMetaFile(HDC);                       <
                                                                                        >  4971  UINT SetTextAlign(HDC, UINT);
                                                                                        >  4972  
 3457  extern(Windows) export HENHMETAFILE CopyEnhMetaFileA(HENHMETAFILE, LPCSTR);      |  4973  int SetTextCharacterExtra(HDC, int);
 3458  extern(Windows) export HENHMETAFILE CopyEnhMetaFileW(HENHMETAFILE, LPCWSTR);     <
                                                                                        >  4974  
 3459  // #ifdef UNICODE                                                                |  4975  COLORREF SetTextColor(HDC, COLORREF);
 3460  alias CopyEnhMetaFileW CopyEnhMetaFile;                                          <
                                                                                        >  4976  
 3461  // #else                                                                         |  4977  BOOL SetTextJustification(HDC, int, int);
 3462  // #...                                                                          <
                                                                                        >  4978  
 3463  // #endif // !UNICODE                                                            |  4979  BOOL SetViewportExtEx(HDC, int, int, LPSIZE);
 3464  extern(Windows) export HDC CreateEnhMetaFileA(HDC, LPCSTR, RECT *, LPCSTR);      <
                                                                                        >  4980  
 3465  extern(Windows) export HDC CreateEnhMetaFileW(HDC, LPCWSTR, RECT *, LPCWSTR);    |  4981  BOOL SetViewportOrgEx(HDC, int, int, LPPOINT);
 3466  // #ifdef UNICODE                                                                <
                                                                                        >  4982  
 3467  alias CreateEnhMetaFileW CreateEnhMetaFile;                                      |  4983  BOOL SetWindowExtEx(HDC, int, int, LPSIZE);
 3468  // #else                                                                         <
                                                                                        >  4984  
 3469  // #...                                                                          |  4985  BOOL SetWindowOrgEx(HDC, int, int, LPPOINT);
 3470  // #endif // !UNICODE                                                            <
                                                                                        >  4986  
 3471  extern(Windows) export BOOL DeleteEnhMetaFile(HENHMETAFILE);                     |  4987  HENHMETAFILE SetWinMetaFileBits(UINT, CPtr!(BYTE), HDC, CPtr!(METAFILEPICT));
 3472  extern(Windows) export BOOL EnumEnhMetaFile(HDC, HENHMETAFILE, ENHMFENUMPROC,    <
                                                                                        >  4988  
 3473    LPVOID, RECT *);                                                               |  4989  BOOL SetWorldTransform(HDC, CPtr!(XFORM));
 3474  extern(Windows) export HENHMETAFILE GetEnhMetaFileA(LPCSTR);                     <
                                                                                        >  4990  
 3475  extern(Windows) export HENHMETAFILE GetEnhMetaFileW(LPCWSTR);                    |  4991  int StartDocA(HDC, CPtr!(DOCINFOA));
 3476  // #ifdef UNICODE                                                                <
                                                                                        >  4992  
 3477  alias GetEnhMetaFileW GetEnhMetaFile;                                            |  4993  int StartDocW(HDC, CPtr!(DOCINFOW));
 3478  // #else                                                                         <
                                                                                        >  4994  
 3479  // #...                                                                          |  4995  int StartPage(HDC);
 3480  // #endif // !UNICODE                                                            <
                                                                                        >  4996  
 3481  extern(Windows) export UINT GetEnhMetaFileBits(HENHMETAFILE, UINT, LPBYTE);      |  4997  BOOL StretchBlt(HDC, int, int, int, int, HDC, int, int, int, int, DWORD);
 3482  extern(Windows) export UINT GetEnhMetaFileDescriptionA(HENHMETAFILE, UINT, LPSTR <
                                                                                        >  4998  
 3483  extern(Windows) export UINT GetEnhMetaFileDescriptionW(HENHMETAFILE, UINT, LPWST |  4999  int StretchDIBits(HDC, int, int, int, int, int, int, int, int, CPtr!(VOID), CPtr
 3484  // #ifdef UNICODE                                                                <
                                                                                        >  5000  
 3485  alias GetEnhMetaFileDescriptionW GetEnhMetaFileDescription;                      |  5001  BOOL StrokeAndFillPath(HDC);
 3486  // #else                                                                         <
                                                                                        >  5002  
 3487  // #...                                                                          |  5003  BOOL StrokePath(HDC);
 3488  // #endif // !UNICODE                                                            <
                                                                                        >  5004  
 3489  extern(Windows) export UINT GetEnhMetaFileHeader(HENHMETAFILE, UINT, LPENHMETAHE |  5005  BOOL SwapBuffers(HDC);
 3490  extern(Windows) export UINT GetEnhMetaFilePaletteEntries(HENHMETAFILE, UINT, LPP <
                                                                                        >  5006  
 3491  extern(Windows) export UINT GetEnhMetaFilePixelFormat(HENHMETAFILE, UINT,        |  5007  BOOL TextOutA(HDC, int, int, LPCSTR, int);
 3492    PIXELFORMATDESCRIPTOR *);                                                      <
                                                                                        >  5008  
 3493  extern(Windows) export UINT GetWinMetaFileBits(HENHMETAFILE, UINT, LPBYTE, INT,  |  5009  BOOL TextOutW(HDC, int, int, LPCWSTR, int);
 3494  extern(Windows) export BOOL PlayEnhMetaFile(HDC, HENHMETAFILE, RECT *);          <
                                                                                        >  5010  
 3495  extern(Windows) export BOOL PlayEnhMetaFileRecord(HDC, LPHANDLETABLE, ENHMETAREC |  5011  BOOL TranslateCharsetInfo(PDWORD, LPCHARSETINFO, DWORD);
 3496  extern(Windows) export HENHMETAFILE SetEnhMetaFileBits(UINT, BYTE *);            <
                                                                                        >  5012  
 3497  extern(Windows) export HENHMETAFILE SetWinMetaFileBits(UINT, BYTE *, HDC, METAFI |  5013  BOOL UnrealizeObject(HGDIOBJ);
 3498  extern(Windows) export BOOL GdiComment(HDC, UINT, BYTE *);                       <
 3499                                                                                   |  5014  
 3500  // #endif  /* NOMETAFILE */                                                      <
                                                                                        >  5015  BOOL UpdateColors(HDC);
 3501                                                                                   |  5016  
 3502  // #ifndef NOTEXTMETRIC                                                          <
                                                                                        >  5017  BOOL UpdateICMRegKeyA(DWORD, DWORD, LPSTR, UINT);
 3503                                                                                   |  5018  
 3504  extern(Windows) export BOOL GetTextMetricsA(HDC, LPTEXTMETRICA);                 <
                                                                                        >  5019  BOOL UpdateICMRegKeyW(DWORD, DWORD, LPWSTR, UINT);
                                                                                        >  5020  
 3505  extern(Windows) export BOOL GetTextMetricsW(HDC, LPTEXTMETRICW);                 |  5021  BOOL WidenPath(HDC);
 3506  // #ifdef UNICODE                                                                <
                                                                                        >  5022  
 3507  alias GetTextMetricsW GetTextMetrics;                                            |  5023  BOOL wglCopyContext(HGLRC, HGLRC, UINT);
 3508  // #else                                                                         <
                                                                                        >  5024  
 3509  // #...                                                                          |  5025  HGLRC wglCreateContext(HDC);
 3510  // #endif // !UNICODE                                                            <
 3511                                                                                   |  5026  
 3512  // #endif                                                                        <
                                                                                        >  5027  HGLRC wglCreateLayerContext(HDC, int);
 3513                                                                                   |  5028  
                                                                                        >  5029  BOOL wglDeleteContext(HGLRC);
                                                                                        >  5030  
                                                                                        >  5031  BOOL wglDescribeLayerPlane(HDC, int, int, UINT, LPLAYERPLANEDESCRIPTOR);
                                                                                        >  5032  
                                                                                        >  5033  HGLRC wglGetCurrentContext();
                                                                                        >  5034  
                                                                                        >  5035  HDC wglGetCurrentDC();
                                                                                        >  5036  
                                                                                        >  5037  int wglGetLayerPaletteEntries(HDC, int, int, int, COLORREF*);
                                                                                        >  5038  
                                                                                        >  5039  PROC wglGetProcAddress(LPCSTR);
                                                                                        >  5040  
                                                                                        >  5041  BOOL wglMakeCurrent(HDC, HGLRC);
                                                                                        >  5042  
                                                                                        >  5043  BOOL wglRealizeLayerPalette(HDC, int, BOOL);
                                                                                        >  5044  
                                                                                        >  5045  int wglSetLayerPaletteEntries(HDC, int, int, int, CPtr!(COLORREF));
                                                                                        >  5046  
                                                                                        >  5047  BOOL wglShareLists(HGLRC, HGLRC);
                                                                                        >  5048  
                                                                                        >  5049  BOOL wglSwapLayerBuffers(HDC, UINT);
                                                                                        >  5050  
                                                                                        >  5051  BOOL wglUseFontBitmapsA(HDC, DWORD, DWORD, DWORD);
                                                                                        >  5052  
                                                                                        >  5053  BOOL wglUseFontBitmapsW(HDC, DWORD, DWORD, DWORD);
                                                                                        >  5054  
                                                                                        >  5055  BOOL wglUseFontOutlinesA(HDC, DWORD, DWORD, DWORD, FLOAT, FLOAT, int, LPGLYPHMET
                                                                                        >  5056  
                                                                                        >  5057  BOOL wglUseFontOutlinesW(HDC, DWORD, DWORD, DWORD, FLOAT, FLOAT, int, LPGLYPHMET
                                                                                        >  5058  
                                                                                        >  5059  static
                                                                                        >  5060  
                                                                                        >  5061  if (WINVER >= 0x0500)
                                                                                        >  5062  {
                                                                                        >  5063      alias WGLSWAP*PWGLSWAP;
 3514  struct tagDIBSECTION {                                                           |  5064      struct WGLSWAP
 3515    BITMAP dsBm;                                                                   <
 3516    BITMAPINFOHEADER dsBmih;                                                       <
 3517    DWORD dsBitfields[3];                                                          <
 3518    HANDLE dshSection;                                                             <
 3519    DWORD dsOffset;                                                                <
                                                                                        >  5065      {
                                                                                        >  5066          HDC hdc;
                                                                                        >  5067          UINT uiFlags;
                                                                                        >  5068      }
                                                                                        >  5069      const WGL_SWAPMULTIPLE_MAX = 16;
                                                                                        >  5070      DWORD  wglSwapMultipleBuffers(UINT, WGLSWAP*);
 3520  }                                                                                   5071  }
 3521  alias tagDIBSECTION DIBSECTION;                                                  <
 3522  alias tagDIBSECTION* LPDIBSECTION;                                               <
 3523  alias tagDIBSECTION* PDIBSECTION;                                                <
 3524                                                                                   |  5072  
 3525  extern(Windows) export BOOL AngleArc(HDC, int, int, DWORD, FLOAT, FLOAT);        <
 3526  extern(Windows) export BOOL PolyPolyline(HDC, POINT *, DWORD *, DWORD);          <
 3527  extern(Windows) export BOOL GetWorldTransform(HDC, LPXFORM);                     <
 3528  extern(Windows) export BOOL SetWorldTransform(HDC, XFORM *);                     <
 3529  extern(Windows) export BOOL ModifyWorldTransform(HDC, XFORM *, DWORD);           <
 3530  extern(Windows) export BOOL CombineTransform(LPXFORM, XFORM *, XFORM *);         <
 3531  extern(Windows) export HBITMAP CreateDIBSection(HDC, BITMAPINFO *, UINT, VOID ** <
 3532  extern(Windows) export UINT GetDIBColorTable(HDC, UINT, UINT, RGBQUAD *);        <
 3533  extern(Windows) export UINT SetDIBColorTable(HDC, UINT, UINT, RGBQUAD *);        <
                                                                                        >  5073  static
 3534                                                                                   |  5074  
 3535  enum : uint { CA_NEGATIVE = 0x0001 }                                             <
 3536  enum : uint { CA_LOG_FILTER = 0x0002 }                                           <
                                                                                        >  5075  if (WINVER >= 0x0500)
 3537                                                                                   |  5076  {
 3538  enum : uint { ILLUMINANT_DEVICE_DEFAULT = 0 }                                    <
 3539  enum : uint { ILLUMINANT_A = 1 }                                                 <
 3540  enum : uint { ILLUMINANT_B = 2 }                                                 <
 3541  enum : uint { ILLUMINANT_C = 3 }                                                 <
 3542  enum : uint { ILLUMINANT_D50 = 4 }                                               <
 3543  enum : uint { ILLUMINANT_D55 = 5 }                                               <
 3544  enum : uint { ILLUMINANT_D65 = 6 }                                               <
 3545  enum : uint { ILLUMINANT_D75 = 7 }                                               <
 3546  enum : uint { ILLUMINANT_F2 = 8 }                                                <
 3547  alias ILLUMINANT_F2 ILLUMINANT_MAX_INDEX;                                        <
                                                                                        >  5077      BOOL GdiAlphaBlend(HDC, int, int, int, int, HDC, int, int, int, int, BLENDFU
 3548                                                                                   |  5078  
 3549  alias ILLUMINANT_A ILLUMINANT_TUNGSTEN;                                          <
 3550  alias ILLUMINANT_C ILLUMINANT_DAYLIGHT;                                          <
 3551  alias ILLUMINANT_F2 ILLUMINANT_FLUORESCENT;                                      <
 3552  alias ILLUMINANT_C ILLUMINANT_NTSC;                                              <
                                                                                        >  5079      BOOL GradientFill(HDC, PTRIVERTEX, ULONG, PVOID, ULONG, ULONG);
 3553                                                                                   |  5080  
 3554  enum : WORD { RGB_GAMMA_MIN = 02500 }                                            <
 3555  enum : WORD { RGB_GAMMA_MAX = 65000 }                                            <
 3556                                                                                   <
 3557  enum : WORD { REFERENCE_WHITE_MIN = 6000 }                                       <
 3558  enum : WORD { REFERENCE_WHITE_MAX = 10000 }                                      <
 3559  enum : WORD { REFERENCE_BLACK_MIN = 0 }                                          <
 3560  enum : WORD { REFERENCE_BLACK_MAX = 4000 }                                       <
 3561                                                                                   <
 3562  enum : SHORT { COLOR_ADJ_MIN = -100 }                                            <
 3563  enum : SHORT { COLOR_ADJ_MAX = 100 }                                             <
 3564                                                                                   <
 3565  struct tagCOLORADJUSTMENT {                                                      <
 3566    WORD caSize;                                                                   <
 3567    WORD caFlags;                                                                  <
 3568    WORD caIlluminantIndex;                                                        <
 3569    WORD caRedGamma;                                                               <
 3570    WORD caGreenGamma;                                                             <
 3571    WORD caBlueGamma;                                                              <
 3572    WORD caReferenceBlack;                                                         <
 3573    WORD caReferenceWhite;                                                         <
 3574    SHORT caContrast;                                                              <
 3575    SHORT caBrightness;                                                            <
 3576    SHORT caColorfulness;                                                          <
 3577    SHORT caRedGreenTint;                                                          <
                                                                                        >  5081      BOOL TransparentBlt(HDC, int, int, int, int, HDC, int, int, int, int, UINT);
 3578  }                                                                                   5082  }
 3579  alias tagCOLORADJUSTMENT COLORADJUSTMENT;                                        <
 3580  alias tagCOLORADJUSTMENT* PCOLORADJUSTMENT;                                      <
 3581  alias tagCOLORADJUSTMENT* LPCOLORADJUSTMENT;                                     <
 3582                                                                                      5083  
 3583  extern(Windows) export BOOL SetColorAdjustment(HDC, COLORADJUSTMENT *);          |  5084  static
 3584  extern(Windows) export BOOL GetColorAdjustment(HDC, LPCOLORADJUSTMENT);          <
 3585  extern(Windows) export HPALETTE CreateHalftonePalette(HDC);                      <
 3586                                                                                      5085  
 3587  // #ifdef STRICT                                                                 |  5086  if (_WIN32_WINNT >= 0x0500)
 3588  extern(Windows) alias BOOL function(  HDC,  int) ABORTPROC;                      <
                                                                                        >  5087  {
 3589  // #else                                                                         |  5088      COLORREF SetDCBrushColor(HDC, COLORREF);
 3590  // ...                                                                           <
                                                                                        >  5089  
 3591  // #endif                                                                        |  5090      COLORREF SetDCPenColor(HDC, COLORREF);
                                                                                        >  5091  
                                                                                        >  5092      HANDLE AddFontMemResourceEx(PVOID, DWORD, PVOID, DWORD*);
                                                                                        >  5093  
                                                                                        >  5094      int AddFontResourceExA(LPCSTR, DWORD, PVOID);
                                                                                        >  5095  
                                                                                        >  5096      int AddFontResourceExW(LPCWSTR, DWORD, PVOID);
                                                                                        >  5097  
                                                                                        >  5098      BOOL RemoveFontMemResourceEx(HANDLE);
                                                                                        >  5099  
                                                                                        >  5100      BOOL RemoveFontResourceExA(LPCSTR, DWORD, PVOID);
                                                                                        >  5101  
                                                                                        >  5102      BOOL RemoveFontResourceExW(LPCWSTR, DWORD, PVOID);
                                                                                        >  5103  
                                                                                        >  5104      DWORD GetFontUnicodeRanges(HDC, LPGLYPHSET);
                                                                                        >  5105  
                                                                                        >  5106      DWORD GetGlyphIndicesA(HDC, LPCSTR, int, LPWORD, DWORD);
                                                                                        >  5107  
                                                                                        >  5108      DWORD GetGlyphIndicesW(HDC, LPCWSTR, int, LPWORD, DWORD);
                                                                                        >  5109  
                                                                                        >  5110      BOOL GetTextExtentPointI(HDC, LPWORD, int, LPSIZE);
 3592                                                                                      5111  
 3593  struct _DOCINFOA {                                                               |  5112      BOOL GetTextExtentExPointI(HDC, LPWORD, int, int, LPINT, LPINT, LPSIZE);
 3594    int cbSize;                                                                    <
 3595    LPCSTR lpszDocName;                                                            <
 3596    LPCSTR lpszOutput;                                                             <
 3597  // #if (WINVER >= 0x0400)                                                        <
 3598    LPCSTR lpszDatatype;                                                           <
 3599    DWORD fwType;                                                                  <
 3600  // #endif /* WINVER */                                                           <
 3601  }                                                                                <
 3602  alias _DOCINFOA DOCINFOA;                                                        <
 3603  alias _DOCINFOA* LPDOCINFOA;                                                     <
 3604                                                                                      5113  
 3605  struct _DOCINFOW {                                                               |  5114      BOOL GetCharWidthI(HDC, UINT, UINT, LPWORD, LPINT);
 3606    int cbSize;                                                                    <
 3607    LPCWSTR lpszDocName;                                                           <
 3608    LPCWSTR lpszOutput;                                                            <
 3609  // #if (WINVER >= 0x0400)                                                        <
 3610    LPCWSTR lpszDatatype;                                                          <
 3611    DWORD fwType;                                                                  <
 3612  // #endif /* WINVER */                                                           <
 3613  }                                                                                <
 3614  alias _DOCINFOW DOCINFOW;                                                        <
 3615  alias _DOCINFOW* LPDOCINFOW;                                                     <
 3616                                                                                      5115  
 3617  // #ifdef UNICODE                                                                |  5116      BOOL GetCharABCWidthsI(HDC, UINT, UINT, LPWORD, LPABC);
 3618  alias DOCINFOW DOCINFO;                                                          <
 3619  alias LPDOCINFOW LPDOCINFO;                                                      <
 3620  // #else                                                                         <
 3621  // ...                                                                           <
 3622  // #endif // UNICODE                                                             <
 3623                                                                                   <
 3624  // #if(WINVER >= 0x0400)                                                         <
 3625  enum : uint { DI_APPBANDING = 0x00000001 }                                       <
 3626  enum : uint { DI_ROPS_READ_DESTINATION = 0x00000002 }                            <
 3627  // #endif /* WINVER >= 0x0400 */                                                 <
 3628                                                                                   <
 3629  extern(Windows) export int StartDocA(HDC, DOCINFOA *);                           <
 3630  extern(Windows) export int StartDocW(HDC, DOCINFOW *);                           <
 3631  // #ifdef UNICODE                                                                <
 3632  alias StartDocW StartDoc;                                                        <
 3633  // #else                                                                         <
 3634  // #...                                                                          <
 3635  // #endif // !UNICODE                                                            <
 3636  extern(Windows) export int EndDoc(HDC);                                          <
 3637  extern(Windows) export int StartPage(HDC);                                       <
 3638  extern(Windows) export int EndPage(HDC);                                         <
 3639  extern(Windows) export int AbortDoc(HDC);                                        <
 3640  extern(Windows) export int SetAbortProc(HDC, ABORTPROC);                         <
 3641                                                                                   <
 3642  extern(Windows) export BOOL AbortPath(HDC);                                      <
 3643  extern(Windows) export BOOL ArcTo(HDC, int, int, int, int, int, int, int, int);  <
 3644  extern(Windows) export BOOL BeginPath(HDC);                                      <
 3645  extern(Windows) export BOOL CloseFigure(HDC);                                    <
 3646  extern(Windows) export BOOL EndPath(HDC);                                        <
 3647  extern(Windows) export BOOL FillPath(HDC);                                       <
 3648  extern(Windows) export BOOL FlattenPath(HDC);                                    <
 3649  extern(Windows) export int GetPath(HDC, LPPOINT, LPBYTE, int);                   <
 3650  extern(Windows) export HRGN PathToRegion(HDC);                                   <
 3651  extern(Windows) export BOOL PolyDraw(HDC, POINT *, BYTE *, int);                 <
 3652  extern(Windows) export BOOL SelectClipPath(HDC, int);                            <
 3653  extern(Windows) export int SetArcDirection(HDC, int);                            <
 3654  extern(Windows) export BOOL SetMiterLimit(HDC, FLOAT, PFLOAT);                   <
 3655  extern(Windows) export BOOL StrokeAndFillPath(HDC);                              <
 3656  extern(Windows) export BOOL StrokePath(HDC);                                     <
 3657  extern(Windows) export BOOL WidenPath(HDC);                                      <
 3658  extern(Windows) export HPEN ExtCreatePen(DWORD, DWORD, LOGBRUSH *, DWORD, DWORD  <
 3659  extern(Windows) export BOOL GetMiterLimit(HDC, PFLOAT);                          <
 3660  extern(Windows) export int GetArcDirection(HDC);                                 <
 3661                                                                                   <
 3662  extern(Windows) export int GetObjectA(HGDIOBJ, int, LPVOID);                     <
 3663  extern(Windows) export int GetObjectW(HGDIOBJ, int, LPVOID);                     <
 3664  // #ifdef UNICODE                                                                <
 3665  alias GetObjectW GetObject;                                                      <
 3666  // #else                                                                         <
 3667  // #...                                                                          <
 3668  // #endif // !UNICODE                                                            <
 3669  extern(Windows) export BOOL MoveToEx(HDC, int, int, LPPOINT);                    <
 3670  extern(Windows) export BOOL TextOutA(HDC, int, int, LPCSTR, int);                <
 3671  extern(Windows) export BOOL TextOutW(HDC, int, int, LPCWSTR, int);               <
 3672  // #ifdef UNICODE                                                                <
 3673  alias TextOutW TextOut;                                                          <
 3674  // #else                                                                         <
 3675  // #...                                                                          <
 3676  // #endif // !UNICODE                                                            <
 3677  extern(Windows) export BOOL ExtTextOutA(HDC, int, int, UINT, RECT *, LPCSTR, UIN <
 3678  extern(Windows) export BOOL ExtTextOutW(HDC, int, int, UINT, RECT *, LPCWSTR, UI <
 3679  // #ifdef UNICODE                                                                <
 3680  alias ExtTextOutW ExtTextOut;                                                    <
 3681  // #else                                                                         <
 3682  // #...                                                                          <
 3683  // #endif // !UNICODE                                                            <
 3684  extern(Windows) export BOOL PolyTextOutA(HDC, POLYTEXTA *, int);                 <
 3685  extern(Windows) export BOOL PolyTextOutW(HDC, POLYTEXTW *, int);                 <
 3686  // #ifdef UNICODE                                                                <
 3687  alias PolyTextOutW PolyTextOut;                                                  <
 3688  // #else                                                                         <
 3689  // #...                                                                          <
 3690  // #endif // !UNICODE                                                            <
 3691                                                                                   <
 3692  extern(Windows) export HRGN CreatePolygonRgn(POINT *, int, int);                 <
 3693  extern(Windows) export BOOL DPtoLP(HDC, LPPOINT, int);                           <
 3694  extern(Windows) export BOOL LPtoDP(HDC, LPPOINT, int);                           <
 3695  extern(Windows) export BOOL Polygon(HDC, POINT *, int);                          <
 3696  extern(Windows) export BOOL Polyline(HDC, POINT *, int);                         <
 3697                                                                                   <
 3698  extern(Windows) export BOOL PolyBezier(HDC, POINT *, DWORD);                     <
 3699  extern(Windows) export BOOL PolyBezierTo(HDC, POINT *, DWORD);                   <
 3700  extern(Windows) export BOOL PolylineTo(HDC, POINT *, DWORD);                     <
 3701                                                                                   <
 3702  extern(Windows) export BOOL SetViewportExtEx(HDC, int, int, LPSIZE);             <
 3703  extern(Windows) export BOOL SetViewportOrgEx(HDC, int, int, LPPOINT);            <
 3704  extern(Windows) export BOOL SetWindowExtEx(HDC, int, int, LPSIZE);               <
 3705  extern(Windows) export BOOL SetWindowOrgEx(HDC, int, int, LPPOINT);              <
 3706                                                                                   <
 3707  extern(Windows) export BOOL OffsetViewportOrgEx(HDC, int, int, LPPOINT);         <
 3708  extern(Windows) export BOOL OffsetWindowOrgEx(HDC, int, int, LPPOINT);           <
 3709  extern(Windows) export BOOL ScaleViewportExtEx(HDC, int, int, int, int, LPSIZE); <
 3710  extern(Windows) export BOOL ScaleWindowExtEx(HDC, int, int, int, int, LPSIZE);   <
 3711  extern(Windows) export BOOL SetBitmapDimensionEx(HBITMAP, int, int, LPSIZE);     <
 3712  extern(Windows) export BOOL SetBrushOrgEx(HDC, int, int, LPPOINT);               <
 3713                                                                                   <
 3714  extern(Windows) export int GetTextFaceA(HDC, int, LPSTR);                        <
 3715  extern(Windows) export int GetTextFaceW(HDC, int, LPWSTR);                       <
 3716  // #ifdef UNICODE                                                                <
 3717  alias GetTextFaceW GetTextFace;                                                  <
 3718  // #else                                                                         <
 3719  // #...                                                                          <
 3720  // #endif // !UNICODE                                                            <
 3721                                                                                   <
 3722  enum : uint { FONTMAPPER_MAX = 10 }                                              <
 3723                                                                                   <
 3724  struct tagKERNINGPAIR {                                                          <
 3725    WORD wFirst;                                                                   <
 3726    WORD wSecond;                                                                  <
 3727    int iKernAmount;                                                               <
 3728  }                                                                                   5117  }
 3729  alias tagKERNINGPAIR KERNINGPAIR;                                                |  5118  } // extern (Windows)
 3730  alias tagKERNINGPAIR* LPKERNINGPAIR;                                             <
                                                                                        >  5119  
                                                                                        >  5120  version (Unicode)
                                                                                        >  5121  {
                                                                                        >  5122      alias WCHAR BCHAR;
                                                                                        >  5123      alias DOCINFOW DOCINFO;
                                                                                        >  5124      alias LOGFONTW LOGFONT;
 3731                                                                                      5125  
 3732  extern(Windows) export DWORD GetKerningPairsA(HDC, DWORD, LPKERNINGPAIR);        |  5126      alias TEXTMETRICW TEXTMETRIC;
 3733  extern(Windows) export DWORD GetKerningPairsW(HDC, DWORD, LPKERNINGPAIR);        |  5127      alias NPTEXTMETRICW NPTEXTMETRIC;
 3734  // #ifdef UNICODE                                                                |  5128      alias ICMENUMPROCW  ICMENUMPROC;
 3735  alias GetKerningPairsW GetKerningPairs;                                          |  5129      alias FONTENUMPROCW FONTENUMPROC;
 3736  // #else                                                                         |  5130      alias DEVMODEW DEVMODE;
 3737  // #...                                                                          <
 3738  // #endif // !UNICODE                                                            <
 3739                                                                                      5131  
 3740  extern(Windows) export BOOL GetDCOrgEx(HDC, LPPOINT);                            |  5132      alias EXTLOGFONTW  EXTLOGFONT;
 3741  extern(Windows) export BOOL FixBrushOrgEx(HDC, int, int, LPPOINT);               |  5133      alias GCP_RESULTSW GCP_RESULTS;
 3742  extern(Windows) export BOOL UnrealizeObject(HGDIOBJ);                            |  5134      alias OUTLINETEXTMETRICW OUTLINETEXTMETRIC;
 3743                                                                                   <
                                                                                        >  5135      alias POLYTEXTW POLYTEXT;
 3744  extern(Windows) export BOOL GdiFlush();                                          |  5136      alias LOGCOLORSPACEW LOGCOLORSPACE;
 3745  extern(Windows) export DWORD GdiSetBatchLimit(DWORD);                            |  5137      alias NEWTEXTMETRICW NEWTEXTMETRIC;
 3746  extern(Windows) export DWORD GdiGetBatchLimit();                                 |  5138      alias NEWTEXTMETRICEXW NEWTEXTMETRICEX;
 3747                                                                                   <
                                                                                        >  5139      alias ENUMLOGFONTW ENUMLOGFONT;
 3748  // #if(WINVER >= 0x0400)                                                         |  5140      alias ENUMLOGFONTEXW   ENUMLOGFONTEX;
                                                                                        >  5141      alias DISPLAY_DEVICEW  DISPLAY_DEVICE;
                                                                                        >  5142      alias AddFontResourceW AddFontResource;
 3749                                                                                      5143  
 3750  enum : uint { ICM_OFF = 1 }                                                      |  5144      alias CopyEnhMetaFileW CopyEnhMetaFile;
 3751  enum : uint { ICM_ON = 2 }                                                       |  5145      alias CopyMetaFileW CopyMetaFile;
 3752  enum : uint { ICM_QUERY = 3 }                                                    |  5146      alias CreateColorSpaceW CreateColorSpace;
 3753  enum : uint { ICM_DONE_OUTSIDEDC = 4 }                                           |  5147      alias CreateDCW CreateDC;
 3754                                                                                   <
                                                                                        >  5148      alias CreateEnhMetaFileW CreateEnhMetaFile;
 3755  extern(Windows) alias int function(LPSTR, LPARAM) ICMENUMPROCA;                  |  5149      alias CreateFontW CreateFont;
 3756  extern(Windows) alias int function(LPWSTR, LPARAM) ICMENUMPROCW;                 |  5150      alias CreateFontIndirectW CreateFontIndirect;
 3757  // #ifdef UNICODE                                                                |  5151      alias CreateICW CreateIC;
 3758  alias ICMENUMPROCW ICMENUMPROC;                                                  |  5152      alias CreateMetaFileW CreateMetaFile;
 3759  // #else                                                                         |  5153      alias CreateScalableFontResourceW CreateScalableFontResource;
 3760  // #...                                                                          |  5154      alias DeviceCapabilitiesW DeviceCapabilities;
 3761  // #endif // !UNICODE                                                            |  5155      alias EnumFontFamiliesW EnumFontFamilies;
                                                                                        >  5156      alias EnumFontFamiliesExW EnumFontFamiliesEx;
                                                                                        >  5157      alias EnumFontsW EnumFonts;
                                                                                        >  5158      alias EnumICMProfilesW EnumICMProfiles;
                                                                                        >  5159      alias ExtTextOutW ExtTextOut;
                                                                                        >  5160      alias GetCharABCWidthsFloatW GetCharABCWidthsFloat;
                                                                                        >  5161      alias GetCharABCWidthsW GetCharABCWidths;
                                                                                        >  5162      alias GetCharacterPlacementW GetCharacterPlacement;
                                                                                        >  5163      alias GetCharWidth32W GetCharWidth32;
                                                                                        >  5164      alias GetCharWidthFloatW GetCharWidthFloat;
                                                                                        >  5165      alias GetCharWidthW GetCharWidth;
                                                                                        >  5166      alias GetEnhMetaFileW GetEnhMetaFile;
                                                                                        >  5167      alias GetEnhMetaFileDescriptionW GetEnhMetaFileDescription;
                                                                                        >  5168      alias GetGlyphOutlineW GetGlyphOutline;
                                                                                        >  5169      alias GetICMProfileW GetICMProfile;
                                                                                        >  5170      alias GetKerningPairsW  GetKerningPairs;
                                                                                        >  5171      alias GetLogColorSpaceW GetLogColorSpace;
                                                                                        >  5172      alias GetMetaFileW GetMetaFile;
                                                                                        >  5173      alias GetObjectW GetObject;
                                                                                        >  5174      alias GetOutlineTextMetricsW GetOutlineTextMetrics;
                                                                                        >  5175      alias GetTextExtentPointW GetTextExtentPoint;
                                                                                        >  5176      alias GetTextExtentExPointW GetTextExtentExPoint;
                                                                                        >  5177      alias GetTextExtentPoint32W GetTextExtentPoint32;
                                                                                        >  5178      alias GetTextFaceW GetTextFace;
                                                                                        >  5179      alias GetTextMetricsW GetTextMetrics;
                                                                                        >  5180      alias PolyTextOutW PolyTextOut;
                                                                                        >  5181      alias RemoveFontResourceW RemoveFontResource;
 3762                                                                                      5182  
 3763  extern(Windows) export int SetICMMode(HDC, int);                                 |  5183      alias ResetDCW ResetDC;
 3764  extern(Windows) export BOOL CheckColorsInGamut(HDC, LPVOID, LPVOID, DWORD);      <
 3765  extern(Windows) export HCOLORSPACE GetColorSpace(HDC);                           <
 3766  extern(Windows) export BOOL GetLogColorSpaceA(HCOLORSPACE, LPLOGCOLORSPACEA, DWO <
 3767  extern(Windows) export BOOL GetLogColorSpaceW(HCOLORSPACE, LPLOGCOLORSPACEW, DWO <
 3768  // #ifdef UNICODE                                                                <
 3769  alias GetLogColorSpaceW GetLogColorSpace;                                        <
 3770  // #else                                                                         <
 3771  // #...                                                                          <
 3772  // #endif // !UNICODE                                                            <
 3773  extern(Windows) export HCOLORSPACE CreateColorSpaceA(LPLOGCOLORSPACEA);          <
 3774  extern(Windows) export HCOLORSPACE CreateColorSpaceW(LPLOGCOLORSPACEW);          <
 3775  // #ifdef UNICODE                                                                <
 3776  alias CreateColorSpaceW CreateColorSpace;                                        <
 3777  // #else                                                                         <
 3778  // #...                                                                          <
 3779  // #endif // !UNICODE                                                            <
 3780  extern(Windows) export HCOLORSPACE SetColorSpace(HDC, HCOLORSPACE);              <
 3781  extern(Windows) export BOOL DeleteColorSpace(HCOLORSPACE);                       <
 3782  extern(Windows) export BOOL GetICMProfileA(HDC, LPDWORD, LPSTR);                 <
 3783  extern(Windows) export BOOL GetICMProfileW(HDC, LPDWORD, LPWSTR);                <
 3784  // #ifdef UNICODE                                                                <
 3785  alias GetICMProfileW GetICMProfile;                                              <
 3786  // #else                                                                         <
 3787  // #...                                                                          <
 3788  // #endif // !UNICODE                                                            <
 3789  extern(Windows) export BOOL SetICMProfileA(HDC, LPSTR);                          <
 3790  extern(Windows) export BOOL SetICMProfileW(HDC, LPWSTR);                         <
 3791  // #ifdef UNICODE                                                                <
 3792  alias SetICMProfileW SetICMProfile;                                              |  5184      alias SetICMProfileW SetICMProfile;
 3793  // #else                                                                         <
 3794  // #...                                                                          <
 3795  // #endif // !UNICODE                                                            <
 3796  extern(Windows) export BOOL GetDeviceGammaRamp(HDC, LPVOID);                     <
 3797  extern(Windows) export BOOL SetDeviceGammaRamp(HDC, LPVOID);                     <
 3798  extern(Windows) export BOOL ColorMatchToTarget(HDC, HDC, DWORD);                 <
 3799  extern(Windows) export int EnumICMProfilesA(HDC, ICMENUMPROCA, LPARAM);          <
 3800  extern(Windows) export int EnumICMProfilesW(HDC, ICMENUMPROCW, LPARAM);          <
 3801  // #ifdef UNICODE                                                                <
 3802  alias EnumICMProfilesW EnumICMProfiles;                                          <
 3803  // #else                                                                         <
 3804  // #...                                                                          <
 3805  // #endif // !UNICODE                                                            <
 3806  extern(Windows) export BOOL UpdateICMRegKeyA(DWORD, LPSTR, LPSTR, UINT);         <
 3807  extern(Windows) export BOOL UpdateICMRegKeyW(DWORD, LPWSTR, LPWSTR, UINT);       <
 3808  // #ifdef UNICODE                                                                <
                                                                                        >  5185      alias StartDocW StartDoc;
                                                                                        >  5186      alias TextOutW  TextOut;
 3809  alias UpdateICMRegKeyW UpdateICMRegKey;                                          |  5187      alias UpdateICMRegKeyW UpdateICMRegKey;
 3810  // #else                                                                         <
 3811  // #...                                                                          <
 3812  // #endif // !UNICODE                                                            <
 3813  // #endif /* WINVER >= 0x0400 */                                                 <
 3814                                                                                   <
 3815  // #if (WINVER >= 0x0500)                                                        <
 3816  extern(Windows) export BOOL ColorCorrectPalette(HDC, HPALETTE, DWORD, DWORD);    <
 3817  // #endif                                                                        <
 3818                                                                                   <
 3819  // #ifndef NOMETAFILE                                                            <
                                                                                        >  5188      alias wglUseFontBitmapsW  wglUseFontBitmaps;
                                                                                        >  5189      alias wglUseFontOutlinesW wglUseFontOutlines;
                                                                                        >  5190      static
 3820                                                                                      5191  
 3821  // #ifndef _MAC                                                                  <
 3822  enum : uint { ENHMETA_SIGNATURE = 0x464D4520 }                                   <
 3823  // #else                                                                         <
 3824  // #...                                                                          <
 3825  // #endif                                                                        <
 3826                                                                                   <
 3827  enum : uint { ENHMETA_STOCK_OBJECT = 0x80000000 }                                <
 3828                                                                                   <
 3829  enum : uint { EMR_HEADER = 1 }                                                   <
 3830  enum : uint { EMR_POLYBEZIER = 2 }                                               <
 3831  enum : uint { EMR_POLYGON = 3 }                                                  <
 3832  enum : uint { EMR_POLYLINE = 4 }                                                 <
 3833  enum : uint { EMR_POLYBEZIERTO = 5 }                                             <
 3834  enum : uint { EMR_POLYLINETO = 6 }                                               <
 3835  enum : uint { EMR_POLYPOLYLINE = 7 }                                             <
 3836  enum : uint { EMR_POLYPOLYGON = 8 }                                              <
 3837  enum : uint { EMR_SETWINDOWEXTEX = 9 }                                           <
 3838  enum : uint { EMR_SETWINDOWORGEX = 10 }                                          <
 3839  enum : uint { EMR_SETVIEWPORTEXTEX = 11 }                                        <
 3840  enum : uint { EMR_SETVIEWPORTORGEX = 12 }                                        <
 3841  enum : uint { EMR_SETBRUSHORGEX = 13 }                                           <
 3842  enum : uint { EMR_EOF = 14 }                                                     <
 3843  enum : uint { EMR_SETPIXELV = 15 }                                               <
 3844  enum : uint { EMR_SETMAPPERFLAGS = 16 }                                          <
 3845  enum : uint { EMR_SETMAPMODE = 17 }                                              <
 3846  enum : uint { EMR_SETBKMODE = 18 }                                               <
 3847  enum : uint { EMR_SETPOLYFILLMODE = 19 }                                         <
 3848  enum : uint { EMR_SETROP2 = 20 }                                                 <
 3849  enum : uint { EMR_SETSTRETCHBLTMODE = 21 }                                       <
 3850  enum : uint { EMR_SETTEXTALIGN = 22 }                                            <
 3851  enum : uint { EMR_SETCOLORADJUSTMENT = 23 }                                      <
 3852  enum : uint { EMR_SETTEXTCOLOR = 24 }                                            <
 3853  enum : uint { EMR_SETBKCOLOR = 25 }                                              <
 3854  enum : uint { EMR_OFFSETCLIPRGN = 26 }                                           <
 3855  enum : uint { EMR_MOVETOEX = 27 }                                                <
 3856  enum : uint { EMR_SETMETARGN = 28 }                                              <
 3857  enum : uint { EMR_EXCLUDECLIPRECT = 29 }                                         <
 3858  enum : uint { EMR_INTERSECTCLIPRECT = 30 }                                       <
 3859  enum : uint { EMR_SCALEVIEWPORTEXTEX = 31 }                                      <
 3860  enum : uint { EMR_SCALEWINDOWEXTEX = 32 }                                        <
 3861  enum : uint { EMR_SAVEDC = 33 }                                                  <
 3862  enum : uint { EMR_RESTOREDC = 34 }                                               <
 3863  enum : uint { EMR_SETWORLDTRANSFORM = 35 }                                       <
 3864  enum : uint { EMR_MODIFYWORLDTRANSFORM = 36 }                                    <
 3865  enum : uint { EMR_SELECTOBJECT = 37 }                                            <
 3866  enum : uint { EMR_CREATEPEN = 38 }                                               <
 3867  enum : uint { EMR_CREATEBRUSHINDIRECT = 39 }                                     <
 3868  enum : uint { EMR_DELETEOBJECT = 40 }                                            <
 3869  enum : uint { EMR_ANGLEARC = 41 }                                                <
 3870  enum : uint { EMR_ELLIPSE = 42 }                                                 <
 3871  enum : uint { EMR_RECTANGLE = 43 }                                               <
 3872  enum : uint { EMR_ROUNDRECT = 44 }                                               <
 3873  enum : uint { EMR_ARC = 45 }                                                     <
 3874  enum : uint { EMR_CHORD = 46 }                                                   <
 3875  enum : uint { EMR_PIE = 47 }                                                     <
 3876  enum : uint { EMR_SELECTPALETTE = 48 }                                           <
 3877  enum : uint { EMR_CREATEPALETTE = 49 }                                           <
 3878  enum : uint { EMR_SETPALETTEENTRIES = 50 }                                       <
 3879  enum : uint { EMR_RESIZEPALETTE = 51 }                                           <
 3880  enum : uint { EMR_REALIZEPALETTE = 52 }                                          <
 3881  enum : uint { EMR_EXTFLOODFILL = 53 }                                            <
 3882  enum : uint { EMR_LINETO = 54 }                                                  <
 3883  enum : uint { EMR_ARCTO = 55 }                                                   <
 3884  enum : uint { EMR_POLYDRAW = 56 }                                                <
 3885  enum : uint { EMR_SETARCDIRECTION = 57 }                                         <
 3886  enum : uint { EMR_SETMITERLIMIT = 58 }                                           <
 3887  enum : uint { EMR_BEGINPATH = 59 }                                               <
 3888  enum : uint { EMR_ENDPATH = 60 }                                                 <
 3889  enum : uint { EMR_CLOSEFIGURE = 61 }                                             <
 3890  enum : uint { EMR_FILLPATH = 62 }                                                <
 3891  enum : uint { EMR_STROKEANDFILLPATH = 63 }                                       <
 3892  enum : uint { EMR_STROKEPATH = 64 }                                              <
 3893  enum : uint { EMR_FLATTENPATH = 65 }                                             <
 3894  enum : uint { EMR_WIDENPATH = 66 }                                               <
 3895  enum : uint { EMR_SELECTCLIPPATH = 67 }                                          <
 3896  enum : uint { EMR_ABORTPATH = 68 }                                               <
 3897                                                                                   <
 3898  enum : uint { EMR_GDICOMMENT = 70 }                                              <
 3899  enum : uint { EMR_FILLRGN = 71 }                                                 <
 3900  enum : uint { EMR_FRAMERGN = 72 }                                                <
 3901  enum : uint { EMR_INVERTRGN = 73 }                                               <
 3902  enum : uint { EMR_PAINTRGN = 74 }                                                <
 3903  enum : uint { EMR_EXTSELECTCLIPRGN = 75 }                                        <
 3904  enum : uint { EMR_BITBLT = 76 }                                                  <
 3905  enum : uint { EMR_STRETCHBLT = 77 }                                              <
 3906  enum : uint { EMR_MASKBLT = 78 }                                                 <
 3907  enum : uint { EMR_PLGBLT = 79 }                                                  <
 3908  enum : uint { EMR_SETDIBITSTODEVICE = 80 }                                       <
 3909  enum : uint { EMR_STRETCHDIBITS = 81 }                                           <
 3910  enum : uint { EMR_EXTCREATEFONTINDIRECTW = 82 }                                  <
 3911  enum : uint { EMR_EXTTEXTOUTA = 83 }                                             <
 3912  enum : uint { EMR_EXTTEXTOUTW = 84 }                                             <
 3913  enum : uint { EMR_POLYBEZIER16 = 85 }                                            <
 3914  enum : uint { EMR_POLYGON16 = 86 }                                               <
 3915  enum : uint { EMR_POLYLINE16 = 87 }                                              <
 3916  enum : uint { EMR_POLYBEZIERTO16 = 88 }                                          <
 3917  enum : uint { EMR_POLYLINETO16 = 89 }                                            <
 3918  enum : uint { EMR_POLYPOLYLINE16 = 90 }                                          <
 3919  enum : uint { EMR_POLYPOLYGON16 = 91 }                                           <
 3920  enum : uint { EMR_POLYDRAW16 = 92 }                                              <
 3921  enum : uint { EMR_CREATEMONOBRUSH = 93 }                                         <
 3922  enum : uint { EMR_CREATEDIBPATTERNBRUSHPT = 94 }                                 <
 3923  enum : uint { EMR_EXTCREATEPEN = 95 }                                            <
 3924  enum : uint { EMR_POLYTEXTOUTA = 96 }                                            <
 3925  enum : uint { EMR_POLYTEXTOUTW = 97 }                                            <
 3926                                                                                   <
 3927  // #if(WINVER >= 0x0400)                                                         <
 3928  enum : uint { EMR_SETICMMODE = 98 }                                              <
 3929  enum : uint { EMR_CREATECOLORSPACE = 99 }                                        <
 3930  enum : uint { EMR_SETCOLORSPACE = 100 }                                          <
 3931  enum : uint { EMR_DELETECOLORSPACE = 101 }                                       <
 3932  enum : uint { EMR_GLSRECORD = 102 }                                              <
 3933  enum : uint { EMR_GLSBOUNDEDRECORD = 103 }                                       <
 3934  enum : uint { EMR_PIXELFORMAT = 104 }                                            <
 3935  // #endif /* WINVER >= 0x0400 */                                                 <
 3936                                                                                   <
 3937  // #if(WINVER >= 0x0500)                                                         |  5192      if (_WIN32_WINNT >= 0x0500)
 3938  enum : uint { EMR_RESERVED_105 = 105 }                                           <
 3939  enum : uint { EMR_RESERVED_106 = 106 }                                           <
 3940  enum : uint { EMR_RESERVED_107 = 107 }                                           <
 3941  enum : uint { EMR_RESERVED_108 = 108 }                                           <
 3942  enum : uint { EMR_RESERVED_109 = 109 }                                           <
 3943  enum : uint { EMR_RESERVED_110 = 110 }                                           <
 3944  enum : uint { EMR_COLORCORRECTPALETTE = 111 }                                    <
 3945  enum : uint { EMR_SETICMPROFILEA = 112 }                                         <
 3946  enum : uint { EMR_SETICMPROFILEW = 113 }                                         <
 3947  enum : uint { EMR_ALPHABLEND = 114 }                                             <
 3948  enum : uint { EMR_SETLAYOUT = 115 }                                              <
 3949  enum : uint { EMR_TRANSPARENTBLT = 116 }                                         <
 3950  enum : uint { EMR_RESERVED_117 = 117 }                                           <
 3951  enum : uint { EMR_GRADIENTFILL = 118 }                                           <
 3952  enum : uint { EMR_RESERVED_119 = 119 }                                           <
 3953  enum : uint { EMR_RESERVED_120 = 120 }                                           <
 3954  enum : uint { EMR_COLORMATCHTOTARGETW = 121 }                                    <
 3955  enum : uint { EMR_CREATECOLORSPACEW = 122 }                                      <
 3956  // #endif /* WINVER >= 0x0500 */                                                 <
 3957                                                                                   |  5193      {
 3958  enum : uint { EMR_MIN = 1 }                                                      <
                                                                                        >  5194          alias ENUMLOGFONTEXDVW   ENUMLOGFONTEXDV;
                                                                                        >  5195          alias PENUMLOGFONTEXDVW  PENUMLOGFONTEXDV;
                                                                                        >  5196          alias LPENUMLOGFONTEXDVW LPENUMLOGFONTEXDV;
                                                                                        >  5197          alias AddFontResourceExW AddFontResourceEx;
                                                                                        >  5198          alias RemoveFontResourceExW RemoveFontResourceEx;
                                                                                        >  5199          alias GetGlyphIndicesW GetGlyphIndices;
 3959                                                                                   |  5200      }
 3960  // #if (WINVER >= 0x0500)                                                        <
 3961  enum : uint { EMR_MAX = 122 }                                                    <
 3962  // #elif (WINVER >= 0x0400)                                                      <
 3963  // #...                                                                          <
 3964  // #else                                                                         <
 3965  // #...                                                                          <
 3966  // #endif                                                                        <
 3967                                                                                   <
 3968  struct tagEMR {                                                                  <
 3969    DWORD iType;                                                                   <
 3970    DWORD nSize;                                                                   <
 3971                                                                                   <
 3972  }                                                                                   5201  }
 3973  alias tagEMR EMR;                                                                |  5202  else     /* non-unicode build */
 3974  alias tagEMR* PEMR;                                                              <
 3975                                                                                   |  5203  {
                                                                                        >  5204      alias BYTE BCHAR;
 3976  struct tagEMRTEXT {                                                              |  5205      alias DOCINFOA DOCINFO;
 3977    POINTL ptlReference;                                                           |  5206      alias LOGFONTA LOGFONT;
 3978    DWORD nChars;                                                                  |  5207      alias TEXTMETRICA TEXTMETRIC;
 3979    DWORD offString;                                                               |  5208      alias NPTEXTMETRICA NPTEXTMETRIC;
 3980    DWORD fOptions;                                                                |  5209      alias ICMENUMPROCA  ICMENUMPROC;
 3981    RECTL rcl;                                                                     |  5210      alias FONTENUMPROCA FONTENUMPROC;
 3982    DWORD offDx;                                                                   |  5211      alias DEVMODEA DEVMODE;
 3983                                                                                   <
 3984  }                                                                                <
                                                                                        >  5212      alias EXTLOGFONTA  EXTLOGFONT;
                                                                                        >  5213      alias GCP_RESULTSA GCP_RESULTS;
 3985  alias tagEMRTEXT EMRTEXT;                                                        |  5214      alias OUTLINETEXTMETRICA OUTLINETEXTMETRIC;
 3986  alias tagEMRTEXT* PEMRTEXT;                                                      |  5215      alias POLYTEXTA POLYTEXT;
 3987                                                                                   <
                                                                                        >  5216      alias LOGCOLORSPACEA LOGCOLORSPACE;
 3988  struct tagABORTPATH {                                                            |  5217      alias NEWTEXTMETRICA NEWTEXTMETRIC;
 3989    EMR emr;                                                                       |  5218      alias NEWTEXTMETRICEXA NEWTEXTMETRICEX;
 3990  }                                                                                <
                                                                                        >  5219      alias ENUMLOGFONTA ENUMLOGFONT;
 3991  alias tagABORTPATH EMRABORTPATH;                                                 |  5220      alias ENUMLOGFONTEXA  ENUMLOGFONTEX;
 3992  alias tagABORTPATH* PEMRABORTPATH;                                               |  5221      alias DISPLAY_DEVICEA DISPLAY_DEVICE;
 3993  alias tagABORTPATH EMRBEGINPATH;                                                 <
 3994  alias tagABORTPATH* PEMRBEGINPATH;                                               <
 3995  alias tagABORTPATH EMRENDPATH;                                                   <
 3996  alias tagABORTPATH* PEMRENDPATH;                                                 <
 3997  alias tagABORTPATH EMRCLOSEFIGURE;                                               <
 3998  alias tagABORTPATH* PEMRCLOSEFIGURE;                                             <
 3999  alias tagABORTPATH EMRFLATTENPATH;                                               <
 4000  alias tagABORTPATH* PEMRFLATTENPATH;                                             <
 4001  alias tagABORTPATH EMRWIDENPATH;                                                 <
 4002  alias tagABORTPATH* PEMRWIDENPATH;                                               <
 4003  alias tagABORTPATH EMRSETMETARGN;                                                <
 4004  alias tagABORTPATH* PEMRSETMETARGN;                                              <
 4005  alias tagABORTPATH EMRSAVEDC;                                                    <
 4006  alias tagABORTPATH* PEMRSAVEDC;                                                  <
 4007  alias tagABORTPATH EMRREALIZEPALETTE;                                            <
 4008  alias tagABORTPATH* PEMRREALIZEPALETTE;                                          <
 4009                                                                                      5222  
 4010  struct tagEMRSELECTCLIPPATH {                                                    |  5223      alias AddFontResourceA AddFontResource;
 4011    EMR emr;                                                                       |  5224      alias CopyEnhMetaFileA CopyEnhMetaFile;
 4012    DWORD iMode;                                                                   |  5225      alias CopyMetaFileA CopyMetaFile;
 4013  }                                                                                <
                                                                                        >  5226      alias CreateColorSpaceA CreateColorSpace;
 4014  alias tagEMRSELECTCLIPPATH EMRSELECTCLIPPATH;                                    |  5227      alias CreateDCA CreateDC;
 4015  alias tagEMRSELECTCLIPPATH* PEMRSELECTCLIPPATH;                                  |  5228      alias CreateEnhMetaFileA CreateEnhMetaFile;
 4016  alias tagEMRSELECTCLIPPATH EMRSETBKMODE;                                         |  5229      alias CreateFontA CreateFont;
 4017  alias tagEMRSELECTCLIPPATH* PEMRSETBKMODE;                                       |  5230      alias CreateFontIndirectA CreateFontIndirect;
 4018  alias tagEMRSELECTCLIPPATH EMRSETMAPMODE;                                        |  5231      alias CreateICA CreateIC;
 4019  alias tagEMRSELECTCLIPPATH* PEMRSETMAPMODE;                                      |  5232      alias CreateMetaFileA CreateMetaFile;
 4020  alias tagEMRSELECTCLIPPATH EMRSETLAYOUT;                                         |  5233      alias CreateScalableFontResourceA CreateScalableFontResource;
 4021  alias tagEMRSELECTCLIPPATH* PEMRSETLAYOUT;                                       |  5234      alias DeviceCapabilitiesA DeviceCapabilities;
 4022  alias tagEMRSELECTCLIPPATH EMRSETPOLYFILLMODE;                                   |  5235      alias EnumFontFamiliesA EnumFontFamilies;
 4023  alias tagEMRSELECTCLIPPATH* PEMRSETPOLYFILLMODE;                                 |  5236      alias EnumFontFamiliesExA EnumFontFamiliesEx;
 4024  alias tagEMRSELECTCLIPPATH EMRSETROP2;                                           |  5237      alias EnumFontsA EnumFonts;
 4025  alias tagEMRSELECTCLIPPATH* PEMRSETROP2;                                         |  5238      alias EnumICMProfilesA EnumICMProfiles;
 4026  alias tagEMRSELECTCLIPPATH EMRSETSTRETCHBLTMODE;                                 |  5239      alias ExtTextOutA ExtTextOut;
 4027  alias tagEMRSELECTCLIPPATH* PEMRSETSTRETCHBLTMODE;                               |  5240      alias GetCharWidthFloatA GetCharWidthFloat;
 4028  alias tagEMRSELECTCLIPPATH EMRSETICMMODE;                                        |  5241      alias GetCharWidthA GetCharWidth;
 4029  alias tagEMRSELECTCLIPPATH* PEMRSETICMMODE;                                      |  5242      alias GetCharacterPlacementA GetCharacterPlacement;
 4030  alias tagEMRSELECTCLIPPATH EMRSETTEXTALIGN;                                      |  5243      alias GetCharABCWidthsA GetCharABCWidths;
 4031  alias tagEMRSELECTCLIPPATH* PEMRSETTEXTALIGN;                                    |  5244      alias GetCharABCWidthsFloatA GetCharABCWidthsFloat;
 4032                                                                                   <
                                                                                        >  5245      alias GetCharWidth32A GetCharWidth32;
 4033  struct tagEMRSETMITERLIMIT {                                                     |  5246      alias GetEnhMetaFileA GetEnhMetaFile;
 4034    EMR emr;                                                                       |  5247      alias GetEnhMetaFileDescriptionA GetEnhMetaFileDescription;
 4035    FLOAT eMiterLimit;                                                             |  5248      alias GetGlyphOutlineA GetGlyphOutline;
 4036  }                                                                                <
                                                                                        >  5249      alias GetICMProfileA GetICMProfile;
 4037  alias tagEMRSETMITERLIMIT EMRSETMITERLIMIT;                                      |  5250      alias GetKerningPairsA  GetKerningPairs;
 4038  alias tagEMRSETMITERLIMIT* PEMRSETMITERLIMIT;                                    |  5251      alias GetLogColorSpaceA GetLogColorSpace;
 4039                                                                                   <
                                                                                        >  5252      alias GetMetaFileA GetMetaFile;
 4040  struct tagEMRRESTOREDC {                                                         |  5253      alias GetObjectA GetObject;
 4041    EMR emr;                                                                       |  5254      alias GetOutlineTextMetricsA GetOutlineTextMetrics;
 4042    LONG iRelative;                                                                |  5255      alias GetTextExtentPointA GetTextExtentPoint;
 4043  }                                                                                <
                                                                                        >  5256      alias GetTextExtentExPointA GetTextExtentExPoint;
 4044  alias tagEMRRESTOREDC EMRRESTOREDC;                                              |  5257      alias GetTextExtentPoint32A GetTextExtentPoint32;
 4045  alias tagEMRRESTOREDC* PEMRRESTOREDC;                                            |  5258      alias GetTextFaceA GetTextFace;
 4046                                                                                   <
                                                                                        >  5259      alias GetTextMetricsA GetTextMetrics;
 4047  struct tagEMRSETARCDIRECTION {                                                   |  5260      alias PolyTextOutA PolyTextOut;
 4048    EMR emr;                                                                       |  5261      alias RemoveFontResourceA RemoveFontResource;
 4049    DWORD iArcDirection;                                                           |  5262      alias ResetDCA ResetDC;
                                                                                        >  5263      alias SetICMProfileA SetICMProfile;
                                                                                        >  5264      alias StartDocA StartDoc;
                                                                                        >  5265      alias TextOutA  TextOut;
                                                                                        >  5266      alias UpdateICMRegKeyA UpdateICMRegKey;
                                                                                        >  5267      alias wglUseFontBitmapsA  wglUseFontBitmaps;
                                                                                        >  5268      alias wglUseFontOutlinesA wglUseFontOutlines;
                                                                                        >  5269      static
 4050                                                                                      5270  
 4051  }                                                                                <
 4052  alias tagEMRSETARCDIRECTION EMRSETARCDIRECTION;                                  <
 4053  alias tagEMRSETARCDIRECTION* PEMRSETARCDIRECTION;                                <
                                                                                        >  5271      if (_WIN32_WINNT >= 0x0500)
 4054                                                                                   |  5272      {
                                                                                        >  5273          alias ENUMLOGFONTEXDVA   ENUMLOGFONTEXDV;
                                                                                        >  5274          alias PENUMLOGFONTEXDVA  PENUMLOGFONTEXDV;
 4055  struct tagEMRSETMAPPERFLAGS {                                                    |  5275          alias LPENUMLOGFONTEXDVA LPENUMLOGFONTEXDV;
 4056    EMR emr;                                                                       |  5276          alias AddFontResourceExA AddFontResourceEx;
 4057    DWORD dwFlags;                                                                 |  5277          alias RemoveFontResourceExA RemoveFontResourceEx;
                                                                                        >  5278          alias GetGlyphIndicesA GetGlyphIndices;
 4058  }                                                                                |  5279      }
 4059  alias tagEMRSETMAPPERFLAGS EMRSETMAPPERFLAGS;                                    <
 4060  alias tagEMRSETMAPPERFLAGS* PEMRSETMAPPERFLAGS;                                  <
 4061                                                                                   <
 4062  struct tagEMRSETTEXTCOLOR {                                                      <
 4063    EMR emr;                                                                       <
 4064    COLORREF crColor;                                                              <
 4065  }                                                                                <
 4066  alias tagEMRSETTEXTCOLOR EMRSETBKCOLOR;                                          <
 4067  alias tagEMRSETTEXTCOLOR* PEMRSETBKCOLOR;                                        <
 4068  alias tagEMRSETTEXTCOLOR EMRSETTEXTCOLOR;                                        <
 4069  alias tagEMRSETTEXTCOLOR* PEMRSETTEXTCOLOR;                                      <
 4070                                                                                   <
 4071  struct tagEMRSELECTOBJECT {                                                      <
 4072    EMR emr;                                                                       <
 4073    DWORD ihObject;                                                                <
 4074  }                                                                                <
 4075  alias tagEMRSELECTOBJECT EMRSELECTOBJECT;                                        <
 4076  alias tagEMRSELECTOBJECT* PEMRSELECTOBJECT;                                      <
 4077  alias tagEMRSELECTOBJECT EMRDELETEOBJECT;                                        <
 4078  alias tagEMRSELECTOBJECT* PEMRDELETEOBJECT;                                      <
 4079                                                                                   <
 4080  struct tagEMRSELECTPALETTE {                                                     <
 4081    EMR emr;                                                                       <
 4082    DWORD ihPal;                                                                   <
 4083  }                                                                                <
 4084  alias tagEMRSELECTPALETTE EMRSELECTPALETTE;                                      <
 4085  alias tagEMRSELECTPALETTE* PEMRSELECTPALETTE;                                    <
 4086                                                                                   <
 4087  struct tagEMRRESIZEPALETTE {                                                     <
 4088    EMR emr;                                                                       <
 4089    DWORD ihPal;                                                                   <
 4090    DWORD cEntries;                                                                <
 4091  }                                                                                <
 4092  alias tagEMRRESIZEPALETTE EMRRESIZEPALETTE;                                      <
 4093  alias tagEMRRESIZEPALETTE* PEMRRESIZEPALETTE;                                    <
 4094                                                                                   <
 4095  struct tagEMRSETPALETTEENTRIES {                                                 <
 4096    EMR emr;                                                                       <
 4097    DWORD ihPal;                                                                   <
 4098    DWORD iStart;                                                                  <
 4099    DWORD cEntries;                                                                <
 4100    PALETTEENTRY aPalEntries[1];                                                   <
 4101  }                                                                                <
 4102  alias tagEMRSETPALETTEENTRIES EMRSETPALETTEENTRIES;                              <
 4103  alias tagEMRSETPALETTEENTRIES* PEMRSETPALETTEENTRIES;                            <
 4104                                                                                   <
 4105  struct tagEMRSETCOLORADJUSTMENT {                                                <
 4106    EMR emr;                                                                       <
 4107    COLORADJUSTMENT ColorAdjustment;                                               <
 4108  }                                                                                <
 4109  alias tagEMRSETCOLORADJUSTMENT EMRSETCOLORADJUSTMENT;                            <
 4110  alias tagEMRSETCOLORADJUSTMENT* PEMRSETCOLORADJUSTMENT;                          <
 4111                                                                                   <
 4112  struct tagEMRGDICOMMENT {                                                        <
 4113    EMR emr;                                                                       <
 4114    DWORD cbData;                                                                  <
 4115    BYTE Data[1];                                                                  <
 4116  }                                                                                <
 4117  alias tagEMRGDICOMMENT EMRGDICOMMENT;                                            <
 4118  alias tagEMRGDICOMMENT* PEMRGDICOMMENT;                                          <
 4119                                                                                   <
 4120  struct tagEMREOF {                                                               <
 4121    EMR emr;                                                                       <
 4122    DWORD nPalEntries;                                                             <
 4123    DWORD offPalEntries;                                                           <
 4124    DWORD nSizeLast;                                                               <
 4125                                                                                   <
 4126  }                                                                                <
 4127  alias tagEMREOF EMREOF;                                                          <
 4128  alias tagEMREOF* PEMREOF;                                                        <
 4129                                                                                   <
 4130  struct tagEMRLINETO {                                                            <
 4131    EMR emr;                                                                       <
 4132    POINTL ptl;                                                                    <
 4133  }                                                                                <
 4134  alias tagEMRLINETO EMRLINETO;                                                    <
 4135  alias tagEMRLINETO* PEMRLINETO;                                                  <
 4136  alias tagEMRLINETO EMRMOVETOEX;                                                  <
 4137  alias tagEMRLINETO* PEMRMOVETOEX;                                                <
 4138                                                                                   <
 4139  struct tagEMROFFSETCLIPRGN {                                                     <
 4140    EMR emr;                                                                       <
 4141    POINTL ptlOffset;                                                              <
 4142  }                                                                                <
 4143  alias tagEMROFFSETCLIPRGN EMROFFSETCLIPRGN;                                      <
 4144  alias tagEMROFFSETCLIPRGN* PEMROFFSETCLIPRGN;                                    <
 4145                                                                                   <
 4146  struct tagEMRFILLPATH {                                                          <
 4147    EMR emr;                                                                       <
 4148    RECTL rclBounds;                                                               <
 4149  }                                                                                <
 4150  alias tagEMRFILLPATH EMRFILLPATH;                                                <
 4151  alias tagEMRFILLPATH* PEMRFILLPATH;                                              <
 4152  alias tagEMRFILLPATH EMRSTROKEANDFILLPATH;                                       <
 4153  alias tagEMRFILLPATH* PEMRSTROKEANDFILLPATH;                                     <
 4154  alias tagEMRFILLPATH EMRSTROKEPATH;                                              <
 4155  alias tagEMRFILLPATH* PEMRSTROKEPATH;                                            <
 4156                                                                                   <
 4157  struct tagEMREXCLUDECLIPRECT {                                                   <
 4158    EMR emr;                                                                       <
 4159    RECTL rclClip;                                                                 <
 4160  }                                                                                <
 4161  alias tagEMREXCLUDECLIPRECT EMREXCLUDECLIPRECT;                                  <
 4162  alias tagEMREXCLUDECLIPRECT* PEMREXCLUDECLIPRECT;                                <
 4163  alias tagEMREXCLUDECLIPRECT EMRINTERSECTCLIPRECT;                                <
 4164  alias tagEMREXCLUDECLIPRECT* PEMRINTERSECTCLIPRECT;                              <
 4165                                                                                   <
 4166  struct tagEMRSETVIEWPORTORGEX {                                                  <
 4167    EMR emr;                                                                       <
 4168    POINTL ptlOrigin;                                                              <
 4169  }                                                                                <
 4170  alias tagEMRSETVIEWPORTORGEX EMRSETVIEWPORTORGEX;                                <
 4171  alias tagEMRSETVIEWPORTORGEX* PEMRSETVIEWPORTORGEX;                              <
 4172  alias tagEMRSETVIEWPORTORGEX EMRSETWINDOWORGEX;                                  <
 4173  alias tagEMRSETVIEWPORTORGEX* PEMRSETWINDOWORGEX;                                <
 4174  alias tagEMRSETVIEWPORTORGEX EMRSETBRUSHORGEX;                                   <
 4175  alias tagEMRSETVIEWPORTORGEX* PEMRSETBRUSHORGEX;                                 <
 4176                                                                                   <
 4177  struct tagEMRSETVIEWPORTEXTEX {                                                  <
 4178    EMR emr;                                                                       <
 4179    SIZEL szlExtent;                                                               <
 4180  }                                                                                <
 4181  alias tagEMRSETVIEWPORTEXTEX EMRSETVIEWPORTEXTEX;                                <
 4182  alias tagEMRSETVIEWPORTEXTEX* PEMRSETVIEWPORTEXTEX;                              <
 4183  alias tagEMRSETVIEWPORTEXTEX EMRSETWINDOWEXTEX;                                  <
 4184  alias tagEMRSETVIEWPORTEXTEX* PEMRSETWINDOWEXTEX;                                <
 4185                                                                                   <
 4186  struct tagEMRSCALEVIEWPORTEXTEX {                                                <
 4187    EMR emr;                                                                       <
 4188    LONG xNum;                                                                     <
 4189    LONG xDenom;                                                                   <
 4190    LONG yNum;                                                                     <
 4191    LONG yDenom;                                                                   <
 4192  }                                                                                <
 4193  alias tagEMRSCALEVIEWPORTEXTEX EMRSCALEVIEWPORTEXTEX;                            <
 4194  alias tagEMRSCALEVIEWPORTEXTEX* PEMRSCALEVIEWPORTEXTEX;                          <
 4195  alias tagEMRSCALEVIEWPORTEXTEX EMRSCALEWINDOWEXTEX;                              <
 4196  alias tagEMRSCALEVIEWPORTEXTEX* PEMRSCALEWINDOWEXTEX;                            <
 4197                                                                                   <
 4198  struct tagEMRSETWORLDTRANSFORM {                                                 <
 4199    EMR emr;                                                                       <
 4200    XFORM xform;                                                                   <
 4201  }                                                                                   5280  }
 4202  alias tagEMRSETWORLDTRANSFORM EMRSETWORLDTRANSFORM;                              <
 4203  alias tagEMRSETWORLDTRANSFORM* PEMRSETWORLDTRANSFORM;                            <
 4204                                                                                   <
 4205  struct tagEMRMODIFYWORLDTRANSFORM {                                              <
 4206    EMR emr;                                                                       <
 4207    XFORM xform;                                                                   <
 4208    DWORD iMode;                                                                   <
 4209  }                                                                                <
 4210  alias tagEMRMODIFYWORLDTRANSFORM EMRMODIFYWORLDTRANSFORM;                        <
 4211  alias tagEMRMODIFYWORLDTRANSFORM* PEMRMODIFYWORLDTRANSFORM;                      <
 4212                                                                                   <
 4213  struct tagEMRSETPIXELV {                                                         <
 4214    EMR emr;                                                                       <
 4215    POINTL ptlPixel;                                                               <
 4216    COLORREF crColor;                                                              <
 4217  }                                                                                <
 4218  alias tagEMRSETPIXELV EMRSETPIXELV;                                              <
 4219  alias tagEMRSETPIXELV* PEMRSETPIXELV;                                            <
 4220                                                                                      5281  
 4221  struct tagEMREXTFLOODFILL {                                                      |  5282  // Common to both ASCII & UNICODE
 4222    EMR emr;                                                                       |  5283  alias DOCINFO*LPDOCINFO;
 4223    POINTL ptlStart;                                                               |  5284  alias LOGFONT*PLOGFONT, NPLOGFONT, LPLOGFONT;
 4224    COLORREF crColor;                                                              |  5285  alias TEXTMETRIC*PTEXTMETRIC, LPTEXTMETRIC;
 4225    DWORD iMode;                                                                   |  5286  alias DEVMODE*PDEVMODE, NPDEVMODE, LPDEVMODE;
 4226  }                                                                                <
                                                                                        >  5287  alias EXTLOGFONT *PEXTLOGFONT, NPEXTLOGFONT, LPEXTLOGFONT;
 4227  alias tagEMREXTFLOODFILL EMREXTFLOODFILL;                                        |  5288  alias GCP_RESULTS*LPGCP_RESULTS;
 4228  alias tagEMREXTFLOODFILL* PEMREXTFLOODFILL;                                      |  5289  alias OUTLINETEXTMETRIC*POUTLINETEXTMETRIC, NPOUTLINETEXTMETRIC, LPOUTLINETEXTME
 4229                                                                                   <
 4230  struct tagEMRELLIPSE {                                                           <
 4231    EMR emr;                                                                       <
 4232    RECTL rclBox;                                                                  <
 4233  }                                                                                <
 4234  alias tagEMRELLIPSE EMRELLIPSE;                                                  <
 4235  alias tagEMRELLIPSE* PEMRELLIPSE;                                                <
 4236  alias tagEMRELLIPSE EMRRECTANGLE;                                                <
 4237  alias tagEMRELLIPSE* PEMRRECTANGLE;                                              <
 4238                                                                                   <
 4239  struct tagEMRROUNDRECT {                                                         <
 4240    EMR emr;                                                                       <
 4241    RECTL rclBox;                                                                  <
 4242    SIZEL szlCorner;                                                               <
 4243  }                                                                                <
 4244  alias tagEMRROUNDRECT EMRROUNDRECT;                                              <
 4245  alias tagEMRROUNDRECT* PEMRROUNDRECT;                                            <
 4246                                                                                   <
 4247  struct tagEMRARC {                                                               <
 4248    EMR emr;                                                                       <
 4249    RECTL rclBox;                                                                  <
 4250    POINTL ptlStart;                                                               <
 4251    POINTL ptlEnd;                                                                 <
 4252  }                                                                                <
 4253  alias tagEMRARC EMRARC;                                                          <
 4254  alias tagEMRARC* PEMRARC;                                                        <
 4255  alias tagEMRARC EMRARCTO;                                                        <
 4256  alias tagEMRARC* PEMRARCTO;                                                      <
 4257  alias tagEMRARC EMRCHORD;                                                        <
 4258  alias tagEMRARC* PEMRCHORD;                                                      <
 4259  alias tagEMRARC EMRPIE;                                                          <
 4260  alias tagEMRARC* PEMRPIE;                                                        <
 4261                                                                                   <
 4262  struct tagEMRANGLEARC {                                                          <
 4263    EMR emr;                                                                       <
 4264    POINTL ptlCenter;                                                              <
 4265    DWORD nRadius;                                                                 <
 4266    FLOAT eStartAngle;                                                             <
 4267    FLOAT eSweepAngle;                                                             <
 4268  }                                                                                <
 4269  alias tagEMRANGLEARC EMRANGLEARC;                                                <
 4270  alias tagEMRANGLEARC* PEMRANGLEARC;                                              <
 4271                                                                                   <
 4272  struct tagEMRPOLYLINE {                                                          <
 4273    EMR emr;                                                                       <
 4274    RECTL rclBounds;                                                               <
 4275    DWORD cptl;                                                                    <
 4276    POINTL aptl[1];                                                                <
 4277  }                                                                                <
 4278  alias tagEMRPOLYLINE EMRPOLYLINE;                                                <
 4279  alias tagEMRPOLYLINE* PEMRPOLYLINE;                                              <
 4280  alias tagEMRPOLYLINE EMRPOLYBEZIER;                                              <
 4281  alias tagEMRPOLYLINE* PEMRPOLYBEZIER;                                            <
 4282  alias tagEMRPOLYLINE EMRPOLYGON;                                                 <
 4283  alias tagEMRPOLYLINE* PEMRPOLYGON;                                               <
 4284  alias tagEMRPOLYLINE EMRPOLYBEZIERTO;                                            <
 4285  alias tagEMRPOLYLINE* PEMRPOLYBEZIERTO;                                          <
 4286  alias tagEMRPOLYLINE EMRPOLYLINETO;                                              <
 4287  alias tagEMRPOLYLINE* PEMRPOLYLINETO;                                            <
 4288                                                                                   <
 4289  struct tagEMRPOLYLINE16 {                                                        <
 4290    EMR emr;                                                                       <
 4291    RECTL rclBounds;                                                               <
 4292    DWORD cpts;                                                                    <
 4293    POINTS apts[1];                                                                <
 4294  }                                                                                <
 4295  alias tagEMRPOLYLINE16 EMRPOLYLINE16;                                            <
 4296  alias tagEMRPOLYLINE16* PEMRPOLYLINE16;                                          <
 4297  alias tagEMRPOLYLINE16 EMRPOLYBEZIER16;                                          <
 4298  alias tagEMRPOLYLINE16* PEMRPOLYBEZIER16;                                        <
 4299  alias tagEMRPOLYLINE16 EMRPOLYGON16;                                             <
 4300  alias tagEMRPOLYLINE16* PEMRPOLYGON16;                                           <
 4301  alias tagEMRPOLYLINE16 EMRPOLYBEZIERTO16;                                        <
 4302  alias tagEMRPOLYLINE16* PEMRPOLYBEZIERTO16;                                      <
 4303  alias tagEMRPOLYLINE16 EMRPOLYLINETO16;                                          <
 4304  alias tagEMRPOLYLINE16* PEMRPOLYLINETO16;                                        <
 4305                                                                                   <
 4306  struct tagEMRPOLYDRAW {                                                          <
 4307    EMR emr;                                                                       <
 4308    RECTL rclBounds;                                                               <
 4309    DWORD cptl;                                                                    <
 4310    POINTL aptl[1];                                                                <
 4311    BYTE abTypes[1];                                                               <
 4312  }                                                                                <
 4313  alias tagEMRPOLYDRAW EMRPOLYDRAW;                                                <
 4314  alias tagEMRPOLYDRAW* PEMRPOLYDRAW;                                              <
 4315                                                                                   <
 4316  struct tagEMRPOLYDRAW16 {                                                        <
 4317    EMR emr;                                                                       <
 4318    RECTL rclBounds;                                                               <
 4319    DWORD cpts;                                                                    <
 4320    POINTS apts[1];                                                                <
 4321    BYTE abTypes[1];                                                               <
 4322  }                                                                                <
 4323  alias tagEMRPOLYDRAW16 EMRPOLYDRAW16;                                            <
 4324  alias tagEMRPOLYDRAW16* PEMRPOLYDRAW16;                                          <
 4325                                                                                   <
 4326  struct tagEMRPOLYPOLYLINE {                                                      <
 4327    EMR emr;                                                                       <
 4328    RECTL rclBounds;                                                               <
 4329    DWORD nPolys;                                                                  <
 4330    DWORD cptl;                                                                    <
 4331    DWORD aPolyCounts[1];                                                          <
 4332    POINTL aptl[1];                                                                <
 4333  }                                                                                <
 4334  alias tagEMRPOLYPOLYLINE EMRPOLYPOLYLINE;                                        <
 4335  alias tagEMRPOLYPOLYLINE* PEMRPOLYPOLYLINE;                                      <
 4336  alias tagEMRPOLYPOLYLINE EMRPOLYPOLYGON;                                         <
 4337  alias tagEMRPOLYPOLYLINE* PEMRPOLYPOLYGON;                                       <
 4338                                                                                   <
 4339  struct tagEMRPOLYPOLYLINE16 {                                                    <
 4340    EMR emr;                                                                       <
 4341    RECTL rclBounds;                                                               <
 4342    DWORD nPolys;                                                                  <
 4343    DWORD cpts;                                                                    <
 4344    DWORD aPolyCounts[1];                                                          <
 4345    POINTS apts[1];                                                                <
 4346  }                                                                                <
 4347  alias tagEMRPOLYPOLYLINE16 EMRPOLYPOLYLINE16;                                    <
 4348  alias tagEMRPOLYPOLYLINE16* PEMRPOLYPOLYLINE16;                                  <
 4349  alias tagEMRPOLYPOLYLINE16 EMRPOLYPOLYGON16;                                     <
 4350  alias tagEMRPOLYPOLYLINE16* PEMRPOLYPOLYGON16;                                   <
 4351                                                                                   <
 4352  struct tagEMRINVERTRGN {                                                         <
 4353    EMR emr;                                                                       <
 4354    RECTL rclBounds;                                                               <
 4355    DWORD cbRgnData;                                                               <
 4356    BYTE RgnData[1];                                                               <
 4357  }                                                                                <
 4358  alias tagEMRINVERTRGN EMRINVERTRGN;                                              <
 4359  alias tagEMRINVERTRGN* PEMRINVERTRGN;                                            <
 4360  alias tagEMRINVERTRGN EMRPAINTRGN;                                               <
 4361  alias tagEMRINVERTRGN* PEMRPAINTRGN;                                             <
 4362                                                                                   <
 4363  struct tagEMRFILLRGN {                                                           <
 4364    EMR emr;                                                                       <
 4365    RECTL rclBounds;                                                               <
 4366    DWORD cbRgnData;                                                               <
 4367    DWORD ihBrush;                                                                 <
 4368    BYTE RgnData[1];                                                               <
 4369  }                                                                                <
 4370  alias tagEMRFILLRGN EMRFILLRGN;                                                  <
 4371  alias tagEMRFILLRGN* PEMRFILLRGN;                                                <
 4372                                                                                   <
 4373  struct tagEMRFRAMERGN {                                                          <
 4374    EMR emr;                                                                       <
 4375    RECTL rclBounds;                                                               <
 4376    DWORD cbRgnData;                                                               <
 4377    DWORD ihBrush;                                                                 <
 4378    SIZEL szlStroke;                                                               <
 4379    BYTE RgnData[1];                                                               <
 4380  }                                                                                <
 4381  alias tagEMRFRAMERGN EMRFRAMERGN;                                                <
 4382  alias tagEMRFRAMERGN* PEMRFRAMERGN;                                              <
 4383                                                                                   <
 4384  struct tagEMREXTSELECTCLIPRGN {                                                  <
 4385    EMR emr;                                                                       <
 4386    DWORD cbRgnData;                                                               <
 4387    DWORD iMode;                                                                   <
 4388    BYTE RgnData[1];                                                               <
 4389  }                                                                                <
 4390  alias tagEMREXTSELECTCLIPRGN EMREXTSELECTCLIPRGN;                                <
 4391  alias tagEMREXTSELECTCLIPRGN* PEMREXTSELECTCLIPRGN;                              <
 4392                                                                                   <
 4393  struct tagEMREXTTEXTOUTA {                                                       <
 4394    EMR emr;                                                                       <
 4395    RECTL rclBounds;                                                               <
 4396    DWORD iGraphicsMode;                                                           <
 4397    FLOAT exScale;                                                                 <
 4398    FLOAT eyScale;                                                                 <
 4399    EMRTEXT emrtext;                                                               <
 4400                                                                                   <
 4401  }                                                                                <
 4402  alias tagEMREXTTEXTOUTA EMREXTTEXTOUTA;                                          <
 4403  alias tagEMREXTTEXTOUTA* PEMREXTTEXTOUTA;                                        <
 4404  alias tagEMREXTTEXTOUTA EMREXTTEXTOUTW;                                          <
 4405  alias tagEMREXTTEXTOUTA* PEMREXTTEXTOUTW;                                        <
 4406                                                                                   <
 4407  struct tagEMRPOLYTEXTOUTA {                                                      <
 4408    EMR emr;                                                                       <
 4409    RECTL rclBounds;                                                               <
 4410    DWORD iGraphicsMode;                                                           <
 4411    FLOAT exScale;                                                                 <
 4412    FLOAT eyScale;                                                                 <
 4413    LONG cStrings;                                                                 <
 4414    EMRTEXT aemrtext[1];                                                           <
 4415                                                                                   <
 4416  }                                                                                <
 4417  alias tagEMRPOLYTEXTOUTA EMRPOLYTEXTOUTA;                                        <
 4418  alias tagEMRPOLYTEXTOUTA* PEMRPOLYTEXTOUTA;                                      <
 4419  alias tagEMRPOLYTEXTOUTA EMRPOLYTEXTOUTW;                                        <
 4420  alias tagEMRPOLYTEXTOUTA* PEMRPOLYTEXTOUTW;                                      <
 4421                                                                                   <
 4422  struct tagEMRBITBLT {                                                            <
 4423    EMR emr;                                                                       <
 4424    RECTL rclBounds;                                                               <
 4425    LONG xDest;                                                                    <
 4426    LONG yDest;                                                                    <
 4427    LONG cxDest;                                                                   <
 4428    LONG cyDest;                                                                   <
 4429    DWORD dwRop;                                                                   <
 4430    LONG xSrc;                                                                     <
 4431    LONG ySrc;                                                                     <
 4432    XFORM xformSrc;                                                                <
 4433    COLORREF crBkColorSrc;                                                         <
 4434    DWORD iUsageSrc;                                                               <
 4435                                                                                   <
 4436    DWORD offBmiSrc;                                                               <
 4437    DWORD cbBmiSrc;                                                                <
 4438    DWORD offBitsSrc;                                                              <
 4439    DWORD cbBitsSrc;                                                               <
 4440  }                                                                                <
 4441  alias tagEMRBITBLT EMRBITBLT;                                                    <
 4442  alias tagEMRBITBLT* PEMRBITBLT;                                                  <
 4443                                                                                   <
 4444  struct tagEMRSTRETCHBLT {                                                        <
 4445    EMR emr;                                                                       <
 4446    RECTL rclBounds;                                                               <
 4447    LONG xDest;                                                                    <
 4448    LONG yDest;                                                                    <
 4449    LONG cxDest;                                                                   <
 4450    LONG cyDest;                                                                   <
 4451    DWORD dwRop;                                                                   <
 4452    LONG xSrc;                                                                     <
 4453    LONG ySrc;                                                                     <
 4454    XFORM xformSrc;                                                                <
 4455    COLORREF crBkColorSrc;                                                         <
 4456    DWORD iUsageSrc;                                                               <
 4457                                                                                   <
 4458    DWORD offBmiSrc;                                                               <
 4459    DWORD cbBmiSrc;                                                                <
 4460    DWORD offBitsSrc;                                                              <
 4461    DWORD cbBitsSrc;                                                               <
 4462    LONG cxSrc;                                                                    <
 4463    LONG cySrc;                                                                    <
 4464  }                                                                                <
 4465  alias tagEMRSTRETCHBLT EMRSTRETCHBLT;                                            <
 4466  alias tagEMRSTRETCHBLT* PEMRSTRETCHBLT;                                          <
 4467                                                                                   <
 4468  struct tagEMRMASKBLT {                                                           <
 4469    EMR emr;                                                                       <
 4470    RECTL rclBounds;                                                               <
 4471    LONG xDest;                                                                    <
 4472    LONG yDest;                                                                    <
 4473    LONG cxDest;                                                                   <
 4474    LONG cyDest;                                                                   <
 4475    DWORD dwRop;                                                                   <
 4476    LONG xSrc;                                                                     <
 4477    LONG ySrc;                                                                     <
 4478    XFORM xformSrc;                                                                <
 4479    COLORREF crBkColorSrc;                                                         <
 4480    DWORD iUsageSrc;                                                               <
 4481                                                                                   <
 4482    DWORD offBmiSrc;                                                               <
 4483    DWORD cbBmiSrc;                                                                <
 4484    DWORD offBitsSrc;                                                              <
 4485    DWORD cbBitsSrc;                                                               <
 4486    LONG xMask;                                                                    <
 4487    LONG yMask;                                                                    <
 4488    DWORD iUsageMask;                                                              <
 4489    DWORD offBmiMask;                                                              <
 4490    DWORD cbBmiMask;                                                               <
 4491    DWORD offBitsMask;                                                             <
 4492    DWORD cbBitsMask;                                                              <
 4493  }                                                                                <
 4494  alias tagEMRMASKBLT EMRMASKBLT;                                                  <
 4495  alias tagEMRMASKBLT* PEMRMASKBLT;                                                <
 4496                                                                                   <
 4497  struct tagEMRPLGBLT {                                                            <
 4498    EMR emr;                                                                       <
 4499    RECTL rclBounds;                                                               <
 4500    POINTL aptlDest[3];                                                            <
 4501    LONG xSrc;                                                                     <
 4502    LONG ySrc;                                                                     <
 4503    LONG cxSrc;                                                                    <
 4504    LONG cySrc;                                                                    <
 4505    XFORM xformSrc;                                                                <
 4506    COLORREF crBkColorSrc;                                                         <
 4507    DWORD iUsageSrc;                                                               <
 4508                                                                                   <
 4509    DWORD offBmiSrc;                                                               <
 4510    DWORD cbBmiSrc;                                                                <
 4511    DWORD offBitsSrc;                                                              <
 4512    DWORD cbBitsSrc;                                                               <
 4513    LONG xMask;                                                                    <
 4514    LONG yMask;                                                                    <
 4515    DWORD iUsageMask;                                                              <
 4516    DWORD offBmiMask;                                                              <
 4517    DWORD cbBmiMask;                                                               <
 4518    DWORD offBitsMask;                                                             <
 4519    DWORD cbBitsMask;                                                              <
 4520  }                                                                                <
 4521  alias tagEMRPLGBLT EMRPLGBLT;                                                    <
 4522  alias tagEMRPLGBLT* PEMRPLGBLT;                                                  <
 4523                                                                                   <
 4524  struct tagEMRSETDIBITSTODEVICE {                                                 <
 4525    EMR emr;                                                                       <
 4526    RECTL rclBounds;                                                               <
 4527    LONG xDest;                                                                    <
 4528    LONG yDest;                                                                    <
 4529    LONG xSrc;                                                                     <
 4530    LONG ySrc;                                                                     <
 4531    LONG cxSrc;                                                                    <
 4532    LONG cySrc;                                                                    <
 4533    DWORD offBmiSrc;                                                               <
 4534    DWORD cbBmiSrc;                                                                <
 4535    DWORD offBitsSrc;                                                              <
 4536    DWORD cbBitsSrc;                                                               <
 4537    DWORD iUsageSrc;                                                               <
 4538    DWORD iStartScan;                                                              <
 4539    DWORD cScans;                                                                  <
 4540  }                                                                                <
 4541  alias tagEMRSETDIBITSTODEVICE EMRSETDIBITSTODEVICE;                              <
 4542  alias tagEMRSETDIBITSTODEVICE* PEMRSETDIBITSTODEVICE;                            <
 4543                                                                                   <
 4544  struct tagEMRSTRETCHDIBITS {                                                     <
 4545    EMR emr;                                                                       <
 4546    RECTL rclBounds;                                                               <
 4547    LONG xDest;                                                                    <
 4548    LONG yDest;                                                                    <
 4549    LONG xSrc;                                                                     <
 4550    LONG ySrc;                                                                     <
 4551    LONG cxSrc;                                                                    <
 4552    LONG cySrc;                                                                    <
 4553    DWORD offBmiSrc;                                                               <
 4554    DWORD cbBmiSrc;                                                                <
 4555    DWORD offBitsSrc;                                                              <
 4556    DWORD cbBitsSrc;                                                               <
 4557    DWORD iUsageSrc;                                                               <
 4558    DWORD dwRop;                                                                   <
 4559    LONG cxDest;                                                                   <
 4560    LONG cyDest;                                                                   <
 4561  }                                                                                <
 4562  alias tagEMRSTRETCHDIBITS EMRSTRETCHDIBITS;                                      <
 4563  alias tagEMRSTRETCHDIBITS* PEMRSTRETCHDIBITS;                                    <
 4564                                                                                   <
 4565  struct tagEMREXTCREATEFONTINDIRECTW {                                            <
 4566    EMR emr;                                                                       <
 4567    DWORD ihFont;                                                                  <
 4568    EXTLOGFONTW elfw;                                                              <
 4569  }                                                                                <
 4570  alias tagEMREXTCREATEFONTINDIRECTW EMREXTCREATEFONTINDIRECTW;                    <
 4571  alias tagEMREXTCREATEFONTINDIRECTW* PEMREXTCREATEFONTINDIRECTW;                  <
 4572                                                                                   <
 4573  struct tagEMRCREATEPALETTE {                                                     <
 4574    EMR emr;                                                                       <
 4575    DWORD ihPal;                                                                   <
 4576    LOGPALETTE lgpl;                                                               <
 4577                                                                                   <
 4578  }                                                                                <
 4579  alias tagEMRCREATEPALETTE EMRCREATEPALETTE;                                      <
 4580  alias tagEMRCREATEPALETTE* PEMRCREATEPALETTE;                                    <
 4581                                                                                   <
 4582  struct tagEMRCREATEPEN {                                                         <
 4583    EMR emr;                                                                       <
 4584    DWORD ihPen;                                                                   <
 4585    LOGPEN lopn;                                                                   <
 4586  }                                                                                <
 4587  alias tagEMRCREATEPEN EMRCREATEPEN;                                              <
 4588  alias tagEMRCREATEPEN* PEMRCREATEPEN;                                            <
 4589                                                                                   <
 4590  struct tagEMREXTCREATEPEN {                                                      <
 4591    EMR emr;                                                                       <
 4592    DWORD ihPen;                                                                   <
 4593    DWORD offBmi;                                                                  <
 4594    DWORD cbBmi;                                                                   <
 4595                                                                                   <
 4596    DWORD offBits;                                                                 <
 4597    DWORD cbBits;                                                                  <
 4598    EXTLOGPEN elp;                                                                 <
 4599  }                                                                                <
 4600  alias tagEMREXTCREATEPEN EMREXTCREATEPEN;                                        <
 4601  alias tagEMREXTCREATEPEN* PEMREXTCREATEPEN;                                      <
 4602                                                                                   <
 4603  struct tagEMRCREATEBRUSHINDIRECT {                                               <
 4604    EMR emr;                                                                       <
 4605    DWORD ihBrush;                                                                 <
 4606    LOGBRUSH32 lb;                                                                 <
 4607                                                                                   <
 4608  }                                                                                <
 4609  alias tagEMRCREATEBRUSHINDIRECT EMRCREATEBRUSHINDIRECT;                          <
 4610  alias tagEMRCREATEBRUSHINDIRECT* PEMRCREATEBRUSHINDIRECT;                        <
 4611                                                                                   <
 4612  struct tagEMRCREATEMONOBRUSH {                                                   <
 4613    EMR emr;                                                                       <
 4614    DWORD ihBrush;                                                                 <
 4615    DWORD iUsage;                                                                  <
 4616    DWORD offBmi;                                                                  <
 4617    DWORD cbBmi;                                                                   <
 4618    DWORD offBits;                                                                 <
 4619    DWORD cbBits;                                                                  <
 4620  }                                                                                <
 4621  alias tagEMRCREATEMONOBRUSH EMRCREATEMONOBRUSH;                                  <
 4622  alias tagEMRCREATEMONOBRUSH* PEMRCREATEMONOBRUSH;                                <
 4623                                                                                   <
 4624  struct tagEMRCREATEDIBPATTERNBRUSHPT {                                           <
 4625    EMR emr;                                                                       <
 4626    DWORD ihBrush;                                                                 <
 4627    DWORD iUsage;                                                                  <
 4628    DWORD offBmi;                                                                  <
 4629    DWORD cbBmi;                                                                   <
 4630                                                                                   <
 4631    DWORD offBits;                                                                 <
 4632    DWORD cbBits;                                                                  <
 4633  }                                                                                <
 4634  alias tagEMRCREATEDIBPATTERNBRUSHPT EMRCREATEDIBPATTERNBRUSHPT;                  <
 4635  alias tagEMRCREATEDIBPATTERNBRUSHPT* PEMRCREATEDIBPATTERNBRUSHPT;                <
 4636                                                                                   <
 4637  struct tagEMRFORMAT {                                                            <
 4638    DWORD dSignature;                                                              <
 4639    DWORD nVersion;                                                                <
 4640    DWORD cbData;                                                                  <
 4641    DWORD offData;                                                                 <
 4642                                                                                   <
 4643  }                                                                                <
 4644  alias tagEMRFORMAT EMRFORMAT;                                                    <
 4645  alias tagEMRFORMAT* PEMRFORMAT;                                                  <
 4646                                                                                   <
 4647  // #if(WINVER >= 0x0400)                                                         <
 4648                                                                                   <
 4649  struct tagEMRGLSRECORD {                                                         <
 4650    EMR emr;                                                                       <
 4651    DWORD cbData;                                                                  <
 4652    BYTE Data[1];                                                                  <
 4653  }                                                                                <
 4654  alias tagEMRGLSRECORD EMRGLSRECORD;                                              <
 4655  alias tagEMRGLSRECORD* PEMRGLSRECORD;                                            <
 4656                                                                                   <
 4657  struct tagEMRGLSBOUNDEDRECORD {                                                  <
 4658    EMR emr;                                                                       <
 4659    RECTL rclBounds;                                                               <
 4660    DWORD cbData;                                                                  <
 4661    BYTE Data[1];                                                                  <
 4662  }                                                                                <
 4663  alias tagEMRGLSBOUNDEDRECORD EMRGLSBOUNDEDRECORD;                                <
 4664  alias tagEMRGLSBOUNDEDRECORD* PEMRGLSBOUNDEDRECORD;                              <
 4665                                                                                   <
 4666  struct tagEMRPIXELFORMAT {                                                       <
 4667    EMR emr;                                                                       <
 4668    PIXELFORMATDESCRIPTOR pfd;                                                     <
 4669  }                                                                                <
 4670  alias tagEMRPIXELFORMAT EMRPIXELFORMAT;                                          <
 4671  alias tagEMRPIXELFORMAT* PEMRPIXELFORMAT;                                        <
 4672                                                                                   <
 4673  struct tagEMRCREATECOLORSPACE {                                                  <
 4674    EMR emr;                                                                       <
 4675    DWORD ihCS;                                                                    <
                                                                                        >  5290  alias POLYTEXT*PPOLYTEXT, NPPOLYTEXT, LPPOLYTEXT;
 4676    LOGCOLORSPACEA lcs;                                                            |  5291  alias LOGCOLORSPACE*LPLOGCOLORSPACE;
 4677  }                                                                                <
 4678  alias tagEMRCREATECOLORSPACE EMRCREATECOLORSPACE;                                <
 4679  alias tagEMRCREATECOLORSPACE* PEMRCREATECOLORSPACE;                              <
 4680                                                                                   <
 4681  struct tagEMRSETCOLORSPACE {                                                     <
 4682    EMR emr;                                                                       <
 4683    DWORD ihCS;                                                                    <
 4684  }                                                                                <
 4685  alias tagEMRSETCOLORSPACE EMRSETCOLORSPACE;                                      <
 4686  alias tagEMRSETCOLORSPACE* PEMRSETCOLORSPACE;                                    <
 4687  alias tagEMRSETCOLORSPACE EMRSELECTCOLORSPACE;                                   <
 4688  alias tagEMRSETCOLORSPACE* PEMRSELECTCOLORSPACE;                                 <
 4689  alias tagEMRSETCOLORSPACE EMRDELETECOLORSPACE;                                   <
 4690  alias tagEMRSETCOLORSPACE* PEMRDELETECOLORSPACE;                                 <
 4691                                                                                   <
 4692  // #endif /* WINVER >= 0x0400 */                                                 <
 4693                                                                                   <
 4694  // #if(WINVER >= 0x0500)                                                         <
 4695                                                                                   <
 4696  struct tagEMREXTESCAPE {                                                         <
 4697    EMR emr;                                                                       <
 4698    INT iEscape;                                                                   <
 4699    INT cbEscData;                                                                 <
 4700    BYTE EscData[1];                                                               <
 4701  }                                                                                <
 4702  alias tagEMREXTESCAPE EMREXTESCAPE;                                              <
 4703  alias tagEMREXTESCAPE* PEMREXTESCAPE;                                            <
 4704  alias tagEMREXTESCAPE EMRDRAWESCAPE;                                             <
 4705  alias tagEMREXTESCAPE* PEMRDRAWESCAPE;                                           <
 4706                                                                                   <
 4707  struct tagEMRNAMEDESCAPE {                                                       <
 4708    EMR emr;                                                                       <
 4709    INT iEscape;                                                                   <
 4710    INT cbDriver;                                                                  <
 4711    INT cbEscData;                                                                 <
 4712    BYTE EscData[1];                                                               <
 4713  }                                                                                <
 4714  alias tagEMRNAMEDESCAPE EMRNAMEDESCAPE;                                          <
 4715  alias tagEMRNAMEDESCAPE* PEMRNAMEDESCAPE;                                        <
 4716                                                                                   <
 4717  enum : uint { SETICMPROFILE_EMBEDED = 0x00000001 }                               <
 4718                                                                                   <
 4719  struct tagEMRSETICMPROFILE {                                                     <
 4720    EMR emr;                                                                       <
 4721    DWORD dwFlags;                                                                 <
 4722    DWORD cbName;                                                                  <
 4723    DWORD cbData;                                                                  <
 4724    BYTE Data[1];                                                                  <
 4725  }                                                                                <
 4726  alias tagEMRSETICMPROFILE EMRSETICMPROFILE;                                      <
 4727  alias tagEMRSETICMPROFILE* PEMRSETICMPROFILE;                                    <
 4728  alias tagEMRSETICMPROFILE EMRSETICMPROFILEA;                                     <
 4729  alias tagEMRSETICMPROFILE* PEMRSETICMPROFILEA;                                   <
 4730  alias tagEMRSETICMPROFILE EMRSETICMPROFILEW;                                     <
 4731  alias tagEMRSETICMPROFILE* PEMRSETICMPROFILEW;                                   <
 4732                                                                                   <
 4733  enum : uint { CREATECOLORSPACE_EMBEDED = 0x00000001 }                            <
 4734                                                                                   <
 4735  struct tagEMRCREATECOLORSPACEW {                                                 <
 4736    EMR emr;                                                                       <
 4737    DWORD ihCS;                                                                    <
 4738    LOGCOLORSPACEW lcs;                                                            <
 4739    DWORD dwFlags;                                                                 <
 4740    DWORD cbData;                                                                  <
 4741    BYTE Data[1];                                                                  <
 4742  }                                                                                <
 4743  alias tagEMRCREATECOLORSPACEW EMRCREATECOLORSPACEW;                              <
 4744  alias tagEMRCREATECOLORSPACEW* PEMRCREATECOLORSPACEW;                            <
 4745                                                                                   <
 4746  enum : uint { COLORMATCHTOTARGET_EMBEDED = 0x00000001 }                          <
 4747                                                                                   <
 4748  struct tagCOLORMATCHTOTARGET {                                                   <
 4749    EMR emr;                                                                       <
 4750    DWORD dwAction;                                                                <
 4751    DWORD dwFlags;                                                                 <
 4752    DWORD cbName;                                                                  <
 4753    DWORD cbData;                                                                  <
 4754    BYTE Data[1];                                                                  <
 4755  }                                                                                <
 4756  alias tagCOLORMATCHTOTARGET EMRCOLORMATCHTOTARGET;                               <
 4757  alias tagCOLORMATCHTOTARGET* PEMRCOLORMATCHTOTARGET;                             <
 4758                                                                                   <
 4759  struct tagCOLORCORRECTPALETTE {                                                  <
 4760    EMR emr;                                                                       <
 4761    DWORD ihPalette;                                                               <
 4762    DWORD nFirstEntry;                                                             <
 4763    DWORD nPalEntries;                                                             <
 4764    DWORD nReserved;                                                               <
 4765  }                                                                                <
 4766  alias tagCOLORCORRECTPALETTE EMRCOLORCORRECTPALETTE;                             <
 4767  alias tagCOLORCORRECTPALETTE* PEMRCOLORCORRECTPALETTE;                           <
 4768                                                                                   <
 4769  struct tagEMRALPHABLEND {                                                        <
 4770    EMR emr;                                                                       <
 4771    RECTL rclBounds;                                                               <
 4772    LONG xDest;                                                                    <
 4773    LONG yDest;                                                                    <
 4774    LONG cxDest;                                                                   <
 4775    LONG cyDest;                                                                   <
 4776    DWORD dwRop;                                                                   <
 4777    LONG xSrc;                                                                     <
 4778    LONG ySrc;                                                                     <
 4779    XFORM xformSrc;                                                                <
 4780    COLORREF crBkColorSrc;                                                         <
 4781    DWORD iUsageSrc;                                                               <
 4782                                                                                   <
 4783    DWORD offBmiSrc;                                                               <
 4784    DWORD cbBmiSrc;                                                                <
 4785    DWORD offBitsSrc;                                                              <
 4786    DWORD cbBitsSrc;                                                               <
 4787    LONG cxSrc;                                                                    <
 4788    LONG cySrc;                                                                    <
 4789  }                                                                                <
 4790  alias tagEMRALPHABLEND EMRALPHABLEND;                                            <
 4791  alias tagEMRALPHABLEND* PEMRALPHABLEND;                                          <
 4792                                                                                   <
 4793  struct tagEMRGRADIENTFILL {                                                      <
 4794    EMR emr;                                                                       <
 4795    RECTL rclBounds;                                                               <
 4796    DWORD nVer;                                                                    <
 4797    DWORD nTri;                                                                    <
 4798    ULONG ulMode;                                                                  <
 4799    TRIVERTEX Ver[1];                                                              <
 4800  }                                                                                <
 4801  alias tagEMRGRADIENTFILL EMRGRADIENTFILL;                                        <
 4802  alias tagEMRGRADIENTFILL* PEMRGRADIENTFILL;                                      <
 4803                                                                                   <
 4804  struct tagEMRTRANSPARENTBLT {                                                    <
 4805    EMR emr;                                                                       <
 4806    RECTL rclBounds;                                                               <
 4807    LONG xDest;                                                                    <
 4808    LONG yDest;                                                                    <
 4809    LONG cxDest;                                                                   <
 4810    LONG cyDest;                                                                   <
 4811    DWORD dwRop;                                                                   <
 4812    LONG xSrc;                                                                     <
 4813    LONG ySrc;                                                                     <
 4814    XFORM xformSrc;                                                                <
 4815    COLORREF crBkColorSrc;                                                         <
 4816    DWORD iUsageSrc;                                                               <
 4817                                                                                   <
 4818    DWORD offBmiSrc;                                                               <
 4819    DWORD cbBmiSrc;                                                                <
 4820    DWORD offBitsSrc;                                                              <
 4821    DWORD cbBitsSrc;                                                               <
 4822    LONG cxSrc;                                                                    <
 4823    LONG cySrc;                                                                    <
 4824  }                                                                                <
 4825  alias tagEMRTRANSPARENTBLT EMRTRANSPARENTBLT;                                    <
 4826  alias tagEMRTRANSPARENTBLT* PEMRTRANSPARENTBLT;                                  <
 4827                                                                                   <
 4828  // #endif /* WINVER >= 0x0500 */                                                 <
 4829                                                                                   <
 4830  enum : uint { GDICOMMENT_IDENTIFIER = 0x43494447 }                               <
 4831  enum : uint { GDICOMMENT_WINDOWS_METAFILE = 0x80000001 }                         <
 4832  enum : uint { GDICOMMENT_BEGINGROUP = 0x00000002 }                               <
 4833  enum : uint { GDICOMMENT_ENDGROUP = 0x00000003 }                                 <
 4834  enum : uint { GDICOMMENT_MULTIFORMATS = 0x40000004 }                             <
 4835  enum : uint { EPS_SIGNATURE = 0x46535045 }                                       <
 4836  enum : uint { GDICOMMENT_UNICODE_STRING = 0x00000040 }                           <
 4837  enum : uint { GDICOMMENT_UNICODE_END = 0x00000080 }                              <
 4838                                                                                   <
 4839  // #endif  /* NOMETAFILE */                                                      <
 4840                                                                                   <
 4841  extern(Windows) export BOOL wglCopyContext(HGLRC, HGLRC, UINT);                  <
 4842  extern(Windows) export HGLRC wglCreateContext(HDC);                              <
 4843  extern(Windows) export HGLRC wglCreateLayerContext(HDC, int);                    <
 4844  extern(Windows) export BOOL wglDeleteContext(HGLRC);                             <
 4845  extern(Windows) export HGLRC wglGetCurrentContext();                             <
 4846  extern(Windows) export HDC wglGetCurrentDC();                                    <
 4847  extern(Windows) export PROC wglGetProcAddress(LPCSTR);                           <
 4848  extern(Windows) export BOOL wglMakeCurrent(HDC, HGLRC);                          <
 4849  extern(Windows) export BOOL wglShareLists(HGLRC, HGLRC);                         <
 4850  extern(Windows) export BOOL wglUseFontBitmapsA(HDC, DWORD, DWORD, DWORD);        <
 4851  extern(Windows) export BOOL wglUseFontBitmapsW(HDC, DWORD, DWORD, DWORD);        <
 4852  // #ifdef UNICODE                                                                <
 4853  alias wglUseFontBitmapsW wglUseFontBitmaps;                                      <
 4854  // #else                                                                         <
 4855  // #...                                                                          <
 4856  // #endif // !UNICODE                                                            <
 4857  extern(Windows) export BOOL SwapBuffers(HDC);                                    <
 4858                                                                                   <
 4859  struct _POINTFLOAT {                                                             <
 4860    FLOAT x;                                                                       <
 4861    FLOAT y;                                                                       <
 4862  }                                                                                <
 4863  alias _POINTFLOAT POINTFLOAT;                                                    <
 4864  alias _POINTFLOAT* PPOINTFLOAT;                                                  <
 4865                                                                                   <
 4866  struct _GLYPHMETRICSFLOAT {                                                      <
 4867    FLOAT gmfBlackBoxX;                                                            <
 4868    FLOAT gmfBlackBoxY;                                                            <
 4869    POINTFLOAT gmfptGlyphOrigin;                                                   <
 4870    FLOAT gmfCellIncX;                                                             <
 4871    FLOAT gmfCellIncY;                                                             <
 4872  }                                                                                <
 4873  alias _GLYPHMETRICSFLOAT GLYPHMETRICSFLOAT;                                      <
 4874  alias _GLYPHMETRICSFLOAT* PGLYPHMETRICSFLOAT;                                    <
 4875  alias _GLYPHMETRICSFLOAT* LPGLYPHMETRICSFLOAT;                                   <
 4876                                                                                   <
 4877  enum : uint { WGL_FONT_LINES = 0 }                                               <
 4878  enum : uint { WGL_FONT_POLYGONS = 1 }                                            <
 4879  extern(Windows) export BOOL wglUseFontOutlinesA(HDC, DWORD, DWORD, DWORD, FLOAT, <
 4880    FLOAT, int, LPGLYPHMETRICSFLOAT);                                              <
 4881  extern(Windows) export BOOL wglUseFontOutlinesW(HDC, DWORD, DWORD, DWORD, FLOAT, <
 4882    FLOAT, int, LPGLYPHMETRICSFLOAT);                                              <
 4883  // #ifdef UNICODE                                                                <
 4884  alias wglUseFontOutlinesW wglUseFontOutlines;                                    <
 4885  // #else                                                                         <
 4886  // #...                                                                          <
 4887  // #endif // !UNICODE                                                            <
 4888                                                                                   <
 4889  struct tagLAYERPLANEDESCRIPTOR {                                                 <
 4890    WORD nSize;                                                                    <
 4891    WORD nVersion;                                                                 <
 4892    DWORD dwFlags;                                                                 <
 4893    BYTE iPixelType;                                                               <
 4894    BYTE cColorBits;                                                               <
 4895    BYTE cRedBits;                                                                 <
 4896    BYTE cRedShift;                                                                <
 4897    BYTE cGreenBits;                                                               <
 4898    BYTE cGreenShift;                                                              <
 4899    BYTE cBlueBits;                                                                <
 4900    BYTE cBlueShift;                                                               <
 4901    BYTE cAlphaBits;                                                               <
 4902    BYTE cAlphaShift;                                                              <
 4903    BYTE cAccumBits;                                                               <
 4904    BYTE cAccumRedBits;                                                            <
 4905    BYTE cAccumGreenBits;                                                          <
 4906    BYTE cAccumBlueBits;                                                           <
 4907    BYTE cAccumAlphaBits;                                                          <
 4908    BYTE cDepthBits;                                                               <
 4909    BYTE cStencilBits;                                                             <
 4910    BYTE cAuxBuffers;                                                              <
 4911    BYTE iLayerPlane;                                                              <
 4912    BYTE bReserved;                                                                <
 4913    COLORREF crTransparent;                                                        <
 4914  }                                                                                <
 4915  alias tagLAYERPLANEDESCRIPTOR LAYERPLANEDESCRIPTOR;                              <
 4916  alias tagLAYERPLANEDESCRIPTOR* PLAYERPLANEDESCRIPTOR;                            <
 4917  alias tagLAYERPLANEDESCRIPTOR* LPLAYERPLANEDESCRIPTOR;                           <
 4918                                                                                   <
 4919  enum : uint { LPD_DOUBLEBUFFER = 0x00000001 }                                    <
 4920  enum : uint { LPD_STEREO = 0x00000002 }                                          <
 4921  enum : uint { LPD_SUPPORT_GDI = 0x00000010 }                                     <
 4922  enum : uint { LPD_SUPPORT_OPENGL = 0x00000020 }                                  <
 4923  enum : uint { LPD_SHARE_DEPTH = 0x00000040 }                                     <
 4924  enum : uint { LPD_SHARE_STENCIL = 0x00000080 }                                   <
 4925  enum : uint { LPD_SHARE_ACCUM = 0x00000100 }                                     <
 4926  enum : uint { LPD_SWAP_EXCHANGE = 0x00000200 }                                   <
 4927  enum : uint { LPD_SWAP_COPY = 0x00000400 }                                       <
 4928  enum : uint { LPD_TRANSPARENT = 0x00001000 }                                     <
 4929                                                                                   <
 4930  enum : uint { LPD_TYPE_RGBA = 0 }                                                <
 4931  enum : uint { LPD_TYPE_COLORINDEX = 1 }                                          <
 4932                                                                                   <
 4933  enum : uint { WGL_SWAP_MAIN_PLANE = 0x00000001 }                                 <
 4934  enum : uint { WGL_SWAP_OVERLAY1 = 0x00000002 }                                   <
 4935  enum : uint { WGL_SWAP_OVERLAY2 = 0x00000004 }                                   <
 4936  enum : uint { WGL_SWAP_OVERLAY3 = 0x00000008 }                                   <
 4937  enum : uint { WGL_SWAP_OVERLAY4 = 0x00000010 }                                   <
 4938  enum : uint { WGL_SWAP_OVERLAY5 = 0x00000020 }                                   <
 4939  enum : uint { WGL_SWAP_OVERLAY6 = 0x00000040 }                                   <
 4940  enum : uint { WGL_SWAP_OVERLAY7 = 0x00000080 }                                   <
 4941  enum : uint { WGL_SWAP_OVERLAY8 = 0x00000100 }                                   <
 4942  enum : uint { WGL_SWAP_OVERLAY9 = 0x00000200 }                                   <
 4943  enum : uint { WGL_SWAP_OVERLAY10 = 0x00000400 }                                  <
 4944  enum : uint { WGL_SWAP_OVERLAY11 = 0x00000800 }                                  <
 4945  enum : uint { WGL_SWAP_OVERLAY12 = 0x00001000 }                                  <
 4946  enum : uint { WGL_SWAP_OVERLAY13 = 0x00002000 }                                  <
 4947  enum : uint { WGL_SWAP_OVERLAY14 = 0x00004000 }                                  <
 4948  enum : uint { WGL_SWAP_OVERLAY15 = 0x00008000 }                                  <
 4949  enum : uint { WGL_SWAP_UNDERLAY1 = 0x00010000 }                                  <
 4950  enum : uint { WGL_SWAP_UNDERLAY2 = 0x00020000 }                                  <
 4951  enum : uint { WGL_SWAP_UNDERLAY3 = 0x00040000 }                                  <
 4952  enum : uint { WGL_SWAP_UNDERLAY4 = 0x00080000 }                                  <
 4953  enum : uint { WGL_SWAP_UNDERLAY5 = 0x00100000 }                                  <
 4954  enum : uint { WGL_SWAP_UNDERLAY6 = 0x00200000 }                                  <
 4955  enum : uint { WGL_SWAP_UNDERLAY7 = 0x00400000 }                                  <
 4956  enum : uint { WGL_SWAP_UNDERLAY8 = 0x00800000 }                                  <
 4957  enum : uint { WGL_SWAP_UNDERLAY9 = 0x01000000 }                                  <
 4958  enum : uint { WGL_SWAP_UNDERLAY10 = 0x02000000 }                                 <
 4959  enum : uint { WGL_SWAP_UNDERLAY11 = 0x04000000 }                                 <
 4960  enum : uint { WGL_SWAP_UNDERLAY12 = 0x08000000 }                                 <
 4961  enum : uint { WGL_SWAP_UNDERLAY13 = 0x10000000 }                                 <
 4962  enum : uint { WGL_SWAP_UNDERLAY14 = 0x20000000 }                                 <
 4963  enum : uint { WGL_SWAP_UNDERLAY15 = 0x40000000 }                                 <
 4964                                                                                   <
 4965  extern(Windows) export BOOL wglDescribeLayerPlane(HDC, int, int, UINT,           <
 4966    LPLAYERPLANEDESCRIPTOR);                                                       <
 4967  extern(Windows) export int wglSetLayerPaletteEntries(HDC, int, int, int,         <
 4968    COLORREF *);                                                                   <
 4969  extern(Windows) export int wglGetLayerPaletteEntries(HDC, int, int, int,         <
 4970    COLORREF *);                                                                   <
 4971  extern(Windows) export BOOL wglRealizeLayerPalette(HDC, int, BOOL);              <
 4972  extern(Windows) export BOOL wglSwapLayerBuffers(HDC, UINT);                      <
 4973                                                                                   <
 4974  // #if (WINVER >= 0x0500)                                                        <
 4975                                                                                   <
 4976  struct _WGLSWAP {                                                                <
 4977    HDC hdc;                                                                       <
 4978    UINT uiFlags;                                                                  <
 4979  }                                                                                <
 4980  alias _WGLSWAP WGLSWAP;                                                          <
 4981  alias _WGLSWAP* PWGLSWAP;                                                        <
 4982  alias _WGLSWAP* LPWGLSWAP;                                                       <
 4983                                                                                   <
 4984  enum : uint { WGL_SWAPMULTIPLE_MAX = 16 }                                        <
 4985                                                                                   <
 4986  extern(Windows) export DWORD wglSwapMultipleBuffers(UINT, WGLSWAP *);            <
 4987                                                                                   <
 4988  // #endif // (WINVER >= 0x0500)                                                  <
 4989                                                                                   <
 4990  // #endif /* NOGDI */                                                            <
 4991                                                                                   <
 4992  // #ifdef __cplusplus                                                            <
 4993  // }                                                                             <
 4994  // #endif                                                                        <
 4995                                                                                   <
 4996  // #endif /* _WINGDI_ */                                                         <
 4997                                                                                   <
                                                                                        >  5292  alias NEWTEXTMETRIC*PNEWTEXTMETRIC, NPNEWTEXTMETRIC, LPNEWTEXTMETRIC;
                                                                                        >  5293  alias ENUMLOGFONT*LPENUMLOGFONT;
                                                                                        >  5294  alias ENUMLOGFONTEX *LPENUMLOGFONTEX;
                                                                                        >  5295  alias DISPLAY_DEVICE*PDISPLAY_DEVICE, LPDISPLAY_DEVICE;