Hex Artifact Content

Not logged in

Artifact 8d4bc5a2189cdef3858732c003efd097d499e32d:


0000: 6d 6f 64 75 6c 65 20 77 69 6e 33 32 2e 61 6e 73  module win32.ans
0010: 69 2e 63 6f 6d 6d 64 6c 67 3b 0d 0a 0d 0a 2f 2f  i.commdlg;....//
0020: 20 54 72 61 6e 73 6c 61 74 65 64 20 66 72 6f 6d   Translated from
0030: 20 4d 69 63 72 6f 73 6f 66 74 20 50 6c 61 74 66   Microsoft Platf
0040: 6f 72 6d 20 53 44 4b 20 41 75 67 75 73 74 20 32  orm SDK August 2
0050: 30 30 31 20 45 64 69 74 69 6f 6e 0d 0a 2f 2f 20  001 Edition..// 
0060: 62 79 20 59 2e 54 6f 6d 69 6e 6f 20 28 64 65 6d  by Y.Tomino (dem
0070: 6f 6f 6e 6c 69 74 40 69 6e 74 65 72 37 2e 6a 70  oonlit@inter7.jp
0080: 29 0d 0a 0d 0a 69 6d 70 6f 72 74 20 77 69 6e 33  )....import win3
0090: 32 2e 61 6e 73 69 2e 77 69 6e 75 73 65 72 3b 0d  2.ansi.winuser;.
00a0: 0a 2f 2f 20 69 6e 6c 69 6e 65 20 23 69 6e 63 6c  .// inline #incl
00b0: 75 64 65 20 3c 63 64 65 72 72 2e 68 3e 0d 0a 2f  ude <cderr.h>../
00c0: 2f 20 2d 2d 2d 2d 0d 0a 0d 0a 2f 2f 20 23 69 66  / ----....// #if
00d0: 6e 64 65 66 20 5f 49 4e 43 5f 43 44 45 52 52 0d  ndef _INC_CDERR.
00e0: 0a 2f 2f 20 23 64 65 66 69 6e 65 20 5f 49 4e 43  .// #define _INC
00f0: 5f 43 44 45 52 52 0d 0a 0d 0a 2f 2f 20 23 69 66  _CDERR....// #if
0100: 20 5f 4d 53 43 5f 56 45 52 20 3e 20 31 30 30 30   _MSC_VER > 1000
0110: 0d 0a 2f 2f 20 23 70 72 61 67 6d 61 20 6f 6e 63  ..// #pragma onc
0120: 65 0d 0a 2f 2f 20 23 65 6e 64 69 66 0d 0a 0d 0a  e..// #endif....
0130: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 43 44  enum : uint { CD
0140: 45 52 52 5f 44 49 41 4c 4f 47 46 41 49 4c 55 52  ERR_DIALOGFAILUR
0150: 45 20 3d 20 30 78 46 46 46 46 20 7d 0d 0a 0d 0a  E = 0xFFFF }....
0160: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 43 44  enum : uint { CD
0170: 45 52 52 5f 47 45 4e 45 52 41 4c 43 4f 44 45 53  ERR_GENERALCODES
0180: 20 3d 20 30 78 30 30 30 30 20 7d 0d 0a 65 6e 75   = 0x0000 }..enu
0190: 6d 20 3a 20 75 69 6e 74 20 7b 20 43 44 45 52 52  m : uint { CDERR
01a0: 5f 53 54 52 55 43 54 53 49 5a 45 20 3d 20 30 78  _STRUCTSIZE = 0x
01b0: 30 30 30 31 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  0001 }..enum : u
01c0: 69 6e 74 20 7b 20 43 44 45 52 52 5f 49 4e 49 54  int { CDERR_INIT
01d0: 49 41 4c 49 5a 41 54 49 4f 4e 20 3d 20 30 78 30  IALIZATION = 0x0
01e0: 30 30 32 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  002 }..enum : ui
01f0: 6e 74 20 7b 20 43 44 45 52 52 5f 4e 4f 54 45 4d  nt { CDERR_NOTEM
0200: 50 4c 41 54 45 20 3d 20 30 78 30 30 30 33 20 7d  PLATE = 0x0003 }
0210: 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
0220: 43 44 45 52 52 5f 4e 4f 48 49 4e 53 54 41 4e 43  CDERR_NOHINSTANC
0230: 45 20 3d 20 30 78 30 30 30 34 20 7d 0d 0a 65 6e  E = 0x0004 }..en
0240: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 43 44 45 52  um : uint { CDER
0250: 52 5f 4c 4f 41 44 53 54 52 46 41 49 4c 55 52 45  R_LOADSTRFAILURE
0260: 20 3d 20 30 78 30 30 30 35 20 7d 0d 0a 65 6e 75   = 0x0005 }..enu
0270: 6d 20 3a 20 75 69 6e 74 20 7b 20 43 44 45 52 52  m : uint { CDERR
0280: 5f 46 49 4e 44 52 45 53 46 41 49 4c 55 52 45 20  _FINDRESFAILURE 
0290: 3d 20 30 78 30 30 30 36 20 7d 0d 0a 65 6e 75 6d  = 0x0006 }..enum
02a0: 20 3a 20 75 69 6e 74 20 7b 20 43 44 45 52 52 5f   : uint { CDERR_
02b0: 4c 4f 41 44 52 45 53 46 41 49 4c 55 52 45 20 3d  LOADRESFAILURE =
02c0: 20 30 78 30 30 30 37 20 7d 0d 0a 65 6e 75 6d 20   0x0007 }..enum 
02d0: 3a 20 75 69 6e 74 20 7b 20 43 44 45 52 52 5f 4c  : uint { CDERR_L
02e0: 4f 43 4b 52 45 53 46 41 49 4c 55 52 45 20 3d 20  OCKRESFAILURE = 
02f0: 30 78 30 30 30 38 20 7d 0d 0a 65 6e 75 6d 20 3a  0x0008 }..enum :
0300: 20 75 69 6e 74 20 7b 20 43 44 45 52 52 5f 4d 45   uint { CDERR_ME
0310: 4d 41 4c 4c 4f 43 46 41 49 4c 55 52 45 20 3d 20  MALLOCFAILURE = 
0320: 30 78 30 30 30 39 20 7d 0d 0a 65 6e 75 6d 20 3a  0x0009 }..enum :
0330: 20 75 69 6e 74 20 7b 20 43 44 45 52 52 5f 4d 45   uint { CDERR_ME
0340: 4d 4c 4f 43 4b 46 41 49 4c 55 52 45 20 3d 20 30  MLOCKFAILURE = 0
0350: 78 30 30 30 41 20 7d 0d 0a 65 6e 75 6d 20 3a 20  x000A }..enum : 
0360: 75 69 6e 74 20 7b 20 43 44 45 52 52 5f 4e 4f 48  uint { CDERR_NOH
0370: 4f 4f 4b 20 3d 20 30 78 30 30 30 42 20 7d 0d 0a  OOK = 0x000B }..
0380: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 43 44  enum : uint { CD
0390: 45 52 52 5f 52 45 47 49 53 54 45 52 4d 53 47 46  ERR_REGISTERMSGF
03a0: 41 49 4c 20 3d 20 30 78 30 30 30 43 20 7d 0d 0a  AIL = 0x000C }..
03b0: 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
03c0: 50 44 45 52 52 5f 50 52 49 4e 54 45 52 43 4f 44  PDERR_PRINTERCOD
03d0: 45 53 20 3d 20 30 78 31 30 30 30 20 7d 0d 0a 65  ES = 0x1000 }..e
03e0: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 50 44 45  num : uint { PDE
03f0: 52 52 5f 53 45 54 55 50 46 41 49 4c 55 52 45 20  RR_SETUPFAILURE 
0400: 3d 20 30 78 31 30 30 31 20 7d 0d 0a 65 6e 75 6d  = 0x1001 }..enum
0410: 20 3a 20 75 69 6e 74 20 7b 20 50 44 45 52 52 5f   : uint { PDERR_
0420: 50 41 52 53 45 46 41 49 4c 55 52 45 20 3d 20 30  PARSEFAILURE = 0
0430: 78 31 30 30 32 20 7d 0d 0a 65 6e 75 6d 20 3a 20  x1002 }..enum : 
0440: 75 69 6e 74 20 7b 20 50 44 45 52 52 5f 52 45 54  uint { PDERR_RET
0450: 44 45 46 46 41 49 4c 55 52 45 20 3d 20 30 78 31  DEFFAILURE = 0x1
0460: 30 30 33 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  003 }..enum : ui
0470: 6e 74 20 7b 20 50 44 45 52 52 5f 4c 4f 41 44 44  nt { PDERR_LOADD
0480: 52 56 46 41 49 4c 55 52 45 20 3d 20 30 78 31 30  RVFAILURE = 0x10
0490: 30 34 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e  04 }..enum : uin
04a0: 74 20 7b 20 50 44 45 52 52 5f 47 45 54 44 45 56  t { PDERR_GETDEV
04b0: 4d 4f 44 45 46 41 49 4c 20 3d 20 30 78 31 30 30  MODEFAIL = 0x100
04c0: 35 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  5 }..enum : uint
04d0: 20 7b 20 50 44 45 52 52 5f 49 4e 49 54 46 41 49   { PDERR_INITFAI
04e0: 4c 55 52 45 20 3d 20 30 78 31 30 30 36 20 7d 0d  LURE = 0x1006 }.
04f0: 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 50  .enum : uint { P
0500: 44 45 52 52 5f 4e 4f 44 45 56 49 43 45 53 20 3d  DERR_NODEVICES =
0510: 20 30 78 31 30 30 37 20 7d 0d 0a 65 6e 75 6d 20   0x1007 }..enum 
0520: 3a 20 75 69 6e 74 20 7b 20 50 44 45 52 52 5f 4e  : uint { PDERR_N
0530: 4f 44 45 46 41 55 4c 54 50 52 4e 20 3d 20 30 78  ODEFAULTPRN = 0x
0540: 31 30 30 38 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  1008 }..enum : u
0550: 69 6e 74 20 7b 20 50 44 45 52 52 5f 44 4e 44 4d  int { PDERR_DNDM
0560: 4d 49 53 4d 41 54 43 48 20 3d 20 30 78 31 30 30  MISMATCH = 0x100
0570: 39 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  9 }..enum : uint
0580: 20 7b 20 50 44 45 52 52 5f 43 52 45 41 54 45 49   { PDERR_CREATEI
0590: 43 46 41 49 4c 55 52 45 20 3d 20 30 78 31 30 30  CFAILURE = 0x100
05a0: 41 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  A }..enum : uint
05b0: 20 7b 20 50 44 45 52 52 5f 50 52 49 4e 54 45 52   { PDERR_PRINTER
05c0: 4e 4f 54 46 4f 55 4e 44 20 3d 20 30 78 31 30 30  NOTFOUND = 0x100
05d0: 42 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  B }..enum : uint
05e0: 20 7b 20 50 44 45 52 52 5f 44 45 46 41 55 4c 54   { PDERR_DEFAULT
05f0: 44 49 46 46 45 52 45 4e 54 20 3d 20 30 78 31 30  DIFFERENT = 0x10
0600: 30 43 20 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75  0C }....enum : u
0610: 69 6e 74 20 7b 20 43 46 45 52 52 5f 43 48 4f 4f  int { CFERR_CHOO
0620: 53 45 46 4f 4e 54 43 4f 44 45 53 20 3d 20 30 78  SEFONTCODES = 0x
0630: 32 30 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  2000 }..enum : u
0640: 69 6e 74 20 7b 20 43 46 45 52 52 5f 4e 4f 46 4f  int { CFERR_NOFO
0650: 4e 54 53 20 3d 20 30 78 32 30 30 31 20 7d 0d 0a  NTS = 0x2001 }..
0660: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 43 46  enum : uint { CF
0670: 45 52 52 5f 4d 41 58 4c 45 53 53 54 48 41 4e 4d  ERR_MAXLESSTHANM
0680: 49 4e 20 3d 20 30 78 32 30 30 32 20 7d 0d 0a 0d  IN = 0x2002 }...
0690: 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 46  .enum : uint { F
06a0: 4e 45 52 52 5f 46 49 4c 45 4e 41 4d 45 43 4f 44  NERR_FILENAMECOD
06b0: 45 53 20 3d 20 30 78 33 30 30 30 20 7d 0d 0a 65  ES = 0x3000 }..e
06c0: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 46 4e 45  num : uint { FNE
06d0: 52 52 5f 53 55 42 43 4c 41 53 53 46 41 49 4c 55  RR_SUBCLASSFAILU
06e0: 52 45 20 3d 20 30 78 33 30 30 31 20 7d 0d 0a 65  RE = 0x3001 }..e
06f0: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 46 4e 45  num : uint { FNE
0700: 52 52 5f 49 4e 56 41 4c 49 44 46 49 4c 45 4e 41  RR_INVALIDFILENA
0710: 4d 45 20 3d 20 30 78 33 30 30 32 20 7d 0d 0a 65  ME = 0x3002 }..e
0720: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 46 4e 45  num : uint { FNE
0730: 52 52 5f 42 55 46 46 45 52 54 4f 4f 53 4d 41 4c  RR_BUFFERTOOSMAL
0740: 4c 20 3d 20 30 78 33 30 30 33 20 7d 0d 0a 0d 0a  L = 0x3003 }....
0750: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 46 52  enum : uint { FR
0760: 45 52 52 5f 46 49 4e 44 52 45 50 4c 41 43 45 43  ERR_FINDREPLACEC
0770: 4f 44 45 53 20 3d 20 30 78 34 30 30 30 20 7d 0d  ODES = 0x4000 }.
0780: 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 46  .enum : uint { F
0790: 52 45 52 52 5f 42 55 46 46 45 52 4c 45 4e 47 54  RERR_BUFFERLENGT
07a0: 48 5a 45 52 4f 20 3d 20 30 78 34 30 30 31 20 7d  HZERO = 0x4001 }
07b0: 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20  ....enum : uint 
07c0: 7b 20 43 43 45 52 52 5f 43 48 4f 4f 53 45 43 4f  { CCERR_CHOOSECO
07d0: 4c 4f 52 43 4f 44 45 53 20 3d 20 30 78 35 30 30  LORCODES = 0x500
07e0: 30 20 7d 0d 0a 0d 0a 2f 2f 20 23 65 6e 64 69 66  0 }....// #endif
07f0: 20 20 2f 2a 20 21 5f 49 4e 43 5f 43 44 45 52 52    /* !_INC_CDERR
0800: 20 2a 2f 0d 0a 2f 2f 20 2d 2d 2d 2d 0d 0a 0d 0a   */..// ----....
0810: 2f 2f 20 23 69 66 6e 64 65 66 20 5f 49 4e 43 5f  // #ifndef _INC_
0820: 43 4f 4d 4d 44 4c 47 0d 0a 2f 2f 20 23 64 65 66  COMMDLG..// #def
0830: 69 6e 65 20 5f 49 4e 43 5f 43 4f 4d 4d 44 4c 47  ine _INC_COMMDLG
0840: 0d 0a 0d 0a 2f 2f 20 23 69 66 28 57 49 4e 56 45  ....// #if(WINVE
0850: 52 20 3e 3d 20 30 78 30 35 30 30 29 0d 0a 0d 0a  R >= 0x0500)....
0860: 2f 2f 20 23 69 66 64 65 66 20 44 45 46 49 4e 45  // #ifdef DEFINE
0870: 5f 47 55 49 44 0d 0a 0d 0a 2f 2f 20 2e 2e 2e 0d  _GUID....// ....
0880: 0a 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 0d 0a 2f 2f 20  ...// .......// 
0890: 23 65 6e 64 69 66 0d 0a 0d 0a 2f 2f 20 23 65 6e  #endif....// #en
08a0: 64 69 66 20 2f 2a 20 57 49 4e 56 45 52 20 3e 3d  dif /* WINVER >=
08b0: 20 30 78 30 35 30 30 20 2a 2f 0d 0a 0d 0a 2f 2f   0x0500 */....//
08c0: 20 23 69 66 6e 64 65 66 20 47 55 49 44 5f 44 45   #ifndef GUID_DE
08d0: 46 53 5f 4f 4e 4c 59 0d 0a 0d 0a 2f 2f 20 23 69  FS_ONLY....// #i
08e0: 6e 63 6c 75 64 65 20 3c 70 72 73 68 74 2e 68 3e  nclude <prsht.h>
08f0: 0d 0a 0d 0a 2f 2f 20 23 69 66 20 21 64 65 66 69  ....// #if !defi
0900: 6e 65 64 28 5f 57 49 4e 36 34 29 0d 0a 61 6c 69  ned(_WIN64)..ali
0910: 67 6e 28 31 29 3a 0d 0a 2f 2f 20 23 65 6e 64 69  gn(1):..// #endi
0920: 66 0d 0a 0d 0a 2f 2f 20 23 69 66 64 65 66 20 5f  f....// #ifdef _
0930: 5f 63 70 6c 75 73 70 6c 75 73 0d 0a 2f 2f 20 65  _cplusplus..// e
0940: 78 74 65 72 6e 20 22 43 22 20 7b 20 20 20 20 20  xtern "C" {     
0950: 20 20 20 20 20 20 20 2f 2a 20 41 73 73 75 6d 65         /* Assume
0960: 20 43 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20   C declarations 
0970: 66 6f 72 20 43 2b 2b 20 2a 2f 0d 0a 2f 2f 20 23  for C++ */..// #
0980: 65 6e 64 69 66 20 20 2f 2a 20 5f 5f 63 70 6c 75  endif  /* __cplu
0990: 73 70 6c 75 73 20 2a 2f 0d 0a 0d 0a 2f 2f 20 23  splus */....// #
09a0: 69 66 6e 64 65 66 20 57 49 4e 43 4f 4d 4d 44 4c  ifndef WINCOMMDL
09b0: 47 41 50 49 0d 0a 2f 2f 20 23 69 66 20 21 64 65  GAPI..// #if !de
09c0: 66 69 6e 65 64 28 5f 43 4f 4d 44 4c 47 33 32 5f  fined(_COMDLG32_
09d0: 29 0d 0a 2f 2f 20 23 64 65 66 69 6e 65 20 57 49  )..// #define WI
09e0: 4e 43 4f 4d 4d 44 4c 47 41 50 49 20 44 45 43 4c  NCOMMDLGAPI DECL
09f0: 53 50 45 43 5f 49 4d 50 4f 52 54 0d 0a 2f 2f 20  SPEC_IMPORT..// 
0a00: 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a  #else..// #.....
0a10: 2f 2f 20 23 65 6e 64 69 66 0d 0a 2f 2f 20 23 65  // #endif..// #e
0a20: 6e 64 69 66 20 2f 2f 20 57 49 4e 43 4f 4d 4d 44  ndif // WINCOMMD
0a30: 4c 47 41 50 49 0d 0a 0d 0a 2f 2f 20 23 69 66 28  LGAPI....// #if(
0a40: 57 49 4e 56 45 52 20 3e 3d 20 30 78 30 34 30 30  WINVER >= 0x0400
0a50: 29 0d 0a 2f 2f 20 23 69 66 6e 64 65 66 20 53 4e  )..// #ifndef SN
0a60: 44 4d 53 47 0d 0a 2f 2f 20 23 69 66 64 65 66 20  DMSG..// #ifdef 
0a70: 5f 5f 63 70 6c 75 73 70 6c 75 73 0d 0a 2f 2f 20  __cplusplus..// 
0a80: 23 69 66 6e 64 65 66 20 5f 4d 41 43 0d 0a 2f 2f  #ifndef _MAC..//
0a90: 20 23 64 65 66 69 6e 65 20 53 4e 44 4d 53 47 20   #define SNDMSG 
0aa0: 3a 3a 53 65 6e 64 4d 65 73 73 61 67 65 0d 0a 2f  ::SendMessage../
0ab0: 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e  / #else..// #...
0ac0: 0d 0a 2f 2f 20 23 65 6e 64 69 66 0d 0a 2f 2f 20  ..// #endif..// 
0ad0: 23 65 6c 73 65 20 20 20 2f 2a 20 5f 5f 63 70 6c  #else   /* __cpl
0ae0: 75 73 70 6c 75 73 20 2a 2f 0d 0a 2f 2f 20 23 69  usplus */..// #i
0af0: 66 6e 64 65 66 20 5f 4d 41 43 0d 0a 2f 2f 20 23  fndef _MAC..// #
0b00: 2e 2e 2e 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f  .....// #else../
0b10: 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69  / #.....// #endi
0b20: 66 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 20 2f 2a  f..// #endif  /*
0b30: 20 5f 5f 63 70 6c 75 73 70 6c 75 73 20 2a 2f 0d   __cplusplus */.
0b40: 0a 2f 2f 20 23 65 6e 64 69 66 20 20 2f 2f 20 69  .// #endif  // i
0b50: 66 6e 64 65 66 20 53 4e 44 4d 53 47 0d 0a 2f 2f  fndef SNDMSG..//
0b60: 20 23 65 6e 64 69 66 20 2f 2a 20 57 49 4e 56 45   #endif /* WINVE
0b70: 52 20 3e 3d 20 30 78 30 34 30 30 20 2a 2f 0d 0a  R >= 0x0400 */..
0b80: 0d 0a 2f 2f 20 23 69 66 64 65 66 20 5f 4d 41 43  ..// #ifdef _MAC
0b90: 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e  ..// .....// #en
0ba0: 64 69 66 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69  dif....extern(Wi
0bb0: 6e 64 6f 77 73 29 20 61 6c 69 61 73 20 55 49 4e  ndows) alias UIN
0bc0: 54 5f 50 54 52 20 66 75 6e 63 74 69 6f 6e 28 48  T_PTR function(H
0bd0: 57 4e 44 2c 20 55 49 4e 54 2c 20 57 50 41 52 41  WND, UINT, WPARA
0be0: 4d 2c 20 4c 50 41 52 41 4d 29 20 4c 50 4f 46 4e  M, LPARAM) LPOFN
0bf0: 48 4f 4f 4b 50 52 4f 43 3b 0d 0a 0d 0a 2f 2f 20  HOOKPROC;....// 
0c00: 23 69 66 6e 64 65 66 20 43 44 53 49 5a 45 4f 46  #ifndef CDSIZEOF
0c10: 5f 53 54 52 55 43 54 0d 0a 2f 2f 20 23 64 65 66  _STRUCT..// #def
0c20: 69 6e 65 20 43 44 53 49 5a 45 4f 46 5f 53 54 52  ine CDSIZEOF_STR
0c30: 55 43 54 28 73 74 72 75 63 74 6e 61 6d 65 2c 20  UCT(structname, 
0c40: 6d 65 6d 62 65 72 29 20 28 28 28 69 6e 74 29 28  member) (((int)(
0c50: 28 4c 50 42 59 54 45 29 28 26 28 28 73 74 72 75  (LPBYTE)(&((stru
0c60: 63 74 6e 61 6d 65 2a 29 30 29 2d 3e 6d 65 6d 62  ctname*)0)->memb
0c70: 65 72 29 20 2d 20 28 28 4c 50 42 59 54 45 29 28  er) - ((LPBYTE)(
0c80: 28 73 74 72 75 63 74 6e 61 6d 65 2a 29 30 29 29  (structname*)0))
0c90: 29 29 20 2b 20 73 69 7a 65 6f 66 28 28 28 73 74  )) + sizeof(((st
0ca0: 72 75 63 74 6e 61 6d 65 2a 29 30 29 2d 3e 6d 65  ructname*)0)->me
0cb0: 6d 62 65 72 29 29 0d 0a 2f 2f 20 23 65 6e 64 69  mber))..// #endi
0cc0: 66 0d 0a 0d 0a 2f 2f 20 23 69 66 6e 64 65 66 20  f....// #ifndef 
0cd0: 44 55 4d 4d 59 55 4e 49 4f 4e 4e 41 4d 45 0d 0a  DUMMYUNIONNAME..
0ce0: 2f 2f 20 23 69 66 64 65 66 20 4e 4f 4e 41 4d 45  // #ifdef NONAME
0cf0: 4c 45 53 53 55 4e 49 4f 4e 0d 0a 2f 2f 20 23 2e  LESSUNION..// #.
0d00: 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f  ....// #endif //
0d10: 20 4e 4f 4e 41 4d 45 4c 45 53 53 55 4e 49 4f 4e   NONAMELESSUNION
0d20: 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 44  ..// #endif // D
0d30: 55 4d 4d 59 55 4e 49 4f 4e 4e 41 4d 45 0d 0a 0d  UMMYUNIONNAME...
0d40: 0a 73 74 72 75 63 74 20 74 61 67 4f 46 4e 5f 4e  .struct tagOFN_N
0d50: 54 34 41 20 7b 0d 0a 20 20 44 57 4f 52 44 20 6c  T4A {..  DWORD l
0d60: 53 74 72 75 63 74 53 69 7a 65 3b 0d 0a 20 20 48  StructSize;..  H
0d70: 57 4e 44 20 68 77 6e 64 4f 77 6e 65 72 3b 0d 0a  WND hwndOwner;..
0d80: 20 20 48 49 4e 53 54 41 4e 43 45 20 68 49 6e 73    HINSTANCE hIns
0d90: 74 61 6e 63 65 3b 0d 0a 20 20 4c 50 43 53 54 52  tance;..  LPCSTR
0da0: 20 6c 70 73 74 72 46 69 6c 74 65 72 3b 0d 0a 20   lpstrFilter;.. 
0db0: 20 4c 50 53 54 52 20 6c 70 73 74 72 43 75 73 74   LPSTR lpstrCust
0dc0: 6f 6d 46 69 6c 74 65 72 3b 0d 0a 20 20 44 57 4f  omFilter;..  DWO
0dd0: 52 44 20 6e 4d 61 78 43 75 73 74 46 69 6c 74 65  RD nMaxCustFilte
0de0: 72 3b 0d 0a 20 20 44 57 4f 52 44 20 6e 46 69 6c  r;..  DWORD nFil
0df0: 74 65 72 49 6e 64 65 78 3b 0d 0a 20 20 4c 50 53  terIndex;..  LPS
0e00: 54 52 20 6c 70 73 74 72 46 69 6c 65 3b 0d 0a 20  TR lpstrFile;.. 
0e10: 20 44 57 4f 52 44 20 6e 4d 61 78 46 69 6c 65 3b   DWORD nMaxFile;
0e20: 0d 0a 20 20 4c 50 53 54 52 20 6c 70 73 74 72 46  ..  LPSTR lpstrF
0e30: 69 6c 65 54 69 74 6c 65 3b 0d 0a 20 20 44 57 4f  ileTitle;..  DWO
0e40: 52 44 20 6e 4d 61 78 46 69 6c 65 54 69 74 6c 65  RD nMaxFileTitle
0e50: 3b 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70 73 74  ;..  LPCSTR lpst
0e60: 72 49 6e 69 74 69 61 6c 44 69 72 3b 0d 0a 20 20  rInitialDir;..  
0e70: 4c 50 43 53 54 52 20 6c 70 73 74 72 54 69 74 6c  LPCSTR lpstrTitl
0e80: 65 3b 0d 0a 20 20 44 57 4f 52 44 20 46 6c 61 67  e;..  DWORD Flag
0e90: 73 3b 0d 0a 20 20 57 4f 52 44 20 6e 46 69 6c 65  s;..  WORD nFile
0ea0: 4f 66 66 73 65 74 3b 0d 0a 20 20 57 4f 52 44 20  Offset;..  WORD 
0eb0: 6e 46 69 6c 65 45 78 74 65 6e 73 69 6f 6e 3b 0d  nFileExtension;.
0ec0: 0a 20 20 4c 50 43 53 54 52 20 6c 70 73 74 72 44  .  LPCSTR lpstrD
0ed0: 65 66 45 78 74 3b 0d 0a 20 20 4c 50 41 52 41 4d  efExt;..  LPARAM
0ee0: 20 6c 43 75 73 74 44 61 74 61 3b 0d 0a 20 20 4c   lCustData;..  L
0ef0: 50 4f 46 4e 48 4f 4f 4b 50 52 4f 43 20 6c 70 66  POFNHOOKPROC lpf
0f00: 6e 48 6f 6f 6b 3b 0d 0a 20 20 4c 50 43 53 54 52  nHook;..  LPCSTR
0f10: 20 6c 70 54 65 6d 70 6c 61 74 65 4e 61 6d 65 3b   lpTemplateName;
0f20: 0d 0a 7d 0d 0a 61 6c 69 61 73 20 74 61 67 4f 46  ..}..alias tagOF
0f30: 4e 5f 4e 54 34 41 20 4f 50 45 4e 46 49 4c 45 4e  N_NT4A OPENFILEN
0f40: 41 4d 45 5f 4e 54 34 41 3b 0d 0a 61 6c 69 61 73  AME_NT4A;..alias
0f50: 20 74 61 67 4f 46 4e 5f 4e 54 34 41 2a 20 4c 50   tagOFN_NT4A* LP
0f60: 4f 50 45 4e 46 49 4c 45 4e 41 4d 45 5f 4e 54 34  OPENFILENAME_NT4
0f70: 41 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 74 61 67  A;....struct tag
0f80: 4f 46 4e 5f 4e 54 34 57 20 7b 0d 0a 20 20 44 57  OFN_NT4W {..  DW
0f90: 4f 52 44 20 6c 53 74 72 75 63 74 53 69 7a 65 3b  ORD lStructSize;
0fa0: 0d 0a 20 20 48 57 4e 44 20 68 77 6e 64 4f 77 6e  ..  HWND hwndOwn
0fb0: 65 72 3b 0d 0a 20 20 48 49 4e 53 54 41 4e 43 45  er;..  HINSTANCE
0fc0: 20 68 49 6e 73 74 61 6e 63 65 3b 0d 0a 20 20 4c   hInstance;..  L
0fd0: 50 43 57 53 54 52 20 6c 70 73 74 72 46 69 6c 74  PCWSTR lpstrFilt
0fe0: 65 72 3b 0d 0a 20 20 4c 50 57 53 54 52 20 6c 70  er;..  LPWSTR lp
0ff0: 73 74 72 43 75 73 74 6f 6d 46 69 6c 74 65 72 3b  strCustomFilter;
1000: 0d 0a 20 20 44 57 4f 52 44 20 6e 4d 61 78 43 75  ..  DWORD nMaxCu
1010: 73 74 46 69 6c 74 65 72 3b 0d 0a 20 20 44 57 4f  stFilter;..  DWO
1020: 52 44 20 6e 46 69 6c 74 65 72 49 6e 64 65 78 3b  RD nFilterIndex;
1030: 0d 0a 20 20 4c 50 57 53 54 52 20 6c 70 73 74 72  ..  LPWSTR lpstr
1040: 46 69 6c 65 3b 0d 0a 20 20 44 57 4f 52 44 20 6e  File;..  DWORD n
1050: 4d 61 78 46 69 6c 65 3b 0d 0a 20 20 4c 50 57 53  MaxFile;..  LPWS
1060: 54 52 20 6c 70 73 74 72 46 69 6c 65 54 69 74 6c  TR lpstrFileTitl
1070: 65 3b 0d 0a 20 20 44 57 4f 52 44 20 6e 4d 61 78  e;..  DWORD nMax
1080: 46 69 6c 65 54 69 74 6c 65 3b 0d 0a 20 20 4c 50  FileTitle;..  LP
1090: 43 57 53 54 52 20 6c 70 73 74 72 49 6e 69 74 69  CWSTR lpstrIniti
10a0: 61 6c 44 69 72 3b 0d 0a 20 20 4c 50 43 57 53 54  alDir;..  LPCWST
10b0: 52 20 6c 70 73 74 72 54 69 74 6c 65 3b 0d 0a 20  R lpstrTitle;.. 
10c0: 20 44 57 4f 52 44 20 46 6c 61 67 73 3b 0d 0a 20   DWORD Flags;.. 
10d0: 20 57 4f 52 44 20 6e 46 69 6c 65 4f 66 66 73 65   WORD nFileOffse
10e0: 74 3b 0d 0a 20 20 57 4f 52 44 20 6e 46 69 6c 65  t;..  WORD nFile
10f0: 45 78 74 65 6e 73 69 6f 6e 3b 0d 0a 20 20 4c 50  Extension;..  LP
1100: 43 57 53 54 52 20 6c 70 73 74 72 44 65 66 45 78  CWSTR lpstrDefEx
1110: 74 3b 0d 0a 20 20 4c 50 41 52 41 4d 20 6c 43 75  t;..  LPARAM lCu
1120: 73 74 44 61 74 61 3b 0d 0a 20 20 4c 50 4f 46 4e  stData;..  LPOFN
1130: 48 4f 4f 4b 50 52 4f 43 20 6c 70 66 6e 48 6f 6f  HOOKPROC lpfnHoo
1140: 6b 3b 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70  k;..  LPCWSTR lp
1150: 54 65 6d 70 6c 61 74 65 4e 61 6d 65 3b 0d 0a 7d  TemplateName;..}
1160: 0d 0a 61 6c 69 61 73 20 74 61 67 4f 46 4e 5f 4e  ..alias tagOFN_N
1170: 54 34 57 20 4f 50 45 4e 46 49 4c 45 4e 41 4d 45  T4W OPENFILENAME
1180: 5f 4e 54 34 57 3b 0d 0a 61 6c 69 61 73 20 74 61  _NT4W;..alias ta
1190: 67 4f 46 4e 5f 4e 54 34 57 2a 20 4c 50 4f 50 45  gOFN_NT4W* LPOPE
11a0: 4e 46 49 4c 45 4e 41 4d 45 5f 4e 54 34 57 3b 0d  NFILENAME_NT4W;.
11b0: 0a 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49  ...// #ifdef UNI
11c0: 43 4f 44 45 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 2f 2f  CODE..// .....//
11d0: 20 23 65 6c 73 65 0d 0a 61 6c 69 61 73 20 4f 50   #else..alias OP
11e0: 45 4e 46 49 4c 45 4e 41 4d 45 5f 4e 54 34 41 20  ENFILENAME_NT4A 
11f0: 4f 50 45 4e 46 49 4c 45 4e 41 4d 45 5f 4e 54 34  OPENFILENAME_NT4
1200: 3b 0d 0a 61 6c 69 61 73 20 4c 50 4f 50 45 4e 46  ;..alias LPOPENF
1210: 49 4c 45 4e 41 4d 45 5f 4e 54 34 41 20 4c 50 4f  ILENAME_NT4A LPO
1220: 50 45 4e 46 49 4c 45 4e 41 4d 45 5f 4e 54 34 3b  PENFILENAME_NT4;
1230: 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 55  ..// #endif // U
1240: 4e 49 43 4f 44 45 0d 0a 0d 0a 73 74 72 75 63 74  NICODE....struct
1250: 20 74 61 67 4f 46 4e 41 20 7b 0d 0a 20 20 44 57   tagOFNA {..  DW
1260: 4f 52 44 20 6c 53 74 72 75 63 74 53 69 7a 65 3b  ORD lStructSize;
1270: 0d 0a 20 20 48 57 4e 44 20 68 77 6e 64 4f 77 6e  ..  HWND hwndOwn
1280: 65 72 3b 0d 0a 20 20 48 49 4e 53 54 41 4e 43 45  er;..  HINSTANCE
1290: 20 68 49 6e 73 74 61 6e 63 65 3b 0d 0a 20 20 4c   hInstance;..  L
12a0: 50 43 53 54 52 20 6c 70 73 74 72 46 69 6c 74 65  PCSTR lpstrFilte
12b0: 72 3b 0d 0a 20 20 4c 50 53 54 52 20 6c 70 73 74  r;..  LPSTR lpst
12c0: 72 43 75 73 74 6f 6d 46 69 6c 74 65 72 3b 0d 0a  rCustomFilter;..
12d0: 20 20 44 57 4f 52 44 20 6e 4d 61 78 43 75 73 74    DWORD nMaxCust
12e0: 46 69 6c 74 65 72 3b 0d 0a 20 20 44 57 4f 52 44  Filter;..  DWORD
12f0: 20 6e 46 69 6c 74 65 72 49 6e 64 65 78 3b 0d 0a   nFilterIndex;..
1300: 20 20 4c 50 53 54 52 20 6c 70 73 74 72 46 69 6c    LPSTR lpstrFil
1310: 65 3b 0d 0a 20 20 44 57 4f 52 44 20 6e 4d 61 78  e;..  DWORD nMax
1320: 46 69 6c 65 3b 0d 0a 20 20 4c 50 53 54 52 20 6c  File;..  LPSTR l
1330: 70 73 74 72 46 69 6c 65 54 69 74 6c 65 3b 0d 0a  pstrFileTitle;..
1340: 20 20 44 57 4f 52 44 20 6e 4d 61 78 46 69 6c 65    DWORD nMaxFile
1350: 54 69 74 6c 65 3b 0d 0a 20 20 4c 50 43 53 54 52  Title;..  LPCSTR
1360: 20 6c 70 73 74 72 49 6e 69 74 69 61 6c 44 69 72   lpstrInitialDir
1370: 3b 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70 73 74  ;..  LPCSTR lpst
1380: 72 54 69 74 6c 65 3b 0d 0a 20 20 44 57 4f 52 44  rTitle;..  DWORD
1390: 20 46 6c 61 67 73 3b 0d 0a 20 20 57 4f 52 44 20   Flags;..  WORD 
13a0: 6e 46 69 6c 65 4f 66 66 73 65 74 3b 0d 0a 20 20  nFileOffset;..  
13b0: 57 4f 52 44 20 6e 46 69 6c 65 45 78 74 65 6e 73  WORD nFileExtens
13c0: 69 6f 6e 3b 0d 0a 20 20 4c 50 43 53 54 52 20 6c  ion;..  LPCSTR l
13d0: 70 73 74 72 44 65 66 45 78 74 3b 0d 0a 20 20 4c  pstrDefExt;..  L
13e0: 50 41 52 41 4d 20 6c 43 75 73 74 44 61 74 61 3b  PARAM lCustData;
13f0: 0d 0a 20 20 4c 50 4f 46 4e 48 4f 4f 4b 50 52 4f  ..  LPOFNHOOKPRO
1400: 43 20 6c 70 66 6e 48 6f 6f 6b 3b 0d 0a 20 20 4c  C lpfnHook;..  L
1410: 50 43 53 54 52 20 6c 70 54 65 6d 70 6c 61 74 65  PCSTR lpTemplate
1420: 4e 61 6d 65 3b 0d 0a 2f 2f 20 23 69 66 64 65 66  Name;..// #ifdef
1430: 20 5f 4d 41 43 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 2f   _MAC..// ...../
1440: 2f 20 23 65 6e 64 69 66 0d 0a 2f 2f 20 23 69 66  / #endif..// #if
1450: 20 28 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 20 3e   (_WIN32_WINNT >
1460: 3d 20 30 78 30 35 30 30 29 0d 0a 20 20 76 6f 69  = 0x0500)..  voi
1470: 64 20 2a 09 09 70 76 52 65 73 65 72 76 65 64 3b  d *..pvReserved;
1480: 0d 0a 20 20 44 57 4f 52 44 20 64 77 52 65 73 65  ..  DWORD dwRese
1490: 72 76 65 64 3b 0d 0a 20 20 44 57 4f 52 44 20 46  rved;..  DWORD F
14a0: 6c 61 67 73 45 78 3b 0d 0a 2f 2f 20 23 65 6e 64  lagsEx;..// #end
14b0: 69 66 20 2f 2f 20 28 5f 57 49 4e 33 32 5f 57 49  if // (_WIN32_WI
14c0: 4e 4e 54 20 3e 3d 20 30 78 30 35 30 30 29 0d 0a  NNT >= 0x0500)..
14d0: 7d 0d 0a 61 6c 69 61 73 20 74 61 67 4f 46 4e 41  }..alias tagOFNA
14e0: 20 4f 50 45 4e 46 49 4c 45 4e 41 4d 45 41 3b 0d   OPENFILENAMEA;.
14f0: 0a 61 6c 69 61 73 20 74 61 67 4f 46 4e 41 2a 20  .alias tagOFNA* 
1500: 4c 50 4f 50 45 4e 46 49 4c 45 4e 41 4d 45 41 3b  LPOPENFILENAMEA;
1510: 0d 0a 0d 0a 73 74 72 75 63 74 20 74 61 67 4f 46  ....struct tagOF
1520: 4e 57 20 7b 0d 0a 20 20 44 57 4f 52 44 20 6c 53  NW {..  DWORD lS
1530: 74 72 75 63 74 53 69 7a 65 3b 0d 0a 20 20 48 57  tructSize;..  HW
1540: 4e 44 20 68 77 6e 64 4f 77 6e 65 72 3b 0d 0a 20  ND hwndOwner;.. 
1550: 20 48 49 4e 53 54 41 4e 43 45 20 68 49 6e 73 74   HINSTANCE hInst
1560: 61 6e 63 65 3b 0d 0a 20 20 4c 50 43 57 53 54 52  ance;..  LPCWSTR
1570: 20 6c 70 73 74 72 46 69 6c 74 65 72 3b 0d 0a 20   lpstrFilter;.. 
1580: 20 4c 50 57 53 54 52 20 6c 70 73 74 72 43 75 73   LPWSTR lpstrCus
1590: 74 6f 6d 46 69 6c 74 65 72 3b 0d 0a 20 20 44 57  tomFilter;..  DW
15a0: 4f 52 44 20 6e 4d 61 78 43 75 73 74 46 69 6c 74  ORD nMaxCustFilt
15b0: 65 72 3b 0d 0a 20 20 44 57 4f 52 44 20 6e 46 69  er;..  DWORD nFi
15c0: 6c 74 65 72 49 6e 64 65 78 3b 0d 0a 20 20 4c 50  lterIndex;..  LP
15d0: 57 53 54 52 20 6c 70 73 74 72 46 69 6c 65 3b 0d  WSTR lpstrFile;.
15e0: 0a 20 20 44 57 4f 52 44 20 6e 4d 61 78 46 69 6c  .  DWORD nMaxFil
15f0: 65 3b 0d 0a 20 20 4c 50 57 53 54 52 20 6c 70 73  e;..  LPWSTR lps
1600: 74 72 46 69 6c 65 54 69 74 6c 65 3b 0d 0a 20 20  trFileTitle;..  
1610: 44 57 4f 52 44 20 6e 4d 61 78 46 69 6c 65 54 69  DWORD nMaxFileTi
1620: 74 6c 65 3b 0d 0a 20 20 4c 50 43 57 53 54 52 20  tle;..  LPCWSTR 
1630: 6c 70 73 74 72 49 6e 69 74 69 61 6c 44 69 72 3b  lpstrInitialDir;
1640: 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 73 74  ..  LPCWSTR lpst
1650: 72 54 69 74 6c 65 3b 0d 0a 20 20 44 57 4f 52 44  rTitle;..  DWORD
1660: 20 46 6c 61 67 73 3b 0d 0a 20 20 57 4f 52 44 20   Flags;..  WORD 
1670: 6e 46 69 6c 65 4f 66 66 73 65 74 3b 0d 0a 20 20  nFileOffset;..  
1680: 57 4f 52 44 20 6e 46 69 6c 65 45 78 74 65 6e 73  WORD nFileExtens
1690: 69 6f 6e 3b 0d 0a 20 20 4c 50 43 57 53 54 52 20  ion;..  LPCWSTR 
16a0: 6c 70 73 74 72 44 65 66 45 78 74 3b 0d 0a 20 20  lpstrDefExt;..  
16b0: 4c 50 41 52 41 4d 20 6c 43 75 73 74 44 61 74 61  LPARAM lCustData
16c0: 3b 0d 0a 20 20 4c 50 4f 46 4e 48 4f 4f 4b 50 52  ;..  LPOFNHOOKPR
16d0: 4f 43 20 6c 70 66 6e 48 6f 6f 6b 3b 0d 0a 20 20  OC lpfnHook;..  
16e0: 4c 50 43 57 53 54 52 20 6c 70 54 65 6d 70 6c 61  LPCWSTR lpTempla
16f0: 74 65 4e 61 6d 65 3b 0d 0a 2f 2f 20 23 69 66 64  teName;..// #ifd
1700: 65 66 20 5f 4d 41 43 0d 0a 2f 2f 20 2e 2e 2e 0d  ef _MAC..// ....
1710: 0a 2f 2f 20 23 65 6e 64 69 66 0d 0a 2f 2f 20 23  .// #endif..// #
1720: 69 66 20 28 5f 57 49 4e 33 32 5f 57 49 4e 4e 54  if (_WIN32_WINNT
1730: 20 3e 3d 20 30 78 30 35 30 30 29 0d 0a 20 20 76   >= 0x0500)..  v
1740: 6f 69 64 20 2a 09 09 70 76 52 65 73 65 72 76 65  oid *..pvReserve
1750: 64 3b 0d 0a 20 20 44 57 4f 52 44 20 64 77 52 65  d;..  DWORD dwRe
1760: 73 65 72 76 65 64 3b 0d 0a 20 20 44 57 4f 52 44  served;..  DWORD
1770: 20 46 6c 61 67 73 45 78 3b 0d 0a 2f 2f 20 23 65   FlagsEx;..// #e
1780: 6e 64 69 66 20 2f 2f 20 28 5f 57 49 4e 33 32 5f  ndif // (_WIN32_
1790: 57 49 4e 4e 54 20 3e 3d 20 30 78 30 35 30 30 29  WINNT >= 0x0500)
17a0: 0d 0a 7d 0d 0a 61 6c 69 61 73 20 74 61 67 4f 46  ..}..alias tagOF
17b0: 4e 57 20 4f 50 45 4e 46 49 4c 45 4e 41 4d 45 57  NW OPENFILENAMEW
17c0: 3b 0d 0a 61 6c 69 61 73 20 74 61 67 4f 46 4e 57  ;..alias tagOFNW
17d0: 2a 20 4c 50 4f 50 45 4e 46 49 4c 45 4e 41 4d 45  * LPOPENFILENAME
17e0: 57 3b 0d 0a 0d 0a 2f 2f 20 23 69 66 64 65 66 20  W;....// #ifdef 
17f0: 55 4e 49 43 4f 44 45 0d 0a 2f 2f 20 2e 2e 2e 0d  UNICODE..// ....
1800: 0a 2f 2f 20 23 65 6c 73 65 0d 0a 61 6c 69 61 73  .// #else..alias
1810: 20 4f 50 45 4e 46 49 4c 45 4e 41 4d 45 41 20 4f   OPENFILENAMEA O
1820: 50 45 4e 46 49 4c 45 4e 41 4d 45 3b 0d 0a 61 6c  PENFILENAME;..al
1830: 69 61 73 20 4c 50 4f 50 45 4e 46 49 4c 45 4e 41  ias LPOPENFILENA
1840: 4d 45 41 20 4c 50 4f 50 45 4e 46 49 4c 45 4e 41  MEA LPOPENFILENA
1850: 4d 45 3b 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f  ME;..// #endif /
1860: 2f 20 55 4e 49 43 4f 44 45 0d 0a 0d 0a 2f 2f 20  / UNICODE....// 
1870: 23 69 66 20 28 5f 57 49 4e 33 32 5f 57 49 4e 4e  #if (_WIN32_WINN
1880: 54 20 3e 3d 20 30 78 30 35 30 30 29 0d 0a 2f 2f  T >= 0x0500)..//
1890: 20 23 64 65 66 69 6e 65 20 4f 50 45 4e 46 49 4c   #define OPENFIL
18a0: 45 4e 41 4d 45 5f 53 49 5a 45 5f 56 45 52 53 49  ENAME_SIZE_VERSI
18b0: 4f 4e 5f 34 30 30 41 20 43 44 53 49 5a 45 4f 46  ON_400A CDSIZEOF
18c0: 5f 53 54 52 55 43 54 28 4f 50 45 4e 46 49 4c 45  _STRUCT(OPENFILE
18d0: 4e 41 4d 45 41 2c 6c 70 54 65 6d 70 6c 61 74 65  NAMEA,lpTemplate
18e0: 4e 61 6d 65 29 0d 0a 2f 2f 20 23 64 65 66 69 6e  Name)..// #defin
18f0: 65 20 4f 50 45 4e 46 49 4c 45 4e 41 4d 45 5f 53  e OPENFILENAME_S
1900: 49 5a 45 5f 56 45 52 53 49 4f 4e 5f 34 30 30 57  IZE_VERSION_400W
1910: 20 43 44 53 49 5a 45 4f 46 5f 53 54 52 55 43 54   CDSIZEOF_STRUCT
1920: 28 4f 50 45 4e 46 49 4c 45 4e 41 4d 45 57 2c 6c  (OPENFILENAMEW,l
1930: 70 54 65 6d 70 6c 61 74 65 4e 61 6d 65 29 0d 0a  pTemplateName)..
1940: 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44  // #ifdef UNICOD
1950: 45 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23  E..// #.....// #
1960: 65 6c 73 65 0d 0a 2f 2f 20 23 64 65 66 69 6e 65  else..// #define
1970: 20 4f 50 45 4e 46 49 4c 45 4e 41 4d 45 5f 53 49   OPENFILENAME_SI
1980: 5a 45 5f 56 45 52 53 49 4f 4e 5f 34 30 30 20 4f  ZE_VERSION_400 O
1990: 50 45 4e 46 49 4c 45 4e 41 4d 45 5f 53 49 5a 45  PENFILENAME_SIZE
19a0: 5f 56 45 52 53 49 4f 4e 5f 34 30 30 41 0d 0a 2f  _VERSION_400A../
19b0: 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49  / #endif // !UNI
19c0: 43 4f 44 45 0d 0a 2f 2f 20 23 65 6e 64 69 66 20  CODE..// #endif 
19d0: 2f 2f 20 28 5f 57 49 4e 33 32 5f 57 49 4e 4e 54  // (_WIN32_WINNT
19e0: 20 3e 3d 20 30 78 30 35 30 30 29 0d 0a 0d 0a 65   >= 0x0500)....e
19f0: 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
1a00: 78 70 6f 72 74 20 42 4f 4f 4c 20 47 65 74 4f 70  xport BOOL GetOp
1a10: 65 6e 46 69 6c 65 4e 61 6d 65 41 28 4c 50 4f 50  enFileNameA(LPOP
1a20: 45 4e 46 49 4c 45 4e 41 4d 45 41 29 3b 0d 0a 65  ENFILENAMEA);..e
1a30: 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
1a40: 78 70 6f 72 74 20 42 4f 4f 4c 20 47 65 74 4f 70  xport BOOL GetOp
1a50: 65 6e 46 69 6c 65 4e 61 6d 65 57 28 4c 50 4f 50  enFileNameW(LPOP
1a60: 45 4e 46 49 4c 45 4e 41 4d 45 57 29 3b 0d 0a 2f  ENFILENAMEW);../
1a70: 2f 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44 45  / #ifdef UNICODE
1a80: 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65  ..// #.....// #e
1a90: 6c 73 65 0d 0a 61 6c 69 61 73 20 47 65 74 4f 70  lse..alias GetOp
1aa0: 65 6e 46 69 6c 65 4e 61 6d 65 41 20 47 65 74 4f  enFileNameA GetO
1ab0: 70 65 6e 46 69 6c 65 4e 61 6d 65 3b 0d 0a 2f 2f  penFileName;..//
1ac0: 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49 43   #endif // !UNIC
1ad0: 4f 44 45 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  ODE..extern(Wind
1ae0: 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
1af0: 20 47 65 74 53 61 76 65 46 69 6c 65 4e 61 6d 65   GetSaveFileName
1b00: 41 28 4c 50 4f 50 45 4e 46 49 4c 45 4e 41 4d 45  A(LPOPENFILENAME
1b10: 41 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  A);..extern(Wind
1b20: 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
1b30: 20 47 65 74 53 61 76 65 46 69 6c 65 4e 61 6d 65   GetSaveFileName
1b40: 57 28 4c 50 4f 50 45 4e 46 49 4c 45 4e 41 4d 45  W(LPOPENFILENAME
1b50: 57 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55  W);..// #ifdef U
1b60: 4e 49 43 4f 44 45 0d 0a 2f 2f 20 23 2e 2e 2e 0d  NICODE..// #....
1b70: 0a 2f 2f 20 23 65 6c 73 65 0d 0a 61 6c 69 61 73  .// #else..alias
1b80: 20 47 65 74 53 61 76 65 46 69 6c 65 4e 61 6d 65   GetSaveFileName
1b90: 41 20 47 65 74 53 61 76 65 46 69 6c 65 4e 61 6d  A GetSaveFileNam
1ba0: 65 3b 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f  e;..// #endif //
1bb0: 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74   !UNICODE....ext
1bc0: 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
1bd0: 6f 72 74 20 73 68 6f 72 74 20 47 65 74 46 69 6c  ort short GetFil
1be0: 65 54 69 74 6c 65 41 28 4c 50 43 53 54 52 2c 20  eTitleA(LPCSTR, 
1bf0: 4c 50 53 54 52 2c 20 57 4f 52 44 29 3b 0d 0a 65  LPSTR, WORD);..e
1c00: 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
1c10: 78 70 6f 72 74 20 73 68 6f 72 74 20 47 65 74 46  xport short GetF
1c20: 69 6c 65 54 69 74 6c 65 57 28 4c 50 43 57 53 54  ileTitleW(LPCWST
1c30: 52 2c 20 4c 50 57 53 54 52 2c 20 57 4f 52 44 29  R, LPWSTR, WORD)
1c40: 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49  ;..// #ifdef UNI
1c50: 43 4f 44 45 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f  CODE..// #...../
1c60: 2f 20 23 65 6c 73 65 0d 0a 61 6c 69 61 73 20 47  / #else..alias G
1c70: 65 74 46 69 6c 65 54 69 74 6c 65 41 20 47 65 74  etFileTitleA Get
1c80: 46 69 6c 65 54 69 74 6c 65 3b 0d 0a 2f 2f 20 23  FileTitle;..// #
1c90: 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44  endif // !UNICOD
1ca0: 45 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  E....enum : uint
1cb0: 20 7b 20 4f 46 4e 5f 52 45 41 44 4f 4e 4c 59 20   { OFN_READONLY 
1cc0: 3d 20 30 78 30 30 30 30 30 30 30 31 20 7d 0d 0a  = 0x00000001 }..
1cd0: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 4f 46  enum : uint { OF
1ce0: 4e 5f 4f 56 45 52 57 52 49 54 45 50 52 4f 4d 50  N_OVERWRITEPROMP
1cf0: 54 20 3d 20 30 78 30 30 30 30 30 30 30 32 20 7d  T = 0x00000002 }
1d00: 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
1d10: 4f 46 4e 5f 48 49 44 45 52 45 41 44 4f 4e 4c 59  OFN_HIDEREADONLY
1d20: 20 3d 20 30 78 30 30 30 30 30 30 30 34 20 7d 0d   = 0x00000004 }.
1d30: 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 4f  .enum : uint { O
1d40: 46 4e 5f 4e 4f 43 48 41 4e 47 45 44 49 52 20 3d  FN_NOCHANGEDIR =
1d50: 20 30 78 30 30 30 30 30 30 30 38 20 7d 0d 0a 65   0x00000008 }..e
1d60: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 4f 46 4e  num : uint { OFN
1d70: 5f 53 48 4f 57 48 45 4c 50 20 3d 20 30 78 30 30  _SHOWHELP = 0x00
1d80: 30 30 30 30 31 30 20 7d 0d 0a 65 6e 75 6d 20 3a  000010 }..enum :
1d90: 20 75 69 6e 74 20 7b 20 4f 46 4e 5f 45 4e 41 42   uint { OFN_ENAB
1da0: 4c 45 48 4f 4f 4b 20 3d 20 30 78 30 30 30 30 30  LEHOOK = 0x00000
1db0: 30 32 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  020 }..enum : ui
1dc0: 6e 74 20 7b 20 4f 46 4e 5f 45 4e 41 42 4c 45 54  nt { OFN_ENABLET
1dd0: 45 4d 50 4c 41 54 45 20 3d 20 30 78 30 30 30 30  EMPLATE = 0x0000
1de0: 30 30 34 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  0040 }..enum : u
1df0: 69 6e 74 20 7b 20 4f 46 4e 5f 45 4e 41 42 4c 45  int { OFN_ENABLE
1e00: 54 45 4d 50 4c 41 54 45 48 41 4e 44 4c 45 20 3d  TEMPLATEHANDLE =
1e10: 20 30 78 30 30 30 30 30 30 38 30 20 7d 0d 0a 65   0x00000080 }..e
1e20: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 4f 46 4e  num : uint { OFN
1e30: 5f 4e 4f 56 41 4c 49 44 41 54 45 20 3d 20 30 78  _NOVALIDATE = 0x
1e40: 30 30 30 30 30 31 30 30 20 7d 0d 0a 65 6e 75 6d  00000100 }..enum
1e50: 20 3a 20 75 69 6e 74 20 7b 20 4f 46 4e 5f 41 4c   : uint { OFN_AL
1e60: 4c 4f 57 4d 55 4c 54 49 53 45 4c 45 43 54 20 3d  LOWMULTISELECT =
1e70: 20 30 78 30 30 30 30 30 32 30 30 20 7d 0d 0a 65   0x00000200 }..e
1e80: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 4f 46 4e  num : uint { OFN
1e90: 5f 45 58 54 45 4e 53 49 4f 4e 44 49 46 46 45 52  _EXTENSIONDIFFER
1ea0: 45 4e 54 20 3d 20 30 78 30 30 30 30 30 34 30 30  ENT = 0x00000400
1eb0: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
1ec0: 7b 20 4f 46 4e 5f 50 41 54 48 4d 55 53 54 45 58  { OFN_PATHMUSTEX
1ed0: 49 53 54 20 3d 20 30 78 30 30 30 30 30 38 30 30  IST = 0x00000800
1ee0: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
1ef0: 7b 20 4f 46 4e 5f 46 49 4c 45 4d 55 53 54 45 58  { OFN_FILEMUSTEX
1f00: 49 53 54 20 3d 20 30 78 30 30 30 30 31 30 30 30  IST = 0x00001000
1f10: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
1f20: 7b 20 4f 46 4e 5f 43 52 45 41 54 45 50 52 4f 4d  { OFN_CREATEPROM
1f30: 50 54 20 3d 20 30 78 30 30 30 30 32 30 30 30 20  PT = 0x00002000 
1f40: 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b  }..enum : uint {
1f50: 20 4f 46 4e 5f 53 48 41 52 45 41 57 41 52 45 20   OFN_SHAREAWARE 
1f60: 3d 20 30 78 30 30 30 30 34 30 30 30 20 7d 0d 0a  = 0x00004000 }..
1f70: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 4f 46  enum : uint { OF
1f80: 4e 5f 4e 4f 52 45 41 44 4f 4e 4c 59 52 45 54 55  N_NOREADONLYRETU
1f90: 52 4e 20 3d 20 30 78 30 30 30 30 38 30 30 30 20  RN = 0x00008000 
1fa0: 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b  }..enum : uint {
1fb0: 20 4f 46 4e 5f 4e 4f 54 45 53 54 46 49 4c 45 43   OFN_NOTESTFILEC
1fc0: 52 45 41 54 45 20 3d 20 30 78 30 30 30 31 30 30  REATE = 0x000100
1fd0: 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e  00 }..enum : uin
1fe0: 74 20 7b 20 4f 46 4e 5f 4e 4f 4e 45 54 57 4f 52  t { OFN_NONETWOR
1ff0: 4b 42 55 54 54 4f 4e 20 3d 20 30 78 30 30 30 32  KBUTTON = 0x0002
2000: 30 30 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  0000 }..enum : u
2010: 69 6e 74 20 7b 20 4f 46 4e 5f 4e 4f 4c 4f 4e 47  int { OFN_NOLONG
2020: 4e 41 4d 45 53 20 3d 20 30 78 30 30 30 34 30 30  NAMES = 0x000400
2030: 30 30 20 7d 0d 0a 2f 2f 20 23 69 66 28 57 49 4e  00 }..// #if(WIN
2040: 56 45 52 20 3e 3d 20 30 78 30 34 30 30 29 0d 0a  VER >= 0x0400)..
2050: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 4f 46  enum : uint { OF
2060: 4e 5f 45 58 50 4c 4f 52 45 52 20 3d 20 30 78 30  N_EXPLORER = 0x0
2070: 30 30 38 30 30 30 30 20 7d 0d 0a 65 6e 75 6d 20  0080000 }..enum 
2080: 3a 20 75 69 6e 74 20 7b 20 4f 46 4e 5f 4e 4f 44  : uint { OFN_NOD
2090: 45 52 45 46 45 52 45 4e 43 45 4c 49 4e 4b 53 20  EREFERENCELINKS 
20a0: 3d 20 30 78 30 30 31 30 30 30 30 30 20 7d 0d 0a  = 0x00100000 }..
20b0: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 4f 46  enum : uint { OF
20c0: 4e 5f 4c 4f 4e 47 4e 41 4d 45 53 20 3d 20 30 78  N_LONGNAMES = 0x
20d0: 30 30 32 30 30 30 30 30 20 7d 0d 0a 65 6e 75 6d  00200000 }..enum
20e0: 20 3a 20 75 69 6e 74 20 7b 20 4f 46 4e 5f 45 4e   : uint { OFN_EN
20f0: 41 42 4c 45 49 4e 43 4c 55 44 45 4e 4f 54 49 46  ABLEINCLUDENOTIF
2100: 59 20 3d 20 30 78 30 30 34 30 30 30 30 30 20 7d  Y = 0x00400000 }
2110: 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
2120: 4f 46 4e 5f 45 4e 41 42 4c 45 53 49 5a 49 4e 47  OFN_ENABLESIZING
2130: 20 3d 20 30 78 30 30 38 30 30 30 30 30 20 7d 0d   = 0x00800000 }.
2140: 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2a 20 57 49  .// #endif /* WI
2150: 4e 56 45 52 20 3e 3d 20 30 78 30 34 30 30 20 2a  NVER >= 0x0400 *
2160: 2f 0d 0a 2f 2f 20 23 69 66 20 28 5f 57 49 4e 33  /..// #if (_WIN3
2170: 32 5f 57 49 4e 4e 54 20 3e 3d 20 30 78 30 35 30  2_WINNT >= 0x050
2180: 30 29 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20  0)..enum : uint 
2190: 7b 20 4f 46 4e 5f 44 4f 4e 54 41 44 44 54 4f 52  { OFN_DONTADDTOR
21a0: 45 43 45 4e 54 20 3d 20 30 78 30 32 30 30 30 30  ECENT = 0x020000
21b0: 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e  00 }..enum : uin
21c0: 74 20 7b 20 4f 46 4e 5f 46 4f 52 43 45 53 48 4f  t { OFN_FORCESHO
21d0: 57 48 49 44 44 45 4e 20 3d 20 30 78 31 30 30 30  WHIDDEN = 0x1000
21e0: 30 30 30 30 20 7d 0d 0a 2f 2f 20 23 65 6e 64 69  0000 }..// #endi
21f0: 66 20 2f 2f 20 28 5f 57 49 4e 33 32 5f 57 49 4e  f // (_WIN32_WIN
2200: 4e 54 20 3e 3d 20 30 78 30 35 30 30 29 0d 0a 0d  NT >= 0x0500)...
2210: 0a 2f 2f 20 23 69 66 20 28 5f 57 49 4e 33 32 5f  .// #if (_WIN32_
2220: 57 49 4e 4e 54 20 3e 3d 20 30 78 30 35 30 30 29  WINNT >= 0x0500)
2230: 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
2240: 4f 46 4e 5f 45 58 5f 4e 4f 50 4c 41 43 45 53 42  OFN_EX_NOPLACESB
2250: 41 52 20 3d 20 30 78 30 30 30 30 30 30 30 31 20  AR = 0x00000001 
2260: 7d 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20  }..// #endif // 
2270: 28 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 20 3e 3d  (_WIN32_WINNT >=
2280: 20 30 78 30 35 30 30 29 0d 0a 0d 0a 65 6e 75 6d   0x0500)....enum
2290: 20 3a 20 75 69 6e 74 20 7b 20 4f 46 4e 5f 53 48   : uint { OFN_SH
22a0: 41 52 45 46 41 4c 4c 54 48 52 4f 55 47 48 20 3d  AREFALLTHROUGH =
22b0: 20 32 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e   2 }..enum : uin
22c0: 74 20 7b 20 4f 46 4e 5f 53 48 41 52 45 4e 4f 57  t { OFN_SHARENOW
22d0: 41 52 4e 20 3d 20 31 20 7d 0d 0a 65 6e 75 6d 20  ARN = 1 }..enum 
22e0: 3a 20 75 69 6e 74 20 7b 20 4f 46 4e 5f 53 48 41  : uint { OFN_SHA
22f0: 52 45 57 41 52 4e 20 3d 20 30 20 7d 0d 0a 0d 0a  REWARN = 0 }....
2300: 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
2310: 61 6c 69 61 73 20 55 49 4e 54 5f 50 54 52 20 66  alias UINT_PTR f
2320: 75 6e 63 74 69 6f 6e 28 48 57 4e 44 2c 20 55 49  unction(HWND, UI
2330: 4e 54 2c 20 57 50 41 52 41 4d 2c 20 4c 50 41 52  NT, WPARAM, LPAR
2340: 41 4d 29 20 4c 50 43 43 48 4f 4f 4b 50 52 4f 43  AM) LPCCHOOKPROC
2350: 3b 0d 0a 0d 0a 2f 2f 20 23 69 66 28 57 49 4e 56  ;....// #if(WINV
2360: 45 52 20 3e 3d 20 30 78 30 34 30 30 29 0d 0a 0d  ER >= 0x0400)...
2370: 0a 73 74 72 75 63 74 20 5f 4f 46 4e 4f 54 49 46  .struct _OFNOTIF
2380: 59 41 20 7b 0d 0a 20 20 4e 4d 48 44 52 20 68 64  YA {..  NMHDR hd
2390: 72 3b 0d 0a 20 20 4c 50 4f 50 45 4e 46 49 4c 45  r;..  LPOPENFILE
23a0: 4e 41 4d 45 41 20 6c 70 4f 46 4e 3b 0d 0a 20 20  NAMEA lpOFN;..  
23b0: 4c 50 53 54 52 20 70 73 7a 46 69 6c 65 3b 0d 0a  LPSTR pszFile;..
23c0: 7d 0d 0a 61 6c 69 61 73 20 5f 4f 46 4e 4f 54 49  }..alias _OFNOTI
23d0: 46 59 41 20 4f 46 4e 4f 54 49 46 59 41 3b 0d 0a  FYA OFNOTIFYA;..
23e0: 61 6c 69 61 73 20 5f 4f 46 4e 4f 54 49 46 59 41  alias _OFNOTIFYA
23f0: 2a 20 4c 50 4f 46 4e 4f 54 49 46 59 41 3b 0d 0a  * LPOFNOTIFYA;..
2400: 0d 0a 73 74 72 75 63 74 20 5f 4f 46 4e 4f 54 49  ..struct _OFNOTI
2410: 46 59 57 20 7b 0d 0a 20 20 4e 4d 48 44 52 20 68  FYW {..  NMHDR h
2420: 64 72 3b 0d 0a 20 20 4c 50 4f 50 45 4e 46 49 4c  dr;..  LPOPENFIL
2430: 45 4e 41 4d 45 57 20 6c 70 4f 46 4e 3b 0d 0a 20  ENAMEW lpOFN;.. 
2440: 20 4c 50 57 53 54 52 20 70 73 7a 46 69 6c 65 3b   LPWSTR pszFile;
2450: 0d 0a 7d 0d 0a 61 6c 69 61 73 20 5f 4f 46 4e 4f  ..}..alias _OFNO
2460: 54 49 46 59 57 20 4f 46 4e 4f 54 49 46 59 57 3b  TIFYW OFNOTIFYW;
2470: 0d 0a 61 6c 69 61 73 20 5f 4f 46 4e 4f 54 49 46  ..alias _OFNOTIF
2480: 59 57 2a 20 4c 50 4f 46 4e 4f 54 49 46 59 57 3b  YW* LPOFNOTIFYW;
2490: 0d 0a 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e  ....// #ifdef UN
24a0: 49 43 4f 44 45 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 2f  ICODE..// ...../
24b0: 2f 20 23 65 6c 73 65 0d 0a 61 6c 69 61 73 20 4f  / #else..alias O
24c0: 46 4e 4f 54 49 46 59 41 20 4f 46 4e 4f 54 49 46  FNOTIFYA OFNOTIF
24d0: 59 3b 0d 0a 61 6c 69 61 73 20 4c 50 4f 46 4e 4f  Y;..alias LPOFNO
24e0: 54 49 46 59 41 20 4c 50 4f 46 4e 4f 54 49 46 59  TIFYA LPOFNOTIFY
24f0: 3b 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20  ;..// #endif // 
2500: 55 4e 49 43 4f 44 45 0d 0a 0d 0a 73 74 72 75 63  UNICODE....struc
2510: 74 20 5f 4f 46 4e 4f 54 49 46 59 45 58 41 20 7b  t _OFNOTIFYEXA {
2520: 0d 0a 20 20 4e 4d 48 44 52 20 68 64 72 3b 0d 0a  ..  NMHDR hdr;..
2530: 20 20 4c 50 4f 50 45 4e 46 49 4c 45 4e 41 4d 45    LPOPENFILENAME
2540: 41 20 6c 70 4f 46 4e 3b 0d 0a 20 20 4c 50 56 4f  A lpOFN;..  LPVO
2550: 49 44 20 70 73 66 3b 0d 0a 20 20 4c 50 56 4f 49  ID psf;..  LPVOI
2560: 44 20 70 69 64 6c 3b 0d 0a 7d 0d 0a 61 6c 69 61  D pidl;..}..alia
2570: 73 20 5f 4f 46 4e 4f 54 49 46 59 45 58 41 20 4f  s _OFNOTIFYEXA O
2580: 46 4e 4f 54 49 46 59 45 58 41 3b 0d 0a 61 6c 69  FNOTIFYEXA;..ali
2590: 61 73 20 5f 4f 46 4e 4f 54 49 46 59 45 58 41 2a  as _OFNOTIFYEXA*
25a0: 20 4c 50 4f 46 4e 4f 54 49 46 59 45 58 41 3b 0d   LPOFNOTIFYEXA;.
25b0: 0a 0d 0a 73 74 72 75 63 74 20 5f 4f 46 4e 4f 54  ...struct _OFNOT
25c0: 49 46 59 45 58 57 20 7b 0d 0a 20 20 4e 4d 48 44  IFYEXW {..  NMHD
25d0: 52 20 68 64 72 3b 0d 0a 20 20 4c 50 4f 50 45 4e  R hdr;..  LPOPEN
25e0: 46 49 4c 45 4e 41 4d 45 57 20 6c 70 4f 46 4e 3b  FILENAMEW lpOFN;
25f0: 0d 0a 20 20 4c 50 56 4f 49 44 20 70 73 66 3b 0d  ..  LPVOID psf;.
2600: 0a 20 20 4c 50 56 4f 49 44 20 70 69 64 6c 3b 0d  .  LPVOID pidl;.
2610: 0a 7d 0d 0a 61 6c 69 61 73 20 5f 4f 46 4e 4f 54  .}..alias _OFNOT
2620: 49 46 59 45 58 57 20 4f 46 4e 4f 54 49 46 59 45  IFYEXW OFNOTIFYE
2630: 58 57 3b 0d 0a 61 6c 69 61 73 20 5f 4f 46 4e 4f  XW;..alias _OFNO
2640: 54 49 46 59 45 58 57 2a 20 4c 50 4f 46 4e 4f 54  TIFYEXW* LPOFNOT
2650: 49 46 59 45 58 57 3b 0d 0a 0d 0a 2f 2f 20 23 69  IFYEXW;....// #i
2660: 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 2f 2f  fdef UNICODE..//
2670: 20 2e 2e 2e 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a   .....// #else..
2680: 61 6c 69 61 73 20 4f 46 4e 4f 54 49 46 59 45 58  alias OFNOTIFYEX
2690: 41 20 4f 46 4e 4f 54 49 46 59 45 58 3b 0d 0a 61  A OFNOTIFYEX;..a
26a0: 6c 69 61 73 20 4c 50 4f 46 4e 4f 54 49 46 59 45  lias LPOFNOTIFYE
26b0: 58 41 20 4c 50 4f 46 4e 4f 54 49 46 59 45 58 3b  XA LPOFNOTIFYEX;
26c0: 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 55  ..// #endif // U
26d0: 4e 49 43 4f 44 45 0d 0a 0d 0a 65 6e 75 6d 20 3a  NICODE....enum :
26e0: 20 75 69 6e 74 20 7b 20 43 44 4e 5f 46 49 52 53   uint { CDN_FIRS
26f0: 54 20 3d 20 30 55 2d 36 30 31 55 20 7d 0d 0a 65  T = 0U-601U }..e
2700: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 43 44 4e  num : uint { CDN
2710: 5f 4c 41 53 54 20 3d 20 30 55 2d 36 39 39 55 20  _LAST = 0U-699U 
2720: 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  }....enum : uint
2730: 20 7b 20 43 44 4e 5f 49 4e 49 54 44 4f 4e 45 20   { CDN_INITDONE 
2740: 3d 20 43 44 4e 5f 46 49 52 53 54 20 2d 20 30 78  = CDN_FIRST - 0x
2750: 30 30 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  0000 }..enum : u
2760: 69 6e 74 20 7b 20 43 44 4e 5f 53 45 4c 43 48 41  int { CDN_SELCHA
2770: 4e 47 45 20 3d 20 43 44 4e 5f 46 49 52 53 54 20  NGE = CDN_FIRST 
2780: 2d 20 30 78 30 30 30 31 20 7d 0d 0a 65 6e 75 6d  - 0x0001 }..enum
2790: 20 3a 20 75 69 6e 74 20 7b 20 43 44 4e 5f 46 4f   : uint { CDN_FO
27a0: 4c 44 45 52 43 48 41 4e 47 45 20 3d 20 43 44 4e  LDERCHANGE = CDN
27b0: 5f 46 49 52 53 54 20 2d 20 30 78 30 30 30 32 20  _FIRST - 0x0002 
27c0: 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b  }..enum : uint {
27d0: 20 43 44 4e 5f 53 48 41 52 45 56 49 4f 4c 41 54   CDN_SHAREVIOLAT
27e0: 49 4f 4e 20 3d 20 43 44 4e 5f 46 49 52 53 54 20  ION = CDN_FIRST 
27f0: 2d 20 30 78 30 30 30 33 20 7d 0d 0a 65 6e 75 6d  - 0x0003 }..enum
2800: 20 3a 20 75 69 6e 74 20 7b 20 43 44 4e 5f 48 45   : uint { CDN_HE
2810: 4c 50 20 3d 20 43 44 4e 5f 46 49 52 53 54 20 2d  LP = CDN_FIRST -
2820: 20 30 78 30 30 30 34 20 7d 0d 0a 65 6e 75 6d 20   0x0004 }..enum 
2830: 3a 20 75 69 6e 74 20 7b 20 43 44 4e 5f 46 49 4c  : uint { CDN_FIL
2840: 45 4f 4b 20 3d 20 43 44 4e 5f 46 49 52 53 54 20  EOK = CDN_FIRST 
2850: 2d 20 30 78 30 30 30 35 20 7d 0d 0a 65 6e 75 6d  - 0x0005 }..enum
2860: 20 3a 20 75 69 6e 74 20 7b 20 43 44 4e 5f 54 59   : uint { CDN_TY
2870: 50 45 43 48 41 4e 47 45 20 3d 20 43 44 4e 5f 46  PECHANGE = CDN_F
2880: 49 52 53 54 20 2d 20 30 78 30 30 30 36 20 7d 0d  IRST - 0x0006 }.
2890: 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 43  .enum : uint { C
28a0: 44 4e 5f 49 4e 43 4c 55 44 45 49 54 45 4d 20 3d  DN_INCLUDEITEM =
28b0: 20 43 44 4e 5f 46 49 52 53 54 20 2d 20 30 78 30   CDN_FIRST - 0x0
28c0: 30 30 37 20 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20  007 }....enum : 
28d0: 75 69 6e 74 20 7b 20 43 44 4d 5f 46 49 52 53 54  uint { CDM_FIRST
28e0: 20 3d 20 57 4d 5f 55 53 45 52 20 2b 20 31 30 30   = WM_USER + 100
28f0: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
2900: 7b 20 43 44 4d 5f 4c 41 53 54 20 3d 20 57 4d 5f  { CDM_LAST = WM_
2910: 55 53 45 52 20 2b 20 32 30 30 20 7d 0d 0a 0d 0a  USER + 200 }....
2920: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 43 44  enum : uint { CD
2930: 4d 5f 47 45 54 53 50 45 43 20 3d 20 43 44 4d 5f  M_GETSPEC = CDM_
2940: 46 49 52 53 54 20 2b 20 30 78 30 30 30 30 20 7d  FIRST + 0x0000 }
2950: 0d 0a 2f 2f 20 23 64 65 66 69 6e 65 20 43 6f 6d  ..// #define Com
2960: 6d 44 6c 67 5f 4f 70 65 6e 53 61 76 65 5f 47 65  mDlg_OpenSave_Ge
2970: 74 53 70 65 63 41 28 5f 68 64 6c 67 2c 20 5f 70  tSpecA(_hdlg, _p
2980: 73 7a 2c 20 5f 63 62 6d 61 78 29 20 28 69 6e 74  sz, _cbmax) (int
2990: 29 53 4e 44 4d 53 47 28 5f 68 64 6c 67 2c 20 43  )SNDMSG(_hdlg, C
29a0: 44 4d 5f 47 45 54 53 50 45 43 2c 20 28 57 50 41  DM_GETSPEC, (WPA
29b0: 52 41 4d 29 5f 63 62 6d 61 78 2c 20 28 4c 50 41  RAM)_cbmax, (LPA
29c0: 52 41 4d 29 28 4c 50 53 54 52 29 5f 70 73 7a 29  RAM)(LPSTR)_psz)
29d0: 0d 0a 2f 2f 20 23 64 65 66 69 6e 65 20 43 6f 6d  ..// #define Com
29e0: 6d 44 6c 67 5f 4f 70 65 6e 53 61 76 65 5f 47 65  mDlg_OpenSave_Ge
29f0: 74 53 70 65 63 57 28 5f 68 64 6c 67 2c 20 5f 70  tSpecW(_hdlg, _p
2a00: 73 7a 2c 20 5f 63 62 6d 61 78 29 20 28 69 6e 74  sz, _cbmax) (int
2a10: 29 53 4e 44 4d 53 47 28 5f 68 64 6c 67 2c 20 43  )SNDMSG(_hdlg, C
2a20: 44 4d 5f 47 45 54 53 50 45 43 2c 20 28 57 50 41  DM_GETSPEC, (WPA
2a30: 52 41 4d 29 5f 63 62 6d 61 78 2c 20 28 4c 50 41  RAM)_cbmax, (LPA
2a40: 52 41 4d 29 28 4c 50 57 53 54 52 29 5f 70 73 7a  RAM)(LPWSTR)_psz
2a50: 29 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49  )..// #ifdef UNI
2a60: 43 4f 44 45 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f  CODE..// #...../
2a70: 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 64 65 66  / #else..// #def
2a80: 69 6e 65 20 43 6f 6d 6d 44 6c 67 5f 4f 70 65 6e  ine CommDlg_Open
2a90: 53 61 76 65 5f 47 65 74 53 70 65 63 20 43 6f 6d  Save_GetSpec Com
2aa0: 6d 44 6c 67 5f 4f 70 65 6e 53 61 76 65 5f 47 65  mDlg_OpenSave_Ge
2ab0: 74 53 70 65 63 41 0d 0a 2f 2f 20 23 65 6e 64 69  tSpecA..// #endi
2ac0: 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d  f // !UNICODE...
2ad0: 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 43  .enum : uint { C
2ae0: 44 4d 5f 47 45 54 46 49 4c 45 50 41 54 48 20 3d  DM_GETFILEPATH =
2af0: 20 43 44 4d 5f 46 49 52 53 54 20 2b 20 30 78 30   CDM_FIRST + 0x0
2b00: 30 30 31 20 7d 0d 0a 2f 2f 20 23 64 65 66 69 6e  001 }..// #defin
2b10: 65 20 43 6f 6d 6d 44 6c 67 5f 4f 70 65 6e 53 61  e CommDlg_OpenSa
2b20: 76 65 5f 47 65 74 46 69 6c 65 50 61 74 68 41 28  ve_GetFilePathA(
2b30: 5f 68 64 6c 67 2c 20 5f 70 73 7a 2c 20 5f 63 62  _hdlg, _psz, _cb
2b40: 6d 61 78 29 20 28 69 6e 74 29 53 4e 44 4d 53 47  max) (int)SNDMSG
2b50: 28 5f 68 64 6c 67 2c 20 43 44 4d 5f 47 45 54 46  (_hdlg, CDM_GETF
2b60: 49 4c 45 50 41 54 48 2c 20 28 57 50 41 52 41 4d  ILEPATH, (WPARAM
2b70: 29 5f 63 62 6d 61 78 2c 20 28 4c 50 41 52 41 4d  )_cbmax, (LPARAM
2b80: 29 28 4c 50 53 54 52 29 5f 70 73 7a 29 0d 0a 2f  )(LPSTR)_psz)../
2b90: 2f 20 23 64 65 66 69 6e 65 20 43 6f 6d 6d 44 6c  / #define CommDl
2ba0: 67 5f 4f 70 65 6e 53 61 76 65 5f 47 65 74 46 69  g_OpenSave_GetFi
2bb0: 6c 65 50 61 74 68 57 28 5f 68 64 6c 67 2c 20 5f  lePathW(_hdlg, _
2bc0: 70 73 7a 2c 20 5f 63 62 6d 61 78 29 20 28 69 6e  psz, _cbmax) (in
2bd0: 74 29 53 4e 44 4d 53 47 28 5f 68 64 6c 67 2c 20  t)SNDMSG(_hdlg, 
2be0: 43 44 4d 5f 47 45 54 46 49 4c 45 50 41 54 48 2c  CDM_GETFILEPATH,
2bf0: 20 28 57 50 41 52 41 4d 29 5f 63 62 6d 61 78 2c   (WPARAM)_cbmax,
2c00: 20 28 4c 50 41 52 41 4d 29 28 4c 50 57 53 54 52   (LPARAM)(LPWSTR
2c10: 29 5f 70 73 7a 29 0d 0a 2f 2f 20 23 69 66 64 65  )_psz)..// #ifde
2c20: 66 20 55 4e 49 43 4f 44 45 0d 0a 2f 2f 20 23 2e  f UNICODE..// #.
2c30: 2e 2e 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f  ....// #else..//
2c40: 20 23 64 65 66 69 6e 65 20 43 6f 6d 6d 44 6c 67   #define CommDlg
2c50: 5f 4f 70 65 6e 53 61 76 65 5f 47 65 74 46 69 6c  _OpenSave_GetFil
2c60: 65 50 61 74 68 20 43 6f 6d 6d 44 6c 67 5f 4f 70  ePath CommDlg_Op
2c70: 65 6e 53 61 76 65 5f 47 65 74 46 69 6c 65 50 61  enSave_GetFilePa
2c80: 74 68 41 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f  thA..// #endif /
2c90: 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 6e  / !UNICODE....en
2ca0: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 43 44 4d 5f  um : uint { CDM_
2cb0: 47 45 54 46 4f 4c 44 45 52 50 41 54 48 20 3d 20  GETFOLDERPATH = 
2cc0: 43 44 4d 5f 46 49 52 53 54 20 2b 20 30 78 30 30  CDM_FIRST + 0x00
2cd0: 30 32 20 7d 0d 0a 2f 2f 20 23 64 65 66 69 6e 65  02 }..// #define
2ce0: 20 43 6f 6d 6d 44 6c 67 5f 4f 70 65 6e 53 61 76   CommDlg_OpenSav
2cf0: 65 5f 47 65 74 46 6f 6c 64 65 72 50 61 74 68 41  e_GetFolderPathA
2d00: 28 5f 68 64 6c 67 2c 20 5f 70 73 7a 2c 20 5f 63  (_hdlg, _psz, _c
2d10: 62 6d 61 78 29 20 28 69 6e 74 29 53 4e 44 4d 53  bmax) (int)SNDMS
2d20: 47 28 5f 68 64 6c 67 2c 20 43 44 4d 5f 47 45 54  G(_hdlg, CDM_GET
2d30: 46 4f 4c 44 45 52 50 41 54 48 2c 20 28 57 50 41  FOLDERPATH, (WPA
2d40: 52 41 4d 29 5f 63 62 6d 61 78 2c 20 28 4c 50 41  RAM)_cbmax, (LPA
2d50: 52 41 4d 29 28 4c 50 53 54 52 29 5f 70 73 7a 29  RAM)(LPSTR)_psz)
2d60: 0d 0a 2f 2f 20 23 64 65 66 69 6e 65 20 43 6f 6d  ..// #define Com
2d70: 6d 44 6c 67 5f 4f 70 65 6e 53 61 76 65 5f 47 65  mDlg_OpenSave_Ge
2d80: 74 46 6f 6c 64 65 72 50 61 74 68 57 28 5f 68 64  tFolderPathW(_hd
2d90: 6c 67 2c 20 5f 70 73 7a 2c 20 5f 63 62 6d 61 78  lg, _psz, _cbmax
2da0: 29 20 28 69 6e 74 29 53 4e 44 4d 53 47 28 5f 68  ) (int)SNDMSG(_h
2db0: 64 6c 67 2c 20 43 44 4d 5f 47 45 54 46 4f 4c 44  dlg, CDM_GETFOLD
2dc0: 45 52 50 41 54 48 2c 20 28 57 50 41 52 41 4d 29  ERPATH, (WPARAM)
2dd0: 5f 63 62 6d 61 78 2c 20 28 4c 50 41 52 41 4d 29  _cbmax, (LPARAM)
2de0: 28 4c 50 57 53 54 52 29 5f 70 73 7a 29 0d 0a 2f  (LPWSTR)_psz)../
2df0: 2f 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44 45  / #ifdef UNICODE
2e00: 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65  ..// #.....// #e
2e10: 6c 73 65 0d 0a 2f 2f 20 23 64 65 66 69 6e 65 20  lse..// #define 
2e20: 43 6f 6d 6d 44 6c 67 5f 4f 70 65 6e 53 61 76 65  CommDlg_OpenSave
2e30: 5f 47 65 74 46 6f 6c 64 65 72 50 61 74 68 20 43  _GetFolderPath C
2e40: 6f 6d 6d 44 6c 67 5f 4f 70 65 6e 53 61 76 65 5f  ommDlg_OpenSave_
2e50: 47 65 74 46 6f 6c 64 65 72 50 61 74 68 41 0d 0a  GetFolderPathA..
2e60: 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e  // #endif // !UN
2e70: 49 43 4f 44 45 0d 0a 0d 0a 65 6e 75 6d 20 3a 20  ICODE....enum : 
2e80: 75 69 6e 74 20 7b 20 43 44 4d 5f 47 45 54 46 4f  uint { CDM_GETFO
2e90: 4c 44 45 52 49 44 4c 49 53 54 20 3d 20 43 44 4d  LDERIDLIST = CDM
2ea0: 5f 46 49 52 53 54 20 2b 20 30 78 30 30 30 33 20  _FIRST + 0x0003 
2eb0: 7d 0d 0a 2f 2f 20 23 64 65 66 69 6e 65 20 43 6f  }..// #define Co
2ec0: 6d 6d 44 6c 67 5f 4f 70 65 6e 53 61 76 65 5f 47  mmDlg_OpenSave_G
2ed0: 65 74 46 6f 6c 64 65 72 49 44 4c 69 73 74 28 5f  etFolderIDList(_
2ee0: 68 64 6c 67 2c 20 5f 70 69 64 6c 2c 20 5f 63 62  hdlg, _pidl, _cb
2ef0: 6d 61 78 29 20 28 69 6e 74 29 53 4e 44 4d 53 47  max) (int)SNDMSG
2f00: 28 5f 68 64 6c 67 2c 20 43 44 4d 5f 47 45 54 46  (_hdlg, CDM_GETF
2f10: 4f 4c 44 45 52 49 44 4c 49 53 54 2c 20 28 57 50  OLDERIDLIST, (WP
2f20: 41 52 41 4d 29 5f 63 62 6d 61 78 2c 20 28 4c 50  ARAM)_cbmax, (LP
2f30: 41 52 41 4d 29 28 4c 50 56 4f 49 44 29 5f 70 69  ARAM)(LPVOID)_pi
2f40: 64 6c 29 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75 69  dl)....enum : ui
2f50: 6e 74 20 7b 20 43 44 4d 5f 53 45 54 43 4f 4e 54  nt { CDM_SETCONT
2f60: 52 4f 4c 54 45 58 54 20 3d 20 43 44 4d 5f 46 49  ROLTEXT = CDM_FI
2f70: 52 53 54 20 2b 20 30 78 30 30 30 34 20 7d 0d 0a  RST + 0x0004 }..
2f80: 2f 2f 20 23 64 65 66 69 6e 65 20 43 6f 6d 6d 44  // #define CommD
2f90: 6c 67 5f 4f 70 65 6e 53 61 76 65 5f 53 65 74 43  lg_OpenSave_SetC
2fa0: 6f 6e 74 72 6f 6c 54 65 78 74 28 5f 68 64 6c 67  ontrolText(_hdlg
2fb0: 2c 20 5f 69 64 2c 20 5f 74 65 78 74 29 20 28 76  , _id, _text) (v
2fc0: 6f 69 64 29 53 4e 44 4d 53 47 28 5f 68 64 6c 67  oid)SNDMSG(_hdlg
2fd0: 2c 20 43 44 4d 5f 53 45 54 43 4f 4e 54 52 4f 4c  , CDM_SETCONTROL
2fe0: 54 45 58 54 2c 20 28 57 50 41 52 41 4d 29 5f 69  TEXT, (WPARAM)_i
2ff0: 64 2c 20 28 4c 50 41 52 41 4d 29 28 4c 50 53 54  d, (LPARAM)(LPST
3000: 52 29 5f 74 65 78 74 29 0d 0a 0d 0a 65 6e 75 6d  R)_text)....enum
3010: 20 3a 20 75 69 6e 74 20 7b 20 43 44 4d 5f 48 49   : uint { CDM_HI
3020: 44 45 43 4f 4e 54 52 4f 4c 20 3d 20 43 44 4d 5f  DECONTROL = CDM_
3030: 46 49 52 53 54 20 2b 20 30 78 30 30 30 35 20 7d  FIRST + 0x0005 }
3040: 0d 0a 2f 2f 20 23 64 65 66 69 6e 65 20 43 6f 6d  ..// #define Com
3050: 6d 44 6c 67 5f 4f 70 65 6e 53 61 76 65 5f 48 69  mDlg_OpenSave_Hi
3060: 64 65 43 6f 6e 74 72 6f 6c 28 5f 68 64 6c 67 2c  deControl(_hdlg,
3070: 20 5f 69 64 29 20 28 76 6f 69 64 29 53 4e 44 4d   _id) (void)SNDM
3080: 53 47 28 5f 68 64 6c 67 2c 20 43 44 4d 5f 48 49  SG(_hdlg, CDM_HI
3090: 44 45 43 4f 4e 54 52 4f 4c 2c 20 28 57 50 41 52  DECONTROL, (WPAR
30a0: 41 4d 29 5f 69 64 2c 20 30 29 0d 0a 0d 0a 65 6e  AM)_id, 0)....en
30b0: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 43 44 4d 5f  um : uint { CDM_
30c0: 53 45 54 44 45 46 45 58 54 20 3d 20 43 44 4d 5f  SETDEFEXT = CDM_
30d0: 46 49 52 53 54 20 2b 20 30 78 30 30 30 36 20 7d  FIRST + 0x0006 }
30e0: 0d 0a 2f 2f 20 23 64 65 66 69 6e 65 20 43 6f 6d  ..// #define Com
30f0: 6d 44 6c 67 5f 4f 70 65 6e 53 61 76 65 5f 53 65  mDlg_OpenSave_Se
3100: 74 44 65 66 45 78 74 28 5f 68 64 6c 67 2c 20 5f  tDefExt(_hdlg, _
3110: 70 73 7a 65 78 74 29 20 28 76 6f 69 64 29 53 4e  pszext) (void)SN
3120: 44 4d 53 47 28 5f 68 64 6c 67 2c 20 43 44 4d 5f  DMSG(_hdlg, CDM_
3130: 53 45 54 44 45 46 45 58 54 2c 20 30 2c 20 28 4c  SETDEFEXT, 0, (L
3140: 50 41 52 41 4d 29 28 4c 50 53 54 52 29 5f 70 73  PARAM)(LPSTR)_ps
3150: 7a 65 78 74 29 0d 0a 2f 2f 20 23 65 6e 64 69 66  zext)..// #endif
3160: 20 2f 2a 20 57 49 4e 56 45 52 20 3e 3d 20 30 78   /* WINVER >= 0x
3170: 30 34 30 30 20 2a 2f 0d 0a 0d 0a 2f 2f 20 23 69  0400 */....// #i
3180: 66 6e 64 65 66 20 5f 4d 41 43 0d 0a 73 74 72 75  fndef _MAC..stru
3190: 63 74 20 74 61 67 43 48 4f 4f 53 45 43 4f 4c 4f  ct tagCHOOSECOLO
31a0: 52 41 20 7b 0d 0a 20 20 44 57 4f 52 44 20 6c 53  RA {..  DWORD lS
31b0: 74 72 75 63 74 53 69 7a 65 3b 0d 0a 20 20 48 57  tructSize;..  HW
31c0: 4e 44 20 68 77 6e 64 4f 77 6e 65 72 3b 0d 0a 20  ND hwndOwner;.. 
31d0: 20 48 57 4e 44 20 68 49 6e 73 74 61 6e 63 65 3b   HWND hInstance;
31e0: 0d 0a 20 20 43 4f 4c 4f 52 52 45 46 20 72 67 62  ..  COLORREF rgb
31f0: 52 65 73 75 6c 74 3b 0d 0a 20 20 43 4f 4c 4f 52  Result;..  COLOR
3200: 52 45 46 20 2a 20 20 20 20 6c 70 43 75 73 74 43  REF *    lpCustC
3210: 6f 6c 6f 72 73 3b 0d 0a 20 20 44 57 4f 52 44 20  olors;..  DWORD 
3220: 46 6c 61 67 73 3b 0d 0a 20 20 4c 50 41 52 41 4d  Flags;..  LPARAM
3230: 20 6c 43 75 73 74 44 61 74 61 3b 0d 0a 20 20 4c   lCustData;..  L
3240: 50 43 43 48 4f 4f 4b 50 52 4f 43 20 6c 70 66 6e  PCCHOOKPROC lpfn
3250: 48 6f 6f 6b 3b 0d 0a 20 20 4c 50 43 53 54 52 20  Hook;..  LPCSTR 
3260: 6c 70 54 65 6d 70 6c 61 74 65 4e 61 6d 65 3b 0d  lpTemplateName;.
3270: 0a 7d 0d 0a 61 6c 69 61 73 20 74 61 67 43 48 4f  .}..alias tagCHO
3280: 4f 53 45 43 4f 4c 4f 52 41 20 43 48 4f 4f 53 45  OSECOLORA CHOOSE
3290: 43 4f 4c 4f 52 41 3b 0d 0a 61 6c 69 61 73 20 74  COLORA;..alias t
32a0: 61 67 43 48 4f 4f 53 45 43 4f 4c 4f 52 41 2a 20  agCHOOSECOLORA* 
32b0: 4c 50 43 48 4f 4f 53 45 43 4f 4c 4f 52 41 3b 0d  LPCHOOSECOLORA;.
32c0: 0a 0d 0a 73 74 72 75 63 74 20 74 61 67 43 48 4f  ...struct tagCHO
32d0: 4f 53 45 43 4f 4c 4f 52 57 20 7b 0d 0a 20 20 44  OSECOLORW {..  D
32e0: 57 4f 52 44 20 6c 53 74 72 75 63 74 53 69 7a 65  WORD lStructSize
32f0: 3b 0d 0a 20 20 48 57 4e 44 20 68 77 6e 64 4f 77  ;..  HWND hwndOw
3300: 6e 65 72 3b 0d 0a 20 20 48 57 4e 44 20 68 49 6e  ner;..  HWND hIn
3310: 73 74 61 6e 63 65 3b 0d 0a 20 20 43 4f 4c 4f 52  stance;..  COLOR
3320: 52 45 46 20 72 67 62 52 65 73 75 6c 74 3b 0d 0a  REF rgbResult;..
3330: 20 20 43 4f 4c 4f 52 52 45 46 20 2a 20 20 20 20    COLORREF *    
3340: 6c 70 43 75 73 74 43 6f 6c 6f 72 73 3b 0d 0a 20  lpCustColors;.. 
3350: 20 44 57 4f 52 44 20 46 6c 61 67 73 3b 0d 0a 20   DWORD Flags;.. 
3360: 20 4c 50 41 52 41 4d 20 6c 43 75 73 74 44 61 74   LPARAM lCustDat
3370: 61 3b 0d 0a 20 20 4c 50 43 43 48 4f 4f 4b 50 52  a;..  LPCCHOOKPR
3380: 4f 43 20 6c 70 66 6e 48 6f 6f 6b 3b 0d 0a 20 20  OC lpfnHook;..  
3390: 4c 50 43 57 53 54 52 20 6c 70 54 65 6d 70 6c 61  LPCWSTR lpTempla
33a0: 74 65 4e 61 6d 65 3b 0d 0a 7d 0d 0a 61 6c 69 61  teName;..}..alia
33b0: 73 20 74 61 67 43 48 4f 4f 53 45 43 4f 4c 4f 52  s tagCHOOSECOLOR
33c0: 57 20 43 48 4f 4f 53 45 43 4f 4c 4f 52 57 3b 0d  W CHOOSECOLORW;.
33d0: 0a 61 6c 69 61 73 20 74 61 67 43 48 4f 4f 53 45  .alias tagCHOOSE
33e0: 43 4f 4c 4f 52 57 2a 20 4c 50 43 48 4f 4f 53 45  COLORW* LPCHOOSE
33f0: 43 4f 4c 4f 52 57 3b 0d 0a 0d 0a 2f 2f 20 23 69  COLORW;....// #i
3400: 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 2f 2f  fdef UNICODE..//
3410: 20 2e 2e 2e 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a   .....// #else..
3420: 61 6c 69 61 73 20 43 48 4f 4f 53 45 43 4f 4c 4f  alias CHOOSECOLO
3430: 52 41 20 43 48 4f 4f 53 45 43 4f 4c 4f 52 3b 0d  RA CHOOSECOLOR;.
3440: 0a 61 6c 69 61 73 20 4c 50 43 48 4f 4f 53 45 43  .alias LPCHOOSEC
3450: 4f 4c 4f 52 41 20 4c 50 43 48 4f 4f 53 45 43 4f  OLORA LPCHOOSECO
3460: 4c 4f 52 3b 0d 0a 2f 2f 20 23 65 6e 64 69 66 20  LOR;..// #endif 
3470: 2f 2f 20 55 4e 49 43 4f 44 45 0d 0a 2f 2f 20 23  // UNICODE..// #
3480: 65 6c 73 65 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 2f 2f  else..// .....//
3490: 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d   #ifdef UNICODE.
34a0: 0a 2f 2f 20 2e 2e 2e 0d 0a 2f 2f 20 23 65 6c 73  .// .....// #els
34b0: 65 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 2f 2f 20 23 65  e..// .....// #e
34c0: 6e 64 69 66 20 2f 2f 20 55 4e 49 43 4f 44 45 0d  ndif // UNICODE.
34d0: 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 5f 4d 41  .// #endif //_MA
34e0: 43 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  C....extern(Wind
34f0: 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
3500: 20 43 68 6f 6f 73 65 43 6f 6c 6f 72 41 28 4c 50   ChooseColorA(LP
3510: 43 48 4f 4f 53 45 43 4f 4c 4f 52 41 29 3b 0d 0a  CHOOSECOLORA);..
3520: 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
3530: 65 78 70 6f 72 74 20 42 4f 4f 4c 20 43 68 6f 6f  export BOOL Choo
3540: 73 65 43 6f 6c 6f 72 57 28 4c 50 43 48 4f 4f 53  seColorW(LPCHOOS
3550: 45 43 4f 4c 4f 52 57 29 3b 0d 0a 2f 2f 20 23 69  ECOLORW);..// #i
3560: 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 2f 2f  fdef UNICODE..//
3570: 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6c 73 65 0d   #.....// #else.
3580: 0a 61 6c 69 61 73 20 43 68 6f 6f 73 65 43 6f 6c  .alias ChooseCol
3590: 6f 72 41 20 43 68 6f 6f 73 65 43 6f 6c 6f 72 3b  orA ChooseColor;
35a0: 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21  ..// #endif // !
35b0: 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 6e 75 6d 20  UNICODE....enum 
35c0: 3a 20 75 69 6e 74 20 7b 20 43 43 5f 52 47 42 49  : uint { CC_RGBI
35d0: 4e 49 54 20 3d 20 30 78 30 30 30 30 30 30 30 31  NIT = 0x00000001
35e0: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
35f0: 7b 20 43 43 5f 46 55 4c 4c 4f 50 45 4e 20 3d 20  { CC_FULLOPEN = 
3600: 30 78 30 30 30 30 30 30 30 32 20 7d 0d 0a 65 6e  0x00000002 }..en
3610: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 43 43 5f 50  um : uint { CC_P
3620: 52 45 56 45 4e 54 46 55 4c 4c 4f 50 45 4e 20 3d  REVENTFULLOPEN =
3630: 20 30 78 30 30 30 30 30 30 30 34 20 7d 0d 0a 65   0x00000004 }..e
3640: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 43 43 5f  num : uint { CC_
3650: 53 48 4f 57 48 45 4c 50 20 3d 20 30 78 30 30 30  SHOWHELP = 0x000
3660: 30 30 30 30 38 20 7d 0d 0a 65 6e 75 6d 20 3a 20  00008 }..enum : 
3670: 75 69 6e 74 20 7b 20 43 43 5f 45 4e 41 42 4c 45  uint { CC_ENABLE
3680: 48 4f 4f 4b 20 3d 20 30 78 30 30 30 30 30 30 31  HOOK = 0x0000001
3690: 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  0 }..enum : uint
36a0: 20 7b 20 43 43 5f 45 4e 41 42 4c 45 54 45 4d 50   { CC_ENABLETEMP
36b0: 4c 41 54 45 20 3d 20 30 78 30 30 30 30 30 30 32  LATE = 0x0000002
36c0: 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  0 }..enum : uint
36d0: 20 7b 20 43 43 5f 45 4e 41 42 4c 45 54 45 4d 50   { CC_ENABLETEMP
36e0: 4c 41 54 45 48 41 4e 44 4c 45 20 3d 20 30 78 30  LATEHANDLE = 0x0
36f0: 30 30 30 30 30 34 30 20 7d 0d 0a 2f 2f 20 23 69  0000040 }..// #i
3700: 66 28 57 49 4e 56 45 52 20 3e 3d 20 30 78 30 34  f(WINVER >= 0x04
3710: 30 30 29 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  00)..enum : uint
3720: 20 7b 20 43 43 5f 53 4f 4c 49 44 43 4f 4c 4f 52   { CC_SOLIDCOLOR
3730: 20 3d 20 30 78 30 30 30 30 30 30 38 30 20 7d 0d   = 0x00000080 }.
3740: 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 43  .enum : uint { C
3750: 43 5f 41 4e 59 43 4f 4c 4f 52 20 3d 20 30 78 30  C_ANYCOLOR = 0x0
3760: 30 30 30 30 31 30 30 20 7d 0d 0a 2f 2f 20 23 65  0000100 }..// #e
3770: 6e 64 69 66 20 2f 2a 20 57 49 4e 56 45 52 20 3e  ndif /* WINVER >
3780: 3d 20 30 78 30 34 30 30 20 2a 2f 0d 0a 0d 0a 65  = 0x0400 */....e
3790: 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 61  xtern(Windows) a
37a0: 6c 69 61 73 20 55 49 4e 54 5f 50 54 52 20 66 75  lias UINT_PTR fu
37b0: 6e 63 74 69 6f 6e 28 48 57 4e 44 2c 20 55 49 4e  nction(HWND, UIN
37c0: 54 2c 20 57 50 41 52 41 4d 2c 20 4c 50 41 52 41  T, WPARAM, LPARA
37d0: 4d 29 20 4c 50 46 52 48 4f 4f 4b 50 52 4f 43 3b  M) LPFRHOOKPROC;
37e0: 0d 0a 0d 0a 73 74 72 75 63 74 20 74 61 67 46 49  ....struct tagFI
37f0: 4e 44 52 45 50 4c 41 43 45 41 20 7b 0d 0a 20 20  NDREPLACEA {..  
3800: 44 57 4f 52 44 20 6c 53 74 72 75 63 74 53 69 7a  DWORD lStructSiz
3810: 65 3b 0d 0a 20 20 48 57 4e 44 20 68 77 6e 64 4f  e;..  HWND hwndO
3820: 77 6e 65 72 3b 0d 0a 20 20 48 49 4e 53 54 41 4e  wner;..  HINSTAN
3830: 43 45 20 68 49 6e 73 74 61 6e 63 65 3b 0d 0a 0d  CE hInstance;...
3840: 0a 20 20 44 57 4f 52 44 20 46 6c 61 67 73 3b 0d  .  DWORD Flags;.
3850: 0a 20 20 4c 50 53 54 52 20 6c 70 73 74 72 46 69  .  LPSTR lpstrFi
3860: 6e 64 57 68 61 74 3b 0d 0a 20 20 4c 50 53 54 52  ndWhat;..  LPSTR
3870: 20 6c 70 73 74 72 52 65 70 6c 61 63 65 57 69 74   lpstrReplaceWit
3880: 68 3b 0d 0a 20 20 57 4f 52 44 20 77 46 69 6e 64  h;..  WORD wFind
3890: 57 68 61 74 4c 65 6e 3b 0d 0a 20 20 57 4f 52 44  WhatLen;..  WORD
38a0: 20 77 52 65 70 6c 61 63 65 57 69 74 68 4c 65 6e   wReplaceWithLen
38b0: 3b 0d 0a 20 20 4c 50 41 52 41 4d 20 6c 43 75 73  ;..  LPARAM lCus
38c0: 74 44 61 74 61 3b 0d 0a 20 20 4c 50 46 52 48 4f  tData;..  LPFRHO
38d0: 4f 4b 50 52 4f 43 20 6c 70 66 6e 48 6f 6f 6b 3b  OKPROC lpfnHook;
38e0: 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70 54 65 6d  ..  LPCSTR lpTem
38f0: 70 6c 61 74 65 4e 61 6d 65 3b 0d 0a 7d 0d 0a 61  plateName;..}..a
3900: 6c 69 61 73 20 74 61 67 46 49 4e 44 52 45 50 4c  lias tagFINDREPL
3910: 41 43 45 41 20 46 49 4e 44 52 45 50 4c 41 43 45  ACEA FINDREPLACE
3920: 41 3b 0d 0a 61 6c 69 61 73 20 74 61 67 46 49 4e  A;..alias tagFIN
3930: 44 52 45 50 4c 41 43 45 41 2a 20 4c 50 46 49 4e  DREPLACEA* LPFIN
3940: 44 52 45 50 4c 41 43 45 41 3b 0d 0a 0d 0a 73 74  DREPLACEA;....st
3950: 72 75 63 74 20 74 61 67 46 49 4e 44 52 45 50 4c  ruct tagFINDREPL
3960: 41 43 45 57 20 7b 0d 0a 20 20 44 57 4f 52 44 20  ACEW {..  DWORD 
3970: 6c 53 74 72 75 63 74 53 69 7a 65 3b 0d 0a 20 20  lStructSize;..  
3980: 48 57 4e 44 20 68 77 6e 64 4f 77 6e 65 72 3b 0d  HWND hwndOwner;.
3990: 0a 20 20 48 49 4e 53 54 41 4e 43 45 20 68 49 6e  .  HINSTANCE hIn
39a0: 73 74 61 6e 63 65 3b 0d 0a 0d 0a 20 20 44 57 4f  stance;....  DWO
39b0: 52 44 20 46 6c 61 67 73 3b 0d 0a 20 20 4c 50 57  RD Flags;..  LPW
39c0: 53 54 52 20 6c 70 73 74 72 46 69 6e 64 57 68 61  STR lpstrFindWha
39d0: 74 3b 0d 0a 20 20 4c 50 57 53 54 52 20 6c 70 73  t;..  LPWSTR lps
39e0: 74 72 52 65 70 6c 61 63 65 57 69 74 68 3b 0d 0a  trReplaceWith;..
39f0: 20 20 57 4f 52 44 20 77 46 69 6e 64 57 68 61 74    WORD wFindWhat
3a00: 4c 65 6e 3b 0d 0a 20 20 57 4f 52 44 20 77 52 65  Len;..  WORD wRe
3a10: 70 6c 61 63 65 57 69 74 68 4c 65 6e 3b 0d 0a 20  placeWithLen;.. 
3a20: 20 4c 50 41 52 41 4d 20 6c 43 75 73 74 44 61 74   LPARAM lCustDat
3a30: 61 3b 0d 0a 20 20 4c 50 46 52 48 4f 4f 4b 50 52  a;..  LPFRHOOKPR
3a40: 4f 43 20 6c 70 66 6e 48 6f 6f 6b 3b 0d 0a 20 20  OC lpfnHook;..  
3a50: 4c 50 43 57 53 54 52 20 6c 70 54 65 6d 70 6c 61  LPCWSTR lpTempla
3a60: 74 65 4e 61 6d 65 3b 0d 0a 7d 0d 0a 61 6c 69 61  teName;..}..alia
3a70: 73 20 74 61 67 46 49 4e 44 52 45 50 4c 41 43 45  s tagFINDREPLACE
3a80: 57 20 46 49 4e 44 52 45 50 4c 41 43 45 57 3b 0d  W FINDREPLACEW;.
3a90: 0a 61 6c 69 61 73 20 74 61 67 46 49 4e 44 52 45  .alias tagFINDRE
3aa0: 50 4c 41 43 45 57 2a 20 4c 50 46 49 4e 44 52 45  PLACEW* LPFINDRE
3ab0: 50 4c 41 43 45 57 3b 0d 0a 0d 0a 2f 2f 20 23 69  PLACEW;....// #i
3ac0: 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 2f 2f  fdef UNICODE..//
3ad0: 20 2e 2e 2e 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a   .....// #else..
3ae0: 61 6c 69 61 73 20 46 49 4e 44 52 45 50 4c 41 43  alias FINDREPLAC
3af0: 45 41 20 46 49 4e 44 52 45 50 4c 41 43 45 3b 0d  EA FINDREPLACE;.
3b00: 0a 61 6c 69 61 73 20 4c 50 46 49 4e 44 52 45 50  .alias LPFINDREP
3b10: 4c 41 43 45 41 20 4c 50 46 49 4e 44 52 45 50 4c  LACEA LPFINDREPL
3b20: 41 43 45 3b 0d 0a 2f 2f 20 23 65 6e 64 69 66 20  ACE;..// #endif 
3b30: 2f 2f 20 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 6e  // UNICODE....en
3b40: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 46 52 5f 44  um : uint { FR_D
3b50: 4f 57 4e 20 3d 20 30 78 30 30 30 30 30 30 30 31  OWN = 0x00000001
3b60: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
3b70: 7b 20 46 52 5f 57 48 4f 4c 45 57 4f 52 44 20 3d  { FR_WHOLEWORD =
3b80: 20 30 78 30 30 30 30 30 30 30 32 20 7d 0d 0a 65   0x00000002 }..e
3b90: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 46 52 5f  num : uint { FR_
3ba0: 4d 41 54 43 48 43 41 53 45 20 3d 20 30 78 30 30  MATCHCASE = 0x00
3bb0: 30 30 30 30 30 34 20 7d 0d 0a 65 6e 75 6d 20 3a  000004 }..enum :
3bc0: 20 75 69 6e 74 20 7b 20 46 52 5f 46 49 4e 44 4e   uint { FR_FINDN
3bd0: 45 58 54 20 3d 20 30 78 30 30 30 30 30 30 30 38  EXT = 0x00000008
3be0: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
3bf0: 7b 20 46 52 5f 52 45 50 4c 41 43 45 20 3d 20 30  { FR_REPLACE = 0
3c00: 78 30 30 30 30 30 30 31 30 20 7d 0d 0a 65 6e 75  x00000010 }..enu
3c10: 6d 20 3a 20 75 69 6e 74 20 7b 20 46 52 5f 52 45  m : uint { FR_RE
3c20: 50 4c 41 43 45 41 4c 4c 20 3d 20 30 78 30 30 30  PLACEALL = 0x000
3c30: 30 30 30 32 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20  00020 }..enum : 
3c40: 75 69 6e 74 20 7b 20 46 52 5f 44 49 41 4c 4f 47  uint { FR_DIALOG
3c50: 54 45 52 4d 20 3d 20 30 78 30 30 30 30 30 30 34  TERM = 0x0000004
3c60: 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  0 }..enum : uint
3c70: 20 7b 20 46 52 5f 53 48 4f 57 48 45 4c 50 20 3d   { FR_SHOWHELP =
3c80: 20 30 78 30 30 30 30 30 30 38 30 20 7d 0d 0a 65   0x00000080 }..e
3c90: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 46 52 5f  num : uint { FR_
3ca0: 45 4e 41 42 4c 45 48 4f 4f 4b 20 3d 20 30 78 30  ENABLEHOOK = 0x0
3cb0: 30 30 30 30 31 30 30 20 7d 0d 0a 65 6e 75 6d 20  0000100 }..enum 
3cc0: 3a 20 75 69 6e 74 20 7b 20 46 52 5f 45 4e 41 42  : uint { FR_ENAB
3cd0: 4c 45 54 45 4d 50 4c 41 54 45 20 3d 20 30 78 30  LETEMPLATE = 0x0
3ce0: 30 30 30 30 32 30 30 20 7d 0d 0a 65 6e 75 6d 20  0000200 }..enum 
3cf0: 3a 20 75 69 6e 74 20 7b 20 46 52 5f 4e 4f 55 50  : uint { FR_NOUP
3d00: 44 4f 57 4e 20 3d 20 30 78 30 30 30 30 30 34 30  DOWN = 0x0000040
3d10: 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  0 }..enum : uint
3d20: 20 7b 20 46 52 5f 4e 4f 4d 41 54 43 48 43 41 53   { FR_NOMATCHCAS
3d30: 45 20 3d 20 30 78 30 30 30 30 30 38 30 30 20 7d  E = 0x00000800 }
3d40: 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
3d50: 46 52 5f 4e 4f 57 48 4f 4c 45 57 4f 52 44 20 3d  FR_NOWHOLEWORD =
3d60: 20 30 78 30 30 30 30 31 30 30 30 20 7d 0d 0a 65   0x00001000 }..e
3d70: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 46 52 5f  num : uint { FR_
3d80: 45 4e 41 42 4c 45 54 45 4d 50 4c 41 54 45 48 41  ENABLETEMPLATEHA
3d90: 4e 44 4c 45 20 3d 20 30 78 30 30 30 30 32 30 30  NDLE = 0x0000200
3da0: 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  0 }..enum : uint
3db0: 20 7b 20 46 52 5f 48 49 44 45 55 50 44 4f 57 4e   { FR_HIDEUPDOWN
3dc0: 20 3d 20 30 78 30 30 30 30 34 30 30 30 20 7d 0d   = 0x00004000 }.
3dd0: 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 46  .enum : uint { F
3de0: 52 5f 48 49 44 45 4d 41 54 43 48 43 41 53 45 20  R_HIDEMATCHCASE 
3df0: 3d 20 30 78 30 30 30 30 38 30 30 30 20 7d 0d 0a  = 0x00008000 }..
3e00: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 46 52  enum : uint { FR
3e10: 5f 48 49 44 45 57 48 4f 4c 45 57 4f 52 44 20 3d  _HIDEWHOLEWORD =
3e20: 20 30 78 30 30 30 31 30 30 30 30 20 7d 0d 0a 65   0x00010000 }..e
3e30: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 46 52 5f  num : uint { FR_
3e40: 52 41 57 20 3d 20 30 78 30 30 30 32 30 30 30 30  RAW = 0x00020000
3e50: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
3e60: 7b 20 46 52 5f 4d 41 54 43 48 44 49 41 43 20 3d  { FR_MATCHDIAC =
3e70: 20 30 78 32 30 30 30 30 30 30 30 20 7d 0d 0a 65   0x20000000 }..e
3e80: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 46 52 5f  num : uint { FR_
3e90: 4d 41 54 43 48 4b 41 53 48 49 44 41 20 3d 20 30  MATCHKASHIDA = 0
3ea0: 78 34 30 30 30 30 30 30 30 20 7d 0d 0a 65 6e 75  x40000000 }..enu
3eb0: 6d 20 3a 20 75 69 6e 74 20 7b 20 46 52 5f 4d 41  m : uint { FR_MA
3ec0: 54 43 48 41 4c 45 46 48 41 4d 5a 41 20 3d 20 30  TCHALEFHAMZA = 0
3ed0: 78 38 30 30 30 30 30 30 30 20 7d 0d 0a 0d 0a 65  x80000000 }....e
3ee0: 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
3ef0: 78 70 6f 72 74 20 48 57 4e 44 20 46 69 6e 64 54  xport HWND FindT
3f00: 65 78 74 41 28 4c 50 46 49 4e 44 52 45 50 4c 41  extA(LPFINDREPLA
3f10: 43 45 41 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69  CEA);..extern(Wi
3f20: 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 48 57  ndows) export HW
3f30: 4e 44 20 46 69 6e 64 54 65 78 74 57 28 4c 50 46  ND FindTextW(LPF
3f40: 49 4e 44 52 45 50 4c 41 43 45 57 29 3b 0d 0a 2f  INDREPLACEW);../
3f50: 2f 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44 45  / #ifdef UNICODE
3f60: 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65  ..// #.....// #e
3f70: 6c 73 65 0d 0a 61 6c 69 61 73 20 46 69 6e 64 54  lse..alias FindT
3f80: 65 78 74 41 20 46 69 6e 64 54 65 78 74 3b 0d 0a  extA FindText;..
3f90: 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e  // #endif // !UN
3fa0: 49 43 4f 44 45 0d 0a 2f 2f 20 23 69 66 6e 64 65  ICODE..// #ifnde
3fb0: 66 20 5f 4d 41 43 0d 0a 65 78 74 65 72 6e 28 57  f _MAC..extern(W
3fc0: 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 48  indows) export H
3fd0: 57 4e 44 20 52 65 70 6c 61 63 65 54 65 78 74 41  WND ReplaceTextA
3fe0: 28 4c 50 46 49 4e 44 52 45 50 4c 41 43 45 41 29  (LPFINDREPLACEA)
3ff0: 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ;..extern(Window
4000: 73 29 20 65 78 70 6f 72 74 20 48 57 4e 44 20 52  s) export HWND R
4010: 65 70 6c 61 63 65 54 65 78 74 57 28 4c 50 46 49  eplaceTextW(LPFI
4020: 4e 44 52 45 50 4c 41 43 45 57 29 3b 0d 0a 2f 2f  NDREPLACEW);..//
4030: 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d   #ifdef UNICODE.
4040: 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6c  .// #.....// #el
4050: 73 65 0d 0a 61 6c 69 61 73 20 52 65 70 6c 61 63  se..alias Replac
4060: 65 54 65 78 74 41 20 52 65 70 6c 61 63 65 54 65  eTextA ReplaceTe
4070: 78 74 3b 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f  xt;..// #endif /
4080: 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 2f 2f 20 23  / !UNICODE..// #
4090: 65 6c 73 65 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 2f 2f  else..// .....//
40a0: 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d   #ifdef UNICODE.
40b0: 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6c  .// #.....// #el
40c0: 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20  se..// #.....// 
40d0: 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49 43 4f  #endif // !UNICO
40e0: 44 45 0d 0a 2f 2f 20 23 65 6e 64 69 66 0d 0a 0d  DE..// #endif...
40f0: 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
4100: 20 61 6c 69 61 73 20 55 49 4e 54 5f 50 54 52 20   alias UINT_PTR 
4110: 66 75 6e 63 74 69 6f 6e 28 48 57 4e 44 2c 20 55  function(HWND, U
4120: 49 4e 54 2c 20 57 50 41 52 41 4d 2c 20 4c 50 41  INT, WPARAM, LPA
4130: 52 41 4d 29 20 4c 50 43 46 48 4f 4f 4b 50 52 4f  RAM) LPCFHOOKPRO
4140: 43 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 74 61 67  C;....struct tag
4150: 43 48 4f 4f 53 45 46 4f 4e 54 41 20 7b 0d 0a 20  CHOOSEFONTA {.. 
4160: 20 44 57 4f 52 44 20 6c 53 74 72 75 63 74 53 69   DWORD lStructSi
4170: 7a 65 3b 0d 0a 20 20 48 57 4e 44 20 68 77 6e 64  ze;..  HWND hwnd
4180: 4f 77 6e 65 72 3b 0d 0a 20 20 48 44 43 20 68 44  Owner;..  HDC hD
4190: 43 3b 0d 0a 20 20 4c 50 4c 4f 47 46 4f 4e 54 41  C;..  LPLOGFONTA
41a0: 20 6c 70 4c 6f 67 46 6f 6e 74 3b 0d 0a 20 20 49   lpLogFont;..  I
41b0: 4e 54 20 69 50 6f 69 6e 74 53 69 7a 65 3b 0d 0a  NT iPointSize;..
41c0: 20 20 44 57 4f 52 44 20 46 6c 61 67 73 3b 0d 0a    DWORD Flags;..
41d0: 20 20 43 4f 4c 4f 52 52 45 46 20 72 67 62 43 6f    COLORREF rgbCo
41e0: 6c 6f 72 73 3b 0d 0a 20 20 4c 50 41 52 41 4d 20  lors;..  LPARAM 
41f0: 6c 43 75 73 74 44 61 74 61 3b 0d 0a 20 20 4c 50  lCustData;..  LP
4200: 43 46 48 4f 4f 4b 50 52 4f 43 20 6c 70 66 6e 48  CFHOOKPROC lpfnH
4210: 6f 6f 6b 3b 0d 0a 20 20 4c 50 43 53 54 52 20 6c  ook;..  LPCSTR l
4220: 70 54 65 6d 70 6c 61 74 65 4e 61 6d 65 3b 0d 0a  pTemplateName;..
4230: 20 20 48 49 4e 53 54 41 4e 43 45 20 68 49 6e 73    HINSTANCE hIns
4240: 74 61 6e 63 65 3b 0d 0a 0d 0a 20 20 4c 50 53 54  tance;....  LPST
4250: 52 20 6c 70 73 7a 53 74 79 6c 65 3b 0d 0a 0d 0a  R lpszStyle;....
4260: 20 20 57 4f 52 44 20 6e 46 6f 6e 74 54 79 70 65    WORD nFontType
4270: 3b 0d 0a 0d 0a 20 20 57 4f 52 44 20 5f 5f 5f 4d  ;....  WORD ___M
4280: 49 53 53 49 4e 47 5f 41 4c 49 47 4e 4d 45 4e 54  ISSING_ALIGNMENT
4290: 5f 5f 3b 0d 0a 20 20 49 4e 54 20 6e 53 69 7a 65  __;..  INT nSize
42a0: 4d 69 6e 3b 0d 0a 20 20 49 4e 54 20 6e 53 69 7a  Min;..  INT nSiz
42b0: 65 4d 61 78 3b 0d 0a 0d 0a 7d 0d 0a 61 6c 69 61  eMax;....}..alia
42c0: 73 20 74 61 67 43 48 4f 4f 53 45 46 4f 4e 54 41  s tagCHOOSEFONTA
42d0: 20 43 48 4f 4f 53 45 46 4f 4e 54 41 3b 0d 0a 61   CHOOSEFONTA;..a
42e0: 6c 69 61 73 20 74 61 67 43 48 4f 4f 53 45 46 4f  lias tagCHOOSEFO
42f0: 4e 54 41 2a 20 4c 50 43 48 4f 4f 53 45 46 4f 4e  NTA* LPCHOOSEFON
4300: 54 41 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 74 61  TA;....struct ta
4310: 67 43 48 4f 4f 53 45 46 4f 4e 54 57 20 7b 0d 0a  gCHOOSEFONTW {..
4320: 20 20 44 57 4f 52 44 20 6c 53 74 72 75 63 74 53    DWORD lStructS
4330: 69 7a 65 3b 0d 0a 20 20 48 57 4e 44 20 68 77 6e  ize;..  HWND hwn
4340: 64 4f 77 6e 65 72 3b 0d 0a 20 20 48 44 43 20 68  dOwner;..  HDC h
4350: 44 43 3b 0d 0a 20 20 4c 50 4c 4f 47 46 4f 4e 54  DC;..  LPLOGFONT
4360: 57 20 6c 70 4c 6f 67 46 6f 6e 74 3b 0d 0a 20 20  W lpLogFont;..  
4370: 49 4e 54 20 69 50 6f 69 6e 74 53 69 7a 65 3b 0d  INT iPointSize;.
4380: 0a 20 20 44 57 4f 52 44 20 46 6c 61 67 73 3b 0d  .  DWORD Flags;.
4390: 0a 20 20 43 4f 4c 4f 52 52 45 46 20 72 67 62 43  .  COLORREF rgbC
43a0: 6f 6c 6f 72 73 3b 0d 0a 20 20 4c 50 41 52 41 4d  olors;..  LPARAM
43b0: 20 6c 43 75 73 74 44 61 74 61 3b 0d 0a 20 20 4c   lCustData;..  L
43c0: 50 43 46 48 4f 4f 4b 50 52 4f 43 20 6c 70 66 6e  PCFHOOKPROC lpfn
43d0: 48 6f 6f 6b 3b 0d 0a 20 20 4c 50 43 57 53 54 52  Hook;..  LPCWSTR
43e0: 20 6c 70 54 65 6d 70 6c 61 74 65 4e 61 6d 65 3b   lpTemplateName;
43f0: 0d 0a 20 20 48 49 4e 53 54 41 4e 43 45 20 68 49  ..  HINSTANCE hI
4400: 6e 73 74 61 6e 63 65 3b 0d 0a 0d 0a 20 20 4c 50  nstance;....  LP
4410: 57 53 54 52 20 6c 70 73 7a 53 74 79 6c 65 3b 0d  WSTR lpszStyle;.
4420: 0a 0d 0a 20 20 57 4f 52 44 20 6e 46 6f 6e 74 54  ...  WORD nFontT
4430: 79 70 65 3b 0d 0a 0d 0a 20 20 57 4f 52 44 20 5f  ype;....  WORD _
4440: 5f 5f 4d 49 53 53 49 4e 47 5f 41 4c 49 47 4e 4d  __MISSING_ALIGNM
4450: 45 4e 54 5f 5f 3b 0d 0a 20 20 49 4e 54 20 6e 53  ENT__;..  INT nS
4460: 69 7a 65 4d 69 6e 3b 0d 0a 20 20 49 4e 54 20 6e  izeMin;..  INT n
4470: 53 69 7a 65 4d 61 78 3b 0d 0a 0d 0a 7d 0d 0a 61  SizeMax;....}..a
4480: 6c 69 61 73 20 74 61 67 43 48 4f 4f 53 45 46 4f  lias tagCHOOSEFO
4490: 4e 54 57 20 43 48 4f 4f 53 45 46 4f 4e 54 57 3b  NTW CHOOSEFONTW;
44a0: 0d 0a 61 6c 69 61 73 20 74 61 67 43 48 4f 4f 53  ..alias tagCHOOS
44b0: 45 46 4f 4e 54 57 2a 20 4c 50 43 48 4f 4f 53 45  EFONTW* LPCHOOSE
44c0: 46 4f 4e 54 57 3b 0d 0a 0d 0a 2f 2f 20 23 69 66  FONTW;....// #if
44d0: 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 2f 2f 20  def UNICODE..// 
44e0: 2e 2e 2e 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 61  .....// #else..a
44f0: 6c 69 61 73 20 43 48 4f 4f 53 45 46 4f 4e 54 41  lias CHOOSEFONTA
4500: 20 43 48 4f 4f 53 45 46 4f 4e 54 3b 0d 0a 61 6c   CHOOSEFONT;..al
4510: 69 61 73 20 4c 50 43 48 4f 4f 53 45 46 4f 4e 54  ias LPCHOOSEFONT
4520: 41 20 4c 50 43 48 4f 4f 53 45 46 4f 4e 54 3b 0d  A LPCHOOSEFONT;.
4530: 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 55 4e  .// #endif // UN
4540: 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e 28  ICODE....extern(
4550: 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
4560: 42 4f 4f 4c 20 43 68 6f 6f 73 65 46 6f 6e 74 41  BOOL ChooseFontA
4570: 28 4c 50 43 48 4f 4f 53 45 46 4f 4e 54 41 29 3b  (LPCHOOSEFONTA);
4580: 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
4590: 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 43 68  ) export BOOL Ch
45a0: 6f 6f 73 65 46 6f 6e 74 57 28 4c 50 43 48 4f 4f  ooseFontW(LPCHOO
45b0: 53 45 46 4f 4e 54 57 29 3b 0d 0a 2f 2f 20 23 69  SEFONTW);..// #i
45c0: 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 2f 2f  fdef UNICODE..//
45d0: 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6c 73 65 0d   #.....// #else.
45e0: 0a 61 6c 69 61 73 20 43 68 6f 6f 73 65 46 6f 6e  .alias ChooseFon
45f0: 74 41 20 43 68 6f 6f 73 65 46 6f 6e 74 3b 0d 0a  tA ChooseFont;..
4600: 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e  // #endif // !UN
4610: 49 43 4f 44 45 0d 0a 0d 0a 65 6e 75 6d 20 3a 20  ICODE....enum : 
4620: 75 69 6e 74 20 7b 20 43 46 5f 53 43 52 45 45 4e  uint { CF_SCREEN
4630: 46 4f 4e 54 53 20 3d 20 30 78 30 30 30 30 30 30  FONTS = 0x000000
4640: 30 31 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e  01 }..enum : uin
4650: 74 20 7b 20 43 46 5f 50 52 49 4e 54 45 52 46 4f  t { CF_PRINTERFO
4660: 4e 54 53 20 3d 20 30 78 30 30 30 30 30 30 30 32  NTS = 0x00000002
4670: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
4680: 7b 20 43 46 5f 42 4f 54 48 20 3d 20 43 46 5f 53  { CF_BOTH = CF_S
4690: 43 52 45 45 4e 46 4f 4e 54 53 20 7c 20 43 46 5f  CREENFONTS | CF_
46a0: 50 52 49 4e 54 45 52 46 4f 4e 54 53 20 7d 0d 0a  PRINTERFONTS }..
46b0: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 43 46  enum : uint { CF
46c0: 5f 53 48 4f 57 48 45 4c 50 20 3d 20 30 78 30 30  _SHOWHELP = 0x00
46d0: 30 30 30 30 30 34 20 7d 0d 0a 65 6e 75 6d 20 3a  000004 }..enum :
46e0: 20 75 69 6e 74 20 7b 20 43 46 5f 45 4e 41 42 4c   uint { CF_ENABL
46f0: 45 48 4f 4f 4b 20 3d 20 30 78 30 30 30 30 30 30  EHOOK = 0x000000
4700: 30 38 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e  08 }..enum : uin
4710: 74 20 7b 20 43 46 5f 45 4e 41 42 4c 45 54 45 4d  t { CF_ENABLETEM
4720: 50 4c 41 54 45 20 3d 20 30 78 30 30 30 30 30 30  PLATE = 0x000000
4730: 31 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e  10 }..enum : uin
4740: 74 20 7b 20 43 46 5f 45 4e 41 42 4c 45 54 45 4d  t { CF_ENABLETEM
4750: 50 4c 41 54 45 48 41 4e 44 4c 45 20 3d 20 30 78  PLATEHANDLE = 0x
4760: 30 30 30 30 30 30 32 30 20 7d 0d 0a 65 6e 75 6d  00000020 }..enum
4770: 20 3a 20 75 69 6e 74 20 7b 20 43 46 5f 49 4e 49   : uint { CF_INI
4780: 54 54 4f 4c 4f 47 46 4f 4e 54 53 54 52 55 43 54  TTOLOGFONTSTRUCT
4790: 20 3d 20 30 78 30 30 30 30 30 30 34 30 20 7d 0d   = 0x00000040 }.
47a0: 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 43  .enum : uint { C
47b0: 46 5f 55 53 45 53 54 59 4c 45 20 3d 20 30 78 30  F_USESTYLE = 0x0
47c0: 30 30 30 30 30 38 30 20 7d 0d 0a 65 6e 75 6d 20  0000080 }..enum 
47d0: 3a 20 75 69 6e 74 20 7b 20 43 46 5f 45 46 46 45  : uint { CF_EFFE
47e0: 43 54 53 20 3d 20 30 78 30 30 30 30 30 31 30 30  CTS = 0x00000100
47f0: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
4800: 7b 20 43 46 5f 41 50 50 4c 59 20 3d 20 30 78 30  { CF_APPLY = 0x0
4810: 30 30 30 30 32 30 30 20 7d 0d 0a 65 6e 75 6d 20  0000200 }..enum 
4820: 3a 20 75 69 6e 74 20 7b 20 43 46 5f 41 4e 53 49  : uint { CF_ANSI
4830: 4f 4e 4c 59 20 3d 20 30 78 30 30 30 30 30 34 30  ONLY = 0x0000040
4840: 30 20 7d 0d 0a 2f 2f 20 23 69 66 28 57 49 4e 56  0 }..// #if(WINV
4850: 45 52 20 3e 3d 20 30 78 30 34 30 30 29 0d 0a 61  ER >= 0x0400)..a
4860: 6c 69 61 73 20 43 46 5f 41 4e 53 49 4f 4e 4c 59  lias CF_ANSIONLY
4870: 20 43 46 5f 53 43 52 49 50 54 53 4f 4e 4c 59 3b   CF_SCRIPTSONLY;
4880: 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2a 20 57  ..// #endif /* W
4890: 49 4e 56 45 52 20 3e 3d 20 30 78 30 34 30 30 20  INVER >= 0x0400 
48a0: 2a 2f 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20  */..enum : uint 
48b0: 7b 20 43 46 5f 4e 4f 56 45 43 54 4f 52 46 4f 4e  { CF_NOVECTORFON
48c0: 54 53 20 3d 20 30 78 30 30 30 30 30 38 30 30 20  TS = 0x00000800 
48d0: 7d 0d 0a 61 6c 69 61 73 20 43 46 5f 4e 4f 56 45  }..alias CF_NOVE
48e0: 43 54 4f 52 46 4f 4e 54 53 20 43 46 5f 4e 4f 4f  CTORFONTS CF_NOO
48f0: 45 4d 46 4f 4e 54 53 3b 0d 0a 65 6e 75 6d 20 3a  EMFONTS;..enum :
4900: 20 75 69 6e 74 20 7b 20 43 46 5f 4e 4f 53 49 4d   uint { CF_NOSIM
4910: 55 4c 41 54 49 4f 4e 53 20 3d 20 30 78 30 30 30  ULATIONS = 0x000
4920: 30 31 30 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20  01000 }..enum : 
4930: 75 69 6e 74 20 7b 20 43 46 5f 4c 49 4d 49 54 53  uint { CF_LIMITS
4940: 49 5a 45 20 3d 20 30 78 30 30 30 30 32 30 30 30  IZE = 0x00002000
4950: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
4960: 7b 20 43 46 5f 46 49 58 45 44 50 49 54 43 48 4f  { CF_FIXEDPITCHO
4970: 4e 4c 59 20 3d 20 30 78 30 30 30 30 34 30 30 30  NLY = 0x00004000
4980: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
4990: 7b 20 43 46 5f 57 59 53 49 57 59 47 20 3d 20 30  { CF_WYSIWYG = 0
49a0: 78 30 30 30 30 38 30 30 30 20 7d 0d 0a 65 6e 75  x00008000 }..enu
49b0: 6d 20 3a 20 75 69 6e 74 20 7b 20 43 46 5f 46 4f  m : uint { CF_FO
49c0: 52 43 45 46 4f 4e 54 45 58 49 53 54 20 3d 20 30  RCEFONTEXIST = 0
49d0: 78 30 30 30 31 30 30 30 30 20 7d 0d 0a 65 6e 75  x00010000 }..enu
49e0: 6d 20 3a 20 75 69 6e 74 20 7b 20 43 46 5f 53 43  m : uint { CF_SC
49f0: 41 4c 41 42 4c 45 4f 4e 4c 59 20 3d 20 30 78 30  ALABLEONLY = 0x0
4a00: 30 30 32 30 30 30 30 20 7d 0d 0a 65 6e 75 6d 20  0020000 }..enum 
4a10: 3a 20 75 69 6e 74 20 7b 20 43 46 5f 54 54 4f 4e  : uint { CF_TTON
4a20: 4c 59 20 3d 20 30 78 30 30 30 34 30 30 30 30 20  LY = 0x00040000 
4a30: 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b  }..enum : uint {
4a40: 20 43 46 5f 4e 4f 46 41 43 45 53 45 4c 20 3d 20   CF_NOFACESEL = 
4a50: 30 78 30 30 30 38 30 30 30 30 20 7d 0d 0a 65 6e  0x00080000 }..en
4a60: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 43 46 5f 4e  um : uint { CF_N
4a70: 4f 53 54 59 4c 45 53 45 4c 20 3d 20 30 78 30 30  OSTYLESEL = 0x00
4a80: 31 30 30 30 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a  100000 }..enum :
4a90: 20 75 69 6e 74 20 7b 20 43 46 5f 4e 4f 53 49 5a   uint { CF_NOSIZ
4aa0: 45 53 45 4c 20 3d 20 30 78 30 30 32 30 30 30 30  ESEL = 0x0020000
4ab0: 30 20 7d 0d 0a 2f 2f 20 23 69 66 28 57 49 4e 56  0 }..// #if(WINV
4ac0: 45 52 20 3e 3d 20 30 78 30 34 30 30 29 0d 0a 65  ER >= 0x0400)..e
4ad0: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 43 46 5f  num : uint { CF_
4ae0: 53 45 4c 45 43 54 53 43 52 49 50 54 20 3d 20 30  SELECTSCRIPT = 0
4af0: 78 30 30 34 30 30 30 30 30 20 7d 0d 0a 65 6e 75  x00400000 }..enu
4b00: 6d 20 3a 20 75 69 6e 74 20 7b 20 43 46 5f 4e 4f  m : uint { CF_NO
4b10: 53 43 52 49 50 54 53 45 4c 20 3d 20 30 78 30 30  SCRIPTSEL = 0x00
4b20: 38 30 30 30 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a  800000 }..enum :
4b30: 20 75 69 6e 74 20 7b 20 43 46 5f 4e 4f 56 45 52   uint { CF_NOVER
4b40: 54 46 4f 4e 54 53 20 3d 20 30 78 30 31 30 30 30  TFONTS = 0x01000
4b50: 30 30 30 20 7d 0d 0a 2f 2f 20 23 65 6e 64 69 66  000 }..// #endif
4b60: 20 2f 2a 20 57 49 4e 56 45 52 20 3e 3d 20 30 78   /* WINVER >= 0x
4b70: 30 34 30 30 20 2a 2f 0d 0a 0d 0a 65 6e 75 6d 20  0400 */....enum 
4b80: 3a 20 75 69 6e 74 20 7b 20 53 49 4d 55 4c 41 54  : uint { SIMULAT
4b90: 45 44 5f 46 4f 4e 54 54 59 50 45 20 3d 20 30 78  ED_FONTTYPE = 0x
4ba0: 38 30 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  8000 }..enum : u
4bb0: 69 6e 74 20 7b 20 50 52 49 4e 54 45 52 5f 46 4f  int { PRINTER_FO
4bc0: 4e 54 54 59 50 45 20 3d 20 30 78 34 30 30 30 20  NTTYPE = 0x4000 
4bd0: 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b  }..enum : uint {
4be0: 20 53 43 52 45 45 4e 5f 46 4f 4e 54 54 59 50 45   SCREEN_FONTTYPE
4bf0: 20 3d 20 30 78 32 30 30 30 20 7d 0d 0a 65 6e 75   = 0x2000 }..enu
4c00: 6d 20 3a 20 75 69 6e 74 20 7b 20 42 4f 4c 44 5f  m : uint { BOLD_
4c10: 46 4f 4e 54 54 59 50 45 20 3d 20 30 78 30 31 30  FONTTYPE = 0x010
4c20: 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  0 }..enum : uint
4c30: 20 7b 20 49 54 41 4c 49 43 5f 46 4f 4e 54 54 59   { ITALIC_FONTTY
4c40: 50 45 20 3d 20 30 78 30 32 30 30 20 7d 0d 0a 65  PE = 0x0200 }..e
4c50: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 52 45 47  num : uint { REG
4c60: 55 4c 41 52 5f 46 4f 4e 54 54 59 50 45 20 3d 20  ULAR_FONTTYPE = 
4c70: 30 78 30 34 30 30 20 7d 0d 0a 0d 0a 2f 2f 20 23  0x0400 }....// #
4c80: 69 66 64 65 66 20 57 49 4e 4e 54 0d 0a 2f 2f 20  ifdef WINNT..// 
4c90: 23 2e 2e 2e 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f  #.....// #...../
4ca0: 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69  / #.....// #endi
4cb0: 66 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  f....enum : uint
4cc0: 20 7b 20 57 4d 5f 43 48 4f 4f 53 45 46 4f 4e 54   { WM_CHOOSEFONT
4cd0: 5f 47 45 54 4c 4f 47 46 4f 4e 54 20 3d 20 57 4d  _GETLOGFONT = WM
4ce0: 5f 55 53 45 52 20 2b 20 31 20 7d 0d 0a 65 6e 75  _USER + 1 }..enu
4cf0: 6d 20 3a 20 75 69 6e 74 20 7b 20 57 4d 5f 43 48  m : uint { WM_CH
4d00: 4f 4f 53 45 46 4f 4e 54 5f 53 45 54 4c 4f 47 46  OOSEFONT_SETLOGF
4d10: 4f 4e 54 20 3d 20 57 4d 5f 55 53 45 52 20 2b 20  ONT = WM_USER + 
4d20: 31 30 31 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  101 }..enum : ui
4d30: 6e 74 20 7b 20 57 4d 5f 43 48 4f 4f 53 45 46 4f  nt { WM_CHOOSEFO
4d40: 4e 54 5f 53 45 54 46 4c 41 47 53 20 3d 20 57 4d  NT_SETFLAGS = WM
4d50: 5f 55 53 45 52 20 2b 20 31 30 32 20 7d 0d 0a 0d  _USER + 102 }...
4d60: 0a 63 6f 6e 73 74 20 63 68 61 72 5b 5d 20 4c 42  .const char[] LB
4d70: 53 45 4c 43 48 53 54 52 49 4e 47 41 20 3d 20 22  SELCHSTRINGA = "
4d80: 63 6f 6d 6d 64 6c 67 5f 4c 42 53 65 6c 43 68 61  commdlg_LBSelCha
4d90: 6e 67 65 64 4e 6f 74 69 66 79 22 3b 0d 0a 63 6f  ngedNotify";..co
4da0: 6e 73 74 20 63 68 61 72 5b 5d 20 53 48 41 52 45  nst char[] SHARE
4db0: 56 49 53 54 52 49 4e 47 41 20 3d 20 22 63 6f 6d  VISTRINGA = "com
4dc0: 6d 64 6c 67 5f 53 68 61 72 65 56 69 6f 6c 61 74  mdlg_ShareViolat
4dd0: 69 6f 6e 22 3b 0d 0a 63 6f 6e 73 74 20 63 68 61  ion";..const cha
4de0: 72 5b 5d 20 46 49 4c 45 4f 4b 53 54 52 49 4e 47  r[] FILEOKSTRING
4df0: 41 20 3d 20 22 63 6f 6d 6d 64 6c 67 5f 46 69 6c  A = "commdlg_Fil
4e00: 65 4e 61 6d 65 4f 4b 22 3b 0d 0a 63 6f 6e 73 74  eNameOK";..const
4e10: 20 63 68 61 72 5b 5d 20 43 4f 4c 4f 52 4f 4b 53   char[] COLOROKS
4e20: 54 52 49 4e 47 41 20 3d 20 22 63 6f 6d 6d 64 6c  TRINGA = "commdl
4e30: 67 5f 43 6f 6c 6f 72 4f 4b 22 3b 0d 0a 63 6f 6e  g_ColorOK";..con
4e40: 73 74 20 63 68 61 72 5b 5d 20 53 45 54 52 47 42  st char[] SETRGB
4e50: 53 54 52 49 4e 47 41 20 3d 20 22 63 6f 6d 6d 64  STRINGA = "commd
4e60: 6c 67 5f 53 65 74 52 47 42 43 6f 6c 6f 72 22 3b  lg_SetRGBColor";
4e70: 0d 0a 63 6f 6e 73 74 20 63 68 61 72 5b 5d 20 48  ..const char[] H
4e80: 45 4c 50 4d 53 47 53 54 52 49 4e 47 41 20 3d 20  ELPMSGSTRINGA = 
4e90: 22 63 6f 6d 6d 64 6c 67 5f 68 65 6c 70 22 3b 0d  "commdlg_help";.
4ea0: 0a 63 6f 6e 73 74 20 63 68 61 72 5b 5d 20 46 49  .const char[] FI
4eb0: 4e 44 4d 53 47 53 54 52 49 4e 47 41 20 3d 20 22  NDMSGSTRINGA = "
4ec0: 63 6f 6d 6d 64 6c 67 5f 46 69 6e 64 52 65 70 6c  commdlg_FindRepl
4ed0: 61 63 65 22 3b 0d 0a 0d 0a 63 6f 6e 73 74 20 77  ace";....const w
4ee0: 63 68 61 72 5b 5d 20 4c 42 53 45 4c 43 48 53 54  char[] LBSELCHST
4ef0: 52 49 4e 47 57 20 3d 20 22 63 6f 6d 6d 64 6c 67  RINGW = "commdlg
4f00: 5f 4c 42 53 65 6c 43 68 61 6e 67 65 64 4e 6f 74  _LBSelChangedNot
4f10: 69 66 79 22 3b 0d 0a 63 6f 6e 73 74 20 77 63 68  ify";..const wch
4f20: 61 72 5b 5d 20 53 48 41 52 45 56 49 53 54 52 49  ar[] SHAREVISTRI
4f30: 4e 47 57 20 3d 20 22 63 6f 6d 6d 64 6c 67 5f 53  NGW = "commdlg_S
4f40: 68 61 72 65 56 69 6f 6c 61 74 69 6f 6e 22 3b 0d  hareViolation";.
4f50: 0a 63 6f 6e 73 74 20 77 63 68 61 72 5b 5d 20 46  .const wchar[] F
4f60: 49 4c 45 4f 4b 53 54 52 49 4e 47 57 20 3d 20 22  ILEOKSTRINGW = "
4f70: 63 6f 6d 6d 64 6c 67 5f 46 69 6c 65 4e 61 6d 65  commdlg_FileName
4f80: 4f 4b 22 3b 0d 0a 63 6f 6e 73 74 20 77 63 68 61  OK";..const wcha
4f90: 72 5b 5d 20 43 4f 4c 4f 52 4f 4b 53 54 52 49 4e  r[] COLOROKSTRIN
4fa0: 47 57 20 3d 20 22 63 6f 6d 6d 64 6c 67 5f 43 6f  GW = "commdlg_Co
4fb0: 6c 6f 72 4f 4b 22 3b 0d 0a 63 6f 6e 73 74 20 77  lorOK";..const w
4fc0: 63 68 61 72 5b 5d 20 53 45 54 52 47 42 53 54 52  char[] SETRGBSTR
4fd0: 49 4e 47 57 20 3d 20 22 63 6f 6d 6d 64 6c 67 5f  INGW = "commdlg_
4fe0: 53 65 74 52 47 42 43 6f 6c 6f 72 22 3b 0d 0a 63  SetRGBColor";..c
4ff0: 6f 6e 73 74 20 77 63 68 61 72 5b 5d 20 48 45 4c  onst wchar[] HEL
5000: 50 4d 53 47 53 54 52 49 4e 47 57 20 3d 20 22 63  PMSGSTRINGW = "c
5010: 6f 6d 6d 64 6c 67 5f 68 65 6c 70 22 3b 0d 0a 63  ommdlg_help";..c
5020: 6f 6e 73 74 20 77 63 68 61 72 5b 5d 20 46 49 4e  onst wchar[] FIN
5030: 44 4d 53 47 53 54 52 49 4e 47 57 20 3d 20 22 63  DMSGSTRINGW = "c
5040: 6f 6d 6d 64 6c 67 5f 46 69 6e 64 52 65 70 6c 61  ommdlg_FindRepla
5050: 63 65 22 3b 0d 0a 0d 0a 2f 2f 20 23 69 66 64 65  ce";....// #ifde
5060: 66 20 55 4e 49 43 4f 44 45 0d 0a 2f 2f 20 23 2e  f UNICODE..// #.
5070: 2e 2e 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20  ....// #.....// 
5080: 23 2e 2e 2e 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f  #.....// #...../
5090: 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 2e 2e 2e 0d  / #.....// #....
50a0: 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6c  .// #.....// #el
50b0: 73 65 0d 0a 61 6c 69 61 73 20 4c 42 53 45 4c 43  se..alias LBSELC
50c0: 48 53 54 52 49 4e 47 41 20 4c 42 53 45 4c 43 48  HSTRINGA LBSELCH
50d0: 53 54 52 49 4e 47 3b 0d 0a 61 6c 69 61 73 20 53  STRING;..alias S
50e0: 48 41 52 45 56 49 53 54 52 49 4e 47 41 20 53 48  HAREVISTRINGA SH
50f0: 41 52 45 56 49 53 54 52 49 4e 47 3b 0d 0a 61 6c  AREVISTRING;..al
5100: 69 61 73 20 46 49 4c 45 4f 4b 53 54 52 49 4e 47  ias FILEOKSTRING
5110: 41 20 46 49 4c 45 4f 4b 53 54 52 49 4e 47 3b 0d  A FILEOKSTRING;.
5120: 0a 61 6c 69 61 73 20 43 4f 4c 4f 52 4f 4b 53 54  .alias COLOROKST
5130: 52 49 4e 47 41 20 43 4f 4c 4f 52 4f 4b 53 54 52  RINGA COLOROKSTR
5140: 49 4e 47 3b 0d 0a 61 6c 69 61 73 20 53 45 54 52  ING;..alias SETR
5150: 47 42 53 54 52 49 4e 47 41 20 53 45 54 52 47 42  GBSTRINGA SETRGB
5160: 53 54 52 49 4e 47 3b 0d 0a 61 6c 69 61 73 20 48  STRING;..alias H
5170: 45 4c 50 4d 53 47 53 54 52 49 4e 47 41 20 48 45  ELPMSGSTRINGA HE
5180: 4c 50 4d 53 47 53 54 52 49 4e 47 3b 0d 0a 61 6c  LPMSGSTRING;..al
5190: 69 61 73 20 46 49 4e 44 4d 53 47 53 54 52 49 4e  ias FINDMSGSTRIN
51a0: 47 41 20 46 49 4e 44 4d 53 47 53 54 52 49 4e 47  GA FINDMSGSTRING
51b0: 3b 0d 0a 2f 2f 20 23 65 6e 64 69 66 0d 0a 0d 0a  ;..// #endif....
51c0: 65 6e 75 6d 20 7b 20 43 44 5f 4c 42 53 45 4c 4e  enum { CD_LBSELN
51d0: 4f 49 54 45 4d 53 20 3d 20 2d 31 20 7d 0d 0a 65  OITEMS = -1 }..e
51e0: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 43 44 5f  num : uint { CD_
51f0: 4c 42 53 45 4c 43 48 41 4e 47 45 20 3d 20 30 20  LBSELCHANGE = 0 
5200: 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b  }..enum : uint {
5210: 20 43 44 5f 4c 42 53 45 4c 53 55 42 20 3d 20 31   CD_LBSELSUB = 1
5220: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
5230: 7b 20 43 44 5f 4c 42 53 45 4c 41 44 44 20 3d 20  { CD_LBSELADD = 
5240: 32 20 7d 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69  2 }....extern(Wi
5250: 6e 64 6f 77 73 29 20 61 6c 69 61 73 20 55 49 4e  ndows) alias UIN
5260: 54 5f 50 54 52 20 66 75 6e 63 74 69 6f 6e 28 48  T_PTR function(H
5270: 57 4e 44 2c 20 55 49 4e 54 2c 20 57 50 41 52 41  WND, UINT, WPARA
5280: 4d 2c 20 4c 50 41 52 41 4d 29 20 4c 50 50 52 49  M, LPARAM) LPPRI
5290: 4e 54 48 4f 4f 4b 50 52 4f 43 3b 0d 0a 65 78 74  NTHOOKPROC;..ext
52a0: 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 61 6c 69  ern(Windows) ali
52b0: 61 73 20 55 49 4e 54 5f 50 54 52 20 66 75 6e 63  as UINT_PTR func
52c0: 74 69 6f 6e 28 48 57 4e 44 2c 20 55 49 4e 54 2c  tion(HWND, UINT,
52d0: 20 57 50 41 52 41 4d 2c 20 4c 50 41 52 41 4d 29   WPARAM, LPARAM)
52e0: 20 4c 50 53 45 54 55 50 48 4f 4f 4b 50 52 4f 43   LPSETUPHOOKPROC
52f0: 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 74 61 67 50  ;....struct tagP
5300: 44 41 20 7b 0d 0a 20 20 44 57 4f 52 44 20 6c 53  DA {..  DWORD lS
5310: 74 72 75 63 74 53 69 7a 65 3b 0d 0a 20 20 48 57  tructSize;..  HW
5320: 4e 44 20 68 77 6e 64 4f 77 6e 65 72 3b 0d 0a 20  ND hwndOwner;.. 
5330: 20 48 47 4c 4f 42 41 4c 20 68 44 65 76 4d 6f 64   HGLOBAL hDevMod
5340: 65 3b 0d 0a 20 20 48 47 4c 4f 42 41 4c 20 68 44  e;..  HGLOBAL hD
5350: 65 76 4e 61 6d 65 73 3b 0d 0a 20 20 48 44 43 20  evNames;..  HDC 
5360: 68 44 43 3b 0d 0a 20 20 44 57 4f 52 44 20 46 6c  hDC;..  DWORD Fl
5370: 61 67 73 3b 0d 0a 20 20 57 4f 52 44 20 6e 46 72  ags;..  WORD nFr
5380: 6f 6d 50 61 67 65 3b 0d 0a 20 20 57 4f 52 44 20  omPage;..  WORD 
5390: 6e 54 6f 50 61 67 65 3b 0d 0a 20 20 57 4f 52 44  nToPage;..  WORD
53a0: 20 6e 4d 69 6e 50 61 67 65 3b 0d 0a 20 20 57 4f   nMinPage;..  WO
53b0: 52 44 20 6e 4d 61 78 50 61 67 65 3b 0d 0a 20 20  RD nMaxPage;..  
53c0: 57 4f 52 44 20 6e 43 6f 70 69 65 73 3b 0d 0a 20  WORD nCopies;.. 
53d0: 20 48 49 4e 53 54 41 4e 43 45 20 68 49 6e 73 74   HINSTANCE hInst
53e0: 61 6e 63 65 3b 0d 0a 20 20 4c 50 41 52 41 4d 20  ance;..  LPARAM 
53f0: 6c 43 75 73 74 44 61 74 61 3b 0d 0a 20 20 4c 50  lCustData;..  LP
5400: 50 52 49 4e 54 48 4f 4f 4b 50 52 4f 43 20 6c 70  PRINTHOOKPROC lp
5410: 66 6e 50 72 69 6e 74 48 6f 6f 6b 3b 0d 0a 20 20  fnPrintHook;..  
5420: 4c 50 53 45 54 55 50 48 4f 4f 4b 50 52 4f 43 20  LPSETUPHOOKPROC 
5430: 6c 70 66 6e 53 65 74 75 70 48 6f 6f 6b 3b 0d 0a  lpfnSetupHook;..
5440: 20 20 4c 50 43 53 54 52 20 6c 70 50 72 69 6e 74    LPCSTR lpPrint
5450: 54 65 6d 70 6c 61 74 65 4e 61 6d 65 3b 0d 0a 20  TemplateName;.. 
5460: 20 4c 50 43 53 54 52 20 6c 70 53 65 74 75 70 54   LPCSTR lpSetupT
5470: 65 6d 70 6c 61 74 65 4e 61 6d 65 3b 0d 0a 20 20  emplateName;..  
5480: 48 47 4c 4f 42 41 4c 20 68 50 72 69 6e 74 54 65  HGLOBAL hPrintTe
5490: 6d 70 6c 61 74 65 3b 0d 0a 20 20 48 47 4c 4f 42  mplate;..  HGLOB
54a0: 41 4c 20 68 53 65 74 75 70 54 65 6d 70 6c 61 74  AL hSetupTemplat
54b0: 65 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 74 61 67  e;..}..alias tag
54c0: 50 44 41 20 50 52 49 4e 54 44 4c 47 41 3b 0d 0a  PDA PRINTDLGA;..
54d0: 61 6c 69 61 73 20 74 61 67 50 44 41 2a 20 4c 50  alias tagPDA* LP
54e0: 50 52 49 4e 54 44 4c 47 41 3b 0d 0a 0d 0a 73 74  PRINTDLGA;....st
54f0: 72 75 63 74 20 74 61 67 50 44 57 20 7b 0d 0a 20  ruct tagPDW {.. 
5500: 20 44 57 4f 52 44 20 6c 53 74 72 75 63 74 53 69   DWORD lStructSi
5510: 7a 65 3b 0d 0a 20 20 48 57 4e 44 20 68 77 6e 64  ze;..  HWND hwnd
5520: 4f 77 6e 65 72 3b 0d 0a 20 20 48 47 4c 4f 42 41  Owner;..  HGLOBA
5530: 4c 20 68 44 65 76 4d 6f 64 65 3b 0d 0a 20 20 48  L hDevMode;..  H
5540: 47 4c 4f 42 41 4c 20 68 44 65 76 4e 61 6d 65 73  GLOBAL hDevNames
5550: 3b 0d 0a 20 20 48 44 43 20 68 44 43 3b 0d 0a 20  ;..  HDC hDC;.. 
5560: 20 44 57 4f 52 44 20 46 6c 61 67 73 3b 0d 0a 20   DWORD Flags;.. 
5570: 20 57 4f 52 44 20 6e 46 72 6f 6d 50 61 67 65 3b   WORD nFromPage;
5580: 0d 0a 20 20 57 4f 52 44 20 6e 54 6f 50 61 67 65  ..  WORD nToPage
5590: 3b 0d 0a 20 20 57 4f 52 44 20 6e 4d 69 6e 50 61  ;..  WORD nMinPa
55a0: 67 65 3b 0d 0a 20 20 57 4f 52 44 20 6e 4d 61 78  ge;..  WORD nMax
55b0: 50 61 67 65 3b 0d 0a 20 20 57 4f 52 44 20 6e 43  Page;..  WORD nC
55c0: 6f 70 69 65 73 3b 0d 0a 20 20 48 49 4e 53 54 41  opies;..  HINSTA
55d0: 4e 43 45 20 68 49 6e 73 74 61 6e 63 65 3b 0d 0a  NCE hInstance;..
55e0: 20 20 4c 50 41 52 41 4d 20 6c 43 75 73 74 44 61    LPARAM lCustDa
55f0: 74 61 3b 0d 0a 20 20 4c 50 50 52 49 4e 54 48 4f  ta;..  LPPRINTHO
5600: 4f 4b 50 52 4f 43 20 6c 70 66 6e 50 72 69 6e 74  OKPROC lpfnPrint
5610: 48 6f 6f 6b 3b 0d 0a 20 20 4c 50 53 45 54 55 50  Hook;..  LPSETUP
5620: 48 4f 4f 4b 50 52 4f 43 20 6c 70 66 6e 53 65 74  HOOKPROC lpfnSet
5630: 75 70 48 6f 6f 6b 3b 0d 0a 20 20 4c 50 43 57 53  upHook;..  LPCWS
5640: 54 52 20 6c 70 50 72 69 6e 74 54 65 6d 70 6c 61  TR lpPrintTempla
5650: 74 65 4e 61 6d 65 3b 0d 0a 20 20 4c 50 43 57 53  teName;..  LPCWS
5660: 54 52 20 6c 70 53 65 74 75 70 54 65 6d 70 6c 61  TR lpSetupTempla
5670: 74 65 4e 61 6d 65 3b 0d 0a 20 20 48 47 4c 4f 42  teName;..  HGLOB
5680: 41 4c 20 68 50 72 69 6e 74 54 65 6d 70 6c 61 74  AL hPrintTemplat
5690: 65 3b 0d 0a 20 20 48 47 4c 4f 42 41 4c 20 68 53  e;..  HGLOBAL hS
56a0: 65 74 75 70 54 65 6d 70 6c 61 74 65 3b 0d 0a 7d  etupTemplate;..}
56b0: 0d 0a 61 6c 69 61 73 20 74 61 67 50 44 57 20 50  ..alias tagPDW P
56c0: 52 49 4e 54 44 4c 47 57 3b 0d 0a 61 6c 69 61 73  RINTDLGW;..alias
56d0: 20 74 61 67 50 44 57 2a 20 4c 50 50 52 49 4e 54   tagPDW* LPPRINT
56e0: 44 4c 47 57 3b 0d 0a 0d 0a 2f 2f 20 23 69 66 64  DLGW;....// #ifd
56f0: 65 66 20 55 4e 49 43 4f 44 45 0d 0a 2f 2f 20 2e  ef UNICODE..// .
5700: 2e 2e 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 61 6c  ....// #else..al
5710: 69 61 73 20 50 52 49 4e 54 44 4c 47 41 20 50 52  ias PRINTDLGA PR
5720: 49 4e 54 44 4c 47 3b 0d 0a 61 6c 69 61 73 20 4c  INTDLG;..alias L
5730: 50 50 52 49 4e 54 44 4c 47 41 20 4c 50 50 52 49  PPRINTDLGA LPPRI
5740: 4e 54 44 4c 47 3b 0d 0a 2f 2f 20 23 65 6e 64 69  NTDLG;..// #endi
5750: 66 20 2f 2f 20 55 4e 49 43 4f 44 45 0d 0a 0d 0a  f // UNICODE....
5760: 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
5770: 65 78 70 6f 72 74 20 42 4f 4f 4c 20 50 72 69 6e  export BOOL Prin
5780: 74 44 6c 67 41 28 4c 50 50 52 49 4e 54 44 4c 47  tDlgA(LPPRINTDLG
5790: 41 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  A);..extern(Wind
57a0: 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
57b0: 20 50 72 69 6e 74 44 6c 67 57 28 4c 50 50 52 49   PrintDlgW(LPPRI
57c0: 4e 54 44 4c 47 57 29 3b 0d 0a 2f 2f 20 23 69 66  NTDLGW);..// #if
57d0: 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 2f 2f 20  def UNICODE..// 
57e0: 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a  #.....// #else..
57f0: 61 6c 69 61 73 20 50 72 69 6e 74 44 6c 67 41 20  alias PrintDlgA 
5800: 50 72 69 6e 74 44 6c 67 3b 0d 0a 2f 2f 20 23 65  PrintDlg;..// #e
5810: 6e 64 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45  ndif // !UNICODE
5820: 0d 0a 0d 0a 2f 2f 20 23 69 66 28 57 49 4e 56 45  ....// #if(WINVE
5830: 52 20 3e 3d 20 30 78 30 35 30 30 29 0d 0a 0d 0a  R >= 0x0500)....
5840: 2f 2f 20 23 69 66 64 65 66 20 53 54 44 4d 45 54  // #ifdef STDMET
5850: 48 4f 44 0d 0a 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a  HOD....// #.....
5860: 2f 2f 20 23 2e 2e 2e 0d 0a 0d 0a 2f 2f 20 2e 2e  // #.......// ..
5870: 2e 0d 0a 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 0d 0a 2f  .....// ......./
5880: 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 2e 2e 2e 0d  / #.....// #....
5890: 0a 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 0d 0a 2f 2f 20  ...// .......// 
58a0: 2e 2e 2e 0d 0a 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 0d  .......// ......
58b0: 0a 2f 2f 20 2e 2e 2e 0d 0a 2f 2f 20 23 69 66 64  .// .....// #ifd
58c0: 65 66 20 55 4e 49 43 4f 44 45 0d 0a 2f 2f 20 2e  ef UNICODE..// .
58d0: 2e 2e 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f  ....// #else..//
58e0: 20 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20   .....// #endif 
58f0: 2f 2f 20 55 4e 49 43 4f 44 45 0d 0a 0d 0a 2f 2f  // UNICODE....//
5900: 20 2e 2e 2e 0d 0a 2f 2f 20 23 69 66 64 65 66 20   .....// #ifdef 
5910: 55 4e 49 43 4f 44 45 0d 0a 2f 2f 20 23 2e 2e 2e  UNICODE..// #...
5920: 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23  ..// #else..// #
5930: 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f  .....// #endif /
5940: 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 2f 2f  / !UNICODE....//
5950: 20 23 65 6e 64 69 66 0d 0a 0d 0a 2f 2f 20 23 65   #endif....// #e
5960: 6e 64 69 66 20 2f 2a 20 57 49 4e 56 45 52 20 3e  ndif /* WINVER >
5970: 3d 20 30 78 30 35 30 30 20 2a 2f 0d 0a 0d 0a 65  = 0x0500 */....e
5980: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 50 44 5f  num : uint { PD_
5990: 41 4c 4c 50 41 47 45 53 20 3d 20 30 78 30 30 30  ALLPAGES = 0x000
59a0: 30 30 30 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20  00000 }..enum : 
59b0: 75 69 6e 74 20 7b 20 50 44 5f 53 45 4c 45 43 54  uint { PD_SELECT
59c0: 49 4f 4e 20 3d 20 30 78 30 30 30 30 30 30 30 31  ION = 0x00000001
59d0: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
59e0: 7b 20 50 44 5f 50 41 47 45 4e 55 4d 53 20 3d 20  { PD_PAGENUMS = 
59f0: 30 78 30 30 30 30 30 30 30 32 20 7d 0d 0a 65 6e  0x00000002 }..en
5a00: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 50 44 5f 4e  um : uint { PD_N
5a10: 4f 53 45 4c 45 43 54 49 4f 4e 20 3d 20 30 78 30  OSELECTION = 0x0
5a20: 30 30 30 30 30 30 34 20 7d 0d 0a 65 6e 75 6d 20  0000004 }..enum 
5a30: 3a 20 75 69 6e 74 20 7b 20 50 44 5f 4e 4f 50 41  : uint { PD_NOPA
5a40: 47 45 4e 55 4d 53 20 3d 20 30 78 30 30 30 30 30  GENUMS = 0x00000
5a50: 30 30 38 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  008 }..enum : ui
5a60: 6e 74 20 7b 20 50 44 5f 43 4f 4c 4c 41 54 45 20  nt { PD_COLLATE 
5a70: 3d 20 30 78 30 30 30 30 30 30 31 30 20 7d 0d 0a  = 0x00000010 }..
5a80: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 50 44  enum : uint { PD
5a90: 5f 50 52 49 4e 54 54 4f 46 49 4c 45 20 3d 20 30  _PRINTTOFILE = 0
5aa0: 78 30 30 30 30 30 30 32 30 20 7d 0d 0a 65 6e 75  x00000020 }..enu
5ab0: 6d 20 3a 20 75 69 6e 74 20 7b 20 50 44 5f 50 52  m : uint { PD_PR
5ac0: 49 4e 54 53 45 54 55 50 20 3d 20 30 78 30 30 30  INTSETUP = 0x000
5ad0: 30 30 30 34 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20  00040 }..enum : 
5ae0: 75 69 6e 74 20 7b 20 50 44 5f 4e 4f 57 41 52 4e  uint { PD_NOWARN
5af0: 49 4e 47 20 3d 20 30 78 30 30 30 30 30 30 38 30  ING = 0x00000080
5b00: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
5b10: 7b 20 50 44 5f 52 45 54 55 52 4e 44 43 20 3d 20  { PD_RETURNDC = 
5b20: 30 78 30 30 30 30 30 31 30 30 20 7d 0d 0a 65 6e  0x00000100 }..en
5b30: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 50 44 5f 52  um : uint { PD_R
5b40: 45 54 55 52 4e 49 43 20 3d 20 30 78 30 30 30 30  ETURNIC = 0x0000
5b50: 30 32 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  0200 }..enum : u
5b60: 69 6e 74 20 7b 20 50 44 5f 52 45 54 55 52 4e 44  int { PD_RETURND
5b70: 45 46 41 55 4c 54 20 3d 20 30 78 30 30 30 30 30  EFAULT = 0x00000
5b80: 34 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  400 }..enum : ui
5b90: 6e 74 20 7b 20 50 44 5f 53 48 4f 57 48 45 4c 50  nt { PD_SHOWHELP
5ba0: 20 3d 20 30 78 30 30 30 30 30 38 30 30 20 7d 0d   = 0x00000800 }.
5bb0: 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 50  .enum : uint { P
5bc0: 44 5f 45 4e 41 42 4c 45 50 52 49 4e 54 48 4f 4f  D_ENABLEPRINTHOO
5bd0: 4b 20 3d 20 30 78 30 30 30 30 31 30 30 30 20 7d  K = 0x00001000 }
5be0: 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
5bf0: 50 44 5f 45 4e 41 42 4c 45 53 45 54 55 50 48 4f  PD_ENABLESETUPHO
5c00: 4f 4b 20 3d 20 30 78 30 30 30 30 32 30 30 30 20  OK = 0x00002000 
5c10: 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b  }..enum : uint {
5c20: 20 50 44 5f 45 4e 41 42 4c 45 50 52 49 4e 54 54   PD_ENABLEPRINTT
5c30: 45 4d 50 4c 41 54 45 20 3d 20 30 78 30 30 30 30  EMPLATE = 0x0000
5c40: 34 30 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  4000 }..enum : u
5c50: 69 6e 74 20 7b 20 50 44 5f 45 4e 41 42 4c 45 53  int { PD_ENABLES
5c60: 45 54 55 50 54 45 4d 50 4c 41 54 45 20 3d 20 30  ETUPTEMPLATE = 0
5c70: 78 30 30 30 30 38 30 30 30 20 7d 0d 0a 65 6e 75  x00008000 }..enu
5c80: 6d 20 3a 20 75 69 6e 74 20 7b 20 50 44 5f 45 4e  m : uint { PD_EN
5c90: 41 42 4c 45 50 52 49 4e 54 54 45 4d 50 4c 41 54  ABLEPRINTTEMPLAT
5ca0: 45 48 41 4e 44 4c 45 20 3d 20 30 78 30 30 30 31  EHANDLE = 0x0001
5cb0: 30 30 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  0000 }..enum : u
5cc0: 69 6e 74 20 7b 20 50 44 5f 45 4e 41 42 4c 45 53  int { PD_ENABLES
5cd0: 45 54 55 50 54 45 4d 50 4c 41 54 45 48 41 4e 44  ETUPTEMPLATEHAND
5ce0: 4c 45 20 3d 20 30 78 30 30 30 32 30 30 30 30 20  LE = 0x00020000 
5cf0: 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b  }..enum : uint {
5d00: 20 50 44 5f 55 53 45 44 45 56 4d 4f 44 45 43 4f   PD_USEDEVMODECO
5d10: 50 49 45 53 20 3d 20 30 78 30 30 30 34 30 30 30  PIES = 0x0004000
5d20: 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  0 }..enum : uint
5d30: 20 7b 20 50 44 5f 55 53 45 44 45 56 4d 4f 44 45   { PD_USEDEVMODE
5d40: 43 4f 50 49 45 53 41 4e 44 43 4f 4c 4c 41 54 45  COPIESANDCOLLATE
5d50: 20 3d 20 30 78 30 30 30 34 30 30 30 30 20 7d 0d   = 0x00040000 }.
5d60: 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 50  .enum : uint { P
5d70: 44 5f 44 49 53 41 42 4c 45 50 52 49 4e 54 54 4f  D_DISABLEPRINTTO
5d80: 46 49 4c 45 20 3d 20 30 78 30 30 30 38 30 30 30  FILE = 0x0008000
5d90: 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  0 }..enum : uint
5da0: 20 7b 20 50 44 5f 48 49 44 45 50 52 49 4e 54 54   { PD_HIDEPRINTT
5db0: 4f 46 49 4c 45 20 3d 20 30 78 30 30 31 30 30 30  OFILE = 0x001000
5dc0: 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e  00 }..enum : uin
5dd0: 74 20 7b 20 50 44 5f 4e 4f 4e 45 54 57 4f 52 4b  t { PD_NONETWORK
5de0: 42 55 54 54 4f 4e 20 3d 20 30 78 30 30 32 30 30  BUTTON = 0x00200
5df0: 30 30 30 20 7d 0d 0a 2f 2f 20 23 69 66 28 57 49  000 }..// #if(WI
5e00: 4e 56 45 52 20 3e 3d 20 30 78 30 35 30 30 29 0d  NVER >= 0x0500).
5e10: 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 50  .enum : uint { P
5e20: 44 5f 43 55 52 52 45 4e 54 50 41 47 45 20 3d 20  D_CURRENTPAGE = 
5e30: 30 78 30 30 34 30 30 30 30 30 20 7d 0d 0a 65 6e  0x00400000 }..en
5e40: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 50 44 5f 4e  um : uint { PD_N
5e50: 4f 43 55 52 52 45 4e 54 50 41 47 45 20 3d 20 30  OCURRENTPAGE = 0
5e60: 78 30 30 38 30 30 30 30 30 20 7d 0d 0a 65 6e 75  x00800000 }..enu
5e70: 6d 20 3a 20 75 69 6e 74 20 7b 20 50 44 5f 45 58  m : uint { PD_EX
5e80: 43 4c 55 53 49 4f 4e 46 4c 41 47 53 20 3d 20 30  CLUSIONFLAGS = 0
5e90: 78 30 31 30 30 30 30 30 30 20 7d 0d 0a 65 6e 75  x01000000 }..enu
5ea0: 6d 20 3a 20 75 69 6e 74 20 7b 20 50 44 5f 55 53  m : uint { PD_US
5eb0: 45 4c 41 52 47 45 54 45 4d 50 4c 41 54 45 20 3d  ELARGETEMPLATE =
5ec0: 20 30 78 31 30 30 30 30 30 30 30 20 7d 0d 0a 2f   0x10000000 }../
5ed0: 2f 20 23 65 6e 64 69 66 20 2f 2a 20 57 49 4e 56  / #endif /* WINV
5ee0: 45 52 20 3e 3d 20 30 78 30 35 30 30 20 2a 2f 0d  ER >= 0x0500 */.
5ef0: 0a 0d 0a 2f 2f 20 23 69 66 28 57 49 4e 56 45 52  ...// #if(WINVER
5f00: 20 3e 3d 20 30 78 30 35 30 30 29 0d 0a 0d 0a 65   >= 0x0500)....e
5f10: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 50 44 5f  num : uint { PD_
5f20: 45 58 43 4c 5f 43 4f 50 49 45 53 41 4e 44 43 4f  EXCL_COPIESANDCO
5f30: 4c 4c 41 54 45 20 3d 20 44 4d 5f 43 4f 50 49 45  LLATE = DM_COPIE
5f40: 53 20 7c 20 44 4d 5f 43 4f 4c 4c 41 54 45 20 7d  S | DM_COLLATE }
5f50: 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20  ....enum : uint 
5f60: 7b 20 53 54 41 52 54 5f 50 41 47 45 5f 47 45 4e  { START_PAGE_GEN
5f70: 45 52 41 4c 20 3d 20 30 78 66 66 66 66 66 66 66  ERAL = 0xfffffff
5f80: 66 20 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75 69  f }....enum : ui
5f90: 6e 74 20 7b 20 50 44 5f 52 45 53 55 4c 54 5f 43  nt { PD_RESULT_C
5fa0: 41 4e 43 45 4c 20 3d 20 30 20 7d 0d 0a 65 6e 75  ANCEL = 0 }..enu
5fb0: 6d 20 3a 20 75 69 6e 74 20 7b 20 50 44 5f 52 45  m : uint { PD_RE
5fc0: 53 55 4c 54 5f 50 52 49 4e 54 20 3d 20 31 20 7d  SULT_PRINT = 1 }
5fd0: 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
5fe0: 50 44 5f 52 45 53 55 4c 54 5f 41 50 50 4c 59 20  PD_RESULT_APPLY 
5ff0: 3d 20 32 20 7d 0d 0a 0d 0a 2f 2f 20 23 65 6e 64  = 2 }....// #end
6000: 69 66 20 2f 2a 20 57 49 4e 56 45 52 20 3e 3d 20  if /* WINVER >= 
6010: 30 78 30 35 30 30 20 2a 2f 0d 0a 0d 0a 73 74 72  0x0500 */....str
6020: 75 63 74 20 74 61 67 44 45 56 4e 41 4d 45 53 20  uct tagDEVNAMES 
6030: 7b 0d 0a 20 20 57 4f 52 44 20 77 44 72 69 76 65  {..  WORD wDrive
6040: 72 4f 66 66 73 65 74 3b 0d 0a 20 20 57 4f 52 44  rOffset;..  WORD
6050: 20 77 44 65 76 69 63 65 4f 66 66 73 65 74 3b 0d   wDeviceOffset;.
6060: 0a 20 20 57 4f 52 44 20 77 4f 75 74 70 75 74 4f  .  WORD wOutputO
6070: 66 66 73 65 74 3b 0d 0a 20 20 57 4f 52 44 20 77  ffset;..  WORD w
6080: 44 65 66 61 75 6c 74 3b 0d 0a 7d 0d 0a 61 6c 69  Default;..}..ali
6090: 61 73 20 74 61 67 44 45 56 4e 41 4d 45 53 20 44  as tagDEVNAMES D
60a0: 45 56 4e 41 4d 45 53 3b 0d 0a 61 6c 69 61 73 20  EVNAMES;..alias 
60b0: 74 61 67 44 45 56 4e 41 4d 45 53 2a 20 4c 50 44  tagDEVNAMES* LPD
60c0: 45 56 4e 41 4d 45 53 3b 0d 0a 0d 0a 65 6e 75 6d  EVNAMES;....enum
60d0: 20 3a 20 75 69 6e 74 20 7b 20 44 4e 5f 44 45 46   : uint { DN_DEF
60e0: 41 55 4c 54 50 52 4e 20 3d 20 30 78 30 30 30 31  AULTPRN = 0x0001
60f0: 20 7d 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e   }....extern(Win
6100: 64 6f 77 73 29 20 65 78 70 6f 72 74 20 44 57 4f  dows) export DWO
6110: 52 44 20 43 6f 6d 6d 44 6c 67 45 78 74 65 6e 64  RD CommDlgExtend
6120: 65 64 45 72 72 6f 72 28 29 3b 0d 0a 0d 0a 2f 2f  edError();....//
6130: 20 23 69 66 28 57 49 4e 56 45 52 20 3e 3d 20 30   #if(WINVER >= 0
6140: 78 30 34 30 30 29 0d 0a 65 6e 75 6d 20 3a 20 75  x0400)..enum : u
6150: 69 6e 74 20 7b 20 57 4d 5f 50 53 44 5f 50 41 47  int { WM_PSD_PAG
6160: 45 53 45 54 55 50 44 4c 47 20 3d 20 57 4d 5f 55  ESETUPDLG = WM_U
6170: 53 45 52 20 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  SER  }..enum : u
6180: 69 6e 74 20 7b 20 57 4d 5f 50 53 44 5f 46 55 4c  int { WM_PSD_FUL
6190: 4c 50 41 47 45 52 45 43 54 20 3d 20 57 4d 5f 55  LPAGERECT = WM_U
61a0: 53 45 52 2b 31 20 7d 0d 0a 65 6e 75 6d 20 3a 20  SER+1 }..enum : 
61b0: 75 69 6e 74 20 7b 20 57 4d 5f 50 53 44 5f 4d 49  uint { WM_PSD_MI
61c0: 4e 4d 41 52 47 49 4e 52 45 43 54 20 3d 20 57 4d  NMARGINRECT = WM
61d0: 5f 55 53 45 52 2b 32 20 7d 0d 0a 65 6e 75 6d 20  _USER+2 }..enum 
61e0: 3a 20 75 69 6e 74 20 7b 20 57 4d 5f 50 53 44 5f  : uint { WM_PSD_
61f0: 4d 41 52 47 49 4e 52 45 43 54 20 3d 20 57 4d 5f  MARGINRECT = WM_
6200: 55 53 45 52 2b 33 20 7d 0d 0a 65 6e 75 6d 20 3a  USER+3 }..enum :
6210: 20 75 69 6e 74 20 7b 20 57 4d 5f 50 53 44 5f 47   uint { WM_PSD_G
6220: 52 45 45 4b 54 45 58 54 52 45 43 54 20 3d 20 57  REEKTEXTRECT = W
6230: 4d 5f 55 53 45 52 2b 34 20 7d 0d 0a 65 6e 75 6d  M_USER+4 }..enum
6240: 20 3a 20 75 69 6e 74 20 7b 20 57 4d 5f 50 53 44   : uint { WM_PSD
6250: 5f 45 4e 56 53 54 41 4d 50 52 45 43 54 20 3d 20  _ENVSTAMPRECT = 
6260: 57 4d 5f 55 53 45 52 2b 35 20 7d 0d 0a 65 6e 75  WM_USER+5 }..enu
6270: 6d 20 3a 20 75 69 6e 74 20 7b 20 57 4d 5f 50 53  m : uint { WM_PS
6280: 44 5f 59 41 46 55 4c 4c 50 41 47 45 52 45 43 54  D_YAFULLPAGERECT
6290: 20 3d 20 57 4d 5f 55 53 45 52 2b 36 20 7d 0d 0a   = WM_USER+6 }..
62a0: 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
62b0: 29 20 61 6c 69 61 73 20 55 49 4e 54 5f 50 54 52  ) alias UINT_PTR
62c0: 20 66 75 6e 63 74 69 6f 6e 28 20 48 57 4e 44 2c   function( HWND,
62d0: 20 55 49 4e 54 2c 20 57 50 41 52 41 4d 2c 20 4c   UINT, WPARAM, L
62e0: 50 41 52 41 4d 20 29 20 4c 50 50 41 47 45 50 41  PARAM ) LPPAGEPA
62f0: 49 4e 54 48 4f 4f 4b 3b 0d 0a 65 78 74 65 72 6e  INTHOOK;..extern
6300: 28 57 69 6e 64 6f 77 73 29 20 61 6c 69 61 73 20  (Windows) alias 
6310: 55 49 4e 54 5f 50 54 52 20 66 75 6e 63 74 69 6f  UINT_PTR functio
6320: 6e 28 20 48 57 4e 44 2c 20 55 49 4e 54 2c 20 57  n( HWND, UINT, W
6330: 50 41 52 41 4d 2c 20 4c 50 41 52 41 4d 20 29 20  PARAM, LPARAM ) 
6340: 4c 50 50 41 47 45 53 45 54 55 50 48 4f 4f 4b 3b  LPPAGESETUPHOOK;
6350: 0d 0a 0d 0a 73 74 72 75 63 74 20 74 61 67 50 53  ....struct tagPS
6360: 44 41 20 7b 0d 0a 20 20 44 57 4f 52 44 20 6c 53  DA {..  DWORD lS
6370: 74 72 75 63 74 53 69 7a 65 3b 0d 0a 20 20 48 57  tructSize;..  HW
6380: 4e 44 20 68 77 6e 64 4f 77 6e 65 72 3b 0d 0a 20  ND hwndOwner;.. 
6390: 20 48 47 4c 4f 42 41 4c 20 68 44 65 76 4d 6f 64   HGLOBAL hDevMod
63a0: 65 3b 0d 0a 20 20 48 47 4c 4f 42 41 4c 20 68 44  e;..  HGLOBAL hD
63b0: 65 76 4e 61 6d 65 73 3b 0d 0a 20 20 44 57 4f 52  evNames;..  DWOR
63c0: 44 20 46 6c 61 67 73 3b 0d 0a 20 20 50 4f 49 4e  D Flags;..  POIN
63d0: 54 20 70 74 50 61 70 65 72 53 69 7a 65 3b 0d 0a  T ptPaperSize;..
63e0: 20 20 52 45 43 54 20 72 74 4d 69 6e 4d 61 72 67    RECT rtMinMarg
63f0: 69 6e 3b 0d 0a 20 20 52 45 43 54 20 72 74 4d 61  in;..  RECT rtMa
6400: 72 67 69 6e 3b 0d 0a 20 20 48 49 4e 53 54 41 4e  rgin;..  HINSTAN
6410: 43 45 20 68 49 6e 73 74 61 6e 63 65 3b 0d 0a 20  CE hInstance;.. 
6420: 20 4c 50 41 52 41 4d 20 6c 43 75 73 74 44 61 74   LPARAM lCustDat
6430: 61 3b 0d 0a 20 20 4c 50 50 41 47 45 53 45 54 55  a;..  LPPAGESETU
6440: 50 48 4f 4f 4b 20 6c 70 66 6e 50 61 67 65 53 65  PHOOK lpfnPageSe
6450: 74 75 70 48 6f 6f 6b 3b 0d 0a 20 20 4c 50 50 41  tupHook;..  LPPA
6460: 47 45 50 41 49 4e 54 48 4f 4f 4b 20 6c 70 66 6e  GEPAINTHOOK lpfn
6470: 50 61 67 65 50 61 69 6e 74 48 6f 6f 6b 3b 0d 0a  PagePaintHook;..
6480: 20 20 4c 50 43 53 54 52 20 6c 70 50 61 67 65 53    LPCSTR lpPageS
6490: 65 74 75 70 54 65 6d 70 6c 61 74 65 4e 61 6d 65  etupTemplateName
64a0: 3b 0d 0a 20 20 48 47 4c 4f 42 41 4c 20 68 50 61  ;..  HGLOBAL hPa
64b0: 67 65 53 65 74 75 70 54 65 6d 70 6c 61 74 65 3b  geSetupTemplate;
64c0: 0d 0a 7d 0d 0a 61 6c 69 61 73 20 74 61 67 50 53  ..}..alias tagPS
64d0: 44 41 20 50 41 47 45 53 45 54 55 50 44 4c 47 41  DA PAGESETUPDLGA
64e0: 3b 0d 0a 61 6c 69 61 73 20 74 61 67 50 53 44 41  ;..alias tagPSDA
64f0: 2a 20 4c 50 50 41 47 45 53 45 54 55 50 44 4c 47  * LPPAGESETUPDLG
6500: 41 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 74 61 67  A;....struct tag
6510: 50 53 44 57 20 7b 0d 0a 20 20 44 57 4f 52 44 20  PSDW {..  DWORD 
6520: 6c 53 74 72 75 63 74 53 69 7a 65 3b 0d 0a 20 20  lStructSize;..  
6530: 48 57 4e 44 20 68 77 6e 64 4f 77 6e 65 72 3b 0d  HWND hwndOwner;.
6540: 0a 20 20 48 47 4c 4f 42 41 4c 20 68 44 65 76 4d  .  HGLOBAL hDevM
6550: 6f 64 65 3b 0d 0a 20 20 48 47 4c 4f 42 41 4c 20  ode;..  HGLOBAL 
6560: 68 44 65 76 4e 61 6d 65 73 3b 0d 0a 20 20 44 57  hDevNames;..  DW
6570: 4f 52 44 20 46 6c 61 67 73 3b 0d 0a 20 20 50 4f  ORD Flags;..  PO
6580: 49 4e 54 20 70 74 50 61 70 65 72 53 69 7a 65 3b  INT ptPaperSize;
6590: 0d 0a 20 20 52 45 43 54 20 72 74 4d 69 6e 4d 61  ..  RECT rtMinMa
65a0: 72 67 69 6e 3b 0d 0a 20 20 52 45 43 54 20 72 74  rgin;..  RECT rt
65b0: 4d 61 72 67 69 6e 3b 0d 0a 20 20 48 49 4e 53 54  Margin;..  HINST
65c0: 41 4e 43 45 20 68 49 6e 73 74 61 6e 63 65 3b 0d  ANCE hInstance;.
65d0: 0a 20 20 4c 50 41 52 41 4d 20 6c 43 75 73 74 44  .  LPARAM lCustD
65e0: 61 74 61 3b 0d 0a 20 20 4c 50 50 41 47 45 53 45  ata;..  LPPAGESE
65f0: 54 55 50 48 4f 4f 4b 20 6c 70 66 6e 50 61 67 65  TUPHOOK lpfnPage
6600: 53 65 74 75 70 48 6f 6f 6b 3b 0d 0a 20 20 4c 50  SetupHook;..  LP
6610: 50 41 47 45 50 41 49 4e 54 48 4f 4f 4b 20 6c 70  PAGEPAINTHOOK lp
6620: 66 6e 50 61 67 65 50 61 69 6e 74 48 6f 6f 6b 3b  fnPagePaintHook;
6630: 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 50 61  ..  LPCWSTR lpPa
6640: 67 65 53 65 74 75 70 54 65 6d 70 6c 61 74 65 4e  geSetupTemplateN
6650: 61 6d 65 3b 0d 0a 20 20 48 47 4c 4f 42 41 4c 20  ame;..  HGLOBAL 
6660: 68 50 61 67 65 53 65 74 75 70 54 65 6d 70 6c 61  hPageSetupTempla
6670: 74 65 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 74 61  te;..}..alias ta
6680: 67 50 53 44 57 20 50 41 47 45 53 45 54 55 50 44  gPSDW PAGESETUPD
6690: 4c 47 57 3b 0d 0a 61 6c 69 61 73 20 74 61 67 50  LGW;..alias tagP
66a0: 53 44 57 2a 20 4c 50 50 41 47 45 53 45 54 55 50  SDW* LPPAGESETUP
66b0: 44 4c 47 57 3b 0d 0a 0d 0a 2f 2f 20 23 69 66 64  DLGW;....// #ifd
66c0: 65 66 20 55 4e 49 43 4f 44 45 0d 0a 2f 2f 20 2e  ef UNICODE..// .
66d0: 2e 2e 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 61 6c  ....// #else..al
66e0: 69 61 73 20 50 41 47 45 53 45 54 55 50 44 4c 47  ias PAGESETUPDLG
66f0: 41 20 50 41 47 45 53 45 54 55 50 44 4c 47 3b 0d  A PAGESETUPDLG;.
6700: 0a 61 6c 69 61 73 20 4c 50 50 41 47 45 53 45 54  .alias LPPAGESET
6710: 55 50 44 4c 47 41 20 4c 50 50 41 47 45 53 45 54  UPDLGA LPPAGESET
6720: 55 50 44 4c 47 3b 0d 0a 2f 2f 20 23 65 6e 64 69  UPDLG;..// #endi
6730: 66 20 2f 2f 20 55 4e 49 43 4f 44 45 0d 0a 0d 0a  f // UNICODE....
6740: 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
6750: 65 78 70 6f 72 74 20 42 4f 4f 4c 20 50 61 67 65  export BOOL Page
6760: 53 65 74 75 70 44 6c 67 41 28 20 4c 50 50 41 47  SetupDlgA( LPPAG
6770: 45 53 45 54 55 50 44 4c 47 41 20 29 3b 0d 0a 65  ESETUPDLGA );..e
6780: 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
6790: 78 70 6f 72 74 20 42 4f 4f 4c 20 50 61 67 65 53  xport BOOL PageS
67a0: 65 74 75 70 44 6c 67 57 28 20 4c 50 50 41 47 45  etupDlgW( LPPAGE
67b0: 53 45 54 55 50 44 4c 47 57 20 29 3b 0d 0a 2f 2f  SETUPDLGW );..//
67c0: 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d   #ifdef UNICODE.
67d0: 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6c  .// #.....// #el
67e0: 73 65 0d 0a 61 6c 69 61 73 20 50 61 67 65 53 65  se..alias PageSe
67f0: 74 75 70 44 6c 67 41 20 50 61 67 65 53 65 74 75  tupDlgA PageSetu
6800: 70 44 6c 67 3b 0d 0a 2f 2f 20 23 65 6e 64 69 66  pDlg;..// #endif
6810: 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a   // !UNICODE....
6820: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 50 53  enum : uint { PS
6830: 44 5f 44 45 46 41 55 4c 54 4d 49 4e 4d 41 52 47  D_DEFAULTMINMARG
6840: 49 4e 53 20 3d 20 30 78 30 30 30 30 30 30 30 30  INS = 0x00000000
6850: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
6860: 7b 20 50 53 44 5f 49 4e 57 49 4e 49 4e 49 49 4e  { PSD_INWININIIN
6870: 54 4c 4d 45 41 53 55 52 45 20 3d 20 30 78 30 30  TLMEASURE = 0x00
6880: 30 30 30 30 30 30 20 7d 0d 0a 0d 0a 65 6e 75 6d  000000 }....enum
6890: 20 3a 20 75 69 6e 74 20 7b 20 50 53 44 5f 4d 49   : uint { PSD_MI
68a0: 4e 4d 41 52 47 49 4e 53 20 3d 20 30 78 30 30 30  NMARGINS = 0x000
68b0: 30 30 30 30 31 20 7d 0d 0a 65 6e 75 6d 20 3a 20  00001 }..enum : 
68c0: 75 69 6e 74 20 7b 20 50 53 44 5f 4d 41 52 47 49  uint { PSD_MARGI
68d0: 4e 53 20 3d 20 30 78 30 30 30 30 30 30 30 32 20  NS = 0x00000002 
68e0: 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b  }..enum : uint {
68f0: 20 50 53 44 5f 49 4e 54 48 4f 55 53 41 4e 44 54   PSD_INTHOUSANDT
6900: 48 53 4f 46 49 4e 43 48 45 53 20 3d 20 30 78 30  HSOFINCHES = 0x0
6910: 30 30 30 30 30 30 34 20 7d 0d 0a 65 6e 75 6d 20  0000004 }..enum 
6920: 3a 20 75 69 6e 74 20 7b 20 50 53 44 5f 49 4e 48  : uint { PSD_INH
6930: 55 4e 44 52 45 44 54 48 53 4f 46 4d 49 4c 4c 49  UNDREDTHSOFMILLI
6940: 4d 45 54 45 52 53 20 3d 20 30 78 30 30 30 30 30  METERS = 0x00000
6950: 30 30 38 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  008 }..enum : ui
6960: 6e 74 20 7b 20 50 53 44 5f 44 49 53 41 42 4c 45  nt { PSD_DISABLE
6970: 4d 41 52 47 49 4e 53 20 3d 20 30 78 30 30 30 30  MARGINS = 0x0000
6980: 30 30 31 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  0010 }..enum : u
6990: 69 6e 74 20 7b 20 50 53 44 5f 44 49 53 41 42 4c  int { PSD_DISABL
69a0: 45 50 52 49 4e 54 45 52 20 3d 20 30 78 30 30 30  EPRINTER = 0x000
69b0: 30 30 30 32 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20  00020 }..enum : 
69c0: 75 69 6e 74 20 7b 20 50 53 44 5f 4e 4f 57 41 52  uint { PSD_NOWAR
69d0: 4e 49 4e 47 20 3d 20 30 78 30 30 30 30 30 30 38  NING = 0x0000008
69e0: 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  0 }..enum : uint
69f0: 20 7b 20 50 53 44 5f 44 49 53 41 42 4c 45 4f 52   { PSD_DISABLEOR
6a00: 49 45 4e 54 41 54 49 4f 4e 20 3d 20 30 78 30 30  IENTATION = 0x00
6a10: 30 30 30 31 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a  000100 }..enum :
6a20: 20 75 69 6e 74 20 7b 20 50 53 44 5f 52 45 54 55   uint { PSD_RETU
6a30: 52 4e 44 45 46 41 55 4c 54 20 3d 20 30 78 30 30  RNDEFAULT = 0x00
6a40: 30 30 30 34 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a  000400 }..enum :
6a50: 20 75 69 6e 74 20 7b 20 50 53 44 5f 44 49 53 41   uint { PSD_DISA
6a60: 42 4c 45 50 41 50 45 52 20 3d 20 30 78 30 30 30  BLEPAPER = 0x000
6a70: 30 30 32 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20  00200 }..enum : 
6a80: 75 69 6e 74 20 7b 20 50 53 44 5f 53 48 4f 57 48  uint { PSD_SHOWH
6a90: 45 4c 50 20 3d 20 30 78 30 30 30 30 30 38 30 30  ELP = 0x00000800
6aa0: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
6ab0: 7b 20 50 53 44 5f 45 4e 41 42 4c 45 50 41 47 45  { PSD_ENABLEPAGE
6ac0: 53 45 54 55 50 48 4f 4f 4b 20 3d 20 30 78 30 30  SETUPHOOK = 0x00
6ad0: 30 30 32 30 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a  002000 }..enum :
6ae0: 20 75 69 6e 74 20 7b 20 50 53 44 5f 45 4e 41 42   uint { PSD_ENAB
6af0: 4c 45 50 41 47 45 53 45 54 55 50 54 45 4d 50 4c  LEPAGESETUPTEMPL
6b00: 41 54 45 20 3d 20 30 78 30 30 30 30 38 30 30 30  ATE = 0x00008000
6b10: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
6b20: 7b 20 50 53 44 5f 45 4e 41 42 4c 45 50 41 47 45  { PSD_ENABLEPAGE
6b30: 53 45 54 55 50 54 45 4d 50 4c 41 54 45 48 41 4e  SETUPTEMPLATEHAN
6b40: 44 4c 45 20 3d 20 30 78 30 30 30 32 30 30 30 30  DLE = 0x00020000
6b50: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
6b60: 7b 20 50 53 44 5f 45 4e 41 42 4c 45 50 41 47 45  { PSD_ENABLEPAGE
6b70: 50 41 49 4e 54 48 4f 4f 4b 20 3d 20 30 78 30 30  PAINTHOOK = 0x00
6b80: 30 34 30 30 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a  040000 }..enum :
6b90: 20 75 69 6e 74 20 7b 20 50 53 44 5f 44 49 53 41   uint { PSD_DISA
6ba0: 42 4c 45 50 41 47 45 50 41 49 4e 54 49 4e 47 20  BLEPAGEPAINTING 
6bb0: 3d 20 30 78 30 30 30 38 30 30 30 30 20 7d 0d 0a  = 0x00080000 }..
6bc0: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 50 53  enum : uint { PS
6bd0: 44 5f 4e 4f 4e 45 54 57 4f 52 4b 42 55 54 54 4f  D_NONETWORKBUTTO
6be0: 4e 20 3d 20 30 78 30 30 32 30 30 30 30 30 20 7d  N = 0x00200000 }
6bf0: 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2a 20 57  ..// #endif /* W
6c00: 49 4e 56 45 52 20 3e 3d 20 30 78 30 34 30 30 20  INVER >= 0x0400 
6c10: 2a 2f 0d 0a 0d 0a 2f 2f 20 23 69 66 20 21 64 65  */....// #if !de
6c20: 66 69 6e 65 64 28 52 43 5f 49 4e 56 4f 4b 45 44  fined(RC_INVOKED
6c30: 29 20 2f 2a 20 52 43 20 63 6f 6d 70 6c 61 69 6e  ) /* RC complain
6c40: 73 20 61 62 6f 75 74 20 6c 6f 6e 67 20 73 79 6d  s about long sym
6c50: 62 6f 6c 73 20 69 6e 20 23 69 66 73 20 2a 2f 0d  bols in #ifs */.
6c60: 0a 2f 2f 20 23 69 66 20 49 53 4f 4c 41 54 49 4f  .// #if ISOLATIO
6c70: 4e 5f 41 57 41 52 45 5f 45 4e 41 42 4c 45 44 0d  N_AWARE_ENABLED.
6c80: 0a 0d 0a 2f 2f 20 23 69 66 20 21 64 65 66 69 6e  ...// #if !defin
6c90: 65 64 28 49 53 4f 4c 41 54 49 4f 4e 5f 41 57 41  ed(ISOLATION_AWA
6ca0: 52 45 5f 49 4e 4c 49 4e 45 29 0d 0a 2f 2f 20 23  RE_INLINE)..// #
6cb0: 69 66 20 64 65 66 69 6e 65 64 28 5f 5f 63 70 6c  if defined(__cpl
6cc0: 75 73 70 6c 75 73 29 0d 0a 2f 2f 20 23 2e 2e 2e  usplus)..// #...
6cd0: 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23  ..// #else..// #
6ce0: 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 0d 0a  .....// #endif..
6cf0: 2f 2f 20 23 65 6e 64 69 66 0d 0a 0d 0a 2f 2f 20  // #endif....// 
6d00: 2e 2e 2e 0d 0a 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 2f  .......// ...../
6d10: 2f 20 23 69 66 20 64 65 66 69 6e 65 64 28 53 54  / #if defined(ST
6d20: 44 4d 45 54 48 4f 44 29 20 26 26 20 28 57 49 4e  DMETHOD) && (WIN
6d30: 56 45 52 20 3e 3d 20 30 78 30 35 30 30 29 0d 0a  VER >= 0x0500)..
6d40: 2f 2f 20 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69  // .....// #endi
6d50: 66 20 2f 2a 20 64 65 66 69 6e 65 64 28 53 54 44  f /* defined(STD
6d60: 4d 45 54 48 4f 44 29 20 26 26 20 28 57 49 4e 56  METHOD) && (WINV
6d70: 45 52 20 3e 3d 20 30 78 30 35 30 30 29 20 2a 2f  ER >= 0x0500) */
6d80: 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 0d 0a 2f 2f 20 23  ..// .......// #
6d90: 69 66 20 64 65 66 69 6e 65 64 28 55 4e 49 43 4f  if defined(UNICO
6da0: 44 45 29 0d 0a 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a  DE)....// #.....
6db0: 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 2e 2e 2e  // #.....// #...
6dc0: 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 2e  ..// #.....// #.
6dd0: 2e 2e 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20  ....// #.....// 
6de0: 23 2e 2e 2e 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f  #.....// #...../
6df0: 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 2e 2e 2e 0d  / #.....// #....
6e00: 0a 0d 0a 2f 2f 20 23 65 6c 73 65 20 2f 2a 20 55  ...// #else /* U
6e10: 4e 49 43 4f 44 45 20 2a 2f 0d 0a 0d 0a 2f 2f 20  NICODE */....// 
6e20: 23 2e 2e 2e 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f  #.....// #...../
6e30: 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 2e 2e 2e 0d  / #.....// #....
6e40: 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 2e 2e  .// #.....// #..
6e50: 2e 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23  ...// #.....// #
6e60: 2e 2e 2e 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f  .....// #.....//
6e70: 20 23 2e 2e 2e 0d 0a 0d 0a 2f 2f 20 23 65 6e 64   #.......// #end
6e80: 69 66 20 2f 2a 20 55 4e 49 43 4f 44 45 20 2a 2f  if /* UNICODE */
6e90: 0d 0a 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 0d 0a 2f 2f  ....// .......//
6ea0: 20 2e 2e 2e 0d 0a 0d 0a 2f 2f 20 2e 2e 2e 0d 0a   .......// .....
6eb0: 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 0d 0a 2f 2f 20 2e  ..// .......// .
6ec0: 2e 2e 0d 0a 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 0d 0a  ......// .......
6ed0: 2f 2f 20 2e 2e 2e 0d 0a 0d 0a 2f 2f 20 2e 2e 2e  // .......// ...
6ee0: 0d 0a 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 0d 0a 2f 2f  ....// .......//
6ef0: 20 2e 2e 2e 0d 0a 0d 0a 2f 2f 20 2e 2e 2e 0d 0a   .......// .....
6f00: 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 0d 0a 2f 2f 20 2e  ..// .......// .
6f10: 2e 2e 0d 0a 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 0d 0a  ......// .......
6f20: 2f 2f 20 2e 2e 2e 0d 0a 0d 0a 2f 2f 20 2e 2e 2e  // .......// ...
6f30: 0d 0a 0d 0a 2f 2f 20 23 69 66 20 64 65 66 69 6e  ....// #if defin
6f40: 65 64 28 53 54 44 4d 45 54 48 4f 44 29 20 26 26  ed(STDMETHOD) &&
6f50: 20 28 57 49 4e 56 45 52 20 3e 3d 20 30 78 30 35   (WINVER >= 0x05
6f60: 30 30 29 0d 0a 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 0d  00)....// ......
6f70: 0a 2f 2f 20 2e 2e 2e 0d 0a 0d 0a 2f 2f 20 2e 2e  .// .......// ..
6f80: 2e 0d 0a 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 0d 0a 2f  .....// ......./
6f90: 2f 20 23 65 6e 64 69 66 20 2f 2a 20 64 65 66 69  / #endif /* defi
6fa0: 6e 65 64 28 53 54 44 4d 45 54 48 4f 44 29 20 26  ned(STDMETHOD) &
6fb0: 26 20 28 57 49 4e 56 45 52 20 3e 3d 20 30 78 30  & (WINVER >= 0x0
6fc0: 35 30 30 29 20 2a 2f 0d 0a 0d 0a 2f 2f 20 2e 2e  500) */....// ..
6fd0: 2e 0d 0a 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 0d 0a 2f  .....// ......./
6fe0: 2f 20 2e 2e 2e 0d 0a 0d 0a 2f 2f 20 2e 2e 2e 0d  / .......// ....
6ff0: 0a 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23  ...// #.....// #
7000: 2e 2e 2e 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f  .....// #.....//
7010: 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a   #.....// #.....
7020: 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 2e 2e 2e  // #.....// #...
7030: 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 2e  ..// #.....// #.
7040: 2e 2e 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20  ....// #.....// 
7050: 23 2e 2e 2e 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f  #.....// #...../
7060: 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 2e 2e 2e 0d  / #.....// #....
7070: 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 2e 2e  .// #.....// #..
7080: 2e 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23  ...// #.....// #
7090: 2e 2e 2e 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f  .....// #.....//
70a0: 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a   #.....// #.....
70b0: 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2a 20 49  ..// #endif /* I
70c0: 53 4f 4c 41 54 49 4f 4e 5f 41 57 41 52 45 5f 45  SOLATION_AWARE_E
70d0: 4e 41 42 4c 45 44 20 2a 2f 0d 0a 2f 2f 20 23 65  NABLED */..// #e
70e0: 6e 64 69 66 20 2f 2a 20 52 43 20 2a 2f 0d 0a 0d  ndif /* RC */...
70f0: 0a 2f 2f 20 23 69 66 64 65 66 20 5f 5f 63 70 6c  .// #ifdef __cpl
7100: 75 73 70 6c 75 73 0d 0a 2f 2f 20 7d 0d 0a 2f 2f  usplus..// }..//
7110: 20 23 65 6e 64 69 66 20 20 2f 2a 20 5f 5f 63 70   #endif  /* __cp
7120: 6c 75 73 70 6c 75 73 20 2a 2f 0d 0a 0d 0a 2f 2f  lusplus */....//
7130: 20 23 69 66 20 21 64 65 66 69 6e 65 64 28 5f 57   #if !defined(_W
7140: 49 4e 36 34 29 0d 0a 61 6c 69 67 6e 3a 0d 0a 2f  IN64)..align:../
7150: 2f 20 23 65 6e 64 69 66 0d 0a 2f 2f 20 23 65 6e  / #endif..// #en
7160: 64 69 66 20 20 2f 2a 20 47 55 49 44 5f 44 45 46  dif  /* GUID_DEF
7170: 53 5f 4f 4e 4c 59 20 2a 2f 0d 0a 2f 2f 20 23 65  S_ONLY */..// #e
7180: 6e 64 69 66 20 20 2f 2a 20 21 5f 49 4e 43 5f 43  ndif  /* !_INC_C
7190: 4f 4d 4d 44 4c 47 20 2a 2f 0d 0a 0d 0a           OMMDLG */....