Hex Artifact Content

Not logged in

Artifact 7df464c2cf7d0434b6e44a37bda4d0720e4954d0:


0000: 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  /***************
0010: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0020: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0030: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0040: 2a 2a 2a 2a 2a 2a 2a 2a 5c 0d 0a 2a 20 20 20 20  ********\..*    
0050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0060: 20 20 20 20 20 20 20 20 20 20 20 20 73 68 6c 6f              shlo
0070: 62 6a 2e 64 20 20 20 20 20 20 20 20 20 20 20 20  bj.d            
0080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0090: 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20 20     *..*         
00a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
00b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
00c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
00d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d                *.
00e0: 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .*              
00f0: 20 20 20 20 20 20 20 20 20 57 69 6e 64 6f 77 73           Windows
0100: 20 41 50 49 20 68 65 61 64 65 72 20 6d 6f 64 75   API header modu
0110: 6c 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20  le              
0120: 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 20 20 20           *..*   
0130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0170: 20 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20      *..*        
0180: 20 20 20 20 20 54 72 61 6e 73 6c 61 74 65 64 20       Translated 
0190: 66 72 6f 6d 20 4d 69 6e 47 57 20 41 50 49 20 66  from MinGW API f
01a0: 6f 72 20 4d 53 2d 57 69 6e 64 6f 77 73 20 34 2e  or MS-Windows 4.
01b0: 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a  0              *
01c0: 0d 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20  ..*             
01d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
01e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
01f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0200: 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 20 20            *..*  
0210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0220: 20 20 20 20 20 50 6c 61 63 65 64 20 69 6e 74 6f       Placed into
0230: 20 70 75 62 6c 69 63 20 64 6f 6d 61 69 6e 20 20   public domain  
0240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0250: 20 20 20 20 20 2a 0d 0a 5c 2a 2a 2a 2a 2a 2a 2a       *..\*******
0260: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0270: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0280: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0290: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
02a0: 2f 0d 0a 6d 6f 64 75 6c 65 20 77 69 6e 33 32 2e  /..module win32.
02b0: 73 68 6c 6f 62 6a 3b 0d 0a 70 72 61 67 6d 61 28  shlobj;..pragma(
02c0: 6c 69 62 2c 20 22 73 68 65 6c 6c 33 32 22 29 3b  lib, "shell32");
02d0: 0d 0a 0d 0a 2f 2f 20 54 4f 44 4f 3a 20 66 69 78  ....// TODO: fix
02e0: 20 62 69 74 66 69 65 6c 64 73 0d 0a 2f 2f 20 54   bitfields..// T
02f0: 4f 44 4f 3a 20 43 4d 49 43 5f 56 41 4c 49 44 5f  ODO: CMIC_VALID_
0300: 53 45 45 5f 46 4c 41 47 53 0d 0a 2f 2f 20 53 48  SEE_FLAGS..// SH
0310: 47 65 74 46 6f 6c 64 65 72 50 61 74 68 20 69 6e  GetFolderPath in
0320: 20 73 68 66 6f 6c 64 65 72 2e 64 6c 6c 20 6f 6e   shfolder.dll on
0330: 20 57 39 78 2c 20 4e 54 34 2c 20 61 6c 73 6f 20   W9x, NT4, also 
0340: 69 6e 20 73 68 65 6c 6c 33 32 2e 64 6c 6c 20 6f  in shell32.dll o
0350: 6e 20 57 32 4b 0d 0a 0d 0a 69 6d 70 6f 72 74 20  n W2K....import 
0360: 77 69 6e 33 32 2e 63 6f 6d 6d 63 74 72 6c 2c 20  win32.commctrl, 
0370: 77 69 6e 33 32 2e 6f 6c 65 32 2c 20 77 69 6e 33  win32.ole2, win3
0380: 32 2e 73 68 6c 67 75 69 64 2c 20 77 69 6e 33 32  2.shlguid, win32
0390: 2e 73 68 65 6c 6c 61 70 69 3b 0d 0a 70 72 69 76  .shellapi;..priv
03a0: 61 74 65 20 69 6d 70 6f 72 74 20 77 69 6e 33 32  ate import win32
03b0: 2e 70 72 73 68 74 2c 20 77 69 6e 33 32 2e 75 6e  .prsht, win32.un
03c0: 6b 6e 77 6e 2c 20 77 69 6e 33 32 2e 77 33 32 61  knwn, win32.w32a
03d0: 70 69 2c 20 77 69 6e 33 32 2e 77 69 6e 62 61 73  pi, win32.winbas
03e0: 65 2c 0d 0a 20 20 77 69 6e 33 32 2e 77 69 6e 6e  e,..  win32.winn
03f0: 74 2c 20 77 69 6e 33 32 2e 77 69 6e 75 73 65 72  t, win32.winuser
0400: 2c 20 77 69 6e 33 32 2e 77 74 79 70 65 73 2c 20  , win32.wtypes, 
0410: 77 69 6e 33 32 2e 6f 62 6a 66 77 64 2c 20 77 69  win32.objfwd, wi
0420: 6e 33 32 2e 6f 62 6a 69 64 6c 3b 0d 0a 70 72 69  n32.objidl;..pri
0430: 76 61 74 65 20 69 6d 70 6f 72 74 20 77 69 6e 33  vate import win3
0440: 32 2e 77 69 6e 6e 65 74 77 6b 3b 20 2f 2f 20 66  2.winnetwk; // f
0450: 6f 72 20 4e 45 54 52 45 53 4f 55 52 43 45 0d 0a  or NETRESOURCE..
0460: 70 72 69 76 61 74 65 20 69 6d 70 6f 72 74 20 77  private import w
0470: 69 6e 33 32 2e 6f 61 69 64 6c 20 3a 20 56 41 52  in32.oaidl : VAR
0480: 49 41 4e 54 3b 0d 0a 0d 0a 0d 0a 2f 2f 20 46 49  IANT;......// FI
0490: 58 4d 45 3a 20 63 6c 65 61 6e 20 75 70 20 57 69  XME: clean up Wi
04a0: 6e 64 6f 77 73 20 76 65 72 73 69 6f 6e 20 73 75  ndows version su
04b0: 70 70 6f 72 74 0d 0a 0d 0a 61 6c 69 67 6e 28 31  pport....align(1
04c0: 29 3a 0d 0a 0d 0a 63 6f 6e 73 74 20 42 49 46 5f  ):....const BIF_
04d0: 52 45 54 55 52 4e 4f 4e 4c 59 46 53 44 49 52 53  RETURNONLYFSDIRS
04e0: 20 3d 20 31 3b 0d 0a 63 6f 6e 73 74 20 42 49 46   = 1;..const BIF
04f0: 5f 44 4f 4e 54 47 4f 42 45 4c 4f 57 44 4f 4d 41  _DONTGOBELOWDOMA
0500: 49 4e 20 3d 20 32 3b 0d 0a 63 6f 6e 73 74 20 42  IN = 2;..const B
0510: 49 46 5f 53 54 41 54 55 53 54 45 58 54 20 3d 20  IF_STATUSTEXT = 
0520: 34 3b 0d 0a 63 6f 6e 73 74 20 42 49 46 5f 52 45  4;..const BIF_RE
0530: 54 55 52 4e 46 53 41 4e 43 45 53 54 4f 52 53 20  TURNFSANCESTORS 
0540: 3d 20 38 3b 0d 0a 63 6f 6e 73 74 20 42 49 46 5f  = 8;..const BIF_
0550: 45 44 49 54 42 4f 58 20 3d 20 31 36 3b 0d 0a 63  EDITBOX = 16;..c
0560: 6f 6e 73 74 20 42 49 46 5f 56 41 4c 49 44 41 54  onst BIF_VALIDAT
0570: 45 20 3d 20 33 32 3b 0d 0a 63 6f 6e 73 74 20 42  E = 32;..const B
0580: 49 46 5f 4e 45 57 44 49 41 4c 4f 47 53 54 59 4c  IF_NEWDIALOGSTYL
0590: 45 20 3d 20 36 34 3b 0d 0a 63 6f 6e 73 74 20 42  E = 64;..const B
05a0: 49 46 5f 42 52 4f 57 53 45 49 4e 43 4c 55 44 45  IF_BROWSEINCLUDE
05b0: 55 52 4c 53 20 3d 20 31 32 38 3b 0d 0a 63 6f 6e  URLS = 128;..con
05c0: 73 74 20 42 49 46 5f 55 53 45 4e 45 57 55 49 20  st BIF_USENEWUI 
05d0: 3d 20 20 42 49 46 5f 45 44 49 54 42 4f 58 20 7c  =  BIF_EDITBOX |
05e0: 20 42 49 46 5f 4e 45 57 44 49 41 4c 4f 47 53 54   BIF_NEWDIALOGST
05f0: 59 4c 45 3b 0d 0a 63 6f 6e 73 74 20 42 49 46 5f  YLE;..const BIF_
0600: 42 52 4f 57 53 45 46 4f 52 43 4f 4d 50 55 54 45  BROWSEFORCOMPUTE
0610: 52 20 3d 20 30 78 31 30 30 30 3b 0d 0a 63 6f 6e  R = 0x1000;..con
0620: 73 74 20 42 49 46 5f 42 52 4f 57 53 45 46 4f 52  st BIF_BROWSEFOR
0630: 50 52 49 4e 54 45 52 20 3d 20 30 78 32 30 30 30  PRINTER = 0x2000
0640: 3b 0d 0a 63 6f 6e 73 74 20 42 49 46 5f 42 52 4f  ;..const BIF_BRO
0650: 57 53 45 49 4e 43 4c 55 44 45 46 49 4c 45 53 20  WSEINCLUDEFILES 
0660: 3d 20 30 78 34 30 30 30 3b 0d 0a 63 6f 6e 73 74  = 0x4000;..const
0670: 20 42 49 46 5f 53 48 41 52 45 41 42 4c 45 20 3d   BIF_SHAREABLE =
0680: 20 30 78 38 30 30 30 3b 0d 0a 63 6f 6e 73 74 20   0x8000;..const 
0690: 42 46 46 4d 5f 49 4e 49 54 49 41 4c 49 5a 45 44  BFFM_INITIALIZED
06a0: 20 3d 20 31 3b 0d 0a 63 6f 6e 73 74 20 42 46 46   = 1;..const BFF
06b0: 4d 5f 53 45 4c 43 48 41 4e 47 45 44 20 3d 20 32  M_SELCHANGED = 2
06c0: 3b 0d 0a 63 6f 6e 73 74 20 42 46 46 4d 5f 56 41  ;..const BFFM_VA
06d0: 4c 49 44 41 54 45 46 41 49 4c 45 44 41 20 3d 20  LIDATEFAILEDA = 
06e0: 33 3b 0d 0a 63 6f 6e 73 74 20 42 46 46 4d 5f 56  3;..const BFFM_V
06f0: 41 4c 49 44 41 54 45 46 41 49 4c 45 44 57 20 3d  ALIDATEFAILEDW =
0700: 20 34 3b 0d 0a 63 6f 6e 73 74 20 42 46 46 4d 5f   4;..const BFFM_
0710: 53 45 54 53 54 41 54 55 53 54 45 58 54 41 20 3d  SETSTATUSTEXTA =
0720: 20 57 4d 5f 55 53 45 52 20 2b 20 31 30 30 3b 0d   WM_USER + 100;.
0730: 0a 63 6f 6e 73 74 20 42 46 46 4d 5f 45 4e 41 42  .const BFFM_ENAB
0740: 4c 45 4f 4b 20 3d 20 57 4d 5f 55 53 45 52 20 2b  LEOK = WM_USER +
0750: 20 31 30 31 3b 0d 0a 63 6f 6e 73 74 20 42 46 46   101;..const BFF
0760: 4d 5f 53 45 54 53 45 4c 45 43 54 49 4f 4e 41 20  M_SETSELECTIONA 
0770: 3d 20 57 4d 5f 55 53 45 52 20 2b 20 31 30 32 3b  = WM_USER + 102;
0780: 0d 0a 63 6f 6e 73 74 20 42 46 46 4d 5f 53 45 54  ..const BFFM_SET
0790: 53 45 4c 45 43 54 49 4f 4e 57 20 3d 20 57 4d 5f  SELECTIONW = WM_
07a0: 55 53 45 52 20 2b 20 31 30 33 3b 0d 0a 63 6f 6e  USER + 103;..con
07b0: 73 74 20 42 46 46 4d 5f 53 45 54 53 54 41 54 55  st BFFM_SETSTATU
07c0: 53 54 45 58 54 57 20 3d 20 57 4d 5f 55 53 45 52  STEXTW = WM_USER
07d0: 20 2b 20 31 30 34 3b 0d 0a 63 6f 6e 73 74 20 42   + 104;..const B
07e0: 46 46 4d 5f 53 45 54 4f 4b 54 45 58 54 20 3d 20  FFM_SETOKTEXT = 
07f0: 57 4d 5f 55 53 45 52 20 2b 20 31 30 35 3b 0d 0a  WM_USER + 105;..
0800: 63 6f 6e 73 74 20 42 46 46 4d 5f 53 45 54 45 58  const BFFM_SETEX
0810: 50 41 4e 44 45 44 20 3d 20 57 4d 5f 55 53 45 52  PANDED = WM_USER
0820: 20 2b 20 31 30 36 3b 0d 0a 0d 0a 76 65 72 73 69   + 106;....versi
0830: 6f 6e 28 55 6e 69 63 6f 64 65 29 20 7b 0d 0a 09  on(Unicode) {...
0840: 61 6c 69 61 73 20 42 46 46 4d 5f 53 45 54 53 54  alias BFFM_SETST
0850: 41 54 55 53 54 45 58 54 57 20 42 46 46 4d 5f 53  ATUSTEXTW BFFM_S
0860: 45 54 53 54 41 54 55 53 54 45 58 54 3b 0d 0a 09  ETSTATUSTEXT;...
0870: 61 6c 69 61 73 20 42 46 46 4d 5f 53 45 54 53 45  alias BFFM_SETSE
0880: 4c 45 43 54 49 4f 4e 57 20 42 46 46 4d 5f 53 45  LECTIONW BFFM_SE
0890: 54 53 45 4c 45 43 54 49 4f 4e 3b 0d 0a 09 61 6c  TSELECTION;...al
08a0: 69 61 73 20 42 46 46 4d 5f 56 41 4c 49 44 41 54  ias BFFM_VALIDAT
08b0: 45 46 41 49 4c 45 44 57 20 42 46 46 4d 5f 56 41  EFAILEDW BFFM_VA
08c0: 4c 49 44 41 54 45 46 41 49 4c 45 44 3b 0d 0a 7d  LIDATEFAILED;..}
08d0: 20 65 6c 73 65 20 7b 0d 0a 09 61 6c 69 61 73 20   else {...alias 
08e0: 42 46 46 4d 5f 53 45 54 53 54 41 54 55 53 54 45  BFFM_SETSTATUSTE
08f0: 58 54 41 20 42 46 46 4d 5f 53 45 54 53 54 41 54  XTA BFFM_SETSTAT
0900: 55 53 54 45 58 54 3b 0d 0a 09 61 6c 69 61 73 20  USTEXT;...alias 
0910: 42 46 46 4d 5f 53 45 54 53 45 4c 45 43 54 49 4f  BFFM_SETSELECTIO
0920: 4e 41 20 42 46 46 4d 5f 53 45 54 53 45 4c 45 43  NA BFFM_SETSELEC
0930: 54 49 4f 4e 3b 0d 0a 09 61 6c 69 61 73 20 42 46  TION;...alias BF
0940: 46 4d 5f 56 41 4c 49 44 41 54 45 46 41 49 4c 45  FM_VALIDATEFAILE
0950: 44 41 20 42 46 46 4d 5f 56 41 4c 49 44 41 54 45  DA BFFM_VALIDATE
0960: 46 41 49 4c 45 44 3b 0d 0a 7d 0d 0a 0d 0a 63 6f  FAILED;..}....co
0970: 6e 73 74 20 44 56 41 53 50 45 43 54 5f 53 48 4f  nst DVASPECT_SHO
0980: 52 54 4e 41 4d 45 20 3d 20 32 3b 0d 0a 0d 0a 65  RTNAME = 2;....e
0990: 6e 75 6d 20 53 48 41 52 44 20 7b 0d 0a 20 20 20  num SHARD {..   
09a0: 20 53 48 41 52 44 5f 50 49 44 4c 20 20 20 20 20   SHARD_PIDL     
09b0: 20 20 20 20 20 20 20 3d 20 31 2c 0d 0a 20 20 20         = 1,..   
09c0: 20 53 48 41 52 44 5f 50 41 54 48 41 2c 0d 0a 20   SHARD_PATHA,.. 
09d0: 20 20 20 53 48 41 52 44 5f 50 41 54 48 57 2c 0d     SHARD_PATHW,.
09e0: 0a 20 20 20 20 53 48 41 52 44 5f 41 50 50 49 44  .    SHARD_APPID
09f0: 49 4e 46 4f 2c 0d 0a 20 20 20 20 53 48 41 52 44  INFO,..    SHARD
0a00: 5f 41 50 50 49 44 49 4e 46 4f 49 44 4c 49 53 54  _APPIDINFOIDLIST
0a10: 2c 0d 0a 20 20 20 20 53 48 41 52 44 5f 4c 49 4e  ,..    SHARD_LIN
0a20: 4b 2c 0d 0a 20 20 20 20 53 48 41 52 44 5f 41 50  K,..    SHARD_AP
0a30: 50 49 44 49 4e 46 4f 4c 49 4e 4b 2c 0d 0a 20 20  PIDINFOLINK,..  
0a40: 20 20 53 48 41 52 44 5f 53 48 45 4c 4c 49 54 45    SHARD_SHELLITE
0a50: 4d 2c 20 20 20 2f 2f 20 3d 20 38 0d 0a 09 53 48  M,   // = 8...SH
0a60: 41 52 44 5f 50 41 54 48 20 3d 20 28 5f 57 49 4e  ARD_PATH = (_WIN
0a70: 33 32 5f 55 4e 49 43 4f 44 45 20 3f 20 53 48 41  32_UNICODE ? SHA
0a80: 52 44 5f 50 41 54 48 57 20 3a 20 53 48 41 52 44  RD_PATHW : SHARD
0a90: 5f 50 41 54 48 41 29 0d 0a 7d 0d 0a 0d 0a 63 6f  _PATHA)..}....co
0aa0: 6e 73 74 20 53 48 43 4e 45 5f 52 45 4e 41 4d 45  nst SHCNE_RENAME
0ab0: 49 54 45 4d 20 3d 20 31 3b 0d 0a 63 6f 6e 73 74  ITEM = 1;..const
0ac0: 20 53 48 43 4e 45 5f 43 52 45 41 54 45 20 3d 20   SHCNE_CREATE = 
0ad0: 32 3b 0d 0a 63 6f 6e 73 74 20 53 48 43 4e 45 5f  2;..const SHCNE_
0ae0: 44 45 4c 45 54 45 20 3d 20 34 3b 0d 0a 63 6f 6e  DELETE = 4;..con
0af0: 73 74 20 53 48 43 4e 45 5f 4d 4b 44 49 52 20 3d  st SHCNE_MKDIR =
0b00: 20 38 3b 0d 0a 63 6f 6e 73 74 20 53 48 43 4e 45   8;..const SHCNE
0b10: 5f 52 4d 44 49 52 20 3d 20 31 36 3b 0d 0a 63 6f  _RMDIR = 16;..co
0b20: 6e 73 74 20 53 48 43 4e 45 5f 4d 45 44 49 41 49  nst SHCNE_MEDIAI
0b30: 4e 53 45 52 54 45 44 20 3d 20 33 32 3b 0d 0a 63  NSERTED = 32;..c
0b40: 6f 6e 73 74 20 53 48 43 4e 45 5f 4d 45 44 49 41  onst SHCNE_MEDIA
0b50: 52 45 4d 4f 56 45 44 20 3d 20 36 34 3b 0d 0a 63  REMOVED = 64;..c
0b60: 6f 6e 73 74 20 53 48 43 4e 45 5f 44 52 49 56 45  onst SHCNE_DRIVE
0b70: 52 45 4d 4f 56 45 44 20 3d 20 31 32 38 3b 0d 0a  REMOVED = 128;..
0b80: 63 6f 6e 73 74 20 53 48 43 4e 45 5f 44 52 49 56  const SHCNE_DRIV
0b90: 45 41 44 44 20 3d 20 32 35 36 3b 0d 0a 63 6f 6e  EADD = 256;..con
0ba0: 73 74 20 53 48 43 4e 45 5f 4e 45 54 53 48 41 52  st SHCNE_NETSHAR
0bb0: 45 20 3d 20 35 31 32 3b 0d 0a 63 6f 6e 73 74 20  E = 512;..const 
0bc0: 53 48 43 4e 45 5f 4e 45 54 55 4e 53 48 41 52 45  SHCNE_NETUNSHARE
0bd0: 20 3d 20 31 30 32 34 3b 0d 0a 63 6f 6e 73 74 20   = 1024;..const 
0be0: 53 48 43 4e 45 5f 41 54 54 52 49 42 55 54 45 53  SHCNE_ATTRIBUTES
0bf0: 20 3d 20 32 30 34 38 3b 0d 0a 63 6f 6e 73 74 20   = 2048;..const 
0c00: 53 48 43 4e 45 5f 55 50 44 41 54 45 44 49 52 20  SHCNE_UPDATEDIR 
0c10: 3d 20 34 30 39 36 3b 0d 0a 63 6f 6e 73 74 20 53  = 4096;..const S
0c20: 48 43 4e 45 5f 55 50 44 41 54 45 49 54 45 4d 20  HCNE_UPDATEITEM 
0c30: 3d 20 38 31 39 32 3b 0d 0a 63 6f 6e 73 74 20 53  = 8192;..const S
0c40: 48 43 4e 45 5f 53 45 52 56 45 52 44 49 53 43 4f  HCNE_SERVERDISCO
0c50: 4e 4e 45 43 54 20 3d 20 31 36 33 38 34 3b 0d 0a  NNECT = 16384;..
0c60: 63 6f 6e 73 74 20 53 48 43 4e 45 5f 55 50 44 41  const SHCNE_UPDA
0c70: 54 45 49 4d 41 47 45 20 3d 20 33 32 37 36 38 3b  TEIMAGE = 32768;
0c80: 0d 0a 63 6f 6e 73 74 20 53 48 43 4e 45 5f 44 52  ..const SHCNE_DR
0c90: 49 56 45 41 44 44 47 55 49 20 3d 20 36 35 35 33  IVEADDGUI = 6553
0ca0: 36 3b 0d 0a 63 6f 6e 73 74 20 53 48 43 4e 45 5f  6;..const SHCNE_
0cb0: 52 45 4e 41 4d 45 46 4f 4c 44 45 52 20 3d 20 30  RENAMEFOLDER = 0
0cc0: 78 32 30 30 30 30 3b 0d 0a 63 6f 6e 73 74 20 53  x20000;..const S
0cd0: 48 43 4e 45 5f 46 52 45 45 53 50 41 43 45 20 3d  HCNE_FREESPACE =
0ce0: 20 30 78 34 30 30 30 30 3b 0d 0a 63 6f 6e 73 74   0x40000;..const
0cf0: 20 53 48 43 4e 45 5f 41 53 53 4f 43 43 48 41 4e   SHCNE_ASSOCCHAN
0d00: 47 45 44 20 3d 20 30 78 38 30 30 30 30 30 30 3b  GED = 0x8000000;
0d10: 0d 0a 63 6f 6e 73 74 20 53 48 43 4e 45 5f 44 49  ..const SHCNE_DI
0d20: 53 4b 45 56 45 4e 54 53 20 3d 20 30 78 32 33 38  SKEVENTS = 0x238
0d30: 31 46 3b 0d 0a 63 6f 6e 73 74 20 53 48 43 4e 45  1F;..const SHCNE
0d40: 5f 47 4c 4f 42 41 4c 45 56 45 4e 54 53 20 3d 20  _GLOBALEVENTS = 
0d50: 30 78 43 30 35 38 31 45 30 3b 0d 0a 63 6f 6e 73  0xC0581E0;..cons
0d60: 74 20 53 48 43 4e 45 5f 41 4c 4c 45 56 45 4e 54  t SHCNE_ALLEVENT
0d70: 53 20 3d 20 30 78 37 46 46 46 46 46 46 46 3b 0d  S = 0x7FFFFFFF;.
0d80: 0a 63 6f 6e 73 74 20 53 48 43 4e 45 5f 49 4e 54  .const SHCNE_INT
0d90: 45 52 52 55 50 54 20 3d 20 30 78 38 30 30 30 30  ERRUPT = 0x80000
0da0: 30 30 30 3b 0d 0a 0d 0a 63 6f 6e 73 74 20 53 48  000;....const SH
0db0: 43 4e 46 5f 49 44 4c 49 53 54 20 3d 20 30 3b 0d  CNF_IDLIST = 0;.
0dc0: 0a 63 6f 6e 73 74 20 53 48 43 4e 46 5f 50 41 54  .const SHCNF_PAT
0dd0: 48 41 20 3d 20 31 3b 0d 0a 63 6f 6e 73 74 20 53  HA = 1;..const S
0de0: 48 43 4e 46 5f 50 52 49 4e 54 45 52 41 20 3d 20  HCNF_PRINTERA = 
0df0: 32 3b 0d 0a 63 6f 6e 73 74 20 53 48 43 4e 46 5f  2;..const SHCNF_
0e00: 44 57 4f 52 44 20 3d 20 33 3b 0d 0a 63 6f 6e 73  DWORD = 3;..cons
0e10: 74 20 53 48 43 4e 46 5f 50 41 54 48 57 20 3d 20  t SHCNF_PATHW = 
0e20: 35 3b 0d 0a 63 6f 6e 73 74 20 53 48 43 4e 46 5f  5;..const SHCNF_
0e30: 50 52 49 4e 54 45 52 57 20 3d 20 36 3b 0d 0a 63  PRINTERW = 6;..c
0e40: 6f 6e 73 74 20 53 48 43 4e 46 5f 54 59 50 45 20  onst SHCNF_TYPE 
0e50: 3d 20 30 78 46 46 3b 0d 0a 63 6f 6e 73 74 20 53  = 0xFF;..const S
0e60: 48 43 4e 46 5f 46 4c 55 53 48 20 3d 20 30 78 31  HCNF_FLUSH = 0x1
0e70: 30 30 30 3b 0d 0a 63 6f 6e 73 74 20 53 48 43 4e  000;..const SHCN
0e80: 46 5f 46 4c 55 53 48 4e 4f 57 41 49 54 20 3d 20  F_FLUSHNOWAIT = 
0e90: 30 78 32 30 30 30 3b 0d 0a 0d 0a 76 65 72 73 69  0x2000;....versi
0ea0: 6f 6e 28 55 6e 69 63 6f 64 65 29 20 7b 0d 0a 09  on(Unicode) {...
0eb0: 61 6c 69 61 73 20 53 48 43 4e 46 5f 50 41 54 48  alias SHCNF_PATH
0ec0: 57 20 53 48 43 4e 46 5f 50 41 54 48 3b 0d 0a 09  W SHCNF_PATH;...
0ed0: 61 6c 69 61 73 20 53 48 43 4e 46 5f 50 52 49 4e  alias SHCNF_PRIN
0ee0: 54 45 52 57 20 53 48 43 4e 46 5f 50 52 49 4e 54  TERW SHCNF_PRINT
0ef0: 45 52 3b 0d 0a 7d 20 65 6c 73 65 20 7b 0d 0a 09  ER;..} else {...
0f00: 61 6c 69 61 73 20 53 48 43 4e 46 5f 50 41 54 48  alias SHCNF_PATH
0f10: 41 20 53 48 43 4e 46 5f 50 41 54 48 3b 0d 0a 09  A SHCNF_PATH;...
0f20: 61 6c 69 61 73 20 53 48 43 4e 46 5f 50 52 49 4e  alias SHCNF_PRIN
0f30: 54 45 52 41 20 53 48 43 4e 46 5f 50 52 49 4e 54  TERA SHCNF_PRINT
0f40: 45 52 3b 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 53  ER;..}....enum S
0f50: 46 47 41 4f 46 20 3a 20 44 57 4f 52 44 20 7b 0d  FGAOF : DWORD {.
0f60: 0a 09 53 46 47 41 4f 5f 43 41 4e 43 4f 50 59 20  ..SFGAO_CANCOPY 
0f70: 20 20 20 20 20 20 20 20 3d 20 44 52 4f 50 45 46          = DROPEF
0f80: 46 45 43 54 2e 44 52 4f 50 45 46 46 45 43 54 5f  FECT.DROPEFFECT_
0f90: 43 4f 50 59 2c 0d 0a 09 53 46 47 41 4f 5f 43 41  COPY,...SFGAO_CA
0fa0: 4e 4d 4f 56 45 20 20 20 20 20 20 20 20 20 3d 20  NMOVE         = 
0fb0: 44 52 4f 50 45 46 46 45 43 54 2e 44 52 4f 50 45  DROPEFFECT.DROPE
0fc0: 46 46 45 43 54 5f 4d 4f 56 45 2c 0d 0a 09 53 46  FFECT_MOVE,...SF
0fd0: 47 41 4f 5f 43 41 4e 4c 49 4e 4b 20 20 20 20 20  GAO_CANLINK     
0fe0: 20 20 20 20 3d 20 44 52 4f 50 45 46 46 45 43 54      = DROPEFFECT
0ff0: 2e 44 52 4f 50 45 46 46 45 43 54 5f 4c 49 4e 4b  .DROPEFFECT_LINK
1000: 2c 0d 0a 09 53 46 47 41 4f 5f 43 41 4e 52 45 4e  ,...SFGAO_CANREN
1010: 41 4d 45 20 20 20 20 20 20 20 3d 20 30 78 30 30  AME       = 0x00
1020: 30 30 30 30 31 30 4c 2c 0d 0a 09 53 46 47 41 4f  000010L,...SFGAO
1030: 5f 43 41 4e 44 45 4c 45 54 45 20 20 20 20 20 20  _CANDELETE      
1040: 20 3d 20 30 78 30 30 30 30 30 30 32 30 4c 2c 0d   = 0x00000020L,.
1050: 0a 09 53 46 47 41 4f 5f 48 41 53 50 52 4f 50 53  ..SFGAO_HASPROPS
1060: 48 45 45 54 20 20 20 20 3d 20 30 78 30 30 30 30  HEET    = 0x0000
1070: 30 30 34 30 4c 2c 0d 0a 09 53 46 47 41 4f 5f 44  0040L,...SFGAO_D
1080: 52 4f 50 54 41 52 47 45 54 20 20 20 20 20 20 3d  ROPTARGET      =
1090: 20 30 78 30 30 30 30 30 31 30 30 4c 2c 0d 0a 09   0x00000100L,...
10a0: 53 46 47 41 4f 5f 43 41 50 41 42 49 4c 49 54 59  SFGAO_CAPABILITY
10b0: 4d 41 53 4b 20 20 3d 20 30 78 30 30 30 30 30 31  MASK  = 0x000001
10c0: 37 37 4c 2c 0d 0a 09 53 46 47 41 4f 5f 49 53 53  77L,...SFGAO_ISS
10d0: 4c 4f 57 20 20 20 20 20 20 20 20 20 20 3d 20 30  LOW          = 0
10e0: 78 30 30 30 30 34 30 30 30 4c 2c 0d 0a 09 53 46  x00004000L,...SF
10f0: 47 41 4f 5f 47 48 4f 53 54 45 44 20 20 20 20 20  GAO_GHOSTED     
1100: 20 20 20 20 3d 20 30 78 30 30 30 30 38 30 30 30      = 0x00008000
1110: 4c 2c 0d 0a 09 53 46 47 41 4f 5f 4c 49 4e 4b 20  L,...SFGAO_LINK 
1120: 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30             = 0x0
1130: 30 30 31 30 30 30 30 4c 2c 0d 0a 09 53 46 47 41  0010000L,...SFGA
1140: 4f 5f 53 48 41 52 45 20 20 20 20 20 20 20 20 20  O_SHARE         
1150: 20 20 3d 20 30 78 30 30 30 32 30 30 30 30 4c 2c    = 0x00020000L,
1160: 0d 0a 09 53 46 47 41 4f 5f 52 45 41 44 4f 4e 4c  ...SFGAO_READONL
1170: 59 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 30  Y        = 0x000
1180: 34 30 30 30 30 4c 2c 0d 0a 09 53 46 47 41 4f 5f  40000L,...SFGAO_
1190: 48 49 44 44 45 4e 20 20 20 20 20 20 20 20 20 20  HIDDEN          
11a0: 3d 20 30 78 30 30 30 38 30 30 30 30 4c 2c 0d 0a  = 0x00080000L,..
11b0: 09 53 46 47 41 4f 5f 44 49 53 50 4c 41 59 41 54  .SFGAO_DISPLAYAT
11c0: 54 52 4d 41 53 4b 20 3d 20 28 53 46 47 41 4f 5f  TRMASK = (SFGAO_
11d0: 49 53 53 4c 4f 57 20 7c 20 53 46 47 41 4f 5f 47  ISSLOW | SFGAO_G
11e0: 48 4f 53 54 45 44 20 7c 20 53 46 47 41 4f 5f 4c  HOSTED | SFGAO_L
11f0: 49 4e 4b 0d 0a 09 20 20 20 20 20 20 20 20 20 20  INK...          
1200: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20                | 
1210: 53 46 47 41 4f 5f 53 48 41 52 45 20 7c 20 53 46  SFGAO_SHARE | SF
1220: 47 41 4f 5f 52 45 41 44 4f 4e 4c 59 20 7c 20 53  GAO_READONLY | S
1230: 46 47 41 4f 5f 48 49 44 44 45 4e 29 2c 0d 0a 09  FGAO_HIDDEN),...
1240: 53 46 47 41 4f 5f 46 49 4c 45 53 59 53 41 4e 43  SFGAO_FILESYSANC
1250: 45 53 54 4f 52 20 3d 20 30 78 31 30 30 30 30 30  ESTOR = 0x100000
1260: 30 30 4c 2c 0d 0a 09 53 46 47 41 4f 5f 46 4f 4c  00L,...SFGAO_FOL
1270: 44 45 52 20 20 20 20 20 20 20 20 20 20 3d 20 30  DER          = 0
1280: 78 32 30 30 30 30 30 30 30 4c 2c 0d 0a 09 53 46  x20000000L,...SF
1290: 47 41 4f 5f 46 49 4c 45 53 59 53 54 45 4d 20 20  GAO_FILESYSTEM  
12a0: 20 20 20 20 3d 20 30 78 34 30 30 30 30 30 30 30      = 0x40000000
12b0: 4c 2c 0d 0a 09 53 46 47 41 4f 5f 48 41 53 53 55  L,...SFGAO_HASSU
12c0: 42 46 4f 4c 44 45 52 20 20 20 20 3d 20 30 78 38  BFOLDER    = 0x8
12d0: 30 30 30 30 30 30 30 4c 2c 0d 0a 09 53 46 47 41  0000000L,...SFGA
12e0: 4f 5f 43 4f 4e 54 45 4e 54 53 4d 41 53 4b 20 20  O_CONTENTSMASK  
12f0: 20 20 3d 20 30 78 38 30 30 30 30 30 30 30 4c 2c    = 0x80000000L,
1300: 0d 0a 09 53 46 47 41 4f 5f 56 41 4c 49 44 41 54  ...SFGAO_VALIDAT
1310: 45 20 20 20 20 20 20 20 20 3d 20 30 78 30 31 30  E        = 0x010
1320: 30 30 30 30 30 4c 2c 0d 0a 09 53 46 47 41 4f 5f  00000L,...SFGAO_
1330: 52 45 4d 4f 56 41 42 4c 45 20 20 20 20 20 20 20  REMOVABLE       
1340: 3d 20 30 78 30 32 30 30 30 30 30 30 4c 2c 0d 0a  = 0x02000000L,..
1350: 09 53 46 47 41 4f 5f 43 4f 4d 50 52 45 53 53 45  .SFGAO_COMPRESSE
1360: 44 20 20 20 20 20 20 3d 20 30 78 30 34 30 30 30  D      = 0x04000
1370: 30 30 30 4c 0d 0a 7d 0d 0a 63 6f 6e 73 74 20 53  000L..}..const S
1380: 54 52 52 45 54 5f 57 53 54 52 20 3d 20 30 3b 0d  TRRET_WSTR = 0;.
1390: 0a 63 6f 6e 73 74 20 53 54 52 52 45 54 5f 4f 46  .const STRRET_OF
13a0: 46 53 45 54 20 3d 20 31 3b 0d 0a 63 6f 6e 73 74  FSET = 1;..const
13b0: 20 53 54 52 52 45 54 5f 43 53 54 52 20 3d 20 32   STRRET_CSTR = 2
13c0: 3b 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 53 48  ;....enum {...SH
13d0: 47 44 46 49 4c 5f 46 49 4e 44 44 41 54 41 20 3d  GDFIL_FINDDATA =
13e0: 20 31 2c 0d 0a 09 53 48 47 44 46 49 4c 5f 4e 45   1,...SHGDFIL_NE
13f0: 54 52 45 53 4f 55 52 43 45 2c 0d 0a 09 53 48 47  TRESOURCE,...SHG
1400: 44 46 49 4c 5f 44 45 53 43 52 49 50 54 49 4f 4e  DFIL_DESCRIPTION
1410: 49 44 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d  ID..}....enum {.
1420: 0a 09 53 48 44 49 44 5f 52 4f 4f 54 5f 52 45 47  ..SHDID_ROOT_REG
1430: 49 54 45 4d 20 3d 20 31 2c 0d 0a 09 53 48 44 49  ITEM = 1,...SHDI
1440: 44 5f 46 53 5f 46 49 4c 45 2c 0d 0a 09 53 48 44  D_FS_FILE,...SHD
1450: 49 44 5f 46 53 5f 44 49 52 45 43 54 4f 52 59 2c  ID_FS_DIRECTORY,
1460: 0d 0a 09 53 48 44 49 44 5f 46 53 5f 4f 54 48 45  ...SHDID_FS_OTHE
1470: 52 2c 0d 0a 09 53 48 44 49 44 5f 43 4f 4d 50 55  R,...SHDID_COMPU
1480: 54 45 52 5f 44 52 49 56 45 33 35 2c 0d 0a 09 53  TER_DRIVE35,...S
1490: 48 44 49 44 5f 43 4f 4d 50 55 54 45 52 5f 44 52  HDID_COMPUTER_DR
14a0: 49 56 45 35 32 35 2c 0d 0a 09 53 48 44 49 44 5f  IVE525,...SHDID_
14b0: 43 4f 4d 50 55 54 45 52 5f 52 45 4d 4f 56 41 42  COMPUTER_REMOVAB
14c0: 4c 45 2c 0d 0a 09 53 48 44 49 44 5f 43 4f 4d 50  LE,...SHDID_COMP
14d0: 55 54 45 52 5f 46 49 58 45 44 2c 0d 0a 09 53 48  UTER_FIXED,...SH
14e0: 44 49 44 5f 43 4f 4d 50 55 54 45 52 5f 4e 45 54  DID_COMPUTER_NET
14f0: 44 52 49 56 45 2c 0d 0a 09 53 48 44 49 44 5f 43  DRIVE,...SHDID_C
1500: 4f 4d 50 55 54 45 52 5f 43 44 52 4f 4d 2c 0d 0a  OMPUTER_CDROM,..
1510: 09 53 48 44 49 44 5f 43 4f 4d 50 55 54 45 52 5f  .SHDID_COMPUTER_
1520: 52 41 4d 44 49 53 4b 2c 0d 0a 09 53 48 44 49 44  RAMDISK,...SHDID
1530: 5f 43 4f 4d 50 55 54 45 52 5f 4f 54 48 45 52 2c  _COMPUTER_OTHER,
1540: 0d 0a 09 53 48 44 49 44 5f 4e 45 54 5f 44 4f 4d  ...SHDID_NET_DOM
1550: 41 49 4e 2c 0d 0a 09 53 48 44 49 44 5f 4e 45 54  AIN,...SHDID_NET
1560: 5f 53 45 52 56 45 52 2c 0d 0a 09 53 48 44 49 44  _SERVER,...SHDID
1570: 5f 4e 45 54 5f 53 48 41 52 45 2c 0d 0a 09 53 48  _NET_SHARE,...SH
1580: 44 49 44 5f 4e 45 54 5f 52 45 53 54 4f 46 4e 45  DID_NET_RESTOFNE
1590: 54 2c 0d 0a 09 53 48 44 49 44 5f 4e 45 54 5f 4f  T,...SHDID_NET_O
15a0: 54 48 45 52 0d 0a 7d 0d 0a 0d 0a 63 6f 6e 73 74  THER..}....const
15b0: 20 54 43 48 41 52 5b 5d 20 52 45 47 53 54 52 5f   TCHAR[] REGSTR_
15c0: 50 41 54 48 5f 45 58 50 4c 4f 52 45 52 20 3d 20  PATH_EXPLORER = 
15d0: 22 53 6f 66 74 77 61 72 65 5c 5c 4d 69 63 72 6f  "Software\\Micro
15e0: 73 6f 66 74 5c 5c 57 69 6e 64 6f 77 73 5c 5c 43  soft\\Windows\\C
15f0: 75 72 72 65 6e 74 56 65 72 73 69 6f 6e 5c 5c 45  urrentVersion\\E
1600: 78 70 6c 6f 72 65 72 22 3b 0d 0a 63 6f 6e 73 74  xplorer";..const
1610: 20 54 43 48 41 52 5b 5d 20 52 45 47 53 54 52 5f   TCHAR[] REGSTR_
1620: 50 41 54 48 5f 53 50 45 43 49 41 4c 5f 46 4f 4c  PATH_SPECIAL_FOL
1630: 44 45 52 53 3d 52 45 47 53 54 52 5f 50 41 54 48  DERS=REGSTR_PATH
1640: 5f 45 58 50 4c 4f 52 45 52 20 7e 20 22 5c 5c 53  _EXPLORER ~ "\\S
1650: 68 65 6c 6c 20 46 6f 6c 64 65 72 73 22 3b 0d 0a  hell Folders";..
1660: 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 43 53 49 44 4c  ..enum {...CSIDL
1670: 5f 44 45 53 4b 54 4f 50 20 20 20 20 20 20 20 20  _DESKTOP        
1680: 20 20 20 20 3d 20 20 30 2c 0d 0a 09 43 53 49 44      =  0,...CSID
1690: 4c 5f 49 4e 54 45 52 4e 45 54 2c 0d 0a 09 43 53  L_INTERNET,...CS
16a0: 49 44 4c 5f 50 52 4f 47 52 41 4d 53 2c 0d 0a 09  IDL_PROGRAMS,...
16b0: 43 53 49 44 4c 5f 43 4f 4e 54 52 4f 4c 53 2c 0d  CSIDL_CONTROLS,.
16c0: 0a 09 43 53 49 44 4c 5f 50 52 49 4e 54 45 52 53  ..CSIDL_PRINTERS
16d0: 2c 0d 0a 09 43 53 49 44 4c 5f 50 45 52 53 4f 4e  ,...CSIDL_PERSON
16e0: 41 4c 2c 0d 0a 09 43 53 49 44 4c 5f 46 41 56 4f  AL,...CSIDL_FAVO
16f0: 52 49 54 45 53 2c 0d 0a 09 43 53 49 44 4c 5f 53  RITES,...CSIDL_S
1700: 54 41 52 54 55 50 2c 0d 0a 09 43 53 49 44 4c 5f  TARTUP,...CSIDL_
1710: 52 45 43 45 4e 54 2c 0d 0a 09 43 53 49 44 4c 5f  RECENT,...CSIDL_
1720: 53 45 4e 44 54 4f 2c 0d 0a 09 43 53 49 44 4c 5f  SENDTO,...CSIDL_
1730: 42 49 54 42 55 43 4b 45 54 2c 0d 0a 09 43 53 49  BITBUCKET,...CSI
1740: 44 4c 5f 53 54 41 52 54 4d 45 4e 55 2c 20 20 20  DL_STARTMENU,   
1750: 20 20 20 2f 2f 20 3d 20 31 31 0d 0a 09 43 53 49     // = 11...CSI
1760: 44 4c 5f 4d 59 4d 55 53 49 43 20 20 20 20 20 20  DL_MYMUSIC      
1770: 20 20 20 20 20 20 3d 20 31 33 2c 0d 0a 09 43 53        = 13,...CS
1780: 49 44 4c 5f 4d 59 56 49 44 45 4f 2c 20 20 20 20  IDL_MYVIDEO,    
1790: 20 20 20 20 2f 2f 20 3d 20 31 34 0d 0a 09 43 53      // = 14...CS
17a0: 49 44 4c 5f 44 45 53 4b 54 4f 50 44 49 52 45 43  IDL_DESKTOPDIREC
17b0: 54 4f 52 59 20 20 20 3d 20 31 36 2c 0d 0a 09 43  TORY   = 16,...C
17c0: 53 49 44 4c 5f 44 52 49 56 45 53 2c 0d 0a 09 43  SIDL_DRIVES,...C
17d0: 53 49 44 4c 5f 4e 45 54 57 4f 52 4b 2c 0d 0a 09  SIDL_NETWORK,...
17e0: 43 53 49 44 4c 5f 4e 45 54 48 4f 4f 44 2c 0d 0a  CSIDL_NETHOOD,..
17f0: 09 43 53 49 44 4c 5f 46 4f 4e 54 53 2c 0d 0a 09  .CSIDL_FONTS,...
1800: 43 53 49 44 4c 5f 54 45 4d 50 4c 41 54 45 53 2c  CSIDL_TEMPLATES,
1810: 0d 0a 09 43 53 49 44 4c 5f 43 4f 4d 4d 4f 4e 5f  ...CSIDL_COMMON_
1820: 53 54 41 52 54 4d 45 4e 55 2c 0d 0a 09 43 53 49  STARTMENU,...CSI
1830: 44 4c 5f 43 4f 4d 4d 4f 4e 5f 50 52 4f 47 52 41  DL_COMMON_PROGRA
1840: 4d 53 2c 0d 0a 09 43 53 49 44 4c 5f 43 4f 4d 4d  MS,...CSIDL_COMM
1850: 4f 4e 5f 53 54 41 52 54 55 50 2c 0d 0a 09 43 53  ON_STARTUP,...CS
1860: 49 44 4c 5f 43 4f 4d 4d 4f 4e 5f 44 45 53 4b 54  IDL_COMMON_DESKT
1870: 4f 50 44 49 52 45 43 54 4f 52 59 2c 0d 0a 09 43  OPDIRECTORY,...C
1880: 53 49 44 4c 5f 41 50 50 44 41 54 41 2c 0d 0a 09  SIDL_APPDATA,...
1890: 43 53 49 44 4c 5f 50 52 49 4e 54 48 4f 4f 44 2c  CSIDL_PRINTHOOD,
18a0: 0d 0a 09 43 53 49 44 4c 5f 4c 4f 43 41 4c 5f 41  ...CSIDL_LOCAL_A
18b0: 50 50 44 41 54 41 2c 0d 0a 09 43 53 49 44 4c 5f  PPDATA,...CSIDL_
18c0: 41 4c 54 53 54 41 52 54 55 50 2c 0d 0a 09 43 53  ALTSTARTUP,...CS
18d0: 49 44 4c 5f 43 4f 4d 4d 4f 4e 5f 41 4c 54 53 54  IDL_COMMON_ALTST
18e0: 41 52 54 55 50 2c 0d 0a 09 43 53 49 44 4c 5f 43  ARTUP,...CSIDL_C
18f0: 4f 4d 4d 4f 4e 5f 46 41 56 4f 52 49 54 45 53 2c  OMMON_FAVORITES,
1900: 0d 0a 09 43 53 49 44 4c 5f 49 4e 54 45 52 4e 45  ...CSIDL_INTERNE
1910: 54 5f 43 41 43 48 45 2c 0d 0a 09 43 53 49 44 4c  T_CACHE,...CSIDL
1920: 5f 43 4f 4f 4b 49 45 53 2c 0d 0a 09 43 53 49 44  _COOKIES,...CSID
1930: 4c 5f 48 49 53 54 4f 52 59 2c 0d 0a 09 43 53 49  L_HISTORY,...CSI
1940: 44 4c 5f 43 4f 4d 4d 4f 4e 5f 41 50 50 44 41 54  DL_COMMON_APPDAT
1950: 41 2c 0d 0a 09 43 53 49 44 4c 5f 57 49 4e 44 4f  A,...CSIDL_WINDO
1960: 57 53 2c 0d 0a 09 43 53 49 44 4c 5f 53 59 53 54  WS,...CSIDL_SYST
1970: 45 4d 2c 0d 0a 09 43 53 49 44 4c 5f 50 52 4f 47  EM,...CSIDL_PROG
1980: 52 41 4d 5f 46 49 4c 45 53 2c 0d 0a 09 43 53 49  RAM_FILES,...CSI
1990: 44 4c 5f 4d 59 50 49 43 54 55 52 45 53 2c 0d 0a  DL_MYPICTURES,..
19a0: 09 43 53 49 44 4c 5f 50 52 4f 46 49 4c 45 2c 0d  .CSIDL_PROFILE,.
19b0: 0a 09 43 53 49 44 4c 5f 53 59 53 54 45 4d 58 38  ..CSIDL_SYSTEMX8
19c0: 36 2c 0d 0a 09 43 53 49 44 4c 5f 50 52 4f 47 52  6,...CSIDL_PROGR
19d0: 41 4d 5f 46 49 4c 45 53 58 38 36 2c 0d 0a 09 43  AM_FILESX86,...C
19e0: 53 49 44 4c 5f 50 52 4f 47 52 41 4d 5f 46 49 4c  SIDL_PROGRAM_FIL
19f0: 45 53 5f 43 4f 4d 4d 4f 4e 2c 0d 0a 09 43 53 49  ES_COMMON,...CSI
1a00: 44 4c 5f 50 52 4f 47 52 41 4d 5f 46 49 4c 45 53  DL_PROGRAM_FILES
1a10: 5f 43 4f 4d 4d 4f 4e 58 38 36 2c 0d 0a 09 43 53  _COMMONX86,...CS
1a20: 49 44 4c 5f 43 4f 4d 4d 4f 4e 5f 54 45 4d 50 4c  IDL_COMMON_TEMPL
1a30: 41 54 45 53 2c 0d 0a 09 43 53 49 44 4c 5f 43 4f  ATES,...CSIDL_CO
1a40: 4d 4d 4f 4e 5f 44 4f 43 55 4d 45 4e 54 53 2c 0d  MMON_DOCUMENTS,.
1a50: 0a 09 43 53 49 44 4c 5f 43 4f 4d 4d 4f 4e 5f 41  ..CSIDL_COMMON_A
1a60: 44 4d 49 4e 54 4f 4f 4c 53 2c 0d 0a 09 43 53 49  DMINTOOLS,...CSI
1a70: 44 4c 5f 41 44 4d 49 4e 54 4f 4f 4c 53 2c 0d 0a  DL_ADMINTOOLS,..
1a80: 09 43 53 49 44 4c 5f 43 4f 4e 4e 45 43 54 49 4f  .CSIDL_CONNECTIO
1a90: 4e 53 2c 20 20 2f 2f 20 3d 20 34 39 0d 0a 09 43  NS,  // = 49...C
1aa0: 53 49 44 4c 5f 43 4f 4d 4d 4f 4e 5f 4d 55 53 49  SIDL_COMMON_MUSI
1ab0: 43 20 20 20 20 20 3d 20 35 33 2c 0d 0a 09 43 53  C     = 53,...CS
1ac0: 49 44 4c 5f 43 4f 4d 4d 4f 4e 5f 50 49 43 54 55  IDL_COMMON_PICTU
1ad0: 52 45 53 2c 0d 0a 09 43 53 49 44 4c 5f 43 4f 4d  RES,...CSIDL_COM
1ae0: 4d 4f 4e 5f 56 49 44 45 4f 2c 0d 0a 09 43 53 49  MON_VIDEO,...CSI
1af0: 44 4c 5f 52 45 53 4f 55 52 43 45 53 2c 0d 0a 09  DL_RESOURCES,...
1b00: 43 53 49 44 4c 5f 52 45 53 4f 55 52 43 45 53 5f  CSIDL_RESOURCES_
1b10: 4c 4f 43 41 4c 49 5a 45 44 2c 0d 0a 09 43 53 49  LOCALIZED,...CSI
1b20: 44 4c 5f 43 4f 4d 4d 4f 4e 5f 4f 45 4d 5f 4c 49  DL_COMMON_OEM_LI
1b30: 4e 4b 53 2c 0d 0a 09 43 53 49 44 4c 5f 43 44 42  NKS,...CSIDL_CDB
1b40: 55 52 4e 5f 41 52 45 41 2c 20 20 2f 2f 20 3d 20  URN_AREA,  // = 
1b50: 35 39 0d 0a 09 43 53 49 44 4c 5f 43 4f 4d 50 55  59...CSIDL_COMPU
1b60: 54 45 52 53 4e 45 41 52 4d 45 20 20 3d 20 36 31  TERSNEARME  = 61
1b70: 2c 0d 0a 09 43 53 49 44 4c 5f 46 4c 41 47 5f 44  ,...CSIDL_FLAG_D
1b80: 4f 4e 54 5f 56 45 52 49 46 59 20 3d 20 30 78 34  ONT_VERIFY = 0x4
1b90: 30 30 30 2c 0d 0a 09 43 53 49 44 4c 5f 46 4c 41  000,...CSIDL_FLA
1ba0: 47 5f 43 52 45 41 54 45 20 20 20 20 20 20 3d 20  G_CREATE      = 
1bb0: 30 78 38 30 30 30 2c 0d 0a 09 43 53 49 44 4c 5f  0x8000,...CSIDL_
1bc0: 46 4c 41 47 5f 4d 41 53 4b 20 20 20 20 20 20 20  FLAG_MASK       
1bd0: 20 3d 20 30 78 46 46 30 30 0d 0a 7d 0d 0a 0d 0a   = 0xFF00..}....
1be0: 63 6f 6e 73 74 20 54 43 48 41 52 5b 5d 0d 0a 09  const TCHAR[]...
1bf0: 43 46 53 54 52 5f 53 48 45 4c 4c 49 44 4c 49 53  CFSTR_SHELLIDLIS
1c00: 54 20 20 20 20 20 20 20 3d 20 22 53 68 65 6c 6c  T       = "Shell
1c10: 20 49 44 4c 69 73 74 20 41 72 72 61 79 22 2c 0d   IDList Array",.
1c20: 0a 09 43 46 53 54 52 5f 53 48 45 4c 4c 49 44 4c  ..CFSTR_SHELLIDL
1c30: 49 53 54 4f 46 46 53 45 54 20 3d 20 22 53 68 65  ISTOFFSET = "She
1c40: 6c 6c 20 4f 62 6a 65 63 74 20 4f 66 66 73 65 74  ll Object Offset
1c50: 73 22 2c 0d 0a 09 43 46 53 54 52 5f 4e 45 54 52  s",...CFSTR_NETR
1c60: 45 53 4f 55 52 43 45 53 20 20 20 20 20 20 3d 20  ESOURCES      = 
1c70: 22 4e 65 74 20 52 65 73 6f 75 72 63 65 22 2c 0d  "Net Resource",.
1c80: 0a 09 43 46 53 54 52 5f 46 49 4c 45 43 4f 4e 54  ..CFSTR_FILECONT
1c90: 45 4e 54 53 20 20 20 20 20 20 3d 20 22 46 69 6c  ENTS      = "Fil
1ca0: 65 43 6f 6e 74 65 6e 74 73 22 2c 0d 0a 09 43 46  eContents",...CF
1cb0: 53 54 52 5f 46 49 4c 45 4e 41 4d 45 41 20 20 20  STR_FILENAMEA   
1cc0: 20 20 20 20 20 20 3d 20 22 46 69 6c 65 4e 61 6d        = "FileNam
1cd0: 65 22 2c 0d 0a 09 43 46 53 54 52 5f 46 49 4c 45  e",...CFSTR_FILE
1ce0: 4e 41 4d 45 4d 41 50 41 20 20 20 20 20 20 3d 20  NAMEMAPA      = 
1cf0: 22 46 69 6c 65 4e 61 6d 65 4d 61 70 22 2c 0d 0a  "FileNameMap",..
1d00: 09 43 46 53 54 52 5f 46 49 4c 45 44 45 53 43 52  .CFSTR_FILEDESCR
1d10: 49 50 54 4f 52 41 20 20 20 3d 20 22 46 69 6c 65  IPTORA   = "File
1d20: 47 72 6f 75 70 44 65 73 63 72 69 70 74 6f 72 22  GroupDescriptor"
1d30: 2c 0d 0a 09 43 46 53 54 52 5f 49 4e 45 54 55 52  ,...CFSTR_INETUR
1d40: 4c 41 20 20 20 20 20 20 20 20 20 20 3d 20 22 55  LA          = "U
1d50: 6e 69 66 6f 72 6d 52 65 73 6f 75 72 63 65 4c 6f  niformResourceLo
1d60: 63 61 74 6f 72 22 2c 0d 0a 09 43 46 53 54 52 5f  cator",...CFSTR_
1d70: 53 48 45 4c 4c 55 52 4c 20 20 20 20 20 20 20 20  SHELLURL        
1d80: 20 20 3d 20 43 46 53 54 52 5f 49 4e 45 54 55 52    = CFSTR_INETUR
1d90: 4c 41 2c 0d 0a 09 43 46 53 54 52 5f 46 49 4c 45  LA,...CFSTR_FILE
1da0: 4e 41 4d 45 57 20 20 20 20 20 20 20 20 20 3d 20  NAMEW         = 
1db0: 22 46 69 6c 65 4e 61 6d 65 57 22 2c 0d 0a 09 43  "FileNameW",...C
1dc0: 46 53 54 52 5f 46 49 4c 45 4e 41 4d 45 4d 41 50  FSTR_FILENAMEMAP
1dd0: 57 20 20 20 20 20 20 3d 20 22 46 69 6c 65 4e 61  W      = "FileNa
1de0: 6d 65 4d 61 70 57 22 2c 0d 0a 09 43 46 53 54 52  meMapW",...CFSTR
1df0: 5f 46 49 4c 45 44 45 53 43 52 49 50 54 4f 52 57  _FILEDESCRIPTORW
1e00: 20 20 20 3d 20 22 46 69 6c 65 47 72 6f 75 70 44     = "FileGroupD
1e10: 65 73 63 72 69 70 74 6f 72 57 22 2c 0d 0a 09 43  escriptorW",...C
1e20: 46 53 54 52 5f 49 4e 45 54 55 52 4c 57 20 20 20  FSTR_INETURLW   
1e30: 20 20 20 20 20 20 20 3d 20 22 55 6e 69 66 6f 72         = "Unifor
1e40: 6d 52 65 73 6f 75 72 63 65 4c 6f 63 61 74 6f 72  mResourceLocator
1e50: 57 22 3b 0d 0a 0d 0a 76 65 72 73 69 6f 6e 28 55  W";....version(U
1e60: 6e 69 63 6f 64 65 29 20 7b 0d 0a 09 61 6c 69 61  nicode) {...alia
1e70: 73 20 43 46 53 54 52 5f 46 49 4c 45 4e 41 4d 45  s CFSTR_FILENAME
1e80: 57 20 43 46 53 54 52 5f 46 49 4c 45 4e 41 4d 45  W CFSTR_FILENAME
1e90: 3b 0d 0a 09 61 6c 69 61 73 20 43 46 53 54 52 5f  ;...alias CFSTR_
1ea0: 46 49 4c 45 4e 41 4d 45 4d 41 50 57 20 43 46 53  FILENAMEMAPW CFS
1eb0: 54 52 5f 46 49 4c 45 4e 41 4d 45 4d 41 50 3b 0d  TR_FILENAMEMAP;.
1ec0: 0a 09 61 6c 69 61 73 20 43 46 53 54 52 5f 46 49  ..alias CFSTR_FI
1ed0: 4c 45 44 45 53 43 52 49 50 54 4f 52 57 20 43 46  LEDESCRIPTORW CF
1ee0: 53 54 52 5f 46 49 4c 45 44 45 53 43 52 49 50 54  STR_FILEDESCRIPT
1ef0: 4f 52 3b 0d 0a 09 61 6c 69 61 73 20 43 46 53 54  OR;...alias CFST
1f00: 52 5f 49 4e 45 54 55 52 4c 57 20 43 46 53 54 52  R_INETURLW CFSTR
1f10: 5f 49 4e 45 54 55 52 4c 3b 0d 0a 7d 20 65 6c 73  _INETURL;..} els
1f20: 65 20 7b 0d 0a 09 61 6c 69 61 73 20 43 46 53 54  e {...alias CFST
1f30: 52 5f 46 49 4c 45 4e 41 4d 45 41 20 43 46 53 54  R_FILENAMEA CFST
1f40: 52 5f 46 49 4c 45 4e 41 4d 45 3b 0d 0a 09 61 6c  R_FILENAME;...al
1f50: 69 61 73 20 43 46 53 54 52 5f 46 49 4c 45 4e 41  ias CFSTR_FILENA
1f60: 4d 45 4d 41 50 41 20 43 46 53 54 52 5f 46 49 4c  MEMAPA CFSTR_FIL
1f70: 45 4e 41 4d 45 4d 41 50 3b 0d 0a 09 61 6c 69 61  ENAMEMAP;...alia
1f80: 73 20 43 46 53 54 52 5f 46 49 4c 45 44 45 53 43  s CFSTR_FILEDESC
1f90: 52 49 50 54 4f 52 41 20 43 46 53 54 52 5f 46 49  RIPTORA CFSTR_FI
1fa0: 4c 45 44 45 53 43 52 49 50 54 4f 52 3b 0d 0a 09  LEDESCRIPTOR;...
1fb0: 61 6c 69 61 73 20 43 46 53 54 52 5f 49 4e 45 54  alias CFSTR_INET
1fc0: 55 52 4c 41 20 43 46 53 54 52 5f 49 4e 45 54 55  URLA CFSTR_INETU
1fd0: 52 4c 3b 0d 0a 7d 0d 0a 63 6f 6e 73 74 20 54 43  RL;..}..const TC
1fe0: 48 41 52 5b 5d 0d 0a 09 43 46 53 54 52 5f 50 52  HAR[]...CFSTR_PR
1ff0: 49 4e 54 45 52 47 52 4f 55 50 20 20 20 20 20 20  INTERGROUP      
2000: 20 20 3d 20 22 50 72 69 6e 74 65 72 46 72 69 65    = "PrinterFrie
2010: 6e 64 6c 79 4e 61 6d 65 22 2c 0d 0a 09 43 46 53  ndlyName",...CFS
2020: 54 52 5f 49 4e 44 52 41 47 4c 4f 4f 50 20 20 20  TR_INDRAGLOOP   
2030: 20 20 20 20 20 20 20 3d 20 22 49 6e 53 68 65 6c         = "InShel
2040: 6c 44 72 61 67 4c 6f 6f 70 22 2c 0d 0a 09 43 46  lDragLoop",...CF
2050: 53 54 52 5f 50 41 53 54 45 53 55 43 43 45 45 44  STR_PASTESUCCEED
2060: 45 44 20 20 20 20 20 20 3d 20 22 50 61 73 74 65  ED      = "Paste
2070: 20 53 75 63 63 65 65 64 65 64 22 2c 0d 0a 09 43   Succeeded",...C
2080: 46 53 54 52 5f 50 45 52 46 4f 52 4d 45 44 44 52  FSTR_PERFORMEDDR
2090: 4f 50 45 46 46 45 43 54 20 3d 20 22 50 65 72 66  OPEFFECT = "Perf
20a0: 6f 72 6d 65 64 20 44 72 6f 70 45 66 66 65 63 74  ormed DropEffect
20b0: 22 2c 0d 0a 09 43 46 53 54 52 5f 50 52 45 46 45  ",...CFSTR_PREFE
20c0: 52 52 45 44 44 52 4f 50 45 46 46 45 43 54 20 3d  RREDDROPEFFECT =
20d0: 20 22 50 72 65 66 65 72 72 65 64 20 44 72 6f 70   "Preferred Drop
20e0: 45 66 66 65 63 74 22 3b 0d 0a 0d 0a 63 6f 6e 73  Effect";....cons
20f0: 74 20 43 4d 46 5f 4e 4f 52 4d 41 4c 3d 30 3b 0d  t CMF_NORMAL=0;.
2100: 0a 63 6f 6e 73 74 20 43 4d 46 5f 44 45 46 41 55  .const CMF_DEFAU
2110: 4c 54 4f 4e 4c 59 3d 31 3b 0d 0a 63 6f 6e 73 74  LTONLY=1;..const
2120: 20 43 4d 46 5f 56 45 52 42 53 4f 4e 4c 59 3d 32   CMF_VERBSONLY=2
2130: 3b 0d 0a 63 6f 6e 73 74 20 43 4d 46 5f 45 58 50  ;..const CMF_EXP
2140: 4c 4f 52 45 3d 34 3b 0d 0a 63 6f 6e 73 74 20 43  LORE=4;..const C
2150: 4d 46 5f 4e 4f 56 45 52 42 53 3d 38 3b 0d 0a 63  MF_NOVERBS=8;..c
2160: 6f 6e 73 74 20 43 4d 46 5f 43 41 4e 52 45 4e 41  onst CMF_CANRENA
2170: 4d 45 3d 31 36 3b 0d 0a 63 6f 6e 73 74 20 43 4d  ME=16;..const CM
2180: 46 5f 4e 4f 44 45 46 41 55 4c 54 3d 33 32 3b 0d  F_NODEFAULT=32;.
2190: 0a 63 6f 6e 73 74 20 43 4d 46 5f 49 4e 43 4c 55  .const CMF_INCLU
21a0: 44 45 53 54 41 54 49 43 3d 36 34 3b 0d 0a 63 6f  DESTATIC=64;..co
21b0: 6e 73 74 20 43 4d 46 5f 52 45 53 45 52 56 45 44  nst CMF_RESERVED
21c0: 3d 30 78 66 66 66 66 30 30 30 30 3b 0d 0a 63 6f  =0xffff0000;..co
21d0: 6e 73 74 20 47 43 53 5f 56 45 52 42 41 3d 30 3b  nst GCS_VERBA=0;
21e0: 0d 0a 63 6f 6e 73 74 20 47 43 53 5f 48 45 4c 50  ..const GCS_HELP
21f0: 54 45 58 54 41 3d 31 3b 0d 0a 63 6f 6e 73 74 20  TEXTA=1;..const 
2200: 47 43 53 5f 56 41 4c 49 44 41 54 45 41 3d 32 3b  GCS_VALIDATEA=2;
2210: 0d 0a 63 6f 6e 73 74 20 47 43 53 5f 56 45 52 42  ..const GCS_VERB
2220: 57 3d 34 3b 0d 0a 63 6f 6e 73 74 20 47 43 53 5f  W=4;..const GCS_
2230: 48 45 4c 50 54 45 58 54 57 3d 35 3b 0d 0a 63 6f  HELPTEXTW=5;..co
2240: 6e 73 74 20 47 43 53 5f 56 41 4c 49 44 41 54 45  nst GCS_VALIDATE
2250: 57 3d 36 3b 0d 0a 63 6f 6e 73 74 20 47 43 53 5f  W=6;..const GCS_
2260: 55 4e 49 43 4f 44 45 3d 34 3b 0d 0a 0d 0a 76 65  UNICODE=4;....ve
2270: 72 73 69 6f 6e 28 55 6e 69 63 6f 64 65 29 20 7b  rsion(Unicode) {
2280: 0d 0a 09 61 6c 69 61 73 20 47 43 53 5f 56 45 52  ...alias GCS_VER
2290: 42 57 20 47 43 53 5f 56 45 52 42 3b 0d 0a 09 61  BW GCS_VERB;...a
22a0: 6c 69 61 73 20 47 43 53 5f 48 45 4c 50 54 45 58  lias GCS_HELPTEX
22b0: 54 57 20 47 43 53 5f 48 45 4c 50 54 45 58 54 3b  TW GCS_HELPTEXT;
22c0: 0d 0a 09 61 6c 69 61 73 20 47 43 53 5f 56 41 4c  ...alias GCS_VAL
22d0: 49 44 41 54 45 57 20 47 43 53 5f 56 41 4c 49 44  IDATEW GCS_VALID
22e0: 41 54 45 3b 0d 0a 7d 20 65 6c 73 65 20 7b 0d 0a  ATE;..} else {..
22f0: 09 61 6c 69 61 73 20 47 43 53 5f 56 45 52 42 41  .alias GCS_VERBA
2300: 20 47 43 53 5f 56 45 52 42 3b 0d 0a 09 61 6c 69   GCS_VERB;...ali
2310: 61 73 20 47 43 53 5f 48 45 4c 50 54 45 58 54 41  as GCS_HELPTEXTA
2320: 20 47 43 53 5f 48 45 4c 50 54 45 58 54 3b 0d 0a   GCS_HELPTEXT;..
2330: 09 61 6c 69 61 73 20 47 43 53 5f 56 41 4c 49 44  .alias GCS_VALID
2340: 41 54 45 41 20 47 43 53 5f 56 41 4c 49 44 41 54  ATEA GCS_VALIDAT
2350: 45 3b 0d 0a 7d 0d 0a 0d 0a 63 6f 6e 73 74 20 54  E;..}....const T
2360: 43 48 41 52 5b 5d 0d 0a 09 43 4d 44 53 54 52 5f  CHAR[]...CMDSTR_
2370: 4e 45 57 46 4f 4c 44 45 52 20 20 20 3d 20 22 4e  NEWFOLDER   = "N
2380: 65 77 46 6f 6c 64 65 72 22 2c 0d 0a 09 43 4d 44  ewFolder",...CMD
2390: 53 54 52 5f 56 49 45 57 4c 49 53 54 20 20 20 20  STR_VIEWLIST    
23a0: 3d 20 22 56 69 65 77 4c 69 73 74 22 2c 0d 0a 09  = "ViewList",...
23b0: 43 4d 44 53 54 52 5f 56 49 45 57 44 45 54 41 49  CMDSTR_VIEWDETAI
23c0: 4c 53 20 3d 20 22 56 69 65 77 44 65 74 61 69 6c  LS = "ViewDetail
23d0: 73 22 3b 0d 0a 0d 0a 63 6f 6e 73 74 20 43 4d 49  s";....const CMI
23e0: 43 5f 4d 41 53 4b 5f 48 4f 54 4b 45 59 20 20 20  C_MASK_HOTKEY   
23f0: 20 20 3d 20 53 45 45 5f 4d 41 53 4b 5f 48 4f 54    = SEE_MASK_HOT
2400: 4b 45 59 3b 0d 0a 63 6f 6e 73 74 20 43 4d 49 43  KEY;..const CMIC
2410: 5f 4d 41 53 4b 5f 49 43 4f 4e 20 20 20 20 20 20  _MASK_ICON      
2420: 20 3d 20 53 45 45 5f 4d 41 53 4b 5f 49 43 4f 4e   = SEE_MASK_ICON
2430: 3b 0d 0a 63 6f 6e 73 74 20 43 4d 49 43 5f 4d 41  ;..const CMIC_MA
2440: 53 4b 5f 46 4c 41 47 5f 4e 4f 5f 55 49 20 3d 20  SK_FLAG_NO_UI = 
2450: 53 45 45 5f 4d 41 53 4b 5f 46 4c 41 47 5f 4e 4f  SEE_MASK_FLAG_NO
2460: 5f 55 49 3b 0d 0a 63 6f 6e 73 74 20 43 4d 49 43  _UI;..const CMIC
2470: 5f 4d 41 53 4b 5f 4d 4f 44 41 4c 20 20 20 20 20  _MASK_MODAL     
2480: 20 3d 20 30 78 38 30 30 30 30 30 30 30 3b 0d 0a   = 0x80000000;..
2490: 2f 2f 20 54 4f 44 4f 3a 20 54 68 69 73 20 69 73  // TODO: This is
24a0: 6e 27 74 20 64 65 66 69 6e 65 64 20 61 6e 79 77  n't defined anyw
24b0: 68 65 72 65 20 69 6e 20 4d 69 6e 47 57 2e 0d 0a  here in MinGW...
24c0: 2f 2f 63 6f 6e 73 74 20 43 4d 49 43 5f 56 41 4c  //const CMIC_VAL
24d0: 49 44 5f 53 45 45 5f 46 4c 41 47 53 3d 53 45 45  ID_SEE_FLAGS=SEE
24e0: 5f 56 41 4c 49 44 5f 43 4d 49 43 5f 46 4c 41 47  _VALID_CMIC_FLAG
24f0: 53 3b 0d 0a 0d 0a 63 6f 6e 73 74 20 47 49 4c 5f  S;....const GIL_
2500: 4f 50 45 4e 49 43 4f 4e 20 3d 20 31 3b 0d 0a 63  OPENICON = 1;..c
2510: 6f 6e 73 74 20 47 49 4c 5f 46 4f 52 53 48 45 4c  onst GIL_FORSHEL
2520: 4c 20 3d 20 32 3b 0d 0a 63 6f 6e 73 74 20 47 49  L = 2;..const GI
2530: 4c 5f 53 49 4d 55 4c 41 54 45 44 4f 43 20 3d 20  L_SIMULATEDOC = 
2540: 31 3b 0d 0a 63 6f 6e 73 74 20 47 49 4c 5f 50 45  1;..const GIL_PE
2550: 52 49 4e 53 54 41 4e 43 45 20 3d 20 32 3b 0d 0a  RINSTANCE = 2;..
2560: 63 6f 6e 73 74 20 47 49 4c 5f 50 45 52 43 4c 41  const GIL_PERCLA
2570: 53 53 20 3d 20 34 3b 0d 0a 63 6f 6e 73 74 20 47  SS = 4;..const G
2580: 49 4c 5f 4e 4f 54 46 49 4c 45 4e 41 4d 45 20 3d  IL_NOTFILENAME =
2590: 20 38 3b 0d 0a 63 6f 6e 73 74 20 47 49 4c 5f 44   8;..const GIL_D
25a0: 4f 4e 54 43 41 43 48 45 20 3d 20 31 36 3b 0d 0a  ONTCACHE = 16;..
25b0: 0d 0a 63 6f 6e 73 74 20 46 56 53 49 46 5f 52 45  ..const FVSIF_RE
25c0: 43 54 20 3d 20 31 3b 0d 0a 63 6f 6e 73 74 20 46  CT = 1;..const F
25d0: 56 53 49 46 5f 50 49 4e 4e 45 44 20 3d 20 32 3b  VSIF_PINNED = 2;
25e0: 0d 0a 63 6f 6e 73 74 20 46 56 53 49 46 5f 4e 45  ..const FVSIF_NE
25f0: 57 46 41 49 4c 45 44 20 3d 20 30 78 38 30 30 30  WFAILED = 0x8000
2600: 30 30 30 3b 0d 0a 63 6f 6e 73 74 20 46 56 53 49  000;..const FVSI
2610: 46 5f 4e 45 57 46 49 4c 45 20 3d 20 30 78 38 30  F_NEWFILE = 0x80
2620: 30 30 30 30 30 30 3b 0d 0a 63 6f 6e 73 74 20 46  000000;..const F
2630: 56 53 49 46 5f 43 41 4e 56 49 45 57 49 54 20 3d  VSIF_CANVIEWIT =
2640: 20 30 78 34 30 30 30 30 30 30 30 3b 0d 0a 0d 0a   0x40000000;....
2650: 63 6f 6e 73 74 20 43 44 42 4f 53 43 5f 53 45 54  const CDBOSC_SET
2660: 46 4f 43 55 53 20 3d 20 30 3b 0d 0a 63 6f 6e 73  FOCUS = 0;..cons
2670: 74 20 43 44 42 4f 53 43 5f 4b 49 4c 4c 46 4f 43  t CDBOSC_KILLFOC
2680: 55 53 20 3d 20 31 3b 0d 0a 63 6f 6e 73 74 20 43  US = 1;..const C
2690: 44 42 4f 53 43 5f 53 45 4c 43 48 41 4e 47 45 20  DBOSC_SELCHANGE 
26a0: 3d 20 32 3b 0d 0a 63 6f 6e 73 74 20 43 44 42 4f  = 2;..const CDBO
26b0: 53 43 5f 52 45 4e 41 4d 45 20 3d 20 33 3b 0d 0a  SC_RENAME = 3;..
26c0: 0d 0a 63 6f 6e 73 74 20 46 43 49 44 4d 5f 53 48  ..const FCIDM_SH
26d0: 56 49 45 57 46 49 52 53 54 20 3d 20 30 3b 0d 0a  VIEWFIRST = 0;..
26e0: 63 6f 6e 73 74 20 46 43 49 44 4d 5f 53 48 56 49  const FCIDM_SHVI
26f0: 45 57 4c 41 53 54 20 3d 20 30 78 37 66 66 66 3b  EWLAST = 0x7fff;
2700: 0d 0a 63 6f 6e 73 74 20 46 43 49 44 4d 5f 42 52  ..const FCIDM_BR
2710: 4f 57 53 45 52 46 49 52 53 54 20 3d 20 30 78 61  OWSERFIRST = 0xa
2720: 30 30 30 3b 0d 0a 63 6f 6e 73 74 20 46 43 49 44  000;..const FCID
2730: 4d 5f 42 52 4f 57 53 45 52 4c 41 53 54 20 3d 20  M_BROWSERLAST = 
2740: 30 78 62 66 30 30 3b 0d 0a 63 6f 6e 73 74 20 46  0xbf00;..const F
2750: 43 49 44 4d 5f 47 4c 4f 42 41 4c 46 49 52 53 54  CIDM_GLOBALFIRST
2760: 20 3d 20 30 78 38 30 30 30 3b 0d 0a 63 6f 6e 73   = 0x8000;..cons
2770: 74 20 46 43 49 44 4d 5f 47 4c 4f 42 41 4c 4c 41  t FCIDM_GLOBALLA
2780: 53 54 20 3d 20 30 78 39 66 66 66 3b 0d 0a 63 6f  ST = 0x9fff;..co
2790: 6e 73 74 20 46 43 49 44 4d 5f 4d 45 4e 55 5f 46  nst FCIDM_MENU_F
27a0: 49 4c 45 20 3d 20 46 43 49 44 4d 5f 47 4c 4f 42  ILE = FCIDM_GLOB
27b0: 41 4c 46 49 52 53 54 3b 0d 0a 63 6f 6e 73 74 20  ALFIRST;..const 
27c0: 46 43 49 44 4d 5f 4d 45 4e 55 5f 45 44 49 54 20  FCIDM_MENU_EDIT 
27d0: 3d 20 46 43 49 44 4d 5f 47 4c 4f 42 41 4c 46 49  = FCIDM_GLOBALFI
27e0: 52 53 54 2b 30 78 30 30 34 30 3b 0d 0a 63 6f 6e  RST+0x0040;..con
27f0: 73 74 20 46 43 49 44 4d 5f 4d 45 4e 55 5f 56 49  st FCIDM_MENU_VI
2800: 45 57 20 3d 20 46 43 49 44 4d 5f 47 4c 4f 42 41  EW = FCIDM_GLOBA
2810: 4c 46 49 52 53 54 2b 30 78 30 30 38 30 3b 0d 0a  LFIRST+0x0080;..
2820: 63 6f 6e 73 74 20 46 43 49 44 4d 5f 4d 45 4e 55  const FCIDM_MENU
2830: 5f 56 49 45 57 5f 53 45 50 5f 4f 50 54 49 4f 4e  _VIEW_SEP_OPTION
2840: 53 20 3d 20 46 43 49 44 4d 5f 47 4c 4f 42 41 4c  S = FCIDM_GLOBAL
2850: 46 49 52 53 54 2b 30 78 30 30 38 31 3b 0d 0a 63  FIRST+0x0081;..c
2860: 6f 6e 73 74 20 46 43 49 44 4d 5f 4d 45 4e 55 5f  onst FCIDM_MENU_
2870: 54 4f 4f 4c 53 20 3d 20 46 43 49 44 4d 5f 47 4c  TOOLS = FCIDM_GL
2880: 4f 42 41 4c 46 49 52 53 54 2b 30 78 30 30 63 30  OBALFIRST+0x00c0
2890: 3b 0d 0a 63 6f 6e 73 74 20 46 43 49 44 4d 5f 4d  ;..const FCIDM_M
28a0: 45 4e 55 5f 54 4f 4f 4c 53 5f 53 45 50 5f 47 4f  ENU_TOOLS_SEP_GO
28b0: 54 4f 20 3d 20 46 43 49 44 4d 5f 47 4c 4f 42 41  TO = FCIDM_GLOBA
28c0: 4c 46 49 52 53 54 2b 30 78 30 30 63 31 3b 0d 0a  LFIRST+0x00c1;..
28d0: 63 6f 6e 73 74 20 46 43 49 44 4d 5f 4d 45 4e 55  const FCIDM_MENU
28e0: 5f 48 45 4c 50 20 3d 20 46 43 49 44 4d 5f 47 4c  _HELP = FCIDM_GL
28f0: 4f 42 41 4c 46 49 52 53 54 2b 30 78 30 31 30 30  OBALFIRST+0x0100
2900: 3b 0d 0a 63 6f 6e 73 74 20 46 43 49 44 4d 5f 4d  ;..const FCIDM_M
2910: 45 4e 55 5f 46 49 4e 44 20 3d 20 46 43 49 44 4d  ENU_FIND = FCIDM
2920: 5f 47 4c 4f 42 41 4c 46 49 52 53 54 2b 30 78 30  _GLOBALFIRST+0x0
2930: 31 34 30 3b 0d 0a 63 6f 6e 73 74 20 46 43 49 44  140;..const FCID
2940: 4d 5f 4d 45 4e 55 5f 45 58 50 4c 4f 52 45 20 3d  M_MENU_EXPLORE =
2950: 20 46 43 49 44 4d 5f 47 4c 4f 42 41 4c 46 49 52   FCIDM_GLOBALFIR
2960: 53 54 2b 30 78 30 31 35 30 3b 0d 0a 63 6f 6e 73  ST+0x0150;..cons
2970: 74 20 46 43 49 44 4d 5f 4d 45 4e 55 5f 46 41 56  t FCIDM_MENU_FAV
2980: 4f 52 49 54 45 53 20 3d 20 46 43 49 44 4d 5f 47  ORITES = FCIDM_G
2990: 4c 4f 42 41 4c 46 49 52 53 54 2b 30 78 30 31 37  LOBALFIRST+0x017
29a0: 30 3b 0d 0a 63 6f 6e 73 74 20 46 43 49 44 4d 5f  0;..const FCIDM_
29b0: 54 4f 4f 4c 42 41 52 20 3d 20 46 43 49 44 4d 5f  TOOLBAR = FCIDM_
29c0: 42 52 4f 57 53 45 52 46 49 52 53 54 3b 0d 0a 63  BROWSERFIRST;..c
29d0: 6f 6e 73 74 20 46 43 49 44 4d 5f 53 54 41 54 55  onst FCIDM_STATU
29e0: 53 20 3d 20 46 43 49 44 4d 5f 42 52 4f 57 53 45  S = FCIDM_BROWSE
29f0: 52 46 49 52 53 54 2b 31 3b 0d 0a 0d 0a 63 6f 6e  RFIRST+1;....con
2a00: 73 74 20 53 42 53 50 5f 44 45 46 42 52 4f 57 53  st SBSP_DEFBROWS
2a10: 45 52 20 3d 20 30 3b 0d 0a 63 6f 6e 73 74 20 53  ER = 0;..const S
2a20: 42 53 50 5f 53 41 4d 45 42 52 4f 57 53 45 52 20  BSP_SAMEBROWSER 
2a30: 3d 20 31 3b 0d 0a 63 6f 6e 73 74 20 53 42 53 50  = 1;..const SBSP
2a40: 5f 4e 45 57 42 52 4f 57 53 45 52 20 3d 20 32 3b  _NEWBROWSER = 2;
2a50: 0d 0a 63 6f 6e 73 74 20 53 42 53 50 5f 44 45 46  ..const SBSP_DEF
2a60: 4d 4f 44 45 20 3d 20 30 3b 0d 0a 63 6f 6e 73 74  MODE = 0;..const
2a70: 20 53 42 53 50 5f 4f 50 45 4e 4d 4f 44 45 20 3d   SBSP_OPENMODE =
2a80: 20 31 36 3b 0d 0a 63 6f 6e 73 74 20 53 42 53 50   16;..const SBSP
2a90: 5f 45 58 50 4c 4f 52 45 4d 4f 44 45 20 3d 20 33  _EXPLOREMODE = 3
2aa0: 32 3b 0d 0a 63 6f 6e 73 74 20 53 42 53 50 5f 41  2;..const SBSP_A
2ab0: 42 53 4f 4c 55 54 45 20 3d 20 30 3b 0d 0a 63 6f  BSOLUTE = 0;..co
2ac0: 6e 73 74 20 53 42 53 50 5f 52 45 4c 41 54 49 56  nst SBSP_RELATIV
2ad0: 45 20 3d 20 30 78 31 30 30 30 3b 0d 0a 63 6f 6e  E = 0x1000;..con
2ae0: 73 74 20 53 42 53 50 5f 50 41 52 45 4e 54 20 3d  st SBSP_PARENT =
2af0: 20 30 78 32 30 30 30 3b 0d 0a 63 6f 6e 73 74 20   0x2000;..const 
2b00: 53 42 53 50 5f 49 4e 49 54 49 41 54 45 44 42 59  SBSP_INITIATEDBY
2b10: 48 4c 49 4e 4b 46 52 41 4d 45 20 3d 20 30 78 38  HLINKFRAME = 0x8
2b20: 30 30 30 30 30 30 30 3b 0d 0a 63 6f 6e 73 74 20  0000000;..const 
2b30: 53 42 53 50 5f 52 45 44 49 52 45 43 54 20 3d 20  SBSP_REDIRECT = 
2b40: 30 78 34 30 30 30 30 30 30 30 3b 0d 0a 0d 0a 65  0x40000000;....e
2b50: 6e 75 6d 20 7b 0d 0a 09 46 43 57 5f 53 54 41 54  num {...FCW_STAT
2b60: 55 53 3d 31 2c 0d 0a 09 46 43 57 5f 54 4f 4f 4c  US=1,...FCW_TOOL
2b70: 42 41 52 2c 0d 0a 09 46 43 57 5f 54 52 45 45 0d  BAR,...FCW_TREE.
2b80: 0a 7d 0d 0a 0d 0a 63 6f 6e 73 74 20 46 43 54 5f  .}....const FCT_
2b90: 4d 45 52 47 45 3d 31 3b 0d 0a 63 6f 6e 73 74 20  MERGE=1;..const 
2ba0: 46 43 54 5f 43 4f 4e 46 49 47 41 42 4c 45 3d 32  FCT_CONFIGABLE=2
2bb0: 3b 0d 0a 63 6f 6e 73 74 20 46 43 54 5f 41 44 44  ;..const FCT_ADD
2bc0: 54 4f 45 4e 44 3d 34 3b 0d 0a 0d 0a 63 6f 6e 73  TOEND=4;....cons
2bd0: 74 20 53 56 53 49 5f 44 45 53 45 4c 45 43 54 3d  t SVSI_DESELECT=
2be0: 30 3b 0d 0a 63 6f 6e 73 74 20 53 56 53 49 5f 53  0;..const SVSI_S
2bf0: 45 4c 45 43 54 3d 31 3b 0d 0a 63 6f 6e 73 74 20  ELECT=1;..const 
2c00: 53 56 53 49 5f 45 44 49 54 3d 33 3b 0d 0a 63 6f  SVSI_EDIT=3;..co
2c10: 6e 73 74 20 53 56 53 49 5f 44 45 53 45 4c 45 43  nst SVSI_DESELEC
2c20: 54 4f 54 48 45 52 53 3d 34 3b 0d 0a 63 6f 6e 73  TOTHERS=4;..cons
2c30: 74 20 53 56 53 49 5f 45 4e 53 55 52 45 56 49 53  t SVSI_ENSUREVIS
2c40: 49 42 4c 45 3d 38 3b 0d 0a 63 6f 6e 73 74 20 53  IBLE=8;..const S
2c50: 56 53 49 5f 46 4f 43 55 53 45 44 3d 31 36 3b 0d  VSI_FOCUSED=16;.
2c60: 0a 0d 0a 63 6f 6e 73 74 20 53 56 47 49 4f 5f 42  ...const SVGIO_B
2c70: 41 43 4b 47 52 4f 55 4e 44 3d 30 3b 0d 0a 63 6f  ACKGROUND=0;..co
2c80: 6e 73 74 20 53 56 47 49 4f 5f 53 45 4c 45 43 54  nst SVGIO_SELECT
2c90: 49 4f 4e 3d 31 3b 0d 0a 63 6f 6e 73 74 20 53 56  ION=1;..const SV
2ca0: 47 49 4f 5f 41 4c 4c 56 49 45 57 3d 32 3b 0d 0a  GIO_ALLVIEW=2;..
2cb0: 0d 0a 63 6f 6e 73 74 20 55 49 4e 54 20 53 56 32  ..const UINT SV2
2cc0: 47 56 5f 43 55 52 52 45 4e 54 56 49 45 57 3d 2d  GV_CURRENTVIEW=-
2cd0: 31 3b 0d 0a 63 6f 6e 73 74 20 55 49 4e 54 20 53  1;..const UINT S
2ce0: 56 32 47 56 5f 44 45 46 41 55 4c 54 56 49 45 57  V2GV_DEFAULTVIEW
2cf0: 3d 2d 32 3b 0d 0a 0d 0a 61 6c 69 61 73 20 44 57  =-2;....alias DW
2d00: 4f 52 44 20 53 48 47 44 4e 46 3b 0d 0a 0d 0a 73  ORD SHGDNF;....s
2d10: 74 72 75 63 74 20 43 49 44 41 20 7b 0d 0a 09 55  truct CIDA {...U
2d20: 49 4e 54 20 20 20 20 63 69 64 6c 3b 0d 0a 09 55  INT    cidl;...U
2d30: 49 4e 54 5b 31 5d 20 61 6f 66 66 73 65 74 3b 0d  INT[1] aoffset;.
2d40: 0a 7d 0d 0a 61 6c 69 61 73 20 43 49 44 41 2a 20  .}..alias CIDA* 
2d50: 4c 50 49 44 41 3b 0d 0a 0d 0a 73 74 72 75 63 74  LPIDA;....struct
2d60: 20 53 48 49 54 45 4d 49 44 20 7b 0d 0a 09 55 53   SHITEMID {...US
2d70: 48 4f 52 54 20 20 63 62 3b 0d 0a 09 42 59 54 45  HORT  cb;...BYTE
2d80: 5b 31 5d 20 61 62 49 44 3b 0d 0a 7d 0d 0a 61 6c  [1] abID;..}..al
2d90: 69 61 73 20 53 48 49 54 45 4d 49 44 2a 20 20 20  ias SHITEMID*   
2da0: 20 20 20 20 20 4c 50 53 48 49 54 45 4d 49 44 3b       LPSHITEMID;
2db0: 0d 0a 61 6c 69 61 73 20 63 6f 6e 73 74 28 53 48  ..alias const(SH
2dc0: 49 54 45 4d 49 44 29 2a 20 4c 50 43 53 48 49 54  ITEMID)* LPCSHIT
2dd0: 45 4d 49 44 3b 0d 0a 0d 0a 73 74 72 75 63 74 20  EMID;....struct 
2de0: 49 54 45 4d 49 44 4c 49 53 54 20 7b 0d 0a 09 53  ITEMIDLIST {...S
2df0: 48 49 54 45 4d 49 44 20 6d 6b 69 64 3b 0d 0a 7d  HITEMID mkid;..}
2e00: 0d 0a 61 6c 69 61 73 20 49 54 45 4d 49 44 4c 49  ..alias ITEMIDLI
2e10: 53 54 2a 20 20 20 20 20 20 20 20 4c 50 49 54 45  ST*        LPITE
2e20: 4d 49 44 4c 49 53 54 3b 0d 0a 61 6c 69 61 73 20  MIDLIST;..alias 
2e30: 63 6f 6e 73 74 28 49 54 45 4d 49 44 4c 49 53 54  const(ITEMIDLIST
2e40: 29 2a 20 4c 50 43 49 54 45 4d 49 44 4c 49 53 54  )* LPCITEMIDLIST
2e50: 3b 0d 0a 0d 0a 61 6c 69 61 73 20 69 6e 74 20 66  ;....alias int f
2e60: 75 6e 63 74 69 6f 6e 28 48 57 4e 44 2c 20 55 49  unction(HWND, UI
2e70: 4e 54 2c 20 4c 50 41 52 41 4d 2c 20 4c 50 41 52  NT, LPARAM, LPAR
2e80: 41 4d 29 20 42 46 46 43 41 4c 4c 42 41 43 4b 3b  AM) BFFCALLBACK;
2e90: 0d 0a 0d 0a 73 74 72 75 63 74 20 42 52 4f 57 53  ....struct BROWS
2ea0: 45 49 4e 46 4f 41 20 7b 0d 0a 09 48 57 4e 44 20  EINFOA {...HWND 
2eb0: 20 20 20 20 20 20 20 20 20 68 77 6e 64 4f 77 6e           hwndOwn
2ec0: 65 72 3b 0d 0a 09 4c 50 43 49 54 45 4d 49 44 4c  er;...LPCITEMIDL
2ed0: 49 53 54 20 70 69 64 6c 52 6f 6f 74 3b 0d 0a 09  IST pidlRoot;...
2ee0: 4c 50 53 54 52 20 20 20 20 20 20 20 20 20 70 73  LPSTR         ps
2ef0: 7a 44 69 73 70 6c 61 79 4e 61 6d 65 3b 0d 0a 09  zDisplayName;...
2f00: 4c 50 43 53 54 52 20 20 20 20 20 20 20 20 6c 70  LPCSTR        lp
2f10: 73 7a 54 69 74 6c 65 3b 0d 0a 09 55 49 4e 54 20  szTitle;...UINT 
2f20: 20 20 20 20 20 20 20 20 20 75 6c 46 6c 61 67 73           ulFlags
2f30: 3b 0d 0a 09 42 46 46 43 41 4c 4c 42 41 43 4b 20  ;...BFFCALLBACK 
2f40: 20 20 6c 70 66 6e 3b 0d 0a 09 4c 50 41 52 41 4d    lpfn;...LPARAM
2f50: 20 20 20 20 20 20 20 20 6c 50 61 72 61 6d 3b 0d          lParam;.
2f60: 0a 09 69 6e 74 20 20 20 20 20 20 20 20 20 20 20  ..int           
2f70: 69 49 6d 61 67 65 3b 0d 0a 7d 0d 0a 61 6c 69 61  iImage;..}..alia
2f80: 73 20 42 52 4f 57 53 45 49 4e 46 4f 41 2a 20 50  s BROWSEINFOA* P
2f90: 42 52 4f 57 53 45 49 4e 46 4f 41 2c 20 4c 50 42  BROWSEINFOA, LPB
2fa0: 52 4f 57 53 45 49 4e 46 4f 41 3b 0d 0a 0d 0a 73  ROWSEINFOA;....s
2fb0: 74 72 75 63 74 20 42 52 4f 57 53 45 49 4e 46 4f  truct BROWSEINFO
2fc0: 57 20 7b 0d 0a 09 48 57 4e 44 20 20 20 20 20 20  W {...HWND      
2fd0: 20 20 20 20 68 77 6e 64 4f 77 6e 65 72 3b 0d 0a      hwndOwner;..
2fe0: 09 4c 50 43 49 54 45 4d 49 44 4c 49 53 54 20 70  .LPCITEMIDLIST p
2ff0: 69 64 6c 52 6f 6f 74 3b 0d 0a 09 4c 50 57 53 54  idlRoot;...LPWST
3000: 52 20 20 20 20 20 20 20 20 70 73 7a 44 69 73 70  R        pszDisp
3010: 6c 61 79 4e 61 6d 65 3b 0d 0a 09 4c 50 43 57 53  layName;...LPCWS
3020: 54 52 20 20 20 20 20 20 20 6c 70 73 7a 54 69 74  TR       lpszTit
3030: 6c 65 3b 0d 0a 09 55 49 4e 54 20 20 20 20 20 20  le;...UINT      
3040: 20 20 20 20 75 6c 46 6c 61 67 73 3b 0d 0a 09 42      ulFlags;...B
3050: 46 46 43 41 4c 4c 42 41 43 4b 20 20 20 6c 70 66  FFCALLBACK   lpf
3060: 6e 3b 0d 0a 09 4c 50 41 52 41 4d 20 20 20 20 20  n;...LPARAM     
3070: 20 20 20 6c 50 61 72 61 6d 3b 0d 0a 09 69 6e 74     lParam;...int
3080: 20 20 20 20 20 20 20 20 20 20 20 69 49 6d 61 67             iImag
3090: 65 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 42 52 4f  e;..}..alias BRO
30a0: 57 53 45 49 4e 46 4f 57 2a 20 50 42 52 4f 57 53  WSEINFOW* PBROWS
30b0: 45 49 4e 46 4f 57 2c 20 4c 50 42 52 4f 57 53 45  EINFOW, LPBROWSE
30c0: 49 4e 46 4f 57 3b 0d 0a 0d 0a 73 74 72 75 63 74  INFOW;....struct
30d0: 20 43 4d 49 4e 56 4f 4b 45 43 4f 4d 4d 41 4e 44   CMINVOKECOMMAND
30e0: 49 4e 46 4f 20 7b 0d 0a 09 44 57 4f 52 44 20 63  INFO {...DWORD c
30f0: 62 53 69 7a 65 20 3d 20 74 68 69 73 2e 73 69 7a  bSize = this.siz
3100: 65 6f 66 3b 0d 0a 09 44 57 4f 52 44 20 66 4d 61  eof;...DWORD fMa
3110: 73 6b 3b 0d 0a 09 48 57 4e 44 20 68 77 6e 64 3b  sk;...HWND hwnd;
3120: 0d 0a 09 4c 50 43 53 54 52 20 6c 70 56 65 72 62  ...LPCSTR lpVerb
3130: 3b 0d 0a 09 4c 50 43 53 54 52 20 6c 70 50 61 72  ;...LPCSTR lpPar
3140: 61 6d 65 74 65 72 73 3b 0d 0a 09 4c 50 43 53 54  ameters;...LPCST
3150: 52 20 6c 70 44 69 72 65 63 74 6f 72 79 3b 0d 0a  R lpDirectory;..
3160: 09 69 6e 74 20 6e 53 68 6f 77 3b 0d 0a 09 44 57  .int nShow;...DW
3170: 4f 52 44 20 64 77 48 6f 74 4b 65 79 3b 0d 0a 09  ORD dwHotKey;...
3180: 48 41 4e 44 4c 45 20 68 49 63 6f 6e 3b 0d 0a 7d  HANDLE hIcon;..}
3190: 0d 0a 61 6c 69 61 73 20 43 4d 49 4e 56 4f 4b 45  ..alias CMINVOKE
31a0: 43 4f 4d 4d 41 4e 44 49 4e 46 4f 2a 20 4c 50 43  COMMANDINFO* LPC
31b0: 4d 49 4e 56 4f 4b 45 43 4f 4d 4d 41 4e 44 49 4e  MINVOKECOMMANDIN
31c0: 46 4f 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 44 52  FO;....struct DR
31d0: 4f 50 46 49 4c 45 53 20 7b 0d 0a 09 44 57 4f 52  OPFILES {...DWOR
31e0: 44 20 70 46 69 6c 65 73 3b 0d 0a 09 50 4f 49 4e  D pFiles;...POIN
31f0: 54 20 70 74 3b 0d 0a 09 42 4f 4f 4c 20 66 4e 43  T pt;...BOOL fNC
3200: 3b 0d 0a 09 42 4f 4f 4c 20 66 57 69 64 65 3b 0d  ;...BOOL fWide;.
3210: 0a 7d 0d 0a 61 6c 69 61 73 20 44 52 4f 50 46 49  .}..alias DROPFI
3220: 4c 45 53 2a 20 4c 50 44 52 4f 50 46 49 4c 45 53  LES* LPDROPFILES
3230: 3b 0d 0a 0d 0a 65 6e 75 6d 20 53 48 47 4e 4f 20  ;....enum SHGNO 
3240: 7b 0d 0a 09 53 48 47 44 4e 5f 4e 4f 52 4d 41 4c  {...SHGDN_NORMAL
3250: 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 30               = 0
3260: 2c 0d 0a 09 53 48 47 44 4e 5f 49 4e 46 4f 4c 44  ,...SHGDN_INFOLD
3270: 45 52 2c 0d 0a 09 53 48 47 44 4e 5f 46 4f 52 45  ER,...SHGDN_FORE
3280: 44 49 54 49 4e 47 20 20 20 20 20 20 20 20 20 3d  DITING         =
3290: 20 30 78 31 30 30 30 2c 0d 0a 09 53 48 47 44 4e   0x1000,...SHGDN
32a0: 5f 49 4e 43 4c 55 44 45 5f 4e 4f 4e 46 49 4c 45  _INCLUDE_NONFILE
32b0: 53 59 53 20 3d 20 30 78 32 30 30 30 2c 0d 0a 09  SYS = 0x2000,...
32c0: 53 48 47 44 4e 5f 46 4f 52 41 44 44 52 45 53 53  SHGDN_FORADDRESS
32d0: 42 41 52 20 20 20 20 20 20 3d 20 30 78 34 30 30  BAR      = 0x400
32e0: 30 2c 0d 0a 09 53 48 47 44 4e 5f 46 4f 52 50 41  0,...SHGDN_FORPA
32f0: 52 53 49 4e 47 20 20 20 20 20 20 20 20 20 3d 20  RSING         = 
3300: 30 78 38 30 30 30 0d 0a 7d 0d 0a 0d 0a 65 6e 75  0x8000..}....enu
3310: 6d 20 53 48 43 4f 4e 54 46 20 7b 0d 0a 09 53 48  m SHCONTF {...SH
3320: 43 4f 4e 54 46 5f 46 4f 4c 44 45 52 53 20 20 20  CONTF_FOLDERS   
3330: 20 20 20 20 20 20 20 20 20 3d 20 33 32 2c 0d 0a           = 32,..
3340: 09 53 48 43 4f 4e 54 46 5f 4e 4f 4e 46 4f 4c 44  .SHCONTF_NONFOLD
3350: 45 52 53 20 20 20 20 20 20 20 20 20 3d 20 36 34  ERS         = 64
3360: 2c 0d 0a 09 53 48 43 4f 4e 54 46 5f 49 4e 43 4c  ,...SHCONTF_INCL
3370: 55 44 45 48 49 44 44 45 4e 20 20 20 20 20 20 3d  UDEHIDDEN      =
3380: 20 31 32 38 2c 0d 0a 09 53 48 43 4f 4e 54 46 5f   128,...SHCONTF_
3390: 49 4e 49 54 5f 4f 4e 5f 46 49 52 53 54 5f 4e 45  INIT_ON_FIRST_NE
33a0: 58 54 20 3d 20 32 35 36 2c 0d 0a 09 53 48 43 4f  XT = 256,...SHCO
33b0: 4e 54 46 5f 4e 45 54 50 52 49 4e 54 45 52 53 52  NTF_NETPRINTERSR
33c0: 43 48 20 20 20 20 20 3d 20 35 31 32 2c 0d 0a 09  CH     = 512,...
33d0: 53 48 43 4f 4e 54 46 5f 53 48 41 52 45 41 42 4c  SHCONTF_SHAREABL
33e0: 45 20 20 20 20 20 20 20 20 20 20 3d 20 31 30 32  E          = 102
33f0: 34 2c 0d 0a 09 53 48 43 4f 4e 54 46 5f 53 54 4f  4,...SHCONTF_STO
3400: 52 41 47 45 20 20 20 20 20 20 20 20 20 20 20 20  RAGE            
3410: 3d 20 32 30 34 38 0d 0a 7d 0d 0a 0d 0a 73 74 72  = 2048..}....str
3420: 75 63 74 20 53 54 52 52 45 54 20 7b 0d 0a 09 55  uct STRRET {...U
3430: 49 4e 54 20 75 54 79 70 65 3b 0d 0a 09 75 6e 69  INT uType;...uni
3440: 6f 6e 20 7b 0d 0a 09 09 4c 50 57 53 54 52 20 70  on {....LPWSTR p
3450: 4f 6c 65 53 74 72 3b 0d 0a 09 09 55 49 4e 54 20  OleStr;....UINT 
3460: 75 4f 66 66 73 65 74 3b 0d 0a 09 09 63 68 61 72  uOffset;....char
3470: 5b 4d 41 58 5f 50 41 54 48 5d 20 63 53 74 72 3b  [MAX_PATH] cStr;
3480: 0d 0a 09 7d 0d 0a 7d 0d 0a 61 6c 69 61 73 20 53  ...}..}..alias S
3490: 54 52 52 45 54 2a 20 4c 50 53 54 52 52 45 54 3b  TRRET* LPSTRRET;
34a0: 0d 0a 0d 0a 65 6e 75 6d 20 46 44 5f 46 4c 41 47  ....enum FD_FLAG
34b0: 53 20 7b 0d 0a 09 46 44 5f 43 4c 53 49 44 20 20  S {...FD_CLSID  
34c0: 20 20 20 20 3d 20 31 2c 0d 0a 09 46 44 5f 53 49      = 1,...FD_SI
34d0: 5a 45 50 4f 49 4e 54 20 20 3d 20 32 2c 0d 0a 09  ZEPOINT  = 2,...
34e0: 46 44 5f 41 54 54 52 49 42 55 54 45 53 20 3d 20  FD_ATTRIBUTES = 
34f0: 34 2c 0d 0a 09 46 44 5f 43 52 45 41 54 45 54 49  4,...FD_CREATETI
3500: 4d 45 20 3d 20 38 2c 0d 0a 09 46 44 5f 41 43 43  ME = 8,...FD_ACC
3510: 45 53 53 54 49 4d 45 20 3d 20 31 36 2c 0d 0a 09  ESSTIME = 16,...
3520: 46 44 5f 57 52 49 54 45 53 54 49 4d 45 20 3d 20  FD_WRITESTIME = 
3530: 33 32 2c 0d 0a 09 46 44 5f 46 49 4c 45 53 49 5a  32,...FD_FILESIZ
3540: 45 20 20 20 3d 20 36 34 2c 0d 0a 09 46 44 5f 4c  E   = 64,...FD_L
3550: 49 4e 4b 55 49 20 20 20 20 20 3d 20 30 78 38 30  INKUI     = 0x80
3560: 30 30 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 63 74 20  00..}....struct 
3570: 46 49 4c 45 44 45 53 43 52 49 50 54 4f 52 41 20  FILEDESCRIPTORA 
3580: 7b 0d 0a 09 44 57 4f 52 44 20 64 77 46 6c 61 67  {...DWORD dwFlag
3590: 73 3b 0d 0a 09 43 4c 53 49 44 20 63 6c 73 69 64  s;...CLSID clsid
35a0: 3b 0d 0a 09 53 49 5a 45 4c 20 73 69 7a 65 6c 3b  ;...SIZEL sizel;
35b0: 0d 0a 09 50 4f 49 4e 54 4c 20 70 6f 69 6e 74 6c  ...POINTL pointl
35c0: 3b 0d 0a 09 44 57 4f 52 44 20 64 77 46 69 6c 65  ;...DWORD dwFile
35d0: 41 74 74 72 69 62 75 74 65 73 3b 0d 0a 09 46 49  Attributes;...FI
35e0: 4c 45 54 49 4d 45 20 66 74 43 72 65 61 74 69 6f  LETIME ftCreatio
35f0: 6e 54 69 6d 65 3b 0d 0a 09 46 49 4c 45 54 49 4d  nTime;...FILETIM
3600: 45 20 66 74 4c 61 73 74 41 63 63 65 73 73 54 69  E ftLastAccessTi
3610: 6d 65 3b 0d 0a 09 46 49 4c 45 54 49 4d 45 20 66  me;...FILETIME f
3620: 74 4c 61 73 74 57 72 69 74 65 54 69 6d 65 3b 0d  tLastWriteTime;.
3630: 0a 09 44 57 4f 52 44 20 6e 46 69 6c 65 53 69 7a  ..DWORD nFileSiz
3640: 65 48 69 67 68 3b 0d 0a 09 44 57 4f 52 44 20 6e  eHigh;...DWORD n
3650: 46 69 6c 65 53 69 7a 65 4c 6f 77 3b 0d 0a 09 43  FileSizeLow;...C
3660: 48 41 52 5b 4d 41 58 5f 50 41 54 48 5d 20 63 46  HAR[MAX_PATH] cF
3670: 69 6c 65 4e 61 6d 65 3b 0d 0a 7d 0d 0a 61 6c 69  ileName;..}..ali
3680: 61 73 20 46 49 4c 45 44 45 53 43 52 49 50 54 4f  as FILEDESCRIPTO
3690: 52 41 2a 20 4c 50 46 49 4c 45 44 45 53 43 52 49  RA* LPFILEDESCRI
36a0: 50 54 4f 52 41 3b 0d 0a 0d 0a 73 74 72 75 63 74  PTORA;....struct
36b0: 20 46 49 4c 45 44 45 53 43 52 49 50 54 4f 52 57   FILEDESCRIPTORW
36c0: 20 7b 0d 0a 09 44 57 4f 52 44 20 64 77 46 6c 61   {...DWORD dwFla
36d0: 67 73 3b 0d 0a 09 43 4c 53 49 44 20 63 6c 73 69  gs;...CLSID clsi
36e0: 64 3b 0d 0a 09 53 49 5a 45 4c 20 73 69 7a 65 6c  d;...SIZEL sizel
36f0: 3b 0d 0a 09 50 4f 49 4e 54 4c 20 70 6f 69 6e 74  ;...POINTL point
3700: 6c 3b 0d 0a 09 44 57 4f 52 44 20 64 77 46 69 6c  l;...DWORD dwFil
3710: 65 41 74 74 72 69 62 75 74 65 73 3b 0d 0a 09 46  eAttributes;...F
3720: 49 4c 45 54 49 4d 45 20 66 74 43 72 65 61 74 69  ILETIME ftCreati
3730: 6f 6e 54 69 6d 65 3b 0d 0a 09 46 49 4c 45 54 49  onTime;...FILETI
3740: 4d 45 20 66 74 4c 61 73 74 41 63 63 65 73 73 54  ME ftLastAccessT
3750: 69 6d 65 3b 0d 0a 09 46 49 4c 45 54 49 4d 45 20  ime;...FILETIME 
3760: 66 74 4c 61 73 74 57 72 69 74 65 54 69 6d 65 3b  ftLastWriteTime;
3770: 0d 0a 09 44 57 4f 52 44 20 6e 46 69 6c 65 53 69  ...DWORD nFileSi
3780: 7a 65 48 69 67 68 3b 0d 0a 09 44 57 4f 52 44 20  zeHigh;...DWORD 
3790: 6e 46 69 6c 65 53 69 7a 65 4c 6f 77 3b 0d 0a 09  nFileSizeLow;...
37a0: 57 43 48 41 52 5b 4d 41 58 5f 50 41 54 48 5d 20  WCHAR[MAX_PATH] 
37b0: 63 46 69 6c 65 4e 61 6d 65 3b 0d 0a 7d 0d 0a 61  cFileName;..}..a
37c0: 6c 69 61 73 20 46 49 4c 45 44 45 53 43 52 49 50  lias FILEDESCRIP
37d0: 54 4f 52 57 2a 20 4c 50 46 49 4c 45 44 45 53 43  TORW* LPFILEDESC
37e0: 52 49 50 54 4f 52 57 3b 0d 0a 0d 0a 73 74 72 75  RIPTORW;....stru
37f0: 63 74 20 46 49 4c 45 47 52 4f 55 50 44 45 53 43  ct FILEGROUPDESC
3800: 52 49 50 54 4f 52 41 20 7b 0d 0a 09 55 49 4e 54  RIPTORA {...UINT
3810: 20 63 49 74 65 6d 73 3b 0d 0a 09 46 49 4c 45 44   cItems;...FILED
3820: 45 53 43 52 49 50 54 4f 52 41 5b 31 5d 20 66 67  ESCRIPTORA[1] fg
3830: 64 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 46 49 4c  d;..}..alias FIL
3840: 45 47 52 4f 55 50 44 45 53 43 52 49 50 54 4f 52  EGROUPDESCRIPTOR
3850: 41 2a 20 4c 50 46 49 4c 45 47 52 4f 55 50 44 45  A* LPFILEGROUPDE
3860: 53 43 52 49 50 54 4f 52 41 3b 0d 0a 0d 0a 73 74  SCRIPTORA;....st
3870: 72 75 63 74 20 46 49 4c 45 47 52 4f 55 50 44 45  ruct FILEGROUPDE
3880: 53 43 52 49 50 54 4f 52 57 20 7b 0d 0a 09 55 49  SCRIPTORW {...UI
3890: 4e 54 20 63 49 74 65 6d 73 3b 0d 0a 09 46 49 4c  NT cItems;...FIL
38a0: 45 44 45 53 43 52 49 50 54 4f 52 57 5b 31 5d 20  EDESCRIPTORW[1] 
38b0: 66 67 64 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 46  fgd;..}..alias F
38c0: 49 4c 45 47 52 4f 55 50 44 45 53 43 52 49 50 54  ILEGROUPDESCRIPT
38d0: 4f 52 57 2a 20 4c 50 46 49 4c 45 47 52 4f 55 50  ORW* LPFILEGROUP
38e0: 44 45 53 43 52 49 50 54 4f 52 57 3b 0d 0a 0d 0a  DESCRIPTORW;....
38f0: 65 6e 75 6d 20 53 4c 52 5f 46 4c 41 47 53 20 7b  enum SLR_FLAGS {
3900: 0d 0a 09 53 4c 52 5f 4e 4f 5f 55 49 20 20 20 20  ...SLR_NO_UI    
3910: 20 20 3d 20 31 2c 0d 0a 09 53 4c 52 5f 41 4e 59    = 1,...SLR_ANY
3920: 5f 4d 41 54 43 48 20 20 3d 20 32 2c 0d 0a 09 53  _MATCH  = 2,...S
3930: 4c 52 5f 55 50 44 41 54 45 20 20 20 20 20 3d 20  LR_UPDATE     = 
3940: 34 2c 0d 0a 09 53 4c 52 5f 4e 4f 55 50 44 41 54  4,...SLR_NOUPDAT
3950: 45 20 20 20 3d 20 38 2c 0d 0a 09 53 4c 52 5f 4e  E   = 8,...SLR_N
3960: 4f 53 45 41 52 43 48 20 20 20 3d 20 31 36 2c 0d  OSEARCH   = 16,.
3970: 0a 09 53 4c 52 5f 4e 4f 54 52 41 43 4b 20 20 20  ..SLR_NOTRACK   
3980: 20 3d 20 33 32 2c 0d 0a 09 53 4c 52 5f 4e 4f 4c   = 32,...SLR_NOL
3990: 49 4e 4b 49 4e 46 4f 20 3d 20 36 34 2c 0d 0a 09  INKINFO = 64,...
39a0: 53 4c 52 5f 49 4e 56 4f 4b 45 5f 4d 53 49 20 3d  SLR_INVOKE_MSI =
39b0: 20 31 32 38 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20   128..}....enum 
39c0: 53 4c 47 50 5f 46 4c 41 47 53 20 7b 0d 0a 09 53  SLGP_FLAGS {...S
39d0: 4c 47 50 5f 53 48 4f 52 54 50 41 54 48 3d 31 2c  LGP_SHORTPATH=1,
39e0: 0d 0a 09 53 4c 47 50 5f 55 4e 43 50 52 49 4f 52  ...SLGP_UNCPRIOR
39f0: 49 54 59 3d 32 2c 0d 0a 09 53 4c 47 50 5f 52 41  ITY=2,...SLGP_RA
3a00: 57 50 41 54 48 3d 34 0d 0a 7d 0d 0a 0d 0a 61 6c  WPATH=4..}....al
3a10: 69 61 73 20 50 42 59 54 45 20 4c 50 56 49 45 57  ias PBYTE LPVIEW
3a20: 53 45 54 54 49 4e 47 53 3b 0d 0a 0d 0a 65 6e 75  SETTINGS;....enu
3a30: 6d 20 46 4f 4c 44 45 52 46 4c 41 47 53 20 7b 0d  m FOLDERFLAGS {.
3a40: 0a 09 46 57 46 5f 41 55 54 4f 41 52 52 41 4e 47  ..FWF_AUTOARRANG
3a50: 45 20 20 20 20 20 20 20 20 20 3d 20 31 2c 0d 0a  E         = 1,..
3a60: 09 46 57 46 5f 41 42 42 52 45 56 49 41 54 45 44  .FWF_ABBREVIATED
3a70: 4e 41 4d 45 53 20 20 20 20 3d 20 32 2c 0d 0a 09  NAMES    = 2,...
3a80: 46 57 46 5f 53 4e 41 50 54 4f 47 52 49 44 20 20  FWF_SNAPTOGRID  
3a90: 20 20 20 20 20 20 20 20 3d 20 34 2c 0d 0a 09 46          = 4,...F
3aa0: 57 46 5f 4f 57 4e 45 52 44 41 54 41 20 20 20 20  WF_OWNERDATA    
3ab0: 20 20 20 20 20 20 20 3d 20 38 2c 0d 0a 09 46 57         = 8,...FW
3ac0: 46 5f 42 45 53 54 46 49 54 57 49 4e 44 4f 57 20  F_BESTFITWINDOW 
3ad0: 20 20 20 20 20 20 3d 20 31 36 2c 0d 0a 09 46 57        = 16,...FW
3ae0: 46 5f 44 45 53 4b 54 4f 50 20 20 20 20 20 20 20  F_DESKTOP       
3af0: 20 20 20 20 20 20 3d 20 33 32 2c 0d 0a 09 46 57        = 32,...FW
3b00: 46 5f 53 49 4e 47 4c 45 53 45 4c 20 20 20 20 20  F_SINGLESEL     
3b10: 20 20 20 20 20 20 3d 20 36 34 2c 0d 0a 09 46 57        = 64,...FW
3b20: 46 5f 4e 4f 53 55 42 46 4f 4c 44 45 52 53 20 20  F_NOSUBFOLDERS  
3b30: 20 20 20 20 20 20 3d 20 31 32 38 2c 0d 0a 09 46        = 128,...F
3b40: 57 46 5f 54 52 41 4e 53 50 41 52 45 4e 54 20 20  WF_TRANSPARENT  
3b50: 20 20 20 20 20 20 20 3d 20 32 35 36 2c 0d 0a 09         = 256,...
3b60: 46 57 46 5f 4e 4f 43 4c 49 45 4e 54 45 44 47 45  FWF_NOCLIENTEDGE
3b70: 20 20 20 20 20 20 20 20 3d 20 35 31 32 2c 0d 0a          = 512,..
3b80: 09 46 57 46 5f 4e 4f 53 43 52 4f 4c 4c 20 20 20  .FWF_NOSCROLL   
3b90: 20 20 20 20 20 20 20 20 20 3d 20 30 78 34 30 30           = 0x400
3ba0: 2c 0d 0a 09 46 57 46 5f 41 4c 49 47 4e 4c 45 46  ,...FWF_ALIGNLEF
3bb0: 54 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 78  T           = 0x
3bc0: 38 30 30 2c 0d 0a 09 46 57 46 5f 53 49 4e 47 4c  800,...FWF_SINGL
3bd0: 45 43 4c 49 43 4b 41 43 54 49 56 41 54 45 20 3d  ECLICKACTIVATE =
3be0: 20 30 78 38 30 30 30 0d 0a 7d 0d 0a 0d 0a 65 6e   0x8000..}....en
3bf0: 75 6d 20 46 4f 4c 44 45 52 56 49 45 57 4d 4f 44  um FOLDERVIEWMOD
3c00: 45 20 7b 0d 0a 09 46 56 4d 5f 49 43 4f 4e 20 20  E {...FVM_ICON  
3c10: 20 20 20 20 3d 20 31 2c 0d 0a 09 46 56 4d 5f 53      = 1,...FVM_S
3c20: 4d 41 4c 4c 49 43 4f 4e 2c 0d 0a 09 46 56 4d 5f  MALLICON,...FVM_
3c30: 4c 49 53 54 2c 0d 0a 09 46 56 4d 5f 44 45 54 41  LIST,...FVM_DETA
3c40: 49 4c 53 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 63 74  ILS..}....struct
3c50: 20 46 4f 4c 44 45 52 53 45 54 54 49 4e 47 53 20   FOLDERSETTINGS 
3c60: 7b 0d 0a 09 55 49 4e 54 20 56 69 65 77 4d 6f 64  {...UINT ViewMod
3c70: 65 3b 0d 0a 09 55 49 4e 54 20 66 46 6c 61 67 73  e;...UINT fFlags
3c80: 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 46 4f 4c 44  ;..}..alias FOLD
3c90: 45 52 53 45 54 54 49 4e 47 53 2a 20 20 20 20 20  ERSETTINGS*     
3ca0: 20 20 20 4c 50 46 4f 4c 44 45 52 53 45 54 54 49     LPFOLDERSETTI
3cb0: 4e 47 53 3b 0d 0a 61 6c 69 61 73 20 63 6f 6e 73  NGS;..alias cons
3cc0: 74 28 46 4f 4c 44 45 52 53 45 54 54 49 4e 47 53  t(FOLDERSETTINGS
3cd0: 29 2a 20 4c 50 43 46 4f 4c 44 45 52 53 45 54 54  )* LPCFOLDERSETT
3ce0: 49 4e 47 53 3b 0d 0a 0d 0a 73 74 72 75 63 74 20  INGS;....struct 
3cf0: 46 56 53 48 4f 57 49 4e 46 4f 20 7b 0d 0a 09 44  FVSHOWINFO {...D
3d00: 57 4f 52 44 20 63 62 53 69 7a 65 20 3d 20 74 68  WORD cbSize = th
3d10: 69 73 2e 73 69 7a 65 6f 66 3b 0d 0a 09 48 57 4e  is.sizeof;...HWN
3d20: 44 20 68 77 6e 64 4f 77 6e 65 72 3b 0d 0a 09 69  D hwndOwner;...i
3d30: 6e 74 20 69 53 68 6f 77 3b 0d 0a 09 44 57 4f 52  nt iShow;...DWOR
3d40: 44 20 64 77 46 6c 61 67 73 3b 0d 0a 09 52 45 43  D dwFlags;...REC
3d50: 54 20 72 65 63 74 3b 0d 0a 09 4c 50 55 4e 4b 4e  T rect;...LPUNKN
3d60: 4f 57 4e 20 70 75 6e 6b 52 65 6c 3b 0d 0a 09 4f  OWN punkRel;...O
3d70: 4c 45 43 48 41 52 5b 4d 41 58 5f 50 41 54 48 5d  LECHAR[MAX_PATH]
3d80: 20 73 74 72 4e 65 77 46 69 6c 65 3b 0d 0a 7d 0d   strNewFile;..}.
3d90: 0a 61 6c 69 61 73 20 46 56 53 48 4f 57 49 4e 46  .alias FVSHOWINF
3da0: 4f 2a 20 4c 50 46 56 53 48 4f 57 49 4e 46 4f 3b  O* LPFVSHOWINFO;
3db0: 0d 0a 0d 0a 73 74 72 75 63 74 20 4e 52 45 53 41  ....struct NRESA
3dc0: 52 52 41 59 20 7b 0d 0a 09 55 49 4e 54 20 63 49  RRAY {...UINT cI
3dd0: 74 65 6d 73 3b 0d 0a 09 4e 45 54 52 45 53 4f 55  tems;...NETRESOU
3de0: 52 43 45 5b 31 5d 20 6e 72 3b 0d 0a 7d 0d 0a 61  RCE[1] nr;..}..a
3df0: 6c 69 61 73 20 4e 52 45 53 41 52 52 41 59 2a 20  lias NRESARRAY* 
3e00: 4c 50 4e 52 45 53 41 52 52 41 59 3b 0d 0a 0d 0a  LPNRESARRAY;....
3e10: 65 6e 75 6d 20 7b 0d 0a 09 53 42 53 43 5f 48 49  enum {...SBSC_HI
3e20: 44 45 2c 0d 0a 09 53 42 53 43 5f 53 48 4f 57 2c  DE,...SBSC_SHOW,
3e30: 0d 0a 09 53 42 53 43 5f 54 4f 47 47 4c 45 2c 0d  ...SBSC_TOGGLE,.
3e40: 0a 09 53 42 53 43 5f 51 55 45 52 59 0d 0a 7d 0d  ..SBSC_QUERY..}.
3e50: 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 53 42 43 4d  ...enum {...SBCM
3e60: 44 49 44 5f 45 4e 41 42 4c 45 53 48 4f 57 54 52  DID_ENABLESHOWTR
3e70: 45 45 2c 0d 0a 09 53 42 43 4d 44 49 44 5f 53 48  EE,...SBCMDID_SH
3e80: 4f 57 43 4f 4e 54 52 4f 4c 2c 0d 0a 09 53 42 43  OWCONTROL,...SBC
3e90: 4d 44 49 44 5f 43 41 4e 43 45 4c 4e 41 56 49 47  MDID_CANCELNAVIG
3ea0: 41 54 49 4f 4e 2c 0d 0a 09 53 42 43 4d 44 49 44  ATION,...SBCMDID
3eb0: 5f 4d 41 59 53 41 56 45 43 48 41 4e 47 45 53 2c  _MAYSAVECHANGES,
3ec0: 0d 0a 09 53 42 43 4d 44 49 44 5f 53 45 54 48 4c  ...SBCMDID_SETHL
3ed0: 49 4e 4b 46 52 41 4d 45 2c 0d 0a 09 53 42 43 4d  INKFRAME,...SBCM
3ee0: 44 49 44 5f 45 4e 41 42 4c 45 53 54 4f 50 2c 0d  DID_ENABLESTOP,.
3ef0: 0a 09 53 42 43 4d 44 49 44 5f 4f 50 54 49 4f 4e  ..SBCMDID_OPTION
3f00: 53 0d 0a 7d 0d 0a 65 6e 75 6d 20 53 56 55 49 41  S..}..enum SVUIA
3f10: 5f 53 54 41 54 55 53 20 7b 0d 0a 09 53 56 55 49  _STATUS {...SVUI
3f20: 41 5f 44 45 41 43 54 49 56 41 54 45 2c 0d 0a 09  A_DEACTIVATE,...
3f30: 53 56 55 49 41 5f 41 43 54 49 56 41 54 45 5f 4e  SVUIA_ACTIVATE_N
3f40: 4f 46 4f 43 55 53 2c 0d 0a 09 53 56 55 49 41 5f  OFOCUS,...SVUIA_
3f50: 41 43 54 49 56 41 54 45 5f 46 4f 43 55 53 2c 0d  ACTIVATE_FOCUS,.
3f60: 0a 09 53 56 55 49 41 5f 49 4e 50 4c 41 43 45 41  ..SVUIA_INPLACEA
3f70: 43 54 49 56 41 54 45 0d 0a 7d 0d 0a 0d 0a 73 74  CTIVATE..}....st
3f80: 61 74 69 63 20 69 66 20 28 5f 57 49 4e 33 32 5f  atic if (_WIN32_
3f90: 49 45 20 3e 3d 20 30 78 35 30 30 29 20 7b 0d 0a  IE >= 0x500) {..
3fa0: 0d 0a 09 73 74 72 75 63 74 20 45 58 54 52 41 53  ...struct EXTRAS
3fb0: 45 41 52 43 48 0d 0a 09 20 7b 0d 0a 09 09 47 55  EARCH... {....GU
3fc0: 49 44 20 67 75 69 64 53 65 61 72 63 68 3b 0d 0a  ID guidSearch;..
3fd0: 09 09 57 43 48 41 52 5b 38 30 5d 20 77 73 7a 46  ..WCHAR[80] wszF
3fe0: 72 69 65 6e 64 6c 79 4e 61 6d 65 3b 0d 0a 09 09  riendlyName;....
3ff0: 57 43 48 41 52 5b 32 30 38 34 5d 20 77 73 7a 55  WCHAR[2084] wszU
4000: 72 6c 3b 0d 0a 09 7d 0d 0a 09 61 6c 69 61 73 20  rl;...}...alias 
4010: 45 58 54 52 41 53 45 41 52 43 48 2a 20 4c 50 45  EXTRASEARCH* LPE
4020: 58 54 52 41 53 45 41 52 43 48 3b 0d 0a 0d 0a 09  XTRASEARCH;.....
4030: 61 6c 69 61 73 20 44 57 4f 52 44 20 53 48 43 4f  alias DWORD SHCO
4040: 4c 53 54 41 54 45 46 3b 0d 0a 0d 0a 09 73 74 72  LSTATEF;.....str
4050: 75 63 74 20 53 48 43 4f 4c 55 4d 4e 49 44 20 7b  uct SHCOLUMNID {
4060: 0d 0a 09 09 47 55 49 44 20 66 6d 74 69 64 3b 0d  ....GUID fmtid;.
4070: 0a 09 09 44 57 4f 52 44 20 70 69 64 3b 0d 0a 09  ...DWORD pid;...
4080: 7d 0d 0a 09 61 6c 69 61 73 20 53 48 43 4f 4c 55  }...alias SHCOLU
4090: 4d 4e 49 44 2a 20 20 20 20 20 20 20 20 4c 50 53  MNID*        LPS
40a0: 48 43 4f 4c 55 4d 4e 49 44 3b 0d 0a 09 61 6c 69  HCOLUMNID;...ali
40b0: 61 73 20 63 6f 6e 73 74 28 53 48 43 4f 4c 55 4d  as const(SHCOLUM
40c0: 4e 49 44 29 2a 20 4c 50 43 53 48 43 4f 4c 55 4d  NID)* LPCSHCOLUM
40d0: 4e 49 44 3b 0d 0a 0d 0a 09 73 74 72 75 63 74 20  NID;.....struct 
40e0: 53 48 45 4c 4c 44 45 54 41 49 4c 53 20 7b 0d 0a  SHELLDETAILS {..
40f0: 09 09 69 6e 74 20 66 6d 74 3b 0d 0a 09 09 69 6e  ..int fmt;....in
4100: 74 20 63 78 43 68 61 72 3b 0d 0a 09 09 53 54 52  t cxChar;....STR
4110: 52 45 54 20 73 74 72 3b 0d 0a 09 7d 0d 0a 09 61  RET str;...}...a
4120: 6c 69 61 73 20 53 48 45 4c 4c 44 45 54 41 49 4c  lias SHELLDETAIL
4130: 53 2a 20 4c 50 53 48 45 4c 4c 44 45 54 41 49 4c  S* LPSHELLDETAIL
4140: 53 3b 0d 0a 0d 0a 09 73 74 72 75 63 74 20 50 45  S;.....struct PE
4150: 52 53 49 53 54 5f 46 4f 4c 44 45 52 5f 54 41 52  RSIST_FOLDER_TAR
4160: 47 45 54 5f 49 4e 46 4f 0d 0a 09 20 7b 0d 0a 09  GET_INFO... {...
4170: 09 4c 50 49 54 45 4d 49 44 4c 49 53 54 20 70 69  .LPITEMIDLIST pi
4180: 64 6c 54 61 72 67 65 74 46 6f 6c 64 65 72 3b 0d  dlTargetFolder;.
4190: 0a 09 09 57 43 48 41 52 5b 4d 41 58 5f 50 41 54  ...WCHAR[MAX_PAT
41a0: 48 5d 20 73 7a 54 61 72 67 65 74 50 61 72 73 69  H] szTargetParsi
41b0: 6e 67 4e 61 6d 65 3b 0d 0a 09 09 57 43 48 41 52  ngName;....WCHAR
41c0: 5b 4d 41 58 5f 50 41 54 48 5d 20 73 7a 4e 65 74  [MAX_PATH] szNet
41d0: 77 6f 72 6b 50 72 6f 76 69 64 65 72 3b 0d 0a 09  workProvider;...
41e0: 09 44 57 4f 52 44 20 64 77 41 74 74 72 69 62 75  .DWORD dwAttribu
41f0: 74 65 73 3b 0d 0a 09 09 69 6e 74 20 63 73 69 64  tes;....int csid
4200: 6c 3b 0d 0a 09 7d 0d 0a 0d 0a 09 65 6e 75 6d 20  l;...}.....enum 
4210: 53 48 47 46 50 5f 54 59 50 45 20 7b 0d 0a 09 09  SHGFP_TYPE {....
4220: 53 48 47 46 50 5f 54 59 50 45 5f 43 55 52 52 45  SHGFP_TYPE_CURRE
4230: 4e 54 20 3d 20 30 2c 0d 0a 09 09 53 48 47 46 50  NT = 0,....SHGFP
4240: 5f 54 59 50 45 5f 44 45 46 41 55 4c 54 20 3d 20  _TYPE_DEFAULT = 
4250: 31 2c 0d 0a 09 7d 0d 0a 0d 0a 7d 0d 0a 0d 0a 69  1,...}....}....i
4260: 6e 74 65 72 66 61 63 65 20 49 45 6e 75 6d 49 44  nterface IEnumID
4270: 4c 69 73 74 20 3a 20 49 55 6e 6b 6e 6f 77 6e 20  List : IUnknown 
4280: 7b 0d 0a 09 48 52 45 53 55 4c 54 20 4e 65 78 74  {...HRESULT Next
4290: 28 55 4c 4f 4e 47 2c 20 4c 50 49 54 45 4d 49 44  (ULONG, LPITEMID
42a0: 4c 49 53 54 2a 2c 20 55 4c 4f 4e 47 2a 29 3b 0d  LIST*, ULONG*);.
42b0: 0a 09 48 52 45 53 55 4c 54 20 53 6b 69 70 28 55  ..HRESULT Skip(U
42c0: 4c 4f 4e 47 29 3b 0d 0a 09 48 52 45 53 55 4c 54  LONG);...HRESULT
42d0: 20 52 65 73 65 74 28 29 3b 0d 0a 09 48 52 45 53   Reset();...HRES
42e0: 55 4c 54 20 43 6c 6f 6e 65 28 49 45 6e 75 6d 49  ULT Clone(IEnumI
42f0: 44 4c 69 73 74 2a 29 3b 0d 0a 7d 0d 0a 61 6c 69  DList*);..}..ali
4300: 61 73 20 49 45 6e 75 6d 49 44 4c 69 73 74 20 4c  as IEnumIDList L
4310: 50 45 4e 55 4d 49 44 4c 49 53 54 3b 0d 0a 0d 0a  PENUMIDLIST;....
4320: 69 6e 74 65 72 66 61 63 65 20 49 4f 62 6a 4d 67  interface IObjMg
4330: 72 20 3a 20 49 55 6e 6b 6e 6f 77 6e 20 7b 0d 0a  r : IUnknown {..
4340: 09 48 52 45 53 55 4c 54 20 41 70 70 65 6e 64 28  .HRESULT Append(
4350: 49 55 6e 6b 6e 6f 77 6e 29 3b 0d 0a 09 48 52 45  IUnknown);...HRE
4360: 53 55 4c 54 20 52 65 6d 6f 76 65 28 49 55 6e 6b  SULT Remove(IUnk
4370: 6e 6f 77 6e 29 3b 0d 0a 7d 0d 0a 0d 0a 69 6e 74  nown);..}....int
4380: 65 72 66 61 63 65 20 49 43 6f 6e 74 65 78 74 4d  erface IContextM
4390: 65 6e 75 20 3a 20 49 55 6e 6b 6e 6f 77 6e 20 7b  enu : IUnknown {
43a0: 0d 0a 09 48 52 45 53 55 4c 54 20 51 75 65 72 79  ...HRESULT Query
43b0: 43 6f 6e 74 65 78 74 4d 65 6e 75 28 48 4d 45 4e  ContextMenu(HMEN
43c0: 55 2c 20 55 49 4e 54 2c 20 55 49 4e 54 2c 20 55  U, UINT, UINT, U
43d0: 49 4e 54 2c 20 55 49 4e 54 29 3b 0d 0a 09 48 52  INT, UINT);...HR
43e0: 45 53 55 4c 54 20 49 6e 76 6f 6b 65 43 6f 6d 6d  ESULT InvokeComm
43f0: 61 6e 64 28 4c 50 43 4d 49 4e 56 4f 4b 45 43 4f  and(LPCMINVOKECO
4400: 4d 4d 41 4e 44 49 4e 46 4f 29 3b 0d 0a 09 48 52  MMANDINFO);...HR
4410: 45 53 55 4c 54 20 47 65 74 43 6f 6d 6d 61 6e 64  ESULT GetCommand
4420: 53 74 72 69 6e 67 28 55 49 4e 54 2c 20 55 49 4e  String(UINT, UIN
4430: 54 2c 20 50 55 49 4e 54 2c 20 4c 50 53 54 52 2c  T, PUINT, LPSTR,
4440: 20 55 49 4e 54 29 3b 0d 0a 7d 0d 0a 61 6c 69 61   UINT);..}..alia
4450: 73 20 49 43 6f 6e 74 65 78 74 4d 65 6e 75 20 4c  s IContextMenu L
4460: 50 43 4f 4e 54 45 58 54 4d 45 4e 55 3b 0d 0a 0d  PCONTEXTMENU;...
4470: 0a 69 6e 74 65 72 66 61 63 65 20 49 43 6f 6e 74  .interface ICont
4480: 65 78 74 4d 65 6e 75 32 20 3a 20 49 43 6f 6e 74  extMenu2 : ICont
4490: 65 78 74 4d 65 6e 75 20 7b 0d 0a 09 48 52 45 53  extMenu {...HRES
44a0: 55 4c 54 20 48 61 6e 64 6c 65 4d 65 6e 75 4d 73  ULT HandleMenuMs
44b0: 67 28 55 49 4e 54 2c 20 57 50 41 52 41 4d 2c 20  g(UINT, WPARAM, 
44c0: 4c 50 41 52 41 4d 29 3b 0d 0a 7d 3b 0d 0a 61 6c  LPARAM);..};..al
44d0: 69 61 73 20 49 43 6f 6e 74 65 78 74 4d 65 6e 75  ias IContextMenu
44e0: 32 20 4c 50 43 4f 4e 54 45 58 54 4d 45 4e 55 32  2 LPCONTEXTMENU2
44f0: 3b 0d 0a 0d 0a 73 74 61 74 69 63 20 69 66 20 28  ;....static if (
4500: 5f 57 49 4e 33 32 5f 49 45 20 3e 3d 20 30 78 35  _WIN32_IE >= 0x5
4510: 30 30 29 20 7b 0d 0a 09 61 6c 69 67 6e 28 38 29  00) {...align(8)
4520: 20 7b 0d 0a 09 09 73 74 72 75 63 74 20 53 48 43   {....struct SHC
4530: 4f 4c 55 4d 4e 49 4e 49 54 20 7b 0d 0a 09 09 09  OLUMNINIT {.....
4540: 55 4c 4f 4e 47 20 64 77 46 6c 61 67 73 3b 0d 0a  ULONG dwFlags;..
4550: 09 09 09 55 4c 4f 4e 47 20 64 77 52 65 73 65 72  ...ULONG dwReser
4560: 76 65 64 3b 0d 0a 09 09 09 57 43 48 41 52 5b 4d  ved;.....WCHAR[M
4570: 41 58 5f 50 41 54 48 5d 20 77 73 7a 46 6f 6c 64  AX_PATH] wszFold
4580: 65 72 3b 0d 0a 09 09 7d 0d 0a 09 09 61 6c 69 61  er;....}....alia
4590: 73 20 53 48 43 4f 4c 55 4d 4e 49 4e 49 54 2a 20  s SHCOLUMNINIT* 
45a0: 20 20 20 20 20 20 20 4c 50 53 48 43 4f 4c 55 4d         LPSHCOLUM
45b0: 4e 49 4e 49 54 3b 0d 0a 09 09 61 6c 69 61 73 20  NINIT;....alias 
45c0: 63 6f 6e 73 74 28 53 48 43 4f 4c 55 4d 4e 49 4e  const(SHCOLUMNIN
45d0: 49 54 29 2a 20 4c 50 43 53 48 43 4f 4c 55 4d 4e  IT)* LPCSHCOLUMN
45e0: 49 4e 49 54 3b 0d 0a 0d 0a 09 09 73 74 72 75 63  INIT;......struc
45f0: 74 20 53 48 43 4f 4c 55 4d 4e 44 41 54 41 20 7b  t SHCOLUMNDATA {
4600: 0d 0a 09 09 09 55 4c 4f 4e 47 20 64 77 46 6c 61  .....ULONG dwFla
4610: 67 73 3b 0d 0a 09 09 09 44 57 4f 52 44 20 64 77  gs;.....DWORD dw
4620: 46 69 6c 65 41 74 74 72 69 62 75 74 65 73 3b 0d  FileAttributes;.
4630: 0a 09 09 09 55 4c 4f 4e 47 20 64 77 52 65 73 65  ....ULONG dwRese
4640: 72 76 65 64 3b 0d 0a 09 09 09 57 43 48 41 52 20  rved;.....WCHAR 
4650: 2a 70 77 73 7a 45 78 74 3b 0d 0a 09 09 09 57 43  *pwszExt;.....WC
4660: 48 41 52 5b 4d 41 58 5f 50 41 54 48 5d 20 77 73  HAR[MAX_PATH] ws
4670: 7a 46 69 6c 65 3b 0d 0a 09 09 7d 0d 0a 09 09 61  zFile;....}....a
4680: 6c 69 61 73 20 53 48 43 4f 4c 55 4d 4e 44 41 54  lias SHCOLUMNDAT
4690: 41 2a 20 20 20 20 20 20 20 20 4c 50 53 48 43 4f  A*        LPSHCO
46a0: 4c 55 4d 4e 44 41 54 41 3b 0d 0a 09 09 61 6c 69  LUMNDATA;....ali
46b0: 61 73 20 63 6f 6e 73 74 28 53 48 43 4f 4c 55 4d  as const(SHCOLUM
46c0: 4e 44 41 54 41 29 2a 20 4c 50 43 53 48 43 4f 4c  NDATA)* LPCSHCOL
46d0: 55 4d 4e 44 41 54 41 3b 0d 0a 09 7d 0d 0a 0d 0a  UMNDATA;...}....
46e0: 09 63 6f 6e 73 74 20 4d 41 58 5f 43 4f 4c 55 4d  .const MAX_COLUM
46f0: 4e 5f 4e 41 4d 45 5f 4c 45 4e 20 3d 20 38 30 3b  N_NAME_LEN = 80;
4700: 0d 0a 09 63 6f 6e 73 74 20 4d 41 58 5f 43 4f 4c  ...const MAX_COL
4710: 55 4d 4e 5f 44 45 53 43 5f 4c 45 4e 20 3d 20 31  UMN_DESC_LEN = 1
4720: 32 38 3b 0d 0a 0d 0a 09 61 6c 69 67 6e 28 31 29  28;.....align(1)
4730: 20 73 74 72 75 63 74 20 53 48 43 4f 4c 55 4d 4e   struct SHCOLUMN
4740: 49 4e 46 4f 20 7b 0d 0a 09 09 53 48 43 4f 4c 55  INFO {....SHCOLU
4750: 4d 4e 49 44 20 73 63 69 64 3b 0d 0a 09 09 56 41  MNID scid;....VA
4760: 52 54 59 50 45 20 76 74 3b 0d 0a 09 09 44 57 4f  RTYPE vt;....DWO
4770: 52 44 20 66 6d 74 3b 0d 0a 09 09 55 49 4e 54 20  RD fmt;....UINT 
4780: 63 43 68 61 72 73 3b 0d 0a 09 09 44 57 4f 52 44  cChars;....DWORD
4790: 20 63 73 46 6c 61 67 73 3b 0d 0a 09 09 57 43 48   csFlags;....WCH
47a0: 41 52 5b 4d 41 58 5f 43 4f 4c 55 4d 4e 5f 4e 41  AR[MAX_COLUMN_NA
47b0: 4d 45 5f 4c 45 4e 5d 20 77 73 7a 54 69 74 6c 65  ME_LEN] wszTitle
47c0: 3b 0d 0a 09 09 57 43 48 41 52 5b 4d 41 58 5f 43  ;....WCHAR[MAX_C
47d0: 4f 4c 55 4d 4e 5f 44 45 53 43 5f 4c 45 4e 5d 20  OLUMN_DESC_LEN] 
47e0: 77 73 7a 44 65 73 63 72 69 70 74 69 6f 6e 3b 0d  wszDescription;.
47f0: 0a 09 7d 0d 0a 09 61 6c 69 61 73 20 53 48 43 4f  ..}...alias SHCO
4800: 4c 55 4d 4e 49 4e 46 4f 2a 20 20 20 20 20 20 20  LUMNINFO*       
4810: 20 4c 50 53 48 43 4f 4c 55 4d 4e 49 4e 46 4f 3b   LPSHCOLUMNINFO;
4820: 0d 0a 09 61 6c 69 61 73 20 63 6f 6e 73 74 28 53  ...alias const(S
4830: 48 43 4f 4c 55 4d 4e 49 4e 46 4f 29 2a 20 4c 50  HCOLUMNINFO)* LP
4840: 43 53 48 43 4f 4c 55 4d 4e 49 4e 46 4f 3b 0d 0a  CSHCOLUMNINFO;..
4850: 0d 0a 09 65 6e 75 6d 20 53 48 43 4f 4c 53 54 41  ...enum SHCOLSTA
4860: 54 45 20 7b 0d 0a 09 09 53 48 43 4f 4c 53 54 41  TE {....SHCOLSTA
4870: 54 45 5f 54 59 50 45 5f 53 54 52 20 20 20 20 20  TE_TYPE_STR     
4880: 20 3d 20 30 78 30 30 30 30 30 30 30 31 2c 0d 0a   = 0x00000001,..
4890: 09 09 53 48 43 4f 4c 53 54 41 54 45 5f 54 59 50  ..SHCOLSTATE_TYP
48a0: 45 5f 49 4e 54 20 20 20 20 20 20 3d 20 30 78 30  E_INT      = 0x0
48b0: 30 30 30 30 30 30 32 2c 0d 0a 09 09 53 48 43 4f  0000002,....SHCO
48c0: 4c 53 54 41 54 45 5f 54 59 50 45 5f 44 41 54 45  LSTATE_TYPE_DATE
48d0: 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30 30       = 0x0000000
48e0: 33 2c 0d 0a 09 09 53 48 43 4f 4c 53 54 41 54 45  3,....SHCOLSTATE
48f0: 5f 54 59 50 45 4d 41 53 4b 20 20 20 20 20 20 3d  _TYPEMASK      =
4900: 20 30 78 30 30 30 30 30 30 30 66 2c 0d 0a 09 09   0x0000000f,....
4910: 53 48 43 4f 4c 53 54 41 54 45 5f 4f 4e 42 59 44  SHCOLSTATE_ONBYD
4920: 45 46 41 55 4c 54 20 20 20 3d 20 30 78 30 30 30  EFAULT   = 0x000
4930: 30 30 30 31 30 2c 0d 0a 09 09 53 48 43 4f 4c 53  00010,....SHCOLS
4940: 54 41 54 45 5f 53 4c 4f 57 20 20 20 20 20 20 20  TATE_SLOW       
4950: 20 20 20 3d 20 30 78 30 30 30 30 30 30 32 30 2c     = 0x00000020,
4960: 0d 0a 09 09 53 48 43 4f 4c 53 54 41 54 45 5f 45  ....SHCOLSTATE_E
4970: 58 54 45 4e 44 45 44 20 20 20 20 20 20 3d 20 30  XTENDED      = 0
4980: 78 30 30 30 30 30 30 34 30 2c 0d 0a 09 09 53 48  x00000040,....SH
4990: 43 4f 4c 53 54 41 54 45 5f 53 45 43 4f 4e 44 41  COLSTATE_SECONDA
49a0: 52 59 55 49 20 20 20 3d 20 30 78 30 30 30 30 30  RYUI   = 0x00000
49b0: 30 38 30 2c 0d 0a 09 09 53 48 43 4f 4c 53 54 41  080,....SHCOLSTA
49c0: 54 45 5f 48 49 44 44 45 4e 20 20 20 20 20 20 20  TE_HIDDEN       
49d0: 20 3d 20 30 78 30 30 30 30 30 31 30 30 2c 0d 0a   = 0x00000100,..
49e0: 09 09 53 48 43 4f 4c 53 54 41 54 45 5f 50 52 45  ..SHCOLSTATE_PRE
49f0: 46 45 52 5f 56 41 52 43 4d 50 20 3d 20 30 78 30  FER_VARCMP = 0x0
4a00: 30 30 30 30 32 30 30 0d 0a 09 7d 0d 0a 0d 0a 09  0000200...}.....
4a10: 69 6e 74 65 72 66 61 63 65 20 49 43 6f 6c 75 6d  interface IColum
4a20: 6e 50 72 6f 76 69 64 65 72 20 3a 20 49 55 6e 6b  nProvider : IUnk
4a30: 6e 6f 77 6e 20 7b 0d 0a 09 09 48 52 45 53 55 4c  nown {....HRESUL
4a40: 54 20 49 6e 69 74 69 61 6c 69 7a 65 28 4c 50 43  T Initialize(LPC
4a50: 53 48 43 4f 4c 55 4d 4e 49 4e 49 54 29 3b 0d 0a  SHCOLUMNINIT);..
4a60: 09 09 48 52 45 53 55 4c 54 20 47 65 74 43 6f 6c  ..HRESULT GetCol
4a70: 75 6d 6e 49 6e 66 6f 28 44 57 4f 52 44 2c 20 53  umnInfo(DWORD, S
4a80: 48 43 4f 4c 55 4d 4e 49 4e 46 4f 2a 29 3b 0d 0a  HCOLUMNINFO*);..
4a90: 09 09 48 52 45 53 55 4c 54 20 47 65 74 49 74 65  ..HRESULT GetIte
4aa0: 6d 44 61 74 61 28 4c 50 43 53 48 43 4f 4c 55 4d  mData(LPCSHCOLUM
4ab0: 4e 49 44 2c 20 4c 50 43 53 48 43 4f 4c 55 4d 4e  NID, LPCSHCOLUMN
4ac0: 44 41 54 41 2c 20 56 41 52 49 41 4e 54 2a 29 3b  DATA, VARIANT*);
4ad0: 0d 0a 09 7d 0d 0a 7d 2f 2a 20 5f 57 49 4e 33 32  ...}..}/* _WIN32
4ae0: 5f 49 45 20 3e 3d 20 30 78 35 30 30 20 2a 2f 0d  _IE >= 0x500 */.
4af0: 0a 0d 0a 69 6e 74 65 72 66 61 63 65 20 49 51 75  ...interface IQu
4b00: 65 72 79 49 6e 66 6f 20 3a 20 49 55 6e 6b 6e 6f  eryInfo : IUnkno
4b10: 77 6e 20 7b 0d 0a 09 48 52 45 53 55 4c 54 20 47  wn {...HRESULT G
4b20: 65 74 49 6e 66 6f 54 69 70 28 44 57 4f 52 44 2c  etInfoTip(DWORD,
4b30: 20 57 43 48 41 52 2a 2a 29 3b 0d 0a 09 48 52 45   WCHAR**);...HRE
4b40: 53 55 4c 54 20 47 65 74 49 6e 66 6f 46 6c 61 67  SULT GetInfoFlag
4b50: 73 28 44 57 4f 52 44 2a 29 3b 0d 0a 7d 0d 0a 0d  s(DWORD*);..}...
4b60: 0a 69 6e 74 65 72 66 61 63 65 20 49 53 68 65 6c  .interface IShel
4b70: 6c 45 78 74 49 6e 69 74 20 3a 20 49 55 6e 6b 6e  lExtInit : IUnkn
4b80: 6f 77 6e 20 7b 0d 0a 09 48 52 45 53 55 4c 54 20  own {...HRESULT 
4b90: 49 6e 69 74 69 61 6c 69 7a 65 28 4c 50 43 49 54  Initialize(LPCIT
4ba0: 45 4d 49 44 4c 49 53 54 2c 20 4c 50 44 41 54 41  EMIDLIST, LPDATA
4bb0: 4f 42 4a 45 43 54 2c 20 48 4b 45 59 29 3b 0d 0a  OBJECT, HKEY);..
4bc0: 7d 0d 0a 61 6c 69 61 73 20 49 53 68 65 6c 6c 45  }..alias IShellE
4bd0: 78 74 49 6e 69 74 20 4c 50 53 48 45 4c 4c 45 58  xtInit LPSHELLEX
4be0: 54 49 4e 49 54 3b 0d 0a 0d 0a 69 6e 74 65 72 66  TINIT;....interf
4bf0: 61 63 65 20 49 53 68 65 6c 6c 50 72 6f 70 53 68  ace IShellPropSh
4c00: 65 65 74 45 78 74 20 3a 20 49 55 6e 6b 6e 6f 77  eetExt : IUnknow
4c10: 6e 20 7b 0d 0a 09 48 52 45 53 55 4c 54 20 41 64  n {...HRESULT Ad
4c20: 64 50 61 67 65 73 28 4c 50 46 4e 41 44 44 50 52  dPages(LPFNADDPR
4c30: 4f 50 53 48 45 45 54 50 41 47 45 2c 20 4c 50 41  OPSHEETPAGE, LPA
4c40: 52 41 4d 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20  RAM);...HRESULT 
4c50: 52 65 70 6c 61 63 65 50 61 67 65 28 55 49 4e 54  ReplacePage(UINT
4c60: 2c 20 4c 50 46 4e 41 44 44 50 52 4f 50 53 48 45  , LPFNADDPROPSHE
4c70: 45 54 50 41 47 45 2c 20 4c 50 41 52 41 4d 29 3b  ETPAGE, LPARAM);
4c80: 0d 0a 7d 0d 0a 61 6c 69 61 73 20 49 53 68 65 6c  ..}..alias IShel
4c90: 6c 50 72 6f 70 53 68 65 65 74 45 78 74 20 4c 50  lPropSheetExt LP
4ca0: 53 48 45 4c 4c 50 52 4f 50 53 48 45 45 54 45 58  SHELLPROPSHEETEX
4cb0: 54 3b 0d 0a 0d 0a 69 6e 74 65 72 66 61 63 65 20  T;....interface 
4cc0: 49 45 78 74 72 61 63 74 49 63 6f 6e 41 20 3a 20  IExtractIconA : 
4cd0: 49 55 6e 6b 6e 6f 77 6e 20 7b 0d 0a 09 48 52 45  IUnknown {...HRE
4ce0: 53 55 4c 54 20 47 65 74 49 63 6f 6e 4c 6f 63 61  SULT GetIconLoca
4cf0: 74 69 6f 6e 28 55 49 4e 54 2c 20 4c 50 53 54 52  tion(UINT, LPSTR
4d00: 2c 20 55 49 4e 54 2c 20 69 6e 74 2a 2c 20 50 55  , UINT, int*, PU
4d10: 49 4e 54 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20  INT);...HRESULT 
4d20: 45 78 74 72 61 63 74 28 4c 50 43 53 54 52 2c 20  Extract(LPCSTR, 
4d30: 55 49 4e 54 2c 20 48 49 43 4f 4e 2a 2c 20 48 49  UINT, HICON*, HI
4d40: 43 4f 4e 2a 2c 20 55 49 4e 54 29 3b 0d 0a 7d 3b  CON*, UINT);..};
4d50: 0d 0a 61 6c 69 61 73 20 49 45 78 74 72 61 63 74  ..alias IExtract
4d60: 49 63 6f 6e 41 20 4c 50 45 58 54 52 41 43 54 49  IconA LPEXTRACTI
4d70: 43 4f 4e 41 3b 0d 0a 0d 0a 69 6e 74 65 72 66 61  CONA;....interfa
4d80: 63 65 20 49 45 78 74 72 61 63 74 49 63 6f 6e 57  ce IExtractIconW
4d90: 20 3a 20 49 55 6e 6b 6e 6f 77 6e 20 7b 0d 0a 09   : IUnknown {...
4da0: 48 52 45 53 55 4c 54 20 47 65 74 49 63 6f 6e 4c  HRESULT GetIconL
4db0: 6f 63 61 74 69 6f 6e 28 55 49 4e 54 2c 20 4c 50  ocation(UINT, LP
4dc0: 57 53 54 52 2c 20 55 49 4e 54 2c 20 69 6e 74 2a  WSTR, UINT, int*
4dd0: 2c 20 50 55 49 4e 54 29 3b 0d 0a 09 48 52 45 53  , PUINT);...HRES
4de0: 55 4c 54 20 45 78 74 72 61 63 74 28 4c 50 43 57  ULT Extract(LPCW
4df0: 53 54 52 2c 20 55 49 4e 54 2c 20 48 49 43 4f 4e  STR, UINT, HICON
4e00: 2a 2c 20 48 49 43 4f 4e 2a 2c 20 55 49 4e 54 29  *, HICON*, UINT)
4e10: 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 49 45 78 74  ;..}..alias IExt
4e20: 72 61 63 74 49 63 6f 6e 57 20 4c 50 45 58 54 52  ractIconW LPEXTR
4e30: 41 43 54 49 43 4f 4e 57 3b 0d 0a 0d 0a 76 65 72  ACTICONW;....ver
4e40: 73 69 6f 6e 28 55 6e 69 63 6f 64 65 29 20 7b 0d  sion(Unicode) {.
4e50: 0a 09 61 6c 69 61 73 20 49 45 78 74 72 61 63 74  ..alias IExtract
4e60: 49 63 6f 6e 57 20 49 45 78 74 72 61 63 74 49 63  IconW IExtractIc
4e70: 6f 6e 3b 0d 0a 09 61 6c 69 61 73 20 4c 50 45 58  on;...alias LPEX
4e80: 54 52 41 43 54 49 43 4f 4e 57 20 4c 50 45 58 54  TRACTICONW LPEXT
4e90: 52 41 43 54 49 43 4f 4e 3b 0d 0a 7d 20 65 6c 73  RACTICON;..} els
4ea0: 65 20 7b 0d 0a 09 61 6c 69 61 73 20 49 45 78 74  e {...alias IExt
4eb0: 72 61 63 74 49 63 6f 6e 41 20 49 45 78 74 72 61  ractIconA IExtra
4ec0: 63 74 49 63 6f 6e 3b 0d 0a 09 61 6c 69 61 73 20  ctIcon;...alias 
4ed0: 4c 50 45 58 54 52 41 43 54 49 43 4f 4e 41 20 4c  LPEXTRACTICONA L
4ee0: 50 45 58 54 52 41 43 54 49 43 4f 4e 3b 0d 0a 7d  PEXTRACTICON;..}
4ef0: 0d 0a 0d 0a 69 6e 74 65 72 66 61 63 65 20 49 53  ....interface IS
4f00: 68 65 6c 6c 4c 69 6e 6b 41 20 3a 20 49 55 6e 6b  hellLinkA : IUnk
4f10: 6e 6f 77 6e 20 7b 0d 0a 09 48 52 45 53 55 4c 54  nown {...HRESULT
4f20: 20 47 65 74 50 61 74 68 28 4c 50 53 54 52 2c 20   GetPath(LPSTR, 
4f30: 69 6e 74 2c 20 57 49 4e 33 32 5f 46 49 4e 44 5f  int, WIN32_FIND_
4f40: 44 41 54 41 41 2a 2c 20 44 57 4f 52 44 29 3b 0d  DATAA*, DWORD);.
4f50: 0a 09 48 52 45 53 55 4c 54 20 47 65 74 49 44 4c  ..HRESULT GetIDL
4f60: 69 73 74 28 4c 50 49 54 45 4d 49 44 4c 49 53 54  ist(LPITEMIDLIST
4f70: 2a 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 53 65  *);...HRESULT Se
4f80: 74 49 44 4c 69 73 74 28 4c 50 43 49 54 45 4d 49  tIDList(LPCITEMI
4f90: 44 4c 49 53 54 29 3b 0d 0a 09 48 52 45 53 55 4c  DLIST);...HRESUL
4fa0: 54 20 47 65 74 44 65 73 63 72 69 70 74 69 6f 6e  T GetDescription
4fb0: 28 4c 50 53 54 52 2c 20 69 6e 74 29 3b 0d 0a 09  (LPSTR, int);...
4fc0: 48 52 45 53 55 4c 54 20 53 65 74 44 65 73 63 72  HRESULT SetDescr
4fd0: 69 70 74 69 6f 6e 28 4c 50 43 53 54 52 29 3b 0d  iption(LPCSTR);.
4fe0: 0a 09 48 52 45 53 55 4c 54 20 47 65 74 57 6f 72  ..HRESULT GetWor
4ff0: 6b 69 6e 67 44 69 72 65 63 74 6f 72 79 28 4c 50  kingDirectory(LP
5000: 53 54 52 2c 20 69 6e 74 29 3b 0d 0a 09 48 52 45  STR, int);...HRE
5010: 53 55 4c 54 20 53 65 74 57 6f 72 6b 69 6e 67 44  SULT SetWorkingD
5020: 69 72 65 63 74 6f 72 79 28 4c 50 43 53 54 52 29  irectory(LPCSTR)
5030: 3b 0d 0a 09 48 52 45 53 55 4c 54 20 47 65 74 41  ;...HRESULT GetA
5040: 72 67 75 6d 65 6e 74 73 28 4c 50 53 54 52 2c 20  rguments(LPSTR, 
5050: 69 6e 74 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20  int);...HRESULT 
5060: 53 65 74 41 72 67 75 6d 65 6e 74 73 28 4c 50 43  SetArguments(LPC
5070: 53 54 52 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20  STR);...HRESULT 
5080: 47 65 74 48 6f 74 6b 65 79 28 50 57 4f 52 44 29  GetHotkey(PWORD)
5090: 3b 0d 0a 09 48 52 45 53 55 4c 54 20 53 65 74 48  ;...HRESULT SetH
50a0: 6f 74 6b 65 79 28 57 4f 52 44 29 3b 0d 0a 09 48  otkey(WORD);...H
50b0: 52 45 53 55 4c 54 20 47 65 74 53 68 6f 77 43 6d  RESULT GetShowCm
50c0: 64 28 69 6e 74 2a 29 3b 0d 0a 09 48 52 45 53 55  d(int*);...HRESU
50d0: 4c 54 20 53 65 74 53 68 6f 77 43 6d 64 28 69 6e  LT SetShowCmd(in
50e0: 74 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 47 65  t);...HRESULT Ge
50f0: 74 49 63 6f 6e 4c 6f 63 61 74 69 6f 6e 28 4c 50  tIconLocation(LP
5100: 53 54 52 2c 20 69 6e 74 2c 20 69 6e 74 2a 29 3b  STR, int, int*);
5110: 0d 0a 09 48 52 45 53 55 4c 54 20 53 65 74 49 63  ...HRESULT SetIc
5120: 6f 6e 4c 6f 63 61 74 69 6f 6e 28 4c 50 43 53 54  onLocation(LPCST
5130: 52 2c 20 69 6e 74 29 3b 0d 0a 09 48 52 45 53 55  R, int);...HRESU
5140: 4c 54 20 53 65 74 52 65 6c 61 74 69 76 65 50 61  LT SetRelativePa
5150: 74 68 28 4c 50 43 53 54 52 20 2c 20 44 57 4f 52  th(LPCSTR , DWOR
5160: 44 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 52 65  D);...HRESULT Re
5170: 73 6f 6c 76 65 28 48 57 4e 44 2c 20 44 57 4f 52  solve(HWND, DWOR
5180: 44 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 53 65  D);...HRESULT Se
5190: 74 50 61 74 68 28 4c 50 43 53 54 52 29 3b 0d 0a  tPath(LPCSTR);..
51a0: 7d 0d 0a 0d 0a 69 6e 74 65 72 66 61 63 65 20 49  }....interface I
51b0: 53 68 65 6c 6c 4c 69 6e 6b 57 20 3a 20 49 55 6e  ShellLinkW : IUn
51c0: 6b 6e 6f 77 6e 20 7b 0d 0a 09 48 52 45 53 55 4c  known {...HRESUL
51d0: 54 20 47 65 74 50 61 74 68 28 4c 50 57 53 54 52  T GetPath(LPWSTR
51e0: 2c 20 69 6e 74 2c 20 57 49 4e 33 32 5f 46 49 4e  , int, WIN32_FIN
51f0: 44 5f 44 41 54 41 57 2a 2c 20 44 57 4f 52 44 29  D_DATAW*, DWORD)
5200: 3b 0d 0a 09 48 52 45 53 55 4c 54 20 47 65 74 49  ;...HRESULT GetI
5210: 44 4c 69 73 74 28 4c 50 49 54 45 4d 49 44 4c 49  DList(LPITEMIDLI
5220: 53 54 2a 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20  ST*);...HRESULT 
5230: 53 65 74 49 44 4c 69 73 74 28 4c 50 43 49 54 45  SetIDList(LPCITE
5240: 4d 49 44 4c 49 53 54 29 3b 0d 0a 09 48 52 45 53  MIDLIST);...HRES
5250: 55 4c 54 20 47 65 74 44 65 73 63 72 69 70 74 69  ULT GetDescripti
5260: 6f 6e 28 4c 50 57 53 54 52 2c 20 69 6e 74 29 3b  on(LPWSTR, int);
5270: 0d 0a 09 48 52 45 53 55 4c 54 20 53 65 74 44 65  ...HRESULT SetDe
5280: 73 63 72 69 70 74 69 6f 6e 28 4c 50 43 57 53 54  scription(LPCWST
5290: 52 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 47 65  R);...HRESULT Ge
52a0: 74 57 6f 72 6b 69 6e 67 44 69 72 65 63 74 6f 72  tWorkingDirector
52b0: 79 28 4c 50 57 53 54 52 2c 20 69 6e 74 29 3b 0d  y(LPWSTR, int);.
52c0: 0a 09 48 52 45 53 55 4c 54 20 53 65 74 57 6f 72  ..HRESULT SetWor
52d0: 6b 69 6e 67 44 69 72 65 63 74 6f 72 79 28 4c 50  kingDirectory(LP
52e0: 43 57 53 54 52 29 3b 0d 0a 09 48 52 45 53 55 4c  CWSTR);...HRESUL
52f0: 54 20 47 65 74 41 72 67 75 6d 65 6e 74 73 28 4c  T GetArguments(L
5300: 50 57 53 54 52 2c 20 69 6e 74 29 3b 0d 0a 09 48  PWSTR, int);...H
5310: 52 45 53 55 4c 54 20 53 65 74 41 72 67 75 6d 65  RESULT SetArgume
5320: 6e 74 73 28 4c 50 43 57 53 54 52 29 3b 0d 0a 09  nts(LPCWSTR);...
5330: 48 52 45 53 55 4c 54 20 47 65 74 48 6f 74 6b 65  HRESULT GetHotke
5340: 79 28 50 57 4f 52 44 29 3b 0d 0a 09 48 52 45 53  y(PWORD);...HRES
5350: 55 4c 54 20 53 65 74 48 6f 74 6b 65 79 28 57 4f  ULT SetHotkey(WO
5360: 52 44 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 47  RD);...HRESULT G
5370: 65 74 53 68 6f 77 43 6d 64 28 69 6e 74 2a 29 3b  etShowCmd(int*);
5380: 0d 0a 09 48 52 45 53 55 4c 54 20 53 65 74 53 68  ...HRESULT SetSh
5390: 6f 77 43 6d 64 28 69 6e 74 29 3b 0d 0a 09 48 52  owCmd(int);...HR
53a0: 45 53 55 4c 54 20 47 65 74 49 63 6f 6e 4c 6f 63  ESULT GetIconLoc
53b0: 61 74 69 6f 6e 28 4c 50 57 53 54 52 2c 20 69 6e  ation(LPWSTR, in
53c0: 74 2c 20 69 6e 74 2a 29 3b 0d 0a 09 48 52 45 53  t, int*);...HRES
53d0: 55 4c 54 20 53 65 74 49 63 6f 6e 4c 6f 63 61 74  ULT SetIconLocat
53e0: 69 6f 6e 28 4c 50 43 57 53 54 52 2c 20 69 6e 74  ion(LPCWSTR, int
53f0: 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 53 65 74  );...HRESULT Set
5400: 52 65 6c 61 74 69 76 65 50 61 74 68 28 4c 50 43  RelativePath(LPC
5410: 57 53 54 52 20 2c 20 44 57 4f 52 44 29 3b 0d 0a  WSTR , DWORD);..
5420: 09 48 52 45 53 55 4c 54 20 52 65 73 6f 6c 76 65  .HRESULT Resolve
5430: 28 48 57 4e 44 2c 20 44 57 4f 52 44 29 3b 0d 0a  (HWND, DWORD);..
5440: 09 48 52 45 53 55 4c 54 20 53 65 74 50 61 74 68  .HRESULT SetPath
5450: 28 4c 50 43 57 53 54 52 29 3b 0d 0a 7d 0d 0a 0d  (LPCWSTR);..}...
5460: 0a 0d 0a 69 6e 74 65 72 66 61 63 65 20 49 53 68  ...interface ISh
5470: 65 6c 6c 46 6f 6c 64 65 72 20 3a 20 49 55 6e 6b  ellFolder : IUnk
5480: 6e 6f 77 6e 20 7b 0d 0a 09 48 52 45 53 55 4c 54  nown {...HRESULT
5490: 20 50 61 72 73 65 44 69 73 70 6c 61 79 4e 61 6d   ParseDisplayNam
54a0: 65 28 48 57 4e 44 2c 20 4c 50 42 43 2c 20 4c 50  e(HWND, LPBC, LP
54b0: 4f 4c 45 53 54 52 2c 20 50 55 4c 4f 4e 47 2c 20  OLESTR, PULONG, 
54c0: 4c 50 49 54 45 4d 49 44 4c 49 53 54 2a 2c 20 50  LPITEMIDLIST*, P
54d0: 55 4c 4f 4e 47 29 3b 0d 0a 09 48 52 45 53 55 4c  ULONG);...HRESUL
54e0: 54 20 45 6e 75 6d 4f 62 6a 65 63 74 73 28 48 57  T EnumObjects(HW
54f0: 4e 44 2c 20 44 57 4f 52 44 2c 20 4c 50 45 4e 55  ND, DWORD, LPENU
5500: 4d 49 44 4c 49 53 54 2a 29 3b 0d 0a 09 48 52 45  MIDLIST*);...HRE
5510: 53 55 4c 54 20 42 69 6e 64 54 6f 4f 62 6a 65 63  SULT BindToObjec
5520: 74 28 4c 50 43 49 54 45 4d 49 44 4c 49 53 54 2c  t(LPCITEMIDLIST,
5530: 20 4c 50 42 43 2c 20 52 45 46 49 49 44 2c 20 50   LPBC, REFIID, P
5540: 56 4f 49 44 2a 29 3b 0d 0a 09 48 52 45 53 55 4c  VOID*);...HRESUL
5550: 54 20 42 69 6e 64 54 6f 53 74 6f 72 61 67 65 28  T BindToStorage(
5560: 4c 50 43 49 54 45 4d 49 44 4c 49 53 54 2c 20 4c  LPCITEMIDLIST, L
5570: 50 42 43 2c 20 52 45 46 49 49 44 2c 20 50 56 4f  PBC, REFIID, PVO
5580: 49 44 2a 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20  ID*);...HRESULT 
5590: 43 6f 6d 70 61 72 65 49 44 73 28 4c 50 41 52 41  CompareIDs(LPARA
55a0: 4d 2c 20 4c 50 43 49 54 45 4d 49 44 4c 49 53 54  M, LPCITEMIDLIST
55b0: 2c 20 4c 50 43 49 54 45 4d 49 44 4c 49 53 54 29  , LPCITEMIDLIST)
55c0: 3b 0d 0a 09 48 52 45 53 55 4c 54 20 43 72 65 61  ;...HRESULT Crea
55d0: 74 65 56 69 65 77 4f 62 6a 65 63 74 28 48 57 4e  teViewObject(HWN
55e0: 44 2c 20 52 45 46 49 49 44 2c 20 50 56 4f 49 44  D, REFIID, PVOID
55f0: 2a 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 47 65  *);...HRESULT Ge
5600: 74 41 74 74 72 69 62 75 74 65 73 4f 66 28 55 49  tAttributesOf(UI
5610: 4e 54 2c 20 4c 50 43 49 54 45 4d 49 44 4c 49 53  NT, LPCITEMIDLIS
5620: 54 2a 2c 20 50 55 4c 4f 4e 47 29 3b 0d 0a 09 48  T*, PULONG);...H
5630: 52 45 53 55 4c 54 20 47 65 74 55 49 4f 62 6a 65  RESULT GetUIObje
5640: 63 74 4f 66 28 48 57 4e 44 2c 20 55 49 4e 54 2c  ctOf(HWND, UINT,
5650: 20 4c 50 43 49 54 45 4d 49 44 4c 49 53 54 2a 2c   LPCITEMIDLIST*,
5660: 20 52 45 46 49 49 44 2c 20 50 55 49 4e 54 2c 20   REFIID, PUINT, 
5670: 50 56 4f 49 44 2a 29 3b 0d 0a 09 48 52 45 53 55  PVOID*);...HRESU
5680: 4c 54 20 47 65 74 44 69 73 70 6c 61 79 4e 61 6d  LT GetDisplayNam
5690: 65 4f 66 28 4c 50 43 49 54 45 4d 49 44 4c 49 53  eOf(LPCITEMIDLIS
56a0: 54 2c 20 44 57 4f 52 44 2c 20 4c 50 53 54 52 52  T, DWORD, LPSTRR
56b0: 45 54 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 53  ET);...HRESULT S
56c0: 65 74 4e 61 6d 65 4f 66 28 48 57 4e 44 2c 20 4c  etNameOf(HWND, L
56d0: 50 43 49 54 45 4d 49 44 4c 49 53 54 2c 20 4c 50  PCITEMIDLIST, LP
56e0: 43 4f 4c 45 53 54 52 2c 20 44 57 4f 52 44 2c 20  COLESTR, DWORD, 
56f0: 4c 50 49 54 45 4d 49 44 4c 49 53 54 2a 29 3b 0d  LPITEMIDLIST*);.
5700: 0a 7d 0d 0a 61 6c 69 61 73 20 49 53 68 65 6c 6c  .}..alias IShell
5710: 46 6f 6c 64 65 72 20 4c 50 53 48 45 4c 4c 46 4f  Folder LPSHELLFO
5720: 4c 44 45 52 3b 0d 0a 0d 0a 73 74 61 74 69 63 20  LDER;....static 
5730: 69 66 20 28 5f 57 49 4e 33 32 5f 49 45 20 3e 3d  if (_WIN32_IE >=
5740: 20 30 78 35 30 30 29 20 7b 0d 0a 0d 0a 69 6e 74   0x500) {....int
5750: 65 72 66 61 63 65 20 49 45 6e 75 6d 45 78 74 72  erface IEnumExtr
5760: 61 53 65 61 72 63 68 3a 20 49 55 6e 6b 6e 6f 77  aSearch: IUnknow
5770: 6e 20 7b 0d 0a 09 48 52 45 53 55 4c 54 20 4e 65  n {...HRESULT Ne
5780: 78 74 28 55 4c 4f 4e 47 2c 20 4c 50 45 58 54 52  xt(ULONG, LPEXTR
5790: 41 53 45 41 52 43 48 2a 2c 20 55 4c 4f 4e 47 2a  ASEARCH*, ULONG*
57a0: 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 53 6b 69  );...HRESULT Ski
57b0: 70 28 55 4c 4f 4e 47 29 3b 0d 0a 09 48 52 45 53  p(ULONG);...HRES
57c0: 55 4c 54 20 52 65 73 65 74 28 29 3b 0d 0a 09 48  ULT Reset();...H
57d0: 52 45 53 55 4c 54 20 43 6c 6f 6e 65 28 49 45 6e  RESULT Clone(IEn
57e0: 75 6d 45 78 74 72 61 53 65 61 72 63 68 2a 29 3b  umExtraSearch*);
57f0: 0d 0a 7d 0d 0a 61 6c 69 61 73 20 49 45 6e 75 6d  ..}..alias IEnum
5800: 45 78 74 72 61 53 65 61 72 63 68 20 4c 50 45 4e  ExtraSearch LPEN
5810: 55 4d 45 58 54 52 41 53 45 41 52 43 48 3b 0d 0a  UMEXTRASEARCH;..
5820: 0d 0a 69 6e 74 65 72 66 61 63 65 20 49 53 68 65  ..interface IShe
5830: 6c 6c 46 6f 6c 64 65 72 32 20 3a 20 49 53 68 65  llFolder2 : IShe
5840: 6c 6c 46 6f 6c 64 65 72 20 7b 0d 0a 09 48 52 45  llFolder {...HRE
5850: 53 55 4c 54 20 50 61 72 73 65 44 69 73 70 6c 61  SULT ParseDispla
5860: 79 4e 61 6d 65 28 48 57 4e 44 2c 20 4c 50 42 43  yName(HWND, LPBC
5870: 2c 20 4c 50 4f 4c 45 53 54 52 2c 20 50 55 4c 4f  , LPOLESTR, PULO
5880: 4e 47 2c 20 4c 50 49 54 45 4d 49 44 4c 49 53 54  NG, LPITEMIDLIST
5890: 2a 2c 20 50 55 4c 4f 4e 47 29 3b 0d 0a 09 48 52  *, PULONG);...HR
58a0: 45 53 55 4c 54 20 45 6e 75 6d 4f 62 6a 65 63 74  ESULT EnumObject
58b0: 73 28 48 57 4e 44 2c 20 44 57 4f 52 44 2c 20 4c  s(HWND, DWORD, L
58c0: 50 45 4e 55 4d 49 44 4c 49 53 54 2a 29 3b 0d 0a  PENUMIDLIST*);..
58d0: 09 48 52 45 53 55 4c 54 20 42 69 6e 64 54 6f 4f  .HRESULT BindToO
58e0: 62 6a 65 63 74 28 4c 50 43 49 54 45 4d 49 44 4c  bject(LPCITEMIDL
58f0: 49 53 54 2c 20 4c 50 42 43 2c 20 52 45 46 49 49  IST, LPBC, REFII
5900: 44 2c 20 50 56 4f 49 44 2a 29 3b 0d 0a 09 48 52  D, PVOID*);...HR
5910: 45 53 55 4c 54 20 42 69 6e 64 54 6f 53 74 6f 72  ESULT BindToStor
5920: 61 67 65 28 4c 50 43 49 54 45 4d 49 44 4c 49 53  age(LPCITEMIDLIS
5930: 54 2c 20 4c 50 42 43 2c 20 52 45 46 49 49 44 2c  T, LPBC, REFIID,
5940: 20 50 56 4f 49 44 2a 29 3b 0d 0a 09 48 52 45 53   PVOID*);...HRES
5950: 55 4c 54 20 43 6f 6d 70 61 72 65 49 44 73 28 4c  ULT CompareIDs(L
5960: 50 41 52 41 4d 2c 20 4c 50 43 49 54 45 4d 49 44  PARAM, LPCITEMID
5970: 4c 49 53 54 2c 20 4c 50 43 49 54 45 4d 49 44 4c  LIST, LPCITEMIDL
5980: 49 53 54 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20  IST);...HRESULT 
5990: 43 72 65 61 74 65 56 69 65 77 4f 62 6a 65 63 74  CreateViewObject
59a0: 28 48 57 4e 44 2c 20 52 45 46 49 49 44 2c 20 50  (HWND, REFIID, P
59b0: 56 4f 49 44 2a 29 3b 0d 0a 09 48 52 45 53 55 4c  VOID*);...HRESUL
59c0: 54 20 47 65 74 41 74 74 72 69 62 75 74 65 73 4f  T GetAttributesO
59d0: 66 28 55 49 4e 54 2c 20 4c 50 43 49 54 45 4d 49  f(UINT, LPCITEMI
59e0: 44 4c 49 53 54 2a 2c 20 50 55 4c 4f 4e 47 29 3b  DLIST*, PULONG);
59f0: 0d 0a 09 48 52 45 53 55 4c 54 20 47 65 74 55 49  ...HRESULT GetUI
5a00: 4f 62 6a 65 63 74 4f 66 28 48 57 4e 44 2c 20 55  ObjectOf(HWND, U
5a10: 49 4e 54 2c 20 4c 50 43 49 54 45 4d 49 44 4c 49  INT, LPCITEMIDLI
5a20: 53 54 2a 2c 20 52 45 46 49 49 44 2c 20 50 55 49  ST*, REFIID, PUI
5a30: 4e 54 2c 20 50 56 4f 49 44 2a 29 3b 0d 0a 09 48  NT, PVOID*);...H
5a40: 52 45 53 55 4c 54 20 47 65 74 44 69 73 70 6c 61  RESULT GetDispla
5a50: 79 4e 61 6d 65 4f 66 28 4c 50 43 49 54 45 4d 49  yNameOf(LPCITEMI
5a60: 44 4c 49 53 54 2c 20 44 57 4f 52 44 2c 20 4c 50  DLIST, DWORD, LP
5a70: 53 54 52 52 45 54 29 3b 0d 0a 09 48 52 45 53 55  STRRET);...HRESU
5a80: 4c 54 20 53 65 74 4e 61 6d 65 4f 66 28 48 57 4e  LT SetNameOf(HWN
5a90: 44 2c 20 4c 50 43 49 54 45 4d 49 44 4c 49 53 54  D, LPCITEMIDLIST
5aa0: 2c 20 4c 50 43 4f 4c 45 53 54 52 2c 20 44 57 4f  , LPCOLESTR, DWO
5ab0: 52 44 2c 20 4c 50 49 54 45 4d 49 44 4c 49 53 54  RD, LPITEMIDLIST
5ac0: 2a 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 47 65  *);...HRESULT Ge
5ad0: 74 44 65 66 61 75 6c 74 53 65 61 72 63 68 47 55  tDefaultSearchGU
5ae0: 49 44 28 47 55 49 44 2a 29 3b 0d 0a 09 48 52 45  ID(GUID*);...HRE
5af0: 53 55 4c 54 20 45 6e 75 6d 53 65 61 72 63 68 65  SULT EnumSearche
5b00: 73 28 49 45 6e 75 6d 45 78 74 72 61 53 65 61 72  s(IEnumExtraSear
5b10: 63 68 2a 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20  ch*);...HRESULT 
5b20: 47 65 74 44 65 66 61 75 6c 74 43 6f 6c 75 6d 6e  GetDefaultColumn
5b30: 28 44 57 4f 52 44 2c 20 55 4c 4f 4e 47 2a 2c 20  (DWORD, ULONG*, 
5b40: 55 4c 4f 4e 47 2a 29 3b 0d 0a 09 48 52 45 53 55  ULONG*);...HRESU
5b50: 4c 54 20 47 65 74 44 65 66 61 75 6c 74 43 6f 6c  LT GetDefaultCol
5b60: 75 6d 6e 53 74 61 74 65 28 55 49 4e 54 2c 20 53  umnState(UINT, S
5b70: 48 43 4f 4c 53 54 41 54 45 46 2a 29 3b 0d 0a 09  HCOLSTATEF*);...
5b80: 48 52 45 53 55 4c 54 20 47 65 74 44 65 74 61 69  HRESULT GetDetai
5b90: 6c 73 45 78 28 4c 50 43 49 54 45 4d 49 44 4c 49  lsEx(LPCITEMIDLI
5ba0: 53 54 2c 20 63 6f 6e 73 74 28 53 48 43 4f 4c 55  ST, const(SHCOLU
5bb0: 4d 4e 49 44 29 2a 2c 20 56 41 52 49 41 4e 54 2a  MNID)*, VARIANT*
5bc0: 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 47 65 74  );...HRESULT Get
5bd0: 44 65 74 61 69 6c 73 4f 66 28 4c 50 43 49 54 45  DetailsOf(LPCITE
5be0: 4d 49 44 4c 49 53 54 2c 20 55 49 4e 54 2c 20 53  MIDLIST, UINT, S
5bf0: 48 45 4c 4c 44 45 54 41 49 4c 53 2a 29 3b 0d 0a  HELLDETAILS*);..
5c00: 09 48 52 45 53 55 4c 54 20 4d 61 70 43 6f 6c 75  .HRESULT MapColu
5c10: 6d 6e 54 6f 53 43 49 44 28 55 49 4e 54 2c 20 53  mnToSCID(UINT, S
5c20: 48 43 4f 4c 55 4d 4e 49 44 2a 29 3b 0d 0a 7d 0d  HCOLUMNID*);..}.
5c30: 0a 61 6c 69 61 73 20 49 53 68 65 6c 6c 46 6f 6c  .alias IShellFol
5c40: 64 65 72 32 20 4c 50 53 48 45 4c 4c 46 4f 4c 44  der2 LPSHELLFOLD
5c50: 45 52 32 3b 0d 0a 0d 0a 7d 20 2f 2a 20 5f 57 49  ER2;....} /* _WI
5c60: 4e 33 32 5f 49 45 20 3e 3d 20 30 78 35 30 30 20  N32_IE >= 0x500 
5c70: 2a 2f 0d 0a 0d 0a 69 6e 74 65 72 66 61 63 65 20  */....interface 
5c80: 49 43 6f 70 79 48 6f 6f 6b 20 3a 20 49 55 6e 6b  ICopyHook : IUnk
5c90: 6e 6f 77 6e 20 7b 0d 0a 09 55 49 4e 54 20 43 6f  nown {...UINT Co
5ca0: 70 79 43 61 6c 6c 62 61 63 6b 28 48 57 4e 44 2c  pyCallback(HWND,
5cb0: 20 55 49 4e 54 2c 20 55 49 4e 54 2c 20 4c 50 43   UINT, UINT, LPC
5cc0: 53 54 52 2c 20 44 57 4f 52 44 2c 20 4c 50 43 53  STR, DWORD, LPCS
5cd0: 54 52 2c 20 44 57 4f 52 44 29 3b 0d 0a 7d 0d 0a  TR, DWORD);..}..
5ce0: 61 6c 69 61 73 20 49 43 6f 70 79 48 6f 6f 6b 20  alias ICopyHook 
5cf0: 4c 50 43 4f 50 59 48 4f 4f 4b 3b 0d 0a 0d 0a 69  LPCOPYHOOK;....i
5d00: 6e 74 65 72 66 61 63 65 20 49 46 69 6c 65 56 69  nterface IFileVi
5d10: 65 77 65 72 53 69 74 65 20 3a 20 49 55 6e 6b 6e  ewerSite : IUnkn
5d20: 6f 77 6e 20 7b 0d 0a 09 48 52 45 53 55 4c 54 20  own {...HRESULT 
5d30: 53 65 74 50 69 6e 6e 65 64 57 69 6e 64 6f 77 28  SetPinnedWindow(
5d40: 48 57 4e 44 29 3b 0d 0a 09 48 52 45 53 55 4c 54  HWND);...HRESULT
5d50: 20 47 65 74 50 69 6e 6e 65 64 57 69 6e 64 6f 77   GetPinnedWindow
5d60: 28 48 57 4e 44 2a 29 3b 0d 0a 7d 0d 0a 61 6c 69  (HWND*);..}..ali
5d70: 61 73 20 49 46 69 6c 65 56 69 65 77 65 72 53 69  as IFileViewerSi
5d80: 74 65 20 4c 50 46 49 4c 45 56 49 45 57 45 52 53  te LPFILEVIEWERS
5d90: 49 54 45 3b 0d 0a 0d 0a 69 6e 74 65 72 66 61 63  ITE;....interfac
5da0: 65 20 49 46 69 6c 65 56 69 65 77 65 72 20 3a 20  e IFileViewer : 
5db0: 49 55 6e 6b 6e 6f 77 6e 20 7b 0d 0a 09 48 52 45  IUnknown {...HRE
5dc0: 53 55 4c 54 20 53 68 6f 77 49 6e 69 74 69 61 6c  SULT ShowInitial
5dd0: 69 7a 65 28 4c 50 46 49 4c 45 56 49 45 57 45 52  ize(LPFILEVIEWER
5de0: 53 49 54 45 29 3b 0d 0a 09 48 52 45 53 55 4c 54  SITE);...HRESULT
5df0: 20 53 68 6f 77 28 4c 50 46 56 53 48 4f 57 49 4e   Show(LPFVSHOWIN
5e00: 46 4f 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 50  FO);...HRESULT P
5e10: 72 69 6e 74 54 6f 28 4c 50 53 54 52 2c 20 42 4f  rintTo(LPSTR, BO
5e20: 4f 4c 29 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 49  OL);..}..alias I
5e30: 46 69 6c 65 56 69 65 77 65 72 20 4c 50 46 49 4c  FileViewer LPFIL
5e40: 45 56 49 45 57 45 52 3b 0d 0a 0d 0a 69 6e 74 65  EVIEWER;....inte
5e50: 72 66 61 63 65 20 49 46 69 6c 65 53 79 73 74 65  rface IFileSyste
5e60: 6d 42 69 6e 64 44 61 74 61 20 3a 20 49 55 6e 6b  mBindData : IUnk
5e70: 6e 6f 77 6e 20 7b 0d 0a 09 48 52 45 53 55 4c 54  nown {...HRESULT
5e80: 20 53 65 74 46 69 6e 64 44 61 74 61 28 63 6f 6e   SetFindData(con
5e90: 73 74 28 57 49 4e 33 32 5f 46 49 4e 44 5f 44 41  st(WIN32_FIND_DA
5ea0: 54 41 57 29 2a 29 3b 0d 0a 09 48 52 45 53 55 4c  TAW)*);...HRESUL
5eb0: 54 20 47 65 74 46 69 6e 64 44 61 74 61 28 57 49  T GetFindData(WI
5ec0: 4e 33 32 5f 46 49 4e 44 5f 44 41 54 41 57 2a 29  N32_FIND_DATAW*)
5ed0: 3b 0d 0a 7d 0d 0a 0d 0a 69 6e 74 65 72 66 61 63  ;..}....interfac
5ee0: 65 20 49 50 65 72 73 69 73 74 46 6f 6c 64 65 72  e IPersistFolder
5ef0: 20 3a 20 49 50 65 72 73 69 73 74 20 7b 0d 0a 09   : IPersist {...
5f00: 48 52 45 53 55 4c 54 20 47 65 74 43 6c 61 73 73  HRESULT GetClass
5f10: 49 44 28 43 4c 53 49 44 2a 29 3b 0d 0a 09 48 52  ID(CLSID*);...HR
5f20: 45 53 55 4c 54 20 49 6e 69 74 69 61 6c 69 7a 65  ESULT Initialize
5f30: 28 4c 50 43 49 54 45 4d 49 44 4c 49 53 54 29 3b  (LPCITEMIDLIST);
5f40: 0d 0a 7d 0d 0a 61 6c 69 61 73 20 49 50 65 72 73  ..}..alias IPers
5f50: 69 73 74 46 6f 6c 64 65 72 20 4c 50 50 45 52 53  istFolder LPPERS
5f60: 49 53 54 46 4f 4c 44 45 52 3b 0d 0a 0d 0a 73 74  ISTFOLDER;....st
5f70: 61 74 69 63 20 69 66 20 28 5f 57 49 4e 33 32 5f  atic if (_WIN32_
5f80: 49 45 20 3e 3d 20 30 78 34 30 30 20 7c 7c 20 5f  IE >= 0x400 || _
5f90: 57 49 4e 33 32 5f 57 49 4e 4e 54 20 3e 3d 20 30  WIN32_WINNT >= 0
5fa0: 78 35 30 30 29 20 7b 0d 0a 0d 0a 69 6e 74 65 72  x500) {....inter
5fb0: 66 61 63 65 20 49 50 65 72 73 69 73 74 46 6f 6c  face IPersistFol
5fc0: 64 65 72 32 20 3a 20 49 50 65 72 73 69 73 74 46  der2 : IPersistF
5fd0: 6f 6c 64 65 72 20 7b 0d 0a 09 48 52 45 53 55 4c  older {...HRESUL
5fe0: 54 20 47 65 74 43 6c 61 73 73 49 44 28 43 4c 53  T GetClassID(CLS
5ff0: 49 44 2a 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20  ID*);...HRESULT 
6000: 49 6e 69 74 69 61 6c 69 7a 65 28 4c 50 43 49 54  Initialize(LPCIT
6010: 45 4d 49 44 4c 49 53 54 29 3b 0d 0a 09 48 52 45  EMIDLIST);...HRE
6020: 53 55 4c 54 20 47 65 74 43 75 72 46 6f 6c 64 65  SULT GetCurFolde
6030: 72 28 4c 50 49 54 45 4d 49 44 4c 49 53 54 2a 29  r(LPITEMIDLIST*)
6040: 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 49 50 65 72  ;..}..alias IPer
6050: 73 69 73 74 46 6f 6c 64 65 72 32 20 4c 50 50 45  sistFolder2 LPPE
6060: 52 53 49 53 54 46 4f 4c 44 45 52 32 3b 0d 0a 0d  RSISTFOLDER2;...
6070: 0a 7d 2f 2a 20 5f 57 49 4e 33 32 5f 49 45 20 3e  .}/* _WIN32_IE >
6080: 3d 20 30 78 34 30 30 20 7c 7c 20 5f 57 49 4e 33  = 0x400 || _WIN3
6090: 32 5f 57 49 4e 4e 54 20 3e 3d 20 30 78 35 30 30  2_WINNT >= 0x500
60a0: 20 2a 2f 0d 0a 0d 0a 73 74 61 74 69 63 20 69 66   */....static if
60b0: 20 28 5f 57 49 4e 33 32 5f 49 45 20 3e 3d 20 30   (_WIN32_IE >= 0
60c0: 78 35 30 30 29 20 7b 0d 0a 0d 0a 69 6e 74 65 72  x500) {....inter
60d0: 66 61 63 65 20 49 50 65 72 73 69 73 74 46 6f 6c  face IPersistFol
60e0: 64 65 72 33 20 3a 20 49 50 65 72 73 69 73 74 46  der3 : IPersistF
60f0: 6f 6c 64 65 72 32 20 7b 0d 0a 09 48 52 45 53 55  older2 {...HRESU
6100: 4c 54 20 47 65 74 43 6c 61 73 73 49 44 28 43 4c  LT GetClassID(CL
6110: 53 49 44 2a 29 3b 0d 0a 09 48 52 45 53 55 4c 54  SID*);...HRESULT
6120: 20 49 6e 69 74 69 61 6c 69 7a 65 28 4c 50 43 49   Initialize(LPCI
6130: 54 45 4d 49 44 4c 49 53 54 29 3b 0d 0a 09 48 52  TEMIDLIST);...HR
6140: 45 53 55 4c 54 20 47 65 74 43 75 72 46 6f 6c 64  ESULT GetCurFold
6150: 65 72 28 4c 50 49 54 45 4d 49 44 4c 49 53 54 2a  er(LPITEMIDLIST*
6160: 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 49 6e 69  );...HRESULT Ini
6170: 74 69 61 6c 69 7a 65 45 78 28 49 42 69 6e 64 43  tializeEx(IBindC
6180: 74 78 2c 20 4c 50 43 49 54 45 4d 49 44 4c 49 53  tx, LPCITEMIDLIS
6190: 54 2c 20 63 6f 6e 73 74 28 50 45 52 53 49 53 54  T, const(PERSIST
61a0: 5f 46 4f 4c 44 45 52 5f 54 41 52 47 45 54 5f 49  _FOLDER_TARGET_I
61b0: 4e 46 4f 29 2a 29 3b 0d 0a 09 48 52 45 53 55 4c  NFO)*);...HRESUL
61c0: 54 20 47 65 74 46 6f 6c 64 65 72 54 61 72 67 65  T GetFolderTarge
61d0: 74 49 6e 66 6f 28 50 45 52 53 49 53 54 5f 46 4f  tInfo(PERSIST_FO
61e0: 4c 44 45 52 5f 54 41 52 47 45 54 5f 49 4e 46 4f  LDER_TARGET_INFO
61f0: 2a 29 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 49 50  *);..}..alias IP
6200: 65 72 73 69 73 74 46 6f 6c 64 65 72 33 20 4c 50  ersistFolder3 LP
6210: 50 45 52 53 49 53 54 46 4f 4c 44 45 52 33 3b 0d  PERSISTFOLDER3;.
6220: 0a 0d 0a 7d 20 2f 2a 20 5f 57 49 4e 33 32 5f 49  ...} /* _WIN32_I
6230: 45 20 3e 3d 20 30 78 35 30 30 20 2a 2f 0d 0a 0d  E >= 0x500 */...
6240: 0a 61 6c 69 61 73 20 49 53 68 65 6c 6c 42 72 6f  .alias IShellBro
6250: 77 73 65 72 20 4c 50 53 48 45 4c 4c 42 52 4f 57  wser LPSHELLBROW
6260: 53 45 52 3b 0d 0a 61 6c 69 61 73 20 49 53 68 65  SER;..alias IShe
6270: 6c 6c 56 69 65 77 20 4c 50 53 48 45 4c 4c 56 49  llView LPSHELLVI
6280: 45 57 3b 0d 0a 0d 0a 69 6e 74 65 72 66 61 63 65  EW;....interface
6290: 20 49 53 68 65 6c 6c 42 72 6f 77 73 65 72 20 3a   IShellBrowser :
62a0: 20 49 4f 6c 65 57 69 6e 64 6f 77 20 7b 0d 0a 09   IOleWindow {...
62b0: 48 52 45 53 55 4c 54 20 47 65 74 57 69 6e 64 6f  HRESULT GetWindo
62c0: 77 28 48 57 4e 44 2a 29 3b 0d 0a 09 48 52 45 53  w(HWND*);...HRES
62d0: 55 4c 54 20 43 6f 6e 74 65 78 74 53 65 6e 73 69  ULT ContextSensi
62e0: 74 69 76 65 48 65 6c 70 28 42 4f 4f 4c 29 3b 0d  tiveHelp(BOOL);.
62f0: 0a 09 48 52 45 53 55 4c 54 20 49 6e 73 65 72 74  ..HRESULT Insert
6300: 4d 65 6e 75 73 53 42 28 48 4d 45 4e 55 2c 20 4c  MenusSB(HMENU, L
6310: 50 4f 4c 45 4d 45 4e 55 47 52 4f 55 50 57 49 44  POLEMENUGROUPWID
6320: 54 48 53 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20  THS);...HRESULT 
6330: 53 65 74 4d 65 6e 75 53 42 28 48 4d 45 4e 55 2c  SetMenuSB(HMENU,
6340: 20 48 4f 4c 45 4d 45 4e 55 2c 20 48 57 4e 44 29   HOLEMENU, HWND)
6350: 3b 0d 0a 09 48 52 45 53 55 4c 54 20 52 65 6d 6f  ;...HRESULT Remo
6360: 76 65 4d 65 6e 75 73 53 42 28 48 4d 45 4e 55 29  veMenusSB(HMENU)
6370: 3b 0d 0a 09 48 52 45 53 55 4c 54 20 53 65 74 53  ;...HRESULT SetS
6380: 74 61 74 75 73 54 65 78 74 53 42 28 4c 50 43 4f  tatusTextSB(LPCO
6390: 4c 45 53 54 52 29 3b 0d 0a 09 48 52 45 53 55 4c  LESTR);...HRESUL
63a0: 54 20 45 6e 61 62 6c 65 4d 6f 64 65 6c 65 73 73  T EnableModeless
63b0: 53 42 28 42 4f 4f 4c 29 3b 0d 0a 09 48 52 45 53  SB(BOOL);...HRES
63c0: 55 4c 54 20 54 72 61 6e 73 6c 61 74 65 41 63 63  ULT TranslateAcc
63d0: 65 6c 65 72 61 74 6f 72 53 42 28 4c 50 4d 53 47  eleratorSB(LPMSG
63e0: 2c 20 57 4f 52 44 29 3b 0d 0a 09 48 52 45 53 55  , WORD);...HRESU
63f0: 4c 54 20 42 72 6f 77 73 65 4f 62 6a 65 63 74 28  LT BrowseObject(
6400: 4c 50 43 49 54 45 4d 49 44 4c 49 53 54 2c 20 55  LPCITEMIDLIST, U
6410: 49 4e 54 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20  INT);...HRESULT 
6420: 47 65 74 56 69 65 77 53 74 61 74 65 53 74 72 65  GetViewStateStre
6430: 61 6d 28 44 57 4f 52 44 2c 20 4c 50 53 54 52 45  am(DWORD, LPSTRE
6440: 41 4d 2a 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20  AM*);...HRESULT 
6450: 47 65 74 43 6f 6e 74 72 6f 6c 57 69 6e 64 6f 77  GetControlWindow
6460: 28 55 49 4e 54 2c 20 48 57 4e 44 2a 29 3b 0d 0a  (UINT, HWND*);..
6470: 09 48 52 45 53 55 4c 54 20 53 65 6e 64 43 6f 6e  .HRESULT SendCon
6480: 74 72 6f 6c 4d 73 67 28 55 49 4e 54 2c 20 55 49  trolMsg(UINT, UI
6490: 4e 54 2c 20 57 50 41 52 41 4d 2c 20 4c 50 41 52  NT, WPARAM, LPAR
64a0: 41 4d 2c 20 4c 52 45 53 55 4c 54 2a 29 3b 0d 0a  AM, LRESULT*);..
64b0: 09 48 52 45 53 55 4c 54 20 51 75 65 72 79 41 63  .HRESULT QueryAc
64c0: 74 69 76 65 53 68 65 6c 6c 56 69 65 77 28 4c 50  tiveShellView(LP
64d0: 53 48 45 4c 4c 56 49 45 57 2a 29 3b 0d 0a 09 48  SHELLVIEW*);...H
64e0: 52 45 53 55 4c 54 20 4f 6e 56 69 65 77 57 69 6e  RESULT OnViewWin
64f0: 64 6f 77 41 63 74 69 76 65 28 4c 50 53 48 45 4c  dowActive(LPSHEL
6500: 4c 56 49 45 57 29 3b 0d 0a 09 48 52 45 53 55 4c  LVIEW);...HRESUL
6510: 54 20 53 65 74 54 6f 6f 6c 62 61 72 49 74 65 6d  T SetToolbarItem
6520: 73 28 4c 50 54 42 42 55 54 54 4f 4e 2c 20 55 49  s(LPTBBUTTON, UI
6530: 4e 54 2c 20 55 49 4e 54 29 3b 0d 0a 7d 0d 0a 0d  NT, UINT);..}...
6540: 0a 69 6e 74 65 72 66 61 63 65 20 49 53 68 65 6c  .interface IShel
6550: 6c 56 69 65 77 20 3a 20 49 4f 6c 65 57 69 6e 64  lView : IOleWind
6560: 6f 77 20 7b 0d 0a 09 48 52 45 53 55 4c 54 20 47  ow {...HRESULT G
6570: 65 74 57 69 6e 64 6f 77 28 48 57 4e 44 2a 29 3b  etWindow(HWND*);
6580: 0d 0a 09 48 52 45 53 55 4c 54 20 43 6f 6e 74 65  ...HRESULT Conte
6590: 78 74 53 65 6e 73 69 74 69 76 65 48 65 6c 70 28  xtSensitiveHelp(
65a0: 42 4f 4f 4c 29 3b 0d 0a 09 48 52 45 53 55 4c 54  BOOL);...HRESULT
65b0: 20 54 72 61 6e 73 6c 61 74 65 41 63 63 65 6c 65   TranslateAccele
65c0: 72 61 74 6f 72 28 4c 50 4d 53 47 29 3b 0d 0a 2f  rator(LPMSG);../
65d0: 2f 5b 4e 6f 5d 20 23 69 66 64 65 66 20 5f 46 49  /[No] #ifdef _FI
65e0: 58 5f 45 4e 41 42 4c 45 4d 4f 44 45 4c 45 53 53  X_ENABLEMODELESS
65f0: 5f 43 4f 4e 46 4c 49 43 54 0d 0a 2f 2f 5b 4e 6f  _CONFLICT..//[No
6600: 5d 20 09 53 54 44 4d 45 54 48 4f 44 28 45 6e 61  ] .STDMETHOD(Ena
6610: 62 6c 65 4d 6f 64 65 6c 65 73 73 53 56 29 28 54  bleModelessSV)(T
6620: 48 49 53 5f 20 42 4f 4f 4c 29 20 50 55 52 45 3b  HIS_ BOOL) PURE;
6630: 0d 0a 2f 2f 5b 59 65 73 5d 20 23 65 6c 73 65 0d  ..//[Yes] #else.
6640: 0a 09 48 52 45 53 55 4c 54 20 45 6e 61 62 6c 65  ..HRESULT Enable
6650: 4d 6f 64 65 6c 65 73 73 28 42 4f 4f 4c 29 3b 0d  Modeless(BOOL);.
6660: 0a 2f 2f 5b 59 65 73 5d 20 23 65 6e 64 69 66 0d  .//[Yes] #endif.
6670: 0a 09 48 52 45 53 55 4c 54 20 55 49 41 63 74 69  ..HRESULT UIActi
6680: 76 61 74 65 28 55 49 4e 54 29 3b 0d 0a 09 48 52  vate(UINT);...HR
6690: 45 53 55 4c 54 20 52 65 66 72 65 73 68 28 29 3b  ESULT Refresh();
66a0: 0d 0a 09 48 52 45 53 55 4c 54 20 43 72 65 61 74  ...HRESULT Creat
66b0: 65 56 69 65 77 57 69 6e 64 6f 77 28 49 53 68 65  eViewWindow(IShe
66c0: 6c 6c 56 69 65 77 2c 20 4c 50 43 46 4f 4c 44 45  llView, LPCFOLDE
66d0: 52 53 45 54 54 49 4e 47 53 2c 20 4c 50 53 48 45  RSETTINGS, LPSHE
66e0: 4c 4c 42 52 4f 57 53 45 52 2c 20 52 45 43 54 2a  LLBROWSER, RECT*
66f0: 2c 20 48 57 4e 44 2a 29 3b 0d 0a 09 48 52 45 53  , HWND*);...HRES
6700: 55 4c 54 20 44 65 73 74 72 6f 79 56 69 65 77 57  ULT DestroyViewW
6710: 69 6e 64 6f 77 28 29 3b 0d 0a 09 48 52 45 53 55  indow();...HRESU
6720: 4c 54 20 47 65 74 43 75 72 72 65 6e 74 49 6e 66  LT GetCurrentInf
6730: 6f 28 4c 50 46 4f 4c 44 45 52 53 45 54 54 49 4e  o(LPFOLDERSETTIN
6740: 47 53 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 41  GS);...HRESULT A
6750: 64 64 50 72 6f 70 65 72 74 79 53 68 65 65 74 50  ddPropertySheetP
6760: 61 67 65 73 28 44 57 4f 52 44 2c 20 4c 50 46 4e  ages(DWORD, LPFN
6770: 41 44 44 50 52 4f 50 53 48 45 45 54 50 41 47 45  ADDPROPSHEETPAGE
6780: 2c 20 4c 50 41 52 41 4d 29 3b 0d 0a 09 48 52 45  , LPARAM);...HRE
6790: 53 55 4c 54 20 53 61 76 65 56 69 65 77 53 74 61  SULT SaveViewSta
67a0: 74 65 28 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20  te();...HRESULT 
67b0: 53 65 6c 65 63 74 49 74 65 6d 28 4c 50 43 49 54  SelectItem(LPCIT
67c0: 45 4d 49 44 4c 49 53 54 2c 20 55 49 4e 54 29 3b  EMIDLIST, UINT);
67d0: 0d 0a 09 48 52 45 53 55 4c 54 20 47 65 74 49 74  ...HRESULT GetIt
67e0: 65 6d 4f 62 6a 65 63 74 28 55 49 4e 54 2c 20 52  emObject(UINT, R
67f0: 45 46 49 49 44 2c 20 50 56 4f 49 44 2a 29 3b 0d  EFIID, PVOID*);.
6800: 0a 7d 0d 0a 0d 0a 69 6e 74 65 72 66 61 63 65 20  .}....interface 
6810: 49 43 6f 6d 6d 44 6c 67 42 72 6f 77 73 65 72 20  ICommDlgBrowser 
6820: 3a 20 49 55 6e 6b 6e 6f 77 6e 20 7b 0d 0a 09 48  : IUnknown {...H
6830: 52 45 53 55 4c 54 20 4f 6e 44 65 66 61 75 6c 74  RESULT OnDefault
6840: 43 6f 6d 6d 61 6e 64 28 49 53 68 65 6c 6c 56 69  Command(IShellVi
6850: 65 77 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 4f  ew);...HRESULT O
6860: 6e 53 74 61 74 65 43 68 61 6e 67 65 28 49 53 68  nStateChange(ISh
6870: 65 6c 6c 56 69 65 77 2c 20 55 4c 4f 4e 47 29 3b  ellView, ULONG);
6880: 0d 0a 09 48 52 45 53 55 4c 54 20 49 6e 63 6c 75  ...HRESULT Inclu
6890: 64 65 4f 62 6a 65 63 74 28 49 53 68 65 6c 6c 56  deObject(IShellV
68a0: 69 65 77 2c 20 4c 50 43 49 54 45 4d 49 44 4c 49  iew, LPCITEMIDLI
68b0: 53 54 29 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 49  ST);..}..alias I
68c0: 43 6f 6d 6d 44 6c 67 42 72 6f 77 73 65 72 20 4c  CommDlgBrowser L
68d0: 50 43 4f 4d 4d 44 4c 47 42 52 4f 57 53 45 52 3b  PCOMMDLGBROWSER;
68e0: 0d 0a 0d 0a 61 6c 69 61 73 20 47 55 49 44 20 53  ....alias GUID S
68f0: 48 45 4c 4c 56 49 45 57 49 44 3b 0d 0a 0d 0a 73  HELLVIEWID;....s
6900: 74 72 75 63 74 20 53 56 32 43 56 57 32 5f 50 41  truct SV2CVW2_PA
6910: 52 41 4d 53 20 7b 0d 0a 09 44 57 4f 52 44 20 63  RAMS {...DWORD c
6920: 62 53 69 7a 65 20 3d 20 74 68 69 73 2e 73 69 7a  bSize = this.siz
6930: 65 6f 66 3b 0d 0a 09 49 53 68 65 6c 6c 56 69 65  eof;...IShellVie
6940: 77 20 70 73 76 50 72 65 76 3b 0d 0a 09 46 4f 4c  w psvPrev;...FOL
6950: 44 45 52 53 45 54 54 49 4e 47 53 20 20 2a 70 66  DERSETTINGS  *pf
6960: 73 3b 0d 0a 09 49 53 68 65 6c 6c 42 72 6f 77 73  s;...IShellBrows
6970: 65 72 20 70 73 62 4f 77 6e 65 72 3b 0d 0a 09 52  er psbOwner;...R
6980: 45 43 54 20 2a 70 72 63 56 69 65 77 3b 0d 0a 09  ECT *prcView;...
6990: 63 6f 6e 73 74 28 53 48 45 4c 4c 56 49 45 57 49  const(SHELLVIEWI
69a0: 44 29 2a 20 70 76 69 64 3b 0d 0a 09 48 57 4e 44  D)* pvid;...HWND
69b0: 20 68 77 6e 64 56 69 65 77 3b 0d 0a 7d 0d 0a 61   hwndView;..}..a
69c0: 6c 69 61 73 20 53 56 32 43 56 57 32 5f 50 41 52  lias SV2CVW2_PAR
69d0: 41 4d 53 2a 20 4c 50 53 56 32 43 56 57 32 5f 50  AMS* LPSV2CVW2_P
69e0: 41 52 41 4d 53 3b 0d 0a 0d 0a 69 6e 74 65 72 66  ARAMS;....interf
69f0: 61 63 65 20 49 53 68 65 6c 6c 56 69 65 77 32 20  ace IShellView2 
6a00: 3a 20 49 53 68 65 6c 6c 56 69 65 77 20 7b 0d 0a  : IShellView {..
6a10: 09 48 52 45 53 55 4c 54 20 47 65 74 57 69 6e 64  .HRESULT GetWind
6a20: 6f 77 28 48 57 4e 44 2a 29 3b 0d 0a 09 48 52 45  ow(HWND*);...HRE
6a30: 53 55 4c 54 20 43 6f 6e 74 65 78 74 53 65 6e 73  SULT ContextSens
6a40: 69 74 69 76 65 48 65 6c 70 28 42 4f 4f 4c 29 3b  itiveHelp(BOOL);
6a50: 0d 0a 09 48 52 45 53 55 4c 54 20 54 72 61 6e 73  ...HRESULT Trans
6a60: 6c 61 74 65 41 63 63 65 6c 65 72 61 74 6f 72 28  lateAccelerator(
6a70: 4c 50 4d 53 47 29 3b 0d 0a 2f 2f 5b 4e 6f 5d 20  LPMSG);..//[No] 
6a80: 23 69 66 64 65 66 20 5f 46 49 58 5f 45 4e 41 42  #ifdef _FIX_ENAB
6a90: 4c 45 4d 4f 44 45 4c 45 53 53 5f 43 4f 4e 46 4c  LEMODELESS_CONFL
6aa0: 49 43 54 0d 0a 2f 2f 5b 4e 6f 5d 20 09 53 54 44  ICT..//[No] .STD
6ab0: 4d 45 54 48 4f 44 28 45 6e 61 62 6c 65 4d 6f 64  METHOD(EnableMod
6ac0: 65 6c 65 73 73 53 56 29 28 54 48 49 53 5f 20 42  elessSV)(THIS_ B
6ad0: 4f 4f 4c 29 20 50 55 52 45 3b 0d 0a 2f 2f 5b 59  OOL) PURE;..//[Y
6ae0: 65 73 5d 20 23 65 6c 73 65 0d 0a 09 48 52 45 53  es] #else...HRES
6af0: 55 4c 54 20 45 6e 61 62 6c 65 4d 6f 64 65 6c 65  ULT EnableModele
6b00: 73 73 28 42 4f 4f 4c 29 3b 0d 0a 2f 2f 5b 59 65  ss(BOOL);..//[Ye
6b10: 73 5d 20 23 65 6e 64 69 66 0d 0a 09 48 52 45 53  s] #endif...HRES
6b20: 55 4c 54 20 55 49 41 63 74 69 76 61 74 65 28 55  ULT UIActivate(U
6b30: 49 4e 54 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20  INT);...HRESULT 
6b40: 52 65 66 72 65 73 68 28 29 3b 0d 0a 09 48 52 45  Refresh();...HRE
6b50: 53 55 4c 54 20 43 72 65 61 74 65 56 69 65 77 57  SULT CreateViewW
6b60: 69 6e 64 6f 77 28 49 53 68 65 6c 6c 56 69 65 77  indow(IShellView
6b70: 2c 20 4c 50 43 46 4f 4c 44 45 52 53 45 54 54 49  , LPCFOLDERSETTI
6b80: 4e 47 53 2c 20 4c 50 53 48 45 4c 4c 42 52 4f 57  NGS, LPSHELLBROW
6b90: 53 45 52 2c 20 52 45 43 54 2a 2c 20 48 57 4e 44  SER, RECT*, HWND
6ba0: 2a 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 44 65  *);...HRESULT De
6bb0: 73 74 72 6f 79 56 69 65 77 57 69 6e 64 6f 77 28  stroyViewWindow(
6bc0: 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 47 65 74  );...HRESULT Get
6bd0: 43 75 72 72 65 6e 74 49 6e 66 6f 28 4c 50 46 4f  CurrentInfo(LPFO
6be0: 4c 44 45 52 53 45 54 54 49 4e 47 53 29 3b 0d 0a  LDERSETTINGS);..
6bf0: 09 48 52 45 53 55 4c 54 20 41 64 64 50 72 6f 70  .HRESULT AddProp
6c00: 65 72 74 79 53 68 65 65 74 50 61 67 65 73 28 44  ertySheetPages(D
6c10: 57 4f 52 44 2c 20 4c 50 46 4e 41 44 44 50 52 4f  WORD, LPFNADDPRO
6c20: 50 53 48 45 45 54 50 41 47 45 2c 20 4c 50 41 52  PSHEETPAGE, LPAR
6c30: 41 4d 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 53  AM);...HRESULT S
6c40: 61 76 65 56 69 65 77 53 74 61 74 65 28 29 3b 0d  aveViewState();.
6c50: 0a 09 48 52 45 53 55 4c 54 20 53 65 6c 65 63 74  ..HRESULT Select
6c60: 49 74 65 6d 28 4c 50 43 49 54 45 4d 49 44 4c 49  Item(LPCITEMIDLI
6c70: 53 54 2c 20 55 49 4e 54 29 3b 0d 0a 09 48 52 45  ST, UINT);...HRE
6c80: 53 55 4c 54 20 47 65 74 49 74 65 6d 4f 62 6a 65  SULT GetItemObje
6c90: 63 74 28 55 49 4e 54 2c 20 52 45 46 49 49 44 2c  ct(UINT, REFIID,
6ca0: 20 50 56 4f 49 44 2a 29 3b 0d 0a 09 48 52 45 53   PVOID*);...HRES
6cb0: 55 4c 54 20 47 65 74 56 69 65 77 28 53 48 45 4c  ULT GetView(SHEL
6cc0: 4c 56 49 45 57 49 44 2a 2c 20 55 4c 4f 4e 47 29  LVIEWID*, ULONG)
6cd0: 3b 0d 0a 09 48 52 45 53 55 4c 54 20 43 72 65 61  ;...HRESULT Crea
6ce0: 74 65 56 69 65 77 57 69 6e 64 6f 77 32 28 4c 50  teViewWindow2(LP
6cf0: 53 56 32 43 56 57 32 5f 50 41 52 41 4d 53 29 3b  SV2CVW2_PARAMS);
6d00: 0d 0a 7d 0d 0a 0d 0a 69 6e 74 65 72 66 61 63 65  ..}....interface
6d10: 20 49 53 68 65 6c 6c 45 78 65 63 75 74 65 48 6f   IShellExecuteHo
6d20: 6f 6b 41 20 3a 20 49 55 6e 6b 6e 6f 77 6e 20 7b  okA : IUnknown {
6d30: 0d 0a 09 48 52 45 53 55 4c 54 20 45 78 65 63 75  ...HRESULT Execu
6d40: 74 65 28 4c 50 53 48 45 4c 4c 45 58 45 43 55 54  te(LPSHELLEXECUT
6d50: 45 49 4e 46 4f 41 29 3b 0d 0a 7d 0d 0a 0d 0a 69  EINFOA);..}....i
6d60: 6e 74 65 72 66 61 63 65 20 49 53 68 65 6c 6c 45  nterface IShellE
6d70: 78 65 63 75 74 65 48 6f 6f 6b 57 20 3a 20 49 55  xecuteHookW : IU
6d80: 6e 6b 6e 6f 77 6e 20 7b 0d 0a 09 48 52 45 53 55  nknown {...HRESU
6d90: 4c 54 20 45 78 65 63 75 74 65 28 4c 50 53 48 45  LT Execute(LPSHE
6da0: 4c 4c 45 58 45 43 55 54 45 49 4e 46 4f 57 29 3b  LLEXECUTEINFOW);
6db0: 0d 0a 7d 0d 0a 0d 0a 69 6e 74 65 72 66 61 63 65  ..}....interface
6dc0: 20 49 53 68 65 6c 6c 49 63 6f 6e 20 3a 20 49 55   IShellIcon : IU
6dd0: 6e 6b 6e 6f 77 6e 20 7b 0d 0a 09 48 52 45 53 55  nknown {...HRESU
6de0: 4c 54 20 47 65 74 49 63 6f 6e 4f 66 28 4c 50 43  LT GetIconOf(LPC
6df0: 49 54 45 4d 49 44 4c 49 53 54 2c 20 55 49 4e 54  ITEMIDLIST, UINT
6e00: 2c 20 50 49 4e 54 29 3b 0d 0a 7d 0d 0a 61 6c 69  , PINT);..}..ali
6e10: 61 73 20 49 53 68 65 6c 6c 49 63 6f 6e 20 4c 50  as IShellIcon LP
6e20: 53 48 45 4c 4c 49 43 4f 4e 3b 0d 0a 0d 0a 73 74  SHELLICON;....st
6e30: 72 75 63 74 20 53 48 45 4c 4c 46 4c 41 47 53 54  ruct SHELLFLAGST
6e40: 41 54 45 20 7b 0d 0a 09 73 68 6f 72 74 20 5f 62  ATE {...short _b
6e50: 66 3b 0d 0a 2f 2a 0d 0a 09 42 4f 4f 4c 20 66 53  f;../*...BOOL fS
6e60: 68 6f 77 41 6c 6c 4f 62 6a 65 63 74 73 20 3a 20  howAllObjects : 
6e70: 31 3b 0d 0a 09 42 4f 4f 4c 20 66 53 68 6f 77 45  1;...BOOL fShowE
6e80: 78 74 65 6e 73 69 6f 6e 73 20 3a 20 31 3b 0d 0a  xtensions : 1;..
6e90: 09 42 4f 4f 4c 20 66 4e 6f 43 6f 6e 66 69 72 6d  .BOOL fNoConfirm
6ea0: 52 65 63 79 63 6c 65 20 3a 20 31 3b 0d 0a 09 42  Recycle : 1;...B
6eb0: 4f 4f 4c 20 66 53 68 6f 77 53 79 73 46 69 6c 65  OOL fShowSysFile
6ec0: 73 20 3a 20 31 3b 0d 0a 09 42 4f 4f 4c 20 66 53  s : 1;...BOOL fS
6ed0: 68 6f 77 43 6f 6d 70 43 6f 6c 6f 72 20 3a 20 31  howCompColor : 1
6ee0: 3b 0d 0a 09 42 4f 4f 4c 20 66 44 6f 75 62 6c 65  ;...BOOL fDouble
6ef0: 43 6c 69 63 6b 49 6e 57 65 62 56 69 65 77 20 3a  ClickInWebView :
6f00: 20 31 3b 0d 0a 09 42 4f 4f 4c 20 66 44 65 73 6b   1;...BOOL fDesk
6f10: 74 6f 70 48 54 4d 4c 20 3a 20 31 3b 0d 0a 09 42  topHTML : 1;...B
6f20: 4f 4f 4c 20 66 57 69 6e 39 35 43 6c 61 73 73 69  OOL fWin95Classi
6f30: 63 20 3a 20 31 3b 0d 0a 09 42 4f 4f 4c 20 66 44  c : 1;...BOOL fD
6f40: 6f 6e 74 50 72 65 74 74 79 50 61 74 68 20 3a 20  ontPrettyPath : 
6f50: 31 3b 0d 0a 09 42 4f 4f 4c 20 66 53 68 6f 77 41  1;...BOOL fShowA
6f60: 74 74 72 69 62 43 6f 6c 20 3a 20 31 3b 0d 0a 09  ttribCol : 1;...
6f70: 42 4f 4f 4c 20 66 4d 61 70 4e 65 74 44 72 76 42  BOOL fMapNetDrvB
6f80: 74 6e 20 3a 20 31 3b 0d 0a 09 42 4f 4f 4c 20 66  tn : 1;...BOOL f
6f90: 53 68 6f 77 49 6e 66 6f 54 69 70 20 3a 20 31 3b  ShowInfoTip : 1;
6fa0: 0d 0a 09 42 4f 4f 4c 20 66 48 69 64 65 49 63 6f  ...BOOL fHideIco
6fb0: 6e 73 20 3a 20 31 3b 0d 0a 09 55 49 4e 54 20 66  ns : 1;...UINT f
6fc0: 52 65 73 74 46 6c 61 67 73 20 3a 20 33 3b 0d 0a  RestFlags : 3;..
6fd0: 2a 2f 0d 0a 09 40 70 72 6f 70 65 72 74 79 20 62  */...@property b
6fe0: 6f 6f 6c 20 66 53 68 6f 77 41 6c 6c 4f 62 6a 65  ool fShowAllObje
6ff0: 63 74 73 28 29 20 20 20 20 20 20 20 7b 20 72 65  cts()       { re
7000: 74 75 72 6e 20 63 61 73 74 28 62 6f 6f 6c 29 20  turn cast(bool) 
7010: 28 5f 62 66 20 26 20 30 78 30 30 30 31 29 3b 20  (_bf & 0x0001); 
7020: 7d 0d 0a 09 40 70 72 6f 70 65 72 74 79 20 62 6f  }...@property bo
7030: 6f 6c 20 66 53 68 6f 77 45 78 74 65 6e 73 69 6f  ol fShowExtensio
7040: 6e 73 28 29 20 20 20 20 20 20 20 7b 20 72 65 74  ns()       { ret
7050: 75 72 6e 20 63 61 73 74 28 62 6f 6f 6c 29 20 28  urn cast(bool) (
7060: 5f 62 66 20 26 20 30 78 30 30 30 32 29 3b 20 7d  _bf & 0x0002); }
7070: 0d 0a 09 40 70 72 6f 70 65 72 74 79 20 62 6f 6f  ...@property boo
7080: 6c 20 66 4e 6f 43 6f 6e 66 69 72 6d 52 65 63 79  l fNoConfirmRecy
7090: 63 6c 65 28 29 20 20 20 20 20 7b 20 72 65 74 75  cle()     { retu
70a0: 72 6e 20 63 61 73 74 28 62 6f 6f 6c 29 20 28 5f  rn cast(bool) (_
70b0: 62 66 20 26 20 30 78 30 30 30 34 29 3b 20 7d 0d  bf & 0x0004); }.
70c0: 0a 09 40 70 72 6f 70 65 72 74 79 20 62 6f 6f 6c  ..@property bool
70d0: 20 66 53 68 6f 77 53 79 73 46 69 6c 65 73 28 29   fShowSysFiles()
70e0: 20 20 20 20 20 20 20 20 20 7b 20 72 65 74 75 72           { retur
70f0: 6e 20 63 61 73 74 28 62 6f 6f 6c 29 20 28 5f 62  n cast(bool) (_b
7100: 66 20 26 20 30 78 30 30 30 38 29 3b 20 7d 0d 0a  f & 0x0008); }..
7110: 09 40 70 72 6f 70 65 72 74 79 20 62 6f 6f 6c 20  .@property bool 
7120: 66 53 68 6f 77 43 6f 6d 70 43 6f 6c 6f 72 28 29  fShowCompColor()
7130: 20 20 20 20 20 20 20 20 7b 20 72 65 74 75 72 6e          { return
7140: 20 63 61 73 74 28 62 6f 6f 6c 29 20 28 5f 62 66   cast(bool) (_bf
7150: 20 26 20 30 78 30 30 31 30 29 3b 20 7d 0d 0a 09   & 0x0010); }...
7160: 40 70 72 6f 70 65 72 74 79 20 62 6f 6f 6c 20 66  @property bool f
7170: 44 6f 75 62 6c 65 43 6c 69 63 6b 49 6e 57 65 62  DoubleClickInWeb
7180: 56 69 65 77 28 29 20 7b 20 72 65 74 75 72 6e 20  View() { return 
7190: 63 61 73 74 28 62 6f 6f 6c 29 20 28 5f 62 66 20  cast(bool) (_bf 
71a0: 26 20 30 78 30 30 32 30 29 3b 20 7d 0d 0a 09 40  & 0x0020); }...@
71b0: 70 72 6f 70 65 72 74 79 20 62 6f 6f 6c 20 66 44  property bool fD
71c0: 65 73 6b 74 6f 70 48 54 4d 4c 28 29 20 20 20 20  esktopHTML()    
71d0: 20 20 20 20 20 20 7b 20 72 65 74 75 72 6e 20 63        { return c
71e0: 61 73 74 28 62 6f 6f 6c 29 20 28 5f 62 66 20 26  ast(bool) (_bf &
71f0: 20 30 78 30 30 34 30 29 3b 20 7d 0d 0a 09 40 70   0x0040); }...@p
7200: 72 6f 70 65 72 74 79 20 62 6f 6f 6c 20 66 57 69  roperty bool fWi
7210: 6e 39 35 43 6c 61 73 73 69 63 28 29 20 20 20 20  n95Classic()    
7220: 20 20 20 20 20 7b 20 72 65 74 75 72 6e 20 63 61       { return ca
7230: 73 74 28 62 6f 6f 6c 29 20 28 5f 62 66 20 26 20  st(bool) (_bf & 
7240: 30 78 30 30 38 30 29 3b 20 7d 0d 0a 09 40 70 72  0x0080); }...@pr
7250: 6f 70 65 72 74 79 20 62 6f 6f 6c 20 66 44 6f 6e  operty bool fDon
7260: 74 50 72 65 74 74 79 50 61 74 68 28 29 20 20 20  tPrettyPath()   
7270: 20 20 20 20 7b 20 72 65 74 75 72 6e 20 63 61 73      { return cas
7280: 74 28 62 6f 6f 6c 29 20 28 5f 62 66 20 26 20 30  t(bool) (_bf & 0
7290: 78 30 31 30 30 29 3b 20 7d 0d 0a 09 40 70 72 6f  x0100); }...@pro
72a0: 70 65 72 74 79 20 62 6f 6f 6c 20 66 53 68 6f 77  perty bool fShow
72b0: 41 74 74 72 69 62 43 6f 6c 28 29 20 20 20 20 20  AttribCol()     
72c0: 20 20 20 7b 20 72 65 74 75 72 6e 20 63 61 73 74     { return cast
72d0: 28 62 6f 6f 6c 29 20 28 5f 62 66 20 26 20 30 78  (bool) (_bf & 0x
72e0: 30 32 30 30 29 3b 20 7d 0d 0a 09 40 70 72 6f 70  0200); }...@prop
72f0: 65 72 74 79 20 62 6f 6f 6c 20 66 4d 61 70 4e 65  erty bool fMapNe
7300: 74 44 72 76 42 74 6e 28 29 20 20 20 20 20 20 20  tDrvBtn()       
7310: 20 20 7b 20 72 65 74 75 72 6e 20 63 61 73 74 28    { return cast(
7320: 62 6f 6f 6c 29 20 28 5f 62 66 20 26 20 30 78 30  bool) (_bf & 0x0
7330: 34 30 30 29 3b 20 7d 0d 0a 09 40 70 72 6f 70 65  400); }...@prope
7340: 72 74 79 20 62 6f 6f 6c 20 66 53 68 6f 77 49 6e  rty bool fShowIn
7350: 66 6f 54 69 70 28 29 20 20 20 20 20 20 20 20 20  foTip()         
7360: 20 7b 20 72 65 74 75 72 6e 20 63 61 73 74 28 62   { return cast(b
7370: 6f 6f 6c 29 20 28 5f 62 66 20 26 20 30 78 30 38  ool) (_bf & 0x08
7380: 30 30 29 3b 20 7d 0d 0a 09 40 70 72 6f 70 65 72  00); }...@proper
7390: 74 79 20 62 6f 6f 6c 20 66 48 69 64 65 49 63 6f  ty bool fHideIco
73a0: 6e 73 28 29 20 20 20 20 20 20 20 20 20 20 20 20  ns()            
73b0: 7b 20 72 65 74 75 72 6e 20 63 61 73 74 28 62 6f  { return cast(bo
73c0: 6f 6c 29 20 28 5f 62 66 20 26 20 30 78 31 30 30  ol) (_bf & 0x100
73d0: 30 29 3b 20 7d 0d 0a 09 40 70 72 6f 70 65 72 74  0); }...@propert
73e0: 79 20 75 62 79 74 65 20 66 52 65 73 74 46 6c 61  y ubyte fRestFla
73f0: 67 73 28 29 20 20 20 20 20 20 20 20 20 20 20 7b  gs()           {
7400: 20 72 65 74 75 72 6e 20 63 61 73 74 28 75 62 79   return cast(uby
7410: 74 65 29 20 28 5f 62 66 20 3e 3e 20 31 33 29 3b  te) (_bf >> 13);
7420: 20 7d 0d 0a 0d 0a 09 40 70 72 6f 70 65 72 74 79   }.....@property
7430: 20 62 6f 6f 6c 20 66 53 68 6f 77 41 6c 6c 4f 62   bool fShowAllOb
7440: 6a 65 63 74 73 28 62 6f 6f 6c 20 66 29 20 20 20  jects(bool f)   
7450: 20 20 20 20 7b 20 5f 62 66 20 3d 20 63 61 73 74      { _bf = cast
7460: 28 75 73 68 6f 72 74 29 20 28 28 5f 62 66 20 26  (ushort) ((_bf &
7470: 20 7e 30 78 46 46 46 45 29 20 7c 20 66 29 3b 20   ~0xFFFE) | f); 
7480: 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 3b         return f;
7490: 20 7d 0d 0a 09 40 70 72 6f 70 65 72 74 79 20 62   }...@property b
74a0: 6f 6f 6c 20 66 53 68 6f 77 45 78 74 65 6e 73 69  ool fShowExtensi
74b0: 6f 6e 73 28 62 6f 6f 6c 20 66 29 20 20 20 20 20  ons(bool f)     
74c0: 20 20 7b 20 5f 62 66 20 3d 20 63 61 73 74 28 75    { _bf = cast(u
74d0: 73 68 6f 72 74 29 20 28 28 5f 62 66 20 26 20 7e  short) ((_bf & ~
74e0: 30 78 46 46 46 44 29 20 7c 20 28 66 20 3c 3c 20  0xFFFD) | (f << 
74f0: 20 31 29 29 3b 20 72 65 74 75 72 6e 20 66 3b 20   1)); return f; 
7500: 7d 0d 0a 09 40 70 72 6f 70 65 72 74 79 20 62 6f  }...@property bo
7510: 6f 6c 20 66 4e 6f 43 6f 6e 66 69 72 6d 52 65 63  ol fNoConfirmRec
7520: 79 63 6c 65 28 62 6f 6f 6c 20 66 29 20 20 20 20  ycle(bool f)    
7530: 20 7b 20 5f 62 66 20 3d 20 63 61 73 74 28 75 73   { _bf = cast(us
7540: 68 6f 72 74 29 20 28 28 5f 62 66 20 26 20 7e 30  hort) ((_bf & ~0
7550: 78 46 46 46 42 29 20 7c 20 28 66 20 3c 3c 20 20  xFFFB) | (f <<  
7560: 32 29 29 3b 20 72 65 74 75 72 6e 20 66 3b 20 7d  2)); return f; }
7570: 0d 0a 09 40 70 72 6f 70 65 72 74 79 20 62 6f 6f  ...@property boo
7580: 6c 20 66 53 68 6f 77 53 79 73 46 69 6c 65 73 28  l fShowSysFiles(
7590: 62 6f 6f 6c 20 66 29 20 20 20 20 20 20 20 20 20  bool f)         
75a0: 7b 20 5f 62 66 20 3d 20 63 61 73 74 28 75 73 68  { _bf = cast(ush
75b0: 6f 72 74 29 20 28 28 5f 62 66 20 26 20 7e 30 78  ort) ((_bf & ~0x
75c0: 46 46 46 38 29 20 7c 20 28 66 20 3c 3c 20 20 33  FFF8) | (f <<  3
75d0: 29 29 3b 20 72 65 74 75 72 6e 20 66 3b 20 7d 0d  )); return f; }.
75e0: 0a 09 40 70 72 6f 70 65 72 74 79 20 62 6f 6f 6c  ..@property bool
75f0: 20 66 53 68 6f 77 43 6f 6d 70 43 6f 6c 6f 72 28   fShowCompColor(
7600: 62 6f 6f 6c 20 66 29 20 20 20 20 20 20 20 20 7b  bool f)        {
7610: 20 5f 62 66 20 3d 20 63 61 73 74 28 75 73 68 6f   _bf = cast(usho
7620: 72 74 29 20 28 28 5f 62 66 20 26 20 7e 30 78 46  rt) ((_bf & ~0xF
7630: 46 45 46 29 20 7c 20 28 66 20 3c 3c 20 20 34 29  FEF) | (f <<  4)
7640: 29 3b 20 72 65 74 75 72 6e 20 66 3b 20 7d 0d 0a  ); return f; }..
7650: 09 40 70 72 6f 70 65 72 74 79 20 62 6f 6f 6c 20  .@property bool 
7660: 66 44 6f 75 62 6c 65 43 6c 69 63 6b 49 6e 57 65  fDoubleClickInWe
7670: 62 56 69 65 77 28 62 6f 6f 6c 20 66 29 20 7b 20  bView(bool f) { 
7680: 5f 62 66 20 3d 20 63 61 73 74 28 75 73 68 6f 72  _bf = cast(ushor
7690: 74 29 20 28 28 5f 62 66 20 26 20 7e 30 78 46 46  t) ((_bf & ~0xFF
76a0: 44 46 29 20 7c 20 28 66 20 3c 3c 20 20 35 29 29  DF) | (f <<  5))
76b0: 3b 20 72 65 74 75 72 6e 20 66 3b 20 7d 0d 0a 09  ; return f; }...
76c0: 40 70 72 6f 70 65 72 74 79 20 62 6f 6f 6c 20 66  @property bool f
76d0: 44 65 73 6b 74 6f 70 48 54 4d 4c 28 62 6f 6f 6c  DesktopHTML(bool
76e0: 20 66 29 20 20 20 20 20 20 20 20 20 20 7b 20 5f   f)          { _
76f0: 62 66 20 3d 20 63 61 73 74 28 75 73 68 6f 72 74  bf = cast(ushort
7700: 29 20 28 28 5f 62 66 20 26 20 7e 30 78 46 46 42  ) ((_bf & ~0xFFB
7710: 46 29 20 7c 20 28 66 20 3c 3c 20 20 36 29 29 3b  F) | (f <<  6));
7720: 20 72 65 74 75 72 6e 20 66 3b 20 7d 0d 0a 09 40   return f; }...@
7730: 70 72 6f 70 65 72 74 79 20 62 6f 6f 6c 20 66 57  property bool fW
7740: 69 6e 39 35 43 6c 61 73 73 69 63 28 62 6f 6f 6c  in95Classic(bool
7750: 20 66 29 20 20 20 20 20 20 20 20 20 7b 20 5f 62   f)         { _b
7760: 66 20 3d 20 63 61 73 74 28 75 73 68 6f 72 74 29  f = cast(ushort)
7770: 20 28 28 5f 62 66 20 26 20 7e 30 78 46 46 38 46   ((_bf & ~0xFF8F
7780: 29 20 7c 20 28 66 20 3c 3c 20 20 37 29 29 3b 20  ) | (f <<  7)); 
7790: 72 65 74 75 72 6e 20 66 3b 20 7d 0d 0a 09 40 70  return f; }...@p
77a0: 72 6f 70 65 72 74 79 20 62 6f 6f 6c 20 66 44 6f  roperty bool fDo
77b0: 6e 74 50 72 65 74 74 79 50 61 74 68 28 62 6f 6f  ntPrettyPath(boo
77c0: 6c 20 66 29 20 20 20 20 20 20 20 7b 20 5f 62 66  l f)       { _bf
77d0: 20 3d 20 63 61 73 74 28 75 73 68 6f 72 74 29 20   = cast(ushort) 
77e0: 28 28 5f 62 66 20 26 20 7e 30 78 46 45 46 46 29  ((_bf & ~0xFEFF)
77f0: 20 7c 20 28 66 20 3c 3c 20 20 38 29 29 3b 20 72   | (f <<  8)); r
7800: 65 74 75 72 6e 20 66 3b 20 7d 0d 0a 09 40 70 72  eturn f; }...@pr
7810: 6f 70 65 72 74 79 20 62 6f 6f 6c 20 66 53 68 6f  operty bool fSho
7820: 77 41 74 74 72 69 62 43 6f 6c 28 62 6f 6f 6c 20  wAttribCol(bool 
7830: 66 29 20 20 20 20 20 20 20 20 7b 20 5f 62 66 20  f)        { _bf 
7840: 3d 20 63 61 73 74 28 75 73 68 6f 72 74 29 20 28  = cast(ushort) (
7850: 28 5f 62 66 20 26 20 7e 30 78 46 44 46 46 29 20  (_bf & ~0xFDFF) 
7860: 7c 20 28 66 20 3c 3c 20 20 39 29 29 3b 20 72 65  | (f <<  9)); re
7870: 74 75 72 6e 20 66 3b 20 7d 0d 0a 09 40 70 72 6f  turn f; }...@pro
7880: 70 65 72 74 79 20 62 6f 6f 6c 20 66 4d 61 70 4e  perty bool fMapN
7890: 65 74 44 72 76 42 74 6e 28 62 6f 6f 6c 20 66 29  etDrvBtn(bool f)
78a0: 20 20 20 20 20 20 20 20 20 7b 20 5f 62 66 20 3d           { _bf =
78b0: 20 63 61 73 74 28 75 73 68 6f 72 74 29 20 28 28   cast(ushort) ((
78c0: 5f 62 66 20 26 20 7e 30 78 46 42 46 46 29 20 7c  _bf & ~0xFBFF) |
78d0: 20 28 66 20 3c 3c 20 31 30 29 29 3b 20 72 65 74   (f << 10)); ret
78e0: 75 72 6e 20 66 3b 20 7d 0d 0a 09 40 70 72 6f 70  urn f; }...@prop
78f0: 65 72 74 79 20 62 6f 6f 6c 20 66 53 68 6f 77 49  erty bool fShowI
7900: 6e 66 6f 54 69 70 28 62 6f 6f 6c 20 66 29 20 20  nfoTip(bool f)  
7910: 20 20 20 20 20 20 20 20 7b 20 5f 62 66 20 3d 20          { _bf = 
7920: 63 61 73 74 28 75 73 68 6f 72 74 29 20 28 28 5f  cast(ushort) ((_
7930: 62 66 20 26 20 7e 30 78 46 38 46 46 29 20 7c 20  bf & ~0xF8FF) | 
7940: 28 66 20 3c 3c 20 31 31 29 29 3b 20 72 65 74 75  (f << 11)); retu
7950: 72 6e 20 66 3b 20 7d 0d 0a 09 40 70 72 6f 70 65  rn f; }...@prope
7960: 72 74 79 20 62 6f 6f 6c 20 66 48 69 64 65 49 63  rty bool fHideIc
7970: 6f 6e 73 28 62 6f 6f 6c 20 66 29 20 20 20 20 20  ons(bool f)     
7980: 20 20 20 20 20 20 20 7b 20 5f 62 66 20 3d 20 63         { _bf = c
7990: 61 73 74 28 75 73 68 6f 72 74 29 20 28 28 5f 62  ast(ushort) ((_b
79a0: 66 20 26 20 7e 30 78 45 46 46 46 29 20 7c 20 28  f & ~0xEFFF) | (
79b0: 66 20 3c 3c 20 31 32 29 29 3b 20 72 65 74 75 72  f << 12)); retur
79c0: 6e 20 66 3b 20 7d 0d 0a 09 40 70 72 6f 70 65 72  n f; }...@proper
79d0: 74 79 20 75 62 79 74 65 20 66 52 65 73 74 46 6c  ty ubyte fRestFl
79e0: 61 67 73 28 75 62 79 74 65 20 66 29 20 20 20 20  ags(ubyte f)    
79f0: 20 20 20 20 20 20 7b 20 5f 62 66 20 3d 20 63 61        { _bf = ca
7a00: 73 74 28 75 73 68 6f 72 74 29 20 28 28 5f 62 66  st(ushort) ((_bf
7a10: 20 26 20 7e 30 78 31 46 46 46 29 20 7c 20 28 66   & ~0x1FFF) | (f
7a20: 20 3c 3c 20 31 33 29 29 3b 20 72 65 74 75 72 6e   << 13)); return
7a30: 20 63 61 73 74 28 75 62 79 74 65 29 20 28 66 20   cast(ubyte) (f 
7a40: 26 20 37 29 3b 20 7d 0d 0a 7d 0d 0a 61 6c 69 61  & 7); }..}..alia
7a50: 73 20 53 48 45 4c 4c 46 4c 41 47 53 54 41 54 45  s SHELLFLAGSTATE
7a60: 2a 20 4c 50 53 48 45 4c 4c 46 4c 41 47 53 54 41  * LPSHELLFLAGSTA
7a70: 54 45 3b 0d 0a 0d 0a 63 6f 6e 73 74 20 53 53 46  TE;....const SSF
7a80: 5f 53 48 4f 57 41 4c 4c 4f 42 4a 45 43 54 53 20  _SHOWALLOBJECTS 
7a90: 3d 20 30 78 31 3b 0d 0a 63 6f 6e 73 74 20 53 53  = 0x1;..const SS
7aa0: 46 5f 53 48 4f 57 45 58 54 45 4e 53 49 4f 4e 53  F_SHOWEXTENSIONS
7ab0: 20 3d 20 30 78 32 3b 0d 0a 63 6f 6e 73 74 20 53   = 0x2;..const S
7ac0: 53 46 5f 53 48 4f 57 43 4f 4d 50 43 4f 4c 4f 52  SF_SHOWCOMPCOLOR
7ad0: 20 3d 20 30 78 38 3b 0d 0a 63 6f 6e 73 74 20 53   = 0x8;..const S
7ae0: 53 46 5f 53 48 4f 57 53 59 53 46 49 4c 45 53 20  SF_SHOWSYSFILES 
7af0: 3d 20 30 78 32 30 3b 0d 0a 63 6f 6e 73 74 20 53  = 0x20;..const S
7b00: 53 46 5f 44 4f 55 42 4c 45 43 4c 49 43 4b 49 4e  SF_DOUBLECLICKIN
7b10: 57 45 42 56 49 45 57 20 3d 20 30 78 38 30 3b 0d  WEBVIEW = 0x80;.
7b20: 0a 63 6f 6e 73 74 20 53 53 46 5f 53 48 4f 57 41  .const SSF_SHOWA
7b30: 54 54 52 49 42 43 4f 4c 20 3d 20 30 78 31 30 30  TTRIBCOL = 0x100
7b40: 3b 0d 0a 63 6f 6e 73 74 20 53 53 46 5f 44 45 53  ;..const SSF_DES
7b50: 4b 54 4f 50 48 54 4d 4c 20 3d 20 30 78 32 30 30  KTOPHTML = 0x200
7b60: 3b 0d 0a 63 6f 6e 73 74 20 53 53 46 5f 57 49 4e  ;..const SSF_WIN
7b70: 39 35 43 4c 41 53 53 49 43 20 3d 20 30 78 34 30  95CLASSIC = 0x40
7b80: 30 3b 0d 0a 63 6f 6e 73 74 20 53 53 46 5f 44 4f  0;..const SSF_DO
7b90: 4e 54 50 52 45 54 54 59 50 41 54 48 20 3d 20 30  NTPRETTYPATH = 0
7ba0: 78 38 30 30 3b 0d 0a 63 6f 6e 73 74 20 53 53 46  x800;..const SSF
7bb0: 5f 4d 41 50 4e 45 54 44 52 56 42 55 54 54 4f 4e  _MAPNETDRVBUTTON
7bc0: 20 3d 20 30 78 31 30 30 30 3b 0d 0a 63 6f 6e 73   = 0x1000;..cons
7bd0: 74 20 53 53 46 5f 53 48 4f 57 49 4e 46 4f 54 49  t SSF_SHOWINFOTI
7be0: 50 20 3d 20 30 78 32 30 30 30 3b 0d 0a 63 6f 6e  P = 0x2000;..con
7bf0: 73 74 20 53 53 46 5f 48 49 44 45 49 43 4f 4e 53  st SSF_HIDEICONS
7c00: 20 3d 20 30 78 34 30 30 30 3b 0d 0a 63 6f 6e 73   = 0x4000;..cons
7c10: 74 20 53 53 46 5f 4e 4f 43 4f 4e 46 49 52 4d 52  t SSF_NOCONFIRMR
7c20: 45 43 59 43 4c 45 20 3d 20 30 78 38 30 30 30 3b  ECYCLE = 0x8000;
7c30: 0d 0a 0d 0a 69 6e 74 65 72 66 61 63 65 20 49 53  ....interface IS
7c40: 68 65 6c 6c 49 63 6f 6e 4f 76 65 72 6c 61 79 49  hellIconOverlayI
7c50: 64 65 6e 74 69 66 69 65 72 20 3a 20 49 55 6e 6b  dentifier : IUnk
7c60: 6e 6f 77 6e 20 7b 0d 0a 09 48 52 45 53 55 4c 54  nown {...HRESULT
7c70: 20 49 73 4d 65 6d 62 65 72 4f 66 28 4c 50 43 57   IsMemberOf(LPCW
7c80: 53 54 52 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 48  STR, DWORD);...H
7c90: 52 45 53 55 4c 54 20 47 65 74 4f 76 65 72 6c 61  RESULT GetOverla
7ca0: 79 49 6e 66 6f 28 4c 50 57 53 54 52 2c 20 69 6e  yInfo(LPWSTR, in
7cb0: 74 2c 20 69 6e 74 2a 2c 20 44 57 4f 52 44 2a 29  t, int*, DWORD*)
7cc0: 3b 0d 0a 09 48 52 45 53 55 4c 54 20 47 65 74 50  ;...HRESULT GetP
7cd0: 72 69 6f 72 69 74 79 28 69 6e 74 2a 29 3b 0d 0a  riority(int*);..
7ce0: 7d 0d 0a 0d 0a 63 6f 6e 73 74 20 49 53 49 4f 49  }....const ISIOI
7cf0: 5f 49 43 4f 4e 46 49 4c 45 20 20 3d 20 30 78 30  _ICONFILE  = 0x0
7d00: 30 30 30 30 30 30 31 3b 0d 0a 63 6f 6e 73 74 20  0000001;..const 
7d10: 49 53 49 4f 49 5f 49 43 4f 4e 49 4e 44 45 58 20  ISIOI_ICONINDEX 
7d20: 3d 20 30 78 30 30 30 30 30 30 30 32 3b 0d 0a 0d  = 0x00000002;...
7d30: 0a 73 74 61 74 69 63 20 69 66 20 28 5f 57 49 4e  .static if (_WIN
7d40: 33 32 5f 57 49 4e 4e 54 20 3e 3d 20 30 78 35 30  32_WINNT >= 0x50
7d50: 30 29 20 7b 0d 0a 09 73 74 72 75 63 74 20 53 48  0) {...struct SH
7d60: 45 4c 4c 53 54 41 54 45 20 7b 0d 0a 09 09 75 69  ELLSTATE {....ui
7d70: 6e 74 20 5f 62 66 31 3b 0d 0a 09 09 44 57 4f 52  nt _bf1;....DWOR
7d80: 44 20 64 77 57 69 6e 39 35 55 6e 75 73 65 64 3b  D dwWin95Unused;
7d90: 0d 0a 09 09 55 49 4e 54 20 75 57 69 6e 39 35 55  ....UINT uWin95U
7da0: 6e 75 73 65 64 3b 0d 0a 09 09 4c 4f 4e 47 20 6c  nused;....LONG l
7db0: 50 61 72 61 6d 53 6f 72 74 3b 0d 0a 09 09 69 6e  ParamSort;....in
7dc0: 74 20 69 53 6f 72 74 44 69 72 65 63 74 69 6f 6e  t iSortDirection
7dd0: 3b 0d 0a 09 09 55 49 4e 54 20 5f 76 65 72 73 69  ;....UINT _versi
7de0: 6f 6e 3b 0d 0a 09 09 55 49 4e 54 20 75 4e 6f 74  on;....UINT uNot
7df0: 55 73 65 64 3b 0d 0a 09 09 75 69 6e 74 20 5f 62  Used;....uint _b
7e00: 66 32 3b 0d 0a 09 2f 2a 0d 0a 09 09 42 4f 4f 4c  f2;.../*....BOOL
7e10: 20 66 53 68 6f 77 41 6c 6c 4f 62 6a 65 63 74 73   fShowAllObjects
7e20: 20 3a 20 31 3b 0d 0a 09 09 42 4f 4f 4c 20 66 53   : 1;....BOOL fS
7e30: 68 6f 77 45 78 74 65 6e 73 69 6f 6e 73 20 3a 20  howExtensions : 
7e40: 31 3b 0d 0a 09 09 42 4f 4f 4c 20 66 4e 6f 43 6f  1;....BOOL fNoCo
7e50: 6e 66 69 72 6d 52 65 63 79 63 6c 65 20 3a 20 31  nfirmRecycle : 1
7e60: 3b 0d 0a 09 09 42 4f 4f 4c 20 66 53 68 6f 77 53  ;....BOOL fShowS
7e70: 79 73 46 69 6c 65 73 20 3a 20 31 3b 0d 0a 09 09  ysFiles : 1;....
7e80: 42 4f 4f 4c 20 66 53 68 6f 77 43 6f 6d 70 43 6f  BOOL fShowCompCo
7e90: 6c 6f 72 20 3a 20 31 3b 0d 0a 09 09 42 4f 4f 4c  lor : 1;....BOOL
7ea0: 20 66 44 6f 75 62 6c 65 43 6c 69 63 6b 49 6e 57   fDoubleClickInW
7eb0: 65 62 56 69 65 77 20 3a 20 31 3b 0d 0a 09 09 42  ebView : 1;....B
7ec0: 4f 4f 4c 20 66 44 65 73 6b 74 6f 70 48 54 4d 4c  OOL fDesktopHTML
7ed0: 20 3a 20 31 3b 0d 0a 09 09 42 4f 4f 4c 20 66 57   : 1;....BOOL fW
7ee0: 69 6e 39 35 43 6c 61 73 73 69 63 20 3a 20 31 3b  in95Classic : 1;
7ef0: 0d 0a 09 09 42 4f 4f 4c 20 66 44 6f 6e 74 50 72  ....BOOL fDontPr
7f00: 65 74 74 79 50 61 74 68 20 3a 20 31 3b 0d 0a 09  ettyPath : 1;...
7f10: 09 42 4f 4f 4c 20 66 53 68 6f 77 41 74 74 72 69  .BOOL fShowAttri
7f20: 62 43 6f 6c 20 3a 20 31 3b 0d 0a 09 09 42 4f 4f  bCol : 1;....BOO
7f30: 4c 20 66 4d 61 70 4e 65 74 44 72 76 42 74 6e 20  L fMapNetDrvBtn 
7f40: 3a 20 31 3b 0d 0a 09 09 42 4f 4f 4c 20 66 53 68  : 1;....BOOL fSh
7f50: 6f 77 49 6e 66 6f 54 69 70 20 3a 20 31 3b 0d 0a  owInfoTip : 1;..
7f60: 09 09 42 4f 4f 4c 20 66 48 69 64 65 49 63 6f 6e  ..BOOL fHideIcon
7f70: 73 20 3a 20 31 3b 0d 0a 09 09 42 4f 4f 4c 20 66  s : 1;....BOOL f
7f80: 57 65 62 56 69 65 77 20 3a 20 31 3b 0d 0a 09 09  WebView : 1;....
7f90: 42 4f 4f 4c 20 66 46 69 6c 74 65 72 20 3a 20 31  BOOL fFilter : 1
7fa0: 3b 0d 0a 09 09 42 4f 4f 4c 20 66 53 68 6f 77 53  ;....BOOL fShowS
7fb0: 75 70 65 72 48 69 64 64 65 6e 20 3a 20 31 3b 0d  uperHidden : 1;.
7fc0: 0a 09 09 42 4f 4f 4c 20 66 4e 6f 4e 65 74 43 72  ...BOOL fNoNetCr
7fd0: 61 77 6c 69 6e 67 20 3a 20 31 3b 0d 0a 09 2a 2f  awling : 1;...*/
7fe0: 0d 0a 09 09 40 70 72 6f 70 65 72 74 79 20 62 6f  ....@property bo
7ff0: 6f 6c 20 66 53 68 6f 77 41 6c 6c 4f 62 6a 65 63  ol fShowAllObjec
8000: 74 73 28 29 20 20 20 20 20 20 20 7b 20 72 65 74  ts()       { ret
8010: 75 72 6e 20 63 61 73 74 28 62 6f 6f 6c 29 20 28  urn cast(bool) (
8020: 5f 62 66 31 20 26 20 30 78 30 30 30 30 30 30 30  _bf1 & 0x0000000
8030: 31 29 3b 20 7d 0d 0a 09 09 40 70 72 6f 70 65 72  1); }....@proper
8040: 74 79 20 62 6f 6f 6c 20 66 53 68 6f 77 45 78 74  ty bool fShowExt
8050: 65 6e 73 69 6f 6e 73 28 29 20 20 20 20 20 20 20  ensions()       
8060: 7b 20 72 65 74 75 72 6e 20 63 61 73 74 28 62 6f  { return cast(bo
8070: 6f 6c 29 20 28 5f 62 66 31 20 26 20 30 78 30 30  ol) (_bf1 & 0x00
8080: 30 30 30 30 30 32 29 3b 20 7d 0d 0a 09 09 40 70  000002); }....@p
8090: 72 6f 70 65 72 74 79 20 62 6f 6f 6c 20 66 4e 6f  roperty bool fNo
80a0: 43 6f 6e 66 69 72 6d 52 65 63 79 63 6c 65 28 29  ConfirmRecycle()
80b0: 20 20 20 20 20 7b 20 72 65 74 75 72 6e 20 63 61       { return ca
80c0: 73 74 28 62 6f 6f 6c 29 20 28 5f 62 66 31 20 26  st(bool) (_bf1 &
80d0: 20 30 78 30 30 30 30 30 30 30 34 29 3b 20 7d 0d   0x00000004); }.
80e0: 0a 09 09 40 70 72 6f 70 65 72 74 79 20 62 6f 6f  ...@property boo
80f0: 6c 20 66 53 68 6f 77 53 79 73 46 69 6c 65 73 28  l fShowSysFiles(
8100: 29 20 20 20 20 20 20 20 20 20 7b 20 72 65 74 75  )         { retu
8110: 72 6e 20 63 61 73 74 28 62 6f 6f 6c 29 20 28 5f  rn cast(bool) (_
8120: 62 66 31 20 26 20 30 78 30 30 30 30 30 30 30 38  bf1 & 0x00000008
8130: 29 3b 20 7d 0d 0a 09 09 40 70 72 6f 70 65 72 74  ); }....@propert
8140: 79 20 62 6f 6f 6c 20 66 53 68 6f 77 43 6f 6d 70  y bool fShowComp
8150: 43 6f 6c 6f 72 28 29 20 20 20 20 20 20 20 20 7b  Color()        {
8160: 20 72 65 74 75 72 6e 20 63 61 73 74 28 62 6f 6f   return cast(boo
8170: 6c 29 20 28 5f 62 66 31 20 26 20 30 78 30 30 30  l) (_bf1 & 0x000
8180: 30 30 30 31 30 29 3b 20 7d 0d 0a 09 09 40 70 72  00010); }....@pr
8190: 6f 70 65 72 74 79 20 62 6f 6f 6c 20 66 44 6f 75  operty bool fDou
81a0: 62 6c 65 43 6c 69 63 6b 49 6e 57 65 62 56 69 65  bleClickInWebVie
81b0: 77 28 29 20 7b 20 72 65 74 75 72 6e 20 63 61 73  w() { return cas
81c0: 74 28 62 6f 6f 6c 29 20 28 5f 62 66 31 20 26 20  t(bool) (_bf1 & 
81d0: 30 78 30 30 30 30 30 30 32 30 29 3b 20 7d 0d 0a  0x00000020); }..
81e0: 09 09 40 70 72 6f 70 65 72 74 79 20 62 6f 6f 6c  ..@property bool
81f0: 20 66 44 65 73 6b 74 6f 70 48 54 4d 4c 28 29 20   fDesktopHTML() 
8200: 20 20 20 20 20 20 20 20 20 7b 20 72 65 74 75 72           { retur
8210: 6e 20 63 61 73 74 28 62 6f 6f 6c 29 20 28 5f 62  n cast(bool) (_b
8220: 66 31 20 26 20 30 78 30 30 30 30 30 30 34 30 29  f1 & 0x00000040)
8230: 3b 20 7d 0d 0a 09 09 40 70 72 6f 70 65 72 74 79  ; }....@property
8240: 20 62 6f 6f 6c 20 66 57 69 6e 39 35 43 6c 61 73   bool fWin95Clas
8250: 73 69 63 28 29 20 20 20 20 20 20 20 20 20 7b 20  sic()         { 
8260: 72 65 74 75 72 6e 20 63 61 73 74 28 62 6f 6f 6c  return cast(bool
8270: 29 20 28 5f 62 66 31 20 26 20 30 78 30 30 30 30  ) (_bf1 & 0x0000
8280: 30 30 38 30 29 3b 20 7d 0d 0a 09 09 40 70 72 6f  0080); }....@pro
8290: 70 65 72 74 79 20 62 6f 6f 6c 20 66 44 6f 6e 74  perty bool fDont
82a0: 50 72 65 74 74 79 50 61 74 68 28 29 20 20 20 20  PrettyPath()    
82b0: 20 20 20 7b 20 72 65 74 75 72 6e 20 63 61 73 74     { return cast
82c0: 28 62 6f 6f 6c 29 20 28 5f 62 66 31 20 26 20 30  (bool) (_bf1 & 0
82d0: 78 30 30 30 30 30 31 30 30 29 3b 20 7d 0d 0a 09  x00000100); }...
82e0: 09 40 70 72 6f 70 65 72 74 79 20 62 6f 6f 6c 20  .@property bool 
82f0: 66 53 68 6f 77 41 74 74 72 69 62 43 6f 6c 28 29  fShowAttribCol()
8300: 20 20 20 20 20 20 20 20 7b 20 72 65 74 75 72 6e          { return
8310: 20 63 61 73 74 28 62 6f 6f 6c 29 20 28 5f 62 66   cast(bool) (_bf
8320: 31 20 26 20 30 78 30 30 30 30 30 32 30 30 29 3b  1 & 0x00000200);
8330: 20 7d 0d 0a 09 09 40 70 72 6f 70 65 72 74 79 20   }....@property 
8340: 62 6f 6f 6c 20 66 4d 61 70 4e 65 74 44 72 76 42  bool fMapNetDrvB
8350: 74 6e 28 29 20 20 20 20 20 20 20 20 20 7b 20 72  tn()         { r
8360: 65 74 75 72 6e 20 63 61 73 74 28 62 6f 6f 6c 29  eturn cast(bool)
8370: 20 28 5f 62 66 31 20 26 20 30 78 30 30 30 30 30   (_bf1 & 0x00000
8380: 34 30 30 29 3b 20 7d 0d 0a 09 09 40 70 72 6f 70  400); }....@prop
8390: 65 72 74 79 20 62 6f 6f 6c 20 66 53 68 6f 77 49  erty bool fShowI
83a0: 6e 66 6f 54 69 70 28 29 20 20 20 20 20 20 20 20  nfoTip()        
83b0: 20 20 7b 20 72 65 74 75 72 6e 20 63 61 73 74 28    { return cast(
83c0: 62 6f 6f 6c 29 20 28 5f 62 66 31 20 26 20 30 78  bool) (_bf1 & 0x
83d0: 30 30 30 30 30 38 30 30 29 3b 20 7d 0d 0a 09 09  00000800); }....
83e0: 40 70 72 6f 70 65 72 74 79 20 62 6f 6f 6c 20 66  @property bool f
83f0: 48 69 64 65 49 63 6f 6e 73 28 29 20 20 20 20 20  HideIcons()     
8400: 20 20 20 20 20 20 20 7b 20 72 65 74 75 72 6e 20         { return 
8410: 63 61 73 74 28 62 6f 6f 6c 29 20 28 5f 62 66 31  cast(bool) (_bf1
8420: 20 26 20 30 78 30 30 30 30 31 30 30 30 29 3b 20   & 0x00001000); 
8430: 7d 0d 0a 09 09 40 70 72 6f 70 65 72 74 79 20 62  }....@property b
8440: 6f 6f 6c 20 66 57 65 62 56 69 65 77 28 29 20 20  ool fWebView()  
8450: 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 72 65              { re
8460: 74 75 72 6e 20 63 61 73 74 28 62 6f 6f 6c 29 20  turn cast(bool) 
8470: 28 5f 62 66 31 20 26 20 30 78 30 30 30 30 32 30  (_bf1 & 0x000020
8480: 30 30 29 3b 20 7d 0d 0a 09 09 40 70 72 6f 70 65  00); }....@prope
8490: 72 74 79 20 62 6f 6f 6c 20 66 46 69 6c 74 65 72  rty bool fFilter
84a0: 28 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ()              
84b0: 20 7b 20 72 65 74 75 72 6e 20 63 61 73 74 28 62   { return cast(b
84c0: 6f 6f 6c 29 20 28 5f 62 66 31 20 26 20 30 78 30  ool) (_bf1 & 0x0
84d0: 30 30 30 34 30 30 30 29 3b 20 7d 0d 0a 09 09 40  0004000); }....@
84e0: 70 72 6f 70 65 72 74 79 20 62 6f 6f 6c 20 66 53  property bool fS
84f0: 68 6f 77 53 75 70 65 72 48 69 64 64 65 6e 28 29  howSuperHidden()
8500: 20 20 20 20 20 20 7b 20 72 65 74 75 72 6e 20 63        { return c
8510: 61 73 74 28 62 6f 6f 6c 29 20 28 5f 62 66 31 20  ast(bool) (_bf1 
8520: 26 20 30 78 30 30 30 30 38 30 30 30 29 3b 20 7d  & 0x00008000); }
8530: 0d 0a 09 09 40 70 72 6f 70 65 72 74 79 20 62 6f  ....@property bo
8540: 6f 6c 20 66 4e 6f 4e 65 74 43 72 61 77 6c 69 6e  ol fNoNetCrawlin
8550: 67 28 29 20 20 20 20 20 20 20 20 7b 20 72 65 74  g()        { ret
8560: 75 72 6e 20 63 61 73 74 28 62 6f 6f 6c 29 20 28  urn cast(bool) (
8570: 5f 62 66 31 20 26 20 30 78 30 30 30 31 30 30 30  _bf1 & 0x0001000
8580: 30 29 3b 20 7d 0d 0a 0d 0a 09 09 40 70 72 6f 70  0); }......@prop
8590: 65 72 74 79 20 62 6f 6f 6c 20 66 53 68 6f 77 41  erty bool fShowA
85a0: 6c 6c 4f 62 6a 65 63 74 73 28 62 6f 6f 6c 20 66  llObjects(bool f
85b0: 29 20 20 20 20 20 20 20 7b 20 5f 62 66 31 20 3d  )       { _bf1 =
85c0: 20 63 61 73 74 28 75 69 6e 74 29 20 28 28 5f 62   cast(uint) ((_b
85d0: 66 31 20 26 20 7e 30 78 46 46 46 46 46 46 46 45  f1 & ~0xFFFFFFFE
85e0: 29 20 7c 20 66 29 3b 20 20 20 20 20 20 20 20 20  ) | f);         
85f0: 72 65 74 75 72 6e 20 66 3b 20 7d 0d 0a 09 09 40  return f; }....@
8600: 70 72 6f 70 65 72 74 79 20 62 6f 6f 6c 20 66 53  property bool fS
8610: 68 6f 77 45 78 74 65 6e 73 69 6f 6e 73 28 62 6f  howExtensions(bo
8620: 6f 6c 20 66 29 20 20 20 20 20 20 20 7b 20 5f 62  ol f)       { _b
8630: 66 31 20 3d 20 63 61 73 74 28 75 69 6e 74 29 20  f1 = cast(uint) 
8640: 28 28 5f 62 66 31 20 26 20 7e 30 78 46 46 46 46  ((_bf1 & ~0xFFFF
8650: 46 46 46 44 29 20 7c 20 28 66 20 3c 3c 20 20 31  FFFD) | (f <<  1
8660: 29 29 3b 20 72 65 74 75 72 6e 20 66 3b 20 7d 0d  )); return f; }.
8670: 0a 09 09 40 70 72 6f 70 65 72 74 79 20 62 6f 6f  ...@property boo
8680: 6c 20 66 4e 6f 43 6f 6e 66 69 72 6d 52 65 63 79  l fNoConfirmRecy
8690: 63 6c 65 28 62 6f 6f 6c 20 66 29 20 20 20 20 20  cle(bool f)     
86a0: 7b 20 5f 62 66 31 20 3d 20 63 61 73 74 28 75 69  { _bf1 = cast(ui
86b0: 6e 74 29 20 28 28 5f 62 66 31 20 26 20 7e 30 78  nt) ((_bf1 & ~0x
86c0: 46 46 46 46 46 46 46 42 29 20 7c 20 28 66 20 3c  FFFFFFFB) | (f <
86d0: 3c 20 20 32 29 29 3b 20 72 65 74 75 72 6e 20 66  <  2)); return f
86e0: 3b 20 7d 0d 0a 09 09 40 70 72 6f 70 65 72 74 79  ; }....@property
86f0: 20 62 6f 6f 6c 20 66 53 68 6f 77 53 79 73 46 69   bool fShowSysFi
8700: 6c 65 73 28 62 6f 6f 6c 20 66 29 20 20 20 20 20  les(bool f)     
8710: 20 20 20 20 7b 20 5f 62 66 31 20 3d 20 63 61 73      { _bf1 = cas
8720: 74 28 75 69 6e 74 29 20 28 28 5f 62 66 31 20 26  t(uint) ((_bf1 &
8730: 20 7e 30 78 46 46 46 46 46 46 46 38 29 20 7c 20   ~0xFFFFFFF8) | 
8740: 28 66 20 3c 3c 20 20 33 29 29 3b 20 72 65 74 75  (f <<  3)); retu
8750: 72 6e 20 66 3b 20 7d 0d 0a 09 09 40 70 72 6f 70  rn f; }....@prop
8760: 65 72 74 79 20 62 6f 6f 6c 20 66 53 68 6f 77 43  erty bool fShowC
8770: 6f 6d 70 43 6f 6c 6f 72 28 62 6f 6f 6c 20 66 29  ompColor(bool f)
8780: 20 20 20 20 20 20 20 20 7b 20 5f 62 66 31 20 3d          { _bf1 =
8790: 20 63 61 73 74 28 75 69 6e 74 29 20 28 28 5f 62   cast(uint) ((_b
87a0: 66 31 20 26 20 7e 30 78 46 46 46 46 46 46 45 46  f1 & ~0xFFFFFFEF
87b0: 29 20 7c 20 28 66 20 3c 3c 20 20 34 29 29 3b 20  ) | (f <<  4)); 
87c0: 72 65 74 75 72 6e 20 66 3b 20 7d 0d 0a 09 09 40  return f; }....@
87d0: 70 72 6f 70 65 72 74 79 20 62 6f 6f 6c 20 66 44  property bool fD
87e0: 6f 75 62 6c 65 43 6c 69 63 6b 49 6e 57 65 62 56  oubleClickInWebV
87f0: 69 65 77 28 62 6f 6f 6c 20 66 29 20 7b 20 5f 62  iew(bool f) { _b
8800: 66 31 20 3d 20 63 61 73 74 28 75 69 6e 74 29 20  f1 = cast(uint) 
8810: 28 28 5f 62 66 31 20 26 20 7e 30 78 46 46 46 46  ((_bf1 & ~0xFFFF
8820: 46 46 44 46 29 20 7c 20 28 66 20 3c 3c 20 20 35  FFDF) | (f <<  5
8830: 29 29 3b 20 72 65 74 75 72 6e 20 66 3b 20 7d 0d  )); return f; }.
8840: 0a 09 09 40 70 72 6f 70 65 72 74 79 20 62 6f 6f  ...@property boo
8850: 6c 20 66 44 65 73 6b 74 6f 70 48 54 4d 4c 28 62  l fDesktopHTML(b
8860: 6f 6f 6c 20 66 29 20 20 20 20 20 20 20 20 20 20  ool f)          
8870: 7b 20 5f 62 66 31 20 3d 20 63 61 73 74 28 75 69  { _bf1 = cast(ui
8880: 6e 74 29 20 28 28 5f 62 66 31 20 26 20 7e 30 78  nt) ((_bf1 & ~0x
8890: 46 46 46 46 46 46 42 46 29 20 7c 20 28 66 20 3c  FFFFFFBF) | (f <
88a0: 3c 20 20 36 29 29 3b 20 72 65 74 75 72 6e 20 66  <  6)); return f
88b0: 3b 20 7d 0d 0a 09 09 40 70 72 6f 70 65 72 74 79  ; }....@property
88c0: 20 62 6f 6f 6c 20 66 57 69 6e 39 35 43 6c 61 73   bool fWin95Clas
88d0: 73 69 63 28 62 6f 6f 6c 20 66 29 20 20 20 20 20  sic(bool f)     
88e0: 20 20 20 20 7b 20 5f 62 66 31 20 3d 20 63 61 73      { _bf1 = cas
88f0: 74 28 75 69 6e 74 29 20 28 28 5f 62 66 31 20 26  t(uint) ((_bf1 &
8900: 20 7e 30 78 46 46 46 46 46 46 38 46 29 20 7c 20   ~0xFFFFFF8F) | 
8910: 28 66 20 3c 3c 20 20 37 29 29 3b 20 72 65 74 75  (f <<  7)); retu
8920: 72 6e 20 66 3b 20 7d 0d 0a 09 09 40 70 72 6f 70  rn f; }....@prop
8930: 65 72 74 79 20 62 6f 6f 6c 20 66 44 6f 6e 74 50  erty bool fDontP
8940: 72 65 74 74 79 50 61 74 68 28 62 6f 6f 6c 20 66  rettyPath(bool f
8950: 29 20 20 20 20 20 20 20 7b 20 5f 62 66 31 20 3d  )       { _bf1 =
8960: 20 63 61 73 74 28 75 69 6e 74 29 20 28 28 5f 62   cast(uint) ((_b
8970: 66 31 20 26 20 7e 30 78 46 46 46 46 46 45 46 46  f1 & ~0xFFFFFEFF
8980: 29 20 7c 20 28 66 20 3c 3c 20 20 38 29 29 3b 20  ) | (f <<  8)); 
8990: 72 65 74 75 72 6e 20 66 3b 20 7d 0d 0a 09 09 40  return f; }....@
89a0: 70 72 6f 70 65 72 74 79 20 62 6f 6f 6c 20 66 53  property bool fS
89b0: 68 6f 77 41 74 74 72 69 62 43 6f 6c 28 62 6f 6f  howAttribCol(boo
89c0: 6c 20 66 29 20 20 20 20 20 20 20 20 7b 20 5f 62  l f)        { _b
89d0: 66 31 20 3d 20 63 61 73 74 28 75 69 6e 74 29 20  f1 = cast(uint) 
89e0: 28 28 5f 62 66 31 20 26 20 7e 30 78 46 46 46 46  ((_bf1 & ~0xFFFF
89f0: 46 44 46 46 29 20 7c 20 28 66 20 3c 3c 20 20 39  FDFF) | (f <<  9
8a00: 29 29 3b 20 72 65 74 75 72 6e 20 66 3b 20 7d 0d  )); return f; }.
8a10: 0a 09 09 40 70 72 6f 70 65 72 74 79 20 62 6f 6f  ...@property boo
8a20: 6c 20 66 4d 61 70 4e 65 74 44 72 76 42 74 6e 28  l fMapNetDrvBtn(
8a30: 62 6f 6f 6c 20 66 29 20 20 20 20 20 20 20 20 20  bool f)         
8a40: 7b 20 5f 62 66 31 20 3d 20 63 61 73 74 28 75 69  { _bf1 = cast(ui
8a50: 6e 74 29 20 28 28 5f 62 66 31 20 26 20 7e 30 78  nt) ((_bf1 & ~0x
8a60: 46 46 46 46 46 42 46 46 29 20 7c 20 28 66 20 3c  FFFFFBFF) | (f <
8a70: 3c 20 31 30 29 29 3b 20 72 65 74 75 72 6e 20 66  < 10)); return f
8a80: 3b 20 7d 0d 0a 09 09 40 70 72 6f 70 65 72 74 79  ; }....@property
8a90: 20 62 6f 6f 6c 20 66 53 68 6f 77 49 6e 66 6f 54   bool fShowInfoT
8aa0: 69 70 28 62 6f 6f 6c 20 66 29 20 20 20 20 20 20  ip(bool f)      
8ab0: 20 20 20 20 7b 20 5f 62 66 31 20 3d 20 63 61 73      { _bf1 = cas
8ac0: 74 28 75 69 6e 74 29 20 28 28 5f 62 66 31 20 26  t(uint) ((_bf1 &
8ad0: 20 7e 30 78 46 46 46 46 46 38 46 46 29 20 7c 20   ~0xFFFFF8FF) | 
8ae0: 28 66 20 3c 3c 20 31 31 29 29 3b 20 72 65 74 75  (f << 11)); retu
8af0: 72 6e 20 66 3b 20 7d 0d 0a 09 09 40 70 72 6f 70  rn f; }....@prop
8b00: 65 72 74 79 20 62 6f 6f 6c 20 66 48 69 64 65 49  erty bool fHideI
8b10: 63 6f 6e 73 28 62 6f 6f 6c 20 66 29 20 20 20 20  cons(bool f)    
8b20: 20 20 20 20 20 20 20 20 7b 20 5f 62 66 31 20 3d          { _bf1 =
8b30: 20 63 61 73 74 28 75 69 6e 74 29 20 28 28 5f 62   cast(uint) ((_b
8b40: 66 31 20 26 20 7e 30 78 46 46 46 46 45 46 46 46  f1 & ~0xFFFFEFFF
8b50: 29 20 7c 20 28 66 20 3c 3c 20 31 32 29 29 3b 20  ) | (f << 12)); 
8b60: 72 65 74 75 72 6e 20 66 3b 20 7d 0d 0a 09 09 40  return f; }....@
8b70: 70 72 6f 70 65 72 74 79 20 62 6f 6f 6c 20 66 57  property bool fW
8b80: 65 62 56 69 65 77 28 62 6f 6f 6c 20 66 29 20 20  ebView(bool f)  
8b90: 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 5f 62              { _b
8ba0: 66 31 20 3d 20 63 61 73 74 28 75 69 6e 74 29 20  f1 = cast(uint) 
8bb0: 28 28 5f 62 66 31 20 26 20 7e 30 78 46 46 46 46  ((_bf1 & ~0xFFFF
8bc0: 44 46 46 46 29 20 7c 20 28 66 20 3c 3c 20 31 33  DFFF) | (f << 13
8bd0: 29 29 3b 20 72 65 74 75 72 6e 20 66 3b 20 7d 0d  )); return f; }.
8be0: 0a 09 09 40 70 72 6f 70 65 72 74 79 20 62 6f 6f  ...@property boo
8bf0: 6c 20 66 46 69 6c 74 65 72 28 62 6f 6f 6c 20 66  l fFilter(bool f
8c00: 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  )               
8c10: 7b 20 5f 62 66 31 20 3d 20 63 61 73 74 28 75 69  { _bf1 = cast(ui
8c20: 6e 74 29 20 28 28 5f 62 66 31 20 26 20 7e 30 78  nt) ((_bf1 & ~0x
8c30: 46 46 46 46 42 46 46 46 29 20 7c 20 28 66 20 3c  FFFFBFFF) | (f <
8c40: 3c 20 31 34 29 29 3b 20 72 65 74 75 72 6e 20 66  < 14)); return f
8c50: 3b 20 7d 0d 0a 09 09 40 70 72 6f 70 65 72 74 79  ; }....@property
8c60: 20 62 6f 6f 6c 20 66 53 68 6f 77 53 75 70 65 72   bool fShowSuper
8c70: 48 69 64 64 65 6e 28 62 6f 6f 6c 20 66 29 20 20  Hidden(bool f)  
8c80: 20 20 20 20 7b 20 5f 62 66 31 20 3d 20 63 61 73      { _bf1 = cas
8c90: 74 28 75 69 6e 74 29 20 28 28 5f 62 66 31 20 26  t(uint) ((_bf1 &
8ca0: 20 7e 30 78 46 46 46 46 38 46 46 46 29 20 7c 20   ~0xFFFF8FFF) | 
8cb0: 28 66 20 3c 3c 20 31 35 29 29 3b 20 72 65 74 75  (f << 15)); retu
8cc0: 72 6e 20 66 3b 20 7d 0d 0a 09 09 40 70 72 6f 70  rn f; }....@prop
8cd0: 65 72 74 79 20 62 6f 6f 6c 20 66 4e 6f 4e 65 74  erty bool fNoNet
8ce0: 43 72 61 77 6c 69 6e 67 28 62 6f 6f 6c 20 66 29  Crawling(bool f)
8cf0: 20 20 20 20 20 20 20 20 7b 20 5f 62 66 31 20 3d          { _bf1 =
8d00: 20 63 61 73 74 28 75 69 6e 74 29 20 28 28 5f 62   cast(uint) ((_b
8d10: 66 31 20 26 20 7e 30 78 46 46 46 45 46 46 46 46  f1 & ~0xFFFEFFFF
8d20: 29 20 7c 20 28 66 20 3c 3c 20 31 36 29 29 3b 20  ) | (f << 16)); 
8d30: 72 65 74 75 72 6e 20 66 3b 20 7d 0d 0a 09 2f 2a  return f; }.../*
8d40: 0d 0a 09 09 42 4f 4f 4c 20 66 53 65 70 50 72 6f  ....BOOL fSepPro
8d50: 63 65 73 73 20 3a 20 31 3b 0d 0a 09 09 42 4f 4f  cess : 1;....BOO
8d60: 4c 20 66 53 74 61 72 74 50 61 6e 65 6c 4f 6e 20  L fStartPanelOn 
8d70: 3a 20 31 3b 0d 0a 09 09 42 4f 4f 4c 20 66 53 68  : 1;....BOOL fSh
8d80: 6f 77 53 74 61 72 74 50 61 67 65 20 3a 20 31 3b  owStartPage : 1;
8d90: 0d 0a 09 09 55 49 4e 54 20 66 53 70 61 72 65 46  ....UINT fSpareF
8da0: 6c 61 67 73 20 3a 20 31 33 3b 0d 0a 09 2a 2f 0d  lags : 13;...*/.
8db0: 0a 09 09 40 70 72 6f 70 65 72 74 79 20 62 6f 6f  ...@property boo
8dc0: 6c 20 66 53 65 70 50 72 6f 63 65 73 73 28 29 20  l fSepProcess() 
8dd0: 20 20 20 20 20 20 20 20 20 20 7b 20 72 65 74 75            { retu
8de0: 72 6e 20 63 61 73 74 28 62 6f 6f 6c 29 20 28 5f  rn cast(bool) (_
8df0: 62 66 32 20 26 20 30 78 30 30 30 30 30 30 30 31  bf2 & 0x00000001
8e00: 29 3b 20 7d 0d 0a 09 09 40 70 72 6f 70 65 72 74  ); }....@propert
8e10: 79 20 62 6f 6f 6c 20 66 53 74 61 72 74 50 61 6e  y bool fStartPan
8e20: 65 6c 4f 6e 28 29 20 20 20 20 20 20 20 20 20 7b  elOn()         {
8e30: 20 72 65 74 75 72 6e 20 63 61 73 74 28 62 6f 6f   return cast(boo
8e40: 6c 29 20 28 5f 62 66 32 20 26 20 30 78 30 30 30  l) (_bf2 & 0x000
8e50: 30 30 30 30 32 29 3b 20 7d 0d 0a 09 09 40 70 72  00002); }....@pr
8e60: 6f 70 65 72 74 79 20 62 6f 6f 6c 20 66 53 68 6f  operty bool fSho
8e70: 77 53 74 61 72 74 50 61 67 65 28 29 20 20 20 20  wStartPage()    
8e80: 20 20 20 20 7b 20 72 65 74 75 72 6e 20 63 61 73      { return cas
8e90: 74 28 62 6f 6f 6c 29 20 28 5f 62 66 32 20 26 20  t(bool) (_bf2 & 
8ea0: 30 78 30 30 30 30 30 30 30 34 29 3b 20 7d 0d 0a  0x00000004); }..
8eb0: 09 09 40 70 72 6f 70 65 72 74 79 20 75 73 68 6f  ..@property usho
8ec0: 72 74 20 66 53 70 61 72 65 46 6c 61 67 73 28 29  rt fSpareFlags()
8ed0: 20 20 20 20 20 20 20 20 20 7b 20 72 65 74 75 72           { retur
8ee0: 6e 20 63 61 73 74 28 75 73 68 6f 72 74 29 20 28  n cast(ushort) (
8ef0: 28 5f 62 66 32 20 26 20 30 78 30 30 30 30 46 46  (_bf2 & 0x0000FF
8f00: 46 38 29 20 3e 3e 20 33 29 3b 20 7d 0d 0a 0d 0a  F8) >> 3); }....
8f10: 09 09 40 70 72 6f 70 65 72 74 79 20 62 6f 6f 6c  ..@property bool
8f20: 20 66 53 65 70 50 72 6f 63 65 73 73 28 62 6f 6f   fSepProcess(boo
8f30: 6c 20 66 29 20 20 20 20 20 7b 20 5f 62 66 32 20  l f)     { _bf2 
8f40: 3d 20 63 61 73 74 28 75 69 6e 74 29 20 28 28 5f  = cast(uint) ((_
8f50: 62 66 32 20 26 20 7e 30 78 46 46 46 46 46 46 46  bf2 & ~0xFFFFFFF
8f60: 45 29 20 7c 20 66 29 3b 20 20 20 20 20 20 20 20  E) | f);        
8f70: 72 65 74 75 72 6e 20 66 3b 20 7d 0d 0a 09 09 40  return f; }....@
8f80: 70 72 6f 70 65 72 74 79 20 62 6f 6f 6c 20 66 53  property bool fS
8f90: 74 61 72 74 50 61 6e 65 6c 4f 6e 28 62 6f 6f 6c  tartPanelOn(bool
8fa0: 20 66 29 20 20 20 7b 20 5f 62 66 32 20 3d 20 63   f)   { _bf2 = c
8fb0: 61 73 74 28 75 69 6e 74 29 20 28 28 5f 62 66 32  ast(uint) ((_bf2
8fc0: 20 26 20 7e 30 78 46 46 46 46 46 46 46 44 29 20   & ~0xFFFFFFFD) 
8fd0: 7c 20 28 66 20 3c 3c 20 31 29 29 3b 20 72 65 74  | (f << 1)); ret
8fe0: 75 72 6e 20 66 3b 20 7d 0d 0a 09 09 40 70 72 6f  urn f; }....@pro
8ff0: 70 65 72 74 79 20 62 6f 6f 6c 20 66 53 68 6f 77  perty bool fShow
9000: 53 74 61 72 74 50 61 67 65 28 62 6f 6f 6c 20 66  StartPage(bool f
9010: 29 20 20 7b 20 5f 62 66 32 20 3d 20 63 61 73 74  )  { _bf2 = cast
9020: 28 75 69 6e 74 29 20 28 28 5f 62 66 32 20 26 20  (uint) ((_bf2 & 
9030: 7e 30 78 46 46 46 46 46 46 46 42 29 20 7c 20 28  ~0xFFFFFFFB) | (
9040: 66 20 3c 3c 20 32 29 29 3b 20 72 65 74 75 72 6e  f << 2)); return
9050: 20 66 3b 20 7d 0d 0a 09 09 40 70 72 6f 70 65 72   f; }....@proper
9060: 74 79 20 75 73 68 6f 72 74 20 66 53 70 61 72 65  ty ushort fSpare
9070: 46 6c 61 67 73 28 75 73 68 6f 72 74 20 66 29 20  Flags(ushort f) 
9080: 7b 0d 0a 09 09 09 5f 62 66 32 20 3d 20 63 61 73  {....._bf2 = cas
9090: 74 28 75 73 68 6f 72 74 29 20 28 28 5f 62 66 32  t(ushort) ((_bf2
90a0: 20 26 20 7e 30 78 46 46 46 46 30 30 30 37 29 20   & ~0xFFFF0007) 
90b0: 7c 20 28 28 66 20 26 20 30 78 31 46 46 46 29 20  | ((f & 0x1FFF) 
90c0: 3c 3c 20 33 29 29 3b 0d 0a 09 09 09 72 65 74 75  << 3));.....retu
90d0: 72 6e 20 63 61 73 74 28 75 73 68 6f 72 74 29 20  rn cast(ushort) 
90e0: 28 66 20 26 20 30 78 31 46 46 46 29 3b 0d 0a 09  (f & 0x1FFF);...
90f0: 09 7d 0d 0a 09 7d 0d 0a 09 61 6c 69 61 73 20 53  .}...}...alias S
9100: 48 45 4c 4c 53 54 41 54 45 2a 20 4c 50 53 48 45  HELLSTATE* LPSHE
9110: 4c 4c 53 54 41 54 45 3b 0d 0a 7d 0d 0a 0d 0a 73  LLSTATE;..}....s
9120: 74 61 74 69 63 20 69 66 20 28 5f 57 49 4e 33 32  tatic if (_WIN32
9130: 5f 49 45 20 3e 3d 20 30 78 35 30 30 29 20 7b 0d  _IE >= 0x500) {.
9140: 0a 09 61 6c 69 67 6e 28 38 29 20 7b 0d 0a 09 09  ..align(8) {....
9150: 73 74 72 75 63 74 20 53 48 44 52 41 47 49 4d 41  struct SHDRAGIMA
9160: 47 45 20 7b 0d 0a 09 09 09 53 49 5a 45 20 73 69  GE {.....SIZE si
9170: 7a 65 44 72 61 67 49 6d 61 67 65 3b 0d 0a 09 09  zeDragImage;....
9180: 09 50 4f 49 4e 54 20 70 74 4f 66 66 73 65 74 3b  .POINT ptOffset;
9190: 0d 0a 09 09 09 48 42 49 54 4d 41 50 20 68 62 6d  .....HBITMAP hbm
91a0: 70 44 72 61 67 49 6d 61 67 65 3b 0d 0a 09 09 09  pDragImage;.....
91b0: 43 4f 4c 4f 52 52 45 46 20 63 72 43 6f 6c 6f 72  COLORREF crColor
91c0: 4b 65 79 3b 0d 0a 09 09 7d 0d 0a 09 09 61 6c 69  Key;....}....ali
91d0: 61 73 20 53 48 44 52 41 47 49 4d 41 47 45 2a 20  as SHDRAGIMAGE* 
91e0: 4c 50 53 48 44 52 41 47 49 4d 41 47 45 3b 0d 0a  LPSHDRAGIMAGE;..
91f0: 09 7d 0d 0a 0d 0a 09 69 6e 74 65 72 66 61 63 65  .}.....interface
9200: 20 49 44 72 61 67 53 6f 75 72 63 65 48 65 6c 70   IDragSourceHelp
9210: 65 72 20 3a 20 49 55 6e 6b 6e 6f 77 6e 20 7b 0d  er : IUnknown {.
9220: 0a 09 09 48 52 45 53 55 4c 54 20 49 6e 69 74 69  ...HRESULT Initi
9230: 61 6c 69 7a 65 46 72 6f 6d 42 69 74 6d 61 70 28  alizeFromBitmap(
9240: 4c 50 53 48 44 52 41 47 49 4d 41 47 45 20 70 73  LPSHDRAGIMAGE ps
9250: 68 64 69 2c 20 49 44 61 74 61 4f 62 6a 65 63 74  hdi, IDataObject
9260: 20 70 44 61 74 61 4f 62 6a 65 63 74 29 3b 0d 0a   pDataObject);..
9270: 09 09 48 52 45 53 55 4c 54 20 49 6e 69 74 69 61  ..HRESULT Initia
9280: 6c 69 7a 65 46 72 6f 6d 57 69 6e 64 6f 77 28 48  lizeFromWindow(H
9290: 57 4e 44 20 68 77 6e 64 2c 20 50 4f 49 4e 54 2a  WND hwnd, POINT*
92a0: 20 70 70 74 2c 20 49 44 61 74 61 4f 62 6a 65 63   ppt, IDataObjec
92b0: 74 20 70 44 61 74 61 4f 62 6a 65 63 74 29 3b 0d  t pDataObject);.
92c0: 0a 09 7d 0d 0a 0d 0a 09 69 6e 74 65 72 66 61 63  ..}.....interfac
92d0: 65 20 49 44 72 6f 70 54 61 72 67 65 74 48 65 6c  e IDropTargetHel
92e0: 70 65 72 20 3a 20 49 55 6e 6b 6e 6f 77 6e 20 7b  per : IUnknown {
92f0: 0d 0a 09 09 48 52 45 53 55 4c 54 20 44 72 61 67  ....HRESULT Drag
9300: 45 6e 74 65 72 28 48 57 4e 44 20 68 77 6e 64 54  Enter(HWND hwndT
9310: 61 72 67 65 74 2c 20 49 44 61 74 61 4f 62 6a 65  arget, IDataObje
9320: 63 74 20 70 44 61 74 61 4f 62 6a 65 63 74 2c 20  ct pDataObject, 
9330: 50 4f 49 4e 54 2a 20 70 70 74 2c 20 44 57 4f 52  POINT* ppt, DWOR
9340: 44 20 64 77 45 66 66 65 63 74 29 3b 0d 0a 09 09  D dwEffect);....
9350: 48 52 45 53 55 4c 54 20 44 72 61 67 4c 65 61 76  HRESULT DragLeav
9360: 65 28 29 3b 0d 0a 09 09 48 52 45 53 55 4c 54 20  e();....HRESULT 
9370: 44 72 61 67 4f 76 65 72 28 50 4f 49 4e 54 2a 20  DragOver(POINT* 
9380: 70 70 74 2c 20 44 57 4f 52 44 20 64 77 45 66 66  ppt, DWORD dwEff
9390: 65 63 74 29 3b 0d 0a 09 09 48 52 45 53 55 4c 54  ect);....HRESULT
93a0: 20 44 72 6f 70 28 49 44 61 74 61 4f 62 6a 65 63   Drop(IDataObjec
93b0: 74 20 70 44 61 74 61 4f 62 6a 65 63 74 2c 20 50  t pDataObject, P
93c0: 4f 49 4e 54 2a 20 70 70 74 2c 20 44 57 4f 52 44  OINT* ppt, DWORD
93d0: 20 64 77 45 66 66 65 63 74 29 3b 0d 0a 09 09 48   dwEffect);....H
93e0: 52 45 53 55 4c 54 20 53 68 6f 77 28 42 4f 4f 4c  RESULT Show(BOOL
93f0: 20 66 53 68 6f 77 29 3b 0d 0a 09 7d 0d 0a 7d 0d   fShow);...}..}.
9400: 0a 0d 0a 65 78 74 65 72 6e 20 28 57 69 6e 64 6f  ...extern (Windo
9410: 77 73 29 3a 0d 0a 76 6f 69 64 20 53 48 41 64 64  ws):..void SHAdd
9420: 54 6f 52 65 63 65 6e 74 44 6f 63 73 28 55 49 4e  ToRecentDocs(UIN
9430: 54 2c 20 50 43 56 4f 49 44 29 3b 0d 0a 4c 50 49  T, PCVOID);..LPI
9440: 54 45 4d 49 44 4c 49 53 54 20 53 48 42 72 6f 77  TEMIDLIST SHBrow
9450: 73 65 46 6f 72 46 6f 6c 64 65 72 41 28 50 42 52  seForFolderA(PBR
9460: 4f 57 53 45 49 4e 46 4f 41 29 3b 0d 0a 4c 50 49  OWSEINFOA);..LPI
9470: 54 45 4d 49 44 4c 49 53 54 20 53 48 42 72 6f 77  TEMIDLIST SHBrow
9480: 73 65 46 6f 72 46 6f 6c 64 65 72 57 28 50 42 52  seForFolderW(PBR
9490: 4f 57 53 45 49 4e 46 4f 57 29 3b 0d 0a 76 6f 69  OWSEINFOW);..voi
94a0: 64 20 53 48 43 68 61 6e 67 65 4e 6f 74 69 66 79  d SHChangeNotify
94b0: 28 4c 4f 4e 47 2c 20 55 49 4e 54 2c 20 50 43 56  (LONG, UINT, PCV
94c0: 4f 49 44 2c 20 50 43 56 4f 49 44 29 3b 0d 0a 48  OID, PCVOID);..H
94d0: 52 45 53 55 4c 54 20 53 48 47 65 74 44 61 74 61  RESULT SHGetData
94e0: 46 72 6f 6d 49 44 4c 69 73 74 41 28 4c 50 53 48  FromIDListA(LPSH
94f0: 45 4c 4c 46 4f 4c 44 45 52 2c 20 4c 50 43 49 54  ELLFOLDER, LPCIT
9500: 45 4d 49 44 4c 49 53 54 2c 20 69 6e 74 2c 20 50  EMIDLIST, int, P
9510: 56 4f 49 44 2c 20 69 6e 74 29 3b 0d 0a 48 52 45  VOID, int);..HRE
9520: 53 55 4c 54 20 53 48 47 65 74 44 61 74 61 46 72  SULT SHGetDataFr
9530: 6f 6d 49 44 4c 69 73 74 57 28 4c 50 53 48 45 4c  omIDListW(LPSHEL
9540: 4c 46 4f 4c 44 45 52 2c 20 4c 50 43 49 54 45 4d  LFOLDER, LPCITEM
9550: 49 44 4c 49 53 54 2c 20 69 6e 74 2c 20 50 56 4f  IDLIST, int, PVO
9560: 49 44 2c 20 69 6e 74 29 3b 0d 0a 48 52 45 53 55  ID, int);..HRESU
9570: 4c 54 20 53 48 47 65 74 44 65 73 6b 74 6f 70 46  LT SHGetDesktopF
9580: 6f 6c 64 65 72 28 4c 50 53 48 45 4c 4c 46 4f 4c  older(LPSHELLFOL
9590: 44 45 52 2a 29 3b 0d 0a 48 52 45 53 55 4c 54 20  DER*);..HRESULT 
95a0: 53 48 47 65 74 49 6e 73 74 61 6e 63 65 45 78 70  SHGetInstanceExp
95b0: 6c 6f 72 65 72 28 49 55 6e 6b 6e 6f 77 6e 2a 29  lorer(IUnknown*)
95c0: 3b 0d 0a 48 52 45 53 55 4c 54 20 53 48 47 65 74  ;..HRESULT SHGet
95d0: 4d 61 6c 6c 6f 63 28 4c 50 4d 41 4c 4c 4f 43 2a  Malloc(LPMALLOC*
95e0: 29 3b 0d 0a 42 4f 4f 4c 20 53 48 47 65 74 50 61  );..BOOL SHGetPa
95f0: 74 68 46 72 6f 6d 49 44 4c 69 73 74 41 28 4c 50  thFromIDListA(LP
9600: 43 49 54 45 4d 49 44 4c 49 53 54 2c 20 4c 50 53  CITEMIDLIST, LPS
9610: 54 52 29 3b 0d 0a 42 4f 4f 4c 20 53 48 47 65 74  TR);..BOOL SHGet
9620: 50 61 74 68 46 72 6f 6d 49 44 4c 69 73 74 57 28  PathFromIDListW(
9630: 4c 50 43 49 54 45 4d 49 44 4c 49 53 54 2c 20 4c  LPCITEMIDLIST, L
9640: 50 57 53 54 52 29 3b 0d 0a 48 52 45 53 55 4c 54  PWSTR);..HRESULT
9650: 20 53 48 47 65 74 53 70 65 63 69 61 6c 46 6f 6c   SHGetSpecialFol
9660: 64 65 72 4c 6f 63 61 74 69 6f 6e 28 48 57 4e 44  derLocation(HWND
9670: 2c 20 69 6e 74 2c 20 4c 50 49 54 45 4d 49 44 4c  , int, LPITEMIDL
9680: 49 53 54 2a 29 3b 0d 0a 48 52 45 53 55 4c 54 20  IST*);..HRESULT 
9690: 53 48 4c 6f 61 64 49 6e 50 72 6f 63 28 52 45 46  SHLoadInProc(REF
96a0: 43 4c 53 49 44 29 3b 0d 0a 0d 0a 73 74 61 74 69  CLSID);....stati
96b0: 63 20 69 66 20 28 5f 57 49 4e 33 32 5f 49 45 20  c if (_WIN32_IE 
96c0: 3e 3d 20 30 78 34 30 30 29 20 7b 0d 0a 09 42 4f  >= 0x400) {...BO
96d0: 4f 4c 20 53 48 47 65 74 53 70 65 63 69 61 6c 46  OL SHGetSpecialF
96e0: 6f 6c 64 65 72 50 61 74 68 41 28 48 57 4e 44 2c  olderPathA(HWND,
96f0: 20 4c 50 53 54 52 2c 20 69 6e 74 2c 20 42 4f 4f   LPSTR, int, BOO
9700: 4c 29 3b 0d 0a 09 42 4f 4f 4c 20 53 48 47 65 74  L);...BOOL SHGet
9710: 53 70 65 63 69 61 6c 46 6f 6c 64 65 72 50 61 74  SpecialFolderPat
9720: 68 57 28 48 57 4e 44 2c 20 4c 50 57 53 54 52 2c  hW(HWND, LPWSTR,
9730: 20 69 6e 74 2c 20 42 4f 4f 4c 29 3b 0d 0a 7d 0d   int, BOOL);..}.
9740: 0a 0d 0a 2f 2a 20 53 48 47 65 74 46 6f 6c 64 65  .../* SHGetFolde
9750: 72 50 61 74 68 20 69 6e 20 73 68 66 6f 6c 64 65  rPath in shfolde
9760: 72 2e 64 6c 6c 20 6f 6e 20 57 39 78 2c 20 4e 54  r.dll on W9x, NT
9770: 34 2c 20 61 6c 73 6f 20 69 6e 20 73 68 65 6c 6c  4, also in shell
9780: 33 32 2e 64 6c 6c 20 6f 6e 20 57 32 4b 20 2a 2f  32.dll on W2K */
9790: 0d 0a 48 52 45 53 55 4c 54 20 53 48 47 65 74 46  ..HRESULT SHGetF
97a0: 6f 6c 64 65 72 50 61 74 68 41 28 48 57 4e 44 2c  olderPathA(HWND,
97b0: 20 69 6e 74 2c 20 48 41 4e 44 4c 45 2c 20 44 57   int, HANDLE, DW
97c0: 4f 52 44 2c 20 4c 50 53 54 52 29 3b 0d 0a 48 52  ORD, LPSTR);..HR
97d0: 45 53 55 4c 54 20 53 48 47 65 74 46 6f 6c 64 65  ESULT SHGetFolde
97e0: 72 50 61 74 68 57 28 48 57 4e 44 2c 20 69 6e 74  rPathW(HWND, int
97f0: 2c 20 48 41 4e 44 4c 45 2c 20 44 57 4f 52 44 2c  , HANDLE, DWORD,
9800: 20 4c 50 57 53 54 52 29 3b 0d 0a 0d 0a 73 74 61   LPWSTR);....sta
9810: 74 69 63 20 69 66 20 28 5f 57 49 4e 33 32 5f 57  tic if (_WIN32_W
9820: 49 4e 4e 54 20 3e 3d 20 30 78 35 30 30 29 20 7b  INNT >= 0x500) {
9830: 0d 0a 09 49 4e 54 20 53 48 47 65 74 49 63 6f 6e  ...INT SHGetIcon
9840: 4f 76 65 72 6c 61 79 49 6e 64 65 78 57 28 4c 50  OverlayIndexW(LP
9850: 43 57 53 54 52 20 70 73 7a 49 63 6f 6e 50 61 74  CWSTR pszIconPat
9860: 68 2c 20 69 6e 74 20 69 49 63 6f 6e 49 6e 64 65  h, int iIconInde
9870: 78 29 3b 0d 0a 09 49 4e 54 20 53 48 47 65 74 49  x);...INT SHGetI
9880: 63 6f 6e 4f 76 65 72 6c 61 79 49 6e 64 65 78 41  conOverlayIndexA
9890: 28 4c 50 43 53 54 52 20 70 73 7a 49 63 6f 6e 50  (LPCSTR pszIconP
98a0: 61 74 68 2c 20 69 6e 74 20 69 49 63 6f 6e 49 6e  ath, int iIconIn
98b0: 64 65 78 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20  dex);...HRESULT 
98c0: 53 48 47 65 74 46 6f 6c 64 65 72 4c 6f 63 61 74  SHGetFolderLocat
98d0: 69 6f 6e 28 48 57 4e 44 2c 20 69 6e 74 2c 20 48  ion(HWND, int, H
98e0: 41 4e 44 4c 45 2c 20 44 57 4f 52 44 2c 20 4c 50  ANDLE, DWORD, LP
98f0: 49 54 45 4d 49 44 4c 49 53 54 2a 29 3b 0d 0a 09  ITEMIDLIST*);...
9900: 49 4e 54 20 53 48 43 72 65 61 74 65 44 69 72 65  INT SHCreateDire
9910: 63 74 6f 72 79 45 78 41 28 48 57 4e 44 2c 20 4c  ctoryExA(HWND, L
9920: 50 43 53 54 52 2c 20 4c 50 53 45 43 55 52 49 54  PCSTR, LPSECURIT
9930: 59 5f 41 54 54 52 49 42 55 54 45 53 29 3b 0d 0a  Y_ATTRIBUTES);..
9940: 09 49 4e 54 20 53 48 43 72 65 61 74 65 44 69 72  .INT SHCreateDir
9950: 65 63 74 6f 72 79 45 78 57 28 48 57 4e 44 2c 20  ectoryExW(HWND, 
9960: 4c 50 43 57 53 54 52 2c 20 4c 50 53 45 43 55 52  LPCWSTR, LPSECUR
9970: 49 54 59 5f 41 54 54 52 49 42 55 54 45 53 29 3b  ITY_ATTRIBUTES);
9980: 0d 0a 09 48 52 45 53 55 4c 54 20 53 48 42 69 6e  ...HRESULT SHBin
9990: 64 54 6f 50 61 72 65 6e 74 28 4c 50 43 49 54 45  dToParent(LPCITE
99a0: 4d 49 44 4c 49 53 54 2c 20 52 45 46 49 49 44 2c  MIDLIST, REFIID,
99b0: 20 56 4f 49 44 2a 2a 2c 20 4c 50 43 49 54 45 4d   VOID**, LPCITEM
99c0: 49 44 4c 49 53 54 2a 29 3b 0d 0a 7d 0d 0a 0d 0a  IDLIST*);..}....
99d0: 73 74 61 74 69 63 20 69 66 20 28 5f 57 49 4e 33  static if (_WIN3
99e0: 32 5f 57 49 4e 4e 54 20 3e 3d 20 30 78 35 30 31  2_WINNT >= 0x501
99f0: 29 20 7b 0d 0a 09 65 6e 75 6d 20 7b 0d 0a 09 09  ) {...enum {....
9a00: 50 52 46 5f 56 45 52 49 46 59 45 58 49 53 54 53  PRF_VERIFYEXISTS
9a10: 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 30           = 0x000
9a20: 31 2c 0d 0a 09 09 50 52 46 5f 54 52 59 50 52 4f  1,....PRF_TRYPRO
9a30: 47 52 41 4d 45 58 54 45 4e 53 49 4f 4e 53 20 3d  GRAMEXTENSIONS =
9a40: 20 28 30 78 30 30 30 32 20 7c 20 50 52 46 5f 56   (0x0002 | PRF_V
9a50: 45 52 49 46 59 45 58 49 53 54 53 29 2c 0d 0a 09  ERIFYEXISTS),...
9a60: 09 50 52 46 5f 46 49 52 53 54 44 49 52 44 45 46  .PRF_FIRSTDIRDEF
9a70: 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30            = 0x00
9a80: 30 34 2c 0d 0a 09 09 50 52 46 5f 44 4f 4e 54 46  04,....PRF_DONTF
9a90: 49 4e 44 4c 4e 4b 20 20 20 20 20 20 20 20 20 20  INDLNK          
9aa0: 3d 20 30 78 30 30 30 38 2c 0d 0a 09 09 49 44 4f  = 0x0008,....IDO
9ab0: 5f 53 48 47 49 4f 49 5f 53 48 41 52 45 20 20 20  _SHGIOI_SHARE   
9ac0: 20 20 20 20 20 20 3d 20 30 78 30 46 46 46 46 46        = 0x0FFFFF
9ad0: 46 46 2c 0d 0a 09 09 49 44 4f 5f 53 48 47 49 4f  FF,....IDO_SHGIO
9ae0: 49 5f 4c 49 4e 4b 20 20 20 20 20 20 20 20 20 20  I_LINK          
9af0: 3d 20 30 78 30 46 46 46 46 46 46 45 2c 0d 0a 09  = 0x0FFFFFFE,...
9b00: 09 49 44 4f 5f 53 48 47 49 4f 49 5f 53 4c 4f 57  .IDO_SHGIOI_SLOW
9b10: 46 49 4c 45 20 20 20 20 20 20 3d 20 30 78 30 46  FILE      = 0x0F
9b20: 46 46 46 46 46 44 2c 0d 0a 09 09 49 44 4f 5f 53  FFFFFD,....IDO_S
9b30: 48 47 49 4f 49 5f 44 45 46 41 55 4c 54 20 20 20  HGIOI_DEFAULT   
9b40: 20 20 20 20 3d 20 30 78 30 46 46 46 46 46 46 43      = 0x0FFFFFFC
9b50: 0d 0a 09 7d 0d 0a 0d 0a 09 73 74 72 75 63 74 20  ...}.....struct 
9b60: 53 48 44 45 53 43 52 49 50 54 49 4f 4e 49 44 20  SHDESCRIPTIONID 
9b70: 7b 0d 0a 09 09 44 57 4f 52 44 20 64 77 44 65 73  {....DWORD dwDes
9b80: 63 72 69 70 74 69 6f 6e 49 64 3b 0d 0a 09 09 43  criptionId;....C
9b90: 4c 53 49 44 20 63 6c 73 69 64 3b 0d 0a 09 7d 0d  LSID clsid;...}.
9ba0: 0a 09 61 6c 69 61 73 20 53 48 44 45 53 43 52 49  ..alias SHDESCRI
9bb0: 50 54 49 4f 4e 49 44 2a 20 4c 50 53 48 44 45 53  PTIONID* LPSHDES
9bc0: 43 52 49 50 54 49 4f 4e 49 44 3b 0d 0a 0d 0a 09  CRIPTIONID;.....
9bd0: 42 4f 4f 4c 20 50 61 74 68 52 65 73 6f 6c 76 65  BOOL PathResolve
9be0: 28 4c 50 57 53 54 52 2c 20 4c 50 43 57 53 54 52  (LPWSTR, LPCWSTR
9bf0: 2a 2c 20 55 49 4e 54 29 3b 0d 0a 09 48 52 45 53  *, UINT);...HRES
9c00: 55 4c 54 20 53 48 47 65 74 46 6f 6c 64 65 72 50  ULT SHGetFolderP
9c10: 61 74 68 41 6e 64 53 75 62 44 69 72 41 28 48 57  athAndSubDirA(HW
9c20: 4e 44 2c 20 69 6e 74 2c 20 48 41 4e 44 4c 45 2c  ND, int, HANDLE,
9c30: 20 44 57 4f 52 44 2c 20 4c 50 43 53 54 52 2c 20   DWORD, LPCSTR, 
9c40: 4c 50 53 54 52 29 3b 0d 0a 09 48 52 45 53 55 4c  LPSTR);...HRESUL
9c50: 54 20 53 48 47 65 74 46 6f 6c 64 65 72 50 61 74  T SHGetFolderPat
9c60: 68 41 6e 64 53 75 62 44 69 72 57 28 48 57 4e 44  hAndSubDirW(HWND
9c70: 2c 20 69 6e 74 2c 20 48 41 4e 44 4c 45 2c 20 44  , int, HANDLE, D
9c80: 57 4f 52 44 2c 20 4c 50 43 57 53 54 52 2c 20 4c  WORD, LPCWSTR, L
9c90: 50 57 53 54 52 29 3b 0d 0a 09 48 52 45 53 55 4c  PWSTR);...HRESUL
9ca0: 54 20 53 48 50 61 72 73 65 44 69 73 70 6c 61 79  T SHParseDisplay
9cb0: 4e 61 6d 65 28 4c 50 43 57 53 54 52 2c 20 49 42  Name(LPCWSTR, IB
9cc0: 69 6e 64 43 74 78 2c 20 4c 50 49 54 45 4d 49 44  indCtx, LPITEMID
9cd0: 4c 49 53 54 2c 20 53 46 47 41 4f 46 2c 20 53 46  LIST, SFGAOF, SF
9ce0: 47 41 4f 46 2a 29 3b 0d 0a 7d 0d 0a 0d 0a 76 6f  GAOF*);..}....vo
9cf0: 69 64 20 53 48 47 65 74 53 65 74 74 69 6e 67 73  id SHGetSettings
9d00: 28 4c 50 53 48 45 4c 4c 46 4c 41 47 53 54 41 54  (LPSHELLFLAGSTAT
9d10: 45 2c 20 44 57 4f 52 44 29 3b 0d 0a 0d 0a 73 74  E, DWORD);....st
9d20: 61 74 69 63 20 69 66 20 28 5f 57 49 4e 33 32 5f  atic if (_WIN32_
9d30: 57 49 4e 4e 54 20 3e 3d 20 30 78 35 30 30 29 20  WINNT >= 0x500) 
9d40: 7b 0d 0a 09 76 6f 69 64 20 53 48 47 65 74 53 65  {...void SHGetSe
9d50: 74 53 65 74 74 69 6e 67 73 28 4c 50 53 48 45 4c  tSettings(LPSHEL
9d60: 4c 53 54 41 54 45 2c 20 44 57 4f 52 44 2c 20 42  LSTATE, DWORD, B
9d70: 4f 4f 4c 29 3b 0d 0a 09 42 4f 4f 4c 20 49 4c 49  OOL);...BOOL ILI
9d80: 73 45 71 75 61 6c 28 4c 50 43 49 54 45 4d 49 44  sEqual(LPCITEMID
9d90: 4c 49 53 54 2c 20 4c 50 43 49 54 45 4d 49 44 4c  LIST, LPCITEMIDL
9da0: 49 53 54 29 3b 0d 0a 09 42 4f 4f 4c 20 49 4c 49  IST);...BOOL ILI
9db0: 73 50 61 72 65 6e 74 28 4c 50 43 49 54 45 4d 49  sParent(LPCITEMI
9dc0: 44 4c 49 53 54 2c 20 4c 50 43 49 54 45 4d 49 44  DLIST, LPCITEMID
9dd0: 4c 49 53 54 2c 20 42 4f 4f 4c 29 3b 0d 0a 09 42  LIST, BOOL);...B
9de0: 4f 4f 4c 20 49 4c 52 65 6d 6f 76 65 4c 61 73 74  OOL ILRemoveLast
9df0: 49 44 28 4c 50 49 54 45 4d 49 44 4c 49 53 54 29  ID(LPITEMIDLIST)
9e00: 3b 0d 0a 09 48 52 45 53 55 4c 54 20 49 4c 4c 6f  ;...HRESULT ILLo
9e10: 61 64 46 72 6f 6d 53 74 72 65 61 6d 28 49 53 74  adFromStream(ISt
9e20: 72 65 61 6d 2c 20 4c 50 49 54 45 4d 49 44 4c 49  ream, LPITEMIDLI
9e30: 53 54 2a 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20  ST*);...HRESULT 
9e40: 49 4c 53 61 76 65 54 6f 53 74 72 65 61 6d 28 49  ILSaveToStream(I
9e50: 53 74 72 65 61 6d 2c 20 4c 50 43 49 54 45 4d 49  Stream, LPCITEMI
9e60: 44 4c 49 53 54 29 3b 0d 0a 09 4c 50 49 54 45 4d  DLIST);...LPITEM
9e70: 49 44 4c 49 53 54 20 49 4c 41 70 70 65 6e 64 49  IDLIST ILAppendI
9e80: 44 28 4c 50 49 54 45 4d 49 44 4c 49 53 54 2c 20  D(LPITEMIDLIST, 
9e90: 4c 50 43 53 48 49 54 45 4d 49 44 2c 20 42 4f 4f  LPCSHITEMID, BOO
9ea0: 4c 29 3b 0d 0a 09 4c 50 49 54 45 4d 49 44 4c 49  L);...LPITEMIDLI
9eb0: 53 54 20 49 4c 43 6c 6f 6e 65 28 4c 50 43 49 54  ST ILClone(LPCIT
9ec0: 45 4d 49 44 4c 49 53 54 29 3b 0d 0a 09 4c 50 49  EMIDLIST);...LPI
9ed0: 54 45 4d 49 44 4c 49 53 54 20 49 4c 43 6c 6f 6e  TEMIDLIST ILClon
9ee0: 65 46 69 72 73 74 28 4c 50 43 49 54 45 4d 49 44  eFirst(LPCITEMID
9ef0: 4c 49 53 54 29 3b 0d 0a 09 4c 50 49 54 45 4d 49  LIST);...LPITEMI
9f00: 44 4c 49 53 54 20 49 4c 43 6f 6d 62 69 6e 65 28  DLIST ILCombine(
9f10: 4c 50 43 49 54 45 4d 49 44 4c 49 53 54 2c 20 4c  LPCITEMIDLIST, L
9f20: 50 43 49 54 45 4d 49 44 4c 49 53 54 29 3b 0d 0a  PCITEMIDLIST);..
9f30: 09 4c 50 49 54 45 4d 49 44 4c 49 53 54 20 49 4c  .LPITEMIDLIST IL
9f40: 46 69 6e 64 43 68 69 6c 64 28 4c 50 43 49 54 45  FindChild(LPCITE
9f50: 4d 49 44 4c 49 53 54 2c 20 4c 50 43 49 54 45 4d  MIDLIST, LPCITEM
9f60: 49 44 4c 49 53 54 29 3b 0d 0a 09 4c 50 49 54 45  IDLIST);...LPITE
9f70: 4d 49 44 4c 49 53 54 20 49 4c 46 69 6e 64 4c 61  MIDLIST ILFindLa
9f80: 73 74 49 44 28 4c 50 43 49 54 45 4d 49 44 4c 49  stID(LPCITEMIDLI
9f90: 53 54 29 3b 0d 0a 09 4c 50 49 54 45 4d 49 44 4c  ST);...LPITEMIDL
9fa0: 49 53 54 20 49 4c 47 65 74 4e 65 78 74 28 4c 50  IST ILGetNext(LP
9fb0: 43 49 54 45 4d 49 44 4c 49 53 54 29 3b 0d 0a 09  CITEMIDLIST);...
9fc0: 55 49 4e 54 20 49 4c 47 65 74 53 69 7a 65 28 4c  UINT ILGetSize(L
9fd0: 50 43 49 54 45 4d 49 44 4c 49 53 54 29 3b 0d 0a  PCITEMIDLIST);..
9fe0: 09 76 6f 69 64 20 49 4c 46 72 65 65 28 4c 50 49  .void ILFree(LPI
9ff0: 54 45 4d 49 44 4c 49 53 54 29 3b 0d 0a 0d 0a 09  TEMIDLIST);.....
a000: 48 52 45 53 55 4c 54 20 53 48 43 6f 43 72 65 61  HRESULT SHCoCrea
a010: 74 65 49 6e 73 74 61 6e 63 65 28 4c 50 43 57 53  teInstance(LPCWS
a020: 54 52 2c 20 52 45 46 43 4c 53 49 44 2c 20 49 55  TR, REFCLSID, IU
a030: 6e 6b 6e 6f 77 6e 2c 20 52 45 46 49 49 44 2c 20  nknown, REFIID, 
a040: 76 6f 69 64 2a 2a 29 3b 0d 0a 7d 0d 0a 0d 0a 76  void**);..}....v
a050: 65 72 73 69 6f 6e 28 55 6e 69 63 6f 64 65 29 20  ersion(Unicode) 
a060: 7b 0d 0a 09 61 6c 69 61 73 20 49 53 68 65 6c 6c  {...alias IShell
a070: 45 78 65 63 75 74 65 48 6f 6f 6b 57 20 49 53 68  ExecuteHookW ISh
a080: 65 6c 6c 45 78 65 63 75 74 65 48 6f 6f 6b 3b 0d  ellExecuteHook;.
a090: 0a 09 61 6c 69 61 73 20 49 53 68 65 6c 6c 4c 69  ..alias IShellLi
a0a0: 6e 6b 57 20 49 53 68 65 6c 6c 4c 69 6e 6b 3b 0d  nkW IShellLink;.
a0b0: 0a 09 61 6c 69 61 73 20 42 52 4f 57 53 45 49 4e  ..alias BROWSEIN
a0c0: 46 4f 57 20 42 52 4f 57 53 45 49 4e 46 4f 3b 0d  FOW BROWSEINFO;.
a0d0: 0a 09 61 6c 69 61 73 20 53 48 42 72 6f 77 73 65  ..alias SHBrowse
a0e0: 46 6f 72 46 6f 6c 64 65 72 57 20 53 48 42 72 6f  ForFolderW SHBro
a0f0: 77 73 65 46 6f 72 46 6f 6c 64 65 72 3b 0d 0a 09  wseForFolder;...
a100: 61 6c 69 61 73 20 53 48 47 65 74 44 61 74 61 46  alias SHGetDataF
a110: 72 6f 6d 49 44 4c 69 73 74 57 20 53 48 47 65 74  romIDListW SHGet
a120: 44 61 74 61 46 72 6f 6d 49 44 4c 69 73 74 3b 0d  DataFromIDList;.
a130: 0a 09 61 6c 69 61 73 20 53 48 47 65 74 50 61 74  ..alias SHGetPat
a140: 68 46 72 6f 6d 49 44 4c 69 73 74 57 20 53 48 47  hFromIDListW SHG
a150: 65 74 50 61 74 68 46 72 6f 6d 49 44 4c 69 73 74  etPathFromIDList
a160: 3b 0d 0a 09 73 74 61 74 69 63 20 69 66 20 28 5f  ;...static if (_
a170: 57 49 4e 33 32 5f 49 45 20 3e 3d 20 30 78 34 30  WIN32_IE >= 0x40
a180: 30 29 20 7b 0d 0a 09 09 61 6c 69 61 73 20 53 48  0) {....alias SH
a190: 47 65 74 53 70 65 63 69 61 6c 46 6f 6c 64 65 72  GetSpecialFolder
a1a0: 50 61 74 68 57 20 53 48 47 65 74 53 70 65 63 69  PathW SHGetSpeci
a1b0: 61 6c 46 6f 6c 64 65 72 50 61 74 68 3b 0d 0a 09  alFolderPath;...
a1c0: 7d 0d 0a 09 61 6c 69 61 73 20 53 48 47 65 74 46  }...alias SHGetF
a1d0: 6f 6c 64 65 72 50 61 74 68 57 20 53 48 47 65 74  olderPathW SHGet
a1e0: 46 6f 6c 64 65 72 50 61 74 68 3b 0d 0a 09 73 74  FolderPath;...st
a1f0: 61 74 69 63 20 69 66 20 28 5f 57 49 4e 33 32 5f  atic if (_WIN32_
a200: 57 49 4e 4e 54 20 3e 3d 20 30 78 35 30 30 29 20  WINNT >= 0x500) 
a210: 7b 0d 0a 09 09 61 6c 69 61 73 20 53 48 47 65 74  {....alias SHGet
a220: 49 63 6f 6e 4f 76 65 72 6c 61 79 49 6e 64 65 78  IconOverlayIndex
a230: 57 20 53 48 47 65 74 49 63 6f 6e 4f 76 65 72 6c  W SHGetIconOverl
a240: 61 79 49 6e 64 65 78 3b 0d 0a 09 09 61 6c 69 61  ayIndex;....alia
a250: 73 20 53 48 43 72 65 61 74 65 44 69 72 65 63 74  s SHCreateDirect
a260: 6f 72 79 45 78 57 20 53 48 43 72 65 61 74 65 44  oryExW SHCreateD
a270: 69 72 65 63 74 6f 72 79 45 78 3b 0d 0a 09 7d 0d  irectoryEx;...}.
a280: 0a 09 73 74 61 74 69 63 20 69 66 20 28 5f 57 49  ..static if (_WI
a290: 4e 33 32 5f 57 49 4e 4e 54 20 3e 3d 20 30 78 35  N32_WINNT >= 0x5
a2a0: 30 31 29 20 7b 0d 0a 09 09 61 6c 69 61 73 20 53  01) {....alias S
a2b0: 48 47 65 74 46 6f 6c 64 65 72 50 61 74 68 41 6e  HGetFolderPathAn
a2c0: 64 53 75 62 44 69 72 57 20 53 48 47 65 74 46 6f  dSubDirW SHGetFo
a2d0: 6c 64 65 72 50 61 74 68 41 6e 64 53 75 62 44 69  lderPathAndSubDi
a2e0: 72 3b 0d 0a 09 7d 0d 0a 09 61 6c 69 61 73 20 46  r;...}...alias F
a2f0: 49 4c 45 44 45 53 43 52 49 50 54 4f 52 57 20 46  ILEDESCRIPTORW F
a300: 49 4c 45 44 45 53 43 52 49 50 54 4f 52 3b 0d 0a  ILEDESCRIPTOR;..
a310: 09 61 6c 69 61 73 20 4c 50 46 49 4c 45 44 45 53  .alias LPFILEDES
a320: 43 52 49 50 54 4f 52 57 20 4c 50 46 49 4c 45 44  CRIPTORW LPFILED
a330: 45 53 43 52 49 50 54 4f 52 3b 0d 0a 09 61 6c 69  ESCRIPTOR;...ali
a340: 61 73 20 46 49 4c 45 47 52 4f 55 50 44 45 53 43  as FILEGROUPDESC
a350: 52 49 50 54 4f 52 57 20 46 49 4c 45 47 52 4f 55  RIPTORW FILEGROU
a360: 50 44 45 53 43 52 49 50 54 4f 52 3b 0d 0a 09 61  PDESCRIPTOR;...a
a370: 6c 69 61 73 20 4c 50 46 49 4c 45 47 52 4f 55 50  lias LPFILEGROUP
a380: 44 45 53 43 52 49 50 54 4f 52 57 20 4c 50 46 49  DESCRIPTORW LPFI
a390: 4c 45 47 52 4f 55 50 44 45 53 43 52 49 50 54 4f  LEGROUPDESCRIPTO
a3a0: 52 3b 0d 0a 0d 0a 7d 20 65 6c 73 65 20 7b 0d 0a  R;....} else {..
a3b0: 09 61 6c 69 61 73 20 49 53 68 65 6c 6c 45 78 65  .alias IShellExe
a3c0: 63 75 74 65 48 6f 6f 6b 41 20 49 53 68 65 6c 6c  cuteHookA IShell
a3d0: 45 78 65 63 75 74 65 48 6f 6f 6b 3b 0d 0a 09 61  ExecuteHook;...a
a3e0: 6c 69 61 73 20 49 53 68 65 6c 6c 4c 69 6e 6b 41  lias IShellLinkA
a3f0: 20 49 53 68 65 6c 6c 4c 69 6e 6b 3b 0d 0a 09 61   IShellLink;...a
a400: 6c 69 61 73 20 42 52 4f 57 53 45 49 4e 46 4f 41  lias BROWSEINFOA
a410: 20 42 52 4f 57 53 45 49 4e 46 4f 3b 0d 0a 09 61   BROWSEINFO;...a
a420: 6c 69 61 73 20 53 48 42 72 6f 77 73 65 46 6f 72  lias SHBrowseFor
a430: 46 6f 6c 64 65 72 41 20 53 48 42 72 6f 77 73 65  FolderA SHBrowse
a440: 46 6f 72 46 6f 6c 64 65 72 3b 0d 0a 09 61 6c 69  ForFolder;...ali
a450: 61 73 20 53 48 47 65 74 44 61 74 61 46 72 6f 6d  as SHGetDataFrom
a460: 49 44 4c 69 73 74 41 20 53 48 47 65 74 44 61 74  IDListA SHGetDat
a470: 61 46 72 6f 6d 49 44 4c 69 73 74 3b 0d 0a 09 61  aFromIDList;...a
a480: 6c 69 61 73 20 53 48 47 65 74 50 61 74 68 46 72  lias SHGetPathFr
a490: 6f 6d 49 44 4c 69 73 74 41 20 53 48 47 65 74 50  omIDListA SHGetP
a4a0: 61 74 68 46 72 6f 6d 49 44 4c 69 73 74 3b 0d 0a  athFromIDList;..
a4b0: 09 73 74 61 74 69 63 20 69 66 20 28 5f 57 49 4e  .static if (_WIN
a4c0: 33 32 5f 49 45 20 3e 3d 20 30 78 34 30 30 29 20  32_IE >= 0x400) 
a4d0: 7b 0d 0a 09 09 61 6c 69 61 73 20 53 48 47 65 74  {....alias SHGet
a4e0: 53 70 65 63 69 61 6c 46 6f 6c 64 65 72 50 61 74  SpecialFolderPat
a4f0: 68 41 20 53 48 47 65 74 53 70 65 63 69 61 6c 46  hA SHGetSpecialF
a500: 6f 6c 64 65 72 50 61 74 68 3b 0d 0a 09 7d 0d 0a  olderPath;...}..
a510: 09 61 6c 69 61 73 20 53 48 47 65 74 46 6f 6c 64  .alias SHGetFold
a520: 65 72 50 61 74 68 41 20 53 48 47 65 74 46 6f 6c  erPathA SHGetFol
a530: 64 65 72 50 61 74 68 3b 0d 0a 09 73 74 61 74 69  derPath;...stati
a540: 63 20 69 66 20 28 5f 57 49 4e 33 32 5f 57 49 4e  c if (_WIN32_WIN
a550: 4e 54 20 3e 3d 20 30 78 35 30 30 29 20 7b 0d 0a  NT >= 0x500) {..
a560: 09 09 61 6c 69 61 73 20 53 48 47 65 74 49 63 6f  ..alias SHGetIco
a570: 6e 4f 76 65 72 6c 61 79 49 6e 64 65 78 41 20 53  nOverlayIndexA S
a580: 48 47 65 74 49 63 6f 6e 4f 76 65 72 6c 61 79 49  HGetIconOverlayI
a590: 6e 64 65 78 3b 0d 0a 09 09 61 6c 69 61 73 20 53  ndex;....alias S
a5a0: 48 43 72 65 61 74 65 44 69 72 65 63 74 6f 72 79  HCreateDirectory
a5b0: 45 78 41 20 53 48 43 72 65 61 74 65 44 69 72 65  ExA SHCreateDire
a5c0: 63 74 6f 72 79 45 78 3b 0d 0a 09 7d 0d 0a 09 73  ctoryEx;...}...s
a5d0: 74 61 74 69 63 20 69 66 20 28 5f 57 49 4e 33 32  tatic if (_WIN32
a5e0: 5f 57 49 4e 4e 54 20 3e 3d 20 30 78 35 30 31 29  _WINNT >= 0x501)
a5f0: 20 7b 0d 0a 09 09 61 6c 69 61 73 20 53 48 47 65   {....alias SHGe
a600: 74 46 6f 6c 64 65 72 50 61 74 68 41 6e 64 53 75  tFolderPathAndSu
a610: 62 44 69 72 41 20 53 48 47 65 74 46 6f 6c 64 65  bDirA SHGetFolde
a620: 72 50 61 74 68 41 6e 64 53 75 62 44 69 72 3b 0d  rPathAndSubDir;.
a630: 0a 09 7d 0d 0a 09 61 6c 69 61 73 20 46 49 4c 45  ..}...alias FILE
a640: 44 45 53 43 52 49 50 54 4f 52 41 20 46 49 4c 45  DESCRIPTORA FILE
a650: 44 45 53 43 52 49 50 54 4f 52 3b 0d 0a 09 61 6c  DESCRIPTOR;...al
a660: 69 61 73 20 4c 50 46 49 4c 45 44 45 53 43 52 49  ias LPFILEDESCRI
a670: 50 54 4f 52 41 20 4c 50 46 49 4c 45 44 45 53 43  PTORA LPFILEDESC
a680: 52 49 50 54 4f 52 3b 0d 0a 09 61 6c 69 61 73 20  RIPTOR;...alias 
a690: 46 49 4c 45 47 52 4f 55 50 44 45 53 43 52 49 50  FILEGROUPDESCRIP
a6a0: 54 4f 52 41 20 46 49 4c 45 47 52 4f 55 50 44 45  TORA FILEGROUPDE
a6b0: 53 43 52 49 50 54 4f 52 3b 0d 0a 09 61 6c 69 61  SCRIPTOR;...alia
a6c0: 73 20 4c 50 46 49 4c 45 47 52 4f 55 50 44 45 53  s LPFILEGROUPDES
a6d0: 43 52 49 50 54 4f 52 41 20 4c 50 46 49 4c 45 47  CRIPTORA LPFILEG
a6e0: 52 4f 55 50 44 45 53 43 52 49 50 54 4f 52 3b 0d  ROUPDESCRIPTOR;.
a6f0: 0a 7d 0d 0a 61 6c 69 61 73 20 42 52 4f 57 53 45  .}..alias BROWSE
a700: 49 4e 46 4f 2a 20 50 42 52 4f 57 53 45 49 4e 46  INFO* PBROWSEINF
a710: 4f 2c 20 4c 50 42 52 4f 57 53 45 49 4e 46 4f 3b  O, LPBROWSEINFO;
a720: 0d 0a 0d 0a 73 74 61 74 69 63 20 69 66 20 28 5f  ....static if (_
a730: 57 49 4e 33 32 5f 57 49 4e 4e 54 20 3e 3d 20 30  WIN32_WINNT >= 0
a740: 78 35 30 31 29 20 7b 0d 0a 09 69 6e 74 65 72 66  x501) {...interf
a750: 61 63 65 20 49 46 6f 6c 64 65 72 56 69 65 77 20  ace IFolderView 
a760: 3a 20 49 55 6e 6b 6e 6f 77 6e 20 7b 0d 0a 09 20  : IUnknown {... 
a770: 20 20 48 52 45 53 55 4c 54 20 47 65 74 41 75 74    HRESULT GetAut
a780: 6f 41 72 72 61 6e 67 65 28 29 3b 0d 0a 09 20 20  oArrange();...  
a790: 20 48 52 45 53 55 4c 54 20 47 65 74 43 75 72 72   HRESULT GetCurr
a7a0: 65 6e 74 56 69 65 77 4d 6f 64 65 28 55 49 4e 54  entViewMode(UINT
a7b0: 29 3b 0d 0a 09 20 20 20 48 52 45 53 55 4c 54 20  );...   HRESULT 
a7c0: 47 65 74 44 65 66 61 75 6c 74 53 70 61 63 69 6e  GetDefaultSpacin
a7d0: 67 28 50 4f 49 4e 54 2a 29 3b 0d 0a 09 20 20 20  g(POINT*);...   
a7e0: 48 52 45 53 55 4c 54 20 47 65 74 46 6f 63 75 73  HRESULT GetFocus
a7f0: 65 64 49 74 65 6d 28 69 6e 74 2a 29 3b 0d 0a 09  edItem(int*);...
a800: 20 20 20 48 52 45 53 55 4c 54 20 47 65 74 46 6f     HRESULT GetFo
a810: 6c 64 65 72 28 52 45 46 49 49 44 2c 20 50 56 4f  lder(REFIID, PVO
a820: 49 44 2a 29 3b 0d 0a 09 20 20 20 48 52 45 53 55  ID*);...   HRESU
a830: 4c 54 20 47 65 74 49 74 65 6d 50 6f 73 69 74 69  LT GetItemPositi
a840: 6f 6e 28 4c 50 43 49 54 45 4d 49 44 4c 49 53 54  on(LPCITEMIDLIST
a850: 2c 20 50 4f 49 4e 54 2a 29 3b 0d 0a 09 20 20 20  , POINT*);...   
a860: 48 52 45 53 55 4c 54 20 47 65 74 53 65 6c 65 63  HRESULT GetSelec
a870: 74 69 6f 6e 4d 61 72 6b 65 64 49 74 65 6d 28 69  tionMarkedItem(i
a880: 6e 74 2a 29 3b 0d 0a 09 20 20 20 48 52 45 53 55  nt*);...   HRESU
a890: 4c 54 20 47 65 74 53 70 61 63 69 6e 67 28 50 4f  LT GetSpacing(PO
a8a0: 49 4e 54 2a 29 3b 0d 0a 09 20 20 20 48 52 45 53  INT*);...   HRES
a8b0: 55 4c 54 20 49 74 65 6d 28 69 6e 74 2c 20 4c 50  ULT Item(int, LP
a8c0: 49 54 45 4d 49 44 4c 49 53 54 2a 29 3b 0d 0a 09  ITEMIDLIST*);...
a8d0: 20 20 20 48 52 45 53 55 4c 54 20 49 74 65 6d 43     HRESULT ItemC
a8e0: 6f 75 6e 74 28 55 49 4e 54 2c 20 69 6e 74 2a 29  ount(UINT, int*)
a8f0: 3b 0d 0a 09 20 20 20 48 52 45 53 55 4c 54 20 49  ;...   HRESULT I
a900: 74 65 6d 73 28 55 49 4e 54 2c 20 52 45 46 49 49  tems(UINT, REFII
a910: 44 2c 20 50 56 4f 49 44 2a 29 3b 0d 0a 09 20 20  D, PVOID*);...  
a920: 20 48 52 45 53 55 4c 54 20 53 65 6c 65 63 74 41   HRESULT SelectA
a930: 6e 64 50 6f 73 69 74 69 6f 6e 49 74 65 6d 73 28  ndPositionItems(
a940: 55 49 4e 54 2c 20 4c 50 43 49 54 45 4d 49 44 4c  UINT, LPCITEMIDL
a950: 49 53 54 2a 2c 20 50 4f 49 4e 54 2a 2c 20 44 57  IST*, POINT*, DW
a960: 4f 52 44 29 3b 0d 0a 09 20 20 20 48 52 45 53 55  ORD);...   HRESU
a970: 4c 54 20 53 65 6c 65 63 74 49 74 65 6d 28 69 6e  LT SelectItem(in
a980: 74 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 20 20 20  t, DWORD);...   
a990: 48 52 45 53 55 4c 54 20 53 65 74 43 75 72 72 65  HRESULT SetCurre
a9a0: 6e 74 56 69 65 77 4d 6f 64 65 28 55 49 4e 54 29  ntViewMode(UINT)
a9b0: 3b 0d 0a 09 7d 0d 0a 09 61 6c 69 61 73 20 49 46  ;...}...alias IF
a9c0: 6f 6c 64 65 72 56 69 65 77 20 4c 50 46 4f 4c 44  olderView LPFOLD
a9d0: 45 52 56 49 45 57 3b 0d 0a 7d 0d 0a              ERVIEW;..}..