Hex Artifact Content

Not logged in

Artifact 969f3a046d040fe8128b7f95f82537165d0ec8d0:


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 0d 0a 2a 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 20 63 6f 6d 6d 64             commd
0070: 6c 67 2e 64 20 20 20 20 20 20 20 20 20 20 20 20  lg.d            
0080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0090: 20 20 20 2a 0d 0a 2a 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 20 20 2a 0d                *.
00e0: 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .*              
00f0: 20 20 20 20 20 20 20 20 20 57 69 6e 64 6f 77 73           Windows
0100: 20 41 50 49 20 68 65 61 64 65 72 20 6d 6f 64 75   API header modu
0110: 6c 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20  le              
0120: 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 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: 20 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20      *..*        
0180: 20 20 20 20 20 54 72 61 6e 73 6c 61 74 65 64 20       Translated 
0190: 66 72 6f 6d 20 4d 69 6e 47 57 20 41 50 49 20 66  from MinGW API f
01a0: 6f 72 20 4d 53 2d 57 69 6e 64 6f 77 73 20 33 2e  or MS-Windows 3.
01b0: 31 32 20 20 20 20 20 20 20 20 20 20 20 20 20 2a  12             *
01c0: 0d 0a 2a 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 20 20 20 20 20 20 2a 0d 0a 2a 20 20            *..*  
0210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0220: 20 20 20 20 20 50 6c 61 63 65 64 20 69 6e 74 6f       Placed into
0230: 20 70 75 62 6c 69 63 20 64 6f 6d 61 69 6e 20 20   public domain  
0240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0250: 20 20 20 20 20 2a 0d 0a 5c 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 2a 2a 2a 2a 2a 2a 2a 2a  ****************
02a0: 2f 0d 0a 6d 6f 64 75 6c 65 20 77 69 6e 33 32 2e  /..module win32.
02b0: 63 6f 6d 6d 64 6c 67 3b 0d 0a 70 72 61 67 6d 61  commdlg;..pragma
02c0: 28 6c 69 62 2c 20 22 63 6f 6d 64 6c 67 33 32 22  (lib, "comdlg32"
02d0: 29 3b 0d 0a 0d 0a 70 72 69 76 61 74 65 20 69 6d  );....private im
02e0: 70 6f 72 74 20 77 69 6e 33 32 2e 77 33 32 61 70  port win32.w32ap
02f0: 69 3b 0d 0a 69 6d 70 6f 72 74 20 77 69 6e 33 32  i;..import win32
0300: 2e 77 69 6e 64 65 66 2c 20 77 69 6e 33 32 2e 77  .windef, win32.w
0310: 69 6e 75 73 65 72 3b 0d 0a 69 6d 70 6f 72 74 20  inuser;..import 
0320: 77 69 6e 33 32 2e 77 69 6e 67 64 69 3b 20 2f 2f  win32.wingdi; //
0330: 20 66 6f 72 20 4c 50 4c 4f 47 46 4f 4e 54 41 0d   for LPLOGFONTA.
0340: 0a 0d 0a 63 6f 6e 73 74 20 54 43 48 41 52 5b 5d  ...const TCHAR[]
0350: 0d 0a 09 4c 42 53 45 4c 43 48 53 54 52 49 4e 47  ...LBSELCHSTRING
0360: 20 3d 20 22 63 6f 6d 6d 64 6c 67 5f 4c 42 53 65   = "commdlg_LBSe
0370: 6c 43 68 61 6e 67 65 64 4e 6f 74 69 66 79 22 2c  lChangedNotify",
0380: 0d 0a 09 53 48 41 52 45 56 49 53 54 52 49 4e 47  ...SHAREVISTRING
0390: 20 3d 20 22 63 6f 6d 6d 64 6c 67 5f 53 68 61 72   = "commdlg_Shar
03a0: 65 56 69 6f 6c 61 74 69 6f 6e 22 2c 0d 0a 09 46  eViolation",...F
03b0: 49 4c 45 4f 4b 53 54 52 49 4e 47 20 20 3d 20 22  ILEOKSTRING  = "
03c0: 63 6f 6d 6d 64 6c 67 5f 46 69 6c 65 4e 61 6d 65  commdlg_FileName
03d0: 4f 4b 22 2c 0d 0a 09 43 4f 4c 4f 52 4f 4b 53 54  OK",...COLOROKST
03e0: 52 49 4e 47 20 3d 20 22 63 6f 6d 6d 64 6c 67 5f  RING = "commdlg_
03f0: 43 6f 6c 6f 72 4f 4b 22 2c 0d 0a 09 53 45 54 52  ColorOK",...SETR
0400: 47 42 53 54 52 49 4e 47 20 20 3d 20 22 63 6f 6d  GBSTRING  = "com
0410: 6d 64 6c 67 5f 53 65 74 52 47 42 43 6f 6c 6f 72  mdlg_SetRGBColor
0420: 22 2c 0d 0a 09 48 45 4c 50 4d 53 47 53 54 52 49  ",...HELPMSGSTRI
0430: 4e 47 20 3d 20 22 63 6f 6d 6d 64 6c 67 5f 68 65  NG = "commdlg_he
0440: 6c 70 22 2c 0d 0a 09 46 49 4e 44 4d 53 47 53 54  lp",...FINDMSGST
0450: 52 49 4e 47 20 3d 20 22 63 6f 6d 6d 64 6c 67 5f  RING = "commdlg_
0460: 46 69 6e 64 52 65 70 6c 61 63 65 22 3b 0d 0a 0d  FindReplace";...
0470: 0a 65 6e 75 6d 20 3a 20 55 49 4e 54 20 7b 0d 0a  .enum : UINT {..
0480: 09 43 44 4e 5f 46 49 52 53 54 20 20 20 20 20 20  .CDN_FIRST      
0490: 20 20 20 20 3d 20 2d 36 30 31 2c 20 2f 2f 20 61      = -601, // a
04a0: 6c 73 6f 20 69 6e 20 63 6f 6d 6d 63 74 72 6c 2e  lso in commctrl.
04b0: 68 0d 0a 09 43 44 4e 5f 4c 41 53 54 20 20 20 20  h...CDN_LAST    
04c0: 20 20 20 20 20 20 20 3d 20 2d 36 39 39 2c 0d 0a         = -699,..
04d0: 09 43 44 4e 5f 49 4e 49 54 44 4f 4e 45 20 20 20  .CDN_INITDONE   
04e0: 20 20 20 20 3d 20 43 44 4e 5f 46 49 52 53 54 2c      = CDN_FIRST,
04f0: 0d 0a 09 43 44 4e 5f 53 45 4c 43 48 41 4e 47 45  ...CDN_SELCHANGE
0500: 20 20 20 20 20 20 3d 20 43 44 4e 5f 46 49 52 53        = CDN_FIRS
0510: 54 20 2d 20 31 2c 0d 0a 09 43 44 4e 5f 46 4f 4c  T - 1,...CDN_FOL
0520: 44 45 52 43 48 41 4e 47 45 20 20 20 3d 20 43 44  DERCHANGE   = CD
0530: 4e 5f 46 49 52 53 54 20 2d 20 32 2c 0d 0a 09 43  N_FIRST - 2,...C
0540: 44 4e 5f 53 48 41 52 45 56 49 4f 4c 41 54 49 4f  DN_SHAREVIOLATIO
0550: 4e 20 3d 20 43 44 4e 5f 46 49 52 53 54 20 2d 20  N = CDN_FIRST - 
0560: 33 2c 0d 0a 09 43 44 4e 5f 48 45 4c 50 20 20 20  3,...CDN_HELP   
0570: 20 20 20 20 20 20 20 20 3d 20 43 44 4e 5f 46 49          = CDN_FI
0580: 52 53 54 20 2d 20 34 2c 0d 0a 09 43 44 4e 5f 46  RST - 4,...CDN_F
0590: 49 4c 45 4f 4b 20 20 20 20 20 20 20 20 20 3d 20  ILEOK         = 
05a0: 43 44 4e 5f 46 49 52 53 54 20 2d 20 35 2c 0d 0a  CDN_FIRST - 5,..
05b0: 09 43 44 4e 5f 54 59 50 45 43 48 41 4e 47 45 20  .CDN_TYPECHANGE 
05c0: 20 20 20 20 3d 20 43 44 4e 5f 46 49 52 53 54 20      = CDN_FIRST 
05d0: 2d 20 36 2c 0d 0a 7d 0d 0a 0d 0a 73 74 61 74 69  - 6,..}....stati
05e0: 63 20 69 66 28 5f 57 49 4e 33 32 5f 57 49 4e 4e  c if(_WIN32_WINN
05f0: 54 20 3e 3d 20 30 78 35 30 30 29 0d 0a 7b 0d 0a  T >= 0x500)..{..
0600: 20 20 20 20 65 6e 75 6d 20 3a 20 55 49 4e 54 20      enum : UINT 
0610: 7b 0d 0a 20 20 20 20 20 20 20 20 43 44 4e 5f 49  {..        CDN_I
0620: 4e 43 4c 55 44 45 49 54 45 4d 20 20 20 20 3d 20  NCLUDEITEM    = 
0630: 43 44 4e 5f 46 49 52 53 54 20 2d 20 37 2c 0d 0a  CDN_FIRST - 7,..
0640: 20 20 20 20 7d 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d      }..}....enum
0650: 20 3a 20 55 49 4e 54 20 7b 0d 0a 09 43 44 4d 5f   : UINT {...CDM_
0660: 46 49 52 53 54 20 20 20 20 20 20 20 20 20 20 20  FIRST           
0670: 3d 20 57 4d 5f 55 53 45 52 20 2b 20 31 30 30 2c  = WM_USER + 100,
0680: 0d 0a 09 43 44 4d 5f 4c 41 53 54 20 20 20 20 20  ...CDM_LAST     
0690: 20 20 20 20 20 20 20 3d 20 57 4d 5f 55 53 45 52         = WM_USER
06a0: 20 2b 20 32 30 30 2c 0d 0a 09 43 44 4d 5f 47 45   + 200,...CDM_GE
06b0: 54 53 50 45 43 20 20 20 20 20 20 20 20 20 3d 20  TSPEC         = 
06c0: 43 44 4d 5f 46 49 52 53 54 2c 0d 0a 09 43 44 4d  CDM_FIRST,...CDM
06d0: 5f 47 45 54 46 49 4c 45 50 41 54 48 2c 0d 0a 09  _GETFILEPATH,...
06e0: 43 44 4d 5f 47 45 54 46 4f 4c 44 45 52 50 41 54  CDM_GETFOLDERPAT
06f0: 48 2c 0d 0a 09 43 44 4d 5f 47 45 54 46 4f 4c 44  H,...CDM_GETFOLD
0700: 45 52 49 44 4c 49 53 54 2c 0d 0a 09 43 44 4d 5f  ERIDLIST,...CDM_
0710: 53 45 54 43 4f 4e 54 52 4f 4c 54 45 58 54 2c 0d  SETCONTROLTEXT,.
0720: 0a 09 43 44 4d 5f 48 49 44 45 43 4f 4e 54 52 4f  ..CDM_HIDECONTRO
0730: 4c 2c 0d 0a 09 43 44 4d 5f 53 45 54 44 45 46 45  L,...CDM_SETDEFE
0740: 58 54 20 20 20 20 2f 2f 20 3d 20 43 44 4d 5f 46  XT    // = CDM_F
0750: 49 52 53 54 20 2b 20 36 0d 0a 7d 0d 0a 0d 0a 2f  IRST + 6..}..../
0760: 2f 20 66 6c 61 67 73 20 66 6f 72 20 43 68 6f 6f  / flags for Choo
0770: 73 65 43 6f 6c 6f 72 0d 0a 65 6e 75 6d 20 3a 20  seColor..enum : 
0780: 44 57 4f 52 44 20 7b 0d 0a 09 43 43 5f 52 47 42  DWORD {...CC_RGB
0790: 49 4e 49 54 20 20 20 20 20 20 20 20 20 20 20 20  INIT            
07a0: 20 20 3d 20 30 78 30 30 30 31 2c 0d 0a 09 43 43    = 0x0001,...CC
07b0: 5f 46 55 4c 4c 4f 50 45 4e 20 20 20 20 20 20 20  _FULLOPEN       
07c0: 20 20 20 20 20 20 3d 20 30 78 30 30 30 32 2c 0d        = 0x0002,.
07d0: 0a 09 43 43 5f 50 52 45 56 45 4e 54 46 55 4c 4c  ..CC_PREVENTFULL
07e0: 4f 50 45 4e 20 20 20 20 20 20 3d 20 30 78 30 30  OPEN      = 0x00
07f0: 30 34 2c 0d 0a 09 43 43 5f 53 48 4f 57 48 45 4c  04,...CC_SHOWHEL
0800: 50 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20  P             = 
0810: 30 78 30 30 30 38 2c 0d 0a 09 43 43 5f 45 4e 41  0x0008,...CC_ENA
0820: 42 4c 45 48 4f 4f 4b 20 20 20 20 20 20 20 20 20  BLEHOOK         
0830: 20 20 3d 20 30 78 30 30 31 30 2c 0d 0a 09 43 43    = 0x0010,...CC
0840: 5f 45 4e 41 42 4c 45 54 45 4d 50 4c 41 54 45 20  _ENABLETEMPLATE 
0850: 20 20 20 20 20 20 3d 20 30 78 30 30 32 30 2c 0d        = 0x0020,.
0860: 0a 09 43 43 5f 45 4e 41 42 4c 45 54 45 4d 50 4c  ..CC_ENABLETEMPL
0870: 41 54 45 48 41 4e 44 4c 45 20 3d 20 30 78 30 30  ATEHANDLE = 0x00
0880: 34 30 2c 0d 0a 09 43 43 5f 53 4f 4c 49 44 43 4f  40,...CC_SOLIDCO
0890: 4c 4f 52 20 20 20 20 20 20 20 20 20 20 20 3d 20  LOR           = 
08a0: 30 78 30 30 38 30 2c 0d 0a 09 43 43 5f 41 4e 59  0x0080,...CC_ANY
08b0: 43 4f 4c 4f 52 20 20 20 20 20 20 20 20 20 20 20  COLOR           
08c0: 20 20 3d 20 30 78 30 31 30 30 0d 0a 7d 0d 0a 0d    = 0x0100..}...
08d0: 0a 2f 2f 20 66 6c 61 67 73 20 66 6f 72 20 43 68  .// flags for Ch
08e0: 6f 6f 73 65 46 6f 6e 74 0d 0a 65 6e 75 6d 20 3a  ooseFont..enum :
08f0: 20 44 57 4f 52 44 20 7b 0d 0a 09 43 46 5f 53 43   DWORD {...CF_SC
0900: 52 45 45 4e 46 4f 4e 54 53 20 20 20 20 20 20 20  REENFONTS       
0910: 20 20 20 3d 20 30 78 30 30 30 30 30 30 30 31 2c     = 0x00000001,
0920: 0d 0a 09 43 46 5f 50 52 49 4e 54 45 52 46 4f 4e  ...CF_PRINTERFON
0930: 54 53 20 20 20 20 20 20 20 20 20 3d 20 30 78 30  TS         = 0x0
0940: 30 30 30 30 30 30 32 2c 0d 0a 09 43 46 5f 42 4f  0000002,...CF_BO
0950: 54 48 20 20 20 20 20 20 20 20 20 20 20 20 20 20  TH              
0960: 20 20 20 3d 20 30 78 30 30 30 30 30 30 30 33 2c     = 0x00000003,
0970: 0d 0a 09 43 46 5f 53 48 4f 57 48 45 4c 50 20 20  ...CF_SHOWHELP  
0980: 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30             = 0x0
0990: 30 30 30 30 30 30 34 2c 0d 0a 09 43 46 5f 45 4e  0000004,...CF_EN
09a0: 41 42 4c 45 48 4f 4f 4b 20 20 20 20 20 20 20 20  ABLEHOOK        
09b0: 20 20 20 3d 20 30 78 30 30 30 30 30 30 30 38 2c     = 0x00000008,
09c0: 0d 0a 09 43 46 5f 45 4e 41 42 4c 45 54 45 4d 50  ...CF_ENABLETEMP
09d0: 4c 41 54 45 20 20 20 20 20 20 20 3d 20 30 78 30  LATE       = 0x0
09e0: 30 30 30 30 30 31 30 2c 0d 0a 09 43 46 5f 45 4e  0000010,...CF_EN
09f0: 41 42 4c 45 54 45 4d 50 4c 41 54 45 48 41 4e 44  ABLETEMPLATEHAND
0a00: 4c 45 20 3d 20 30 78 30 30 30 30 30 30 32 30 2c  LE = 0x00000020,
0a10: 0d 0a 09 43 46 5f 49 4e 49 54 54 4f 4c 4f 47 46  ...CF_INITTOLOGF
0a20: 4f 4e 54 53 54 52 55 43 54 20 20 3d 20 30 78 30  ONTSTRUCT  = 0x0
0a30: 30 30 30 30 30 34 30 2c 0d 0a 09 43 46 5f 55 53  0000040,...CF_US
0a40: 45 53 54 59 4c 45 20 20 20 20 20 20 20 20 20 20  ESTYLE          
0a50: 20 20 20 3d 20 30 78 30 30 30 30 30 30 38 30 2c     = 0x00000080,
0a60: 0d 0a 09 43 46 5f 45 46 46 45 43 54 53 20 20 20  ...CF_EFFECTS   
0a70: 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30             = 0x0
0a80: 30 30 30 30 31 30 30 2c 0d 0a 09 43 46 5f 41 50  0000100,...CF_AP
0a90: 50 4c 59 20 20 20 20 20 20 20 20 20 20 20 20 20  PLY             
0aa0: 20 20 20 3d 20 30 78 30 30 30 30 30 32 30 30 2c     = 0x00000200,
0ab0: 0d 0a 09 43 46 5f 41 4e 53 49 4f 4e 4c 59 20 20  ...CF_ANSIONLY  
0ac0: 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30             = 0x0
0ad0: 30 30 30 30 34 30 30 2c 0d 0a 09 43 46 5f 53 43  0000400,...CF_SC
0ae0: 52 49 50 54 53 4f 4e 4c 59 20 20 20 20 20 20 20  RIPTSONLY       
0af0: 20 20 20 3d 20 43 46 5f 41 4e 53 49 4f 4e 4c 59     = CF_ANSIONLY
0b00: 2c 0d 0a 09 43 46 5f 4e 4f 56 45 43 54 4f 52 46  ,...CF_NOVECTORF
0b10: 4f 4e 54 53 20 20 20 20 20 20 20 20 3d 20 30 78  ONTS        = 0x
0b20: 30 30 30 30 30 38 30 30 2c 0d 0a 09 43 46 5f 4e  00000800,...CF_N
0b30: 4f 4f 45 4d 46 4f 4e 54 53 20 20 20 20 20 20 20  OOEMFONTS       
0b40: 20 20 20 20 3d 20 30 78 30 30 30 30 30 38 30 30      = 0x00000800
0b50: 2c 0d 0a 09 43 46 5f 4e 4f 53 49 4d 55 4c 41 54  ,...CF_NOSIMULAT
0b60: 49 4f 4e 53 20 20 20 20 20 20 20 20 3d 20 30 78  IONS        = 0x
0b70: 30 30 30 30 31 30 30 30 2c 0d 0a 09 43 46 5f 4c  00001000,...CF_L
0b80: 49 4d 49 54 53 49 5a 45 20 20 20 20 20 20 20 20  IMITSIZE        
0b90: 20 20 20 20 3d 20 30 78 30 30 30 30 32 30 30 30      = 0x00002000
0ba0: 2c 0d 0a 09 43 46 5f 46 49 58 45 44 50 49 54 43  ,...CF_FIXEDPITC
0bb0: 48 4f 4e 4c 59 20 20 20 20 20 20 20 3d 20 30 78  HONLY       = 0x
0bc0: 30 30 30 30 34 30 30 30 2c 0d 0a 09 43 46 5f 57  00004000,...CF_W
0bd0: 59 53 49 57 59 47 20 20 20 20 20 20 20 20 20 20  YSIWYG          
0be0: 20 20 20 20 3d 20 30 78 30 30 30 30 38 30 30 30      = 0x00008000
0bf0: 2c 0d 0a 09 43 46 5f 46 4f 52 43 45 46 4f 4e 54  ,...CF_FORCEFONT
0c00: 45 58 49 53 54 20 20 20 20 20 20 20 3d 20 30 78  EXIST       = 0x
0c10: 30 30 30 31 30 30 30 30 2c 0d 0a 09 43 46 5f 53  00010000,...CF_S
0c20: 43 41 4c 41 42 4c 45 4f 4e 4c 59 20 20 20 20 20  CALABLEONLY     
0c30: 20 20 20 20 3d 20 30 78 30 30 30 32 30 30 30 30      = 0x00020000
0c40: 2c 0d 0a 09 43 46 5f 54 54 4f 4e 4c 59 20 20 20  ,...CF_TTONLY   
0c50: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 78              = 0x
0c60: 30 30 30 34 30 30 30 30 2c 0d 0a 09 43 46 5f 4e  00040000,...CF_N
0c70: 4f 46 41 43 45 53 45 4c 20 20 20 20 20 20 20 20  OFACESEL        
0c80: 20 20 20 20 3d 20 30 78 30 30 30 38 30 30 30 30      = 0x00080000
0c90: 2c 0d 0a 09 43 46 5f 4e 4f 53 54 59 4c 45 53 45  ,...CF_NOSTYLESE
0ca0: 4c 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 78  L           = 0x
0cb0: 30 30 31 30 30 30 30 30 2c 0d 0a 09 43 46 5f 4e  00100000,...CF_N
0cc0: 4f 53 49 5a 45 53 45 4c 20 20 20 20 20 20 20 20  OSIZESEL        
0cd0: 20 20 20 20 3d 20 30 78 30 30 32 30 30 30 30 30      = 0x00200000
0ce0: 2c 0d 0a 09 43 46 5f 53 45 4c 45 43 54 53 43 52  ,...CF_SELECTSCR
0cf0: 49 50 54 20 20 20 20 20 20 20 20 20 3d 20 30 78  IPT         = 0x
0d00: 30 30 34 30 30 30 30 30 2c 0d 0a 09 43 46 5f 4e  00400000,...CF_N
0d10: 4f 53 43 52 49 50 54 53 45 4c 20 20 20 20 20 20  OSCRIPTSEL      
0d20: 20 20 20 20 3d 20 30 78 30 30 38 30 30 30 30 30      = 0x00800000
0d30: 2c 0d 0a 09 43 46 5f 4e 4f 56 45 52 54 46 4f 4e  ,...CF_NOVERTFON
0d40: 54 53 20 20 20 20 20 20 20 20 20 20 3d 20 30 78  TS          = 0x
0d50: 30 31 30 30 30 30 30 30 0d 0a 7d 0d 0a 0d 0a 2f  01000000..}..../
0d60: 2f 20 46 6f 6e 74 20 74 79 70 65 20 66 6f 72 20  / Font type for 
0d70: 43 68 6f 6f 73 65 46 6f 6e 74 0d 0a 65 6e 75 6d  ChooseFont..enum
0d80: 20 3a 20 57 4f 52 44 20 7b 0d 0a 09 42 4f 4c 44   : WORD {...BOLD
0d90: 5f 46 4f 4e 54 54 59 50 45 20 20 20 20 20 20 3d  _FONTTYPE      =
0da0: 20 30 78 30 31 30 30 2c 0d 0a 09 49 54 41 4c 49   0x0100,...ITALI
0db0: 43 5f 46 4f 4e 54 54 59 50 45 20 20 20 20 3d 20  C_FONTTYPE    = 
0dc0: 30 78 30 32 30 30 2c 0d 0a 09 52 45 47 55 4c 41  0x0200,...REGULA
0dd0: 52 5f 46 4f 4e 54 54 59 50 45 20 20 20 3d 20 30  R_FONTTYPE   = 0
0de0: 78 30 34 30 30 2c 0d 0a 09 53 43 52 45 45 4e 5f  x0400,...SCREEN_
0df0: 46 4f 4e 54 54 59 50 45 20 20 20 20 3d 20 30 78  FONTTYPE    = 0x
0e00: 32 30 30 30 2c 0d 0a 09 50 52 49 4e 54 45 52 5f  2000,...PRINTER_
0e10: 46 4f 4e 54 54 59 50 45 20 20 20 3d 20 30 78 34  FONTTYPE   = 0x4
0e20: 30 30 30 2c 0d 0a 09 53 49 4d 55 4c 41 54 45 44  000,...SIMULATED
0e30: 5f 46 4f 4e 54 54 59 50 45 20 3d 20 30 78 38 30  _FONTTYPE = 0x80
0e40: 30 30 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20  00..}....enum : 
0e50: 55 49 4e 54 20 7b 0d 0a 09 57 4d 5f 43 48 4f 4f  UINT {...WM_CHOO
0e60: 53 45 46 4f 4e 54 5f 47 45 54 4c 4f 47 46 4f 4e  SEFONT_GETLOGFON
0e70: 54 20 3d 20 57 4d 5f 55 53 45 52 20 2b 20 20 20  T = WM_USER +   
0e80: 31 2c 0d 0a 09 57 4d 5f 43 48 4f 4f 53 45 46 4f  1,...WM_CHOOSEFO
0e90: 4e 54 5f 53 45 54 4c 4f 47 46 4f 4e 54 20 3d 20  NT_SETLOGFONT = 
0ea0: 57 4d 5f 55 53 45 52 20 2b 20 31 30 31 2c 0d 0a  WM_USER + 101,..
0eb0: 09 57 4d 5f 43 48 4f 4f 53 45 46 4f 4e 54 5f 53  .WM_CHOOSEFONT_S
0ec0: 45 54 46 4c 41 47 53 20 20 20 3d 20 57 4d 5f 55  ETFLAGS   = WM_U
0ed0: 53 45 52 20 2b 20 31 30 32 0d 0a 7d 0d 0a 0d 0a  SER + 102..}....
0ee0: 2f 2f 20 66 6c 61 67 73 20 66 6f 72 20 4f 70 65  // flags for Ope
0ef0: 6e 46 69 6c 65 4e 61 6d 65 0d 0a 65 6e 75 6d 20  nFileName..enum 
0f00: 3a 20 44 57 4f 52 44 20 7b 0d 0a 09 4f 46 4e 5f  : DWORD {...OFN_
0f10: 53 48 41 52 45 57 41 52 4e 20 20 20 20 20 20 20  SHAREWARN       
0f20: 20 20 20 20 20 3d 20 30 2c 0d 0a 09 4f 46 4e 5f       = 0,...OFN_
0f30: 53 48 41 52 45 4e 4f 57 41 52 4e 20 20 20 20 20  SHARENOWARN     
0f40: 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 31 2c       = 0x000001,
0f50: 0d 0a 09 4f 46 4e 5f 52 45 41 44 4f 4e 4c 59 20  ...OFN_READONLY 
0f60: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 78              = 0x
0f70: 30 30 30 30 30 31 2c 0d 0a 09 4f 46 4e 5f 53 48  000001,...OFN_SH
0f80: 41 52 45 46 41 4c 4c 54 48 52 4f 55 47 48 20 20  AREFALLTHROUGH  
0f90: 20 20 20 3d 20 30 78 30 30 30 30 30 32 2c 0d 0a     = 0x000002,..
0fa0: 09 4f 46 4e 5f 4f 56 45 52 57 52 49 54 45 50 52  .OFN_OVERWRITEPR
0fb0: 4f 4d 50 54 20 20 20 20 20 20 3d 20 30 78 30 30  OMPT      = 0x00
0fc0: 30 30 30 32 2c 0d 0a 09 4f 46 4e 5f 48 49 44 45  0002,...OFN_HIDE
0fd0: 52 45 41 44 4f 4e 4c 59 20 20 20 20 20 20 20 20  READONLY        
0fe0: 20 3d 20 30 78 30 30 30 30 30 34 2c 0d 0a 09 4f   = 0x000004,...O
0ff0: 46 4e 5f 4e 4f 43 48 41 4e 47 45 44 49 52 20 20  FN_NOCHANGEDIR  
1000: 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 30          = 0x0000
1010: 30 38 2c 0d 0a 09 4f 46 4e 5f 53 48 4f 57 48 45  08,...OFN_SHOWHE
1020: 4c 50 20 20 20 20 20 20 20 20 20 20 20 20 20 3d  LP             =
1030: 20 30 78 30 30 30 30 31 30 2c 0d 0a 09 4f 46 4e   0x000010,...OFN
1040: 5f 45 4e 41 42 4c 45 48 4f 4f 4b 20 20 20 20 20  _ENABLEHOOK     
1050: 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 32 30        = 0x000020
1060: 2c 0d 0a 09 4f 46 4e 5f 45 4e 41 42 4c 45 54 45  ,...OFN_ENABLETE
1070: 4d 50 4c 41 54 45 20 20 20 20 20 20 20 3d 20 30  MPLATE       = 0
1080: 78 30 30 30 30 34 30 2c 0d 0a 09 4f 46 4e 5f 45  x000040,...OFN_E
1090: 4e 41 42 4c 45 54 45 4d 50 4c 41 54 45 48 41 4e  NABLETEMPLATEHAN
10a0: 44 4c 45 20 3d 20 30 78 30 30 30 30 38 30 2c 0d  DLE = 0x000080,.
10b0: 0a 09 4f 46 4e 5f 4e 4f 56 41 4c 49 44 41 54 45  ..OFN_NOVALIDATE
10c0: 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30             = 0x0
10d0: 30 30 31 30 30 2c 0d 0a 09 4f 46 4e 5f 41 4c 4c  00100,...OFN_ALL
10e0: 4f 57 4d 55 4c 54 49 53 45 4c 45 43 54 20 20 20  OWMULTISELECT   
10f0: 20 20 3d 20 30 78 30 30 30 32 30 30 2c 0d 0a 09    = 0x000200,...
1100: 4f 46 4e 5f 45 58 54 45 4e 53 49 4f 4e 44 49 46  OFN_EXTENSIONDIF
1110: 46 45 52 45 4e 54 20 20 20 3d 20 30 78 30 30 30  FERENT   = 0x000
1120: 34 30 30 2c 0d 0a 09 4f 46 4e 5f 50 41 54 48 4d  400,...OFN_PATHM
1130: 55 53 54 45 58 49 53 54 20 20 20 20 20 20 20 20  USTEXIST        
1140: 3d 20 30 78 30 30 30 38 30 30 2c 0d 0a 09 4f 46  = 0x000800,...OF
1150: 4e 5f 46 49 4c 45 4d 55 53 54 45 58 49 53 54 20  N_FILEMUSTEXIST 
1160: 20 20 20 20 20 20 20 3d 20 30 78 30 30 31 30 30         = 0x00100
1170: 30 2c 0d 0a 09 4f 46 4e 5f 43 52 45 41 54 45 50  0,...OFN_CREATEP
1180: 52 4f 4d 50 54 20 20 20 20 20 20 20 20 20 3d 20  ROMPT         = 
1190: 30 78 30 30 32 30 30 30 2c 0d 0a 09 4f 46 4e 5f  0x002000,...OFN_
11a0: 53 48 41 52 45 41 57 41 52 45 20 20 20 20 20 20  SHAREAWARE      
11b0: 20 20 20 20 20 3d 20 30 78 30 30 34 30 30 30 2c       = 0x004000,
11c0: 0d 0a 09 4f 46 4e 5f 4e 4f 52 45 41 44 4f 4e 4c  ...OFN_NOREADONL
11d0: 59 52 45 54 55 52 4e 20 20 20 20 20 3d 20 30 78  YRETURN     = 0x
11e0: 30 30 38 30 30 30 2c 0d 0a 09 4f 46 4e 5f 4e 4f  008000,...OFN_NO
11f0: 54 45 53 54 46 49 4c 45 43 52 45 41 54 45 20 20  TESTFILECREATE  
1200: 20 20 20 3d 20 30 78 30 31 30 30 30 30 2c 0d 0a     = 0x010000,..
1210: 09 4f 46 4e 5f 4e 4f 4e 45 54 57 4f 52 4b 42 55  .OFN_NONETWORKBU
1220: 54 54 4f 4e 20 20 20 20 20 20 3d 20 30 78 30 32  TTON      = 0x02
1230: 30 30 30 30 2c 0d 0a 09 4f 46 4e 5f 4e 4f 4c 4f  0000,...OFN_NOLO
1240: 4e 47 4e 41 4d 45 53 20 20 20 20 20 20 20 20 20  NGNAMES         
1250: 20 3d 20 30 78 30 34 30 30 30 30 2c 0d 0a 09 4f   = 0x040000,...O
1260: 46 4e 5f 45 58 50 4c 4f 52 45 52 20 20 20 20 20  FN_EXPLORER     
1270: 20 20 20 20 20 20 20 20 3d 20 30 78 30 38 30 30          = 0x0800
1280: 30 30 2c 0d 0a 09 4f 46 4e 5f 4e 4f 44 45 52 45  00,...OFN_NODERE
1290: 46 45 52 45 4e 43 45 4c 49 4e 4b 53 20 20 20 3d  FERENCELINKS   =
12a0: 20 30 78 31 30 30 30 30 30 2c 0d 0a 09 4f 46 4e   0x100000,...OFN
12b0: 5f 4c 4f 4e 47 4e 41 4d 45 53 20 20 20 20 20 20  _LONGNAMES      
12c0: 20 20 20 20 20 20 3d 20 30 78 32 30 30 30 30 30        = 0x200000
12d0: 2c 0d 0a 09 4f 46 4e 5f 45 4e 41 42 4c 45 53 49  ,...OFN_ENABLESI
12e0: 5a 49 4e 47 20 20 20 20 20 20 20 20 20 3d 20 30  ZING         = 0
12f0: 78 38 30 30 30 30 30 0d 0a 7d 0d 0a 0d 0a 65 6e  x800000..}....en
1300: 75 6d 20 3a 20 44 57 4f 52 44 20 7b 0d 0a 09 46  um : DWORD {...F
1310: 52 5f 44 4f 57 4e 20 20 20 20 20 20 20 20 20 20  R_DOWN          
1320: 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30         = 0x00000
1330: 30 30 31 2c 0d 0a 09 46 52 5f 57 48 4f 4c 45 57  001,...FR_WHOLEW
1340: 4f 52 44 20 20 20 20 20 20 20 20 20 20 20 20 3d  ORD            =
1350: 20 30 78 30 30 30 30 30 30 30 32 2c 0d 0a 09 46   0x00000002,...F
1360: 52 5f 4d 41 54 43 48 43 41 53 45 20 20 20 20 20  R_MATCHCASE     
1370: 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30         = 0x00000
1380: 30 30 34 2c 0d 0a 09 46 52 5f 46 49 4e 44 4e 45  004,...FR_FINDNE
1390: 58 54 20 20 20 20 20 20 20 20 20 20 20 20 20 3d  XT             =
13a0: 20 30 78 30 30 30 30 30 30 30 38 2c 0d 0a 09 46   0x00000008,...F
13b0: 52 5f 52 45 50 4c 41 43 45 20 20 20 20 20 20 20  R_REPLACE       
13c0: 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30         = 0x00000
13d0: 30 31 30 2c 0d 0a 09 46 52 5f 52 45 50 4c 41 43  010,...FR_REPLAC
13e0: 45 41 4c 4c 20 20 20 20 20 20 20 20 20 20 20 3d  EALL           =
13f0: 20 30 78 30 30 30 30 30 30 32 30 2c 0d 0a 09 46   0x00000020,...F
1400: 52 5f 44 49 41 4c 4f 47 54 45 52 4d 20 20 20 20  R_DIALOGTERM    
1410: 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30         = 0x00000
1420: 30 34 30 2c 0d 0a 09 46 52 5f 53 48 4f 57 48 45  040,...FR_SHOWHE
1430: 4c 50 20 20 20 20 20 20 20 20 20 20 20 20 20 3d  LP             =
1440: 20 30 78 30 30 30 30 30 30 38 30 2c 0d 0a 09 46   0x00000080,...F
1450: 52 5f 45 4e 41 42 4c 45 48 4f 4f 4b 20 20 20 20  R_ENABLEHOOK    
1460: 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30         = 0x00000
1470: 31 30 30 2c 0d 0a 09 46 52 5f 45 4e 41 42 4c 45  100,...FR_ENABLE
1480: 54 45 4d 50 4c 41 54 45 20 20 20 20 20 20 20 3d  TEMPLATE       =
1490: 20 30 78 30 30 30 30 30 32 30 30 2c 0d 0a 09 46   0x00000200,...F
14a0: 52 5f 4e 4f 55 50 44 4f 57 4e 20 20 20 20 20 20  R_NOUPDOWN      
14b0: 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30         = 0x00000
14c0: 34 30 30 2c 0d 0a 09 46 52 5f 4e 4f 4d 41 54 43  400,...FR_NOMATC
14d0: 48 43 41 53 45 20 20 20 20 20 20 20 20 20 20 3d  HCASE          =
14e0: 20 30 78 30 30 30 30 30 38 30 30 2c 0d 0a 09 46   0x00000800,...F
14f0: 52 5f 4e 4f 57 48 4f 4c 45 57 4f 52 44 20 20 20  R_NOWHOLEWORD   
1500: 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 31         = 0x00001
1510: 30 30 30 2c 0d 0a 09 46 52 5f 45 4e 41 42 4c 45  000,...FR_ENABLE
1520: 54 45 4d 50 4c 41 54 45 48 41 4e 44 4c 45 20 3d  TEMPLATEHANDLE =
1530: 20 30 78 30 30 30 30 32 30 30 30 2c 0d 0a 09 46   0x00002000,...F
1540: 52 5f 48 49 44 45 55 50 44 4f 57 4e 20 20 20 20  R_HIDEUPDOWN    
1550: 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 34         = 0x00004
1560: 30 30 30 2c 0d 0a 09 46 52 5f 48 49 44 45 4d 41  000,...FR_HIDEMA
1570: 54 43 48 43 41 53 45 20 20 20 20 20 20 20 20 3d  TCHCASE        =
1580: 20 30 78 30 30 30 30 38 30 30 30 2c 0d 0a 09 46   0x00008000,...F
1590: 52 5f 48 49 44 45 57 48 4f 4c 45 57 4f 52 44 20  R_HIDEWHOLEWORD 
15a0: 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 31 30         = 0x00010
15b0: 30 30 30 2c 0d 0a 09 46 52 5f 4d 41 54 43 48 44  000,...FR_MATCHD
15c0: 49 41 43 20 20 20 20 20 20 20 20 20 20 20 20 3d  IAC            =
15d0: 20 30 78 32 30 30 30 30 30 30 30 2c 0d 0a 09 46   0x20000000,...F
15e0: 52 5f 4d 41 54 43 48 4b 41 53 48 49 44 41 20 20  R_MATCHKASHIDA  
15f0: 20 20 20 20 20 20 20 3d 20 30 78 34 30 30 30 30         = 0x40000
1600: 30 30 30 2c 0d 0a 09 46 52 5f 4d 41 54 43 48 41  000,...FR_MATCHA
1610: 4c 45 46 48 41 4d 5a 41 20 20 20 20 20 20 20 3d  LEFHAMZA       =
1620: 20 30 78 38 30 30 30 30 30 30 30 0d 0a 7d 0d 0a   0x80000000..}..
1630: 0d 0a 65 6e 75 6d 20 3a 20 44 57 4f 52 44 20 7b  ..enum : DWORD {
1640: 0d 0a 09 50 44 5f 41 4c 4c 50 41 47 45 53 20 20  ...PD_ALLPAGES  
1650: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1660: 20 3d 20 30 2c 0d 0a 09 50 44 5f 53 45 4c 45 43   = 0,...PD_SELEC
1670: 54 49 4f 4e 20 20 20 20 20 20 20 20 20 20 20 20  TION            
1680: 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 31        = 0x000001
1690: 2c 0d 0a 09 50 44 5f 50 41 47 45 4e 55 4d 53 20  ,...PD_PAGENUMS 
16a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16b0: 20 20 3d 20 30 78 30 30 30 30 30 32 2c 0d 0a 09    = 0x000002,...
16c0: 50 44 5f 4e 4f 53 45 4c 45 43 54 49 4f 4e 20 20  PD_NOSELECTION  
16d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20                = 
16e0: 30 78 30 30 30 30 30 34 2c 0d 0a 09 50 44 5f 4e  0x000004,...PD_N
16f0: 4f 50 41 47 45 4e 55 4d 53 20 20 20 20 20 20 20  OPAGENUMS       
1700: 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30            = 0x00
1710: 30 30 30 38 2c 0d 0a 09 50 44 5f 43 4f 4c 4c 41  0008,...PD_COLLA
1720: 54 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20  TE              
1730: 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 31 30        = 0x000010
1740: 2c 0d 0a 09 50 44 5f 50 52 49 4e 54 54 4f 46 49  ,...PD_PRINTTOFI
1750: 4c 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20  LE              
1760: 20 20 3d 20 30 78 30 30 30 30 32 30 2c 0d 0a 09    = 0x000020,...
1770: 50 44 5f 50 52 49 4e 54 53 45 54 55 50 20 20 20  PD_PRINTSETUP   
1780: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20                = 
1790: 30 78 30 30 30 30 34 30 2c 0d 0a 09 50 44 5f 4e  0x000040,...PD_N
17a0: 4f 57 41 52 4e 49 4e 47 20 20 20 20 20 20 20 20  OWARNING        
17b0: 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30            = 0x00
17c0: 30 30 38 30 2c 0d 0a 09 50 44 5f 52 45 54 55 52  0080,...PD_RETUR
17d0: 4e 44 43 20 20 20 20 20 20 20 20 20 20 20 20 20  NDC             
17e0: 20 20 20 20 20 20 3d 20 30 78 30 30 30 31 30 30        = 0x000100
17f0: 2c 0d 0a 09 50 44 5f 52 45 54 55 52 4e 49 43 20  ,...PD_RETURNIC 
1800: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1810: 20 20 3d 20 30 78 30 30 30 32 30 30 2c 0d 0a 09    = 0x000200,...
1820: 50 44 5f 52 45 54 55 52 4e 44 45 46 41 55 4c 54  PD_RETURNDEFAULT
1830: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20                = 
1840: 30 78 30 30 30 34 30 30 2c 0d 0a 09 50 44 5f 53  0x000400,...PD_S
1850: 48 4f 57 48 45 4c 50 20 20 20 20 20 20 20 20 20  HOWHELP         
1860: 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30            = 0x00
1870: 30 38 30 30 2c 0d 0a 09 50 44 5f 45 4e 41 42 4c  0800,...PD_ENABL
1880: 45 50 52 49 4e 54 48 4f 4f 4b 20 20 20 20 20 20  EPRINTHOOK      
1890: 20 20 20 20 20 20 3d 20 30 78 30 30 31 30 30 30        = 0x001000
18a0: 2c 0d 0a 09 50 44 5f 45 4e 41 42 4c 45 53 45 54  ,...PD_ENABLESET
18b0: 55 50 48 4f 4f 4b 20 20 20 20 20 20 20 20 20 20  UPHOOK          
18c0: 20 20 3d 20 30 78 30 30 32 30 30 30 2c 0d 0a 09    = 0x002000,...
18d0: 50 44 5f 45 4e 41 42 4c 45 50 52 49 4e 54 54 45  PD_ENABLEPRINTTE
18e0: 4d 50 4c 41 54 45 20 20 20 20 20 20 20 20 3d 20  MPLATE        = 
18f0: 30 78 30 30 34 30 30 30 2c 0d 0a 09 50 44 5f 45  0x004000,...PD_E
1900: 4e 41 42 4c 45 53 45 54 55 50 54 45 4d 50 4c 41  NABLESETUPTEMPLA
1910: 54 45 20 20 20 20 20 20 20 20 3d 20 30 78 30 30  TE        = 0x00
1920: 38 30 30 30 2c 0d 0a 09 50 44 5f 45 4e 41 42 4c  8000,...PD_ENABL
1930: 45 50 52 49 4e 54 54 45 4d 50 4c 41 54 45 48 41  EPRINTTEMPLATEHA
1940: 4e 44 4c 45 20 20 3d 20 30 78 30 31 30 30 30 30  NDLE  = 0x010000
1950: 2c 0d 0a 09 50 44 5f 45 4e 41 42 4c 45 53 45 54  ,...PD_ENABLESET
1960: 55 50 54 45 4d 50 4c 41 54 45 48 41 4e 44 4c 45  UPTEMPLATEHANDLE
1970: 20 20 3d 20 30 78 30 32 30 30 30 30 2c 0d 0a 09    = 0x020000,...
1980: 50 44 5f 55 53 45 44 45 56 4d 4f 44 45 43 4f 50  PD_USEDEVMODECOP
1990: 49 45 53 20 20 20 20 20 20 20 20 20 20 20 3d 20  IES           = 
19a0: 30 78 30 34 30 30 30 30 2c 0d 0a 09 50 44 5f 55  0x040000,...PD_U
19b0: 53 45 44 45 56 4d 4f 44 45 43 4f 50 49 45 53 41  SEDEVMODECOPIESA
19c0: 4e 44 43 4f 4c 4c 41 54 45 20 3d 20 30 78 30 34  NDCOLLATE = 0x04
19d0: 30 30 30 30 2c 0d 0a 09 50 44 5f 44 49 53 41 42  0000,...PD_DISAB
19e0: 4c 45 50 52 49 4e 54 54 4f 46 49 4c 45 20 20 20  LEPRINTTOFILE   
19f0: 20 20 20 20 20 20 3d 20 30 78 30 38 30 30 30 30        = 0x080000
1a00: 2c 0d 0a 09 50 44 5f 48 49 44 45 50 52 49 4e 54  ,...PD_HIDEPRINT
1a10: 54 4f 46 49 4c 45 20 20 20 20 20 20 20 20 20 20  TOFILE          
1a20: 20 20 3d 20 30 78 31 30 30 30 30 30 2c 0d 0a 09    = 0x100000,...
1a30: 50 44 5f 4e 4f 4e 45 54 57 4f 52 4b 42 55 54 54  PD_NONETWORKBUTT
1a40: 4f 4e 20 20 20 20 20 20 20 20 20 20 20 20 3d 20  ON            = 
1a50: 30 78 32 30 30 30 30 30 0d 0a 7d 0d 0a 0d 0a 73  0x200000..}....s
1a60: 74 61 74 69 63 20 69 66 20 28 5f 57 49 4e 33 32  tatic if (_WIN32
1a70: 5f 57 49 4e 4e 54 20 3e 3d 20 30 78 35 30 30 29  _WINNT >= 0x500)
1a80: 20 7b 0d 0a 09 65 6e 75 6d 20 3a 20 44 57 4f 52   {...enum : DWOR
1a90: 44 20 7b 0d 0a 09 09 50 44 5f 43 55 52 52 45 4e  D {....PD_CURREN
1aa0: 54 50 41 47 45 20 20 20 20 20 20 3d 20 30 78 30  TPAGE      = 0x0
1ab0: 30 34 30 30 30 30 30 2c 0d 0a 09 09 50 44 5f 4e  0400000,....PD_N
1ac0: 4f 43 55 52 52 45 4e 54 50 41 47 45 20 20 20 20  OCURRENTPAGE    
1ad0: 3d 20 30 78 30 30 38 30 30 30 30 30 2c 0d 0a 09  = 0x00800000,...
1ae0: 09 50 44 5f 45 58 43 4c 55 53 49 4f 4e 46 4c 41  .PD_EXCLUSIONFLA
1af0: 47 53 20 20 20 3d 20 30 78 30 31 30 30 30 30 30  GS   = 0x0100000
1b00: 30 2c 0d 0a 09 09 50 44 5f 55 53 45 4c 41 52 47  0,....PD_USELARG
1b10: 45 54 45 4d 50 4c 41 54 45 20 3d 20 30 78 31 30  ETEMPLATE = 0x10
1b20: 30 30 30 30 30 30 2c 0d 0a 09 7d 0d 0a 0d 0a 09  000000,...}.....
1b30: 65 6e 75 6d 20 3a 20 48 52 45 53 55 4c 54 20 7b  enum : HRESULT {
1b40: 0d 0a 09 09 50 44 5f 52 45 53 55 4c 54 5f 43 41  ....PD_RESULT_CA
1b50: 4e 43 45 4c 2c 0d 0a 09 09 50 44 5f 52 45 53 55  NCEL,....PD_RESU
1b60: 4c 54 5f 50 52 49 4e 54 2c 0d 0a 09 09 50 44 5f  LT_PRINT,....PD_
1b70: 52 45 53 55 4c 54 5f 41 50 50 4c 59 0d 0a 09 7d  RESULT_APPLY...}
1b80: 0d 0a 0d 0a 09 63 6f 6e 73 74 20 44 57 4f 52 44  .....const DWORD
1b90: 20 53 54 41 52 54 5f 50 41 47 45 5f 47 45 4e 45   START_PAGE_GENE
1ba0: 52 41 4c 20 3d 20 30 78 46 46 46 46 46 46 46 46  RAL = 0xFFFFFFFF
1bb0: 3b 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a  ;..}....enum {..
1bc0: 09 50 53 44 5f 44 45 46 41 55 4c 54 4d 49 4e 4d  .PSD_DEFAULTMINM
1bd0: 41 52 47 49 4e 53 20 20 20 20 20 20 20 20 20 20  ARGINS          
1be0: 20 20 20 3d 20 30 2c 0d 0a 09 50 53 44 5f 49 4e     = 0,...PSD_IN
1bf0: 57 49 4e 49 4e 49 49 4e 54 4c 4d 45 41 53 55 52  WININIINTLMEASUR
1c00: 45 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 2c  E           = 0,
1c10: 0d 0a 09 50 53 44 5f 4d 49 4e 4d 41 52 47 49 4e  ...PSD_MINMARGIN
1c20: 53 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  S               
1c30: 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 31 2c       = 0x000001,
1c40: 0d 0a 09 50 53 44 5f 4d 41 52 47 49 4e 53 20 20  ...PSD_MARGINS  
1c50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c60: 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 32 2c       = 0x000002,
1c70: 0d 0a 09 50 53 44 5f 49 4e 54 48 4f 55 53 41 4e  ...PSD_INTHOUSAN
1c80: 44 54 48 53 4f 46 49 4e 43 48 45 53 20 20 20 20  DTHSOFINCHES    
1c90: 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 34 2c       = 0x000004,
1ca0: 0d 0a 09 50 53 44 5f 49 4e 48 55 4e 44 52 45 44  ...PSD_INHUNDRED
1cb0: 54 48 53 4f 46 4d 49 4c 4c 49 4d 45 54 45 52 53  THSOFMILLIMETERS
1cc0: 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 38 2c       = 0x000008,
1cd0: 0d 0a 09 50 53 44 5f 44 49 53 41 42 4c 45 4d 41  ...PSD_DISABLEMA
1ce0: 52 47 49 4e 53 20 20 20 20 20 20 20 20 20 20 20  RGINS           
1cf0: 20 20 20 20 20 3d 20 30 78 30 30 30 30 31 30 2c       = 0x000010,
1d00: 0d 0a 09 50 53 44 5f 44 49 53 41 42 4c 45 50 52  ...PSD_DISABLEPR
1d10: 49 4e 54 45 52 20 20 20 20 20 20 20 20 20 20 20  INTER           
1d20: 20 20 20 20 20 3d 20 30 78 30 30 30 30 32 30 2c       = 0x000020,
1d30: 0d 0a 09 50 53 44 5f 4e 4f 57 41 52 4e 49 4e 47  ...PSD_NOWARNING
1d40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d50: 20 20 20 20 20 3d 20 30 78 30 30 30 30 38 30 2c       = 0x000080,
1d60: 0d 0a 09 50 53 44 5f 44 49 53 41 42 4c 45 4f 52  ...PSD_DISABLEOR
1d70: 49 45 4e 54 41 54 49 4f 4e 20 20 20 20 20 20 20  IENTATION       
1d80: 20 20 20 20 20 3d 20 30 78 30 30 30 31 30 30 2c       = 0x000100,
1d90: 0d 0a 09 50 53 44 5f 44 49 53 41 42 4c 45 50 41  ...PSD_DISABLEPA
1da0: 50 45 52 20 20 20 20 20 20 20 20 20 20 20 20 20  PER             
1db0: 20 20 20 20 20 3d 20 30 78 30 30 30 32 30 30 2c       = 0x000200,
1dc0: 0d 0a 09 50 53 44 5f 52 45 54 55 52 4e 44 45 46  ...PSD_RETURNDEF
1dd0: 41 55 4c 54 20 20 20 20 20 20 20 20 20 20 20 20  AULT            
1de0: 20 20 20 20 20 3d 20 30 78 30 30 30 34 30 30 2c       = 0x000400,
1df0: 0d 0a 09 50 53 44 5f 53 48 4f 57 48 45 4c 50 20  ...PSD_SHOWHELP 
1e00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e10: 20 20 20 20 20 3d 20 30 78 30 30 30 38 30 30 2c       = 0x000800,
1e20: 0d 0a 09 50 53 44 5f 45 4e 41 42 4c 45 50 41 47  ...PSD_ENABLEPAG
1e30: 45 53 45 54 55 50 48 4f 4f 4b 20 20 20 20 20 20  ESETUPHOOK      
1e40: 20 20 20 20 20 3d 20 30 78 30 30 32 30 30 30 2c       = 0x002000,
1e50: 0d 0a 09 50 53 44 5f 45 4e 41 42 4c 45 50 41 47  ...PSD_ENABLEPAG
1e60: 45 53 45 54 55 50 54 45 4d 50 4c 41 54 45 20 20  ESETUPTEMPLATE  
1e70: 20 20 20 20 20 3d 20 30 78 30 30 38 30 30 30 2c       = 0x008000,
1e80: 0d 0a 09 50 53 44 5f 45 4e 41 42 4c 45 50 41 47  ...PSD_ENABLEPAG
1e90: 45 53 45 54 55 50 54 45 4d 50 4c 41 54 45 48 41  ESETUPTEMPLATEHA
1ea0: 4e 44 4c 45 20 3d 20 30 78 30 32 30 30 30 30 2c  NDLE = 0x020000,
1eb0: 0d 0a 09 50 53 44 5f 45 4e 41 42 4c 45 50 41 47  ...PSD_ENABLEPAG
1ec0: 45 50 41 49 4e 54 48 4f 4f 4b 20 20 20 20 20 20  EPAINTHOOK      
1ed0: 20 20 20 20 20 3d 20 30 78 30 34 30 30 30 30 2c       = 0x040000,
1ee0: 0d 0a 09 50 53 44 5f 44 49 53 41 42 4c 45 50 41  ...PSD_DISABLEPA
1ef0: 47 45 50 41 49 4e 54 49 4e 47 20 20 20 20 20 20  GEPAINTING      
1f00: 20 20 20 20 20 3d 20 30 78 30 38 30 30 30 30 0d       = 0x080000.
1f10: 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 55 49 4e  .}....enum : UIN
1f20: 54 20 7b 0d 0a 09 57 4d 5f 50 53 44 5f 50 41 47  T {...WM_PSD_PAG
1f30: 45 53 45 54 55 50 44 4c 47 20 3d 20 57 4d 5f 55  ESETUPDLG = WM_U
1f40: 53 45 52 2c 0d 0a 09 57 4d 5f 50 53 44 5f 46 55  SER,...WM_PSD_FU
1f50: 4c 4c 50 41 47 45 52 45 43 54 2c 0d 0a 09 57 4d  LLPAGERECT,...WM
1f60: 5f 50 53 44 5f 4d 49 4e 4d 41 52 47 49 4e 52 45  _PSD_MINMARGINRE
1f70: 43 54 2c 0d 0a 09 57 4d 5f 50 53 44 5f 4d 41 52  CT,...WM_PSD_MAR
1f80: 47 49 4e 52 45 43 54 2c 0d 0a 09 57 4d 5f 50 53  GINRECT,...WM_PS
1f90: 44 5f 47 52 45 45 4b 54 45 58 54 52 45 43 54 2c  D_GREEKTEXTRECT,
1fa0: 0d 0a 09 57 4d 5f 50 53 44 5f 45 4e 56 53 54 41  ...WM_PSD_ENVSTA
1fb0: 4d 50 52 45 43 54 2c 0d 0a 09 57 4d 5f 50 53 44  MPRECT,...WM_PSD
1fc0: 5f 59 41 46 55 4c 4c 50 41 47 45 52 45 43 54 20  _YAFULLPAGERECT 
1fd0: 2f 2f 20 3d 20 57 4d 5f 55 53 45 52 20 2b 20 36  // = WM_USER + 6
1fe0: 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 69 6e  ..}....enum : in
1ff0: 74 20 7b 0d 0a 09 43 44 5f 4c 42 53 45 4c 4e 4f  t {...CD_LBSELNO
2000: 49 54 45 4d 53 20 3d 20 2d 31 2c 0d 0a 09 43 44  ITEMS = -1,...CD
2010: 5f 4c 42 53 45 4c 43 48 41 4e 47 45 2c 0d 0a 09  _LBSELCHANGE,...
2020: 43 44 5f 4c 42 53 45 4c 53 55 42 2c 0d 0a 09 43  CD_LBSELSUB,...C
2030: 44 5f 4c 42 53 45 4c 41 44 44 0d 0a 7d 0d 0a 0d  D_LBSELADD..}...
2040: 0a 63 6f 6e 73 74 20 57 4f 52 44 20 44 4e 5f 44  .const WORD DN_D
2050: 45 46 41 55 4c 54 50 52 4e 20 3d 20 31 3b 0d 0a  EFAULTPRN = 1;..
2060: 0d 0a 2f 2b 0d 0a 2f 2f 20 42 6f 74 68 20 4d 69  ../+..// Both Mi
2070: 6e 47 57 20 61 6e 64 20 74 68 65 20 77 69 6e 64  nGW and the wind
2080: 6f 77 73 20 64 6f 63 73 20 69 6e 64 69 63 61 74  ows docs indicat
2090: 65 20 74 68 61 74 20 74 68 65 72 65 20 61 72 65  e that there are
20a0: 20 6d 61 63 72 6f 73 20 66 6f 72 20 74 68 65 20   macros for the 
20b0: 73 65 6e 64 20 6d 65 73 73 61 67 65 73 0d 0a 2f  send messages../
20c0: 2f 20 74 68 65 20 63 6f 6e 74 72 6f 6c 73 2e 20  / the controls. 
20d0: 54 68 65 73 65 20 73 65 65 6d 20 74 6f 20 62 65  These seem to be
20e0: 20 74 6f 74 61 6c 6c 79 20 75 6e 6e 65 63 65 73   totally unneces
20f0: 73 61 72 79 20 2d 2d 20 61 6e 64 20 61 74 20 6c  sary -- and at l
2100: 65 61 73 74 20 6f 6e 65 20 6f 66 20 4d 69 6e 47  east one of MinG
2110: 57 20 6f 72 0d 0a 2f 2f 20 57 69 6e 64 6f 77 73  W or..// Windows
2120: 20 44 6f 63 73 20 69 73 20 62 75 67 67 79 21 0d   Docs is buggy!.
2130: 0a 0d 0a 69 6e 74 20 43 6f 6d 6d 44 6c 67 5f 4f  ...int CommDlg_O
2140: 70 65 6e 53 61 76 65 5f 47 65 74 53 70 65 63 28  penSave_GetSpec(
2150: 48 57 4e 44 20 68 57 6e 64 43 6f 6e 74 72 6f 6c  HWND hWndControl
2160: 2c 20 4c 50 41 52 41 4d 20 6c 70 61 72 61 6d 2c  , LPARAM lparam,
2170: 20 57 50 41 52 41 4d 20 77 50 61 72 61 6d 29 20   WPARAM wParam) 
2180: 7b 0d 0a 09 72 65 74 75 72 6e 20 53 65 6e 64 4d  {...return SendM
2190: 65 73 73 61 67 65 28 68 57 6e 64 43 6f 6e 74 72  essage(hWndContr
21a0: 6f 6c 2c 20 43 44 4d 5f 47 45 54 53 50 45 43 2c  ol, CDM_GETSPEC,
21b0: 20 77 50 61 72 61 6d 2c 20 6c 50 61 72 61 6d 29   wParam, lParam)
21c0: 3b 0d 0a 7d 0d 0a 0d 0a 69 6e 74 20 43 6f 6d 6d  ;..}....int Comm
21d0: 44 6c 67 5f 4f 70 65 6e 53 61 76 65 5f 47 65 74  Dlg_OpenSave_Get
21e0: 46 69 6c 65 50 61 74 68 28 48 57 4e 44 20 68 57  FilePath(HWND hW
21f0: 6e 64 43 6f 6e 74 72 6f 6c 2c 20 4c 50 41 52 41  ndControl, LPARA
2200: 4d 20 6c 70 61 72 61 6d 2c 20 57 50 41 52 41 4d  M lparam, WPARAM
2210: 20 77 50 61 72 61 6d 29 20 7b 0d 0a 09 72 65 74   wParam) {...ret
2220: 75 72 6e 20 53 65 6e 64 4d 65 73 73 61 67 65 28  urn SendMessage(
2230: 68 57 6e 64 43 6f 6e 74 72 6f 6c 2c 20 43 44 4d  hWndControl, CDM
2240: 5f 47 45 54 46 49 4c 45 50 41 54 48 2c 20 77 50  _GETFILEPATH, wP
2250: 61 72 61 6d 2c 20 6c 50 61 72 61 6d 29 3b 0d 0a  aram, lParam);..
2260: 7d 0d 0a 0d 0a 69 6e 74 20 43 6f 6d 6d 44 6c 67  }....int CommDlg
2270: 5f 4f 70 65 6e 53 61 76 65 5f 47 65 74 46 6f 6c  _OpenSave_GetFol
2280: 64 65 72 50 61 74 68 28 48 57 4e 44 20 68 57 6e  derPath(HWND hWn
2290: 64 43 6f 6e 74 72 6f 6c 2c 20 4c 50 41 52 41 4d  dControl, LPARAM
22a0: 20 6c 70 61 72 61 6d 2c 20 57 50 41 52 41 4d 20   lparam, WPARAM 
22b0: 77 50 61 72 61 6d 29 20 7b 0d 0a 09 72 65 74 75  wParam) {...retu
22c0: 72 6e 20 53 65 6e 64 4d 65 73 73 61 67 65 28 68  rn SendMessage(h
22d0: 57 6e 64 43 6f 6e 74 72 6f 6c 2c 20 43 44 4d 5f  WndControl, CDM_
22e0: 47 45 54 46 4f 4c 44 45 52 50 41 54 48 2c 20 77  GETFOLDERPATH, w
22f0: 50 61 72 61 6d 2c 20 6c 50 61 72 61 6d 29 3b 0d  Param, lParam);.
2300: 0a 7d 0d 0a 0d 0a 69 6e 74 20 43 6f 6d 6d 44 6c  .}....int CommDl
2310: 67 5f 4f 70 65 6e 53 61 76 65 5f 47 65 74 46 6f  g_OpenSave_GetFo
2320: 6c 64 65 72 49 44 4c 69 73 74 28 48 57 4e 44 20  lderIDList(HWND 
2330: 68 57 6e 64 43 6f 6e 74 72 6f 6c 2c 20 4c 50 41  hWndControl, LPA
2340: 52 41 4d 20 6c 70 61 72 61 6d 2c 20 57 50 41 52  RAM lparam, WPAR
2350: 41 4d 20 77 50 61 72 61 6d 29 20 7b 0d 0a 09 72  AM wParam) {...r
2360: 65 74 75 72 6e 20 53 65 6e 64 4d 65 73 73 61 67  eturn SendMessag
2370: 65 28 68 57 6e 64 43 6f 6e 74 72 6f 6c 2c 20 43  e(hWndControl, C
2380: 44 4d 5f 47 45 54 46 4f 4c 44 45 52 49 44 4c 49  DM_GETFOLDERIDLI
2390: 53 54 2c 20 77 50 61 72 61 6d 2c 20 6c 50 61 72  ST, wParam, lPar
23a0: 61 6d 29 3b 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64 20  am);..}....void 
23b0: 43 6f 6d 6d 44 6c 67 5f 4f 70 65 6e 53 61 76 65  CommDlg_OpenSave
23c0: 5f 53 65 74 43 6f 6e 74 72 6f 6c 54 65 78 74 28  _SetControlText(
23d0: 48 57 4e 44 20 68 57 6e 64 43 6f 6e 74 72 6f 6c  HWND hWndControl
23e0: 2c 20 4c 50 41 52 41 4d 20 6c 70 61 72 61 6d 2c  , LPARAM lparam,
23f0: 20 57 50 41 52 41 4d 20 77 50 61 72 61 6d 29 20   WPARAM wParam) 
2400: 7b 0d 0a 09 72 65 74 75 72 6e 20 53 65 6e 64 4d  {...return SendM
2410: 65 73 73 61 67 65 28 68 57 6e 64 43 6f 6e 74 72  essage(hWndContr
2420: 6f 6c 2c 20 43 44 4d 5f 53 45 54 43 4f 4e 54 52  ol, CDM_SETCONTR
2430: 4f 4c 54 45 58 54 2c 20 77 50 61 72 61 6d 2c 20  OLTEXT, wParam, 
2440: 6c 50 61 72 61 6d 29 3b 0d 0a 7d 0d 0a 0d 0a 76  lParam);..}....v
2450: 6f 69 64 20 43 6f 6d 6d 44 6c 67 5f 4f 70 65 6e  oid CommDlg_Open
2460: 53 61 76 65 5f 48 69 64 65 43 6f 6e 74 72 6f 6c  Save_HideControl
2470: 28 48 57 4e 44 20 68 57 6e 64 43 6f 6e 74 72 6f  (HWND hWndContro
2480: 6c 2c 20 57 50 41 52 41 4d 20 77 50 61 72 61 6d  l, WPARAM wParam
2490: 29 20 7b 0d 0a 09 72 65 74 75 72 6e 20 53 65 6e  ) {...return Sen
24a0: 64 4d 65 73 73 61 67 65 28 68 57 6e 64 43 6f 6e  dMessage(hWndCon
24b0: 74 72 6f 6c 2c 20 43 44 4d 5f 48 49 44 45 43 4f  trol, CDM_HIDECO
24c0: 4e 54 52 4f 4c 2c 20 77 50 61 72 61 6d 2c 20 30  NTROL, wParam, 0
24d0: 29 3b 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64 20 43 6f  );..}....void Co
24e0: 6d 6d 44 6c 67 5f 4f 70 65 6e 53 61 76 65 5f 53  mmDlg_OpenSave_S
24f0: 65 74 44 65 66 45 78 74 28 48 57 4e 44 20 68 57  etDefExt(HWND hW
2500: 6e 64 43 6f 6e 74 72 6f 6c 2c 20 54 43 48 41 52  ndControl, TCHAR
2510: 2a 20 6c 70 61 72 61 6d 29 20 7b 0d 0a 09 72 65  * lparam) {...re
2520: 74 75 72 6e 20 53 65 6e 64 4d 65 73 73 61 67 65  turn SendMessage
2530: 28 68 57 6e 64 43 6f 6e 74 72 6f 6c 2c 20 43 44  (hWndControl, CD
2540: 4d 5f 53 45 54 43 4f 4e 54 52 4f 4c 54 45 58 54  M_SETCONTROLTEXT
2550: 2c 20 30 2c 20 63 61 73 74 28 4c 50 41 52 41 4d  , 0, cast(LPARAM
2560: 29 6c 50 61 72 61 6d 29 3b 0d 0a 7d 0d 0a 0d 0a  )lParam);..}....
2570: 2f 2f 20 54 68 65 73 65 20 61 6c 69 61 73 65 73  // These aliases
2580: 20 73 65 65 6d 20 65 76 65 6e 20 6d 6f 72 65 20   seem even more 
2590: 75 6e 6e 65 63 65 73 73 61 72 79 0d 0a 61 6c 69  unnecessary..ali
25a0: 61 73 20 43 6f 6d 6d 44 6c 67 5f 4f 70 65 6e 53  as CommDlg_OpenS
25b0: 61 76 65 5f 47 65 74 53 70 65 63 0d 0a 09 43 6f  ave_GetSpec...Co
25c0: 6d 6d 44 6c 67 5f 4f 70 65 6e 53 61 76 65 5f 47  mmDlg_OpenSave_G
25d0: 65 74 53 70 65 63 41 2c 20 43 6f 6d 6d 44 6c 67  etSpecA, CommDlg
25e0: 5f 4f 70 65 6e 53 61 76 65 5f 47 65 74 53 70 65  _OpenSave_GetSpe
25f0: 63 57 3b 0d 0a 61 6c 69 61 73 20 43 6f 6d 6d 44  cW;..alias CommD
2600: 6c 67 5f 4f 70 65 6e 53 61 76 65 5f 47 65 74 46  lg_OpenSave_GetF
2610: 69 6c 65 50 61 74 68 0d 0a 09 43 6f 6d 6d 44 6c  ilePath...CommDl
2620: 67 5f 4f 70 65 6e 53 61 76 65 5f 47 65 74 46 69  g_OpenSave_GetFi
2630: 6c 65 50 61 74 68 41 2c 20 43 6f 6d 6d 44 6c 67  lePathA, CommDlg
2640: 5f 4f 70 65 6e 53 61 76 65 5f 47 65 74 46 69 6c  _OpenSave_GetFil
2650: 65 50 61 74 68 57 3b 0d 0a 61 6c 69 61 73 20 43  ePathW;..alias C
2660: 6f 6d 6d 44 6c 67 5f 4f 70 65 6e 53 61 76 65 5f  ommDlg_OpenSave_
2670: 47 65 74 46 6f 6c 64 65 72 50 61 74 68 0d 0a 09  GetFolderPath...
2680: 43 6f 6d 6d 44 6c 67 5f 4f 70 65 6e 53 61 76 65  CommDlg_OpenSave
2690: 5f 47 65 74 46 6f 6c 64 65 72 50 61 74 68 41 2c  _GetFolderPathA,
26a0: 20 43 6f 6d 6d 44 6c 67 5f 4f 70 65 6e 53 61 76   CommDlg_OpenSav
26b0: 65 5f 47 65 74 46 6f 6c 64 65 72 50 61 74 68 57  e_GetFolderPathW
26c0: 3b 0d 0a 2b 2f 0d 0a 0d 0a 2f 2f 20 43 61 6c 6c  ;..+/....// Call
26d0: 62 61 63 6b 73 2e 0d 0a 65 78 74 65 72 6e 28 57  backs...extern(W
26e0: 69 6e 64 6f 77 73 29 20 7b 0d 0a 61 6c 69 61 73  indows) {..alias
26f0: 20 55 49 4e 54 5f 50 54 52 20 66 75 6e 63 74 69   UINT_PTR functi
2700: 6f 6e 20 28 48 57 4e 44 2c 20 55 49 4e 54 2c 20  on (HWND, UINT, 
2710: 57 50 41 52 41 4d 2c 20 4c 50 41 52 41 4d 29 0d  WPARAM, LPARAM).
2720: 0a 09 4c 50 43 43 48 4f 4f 4b 50 52 4f 43 2c 20  ..LPCCHOOKPROC, 
2730: 4c 50 43 46 48 4f 4f 4b 50 52 4f 43 2c 20 4c 50  LPCFHOOKPROC, LP
2740: 46 52 48 4f 4f 4b 50 52 4f 43 2c 20 4c 50 4f 46  FRHOOKPROC, LPOF
2750: 4e 48 4f 4f 4b 50 52 4f 43 2c 0d 0a 09 4c 50 50  NHOOKPROC,...LPP
2760: 41 47 45 50 41 49 4e 54 48 4f 4f 4b 2c 20 4c 50  AGEPAINTHOOK, LP
2770: 50 41 47 45 53 45 54 55 50 48 4f 4f 4b 2c 20 4c  PAGESETUPHOOK, L
2780: 50 53 45 54 55 50 48 4f 4f 4b 50 52 4f 43 2c 20  PSETUPHOOKPROC, 
2790: 4c 50 50 52 49 4e 54 48 4f 4f 4b 50 52 4f 43 3b  LPPRINTHOOKPROC;
27a0: 0d 0a 7d 0d 0a 0d 0a 61 6c 69 67 6e 20 28 31 29  ..}....align (1)
27b0: 3a 0d 0a 0d 0a 73 74 72 75 63 74 20 43 48 4f 4f  :....struct CHOO
27c0: 53 45 43 4f 4c 4f 52 41 20 7b 0d 0a 09 44 57 4f  SECOLORA {...DWO
27d0: 52 44 20 20 20 20 20 20 20 20 6c 53 74 72 75 63  RD        lStruc
27e0: 74 53 69 7a 65 20 3d 20 43 48 4f 4f 53 45 43 4f  tSize = CHOOSECO
27f0: 4c 4f 52 41 2e 73 69 7a 65 6f 66 3b 0d 0a 09 48  LORA.sizeof;...H
2800: 57 4e 44 20 20 20 20 20 20 20 20 20 68 77 6e 64  WND         hwnd
2810: 4f 77 6e 65 72 3b 0d 0a 09 48 57 4e 44 20 20 20  Owner;...HWND   
2820: 20 20 20 20 20 20 68 49 6e 73 74 61 6e 63 65 3b        hInstance;
2830: 0d 0a 09 43 4f 4c 4f 52 52 45 46 20 20 20 20 20  ...COLORREF     
2840: 72 67 62 52 65 73 75 6c 74 3b 0d 0a 09 43 4f 4c  rgbResult;...COL
2850: 4f 52 52 45 46 2a 20 20 20 20 6c 70 43 75 73 74  ORREF*    lpCust
2860: 43 6f 6c 6f 72 73 3b 0d 0a 09 44 57 4f 52 44 20  Colors;...DWORD 
2870: 20 20 20 20 20 20 20 46 6c 61 67 73 3b 0d 0a 09         Flags;...
2880: 4c 50 41 52 41 4d 20 20 20 20 20 20 20 6c 43 75  LPARAM       lCu
2890: 73 74 44 61 74 61 3b 0d 0a 09 4c 50 43 43 48 4f  stData;...LPCCHO
28a0: 4f 4b 50 52 4f 43 20 6c 70 66 6e 48 6f 6f 6b 3b  OKPROC lpfnHook;
28b0: 0d 0a 09 4c 50 43 53 54 52 20 20 20 20 20 20 20  ...LPCSTR       
28c0: 6c 70 54 65 6d 70 6c 61 74 65 4e 61 6d 65 3b 0d  lpTemplateName;.
28d0: 0a 7d 0d 0a 61 6c 69 61 73 20 43 48 4f 4f 53 45  .}..alias CHOOSE
28e0: 43 4f 4c 4f 52 41 2a 20 4c 50 43 48 4f 4f 53 45  COLORA* LPCHOOSE
28f0: 43 4f 4c 4f 52 41 3b 0d 0a 0d 0a 73 74 72 75 63  COLORA;....struc
2900: 74 20 43 48 4f 4f 53 45 43 4f 4c 4f 52 57 20 7b  t CHOOSECOLORW {
2910: 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 20  ...DWORD        
2920: 6c 53 74 72 75 63 74 53 69 7a 65 20 3d 20 43 48  lStructSize = CH
2930: 4f 4f 53 45 43 4f 4c 4f 52 57 2e 73 69 7a 65 6f  OOSECOLORW.sizeo
2940: 66 3b 0d 0a 09 48 57 4e 44 20 20 20 20 20 20 20  f;...HWND       
2950: 20 20 68 77 6e 64 4f 77 6e 65 72 3b 0d 0a 09 48    hwndOwner;...H
2960: 57 4e 44 20 20 20 20 20 20 20 20 20 68 49 6e 73  WND         hIns
2970: 74 61 6e 63 65 3b 0d 0a 09 43 4f 4c 4f 52 52 45  tance;...COLORRE
2980: 46 20 20 20 20 20 72 67 62 52 65 73 75 6c 74 3b  F     rgbResult;
2990: 0d 0a 09 43 4f 4c 4f 52 52 45 46 2a 20 20 20 20  ...COLORREF*    
29a0: 6c 70 43 75 73 74 43 6f 6c 6f 72 73 3b 0d 0a 09  lpCustColors;...
29b0: 44 57 4f 52 44 20 20 20 20 20 20 20 20 46 6c 61  DWORD        Fla
29c0: 67 73 3b 0d 0a 09 4c 50 41 52 41 4d 20 20 20 20  gs;...LPARAM    
29d0: 20 20 20 6c 43 75 73 74 44 61 74 61 3b 0d 0a 09     lCustData;...
29e0: 4c 50 43 43 48 4f 4f 4b 50 52 4f 43 20 6c 70 66  LPCCHOOKPROC lpf
29f0: 6e 48 6f 6f 6b 3b 0d 0a 09 4c 50 43 57 53 54 52  nHook;...LPCWSTR
2a00: 20 20 20 20 20 20 6c 70 54 65 6d 70 6c 61 74 65        lpTemplate
2a10: 4e 61 6d 65 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20  Name;..}..alias 
2a20: 43 48 4f 4f 53 45 43 4f 4c 4f 52 57 2a 20 4c 50  CHOOSECOLORW* LP
2a30: 43 48 4f 4f 53 45 43 4f 4c 4f 52 57 3b 0d 0a 0d  CHOOSECOLORW;...
2a40: 0a 61 6c 69 67 6e 20 28 34 29 20 73 74 72 75 63  .align (4) struc
2a50: 74 20 43 48 4f 4f 53 45 46 4f 4e 54 41 20 7b 0d  t CHOOSEFONTA {.
2a60: 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 6c  ..DWORD        l
2a70: 53 74 72 75 63 74 53 69 7a 65 20 3d 20 43 48 4f  StructSize = CHO
2a80: 4f 53 45 46 4f 4e 54 41 2e 73 69 7a 65 6f 66 3b  OSEFONTA.sizeof;
2a90: 0d 0a 09 48 57 4e 44 20 20 20 20 20 20 20 20 20  ...HWND         
2aa0: 68 77 6e 64 4f 77 6e 65 72 3b 0d 0a 09 48 44 43  hwndOwner;...HDC
2ab0: 20 20 20 20 20 20 20 20 20 20 68 44 43 3b 0d 0a            hDC;..
2ac0: 09 4c 50 4c 4f 47 46 4f 4e 54 41 20 20 20 6c 70  .LPLOGFONTA   lp
2ad0: 4c 6f 67 46 6f 6e 74 3b 0d 0a 09 49 4e 54 20 20  LogFont;...INT  
2ae0: 20 20 20 20 20 20 20 20 69 50 6f 69 6e 74 53 69          iPointSi
2af0: 7a 65 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20  ze;...DWORD     
2b00: 20 20 20 46 6c 61 67 73 3b 0d 0a 09 44 57 4f 52     Flags;...DWOR
2b10: 44 20 20 20 20 20 20 20 20 72 67 62 43 6f 6c 6f  D        rgbColo
2b20: 72 73 3b 0d 0a 09 4c 50 41 52 41 4d 20 20 20 20  rs;...LPARAM    
2b30: 20 20 20 6c 43 75 73 74 44 61 74 61 3b 0d 0a 09     lCustData;...
2b40: 4c 50 43 46 48 4f 4f 4b 50 52 4f 43 20 6c 70 66  LPCFHOOKPROC lpf
2b50: 6e 48 6f 6f 6b 3b 0d 0a 09 4c 50 43 53 54 52 20  nHook;...LPCSTR 
2b60: 20 20 20 20 20 20 6c 70 54 65 6d 70 6c 61 74 65        lpTemplate
2b70: 4e 61 6d 65 3b 0d 0a 09 48 49 4e 53 54 41 4e 43  Name;...HINSTANC
2b80: 45 20 20 20 20 68 49 6e 73 74 61 6e 63 65 3b 0d  E    hInstance;.
2b90: 0a 09 4c 50 53 54 52 20 20 20 20 20 20 20 20 6c  ..LPSTR        l
2ba0: 70 73 7a 53 74 79 6c 65 3b 0d 0a 09 57 4f 52 44  pszStyle;...WORD
2bb0: 20 20 20 20 20 20 20 20 20 6e 46 6f 6e 74 54 79           nFontTy
2bc0: 70 65 3b 0d 0a 09 2f 2f 57 4f 52 44 20 20 20 20  pe;...//WORD    
2bd0: 20 20 20 20 20 5f 5f 5f 4d 49 53 53 49 4e 47 5f       ___MISSING_
2be0: 41 4c 49 47 4e 4d 45 4e 54 5f 5f 3b 0d 0a 09 49  ALIGNMENT__;...I
2bf0: 4e 54 20 20 20 20 20 20 20 20 20 20 6e 53 69 7a  NT          nSiz
2c00: 65 4d 69 6e 3b 0d 0a 09 49 4e 54 20 20 20 20 20  eMin;...INT     
2c10: 20 20 20 20 20 6e 53 69 7a 65 4d 61 78 3b 0d 0a       nSizeMax;..
2c20: 7d 0d 0a 61 6c 69 61 73 20 43 48 4f 4f 53 45 46  }..alias CHOOSEF
2c30: 4f 4e 54 41 2a 20 4c 50 43 48 4f 4f 53 45 46 4f  ONTA* LPCHOOSEFO
2c40: 4e 54 41 3b 0d 0a 0d 0a 61 6c 69 67 6e 20 28 34  NTA;....align (4
2c50: 29 20 73 74 72 75 63 74 20 43 48 4f 4f 53 45 46  ) struct CHOOSEF
2c60: 4f 4e 54 57 20 7b 0d 0a 09 44 57 4f 52 44 20 20  ONTW {...DWORD  
2c70: 20 20 20 20 20 20 6c 53 74 72 75 63 74 53 69 7a        lStructSiz
2c80: 65 20 3d 20 43 48 4f 4f 53 45 46 4f 4e 54 57 2e  e = CHOOSEFONTW.
2c90: 73 69 7a 65 6f 66 3b 0d 0a 09 48 57 4e 44 20 20  sizeof;...HWND  
2ca0: 20 20 20 20 20 20 20 68 77 6e 64 4f 77 6e 65 72         hwndOwner
2cb0: 3b 0d 0a 09 48 44 43 20 20 20 20 20 20 20 20 20  ;...HDC         
2cc0: 20 68 44 43 3b 0d 0a 09 4c 50 4c 4f 47 46 4f 4e   hDC;...LPLOGFON
2cd0: 54 57 20 20 20 6c 70 4c 6f 67 46 6f 6e 74 3b 0d  TW   lpLogFont;.
2ce0: 0a 09 49 4e 54 20 20 20 20 20 20 20 20 20 20 69  ..INT          i
2cf0: 50 6f 69 6e 74 53 69 7a 65 3b 0d 0a 09 44 57 4f  PointSize;...DWO
2d00: 52 44 20 20 20 20 20 20 20 20 46 6c 61 67 73 3b  RD        Flags;
2d10: 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 20  ...DWORD        
2d20: 72 67 62 43 6f 6c 6f 72 73 3b 0d 0a 09 4c 50 41  rgbColors;...LPA
2d30: 52 41 4d 20 20 20 20 20 20 20 6c 43 75 73 74 44  RAM       lCustD
2d40: 61 74 61 3b 0d 0a 09 4c 50 43 46 48 4f 4f 4b 50  ata;...LPCFHOOKP
2d50: 52 4f 43 20 6c 70 66 6e 48 6f 6f 6b 3b 0d 0a 09  ROC lpfnHook;...
2d60: 4c 50 43 57 53 54 52 20 20 20 20 20 20 6c 70 54  LPCWSTR      lpT
2d70: 65 6d 70 6c 61 74 65 4e 61 6d 65 3b 0d 0a 09 48  emplateName;...H
2d80: 49 4e 53 54 41 4e 43 45 20 20 20 20 68 49 6e 73  INSTANCE    hIns
2d90: 74 61 6e 63 65 3b 0d 0a 09 4c 50 57 53 54 52 20  tance;...LPWSTR 
2da0: 20 20 20 20 20 20 6c 70 73 7a 53 74 79 6c 65 3b        lpszStyle;
2db0: 0d 0a 09 57 4f 52 44 20 20 20 20 20 20 20 20 20  ...WORD         
2dc0: 6e 46 6f 6e 74 54 79 70 65 3b 0d 0a 09 2f 2f 57  nFontType;...//W
2dd0: 4f 52 44 20 20 20 20 20 20 20 20 20 5f 5f 5f 4d  ORD         ___M
2de0: 49 53 53 49 4e 47 5f 41 4c 49 47 4e 4d 45 4e 54  ISSING_ALIGNMENT
2df0: 5f 5f 3b 0d 0a 09 49 4e 54 20 20 20 20 20 20 20  __;...INT       
2e00: 20 20 20 6e 53 69 7a 65 4d 69 6e 3b 0d 0a 09 49     nSizeMin;...I
2e10: 4e 54 20 20 20 20 20 20 20 20 20 20 6e 53 69 7a  NT          nSiz
2e20: 65 4d 61 78 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20  eMax;..}..alias 
2e30: 43 48 4f 4f 53 45 46 4f 4e 54 57 2a 20 4c 50 43  CHOOSEFONTW* LPC
2e40: 48 4f 4f 53 45 46 4f 4e 54 57 3b 0d 0a 0d 0a 73  HOOSEFONTW;....s
2e50: 74 72 75 63 74 20 44 45 56 4e 41 4d 45 53 20 7b  truct DEVNAMES {
2e60: 0d 0a 09 57 4f 52 44 20 77 44 72 69 76 65 72 4f  ...WORD wDriverO
2e70: 66 66 73 65 74 3b 0d 0a 09 57 4f 52 44 20 77 44  ffset;...WORD wD
2e80: 65 76 69 63 65 4f 66 66 73 65 74 3b 0d 0a 09 57  eviceOffset;...W
2e90: 4f 52 44 20 77 4f 75 74 70 75 74 4f 66 66 73 65  ORD wOutputOffse
2ea0: 74 3b 0d 0a 09 57 4f 52 44 20 77 44 65 66 61 75  t;...WORD wDefau
2eb0: 6c 74 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 44 45  lt;..}..alias DE
2ec0: 56 4e 41 4d 45 53 2a 20 4c 50 44 45 56 4e 41 4d  VNAMES* LPDEVNAM
2ed0: 45 53 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 46 49  ES;....struct FI
2ee0: 4e 44 52 45 50 4c 41 43 45 41 20 7b 0d 0a 09 44  NDREPLACEA {...D
2ef0: 57 4f 52 44 20 20 20 20 20 20 20 20 6c 53 74 72  WORD        lStr
2f00: 75 63 74 53 69 7a 65 20 3d 20 46 49 4e 44 52 45  uctSize = FINDRE
2f10: 50 4c 41 43 45 41 2e 73 69 7a 65 6f 66 3b 0d 0a  PLACEA.sizeof;..
2f20: 09 48 57 4e 44 20 20 20 20 20 20 20 20 20 68 77  .HWND         hw
2f30: 6e 64 4f 77 6e 65 72 3b 0d 0a 09 48 49 4e 53 54  ndOwner;...HINST
2f40: 41 4e 43 45 20 20 20 20 68 49 6e 73 74 61 6e 63  ANCE    hInstanc
2f50: 65 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 20  e;...DWORD      
2f60: 20 20 46 6c 61 67 73 3b 0d 0a 09 4c 50 53 54 52    Flags;...LPSTR
2f70: 20 20 20 20 20 20 20 20 6c 70 73 74 72 46 69 6e          lpstrFin
2f80: 64 57 68 61 74 3b 0d 0a 09 4c 50 53 54 52 20 20  dWhat;...LPSTR  
2f90: 20 20 20 20 20 20 6c 70 73 74 72 52 65 70 6c 61        lpstrRepla
2fa0: 63 65 57 69 74 68 3b 0d 0a 09 57 4f 52 44 20 20  ceWith;...WORD  
2fb0: 20 20 20 20 20 20 20 77 46 69 6e 64 57 68 61 74         wFindWhat
2fc0: 4c 65 6e 3b 0d 0a 09 57 4f 52 44 20 20 20 20 20  Len;...WORD     
2fd0: 20 20 20 20 77 52 65 70 6c 61 63 65 57 69 74 68      wReplaceWith
2fe0: 4c 65 6e 3b 0d 0a 09 4c 50 41 52 41 4d 20 20 20  Len;...LPARAM   
2ff0: 20 20 20 20 6c 43 75 73 74 44 61 74 61 3b 0d 0a      lCustData;..
3000: 09 4c 50 46 52 48 4f 4f 4b 50 52 4f 43 20 6c 70  .LPFRHOOKPROC lp
3010: 66 6e 48 6f 6f 6b 3b 0d 0a 09 4c 50 43 53 54 52  fnHook;...LPCSTR
3020: 20 20 20 20 20 20 20 6c 70 54 65 6d 70 6c 61 74         lpTemplat
3030: 65 4e 61 6d 65 3b 0d 0a 7d 0d 0a 61 6c 69 61 73  eName;..}..alias
3040: 20 46 49 4e 44 52 45 50 4c 41 43 45 41 2a 20 4c   FINDREPLACEA* L
3050: 50 46 49 4e 44 52 45 50 4c 41 43 45 41 3b 0d 0a  PFINDREPLACEA;..
3060: 0d 0a 73 74 72 75 63 74 20 46 49 4e 44 52 45 50  ..struct FINDREP
3070: 4c 41 43 45 57 20 7b 0d 0a 09 44 57 4f 52 44 20  LACEW {...DWORD 
3080: 20 20 20 20 20 20 20 6c 53 74 72 75 63 74 53 69         lStructSi
3090: 7a 65 20 3d 20 46 49 4e 44 52 45 50 4c 41 43 45  ze = FINDREPLACE
30a0: 57 2e 73 69 7a 65 6f 66 3b 0d 0a 09 48 57 4e 44  W.sizeof;...HWND
30b0: 20 20 20 20 20 20 20 20 20 68 77 6e 64 4f 77 6e           hwndOwn
30c0: 65 72 3b 0d 0a 09 48 49 4e 53 54 41 4e 43 45 20  er;...HINSTANCE 
30d0: 20 20 20 68 49 6e 73 74 61 6e 63 65 3b 0d 0a 09     hInstance;...
30e0: 44 57 4f 52 44 20 20 20 20 20 20 20 20 46 6c 61  DWORD        Fla
30f0: 67 73 3b 0d 0a 09 4c 50 57 53 54 52 20 20 20 20  gs;...LPWSTR    
3100: 20 20 20 6c 70 73 74 72 46 69 6e 64 57 68 61 74     lpstrFindWhat
3110: 3b 0d 0a 09 4c 50 57 53 54 52 20 20 20 20 20 20  ;...LPWSTR      
3120: 20 6c 70 73 74 72 52 65 70 6c 61 63 65 57 69 74   lpstrReplaceWit
3130: 68 3b 0d 0a 09 57 4f 52 44 20 20 20 20 20 20 20  h;...WORD       
3140: 20 20 77 46 69 6e 64 57 68 61 74 4c 65 6e 3b 0d    wFindWhatLen;.
3150: 0a 09 57 4f 52 44 20 20 20 20 20 20 20 20 20 77  ..WORD         w
3160: 52 65 70 6c 61 63 65 57 69 74 68 4c 65 6e 3b 0d  ReplaceWithLen;.
3170: 0a 09 4c 50 41 52 41 4d 20 20 20 20 20 20 20 6c  ..LPARAM       l
3180: 43 75 73 74 44 61 74 61 3b 0d 0a 09 4c 50 46 52  CustData;...LPFR
3190: 48 4f 4f 4b 50 52 4f 43 20 6c 70 66 6e 48 6f 6f  HOOKPROC lpfnHoo
31a0: 6b 3b 0d 0a 09 4c 50 43 57 53 54 52 20 20 20 20  k;...LPCWSTR    
31b0: 20 20 6c 70 54 65 6d 70 6c 61 74 65 4e 61 6d 65    lpTemplateName
31c0: 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 46 49 4e 44  ;..}..alias FIND
31d0: 52 45 50 4c 41 43 45 57 2a 20 4c 50 46 49 4e 44  REPLACEW* LPFIND
31e0: 52 45 50 4c 41 43 45 57 3b 0d 0a 0d 0a 73 74 72  REPLACEW;....str
31f0: 75 63 74 20 4f 50 45 4e 46 49 4c 45 4e 41 4d 45  uct OPENFILENAME
3200: 41 20 7b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20  A {...DWORD     
3210: 20 20 20 20 6c 53 74 72 75 63 74 53 69 7a 65 20      lStructSize 
3220: 3d 20 4f 50 45 4e 46 49 4c 45 4e 41 4d 45 41 2e  = OPENFILENAMEA.
3230: 73 69 7a 65 6f 66 3b 0d 0a 09 48 57 4e 44 20 20  sizeof;...HWND  
3240: 20 20 20 20 20 20 20 20 68 77 6e 64 4f 77 6e 65          hwndOwne
3250: 72 3b 0d 0a 09 48 49 4e 53 54 41 4e 43 45 20 20  r;...HINSTANCE  
3260: 20 20 20 68 49 6e 73 74 61 6e 63 65 3b 0d 0a 09     hInstance;...
3270: 4c 50 43 53 54 52 20 20 20 20 20 20 20 20 6c 70  LPCSTR        lp
3280: 73 74 72 46 69 6c 74 65 72 3b 0d 0a 09 4c 50 53  strFilter;...LPS
3290: 54 52 20 20 20 20 20 20 20 20 20 6c 70 73 74 72  TR         lpstr
32a0: 43 75 73 74 6f 6d 46 69 6c 74 65 72 3b 0d 0a 09  CustomFilter;...
32b0: 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 6e 4d  DWORD         nM
32c0: 61 78 43 75 73 74 46 69 6c 74 65 72 3b 0d 0a 09  axCustFilter;...
32d0: 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 6e 46  DWORD         nF
32e0: 69 6c 74 65 72 49 6e 64 65 78 3b 0d 0a 09 4c 50  ilterIndex;...LP
32f0: 53 54 52 20 20 20 20 20 20 20 20 20 6c 70 73 74  STR         lpst
3300: 72 46 69 6c 65 3b 0d 0a 09 44 57 4f 52 44 20 20  rFile;...DWORD  
3310: 20 20 20 20 20 20 20 6e 4d 61 78 46 69 6c 65 3b         nMaxFile;
3320: 0d 0a 09 4c 50 53 54 52 20 20 20 20 20 20 20 20  ...LPSTR        
3330: 20 6c 70 73 74 72 46 69 6c 65 54 69 74 6c 65 3b   lpstrFileTitle;
3340: 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 20  ...DWORD        
3350: 20 6e 4d 61 78 46 69 6c 65 54 69 74 6c 65 3b 0d   nMaxFileTitle;.
3360: 0a 09 4c 50 43 53 54 52 20 20 20 20 20 20 20 20  ..LPCSTR        
3370: 6c 70 73 74 72 49 6e 69 74 69 61 6c 44 69 72 3b  lpstrInitialDir;
3380: 0d 0a 09 4c 50 43 53 54 52 20 20 20 20 20 20 20  ...LPCSTR       
3390: 20 6c 70 73 74 72 54 69 74 6c 65 3b 0d 0a 09 44   lpstrTitle;...D
33a0: 57 4f 52 44 20 20 20 20 20 20 20 20 20 46 6c 61  WORD         Fla
33b0: 67 73 3b 0d 0a 09 57 4f 52 44 20 20 20 20 20 20  gs;...WORD      
33c0: 20 20 20 20 6e 46 69 6c 65 4f 66 66 73 65 74 3b      nFileOffset;
33d0: 0d 0a 09 57 4f 52 44 20 20 20 20 20 20 20 20 20  ...WORD         
33e0: 20 6e 46 69 6c 65 45 78 74 65 6e 73 69 6f 6e 3b   nFileExtension;
33f0: 0d 0a 09 4c 50 43 53 54 52 20 20 20 20 20 20 20  ...LPCSTR       
3400: 20 6c 70 73 74 72 44 65 66 45 78 74 3b 0d 0a 09   lpstrDefExt;...
3410: 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 6c 43  DWORD         lC
3420: 75 73 74 44 61 74 61 3b 0d 0a 09 4c 50 4f 46 4e  ustData;...LPOFN
3430: 48 4f 4f 4b 50 52 4f 43 20 6c 70 66 6e 48 6f 6f  HOOKPROC lpfnHoo
3440: 6b 3b 0d 0a 09 4c 50 43 53 54 52 20 20 20 20 20  k;...LPCSTR     
3450: 20 20 20 6c 70 54 65 6d 70 6c 61 74 65 4e 61 6d     lpTemplateNam
3460: 65 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 73 74  e;..    ..    st
3470: 61 74 69 63 20 69 66 20 28 5f 57 49 4e 33 32 5f  atic if (_WIN32_
3480: 57 49 4e 4e 54 20 3e 3d 20 30 78 35 30 30 29 20  WINNT >= 0x500) 
3490: 7b 0d 0a 20 20 20 20 20 20 20 20 76 6f 69 64 20  {..        void 
34a0: 20 20 20 20 20 20 20 20 20 2a 70 76 52 65 73 65           *pvRese
34b0: 72 76 65 64 3b 0d 0a 20 20 20 20 20 20 20 20 44  rved;..        D
34c0: 57 4f 52 44 20 20 20 20 20 20 20 20 20 64 77 52  WORD         dwR
34d0: 65 73 65 72 76 65 64 3b 0d 0a 20 20 20 20 20 20  eserved;..      
34e0: 20 20 44 57 4f 52 44 20 20 20 20 20 20 20 20 20    DWORD         
34f0: 46 6c 61 67 73 45 78 3b 0d 0a 20 20 20 20 7d 20  FlagsEx;..    } 
3500: 20 20 20 0d 0a 7d 0d 0a 61 6c 69 61 73 20 4f 50     ..}..alias OP
3510: 45 4e 46 49 4c 45 4e 41 4d 45 41 2a 20 4c 50 4f  ENFILENAMEA* LPO
3520: 50 45 4e 46 49 4c 45 4e 41 4d 45 41 3b 0d 0a 0d  PENFILENAMEA;...
3530: 0a 73 74 72 75 63 74 20 4f 50 45 4e 46 49 4c 45  .struct OPENFILE
3540: 4e 41 4d 45 57 20 7b 0d 0a 09 44 57 4f 52 44 20  NAMEW {...DWORD 
3550: 20 20 20 20 20 20 20 20 6c 53 74 72 75 63 74 53          lStructS
3560: 69 7a 65 20 3d 20 4f 50 45 4e 46 49 4c 45 4e 41  ize = OPENFILENA
3570: 4d 45 57 2e 73 69 7a 65 6f 66 3b 0d 0a 09 48 57  MEW.sizeof;...HW
3580: 4e 44 20 20 20 20 20 20 20 20 20 20 68 77 6e 64  ND          hwnd
3590: 4f 77 6e 65 72 3b 0d 0a 09 48 49 4e 53 54 41 4e  Owner;...HINSTAN
35a0: 43 45 20 20 20 20 20 68 49 6e 73 74 61 6e 63 65  CE     hInstance
35b0: 3b 0d 0a 09 4c 50 43 57 53 54 52 20 20 20 20 20  ;...LPCWSTR     
35c0: 20 20 6c 70 73 74 72 46 69 6c 74 65 72 3b 0d 0a    lpstrFilter;..
35d0: 09 4c 50 57 53 54 52 20 20 20 20 20 20 20 20 6c  .LPWSTR        l
35e0: 70 73 74 72 43 75 73 74 6f 6d 46 69 6c 74 65 72  pstrCustomFilter
35f0: 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20  ;...DWORD       
3600: 20 20 6e 4d 61 78 43 75 73 74 46 69 6c 74 65 72    nMaxCustFilter
3610: 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20  ;...DWORD       
3620: 20 20 6e 46 69 6c 74 65 72 49 6e 64 65 78 3b 0d    nFilterIndex;.
3630: 0a 09 4c 50 57 53 54 52 20 20 20 20 20 20 20 20  ..LPWSTR        
3640: 6c 70 73 74 72 46 69 6c 65 3b 0d 0a 09 44 57 4f  lpstrFile;...DWO
3650: 52 44 20 20 20 20 20 20 20 20 20 6e 4d 61 78 46  RD         nMaxF
3660: 69 6c 65 3b 0d 0a 09 4c 50 57 53 54 52 20 20 20  ile;...LPWSTR   
3670: 20 20 20 20 20 6c 70 73 74 72 46 69 6c 65 54 69       lpstrFileTi
3680: 74 6c 65 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20  tle;...DWORD    
3690: 20 20 20 20 20 6e 4d 61 78 46 69 6c 65 54 69 74       nMaxFileTit
36a0: 6c 65 3b 0d 0a 09 4c 50 43 57 53 54 52 20 20 20  le;...LPCWSTR   
36b0: 20 20 20 20 6c 70 73 74 72 49 6e 69 74 69 61 6c      lpstrInitial
36c0: 44 69 72 3b 0d 0a 09 4c 50 43 57 53 54 52 20 20  Dir;...LPCWSTR  
36d0: 20 20 20 20 20 6c 70 73 74 72 54 69 74 6c 65 3b       lpstrTitle;
36e0: 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 20  ...DWORD        
36f0: 20 46 6c 61 67 73 3b 0d 0a 09 57 4f 52 44 20 20   Flags;...WORD  
3700: 20 20 20 20 20 20 20 20 6e 46 69 6c 65 4f 66 66          nFileOff
3710: 73 65 74 3b 0d 0a 09 57 4f 52 44 20 20 20 20 20  set;...WORD     
3720: 20 20 20 20 20 6e 46 69 6c 65 45 78 74 65 6e 73       nFileExtens
3730: 69 6f 6e 3b 0d 0a 09 4c 50 43 57 53 54 52 20 20  ion;...LPCWSTR  
3740: 20 20 20 20 20 6c 70 73 74 72 44 65 66 45 78 74       lpstrDefExt
3750: 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20  ;...DWORD       
3760: 20 20 6c 43 75 73 74 44 61 74 61 3b 0d 0a 09 4c    lCustData;...L
3770: 50 4f 46 4e 48 4f 4f 4b 50 52 4f 43 20 6c 70 66  POFNHOOKPROC lpf
3780: 6e 48 6f 6f 6b 3b 0d 0a 09 4c 50 43 57 53 54 52  nHook;...LPCWSTR
3790: 20 20 20 20 20 20 20 6c 70 54 65 6d 70 6c 61 74         lpTemplat
37a0: 65 4e 61 6d 65 3b 0d 0a 20 20 20 20 0d 0a 20 20  eName;..    ..  
37b0: 20 20 73 74 61 74 69 63 20 69 66 20 28 5f 57 49    static if (_WI
37c0: 4e 33 32 5f 57 49 4e 4e 54 20 3e 3d 20 30 78 35  N32_WINNT >= 0x5
37d0: 30 30 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 76  00) {..        v
37e0: 6f 69 64 20 20 20 20 20 20 20 20 20 20 2a 70 76  oid          *pv
37f0: 52 65 73 65 72 76 65 64 3b 0d 0a 20 20 20 20 20  Reserved;..     
3800: 20 20 20 44 57 4f 52 44 20 20 20 20 20 20 20 20     DWORD        
3810: 20 64 77 52 65 73 65 72 76 65 64 3b 0d 0a 20 20   dwReserved;..  
3820: 20 20 20 20 20 20 44 57 4f 52 44 20 20 20 20 20        DWORD     
3830: 20 20 20 20 46 6c 61 67 73 45 78 3b 0d 0a 20 20      FlagsEx;..  
3840: 20 20 7d 20 20 20 20 20 20 20 0d 0a 7d 0d 0a 61    }       ..}..a
3850: 6c 69 61 73 20 4f 50 45 4e 46 49 4c 45 4e 41 4d  lias OPENFILENAM
3860: 45 57 2a 20 4c 50 4f 50 45 4e 46 49 4c 45 4e 41  EW* LPOPENFILENA
3870: 4d 45 57 3b 0d 0a 0d 0a 63 6f 6e 73 74 20 73 69  MEW;....const si
3880: 7a 65 5f 74 20 4f 50 45 4e 46 49 4c 45 4e 41 4d  ze_t OPENFILENAM
3890: 45 5f 53 49 5a 45 5f 56 45 52 53 49 4f 4e 5f 34  E_SIZE_VERSION_4
38a0: 30 30 20 3d 20 37 36 3b 0d 0a 0d 0a 73 74 72 75  00 = 76;....stru
38b0: 63 74 20 4f 46 4e 4f 54 49 46 59 41 20 7b 0d 0a  ct OFNOTIFYA {..
38c0: 09 4e 4d 48 44 52 20 20 20 20 20 20 20 20 20 20  .NMHDR          
38d0: 20 68 64 72 3b 0d 0a 09 4c 50 4f 50 45 4e 46 49   hdr;...LPOPENFI
38e0: 4c 45 4e 41 4d 45 41 20 6c 70 4f 46 4e 3b 0d 0a  LENAMEA lpOFN;..
38f0: 09 4c 50 53 54 52 20 20 20 20 20 20 20 20 20 20  .LPSTR          
3900: 20 70 73 7a 46 69 6c 65 3b 0d 0a 7d 0d 0a 61 6c   pszFile;..}..al
3910: 69 61 73 20 4f 46 4e 4f 54 49 46 59 41 2a 20 4c  ias OFNOTIFYA* L
3920: 50 4f 46 4e 4f 54 49 46 59 41 3b 0d 0a 0d 0a 73  POFNOTIFYA;....s
3930: 74 72 75 63 74 20 4f 46 4e 4f 54 49 46 59 57 20  truct OFNOTIFYW 
3940: 7b 0d 0a 09 4e 4d 48 44 52 20 20 20 20 20 20 20  {...NMHDR       
3950: 20 20 20 20 68 64 72 3b 0d 0a 09 4c 50 4f 50 45      hdr;...LPOPE
3960: 4e 46 49 4c 45 4e 41 4d 45 57 20 6c 70 4f 46 4e  NFILENAMEW lpOFN
3970: 3b 0d 0a 09 4c 50 57 53 54 52 20 20 20 20 20 20  ;...LPWSTR      
3980: 20 20 20 20 70 73 7a 46 69 6c 65 3b 0d 0a 7d 0d      pszFile;..}.
3990: 0a 61 6c 69 61 73 20 4f 46 4e 4f 54 49 46 59 57  .alias OFNOTIFYW
39a0: 2a 20 4c 50 4f 46 4e 4f 54 49 46 59 57 3b 0d 0a  * LPOFNOTIFYW;..
39b0: 0d 0a 73 74 72 75 63 74 20 50 41 47 45 53 45 54  ..struct PAGESET
39c0: 55 50 44 4c 47 41 20 7b 0d 0a 09 44 57 4f 52 44  UPDLGA {...DWORD
39d0: 20 20 20 20 20 20 20 20 20 20 20 6c 53 74 72 75             lStru
39e0: 63 74 53 69 7a 65 20 3d 20 50 41 47 45 53 45 54  ctSize = PAGESET
39f0: 55 50 44 4c 47 41 2e 73 69 7a 65 6f 66 3b 0d 0a  UPDLGA.sizeof;..
3a00: 09 48 57 4e 44 20 20 20 20 20 20 20 20 20 20 20  .HWND           
3a10: 20 68 77 6e 64 4f 77 6e 65 72 3b 0d 0a 09 48 47   hwndOwner;...HG
3a20: 4c 4f 42 41 4c 20 20 20 20 20 20 20 20 20 68 44  LOBAL         hD
3a30: 65 76 4d 6f 64 65 3b 0d 0a 09 48 47 4c 4f 42 41  evMode;...HGLOBA
3a40: 4c 20 20 20 20 20 20 20 20 20 68 44 65 76 4e 61  L         hDevNa
3a50: 6d 65 73 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20  mes;...DWORD    
3a60: 20 20 20 20 20 20 20 46 6c 61 67 73 3b 0d 0a 09         Flags;...
3a70: 50 4f 49 4e 54 20 20 20 20 20 20 20 20 20 20 20  POINT           
3a80: 70 74 50 61 70 65 72 53 69 7a 65 3b 0d 0a 09 52  ptPaperSize;...R
3a90: 45 43 54 20 20 20 20 20 20 20 20 20 20 20 20 72  ECT            r
3aa0: 74 4d 69 6e 4d 61 72 67 69 6e 3b 0d 0a 09 52 45  tMinMargin;...RE
3ab0: 43 54 20 20 20 20 20 20 20 20 20 20 20 20 72 74  CT            rt
3ac0: 4d 61 72 67 69 6e 3b 0d 0a 09 48 49 4e 53 54 41  Margin;...HINSTA
3ad0: 4e 43 45 20 20 20 20 20 20 20 68 49 6e 73 74 61  NCE       hInsta
3ae0: 6e 63 65 3b 0d 0a 09 4c 50 41 52 41 4d 20 20 20  nce;...LPARAM   
3af0: 20 20 20 20 20 20 20 6c 43 75 73 74 44 61 74 61         lCustData
3b00: 3b 0d 0a 09 4c 50 50 41 47 45 53 45 54 55 50 48  ;...LPPAGESETUPH
3b10: 4f 4f 4b 20 6c 70 66 6e 50 61 67 65 53 65 74 75  OOK lpfnPageSetu
3b20: 70 48 6f 6f 6b 3b 0d 0a 09 4c 50 50 41 47 45 50  pHook;...LPPAGEP
3b30: 41 49 4e 54 48 4f 4f 4b 20 6c 70 66 6e 50 61 67  AINTHOOK lpfnPag
3b40: 65 50 61 69 6e 74 48 6f 6f 6b 3b 0d 0a 09 4c 50  ePaintHook;...LP
3b50: 43 53 54 52 20 20 20 20 20 20 20 20 20 20 6c 70  CSTR          lp
3b60: 50 61 67 65 53 65 74 75 70 54 65 6d 70 6c 61 74  PageSetupTemplat
3b70: 65 4e 61 6d 65 3b 0d 0a 09 48 47 4c 4f 42 41 4c  eName;...HGLOBAL
3b80: 20 20 20 20 20 20 20 20 20 68 50 61 67 65 53 65           hPageSe
3b90: 74 75 70 54 65 6d 70 6c 61 74 65 3b 0d 0a 7d 0d  tupTemplate;..}.
3ba0: 0a 61 6c 69 61 73 20 50 41 47 45 53 45 54 55 50  .alias PAGESETUP
3bb0: 44 4c 47 41 2a 20 4c 50 50 41 47 45 53 45 54 55  DLGA* LPPAGESETU
3bc0: 50 44 4c 47 41 3b 0d 0a 0d 0a 73 74 72 75 63 74  PDLGA;....struct
3bd0: 20 50 41 47 45 53 45 54 55 50 44 4c 47 57 20 7b   PAGESETUPDLGW {
3be0: 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 20  ...DWORD        
3bf0: 20 20 20 6c 53 74 72 75 63 74 53 69 7a 65 20 3d     lStructSize =
3c00: 20 50 41 47 45 53 45 54 55 50 44 4c 47 57 2e 73   PAGESETUPDLGW.s
3c10: 69 7a 65 6f 66 3b 0d 0a 09 48 57 4e 44 20 20 20  izeof;...HWND   
3c20: 20 20 20 20 20 20 20 20 20 68 77 6e 64 4f 77 6e           hwndOwn
3c30: 65 72 3b 0d 0a 09 48 47 4c 4f 42 41 4c 20 20 20  er;...HGLOBAL   
3c40: 20 20 20 20 20 20 68 44 65 76 4d 6f 64 65 3b 0d        hDevMode;.
3c50: 0a 09 48 47 4c 4f 42 41 4c 20 20 20 20 20 20 20  ..HGLOBAL       
3c60: 20 20 68 44 65 76 4e 61 6d 65 73 3b 0d 0a 09 44    hDevNames;...D
3c70: 57 4f 52 44 20 20 20 20 20 20 20 20 20 20 20 46  WORD           F
3c80: 6c 61 67 73 3b 0d 0a 09 50 4f 49 4e 54 20 20 20  lags;...POINT   
3c90: 20 20 20 20 20 20 20 20 70 74 50 61 70 65 72 53          ptPaperS
3ca0: 69 7a 65 3b 0d 0a 09 52 45 43 54 20 20 20 20 20  ize;...RECT     
3cb0: 20 20 20 20 20 20 20 72 74 4d 69 6e 4d 61 72 67         rtMinMarg
3cc0: 69 6e 3b 0d 0a 09 52 45 43 54 20 20 20 20 20 20  in;...RECT      
3cd0: 20 20 20 20 20 20 72 74 4d 61 72 67 69 6e 3b 0d        rtMargin;.
3ce0: 0a 09 48 49 4e 53 54 41 4e 43 45 20 20 20 20 20  ..HINSTANCE     
3cf0: 20 20 68 49 6e 73 74 61 6e 63 65 3b 0d 0a 09 4c    hInstance;...L
3d00: 50 41 52 41 4d 20 20 20 20 20 20 20 20 20 20 6c  PARAM          l
3d10: 43 75 73 74 44 61 74 61 3b 0d 0a 09 4c 50 50 41  CustData;...LPPA
3d20: 47 45 53 45 54 55 50 48 4f 4f 4b 20 6c 70 66 6e  GESETUPHOOK lpfn
3d30: 50 61 67 65 53 65 74 75 70 48 6f 6f 6b 3b 0d 0a  PageSetupHook;..
3d40: 09 4c 50 50 41 47 45 50 41 49 4e 54 48 4f 4f 4b  .LPPAGEPAINTHOOK
3d50: 20 6c 70 66 6e 50 61 67 65 50 61 69 6e 74 48 6f   lpfnPagePaintHo
3d60: 6f 6b 3b 0d 0a 09 4c 50 43 57 53 54 52 20 20 20  ok;...LPCWSTR   
3d70: 20 20 20 20 20 20 6c 70 50 61 67 65 53 65 74 75        lpPageSetu
3d80: 70 54 65 6d 70 6c 61 74 65 4e 61 6d 65 3b 0d 0a  pTemplateName;..
3d90: 09 48 47 4c 4f 42 41 4c 20 20 20 20 20 20 20 20  .HGLOBAL        
3da0: 20 68 50 61 67 65 53 65 74 75 70 54 65 6d 70 6c   hPageSetupTempl
3db0: 61 74 65 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 50  ate;..}..alias P
3dc0: 41 47 45 53 45 54 55 50 44 4c 47 57 2a 20 4c 50  AGESETUPDLGW* LP
3dd0: 50 41 47 45 53 45 54 55 50 44 4c 47 57 3b 0d 0a  PAGESETUPDLGW;..
3de0: 0d 0a 73 74 72 75 63 74 20 50 52 49 4e 54 44 4c  ..struct PRINTDL
3df0: 47 41 20 7b 0d 0a 09 44 57 4f 52 44 20 20 20 20  GA {...DWORD    
3e00: 20 20 20 20 20 20 20 6c 53 74 72 75 63 74 53 69         lStructSi
3e10: 7a 65 20 3d 20 50 52 49 4e 54 44 4c 47 41 2e 73  ze = PRINTDLGA.s
3e20: 69 7a 65 6f 66 3b 0d 0a 09 48 57 4e 44 20 20 20  izeof;...HWND   
3e30: 20 20 20 20 20 20 20 20 20 68 77 6e 64 4f 77 6e           hwndOwn
3e40: 65 72 3b 0d 0a 09 48 41 4e 44 4c 45 20 20 20 20  er;...HANDLE    
3e50: 20 20 20 20 20 20 68 44 65 76 4d 6f 64 65 3b 0d        hDevMode;.
3e60: 0a 09 48 41 4e 44 4c 45 20 20 20 20 20 20 20 20  ..HANDLE        
3e70: 20 20 68 44 65 76 4e 61 6d 65 73 3b 0d 0a 09 48    hDevNames;...H
3e80: 44 43 20 20 20 20 20 20 20 20 20 20 20 20 20 68  DC             h
3e90: 44 43 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20  DC;...DWORD     
3ea0: 20 20 20 20 20 20 46 6c 61 67 73 3b 0d 0a 09 57        Flags;...W
3eb0: 4f 52 44 20 20 20 20 20 20 20 20 20 20 20 20 6e  ORD            n
3ec0: 46 72 6f 6d 50 61 67 65 3b 0d 0a 09 57 4f 52 44  FromPage;...WORD
3ed0: 20 20 20 20 20 20 20 20 20 20 20 20 6e 54 6f 50              nToP
3ee0: 61 67 65 3b 0d 0a 09 57 4f 52 44 20 20 20 20 20  age;...WORD     
3ef0: 20 20 20 20 20 20 20 6e 4d 69 6e 50 61 67 65 3b         nMinPage;
3f00: 0d 0a 09 57 4f 52 44 20 20 20 20 20 20 20 20 20  ...WORD         
3f10: 20 20 20 6e 4d 61 78 50 61 67 65 3b 0d 0a 09 57     nMaxPage;...W
3f20: 4f 52 44 20 20 20 20 20 20 20 20 20 20 20 20 6e  ORD            n
3f30: 43 6f 70 69 65 73 3b 0d 0a 09 48 49 4e 53 54 41  Copies;...HINSTA
3f40: 4e 43 45 20 20 20 20 20 20 20 68 49 6e 73 74 61  NCE       hInsta
3f50: 6e 63 65 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20  nce;...DWORD    
3f60: 20 20 20 20 20 20 20 6c 43 75 73 74 44 61 74 61         lCustData
3f70: 3b 0d 0a 09 4c 50 50 52 49 4e 54 48 4f 4f 4b 50  ;...LPPRINTHOOKP
3f80: 52 4f 43 20 6c 70 66 6e 50 72 69 6e 74 48 6f 6f  ROC lpfnPrintHoo
3f90: 6b 3b 0d 0a 09 4c 50 53 45 54 55 50 48 4f 4f 4b  k;...LPSETUPHOOK
3fa0: 50 52 4f 43 20 6c 70 66 6e 53 65 74 75 70 48 6f  PROC lpfnSetupHo
3fb0: 6f 6b 3b 0d 0a 09 4c 50 43 53 54 52 20 20 20 20  ok;...LPCSTR    
3fc0: 20 20 20 20 20 20 6c 70 50 72 69 6e 74 54 65 6d        lpPrintTem
3fd0: 70 6c 61 74 65 4e 61 6d 65 3b 0d 0a 09 4c 50 43  plateName;...LPC
3fe0: 53 54 52 20 20 20 20 20 20 20 20 20 20 6c 70 53  STR          lpS
3ff0: 65 74 75 70 54 65 6d 70 6c 61 74 65 4e 61 6d 65  etupTemplateName
4000: 3b 0d 0a 09 48 41 4e 44 4c 45 20 20 20 20 20 20  ;...HANDLE      
4010: 20 20 20 20 68 50 72 69 6e 74 54 65 6d 70 6c 61      hPrintTempla
4020: 74 65 3b 0d 0a 09 48 41 4e 44 4c 45 20 20 20 20  te;...HANDLE    
4030: 20 20 20 20 20 20 68 53 65 74 75 70 54 65 6d 70        hSetupTemp
4040: 6c 61 74 65 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20  late;..}..alias 
4050: 50 52 49 4e 54 44 4c 47 41 2a 20 4c 50 50 52 49  PRINTDLGA* LPPRI
4060: 4e 54 44 4c 47 41 3b 0d 0a 0d 0a 73 74 72 75 63  NTDLGA;....struc
4070: 74 20 50 52 49 4e 54 44 4c 47 57 20 7b 0d 0a 09  t PRINTDLGW {...
4080: 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 20 20  DWORD           
4090: 6c 53 74 72 75 63 74 53 69 7a 65 20 3d 20 50 52  lStructSize = PR
40a0: 49 4e 54 44 4c 47 57 2e 73 69 7a 65 6f 66 3b 0d  INTDLGW.sizeof;.
40b0: 0a 09 48 57 4e 44 20 20 20 20 20 20 20 20 20 20  ..HWND          
40c0: 20 20 68 77 6e 64 4f 77 6e 65 72 3b 0d 0a 09 48    hwndOwner;...H
40d0: 41 4e 44 4c 45 20 20 20 20 20 20 20 20 20 20 68  ANDLE          h
40e0: 44 65 76 4d 6f 64 65 3b 0d 0a 09 48 41 4e 44 4c  DevMode;...HANDL
40f0: 45 20 20 20 20 20 20 20 20 20 20 68 44 65 76 4e  E          hDevN
4100: 61 6d 65 73 3b 0d 0a 09 48 44 43 20 20 20 20 20  ames;...HDC     
4110: 20 20 20 20 20 20 20 20 68 44 43 3b 0d 0a 09 44          hDC;...D
4120: 57 4f 52 44 20 20 20 20 20 20 20 20 20 20 20 46  WORD           F
4130: 6c 61 67 73 3b 0d 0a 09 57 4f 52 44 20 20 20 20  lags;...WORD    
4140: 20 20 20 20 20 20 20 20 6e 46 72 6f 6d 50 61 67          nFromPag
4150: 65 3b 0d 0a 09 57 4f 52 44 20 20 20 20 20 20 20  e;...WORD       
4160: 20 20 20 20 20 6e 54 6f 50 61 67 65 3b 0d 0a 09       nToPage;...
4170: 57 4f 52 44 20 20 20 20 20 20 20 20 20 20 20 20  WORD            
4180: 6e 4d 69 6e 50 61 67 65 3b 0d 0a 09 57 4f 52 44  nMinPage;...WORD
4190: 20 20 20 20 20 20 20 20 20 20 20 20 6e 4d 61 78              nMax
41a0: 50 61 67 65 3b 0d 0a 09 57 4f 52 44 20 20 20 20  Page;...WORD    
41b0: 20 20 20 20 20 20 20 20 6e 43 6f 70 69 65 73 3b          nCopies;
41c0: 0d 0a 09 48 49 4e 53 54 41 4e 43 45 20 20 20 20  ...HINSTANCE    
41d0: 20 20 20 68 49 6e 73 74 61 6e 63 65 3b 0d 0a 09     hInstance;...
41e0: 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 20 20  DWORD           
41f0: 6c 43 75 73 74 44 61 74 61 3b 0d 0a 09 4c 50 50  lCustData;...LPP
4200: 52 49 4e 54 48 4f 4f 4b 50 52 4f 43 20 6c 70 66  RINTHOOKPROC lpf
4210: 6e 50 72 69 6e 74 48 6f 6f 6b 3b 0d 0a 09 4c 50  nPrintHook;...LP
4220: 53 45 54 55 50 48 4f 4f 4b 50 52 4f 43 20 6c 70  SETUPHOOKPROC lp
4230: 66 6e 53 65 74 75 70 48 6f 6f 6b 3b 0d 0a 09 4c  fnSetupHook;...L
4240: 50 43 57 53 54 52 20 20 20 20 20 20 20 20 20 6c  PCWSTR         l
4250: 70 50 72 69 6e 74 54 65 6d 70 6c 61 74 65 4e 61  pPrintTemplateNa
4260: 6d 65 3b 0d 0a 09 4c 50 43 57 53 54 52 20 20 20  me;...LPCWSTR   
4270: 20 20 20 20 20 20 6c 70 53 65 74 75 70 54 65 6d        lpSetupTem
4280: 70 6c 61 74 65 4e 61 6d 65 3b 0d 0a 09 48 41 4e  plateName;...HAN
4290: 44 4c 45 20 20 20 20 20 20 20 20 20 20 68 50 72  DLE          hPr
42a0: 69 6e 74 54 65 6d 70 6c 61 74 65 3b 0d 0a 09 48  intTemplate;...H
42b0: 41 4e 44 4c 45 20 20 20 20 20 20 20 20 20 20 68  ANDLE          h
42c0: 53 65 74 75 70 54 65 6d 70 6c 61 74 65 3b 0d 0a  SetupTemplate;..
42d0: 7d 0d 0a 61 6c 69 61 73 20 50 52 49 4e 54 44 4c  }..alias PRINTDL
42e0: 47 57 2a 20 4c 50 50 52 49 4e 54 44 4c 47 57 3b  GW* LPPRINTDLGW;
42f0: 0d 0a 0d 0a 73 74 61 74 69 63 20 69 66 20 28 5f  ....static if (_
4300: 57 49 4e 33 32 5f 57 49 4e 4e 54 20 3e 3d 20 30  WIN32_WINNT >= 0
4310: 78 35 30 30 29 20 7b 0d 0a 09 69 6d 70 6f 72 74  x500) {...import
4320: 20 77 69 6e 33 32 2e 75 6e 6b 6e 77 6e 3b 20 2f   win32.unknwn; /
4330: 2f 20 66 6f 72 20 4c 50 55 4e 4b 4e 4f 57 4e 0d  / for LPUNKNOWN.
4340: 0a 09 69 6d 70 6f 72 74 20 77 69 6e 33 32 2e 70  ..import win32.p
4350: 72 73 68 74 3b 20 20 2f 2f 20 66 6f 72 20 48 50  rsht;  // for HP
4360: 52 4f 50 53 48 45 45 54 50 41 47 45 0d 0a 0d 0a  ROPSHEETPAGE....
4370: 09 73 74 72 75 63 74 20 50 52 49 4e 54 50 41 47  .struct PRINTPAG
4380: 45 52 41 4e 47 45 20 7b 0d 0a 09 09 44 57 4f 52  ERANGE {....DWOR
4390: 44 20 20 6e 46 72 6f 6d 50 61 67 65 3b 0d 0a 09  D  nFromPage;...
43a0: 09 44 57 4f 52 44 20 20 6e 54 6f 50 61 67 65 3b  .DWORD  nToPage;
43b0: 0d 0a 09 7d 0d 0a 09 61 6c 69 61 73 20 50 52 49  ...}...alias PRI
43c0: 4e 54 50 41 47 45 52 41 4e 47 45 2a 20 4c 50 50  NTPAGERANGE* LPP
43d0: 52 49 4e 54 50 41 47 45 52 41 4e 47 45 3b 0d 0a  RINTPAGERANGE;..
43e0: 0d 0a 09 73 74 72 75 63 74 20 50 52 49 4e 54 44  ...struct PRINTD
43f0: 4c 47 45 58 41 20 7b 0d 0a 09 09 44 57 4f 52 44  LGEXA {....DWORD
4400: 20 20 20 20 20 20 20 20 20 20 20 20 6c 53 74 72              lStr
4410: 75 63 74 53 69 7a 65 20 3d 20 50 52 49 4e 54 44  uctSize = PRINTD
4420: 4c 47 45 58 41 2e 73 69 7a 65 6f 66 3b 0d 0a 09  LGEXA.sizeof;...
4430: 09 48 57 4e 44 20 20 20 20 20 20 20 20 20 20 20  .HWND           
4440: 20 20 68 77 6e 64 4f 77 6e 65 72 3b 0d 0a 09 09    hwndOwner;....
4450: 48 47 4c 4f 42 41 4c 20 20 20 20 20 20 20 20 20  HGLOBAL         
4460: 20 68 44 65 76 4d 6f 64 65 3b 0d 0a 09 09 48 47   hDevMode;....HG
4470: 4c 4f 42 41 4c 20 20 20 20 20 20 20 20 20 20 68  LOBAL          h
4480: 44 65 76 4e 61 6d 65 73 3b 0d 0a 09 09 48 44 43  DevNames;....HDC
4490: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 44                hD
44a0: 43 3b 0d 0a 09 09 44 57 4f 52 44 20 20 20 20 20  C;....DWORD     
44b0: 20 20 20 20 20 20 20 46 6c 61 67 73 3b 0d 0a 09         Flags;...
44c0: 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 20  .DWORD          
44d0: 20 20 46 6c 61 67 73 32 3b 0d 0a 09 09 44 57 4f    Flags2;....DWO
44e0: 52 44 20 20 20 20 20 20 20 20 20 20 20 20 45 78  RD            Ex
44f0: 63 6c 75 73 69 6f 6e 46 6c 61 67 73 3b 0d 0a 09  clusionFlags;...
4500: 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 20  .DWORD          
4510: 20 20 6e 50 61 67 65 52 61 6e 67 65 73 3b 0d 0a    nPageRanges;..
4520: 09 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20  ..DWORD         
4530: 20 20 20 6e 4d 61 78 50 61 67 65 52 61 6e 67 65     nMaxPageRange
4540: 73 3b 0d 0a 09 09 4c 50 50 52 49 4e 54 50 41 47  s;....LPPRINTPAG
4550: 45 52 41 4e 47 45 20 6c 70 50 61 67 65 52 61 6e  ERANGE lpPageRan
4560: 67 65 73 3b 0d 0a 09 09 44 57 4f 52 44 20 20 20  ges;....DWORD   
4570: 20 20 20 20 20 20 20 20 20 6e 4d 69 6e 50 61 67           nMinPag
4580: 65 3b 0d 0a 09 09 44 57 4f 52 44 20 20 20 20 20  e;....DWORD     
4590: 20 20 20 20 20 20 20 6e 4d 61 78 50 61 67 65 3b         nMaxPage;
45a0: 0d 0a 09 09 44 57 4f 52 44 20 20 20 20 20 20 20  ....DWORD       
45b0: 20 20 20 20 20 6e 43 6f 70 69 65 73 3b 0d 0a 09       nCopies;...
45c0: 09 48 49 4e 53 54 41 4e 43 45 20 20 20 20 20 20  .HINSTANCE      
45d0: 20 20 68 49 6e 73 74 61 6e 63 65 3b 0d 0a 09 09    hInstance;....
45e0: 4c 50 43 53 54 52 20 20 20 20 20 20 20 20 20 20  LPCSTR          
45f0: 20 6c 70 50 72 69 6e 74 54 65 6d 70 6c 61 74 65   lpPrintTemplate
4600: 4e 61 6d 65 3b 0d 0a 09 09 4c 50 55 4e 4b 4e 4f  Name;....LPUNKNO
4610: 57 4e 20 20 20 20 20 20 20 20 6c 70 43 61 6c 6c  WN        lpCall
4620: 62 61 63 6b 3b 0d 0a 09 09 44 57 4f 52 44 20 20  back;....DWORD  
4630: 20 20 20 20 20 20 20 20 20 20 6e 50 72 6f 70 65            nPrope
4640: 72 74 79 50 61 67 65 73 3b 0d 0a 09 09 48 50 52  rtyPages;....HPR
4650: 4f 50 53 48 45 45 54 50 41 47 45 2a 20 20 6c 70  OPSHEETPAGE*  lp
4660: 68 50 72 6f 70 65 72 74 79 50 61 67 65 73 3b 0d  hPropertyPages;.
4670: 0a 09 09 44 57 4f 52 44 20 20 20 20 20 20 20 20  ...DWORD        
4680: 20 20 20 20 6e 53 74 61 72 74 50 61 67 65 3b 0d      nStartPage;.
4690: 0a 09 09 44 57 4f 52 44 20 20 20 20 20 20 20 20  ...DWORD        
46a0: 20 20 20 20 64 77 52 65 73 75 6c 74 41 63 74 69      dwResultActi
46b0: 6f 6e 3b 0d 0a 09 7d 0d 0a 09 61 6c 69 61 73 20  on;...}...alias 
46c0: 50 52 49 4e 54 44 4c 47 45 58 41 2a 20 4c 50 50  PRINTDLGEXA* LPP
46d0: 52 49 4e 54 44 4c 47 45 58 41 3b 0d 0a 0d 0a 09  RINTDLGEXA;.....
46e0: 73 74 72 75 63 74 20 50 52 49 4e 54 44 4c 47 45  struct PRINTDLGE
46f0: 58 57 20 7b 0d 0a 09 09 44 57 4f 52 44 20 20 20  XW {....DWORD   
4700: 20 20 20 20 20 20 20 20 20 6c 53 74 72 75 63 74           lStruct
4710: 53 69 7a 65 20 3d 20 50 52 49 4e 54 44 4c 47 45  Size = PRINTDLGE
4720: 58 57 2e 73 69 7a 65 6f 66 3b 0d 0a 09 09 48 57  XW.sizeof;....HW
4730: 4e 44 20 20 20 20 20 20 20 20 20 20 20 20 20 68  ND             h
4740: 77 6e 64 4f 77 6e 65 72 3b 0d 0a 09 09 48 47 4c  wndOwner;....HGL
4750: 4f 42 41 4c 20 20 20 20 20 20 20 20 20 20 68 44  OBAL          hD
4760: 65 76 4d 6f 64 65 3b 0d 0a 09 09 48 47 4c 4f 42  evMode;....HGLOB
4770: 41 4c 20 20 20 20 20 20 20 20 20 20 68 44 65 76  AL          hDev
4780: 4e 61 6d 65 73 3b 0d 0a 09 09 48 44 43 20 20 20  Names;....HDC   
4790: 20 20 20 20 20 20 20 20 20 20 20 68 44 43 3b 0d             hDC;.
47a0: 0a 09 09 44 57 4f 52 44 20 20 20 20 20 20 20 20  ...DWORD        
47b0: 20 20 20 20 46 6c 61 67 73 3b 0d 0a 09 09 44 57      Flags;....DW
47c0: 4f 52 44 20 20 20 20 20 20 20 20 20 20 20 20 46  ORD            F
47d0: 6c 61 67 73 32 3b 0d 0a 09 09 44 57 4f 52 44 20  lags2;....DWORD 
47e0: 20 20 20 20 20 20 20 20 20 20 20 45 78 63 6c 75             Exclu
47f0: 73 69 6f 6e 46 6c 61 67 73 3b 0d 0a 09 09 44 57  sionFlags;....DW
4800: 4f 52 44 20 20 20 20 20 20 20 20 20 20 20 20 6e  ORD            n
4810: 50 61 67 65 52 61 6e 67 65 73 3b 0d 0a 09 09 44  PageRanges;....D
4820: 57 4f 52 44 20 20 20 20 20 20 20 20 20 20 20 20  WORD            
4830: 6e 4d 61 78 50 61 67 65 52 61 6e 67 65 73 3b 0d  nMaxPageRanges;.
4840: 0a 09 09 4c 50 50 52 49 4e 54 50 41 47 45 52 41  ...LPPRINTPAGERA
4850: 4e 47 45 20 6c 70 50 61 67 65 52 61 6e 67 65 73  NGE lpPageRanges
4860: 3b 0d 0a 09 09 44 57 4f 52 44 20 20 20 20 20 20  ;....DWORD      
4870: 20 20 20 20 20 20 6e 4d 69 6e 50 61 67 65 3b 0d        nMinPage;.
4880: 0a 09 09 44 57 4f 52 44 20 20 20 20 20 20 20 20  ...DWORD        
4890: 20 20 20 20 6e 4d 61 78 50 61 67 65 3b 0d 0a 09      nMaxPage;...
48a0: 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 20  .DWORD          
48b0: 20 20 6e 43 6f 70 69 65 73 3b 0d 0a 09 09 48 49    nCopies;....HI
48c0: 4e 53 54 41 4e 43 45 20 20 20 20 20 20 20 20 68  NSTANCE        h
48d0: 49 6e 73 74 61 6e 63 65 3b 0d 0a 09 09 4c 50 43  Instance;....LPC
48e0: 57 53 54 52 20 20 20 20 20 20 20 20 20 20 6c 70  WSTR          lp
48f0: 50 72 69 6e 74 54 65 6d 70 6c 61 74 65 4e 61 6d  PrintTemplateNam
4900: 65 3b 0d 0a 09 09 4c 50 55 4e 4b 4e 4f 57 4e 20  e;....LPUNKNOWN 
4910: 20 20 20 20 20 20 20 6c 70 43 61 6c 6c 62 61 63         lpCallbac
4920: 6b 3b 0d 0a 09 09 44 57 4f 52 44 20 20 20 20 20  k;....DWORD     
4930: 20 20 20 20 20 20 20 6e 50 72 6f 70 65 72 74 79         nProperty
4940: 50 61 67 65 73 3b 0d 0a 09 09 48 50 52 4f 50 53  Pages;....HPROPS
4950: 48 45 45 54 50 41 47 45 2a 20 20 6c 70 68 50 72  HEETPAGE*  lphPr
4960: 6f 70 65 72 74 79 50 61 67 65 73 3b 0d 0a 09 09  opertyPages;....
4970: 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 20 20  DWORD           
4980: 20 6e 53 74 61 72 74 50 61 67 65 3b 0d 0a 09 09   nStartPage;....
4990: 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 20 20  DWORD           
49a0: 20 64 77 52 65 73 75 6c 74 41 63 74 69 6f 6e 3b   dwResultAction;
49b0: 0d 0a 09 7d 0d 0a 09 61 6c 69 61 73 20 50 52 49  ...}...alias PRI
49c0: 4e 54 44 4c 47 45 58 57 2a 20 4c 50 50 52 49 4e  NTDLGEXW* LPPRIN
49d0: 54 44 4c 47 45 58 57 3b 0d 0a 0d 0a 7d 20 2f 2f  TDLGEXW;....} //
49e0: 20 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 20 3e 3d   _WIN32_WINNT >=
49f0: 20 30 78 35 30 30 0d 0a 0d 0a 65 78 74 65 72 6e   0x500....extern
4a00: 20 28 57 69 6e 64 6f 77 73 29 20 7b 0d 0a 09 42   (Windows) {...B
4a10: 4f 4f 4c 20 43 68 6f 6f 73 65 43 6f 6c 6f 72 41  OOL ChooseColorA
4a20: 28 4c 50 43 48 4f 4f 53 45 43 4f 4c 4f 52 41 29  (LPCHOOSECOLORA)
4a30: 3b 0d 0a 09 42 4f 4f 4c 20 43 68 6f 6f 73 65 43  ;...BOOL ChooseC
4a40: 6f 6c 6f 72 57 28 4c 50 43 48 4f 4f 53 45 43 4f  olorW(LPCHOOSECO
4a50: 4c 4f 52 57 29 3b 0d 0a 09 42 4f 4f 4c 20 43 68  LORW);...BOOL Ch
4a60: 6f 6f 73 65 46 6f 6e 74 41 28 4c 50 43 48 4f 4f  ooseFontA(LPCHOO
4a70: 53 45 46 4f 4e 54 41 29 3b 0d 0a 09 42 4f 4f 4c  SEFONTA);...BOOL
4a80: 20 43 68 6f 6f 73 65 46 6f 6e 74 57 28 4c 50 43   ChooseFontW(LPC
4a90: 48 4f 4f 53 45 46 4f 4e 54 57 29 3b 0d 0a 09 44  HOOSEFONTW);...D
4aa0: 57 4f 52 44 20 43 6f 6d 6d 44 6c 67 45 78 74 65  WORD CommDlgExte
4ab0: 6e 64 65 64 45 72 72 6f 72 28 29 3b 0d 0a 09 48  ndedError();...H
4ac0: 57 4e 44 20 46 69 6e 64 54 65 78 74 41 28 4c 50  WND FindTextA(LP
4ad0: 46 49 4e 44 52 45 50 4c 41 43 45 41 29 3b 0d 0a  FINDREPLACEA);..
4ae0: 09 48 57 4e 44 20 46 69 6e 64 54 65 78 74 57 28  .HWND FindTextW(
4af0: 4c 50 46 49 4e 44 52 45 50 4c 41 43 45 57 29 3b  LPFINDREPLACEW);
4b00: 0d 0a 09 73 68 6f 72 74 20 47 65 74 46 69 6c 65  ...short GetFile
4b10: 54 69 74 6c 65 41 28 4c 50 43 53 54 52 2c 20 4c  TitleA(LPCSTR, L
4b20: 50 53 54 52 2c 20 57 4f 52 44 29 3b 0d 0a 09 73  PSTR, WORD);...s
4b30: 68 6f 72 74 20 47 65 74 46 69 6c 65 54 69 74 6c  hort GetFileTitl
4b40: 65 57 28 4c 50 43 57 53 54 52 2c 20 4c 50 57 53  eW(LPCWSTR, LPWS
4b50: 54 52 2c 20 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f  TR, WORD);...BOO
4b60: 4c 20 47 65 74 4f 70 65 6e 46 69 6c 65 4e 61 6d  L GetOpenFileNam
4b70: 65 41 28 4c 50 4f 50 45 4e 46 49 4c 45 4e 41 4d  eA(LPOPENFILENAM
4b80: 45 41 29 3b 0d 0a 09 42 4f 4f 4c 20 47 65 74 4f  EA);...BOOL GetO
4b90: 70 65 6e 46 69 6c 65 4e 61 6d 65 57 28 4c 50 4f  penFileNameW(LPO
4ba0: 50 45 4e 46 49 4c 45 4e 41 4d 45 57 29 3b 0d 0a  PENFILENAMEW);..
4bb0: 09 42 4f 4f 4c 20 47 65 74 53 61 76 65 46 69 6c  .BOOL GetSaveFil
4bc0: 65 4e 61 6d 65 41 28 4c 50 4f 50 45 4e 46 49 4c  eNameA(LPOPENFIL
4bd0: 45 4e 41 4d 45 41 29 3b 0d 0a 09 42 4f 4f 4c 20  ENAMEA);...BOOL 
4be0: 47 65 74 53 61 76 65 46 69 6c 65 4e 61 6d 65 57  GetSaveFileNameW
4bf0: 28 4c 50 4f 50 45 4e 46 49 4c 45 4e 41 4d 45 57  (LPOPENFILENAMEW
4c00: 29 3b 0d 0a 09 42 4f 4f 4c 20 50 61 67 65 53 65  );...BOOL PageSe
4c10: 74 75 70 44 6c 67 41 28 4c 50 50 41 47 45 53 45  tupDlgA(LPPAGESE
4c20: 54 55 50 44 4c 47 41 29 3b 0d 0a 09 42 4f 4f 4c  TUPDLGA);...BOOL
4c30: 20 50 61 67 65 53 65 74 75 70 44 6c 67 57 28 4c   PageSetupDlgW(L
4c40: 50 50 41 47 45 53 45 54 55 50 44 4c 47 57 29 3b  PPAGESETUPDLGW);
4c50: 0d 0a 09 42 4f 4f 4c 20 50 72 69 6e 74 44 6c 67  ...BOOL PrintDlg
4c60: 41 28 4c 50 50 52 49 4e 54 44 4c 47 41 29 3b 0d  A(LPPRINTDLGA);.
4c70: 0a 09 42 4f 4f 4c 20 50 72 69 6e 74 44 6c 67 57  ..BOOL PrintDlgW
4c80: 28 4c 50 50 52 49 4e 54 44 4c 47 57 29 3b 0d 0a  (LPPRINTDLGW);..
4c90: 09 48 57 4e 44 20 52 65 70 6c 61 63 65 54 65 78  .HWND ReplaceTex
4ca0: 74 41 28 4c 50 46 49 4e 44 52 45 50 4c 41 43 45  tA(LPFINDREPLACE
4cb0: 41 29 3b 0d 0a 09 48 57 4e 44 20 52 65 70 6c 61  A);...HWND Repla
4cc0: 63 65 54 65 78 74 57 28 4c 50 46 49 4e 44 52 45  ceTextW(LPFINDRE
4cd0: 50 4c 41 43 45 57 29 3b 0d 0a 0d 0a 09 73 74 61  PLACEW);.....sta
4ce0: 74 69 63 20 69 66 20 28 5f 57 49 4e 33 32 5f 57  tic if (_WIN32_W
4cf0: 49 4e 4e 54 20 3e 3d 20 30 78 35 30 30 29 20 7b  INNT >= 0x500) {
4d00: 0d 0a 09 09 48 52 45 53 55 4c 54 20 50 72 69 6e  ....HRESULT Prin
4d10: 74 44 6c 67 45 78 41 28 4c 50 50 52 49 4e 54 44  tDlgExA(LPPRINTD
4d20: 4c 47 45 58 41 29 3b 0d 0a 09 09 48 52 45 53 55  LGEXA);....HRESU
4d30: 4c 54 20 50 72 69 6e 74 44 6c 67 45 78 57 28 4c  LT PrintDlgExW(L
4d40: 50 50 52 49 4e 54 44 4c 47 45 58 57 29 3b 0d 0a  PPRINTDLGEXW);..
4d50: 09 7d 0d 0a 7d 0d 0a 0d 0a 76 65 72 73 69 6f 6e  .}..}....version
4d60: 20 28 55 6e 69 63 6f 64 65 29 20 7b 0d 0a 09 61   (Unicode) {...a
4d70: 6c 69 61 73 20 43 48 4f 4f 53 45 43 4f 4c 4f 52  lias CHOOSECOLOR
4d80: 57 20 43 48 4f 4f 53 45 43 4f 4c 4f 52 3b 0d 0a  W CHOOSECOLOR;..
4d90: 09 61 6c 69 61 73 20 43 48 4f 4f 53 45 46 4f 4e  .alias CHOOSEFON
4da0: 54 57 20 43 48 4f 4f 53 45 46 4f 4e 54 3b 0d 0a  TW CHOOSEFONT;..
4db0: 09 61 6c 69 61 73 20 46 49 4e 44 52 45 50 4c 41  .alias FINDREPLA
4dc0: 43 45 57 20 46 49 4e 44 52 45 50 4c 41 43 45 3b  CEW FINDREPLACE;
4dd0: 0d 0a 09 61 6c 69 61 73 20 4f 50 45 4e 46 49 4c  ...alias OPENFIL
4de0: 45 4e 41 4d 45 57 20 4f 50 45 4e 46 49 4c 45 4e  ENAMEW OPENFILEN
4df0: 41 4d 45 3b 0d 0a 09 61 6c 69 61 73 20 4f 46 4e  AME;...alias OFN
4e00: 4f 54 49 46 59 57 20 4f 46 4e 4f 54 49 46 59 3b  OTIFYW OFNOTIFY;
4e10: 0d 0a 09 61 6c 69 61 73 20 50 41 47 45 53 45 54  ...alias PAGESET
4e20: 55 50 44 4c 47 57 20 50 41 47 45 53 45 54 55 50  UPDLGW PAGESETUP
4e30: 44 4c 47 3b 0d 0a 09 61 6c 69 61 73 20 50 52 49  DLG;...alias PRI
4e40: 4e 54 44 4c 47 57 20 50 52 49 4e 54 44 4c 47 3b  NTDLGW PRINTDLG;
4e50: 0d 0a 0d 0a 09 61 6c 69 61 73 20 43 68 6f 6f 73  .....alias Choos
4e60: 65 43 6f 6c 6f 72 57 20 43 68 6f 6f 73 65 43 6f  eColorW ChooseCo
4e70: 6c 6f 72 3b 0d 0a 09 61 6c 69 61 73 20 43 68 6f  lor;...alias Cho
4e80: 6f 73 65 46 6f 6e 74 57 20 43 68 6f 6f 73 65 46  oseFontW ChooseF
4e90: 6f 6e 74 3b 0d 0a 09 61 6c 69 61 73 20 46 69 6e  ont;...alias Fin
4ea0: 64 54 65 78 74 57 20 46 69 6e 64 54 65 78 74 3b  dTextW FindText;
4eb0: 0d 0a 09 61 6c 69 61 73 20 47 65 74 46 69 6c 65  ...alias GetFile
4ec0: 54 69 74 6c 65 57 20 47 65 74 46 69 6c 65 54 69  TitleW GetFileTi
4ed0: 74 6c 65 3b 0d 0a 09 61 6c 69 61 73 20 47 65 74  tle;...alias Get
4ee0: 4f 70 65 6e 46 69 6c 65 4e 61 6d 65 57 20 47 65  OpenFileNameW Ge
4ef0: 74 4f 70 65 6e 46 69 6c 65 4e 61 6d 65 3b 0d 0a  tOpenFileName;..
4f00: 09 61 6c 69 61 73 20 47 65 74 53 61 76 65 46 69  .alias GetSaveFi
4f10: 6c 65 4e 61 6d 65 57 20 47 65 74 53 61 76 65 46  leNameW GetSaveF
4f20: 69 6c 65 4e 61 6d 65 3b 0d 0a 09 61 6c 69 61 73  ileName;...alias
4f30: 20 50 61 67 65 53 65 74 75 70 44 6c 67 57 20 50   PageSetupDlgW P
4f40: 61 67 65 53 65 74 75 70 44 6c 67 3b 0d 0a 09 61  ageSetupDlg;...a
4f50: 6c 69 61 73 20 50 72 69 6e 74 44 6c 67 57 20 50  lias PrintDlgW P
4f60: 72 69 6e 74 44 6c 67 3b 0d 0a 09 61 6c 69 61 73  rintDlg;...alias
4f70: 20 52 65 70 6c 61 63 65 54 65 78 74 57 20 52 65   ReplaceTextW Re
4f80: 70 6c 61 63 65 54 65 78 74 3b 0d 0a 0d 0a 09 73  placeText;.....s
4f90: 74 61 74 69 63 20 69 66 20 28 5f 57 49 4e 33 32  tatic if (_WIN32
4fa0: 5f 57 49 4e 4e 54 20 3e 3d 20 30 78 35 30 30 29  _WINNT >= 0x500)
4fb0: 20 7b 0d 0a 09 09 61 6c 69 61 73 20 50 52 49 4e   {....alias PRIN
4fc0: 54 44 4c 47 45 58 57 20 50 52 49 4e 54 44 4c 47  TDLGEXW PRINTDLG
4fd0: 45 58 3b 0d 0a 09 09 61 6c 69 61 73 20 50 72 69  EX;....alias Pri
4fe0: 6e 74 44 6c 67 45 78 57 20 50 72 69 6e 74 44 6c  ntDlgExW PrintDl
4ff0: 67 45 78 3b 0d 0a 09 7d 0d 0a 0d 0a 7d 20 65 6c  gEx;...}....} el
5000: 73 65 20 7b 20 2f 2f 20 55 4e 49 43 4f 44 45 0d  se { // UNICODE.
5010: 0a 0d 0a 09 61 6c 69 61 73 20 43 48 4f 4f 53 45  ....alias CHOOSE
5020: 43 4f 4c 4f 52 41 20 43 48 4f 4f 53 45 43 4f 4c  COLORA CHOOSECOL
5030: 4f 52 3b 0d 0a 09 61 6c 69 61 73 20 43 48 4f 4f  OR;...alias CHOO
5040: 53 45 46 4f 4e 54 41 20 43 48 4f 4f 53 45 46 4f  SEFONTA CHOOSEFO
5050: 4e 54 3b 0d 0a 09 61 6c 69 61 73 20 46 49 4e 44  NT;...alias FIND
5060: 52 45 50 4c 41 43 45 41 20 46 49 4e 44 52 45 50  REPLACEA FINDREP
5070: 4c 41 43 45 3b 0d 0a 09 61 6c 69 61 73 20 4f 50  LACE;...alias OP
5080: 45 4e 46 49 4c 45 4e 41 4d 45 41 20 4f 50 45 4e  ENFILENAMEA OPEN
5090: 46 49 4c 45 4e 41 4d 45 3b 0d 0a 09 61 6c 69 61  FILENAME;...alia
50a0: 73 20 4f 46 4e 4f 54 49 46 59 41 20 4f 46 4e 4f  s OFNOTIFYA OFNO
50b0: 54 49 46 59 3b 0d 0a 09 61 6c 69 61 73 20 50 41  TIFY;...alias PA
50c0: 47 45 53 45 54 55 50 44 4c 47 41 20 50 41 47 45  GESETUPDLGA PAGE
50d0: 53 45 54 55 50 44 4c 47 3b 0d 0a 09 61 6c 69 61  SETUPDLG;...alia
50e0: 73 20 50 52 49 4e 54 44 4c 47 41 20 50 52 49 4e  s PRINTDLGA PRIN
50f0: 54 44 4c 47 3b 0d 0a 0d 0a 09 61 6c 69 61 73 20  TDLG;.....alias 
5100: 43 68 6f 6f 73 65 43 6f 6c 6f 72 41 20 43 68 6f  ChooseColorA Cho
5110: 6f 73 65 43 6f 6c 6f 72 3b 0d 0a 09 61 6c 69 61  oseColor;...alia
5120: 73 20 43 68 6f 6f 73 65 46 6f 6e 74 41 20 43 68  s ChooseFontA Ch
5130: 6f 6f 73 65 46 6f 6e 74 3b 0d 0a 09 61 6c 69 61  ooseFont;...alia
5140: 73 20 46 69 6e 64 54 65 78 74 41 20 46 69 6e 64  s FindTextA Find
5150: 54 65 78 74 3b 0d 0a 09 61 6c 69 61 73 20 47 65  Text;...alias Ge
5160: 74 46 69 6c 65 54 69 74 6c 65 41 20 47 65 74 46  tFileTitleA GetF
5170: 69 6c 65 54 69 74 6c 65 3b 0d 0a 09 61 6c 69 61  ileTitle;...alia
5180: 73 20 47 65 74 4f 70 65 6e 46 69 6c 65 4e 61 6d  s GetOpenFileNam
5190: 65 41 20 47 65 74 4f 70 65 6e 46 69 6c 65 4e 61  eA GetOpenFileNa
51a0: 6d 65 3b 0d 0a 09 61 6c 69 61 73 20 47 65 74 53  me;...alias GetS
51b0: 61 76 65 46 69 6c 65 4e 61 6d 65 41 20 47 65 74  aveFileNameA Get
51c0: 53 61 76 65 46 69 6c 65 4e 61 6d 65 3b 0d 0a 09  SaveFileName;...
51d0: 61 6c 69 61 73 20 50 61 67 65 53 65 74 75 70 44  alias PageSetupD
51e0: 6c 67 41 20 50 61 67 65 53 65 74 75 70 44 6c 67  lgA PageSetupDlg
51f0: 3b 0d 0a 09 61 6c 69 61 73 20 50 72 69 6e 74 44  ;...alias PrintD
5200: 6c 67 41 20 50 72 69 6e 74 44 6c 67 3b 0d 0a 09  lgA PrintDlg;...
5210: 61 6c 69 61 73 20 52 65 70 6c 61 63 65 54 65 78  alias ReplaceTex
5220: 74 41 20 52 65 70 6c 61 63 65 54 65 78 74 3b 0d  tA ReplaceText;.
5230: 0a 0d 0a 09 73 74 61 74 69 63 20 69 66 20 28 5f  ....static if (_
5240: 57 49 4e 33 32 5f 57 49 4e 4e 54 20 3e 3d 20 30  WIN32_WINNT >= 0
5250: 78 35 30 30 29 20 7b 0d 0a 09 09 61 6c 69 61 73  x500) {....alias
5260: 20 50 52 49 4e 54 44 4c 47 45 58 41 20 50 52 49   PRINTDLGEXA PRI
5270: 4e 54 44 4c 47 45 58 3b 0d 0a 09 09 61 6c 69 61  NTDLGEX;....alia
5280: 73 20 50 72 69 6e 74 44 6c 67 45 78 41 20 50 72  s PrintDlgExA Pr
5290: 69 6e 74 44 6c 67 45 78 3b 0d 0a 09 7d 0d 0a 0d  intDlgEx;...}...
52a0: 0a 7d 20 2f 2f 20 55 4e 49 43 4f 44 45 0d 0a 0d  .} // UNICODE...
52b0: 0a 61 6c 69 61 73 20 43 48 4f 4f 53 45 43 4f 4c  .alias CHOOSECOL
52c0: 4f 52 2a 20 4c 50 43 48 4f 4f 53 45 43 4f 4c 4f  OR* LPCHOOSECOLO
52d0: 52 3b 0d 0a 61 6c 69 61 73 20 43 48 4f 4f 53 45  R;..alias CHOOSE
52e0: 46 4f 4e 54 2a 20 4c 50 43 48 4f 4f 53 45 46 4f  FONT* LPCHOOSEFO
52f0: 4e 54 3b 0d 0a 61 6c 69 61 73 20 46 49 4e 44 52  NT;..alias FINDR
5300: 45 50 4c 41 43 45 2a 20 4c 50 46 49 4e 44 52 45  EPLACE* LPFINDRE
5310: 50 4c 41 43 45 3b 0d 0a 61 6c 69 61 73 20 4f 50  PLACE;..alias OP
5320: 45 4e 46 49 4c 45 4e 41 4d 45 2a 20 4c 50 4f 50  ENFILENAME* LPOP
5330: 45 4e 46 49 4c 45 4e 41 4d 45 3b 0d 0a 61 6c 69  ENFILENAME;..ali
5340: 61 73 20 4f 46 4e 4f 54 49 46 59 2a 20 4c 50 4f  as OFNOTIFY* LPO
5350: 46 4e 4f 54 49 46 59 3b 0d 0a 61 6c 69 61 73 20  FNOTIFY;..alias 
5360: 50 41 47 45 53 45 54 55 50 44 4c 47 2a 20 4c 50  PAGESETUPDLG* LP
5370: 50 41 47 45 53 45 54 55 50 44 4c 47 3b 0d 0a 61  PAGESETUPDLG;..a
5380: 6c 69 61 73 20 50 52 49 4e 54 44 4c 47 2a 20 4c  lias PRINTDLG* L
5390: 50 50 52 49 4e 54 44 4c 47 3b 0d 0a 73 74 61 74  PPRINTDLG;..stat
53a0: 69 63 20 69 66 20 28 5f 57 49 4e 33 32 5f 57 49  ic if (_WIN32_WI
53b0: 4e 4e 54 20 3e 3d 20 30 78 35 30 30 29 20 7b 0d  NNT >= 0x500) {.
53c0: 0a 09 61 6c 69 61 73 20 50 52 49 4e 54 44 4c 47  ..alias PRINTDLG
53d0: 45 58 2a 20 4c 50 50 52 49 4e 54 44 4c 47 45 58  EX* LPPRINTDLGEX
53e0: 3b 0d 0a 7d 0d 0a                                ;..}..