Artifact 7df464c2cf7d0434b6e44a37bda4d0720e4954d0:
- File
src/win32/shlobj.d
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
The problem was __gshared. Replacing it with TLS fixed the issue. Remaining problem is that "hack.d"'s CloseHandle hack is not working anymore.
(user: kinaba) [annotate]
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
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;..}..