Differences From Artifact [3b1d34f9e7047278]:
- File
src/win32/shlobj.d
- 2015-04-21 10:46:55 - part of checkin [4e2933c620] on branch trunk - Rebased to the latest verson dmd 2.067. Not yet verified the outcome. (user: kinaba) [annotate]
To Artifact [7df464c2cf7d0434]:
- 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.
1 /***********************************************************************\ 1 /***********************************************************************\
2 * shlobj.d * 2 * shlobj.d *
3 * * 3 * *
4 * Windows API header module * 4 * Windows API header module *
5 * * 5 * *
6 * Translated from MinGW Windows headers * | 6 * Translated from MinGW API for MS-Windows 4.0 *
7 * * 7 * *
8 * Placed into public domain * 8 * Placed into public domain *
9 \***********************************************************************/ 9 \***********************************************************************/
10 module win32.shlobj; 10 module win32.shlobj;
11 pragma(lib, "shell32.lib"); | 11 pragma(lib, "shell32");
12 12
13 // TODO: fix bitfields 13 // TODO: fix bitfields
14 // TODO: CMIC_VALID_SEE_FLAGS 14 // TODO: CMIC_VALID_SEE_FLAGS
15 // SHGetFolderPath in shfolder.dll on W9x, NT4, also in shell32.dll on W2K 15 // SHGetFolderPath in shfolder.dll on W9x, NT4, also in shell32.dll on W2K
16 16
17 import win32.commctrl, win32.ole2, win32.shlguid, win32.shellapi; 17 import win32.commctrl, win32.ole2, win32.shlguid, win32.shellapi;
18 private import win32.prsht, win32.unknwn, win32.w32api, win32.winbase, 18 private import win32.prsht, win32.unknwn, win32.w32api, win32.winbase,
19 win32.winnt, win32.winuser, win32.wtypes, win32.objfwd, win32.objidl; 19 win32.winnt, win32.winuser, win32.wtypes, win32.objfwd, win32.objidl;
20 private import win32.winnetwk; // for NETRESOURCE 20 private import win32.winnetwk; // for NETRESOURCE
> 21 private import win32.oaidl : VARIANT;
21 22
22 23
23 // FIXME: clean up Windows version support 24 // FIXME: clean up Windows version support
24 25
25 align(1): 26 align(1):
26 27
27 const BIF_RETURNONLYFSDIRS = 1; 28 const BIF_RETURNONLYFSDIRS = 1;
................................................................................................................................................................................
57 alias BFFM_SETSTATUSTEXTA BFFM_SETSTATUSTEXT; 58 alias BFFM_SETSTATUSTEXTA BFFM_SETSTATUSTEXT;
58 alias BFFM_SETSELECTIONA BFFM_SETSELECTION; 59 alias BFFM_SETSELECTIONA BFFM_SETSELECTION;
59 alias BFFM_VALIDATEFAILEDA BFFM_VALIDATEFAILED; 60 alias BFFM_VALIDATEFAILEDA BFFM_VALIDATEFAILED;
60 } 61 }
61 62
62 const DVASPECT_SHORTNAME = 2; 63 const DVASPECT_SHORTNAME = 2;
63 64
> 65 enum SHARD {
64 const SHARD_PIDL = 1; | 66 SHARD_PIDL = 1,
65 const SHARD_PATH = 2; | 67 SHARD_PATHA,
> 68 SHARD_PATHW,
> 69 SHARD_APPIDINFO,
> 70 SHARD_APPIDINFOIDLIST,
> 71 SHARD_LINK,
> 72 SHARD_APPIDINFOLINK,
> 73 SHARD_SHELLITEM, // = 8
> 74 SHARD_PATH = (_WIN32_UNICODE ? SHARD_PATHW : SHARD_PATHA)
> 75 }
66 76
67 const SHCNE_RENAMEITEM = 1; 77 const SHCNE_RENAMEITEM = 1;
68 const SHCNE_CREATE = 2; 78 const SHCNE_CREATE = 2;
69 const SHCNE_DELETE = 4; 79 const SHCNE_DELETE = 4;
70 const SHCNE_MKDIR = 8; 80 const SHCNE_MKDIR = 8;
71 const SHCNE_RMDIR = 16; 81 const SHCNE_RMDIR = 16;
72 const SHCNE_MEDIAINSERTED = 32; 82 const SHCNE_MEDIAINSERTED = 32;
................................................................................................................................................................................
103 alias SHCNF_PATHW SHCNF_PATH; 113 alias SHCNF_PATHW SHCNF_PATH;
104 alias SHCNF_PRINTERW SHCNF_PRINTER; 114 alias SHCNF_PRINTERW SHCNF_PRINTER;
105 } else { 115 } else {
106 alias SHCNF_PATHA SHCNF_PATH; 116 alias SHCNF_PATHA SHCNF_PATH;
107 alias SHCNF_PRINTERA SHCNF_PRINTER; 117 alias SHCNF_PRINTERA SHCNF_PRINTER;
108 } 118 }
109 119
> 120 enum SFGAOF : DWORD {
110 const SFGAO_CANCOPY = DROPEFFECT.DROPEFFECT_COPY; | 121 SFGAO_CANCOPY = DROPEFFECT.DROPEFFECT_COPY,
111 const SFGAO_CANMOVE = DROPEFFECT.DROPEFFECT_MOVE; | 122 SFGAO_CANMOVE = DROPEFFECT.DROPEFFECT_MOVE,
112 const SFGAO_CANLINK = DROPEFFECT.DROPEFFECT_LINK; | 123 SFGAO_CANLINK = DROPEFFECT.DROPEFFECT_LINK,
113 const SFGAO_CANRENAME = 0x00000010L; | 124 SFGAO_CANRENAME = 0x00000010L,
114 const SFGAO_CANDELETE = 0x00000020L; | 125 SFGAO_CANDELETE = 0x00000020L,
115 const SFGAO_HASPROPSHEET = 0x00000040L; | 126 SFGAO_HASPROPSHEET = 0x00000040L,
116 const SFGAO_DROPTARGET = 0x00000100L; | 127 SFGAO_DROPTARGET = 0x00000100L,
117 const SFGAO_CAPABILITYMASK = 0x00000177L; | 128 SFGAO_CAPABILITYMASK = 0x00000177L,
> 129 SFGAO_ISSLOW = 0x00004000L,
118 const SFGAO_GHOSTED = 0x00008000L; | 130 SFGAO_GHOSTED = 0x00008000L,
119 const SFGAO_LINK = 0x00010000L; | 131 SFGAO_LINK = 0x00010000L,
120 const SFGAO_SHARE = 0x00020000L; | 132 SFGAO_SHARE = 0x00020000L,
121 const SFGAO_READONLY = 0x00040000L; | 133 SFGAO_READONLY = 0x00040000L,
122 const SFGAO_HIDDEN = 0x00080000L; | 134 SFGAO_HIDDEN = 0x00080000L,
123 const SFGAO_DISPLAYATTRMASK = 0x000F0000L; | 135 SFGAO_DISPLAYATTRMASK = (SFGAO_ISSLOW | SFGAO_GHOSTED | SFGAO_LINK
> 136 | SFGAO_SHARE | SFGAO_READONLY | SFGAO_HIDDEN),
124 const SFGAO_FILESYSANCESTOR = 0x10000000L; | 137 SFGAO_FILESYSANCESTOR = 0x10000000L,
125 const SFGAO_FOLDER = 0x20000000L; | 138 SFGAO_FOLDER = 0x20000000L,
126 const SFGAO_FILESYSTEM = 0x40000000L; | 139 SFGAO_FILESYSTEM = 0x40000000L,
127 const SFGAO_HASSUBFOLDER = 0x80000000L; | 140 SFGAO_HASSUBFOLDER = 0x80000000L,
128 const SFGAO_CONTENTSMASK = 0x80000000L; | 141 SFGAO_CONTENTSMASK = 0x80000000L,
129 const SFGAO_VALIDATE = 0x01000000L; | 142 SFGAO_VALIDATE = 0x01000000L,
130 const SFGAO_REMOVABLE = 0x02000000L; | 143 SFGAO_REMOVABLE = 0x02000000L,
131 const SFGAO_COMPRESSED = 0x04000000L; | 144 SFGAO_COMPRESSED = 0x04000000L
> 145 }
132 const STRRET_WSTR = 0; 146 const STRRET_WSTR = 0;
133 const STRRET_OFFSET = 1; 147 const STRRET_OFFSET = 1;
134 const STRRET_CSTR = 2; 148 const STRRET_CSTR = 2;
135 149
136 enum { 150 enum {
137 SHGDFIL_FINDDATA = 1, 151 SHGDFIL_FINDDATA = 1,
138 SHGDFIL_NETRESOURCE, 152 SHGDFIL_NETRESOURCE,
................................................................................................................................................................................
159 SHDID_NET_OTHER 173 SHDID_NET_OTHER
160 } 174 }
161 175
162 const TCHAR[] REGSTR_PATH_EXPLORER = "Software\\Microsoft\\Windows\\CurrentVersi 176 const TCHAR[] REGSTR_PATH_EXPLORER = "Software\\Microsoft\\Windows\\CurrentVersi
163 const TCHAR[] REGSTR_PATH_SPECIAL_FOLDERS=REGSTR_PATH_EXPLORER ~ "\\Shell Folder 177 const TCHAR[] REGSTR_PATH_SPECIAL_FOLDERS=REGSTR_PATH_EXPLORER ~ "\\Shell Folder
164 178
165 enum { 179 enum {
166 CSIDL_DESKTOP = 0, | 180 CSIDL_DESKTOP = 0,
167 CSIDL_INTERNET, 181 CSIDL_INTERNET,
168 CSIDL_PROGRAMS, 182 CSIDL_PROGRAMS,
169 CSIDL_CONTROLS, 183 CSIDL_CONTROLS,
170 CSIDL_PRINTERS, 184 CSIDL_PRINTERS,
171 CSIDL_PERSONAL, 185 CSIDL_PERSONAL,
172 CSIDL_FAVORITES, 186 CSIDL_FAVORITES,
173 CSIDL_STARTUP, 187 CSIDL_STARTUP,
174 CSIDL_RECENT, 188 CSIDL_RECENT,
175 CSIDL_SENDTO, 189 CSIDL_SENDTO,
176 CSIDL_BITBUCKET, 190 CSIDL_BITBUCKET,
177 CSIDL_STARTMENU, // = 11 | 191 CSIDL_STARTMENU, // = 11
> 192 CSIDL_MYMUSIC = 13,
> 193 CSIDL_MYVIDEO, // = 14
178 CSIDL_DESKTOPDIRECTORY = 16, | 194 CSIDL_DESKTOPDIRECTORY = 16,
179 CSIDL_DRIVES, 195 CSIDL_DRIVES,
180 CSIDL_NETWORK, 196 CSIDL_NETWORK,
181 CSIDL_NETHOOD, 197 CSIDL_NETHOOD,
182 CSIDL_FONTS, 198 CSIDL_FONTS,
183 CSIDL_TEMPLATES, 199 CSIDL_TEMPLATES,
184 CSIDL_COMMON_STARTMENU, 200 CSIDL_COMMON_STARTMENU,
185 CSIDL_COMMON_PROGRAMS, 201 CSIDL_COMMON_PROGRAMS,
................................................................................................................................................................................
204 CSIDL_PROGRAM_FILESX86, 220 CSIDL_PROGRAM_FILESX86,
205 CSIDL_PROGRAM_FILES_COMMON, 221 CSIDL_PROGRAM_FILES_COMMON,
206 CSIDL_PROGRAM_FILES_COMMONX86, 222 CSIDL_PROGRAM_FILES_COMMONX86,
207 CSIDL_COMMON_TEMPLATES, 223 CSIDL_COMMON_TEMPLATES,
208 CSIDL_COMMON_DOCUMENTS, 224 CSIDL_COMMON_DOCUMENTS,
209 CSIDL_COMMON_ADMINTOOLS, 225 CSIDL_COMMON_ADMINTOOLS,
210 CSIDL_ADMINTOOLS, 226 CSIDL_ADMINTOOLS,
211 CSIDL_CONNECTIONS, // =49 | 227 CSIDL_CONNECTIONS, // = 49
212 CSIDL_COMMON_MUSIC = 53, | 228 CSIDL_COMMON_MUSIC = 53,
213 CSIDL_COMMON_PICTURES, 229 CSIDL_COMMON_PICTURES,
214 CSIDL_COMMON_VIDEO, 230 CSIDL_COMMON_VIDEO,
215 CSIDL_RESOURCES, 231 CSIDL_RESOURCES,
216 CSIDL_RESOURCES_LOCALIZED, 232 CSIDL_RESOURCES_LOCALIZED,
217 CSIDL_COMMON_OEM_LINKS, 233 CSIDL_COMMON_OEM_LINKS,
218 CSIDL_CDBURN_AREA, // = 59 | 234 CSIDL_CDBURN_AREA, // = 59
219 CSIDL_COMPUTERSNEARME = 61, | 235 CSIDL_COMPUTERSNEARME = 61,
220 CSIDL_FLAG_DONT_VERIFY = 0x4000, 236 CSIDL_FLAG_DONT_VERIFY = 0x4000,
221 CSIDL_FLAG_CREATE = 0x8000, | 237 CSIDL_FLAG_CREATE = 0x8000,
222 CSIDL_FLAG_MASK = 0xFF00 | 238 CSIDL_FLAG_MASK = 0xFF00
223 } 239 }
224 240
225 const TCHAR[] 241 const TCHAR[]
226 CFSTR_SHELLIDLIST = "Shell IDList Array", 242 CFSTR_SHELLIDLIST = "Shell IDList Array",
227 CFSTR_SHELLIDLISTOFFSET = "Shell Object Offsets", 243 CFSTR_SHELLIDLISTOFFSET = "Shell Object Offsets",
228 CFSTR_NETRESOURCES = "Net Resource", 244 CFSTR_NETRESOURCES = "Net Resource",
229 CFSTR_FILECONTENTS = "FileContents", 245 CFSTR_FILECONTENTS = "FileContents",
................................................................................................................................................................................
364 const SVGIO_BACKGROUND=0; 380 const SVGIO_BACKGROUND=0;
365 const SVGIO_SELECTION=1; 381 const SVGIO_SELECTION=1;
366 const SVGIO_ALLVIEW=2; 382 const SVGIO_ALLVIEW=2;
367 383
368 const UINT SV2GV_CURRENTVIEW=-1; 384 const UINT SV2GV_CURRENTVIEW=-1;
369 const UINT SV2GV_DEFAULTVIEW=-2; 385 const UINT SV2GV_DEFAULTVIEW=-2;
370 386
371 alias ULONG SFGAOF; <
372 alias DWORD SHGDNF; 387 alias DWORD SHGDNF;
373 388
374 struct CIDA { 389 struct CIDA {
375 UINT cidl; 390 UINT cidl;
376 UINT[1] aoffset; 391 UINT[1] aoffset;
377 } 392 }
378 alias CIDA* LPIDA; 393 alias CIDA* LPIDA;
379 394
380 struct SHITEMID { 395 struct SHITEMID {
381 USHORT cb; 396 USHORT cb;
382 BYTE[1] abID; 397 BYTE[1] abID;
383 } 398 }
384 alias SHITEMID* LPSHITEMID; | 399 alias SHITEMID* LPSHITEMID;
385 alias CPtr!(SHITEMID) LPCSHITEMID; | 400 alias const(SHITEMID)* LPCSHITEMID;
386 401
387 struct ITEMIDLIST { 402 struct ITEMIDLIST {
388 SHITEMID mkid; 403 SHITEMID mkid;
389 } 404 }
390 alias ITEMIDLIST* LPITEMIDLIST; | 405 alias ITEMIDLIST* LPITEMIDLIST;
391 alias CPtr!(ITEMIDLIST) LPCITEMIDLIST; | 406 alias const(ITEMIDLIST)* LPCITEMIDLIST;
392 407
393 alias int function(HWND,UINT,LPARAM,LPARAM) BFFCALLBACK; | 408 alias int function(HWND, UINT, LPARAM, LPARAM) BFFCALLBACK;
394 409
395 struct BROWSEINFOA { 410 struct BROWSEINFOA {
396 HWND hwndOwner; 411 HWND hwndOwner;
397 LPCITEMIDLIST pidlRoot; 412 LPCITEMIDLIST pidlRoot;
398 LPSTR pszDisplayName; 413 LPSTR pszDisplayName;
399 LPCSTR lpszTitle; 414 LPCSTR lpszTitle;
400 UINT ulFlags; 415 UINT ulFlags;
................................................................................................................................................................................
457 } 472 }
458 473
459 struct STRRET { 474 struct STRRET {
460 UINT uType; 475 UINT uType;
461 union { 476 union {
462 LPWSTR pOleStr; 477 LPWSTR pOleStr;
463 UINT uOffset; 478 UINT uOffset;
464 char cStr[MAX_PATH]; | 479 char[MAX_PATH] cStr;
465 } 480 }
466 } 481 }
467 alias STRRET* LPSTRRET; 482 alias STRRET* LPSTRRET;
468 483
469 enum FD_FLAGS { 484 enum FD_FLAGS {
470 FD_CLSID = 1, 485 FD_CLSID = 1,
471 FD_SIZEPOINT = 2, 486 FD_SIZEPOINT = 2,
................................................................................................................................................................................
484 POINTL pointl; 499 POINTL pointl;
485 DWORD dwFileAttributes; 500 DWORD dwFileAttributes;
486 FILETIME ftCreationTime; 501 FILETIME ftCreationTime;
487 FILETIME ftLastAccessTime; 502 FILETIME ftLastAccessTime;
488 FILETIME ftLastWriteTime; 503 FILETIME ftLastWriteTime;
489 DWORD nFileSizeHigh; 504 DWORD nFileSizeHigh;
490 DWORD nFileSizeLow; 505 DWORD nFileSizeLow;
491 CHAR cFileName[MAX_PATH]; | 506 CHAR[MAX_PATH] cFileName;
492 } 507 }
493 alias FILEDESCRIPTORA* LPFILEDESCRIPTORA; 508 alias FILEDESCRIPTORA* LPFILEDESCRIPTORA;
494 509
495 struct FILEDESCRIPTORW { 510 struct FILEDESCRIPTORW {
496 DWORD dwFlags; 511 DWORD dwFlags;
497 CLSID clsid; 512 CLSID clsid;
498 SIZEL sizel; 513 SIZEL sizel;
................................................................................................................................................................................
499 POINTL pointl; 514 POINTL pointl;
500 DWORD dwFileAttributes; 515 DWORD dwFileAttributes;
501 FILETIME ftCreationTime; 516 FILETIME ftCreationTime;
502 FILETIME ftLastAccessTime; 517 FILETIME ftLastAccessTime;
503 FILETIME ftLastWriteTime; 518 FILETIME ftLastWriteTime;
504 DWORD nFileSizeHigh; 519 DWORD nFileSizeHigh;
505 DWORD nFileSizeLow; 520 DWORD nFileSizeLow;
506 WCHAR cFileName[MAX_PATH]; | 521 WCHAR[MAX_PATH] cFileName;
507 } 522 }
508 alias FILEDESCRIPTORW* LPFILEDESCRIPTORW; 523 alias FILEDESCRIPTORW* LPFILEDESCRIPTORW;
509 524
510 struct FILEGROUPDESCRIPTORA { 525 struct FILEGROUPDESCRIPTORA {
511 UINT cItems; 526 UINT cItems;
512 FILEDESCRIPTORA fgd[1]; | 527 FILEDESCRIPTORA[1] fgd;
513 } 528 }
514 alias FILEGROUPDESCRIPTORA* LPFILEGROUPDESCRIPTORA; 529 alias FILEGROUPDESCRIPTORA* LPFILEGROUPDESCRIPTORA;
515 530
516 struct FILEGROUPDESCRIPTORW { 531 struct FILEGROUPDESCRIPTORW {
517 UINT cItems; 532 UINT cItems;
518 FILEDESCRIPTORW fgd[1]; | 533 FILEDESCRIPTORW[1] fgd;
519 } 534 }
520 alias FILEGROUPDESCRIPTORW* LPFILEGROUPDESCRIPTORW; 535 alias FILEGROUPDESCRIPTORW* LPFILEGROUPDESCRIPTORW;
521 536
522 enum SLR_FLAGS { 537 enum SLR_FLAGS {
523 SLR_NO_UI = 1, 538 SLR_NO_UI = 1,
524 SLR_ANY_MATCH = 2, 539 SLR_ANY_MATCH = 2,
525 SLR_UPDATE = 4, 540 SLR_UPDATE = 4,
................................................................................................................................................................................
561 FVM_DETAILS 576 FVM_DETAILS
562 } 577 }
563 578
564 struct FOLDERSETTINGS { 579 struct FOLDERSETTINGS {
565 UINT ViewMode; 580 UINT ViewMode;
566 UINT fFlags; 581 UINT fFlags;
567 } 582 }
568 alias FOLDERSETTINGS* LPFOLDERSETTINGS; | 583 alias FOLDERSETTINGS* LPFOLDERSETTINGS;
569 alias CPtr!(FOLDERSETTINGS) LPCFOLDERSETTINGS; | 584 alias const(FOLDERSETTINGS)* LPCFOLDERSETTINGS;
570 585
571 struct FVSHOWINFO { 586 struct FVSHOWINFO {
572 DWORD cbSize = this.sizeof; 587 DWORD cbSize = this.sizeof;
573 HWND hwndOwner; 588 HWND hwndOwner;
574 int iShow; 589 int iShow;
575 DWORD dwFlags; 590 DWORD dwFlags;
576 RECT rect; 591 RECT rect;
577 LPUNKNOWN punkRel; 592 LPUNKNOWN punkRel;
578 OLECHAR strNewFile[MAX_PATH]; | 593 OLECHAR[MAX_PATH] strNewFile;
579 } 594 }
580 alias FVSHOWINFO* LPFVSHOWINFO; 595 alias FVSHOWINFO* LPFVSHOWINFO;
581 596
582 struct NRESARRAY { 597 struct NRESARRAY {
583 UINT cItems; 598 UINT cItems;
584 NETRESOURCE nr[1]; | 599 NETRESOURCE[1] nr;
585 } 600 }
586 alias NRESARRAY* LPNRESARRAY; 601 alias NRESARRAY* LPNRESARRAY;
587 602
588 enum { 603 enum {
589 SBSC_HIDE, 604 SBSC_HIDE,
590 SBSC_SHOW, 605 SBSC_SHOW,
591 SBSC_TOGGLE, 606 SBSC_TOGGLE,
................................................................................................................................................................................
604 enum SVUIA_STATUS { 619 enum SVUIA_STATUS {
605 SVUIA_DEACTIVATE, 620 SVUIA_DEACTIVATE,
606 SVUIA_ACTIVATE_NOFOCUS, 621 SVUIA_ACTIVATE_NOFOCUS,
607 SVUIA_ACTIVATE_FOCUS, 622 SVUIA_ACTIVATE_FOCUS,
608 SVUIA_INPLACEACTIVATE 623 SVUIA_INPLACEACTIVATE
609 } 624 }
610 625
611 static if (_WIN32_IE >= 0x0500) { | 626 static if (_WIN32_IE >= 0x500) {
612 627
613 struct EXTRASEARCH 628 struct EXTRASEARCH
614 { 629 {
615 GUID guidSearch; 630 GUID guidSearch;
616 WCHAR wszFriendlyName[80]; | 631 WCHAR[80] wszFriendlyName;
617 WCHAR wszUrl[2084]; | 632 WCHAR[2084] wszUrl;
618 } 633 }
619 alias EXTRASEARCH* LPEXTRASEARCH; 634 alias EXTRASEARCH* LPEXTRASEARCH;
620 635
621 alias DWORD SHCOLSTATEF; 636 alias DWORD SHCOLSTATEF;
622 637
623 struct SHCOLUMNID { 638 struct SHCOLUMNID {
624 GUID fmtid; 639 GUID fmtid;
625 DWORD pid; 640 DWORD pid;
626 } 641 }
627 alias SHCOLUMNID* LPSHCOLUMNID; | 642 alias SHCOLUMNID* LPSHCOLUMNID;
628 alias CPtr!(SHCOLUMNID) LPCSHCOLUMNID; | 643 alias const(SHCOLUMNID)* LPCSHCOLUMNID;
629 644
630 struct SHELLDETAILS { 645 struct SHELLDETAILS {
631 int fmt; 646 int fmt;
632 int cxChar; 647 int cxChar;
633 STRRET str; 648 STRRET str;
634 } 649 }
635 alias SHELLDETAILS* LPSHELLDETAILS; 650 alias SHELLDETAILS* LPSHELLDETAILS;
636 651
637 struct PERSIST_FOLDER_TARGET_INFO 652 struct PERSIST_FOLDER_TARGET_INFO
638 { 653 {
639 LPITEMIDLIST pidlTargetFolder; 654 LPITEMIDLIST pidlTargetFolder;
640 WCHAR szTargetParsingName[MAX_PATH]; | 655 WCHAR[MAX_PATH] szTargetParsingName;
641 WCHAR szNetworkProvider[MAX_PATH]; | 656 WCHAR[MAX_PATH] szNetworkProvider;
642 DWORD dwAttributes; 657 DWORD dwAttributes;
643 int csidl; 658 int csidl;
644 } 659 }
645 660
646 enum SHGFP_TYPE { 661 enum SHGFP_TYPE {
647 SHGFP_TYPE_CURRENT = 0, 662 SHGFP_TYPE_CURRENT = 0,
648 SHGFP_TYPE_DEFAULT = 1, 663 SHGFP_TYPE_DEFAULT = 1,
649 } 664 }
650 665
651 } 666 }
652 667
653 interface IEnumIDList: IUnknown | 668 interface IEnumIDList : IUnknown {
654 { <
655 HRESULT QueryInterface(REFIID,PVOID*); <
656 ULONG AddRef(); <
657 ULONG Release(); <
658 HRESULT Next(ULONG,LPITEMIDLIST*,ULONG*); | 669 HRESULT Next(ULONG, LPITEMIDLIST*, ULONG*);
659 HRESULT Skip(ULONG); 670 HRESULT Skip(ULONG);
660 HRESULT Reset(); 671 HRESULT Reset();
661 HRESULT Clone(IEnumIDList**); | 672 HRESULT Clone(IEnumIDList*);
662 } 673 }
663 alias IEnumIDList *LPENUMIDLIST; | 674 alias IEnumIDList LPENUMIDLIST;
664 675
665 interface IObjMgr : IUnknown | 676 interface IObjMgr : IUnknown {
666 { <
667 HRESULT QueryInterface(REFIID,PVOID*); <
668 ULONG AddRef(); <
669 ULONG Release(); <
670 HRESULT Append(IUnknown*); | 677 HRESULT Append(IUnknown);
671 HRESULT Remove(IUnknown*); | 678 HRESULT Remove(IUnknown);
672 } 679 }
673 680
674 interface IContextMenu : IUnknown | 681 interface IContextMenu : IUnknown {
675 { <
676 HRESULT QueryInterface(REFIID,PVOID*); <
677 ULONG AddRef(); <
678 ULONG Release(); <
679 HRESULT QueryContextMenu(HMENU,UINT,UINT,UINT,UINT); | 682 HRESULT QueryContextMenu(HMENU, UINT, UINT, UINT, UINT);
680 HRESULT InvokeCommand(LPCMINVOKECOMMANDINFO); 683 HRESULT InvokeCommand(LPCMINVOKECOMMANDINFO);
681 HRESULT GetCommandString(UINT,UINT,PUINT,LPSTR,UINT); | 684 HRESULT GetCommandString(UINT, UINT, PUINT, LPSTR, UINT);
682 } 685 }
683 alias IContextMenu* LPCONTEXTMENU; | 686 alias IContextMenu LPCONTEXTMENU;
684 687
685 interface IContextMenu2 : IContextMenu | 688 interface IContextMenu2 : IContextMenu {
686 { <
687 HRESULT QueryInterface(REFIID,PVOID*); <
688 ULONG AddRef(); <
689 ULONG Release(); <
690 HRESULT QueryContextMenu(HMENU,UINT,UINT,UINT,UINT); <
691 HRESULT InvokeCommand(LPCMINVOKECOMMANDINFO); <
692 HRESULT GetCommandString(UINT,UINT,PUINT,LPSTR,UINT); <
693 HRESULT HandleMenuMsg(UINT,WPARAM,LPARAM); | 689 HRESULT HandleMenuMsg(UINT, WPARAM, LPARAM);
694 }; 690 };
695 alias IContextMenu2* LPCONTEXTMENU2; | 691 alias IContextMenu2 LPCONTEXTMENU2;
696 | 692
697 static if (_WIN32_IE >= 0x0500) { | 693 static if (_WIN32_IE >= 0x500) {
698 <
699 align(8): | 694 align(8) {
700 struct SHCOLUMNINIT { | 695 struct SHCOLUMNINIT {
701 ULONG dwFlags; | 696 ULONG dwFlags;
702 ULONG dwReserved; | 697 ULONG dwReserved;
703 WCHAR wszFolder[MAX_PATH]; | 698 WCHAR[MAX_PATH] wszFolder;
704 } | 699 }
705 alias SHCOLUMNINIT* LPSHCOLUMNINIT; | 700 alias SHCOLUMNINIT* LPSHCOLUMNINIT;
706 alias CPtr!(SHCOLUMNINIT) LPCSHCOLUMNINIT; | 701 alias const(SHCOLUMNINIT)* LPCSHCOLUMNINIT;
707 | 702
708 struct SHCOLUMNDATA { | 703 struct SHCOLUMNDATA {
709 ULONG dwFlags; | 704 ULONG dwFlags;
710 DWORD dwFileAttributes; | 705 DWORD dwFileAttributes;
711 ULONG dwReserved; | 706 ULONG dwReserved;
712 WCHAR *pwszExt; | 707 WCHAR *pwszExt;
713 WCHAR wszFile[MAX_PATH]; | 708 WCHAR[MAX_PATH] wszFile;
714 } | 709 }
715 alias SHCOLUMNDATA* LPSHCOLUMNDATA; | 710 alias SHCOLUMNDATA* LPSHCOLUMNDATA;
716 alias CPtr!(SHCOLUMNDATA) LPCSHCOLUMNDATA; | 711 alias const(SHCOLUMNDATA)* LPCSHCOLUMNDATA;
717 align: <
> 712 }
718 713
719 const MAX_COLUMN_NAME_LEN = 80; 714 const MAX_COLUMN_NAME_LEN = 80;
720 const MAX_COLUMN_DESC_LEN = 128; 715 const MAX_COLUMN_DESC_LEN = 128;
721 716
722 align(1): <
723 struct SHCOLUMNINFO { | 717 align(1) struct SHCOLUMNINFO {
724 SHCOLUMNID scid; 718 SHCOLUMNID scid;
725 VARTYPE vt; 719 VARTYPE vt;
726 DWORD fmt; 720 DWORD fmt;
727 UINT cChars; 721 UINT cChars;
728 DWORD csFlags; 722 DWORD csFlags;
729 WCHAR wszTitle[MAX_COLUMN_NAME_LEN]; | 723 WCHAR[MAX_COLUMN_NAME_LEN] wszTitle;
730 WCHAR wszDescription[MAX_COLUMN_DESC_LEN]; | 724 WCHAR[MAX_COLUMN_DESC_LEN] wszDescription;
731 } 725 }
732 alias SHCOLUMNINFO* LPSHCOLUMNINFO; | 726 alias SHCOLUMNINFO* LPSHCOLUMNINFO;
733 alias CPtr!(SHCOLUMNINFO) LPCSHCOLUMNINFO; | 727 alias const(SHCOLUMNINFO)* LPCSHCOLUMNINFO;
734 align: <
735 728
736 enum SHCOLSTATE { 729 enum SHCOLSTATE {
737 SHCOLSTATE_TYPE_STR = 0x00000001, 730 SHCOLSTATE_TYPE_STR = 0x00000001,
738 SHCOLSTATE_TYPE_INT = 0x00000002, 731 SHCOLSTATE_TYPE_INT = 0x00000002,
739 SHCOLSTATE_TYPE_DATE = 0x00000003, 732 SHCOLSTATE_TYPE_DATE = 0x00000003,
740 SHCOLSTATE_TYPEMASK = 0x0000000f, 733 SHCOLSTATE_TYPEMASK = 0x0000000f,
741 SHCOLSTATE_ONBYDEFAULT = 0x00000010, 734 SHCOLSTATE_ONBYDEFAULT = 0x00000010,
................................................................................................................................................................................
742 SHCOLSTATE_SLOW = 0x00000020, 735 SHCOLSTATE_SLOW = 0x00000020,
743 SHCOLSTATE_EXTENDED = 0x00000040, 736 SHCOLSTATE_EXTENDED = 0x00000040,
744 SHCOLSTATE_SECONDARYUI = 0x00000080, 737 SHCOLSTATE_SECONDARYUI = 0x00000080,
745 SHCOLSTATE_HIDDEN = 0x00000100, 738 SHCOLSTATE_HIDDEN = 0x00000100,
746 SHCOLSTATE_PREFER_VARCMP = 0x00000200 739 SHCOLSTATE_PREFER_VARCMP = 0x00000200
747 } 740 }
748 741
749 interface IColumnProvider : IUnknown | 742 interface IColumnProvider : IUnknown {
750 { <
751 HRESULT QueryInterface(REFIID,PVOID*); <
752 ULONG AddRef(); <
753 ULONG Release(); <
754 HRESULT Initialize(LPCSHCOLUMNINIT); 743 HRESULT Initialize(LPCSHCOLUMNINIT);
755 HRESULT GetColumnInfo(DWORD,SHCOLUMNINFO*); | 744 HRESULT GetColumnInfo(DWORD, SHCOLUMNINFO*);
756 HRESULT GetItemData(LPCSHCOLUMNID,LPCSHCOLUMNDATA,VARIANT*); | 745 HRESULT GetItemData(LPCSHCOLUMNID, LPCSHCOLUMNDATA, VARIANT*);
757 } 746 }
758 }/* _WIN32_IE >= 0x0500 */ | 747 }/* _WIN32_IE >= 0x500 */
759 748
760 interface IQueryInfo : IUnknown | 749 interface IQueryInfo : IUnknown {
761 { <
762 HRESULT QueryInterface(REFIID,PVOID*); <
763 ULONG AddRef(); <
764 ULONG Release(); <
765 HRESULT GetInfoTip(DWORD,WCHAR**); | 750 HRESULT GetInfoTip(DWORD, WCHAR**);
766 HRESULT GetInfoFlags(DWORD*); 751 HRESULT GetInfoFlags(DWORD*);
767 } 752 }
768 753
769 interface IShellExtInit : IUnknown | 754 interface IShellExtInit : IUnknown {
770 { <
771 HRESULT QueryInterface(REFIID,PVOID*); <
772 ULONG AddRef(); <
773 ULONG Release(); <
774 HRESULT Initialize(LPCITEMIDLIST,LPDATAOBJECT,HKEY); | 755 HRESULT Initialize(LPCITEMIDLIST, LPDATAOBJECT, HKEY);
775 } 756 }
776 alias IShellExtInit *LPSHELLEXTINIT; | 757 alias IShellExtInit LPSHELLEXTINIT;
777 758
778 interface IShellPropSheetExt : IUnknown | 759 interface IShellPropSheetExt : IUnknown {
779 { <
780 HRESULT QueryInterface(REFIID,PVOID*); <
781 ULONG AddRef(); <
782 ULONG Release(); <
783 HRESULT AddPages(LPFNADDPROPSHEETPAGE,LPARAM); | 760 HRESULT AddPages(LPFNADDPROPSHEETPAGE, LPARAM);
784 HRESULT ReplacePage(UINT,LPFNADDPROPSHEETPAGE,LPARAM); | 761 HRESULT ReplacePage(UINT, LPFNADDPROPSHEETPAGE, LPARAM);
785 } 762 }
786 alias IShellPropSheetExt *LPSHELLPROPSHEETEXT; | 763 alias IShellPropSheetExt LPSHELLPROPSHEETEXT;
787 764
788 interface IExtractIconA : IUnknown | 765 interface IExtractIconA : IUnknown {
789 { <
790 HRESULT QueryInterface(REFIID,PVOID*); <
791 ULONG AddRef(); <
792 ULONG Release(); <
793 HRESULT GetIconLocation(UINT,LPSTR,UINT,int*,PUINT); | 766 HRESULT GetIconLocation(UINT, LPSTR, UINT, int*, PUINT);
794 HRESULT Extract(LPCSTR,UINT,HICON*,HICON*,UINT); | 767 HRESULT Extract(LPCSTR, UINT, HICON*, HICON*, UINT);
795 }; 768 };
796 alias IExtractIconA *LPEXTRACTICONA; | 769 alias IExtractIconA LPEXTRACTICONA;
797 770
798 interface IExtractIconW : IUnknown | 771 interface IExtractIconW : IUnknown {
799 { <
800 HRESULT QueryInterface(REFIID,PVOID*); <
801 ULONG AddRef(); <
802 ULONG Release(); <
803 HRESULT GetIconLocation(UINT,LPWSTR,UINT,int*,PUINT); | 772 HRESULT GetIconLocation(UINT, LPWSTR, UINT, int*, PUINT);
804 HRESULT Extract(LPCWSTR,UINT,HICON*,HICON*,UINT); | 773 HRESULT Extract(LPCWSTR, UINT, HICON*, HICON*, UINT);
805 } 774 }
806 alias IExtractIconW *LPEXTRACTICONW; | 775 alias IExtractIconW LPEXTRACTICONW;
807 776
808 version(Unicode) { 777 version(Unicode) {
809 alias IExtractIconW IExtractIcon; 778 alias IExtractIconW IExtractIcon;
810 alias LPEXTRACTICONW LPEXTRACTICON; 779 alias LPEXTRACTICONW LPEXTRACTICON;
811 } else { 780 } else {
812 alias IExtractIconA IExtractIcon; 781 alias IExtractIconA IExtractIcon;
813 alias LPEXTRACTICONA LPEXTRACTICON; 782 alias LPEXTRACTICONA LPEXTRACTICON;
814 } 783 }
815 784
816 interface IShellLinkA : IUnknown | 785 interface IShellLinkA : IUnknown {
817 { <
818 HRESULT QueryInterface(REFIID,PVOID*); <
819 ULONG AddRef(); <
820 ULONG Release(); <
821 HRESULT GetPath(LPSTR,int,WIN32_FIND_DATAA*,DWORD); | 786 HRESULT GetPath(LPSTR, int, WIN32_FIND_DATAA*, DWORD);
822 HRESULT GetIDList(LPITEMIDLIST*); 787 HRESULT GetIDList(LPITEMIDLIST*);
823 HRESULT SetIDList(LPCITEMIDLIST); 788 HRESULT SetIDList(LPCITEMIDLIST);
824 HRESULT GetDescription(LPSTR,int); | 789 HRESULT GetDescription(LPSTR, int);
825 HRESULT SetDescription(LPCSTR); 790 HRESULT SetDescription(LPCSTR);
826 HRESULT GetWorkingDirectory(LPSTR,int); | 791 HRESULT GetWorkingDirectory(LPSTR, int);
827 HRESULT SetWorkingDirectory(LPCSTR); 792 HRESULT SetWorkingDirectory(LPCSTR);
828 HRESULT GetArguments(LPSTR,int); | 793 HRESULT GetArguments(LPSTR, int);
829 HRESULT SetArguments(LPCSTR); 794 HRESULT SetArguments(LPCSTR);
830 HRESULT GetHotkey(PWORD); 795 HRESULT GetHotkey(PWORD);
831 HRESULT SetHotkey(WORD); 796 HRESULT SetHotkey(WORD);
832 HRESULT GetShowCmd(int*); 797 HRESULT GetShowCmd(int*);
833 HRESULT SetShowCmd(int); 798 HRESULT SetShowCmd(int);
834 HRESULT GetIconLocation(LPSTR,int,int*); | 799 HRESULT GetIconLocation(LPSTR, int, int*);
835 HRESULT SetIconLocation(LPCSTR,int); | 800 HRESULT SetIconLocation(LPCSTR, int);
836 HRESULT SetRelativePath(LPCSTR ,DWORD); | 801 HRESULT SetRelativePath(LPCSTR , DWORD);
837 HRESULT Resolve(HWND,DWORD); | 802 HRESULT Resolve(HWND, DWORD);
838 HRESULT SetPath(LPCSTR); 803 HRESULT SetPath(LPCSTR);
839 } 804 }
840 805
841 interface IShellLinkW : IUnknown | 806 interface IShellLinkW : IUnknown {
842 { <
843 HRESULT QueryInterface(REFIID,PVOID*); <
844 ULONG AddRef(); <
845 ULONG Release(); <
846 HRESULT GetPath(LPWSTR,int,WIN32_FIND_DATAW*,DWORD); | 807 HRESULT GetPath(LPWSTR, int, WIN32_FIND_DATAW*, DWORD);
847 HRESULT GetIDList(LPITEMIDLIST*); 808 HRESULT GetIDList(LPITEMIDLIST*);
848 HRESULT SetIDList(LPCITEMIDLIST); 809 HRESULT SetIDList(LPCITEMIDLIST);
849 HRESULT GetDescription(LPWSTR,int); | 810 HRESULT GetDescription(LPWSTR, int);
850 HRESULT SetDescription(LPCWSTR); 811 HRESULT SetDescription(LPCWSTR);
851 HRESULT GetWorkingDirectory(LPWSTR,int); | 812 HRESULT GetWorkingDirectory(LPWSTR, int);
852 HRESULT SetWorkingDirectory(LPCWSTR); 813 HRESULT SetWorkingDirectory(LPCWSTR);
853 HRESULT GetArguments(LPWSTR,int); | 814 HRESULT GetArguments(LPWSTR, int);
854 HRESULT SetArguments(LPCWSTR); 815 HRESULT SetArguments(LPCWSTR);
855 HRESULT GetHotkey(PWORD); 816 HRESULT GetHotkey(PWORD);
856 HRESULT SetHotkey(WORD); 817 HRESULT SetHotkey(WORD);
857 HRESULT GetShowCmd(int*); 818 HRESULT GetShowCmd(int*);
858 HRESULT SetShowCmd(int); 819 HRESULT SetShowCmd(int);
859 HRESULT GetIconLocation(LPWSTR,int,int*); | 820 HRESULT GetIconLocation(LPWSTR, int, int*);
860 HRESULT SetIconLocation(LPCWSTR,int); | 821 HRESULT SetIconLocation(LPCWSTR, int);
861 HRESULT SetRelativePath(LPCWSTR ,DWORD); | 822 HRESULT SetRelativePath(LPCWSTR , DWORD);
862 HRESULT Resolve(HWND,DWORD); | 823 HRESULT Resolve(HWND, DWORD);
863 HRESULT SetPath(LPCWSTR); 824 HRESULT SetPath(LPCWSTR);
864 } 825 }
865 826
866 827
867 interface IShellFolder : IUnknown | 828 interface IShellFolder : IUnknown {
868 { <
869 HRESULT QueryInterface(REFIID,PVOID*); <
870 ULONG AddRef(); <
871 ULONG Release(); <
872 HRESULT ParseDisplayName(HWND,LPBC,LPOLESTR,PULONG,LPITEMIDLIST*,PULONG) | 829 HRESULT ParseDisplayName(HWND, LPBC, LPOLESTR, PULONG, LPITEMIDLIST*, PU
873 HRESULT EnumObjects(HWND,DWORD,LPENUMIDLIST*); | 830 HRESULT EnumObjects(HWND, DWORD, LPENUMIDLIST*);
874 HRESULT BindToObject(LPCITEMIDLIST,LPBC,REFIID,PVOID*); | 831 HRESULT BindToObject(LPCITEMIDLIST, LPBC, REFIID, PVOID*);
875 HRESULT BindToStorage(LPCITEMIDLIST,LPBC,REFIID,PVOID*); | 832 HRESULT BindToStorage(LPCITEMIDLIST, LPBC, REFIID, PVOID*);
876 HRESULT CompareIDs(LPARAM,LPCITEMIDLIST,LPCITEMIDLIST); | 833 HRESULT CompareIDs(LPARAM, LPCITEMIDLIST, LPCITEMIDLIST);
877 HRESULT CreateViewObject(HWND,REFIID,PVOID*); | 834 HRESULT CreateViewObject(HWND, REFIID, PVOID*);
878 HRESULT GetAttributesOf(UINT,LPCITEMIDLIST*,PULONG); | 835 HRESULT GetAttributesOf(UINT, LPCITEMIDLIST*, PULONG);
879 HRESULT GetUIObjectOf(HWND,UINT,LPCITEMIDLIST*,REFIID,PUINT,PVOID*); | 836 HRESULT GetUIObjectOf(HWND, UINT, LPCITEMIDLIST*, REFIID, PUINT, PVOID*)
880 HRESULT GetDisplayNameOf(LPCITEMIDLIST,DWORD,LPSTRRET); | 837 HRESULT GetDisplayNameOf(LPCITEMIDLIST, DWORD, LPSTRRET);
881 HRESULT SetNameOf(HWND,LPCITEMIDLIST,LPCOLESTR,DWORD,LPITEMIDLIST*); <
> 838 HRESULT SetNameOf(HWND, LPCITEMIDLIST, LPCOLESTR, DWORD, LPITEMIDLIST*);
882 } | 839 }
883 alias IShellFolder *LPSHELLFOLDER; | 840 alias IShellFolder LPSHELLFOLDER;
884 | 841
885 static if (_WIN32_IE >= 0x0500) { | 842 static if (_WIN32_IE >= 0x500) {
886 | 843
887 interface IEnumExtraSearch: IUnknown | 844 interface IEnumExtraSearch: IUnknown {
888 { <
889 HRESULT QueryInterface(REFIID,PVOID*); <
890 ULONG AddRef(); <
891 ULONG Release(); <
892 HRESULT Next(ULONG,LPEXTRASEARCH*,ULONG*); | 845 HRESULT Next(ULONG, LPEXTRASEARCH*, ULONG*);
893 HRESULT Skip(ULONG); 846 HRESULT Skip(ULONG);
894 HRESULT Reset(); 847 HRESULT Reset();
895 HRESULT Clone(IEnumExtraSearch**); | 848 HRESULT Clone(IEnumExtraSearch*);
896 } 849 }
897 alias IEnumExtraSearch *LPENUMEXTRASEARCH; | 850 alias IEnumExtraSearch LPENUMEXTRASEARCH;
898 851
899 interface IShellFolder2 : IShellFolder | 852 interface IShellFolder2 : IShellFolder {
900 { <
901 HRESULT QueryInterface(REFIID,PVOID*); <
902 ULONG AddRef(); <
903 ULONG Release(); <
904 HRESULT ParseDisplayName(HWND,LPBC,LPOLESTR,PULONG,LPITEMIDLIST*,PULONG) | 853 HRESULT ParseDisplayName(HWND, LPBC, LPOLESTR, PULONG, LPITEMIDLIST*, PU
905 HRESULT EnumObjects(HWND,DWORD,LPENUMIDLIST*); | 854 HRESULT EnumObjects(HWND, DWORD, LPENUMIDLIST*);
906 HRESULT BindToObject(LPCITEMIDLIST,LPBC,REFIID,PVOID*); | 855 HRESULT BindToObject(LPCITEMIDLIST, LPBC, REFIID, PVOID*);
907 HRESULT BindToStorage(LPCITEMIDLIST,LPBC,REFIID,PVOID*); | 856 HRESULT BindToStorage(LPCITEMIDLIST, LPBC, REFIID, PVOID*);
908 HRESULT CompareIDs(LPARAM,LPCITEMIDLIST,LPCITEMIDLIST); | 857 HRESULT CompareIDs(LPARAM, LPCITEMIDLIST, LPCITEMIDLIST);
909 HRESULT CreateViewObject(HWND,REFIID,PVOID*); | 858 HRESULT CreateViewObject(HWND, REFIID, PVOID*);
910 HRESULT GetAttributesOf(UINT,LPCITEMIDLIST*,PULONG); | 859 HRESULT GetAttributesOf(UINT, LPCITEMIDLIST*, PULONG);
911 HRESULT GetUIObjectOf(HWND,UINT,LPCITEMIDLIST*,REFIID,PUINT,PVOID*); | 860 HRESULT GetUIObjectOf(HWND, UINT, LPCITEMIDLIST*, REFIID, PUINT, PVOID*)
912 HRESULT GetDisplayNameOf(LPCITEMIDLIST,DWORD,LPSTRRET); | 861 HRESULT GetDisplayNameOf(LPCITEMIDLIST, DWORD, LPSTRRET);
913 HRESULT SetNameOf(HWND,LPCITEMIDLIST,LPCOLESTR,DWORD,LPITEMIDLIST*); <
> 862 HRESULT SetNameOf(HWND, LPCITEMIDLIST, LPCOLESTR, DWORD, LPITEMIDLIST*);
914 HRESULT GetDefaultSearchGUID(GUID*); 863 HRESULT GetDefaultSearchGUID(GUID*);
915 HRESULT EnumSearches(IEnumExtraSearch**); | 864 HRESULT EnumSearches(IEnumExtraSearch*);
916 HRESULT GetDefaultColumn(DWORD,ULONG*,ULONG*); | 865 HRESULT GetDefaultColumn(DWORD, ULONG*, ULONG*);
917 HRESULT GetDefaultColumnState(UINT,SHCOLSTATEF*); | 866 HRESULT GetDefaultColumnState(UINT, SHCOLSTATEF*);
918 HRESULT GetDetailsEx(LPCITEMIDLIST, CPtr!(SHCOLUMNID),VARIANT*); | 867 HRESULT GetDetailsEx(LPCITEMIDLIST, const(SHCOLUMNID)*, VARIANT*);
919 HRESULT GetDetailsOf(LPCITEMIDLIST,UINT,SHELLDETAILS*); | 868 HRESULT GetDetailsOf(LPCITEMIDLIST, UINT, SHELLDETAILS*);
920 HRESULT MapColumnToSCID(UINT,SHCOLUMNID*); | 869 HRESULT MapColumnToSCID(UINT, SHCOLUMNID*);
921 } | 870 }
922 alias IShellFolder2 *LPSHELLFOLDER2; | 871 alias IShellFolder2 LPSHELLFOLDER2;
923 | 872
924 } /* _WIN32_IE >= 0x0500 */ | 873 } /* _WIN32_IE >= 0x500 */
925 | 874
926 interface ICopyHook : IUnknown | 875 interface ICopyHook : IUnknown {
927 { <
928 HRESULT QueryInterface(REFIID,PVOID*); <
929 ULONG AddRef(); <
930 ULONG Release(); <
931 UINT CopyCallback(HWND,UINT,UINT,LPCSTR,DWORD,LPCSTR,DWORD); | 876 UINT CopyCallback(HWND, UINT, UINT, LPCSTR, DWORD, LPCSTR, DWORD);
932 } | 877 }
933 alias ICopyHook *LPCOPYHOOK; | 878 alias ICopyHook LPCOPYHOOK;
934 | 879
935 interface IFileViewerSite : IUnknown | 880 interface IFileViewerSite : IUnknown {
936 { <
937 HRESULT QueryInterface(REFIID,PVOID*); <
938 ULONG AddRef(); <
939 ULONG Release(); <
940 HRESULT SetPinnedWindow(HWND); 881 HRESULT SetPinnedWindow(HWND);
941 HRESULT GetPinnedWindow(HWND*); 882 HRESULT GetPinnedWindow(HWND*);
942 } 883 }
943 alias IFileViewerSite *LPFILEVIEWERSITE; | 884 alias IFileViewerSite LPFILEVIEWERSITE;
944 885
945 interface IFileViewer : IUnknown | 886 interface IFileViewer : IUnknown {
946 { <
947 HRESULT QueryInterface(REFIID,PVOID*); <
948 ULONG AddRef(); <
949 ULONG Release(); <
950 HRESULT ShowInitialize(LPFILEVIEWERSITE); 887 HRESULT ShowInitialize(LPFILEVIEWERSITE);
951 HRESULT Show(LPFVSHOWINFO); 888 HRESULT Show(LPFVSHOWINFO);
952 HRESULT PrintTo(LPSTR,BOOL); | 889 HRESULT PrintTo(LPSTR, BOOL);
953 } 890 }
954 alias IFileViewer *LPFILEVIEWER; | 891 alias IFileViewer LPFILEVIEWER;
955 892
956 interface IFileSystemBindData : IUnknown | 893 interface IFileSystemBindData : IUnknown {
957 { <
958 HRESULT QueryInterface(REFIID,PVOID*); <
959 ULONG AddRef(); <
960 ULONG Release(); <
961 HRESULT SetFindData(CPtr!(WIN32_FIND_DATAW)); | 894 HRESULT SetFindData(const(WIN32_FIND_DATAW)*);
962 HRESULT GetFindData(WIN32_FIND_DATAW*); 895 HRESULT GetFindData(WIN32_FIND_DATAW*);
963 } 896 }
964 897
965 interface IPersistFolder : IPersist | 898 interface IPersistFolder : IPersist {
> 899 HRESULT GetClassID(CLSID*);
> 900 HRESULT Initialize(LPCITEMIDLIST);
> 901 }
> 902 alias IPersistFolder LPPERSISTFOLDER;
966 { | 903
967 HRESULT QueryInterface(REFIID,PVOID*); <
968 ULONG AddRef(); <
969 ULONG Release(); <
> 904 static if (_WIN32_IE >= 0x400 || _WIN32_WINNT >= 0x500) {
> 905
> 906 interface IPersistFolder2 : IPersistFolder {
970 HRESULT GetClassID(CLSID*); 907 HRESULT GetClassID(CLSID*);
971 HRESULT Initialize(LPCITEMIDLIST); 908 HRESULT Initialize(LPCITEMIDLIST);
> 909 HRESULT GetCurFolder(LPITEMIDLIST*);
972 } 910 }
973 alias IPersistFolder *LPPERSISTFOLDER; | 911 alias IPersistFolder2 LPPERSISTFOLDER2;
974 912
975 static if (_WIN32_IE >= 0x0400 || _WIN32_WINNT >= 0x0500) { | 913 }/* _WIN32_IE >= 0x400 || _WIN32_WINNT >= 0x500 */
976 914
977 interface IPersistFolder2 : IPersistFolder | 915 static if (_WIN32_IE >= 0x500) {
978 { | 916
979 HRESULT QueryInterface(REFIID,PVOID*); | 917 interface IPersistFolder3 : IPersistFolder2 {
980 ULONG AddRef(); <
981 ULONG Release(); <
982 HRESULT GetClassID(CLSID*); 918 HRESULT GetClassID(CLSID*);
983 HRESULT Initialize(LPCITEMIDLIST); 919 HRESULT Initialize(LPCITEMIDLIST);
984 HRESULT GetCurFolder(LPITEMIDLIST*); 920 HRESULT GetCurFolder(LPITEMIDLIST*);
985 } <
986 alias IPersistFolder2 *LPPERSISTFOLDER2; <
987 <
988 }/* _WIN32_IE >= 0x0400 || _WIN32_WINNT >= 0x0500 */ <
989 <
990 static if (_WIN32_IE >= 0x0500) { <
991 <
992 interface IPersistFolder3 : IPersistFolder2 <
993 { <
994 HRESULT QueryInterface(REFIID,PVOID*); <
995 ULONG AddRef(); <
996 ULONG Release(); <
997 HRESULT GetClassID(CLSID*); <
998 HRESULT Initialize(LPCITEMIDLIST); <
999 HRESULT GetCurFolder(LPITEMIDLIST*); <
1000 HRESULT InitializeEx(IBindCtx*,LPCITEMIDLIST, CPtr!(PERSIST_FOLDER_TARGE | 921 HRESULT InitializeEx(IBindCtx, LPCITEMIDLIST, const(PERSIST_FOLDER_TARGE
1001 HRESULT GetFolderTargetInfo(PERSIST_FOLDER_TARGET_INFO*); 922 HRESULT GetFolderTargetInfo(PERSIST_FOLDER_TARGET_INFO*);
1002 } 923 }
1003 alias IPersistFolder3 *LPPERSISTFOLDER3; | 924 alias IPersistFolder3 LPPERSISTFOLDER3;
1004 925
1005 } /* _WIN32_IE >= 0x0500 */ | 926 } /* _WIN32_IE >= 0x500 */
1006 927
1007 alias IShellBrowser* LPSHELLBROWSER; | 928 alias IShellBrowser LPSHELLBROWSER;
1008 alias IShellView* LPSHELLVIEW; | 929 alias IShellView LPSHELLVIEW;
1009 930
1010 interface IShellBrowser : IOleWindow | 931 interface IShellBrowser : IOleWindow {
> 932 HRESULT GetWindow(HWND*);
> 933 HRESULT ContextSensitiveHelp(BOOL);
> 934 HRESULT InsertMenusSB(HMENU, LPOLEMENUGROUPWIDTHS);
> 935 HRESULT SetMenuSB(HMENU, HOLEMENU, HWND);
> 936 HRESULT RemoveMenusSB(HMENU);
> 937 HRESULT SetStatusTextSB(LPCOLESTR);
> 938 HRESULT EnableModelessSB(BOOL);
> 939 HRESULT TranslateAcceleratorSB(LPMSG, WORD);
> 940 HRESULT BrowseObject(LPCITEMIDLIST, UINT);
> 941 HRESULT GetViewStateStream(DWORD, LPSTREAM*);
> 942 HRESULT GetControlWindow(UINT, HWND*);
> 943 HRESULT SendControlMsg(UINT, UINT, WPARAM, LPARAM, LRESULT*);
> 944 HRESULT QueryActiveShellView(LPSHELLVIEW*);
> 945 HRESULT OnViewWindowActive(LPSHELLVIEW);
> 946 HRESULT SetToolbarItems(LPTBBUTTON, UINT, UINT);
> 947 }
1011 { | 948
1012 HRESULT QueryInterface(REFIID,PVOID*); <
1013 ULONG AddRef(); <
1014 ULONG Release(); <
> 949 interface IShellView : IOleWindow {
1015 HRESULT GetWindow(HWND*); 950 HRESULT GetWindow(HWND*);
1016 HRESULT ContextSensitiveHelp(BOOL); 951 HRESULT ContextSensitiveHelp(BOOL);
1017 HRESULT InsertMenusSB(HMENU,LPOLEMENUGROUPWIDTHS); | 952 HRESULT TranslateAccelerator(LPMSG);
1018 HRESULT SetMenuSB(HMENU,HOLEMENU,HWND); | 953 //[No] #ifdef _FIX_ENABLEMODELESS_CONFLICT
1019 HRESULT RemoveMenusSB(HMENU); | 954 //[No] STDMETHOD(EnableModelessSV)(THIS_ BOOL) PURE;
1020 HRESULT SetStatusTextSB(LPCOLESTR); | 955 //[Yes] #else
1021 HRESULT EnableModelessSB(BOOL); | 956 HRESULT EnableModeless(BOOL);
1022 HRESULT TranslateAcceleratorSB(LPMSG,WORD); | 957 //[Yes] #endif
1023 HRESULT BrowseObject(LPCITEMIDLIST,UINT); | 958 HRESULT UIActivate(UINT);
1024 HRESULT GetViewStateStream(DWORD,LPSTREAM*); | 959 HRESULT Refresh();
1025 HRESULT GetControlWindow(UINT,HWND*); | 960 HRESULT CreateViewWindow(IShellView, LPCFOLDERSETTINGS, LPSHELLBROWSER,
1026 HRESULT SendControlMsg(UINT,UINT,WPARAM,LPARAM,LRESULT*); | 961 HRESULT DestroyViewWindow();
1027 HRESULT QueryActiveShellView(LPSHELLVIEW*); | 962 HRESULT GetCurrentInfo(LPFOLDERSETTINGS);
1028 HRESULT OnViewWindowActive(LPSHELLVIEW); | 963 HRESULT AddPropertySheetPages(DWORD, LPFNADDPROPSHEETPAGE, LPARAM);
1029 HRESULT SetToolbarItems(LPTBBUTTON,UINT,UINT); | 964 HRESULT SaveViewState();
> 965 HRESULT SelectItem(LPCITEMIDLIST, UINT);
> 966 HRESULT GetItemObject(UINT, REFIID, PVOID*);
1030 } | 967 }
1031 | 968
> 969 interface ICommDlgBrowser : IUnknown {
> 970 HRESULT OnDefaultCommand(IShellView);
> 971 HRESULT OnStateChange(IShellView, ULONG);
> 972 HRESULT IncludeObject(IShellView, LPCITEMIDLIST);
> 973 }
> 974 alias ICommDlgBrowser LPCOMMDLGBROWSER;
> 975
> 976 alias GUID SHELLVIEWID;
> 977
> 978 struct SV2CVW2_PARAMS {
> 979 DWORD cbSize = this.sizeof;
1032 interface IShellView : IOleWindow | 980 IShellView psvPrev;
> 981 FOLDERSETTINGS *pfs;
> 982 IShellBrowser psbOwner;
> 983 RECT *prcView;
> 984 const(SHELLVIEWID)* pvid;
> 985 HWND hwndView;
> 986 }
> 987 alias SV2CVW2_PARAMS* LPSV2CVW2_PARAMS;
1033 { | 988
1034 HRESULT QueryInterface(REFIID,PVOID*); <
1035 ULONG AddRef(); <
1036 ULONG Release(); <
> 989 interface IShellView2 : IShellView {
1037 HRESULT GetWindow(HWND*); 990 HRESULT GetWindow(HWND*);
1038 HRESULT ContextSensitiveHelp(BOOL); 991 HRESULT ContextSensitiveHelp(BOOL);
1039 HRESULT TranslateAccelerator(LPMSG); 992 HRESULT TranslateAccelerator(LPMSG);
1040 //[No] #ifdef _FIX_ENABLEMODELESS_CONFLICT 993 //[No] #ifdef _FIX_ENABLEMODELESS_CONFLICT
1041 //[No] STDMETHOD(EnableModelessSV)(THIS_ BOOL) PURE; 994 //[No] STDMETHOD(EnableModelessSV)(THIS_ BOOL) PURE;
1042 //[Yes] #else 995 //[Yes] #else
1043 HRESULT EnableModeless(BOOL); 996 HRESULT EnableModeless(BOOL);
1044 //[Yes] #endif 997 //[Yes] #endif
1045 HRESULT UIActivate(UINT); 998 HRESULT UIActivate(UINT);
1046 HRESULT Refresh(); 999 HRESULT Refresh();
1047 HRESULT CreateViewWindow(IShellView*,LPCFOLDERSETTINGS,LPSHELLBROWSER,RE | 1000 HRESULT CreateViewWindow(IShellView, LPCFOLDERSETTINGS, LPSHELLBROWSER,
1048 HRESULT DestroyViewWindow(); 1001 HRESULT DestroyViewWindow();
1049 HRESULT GetCurrentInfo(LPFOLDERSETTINGS); 1002 HRESULT GetCurrentInfo(LPFOLDERSETTINGS);
1050 HRESULT AddPropertySheetPages(DWORD,LPFNADDPROPSHEETPAGE,LPARAM); | 1003 HRESULT AddPropertySheetPages(DWORD, LPFNADDPROPSHEETPAGE, LPARAM);
1051 HRESULT SaveViewState(); 1004 HRESULT SaveViewState();
1052 HRESULT SelectItem(LPCITEMIDLIST,UINT); | 1005 HRESULT SelectItem(LPCITEMIDLIST, UINT);
1053 HRESULT GetItemObject(UINT,REFIID,PVOID*); | 1006 HRESULT GetItemObject(UINT, REFIID, PVOID*);
1054 } <
1055 <
1056 interface ICommDlgBrowser : IUnknown <
1057 { <
1058 HRESULT QueryInterface(REFIID,PVOID*); <
1059 ULONG AddRef(); <
1060 ULONG Release(); <
1061 HRESULT OnDefaultCommand(IShellView*); <
1062 HRESULT OnStateChange(IShellView*,ULONG); <
1063 HRESULT IncludeObject(IShellView*,LPCITEMIDLIST); <
1064 } <
1065 alias ICommDlgBrowser *LPCOMMDLGBROWSER; <
1066 <
1067 alias GUID SHELLVIEWID; <
1068 <
1069 struct SV2CVW2_PARAMS { <
1070 DWORD cbSize = this.sizeof; <
1071 IShellView *psvPrev; <
1072 FOLDERSETTINGS *pfs; <
1073 IShellBrowser *psbOwner; <
1074 RECT *prcView; <
1075 CPtr!(SHELLVIEWID) pvid; <
1076 HWND hwndView; <
1077 } <
1078 alias SV2CVW2_PARAMS* LPSV2CVW2_PARAMS; <
1079 <
1080 interface IShellView2 : IShellView <
1081 { <
1082 <
1083 HRESULT QueryInterface(REFIID,PVOID*); <
1084 ULONG AddRef(); <
1085 ULONG Release(); <
1086 HRESULT GetWindow(HWND*); <
1087 HRESULT ContextSensitiveHelp(BOOL); <
1088 HRESULT TranslateAccelerator(LPMSG); <
1089 //[No] #ifdef _FIX_ENABLEMODELESS_CONFLICT <
1090 //[No] STDMETHOD(EnableModelessSV)(THIS_ BOOL) PURE; <
1091 //[Yes] #else <
1092 HRESULT EnableModeless(BOOL); <
1093 //[Yes] #endif <
1094 HRESULT UIActivate(UINT); <
1095 HRESULT Refresh(); <
1096 HRESULT CreateViewWindow(IShellView*,LPCFOLDERSETTINGS,LPSHELLBROWSER,RE <
1097 HRESULT DestroyViewWindow(); <
1098 HRESULT GetCurrentInfo(LPFOLDERSETTINGS); <
1099 HRESULT AddPropertySheetPages(DWORD,LPFNADDPROPSHEETPAGE,LPARAM); <
1100 HRESULT SaveViewState(); <
1101 HRESULT SelectItem(LPCITEMIDLIST,UINT); <
1102 HRESULT GetItemObject(UINT,REFIID,PVOID*); <
1103 HRESULT GetView(SHELLVIEWID*,ULONG); | 1007 HRESULT GetView(SHELLVIEWID*, ULONG);
1104 HRESULT CreateViewWindow2(LPSV2CVW2_PARAMS); 1008 HRESULT CreateViewWindow2(LPSV2CVW2_PARAMS);
1105 } 1009 }
1106 1010
1107 interface IShellExecuteHookA : IUnknown | 1011 interface IShellExecuteHookA : IUnknown {
1108 { <
1109 HRESULT QueryInterface(REFIID,PVOID*); <
1110 ULONG AddRef(); <
1111 ULONG Release(); <
1112 HRESULT Execute(LPSHELLEXECUTEINFOA); 1012 HRESULT Execute(LPSHELLEXECUTEINFOA);
1113 } 1013 }
1114 1014
1115 interface IShellExecuteHookW : IUnknown | 1015 interface IShellExecuteHookW : IUnknown {
1116 { <
1117 HRESULT QueryInterface(REFIID,PVOID*); <
1118 ULONG AddRef(); <
1119 ULONG Release(); <
1120 HRESULT Execute(LPSHELLEXECUTEINFOW); 1016 HRESULT Execute(LPSHELLEXECUTEINFOW);
1121 } 1017 }
1122 1018
1123 interface IShellIcon : IUnknown | 1019 interface IShellIcon : IUnknown {
1124 { <
1125 HRESULT QueryInterface(REFIID,PVOID*); <
1126 ULONG AddRef(); <
1127 ULONG Release(); <
1128 HRESULT GetIconOf(LPCITEMIDLIST,UINT,PINT); | 1020 HRESULT GetIconOf(LPCITEMIDLIST, UINT, PINT);
1129 } 1021 }
1130 alias IShellIcon* LPSHELLICON; | 1022 alias IShellIcon LPSHELLICON;
1131 1023
1132 struct SHELLFLAGSTATE { 1024 struct SHELLFLAGSTATE {
1133 // TODO | 1025 short _bf;
1134 short bitflags_; // for D. <
1135 /* | 1026 /*
1136 BOOL fShowAllObjects : 1; 1027 BOOL fShowAllObjects : 1;
1137 BOOL fShowExtensions : 1; 1028 BOOL fShowExtensions : 1;
1138 BOOL fNoConfirmRecycle : 1; 1029 BOOL fNoConfirmRecycle : 1;
1139 BOOL fShowSysFiles : 1; 1030 BOOL fShowSysFiles : 1;
1140 BOOL fShowCompColor : 1; 1031 BOOL fShowCompColor : 1;
1141 BOOL fDoubleClickInWebView : 1; 1032 BOOL fDoubleClickInWebView : 1;
1142 BOOL fDesktopHTML : 1; 1033 BOOL fDesktopHTML : 1;
................................................................................................................................................................................
1144 BOOL fDontPrettyPath : 1; 1035 BOOL fDontPrettyPath : 1;
1145 BOOL fShowAttribCol : 1; 1036 BOOL fShowAttribCol : 1;
1146 BOOL fMapNetDrvBtn : 1; 1037 BOOL fMapNetDrvBtn : 1;
1147 BOOL fShowInfoTip : 1; 1038 BOOL fShowInfoTip : 1;
1148 BOOL fHideIcons : 1; 1039 BOOL fHideIcons : 1;
1149 UINT fRestFlags : 3; 1040 UINT fRestFlags : 3;
1150 */ 1041 */
> 1042 @property bool fShowAllObjects() { return cast(bool) (_bf & 0x0001
> 1043 @property bool fShowExtensions() { return cast(bool) (_bf & 0x0002
> 1044 @property bool fNoConfirmRecycle() { return cast(bool) (_bf & 0x0004
> 1045 @property bool fShowSysFiles() { return cast(bool) (_bf & 0x0008
> 1046 @property bool fShowCompColor() { return cast(bool) (_bf & 0x0010
> 1047 @property bool fDoubleClickInWebView() { return cast(bool) (_bf & 0x0020
> 1048 @property bool fDesktopHTML() { return cast(bool) (_bf & 0x0040
> 1049 @property bool fWin95Classic() { return cast(bool) (_bf & 0x0080
> 1050 @property bool fDontPrettyPath() { return cast(bool) (_bf & 0x0100
> 1051 @property bool fShowAttribCol() { return cast(bool) (_bf & 0x0200
> 1052 @property bool fMapNetDrvBtn() { return cast(bool) (_bf & 0x0400
> 1053 @property bool fShowInfoTip() { return cast(bool) (_bf & 0x0800
> 1054 @property bool fHideIcons() { return cast(bool) (_bf & 0x1000
> 1055 @property ubyte fRestFlags() { return cast(ubyte) (_bf >> 13);
> 1056
> 1057 @property bool fShowAllObjects(bool f) { _bf = cast(ushort) ((_bf
> 1058 @property bool fShowExtensions(bool f) { _bf = cast(ushort) ((_bf
> 1059 @property bool fNoConfirmRecycle(bool f) { _bf = cast(ushort) ((_bf
> 1060 @property bool fShowSysFiles(bool f) { _bf = cast(ushort) ((_bf
> 1061 @property bool fShowCompColor(bool f) { _bf = cast(ushort) ((_bf
> 1062 @property bool fDoubleClickInWebView(bool f) { _bf = cast(ushort) ((_bf
> 1063 @property bool fDesktopHTML(bool f) { _bf = cast(ushort) ((_bf
> 1064 @property bool fWin95Classic(bool f) { _bf = cast(ushort) ((_bf
> 1065 @property bool fDontPrettyPath(bool f) { _bf = cast(ushort) ((_bf
> 1066 @property bool fShowAttribCol(bool f) { _bf = cast(ushort) ((_bf
> 1067 @property bool fMapNetDrvBtn(bool f) { _bf = cast(ushort) ((_bf
> 1068 @property bool fShowInfoTip(bool f) { _bf = cast(ushort) ((_bf
> 1069 @property bool fHideIcons(bool f) { _bf = cast(ushort) ((_bf
> 1070 @property ubyte fRestFlags(ubyte f) { _bf = cast(ushort) ((_bf
1151 } 1071 }
1152 alias SHELLFLAGSTATE* LPSHELLFLAGSTATE; 1072 alias SHELLFLAGSTATE* LPSHELLFLAGSTATE;
1153 1073
1154 const SSF_SHOWALLOBJECTS = 0x1; 1074 const SSF_SHOWALLOBJECTS = 0x1;
1155 const SSF_SHOWEXTENSIONS = 0x2; 1075 const SSF_SHOWEXTENSIONS = 0x2;
1156 const SSF_SHOWCOMPCOLOR = 0x8; 1076 const SSF_SHOWCOMPCOLOR = 0x8;
1157 const SSF_SHOWSYSFILES = 0x20; 1077 const SSF_SHOWSYSFILES = 0x20;
................................................................................................................................................................................
1161 const SSF_WIN95CLASSIC = 0x400; 1081 const SSF_WIN95CLASSIC = 0x400;
1162 const SSF_DONTPRETTYPATH = 0x800; 1082 const SSF_DONTPRETTYPATH = 0x800;
1163 const SSF_MAPNETDRVBUTTON = 0x1000; 1083 const SSF_MAPNETDRVBUTTON = 0x1000;
1164 const SSF_SHOWINFOTIP = 0x2000; 1084 const SSF_SHOWINFOTIP = 0x2000;
1165 const SSF_HIDEICONS = 0x4000; 1085 const SSF_HIDEICONS = 0x4000;
1166 const SSF_NOCONFIRMRECYCLE = 0x8000; 1086 const SSF_NOCONFIRMRECYCLE = 0x8000;
1167 1087
1168 interface IShellIconOverlayIdentifier : IUnknown | 1088 interface IShellIconOverlayIdentifier : IUnknown {
1169 { <
1170 HRESULT QueryInterface(REFIID,PVOID*); <
1171 ULONG AddRef(); <
1172 ULONG Release(); <
1173 HRESULT IsMemberOf(LPCWSTR,DWORD); | 1089 HRESULT IsMemberOf(LPCWSTR, DWORD);
1174 HRESULT GetOverlayInfo(LPWSTR,int,int*,DWORD*); | 1090 HRESULT GetOverlayInfo(LPWSTR, int, int*, DWORD*);
1175 HRESULT GetPriority(int*); 1091 HRESULT GetPriority(int*);
1176 } 1092 }
1177 1093
1178 const ISIOI_ICONFILE = 0x00000001; 1094 const ISIOI_ICONFILE = 0x00000001;
1179 const ISIOI_ICONINDEX = 0x00000002; 1095 const ISIOI_ICONINDEX = 0x00000002;
1180 1096
1181 static if (_WIN32_WINNT >= 0x0500) {/* W2K */ | 1097 static if (_WIN32_WINNT >= 0x500) {
1182 struct SHELLSTATE { 1098 struct SHELLSTATE {
1183 //TODO: <
> 1099 uint _bf1;
> 1100 DWORD dwWin95Unused;
> 1101 UINT uWin95Unused;
> 1102 LONG lParamSort;
> 1103 int iSortDirection;
> 1104 UINT _version;
> 1105 UINT uNotUsed;
> 1106 uint _bf2;
1184 /* 1107 /*
1185 BOOL fShowAllObjects : 1; 1108 BOOL fShowAllObjects : 1;
1186 BOOL fShowExtensions : 1; 1109 BOOL fShowExtensions : 1;
1187 BOOL fNoConfirmRecycle : 1; 1110 BOOL fNoConfirmRecycle : 1;
1188 BOOL fShowSysFiles : 1; 1111 BOOL fShowSysFiles : 1;
1189 BOOL fShowCompColor : 1; 1112 BOOL fShowCompColor : 1;
1190 BOOL fDoubleClickInWebView : 1; 1113 BOOL fDoubleClickInWebView : 1;
................................................................................................................................................................................
1195 BOOL fMapNetDrvBtn : 1; 1118 BOOL fMapNetDrvBtn : 1;
1196 BOOL fShowInfoTip : 1; 1119 BOOL fShowInfoTip : 1;
1197 BOOL fHideIcons : 1; 1120 BOOL fHideIcons : 1;
1198 BOOL fWebView : 1; 1121 BOOL fWebView : 1;
1199 BOOL fFilter : 1; 1122 BOOL fFilter : 1;
1200 BOOL fShowSuperHidden : 1; 1123 BOOL fShowSuperHidden : 1;
1201 BOOL fNoNetCrawling : 1; 1124 BOOL fNoNetCrawling : 1;
1202 DWORD dwWin95Unused; <
> 1125 */
1203 UINT uWin95Unused; | 1126 @property bool fShowAllObjects() { return cast(bool) (_bf1
1204 LONG lParamSort; | 1127 @property bool fShowExtensions() { return cast(bool) (_bf1
1205 int iSortDirection; | 1128 @property bool fNoConfirmRecycle() { return cast(bool) (_bf1
1206 UINT version; | 1129 @property bool fShowSysFiles() { return cast(bool) (_bf1
1207 UINT uNotUsed; | 1130 @property bool fShowCompColor() { return cast(bool) (_bf1
> 1131 @property bool fDoubleClickInWebView() { return cast(bool) (_bf1
> 1132 @property bool fDesktopHTML() { return cast(bool) (_bf1
> 1133 @property bool fWin95Classic() { return cast(bool) (_bf1
> 1134 @property bool fDontPrettyPath() { return cast(bool) (_bf1
> 1135 @property bool fShowAttribCol() { return cast(bool) (_bf1
> 1136 @property bool fMapNetDrvBtn() { return cast(bool) (_bf1
> 1137 @property bool fShowInfoTip() { return cast(bool) (_bf1
> 1138 @property bool fHideIcons() { return cast(bool) (_bf1
> 1139 @property bool fWebView() { return cast(bool) (_bf1
> 1140 @property bool fFilter() { return cast(bool) (_bf1
> 1141 @property bool fShowSuperHidden() { return cast(bool) (_bf1
> 1142 @property bool fNoNetCrawling() { return cast(bool) (_bf1
> 1143
> 1144 @property bool fShowAllObjects(bool f) { _bf1 = cast(uint)
> 1145 @property bool fShowExtensions(bool f) { _bf1 = cast(uint)
> 1146 @property bool fNoConfirmRecycle(bool f) { _bf1 = cast(uint)
> 1147 @property bool fShowSysFiles(bool f) { _bf1 = cast(uint)
> 1148 @property bool fShowCompColor(bool f) { _bf1 = cast(uint)
> 1149 @property bool fDoubleClickInWebView(bool f) { _bf1 = cast(uint)
> 1150 @property bool fDesktopHTML(bool f) { _bf1 = cast(uint)
> 1151 @property bool fWin95Classic(bool f) { _bf1 = cast(uint)
> 1152 @property bool fDontPrettyPath(bool f) { _bf1 = cast(uint)
> 1153 @property bool fShowAttribCol(bool f) { _bf1 = cast(uint)
> 1154 @property bool fMapNetDrvBtn(bool f) { _bf1 = cast(uint)
> 1155 @property bool fShowInfoTip(bool f) { _bf1 = cast(uint)
> 1156 @property bool fHideIcons(bool f) { _bf1 = cast(uint)
> 1157 @property bool fWebView(bool f) { _bf1 = cast(uint)
> 1158 @property bool fFilter(bool f) { _bf1 = cast(uint)
> 1159 @property bool fShowSuperHidden(bool f) { _bf1 = cast(uint)
> 1160 @property bool fNoNetCrawling(bool f) { _bf1 = cast(uint)
> 1161 /*
1208 BOOL fSepProcess : 1; 1162 BOOL fSepProcess : 1;
1209 BOOL fStartPanelOn : 1; 1163 BOOL fStartPanelOn : 1;
1210 BOOL fShowStartPage : 1; 1164 BOOL fShowStartPage : 1;
1211 UINT fSpareFlags : 13; 1165 UINT fSpareFlags : 13;
1212 */ | 1166 */
> 1167 @property bool fSepProcess() { return cast(bool) (_bf2
> 1168 @property bool fStartPanelOn() { return cast(bool) (_bf2
> 1169 @property bool fShowStartPage() { return cast(bool) (_bf2
> 1170 @property ushort fSpareFlags() { return cast(ushort) ((_
> 1171
> 1172 @property bool fSepProcess(bool f) { _bf2 = cast(uint) ((_bf
> 1173 @property bool fStartPanelOn(bool f) { _bf2 = cast(uint) ((_bf
> 1174 @property bool fShowStartPage(bool f) { _bf2 = cast(uint) ((_bf
> 1175 @property ushort fSpareFlags(ushort f) {
> 1176 _bf2 = cast(ushort) ((_bf2 & ~0xFFFF0007) | ((f & 0x1FFF
> 1177 return cast(ushort) (f & 0x1FFF);
> 1178 }
1213 } 1179 }
1214 alias SHELLSTATE* LPSHELLSTATE; 1180 alias SHELLSTATE* LPSHELLSTATE;
1215 } 1181 }
1216 1182
1217 static if (_WIN32_IE >= 0x0500) { | 1183 static if (_WIN32_IE >= 0x500) {
1218 align(8): | 1184 align(8) {
1219 struct SHDRAGIMAGE { | 1185 struct SHDRAGIMAGE {
1220 SIZE sizeDragImage; | 1186 SIZE sizeDragImage;
1221 POINT ptOffset; | 1187 POINT ptOffset;
1222 HBITMAP hbmpDragImage; | 1188 HBITMAP hbmpDragImage;
1223 COLORREF crColorKey; | 1189 COLORREF crColorKey;
> 1190 }
> 1191 alias SHDRAGIMAGE* LPSHDRAGIMAGE;
1224 } 1192 }
1225 alias SHDRAGIMAGE* LPSHDRAGIMAGE; <
1226 align: <
1227 1193
1228 interface IDragSourceHelper : IUnknown | 1194 interface IDragSourceHelper : IUnknown {
1229 { <
1230 HRESULT QueryInterface(REFIID riid, void **ppv); <
1231 ULONG AddRef(); <
1232 ULONG Release(); <
1233 HRESULT InitializeFromBitmap(LPSHDRAGIMAGE pshdi, IDataObject* p | 1195 HRESULT InitializeFromBitmap(LPSHDRAGIMAGE pshdi, IDataObject pD
1234 HRESULT InitializeFromWindow(HWND hwnd, POINT* ppt, IDataObject* | 1196 HRESULT InitializeFromWindow(HWND hwnd, POINT* ppt, IDataObject
1235 } 1197 }
1236 1198
1237 interface IDropTargetHelper : IUnknown | 1199 interface IDropTargetHelper : IUnknown {
1238 { <
1239 HRESULT QueryInterface(REFIID riid, void** ppv); <
1240 ULONG AddRef(); <
1241 ULONG Release(); <
1242 HRESULT DragEnter(HWND hwndTarget, IDataObject* pDataObject, POI | 1200 HRESULT DragEnter(HWND hwndTarget, IDataObject pDataObject, POIN
1243 HRESULT DragLeave(); 1201 HRESULT DragLeave();
1244 HRESULT DragOver(POINT* ppt, DWORD dwEffect); 1202 HRESULT DragOver(POINT* ppt, DWORD dwEffect);
1245 HRESULT Drop(IDataObject* pDataObject, POINT* ppt, DWORD dwEffec | 1203 HRESULT Drop(IDataObject pDataObject, POINT* ppt, DWORD dwEffect
1246 HRESULT Show(BOOL fShow); 1204 HRESULT Show(BOOL fShow);
1247 } 1205 }
1248 } 1206 }
1249 1207
1250 extern (Windows): 1208 extern (Windows):
1251 void SHAddToRecentDocs(UINT,PCVOID); | 1209 void SHAddToRecentDocs(UINT, PCVOID);
1252 LPITEMIDLIST SHBrowseForFolderA(PBROWSEINFOA); 1210 LPITEMIDLIST SHBrowseForFolderA(PBROWSEINFOA);
1253 LPITEMIDLIST SHBrowseForFolderW(PBROWSEINFOW); 1211 LPITEMIDLIST SHBrowseForFolderW(PBROWSEINFOW);
1254 void SHChangeNotify(LONG,UINT,PCVOID,PCVOID); | 1212 void SHChangeNotify(LONG, UINT, PCVOID, PCVOID);
1255 HRESULT SHGetDataFromIDListA(LPSHELLFOLDER,LPCITEMIDLIST,int,PVOID,int); | 1213 HRESULT SHGetDataFromIDListA(LPSHELLFOLDER, LPCITEMIDLIST, int, PVOID, int);
1256 HRESULT SHGetDataFromIDListW(LPSHELLFOLDER,LPCITEMIDLIST,int,PVOID,int); | 1214 HRESULT SHGetDataFromIDListW(LPSHELLFOLDER, LPCITEMIDLIST, int, PVOID, int);
1257 HRESULT SHGetDesktopFolder(LPSHELLFOLDER*); 1215 HRESULT SHGetDesktopFolder(LPSHELLFOLDER*);
1258 HRESULT SHGetInstanceExplorer(IUnknown **); | 1216 HRESULT SHGetInstanceExplorer(IUnknown*);
1259 HRESULT SHGetMalloc(LPMALLOC*); 1217 HRESULT SHGetMalloc(LPMALLOC*);
1260 BOOL SHGetPathFromIDListA(LPCITEMIDLIST,LPSTR); | 1218 BOOL SHGetPathFromIDListA(LPCITEMIDLIST, LPSTR);
1261 BOOL SHGetPathFromIDListW(LPCITEMIDLIST,LPWSTR); | 1219 BOOL SHGetPathFromIDListW(LPCITEMIDLIST, LPWSTR);
1262 HRESULT SHGetSpecialFolderLocation(HWND,int,LPITEMIDLIST*); | 1220 HRESULT SHGetSpecialFolderLocation(HWND, int, LPITEMIDLIST*);
1263 HRESULT SHLoadInProc(REFCLSID); 1221 HRESULT SHLoadInProc(REFCLSID);
1264 1222
1265 static if (_WIN32_IE >= 0x0400) { | 1223 static if (_WIN32_IE >= 0x400) {
1266 BOOL SHGetSpecialFolderPathA(HWND,LPSTR,int,BOOL); | 1224 BOOL SHGetSpecialFolderPathA(HWND, LPSTR, int, BOOL);
1267 BOOL SHGetSpecialFolderPathW(HWND,LPWSTR,int,BOOL); | 1225 BOOL SHGetSpecialFolderPathW(HWND, LPWSTR, int, BOOL);
1268 } 1226 }
1269 1227
1270 /* SHGetFolderPath in shfolder.dll on W9x, NT4, also in shell32.dll on W2K */ 1228 /* SHGetFolderPath in shfolder.dll on W9x, NT4, also in shell32.dll on W2K */
1271 HRESULT SHGetFolderPathA(HWND,int,HANDLE,DWORD,LPSTR); | 1229 HRESULT SHGetFolderPathA(HWND, int, HANDLE, DWORD, LPSTR);
1272 HRESULT SHGetFolderPathW(HWND,int,HANDLE,DWORD,LPWSTR); | 1230 HRESULT SHGetFolderPathW(HWND, int, HANDLE, DWORD, LPWSTR);
1273 1231
1274 static if ((_WIN32_WINDOWS >= 0x0490) || (_WIN32_WINNT >= 0x0500)) {/* ME or W2K | 1232 static if (_WIN32_WINNT >= 0x500) {
> 1233 INT SHGetIconOverlayIndexW(LPCWSTR pszIconPath, int iIconIndex);
> 1234 INT SHGetIconOverlayIndexA(LPCSTR pszIconPath, int iIconIndex);
1275 HRESULT SHGetFolderLocation(HWND,int,HANDLE,DWORD,LPITEMIDLIST*); | 1235 HRESULT SHGetFolderLocation(HWND, int, HANDLE, DWORD, LPITEMIDLIST*);
1276 } <
1277 <
1278 static if (_WIN32_WINNT >= 0x0500) { <
1279 INT SHCreateDirectoryExA(HWND,LPCSTR,LPSECURITY_ATTRIBUTES); | 1236 INT SHCreateDirectoryExA(HWND, LPCSTR, LPSECURITY_ATTRIBUTES);
1280 INT SHCreateDirectoryExW(HWND,LPCWSTR,LPSECURITY_ATTRIBUTES); | 1237 INT SHCreateDirectoryExW(HWND, LPCWSTR, LPSECURITY_ATTRIBUTES);
1281 HRESULT SHBindToParent(LPCITEMIDLIST,REFIID,VOID**,LPCITEMIDLIST*); | 1238 HRESULT SHBindToParent(LPCITEMIDLIST, REFIID, VOID**, LPCITEMIDLIST*);
1282 } 1239 }
1283 1240
1284 static if (_WIN32_WINNT >= 0x0501) {/* XP */ | 1241 static if (_WIN32_WINNT >= 0x501) {
> 1242 enum {
> 1243 PRF_VERIFYEXISTS = 0x0001,
> 1244 PRF_TRYPROGRAMEXTENSIONS = (0x0002 | PRF_VERIFYEXISTS),
> 1245 PRF_FIRSTDIRDEF = 0x0004,
> 1246 PRF_DONTFINDLNK = 0x0008,
> 1247 IDO_SHGIOI_SHARE = 0x0FFFFFFF,
> 1248 IDO_SHGIOI_LINK = 0x0FFFFFFE,
> 1249 IDO_SHGIOI_SLOWFILE = 0x0FFFFFFD,
> 1250 IDO_SHGIOI_DEFAULT = 0x0FFFFFFC
> 1251 }
> 1252
> 1253 struct SHDESCRIPTIONID {
> 1254 DWORD dwDescriptionId;
> 1255 CLSID clsid;
> 1256 }
> 1257 alias SHDESCRIPTIONID* LPSHDESCRIPTIONID;
> 1258
> 1259 BOOL PathResolve(LPWSTR, LPCWSTR*, UINT);
1285 HRESULT SHGetFolderPathAndSubDirA(HWND,int,HANDLE,DWORD,LPCSTR,LPSTR); | 1260 HRESULT SHGetFolderPathAndSubDirA(HWND, int, HANDLE, DWORD, LPCSTR, LPST
1286 HRESULT SHGetFolderPathAndSubDirW(HWND,int,HANDLE,DWORD,LPCWSTR,LPWSTR); | 1261 HRESULT SHGetFolderPathAndSubDirW(HWND, int, HANDLE, DWORD, LPCWSTR, LPW
> 1262 HRESULT SHParseDisplayName(LPCWSTR, IBindCtx, LPITEMIDLIST, SFGAOF, SFGA
1287 } 1263 }
1288 1264
1289 void SHGetSettings(LPSHELLFLAGSTATE,DWORD); | 1265 void SHGetSettings(LPSHELLFLAGSTATE, DWORD);
1290 1266
1291 static if (_WIN32_WINNT >= 0x0500) {/* W2K */ | 1267 static if (_WIN32_WINNT >= 0x500) {
1292 void SHGetSetSettings(LPSHELLSTATE,DWORD,BOOL); | 1268 void SHGetSetSettings(LPSHELLSTATE, DWORD, BOOL);
1293 } <
1294 <
1295 static if (_WIN32_WINNT >= 0x0500) {/* W2K */ <
1296 BOOL ILIsEqual(LPCITEMIDLIST, LPCITEMIDLIST); 1269 BOOL ILIsEqual(LPCITEMIDLIST, LPCITEMIDLIST);
1297 BOOL ILIsParent(LPCITEMIDLIST, LPCITEMIDLIST, BOOL); 1270 BOOL ILIsParent(LPCITEMIDLIST, LPCITEMIDLIST, BOOL);
1298 BOOL ILRemoveLastID(LPITEMIDLIST); 1271 BOOL ILRemoveLastID(LPITEMIDLIST);
1299 HRESULT ILLoadFromStream(IStream*, LPITEMIDLIST*); | 1272 HRESULT ILLoadFromStream(IStream, LPITEMIDLIST*);
1300 HRESULT ILSaveToStream(IStream*, LPCITEMIDLIST); | 1273 HRESULT ILSaveToStream(IStream, LPCITEMIDLIST);
1301 LPITEMIDLIST ILAppendID(LPITEMIDLIST, LPCSHITEMID, BOOL); 1274 LPITEMIDLIST ILAppendID(LPITEMIDLIST, LPCSHITEMID, BOOL);
1302 LPITEMIDLIST ILClone(LPCITEMIDLIST); 1275 LPITEMIDLIST ILClone(LPCITEMIDLIST);
1303 LPITEMIDLIST ILCloneFirst(LPCITEMIDLIST); 1276 LPITEMIDLIST ILCloneFirst(LPCITEMIDLIST);
1304 LPITEMIDLIST ILCombine(LPCITEMIDLIST, LPCITEMIDLIST); 1277 LPITEMIDLIST ILCombine(LPCITEMIDLIST, LPCITEMIDLIST);
1305 LPITEMIDLIST ILFindChild(LPCITEMIDLIST, LPCITEMIDLIST); 1278 LPITEMIDLIST ILFindChild(LPCITEMIDLIST, LPCITEMIDLIST);
1306 LPITEMIDLIST ILFindLastID(LPCITEMIDLIST); 1279 LPITEMIDLIST ILFindLastID(LPCITEMIDLIST);
1307 LPITEMIDLIST ILGetNext(LPCITEMIDLIST); 1280 LPITEMIDLIST ILGetNext(LPCITEMIDLIST);
1308 UINT ILGetSize(LPCITEMIDLIST); 1281 UINT ILGetSize(LPCITEMIDLIST);
1309 void ILFree(LPITEMIDLIST); 1282 void ILFree(LPITEMIDLIST);
1310 1283
1311 HRESULT SHCoCreateInstance(LPCWSTR,REFCLSID,IUnknown*,REFIID,void**); | 1284 HRESULT SHCoCreateInstance(LPCWSTR, REFCLSID, IUnknown, REFIID, void**);
1312 } 1285 }
1313 1286
1314 version(Unicode) { 1287 version(Unicode) {
1315 alias IShellExecuteHookW IShellExecuteHook; 1288 alias IShellExecuteHookW IShellExecuteHook;
1316 alias IShellLinkW IShellLink; 1289 alias IShellLinkW IShellLink;
1317 alias BROWSEINFOW BROWSEINFO; 1290 alias BROWSEINFOW BROWSEINFO;
1318 alias SHBrowseForFolderW SHBrowseForFolder; 1291 alias SHBrowseForFolderW SHBrowseForFolder;
1319 alias SHGetDataFromIDListW SHGetDataFromIDList; 1292 alias SHGetDataFromIDListW SHGetDataFromIDList;
1320 alias SHGetPathFromIDListW SHGetPathFromIDList; 1293 alias SHGetPathFromIDListW SHGetPathFromIDList;
1321 static if (_WIN32_IE >= 0x0400) { | 1294 static if (_WIN32_IE >= 0x400) {
1322 alias SHGetSpecialFolderPathW SHGetSpecialFolderPath; 1295 alias SHGetSpecialFolderPathW SHGetSpecialFolderPath;
1323 } 1296 }
1324 alias SHGetFolderPathW SHGetFolderPath; 1297 alias SHGetFolderPathW SHGetFolderPath;
1325 static if (_WIN32_WINNT >= 0x0500) { | 1298 static if (_WIN32_WINNT >= 0x500) {
> 1299 alias SHGetIconOverlayIndexW SHGetIconOverlayIndex;
1326 alias SHCreateDirectoryExW SHCreateDirectoryEx; 1300 alias SHCreateDirectoryExW SHCreateDirectoryEx;
1327 } 1301 }
1328 static if (_WIN32_WINNT >= 0x0501) { | 1302 static if (_WIN32_WINNT >= 0x501) {
1329 alias SHGetFolderPathAndSubDirW SHGetFolderPathAndSubDir; 1303 alias SHGetFolderPathAndSubDirW SHGetFolderPathAndSubDir;
1330 } 1304 }
1331 alias FILEDESCRIPTORW FILEDESCRIPTOR; 1305 alias FILEDESCRIPTORW FILEDESCRIPTOR;
1332 alias LPFILEDESCRIPTORW LPFILEDESCRIPTOR; 1306 alias LPFILEDESCRIPTORW LPFILEDESCRIPTOR;
1333 alias FILEGROUPDESCRIPTORW FILEGROUPDESCRIPTOR; 1307 alias FILEGROUPDESCRIPTORW FILEGROUPDESCRIPTOR;
1334 alias LPFILEGROUPDESCRIPTORW LPFILEGROUPDESCRIPTOR; 1308 alias LPFILEGROUPDESCRIPTORW LPFILEGROUPDESCRIPTOR;
1335 1309
................................................................................................................................................................................
1336 } else { 1310 } else {
1337 alias IShellExecuteHookA IShellExecuteHook; 1311 alias IShellExecuteHookA IShellExecuteHook;
1338 alias IShellLinkA IShellLink; 1312 alias IShellLinkA IShellLink;
1339 alias BROWSEINFOA BROWSEINFO; 1313 alias BROWSEINFOA BROWSEINFO;
1340 alias SHBrowseForFolderA SHBrowseForFolder; 1314 alias SHBrowseForFolderA SHBrowseForFolder;
1341 alias SHGetDataFromIDListA SHGetDataFromIDList; 1315 alias SHGetDataFromIDListA SHGetDataFromIDList;
1342 alias SHGetPathFromIDListA SHGetPathFromIDList; 1316 alias SHGetPathFromIDListA SHGetPathFromIDList;
1343 static if (_WIN32_IE >= 0x0400) { | 1317 static if (_WIN32_IE >= 0x400) {
1344 alias SHGetSpecialFolderPathA SHGetSpecialFolderPath; 1318 alias SHGetSpecialFolderPathA SHGetSpecialFolderPath;
1345 } 1319 }
1346 alias SHGetFolderPathA SHGetFolderPath; 1320 alias SHGetFolderPathA SHGetFolderPath;
1347 static if (_WIN32_WINNT >= 0x0500) { | 1321 static if (_WIN32_WINNT >= 0x500) {
> 1322 alias SHGetIconOverlayIndexA SHGetIconOverlayIndex;
1348 alias SHCreateDirectoryExA SHCreateDirectoryEx; 1323 alias SHCreateDirectoryExA SHCreateDirectoryEx;
1349 } 1324 }
1350 static if (_WIN32_WINNT >= 0x0501) { | 1325 static if (_WIN32_WINNT >= 0x501) {
1351 alias SHGetFolderPathAndSubDirA SHGetFolderPathAndSubDir; 1326 alias SHGetFolderPathAndSubDirA SHGetFolderPathAndSubDir;
1352 } 1327 }
1353 alias FILEDESCRIPTORA FILEDESCRIPTOR; 1328 alias FILEDESCRIPTORA FILEDESCRIPTOR;
1354 alias LPFILEDESCRIPTORA LPFILEDESCRIPTOR; 1329 alias LPFILEDESCRIPTORA LPFILEDESCRIPTOR;
1355 alias FILEGROUPDESCRIPTORA FILEGROUPDESCRIPTOR; 1330 alias FILEGROUPDESCRIPTORA FILEGROUPDESCRIPTOR;
1356 alias LPFILEGROUPDESCRIPTORA LPFILEGROUPDESCRIPTOR; 1331 alias LPFILEGROUPDESCRIPTORA LPFILEGROUPDESCRIPTOR;
1357 } 1332 }
1358 alias BROWSEINFO* PBROWSEINFO, LPBROWSEINFO; 1333 alias BROWSEINFO* PBROWSEINFO, LPBROWSEINFO;
> 1334
> 1335 static if (_WIN32_WINNT >= 0x501) {
> 1336 interface IFolderView : IUnknown {
> 1337 HRESULT GetAutoArrange();
> 1338 HRESULT GetCurrentViewMode(UINT);
> 1339 HRESULT GetDefaultSpacing(POINT*);
> 1340 HRESULT GetFocusedItem(int*);
> 1341 HRESULT GetFolder(REFIID, PVOID*);
> 1342 HRESULT GetItemPosition(LPCITEMIDLIST, POINT*);
> 1343 HRESULT GetSelectionMarkedItem(int*);
> 1344 HRESULT GetSpacing(POINT*);
> 1345 HRESULT Item(int, LPITEMIDLIST*);
> 1346 HRESULT ItemCount(UINT, int*);
> 1347 HRESULT Items(UINT, REFIID, PVOID*);
> 1348 HRESULT SelectAndPositionItems(UINT, LPCITEMIDLIST*, POINT*, DWORD);
> 1349 HRESULT SelectItem(int, DWORD);
> 1350 HRESULT SetCurrentViewMode(UINT);
> 1351 }
> 1352 alias IFolderView LPFOLDERVIEW;
> 1353 }