Differences From Artifact [6d620068807bb293]:
- File        
src/win32/commdlg.d
- 2011-02-23 12:53:16 - part of checkin [c2b7a98c21] on branch trunk - Initial import (user: kinaba) [annotate]
 
 
To Artifact [dce8014c88d4101f]:
- File        
src/win32/commdlg.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  *                               commdlg.d                               *
                                                                                        >     3  *                                                                       *
                                                                                        >     4  *                       Windows API header module                       *
                                                                                        >     5  *                                                                       *
                                                                                        >     6  *             Translated from MinGW API for MS-Windows 3.12             *
                                                                                        >     7  *                                                                       *
                                                                                        >     8  *                       Placed into public domain                       *
                                                                                        >     9  \***********************************************************************/
    1  module win32.commdlg;                                                                 10  module win32.commdlg;
                                                                                        >    11  pragma(lib, "comdlg32.lib");
    2                                                                                   |    12  
    3  // Translated from Microsoft Platform SDK August 2001 Edition                    <
    4  // by Y.Tomino                                                                   |    13  private import win32.w32api;
    5                                                                                   <
    6  import win32.windef;                                                             |    14  import win32.windef, win32.winuser;
    7  import win32.winuser;                                                            |    15  import win32.wingdi; // for LPLOGFONTA
    8  // inline #include <cderr.h>                                                     <
    9  // ----                                                                          <
   10                                                                                   |    16  
                                                                                        >    17  const TCHAR[]
                                                                                        >    18          LBSELCHSTRING = "commdlg_LBSelChangedNotify",
                                                                                        >    19          SHAREVISTRING = "commdlg_ShareViolation",
   11  // #ifndef _INC_CDERR                                                            |    20          FILEOKSTRING  = "commdlg_FileNameOK",
   12  // #define _INC_CDERR                                                            |    21          COLOROKSTRING = "commdlg_ColorOK",
                                                                                        >    22          SETRGBSTRING  = "commdlg_SetRGBColor",
                                                                                        >    23          HELPMSGSTRING = "commdlg_help",
                                                                                        >    24          FINDMSGSTRING = "commdlg_FindReplace";
   13                                                                                   |    25  
   14  // #if _MSC_VER > 1000                                                           <
   15  // #pragma once                                                                  <
   16  // #endif                                                                        <
                                                                                        >    26  enum : UINT {
                                                                                        >    27          CDN_FIRST          = -601, // also in commctrl.h
                                                                                        >    28          CDN_LAST           = -699,
                                                                                        >    29          CDN_INITDONE       = CDN_FIRST,
                                                                                        >    30          CDN_SELCHANGE      = CDN_FIRST - 1,
                                                                                        >    31          CDN_FOLDERCHANGE   = CDN_FIRST - 2,
                                                                                        >    32          CDN_SHAREVIOLATION = CDN_FIRST - 3,
                                                                                        >    33          CDN_HELP           = CDN_FIRST - 4,
                                                                                        >    34          CDN_FILEOK         = CDN_FIRST - 5,
                                                                                        >    35          CDN_TYPECHANGE     = CDN_FIRST - 6
   17                                                                                   |    36  }
   18  enum : uint { CDERR_DIALOGFAILURE = 0xFFFF }                                     <
   19                                                                                   |    37  
   20  enum : uint { CDERR_GENERALCODES = 0x0000 }                                      <
   21  enum : uint { CDERR_STRUCTSIZE = 0x0001 }                                        <
   22  enum : uint { CDERR_INITIALIZATION = 0x0002 }                                    <
   23  enum : uint { CDERR_NOTEMPLATE = 0x0003 }                                        <
   24  enum : uint { CDERR_NOHINSTANCE = 0x0004 }                                       <
   25  enum : uint { CDERR_LOADSTRFAILURE = 0x0005 }                                    <
   26  enum : uint { CDERR_FINDRESFAILURE = 0x0006 }                                    <
   27  enum : uint { CDERR_LOADRESFAILURE = 0x0007 }                                    <
   28  enum : uint { CDERR_LOCKRESFAILURE = 0x0008 }                                    <
   29  enum : uint { CDERR_MEMALLOCFAILURE = 0x0009 }                                   |    38  enum : UINT {
   30  enum : uint { CDERR_MEMLOCKFAILURE = 0x000A }                                    |    39          CDM_FIRST           = WM_USER + 100,
   31  enum : uint { CDERR_NOHOOK = 0x000B }                                            |    40          CDM_LAST            = WM_USER + 200,
   32  enum : uint { CDERR_REGISTERMSGFAIL = 0x000C }                                   |    41          CDM_GETSPEC         = CDM_FIRST,
                                                                                        >    42          CDM_GETFILEPATH,
                                                                                        >    43          CDM_GETFOLDERPATH,
                                                                                        >    44          CDM_GETFOLDERIDLIST,
                                                                                        >    45          CDM_SETCONTROLTEXT,
                                                                                        >    46          CDM_HIDECONTROL,
                                                                                        >    47          CDM_SETDEFEXT    // = CDM_FIRST + 6
   33                                                                                   |    48  }
   34  enum : uint { PDERR_PRINTERCODES = 0x1000 }                                      <
   35  enum : uint { PDERR_SETUPFAILURE = 0x1001 }                                      <
   36  enum : uint { PDERR_PARSEFAILURE = 0x1002 }                                      <
   37  enum : uint { PDERR_RETDEFFAILURE = 0x1003 }                                     <
   38  enum : uint { PDERR_LOADDRVFAILURE = 0x1004 }                                    <
   39  enum : uint { PDERR_GETDEVMODEFAIL = 0x1005 }                                    <
   40  enum : uint { PDERR_INITFAILURE = 0x1006 }                                       <
                                                                                        >    49  
   41  enum : uint { PDERR_NODEVICES = 0x1007 }                                         |    50  // flags for ChooseColor
   42  enum : uint { PDERR_NODEFAULTPRN = 0x1008 }                                      |    51  enum : DWORD {
   43  enum : uint { PDERR_DNDMMISMATCH = 0x1009 }                                      |    52          CC_RGBINIT              = 0x0001,
   44  enum : uint { PDERR_CREATEICFAILURE = 0x100A }                                   |    53          CC_FULLOPEN             = 0x0002,
   45  enum : uint { PDERR_PRINTERNOTFOUND = 0x100B }                                   |    54          CC_PREVENTFULLOPEN      = 0x0004,
   46  enum : uint { PDERR_DEFAULTDIFFERENT = 0x100C }                                  |    55          CC_SHOWHELP             = 0x0008,
                                                                                        >    56          CC_ENABLEHOOK           = 0x0010,
                                                                                        >    57          CC_ENABLETEMPLATE       = 0x0020,
                                                                                        >    58          CC_ENABLETEMPLATEHANDLE = 0x0040,
                                                                                        >    59          CC_SOLIDCOLOR           = 0x0080,
                                                                                        >    60          CC_ANYCOLOR             = 0x0100
   47                                                                                   |    61  }
   48  enum : uint { CFERR_CHOOSEFONTCODES = 0x2000 }                                   <
   49  enum : uint { CFERR_NOFONTS = 0x2001 }                                           <
   50  enum : uint { CFERR_MAXLESSTHANMIN = 0x2002 }                                    <
   51                                                                                   |    62  
   52  enum : uint { FNERR_FILENAMECODES = 0x3000 }                                     <
   53  enum : uint { FNERR_SUBCLASSFAILURE = 0x3001 }                                   <
   54  enum : uint { FNERR_INVALIDFILENAME = 0x3002 }                                   |    63  // flags for ChooseFont
   55  enum : uint { FNERR_BUFFERTOOSMALL = 0x3003 }                                    |    64  enum : DWORD {
                                                                                        >    65          CF_SCREENFONTS          = 0x00000001,
                                                                                        >    66          CF_PRINTERFONTS         = 0x00000002,
                                                                                        >    67          CF_BOTH                 = 0x00000003,
                                                                                        >    68          CF_SHOWHELP             = 0x00000004,
                                                                                        >    69          CF_ENABLEHOOK           = 0x00000008,
                                                                                        >    70          CF_ENABLETEMPLATE       = 0x00000010,
                                                                                        >    71          CF_ENABLETEMPLATEHANDLE = 0x00000020,
                                                                                        >    72          CF_INITTOLOGFONTSTRUCT  = 0x00000040,
                                                                                        >    73          CF_USESTYLE             = 0x00000080,
                                                                                        >    74          CF_EFFECTS              = 0x00000100,
                                                                                        >    75          CF_APPLY                = 0x00000200,
                                                                                        >    76          CF_ANSIONLY             = 0x00000400,
                                                                                        >    77          CF_SCRIPTSONLY          = CF_ANSIONLY,
                                                                                        >    78          CF_NOVECTORFONTS        = 0x00000800,
                                                                                        >    79          CF_NOOEMFONTS           = 0x00000800,
                                                                                        >    80          CF_NOSIMULATIONS        = 0x00001000,
                                                                                        >    81          CF_LIMITSIZE            = 0x00002000,
                                                                                        >    82          CF_FIXEDPITCHONLY       = 0x00004000,
                                                                                        >    83          CF_WYSIWYG              = 0x00008000,
                                                                                        >    84          CF_FORCEFONTEXIST       = 0x00010000,
                                                                                        >    85          CF_SCALABLEONLY         = 0x00020000,
                                                                                        >    86          CF_TTONLY               = 0x00040000,
                                                                                        >    87          CF_NOFACESEL            = 0x00080000,
                                                                                        >    88          CF_NOSTYLESEL           = 0x00100000,
                                                                                        >    89          CF_NOSIZESEL            = 0x00200000,
                                                                                        >    90          CF_SELECTSCRIPT         = 0x00400000,
                                                                                        >    91          CF_NOSCRIPTSEL          = 0x00800000,
                                                                                        >    92          CF_NOVERTFONTS          = 0x01000000
   56                                                                                   |    93  }
   57  enum : uint { FRERR_FINDREPLACECODES = 0x4000 }                                  <
   58  enum : uint { FRERR_BUFFERLENGTHZERO = 0x4001 }                                  <
   59                                                                                   |    94  
   60  enum : uint { CCERR_CHOOSECOLORCODES = 0x5000 }                                  <
                                                                                        >    95  // Font type for ChooseFont
                                                                                        >    96  enum : WORD {
                                                                                        >    97          BOLD_FONTTYPE      = 0x0100,
                                                                                        >    98          ITALIC_FONTTYPE    = 0x0200,
                                                                                        >    99          REGULAR_FONTTYPE   = 0x0400,
                                                                                        >   100          SCREEN_FONTTYPE    = 0x2000,
                                                                                        >   101          PRINTER_FONTTYPE   = 0x4000,
                                                                                        >   102          SIMULATED_FONTTYPE = 0x8000
   61                                                                                   |   103  }
   62  // #endif  /* !_INC_CDERR */                                                     <
   63  // ----                                                                          <
   64                                                                                   |   104  
   65  // #ifndef _INC_COMMDLG                                                          <
   66  // #define _INC_COMMDLG                                                          <
                                                                                        >   105  enum : UINT {
                                                                                        >   106          WM_CHOOSEFONT_GETLOGFONT = WM_USER +   1,
                                                                                        >   107          WM_CHOOSEFONT_SETLOGFONT = WM_USER + 101,
                                                                                        >   108          WM_CHOOSEFONT_SETFLAGS   = WM_USER + 102
   67                                                                                   |   109  }
   68  // #if(WINVER >= 0x0500)                                                         <
   69                                                                                   |   110  
   70  // #ifdef DEFINE_GUID                                                            <
                                                                                        >   111  // flags for OpenFileName
                                                                                        >   112  enum : DWORD {
                                                                                        >   113          OFN_SHAREWARN            = 0,
                                                                                        >   114          OFN_SHARENOWARN          = 0x000001,
                                                                                        >   115          OFN_READONLY             = 0x000001,
                                                                                        >   116          OFN_SHAREFALLTHROUGH     = 0x000002,
                                                                                        >   117          OFN_OVERWRITEPROMPT      = 0x000002,
                                                                                        >   118          OFN_HIDEREADONLY         = 0x000004,
                                                                                        >   119          OFN_NOCHANGEDIR          = 0x000008,
                                                                                        >   120          OFN_SHOWHELP             = 0x000010,
                                                                                        >   121          OFN_ENABLEHOOK           = 0x000020,
                                                                                        >   122          OFN_ENABLETEMPLATE       = 0x000040,
                                                                                        >   123          OFN_ENABLETEMPLATEHANDLE = 0x000080,
                                                                                        >   124          OFN_NOVALIDATE           = 0x000100,
                                                                                        >   125          OFN_ALLOWMULTISELECT     = 0x000200,
                                                                                        >   126          OFN_EXTENSIONDIFFERENT   = 0x000400,
                                                                                        >   127          OFN_PATHMUSTEXIST        = 0x000800,
                                                                                        >   128          OFN_FILEMUSTEXIST        = 0x001000,
                                                                                        >   129          OFN_CREATEPROMPT         = 0x002000,
                                                                                        >   130          OFN_SHAREAWARE           = 0x004000,
                                                                                        >   131          OFN_NOREADONLYRETURN     = 0x008000,
                                                                                        >   132          OFN_NOTESTFILECREATE     = 0x010000,
                                                                                        >   133          OFN_NONETWORKBUTTON      = 0x020000,
                                                                                        >   134          OFN_NOLONGNAMES          = 0x040000,
                                                                                        >   135          OFN_EXPLORER             = 0x080000,
                                                                                        >   136          OFN_NODEREFERENCELINKS   = 0x100000,
                                                                                        >   137          OFN_LONGNAMES            = 0x200000,
                                                                                        >   138          OFN_ENABLESIZING         = 0x800000
   71                                                                                   |   139  }
   72  // ...                                                                           <
   73                                                                                   |   140  
   74  // ...                                                                           <
                                                                                        >   141  enum : DWORD {
                                                                                        >   142          FR_DOWN                 = 0x00000001,
                                                                                        >   143          FR_WHOLEWORD            = 0x00000002,
                                                                                        >   144          FR_MATCHCASE            = 0x00000004,
                                                                                        >   145          FR_FINDNEXT             = 0x00000008,
                                                                                        >   146          FR_REPLACE              = 0x00000010,
                                                                                        >   147          FR_REPLACEALL           = 0x00000020,
                                                                                        >   148          FR_DIALOGTERM           = 0x00000040,
                                                                                        >   149          FR_SHOWHELP             = 0x00000080,
                                                                                        >   150          FR_ENABLEHOOK           = 0x00000100,
                                                                                        >   151          FR_ENABLETEMPLATE       = 0x00000200,
                                                                                        >   152          FR_NOUPDOWN             = 0x00000400,
                                                                                        >   153          FR_NOMATCHCASE          = 0x00000800,
                                                                                        >   154          FR_NOWHOLEWORD          = 0x00001000,
                                                                                        >   155          FR_ENABLETEMPLATEHANDLE = 0x00002000,
                                                                                        >   156          FR_HIDEUPDOWN           = 0x00004000,
                                                                                        >   157          FR_HIDEMATCHCASE        = 0x00008000,
                                                                                        >   158          FR_HIDEWHOLEWORD        = 0x00010000,
                                                                                        >   159          FR_MATCHDIAC            = 0x20000000,
                                                                                        >   160          FR_MATCHKASHIDA         = 0x40000000,
                                                                                        >   161          FR_MATCHALEFHAMZA       = 0x80000000
   75                                                                                   |   162  }
   76  // #endif                                                                        <
   77                                                                                   |   163  
   78  // #endif /* WINVER >= 0x0500 */                                                 <
                                                                                        >   164  enum : DWORD {
                                                                                        >   165          PD_ALLPAGES                   = 0,
                                                                                        >   166          PD_SELECTION                  = 0x000001,
                                                                                        >   167          PD_PAGENUMS                   = 0x000002,
                                                                                        >   168          PD_NOSELECTION                = 0x000004,
                                                                                        >   169          PD_NOPAGENUMS                 = 0x000008,
                                                                                        >   170          PD_COLLATE                    = 0x000010,
                                                                                        >   171          PD_PRINTTOFILE                = 0x000020,
                                                                                        >   172          PD_PRINTSETUP                 = 0x000040,
                                                                                        >   173          PD_NOWARNING                  = 0x000080,
                                                                                        >   174          PD_RETURNDC                   = 0x000100,
                                                                                        >   175          PD_RETURNIC                   = 0x000200,
                                                                                        >   176          PD_RETURNDEFAULT              = 0x000400,
                                                                                        >   177          PD_SHOWHELP                   = 0x000800,
                                                                                        >   178          PD_ENABLEPRINTHOOK            = 0x001000,
                                                                                        >   179          PD_ENABLESETUPHOOK            = 0x002000,
                                                                                        >   180          PD_ENABLEPRINTTEMPLATE        = 0x004000,
                                                                                        >   181          PD_ENABLESETUPTEMPLATE        = 0x008000,
                                                                                        >   182          PD_ENABLEPRINTTEMPLATEHANDLE  = 0x010000,
                                                                                        >   183          PD_ENABLESETUPTEMPLATEHANDLE  = 0x020000,
                                                                                        >   184          PD_USEDEVMODECOPIES           = 0x040000,
                                                                                        >   185          PD_USEDEVMODECOPIESANDCOLLATE = 0x040000,
                                                                                        >   186          PD_DISABLEPRINTTOFILE         = 0x080000,
                                                                                        >   187          PD_HIDEPRINTTOFILE            = 0x100000,
                                                                                        >   188          PD_NONETWORKBUTTON            = 0x200000
   79                                                                                   |   189  }
   80  // #ifndef GUID_DEFS_ONLY                                                        <
   81                                                                                   |   190  
   82  // #include <prsht.h>                                                            <
                                                                                        >   191  static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) {
                                                                                        >   192          enum : DWORD {
                                                                                        >   193                  PD_CURRENTPAGE      = 0x00400000,
                                                                                        >   194                  PD_NOCURRENTPAGE    = 0x00800000,
                                                                                        >   195                  PD_EXCLUSIONFLAGS   = 0x01000000,
                                                                                        >   196                  PD_USELARGETEMPLATE = 0x10000000,
   83                                                                                   |   197          }
   84  // #if !defined(_WIN64)                                                          <
                                                                                        >   198  
                                                                                        >   199          enum : HRESULT {
                                                                                        >   200                  PD_RESULT_CANCEL,
                                                                                        >   201                  PD_RESULT_PRINT,
                                                                                        >   202                  PD_RESULT_APPLY
                                                                                        >   203          }
                                                                                        >   204  
                                                                                        >   205          const DWORD START_PAGE_GENERAL = 0xFFFFFFFF;
                                                                                        >   206  }
                                                                                        >   207  
                                                                                        >   208  enum {
                                                                                        >   209          PSD_DEFAULTMINMARGINS             = 0,
                                                                                        >   210          PSD_INWININIINTLMEASURE           = 0,
                                                                                        >   211          PSD_MINMARGINS                    = 0x000001,
                                                                                        >   212          PSD_MARGINS                       = 0x000002,
                                                                                        >   213          PSD_INTHOUSANDTHSOFINCHES         = 0x000004,
                                                                                        >   214          PSD_INHUNDREDTHSOFMILLIMETERS     = 0x000008,
                                                                                        >   215          PSD_DISABLEMARGINS                = 0x000010,
                                                                                        >   216          PSD_DISABLEPRINTER                = 0x000020,
                                                                                        >   217          PSD_NOWARNING                     = 0x000080,
                                                                                        >   218          PSD_DISABLEORIENTATION            = 0x000100,
                                                                                        >   219          PSD_DISABLEPAPER                  = 0x000200,
                                                                                        >   220          PSD_RETURNDEFAULT                 = 0x000400,
                                                                                        >   221          PSD_SHOWHELP                      = 0x000800,
                                                                                        >   222          PSD_ENABLEPAGESETUPHOOK           = 0x002000,
                                                                                        >   223          PSD_ENABLEPAGESETUPTEMPLATE       = 0x008000,
                                                                                        >   224          PSD_ENABLEPAGESETUPTEMPLATEHANDLE = 0x020000,
                                                                                        >   225          PSD_ENABLEPAGEPAINTHOOK           = 0x040000,
                                                                                        >   226          PSD_DISABLEPAGEPAINTING           = 0x080000
                                                                                        >   227  }
                                                                                        >   228  
                                                                                        >   229  enum : UINT {
                                                                                        >   230          WM_PSD_PAGESETUPDLG = WM_USER,
                                                                                        >   231          WM_PSD_FULLPAGERECT,
                                                                                        >   232          WM_PSD_MINMARGINRECT,
                                                                                        >   233          WM_PSD_MARGINRECT,
                                                                                        >   234          WM_PSD_GREEKTEXTRECT,
                                                                                        >   235          WM_PSD_ENVSTAMPRECT,
                                                                                        >   236          WM_PSD_YAFULLPAGERECT // = WM_USER + 6
                                                                                        >   237  }
                                                                                        >   238  
                                                                                        >   239  enum : int {
                                                                                        >   240          CD_LBSELNOITEMS = -1,
                                                                                        >   241          CD_LBSELCHANGE,
                                                                                        >   242          CD_LBSELSUB,
                                                                                        >   243          CD_LBSELADD
                                                                                        >   244  }
                                                                                        >   245  
                                                                                        >   246  const WORD DN_DEFAULTPRN = 1;
                                                                                        >   247  
                                                                                        >   248  /+
                                                                                        >   249  // Both MinGW and the windows docs indicate that there are macros for the send m
                                                                                        >   250  // the controls. These seem to be totally unnecessary -- and at least one of Min
                                                                                        >   251  // Windows Docs is buggy!
                                                                                        >   252  
                                                                                        >   253  int CommDlg_OpenSave_GetSpec(HWND hWndControl, LPARAM lparam, WPARAM wParam) {
                                                                                        >   254          return SendMessage(hWndControl, CDM_GETSPEC, wParam, lParam);
                                                                                        >   255  }
                                                                                        >   256  
                                                                                        >   257  int CommDlg_OpenSave_GetFilePath(HWND hWndControl, LPARAM lparam, WPARAM wParam)
                                                                                        >   258          return SendMessage(hWndControl, CDM_GETFILEPATH, wParam, lParam);
                                                                                        >   259  }
                                                                                        >   260  
                                                                                        >   261  int CommDlg_OpenSave_GetFolderPath(HWND hWndControl, LPARAM lparam, WPARAM wPara
                                                                                        >   262          return SendMessage(hWndControl, CDM_GETFOLDERPATH, wParam, lParam);
                                                                                        >   263  }
                                                                                        >   264  
                                                                                        >   265  int CommDlg_OpenSave_GetFolderIDList(HWND hWndControl, LPARAM lparam, WPARAM wPa
                                                                                        >   266          return SendMessage(hWndControl, CDM_GETFOLDERIDLIST, wParam, lParam);
                                                                                        >   267  }
                                                                                        >   268  
                                                                                        >   269  void CommDlg_OpenSave_SetControlText(HWND hWndControl, LPARAM lparam, WPARAM wPa
                                                                                        >   270          return SendMessage(hWndControl, CDM_SETCONTROLTEXT, wParam, lParam);
                                                                                        >   271  }
                                                                                        >   272  
                                                                                        >   273  void CommDlg_OpenSave_HideControl(HWND hWndControl, WPARAM wParam) {
                                                                                        >   274          return SendMessage(hWndControl, CDM_HIDECONTROL, wParam, 0);
                                                                                        >   275  }
                                                                                        >   276  
                                                                                        >   277  void CommDlg_OpenSave_SetDefExt(HWND hWndControl, TCHAR* lparam) {
                                                                                        >   278          return SendMessage(hWndControl, CDM_SETCONTROLTEXT, 0, cast(LPARAM)lPara
                                                                                        >   279  }
                                                                                        >   280  
                                                                                        >   281  // These aliases seem even more unnecessary
                                                                                        >   282  alias CommDlg_OpenSave_GetSpec
                                                                                        >   283          CommDlg_OpenSave_GetSpecA, CommDlg_OpenSave_GetSpecW;
                                                                                        >   284  alias CommDlg_OpenSave_GetFilePath
                                                                                        >   285          CommDlg_OpenSave_GetFilePathA, CommDlg_OpenSave_GetFilePathW;
                                                                                        >   286  alias CommDlg_OpenSave_GetFolderPath
                                                                                        >   287          CommDlg_OpenSave_GetFolderPathA, CommDlg_OpenSave_GetFolderPathW;
                                                                                        >   288  +/
                                                                                        >   289  
                                                                                        >   290  // Callbacks.
                                                                                        >   291  extern(Windows) {
                                                                                        >   292  alias UINT function (HWND, UINT, WPARAM, LPARAM)
                                                                                        >   293          LPCCHOOKPROC, LPCFHOOKPROC, LPFRHOOKPROC, LPOFNHOOKPROC,
                                                                                        >   294          LPPAGEPAINTHOOK, LPPAGESETUPHOOK, LPSETUPHOOKPROC, LPPRINTHOOKPROC;
                                                                                        >   295  }
                                                                                        >   296  
   85  align(1):                                                                        |   297  align (1):
   86  // #endif                                                                        <
   87                                                                                   |   298  
   88  // #ifdef __cplusplus                                                            <
   89  // extern "C" {            /* Assume C declarations for C++ */                   <
   90  // #endif  /* __cplusplus */                                                     <
                                                                                        >   299  struct CHOOSECOLORA {
                                                                                        >   300          DWORD        lStructSize = CHOOSECOLORA.sizeof;
                                                                                        >   301          HWND         hwndOwner;
                                                                                        >   302          HWND         hInstance;
                                                                                        >   303          COLORREF     rgbResult;
                                                                                        >   304          COLORREF*    lpCustColors;
                                                                                        >   305          DWORD        Flags;
                                                                                        >   306          LPARAM       lCustData;
                                                                                        >   307          LPCCHOOKPROC lpfnHook;
                                                                                        >   308          LPCSTR       lpTemplateName;
   91                                                                                   |   309  }
   92  // #ifndef WINCOMMDLGAPI                                                         <
   93  // #if !defined(_COMDLG32_)                                                      <
   94  // #define WINCOMMDLGAPI DECLSPEC_IMPORT                                         <
   95  // #else                                                                         <
   96  // #...                                                                          <
   97  // #endif                                                                        <
   98  // #endif // WINCOMMDLGAPI                                                       <
                                                                                        >   310  alias CHOOSECOLORA* LPCHOOSECOLORA;
   99                                                                                   |   311  
  100  // #if(WINVER >= 0x0400)                                                         <
  101  // #ifndef SNDMSG                                                                <
  102  // #ifdef __cplusplus                                                            <
  103  // #ifndef _MAC                                                                  <
  104  // #define SNDMSG ::SendMessage                                                  <
  105  // #else                                                                         <
  106  // #...                                                                          <
  107  // #endif                                                                        <
  108  // #else   /* __cplusplus */                                                     <
  109  // #ifndef _MAC                                                                  <
  110  // #...                                                                          <
  111  // #else                                                                         <
  112  // #...                                                                          <
  113  // #endif                                                                        <
  114  // #endif  /* __cplusplus */                                                     <
  115  // #endif  // ifndef SNDMSG                                                      <
  116  // #endif /* WINVER >= 0x0400 */                                                 <
                                                                                        >   312  struct CHOOSECOLORW {
                                                                                        >   313          DWORD        lStructSize = CHOOSECOLORW.sizeof;
                                                                                        >   314          HWND         hwndOwner;
                                                                                        >   315          HWND         hInstance;
                                                                                        >   316          COLORREF     rgbResult;
                                                                                        >   317          COLORREF*    lpCustColors;
                                                                                        >   318          DWORD        Flags;
                                                                                        >   319          LPARAM       lCustData;
                                                                                        >   320          LPCCHOOKPROC lpfnHook;
                                                                                        >   321          LPCWSTR      lpTemplateName;
  117                                                                                   |   322  }
  118  // #ifdef _MAC                                                                   <
  119  // ...                                                                           <
  120  // #endif                                                                        <
                                                                                        >   323  alias CHOOSECOLORW* LPCHOOSECOLORW;
  121                                                                                   |   324  
  122  extern(Windows) alias UINT_PTR function(HWND, UINT, WPARAM, LPARAM) LPOFNHOOKPRO <
                                                                                        >   325  align (4) struct CHOOSEFONTA {
                                                                                        >   326          DWORD        lStructSize = CHOOSEFONTA.sizeof;
                                                                                        >   327          HWND         hwndOwner;
                                                                                        >   328          HDC          hDC;
                                                                                        >   329          LPLOGFONTA   lpLogFont;
                                                                                        >   330          INT          iPointSize;
                                                                                        >   331          DWORD        Flags;
                                                                                        >   332          DWORD        rgbColors;
                                                                                        >   333          LPARAM       lCustData;
                                                                                        >   334          LPCFHOOKPROC lpfnHook;
                                                                                        >   335          LPCSTR       lpTemplateName;
                                                                                        >   336          HINSTANCE    hInstance;
                                                                                        >   337          LPSTR        lpszStyle;
                                                                                        >   338          WORD         nFontType;
                                                                                        >   339          //WORD         ___MISSING_ALIGNMENT__;
                                                                                        >   340          INT          nSizeMin;
                                                                                        >   341          INT          nSizeMax;
  123                                                                                   |   342  }
  124  // #ifndef CDSIZEOF_STRUCT                                                       <
  125  // #define CDSIZEOF_STRUCT(structname, member) (((int)((LPBYTE)(&((structname*)0 <
  126  // #endif                                                                        <
                                                                                        >   343  alias CHOOSEFONTA* LPCHOOSEFONTA;
  127                                                                                   |   344  
  128  // #ifndef DUMMYUNIONNAME                                                        <
  129  // #ifdef NONAMELESSUNION                                                        <
  130  // #...                                                                          <
  131  // #endif // NONAMELESSUNION                                                     <
  132  // #endif // DUMMYUNIONNAME                                                      <
                                                                                        >   345  align (4) struct CHOOSEFONTW {
                                                                                        >   346          DWORD        lStructSize = CHOOSEFONTW.sizeof;
                                                                                        >   347          HWND         hwndOwner;
                                                                                        >   348          HDC          hDC;
                                                                                        >   349          LPLOGFONTW   lpLogFont;
                                                                                        >   350          INT          iPointSize;
                                                                                        >   351          DWORD        Flags;
                                                                                        >   352          DWORD        rgbColors;
                                                                                        >   353          LPARAM       lCustData;
                                                                                        >   354          LPCFHOOKPROC lpfnHook;
                                                                                        >   355          LPCWSTR      lpTemplateName;
                                                                                        >   356          HINSTANCE    hInstance;
                                                                                        >   357          LPWSTR       lpszStyle;
                                                                                        >   358          WORD         nFontType;
                                                                                        >   359          //WORD         ___MISSING_ALIGNMENT__;
                                                                                        >   360          INT          nSizeMin;
                                                                                        >   361          INT          nSizeMax;
  133                                                                                   |   362  }
                                                                                        >   363  alias CHOOSEFONTW* LPCHOOSEFONTW;
                                                                                        >   364  
  134  struct tagOFN_NT4A {                                                             |   365  struct DEVNAMES {
                                                                                        >   366          WORD wDriverOffset;
                                                                                        >   367          WORD wDeviceOffset;
                                                                                        >   368          WORD wOutputOffset;
                                                                                        >   369          WORD wDefault;
                                                                                        >   370  }
                                                                                        >   371  alias DEVNAMES* LPDEVNAMES;
                                                                                        >   372  
                                                                                        >   373  struct FINDREPLACEA {
  135    DWORD lStructSize;                                                             |   374          DWORD        lStructSize = FINDREPLACEA.sizeof;
  136    HWND hwndOwner;                                                                |   375          HWND         hwndOwner;
  137    HINSTANCE hInstance;                                                           |   376          HINSTANCE    hInstance;
                                                                                        >   377          DWORD        Flags;
                                                                                        >   378          LPSTR        lpstrFindWhat;
                                                                                        >   379          LPSTR        lpstrReplaceWith;
                                                                                        >   380          WORD         wFindWhatLen;
                                                                                        >   381          WORD         wReplaceWithLen;
                                                                                        >   382          LPARAM       lCustData;
                                                                                        >   383          LPFRHOOKPROC lpfnHook;
                                                                                        >   384          LPCSTR       lpTemplateName;
                                                                                        >   385  }
                                                                                        >   386  alias FINDREPLACEA* LPFINDREPLACEA;
                                                                                        >   387  
                                                                                        >   388  struct FINDREPLACEW {
                                                                                        >   389          DWORD        lStructSize = FINDREPLACEW.sizeof;
                                                                                        >   390          HWND         hwndOwner;
                                                                                        >   391          HINSTANCE    hInstance;
                                                                                        >   392          DWORD        Flags;
                                                                                        >   393          LPWSTR       lpstrFindWhat;
                                                                                        >   394          LPWSTR       lpstrReplaceWith;
                                                                                        >   395          WORD         wFindWhatLen;
                                                                                        >   396          WORD         wReplaceWithLen;
                                                                                        >   397          LPARAM       lCustData;
                                                                                        >   398          LPFRHOOKPROC lpfnHook;
                                                                                        >   399          LPCWSTR      lpTemplateName;
                                                                                        >   400  }
                                                                                        >   401  alias FINDREPLACEW* LPFINDREPLACEW;
                                                                                        >   402  
                                                                                        >   403  struct OPENFILENAMEA {
                                                                                        >   404          DWORD         lStructSize = OPENFILENAMEA.sizeof;
                                                                                        >   405          HWND          hwndOwner;
                                                                                        >   406          HINSTANCE     hInstance;
  138    LPCSTR lpstrFilter;                                                            |   407          LPCSTR        lpstrFilter;
  139    LPSTR lpstrCustomFilter;                                                       |   408          LPSTR         lpstrCustomFilter;
  140    DWORD nMaxCustFilter;                                                          |   409          DWORD         nMaxCustFilter;
  141    DWORD nFilterIndex;                                                            |   410          DWORD         nFilterIndex;
  142    LPSTR lpstrFile;                                                               |   411          LPSTR         lpstrFile;
  143    DWORD nMaxFile;                                                                |   412          DWORD         nMaxFile;
  144    LPSTR lpstrFileTitle;                                                          |   413          LPSTR         lpstrFileTitle;
  145    DWORD nMaxFileTitle;                                                           |   414          DWORD         nMaxFileTitle;
  146    LPCSTR lpstrInitialDir;                                                        |   415          LPCSTR        lpstrInitialDir;
  147    LPCSTR lpstrTitle;                                                             |   416          LPCSTR        lpstrTitle;
  148    DWORD Flags;                                                                   |   417          DWORD         Flags;
  149    WORD nFileOffset;                                                              |   418          WORD          nFileOffset;
  150    WORD nFileExtension;                                                           |   419          WORD          nFileExtension;
  151    LPCSTR lpstrDefExt;                                                            |   420          LPCSTR        lpstrDefExt;
  152    LPARAM lCustData;                                                              |   421          DWORD         lCustData;
  153    LPOFNHOOKPROC lpfnHook;                                                        |   422          LPOFNHOOKPROC lpfnHook;
  154    LPCSTR lpTemplateName;                                                         |   423          LPCSTR        lpTemplateName;
                                                                                        >   424  
                                                                                        >   425      static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x0500) {
                                                                                        >   426          void          *pvReserved;
                                                                                        >   427          DWORD         dwReserved;
                                                                                        >   428          DWORD         FlagsEx;
                                                                                        >   429      }
                                                                                        >   430  }
                                                                                        >   431  alias OPENFILENAMEA* LPOPENFILENAMEA;
                                                                                        >   432  
                                                                                        >   433  struct OPENFILENAMEW {
                                                                                        >   434          DWORD         lStructSize = OPENFILENAMEW.sizeof;
                                                                                        >   435          HWND          hwndOwner;
                                                                                        >   436          HINSTANCE     hInstance;
                                                                                        >   437          LPCWSTR       lpstrFilter;
                                                                                        >   438          LPWSTR        lpstrCustomFilter;
                                                                                        >   439          DWORD         nMaxCustFilter;
                                                                                        >   440          DWORD         nFilterIndex;
                                                                                        >   441          LPWSTR        lpstrFile;
                                                                                        >   442          DWORD         nMaxFile;
                                                                                        >   443          LPWSTR        lpstrFileTitle;
                                                                                        >   444          DWORD         nMaxFileTitle;
                                                                                        >   445          LPCWSTR       lpstrInitialDir;
                                                                                        >   446          LPCWSTR       lpstrTitle;
                                                                                        >   447          DWORD         Flags;
                                                                                        >   448          WORD          nFileOffset;
                                                                                        >   449          WORD          nFileExtension;
                                                                                        >   450          LPCWSTR       lpstrDefExt;
                                                                                        >   451          DWORD         lCustData;
                                                                                        >   452          LPOFNHOOKPROC lpfnHook;
                                                                                        >   453          LPCWSTR       lpTemplateName;
                                                                                        >   454  
                                                                                        >   455      static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x0500) {
                                                                                        >   456          void          *pvReserved;
                                                                                        >   457          DWORD         dwReserved;
                                                                                        >   458          DWORD         FlagsEx;
                                                                                        >   459      }
                                                                                        >   460  }
                                                                                        >   461  alias OPENFILENAMEW* LPOPENFILENAMEW;
                                                                                        >   462  
                                                                                        >   463  const size_t OPENFILENAME_SIZE_VERSION_400 = 76;
                                                                                        >   464  
                                                                                        >   465  struct OFNOTIFYA {
                                                                                        >   466          NMHDR           hdr;
                                                                                        >   467          LPOPENFILENAMEA lpOFN;
                                                                                        >   468          LPSTR           pszFile;
                                                                                        >   469  }
                                                                                        >   470  alias OFNOTIFYA* LPOFNOTIFYA;
                                                                                        >   471  
                                                                                        >   472  struct OFNOTIFYW {
                                                                                        >   473          NMHDR           hdr;
                                                                                        >   474          LPOPENFILENAMEW lpOFN;
                                                                                        >   475          LPWSTR          pszFile;
                                                                                        >   476  }
                                                                                        >   477  alias OFNOTIFYW* LPOFNOTIFYW;
                                                                                        >   478  
                                                                                        >   479  struct PAGESETUPDLGA {
                                                                                        >   480          DWORD           lStructSize = PAGESETUPDLGA.sizeof;
                                                                                        >   481          HWND            hwndOwner;
                                                                                        >   482          HGLOBAL         hDevMode;
                                                                                        >   483          HGLOBAL         hDevNames;
                                                                                        >   484          DWORD           Flags;
                                                                                        >   485          POINT           ptPaperSize;
                                                                                        >   486          RECT            rtMinMargin;
                                                                                        >   487          RECT            rtMargin;
                                                                                        >   488          HINSTANCE       hInstance;
                                                                                        >   489          LPARAM          lCustData;
                                                                                        >   490          LPPAGESETUPHOOK lpfnPageSetupHook;
                                                                                        >   491          LPPAGEPAINTHOOK lpfnPagePaintHook;
                                                                                        >   492          LPCSTR          lpPageSetupTemplateName;
                                                                                        >   493          HGLOBAL         hPageSetupTemplate;
                                                                                        >   494  }
                                                                                        >   495  alias PAGESETUPDLGA* LPPAGESETUPDLGA;
                                                                                        >   496  
                                                                                        >   497  struct PAGESETUPDLGW {
                                                                                        >   498          DWORD           lStructSize = PAGESETUPDLGW.sizeof;
                                                                                        >   499          HWND            hwndOwner;
                                                                                        >   500          HGLOBAL         hDevMode;
                                                                                        >   501          HGLOBAL         hDevNames;
                                                                                        >   502          DWORD           Flags;
                                                                                        >   503          POINT           ptPaperSize;
                                                                                        >   504          RECT            rtMinMargin;
                                                                                        >   505          RECT            rtMargin;
                                                                                        >   506          HINSTANCE       hInstance;
                                                                                        >   507          LPARAM          lCustData;
                                                                                        >   508          LPPAGESETUPHOOK lpfnPageSetupHook;
                                                                                        >   509          LPPAGEPAINTHOOK lpfnPagePaintHook;
                                                                                        >   510          LPCWSTR         lpPageSetupTemplateName;
                                                                                        >   511          HGLOBAL         hPageSetupTemplate;
  155  }                                                                                    512  }
  156  alias tagOFN_NT4A OPENFILENAME_NT4A;                                             |   513  alias PAGESETUPDLGW* LPPAGESETUPDLGW;
  157  alias tagOFN_NT4A* LPOPENFILENAME_NT4A;                                          <
  158                                                                                   |   514  
  159  struct tagOFN_NT4W {                                                             |   515  struct PRINTDLGA {
  160    DWORD lStructSize;                                                             |   516          DWORD           lStructSize = PRINTDLGA.sizeof;
  161    HWND hwndOwner;                                                                |   517          HWND            hwndOwner;
                                                                                        >   518          HANDLE          hDevMode;
  162    HINSTANCE hInstance;                                                           |   519          HANDLE          hDevNames;
  163    LPCWSTR lpstrFilter;                                                           |   520          HDC             hDC;
  164    LPWSTR lpstrCustomFilter;                                                      |   521          DWORD           Flags;
  165    DWORD nMaxCustFilter;                                                          |   522          WORD            nFromPage;
  166    DWORD nFilterIndex;                                                            |   523          WORD            nToPage;
  167    LPWSTR lpstrFile;                                                              |   524          WORD            nMinPage;
  168    DWORD nMaxFile;                                                                |   525          WORD            nMaxPage;
  169    LPWSTR lpstrFileTitle;                                                         |   526          WORD            nCopies;
  170    DWORD nMaxFileTitle;                                                           |   527          HINSTANCE       hInstance;
  171    LPCWSTR lpstrInitialDir;                                                       <
  172    LPCWSTR lpstrTitle;                                                            <
  173    DWORD Flags;                                                                   <
  174    WORD nFileOffset;                                                              <
  175    WORD nFileExtension;                                                           <
  176    LPCWSTR lpstrDefExt;                                                           <
  177    LPARAM lCustData;                                                              |   528          DWORD           lCustData;
  178    LPOFNHOOKPROC lpfnHook;                                                        |   529          LPPRINTHOOKPROC lpfnPrintHook;
  179    LPCWSTR lpTemplateName;                                                        <
  180  }                                                                                <
  181  alias tagOFN_NT4W OPENFILENAME_NT4W;                                             <
  182  alias tagOFN_NT4W* LPOPENFILENAME_NT4W;                                          <
  183                                                                                   <
  184  // #ifdef UNICODE                                                                <
  185  alias OPENFILENAME_NT4W OPENFILENAME_NT4;                                        <
  186  alias LPOPENFILENAME_NT4W LPOPENFILENAME_NT4;                                    <
  187  // #else                                                                         <
  188  // ...                                                                           <
  189  // #endif // UNICODE                                                             <
  190                                                                                   <
  191  struct tagOFNA {                                                                 <
  192    DWORD lStructSize;                                                             <
  193    HWND hwndOwner;                                                                <
  194    HINSTANCE hInstance;                                                           <
  195    LPCSTR lpstrFilter;                                                            <
  196    LPSTR lpstrCustomFilter;                                                       <
  197    DWORD nMaxCustFilter;                                                          <
  198    DWORD nFilterIndex;                                                            <
  199    LPSTR lpstrFile;                                                               <
  200    DWORD nMaxFile;                                                                <
  201    LPSTR lpstrFileTitle;                                                          <
  202    DWORD nMaxFileTitle;                                                           <
  203    LPCSTR lpstrInitialDir;                                                        <
  204    LPCSTR lpstrTitle;                                                             <
  205    DWORD Flags;                                                                   <
  206    WORD nFileOffset;                                                              <
  207    WORD nFileExtension;                                                           <
  208    LPCSTR lpstrDefExt;                                                            <
  209    LPARAM lCustData;                                                              <
  210    LPOFNHOOKPROC lpfnHook;                                                        |   530          LPSETUPHOOKPROC lpfnSetupHook;
  211    LPCSTR lpTemplateName;                                                         |   531          LPCSTR          lpPrintTemplateName;
  212  // #ifdef _MAC                                                                   <
  213  // ...                                                                           <
  214  // #endif                                                                        <
  215  // #if (_WIN32_WINNT >= 0x0500)                                                  <
  216    void *                pvReserved;                                              <
  217    DWORD dwReserved;                                                              <
  218    DWORD FlagsEx;                                                                 <
  219  // #endif // (_WIN32_WINNT >= 0x0500)                                            <
  220  }                                                                                <
  221  alias tagOFNA OPENFILENAMEA;                                                     <
  222  alias tagOFNA* LPOPENFILENAMEA;                                                  <
  223                                                                                   <
  224  struct tagOFNW {                                                                 <
  225    DWORD lStructSize;                                                             <
  226    HWND hwndOwner;                                                                <
  227    HINSTANCE hInstance;                                                           <
  228    LPCWSTR lpstrFilter;                                                           <
  229    LPWSTR lpstrCustomFilter;                                                      <
  230    DWORD nMaxCustFilter;                                                          <
  231    DWORD nFilterIndex;                                                            <
  232    LPWSTR lpstrFile;                                                              <
  233    DWORD nMaxFile;                                                                <
  234    LPWSTR lpstrFileTitle;                                                         <
  235    DWORD nMaxFileTitle;                                                           <
  236    LPCWSTR lpstrInitialDir;                                                       <
  237    LPCWSTR lpstrTitle;                                                            <
  238    DWORD Flags;                                                                   <
  239    WORD nFileOffset;                                                              <
  240    WORD nFileExtension;                                                           <
  241    LPCWSTR lpstrDefExt;                                                           <
  242    LPARAM lCustData;                                                              <
  243    LPOFNHOOKPROC lpfnHook;                                                        <
  244    LPCWSTR lpTemplateName;                                                        |   532          LPCSTR          lpSetupTemplateName;
  245  // #ifdef _MAC                                                                   <
  246  // ...                                                                           <
  247  // #endif                                                                        <
  248  // #if (_WIN32_WINNT >= 0x0500)                                                  <
  249    void *                pvReserved;                                              <
  250    DWORD dwReserved;                                                              <
  251    DWORD FlagsEx;                                                                 <
  252  // #endif // (_WIN32_WINNT >= 0x0500)                                            <
                                                                                        >   533          HANDLE          hPrintTemplate;
                                                                                        >   534          HANDLE          hSetupTemplate;
  253  }                                                                                    535  }
  254  alias tagOFNW OPENFILENAMEW;                                                     |   536  alias PRINTDLGA* LPPRINTDLGA;
  255  alias tagOFNW* LPOPENFILENAMEW;                                                  <
  256                                                                                   |   537  
                                                                                        >   538  struct PRINTDLGW {
  257  // #ifdef UNICODE                                                                |   539          DWORD           lStructSize = PRINTDLGW.sizeof;
  258  alias OPENFILENAMEW OPENFILENAME;                                                |   540          HWND            hwndOwner;
  259  alias LPOPENFILENAMEW LPOPENFILENAME;                                            |   541          HANDLE          hDevMode;
  260  // #else                                                                         |   542          HANDLE          hDevNames;
  261  // ...                                                                           |   543          HDC             hDC;
  262  // #endif // UNICODE                                                             |   544          DWORD           Flags;
  263                                                                                   <
                                                                                        >   545          WORD            nFromPage;
  264  // #if (_WIN32_WINNT >= 0x0500)                                                  |   546          WORD            nToPage;
  265  // #define OPENFILENAME_SIZE_VERSION_400A CDSIZEOF_STRUCT(OPENFILENAMEA,lpTempla |   547          WORD            nMinPage;
  266  // #define OPENFILENAME_SIZE_VERSION_400W CDSIZEOF_STRUCT(OPENFILENAMEW,lpTempla |   548          WORD            nMaxPage;
  267  // #ifdef UNICODE                                                                |   549          WORD            nCopies;
  268  // #define OPENFILENAME_SIZE_VERSION_400 OPENFILENAME_SIZE_VERSION_400W          |   550          HINSTANCE       hInstance;
  269  // #else                                                                         |   551          DWORD           lCustData;
  270  // #...                                                                          |   552          LPPRINTHOOKPROC lpfnPrintHook;
  271  // #endif // !UNICODE                                                            |   553          LPSETUPHOOKPROC lpfnSetupHook;
  272  // #endif // (_WIN32_WINNT >= 0x0500)                                            |   554          LPCWSTR         lpPrintTemplateName;
  273                                                                                   <
                                                                                        >   555          LPCWSTR         lpSetupTemplateName;
  274  extern(Windows) export BOOL GetOpenFileNameA(LPOPENFILENAMEA);                   |   556          HANDLE          hPrintTemplate;
  275  extern(Windows) export BOOL GetOpenFileNameW(LPOPENFILENAMEW);                   |   557          HANDLE          hSetupTemplate;
  276  // #ifdef UNICODE                                                                <
  277  alias GetOpenFileNameW GetOpenFileName;                                          <
  278  // #else                                                                         <
  279  // #...                                                                          <
  280  // #endif // !UNICODE                                                            <
  281  extern(Windows) export BOOL GetSaveFileNameA(LPOPENFILENAMEA);                   <
  282  extern(Windows) export BOOL GetSaveFileNameW(LPOPENFILENAMEW);                   <
  283  // #ifdef UNICODE                                                                <
  284  alias GetSaveFileNameW GetSaveFileName;                                          <
  285  // #else                                                                         <
  286  // #...                                                                          <
  287  // #endif // !UNICODE                                                            <
  288                                                                                   <
  289  extern(Windows) export short GetFileTitleA(LPCSTR, LPSTR, WORD);                 <
  290  extern(Windows) export short GetFileTitleW(LPCWSTR, LPWSTR, WORD);               <
  291  // #ifdef UNICODE                                                                <
  292  alias GetFileTitleW GetFileTitle;                                                <
  293  // #else                                                                         <
  294  // #...                                                                          <
  295  // #endif // !UNICODE                                                            <
  296                                                                                   <
  297  enum : uint { OFN_READONLY = 0x00000001 }                                        <
  298  enum : uint { OFN_OVERWRITEPROMPT = 0x00000002 }                                 <
  299  enum : uint { OFN_HIDEREADONLY = 0x00000004 }                                    <
  300  enum : uint { OFN_NOCHANGEDIR = 0x00000008 }                                     <
  301  enum : uint { OFN_SHOWHELP = 0x00000010 }                                        <
  302  enum : uint { OFN_ENABLEHOOK = 0x00000020 }                                      <
  303  enum : uint { OFN_ENABLETEMPLATE = 0x00000040 }                                  <
  304  enum : uint { OFN_ENABLETEMPLATEHANDLE = 0x00000080 }                            <
  305  enum : uint { OFN_NOVALIDATE = 0x00000100 }                                      <
  306  enum : uint { OFN_ALLOWMULTISELECT = 0x00000200 }                                <
  307  enum : uint { OFN_EXTENSIONDIFFERENT = 0x00000400 }                              <
  308  enum : uint { OFN_PATHMUSTEXIST = 0x00000800 }                                   <
  309  enum : uint { OFN_FILEMUSTEXIST = 0x00001000 }                                   <
  310  enum : uint { OFN_CREATEPROMPT = 0x00002000 }                                    <
  311  enum : uint { OFN_SHAREAWARE = 0x00004000 }                                      <
  312  enum : uint { OFN_NOREADONLYRETURN = 0x00008000 }                                <
  313  enum : uint { OFN_NOTESTFILECREATE = 0x00010000 }                                <
  314  enum : uint { OFN_NONETWORKBUTTON = 0x00020000 }                                 <
  315  enum : uint { OFN_NOLONGNAMES = 0x00040000 }                                     <
  316  // #if(WINVER >= 0x0400)                                                         <
  317  enum : uint { OFN_EXPLORER = 0x00080000 }                                        <
  318  enum : uint { OFN_NODEREFERENCELINKS = 0x00100000 }                              <
  319  enum : uint { OFN_LONGNAMES = 0x00200000 }                                       <
  320  enum : uint { OFN_ENABLEINCLUDENOTIFY = 0x00400000 }                             <
  321  enum : uint { OFN_ENABLESIZING = 0x00800000 }                                    <
  322  // #endif /* WINVER >= 0x0400 */                                                 <
  323  // #if (_WIN32_WINNT >= 0x0500)                                                  <
  324  enum : uint { OFN_DONTADDTORECENT = 0x02000000 }                                 <
  325  enum : uint { OFN_FORCESHOWHIDDEN = 0x10000000 }                                 <
  326  // #endif // (_WIN32_WINNT >= 0x0500)                                            <
  327                                                                                   <
  328  // #if (_WIN32_WINNT >= 0x0500)                                                  <
  329  enum : uint { OFN_EX_NOPLACESBAR = 0x00000001 }                                  <
  330  // #endif // (_WIN32_WINNT >= 0x0500)                                            <
  331                                                                                   <
  332  enum : uint { OFN_SHAREFALLTHROUGH = 2 }                                         <
  333  enum : uint { OFN_SHARENOWARN = 1 }                                              <
  334  enum : uint { OFN_SHAREWARN = 0 }                                                <
  335                                                                                   <
  336  extern(Windows) alias UINT_PTR function(HWND, UINT, WPARAM, LPARAM) LPCCHOOKPROC <
  337                                                                                   <
  338  // #if(WINVER >= 0x0400)                                                         <
  339                                                                                   <
  340  struct _OFNOTIFYA {                                                              <
  341    NMHDR hdr;                                                                     <
  342    LPOPENFILENAMEA lpOFN;                                                         <
  343    LPSTR pszFile;                                                                 <
  344  }                                                                                    558  }
  345  alias _OFNOTIFYA OFNOTIFYA;                                                      |   559  alias PRINTDLGW* LPPRINTDLGW;
  346  alias _OFNOTIFYA* LPOFNOTIFYA;                                                   <
  347                                                                                   |   560  
                                                                                        >   561  static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) {
  348  struct _OFNOTIFYW {                                                              |   562          import win32.unknwn; // for LPUNKNOWN
  349    NMHDR hdr;                                                                     |   563          import win32.prsht;  // for HPROPSHEETPAGE
  350    LPOPENFILENAMEW lpOFN;                                                         <
  351    LPWSTR pszFile;                                                                <
  352  }                                                                                |   564  
                                                                                        >   565          struct PRINTPAGERANGE {
                                                                                        >   566                  DWORD  nFromPage;
  353  alias _OFNOTIFYW OFNOTIFYW;                                                      |   567                  DWORD  nToPage;
  354  alias _OFNOTIFYW* LPOFNOTIFYW;                                                   <
  355                                                                                   |   568          }
  356  // #ifdef UNICODE                                                                <
  357  alias OFNOTIFYW OFNOTIFY;                                                        <
  358  alias LPOFNOTIFYW LPOFNOTIFY;                                                    <
  359  // #else                                                                         <
  360  // ...                                                                           <
  361  // #endif // UNICODE                                                             <
                                                                                        >   569          alias PRINTPAGERANGE* LPPRINTPAGERANGE;
  362                                                                                   |   570  
  363  struct _OFNOTIFYEXA {                                                            |   571          struct PRINTDLGEXA {
                                                                                        >   572                  DWORD            lStructSize = PRINTDLGEXA.sizeof;
                                                                                        >   573                  HWND             hwndOwner;
                                                                                        >   574                  HGLOBAL          hDevMode;
                                                                                        >   575                  HGLOBAL          hDevNames;
                                                                                        >   576                  HDC              hDC;
                                                                                        >   577                  DWORD            Flags;
  364    NMHDR hdr;                                                                     |   578                  DWORD            Flags2;
  365    LPOPENFILENAMEA lpOFN;                                                         |   579                  DWORD            ExclusionFlags;
  366    LPVOID psf;                                                                    |   580                  DWORD            nPageRanges;
  367    LPVOID pidl;                                                                   |   581                  DWORD            nMaxPageRanges;
                                                                                        >   582                  LPPRINTPAGERANGE lpPageRanges;
                                                                                        >   583                  DWORD            nMinPage;
                                                                                        >   584                  DWORD            nMaxPage;
                                                                                        >   585                  DWORD            nCopies;
                                                                                        >   586                  HINSTANCE        hInstance;
                                                                                        >   587                  LPCSTR           lpPrintTemplateName;
                                                                                        >   588                  LPUNKNOWN        lpCallback;
                                                                                        >   589                  DWORD            nPropertyPages;
                                                                                        >   590                  HPROPSHEETPAGE*  lphPropertyPages;
                                                                                        >   591                  DWORD            nStartPage;
                                                                                        >   592                  DWORD            dwResultAction;
  368  }                                                                                |   593          }
  369  alias _OFNOTIFYEXA OFNOTIFYEXA;                                                  <
  370  alias _OFNOTIFYEXA* LPOFNOTIFYEXA;                                               <
                                                                                        >   594          alias PRINTDLGEXA* LPPRINTDLGEXA;
                                                                                        >   595  
                                                                                        >   596          struct PRINTDLGEXW {
                                                                                        >   597                  DWORD            lStructSize = PRINTDLGEXW.sizeof;
                                                                                        >   598                  HWND             hwndOwner;
                                                                                        >   599                  HGLOBAL          hDevMode;
                                                                                        >   600                  HGLOBAL          hDevNames;
                                                                                        >   601                  HDC              hDC;
                                                                                        >   602                  DWORD            Flags;
                                                                                        >   603                  DWORD            Flags2;
                                                                                        >   604                  DWORD            ExclusionFlags;
                                                                                        >   605                  DWORD            nPageRanges;
                                                                                        >   606                  DWORD            nMaxPageRanges;
                                                                                        >   607                  LPPRINTPAGERANGE lpPageRanges;
                                                                                        >   608                  DWORD            nMinPage;
                                                                                        >   609                  DWORD            nMaxPage;
                                                                                        >   610                  DWORD            nCopies;
                                                                                        >   611                  HINSTANCE        hInstance;
                                                                                        >   612                  LPCWSTR          lpPrintTemplateName;
                                                                                        >   613                  LPUNKNOWN        lpCallback;
                                                                                        >   614                  DWORD            nPropertyPages;
                                                                                        >   615                  HPROPSHEETPAGE*  lphPropertyPages;
                                                                                        >   616                  DWORD            nStartPage;
                                                                                        >   617                  DWORD            dwResultAction;
                                                                                        >   618          }
                                                                                        >   619          alias PRINTDLGEXW* LPPRINTDLGEXW;
  371                                                                                       620  
  372  struct _OFNOTIFYEXW {                                                            |   621  } // _WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500
  373    NMHDR hdr;                                                                     <
  374    LPOPENFILENAMEW lpOFN;                                                         <
  375    LPVOID psf;                                                                    <
  376    LPVOID pidl;                                                                   <
  377  }                                                                                <
  378  alias _OFNOTIFYEXW OFNOTIFYEXW;                                                  <
  379  alias _OFNOTIFYEXW* LPOFNOTIFYEXW;                                               <
  380                                                                                   <
  381  // #ifdef UNICODE                                                                <
  382  alias OFNOTIFYEXW OFNOTIFYEX;                                                    <
  383  alias LPOFNOTIFYEXW LPOFNOTIFYEX;                                                <
  384  // #else                                                                         <
  385  // ...                                                                           <
  386  // #endif // UNICODE                                                             <
  387                                                                                       622  
  388  const uint CDN_FIRST = 0U-601U;                                                  |   623  extern (Windows) {
  389  const uint CDN_LAST = 0U-699U;                                                   |   624          BOOL ChooseColorA(LPCHOOSECOLORA);
  390                                                                                   <
                                                                                        >   625          BOOL ChooseColorW(LPCHOOSECOLORW);
  391  const uint CDN_INITDONE = CDN_FIRST - 0x0000;                                    |   626          BOOL ChooseFontA(LPCHOOSEFONTA);
  392  const uint CDN_SELCHANGE = CDN_FIRST - 0x0001;                                   |   627          BOOL ChooseFontW(LPCHOOSEFONTW);
  393  const uint CDN_FOLDERCHANGE = CDN_FIRST - 0x0002;                                |   628          DWORD CommDlgExtendedError();
  394  const uint CDN_SHAREVIOLATION = CDN_FIRST - 0x0003;                              |   629          HWND FindTextA(LPFINDREPLACEA);
  395  const uint CDN_HELP = CDN_FIRST - 0x0004;                                        |   630          HWND FindTextW(LPFINDREPLACEW);
  396  const uint CDN_FILEOK = CDN_FIRST - 0x0005;                                      |   631          short GetFileTitleA(LPCSTR, LPSTR, WORD);
  397  const uint CDN_TYPECHANGE = CDN_FIRST - 0x0006;                                  |   632          short GetFileTitleW(LPCWSTR, LPWSTR, WORD);
  398  const uint CDN_INCLUDEITEM = CDN_FIRST - 0x0007;                                 |   633          BOOL GetOpenFileNameA(LPOPENFILENAMEA);
  399                                                                                   <
                                                                                        >   634          BOOL GetOpenFileNameW(LPOPENFILENAMEW);
  400  const uint CDM_FIRST = WM_USER + 100;                                            |   635          BOOL GetSaveFileNameA(LPOPENFILENAMEA);
  401  const uint CDM_LAST = WM_USER + 200;                                             |   636          BOOL GetSaveFileNameW(LPOPENFILENAMEW);
  402                                                                                   <
                                                                                        >   637          BOOL PageSetupDlgA(LPPAGESETUPDLGA);
  403  const uint CDM_GETSPEC = CDM_FIRST + 0x0000;                                     |   638          BOOL PageSetupDlgW(LPPAGESETUPDLGW);
  404  // #define CommDlg_OpenSave_GetSpecA(_hdlg, _psz, _cbmax) (int)SNDMSG(_hdlg, CDM |   639          BOOL PrintDlgA(LPPRINTDLGA);
  405  // #define CommDlg_OpenSave_GetSpecW(_hdlg, _psz, _cbmax) (int)SNDMSG(_hdlg, CDM |   640          BOOL PrintDlgW(LPPRINTDLGW);
  406  // #ifdef UNICODE                                                                |   641          HWND ReplaceTextA(LPFINDREPLACEA);
  407  // #define CommDlg_OpenSave_GetSpec CommDlg_OpenSave_GetSpecW                    |   642          HWND ReplaceTextW(LPFINDREPLACEW);
  408  // #else                                                                         <
  409  // #...                                                                          <
  410  // #endif // !UNICODE                                                            <
  411                                                                                   <
  412  const uint CDM_GETFILEPATH = CDM_FIRST + 0x0001;                                 <
  413  // #define CommDlg_OpenSave_GetFilePathA(_hdlg, _psz, _cbmax) (int)SNDMSG(_hdlg, <
  414  // #define CommDlg_OpenSave_GetFilePathW(_hdlg, _psz, _cbmax) (int)SNDMSG(_hdlg, <
  415  // #ifdef UNICODE                                                                <
  416  // #define CommDlg_OpenSave_GetFilePath CommDlg_OpenSave_GetFilePathW            <
  417  // #else                                                                         <
  418  // #...                                                                          <
  419  // #endif // !UNICODE                                                            <
  420                                                                                   <
  421  const uint CDM_GETFOLDERPATH = CDM_FIRST + 0x0002;                               <
  422  // #define CommDlg_OpenSave_GetFolderPathA(_hdlg, _psz, _cbmax) (int)SNDMSG(_hdl <
  423  // #define CommDlg_OpenSave_GetFolderPathW(_hdlg, _psz, _cbmax) (int)SNDMSG(_hdl <
  424  // #ifdef UNICODE                                                                <
  425  // #define CommDlg_OpenSave_GetFolderPath CommDlg_OpenSave_GetFolderPathW        <
  426  // #else                                                                         <
  427  // #...                                                                          <
  428  // #endif // !UNICODE                                                            <
  429                                                                                       643  
  430  const uint CDM_GETFOLDERIDLIST = CDM_FIRST + 0x0003;                             |   644          static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) {
  431  // #define CommDlg_OpenSave_GetFolderIDList(_hdlg, _pidl, _cbmax) (int)SNDMSG(_h |   645                  HRESULT PrintDlgExA(LPPRINTDLGEXA);
                                                                                        >   646                  HRESULT PrintDlgExW(LPPRINTDLGEXW);
  432                                                                                   |   647          }
  433  const uint CDM_SETCONTROLTEXT = CDM_FIRST + 0x0004;                              <
  434  // #define CommDlg_OpenSave_SetControlText(_hdlg, _id, _text) (void)SNDMSG(_hdlg <
  435                                                                                   <
  436  const uint CDM_HIDECONTROL = CDM_FIRST + 0x0005;                                 <
  437  // #define CommDlg_OpenSave_HideControl(_hdlg, _id) (void)SNDMSG(_hdlg, CDM_HIDE <
  438                                                                                   <
  439  const uint CDM_SETDEFEXT = CDM_FIRST + 0x0006;                                   <
  440  // #define CommDlg_OpenSave_SetDefExt(_hdlg, _pszext) (void)SNDMSG(_hdlg, CDM_SE <
  441  // #endif /* WINVER >= 0x0400 */                                                 <
  442                                                                                   <
  443  // #ifndef _MAC                                                                  <
  444  struct tagCHOOSECOLORA {                                                         <
  445    DWORD lStructSize;                                                             <
  446    HWND hwndOwner;                                                                <
  447    HWND hInstance;                                                                <
  448    COLORREF rgbResult;                                                            <
  449    COLORREF *    lpCustColors;                                                    <
  450    DWORD Flags;                                                                   <
  451    LPARAM lCustData;                                                              <
  452    LPCCHOOKPROC lpfnHook;                                                         <
  453    LPCSTR lpTemplateName;                                                         <
  454  }                                                                                <
  455  alias tagCHOOSECOLORA CHOOSECOLORA;                                              <
  456  alias tagCHOOSECOLORA* LPCHOOSECOLORA;                                           <
  457                                                                                   <
  458  struct tagCHOOSECOLORW {                                                         <
  459    DWORD lStructSize;                                                             <
  460    HWND hwndOwner;                                                                <
  461    HWND hInstance;                                                                <
  462    COLORREF rgbResult;                                                            <
  463    COLORREF *    lpCustColors;                                                    <
  464    DWORD Flags;                                                                   <
  465    LPARAM lCustData;                                                              <
  466    LPCCHOOKPROC lpfnHook;                                                         <
  467    LPCWSTR lpTemplateName;                                                        <
  468  }                                                                                <
  469  alias tagCHOOSECOLORW CHOOSECOLORW;                                              <
  470  alias tagCHOOSECOLORW* LPCHOOSECOLORW;                                           <
  471                                                                                   <
  472  // #ifdef UNICODE                                                                <
  473  alias CHOOSECOLORW CHOOSECOLOR;                                                  <
  474  alias LPCHOOSECOLORW LPCHOOSECOLOR;                                              <
  475  // #else                                                                         <
  476  // ...                                                                           <
  477  // #endif // UNICODE                                                             <
  478  // #else                                                                         <
  479  // ...                                                                           <
  480  // #ifdef UNICODE                                                                <
  481  // ...                                                                           <
  482  // #else                                                                         <
  483  // ...                                                                           <
  484  // #endif // UNICODE                                                             <
  485  // #endif //_MAC                                                                 <
  486                                                                                   <
  487  extern(Windows) export BOOL ChooseColorA(LPCHOOSECOLORA);                        <
  488  extern(Windows) export BOOL ChooseColorW(LPCHOOSECOLORW);                        <
  489  // #ifdef UNICODE                                                                <
  490  alias ChooseColorW ChooseColor;                                                  <
  491  // #else                                                                         <
  492  // #...                                                                          <
  493  // #endif // !UNICODE                                                            <
  494                                                                                   <
  495  enum : uint { CC_RGBINIT = 0x00000001 }                                          <
  496  enum : uint { CC_FULLOPEN = 0x00000002 }                                         <
  497  enum : uint { CC_PREVENTFULLOPEN = 0x00000004 }                                  <
  498  enum : uint { CC_SHOWHELP = 0x00000008 }                                         <
  499  enum : uint { CC_ENABLEHOOK = 0x00000010 }                                       <
  500  enum : uint { CC_ENABLETEMPLATE = 0x00000020 }                                   <
  501  enum : uint { CC_ENABLETEMPLATEHANDLE = 0x00000040 }                             <
  502  // #if(WINVER >= 0x0400)                                                         <
  503  enum : uint { CC_SOLIDCOLOR = 0x00000080 }                                       <
  504  enum : uint { CC_ANYCOLOR = 0x00000100 }                                         <
  505  // #endif /* WINVER >= 0x0400 */                                                 <
  506                                                                                   <
  507  extern(Windows) alias UINT_PTR function(HWND, UINT, WPARAM, LPARAM) LPFRHOOKPROC <
  508                                                                                   <
  509  struct tagFINDREPLACEA {                                                         <
  510    DWORD lStructSize;                                                             <
  511    HWND hwndOwner;                                                                <
  512    HINSTANCE hInstance;                                                           <
  513                                                                                   <
  514    DWORD Flags;                                                                   <
  515    LPSTR lpstrFindWhat;                                                           <
  516    LPSTR lpstrReplaceWith;                                                        <
  517    WORD wFindWhatLen;                                                             <
  518    WORD wReplaceWithLen;                                                          <
  519    LPARAM lCustData;                                                              <
  520    LPFRHOOKPROC lpfnHook;                                                         <
  521    LPCSTR lpTemplateName;                                                         <
  522  }                                                                                <
  523  alias tagFINDREPLACEA FINDREPLACEA;                                              <
  524  alias tagFINDREPLACEA* LPFINDREPLACEA;                                           <
  525                                                                                   <
  526  struct tagFINDREPLACEW {                                                         <
  527    DWORD lStructSize;                                                             <
  528    HWND hwndOwner;                                                                <
  529    HINSTANCE hInstance;                                                           <
  530                                                                                   <
  531    DWORD Flags;                                                                   <
  532    LPWSTR lpstrFindWhat;                                                          <
  533    LPWSTR lpstrReplaceWith;                                                       <
  534    WORD wFindWhatLen;                                                             <
  535    WORD wReplaceWithLen;                                                          <
  536    LPARAM lCustData;                                                              <
  537    LPFRHOOKPROC lpfnHook;                                                         <
  538    LPCWSTR lpTemplateName;                                                        <
  539  }                                                                                <
  540  alias tagFINDREPLACEW FINDREPLACEW;                                              <
  541  alias tagFINDREPLACEW* LPFINDREPLACEW;                                           <
  542                                                                                   <
  543  // #ifdef UNICODE                                                                <
  544  alias FINDREPLACEW FINDREPLACE;                                                  <
  545  alias LPFINDREPLACEW LPFINDREPLACE;                                              <
  546  // #else                                                                         <
  547  // ...                                                                           <
  548  // #endif // UNICODE                                                             <
  549                                                                                   <
  550  enum : uint { FR_DOWN = 0x00000001 }                                             <
  551  enum : uint { FR_WHOLEWORD = 0x00000002 }                                        <
  552  enum : uint { FR_MATCHCASE = 0x00000004 }                                        <
  553  enum : uint { FR_FINDNEXT = 0x00000008 }                                         <
  554  enum : uint { FR_REPLACE = 0x00000010 }                                          <
  555  enum : uint { FR_REPLACEALL = 0x00000020 }                                       <
  556  enum : uint { FR_DIALOGTERM = 0x00000040 }                                       <
  557  enum : uint { FR_SHOWHELP = 0x00000080 }                                         <
  558  enum : uint { FR_ENABLEHOOK = 0x00000100 }                                       <
  559  enum : uint { FR_ENABLETEMPLATE = 0x00000200 }                                   <
  560  enum : uint { FR_NOUPDOWN = 0x00000400 }                                         <
  561  enum : uint { FR_NOMATCHCASE = 0x00000800 }                                      <
  562  enum : uint { FR_NOWHOLEWORD = 0x00001000 }                                      <
  563  enum : uint { FR_ENABLETEMPLATEHANDLE = 0x00002000 }                             <
  564  enum : uint { FR_HIDEUPDOWN = 0x00004000 }                                       <
  565  enum : uint { FR_HIDEMATCHCASE = 0x00008000 }                                    <
  566  enum : uint { FR_HIDEWHOLEWORD = 0x00010000 }                                    <
  567  enum : uint { FR_RAW = 0x00020000 }                                              <
  568  enum : uint { FR_MATCHDIAC = 0x20000000 }                                        <
  569  enum : uint { FR_MATCHKASHIDA = 0x40000000 }                                     <
  570  enum : uint { FR_MATCHALEFHAMZA = 0x80000000 }                                   <
  571                                                                                   <
  572  extern(Windows) export HWND FindTextA(LPFINDREPLACEA);                           <
  573  extern(Windows) export HWND FindTextW(LPFINDREPLACEW);                           <
  574  // #ifdef UNICODE                                                                <
  575  alias FindTextW FindText;                                                        <
  576  // #else                                                                         <
  577  // #...                                                                          <
  578  // #endif // !UNICODE                                                            <
  579  // #ifndef _MAC                                                                  <
  580  extern(Windows) export HWND ReplaceTextA(LPFINDREPLACEA);                        <
  581  extern(Windows) export HWND ReplaceTextW(LPFINDREPLACEW);                        <
  582  // #ifdef UNICODE                                                                <
  583  alias ReplaceTextW ReplaceText;                                                  <
  584  // #else                                                                         <
  585  // #...                                                                          <
  586  // #endif // !UNICODE                                                            <
  587  // #else                                                                         <
  588  // ...                                                                           <
  589  // #ifdef UNICODE                                                                <
  590  // #...                                                                          <
  591  // #else                                                                         <
  592  // #...                                                                          <
  593  // #endif // !UNICODE                                                            <
  594  // #endif                                                                        <
  595                                                                                   <
  596  extern(Windows) alias UINT_PTR function(HWND, UINT, WPARAM, LPARAM) LPCFHOOKPROC <
  597                                                                                   <
  598  struct tagCHOOSEFONTA {                                                          <
  599    DWORD lStructSize;                                                             <
  600    HWND hwndOwner;                                                                <
  601    HDC hDC;                                                                       <
  602    LPLOGFONTA lpLogFont;                                                          <
  603    INT iPointSize;                                                                <
  604    DWORD Flags;                                                                   <
  605    COLORREF rgbColors;                                                            <
  606    LPARAM lCustData;                                                              <
  607    LPCFHOOKPROC lpfnHook;                                                         <
  608    LPCSTR lpTemplateName;                                                         <
  609    HINSTANCE hInstance;                                                           <
  610                                                                                   <
  611    LPSTR lpszStyle;                                                               <
  612                                                                                   <
  613    WORD nFontType;                                                                <
  614                                                                                   <
  615    WORD ___MISSING_ALIGNMENT__;                                                   <
  616    INT nSizeMin;                                                                  <
  617    INT nSizeMax;                                                                  <
  618                                                                                   <
  619  }                                                                                <
  620  alias tagCHOOSEFONTA CHOOSEFONTA;                                                <
  621  alias tagCHOOSEFONTA* LPCHOOSEFONTA;                                             <
  622                                                                                   <
  623  struct tagCHOOSEFONTW {                                                          <
  624    DWORD lStructSize;                                                             <
  625    HWND hwndOwner;                                                                <
  626    HDC hDC;                                                                       <
  627    LPLOGFONTW lpLogFont;                                                          <
  628    INT iPointSize;                                                                <
  629    DWORD Flags;                                                                   <
  630    COLORREF rgbColors;                                                            <
  631    LPARAM lCustData;                                                              <
  632    LPCFHOOKPROC lpfnHook;                                                         <
  633    LPCWSTR lpTemplateName;                                                        <
  634    HINSTANCE hInstance;                                                           <
  635                                                                                   <
  636    LPWSTR lpszStyle;                                                              <
  637                                                                                   <
  638    WORD nFontType;                                                                <
  639                                                                                   <
  640    WORD ___MISSING_ALIGNMENT__;                                                   <
  641    INT nSizeMin;                                                                  <
  642    INT nSizeMax;                                                                  <
  643                                                                                   <
  644  }                                                                                    648  }
                                                                                        >   649  
                                                                                        >   650  version (Unicode) {
                                                                                        >   651          alias CHOOSECOLORW CHOOSECOLOR;
  645  alias tagCHOOSEFONTW CHOOSEFONTW;                                                |   652          alias CHOOSEFONTW CHOOSEFONT;
  646  alias tagCHOOSEFONTW* LPCHOOSEFONTW;                                             <
                                                                                        >   653          alias FINDREPLACEW FINDREPLACE;
                                                                                        >   654          alias OPENFILENAMEW OPENFILENAME;
                                                                                        >   655          alias OFNOTIFYW OFNOTIFY;
                                                                                        >   656          alias PAGESETUPDLGW PAGESETUPDLG;
                                                                                        >   657          alias PRINTDLGW PRINTDLG;
                                                                                        >   658  
                                                                                        >   659          alias ChooseColorW ChooseColor;
                                                                                        >   660          alias ChooseFontW ChooseFont;
                                                                                        >   661          alias FindTextW FindText;
                                                                                        >   662          alias GetFileTitleW GetFileTitle;
                                                                                        >   663          alias GetOpenFileNameW GetOpenFileName;
                                                                                        >   664          alias GetSaveFileNameW GetSaveFileName;
                                                                                        >   665          alias PageSetupDlgW PageSetupDlg;
                                                                                        >   666          alias PrintDlgW PrintDlg;
                                                                                        >   667          alias ReplaceTextW ReplaceText;
                                                                                        >   668  
                                                                                        >   669          static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) {
                                                                                        >   670                  alias PRINTDLGEXW PRINTDLGEX;
                                                                                        >   671                  alias PrintDlgExW PrintDlgEx;
                                                                                        >   672          }
                                                                                        >   673  
                                                                                        >   674  } else { // UNICODE
  647                                                                                       675  
  648  // #ifdef UNICODE                                                                |   676          alias CHOOSECOLORA CHOOSECOLOR;
  649  alias CHOOSEFONTW CHOOSEFONT;                                                    |   677          alias CHOOSEFONTA CHOOSEFONT;
  650  alias LPCHOOSEFONTW LPCHOOSEFONT;                                                |   678          alias FINDREPLACEA FINDREPLACE;
  651  // #else                                                                         |   679          alias OPENFILENAMEA OPENFILENAME;
  652  // ...                                                                           |   680          alias OFNOTIFYA OFNOTIFY;
  653  // #endif // UNICODE                                                             |   681          alias PAGESETUPDLGA PAGESETUPDLG;
                                                                                        >   682          alias PRINTDLGA PRINTDLG;
  654                                                                                       683  
  655  extern(Windows) export BOOL ChooseFontA(LPCHOOSEFONTA);                          |   684          alias ChooseColorA ChooseColor;
  656  extern(Windows) export BOOL ChooseFontW(LPCHOOSEFONTW);                          <
  657  // #ifdef UNICODE                                                                <
  658  alias ChooseFontW ChooseFont;                                                    |   685          alias ChooseFontA ChooseFont;
                                                                                        >   686          alias FindTextA FindText;
                                                                                        >   687          alias GetFileTitleA GetFileTitle;
  659  // #else                                                                         |   688          alias GetOpenFileNameA GetOpenFileName;
  660  // #...                                                                          |   689          alias GetSaveFileNameA GetSaveFileName;
  661  // #endif // !UNICODE                                                            |   690          alias PageSetupDlgA PageSetupDlg;
                                                                                        >   691          alias PrintDlgA PrintDlg;
                                                                                        >   692          alias ReplaceTextA ReplaceText;
  662                                                                                       693  
  663  enum : uint { CF_SCREENFONTS = 0x00000001 }                                      |   694          static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) {
  664  enum : uint { CF_PRINTERFONTS = 0x00000002 }                                     |   695                  alias PRINTDLGEXA PRINTDLGEX;
  665  const uint CF_BOTH = CF_SCREENFONTS | CF_PRINTERFONTS;                           |   696                  alias PrintDlgExA PrintDlgEx;
  666  enum : uint { CF_SHOWHELP = 0x00000004 }                                         <
  667  enum : uint { CF_ENABLEHOOK = 0x00000008 }                                       <
  668  enum : uint { CF_ENABLETEMPLATE = 0x00000010 }                                   <
  669  enum : uint { CF_ENABLETEMPLATEHANDLE = 0x00000020 }                             <
  670  enum : uint { CF_INITTOLOGFONTSTRUCT = 0x00000040 }                              <
  671  enum : uint { CF_USESTYLE = 0x00000080 }                                         <
  672  enum : uint { CF_EFFECTS = 0x00000100 }                                          <
  673  enum : uint { CF_APPLY = 0x00000200 }                                            <
  674  enum : uint { CF_ANSIONLY = 0x00000400 }                                         <
  675  // #if(WINVER >= 0x0400)                                                         <
  676  alias CF_ANSIONLY CF_SCRIPTSONLY;                                                <
  677  // #endif /* WINVER >= 0x0400 */                                                 <
  678  enum : uint { CF_NOVECTORFONTS = 0x00000800 }                                    <
  679  alias CF_NOVECTORFONTS CF_NOOEMFONTS;                                            <
  680  enum : uint { CF_NOSIMULATIONS = 0x00001000 }                                    <
  681  enum : uint { CF_LIMITSIZE = 0x00002000 }                                        <
  682  enum : uint { CF_FIXEDPITCHONLY = 0x00004000 }                                   <
  683  enum : uint { CF_WYSIWYG = 0x00008000 }                                          <
  684  enum : uint { CF_FORCEFONTEXIST = 0x00010000 }                                   <
  685  enum : uint { CF_SCALABLEONLY = 0x00020000 }                                     <
  686  enum : uint { CF_TTONLY = 0x00040000 }                                           <
  687  enum : uint { CF_NOFACESEL = 0x00080000 }                                        <
  688  enum : uint { CF_NOSTYLESEL = 0x00100000 }                                       <
  689  enum : uint { CF_NOSIZESEL = 0x00200000 }                                        <
  690  // #if(WINVER >= 0x0400)                                                         <
  691  enum : uint { CF_SELECTSCRIPT = 0x00400000 }                                     <
  692  enum : uint { CF_NOSCRIPTSEL = 0x00800000 }                                      <
  693  enum : uint { CF_NOVERTFONTS = 0x01000000 }                                      <
  694  // #endif /* WINVER >= 0x0400 */                                                 <
                                                                                        >   697          }
  695                                                                                       698  
  696  enum : uint { SIMULATED_FONTTYPE = 0x8000 }                                      |   699  } // UNICODE
  697  enum : uint { PRINTER_FONTTYPE = 0x4000 }                                        <
  698  enum : uint { SCREEN_FONTTYPE = 0x2000 }                                         <
  699  enum : uint { BOLD_FONTTYPE = 0x0100 }                                           <
  700  enum : uint { ITALIC_FONTTYPE = 0x0200 }                                         <
  701  enum : uint { REGULAR_FONTTYPE = 0x0400 }                                        <
  702                                                                                       700  
  703  // #ifdef WINNT                                                                  |   701  alias CHOOSECOLOR* LPCHOOSECOLOR;
  704  // #...                                                                          |   702  alias CHOOSEFONT* LPCHOOSEFONT;
  705  // #...                                                                          |   703  alias FINDREPLACE* LPFINDREPLACE;
  706  // #...                                                                          |   704  alias OPENFILENAME* LPOPENFILENAME;
  707  // #endif                                                                        |   705  alias OFNOTIFY* LPOFNOTIFY;
  708                                                                                   <
  709  const uint WM_CHOOSEFONT_GETLOGFONT = WM_USER + 1;                               <
  710  const uint WM_CHOOSEFONT_SETLOGFONT = WM_USER + 101;                             <
  711  const uint WM_CHOOSEFONT_SETFLAGS = WM_USER + 102;                               <
  712                                                                                   <
  713  const char[] LBSELCHSTRINGA = "commdlg_LBSelChangedNotify";                      <
  714  const char[] SHAREVISTRINGA = "commdlg_ShareViolation";                          <
  715  const char[] FILEOKSTRINGA = "commdlg_FileNameOK";                               <
  716  const char[] COLOROKSTRINGA = "commdlg_ColorOK";                                 <
  717  const char[] SETRGBSTRINGA = "commdlg_SetRGBColor";                              <
  718  const char[] HELPMSGSTRINGA = "commdlg_help";                                    <
  719  const char[] FINDMSGSTRINGA = "commdlg_FindReplace";                             <
  720                                                                                   <
  721  const wchar[] LBSELCHSTRINGW = "commdlg_LBSelChangedNotify";                     <
  722  const wchar[] SHAREVISTRINGW = "commdlg_ShareViolation";                         <
  723  const wchar[] FILEOKSTRINGW = "commdlg_FileNameOK";                              <
  724  const wchar[] COLOROKSTRINGW = "commdlg_ColorOK";                                <
  725  const wchar[] SETRGBSTRINGW = "commdlg_SetRGBColor";                             <
  726  const wchar[] HELPMSGSTRINGW = "commdlg_help";                                   <
  727  const wchar[] FINDMSGSTRINGW = "commdlg_FindReplace";                            <
  728                                                                                   <
  729  // #ifdef UNICODE                                                                <
  730  alias LBSELCHSTRINGW LBSELCHSTRING;                                              <
  731  alias SHAREVISTRINGW SHAREVISTRING;                                              <
  732  alias FILEOKSTRINGW FILEOKSTRING;                                                <
  733  alias COLOROKSTRINGW COLOROKSTRING;                                              <
  734  alias SETRGBSTRINGW SETRGBSTRING;                                                <
  735  alias HELPMSGSTRINGW HELPMSGSTRING;                                              <
  736  alias FINDMSGSTRINGW FINDMSGSTRING;                                              <
  737  // #else                                                                         <
  738  // #...                                                                          <
  739  // #...                                                                          <
  740  // #...                                                                          <
  741  // #...                                                                          <
  742  // #...                                                                          <
  743  // #...                                                                          <
  744  // #...                                                                          <
  745  // #endif                                                                        <
  746                                                                                   <
  747  enum { CD_LBSELNOITEMS = -1 }                                                    <
  748  enum : uint { CD_LBSELCHANGE = 0 }                                               <
  749  enum : uint { CD_LBSELSUB = 1 }                                                  <
  750  enum : uint { CD_LBSELADD = 2 }                                                  <
  751                                                                                   <
  752  extern(Windows) alias UINT_PTR function(HWND, UINT, WPARAM, LPARAM) LPPRINTHOOKP <
  753  extern(Windows) alias UINT_PTR function(HWND, UINT, WPARAM, LPARAM) LPSETUPHOOKP <
  754                                                                                   <
  755  struct tagPDA {                                                                  <
  756    DWORD lStructSize;                                                             <
  757    HWND hwndOwner;                                                                <
  758    HGLOBAL hDevMode;                                                              <
  759    HGLOBAL hDevNames;                                                             <
  760    HDC hDC;                                                                       <
  761    DWORD Flags;                                                                   <
  762    WORD nFromPage;                                                                <
  763    WORD nToPage;                                                                  <
  764    WORD nMinPage;                                                                 <
  765    WORD nMaxPage;                                                                 <
  766    WORD nCopies;                                                                  <
  767    HINSTANCE hInstance;                                                           <
  768    LPARAM lCustData;                                                              <
  769    LPPRINTHOOKPROC lpfnPrintHook;                                                 <
  770    LPSETUPHOOKPROC lpfnSetupHook;                                                 <
  771    LPCSTR lpPrintTemplateName;                                                    <
  772    LPCSTR lpSetupTemplateName;                                                    <
  773    HGLOBAL hPrintTemplate;                                                        <
  774    HGLOBAL hSetupTemplate;                                                        <
  775  }                                                                                <
  776  alias tagPDA PRINTDLGA;                                                          <
                                                                                        >   706  alias PAGESETUPDLG* LPPAGESETUPDLG;
  777  alias tagPDA* LPPRINTDLGA;                                                       |   707  alias PRINTDLG* LPPRINTDLG;
  778                                                                                   <
  779  struct tagPDW {                                                                  <
  780    DWORD lStructSize;                                                             <
  781    HWND hwndOwner;                                                                <
  782    HGLOBAL hDevMode;                                                              <
  783    HGLOBAL hDevNames;                                                             <
  784    HDC hDC;                                                                       <
  785    DWORD Flags;                                                                   <
  786    WORD nFromPage;                                                                <
  787    WORD nToPage;                                                                  <
  788    WORD nMinPage;                                                                 <
  789    WORD nMaxPage;                                                                 <
  790    WORD nCopies;                                                                  <
  791    HINSTANCE hInstance;                                                           <
  792    LPARAM lCustData;                                                              <
  793    LPPRINTHOOKPROC lpfnPrintHook;                                                 <
  794    LPSETUPHOOKPROC lpfnSetupHook;                                                 <
  795    LPCWSTR lpPrintTemplateName;                                                   <
  796    LPCWSTR lpSetupTemplateName;                                                   <
  797    HGLOBAL hPrintTemplate;                                                        <
  798    HGLOBAL hSetupTemplate;                                                        <
  799  }                                                                                <
  800  alias tagPDW PRINTDLGW;                                                          <
  801  alias tagPDW* LPPRINTDLGW;                                                       <
  802                                                                                   <
  803  // #ifdef UNICODE                                                                <
                                                                                        >   708  static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) {
  804  alias PRINTDLGW PRINTDLG;                                                        |   709          alias PRINTDLGEX* LPPRINTDLGEX;
  805  alias LPPRINTDLGW LPPRINTDLG;                                                    <
  806  // #else                                                                         <
  807  // ...                                                                           <
  808  // #endif // UNICODE                                                             <
  809                                                                                   |   710  }
  810  extern(Windows) export BOOL PrintDlgA(LPPRINTDLGA);                              <
  811  extern(Windows) export BOOL PrintDlgW(LPPRINTDLGW);                              <
  812  // #ifdef UNICODE                                                                <
  813  alias PrintDlgW PrintDlg;                                                        <
  814  // #else                                                                         <
  815  // #...                                                                          <
  816  // #endif // !UNICODE                                                            <
  817                                                                                   <
  818  // #if(WINVER >= 0x0500)                                                         <
  819                                                                                   <
  820  // #ifdef STDMETHOD                                                              <
  821                                                                                   <
  822  // #...                                                                          <
  823  // #...                                                                          <
  824                                                                                   <
  825  // ...                                                                           <
  826                                                                                   <
  827  // ...                                                                           <
  828                                                                                   <
  829  // #...                                                                          <
  830  // #...                                                                          <
  831                                                                                   <
  832  // ...                                                                           <
  833                                                                                   <
  834  // ...                                                                           <
  835                                                                                   <
  836  // ...                                                                           <
  837                                                                                   <
  838  // ...                                                                           <
  839  // #ifdef UNICODE                                                                <
  840  // ...                                                                           <
  841  // #else                                                                         <
  842  // ...                                                                           <
  843  // #endif // UNICODE                                                             <
  844                                                                                   <
  845  // ...                                                                           <
  846  // #ifdef UNICODE                                                                <
  847  // #...                                                                          <
  848  // #else                                                                         <
  849  // #...                                                                          <
  850  // #endif // !UNICODE                                                            <
  851                                                                                   <
  852  // #endif                                                                        <
  853                                                                                   <
  854  // #endif /* WINVER >= 0x0500 */                                                 <
  855                                                                                   <
  856  enum : uint { PD_ALLPAGES = 0x00000000 }                                         <
  857  enum : uint { PD_SELECTION = 0x00000001 }                                        <
  858  enum : uint { PD_PAGENUMS = 0x00000002 }                                         <
  859  enum : uint { PD_NOSELECTION = 0x00000004 }                                      <
  860  enum : uint { PD_NOPAGENUMS = 0x00000008 }                                       <
  861  enum : uint { PD_COLLATE = 0x00000010 }                                          <
  862  enum : uint { PD_PRINTTOFILE = 0x00000020 }                                      <
  863  enum : uint { PD_PRINTSETUP = 0x00000040 }                                       <
  864  enum : uint { PD_NOWARNING = 0x00000080 }                                        <
  865  enum : uint { PD_RETURNDC = 0x00000100 }                                         <
  866  enum : uint { PD_RETURNIC = 0x00000200 }                                         <
  867  enum : uint { PD_RETURNDEFAULT = 0x00000400 }                                    <
  868  enum : uint { PD_SHOWHELP = 0x00000800 }                                         <
  869  enum : uint { PD_ENABLEPRINTHOOK = 0x00001000 }                                  <
  870  enum : uint { PD_ENABLESETUPHOOK = 0x00002000 }                                  <
  871  enum : uint { PD_ENABLEPRINTTEMPLATE = 0x00004000 }                              <
  872  enum : uint { PD_ENABLESETUPTEMPLATE = 0x00008000 }                              <
  873  enum : uint { PD_ENABLEPRINTTEMPLATEHANDLE = 0x00010000 }                        <
  874  enum : uint { PD_ENABLESETUPTEMPLATEHANDLE = 0x00020000 }                        <
  875  enum : uint { PD_USEDEVMODECOPIES = 0x00040000 }                                 <
  876  enum : uint { PD_USEDEVMODECOPIESANDCOLLATE = 0x00040000 }                       <
  877  enum : uint { PD_DISABLEPRINTTOFILE = 0x00080000 }                               <
  878  enum : uint { PD_HIDEPRINTTOFILE = 0x00100000 }                                  <
  879  enum : uint { PD_NONETWORKBUTTON = 0x00200000 }                                  <
  880  // #if(WINVER >= 0x0500)                                                         <
  881  enum : uint { PD_CURRENTPAGE = 0x00400000 }                                      <
  882  enum : uint { PD_NOCURRENTPAGE = 0x00800000 }                                    <
  883  enum : uint { PD_EXCLUSIONFLAGS = 0x01000000 }                                   <
  884  enum : uint { PD_USELARGETEMPLATE = 0x10000000 }                                 <
  885  // #endif /* WINVER >= 0x0500 */                                                 <
  886                                                                                   <
  887  // #if(WINVER >= 0x0500)                                                         <
  888                                                                                   <
  889  const uint PD_EXCL_COPIESANDCOLLATE = DM_COPIES | DM_COLLATE;                    <
  890                                                                                   <
  891  enum : uint { START_PAGE_GENERAL = 0xffffffff }                                  <
  892                                                                                   <
  893  enum : uint { PD_RESULT_CANCEL = 0 }                                             <
  894  enum : uint { PD_RESULT_PRINT = 1 }                                              <
  895  enum : uint { PD_RESULT_APPLY = 2 }                                              <
  896                                                                                   <
  897  // #endif /* WINVER >= 0x0500 */                                                 <
  898                                                                                   <
  899  struct tagDEVNAMES {                                                             <
  900    WORD wDriverOffset;                                                            <
  901    WORD wDeviceOffset;                                                            <
  902    WORD wOutputOffset;                                                            <
  903    WORD wDefault;                                                                 <
  904  }                                                                                <
  905  alias tagDEVNAMES DEVNAMES;                                                      <
  906  alias tagDEVNAMES* LPDEVNAMES;                                                   <
  907                                                                                   <
  908  enum : uint { DN_DEFAULTPRN = 0x0001 }                                           <
  909                                                                                   <
  910  extern(Windows) export DWORD CommDlgExtendedError();                             <
  911                                                                                   <
  912  // #if(WINVER >= 0x0400)                                                         <
  913  const uint WM_PSD_PAGESETUPDLG = WM_USER ;                                       <
  914  const uint WM_PSD_FULLPAGERECT = WM_USER+1;                                      <
  915  const uint WM_PSD_MINMARGINRECT = WM_USER+2;                                     <
  916  const uint WM_PSD_MARGINRECT = WM_USER+3;                                        <
  917  const uint WM_PSD_GREEKTEXTRECT = WM_USER+4;                                     <
  918  const uint WM_PSD_ENVSTAMPRECT = WM_USER+5;                                      <
  919  const uint WM_PSD_YAFULLPAGERECT = WM_USER+6;                                    <
  920                                                                                   <
  921  extern(Windows) alias UINT_PTR function( HWND, UINT, WPARAM, LPARAM ) LPPAGEPAIN <
  922  extern(Windows) alias UINT_PTR function( HWND, UINT, WPARAM, LPARAM ) LPPAGESETU <
  923                                                                                   <
  924  struct tagPSDA {                                                                 <
  925    DWORD lStructSize;                                                             <
  926    HWND hwndOwner;                                                                <
  927    HGLOBAL hDevMode;                                                              <
  928    HGLOBAL hDevNames;                                                             <
  929    DWORD Flags;                                                                   <
  930    POINT ptPaperSize;                                                             <
  931    RECT rtMinMargin;                                                              <
  932    RECT rtMargin;                                                                 <
  933    HINSTANCE hInstance;                                                           <
  934    LPARAM lCustData;                                                              <
  935    LPPAGESETUPHOOK lpfnPageSetupHook;                                             <
  936    LPPAGEPAINTHOOK lpfnPagePaintHook;                                             <
  937    LPCSTR lpPageSetupTemplateName;                                                <
  938    HGLOBAL hPageSetupTemplate;                                                    <
  939  }                                                                                <
  940  alias tagPSDA PAGESETUPDLGA;                                                     <
  941  alias tagPSDA* LPPAGESETUPDLGA;                                                  <
  942                                                                                   <
  943  struct tagPSDW {                                                                 <
  944    DWORD lStructSize;                                                             <
  945    HWND hwndOwner;                                                                <
  946    HGLOBAL hDevMode;                                                              <
  947    HGLOBAL hDevNames;                                                             <
  948    DWORD Flags;                                                                   <
  949    POINT ptPaperSize;                                                             <
  950    RECT rtMinMargin;                                                              <
  951    RECT rtMargin;                                                                 <
  952    HINSTANCE hInstance;                                                           <
  953    LPARAM lCustData;                                                              <
  954    LPPAGESETUPHOOK lpfnPageSetupHook;                                             <
  955    LPPAGEPAINTHOOK lpfnPagePaintHook;                                             <
  956    LPCWSTR lpPageSetupTemplateName;                                               <
  957    HGLOBAL hPageSetupTemplate;                                                    <
  958  }                                                                                <
  959  alias tagPSDW PAGESETUPDLGW;                                                     <
  960  alias tagPSDW* LPPAGESETUPDLGW;                                                  <
  961                                                                                   <
  962  // #ifdef UNICODE                                                                <
  963  alias PAGESETUPDLGW PAGESETUPDLG;                                                <
  964  alias LPPAGESETUPDLGW LPPAGESETUPDLG;                                            <
  965  // #else                                                                         <
  966  // ...                                                                           <
  967  // #endif // UNICODE                                                             <
  968                                                                                   <
  969  extern(Windows) export BOOL PageSetupDlgA( LPPAGESETUPDLGA );                    <
  970  extern(Windows) export BOOL PageSetupDlgW( LPPAGESETUPDLGW );                    <
  971  // #ifdef UNICODE                                                                <
  972  alias PageSetupDlgW PageSetupDlg;                                                <
  973  // #else                                                                         <
  974  // #...                                                                          <
  975  // #endif // !UNICODE                                                            <
  976                                                                                   <
  977  enum : uint { PSD_DEFAULTMINMARGINS = 0x00000000 }                               <
  978  enum : uint { PSD_INWININIINTLMEASURE = 0x00000000 }                             <
  979                                                                                   <
  980  enum : uint { PSD_MINMARGINS = 0x00000001 }                                      <
  981  enum : uint { PSD_MARGINS = 0x00000002 }                                         <
  982  enum : uint { PSD_INTHOUSANDTHSOFINCHES = 0x00000004 }                           <
  983  enum : uint { PSD_INHUNDREDTHSOFMILLIMETERS = 0x00000008 }                       <
  984  enum : uint { PSD_DISABLEMARGINS = 0x00000010 }                                  <
  985  enum : uint { PSD_DISABLEPRINTER = 0x00000020 }                                  <
  986  enum : uint { PSD_NOWARNING = 0x00000080 }                                       <
  987  enum : uint { PSD_DISABLEORIENTATION = 0x00000100 }                              <
  988  enum : uint { PSD_RETURNDEFAULT = 0x00000400 }                                   <
  989  enum : uint { PSD_DISABLEPAPER = 0x00000200 }                                    <
  990  enum : uint { PSD_SHOWHELP = 0x00000800 }                                        <
  991  enum : uint { PSD_ENABLEPAGESETUPHOOK = 0x00002000 }                             <
  992  enum : uint { PSD_ENABLEPAGESETUPTEMPLATE = 0x00008000 }                         <
  993  enum : uint { PSD_ENABLEPAGESETUPTEMPLATEHANDLE = 0x00020000 }                   <
  994  enum : uint { PSD_ENABLEPAGEPAINTHOOK = 0x00040000 }                             <
  995  enum : uint { PSD_DISABLEPAGEPAINTING = 0x00080000 }                             <
  996  enum : uint { PSD_NONETWORKBUTTON = 0x00200000 }                                 <
  997  // #endif /* WINVER >= 0x0400 */                                                 <
  998                                                                                   <
  999  // #if !defined(RC_INVOKED) /* RC complains about long symbols in #ifs */        <
 1000  // #if ISOLATION_AWARE_ENABLED                                                   <
 1001                                                                                   <
 1002  // #if !defined(ISOLATION_AWARE_INLINE)                                          <
 1003  // #if defined(__cplusplus)                                                      <
 1004  // #...                                                                          <
 1005  // #else                                                                         <
 1006  // #...                                                                          <
 1007  // #endif                                                                        <
 1008  // #endif                                                                        <
 1009                                                                                   <
 1010  // ...                                                                           <
 1011                                                                                   <
 1012  // ...                                                                           <
 1013  // #if defined(STDMETHOD) && (WINVER >= 0x0500)                                  <
 1014  // ...                                                                           <
 1015  // #endif /* defined(STDMETHOD) && (WINVER >= 0x0500) */                         <
 1016  // ...                                                                           <
 1017                                                                                   <
 1018  // #if defined(UNICODE)                                                          <
 1019                                                                                   <
 1020  // #...                                                                          <
 1021  // #...                                                                          <
 1022  // #...                                                                          <
 1023  // #...                                                                          <
 1024  // #...                                                                          <
 1025  // #...                                                                          <
 1026  // #...                                                                          <
 1027  // #...                                                                          <
 1028  // #...                                                                          <
 1029  // #...                                                                          <
 1030                                                                                   <
 1031  // #else /* UNICODE */                                                           <
 1032                                                                                   <
 1033  // #...                                                                          <
 1034  // #...                                                                          <
 1035  // #...                                                                          <
 1036  // #...                                                                          <
 1037  // #...                                                                          <
 1038  // #...                                                                          <
 1039  // #...                                                                          <
 1040  // #...                                                                          <
 1041  // #...                                                                          <
 1042  // #...                                                                          <
 1043                                                                                   <
 1044  // #endif /* UNICODE */                                                          <
 1045                                                                                   <
 1046  // ...                                                                           <
 1047                                                                                   <
 1048  // ...                                                                           <
 1049                                                                                   <
 1050  // ...                                                                           <
 1051                                                                                   <
 1052  // ...                                                                           <
 1053                                                                                   <
 1054  // ...                                                                           <
 1055                                                                                   <
 1056  // ...                                                                           <
 1057                                                                                   <
 1058  // ...                                                                           <
 1059                                                                                   <
 1060  // ...                                                                           <
 1061                                                                                   <
 1062  // ...                                                                           <
 1063                                                                                   <
 1064  // ...                                                                           <
 1065                                                                                   <
 1066  // ...                                                                           <
 1067                                                                                   <
 1068  // ...                                                                           <
 1069                                                                                   <
 1070  // ...                                                                           <
 1071                                                                                   <
 1072  // ...                                                                           <
 1073                                                                                   <
 1074  // ...                                                                           <
 1075                                                                                   <
 1076  // ...                                                                           <
 1077                                                                                   <
 1078  // #if defined(STDMETHOD) && (WINVER >= 0x0500)                                  <
 1079                                                                                   <
 1080  // ...                                                                           <
 1081                                                                                   <
 1082  // ...                                                                           <
 1083                                                                                   <
 1084  // ...                                                                           <
 1085                                                                                   <
 1086  // ...                                                                           <
 1087                                                                                   <
 1088  // #endif /* defined(STDMETHOD) && (WINVER >= 0x0500) */                         <
 1089                                                                                   <
 1090  // ...                                                                           <
 1091                                                                                   <
 1092  // ...                                                                           <
 1093                                                                                   <
 1094  // ...                                                                           <
 1095                                                                                   <
 1096  // ...                                                                           <
 1097                                                                                   <
 1098  // #...                                                                          <
 1099  // #...                                                                          <
 1100  // #...                                                                          <
 1101  // #...                                                                          <
 1102  // #...                                                                          <
 1103  // #...                                                                          <
 1104  // #...                                                                          <
 1105  // #...                                                                          <
 1106  // #...                                                                          <
 1107  // #...                                                                          <
 1108  // #...                                                                          <
 1109  // #...                                                                          <
 1110  // #...                                                                          <
 1111  // #...                                                                          <
 1112  // #...                                                                          <
 1113  // #...                                                                          <
 1114  // #...                                                                          <
 1115  // #...                                                                          <
 1116  // #...                                                                          <
 1117  // #...                                                                          <
 1118  // #...                                                                          <
 1119                                                                                   <
 1120  // #endif /* ISOLATION_AWARE_ENABLED */                                          <
 1121  // #endif /* RC */                                                               <
 1122                                                                                   <
 1123  // #ifdef __cplusplus                                                            <
 1124  // }                                                                             <
 1125  // #endif  /* __cplusplus */                                                     <
 1126                                                                                   <
 1127  // #if !defined(_WIN64)                                                          <
 1128  align:                                                                           <
 1129  // #endif                                                                        <
 1130  // #endif  /* GUID_DEFS_ONLY */                                                  <
 1131  // #endif  /* !_INC_COMMDLG */                                                   <
 1132                                                                                   <