Hex Artifact Content

Not logged in

Artifact dce8014c88d4101f542f9e64302b05cdb8bbe9bb:


0000: 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  /***************
0010: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0020: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0030: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0040: 2a 2a 2a 2a 2a 2a 2a 2a 5c 0a 2a 20 20 20 20 20  ********\.*     
0050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0060: 20 20 20 20 20 20 20 20 20 20 63 6f 6d 6d 64 6c            commdl
0070: 67 2e 64 20 20 20 20 20 20 20 20 20 20 20 20 20  g.d             
0080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0090: 20 20 2a 0a 2a 20 20 20 20 20 20 20 20 20 20 20    *.*           
00a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
00b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
00c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
00d0: 20 20 20 20 20 20 20 20 20 20 20 20 2a 0a 2a 20              *.* 
00e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
00f0: 20 20 20 20 20 20 57 69 6e 64 6f 77 73 20 41 50        Windows AP
0100: 49 20 68 65 61 64 65 72 20 6d 6f 64 75 6c 65 20  I header module 
0110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0120: 20 20 20 20 20 20 2a 0a 2a 20 20 20 20 20 20 20        *.*       
0130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0170: 2a 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20  *.*             
0180: 54 72 61 6e 73 6c 61 74 65 64 20 66 72 6f 6d 20  Translated from 
0190: 4d 69 6e 47 57 20 41 50 49 20 66 6f 72 20 4d 53  MinGW API for MS
01a0: 2d 57 69 6e 64 6f 77 73 20 33 2e 31 32 20 20 20  -Windows 3.12   
01b0: 20 20 20 20 20 20 20 20 20 20 2a 0a 2a 20 20 20            *.*   
01c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
01d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
01e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
01f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0200: 20 20 20 20 2a 0a 2a 20 20 20 20 20 20 20 20 20      *.*         
0210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 6c                Pl
0220: 61 63 65 64 20 69 6e 74 6f 20 70 75 62 6c 69 63  aced into public
0230: 20 64 6f 6d 61 69 6e 20 20 20 20 20 20 20 20 20   domain         
0240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0a                *.
0250: 5c 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  \***************
0260: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0270: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0280: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0290: 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a 6d 6f 64 75 6c 65  ********/.module
02a0: 20 77 69 6e 33 32 2e 63 6f 6d 6d 64 6c 67 3b 0a   win32.commdlg;.
02b0: 70 72 61 67 6d 61 28 6c 69 62 2c 20 22 63 6f 6d  pragma(lib, "com
02c0: 64 6c 67 33 32 2e 6c 69 62 22 29 3b 0a 0a 70 72  dlg32.lib");..pr
02d0: 69 76 61 74 65 20 69 6d 70 6f 72 74 20 77 69 6e  ivate import win
02e0: 33 32 2e 77 33 32 61 70 69 3b 0a 69 6d 70 6f 72  32.w32api;.impor
02f0: 74 20 77 69 6e 33 32 2e 77 69 6e 64 65 66 2c 20  t win32.windef, 
0300: 77 69 6e 33 32 2e 77 69 6e 75 73 65 72 3b 0a 69  win32.winuser;.i
0310: 6d 70 6f 72 74 20 77 69 6e 33 32 2e 77 69 6e 67  mport win32.wing
0320: 64 69 3b 20 2f 2f 20 66 6f 72 20 4c 50 4c 4f 47  di; // for LPLOG
0330: 46 4f 4e 54 41 0a 0a 63 6f 6e 73 74 20 54 43 48  FONTA..const TCH
0340: 41 52 5b 5d 0a 09 4c 42 53 45 4c 43 48 53 54 52  AR[]..LBSELCHSTR
0350: 49 4e 47 20 3d 20 22 63 6f 6d 6d 64 6c 67 5f 4c  ING = "commdlg_L
0360: 42 53 65 6c 43 68 61 6e 67 65 64 4e 6f 74 69 66  BSelChangedNotif
0370: 79 22 2c 0a 09 53 48 41 52 45 56 49 53 54 52 49  y",..SHAREVISTRI
0380: 4e 47 20 3d 20 22 63 6f 6d 6d 64 6c 67 5f 53 68  NG = "commdlg_Sh
0390: 61 72 65 56 69 6f 6c 61 74 69 6f 6e 22 2c 0a 09  areViolation",..
03a0: 46 49 4c 45 4f 4b 53 54 52 49 4e 47 20 20 3d 20  FILEOKSTRING  = 
03b0: 22 63 6f 6d 6d 64 6c 67 5f 46 69 6c 65 4e 61 6d  "commdlg_FileNam
03c0: 65 4f 4b 22 2c 0a 09 43 4f 4c 4f 52 4f 4b 53 54  eOK",..COLOROKST
03d0: 52 49 4e 47 20 3d 20 22 63 6f 6d 6d 64 6c 67 5f  RING = "commdlg_
03e0: 43 6f 6c 6f 72 4f 4b 22 2c 0a 09 53 45 54 52 47  ColorOK",..SETRG
03f0: 42 53 54 52 49 4e 47 20 20 3d 20 22 63 6f 6d 6d  BSTRING  = "comm
0400: 64 6c 67 5f 53 65 74 52 47 42 43 6f 6c 6f 72 22  dlg_SetRGBColor"
0410: 2c 0a 09 48 45 4c 50 4d 53 47 53 54 52 49 4e 47  ,..HELPMSGSTRING
0420: 20 3d 20 22 63 6f 6d 6d 64 6c 67 5f 68 65 6c 70   = "commdlg_help
0430: 22 2c 0a 09 46 49 4e 44 4d 53 47 53 54 52 49 4e  ",..FINDMSGSTRIN
0440: 47 20 3d 20 22 63 6f 6d 6d 64 6c 67 5f 46 69 6e  G = "commdlg_Fin
0450: 64 52 65 70 6c 61 63 65 22 3b 0a 0a 65 6e 75 6d  dReplace";..enum
0460: 20 3a 20 55 49 4e 54 20 7b 0a 09 43 44 4e 5f 46   : UINT {..CDN_F
0470: 49 52 53 54 20 20 20 20 20 20 20 20 20 20 3d 20  IRST          = 
0480: 2d 36 30 31 2c 20 2f 2f 20 61 6c 73 6f 20 69 6e  -601, // also in
0490: 20 63 6f 6d 6d 63 74 72 6c 2e 68 0a 09 43 44 4e   commctrl.h..CDN
04a0: 5f 4c 41 53 54 20 20 20 20 20 20 20 20 20 20 20  _LAST           
04b0: 3d 20 2d 36 39 39 2c 0a 09 43 44 4e 5f 49 4e 49  = -699,..CDN_INI
04c0: 54 44 4f 4e 45 20 20 20 20 20 20 20 3d 20 43 44  TDONE       = CD
04d0: 4e 5f 46 49 52 53 54 2c 0a 09 43 44 4e 5f 53 45  N_FIRST,..CDN_SE
04e0: 4c 43 48 41 4e 47 45 20 20 20 20 20 20 3d 20 43  LCHANGE      = C
04f0: 44 4e 5f 46 49 52 53 54 20 2d 20 31 2c 0a 09 43  DN_FIRST - 1,..C
0500: 44 4e 5f 46 4f 4c 44 45 52 43 48 41 4e 47 45 20  DN_FOLDERCHANGE 
0510: 20 20 3d 20 43 44 4e 5f 46 49 52 53 54 20 2d 20    = CDN_FIRST - 
0520: 32 2c 0a 09 43 44 4e 5f 53 48 41 52 45 56 49 4f  2,..CDN_SHAREVIO
0530: 4c 41 54 49 4f 4e 20 3d 20 43 44 4e 5f 46 49 52  LATION = CDN_FIR
0540: 53 54 20 2d 20 33 2c 0a 09 43 44 4e 5f 48 45 4c  ST - 3,..CDN_HEL
0550: 50 20 20 20 20 20 20 20 20 20 20 20 3d 20 43 44  P           = CD
0560: 4e 5f 46 49 52 53 54 20 2d 20 34 2c 0a 09 43 44  N_FIRST - 4,..CD
0570: 4e 5f 46 49 4c 45 4f 4b 20 20 20 20 20 20 20 20  N_FILEOK        
0580: 20 3d 20 43 44 4e 5f 46 49 52 53 54 20 2d 20 35   = CDN_FIRST - 5
0590: 2c 0a 09 43 44 4e 5f 54 59 50 45 43 48 41 4e 47  ,..CDN_TYPECHANG
05a0: 45 20 20 20 20 20 3d 20 43 44 4e 5f 46 49 52 53  E     = CDN_FIRS
05b0: 54 20 2d 20 36 0a 7d 0a 0a 65 6e 75 6d 20 3a 20  T - 6.}..enum : 
05c0: 55 49 4e 54 20 7b 0a 09 43 44 4d 5f 46 49 52 53  UINT {..CDM_FIRS
05d0: 54 20 20 20 20 20 20 20 20 20 20 20 3d 20 57 4d  T           = WM
05e0: 5f 55 53 45 52 20 2b 20 31 30 30 2c 0a 09 43 44  _USER + 100,..CD
05f0: 4d 5f 4c 41 53 54 20 20 20 20 20 20 20 20 20 20  M_LAST          
0600: 20 20 3d 20 57 4d 5f 55 53 45 52 20 2b 20 32 30    = WM_USER + 20
0610: 30 2c 0a 09 43 44 4d 5f 47 45 54 53 50 45 43 20  0,..CDM_GETSPEC 
0620: 20 20 20 20 20 20 20 20 3d 20 43 44 4d 5f 46 49          = CDM_FI
0630: 52 53 54 2c 0a 09 43 44 4d 5f 47 45 54 46 49 4c  RST,..CDM_GETFIL
0640: 45 50 41 54 48 2c 0a 09 43 44 4d 5f 47 45 54 46  EPATH,..CDM_GETF
0650: 4f 4c 44 45 52 50 41 54 48 2c 0a 09 43 44 4d 5f  OLDERPATH,..CDM_
0660: 47 45 54 46 4f 4c 44 45 52 49 44 4c 49 53 54 2c  GETFOLDERIDLIST,
0670: 0a 09 43 44 4d 5f 53 45 54 43 4f 4e 54 52 4f 4c  ..CDM_SETCONTROL
0680: 54 45 58 54 2c 0a 09 43 44 4d 5f 48 49 44 45 43  TEXT,..CDM_HIDEC
0690: 4f 4e 54 52 4f 4c 2c 0a 09 43 44 4d 5f 53 45 54  ONTROL,..CDM_SET
06a0: 44 45 46 45 58 54 20 20 20 20 2f 2f 20 3d 20 43  DEFEXT    // = C
06b0: 44 4d 5f 46 49 52 53 54 20 2b 20 36 0a 7d 0a 0a  DM_FIRST + 6.}..
06c0: 2f 2f 20 66 6c 61 67 73 20 66 6f 72 20 43 68 6f  // flags for Cho
06d0: 6f 73 65 43 6f 6c 6f 72 0a 65 6e 75 6d 20 3a 20  oseColor.enum : 
06e0: 44 57 4f 52 44 20 7b 0a 09 43 43 5f 52 47 42 49  DWORD {..CC_RGBI
06f0: 4e 49 54 20 20 20 20 20 20 20 20 20 20 20 20 20  NIT             
0700: 20 3d 20 30 78 30 30 30 31 2c 0a 09 43 43 5f 46   = 0x0001,..CC_F
0710: 55 4c 4c 4f 50 45 4e 20 20 20 20 20 20 20 20 20  ULLOPEN         
0720: 20 20 20 20 3d 20 30 78 30 30 30 32 2c 0a 09 43      = 0x0002,..C
0730: 43 5f 50 52 45 56 45 4e 54 46 55 4c 4c 4f 50 45  C_PREVENTFULLOPE
0740: 4e 20 20 20 20 20 20 3d 20 30 78 30 30 30 34 2c  N      = 0x0004,
0750: 0a 09 43 43 5f 53 48 4f 57 48 45 4c 50 20 20 20  ..CC_SHOWHELP   
0760: 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30            = 0x00
0770: 30 38 2c 0a 09 43 43 5f 45 4e 41 42 4c 45 48 4f  08,..CC_ENABLEHO
0780: 4f 4b 20 20 20 20 20 20 20 20 20 20 20 3d 20 30  OK           = 0
0790: 78 30 30 31 30 2c 0a 09 43 43 5f 45 4e 41 42 4c  x0010,..CC_ENABL
07a0: 45 54 45 4d 50 4c 41 54 45 20 20 20 20 20 20 20  ETEMPLATE       
07b0: 3d 20 30 78 30 30 32 30 2c 0a 09 43 43 5f 45 4e  = 0x0020,..CC_EN
07c0: 41 42 4c 45 54 45 4d 50 4c 41 54 45 48 41 4e 44  ABLETEMPLATEHAND
07d0: 4c 45 20 3d 20 30 78 30 30 34 30 2c 0a 09 43 43  LE = 0x0040,..CC
07e0: 5f 53 4f 4c 49 44 43 4f 4c 4f 52 20 20 20 20 20  _SOLIDCOLOR     
07f0: 20 20 20 20 20 20 3d 20 30 78 30 30 38 30 2c 0a        = 0x0080,.
0800: 09 43 43 5f 41 4e 59 43 4f 4c 4f 52 20 20 20 20  .CC_ANYCOLOR    
0810: 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 31 30           = 0x010
0820: 30 0a 7d 0a 0a 2f 2f 20 66 6c 61 67 73 20 66 6f  0.}..// flags fo
0830: 72 20 43 68 6f 6f 73 65 46 6f 6e 74 0a 65 6e 75  r ChooseFont.enu
0840: 6d 20 3a 20 44 57 4f 52 44 20 7b 0a 09 43 46 5f  m : DWORD {..CF_
0850: 53 43 52 45 45 4e 46 4f 4e 54 53 20 20 20 20 20  SCREENFONTS     
0860: 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30 30       = 0x0000000
0870: 31 2c 0a 09 43 46 5f 50 52 49 4e 54 45 52 46 4f  1,..CF_PRINTERFO
0880: 4e 54 53 20 20 20 20 20 20 20 20 20 3d 20 30 78  NTS         = 0x
0890: 30 30 30 30 30 30 30 32 2c 0a 09 43 46 5f 42 4f  00000002,..CF_BO
08a0: 54 48 20 20 20 20 20 20 20 20 20 20 20 20 20 20  TH              
08b0: 20 20 20 3d 20 30 78 30 30 30 30 30 30 30 33 2c     = 0x00000003,
08c0: 0a 09 43 46 5f 53 48 4f 57 48 45 4c 50 20 20 20  ..CF_SHOWHELP   
08d0: 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30            = 0x00
08e0: 30 30 30 30 30 34 2c 0a 09 43 46 5f 45 4e 41 42  000004,..CF_ENAB
08f0: 4c 45 48 4f 4f 4b 20 20 20 20 20 20 20 20 20 20  LEHOOK          
0900: 20 3d 20 30 78 30 30 30 30 30 30 30 38 2c 0a 09   = 0x00000008,..
0910: 43 46 5f 45 4e 41 42 4c 45 54 45 4d 50 4c 41 54  CF_ENABLETEMPLAT
0920: 45 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 30  E       = 0x0000
0930: 30 30 31 30 2c 0a 09 43 46 5f 45 4e 41 42 4c 45  0010,..CF_ENABLE
0940: 54 45 4d 50 4c 41 54 45 48 41 4e 44 4c 45 20 3d  TEMPLATEHANDLE =
0950: 20 30 78 30 30 30 30 30 30 32 30 2c 0a 09 43 46   0x00000020,..CF
0960: 5f 49 4e 49 54 54 4f 4c 4f 47 46 4f 4e 54 53 54  _INITTOLOGFONTST
0970: 52 55 43 54 20 20 3d 20 30 78 30 30 30 30 30 30  RUCT  = 0x000000
0980: 34 30 2c 0a 09 43 46 5f 55 53 45 53 54 59 4c 45  40,..CF_USESTYLE
0990: 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 30               = 0
09a0: 78 30 30 30 30 30 30 38 30 2c 0a 09 43 46 5f 45  x00000080,..CF_E
09b0: 46 46 45 43 54 53 20 20 20 20 20 20 20 20 20 20  FFECTS          
09c0: 20 20 20 20 3d 20 30 78 30 30 30 30 30 31 30 30      = 0x00000100
09d0: 2c 0a 09 43 46 5f 41 50 50 4c 59 20 20 20 20 20  ,..CF_APPLY     
09e0: 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30             = 0x0
09f0: 30 30 30 30 32 30 30 2c 0a 09 43 46 5f 41 4e 53  0000200,..CF_ANS
0a00: 49 4f 4e 4c 59 20 20 20 20 20 20 20 20 20 20 20  IONLY           
0a10: 20 20 3d 20 30 78 30 30 30 30 30 34 30 30 2c 0a    = 0x00000400,.
0a20: 09 43 46 5f 53 43 52 49 50 54 53 4f 4e 4c 59 20  .CF_SCRIPTSONLY 
0a30: 20 20 20 20 20 20 20 20 20 3d 20 43 46 5f 41 4e           = CF_AN
0a40: 53 49 4f 4e 4c 59 2c 0a 09 43 46 5f 4e 4f 56 45  SIONLY,..CF_NOVE
0a50: 43 54 4f 52 46 4f 4e 54 53 20 20 20 20 20 20 20  CTORFONTS       
0a60: 20 3d 20 30 78 30 30 30 30 30 38 30 30 2c 0a 09   = 0x00000800,..
0a70: 43 46 5f 4e 4f 4f 45 4d 46 4f 4e 54 53 20 20 20  CF_NOOEMFONTS   
0a80: 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 30          = 0x0000
0a90: 30 38 30 30 2c 0a 09 43 46 5f 4e 4f 53 49 4d 55  0800,..CF_NOSIMU
0aa0: 4c 41 54 49 4f 4e 53 20 20 20 20 20 20 20 20 3d  LATIONS        =
0ab0: 20 30 78 30 30 30 30 31 30 30 30 2c 0a 09 43 46   0x00001000,..CF
0ac0: 5f 4c 49 4d 49 54 53 49 5a 45 20 20 20 20 20 20  _LIMITSIZE      
0ad0: 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 32 30        = 0x000020
0ae0: 30 30 2c 0a 09 43 46 5f 46 49 58 45 44 50 49 54  00,..CF_FIXEDPIT
0af0: 43 48 4f 4e 4c 59 20 20 20 20 20 20 20 3d 20 30  CHONLY       = 0
0b00: 78 30 30 30 30 34 30 30 30 2c 0a 09 43 46 5f 57  x00004000,..CF_W
0b10: 59 53 49 57 59 47 20 20 20 20 20 20 20 20 20 20  YSIWYG          
0b20: 20 20 20 20 3d 20 30 78 30 30 30 30 38 30 30 30      = 0x00008000
0b30: 2c 0a 09 43 46 5f 46 4f 52 43 45 46 4f 4e 54 45  ,..CF_FORCEFONTE
0b40: 58 49 53 54 20 20 20 20 20 20 20 3d 20 30 78 30  XIST       = 0x0
0b50: 30 30 31 30 30 30 30 2c 0a 09 43 46 5f 53 43 41  0010000,..CF_SCA
0b60: 4c 41 42 4c 45 4f 4e 4c 59 20 20 20 20 20 20 20  LABLEONLY       
0b70: 20 20 3d 20 30 78 30 30 30 32 30 30 30 30 2c 0a    = 0x00020000,.
0b80: 09 43 46 5f 54 54 4f 4e 4c 59 20 20 20 20 20 20  .CF_TTONLY      
0b90: 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 30           = 0x000
0ba0: 34 30 30 30 30 2c 0a 09 43 46 5f 4e 4f 46 41 43  40000,..CF_NOFAC
0bb0: 45 53 45 4c 20 20 20 20 20 20 20 20 20 20 20 20  ESEL            
0bc0: 3d 20 30 78 30 30 30 38 30 30 30 30 2c 0a 09 43  = 0x00080000,..C
0bd0: 46 5f 4e 4f 53 54 59 4c 45 53 45 4c 20 20 20 20  F_NOSTYLESEL    
0be0: 20 20 20 20 20 20 20 3d 20 30 78 30 30 31 30 30         = 0x00100
0bf0: 30 30 30 2c 0a 09 43 46 5f 4e 4f 53 49 5a 45 53  000,..CF_NOSIZES
0c00: 45 4c 20 20 20 20 20 20 20 20 20 20 20 20 3d 20  EL            = 
0c10: 30 78 30 30 32 30 30 30 30 30 2c 0a 09 43 46 5f  0x00200000,..CF_
0c20: 53 45 4c 45 43 54 53 43 52 49 50 54 20 20 20 20  SELECTSCRIPT    
0c30: 20 20 20 20 20 3d 20 30 78 30 30 34 30 30 30 30       = 0x0040000
0c40: 30 2c 0a 09 43 46 5f 4e 4f 53 43 52 49 50 54 53  0,..CF_NOSCRIPTS
0c50: 45 4c 20 20 20 20 20 20 20 20 20 20 3d 20 30 78  EL          = 0x
0c60: 30 30 38 30 30 30 30 30 2c 0a 09 43 46 5f 4e 4f  00800000,..CF_NO
0c70: 56 45 52 54 46 4f 4e 54 53 20 20 20 20 20 20 20  VERTFONTS       
0c80: 20 20 20 3d 20 30 78 30 31 30 30 30 30 30 30 0a     = 0x01000000.
0c90: 7d 0a 0a 2f 2f 20 46 6f 6e 74 20 74 79 70 65 20  }..// Font type 
0ca0: 66 6f 72 20 43 68 6f 6f 73 65 46 6f 6e 74 0a 65  for ChooseFont.e
0cb0: 6e 75 6d 20 3a 20 57 4f 52 44 20 7b 0a 09 42 4f  num : WORD {..BO
0cc0: 4c 44 5f 46 4f 4e 54 54 59 50 45 20 20 20 20 20  LD_FONTTYPE     
0cd0: 20 3d 20 30 78 30 31 30 30 2c 0a 09 49 54 41 4c   = 0x0100,..ITAL
0ce0: 49 43 5f 46 4f 4e 54 54 59 50 45 20 20 20 20 3d  IC_FONTTYPE    =
0cf0: 20 30 78 30 32 30 30 2c 0a 09 52 45 47 55 4c 41   0x0200,..REGULA
0d00: 52 5f 46 4f 4e 54 54 59 50 45 20 20 20 3d 20 30  R_FONTTYPE   = 0
0d10: 78 30 34 30 30 2c 0a 09 53 43 52 45 45 4e 5f 46  x0400,..SCREEN_F
0d20: 4f 4e 54 54 59 50 45 20 20 20 20 3d 20 30 78 32  ONTTYPE    = 0x2
0d30: 30 30 30 2c 0a 09 50 52 49 4e 54 45 52 5f 46 4f  000,..PRINTER_FO
0d40: 4e 54 54 59 50 45 20 20 20 3d 20 30 78 34 30 30  NTTYPE   = 0x400
0d50: 30 2c 0a 09 53 49 4d 55 4c 41 54 45 44 5f 46 4f  0,..SIMULATED_FO
0d60: 4e 54 54 59 50 45 20 3d 20 30 78 38 30 30 30 0a  NTTYPE = 0x8000.
0d70: 7d 0a 0a 65 6e 75 6d 20 3a 20 55 49 4e 54 20 7b  }..enum : UINT {
0d80: 0a 09 57 4d 5f 43 48 4f 4f 53 45 46 4f 4e 54 5f  ..WM_CHOOSEFONT_
0d90: 47 45 54 4c 4f 47 46 4f 4e 54 20 3d 20 57 4d 5f  GETLOGFONT = WM_
0da0: 55 53 45 52 20 2b 20 20 20 31 2c 0a 09 57 4d 5f  USER +   1,..WM_
0db0: 43 48 4f 4f 53 45 46 4f 4e 54 5f 53 45 54 4c 4f  CHOOSEFONT_SETLO
0dc0: 47 46 4f 4e 54 20 3d 20 57 4d 5f 55 53 45 52 20  GFONT = WM_USER 
0dd0: 2b 20 31 30 31 2c 0a 09 57 4d 5f 43 48 4f 4f 53  + 101,..WM_CHOOS
0de0: 45 46 4f 4e 54 5f 53 45 54 46 4c 41 47 53 20 20  EFONT_SETFLAGS  
0df0: 20 3d 20 57 4d 5f 55 53 45 52 20 2b 20 31 30 32   = WM_USER + 102
0e00: 0a 7d 0a 0a 2f 2f 20 66 6c 61 67 73 20 66 6f 72  .}..// flags for
0e10: 20 4f 70 65 6e 46 69 6c 65 4e 61 6d 65 0a 65 6e   OpenFileName.en
0e20: 75 6d 20 3a 20 44 57 4f 52 44 20 7b 0a 09 4f 46  um : DWORD {..OF
0e30: 4e 5f 53 48 41 52 45 57 41 52 4e 20 20 20 20 20  N_SHAREWARN     
0e40: 20 20 20 20 20 20 20 3d 20 30 2c 0a 09 4f 46 4e         = 0,..OFN
0e50: 5f 53 48 41 52 45 4e 4f 57 41 52 4e 20 20 20 20  _SHARENOWARN    
0e60: 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 31        = 0x000001
0e70: 2c 0a 09 4f 46 4e 5f 52 45 41 44 4f 4e 4c 59 20  ,..OFN_READONLY 
0e80: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 78              = 0x
0e90: 30 30 30 30 30 31 2c 0a 09 4f 46 4e 5f 53 48 41  000001,..OFN_SHA
0ea0: 52 45 46 41 4c 4c 54 48 52 4f 55 47 48 20 20 20  REFALLTHROUGH   
0eb0: 20 20 3d 20 30 78 30 30 30 30 30 32 2c 0a 09 4f    = 0x000002,..O
0ec0: 46 4e 5f 4f 56 45 52 57 52 49 54 45 50 52 4f 4d  FN_OVERWRITEPROM
0ed0: 50 54 20 20 20 20 20 20 3d 20 30 78 30 30 30 30  PT      = 0x0000
0ee0: 30 32 2c 0a 09 4f 46 4e 5f 48 49 44 45 52 45 41  02,..OFN_HIDEREA
0ef0: 44 4f 4e 4c 59 20 20 20 20 20 20 20 20 20 3d 20  DONLY         = 
0f00: 30 78 30 30 30 30 30 34 2c 0a 09 4f 46 4e 5f 4e  0x000004,..OFN_N
0f10: 4f 43 48 41 4e 47 45 44 49 52 20 20 20 20 20 20  OCHANGEDIR      
0f20: 20 20 20 20 3d 20 30 78 30 30 30 30 30 38 2c 0a      = 0x000008,.
0f30: 09 4f 46 4e 5f 53 48 4f 57 48 45 4c 50 20 20 20  .OFN_SHOWHELP   
0f40: 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30            = 0x00
0f50: 30 30 31 30 2c 0a 09 4f 46 4e 5f 45 4e 41 42 4c  0010,..OFN_ENABL
0f60: 45 48 4f 4f 4b 20 20 20 20 20 20 20 20 20 20 20  EHOOK           
0f70: 3d 20 30 78 30 30 30 30 32 30 2c 0a 09 4f 46 4e  = 0x000020,..OFN
0f80: 5f 45 4e 41 42 4c 45 54 45 4d 50 4c 41 54 45 20  _ENABLETEMPLATE 
0f90: 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 34 30        = 0x000040
0fa0: 2c 0a 09 4f 46 4e 5f 45 4e 41 42 4c 45 54 45 4d  ,..OFN_ENABLETEM
0fb0: 50 4c 41 54 45 48 41 4e 44 4c 45 20 3d 20 30 78  PLATEHANDLE = 0x
0fc0: 30 30 30 30 38 30 2c 0a 09 4f 46 4e 5f 4e 4f 56  000080,..OFN_NOV
0fd0: 41 4c 49 44 41 54 45 20 20 20 20 20 20 20 20 20  ALIDATE         
0fe0: 20 20 3d 20 30 78 30 30 30 31 30 30 2c 0a 09 4f    = 0x000100,..O
0ff0: 46 4e 5f 41 4c 4c 4f 57 4d 55 4c 54 49 53 45 4c  FN_ALLOWMULTISEL
1000: 45 43 54 20 20 20 20 20 3d 20 30 78 30 30 30 32  ECT     = 0x0002
1010: 30 30 2c 0a 09 4f 46 4e 5f 45 58 54 45 4e 53 49  00,..OFN_EXTENSI
1020: 4f 4e 44 49 46 46 45 52 45 4e 54 20 20 20 3d 20  ONDIFFERENT   = 
1030: 30 78 30 30 30 34 30 30 2c 0a 09 4f 46 4e 5f 50  0x000400,..OFN_P
1040: 41 54 48 4d 55 53 54 45 58 49 53 54 20 20 20 20  ATHMUSTEXIST    
1050: 20 20 20 20 3d 20 30 78 30 30 30 38 30 30 2c 0a      = 0x000800,.
1060: 09 4f 46 4e 5f 46 49 4c 45 4d 55 53 54 45 58 49  .OFN_FILEMUSTEXI
1070: 53 54 20 20 20 20 20 20 20 20 3d 20 30 78 30 30  ST        = 0x00
1080: 31 30 30 30 2c 0a 09 4f 46 4e 5f 43 52 45 41 54  1000,..OFN_CREAT
1090: 45 50 52 4f 4d 50 54 20 20 20 20 20 20 20 20 20  EPROMPT         
10a0: 3d 20 30 78 30 30 32 30 30 30 2c 0a 09 4f 46 4e  = 0x002000,..OFN
10b0: 5f 53 48 41 52 45 41 57 41 52 45 20 20 20 20 20  _SHAREAWARE     
10c0: 20 20 20 20 20 20 3d 20 30 78 30 30 34 30 30 30        = 0x004000
10d0: 2c 0a 09 4f 46 4e 5f 4e 4f 52 45 41 44 4f 4e 4c  ,..OFN_NOREADONL
10e0: 59 52 45 54 55 52 4e 20 20 20 20 20 3d 20 30 78  YRETURN     = 0x
10f0: 30 30 38 30 30 30 2c 0a 09 4f 46 4e 5f 4e 4f 54  008000,..OFN_NOT
1100: 45 53 54 46 49 4c 45 43 52 45 41 54 45 20 20 20  ESTFILECREATE   
1110: 20 20 3d 20 30 78 30 31 30 30 30 30 2c 0a 09 4f    = 0x010000,..O
1120: 46 4e 5f 4e 4f 4e 45 54 57 4f 52 4b 42 55 54 54  FN_NONETWORKBUTT
1130: 4f 4e 20 20 20 20 20 20 3d 20 30 78 30 32 30 30  ON      = 0x0200
1140: 30 30 2c 0a 09 4f 46 4e 5f 4e 4f 4c 4f 4e 47 4e  00,..OFN_NOLONGN
1150: 41 4d 45 53 20 20 20 20 20 20 20 20 20 20 3d 20  AMES          = 
1160: 30 78 30 34 30 30 30 30 2c 0a 09 4f 46 4e 5f 45  0x040000,..OFN_E
1170: 58 50 4c 4f 52 45 52 20 20 20 20 20 20 20 20 20  XPLORER         
1180: 20 20 20 20 3d 20 30 78 30 38 30 30 30 30 2c 0a      = 0x080000,.
1190: 09 4f 46 4e 5f 4e 4f 44 45 52 45 46 45 52 45 4e  .OFN_NODEREFEREN
11a0: 43 45 4c 49 4e 4b 53 20 20 20 3d 20 30 78 31 30  CELINKS   = 0x10
11b0: 30 30 30 30 2c 0a 09 4f 46 4e 5f 4c 4f 4e 47 4e  0000,..OFN_LONGN
11c0: 41 4d 45 53 20 20 20 20 20 20 20 20 20 20 20 20  AMES            
11d0: 3d 20 30 78 32 30 30 30 30 30 2c 0a 09 4f 46 4e  = 0x200000,..OFN
11e0: 5f 45 4e 41 42 4c 45 53 49 5a 49 4e 47 20 20 20  _ENABLESIZING   
11f0: 20 20 20 20 20 20 3d 20 30 78 38 30 30 30 30 30        = 0x800000
1200: 0a 7d 0a 0a 65 6e 75 6d 20 3a 20 44 57 4f 52 44  .}..enum : DWORD
1210: 20 7b 0a 09 46 52 5f 44 4f 57 4e 20 20 20 20 20   {..FR_DOWN     
1220: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 78              = 0x
1230: 30 30 30 30 30 30 30 31 2c 0a 09 46 52 5f 57 48  00000001,..FR_WH
1240: 4f 4c 45 57 4f 52 44 20 20 20 20 20 20 20 20 20  OLEWORD         
1250: 20 20 20 3d 20 30 78 30 30 30 30 30 30 30 32 2c     = 0x00000002,
1260: 0a 09 46 52 5f 4d 41 54 43 48 43 41 53 45 20 20  ..FR_MATCHCASE  
1270: 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30            = 0x00
1280: 30 30 30 30 30 34 2c 0a 09 46 52 5f 46 49 4e 44  000004,..FR_FIND
1290: 4e 45 58 54 20 20 20 20 20 20 20 20 20 20 20 20  NEXT            
12a0: 20 3d 20 30 78 30 30 30 30 30 30 30 38 2c 0a 09   = 0x00000008,..
12b0: 46 52 5f 52 45 50 4c 41 43 45 20 20 20 20 20 20  FR_REPLACE      
12c0: 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 30          = 0x0000
12d0: 30 30 31 30 2c 0a 09 46 52 5f 52 45 50 4c 41 43  0010,..FR_REPLAC
12e0: 45 41 4c 4c 20 20 20 20 20 20 20 20 20 20 20 3d  EALL           =
12f0: 20 30 78 30 30 30 30 30 30 32 30 2c 0a 09 46 52   0x00000020,..FR
1300: 5f 44 49 41 4c 4f 47 54 45 52 4d 20 20 20 20 20  _DIALOGTERM     
1310: 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30        = 0x000000
1320: 34 30 2c 0a 09 46 52 5f 53 48 4f 57 48 45 4c 50  40,..FR_SHOWHELP
1330: 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 30               = 0
1340: 78 30 30 30 30 30 30 38 30 2c 0a 09 46 52 5f 45  x00000080,..FR_E
1350: 4e 41 42 4c 45 48 4f 4f 4b 20 20 20 20 20 20 20  NABLEHOOK       
1360: 20 20 20 20 3d 20 30 78 30 30 30 30 30 31 30 30      = 0x00000100
1370: 2c 0a 09 46 52 5f 45 4e 41 42 4c 45 54 45 4d 50  ,..FR_ENABLETEMP
1380: 4c 41 54 45 20 20 20 20 20 20 20 3d 20 30 78 30  LATE       = 0x0
1390: 30 30 30 30 32 30 30 2c 0a 09 46 52 5f 4e 4f 55  0000200,..FR_NOU
13a0: 50 44 4f 57 4e 20 20 20 20 20 20 20 20 20 20 20  PDOWN           
13b0: 20 20 3d 20 30 78 30 30 30 30 30 34 30 30 2c 0a    = 0x00000400,.
13c0: 09 46 52 5f 4e 4f 4d 41 54 43 48 43 41 53 45 20  .FR_NOMATCHCASE 
13d0: 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 30           = 0x000
13e0: 30 30 38 30 30 2c 0a 09 46 52 5f 4e 4f 57 48 4f  00800,..FR_NOWHO
13f0: 4c 45 57 4f 52 44 20 20 20 20 20 20 20 20 20 20  LEWORD          
1400: 3d 20 30 78 30 30 30 30 31 30 30 30 2c 0a 09 46  = 0x00001000,..F
1410: 52 5f 45 4e 41 42 4c 45 54 45 4d 50 4c 41 54 45  R_ENABLETEMPLATE
1420: 48 41 4e 44 4c 45 20 3d 20 30 78 30 30 30 30 32  HANDLE = 0x00002
1430: 30 30 30 2c 0a 09 46 52 5f 48 49 44 45 55 50 44  000,..FR_HIDEUPD
1440: 4f 57 4e 20 20 20 20 20 20 20 20 20 20 20 3d 20  OWN           = 
1450: 30 78 30 30 30 30 34 30 30 30 2c 0a 09 46 52 5f  0x00004000,..FR_
1460: 48 49 44 45 4d 41 54 43 48 43 41 53 45 20 20 20  HIDEMATCHCASE   
1470: 20 20 20 20 20 3d 20 30 78 30 30 30 30 38 30 30       = 0x0000800
1480: 30 2c 0a 09 46 52 5f 48 49 44 45 57 48 4f 4c 45  0,..FR_HIDEWHOLE
1490: 57 4f 52 44 20 20 20 20 20 20 20 20 3d 20 30 78  WORD        = 0x
14a0: 30 30 30 31 30 30 30 30 2c 0a 09 46 52 5f 4d 41  00010000,..FR_MA
14b0: 54 43 48 44 49 41 43 20 20 20 20 20 20 20 20 20  TCHDIAC         
14c0: 20 20 20 3d 20 30 78 32 30 30 30 30 30 30 30 2c     = 0x20000000,
14d0: 0a 09 46 52 5f 4d 41 54 43 48 4b 41 53 48 49 44  ..FR_MATCHKASHID
14e0: 41 20 20 20 20 20 20 20 20 20 3d 20 30 78 34 30  A         = 0x40
14f0: 30 30 30 30 30 30 2c 0a 09 46 52 5f 4d 41 54 43  000000,..FR_MATC
1500: 48 41 4c 45 46 48 41 4d 5a 41 20 20 20 20 20 20  HALEFHAMZA      
1510: 20 3d 20 30 78 38 30 30 30 30 30 30 30 0a 7d 0a   = 0x80000000.}.
1520: 0a 65 6e 75 6d 20 3a 20 44 57 4f 52 44 20 7b 0a  .enum : DWORD {.
1530: 09 50 44 5f 41 4c 4c 50 41 47 45 53 20 20 20 20  .PD_ALLPAGES    
1540: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d                 =
1550: 20 30 2c 0a 09 50 44 5f 53 45 4c 45 43 54 49 4f   0,..PD_SELECTIO
1560: 4e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  N               
1570: 20 20 20 3d 20 30 78 30 30 30 30 30 31 2c 0a 09     = 0x000001,..
1580: 50 44 5f 50 41 47 45 4e 55 4d 53 20 20 20 20 20  PD_PAGENUMS     
1590: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20                = 
15a0: 30 78 30 30 30 30 30 32 2c 0a 09 50 44 5f 4e 4f  0x000002,..PD_NO
15b0: 53 45 4c 45 43 54 49 4f 4e 20 20 20 20 20 20 20  SELECTION       
15c0: 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 30           = 0x000
15d0: 30 30 34 2c 0a 09 50 44 5f 4e 4f 50 41 47 45 4e  004,..PD_NOPAGEN
15e0: 55 4d 53 20 20 20 20 20 20 20 20 20 20 20 20 20  UMS             
15f0: 20 20 20 20 3d 20 30 78 30 30 30 30 30 38 2c 0a      = 0x000008,.
1600: 09 50 44 5f 43 4f 4c 4c 41 54 45 20 20 20 20 20  .PD_COLLATE     
1610: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d                 =
1620: 20 30 78 30 30 30 30 31 30 2c 0a 09 50 44 5f 50   0x000010,..PD_P
1630: 52 49 4e 54 54 4f 46 49 4c 45 20 20 20 20 20 20  RINTTOFILE      
1640: 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30            = 0x00
1650: 30 30 32 30 2c 0a 09 50 44 5f 50 52 49 4e 54 53  0020,..PD_PRINTS
1660: 45 54 55 50 20 20 20 20 20 20 20 20 20 20 20 20  ETUP            
1670: 20 20 20 20 20 3d 20 30 78 30 30 30 30 34 30 2c       = 0x000040,
1680: 0a 09 50 44 5f 4e 4f 57 41 52 4e 49 4e 47 20 20  ..PD_NOWARNING  
1690: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16a0: 3d 20 30 78 30 30 30 30 38 30 2c 0a 09 50 44 5f  = 0x000080,..PD_
16b0: 52 45 54 55 52 4e 44 43 20 20 20 20 20 20 20 20  RETURNDC        
16c0: 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30             = 0x0
16d0: 30 30 31 30 30 2c 0a 09 50 44 5f 52 45 54 55 52  00100,..PD_RETUR
16e0: 4e 49 43 20 20 20 20 20 20 20 20 20 20 20 20 20  NIC             
16f0: 20 20 20 20 20 20 3d 20 30 78 30 30 30 32 30 30        = 0x000200
1700: 2c 0a 09 50 44 5f 52 45 54 55 52 4e 44 45 46 41  ,..PD_RETURNDEFA
1710: 55 4c 54 20 20 20 20 20 20 20 20 20 20 20 20 20  ULT             
1720: 20 3d 20 30 78 30 30 30 34 30 30 2c 0a 09 50 44   = 0x000400,..PD
1730: 5f 53 48 4f 57 48 45 4c 50 20 20 20 20 20 20 20  _SHOWHELP       
1740: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 78              = 0x
1750: 30 30 30 38 30 30 2c 0a 09 50 44 5f 45 4e 41 42  000800,..PD_ENAB
1760: 4c 45 50 52 49 4e 54 48 4f 4f 4b 20 20 20 20 20  LEPRINTHOOK     
1770: 20 20 20 20 20 20 20 3d 20 30 78 30 30 31 30 30         = 0x00100
1780: 30 2c 0a 09 50 44 5f 45 4e 41 42 4c 45 53 45 54  0,..PD_ENABLESET
1790: 55 50 48 4f 4f 4b 20 20 20 20 20 20 20 20 20 20  UPHOOK          
17a0: 20 20 3d 20 30 78 30 30 32 30 30 30 2c 0a 09 50    = 0x002000,..P
17b0: 44 5f 45 4e 41 42 4c 45 50 52 49 4e 54 54 45 4d  D_ENABLEPRINTTEM
17c0: 50 4c 41 54 45 20 20 20 20 20 20 20 20 3d 20 30  PLATE        = 0
17d0: 78 30 30 34 30 30 30 2c 0a 09 50 44 5f 45 4e 41  x004000,..PD_ENA
17e0: 42 4c 45 53 45 54 55 50 54 45 4d 50 4c 41 54 45  BLESETUPTEMPLATE
17f0: 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 38 30          = 0x0080
1800: 30 30 2c 0a 09 50 44 5f 45 4e 41 42 4c 45 50 52  00,..PD_ENABLEPR
1810: 49 4e 54 54 45 4d 50 4c 41 54 45 48 41 4e 44 4c  INTTEMPLATEHANDL
1820: 45 20 20 3d 20 30 78 30 31 30 30 30 30 2c 0a 09  E  = 0x010000,..
1830: 50 44 5f 45 4e 41 42 4c 45 53 45 54 55 50 54 45  PD_ENABLESETUPTE
1840: 4d 50 4c 41 54 45 48 41 4e 44 4c 45 20 20 3d 20  MPLATEHANDLE  = 
1850: 30 78 30 32 30 30 30 30 2c 0a 09 50 44 5f 55 53  0x020000,..PD_US
1860: 45 44 45 56 4d 4f 44 45 43 4f 50 49 45 53 20 20  EDEVMODECOPIES  
1870: 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 34 30           = 0x040
1880: 30 30 30 2c 0a 09 50 44 5f 55 53 45 44 45 56 4d  000,..PD_USEDEVM
1890: 4f 44 45 43 4f 50 49 45 53 41 4e 44 43 4f 4c 4c  ODECOPIESANDCOLL
18a0: 41 54 45 20 3d 20 30 78 30 34 30 30 30 30 2c 0a  ATE = 0x040000,.
18b0: 09 50 44 5f 44 49 53 41 42 4c 45 50 52 49 4e 54  .PD_DISABLEPRINT
18c0: 54 4f 46 49 4c 45 20 20 20 20 20 20 20 20 20 3d  TOFILE         =
18d0: 20 30 78 30 38 30 30 30 30 2c 0a 09 50 44 5f 48   0x080000,..PD_H
18e0: 49 44 45 50 52 49 4e 54 54 4f 46 49 4c 45 20 20  IDEPRINTTOFILE  
18f0: 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 31 30            = 0x10
1900: 30 30 30 30 2c 0a 09 50 44 5f 4e 4f 4e 45 54 57  0000,..PD_NONETW
1910: 4f 52 4b 42 55 54 54 4f 4e 20 20 20 20 20 20 20  ORKBUTTON       
1920: 20 20 20 20 20 3d 20 30 78 32 30 30 30 30 30 0a       = 0x200000.
1930: 7d 0a 0a 73 74 61 74 69 63 20 69 66 20 28 5f 57  }..static if (_W
1940: 49 4e 33 32 5f 57 49 4e 4e 54 5f 4f 4e 4c 59 20  IN32_WINNT_ONLY 
1950: 26 26 20 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 20  && _WIN32_WINNT 
1960: 3e 3d 20 30 78 35 30 30 29 20 7b 0a 09 65 6e 75  >= 0x500) {..enu
1970: 6d 20 3a 20 44 57 4f 52 44 20 7b 0a 09 09 50 44  m : DWORD {...PD
1980: 5f 43 55 52 52 45 4e 54 50 41 47 45 20 20 20 20  _CURRENTPAGE    
1990: 20 20 3d 20 30 78 30 30 34 30 30 30 30 30 2c 0a    = 0x00400000,.
19a0: 09 09 50 44 5f 4e 4f 43 55 52 52 45 4e 54 50 41  ..PD_NOCURRENTPA
19b0: 47 45 20 20 20 20 3d 20 30 78 30 30 38 30 30 30  GE    = 0x008000
19c0: 30 30 2c 0a 09 09 50 44 5f 45 58 43 4c 55 53 49  00,...PD_EXCLUSI
19d0: 4f 4e 46 4c 41 47 53 20 20 20 3d 20 30 78 30 31  ONFLAGS   = 0x01
19e0: 30 30 30 30 30 30 2c 0a 09 09 50 44 5f 55 53 45  000000,...PD_USE
19f0: 4c 41 52 47 45 54 45 4d 50 4c 41 54 45 20 3d 20  LARGETEMPLATE = 
1a00: 30 78 31 30 30 30 30 30 30 30 2c 0a 09 7d 0a 0a  0x10000000,..}..
1a10: 09 65 6e 75 6d 20 3a 20 48 52 45 53 55 4c 54 20  .enum : HRESULT 
1a20: 7b 0a 09 09 50 44 5f 52 45 53 55 4c 54 5f 43 41  {...PD_RESULT_CA
1a30: 4e 43 45 4c 2c 0a 09 09 50 44 5f 52 45 53 55 4c  NCEL,...PD_RESUL
1a40: 54 5f 50 52 49 4e 54 2c 0a 09 09 50 44 5f 52 45  T_PRINT,...PD_RE
1a50: 53 55 4c 54 5f 41 50 50 4c 59 0a 09 7d 0a 0a 09  SULT_APPLY..}...
1a60: 63 6f 6e 73 74 20 44 57 4f 52 44 20 53 54 41 52  const DWORD STAR
1a70: 54 5f 50 41 47 45 5f 47 45 4e 45 52 41 4c 20 3d  T_PAGE_GENERAL =
1a80: 20 30 78 46 46 46 46 46 46 46 46 3b 0a 7d 0a 0a   0xFFFFFFFF;.}..
1a90: 65 6e 75 6d 20 7b 0a 09 50 53 44 5f 44 45 46 41  enum {..PSD_DEFA
1aa0: 55 4c 54 4d 49 4e 4d 41 52 47 49 4e 53 20 20 20  ULTMINMARGINS   
1ab0: 20 20 20 20 20 20 20 20 20 20 3d 20 30 2c 0a 09            = 0,..
1ac0: 50 53 44 5f 49 4e 57 49 4e 49 4e 49 49 4e 54 4c  PSD_INWININIINTL
1ad0: 4d 45 41 53 55 52 45 20 20 20 20 20 20 20 20 20  MEASURE         
1ae0: 20 20 3d 20 30 2c 0a 09 50 53 44 5f 4d 49 4e 4d    = 0,..PSD_MINM
1af0: 41 52 47 49 4e 53 20 20 20 20 20 20 20 20 20 20  ARGINS          
1b00: 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30            = 0x00
1b10: 30 30 30 31 2c 0a 09 50 53 44 5f 4d 41 52 47 49  0001,..PSD_MARGI
1b20: 4e 53 20 20 20 20 20 20 20 20 20 20 20 20 20 20  NS              
1b30: 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 30           = 0x000
1b40: 30 30 32 2c 0a 09 50 53 44 5f 49 4e 54 48 4f 55  002,..PSD_INTHOU
1b50: 53 41 4e 44 54 48 53 4f 46 49 4e 43 48 45 53 20  SANDTHSOFINCHES 
1b60: 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 30          = 0x0000
1b70: 30 34 2c 0a 09 50 53 44 5f 49 4e 48 55 4e 44 52  04,..PSD_INHUNDR
1b80: 45 44 54 48 53 4f 46 4d 49 4c 4c 49 4d 45 54 45  EDTHSOFMILLIMETE
1b90: 52 53 20 20 20 20 20 3d 20 30 78 30 30 30 30 30  RS     = 0x00000
1ba0: 38 2c 0a 09 50 53 44 5f 44 49 53 41 42 4c 45 4d  8,..PSD_DISABLEM
1bb0: 41 52 47 49 4e 53 20 20 20 20 20 20 20 20 20 20  ARGINS          
1bc0: 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 31 30        = 0x000010
1bd0: 2c 0a 09 50 53 44 5f 44 49 53 41 42 4c 45 50 52  ,..PSD_DISABLEPR
1be0: 49 4e 54 45 52 20 20 20 20 20 20 20 20 20 20 20  INTER           
1bf0: 20 20 20 20 20 3d 20 30 78 30 30 30 30 32 30 2c       = 0x000020,
1c00: 0a 09 50 53 44 5f 4e 4f 57 41 52 4e 49 4e 47 20  ..PSD_NOWARNING 
1c10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c20: 20 20 20 20 3d 20 30 78 30 30 30 30 38 30 2c 0a      = 0x000080,.
1c30: 09 50 53 44 5f 44 49 53 41 42 4c 45 4f 52 49 45  .PSD_DISABLEORIE
1c40: 4e 54 41 54 49 4f 4e 20 20 20 20 20 20 20 20 20  NTATION         
1c50: 20 20 20 3d 20 30 78 30 30 30 31 30 30 2c 0a 09     = 0x000100,..
1c60: 50 53 44 5f 44 49 53 41 42 4c 45 50 41 50 45 52  PSD_DISABLEPAPER
1c70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c80: 20 20 3d 20 30 78 30 30 30 32 30 30 2c 0a 09 50    = 0x000200,..P
1c90: 53 44 5f 52 45 54 55 52 4e 44 45 46 41 55 4c 54  SD_RETURNDEFAULT
1ca0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cb0: 20 3d 20 30 78 30 30 30 34 30 30 2c 0a 09 50 53   = 0x000400,..PS
1cc0: 44 5f 53 48 4f 57 48 45 4c 50 20 20 20 20 20 20  D_SHOWHELP      
1cd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ce0: 3d 20 30 78 30 30 30 38 30 30 2c 0a 09 50 53 44  = 0x000800,..PSD
1cf0: 5f 45 4e 41 42 4c 45 50 41 47 45 53 45 54 55 50  _ENABLEPAGESETUP
1d00: 48 4f 4f 4b 20 20 20 20 20 20 20 20 20 20 20 3d  HOOK           =
1d10: 20 30 78 30 30 32 30 30 30 2c 0a 09 50 53 44 5f   0x002000,..PSD_
1d20: 45 4e 41 42 4c 45 50 41 47 45 53 45 54 55 50 54  ENABLEPAGESETUPT
1d30: 45 4d 50 4c 41 54 45 20 20 20 20 20 20 20 3d 20  EMPLATE       = 
1d40: 30 78 30 30 38 30 30 30 2c 0a 09 50 53 44 5f 45  0x008000,..PSD_E
1d50: 4e 41 42 4c 45 50 41 47 45 53 45 54 55 50 54 45  NABLEPAGESETUPTE
1d60: 4d 50 4c 41 54 45 48 41 4e 44 4c 45 20 3d 20 30  MPLATEHANDLE = 0
1d70: 78 30 32 30 30 30 30 2c 0a 09 50 53 44 5f 45 4e  x020000,..PSD_EN
1d80: 41 42 4c 45 50 41 47 45 50 41 49 4e 54 48 4f 4f  ABLEPAGEPAINTHOO
1d90: 4b 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 78  K           = 0x
1da0: 30 34 30 30 30 30 2c 0a 09 50 53 44 5f 44 49 53  040000,..PSD_DIS
1db0: 41 42 4c 45 50 41 47 45 50 41 49 4e 54 49 4e 47  ABLEPAGEPAINTING
1dc0: 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30             = 0x0
1dd0: 38 30 30 30 30 0a 7d 0a 0a 65 6e 75 6d 20 3a 20  80000.}..enum : 
1de0: 55 49 4e 54 20 7b 0a 09 57 4d 5f 50 53 44 5f 50  UINT {..WM_PSD_P
1df0: 41 47 45 53 45 54 55 50 44 4c 47 20 3d 20 57 4d  AGESETUPDLG = WM
1e00: 5f 55 53 45 52 2c 0a 09 57 4d 5f 50 53 44 5f 46  _USER,..WM_PSD_F
1e10: 55 4c 4c 50 41 47 45 52 45 43 54 2c 0a 09 57 4d  ULLPAGERECT,..WM
1e20: 5f 50 53 44 5f 4d 49 4e 4d 41 52 47 49 4e 52 45  _PSD_MINMARGINRE
1e30: 43 54 2c 0a 09 57 4d 5f 50 53 44 5f 4d 41 52 47  CT,..WM_PSD_MARG
1e40: 49 4e 52 45 43 54 2c 0a 09 57 4d 5f 50 53 44 5f  INRECT,..WM_PSD_
1e50: 47 52 45 45 4b 54 45 58 54 52 45 43 54 2c 0a 09  GREEKTEXTRECT,..
1e60: 57 4d 5f 50 53 44 5f 45 4e 56 53 54 41 4d 50 52  WM_PSD_ENVSTAMPR
1e70: 45 43 54 2c 0a 09 57 4d 5f 50 53 44 5f 59 41 46  ECT,..WM_PSD_YAF
1e80: 55 4c 4c 50 41 47 45 52 45 43 54 20 2f 2f 20 3d  ULLPAGERECT // =
1e90: 20 57 4d 5f 55 53 45 52 20 2b 20 36 0a 7d 0a 0a   WM_USER + 6.}..
1ea0: 65 6e 75 6d 20 3a 20 69 6e 74 20 7b 0a 09 43 44  enum : int {..CD
1eb0: 5f 4c 42 53 45 4c 4e 4f 49 54 45 4d 53 20 3d 20  _LBSELNOITEMS = 
1ec0: 2d 31 2c 0a 09 43 44 5f 4c 42 53 45 4c 43 48 41  -1,..CD_LBSELCHA
1ed0: 4e 47 45 2c 0a 09 43 44 5f 4c 42 53 45 4c 53 55  NGE,..CD_LBSELSU
1ee0: 42 2c 0a 09 43 44 5f 4c 42 53 45 4c 41 44 44 0a  B,..CD_LBSELADD.
1ef0: 7d 0a 0a 63 6f 6e 73 74 20 57 4f 52 44 20 44 4e  }..const WORD DN
1f00: 5f 44 45 46 41 55 4c 54 50 52 4e 20 3d 20 31 3b  _DEFAULTPRN = 1;
1f10: 0a 0a 2f 2b 0a 2f 2f 20 42 6f 74 68 20 4d 69 6e  ../+.// Both Min
1f20: 47 57 20 61 6e 64 20 74 68 65 20 77 69 6e 64 6f  GW and the windo
1f30: 77 73 20 64 6f 63 73 20 69 6e 64 69 63 61 74 65  ws docs indicate
1f40: 20 74 68 61 74 20 74 68 65 72 65 20 61 72 65 20   that there are 
1f50: 6d 61 63 72 6f 73 20 66 6f 72 20 74 68 65 20 73  macros for the s
1f60: 65 6e 64 20 6d 65 73 73 61 67 65 73 0a 2f 2f 20  end messages.// 
1f70: 74 68 65 20 63 6f 6e 74 72 6f 6c 73 2e 20 54 68  the controls. Th
1f80: 65 73 65 20 73 65 65 6d 20 74 6f 20 62 65 20 74  ese seem to be t
1f90: 6f 74 61 6c 6c 79 20 75 6e 6e 65 63 65 73 73 61  otally unnecessa
1fa0: 72 79 20 2d 2d 20 61 6e 64 20 61 74 20 6c 65 61  ry -- and at lea
1fb0: 73 74 20 6f 6e 65 20 6f 66 20 4d 69 6e 47 57 20  st one of MinGW 
1fc0: 6f 72 0a 2f 2f 20 57 69 6e 64 6f 77 73 20 44 6f  or.// Windows Do
1fd0: 63 73 20 69 73 20 62 75 67 67 79 21 0a 0a 69 6e  cs is buggy!..in
1fe0: 74 20 43 6f 6d 6d 44 6c 67 5f 4f 70 65 6e 53 61  t CommDlg_OpenSa
1ff0: 76 65 5f 47 65 74 53 70 65 63 28 48 57 4e 44 20  ve_GetSpec(HWND 
2000: 68 57 6e 64 43 6f 6e 74 72 6f 6c 2c 20 4c 50 41  hWndControl, LPA
2010: 52 41 4d 20 6c 70 61 72 61 6d 2c 20 57 50 41 52  RAM lparam, WPAR
2020: 41 4d 20 77 50 61 72 61 6d 29 20 7b 0a 09 72 65  AM wParam) {..re
2030: 74 75 72 6e 20 53 65 6e 64 4d 65 73 73 61 67 65  turn SendMessage
2040: 28 68 57 6e 64 43 6f 6e 74 72 6f 6c 2c 20 43 44  (hWndControl, CD
2050: 4d 5f 47 45 54 53 50 45 43 2c 20 77 50 61 72 61  M_GETSPEC, wPara
2060: 6d 2c 20 6c 50 61 72 61 6d 29 3b 0a 7d 0a 0a 69  m, lParam);.}..i
2070: 6e 74 20 43 6f 6d 6d 44 6c 67 5f 4f 70 65 6e 53  nt CommDlg_OpenS
2080: 61 76 65 5f 47 65 74 46 69 6c 65 50 61 74 68 28  ave_GetFilePath(
2090: 48 57 4e 44 20 68 57 6e 64 43 6f 6e 74 72 6f 6c  HWND hWndControl
20a0: 2c 20 4c 50 41 52 41 4d 20 6c 70 61 72 61 6d 2c  , LPARAM lparam,
20b0: 20 57 50 41 52 41 4d 20 77 50 61 72 61 6d 29 20   WPARAM wParam) 
20c0: 7b 0a 09 72 65 74 75 72 6e 20 53 65 6e 64 4d 65  {..return SendMe
20d0: 73 73 61 67 65 28 68 57 6e 64 43 6f 6e 74 72 6f  ssage(hWndContro
20e0: 6c 2c 20 43 44 4d 5f 47 45 54 46 49 4c 45 50 41  l, CDM_GETFILEPA
20f0: 54 48 2c 20 77 50 61 72 61 6d 2c 20 6c 50 61 72  TH, wParam, lPar
2100: 61 6d 29 3b 0a 7d 0a 0a 69 6e 74 20 43 6f 6d 6d  am);.}..int Comm
2110: 44 6c 67 5f 4f 70 65 6e 53 61 76 65 5f 47 65 74  Dlg_OpenSave_Get
2120: 46 6f 6c 64 65 72 50 61 74 68 28 48 57 4e 44 20  FolderPath(HWND 
2130: 68 57 6e 64 43 6f 6e 74 72 6f 6c 2c 20 4c 50 41  hWndControl, LPA
2140: 52 41 4d 20 6c 70 61 72 61 6d 2c 20 57 50 41 52  RAM lparam, WPAR
2150: 41 4d 20 77 50 61 72 61 6d 29 20 7b 0a 09 72 65  AM wParam) {..re
2160: 74 75 72 6e 20 53 65 6e 64 4d 65 73 73 61 67 65  turn SendMessage
2170: 28 68 57 6e 64 43 6f 6e 74 72 6f 6c 2c 20 43 44  (hWndControl, CD
2180: 4d 5f 47 45 54 46 4f 4c 44 45 52 50 41 54 48 2c  M_GETFOLDERPATH,
2190: 20 77 50 61 72 61 6d 2c 20 6c 50 61 72 61 6d 29   wParam, lParam)
21a0: 3b 0a 7d 0a 0a 69 6e 74 20 43 6f 6d 6d 44 6c 67  ;.}..int CommDlg
21b0: 5f 4f 70 65 6e 53 61 76 65 5f 47 65 74 46 6f 6c  _OpenSave_GetFol
21c0: 64 65 72 49 44 4c 69 73 74 28 48 57 4e 44 20 68  derIDList(HWND h
21d0: 57 6e 64 43 6f 6e 74 72 6f 6c 2c 20 4c 50 41 52  WndControl, LPAR
21e0: 41 4d 20 6c 70 61 72 61 6d 2c 20 57 50 41 52 41  AM lparam, WPARA
21f0: 4d 20 77 50 61 72 61 6d 29 20 7b 0a 09 72 65 74  M wParam) {..ret
2200: 75 72 6e 20 53 65 6e 64 4d 65 73 73 61 67 65 28  urn SendMessage(
2210: 68 57 6e 64 43 6f 6e 74 72 6f 6c 2c 20 43 44 4d  hWndControl, CDM
2220: 5f 47 45 54 46 4f 4c 44 45 52 49 44 4c 49 53 54  _GETFOLDERIDLIST
2230: 2c 20 77 50 61 72 61 6d 2c 20 6c 50 61 72 61 6d  , wParam, lParam
2240: 29 3b 0a 7d 0a 0a 76 6f 69 64 20 43 6f 6d 6d 44  );.}..void CommD
2250: 6c 67 5f 4f 70 65 6e 53 61 76 65 5f 53 65 74 43  lg_OpenSave_SetC
2260: 6f 6e 74 72 6f 6c 54 65 78 74 28 48 57 4e 44 20  ontrolText(HWND 
2270: 68 57 6e 64 43 6f 6e 74 72 6f 6c 2c 20 4c 50 41  hWndControl, LPA
2280: 52 41 4d 20 6c 70 61 72 61 6d 2c 20 57 50 41 52  RAM lparam, WPAR
2290: 41 4d 20 77 50 61 72 61 6d 29 20 7b 0a 09 72 65  AM wParam) {..re
22a0: 74 75 72 6e 20 53 65 6e 64 4d 65 73 73 61 67 65  turn SendMessage
22b0: 28 68 57 6e 64 43 6f 6e 74 72 6f 6c 2c 20 43 44  (hWndControl, CD
22c0: 4d 5f 53 45 54 43 4f 4e 54 52 4f 4c 54 45 58 54  M_SETCONTROLTEXT
22d0: 2c 20 77 50 61 72 61 6d 2c 20 6c 50 61 72 61 6d  , wParam, lParam
22e0: 29 3b 0a 7d 0a 0a 76 6f 69 64 20 43 6f 6d 6d 44  );.}..void CommD
22f0: 6c 67 5f 4f 70 65 6e 53 61 76 65 5f 48 69 64 65  lg_OpenSave_Hide
2300: 43 6f 6e 74 72 6f 6c 28 48 57 4e 44 20 68 57 6e  Control(HWND hWn
2310: 64 43 6f 6e 74 72 6f 6c 2c 20 57 50 41 52 41 4d  dControl, WPARAM
2320: 20 77 50 61 72 61 6d 29 20 7b 0a 09 72 65 74 75   wParam) {..retu
2330: 72 6e 20 53 65 6e 64 4d 65 73 73 61 67 65 28 68  rn SendMessage(h
2340: 57 6e 64 43 6f 6e 74 72 6f 6c 2c 20 43 44 4d 5f  WndControl, CDM_
2350: 48 49 44 45 43 4f 4e 54 52 4f 4c 2c 20 77 50 61  HIDECONTROL, wPa
2360: 72 61 6d 2c 20 30 29 3b 0a 7d 0a 0a 76 6f 69 64  ram, 0);.}..void
2370: 20 43 6f 6d 6d 44 6c 67 5f 4f 70 65 6e 53 61 76   CommDlg_OpenSav
2380: 65 5f 53 65 74 44 65 66 45 78 74 28 48 57 4e 44  e_SetDefExt(HWND
2390: 20 68 57 6e 64 43 6f 6e 74 72 6f 6c 2c 20 54 43   hWndControl, TC
23a0: 48 41 52 2a 20 6c 70 61 72 61 6d 29 20 7b 0a 09  HAR* lparam) {..
23b0: 72 65 74 75 72 6e 20 53 65 6e 64 4d 65 73 73 61  return SendMessa
23c0: 67 65 28 68 57 6e 64 43 6f 6e 74 72 6f 6c 2c 20  ge(hWndControl, 
23d0: 43 44 4d 5f 53 45 54 43 4f 4e 54 52 4f 4c 54 45  CDM_SETCONTROLTE
23e0: 58 54 2c 20 30 2c 20 63 61 73 74 28 4c 50 41 52  XT, 0, cast(LPAR
23f0: 41 4d 29 6c 50 61 72 61 6d 29 3b 0a 7d 0a 0a 2f  AM)lParam);.}../
2400: 2f 20 54 68 65 73 65 20 61 6c 69 61 73 65 73 20  / These aliases 
2410: 73 65 65 6d 20 65 76 65 6e 20 6d 6f 72 65 20 75  seem even more u
2420: 6e 6e 65 63 65 73 73 61 72 79 0a 61 6c 69 61 73  nnecessary.alias
2430: 20 43 6f 6d 6d 44 6c 67 5f 4f 70 65 6e 53 61 76   CommDlg_OpenSav
2440: 65 5f 47 65 74 53 70 65 63 0a 09 43 6f 6d 6d 44  e_GetSpec..CommD
2450: 6c 67 5f 4f 70 65 6e 53 61 76 65 5f 47 65 74 53  lg_OpenSave_GetS
2460: 70 65 63 41 2c 20 43 6f 6d 6d 44 6c 67 5f 4f 70  pecA, CommDlg_Op
2470: 65 6e 53 61 76 65 5f 47 65 74 53 70 65 63 57 3b  enSave_GetSpecW;
2480: 0a 61 6c 69 61 73 20 43 6f 6d 6d 44 6c 67 5f 4f  .alias CommDlg_O
2490: 70 65 6e 53 61 76 65 5f 47 65 74 46 69 6c 65 50  penSave_GetFileP
24a0: 61 74 68 0a 09 43 6f 6d 6d 44 6c 67 5f 4f 70 65  ath..CommDlg_Ope
24b0: 6e 53 61 76 65 5f 47 65 74 46 69 6c 65 50 61 74  nSave_GetFilePat
24c0: 68 41 2c 20 43 6f 6d 6d 44 6c 67 5f 4f 70 65 6e  hA, CommDlg_Open
24d0: 53 61 76 65 5f 47 65 74 46 69 6c 65 50 61 74 68  Save_GetFilePath
24e0: 57 3b 0a 61 6c 69 61 73 20 43 6f 6d 6d 44 6c 67  W;.alias CommDlg
24f0: 5f 4f 70 65 6e 53 61 76 65 5f 47 65 74 46 6f 6c  _OpenSave_GetFol
2500: 64 65 72 50 61 74 68 0a 09 43 6f 6d 6d 44 6c 67  derPath..CommDlg
2510: 5f 4f 70 65 6e 53 61 76 65 5f 47 65 74 46 6f 6c  _OpenSave_GetFol
2520: 64 65 72 50 61 74 68 41 2c 20 43 6f 6d 6d 44 6c  derPathA, CommDl
2530: 67 5f 4f 70 65 6e 53 61 76 65 5f 47 65 74 46 6f  g_OpenSave_GetFo
2540: 6c 64 65 72 50 61 74 68 57 3b 0a 2b 2f 0a 0a 2f  lderPathW;.+/../
2550: 2f 20 43 61 6c 6c 62 61 63 6b 73 2e 0a 65 78 74  / Callbacks..ext
2560: 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 7b 0a 61  ern(Windows) {.a
2570: 6c 69 61 73 20 55 49 4e 54 20 66 75 6e 63 74 69  lias UINT functi
2580: 6f 6e 20 28 48 57 4e 44 2c 20 55 49 4e 54 2c 20  on (HWND, UINT, 
2590: 57 50 41 52 41 4d 2c 20 4c 50 41 52 41 4d 29 0a  WPARAM, LPARAM).
25a0: 09 4c 50 43 43 48 4f 4f 4b 50 52 4f 43 2c 20 4c  .LPCCHOOKPROC, L
25b0: 50 43 46 48 4f 4f 4b 50 52 4f 43 2c 20 4c 50 46  PCFHOOKPROC, LPF
25c0: 52 48 4f 4f 4b 50 52 4f 43 2c 20 4c 50 4f 46 4e  RHOOKPROC, LPOFN
25d0: 48 4f 4f 4b 50 52 4f 43 2c 0a 09 4c 50 50 41 47  HOOKPROC,..LPPAG
25e0: 45 50 41 49 4e 54 48 4f 4f 4b 2c 20 4c 50 50 41  EPAINTHOOK, LPPA
25f0: 47 45 53 45 54 55 50 48 4f 4f 4b 2c 20 4c 50 53  GESETUPHOOK, LPS
2600: 45 54 55 50 48 4f 4f 4b 50 52 4f 43 2c 20 4c 50  ETUPHOOKPROC, LP
2610: 50 52 49 4e 54 48 4f 4f 4b 50 52 4f 43 3b 0a 7d  PRINTHOOKPROC;.}
2620: 0a 0a 61 6c 69 67 6e 20 28 31 29 3a 0a 0a 73 74  ..align (1):..st
2630: 72 75 63 74 20 43 48 4f 4f 53 45 43 4f 4c 4f 52  ruct CHOOSECOLOR
2640: 41 20 7b 0a 09 44 57 4f 52 44 20 20 20 20 20 20  A {..DWORD      
2650: 20 20 6c 53 74 72 75 63 74 53 69 7a 65 20 3d 20    lStructSize = 
2660: 43 48 4f 4f 53 45 43 4f 4c 4f 52 41 2e 73 69 7a  CHOOSECOLORA.siz
2670: 65 6f 66 3b 0a 09 48 57 4e 44 20 20 20 20 20 20  eof;..HWND      
2680: 20 20 20 68 77 6e 64 4f 77 6e 65 72 3b 0a 09 48     hwndOwner;..H
2690: 57 4e 44 20 20 20 20 20 20 20 20 20 68 49 6e 73  WND         hIns
26a0: 74 61 6e 63 65 3b 0a 09 43 4f 4c 4f 52 52 45 46  tance;..COLORREF
26b0: 20 20 20 20 20 72 67 62 52 65 73 75 6c 74 3b 0a       rgbResult;.
26c0: 09 43 4f 4c 4f 52 52 45 46 2a 20 20 20 20 6c 70  .COLORREF*    lp
26d0: 43 75 73 74 43 6f 6c 6f 72 73 3b 0a 09 44 57 4f  CustColors;..DWO
26e0: 52 44 20 20 20 20 20 20 20 20 46 6c 61 67 73 3b  RD        Flags;
26f0: 0a 09 4c 50 41 52 41 4d 20 20 20 20 20 20 20 6c  ..LPARAM       l
2700: 43 75 73 74 44 61 74 61 3b 0a 09 4c 50 43 43 48  CustData;..LPCCH
2710: 4f 4f 4b 50 52 4f 43 20 6c 70 66 6e 48 6f 6f 6b  OOKPROC lpfnHook
2720: 3b 0a 09 4c 50 43 53 54 52 20 20 20 20 20 20 20  ;..LPCSTR       
2730: 6c 70 54 65 6d 70 6c 61 74 65 4e 61 6d 65 3b 0a  lpTemplateName;.
2740: 7d 0a 61 6c 69 61 73 20 43 48 4f 4f 53 45 43 4f  }.alias CHOOSECO
2750: 4c 4f 52 41 2a 20 4c 50 43 48 4f 4f 53 45 43 4f  LORA* LPCHOOSECO
2760: 4c 4f 52 41 3b 0a 0a 73 74 72 75 63 74 20 43 48  LORA;..struct CH
2770: 4f 4f 53 45 43 4f 4c 4f 52 57 20 7b 0a 09 44 57  OOSECOLORW {..DW
2780: 4f 52 44 20 20 20 20 20 20 20 20 6c 53 74 72 75  ORD        lStru
2790: 63 74 53 69 7a 65 20 3d 20 43 48 4f 4f 53 45 43  ctSize = CHOOSEC
27a0: 4f 4c 4f 52 57 2e 73 69 7a 65 6f 66 3b 0a 09 48  OLORW.sizeof;..H
27b0: 57 4e 44 20 20 20 20 20 20 20 20 20 68 77 6e 64  WND         hwnd
27c0: 4f 77 6e 65 72 3b 0a 09 48 57 4e 44 20 20 20 20  Owner;..HWND    
27d0: 20 20 20 20 20 68 49 6e 73 74 61 6e 63 65 3b 0a       hInstance;.
27e0: 09 43 4f 4c 4f 52 52 45 46 20 20 20 20 20 72 67  .COLORREF     rg
27f0: 62 52 65 73 75 6c 74 3b 0a 09 43 4f 4c 4f 52 52  bResult;..COLORR
2800: 45 46 2a 20 20 20 20 6c 70 43 75 73 74 43 6f 6c  EF*    lpCustCol
2810: 6f 72 73 3b 0a 09 44 57 4f 52 44 20 20 20 20 20  ors;..DWORD     
2820: 20 20 20 46 6c 61 67 73 3b 0a 09 4c 50 41 52 41     Flags;..LPARA
2830: 4d 20 20 20 20 20 20 20 6c 43 75 73 74 44 61 74  M       lCustDat
2840: 61 3b 0a 09 4c 50 43 43 48 4f 4f 4b 50 52 4f 43  a;..LPCCHOOKPROC
2850: 20 6c 70 66 6e 48 6f 6f 6b 3b 0a 09 4c 50 43 57   lpfnHook;..LPCW
2860: 53 54 52 20 20 20 20 20 20 6c 70 54 65 6d 70 6c  STR      lpTempl
2870: 61 74 65 4e 61 6d 65 3b 0a 7d 0a 61 6c 69 61 73  ateName;.}.alias
2880: 20 43 48 4f 4f 53 45 43 4f 4c 4f 52 57 2a 20 4c   CHOOSECOLORW* L
2890: 50 43 48 4f 4f 53 45 43 4f 4c 4f 52 57 3b 0a 0a  PCHOOSECOLORW;..
28a0: 61 6c 69 67 6e 20 28 34 29 20 73 74 72 75 63 74  align (4) struct
28b0: 20 43 48 4f 4f 53 45 46 4f 4e 54 41 20 7b 0a 09   CHOOSEFONTA {..
28c0: 44 57 4f 52 44 20 20 20 20 20 20 20 20 6c 53 74  DWORD        lSt
28d0: 72 75 63 74 53 69 7a 65 20 3d 20 43 48 4f 4f 53  ructSize = CHOOS
28e0: 45 46 4f 4e 54 41 2e 73 69 7a 65 6f 66 3b 0a 09  EFONTA.sizeof;..
28f0: 48 57 4e 44 20 20 20 20 20 20 20 20 20 68 77 6e  HWND         hwn
2900: 64 4f 77 6e 65 72 3b 0a 09 48 44 43 20 20 20 20  dOwner;..HDC    
2910: 20 20 20 20 20 20 68 44 43 3b 0a 09 4c 50 4c 4f        hDC;..LPLO
2920: 47 46 4f 4e 54 41 20 20 20 6c 70 4c 6f 67 46 6f  GFONTA   lpLogFo
2930: 6e 74 3b 0a 09 49 4e 54 20 20 20 20 20 20 20 20  nt;..INT        
2940: 20 20 69 50 6f 69 6e 74 53 69 7a 65 3b 0a 09 44    iPointSize;..D
2950: 57 4f 52 44 20 20 20 20 20 20 20 20 46 6c 61 67  WORD        Flag
2960: 73 3b 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20  s;..DWORD       
2970: 20 72 67 62 43 6f 6c 6f 72 73 3b 0a 09 4c 50 41   rgbColors;..LPA
2980: 52 41 4d 20 20 20 20 20 20 20 6c 43 75 73 74 44  RAM       lCustD
2990: 61 74 61 3b 0a 09 4c 50 43 46 48 4f 4f 4b 50 52  ata;..LPCFHOOKPR
29a0: 4f 43 20 6c 70 66 6e 48 6f 6f 6b 3b 0a 09 4c 50  OC lpfnHook;..LP
29b0: 43 53 54 52 20 20 20 20 20 20 20 6c 70 54 65 6d  CSTR       lpTem
29c0: 70 6c 61 74 65 4e 61 6d 65 3b 0a 09 48 49 4e 53  plateName;..HINS
29d0: 54 41 4e 43 45 20 20 20 20 68 49 6e 73 74 61 6e  TANCE    hInstan
29e0: 63 65 3b 0a 09 4c 50 53 54 52 20 20 20 20 20 20  ce;..LPSTR      
29f0: 20 20 6c 70 73 7a 53 74 79 6c 65 3b 0a 09 57 4f    lpszStyle;..WO
2a00: 52 44 20 20 20 20 20 20 20 20 20 6e 46 6f 6e 74  RD         nFont
2a10: 54 79 70 65 3b 0a 09 2f 2f 57 4f 52 44 20 20 20  Type;..//WORD   
2a20: 20 20 20 20 20 20 5f 5f 5f 4d 49 53 53 49 4e 47        ___MISSING
2a30: 5f 41 4c 49 47 4e 4d 45 4e 54 5f 5f 3b 0a 09 49  _ALIGNMENT__;..I
2a40: 4e 54 20 20 20 20 20 20 20 20 20 20 6e 53 69 7a  NT          nSiz
2a50: 65 4d 69 6e 3b 0a 09 49 4e 54 20 20 20 20 20 20  eMin;..INT      
2a60: 20 20 20 20 6e 53 69 7a 65 4d 61 78 3b 0a 7d 0a      nSizeMax;.}.
2a70: 61 6c 69 61 73 20 43 48 4f 4f 53 45 46 4f 4e 54  alias CHOOSEFONT
2a80: 41 2a 20 4c 50 43 48 4f 4f 53 45 46 4f 4e 54 41  A* LPCHOOSEFONTA
2a90: 3b 0a 0a 61 6c 69 67 6e 20 28 34 29 20 73 74 72  ;..align (4) str
2aa0: 75 63 74 20 43 48 4f 4f 53 45 46 4f 4e 54 57 20  uct CHOOSEFONTW 
2ab0: 7b 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 20  {..DWORD        
2ac0: 6c 53 74 72 75 63 74 53 69 7a 65 20 3d 20 43 48  lStructSize = CH
2ad0: 4f 4f 53 45 46 4f 4e 54 57 2e 73 69 7a 65 6f 66  OOSEFONTW.sizeof
2ae0: 3b 0a 09 48 57 4e 44 20 20 20 20 20 20 20 20 20  ;..HWND         
2af0: 68 77 6e 64 4f 77 6e 65 72 3b 0a 09 48 44 43 20  hwndOwner;..HDC 
2b00: 20 20 20 20 20 20 20 20 20 68 44 43 3b 0a 09 4c           hDC;..L
2b10: 50 4c 4f 47 46 4f 4e 54 57 20 20 20 6c 70 4c 6f  PLOGFONTW   lpLo
2b20: 67 46 6f 6e 74 3b 0a 09 49 4e 54 20 20 20 20 20  gFont;..INT     
2b30: 20 20 20 20 20 69 50 6f 69 6e 74 53 69 7a 65 3b       iPointSize;
2b40: 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 46  ..DWORD        F
2b50: 6c 61 67 73 3b 0a 09 44 57 4f 52 44 20 20 20 20  lags;..DWORD    
2b60: 20 20 20 20 72 67 62 43 6f 6c 6f 72 73 3b 0a 09      rgbColors;..
2b70: 4c 50 41 52 41 4d 20 20 20 20 20 20 20 6c 43 75  LPARAM       lCu
2b80: 73 74 44 61 74 61 3b 0a 09 4c 50 43 46 48 4f 4f  stData;..LPCFHOO
2b90: 4b 50 52 4f 43 20 6c 70 66 6e 48 6f 6f 6b 3b 0a  KPROC lpfnHook;.
2ba0: 09 4c 50 43 57 53 54 52 20 20 20 20 20 20 6c 70  .LPCWSTR      lp
2bb0: 54 65 6d 70 6c 61 74 65 4e 61 6d 65 3b 0a 09 48  TemplateName;..H
2bc0: 49 4e 53 54 41 4e 43 45 20 20 20 20 68 49 6e 73  INSTANCE    hIns
2bd0: 74 61 6e 63 65 3b 0a 09 4c 50 57 53 54 52 20 20  tance;..LPWSTR  
2be0: 20 20 20 20 20 6c 70 73 7a 53 74 79 6c 65 3b 0a       lpszStyle;.
2bf0: 09 57 4f 52 44 20 20 20 20 20 20 20 20 20 6e 46  .WORD         nF
2c00: 6f 6e 74 54 79 70 65 3b 0a 09 2f 2f 57 4f 52 44  ontType;..//WORD
2c10: 20 20 20 20 20 20 20 20 20 5f 5f 5f 4d 49 53 53           ___MISS
2c20: 49 4e 47 5f 41 4c 49 47 4e 4d 45 4e 54 5f 5f 3b  ING_ALIGNMENT__;
2c30: 0a 09 49 4e 54 20 20 20 20 20 20 20 20 20 20 6e  ..INT          n
2c40: 53 69 7a 65 4d 69 6e 3b 0a 09 49 4e 54 20 20 20  SizeMin;..INT   
2c50: 20 20 20 20 20 20 20 6e 53 69 7a 65 4d 61 78 3b         nSizeMax;
2c60: 0a 7d 0a 61 6c 69 61 73 20 43 48 4f 4f 53 45 46  .}.alias CHOOSEF
2c70: 4f 4e 54 57 2a 20 4c 50 43 48 4f 4f 53 45 46 4f  ONTW* LPCHOOSEFO
2c80: 4e 54 57 3b 0a 0a 73 74 72 75 63 74 20 44 45 56  NTW;..struct DEV
2c90: 4e 41 4d 45 53 20 7b 0a 09 57 4f 52 44 20 77 44  NAMES {..WORD wD
2ca0: 72 69 76 65 72 4f 66 66 73 65 74 3b 0a 09 57 4f  riverOffset;..WO
2cb0: 52 44 20 77 44 65 76 69 63 65 4f 66 66 73 65 74  RD wDeviceOffset
2cc0: 3b 0a 09 57 4f 52 44 20 77 4f 75 74 70 75 74 4f  ;..WORD wOutputO
2cd0: 66 66 73 65 74 3b 0a 09 57 4f 52 44 20 77 44 65  ffset;..WORD wDe
2ce0: 66 61 75 6c 74 3b 0a 7d 0a 61 6c 69 61 73 20 44  fault;.}.alias D
2cf0: 45 56 4e 41 4d 45 53 2a 20 4c 50 44 45 56 4e 41  EVNAMES* LPDEVNA
2d00: 4d 45 53 3b 0a 0a 73 74 72 75 63 74 20 46 49 4e  MES;..struct FIN
2d10: 44 52 45 50 4c 41 43 45 41 20 7b 0a 09 44 57 4f  DREPLACEA {..DWO
2d20: 52 44 20 20 20 20 20 20 20 20 6c 53 74 72 75 63  RD        lStruc
2d30: 74 53 69 7a 65 20 3d 20 46 49 4e 44 52 45 50 4c  tSize = FINDREPL
2d40: 41 43 45 41 2e 73 69 7a 65 6f 66 3b 0a 09 48 57  ACEA.sizeof;..HW
2d50: 4e 44 20 20 20 20 20 20 20 20 20 68 77 6e 64 4f  ND         hwndO
2d60: 77 6e 65 72 3b 0a 09 48 49 4e 53 54 41 4e 43 45  wner;..HINSTANCE
2d70: 20 20 20 20 68 49 6e 73 74 61 6e 63 65 3b 0a 09      hInstance;..
2d80: 44 57 4f 52 44 20 20 20 20 20 20 20 20 46 6c 61  DWORD        Fla
2d90: 67 73 3b 0a 09 4c 50 53 54 52 20 20 20 20 20 20  gs;..LPSTR      
2da0: 20 20 6c 70 73 74 72 46 69 6e 64 57 68 61 74 3b    lpstrFindWhat;
2db0: 0a 09 4c 50 53 54 52 20 20 20 20 20 20 20 20 6c  ..LPSTR        l
2dc0: 70 73 74 72 52 65 70 6c 61 63 65 57 69 74 68 3b  pstrReplaceWith;
2dd0: 0a 09 57 4f 52 44 20 20 20 20 20 20 20 20 20 77  ..WORD         w
2de0: 46 69 6e 64 57 68 61 74 4c 65 6e 3b 0a 09 57 4f  FindWhatLen;..WO
2df0: 52 44 20 20 20 20 20 20 20 20 20 77 52 65 70 6c  RD         wRepl
2e00: 61 63 65 57 69 74 68 4c 65 6e 3b 0a 09 4c 50 41  aceWithLen;..LPA
2e10: 52 41 4d 20 20 20 20 20 20 20 6c 43 75 73 74 44  RAM       lCustD
2e20: 61 74 61 3b 0a 09 4c 50 46 52 48 4f 4f 4b 50 52  ata;..LPFRHOOKPR
2e30: 4f 43 20 6c 70 66 6e 48 6f 6f 6b 3b 0a 09 4c 50  OC lpfnHook;..LP
2e40: 43 53 54 52 20 20 20 20 20 20 20 6c 70 54 65 6d  CSTR       lpTem
2e50: 70 6c 61 74 65 4e 61 6d 65 3b 0a 7d 0a 61 6c 69  plateName;.}.ali
2e60: 61 73 20 46 49 4e 44 52 45 50 4c 41 43 45 41 2a  as FINDREPLACEA*
2e70: 20 4c 50 46 49 4e 44 52 45 50 4c 41 43 45 41 3b   LPFINDREPLACEA;
2e80: 0a 0a 73 74 72 75 63 74 20 46 49 4e 44 52 45 50  ..struct FINDREP
2e90: 4c 41 43 45 57 20 7b 0a 09 44 57 4f 52 44 20 20  LACEW {..DWORD  
2ea0: 20 20 20 20 20 20 6c 53 74 72 75 63 74 53 69 7a        lStructSiz
2eb0: 65 20 3d 20 46 49 4e 44 52 45 50 4c 41 43 45 57  e = FINDREPLACEW
2ec0: 2e 73 69 7a 65 6f 66 3b 0a 09 48 57 4e 44 20 20  .sizeof;..HWND  
2ed0: 20 20 20 20 20 20 20 68 77 6e 64 4f 77 6e 65 72         hwndOwner
2ee0: 3b 0a 09 48 49 4e 53 54 41 4e 43 45 20 20 20 20  ;..HINSTANCE    
2ef0: 68 49 6e 73 74 61 6e 63 65 3b 0a 09 44 57 4f 52  hInstance;..DWOR
2f00: 44 20 20 20 20 20 20 20 20 46 6c 61 67 73 3b 0a  D        Flags;.
2f10: 09 4c 50 57 53 54 52 20 20 20 20 20 20 20 6c 70  .LPWSTR       lp
2f20: 73 74 72 46 69 6e 64 57 68 61 74 3b 0a 09 4c 50  strFindWhat;..LP
2f30: 57 53 54 52 20 20 20 20 20 20 20 6c 70 73 74 72  WSTR       lpstr
2f40: 52 65 70 6c 61 63 65 57 69 74 68 3b 0a 09 57 4f  ReplaceWith;..WO
2f50: 52 44 20 20 20 20 20 20 20 20 20 77 46 69 6e 64  RD         wFind
2f60: 57 68 61 74 4c 65 6e 3b 0a 09 57 4f 52 44 20 20  WhatLen;..WORD  
2f70: 20 20 20 20 20 20 20 77 52 65 70 6c 61 63 65 57         wReplaceW
2f80: 69 74 68 4c 65 6e 3b 0a 09 4c 50 41 52 41 4d 20  ithLen;..LPARAM 
2f90: 20 20 20 20 20 20 6c 43 75 73 74 44 61 74 61 3b        lCustData;
2fa0: 0a 09 4c 50 46 52 48 4f 4f 4b 50 52 4f 43 20 6c  ..LPFRHOOKPROC l
2fb0: 70 66 6e 48 6f 6f 6b 3b 0a 09 4c 50 43 57 53 54  pfnHook;..LPCWST
2fc0: 52 20 20 20 20 20 20 6c 70 54 65 6d 70 6c 61 74  R      lpTemplat
2fd0: 65 4e 61 6d 65 3b 0a 7d 0a 61 6c 69 61 73 20 46  eName;.}.alias F
2fe0: 49 4e 44 52 45 50 4c 41 43 45 57 2a 20 4c 50 46  INDREPLACEW* LPF
2ff0: 49 4e 44 52 45 50 4c 41 43 45 57 3b 0a 0a 73 74  INDREPLACEW;..st
3000: 72 75 63 74 20 4f 50 45 4e 46 49 4c 45 4e 41 4d  ruct OPENFILENAM
3010: 45 41 20 7b 0a 09 44 57 4f 52 44 20 20 20 20 20  EA {..DWORD     
3020: 20 20 20 20 6c 53 74 72 75 63 74 53 69 7a 65 20      lStructSize 
3030: 3d 20 4f 50 45 4e 46 49 4c 45 4e 41 4d 45 41 2e  = OPENFILENAMEA.
3040: 73 69 7a 65 6f 66 3b 0a 09 48 57 4e 44 20 20 20  sizeof;..HWND   
3050: 20 20 20 20 20 20 20 68 77 6e 64 4f 77 6e 65 72         hwndOwner
3060: 3b 0a 09 48 49 4e 53 54 41 4e 43 45 20 20 20 20  ;..HINSTANCE    
3070: 20 68 49 6e 73 74 61 6e 63 65 3b 0a 09 4c 50 43   hInstance;..LPC
3080: 53 54 52 20 20 20 20 20 20 20 20 6c 70 73 74 72  STR        lpstr
3090: 46 69 6c 74 65 72 3b 0a 09 4c 50 53 54 52 20 20  Filter;..LPSTR  
30a0: 20 20 20 20 20 20 20 6c 70 73 74 72 43 75 73 74         lpstrCust
30b0: 6f 6d 46 69 6c 74 65 72 3b 0a 09 44 57 4f 52 44  omFilter;..DWORD
30c0: 20 20 20 20 20 20 20 20 20 6e 4d 61 78 43 75 73           nMaxCus
30d0: 74 46 69 6c 74 65 72 3b 0a 09 44 57 4f 52 44 20  tFilter;..DWORD 
30e0: 20 20 20 20 20 20 20 20 6e 46 69 6c 74 65 72 49          nFilterI
30f0: 6e 64 65 78 3b 0a 09 4c 50 53 54 52 20 20 20 20  ndex;..LPSTR    
3100: 20 20 20 20 20 6c 70 73 74 72 46 69 6c 65 3b 0a       lpstrFile;.
3110: 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 6e  .DWORD         n
3120: 4d 61 78 46 69 6c 65 3b 0a 09 4c 50 53 54 52 20  MaxFile;..LPSTR 
3130: 20 20 20 20 20 20 20 20 6c 70 73 74 72 46 69 6c          lpstrFil
3140: 65 54 69 74 6c 65 3b 0a 09 44 57 4f 52 44 20 20  eTitle;..DWORD  
3150: 20 20 20 20 20 20 20 6e 4d 61 78 46 69 6c 65 54         nMaxFileT
3160: 69 74 6c 65 3b 0a 09 4c 50 43 53 54 52 20 20 20  itle;..LPCSTR   
3170: 20 20 20 20 20 6c 70 73 74 72 49 6e 69 74 69 61       lpstrInitia
3180: 6c 44 69 72 3b 0a 09 4c 50 43 53 54 52 20 20 20  lDir;..LPCSTR   
3190: 20 20 20 20 20 6c 70 73 74 72 54 69 74 6c 65 3b       lpstrTitle;
31a0: 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20  ..DWORD         
31b0: 46 6c 61 67 73 3b 0a 09 57 4f 52 44 20 20 20 20  Flags;..WORD    
31c0: 20 20 20 20 20 20 6e 46 69 6c 65 4f 66 66 73 65        nFileOffse
31d0: 74 3b 0a 09 57 4f 52 44 20 20 20 20 20 20 20 20  t;..WORD        
31e0: 20 20 6e 46 69 6c 65 45 78 74 65 6e 73 69 6f 6e    nFileExtension
31f0: 3b 0a 09 4c 50 43 53 54 52 20 20 20 20 20 20 20  ;..LPCSTR       
3200: 20 6c 70 73 74 72 44 65 66 45 78 74 3b 0a 09 44   lpstrDefExt;..D
3210: 57 4f 52 44 20 20 20 20 20 20 20 20 20 6c 43 75  WORD         lCu
3220: 73 74 44 61 74 61 3b 0a 09 4c 50 4f 46 4e 48 4f  stData;..LPOFNHO
3230: 4f 4b 50 52 4f 43 20 6c 70 66 6e 48 6f 6f 6b 3b  OKPROC lpfnHook;
3240: 0a 09 4c 50 43 53 54 52 20 20 20 20 20 20 20 20  ..LPCSTR        
3250: 6c 70 54 65 6d 70 6c 61 74 65 4e 61 6d 65 3b 0a  lpTemplateName;.
3260: 20 20 20 20 0a 20 20 20 20 73 74 61 74 69 63 20      .    static 
3270: 69 66 20 28 5f 57 49 4e 33 32 5f 57 49 4e 4e 54  if (_WIN32_WINNT
3280: 5f 4f 4e 4c 59 20 26 26 20 5f 57 49 4e 33 32 5f  _ONLY && _WIN32_
3290: 57 49 4e 4e 54 20 3e 3d 20 30 78 30 35 30 30 29  WINNT >= 0x0500)
32a0: 20 7b 0a 20 20 20 20 20 20 20 20 76 6f 69 64 20   {.        void 
32b0: 20 20 20 20 20 20 20 20 20 2a 70 76 52 65 73 65           *pvRese
32c0: 72 76 65 64 3b 0a 20 20 20 20 20 20 20 20 44 57  rved;.        DW
32d0: 4f 52 44 20 20 20 20 20 20 20 20 20 64 77 52 65  ORD         dwRe
32e0: 73 65 72 76 65 64 3b 0a 20 20 20 20 20 20 20 20  served;.        
32f0: 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 46 6c  DWORD         Fl
3300: 61 67 73 45 78 3b 0a 20 20 20 20 7d 20 20 20 20  agsEx;.    }    
3310: 0a 7d 0a 61 6c 69 61 73 20 4f 50 45 4e 46 49 4c  .}.alias OPENFIL
3320: 45 4e 41 4d 45 41 2a 20 4c 50 4f 50 45 4e 46 49  ENAMEA* LPOPENFI
3330: 4c 45 4e 41 4d 45 41 3b 0a 0a 73 74 72 75 63 74  LENAMEA;..struct
3340: 20 4f 50 45 4e 46 49 4c 45 4e 41 4d 45 57 20 7b   OPENFILENAMEW {
3350: 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20  ..DWORD         
3360: 6c 53 74 72 75 63 74 53 69 7a 65 20 3d 20 4f 50  lStructSize = OP
3370: 45 4e 46 49 4c 45 4e 41 4d 45 57 2e 73 69 7a 65  ENFILENAMEW.size
3380: 6f 66 3b 0a 09 48 57 4e 44 20 20 20 20 20 20 20  of;..HWND       
3390: 20 20 20 68 77 6e 64 4f 77 6e 65 72 3b 0a 09 48     hwndOwner;..H
33a0: 49 4e 53 54 41 4e 43 45 20 20 20 20 20 68 49 6e  INSTANCE     hIn
33b0: 73 74 61 6e 63 65 3b 0a 09 4c 50 43 57 53 54 52  stance;..LPCWSTR
33c0: 20 20 20 20 20 20 20 6c 70 73 74 72 46 69 6c 74         lpstrFilt
33d0: 65 72 3b 0a 09 4c 50 57 53 54 52 20 20 20 20 20  er;..LPWSTR     
33e0: 20 20 20 6c 70 73 74 72 43 75 73 74 6f 6d 46 69     lpstrCustomFi
33f0: 6c 74 65 72 3b 0a 09 44 57 4f 52 44 20 20 20 20  lter;..DWORD    
3400: 20 20 20 20 20 6e 4d 61 78 43 75 73 74 46 69 6c       nMaxCustFil
3410: 74 65 72 3b 0a 09 44 57 4f 52 44 20 20 20 20 20  ter;..DWORD     
3420: 20 20 20 20 6e 46 69 6c 74 65 72 49 6e 64 65 78      nFilterIndex
3430: 3b 0a 09 4c 50 57 53 54 52 20 20 20 20 20 20 20  ;..LPWSTR       
3440: 20 6c 70 73 74 72 46 69 6c 65 3b 0a 09 44 57 4f   lpstrFile;..DWO
3450: 52 44 20 20 20 20 20 20 20 20 20 6e 4d 61 78 46  RD         nMaxF
3460: 69 6c 65 3b 0a 09 4c 50 57 53 54 52 20 20 20 20  ile;..LPWSTR    
3470: 20 20 20 20 6c 70 73 74 72 46 69 6c 65 54 69 74      lpstrFileTit
3480: 6c 65 3b 0a 09 44 57 4f 52 44 20 20 20 20 20 20  le;..DWORD      
3490: 20 20 20 6e 4d 61 78 46 69 6c 65 54 69 74 6c 65     nMaxFileTitle
34a0: 3b 0a 09 4c 50 43 57 53 54 52 20 20 20 20 20 20  ;..LPCWSTR      
34b0: 20 6c 70 73 74 72 49 6e 69 74 69 61 6c 44 69 72   lpstrInitialDir
34c0: 3b 0a 09 4c 50 43 57 53 54 52 20 20 20 20 20 20  ;..LPCWSTR      
34d0: 20 6c 70 73 74 72 54 69 74 6c 65 3b 0a 09 44 57   lpstrTitle;..DW
34e0: 4f 52 44 20 20 20 20 20 20 20 20 20 46 6c 61 67  ORD         Flag
34f0: 73 3b 0a 09 57 4f 52 44 20 20 20 20 20 20 20 20  s;..WORD        
3500: 20 20 6e 46 69 6c 65 4f 66 66 73 65 74 3b 0a 09    nFileOffset;..
3510: 57 4f 52 44 20 20 20 20 20 20 20 20 20 20 6e 46  WORD          nF
3520: 69 6c 65 45 78 74 65 6e 73 69 6f 6e 3b 0a 09 4c  ileExtension;..L
3530: 50 43 57 53 54 52 20 20 20 20 20 20 20 6c 70 73  PCWSTR       lps
3540: 74 72 44 65 66 45 78 74 3b 0a 09 44 57 4f 52 44  trDefExt;..DWORD
3550: 20 20 20 20 20 20 20 20 20 6c 43 75 73 74 44 61           lCustDa
3560: 74 61 3b 0a 09 4c 50 4f 46 4e 48 4f 4f 4b 50 52  ta;..LPOFNHOOKPR
3570: 4f 43 20 6c 70 66 6e 48 6f 6f 6b 3b 0a 09 4c 50  OC lpfnHook;..LP
3580: 43 57 53 54 52 20 20 20 20 20 20 20 6c 70 54 65  CWSTR       lpTe
3590: 6d 70 6c 61 74 65 4e 61 6d 65 3b 0a 20 20 20 20  mplateName;.    
35a0: 0a 20 20 20 20 73 74 61 74 69 63 20 69 66 20 28  .    static if (
35b0: 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 5f 4f 4e 4c  _WIN32_WINNT_ONL
35c0: 59 20 26 26 20 5f 57 49 4e 33 32 5f 57 49 4e 4e  Y && _WIN32_WINN
35d0: 54 20 3e 3d 20 30 78 30 35 30 30 29 20 7b 0a 20  T >= 0x0500) {. 
35e0: 20 20 20 20 20 20 20 76 6f 69 64 20 20 20 20 20         void     
35f0: 20 20 20 20 20 2a 70 76 52 65 73 65 72 76 65 64       *pvReserved
3600: 3b 0a 20 20 20 20 20 20 20 20 44 57 4f 52 44 20  ;.        DWORD 
3610: 20 20 20 20 20 20 20 20 64 77 52 65 73 65 72 76          dwReserv
3620: 65 64 3b 0a 20 20 20 20 20 20 20 20 44 57 4f 52  ed;.        DWOR
3630: 44 20 20 20 20 20 20 20 20 20 46 6c 61 67 73 45  D         FlagsE
3640: 78 3b 0a 20 20 20 20 7d 20 20 20 20 20 20 20 0a  x;.    }       .
3650: 7d 0a 61 6c 69 61 73 20 4f 50 45 4e 46 49 4c 45  }.alias OPENFILE
3660: 4e 41 4d 45 57 2a 20 4c 50 4f 50 45 4e 46 49 4c  NAMEW* LPOPENFIL
3670: 45 4e 41 4d 45 57 3b 0a 0a 63 6f 6e 73 74 20 73  ENAMEW;..const s
3680: 69 7a 65 5f 74 20 4f 50 45 4e 46 49 4c 45 4e 41  ize_t OPENFILENA
3690: 4d 45 5f 53 49 5a 45 5f 56 45 52 53 49 4f 4e 5f  ME_SIZE_VERSION_
36a0: 34 30 30 20 3d 20 37 36 3b 0a 0a 73 74 72 75 63  400 = 76;..struc
36b0: 74 20 4f 46 4e 4f 54 49 46 59 41 20 7b 0a 09 4e  t OFNOTIFYA {..N
36c0: 4d 48 44 52 20 20 20 20 20 20 20 20 20 20 20 68  MHDR           h
36d0: 64 72 3b 0a 09 4c 50 4f 50 45 4e 46 49 4c 45 4e  dr;..LPOPENFILEN
36e0: 41 4d 45 41 20 6c 70 4f 46 4e 3b 0a 09 4c 50 53  AMEA lpOFN;..LPS
36f0: 54 52 20 20 20 20 20 20 20 20 20 20 20 70 73 7a  TR           psz
3700: 46 69 6c 65 3b 0a 7d 0a 61 6c 69 61 73 20 4f 46  File;.}.alias OF
3710: 4e 4f 54 49 46 59 41 2a 20 4c 50 4f 46 4e 4f 54  NOTIFYA* LPOFNOT
3720: 49 46 59 41 3b 0a 0a 73 74 72 75 63 74 20 4f 46  IFYA;..struct OF
3730: 4e 4f 54 49 46 59 57 20 7b 0a 09 4e 4d 48 44 52  NOTIFYW {..NMHDR
3740: 20 20 20 20 20 20 20 20 20 20 20 68 64 72 3b 0a             hdr;.
3750: 09 4c 50 4f 50 45 4e 46 49 4c 45 4e 41 4d 45 57  .LPOPENFILENAMEW
3760: 20 6c 70 4f 46 4e 3b 0a 09 4c 50 57 53 54 52 20   lpOFN;..LPWSTR 
3770: 20 20 20 20 20 20 20 20 20 70 73 7a 46 69 6c 65           pszFile
3780: 3b 0a 7d 0a 61 6c 69 61 73 20 4f 46 4e 4f 54 49  ;.}.alias OFNOTI
3790: 46 59 57 2a 20 4c 50 4f 46 4e 4f 54 49 46 59 57  FYW* LPOFNOTIFYW
37a0: 3b 0a 0a 73 74 72 75 63 74 20 50 41 47 45 53 45  ;..struct PAGESE
37b0: 54 55 50 44 4c 47 41 20 7b 0a 09 44 57 4f 52 44  TUPDLGA {..DWORD
37c0: 20 20 20 20 20 20 20 20 20 20 20 6c 53 74 72 75             lStru
37d0: 63 74 53 69 7a 65 20 3d 20 50 41 47 45 53 45 54  ctSize = PAGESET
37e0: 55 50 44 4c 47 41 2e 73 69 7a 65 6f 66 3b 0a 09  UPDLGA.sizeof;..
37f0: 48 57 4e 44 20 20 20 20 20 20 20 20 20 20 20 20  HWND            
3800: 68 77 6e 64 4f 77 6e 65 72 3b 0a 09 48 47 4c 4f  hwndOwner;..HGLO
3810: 42 41 4c 20 20 20 20 20 20 20 20 20 68 44 65 76  BAL         hDev
3820: 4d 6f 64 65 3b 0a 09 48 47 4c 4f 42 41 4c 20 20  Mode;..HGLOBAL  
3830: 20 20 20 20 20 20 20 68 44 65 76 4e 61 6d 65 73         hDevNames
3840: 3b 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 20  ;..DWORD        
3850: 20 20 20 46 6c 61 67 73 3b 0a 09 50 4f 49 4e 54     Flags;..POINT
3860: 20 20 20 20 20 20 20 20 20 20 20 70 74 50 61 70             ptPap
3870: 65 72 53 69 7a 65 3b 0a 09 52 45 43 54 20 20 20  erSize;..RECT   
3880: 20 20 20 20 20 20 20 20 20 72 74 4d 69 6e 4d 61           rtMinMa
3890: 72 67 69 6e 3b 0a 09 52 45 43 54 20 20 20 20 20  rgin;..RECT     
38a0: 20 20 20 20 20 20 20 72 74 4d 61 72 67 69 6e 3b         rtMargin;
38b0: 0a 09 48 49 4e 53 54 41 4e 43 45 20 20 20 20 20  ..HINSTANCE     
38c0: 20 20 68 49 6e 73 74 61 6e 63 65 3b 0a 09 4c 50    hInstance;..LP
38d0: 41 52 41 4d 20 20 20 20 20 20 20 20 20 20 6c 43  ARAM          lC
38e0: 75 73 74 44 61 74 61 3b 0a 09 4c 50 50 41 47 45  ustData;..LPPAGE
38f0: 53 45 54 55 50 48 4f 4f 4b 20 6c 70 66 6e 50 61  SETUPHOOK lpfnPa
3900: 67 65 53 65 74 75 70 48 6f 6f 6b 3b 0a 09 4c 50  geSetupHook;..LP
3910: 50 41 47 45 50 41 49 4e 54 48 4f 4f 4b 20 6c 70  PAGEPAINTHOOK lp
3920: 66 6e 50 61 67 65 50 61 69 6e 74 48 6f 6f 6b 3b  fnPagePaintHook;
3930: 0a 09 4c 50 43 53 54 52 20 20 20 20 20 20 20 20  ..LPCSTR        
3940: 20 20 6c 70 50 61 67 65 53 65 74 75 70 54 65 6d    lpPageSetupTem
3950: 70 6c 61 74 65 4e 61 6d 65 3b 0a 09 48 47 4c 4f  plateName;..HGLO
3960: 42 41 4c 20 20 20 20 20 20 20 20 20 68 50 61 67  BAL         hPag
3970: 65 53 65 74 75 70 54 65 6d 70 6c 61 74 65 3b 0a  eSetupTemplate;.
3980: 7d 0a 61 6c 69 61 73 20 50 41 47 45 53 45 54 55  }.alias PAGESETU
3990: 50 44 4c 47 41 2a 20 4c 50 50 41 47 45 53 45 54  PDLGA* LPPAGESET
39a0: 55 50 44 4c 47 41 3b 0a 0a 73 74 72 75 63 74 20  UPDLGA;..struct 
39b0: 50 41 47 45 53 45 54 55 50 44 4c 47 57 20 7b 0a  PAGESETUPDLGW {.
39c0: 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 20  .DWORD          
39d0: 20 6c 53 74 72 75 63 74 53 69 7a 65 20 3d 20 50   lStructSize = P
39e0: 41 47 45 53 45 54 55 50 44 4c 47 57 2e 73 69 7a  AGESETUPDLGW.siz
39f0: 65 6f 66 3b 0a 09 48 57 4e 44 20 20 20 20 20 20  eof;..HWND      
3a00: 20 20 20 20 20 20 68 77 6e 64 4f 77 6e 65 72 3b        hwndOwner;
3a10: 0a 09 48 47 4c 4f 42 41 4c 20 20 20 20 20 20 20  ..HGLOBAL       
3a20: 20 20 68 44 65 76 4d 6f 64 65 3b 0a 09 48 47 4c    hDevMode;..HGL
3a30: 4f 42 41 4c 20 20 20 20 20 20 20 20 20 68 44 65  OBAL         hDe
3a40: 76 4e 61 6d 65 73 3b 0a 09 44 57 4f 52 44 20 20  vNames;..DWORD  
3a50: 20 20 20 20 20 20 20 20 20 46 6c 61 67 73 3b 0a           Flags;.
3a60: 09 50 4f 49 4e 54 20 20 20 20 20 20 20 20 20 20  .POINT          
3a70: 20 70 74 50 61 70 65 72 53 69 7a 65 3b 0a 09 52   ptPaperSize;..R
3a80: 45 43 54 20 20 20 20 20 20 20 20 20 20 20 20 72  ECT            r
3a90: 74 4d 69 6e 4d 61 72 67 69 6e 3b 0a 09 52 45 43  tMinMargin;..REC
3aa0: 54 20 20 20 20 20 20 20 20 20 20 20 20 72 74 4d  T            rtM
3ab0: 61 72 67 69 6e 3b 0a 09 48 49 4e 53 54 41 4e 43  argin;..HINSTANC
3ac0: 45 20 20 20 20 20 20 20 68 49 6e 73 74 61 6e 63  E       hInstanc
3ad0: 65 3b 0a 09 4c 50 41 52 41 4d 20 20 20 20 20 20  e;..LPARAM      
3ae0: 20 20 20 20 6c 43 75 73 74 44 61 74 61 3b 0a 09      lCustData;..
3af0: 4c 50 50 41 47 45 53 45 54 55 50 48 4f 4f 4b 20  LPPAGESETUPHOOK 
3b00: 6c 70 66 6e 50 61 67 65 53 65 74 75 70 48 6f 6f  lpfnPageSetupHoo
3b10: 6b 3b 0a 09 4c 50 50 41 47 45 50 41 49 4e 54 48  k;..LPPAGEPAINTH
3b20: 4f 4f 4b 20 6c 70 66 6e 50 61 67 65 50 61 69 6e  OOK lpfnPagePain
3b30: 74 48 6f 6f 6b 3b 0a 09 4c 50 43 57 53 54 52 20  tHook;..LPCWSTR 
3b40: 20 20 20 20 20 20 20 20 6c 70 50 61 67 65 53 65          lpPageSe
3b50: 74 75 70 54 65 6d 70 6c 61 74 65 4e 61 6d 65 3b  tupTemplateName;
3b60: 0a 09 48 47 4c 4f 42 41 4c 20 20 20 20 20 20 20  ..HGLOBAL       
3b70: 20 20 68 50 61 67 65 53 65 74 75 70 54 65 6d 70    hPageSetupTemp
3b80: 6c 61 74 65 3b 0a 7d 0a 61 6c 69 61 73 20 50 41  late;.}.alias PA
3b90: 47 45 53 45 54 55 50 44 4c 47 57 2a 20 4c 50 50  GESETUPDLGW* LPP
3ba0: 41 47 45 53 45 54 55 50 44 4c 47 57 3b 0a 0a 73  AGESETUPDLGW;..s
3bb0: 74 72 75 63 74 20 50 52 49 4e 54 44 4c 47 41 20  truct PRINTDLGA 
3bc0: 7b 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 20  {..DWORD        
3bd0: 20 20 20 6c 53 74 72 75 63 74 53 69 7a 65 20 3d     lStructSize =
3be0: 20 50 52 49 4e 54 44 4c 47 41 2e 73 69 7a 65 6f   PRINTDLGA.sizeo
3bf0: 66 3b 0a 09 48 57 4e 44 20 20 20 20 20 20 20 20  f;..HWND        
3c00: 20 20 20 20 68 77 6e 64 4f 77 6e 65 72 3b 0a 09      hwndOwner;..
3c10: 48 41 4e 44 4c 45 20 20 20 20 20 20 20 20 20 20  HANDLE          
3c20: 68 44 65 76 4d 6f 64 65 3b 0a 09 48 41 4e 44 4c  hDevMode;..HANDL
3c30: 45 20 20 20 20 20 20 20 20 20 20 68 44 65 76 4e  E          hDevN
3c40: 61 6d 65 73 3b 0a 09 48 44 43 20 20 20 20 20 20  ames;..HDC      
3c50: 20 20 20 20 20 20 20 68 44 43 3b 0a 09 44 57 4f         hDC;..DWO
3c60: 52 44 20 20 20 20 20 20 20 20 20 20 20 46 6c 61  RD           Fla
3c70: 67 73 3b 0a 09 57 4f 52 44 20 20 20 20 20 20 20  gs;..WORD       
3c80: 20 20 20 20 20 6e 46 72 6f 6d 50 61 67 65 3b 0a       nFromPage;.
3c90: 09 57 4f 52 44 20 20 20 20 20 20 20 20 20 20 20  .WORD           
3ca0: 20 6e 54 6f 50 61 67 65 3b 0a 09 57 4f 52 44 20   nToPage;..WORD 
3cb0: 20 20 20 20 20 20 20 20 20 20 20 6e 4d 69 6e 50             nMinP
3cc0: 61 67 65 3b 0a 09 57 4f 52 44 20 20 20 20 20 20  age;..WORD      
3cd0: 20 20 20 20 20 20 6e 4d 61 78 50 61 67 65 3b 0a        nMaxPage;.
3ce0: 09 57 4f 52 44 20 20 20 20 20 20 20 20 20 20 20  .WORD           
3cf0: 20 6e 43 6f 70 69 65 73 3b 0a 09 48 49 4e 53 54   nCopies;..HINST
3d00: 41 4e 43 45 20 20 20 20 20 20 20 68 49 6e 73 74  ANCE       hInst
3d10: 61 6e 63 65 3b 0a 09 44 57 4f 52 44 20 20 20 20  ance;..DWORD    
3d20: 20 20 20 20 20 20 20 6c 43 75 73 74 44 61 74 61         lCustData
3d30: 3b 0a 09 4c 50 50 52 49 4e 54 48 4f 4f 4b 50 52  ;..LPPRINTHOOKPR
3d40: 4f 43 20 6c 70 66 6e 50 72 69 6e 74 48 6f 6f 6b  OC lpfnPrintHook
3d50: 3b 0a 09 4c 50 53 45 54 55 50 48 4f 4f 4b 50 52  ;..LPSETUPHOOKPR
3d60: 4f 43 20 6c 70 66 6e 53 65 74 75 70 48 6f 6f 6b  OC lpfnSetupHook
3d70: 3b 0a 09 4c 50 43 53 54 52 20 20 20 20 20 20 20  ;..LPCSTR       
3d80: 20 20 20 6c 70 50 72 69 6e 74 54 65 6d 70 6c 61     lpPrintTempla
3d90: 74 65 4e 61 6d 65 3b 0a 09 4c 50 43 53 54 52 20  teName;..LPCSTR 
3da0: 20 20 20 20 20 20 20 20 20 6c 70 53 65 74 75 70           lpSetup
3db0: 54 65 6d 70 6c 61 74 65 4e 61 6d 65 3b 0a 09 48  TemplateName;..H
3dc0: 41 4e 44 4c 45 20 20 20 20 20 20 20 20 20 20 68  ANDLE          h
3dd0: 50 72 69 6e 74 54 65 6d 70 6c 61 74 65 3b 0a 09  PrintTemplate;..
3de0: 48 41 4e 44 4c 45 20 20 20 20 20 20 20 20 20 20  HANDLE          
3df0: 68 53 65 74 75 70 54 65 6d 70 6c 61 74 65 3b 0a  hSetupTemplate;.
3e00: 7d 0a 61 6c 69 61 73 20 50 52 49 4e 54 44 4c 47  }.alias PRINTDLG
3e10: 41 2a 20 4c 50 50 52 49 4e 54 44 4c 47 41 3b 0a  A* LPPRINTDLGA;.
3e20: 0a 73 74 72 75 63 74 20 50 52 49 4e 54 44 4c 47  .struct PRINTDLG
3e30: 57 20 7b 0a 09 44 57 4f 52 44 20 20 20 20 20 20  W {..DWORD      
3e40: 20 20 20 20 20 6c 53 74 72 75 63 74 53 69 7a 65       lStructSize
3e50: 20 3d 20 50 52 49 4e 54 44 4c 47 57 2e 73 69 7a   = PRINTDLGW.siz
3e60: 65 6f 66 3b 0a 09 48 57 4e 44 20 20 20 20 20 20  eof;..HWND      
3e70: 20 20 20 20 20 20 68 77 6e 64 4f 77 6e 65 72 3b        hwndOwner;
3e80: 0a 09 48 41 4e 44 4c 45 20 20 20 20 20 20 20 20  ..HANDLE        
3e90: 20 20 68 44 65 76 4d 6f 64 65 3b 0a 09 48 41 4e    hDevMode;..HAN
3ea0: 44 4c 45 20 20 20 20 20 20 20 20 20 20 68 44 65  DLE          hDe
3eb0: 76 4e 61 6d 65 73 3b 0a 09 48 44 43 20 20 20 20  vNames;..HDC    
3ec0: 20 20 20 20 20 20 20 20 20 68 44 43 3b 0a 09 44           hDC;..D
3ed0: 57 4f 52 44 20 20 20 20 20 20 20 20 20 20 20 46  WORD           F
3ee0: 6c 61 67 73 3b 0a 09 57 4f 52 44 20 20 20 20 20  lags;..WORD     
3ef0: 20 20 20 20 20 20 20 6e 46 72 6f 6d 50 61 67 65         nFromPage
3f00: 3b 0a 09 57 4f 52 44 20 20 20 20 20 20 20 20 20  ;..WORD         
3f10: 20 20 20 6e 54 6f 50 61 67 65 3b 0a 09 57 4f 52     nToPage;..WOR
3f20: 44 20 20 20 20 20 20 20 20 20 20 20 20 6e 4d 69  D            nMi
3f30: 6e 50 61 67 65 3b 0a 09 57 4f 52 44 20 20 20 20  nPage;..WORD    
3f40: 20 20 20 20 20 20 20 20 6e 4d 61 78 50 61 67 65          nMaxPage
3f50: 3b 0a 09 57 4f 52 44 20 20 20 20 20 20 20 20 20  ;..WORD         
3f60: 20 20 20 6e 43 6f 70 69 65 73 3b 0a 09 48 49 4e     nCopies;..HIN
3f70: 53 54 41 4e 43 45 20 20 20 20 20 20 20 68 49 6e  STANCE       hIn
3f80: 73 74 61 6e 63 65 3b 0a 09 44 57 4f 52 44 20 20  stance;..DWORD  
3f90: 20 20 20 20 20 20 20 20 20 6c 43 75 73 74 44 61           lCustDa
3fa0: 74 61 3b 0a 09 4c 50 50 52 49 4e 54 48 4f 4f 4b  ta;..LPPRINTHOOK
3fb0: 50 52 4f 43 20 6c 70 66 6e 50 72 69 6e 74 48 6f  PROC lpfnPrintHo
3fc0: 6f 6b 3b 0a 09 4c 50 53 45 54 55 50 48 4f 4f 4b  ok;..LPSETUPHOOK
3fd0: 50 52 4f 43 20 6c 70 66 6e 53 65 74 75 70 48 6f  PROC lpfnSetupHo
3fe0: 6f 6b 3b 0a 09 4c 50 43 57 53 54 52 20 20 20 20  ok;..LPCWSTR    
3ff0: 20 20 20 20 20 6c 70 50 72 69 6e 74 54 65 6d 70       lpPrintTemp
4000: 6c 61 74 65 4e 61 6d 65 3b 0a 09 4c 50 43 57 53  lateName;..LPCWS
4010: 54 52 20 20 20 20 20 20 20 20 20 6c 70 53 65 74  TR         lpSet
4020: 75 70 54 65 6d 70 6c 61 74 65 4e 61 6d 65 3b 0a  upTemplateName;.
4030: 09 48 41 4e 44 4c 45 20 20 20 20 20 20 20 20 20  .HANDLE         
4040: 20 68 50 72 69 6e 74 54 65 6d 70 6c 61 74 65 3b   hPrintTemplate;
4050: 0a 09 48 41 4e 44 4c 45 20 20 20 20 20 20 20 20  ..HANDLE        
4060: 20 20 68 53 65 74 75 70 54 65 6d 70 6c 61 74 65    hSetupTemplate
4070: 3b 0a 7d 0a 61 6c 69 61 73 20 50 52 49 4e 54 44  ;.}.alias PRINTD
4080: 4c 47 57 2a 20 4c 50 50 52 49 4e 54 44 4c 47 57  LGW* LPPRINTDLGW
4090: 3b 0a 0a 73 74 61 74 69 63 20 69 66 20 28 5f 57  ;..static if (_W
40a0: 49 4e 33 32 5f 57 49 4e 4e 54 5f 4f 4e 4c 59 20  IN32_WINNT_ONLY 
40b0: 26 26 20 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 20  && _WIN32_WINNT 
40c0: 3e 3d 20 30 78 35 30 30 29 20 7b 0a 09 69 6d 70  >= 0x500) {..imp
40d0: 6f 72 74 20 77 69 6e 33 32 2e 75 6e 6b 6e 77 6e  ort win32.unknwn
40e0: 3b 20 2f 2f 20 66 6f 72 20 4c 50 55 4e 4b 4e 4f  ; // for LPUNKNO
40f0: 57 4e 0a 09 69 6d 70 6f 72 74 20 77 69 6e 33 32  WN..import win32
4100: 2e 70 72 73 68 74 3b 20 20 2f 2f 20 66 6f 72 20  .prsht;  // for 
4110: 48 50 52 4f 50 53 48 45 45 54 50 41 47 45 0a 0a  HPROPSHEETPAGE..
4120: 09 73 74 72 75 63 74 20 50 52 49 4e 54 50 41 47  .struct PRINTPAG
4130: 45 52 41 4e 47 45 20 7b 0a 09 09 44 57 4f 52 44  ERANGE {...DWORD
4140: 20 20 6e 46 72 6f 6d 50 61 67 65 3b 0a 09 09 44    nFromPage;...D
4150: 57 4f 52 44 20 20 6e 54 6f 50 61 67 65 3b 0a 09  WORD  nToPage;..
4160: 7d 0a 09 61 6c 69 61 73 20 50 52 49 4e 54 50 41  }..alias PRINTPA
4170: 47 45 52 41 4e 47 45 2a 20 4c 50 50 52 49 4e 54  GERANGE* LPPRINT
4180: 50 41 47 45 52 41 4e 47 45 3b 0a 0a 09 73 74 72  PAGERANGE;...str
4190: 75 63 74 20 50 52 49 4e 54 44 4c 47 45 58 41 20  uct PRINTDLGEXA 
41a0: 7b 0a 09 09 44 57 4f 52 44 20 20 20 20 20 20 20  {...DWORD       
41b0: 20 20 20 20 20 6c 53 74 72 75 63 74 53 69 7a 65       lStructSize
41c0: 20 3d 20 50 52 49 4e 54 44 4c 47 45 58 41 2e 73   = PRINTDLGEXA.s
41d0: 69 7a 65 6f 66 3b 0a 09 09 48 57 4e 44 20 20 20  izeof;...HWND   
41e0: 20 20 20 20 20 20 20 20 20 20 68 77 6e 64 4f 77            hwndOw
41f0: 6e 65 72 3b 0a 09 09 48 47 4c 4f 42 41 4c 20 20  ner;...HGLOBAL  
4200: 20 20 20 20 20 20 20 20 68 44 65 76 4d 6f 64 65          hDevMode
4210: 3b 0a 09 09 48 47 4c 4f 42 41 4c 20 20 20 20 20  ;...HGLOBAL     
4220: 20 20 20 20 20 68 44 65 76 4e 61 6d 65 73 3b 0a       hDevNames;.
4230: 09 09 48 44 43 20 20 20 20 20 20 20 20 20 20 20  ..HDC           
4240: 20 20 20 68 44 43 3b 0a 09 09 44 57 4f 52 44 20     hDC;...DWORD 
4250: 20 20 20 20 20 20 20 20 20 20 20 46 6c 61 67 73             Flags
4260: 3b 0a 09 09 44 57 4f 52 44 20 20 20 20 20 20 20  ;...DWORD       
4270: 20 20 20 20 20 46 6c 61 67 73 32 3b 0a 09 09 44       Flags2;...D
4280: 57 4f 52 44 20 20 20 20 20 20 20 20 20 20 20 20  WORD            
4290: 45 78 63 6c 75 73 69 6f 6e 46 6c 61 67 73 3b 0a  ExclusionFlags;.
42a0: 09 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20  ..DWORD         
42b0: 20 20 20 6e 50 61 67 65 52 61 6e 67 65 73 3b 0a     nPageRanges;.
42c0: 09 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20  ..DWORD         
42d0: 20 20 20 6e 4d 61 78 50 61 67 65 52 61 6e 67 65     nMaxPageRange
42e0: 73 3b 0a 09 09 4c 50 50 52 49 4e 54 50 41 47 45  s;...LPPRINTPAGE
42f0: 52 41 4e 47 45 20 6c 70 50 61 67 65 52 61 6e 67  RANGE lpPageRang
4300: 65 73 3b 0a 09 09 44 57 4f 52 44 20 20 20 20 20  es;...DWORD     
4310: 20 20 20 20 20 20 20 6e 4d 69 6e 50 61 67 65 3b         nMinPage;
4320: 0a 09 09 44 57 4f 52 44 20 20 20 20 20 20 20 20  ...DWORD        
4330: 20 20 20 20 6e 4d 61 78 50 61 67 65 3b 0a 09 09      nMaxPage;...
4340: 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 20 20  DWORD           
4350: 20 6e 43 6f 70 69 65 73 3b 0a 09 09 48 49 4e 53   nCopies;...HINS
4360: 54 41 4e 43 45 20 20 20 20 20 20 20 20 68 49 6e  TANCE        hIn
4370: 73 74 61 6e 63 65 3b 0a 09 09 4c 50 43 53 54 52  stance;...LPCSTR
4380: 20 20 20 20 20 20 20 20 20 20 20 6c 70 50 72 69             lpPri
4390: 6e 74 54 65 6d 70 6c 61 74 65 4e 61 6d 65 3b 0a  ntTemplateName;.
43a0: 09 09 4c 50 55 4e 4b 4e 4f 57 4e 20 20 20 20 20  ..LPUNKNOWN     
43b0: 20 20 20 6c 70 43 61 6c 6c 62 61 63 6b 3b 0a 09     lpCallback;..
43c0: 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 20  .DWORD          
43d0: 20 20 6e 50 72 6f 70 65 72 74 79 50 61 67 65 73    nPropertyPages
43e0: 3b 0a 09 09 48 50 52 4f 50 53 48 45 45 54 50 41  ;...HPROPSHEETPA
43f0: 47 45 2a 20 20 6c 70 68 50 72 6f 70 65 72 74 79  GE*  lphProperty
4400: 50 61 67 65 73 3b 0a 09 09 44 57 4f 52 44 20 20  Pages;...DWORD  
4410: 20 20 20 20 20 20 20 20 20 20 6e 53 74 61 72 74            nStart
4420: 50 61 67 65 3b 0a 09 09 44 57 4f 52 44 20 20 20  Page;...DWORD   
4430: 20 20 20 20 20 20 20 20 20 64 77 52 65 73 75 6c           dwResul
4440: 74 41 63 74 69 6f 6e 3b 0a 09 7d 0a 09 61 6c 69  tAction;..}..ali
4450: 61 73 20 50 52 49 4e 54 44 4c 47 45 58 41 2a 20  as PRINTDLGEXA* 
4460: 4c 50 50 52 49 4e 54 44 4c 47 45 58 41 3b 0a 0a  LPPRINTDLGEXA;..
4470: 09 73 74 72 75 63 74 20 50 52 49 4e 54 44 4c 47  .struct PRINTDLG
4480: 45 58 57 20 7b 0a 09 09 44 57 4f 52 44 20 20 20  EXW {...DWORD   
4490: 20 20 20 20 20 20 20 20 20 6c 53 74 72 75 63 74           lStruct
44a0: 53 69 7a 65 20 3d 20 50 52 49 4e 54 44 4c 47 45  Size = PRINTDLGE
44b0: 58 57 2e 73 69 7a 65 6f 66 3b 0a 09 09 48 57 4e  XW.sizeof;...HWN
44c0: 44 20 20 20 20 20 20 20 20 20 20 20 20 20 68 77  D             hw
44d0: 6e 64 4f 77 6e 65 72 3b 0a 09 09 48 47 4c 4f 42  ndOwner;...HGLOB
44e0: 41 4c 20 20 20 20 20 20 20 20 20 20 68 44 65 76  AL          hDev
44f0: 4d 6f 64 65 3b 0a 09 09 48 47 4c 4f 42 41 4c 20  Mode;...HGLOBAL 
4500: 20 20 20 20 20 20 20 20 20 68 44 65 76 4e 61 6d           hDevNam
4510: 65 73 3b 0a 09 09 48 44 43 20 20 20 20 20 20 20  es;...HDC       
4520: 20 20 20 20 20 20 20 68 44 43 3b 0a 09 09 44 57         hDC;...DW
4530: 4f 52 44 20 20 20 20 20 20 20 20 20 20 20 20 46  ORD            F
4540: 6c 61 67 73 3b 0a 09 09 44 57 4f 52 44 20 20 20  lags;...DWORD   
4550: 20 20 20 20 20 20 20 20 20 46 6c 61 67 73 32 3b           Flags2;
4560: 0a 09 09 44 57 4f 52 44 20 20 20 20 20 20 20 20  ...DWORD        
4570: 20 20 20 20 45 78 63 6c 75 73 69 6f 6e 46 6c 61      ExclusionFla
4580: 67 73 3b 0a 09 09 44 57 4f 52 44 20 20 20 20 20  gs;...DWORD     
4590: 20 20 20 20 20 20 20 6e 50 61 67 65 52 61 6e 67         nPageRang
45a0: 65 73 3b 0a 09 09 44 57 4f 52 44 20 20 20 20 20  es;...DWORD     
45b0: 20 20 20 20 20 20 20 6e 4d 61 78 50 61 67 65 52         nMaxPageR
45c0: 61 6e 67 65 73 3b 0a 09 09 4c 50 50 52 49 4e 54  anges;...LPPRINT
45d0: 50 41 47 45 52 41 4e 47 45 20 6c 70 50 61 67 65  PAGERANGE lpPage
45e0: 52 61 6e 67 65 73 3b 0a 09 09 44 57 4f 52 44 20  Ranges;...DWORD 
45f0: 20 20 20 20 20 20 20 20 20 20 20 6e 4d 69 6e 50             nMinP
4600: 61 67 65 3b 0a 09 09 44 57 4f 52 44 20 20 20 20  age;...DWORD    
4610: 20 20 20 20 20 20 20 20 6e 4d 61 78 50 61 67 65          nMaxPage
4620: 3b 0a 09 09 44 57 4f 52 44 20 20 20 20 20 20 20  ;...DWORD       
4630: 20 20 20 20 20 6e 43 6f 70 69 65 73 3b 0a 09 09       nCopies;...
4640: 48 49 4e 53 54 41 4e 43 45 20 20 20 20 20 20 20  HINSTANCE       
4650: 20 68 49 6e 73 74 61 6e 63 65 3b 0a 09 09 4c 50   hInstance;...LP
4660: 43 57 53 54 52 20 20 20 20 20 20 20 20 20 20 6c  CWSTR          l
4670: 70 50 72 69 6e 74 54 65 6d 70 6c 61 74 65 4e 61  pPrintTemplateNa
4680: 6d 65 3b 0a 09 09 4c 50 55 4e 4b 4e 4f 57 4e 20  me;...LPUNKNOWN 
4690: 20 20 20 20 20 20 20 6c 70 43 61 6c 6c 62 61 63         lpCallbac
46a0: 6b 3b 0a 09 09 44 57 4f 52 44 20 20 20 20 20 20  k;...DWORD      
46b0: 20 20 20 20 20 20 6e 50 72 6f 70 65 72 74 79 50        nPropertyP
46c0: 61 67 65 73 3b 0a 09 09 48 50 52 4f 50 53 48 45  ages;...HPROPSHE
46d0: 45 54 50 41 47 45 2a 20 20 6c 70 68 50 72 6f 70  ETPAGE*  lphProp
46e0: 65 72 74 79 50 61 67 65 73 3b 0a 09 09 44 57 4f  ertyPages;...DWO
46f0: 52 44 20 20 20 20 20 20 20 20 20 20 20 20 6e 53  RD            nS
4700: 74 61 72 74 50 61 67 65 3b 0a 09 09 44 57 4f 52  tartPage;...DWOR
4710: 44 20 20 20 20 20 20 20 20 20 20 20 20 64 77 52  D            dwR
4720: 65 73 75 6c 74 41 63 74 69 6f 6e 3b 0a 09 7d 0a  esultAction;..}.
4730: 09 61 6c 69 61 73 20 50 52 49 4e 54 44 4c 47 45  .alias PRINTDLGE
4740: 58 57 2a 20 4c 50 50 52 49 4e 54 44 4c 47 45 58  XW* LPPRINTDLGEX
4750: 57 3b 0a 0a 7d 20 2f 2f 20 5f 57 49 4e 33 32 5f  W;..} // _WIN32_
4760: 57 49 4e 4e 54 5f 4f 4e 4c 59 20 26 26 20 5f 57  WINNT_ONLY && _W
4770: 49 4e 33 32 5f 57 49 4e 4e 54 20 3e 3d 20 30 78  IN32_WINNT >= 0x
4780: 35 30 30 0a 0a 65 78 74 65 72 6e 20 28 57 69 6e  500..extern (Win
4790: 64 6f 77 73 29 20 7b 0a 09 42 4f 4f 4c 20 43 68  dows) {..BOOL Ch
47a0: 6f 6f 73 65 43 6f 6c 6f 72 41 28 4c 50 43 48 4f  ooseColorA(LPCHO
47b0: 4f 53 45 43 4f 4c 4f 52 41 29 3b 0a 09 42 4f 4f  OSECOLORA);..BOO
47c0: 4c 20 43 68 6f 6f 73 65 43 6f 6c 6f 72 57 28 4c  L ChooseColorW(L
47d0: 50 43 48 4f 4f 53 45 43 4f 4c 4f 52 57 29 3b 0a  PCHOOSECOLORW);.
47e0: 09 42 4f 4f 4c 20 43 68 6f 6f 73 65 46 6f 6e 74  .BOOL ChooseFont
47f0: 41 28 4c 50 43 48 4f 4f 53 45 46 4f 4e 54 41 29  A(LPCHOOSEFONTA)
4800: 3b 0a 09 42 4f 4f 4c 20 43 68 6f 6f 73 65 46 6f  ;..BOOL ChooseFo
4810: 6e 74 57 28 4c 50 43 48 4f 4f 53 45 46 4f 4e 54  ntW(LPCHOOSEFONT
4820: 57 29 3b 0a 09 44 57 4f 52 44 20 43 6f 6d 6d 44  W);..DWORD CommD
4830: 6c 67 45 78 74 65 6e 64 65 64 45 72 72 6f 72 28  lgExtendedError(
4840: 29 3b 0a 09 48 57 4e 44 20 46 69 6e 64 54 65 78  );..HWND FindTex
4850: 74 41 28 4c 50 46 49 4e 44 52 45 50 4c 41 43 45  tA(LPFINDREPLACE
4860: 41 29 3b 0a 09 48 57 4e 44 20 46 69 6e 64 54 65  A);..HWND FindTe
4870: 78 74 57 28 4c 50 46 49 4e 44 52 45 50 4c 41 43  xtW(LPFINDREPLAC
4880: 45 57 29 3b 0a 09 73 68 6f 72 74 20 47 65 74 46  EW);..short GetF
4890: 69 6c 65 54 69 74 6c 65 41 28 4c 50 43 53 54 52  ileTitleA(LPCSTR
48a0: 2c 20 4c 50 53 54 52 2c 20 57 4f 52 44 29 3b 0a  , LPSTR, WORD);.
48b0: 09 73 68 6f 72 74 20 47 65 74 46 69 6c 65 54 69  .short GetFileTi
48c0: 74 6c 65 57 28 4c 50 43 57 53 54 52 2c 20 4c 50  tleW(LPCWSTR, LP
48d0: 57 53 54 52 2c 20 57 4f 52 44 29 3b 0a 09 42 4f  WSTR, WORD);..BO
48e0: 4f 4c 20 47 65 74 4f 70 65 6e 46 69 6c 65 4e 61  OL GetOpenFileNa
48f0: 6d 65 41 28 4c 50 4f 50 45 4e 46 49 4c 45 4e 41  meA(LPOPENFILENA
4900: 4d 45 41 29 3b 0a 09 42 4f 4f 4c 20 47 65 74 4f  MEA);..BOOL GetO
4910: 70 65 6e 46 69 6c 65 4e 61 6d 65 57 28 4c 50 4f  penFileNameW(LPO
4920: 50 45 4e 46 49 4c 45 4e 41 4d 45 57 29 3b 0a 09  PENFILENAMEW);..
4930: 42 4f 4f 4c 20 47 65 74 53 61 76 65 46 69 6c 65  BOOL GetSaveFile
4940: 4e 61 6d 65 41 28 4c 50 4f 50 45 4e 46 49 4c 45  NameA(LPOPENFILE
4950: 4e 41 4d 45 41 29 3b 0a 09 42 4f 4f 4c 20 47 65  NAMEA);..BOOL Ge
4960: 74 53 61 76 65 46 69 6c 65 4e 61 6d 65 57 28 4c  tSaveFileNameW(L
4970: 50 4f 50 45 4e 46 49 4c 45 4e 41 4d 45 57 29 3b  POPENFILENAMEW);
4980: 0a 09 42 4f 4f 4c 20 50 61 67 65 53 65 74 75 70  ..BOOL PageSetup
4990: 44 6c 67 41 28 4c 50 50 41 47 45 53 45 54 55 50  DlgA(LPPAGESETUP
49a0: 44 4c 47 41 29 3b 0a 09 42 4f 4f 4c 20 50 61 67  DLGA);..BOOL Pag
49b0: 65 53 65 74 75 70 44 6c 67 57 28 4c 50 50 41 47  eSetupDlgW(LPPAG
49c0: 45 53 45 54 55 50 44 4c 47 57 29 3b 0a 09 42 4f  ESETUPDLGW);..BO
49d0: 4f 4c 20 50 72 69 6e 74 44 6c 67 41 28 4c 50 50  OL PrintDlgA(LPP
49e0: 52 49 4e 54 44 4c 47 41 29 3b 0a 09 42 4f 4f 4c  RINTDLGA);..BOOL
49f0: 20 50 72 69 6e 74 44 6c 67 57 28 4c 50 50 52 49   PrintDlgW(LPPRI
4a00: 4e 54 44 4c 47 57 29 3b 0a 09 48 57 4e 44 20 52  NTDLGW);..HWND R
4a10: 65 70 6c 61 63 65 54 65 78 74 41 28 4c 50 46 49  eplaceTextA(LPFI
4a20: 4e 44 52 45 50 4c 41 43 45 41 29 3b 0a 09 48 57  NDREPLACEA);..HW
4a30: 4e 44 20 52 65 70 6c 61 63 65 54 65 78 74 57 28  ND ReplaceTextW(
4a40: 4c 50 46 49 4e 44 52 45 50 4c 41 43 45 57 29 3b  LPFINDREPLACEW);
4a50: 0a 0a 09 73 74 61 74 69 63 20 69 66 20 28 5f 57  ...static if (_W
4a60: 49 4e 33 32 5f 57 49 4e 4e 54 5f 4f 4e 4c 59 20  IN32_WINNT_ONLY 
4a70: 26 26 20 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 20  && _WIN32_WINNT 
4a80: 3e 3d 20 30 78 35 30 30 29 20 7b 0a 09 09 48 52  >= 0x500) {...HR
4a90: 45 53 55 4c 54 20 50 72 69 6e 74 44 6c 67 45 78  ESULT PrintDlgEx
4aa0: 41 28 4c 50 50 52 49 4e 54 44 4c 47 45 58 41 29  A(LPPRINTDLGEXA)
4ab0: 3b 0a 09 09 48 52 45 53 55 4c 54 20 50 72 69 6e  ;...HRESULT Prin
4ac0: 74 44 6c 67 45 78 57 28 4c 50 50 52 49 4e 54 44  tDlgExW(LPPRINTD
4ad0: 4c 47 45 58 57 29 3b 0a 09 7d 0a 7d 0a 0a 76 65  LGEXW);..}.}..ve
4ae0: 72 73 69 6f 6e 20 28 55 6e 69 63 6f 64 65 29 20  rsion (Unicode) 
4af0: 7b 0a 09 61 6c 69 61 73 20 43 48 4f 4f 53 45 43  {..alias CHOOSEC
4b00: 4f 4c 4f 52 57 20 43 48 4f 4f 53 45 43 4f 4c 4f  OLORW CHOOSECOLO
4b10: 52 3b 0a 09 61 6c 69 61 73 20 43 48 4f 4f 53 45  R;..alias CHOOSE
4b20: 46 4f 4e 54 57 20 43 48 4f 4f 53 45 46 4f 4e 54  FONTW CHOOSEFONT
4b30: 3b 0a 09 61 6c 69 61 73 20 46 49 4e 44 52 45 50  ;..alias FINDREP
4b40: 4c 41 43 45 57 20 46 49 4e 44 52 45 50 4c 41 43  LACEW FINDREPLAC
4b50: 45 3b 0a 09 61 6c 69 61 73 20 4f 50 45 4e 46 49  E;..alias OPENFI
4b60: 4c 45 4e 41 4d 45 57 20 4f 50 45 4e 46 49 4c 45  LENAMEW OPENFILE
4b70: 4e 41 4d 45 3b 0a 09 61 6c 69 61 73 20 4f 46 4e  NAME;..alias OFN
4b80: 4f 54 49 46 59 57 20 4f 46 4e 4f 54 49 46 59 3b  OTIFYW OFNOTIFY;
4b90: 0a 09 61 6c 69 61 73 20 50 41 47 45 53 45 54 55  ..alias PAGESETU
4ba0: 50 44 4c 47 57 20 50 41 47 45 53 45 54 55 50 44  PDLGW PAGESETUPD
4bb0: 4c 47 3b 0a 09 61 6c 69 61 73 20 50 52 49 4e 54  LG;..alias PRINT
4bc0: 44 4c 47 57 20 50 52 49 4e 54 44 4c 47 3b 0a 0a  DLGW PRINTDLG;..
4bd0: 09 61 6c 69 61 73 20 43 68 6f 6f 73 65 43 6f 6c  .alias ChooseCol
4be0: 6f 72 57 20 43 68 6f 6f 73 65 43 6f 6c 6f 72 3b  orW ChooseColor;
4bf0: 0a 09 61 6c 69 61 73 20 43 68 6f 6f 73 65 46 6f  ..alias ChooseFo
4c00: 6e 74 57 20 43 68 6f 6f 73 65 46 6f 6e 74 3b 0a  ntW ChooseFont;.
4c10: 09 61 6c 69 61 73 20 46 69 6e 64 54 65 78 74 57  .alias FindTextW
4c20: 20 46 69 6e 64 54 65 78 74 3b 0a 09 61 6c 69 61   FindText;..alia
4c30: 73 20 47 65 74 46 69 6c 65 54 69 74 6c 65 57 20  s GetFileTitleW 
4c40: 47 65 74 46 69 6c 65 54 69 74 6c 65 3b 0a 09 61  GetFileTitle;..a
4c50: 6c 69 61 73 20 47 65 74 4f 70 65 6e 46 69 6c 65  lias GetOpenFile
4c60: 4e 61 6d 65 57 20 47 65 74 4f 70 65 6e 46 69 6c  NameW GetOpenFil
4c70: 65 4e 61 6d 65 3b 0a 09 61 6c 69 61 73 20 47 65  eName;..alias Ge
4c80: 74 53 61 76 65 46 69 6c 65 4e 61 6d 65 57 20 47  tSaveFileNameW G
4c90: 65 74 53 61 76 65 46 69 6c 65 4e 61 6d 65 3b 0a  etSaveFileName;.
4ca0: 09 61 6c 69 61 73 20 50 61 67 65 53 65 74 75 70  .alias PageSetup
4cb0: 44 6c 67 57 20 50 61 67 65 53 65 74 75 70 44 6c  DlgW PageSetupDl
4cc0: 67 3b 0a 09 61 6c 69 61 73 20 50 72 69 6e 74 44  g;..alias PrintD
4cd0: 6c 67 57 20 50 72 69 6e 74 44 6c 67 3b 0a 09 61  lgW PrintDlg;..a
4ce0: 6c 69 61 73 20 52 65 70 6c 61 63 65 54 65 78 74  lias ReplaceText
4cf0: 57 20 52 65 70 6c 61 63 65 54 65 78 74 3b 0a 0a  W ReplaceText;..
4d00: 09 73 74 61 74 69 63 20 69 66 20 28 5f 57 49 4e  .static if (_WIN
4d10: 33 32 5f 57 49 4e 4e 54 5f 4f 4e 4c 59 20 26 26  32_WINNT_ONLY &&
4d20: 20 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 20 3e 3d   _WIN32_WINNT >=
4d30: 20 30 78 35 30 30 29 20 7b 0a 09 09 61 6c 69 61   0x500) {...alia
4d40: 73 20 50 52 49 4e 54 44 4c 47 45 58 57 20 50 52  s PRINTDLGEXW PR
4d50: 49 4e 54 44 4c 47 45 58 3b 0a 09 09 61 6c 69 61  INTDLGEX;...alia
4d60: 73 20 50 72 69 6e 74 44 6c 67 45 78 57 20 50 72  s PrintDlgExW Pr
4d70: 69 6e 74 44 6c 67 45 78 3b 0a 09 7d 0a 0a 7d 20  intDlgEx;..}..} 
4d80: 65 6c 73 65 20 7b 20 2f 2f 20 55 4e 49 43 4f 44  else { // UNICOD
4d90: 45 0a 0a 09 61 6c 69 61 73 20 43 48 4f 4f 53 45  E...alias CHOOSE
4da0: 43 4f 4c 4f 52 41 20 43 48 4f 4f 53 45 43 4f 4c  COLORA CHOOSECOL
4db0: 4f 52 3b 0a 09 61 6c 69 61 73 20 43 48 4f 4f 53  OR;..alias CHOOS
4dc0: 45 46 4f 4e 54 41 20 43 48 4f 4f 53 45 46 4f 4e  EFONTA CHOOSEFON
4dd0: 54 3b 0a 09 61 6c 69 61 73 20 46 49 4e 44 52 45  T;..alias FINDRE
4de0: 50 4c 41 43 45 41 20 46 49 4e 44 52 45 50 4c 41  PLACEA FINDREPLA
4df0: 43 45 3b 0a 09 61 6c 69 61 73 20 4f 50 45 4e 46  CE;..alias OPENF
4e00: 49 4c 45 4e 41 4d 45 41 20 4f 50 45 4e 46 49 4c  ILENAMEA OPENFIL
4e10: 45 4e 41 4d 45 3b 0a 09 61 6c 69 61 73 20 4f 46  ENAME;..alias OF
4e20: 4e 4f 54 49 46 59 41 20 4f 46 4e 4f 54 49 46 59  NOTIFYA OFNOTIFY
4e30: 3b 0a 09 61 6c 69 61 73 20 50 41 47 45 53 45 54  ;..alias PAGESET
4e40: 55 50 44 4c 47 41 20 50 41 47 45 53 45 54 55 50  UPDLGA PAGESETUP
4e50: 44 4c 47 3b 0a 09 61 6c 69 61 73 20 50 52 49 4e  DLG;..alias PRIN
4e60: 54 44 4c 47 41 20 50 52 49 4e 54 44 4c 47 3b 0a  TDLGA PRINTDLG;.
4e70: 0a 09 61 6c 69 61 73 20 43 68 6f 6f 73 65 43 6f  ..alias ChooseCo
4e80: 6c 6f 72 41 20 43 68 6f 6f 73 65 43 6f 6c 6f 72  lorA ChooseColor
4e90: 3b 0a 09 61 6c 69 61 73 20 43 68 6f 6f 73 65 46  ;..alias ChooseF
4ea0: 6f 6e 74 41 20 43 68 6f 6f 73 65 46 6f 6e 74 3b  ontA ChooseFont;
4eb0: 0a 09 61 6c 69 61 73 20 46 69 6e 64 54 65 78 74  ..alias FindText
4ec0: 41 20 46 69 6e 64 54 65 78 74 3b 0a 09 61 6c 69  A FindText;..ali
4ed0: 61 73 20 47 65 74 46 69 6c 65 54 69 74 6c 65 41  as GetFileTitleA
4ee0: 20 47 65 74 46 69 6c 65 54 69 74 6c 65 3b 0a 09   GetFileTitle;..
4ef0: 61 6c 69 61 73 20 47 65 74 4f 70 65 6e 46 69 6c  alias GetOpenFil
4f00: 65 4e 61 6d 65 41 20 47 65 74 4f 70 65 6e 46 69  eNameA GetOpenFi
4f10: 6c 65 4e 61 6d 65 3b 0a 09 61 6c 69 61 73 20 47  leName;..alias G
4f20: 65 74 53 61 76 65 46 69 6c 65 4e 61 6d 65 41 20  etSaveFileNameA 
4f30: 47 65 74 53 61 76 65 46 69 6c 65 4e 61 6d 65 3b  GetSaveFileName;
4f40: 0a 09 61 6c 69 61 73 20 50 61 67 65 53 65 74 75  ..alias PageSetu
4f50: 70 44 6c 67 41 20 50 61 67 65 53 65 74 75 70 44  pDlgA PageSetupD
4f60: 6c 67 3b 0a 09 61 6c 69 61 73 20 50 72 69 6e 74  lg;..alias Print
4f70: 44 6c 67 41 20 50 72 69 6e 74 44 6c 67 3b 0a 09  DlgA PrintDlg;..
4f80: 61 6c 69 61 73 20 52 65 70 6c 61 63 65 54 65 78  alias ReplaceTex
4f90: 74 41 20 52 65 70 6c 61 63 65 54 65 78 74 3b 0a  tA ReplaceText;.
4fa0: 0a 09 73 74 61 74 69 63 20 69 66 20 28 5f 57 49  ..static if (_WI
4fb0: 4e 33 32 5f 57 49 4e 4e 54 5f 4f 4e 4c 59 20 26  N32_WINNT_ONLY &
4fc0: 26 20 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 20 3e  & _WIN32_WINNT >
4fd0: 3d 20 30 78 35 30 30 29 20 7b 0a 09 09 61 6c 69  = 0x500) {...ali
4fe0: 61 73 20 50 52 49 4e 54 44 4c 47 45 58 41 20 50  as PRINTDLGEXA P
4ff0: 52 49 4e 54 44 4c 47 45 58 3b 0a 09 09 61 6c 69  RINTDLGEX;...ali
5000: 61 73 20 50 72 69 6e 74 44 6c 67 45 78 41 20 50  as PrintDlgExA P
5010: 72 69 6e 74 44 6c 67 45 78 3b 0a 09 7d 0a 0a 7d  rintDlgEx;..}..}
5020: 20 2f 2f 20 55 4e 49 43 4f 44 45 0a 0a 61 6c 69   // UNICODE..ali
5030: 61 73 20 43 48 4f 4f 53 45 43 4f 4c 4f 52 2a 20  as CHOOSECOLOR* 
5040: 4c 50 43 48 4f 4f 53 45 43 4f 4c 4f 52 3b 0a 61  LPCHOOSECOLOR;.a
5050: 6c 69 61 73 20 43 48 4f 4f 53 45 46 4f 4e 54 2a  lias CHOOSEFONT*
5060: 20 4c 50 43 48 4f 4f 53 45 46 4f 4e 54 3b 0a 61   LPCHOOSEFONT;.a
5070: 6c 69 61 73 20 46 49 4e 44 52 45 50 4c 41 43 45  lias FINDREPLACE
5080: 2a 20 4c 50 46 49 4e 44 52 45 50 4c 41 43 45 3b  * LPFINDREPLACE;
5090: 0a 61 6c 69 61 73 20 4f 50 45 4e 46 49 4c 45 4e  .alias OPENFILEN
50a0: 41 4d 45 2a 20 4c 50 4f 50 45 4e 46 49 4c 45 4e  AME* LPOPENFILEN
50b0: 41 4d 45 3b 0a 61 6c 69 61 73 20 4f 46 4e 4f 54  AME;.alias OFNOT
50c0: 49 46 59 2a 20 4c 50 4f 46 4e 4f 54 49 46 59 3b  IFY* LPOFNOTIFY;
50d0: 0a 61 6c 69 61 73 20 50 41 47 45 53 45 54 55 50  .alias PAGESETUP
50e0: 44 4c 47 2a 20 4c 50 50 41 47 45 53 45 54 55 50  DLG* LPPAGESETUP
50f0: 44 4c 47 3b 0a 61 6c 69 61 73 20 50 52 49 4e 54  DLG;.alias PRINT
5100: 44 4c 47 2a 20 4c 50 50 52 49 4e 54 44 4c 47 3b  DLG* LPPRINTDLG;
5110: 0a 73 74 61 74 69 63 20 69 66 20 28 5f 57 49 4e  .static if (_WIN
5120: 33 32 5f 57 49 4e 4e 54 5f 4f 4e 4c 59 20 26 26  32_WINNT_ONLY &&
5130: 20 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 20 3e 3d   _WIN32_WINNT >=
5140: 20 30 78 35 30 30 29 20 7b 0a 09 61 6c 69 61 73   0x500) {..alias
5150: 20 50 52 49 4e 54 44 4c 47 45 58 2a 20 4c 50 50   PRINTDLGEX* LPP
5160: 52 49 4e 54 44 4c 47 45 58 3b 0a 7d 0a           RINTDLGEX;.}.