1 // Copyright © 2015, Peter Atashian
2 // Licensed under the MIT License <LICENSE.md>
3 //! FFI bindings to shell32.
4 #![cfg(windows)]
5 extern crate winapi;
6 use winapi::*;
7 extern "system" {
8     // pub fn AssocCreateForClasses();
9     // pub fn AssocGetDetailsOfPropKey();
10     // pub fn CDefFolderMenu_Create2();
11     // pub fn CIDLData_CreateFromIDArray();
12     // pub fn CheckEscapesW();
13     // pub fn CommandLineToArgvW();
14     // pub fn DAD_AutoScroll();
15     // pub fn DAD_DragEnterEx();
16     // pub fn DAD_DragEnterEx2();
17     // pub fn DAD_DragLeave();
18     // pub fn DAD_DragMove();
19     // pub fn DAD_SetDragImage();
20     // pub fn DAD_ShowDragImage();
21     // pub fn DoEnvironmentSubstA();
22     // pub fn DoEnvironmentSubstW();
DragAcceptFiles(hWnd: HWND, fAccept: BOOL)23     pub fn DragAcceptFiles(hWnd: HWND, fAccept: BOOL);
DragFinish(hDrop: HDROP)24     pub fn DragFinish(hDrop: HDROP);
25     // pub fn DragQueryFile();
DragQueryFileA(hDrop: HDROP, iFile: UINT, lpszFile: LPSTR, cch: UINT) -> UINT26     pub fn DragQueryFileA(hDrop: HDROP, iFile: UINT, lpszFile: LPSTR, cch: UINT) -> UINT;
27     // pub fn DragQueryFileAorW();
DragQueryFileW(hDrop: HDROP, iFile: UINT, lpszFile: LPWSTR, cch: UINT) -> UINT28     pub fn DragQueryFileW(hDrop: HDROP, iFile: UINT, lpszFile: LPWSTR, cch: UINT) -> UINT;
DragQueryPoint(hDrop: HDROP, lppt: *mut POINT) -> BOOL29     pub fn DragQueryPoint(hDrop: HDROP, lppt: *mut POINT) -> BOOL;
30     // pub fn DriveType();
31     // pub fn DuplicateIcon();
32     // pub fn ExtractAssociatedIconA();
33     // pub fn ExtractAssociatedIconExA();
34     // pub fn ExtractAssociatedIconExW();
35     // pub fn ExtractAssociatedIconW();
36     // pub fn ExtractIconA();
37     // pub fn ExtractIconEx();
38     // pub fn ExtractIconExA();
39     // pub fn ExtractIconExW();
40     // pub fn ExtractIconW();
41     // pub fn FindExecutableA();
42     // pub fn FindExecutableW();
43     // pub fn GetCurrentProcessExplicitAppUserModelID();
44     // pub fn GetFileNameFromBrowse();
45     // pub fn ILAppendID();
46     // pub fn ILClone();
47     // pub fn ILCloneFirst();
48     // pub fn ILCombine();
49     // pub fn ILCreateFromPath();
50     // pub fn ILCreateFromPathA();
51     // pub fn ILCreateFromPathW();
52     // pub fn ILFindChild();
53     // pub fn ILFindLastID();
54     // pub fn ILFree();
55     // pub fn ILGetNext();
56     // pub fn ILGetSize();
57     // pub fn ILIsEqual();
58     // pub fn ILIsParent();
59     // pub fn ILLoadFromStreamEx();
60     // pub fn ILRemoveLastID();
61     // pub fn ILSaveToStream();
62     // pub fn InitNetworkAddressControl();
63     // pub fn IsLFNDrive();
64     // pub fn IsLFNDriveA();
65     // pub fn IsLFNDriveW();
66     // pub fn IsNetDrive();
67     // pub fn IsUserAnAdmin();
68     // pub fn OpenRegStream();
69     // pub fn PathCleanupSpec();
70     // pub fn PathCleanupSpecWorker();
71     // pub fn PathGetShortPath();
72     // pub fn PathIsExe();
73     // pub fn PathIsExeWorker();
74     // pub fn PathIsSlowA();
75     // pub fn PathIsSlowW();
76     // pub fn PathMakeUniqueName();
77     // pub fn PathQualify();
78     // pub fn PathResolve();
79     // pub fn PathYetAnotherMakeUniqueName();
80     // pub fn PickIconDlg();
81     // pub fn PifMgr_CloseProperties();
82     // pub fn PifMgr_GetProperties();
83     // pub fn PifMgr_OpenProperties();
84     // pub fn PifMgr_SetProperties();
85     // pub fn ReadCabinetState();
86     // pub fn RealDriveType();
87     // pub fn RestartDialog();
88     // pub fn RestartDialogEx();
89     // pub fn SHAddDefaultPropertiesByExt();
90     // pub fn SHAddFromPropSheetExtArray();
91     // pub fn SHAddToRecentDocs();
92     // pub fn SHAlloc();
93     // pub fn SHAppBarMessage();
94     // pub fn SHAssocEnumHandlers();
95     // pub fn SHAssocEnumHandlersForProtocolByApplication();
96     // pub fn SHBindToFolderIDListParent();
97     // pub fn SHBindToFolderIDListParentEx();
98     // pub fn SHBindToObject();
99     // pub fn SHBindToParent();
100     // pub fn SHBrowseForFolder();
101     // pub fn SHBrowseForFolderA();
102     // pub fn SHBrowseForFolderW();
103     // pub fn SHCLSIDFromString();
104     // pub fn SHChangeNotification_Lock();
105     // pub fn SHChangeNotification_Unlock();
106     // pub fn SHChangeNotify();
107     // pub fn SHChangeNotifyDeregister();
108     // pub fn SHChangeNotifyRegister();
109     // pub fn SHChangeNotifyRegisterThread();
SHCloneSpecialIDList(hwnd: HWND, csidl: c_int, fCreate: BOOL) -> PIDLIST_ABSOLUTE110     pub fn SHCloneSpecialIDList(hwnd: HWND, csidl: c_int, fCreate: BOOL) -> PIDLIST_ABSOLUTE;
111     // pub fn SHCoCreateInstance();
112     // pub fn SHCoCreateInstanceWorker();
113     // pub fn SHCreateAssociationRegistration();
114     // pub fn SHCreateDataObject();
115     // pub fn SHCreateDefaultContextMenu();
116     // pub fn SHCreateDefaultExtractIcon();
117     // pub fn SHCreateDefaultPropertiesOp();
SHCreateDirectory(hwnd: HWND, pszPath: PCWSTR) -> c_int118     pub fn SHCreateDirectory(hwnd: HWND, pszPath: PCWSTR) -> c_int;
SHCreateDirectoryExA( hwnd: HWND, pszPath: LPCSTR, psa: *const SECURITY_ATTRIBUTES, ) -> c_int119     pub fn SHCreateDirectoryExA(
120         hwnd: HWND, pszPath: LPCSTR, psa: *const SECURITY_ATTRIBUTES,
121     ) -> c_int;
SHCreateDirectoryExW( hwnd: HWND, pszPath: LPCWSTR, psa: *const SECURITY_ATTRIBUTES, ) -> c_int122     pub fn SHCreateDirectoryExW(
123         hwnd: HWND, pszPath: LPCWSTR, psa: *const SECURITY_ATTRIBUTES,
124     ) -> c_int;
125     // pub fn SHCreateDirectoryExWWorker();
126     // pub fn SHCreateFileExtractIconW();
127     // pub fn SHCreateItemFromIDList();
128     // pub fn SHCreateItemFromParsingName();
129     // pub fn SHCreateItemFromRelativeName();
130     // pub fn SHCreateItemInKnownFolder();
131     // pub fn SHCreateItemWithParent();
132     // pub fn SHCreateProcessAsUserW();
133     // pub fn SHCreatePropSheetExtArray();
134     // pub fn SHCreateQueryCancelAutoPlayMoniker();
135     // pub fn SHCreateShellFolderView();
136     // pub fn SHCreateShellFolderViewEx();
SHCreateShellItem( pidlParent: PCIDLIST_ABSOLUTE, psfParent: *mut IShellFolder, pidl: PCUITEMID_CHILD, ppsi: *mut *mut IShellItem, ) -> HRESULT137     pub fn SHCreateShellItem(
138         pidlParent: PCIDLIST_ABSOLUTE, psfParent: *mut IShellFolder, pidl: PCUITEMID_CHILD,
139         ppsi: *mut *mut IShellItem,
140     ) -> HRESULT;
141     // pub fn SHCreateShellItemArray();
142     // pub fn SHCreateShellItemArrayFromDataObject();
143     // pub fn SHCreateShellItemArrayFromIDLists();
144     // pub fn SHCreateShellItemArrayFromShellItem();
145     // pub fn SHCreateStdEnumFmtEtc();
146     // pub fn SHDefExtractIconA();
147     // pub fn SHDefExtractIconW();
148     // pub fn SHDestroyPropSheetExtArray();
149     // pub fn SHDoDragDrop();
150     // pub fn SHEmptyRecycleBinA();
151     // pub fn SHEmptyRecycleBinW();
152     // pub fn SHEnumerateUnreadMailAccountsW();
153     // pub fn SHEvaluateSystemCommandTemplate();
154     // pub fn SHFileOperation();
155     // pub fn SHFileOperationA();
156     // pub fn SHFileOperationW();
157     // pub fn SHFindFiles();
158     // pub fn SHFind_InitMenuPopup();
SHFlushSFCache()159     pub fn SHFlushSFCache();
160     // pub fn SHFormatDrive();
161     // pub fn SHFree();
162     // pub fn SHFreeNameMappings();
163     // pub fn SHGetAttributesFromDataObject();
164     // pub fn SHGetDataFromIDListA();
165     // pub fn SHGetDataFromIDListW();
166     // pub fn SHGetDesktopFolder();
167     // pub fn SHGetDesktopFolderWorker();
168     // pub fn SHGetDiskFreeSpaceA();
169     // pub fn SHGetDiskFreeSpaceExA();
170     // pub fn SHGetDiskFreeSpaceExW();
171     // pub fn SHGetDriveMedia();
172     // pub fn SHGetFileInfo();
173     // pub fn SHGetFileInfoA();
174     // pub fn SHGetFileInfoW();
175     // pub fn SHGetFileInfoWWorker();
SHGetFolderLocation( hwnd: HWND, csidl: c_int, hToken: HANDLE, dwFlags: DWORD, ppidl: *mut PIDLIST_ABSOLUTE, ) -> HRESULT176     pub fn SHGetFolderLocation(
177         hwnd: HWND, csidl: c_int, hToken: HANDLE, dwFlags: DWORD, ppidl: *mut PIDLIST_ABSOLUTE,
178     ) -> HRESULT;
179     // pub fn SHGetFolderLocationWorker();
SHGetFolderPathA( hwnd: HWND, csidl: c_int, hToken: HANDLE, dwFlags: DWORD, pszPath: LPSTR, ) -> HRESULT180     pub fn SHGetFolderPathA(
181         hwnd: HWND, csidl: c_int, hToken: HANDLE, dwFlags: DWORD, pszPath: LPSTR,
182     ) -> HRESULT;
183     // pub fn SHGetFolderPathAWorker();
SHGetFolderPathAndSubDirA( hwnd: HWND, csidl: c_int, hToken: HANDLE, dwFlags: DWORD, pszSubDir: LPCSTR, pszPath: LPSTR, ) -> HRESULT184     pub fn SHGetFolderPathAndSubDirA(
185         hwnd: HWND, csidl: c_int, hToken: HANDLE, dwFlags: DWORD, pszSubDir: LPCSTR,
186         pszPath: LPSTR,
187     ) -> HRESULT;
SHGetFolderPathAndSubDirW( hwnd: HWND, csidl: c_int, hToken: HANDLE, dwFlags: DWORD, pszSubDir: LPCWSTR, pszPath: LPWSTR, ) -> HRESULT188     pub fn SHGetFolderPathAndSubDirW(
189         hwnd: HWND, csidl: c_int, hToken: HANDLE, dwFlags: DWORD, pszSubDir: LPCWSTR,
190         pszPath: LPWSTR,
191     ) -> HRESULT;
192     // pub fn SHGetFolderPathAndSubDirWWorker();
193     // pub fn SHGetFolderPathEx();
SHGetFolderPathW( hwnd: HWND, csidl: c_int, hToken: HANDLE, dwFlags: DWORD, pszPath: LPWSTR, ) -> HRESULT194     pub fn SHGetFolderPathW(
195         hwnd: HWND, csidl: c_int, hToken: HANDLE, dwFlags: DWORD, pszPath: LPWSTR,
196     ) -> HRESULT;
197     // pub fn SHGetFolderPathWWorker();
198     // pub fn SHGetIDListFromObject();
SHGetIconOverlayIndexA(pszIconPath: LPCSTR, iIconIndex: c_int) -> c_int199     pub fn SHGetIconOverlayIndexA(pszIconPath: LPCSTR, iIconIndex: c_int) -> c_int;
SHGetIconOverlayIndexW(pszIconPath: LPCWSTR, iIconIndex: c_int) -> c_int200     pub fn SHGetIconOverlayIndexW(pszIconPath: LPCWSTR, iIconIndex: c_int) -> c_int;
201     // pub fn SHGetImageList();
202     // pub fn SHGetInstanceExplorer();
203     // pub fn SHGetInstanceExplorerWorker();
204     // pub fn SHGetItemFromDataObject();
205     // pub fn SHGetItemFromObject();
SHGetKnownFolderIDList( rfid: REFKNOWNFOLDERID, dwFlags: DWORD, hToken: HANDLE, ppidl: *mut PIDLIST_ABSOLUTE, ) -> HRESULT206     pub fn SHGetKnownFolderIDList(
207         rfid: REFKNOWNFOLDERID, dwFlags: DWORD, hToken: HANDLE, ppidl: *mut PIDLIST_ABSOLUTE,
208     ) -> HRESULT;
SHGetKnownFolderItem( rfid: REFKNOWNFOLDERID, flags: KNOWN_FOLDER_FLAG, hToken: HANDLE, riid: REFIID, ppv: *mut *mut c_void, ) -> HRESULT209     pub fn SHGetKnownFolderItem(
210         rfid: REFKNOWNFOLDERID, flags: KNOWN_FOLDER_FLAG, hToken: HANDLE, riid: REFIID,
211         ppv: *mut *mut c_void,
212     ) -> HRESULT;
SHGetKnownFolderPath( rfid: REFKNOWNFOLDERID, dwFlags: DWORD, hToken: HANDLE, pszPath: *mut PWSTR, ) -> HRESULT213     pub fn SHGetKnownFolderPath(
214         rfid: REFKNOWNFOLDERID, dwFlags: DWORD, hToken: HANDLE, pszPath: *mut PWSTR,
215     ) -> HRESULT;
216     // pub fn SHGetKnownFolderPathWorker();
217     // pub fn SHGetLocalizedName();
218     // pub fn SHGetMalloc();
219     // pub fn SHGetNameFromIDList();
220     // pub fn SHGetNewLinkInfoA();
221     // pub fn SHGetNewLinkInfoW();
222     // pub fn SHGetPathFromIDList();
SHGetPathFromIDListA(pidl: PCIDLIST_ABSOLUTE, pszPath: LPSTR) -> BOOL223     pub fn SHGetPathFromIDListA(pidl: PCIDLIST_ABSOLUTE, pszPath: LPSTR) -> BOOL;
SHGetPathFromIDListEx( pidl: PCIDLIST_ABSOLUTE, pszPath: PWSTR, cchPath: DWORD, uOpts: GPFIDL_FLAGS, ) -> BOOL224     pub fn SHGetPathFromIDListEx(
225         pidl: PCIDLIST_ABSOLUTE, pszPath: PWSTR, cchPath: DWORD, uOpts: GPFIDL_FLAGS,
226     ) -> BOOL;
SHGetPathFromIDListW(pidl: PCIDLIST_ABSOLUTE, pszPath: LPWSTR) -> BOOL227     pub fn SHGetPathFromIDListW(pidl: PCIDLIST_ABSOLUTE, pszPath: LPWSTR) -> BOOL;
228     // pub fn SHGetPropertyStoreForWindow();
229     // pub fn SHGetPropertyStoreFromIDList();
230     // pub fn SHGetPropertyStoreFromParsingName();
231     // pub fn SHGetRealIDL();
232     // pub fn SHGetSetFolderCustomSettings();
233     // pub fn SHGetSetSettings();
234     // pub fn SHGetSettings();
SHGetSpecialFolderLocation( hwnd: HWND, csidl: c_int, ppidl: *mut PIDLIST_ABSOLUTE, ) -> HRESULT235     pub fn SHGetSpecialFolderLocation(
236         hwnd: HWND, csidl: c_int, ppidl: *mut PIDLIST_ABSOLUTE,
237     ) -> HRESULT;
238     // pub fn SHGetSpecialFolderPath();
SHGetSpecialFolderPathA( hwnd: HWND, pszPath: LPSTR, csidl: c_int, fCreate: BOOL, ) -> BOOL239     pub fn SHGetSpecialFolderPathA(
240         hwnd: HWND, pszPath: LPSTR, csidl: c_int, fCreate: BOOL,
241     ) -> BOOL;
242     // pub fn SHGetSpecialFolderPathAWorker();
SHGetSpecialFolderPathW( hwnd: HWND, pszPath: LPWSTR, csidl: c_int, fCreate: BOOL, ) -> BOOL243     pub fn SHGetSpecialFolderPathW(
244         hwnd: HWND, pszPath: LPWSTR, csidl: c_int, fCreate: BOOL,
245     ) -> BOOL;
246     // pub fn SHGetSpecialFolderPathWWorker();
247     // pub fn SHGetStockIconInfo();
248     // pub fn SHGetTemporaryPropertyForItem();
249     // pub fn SHGetUnreadMailCountW();
250     // pub fn SHHandleUpdateImage();
251     // pub fn SHILCreateFromPath();
252     // pub fn SHInvokePrinterCommandA();
253     // pub fn SHInvokePrinterCommandW();
254     // pub fn SHIsFileAvailableOffline();
255     // pub fn SHLimitInputEdit();
256     // pub fn SHLoadInProc();
257     // pub fn SHLoadNonloadedIconOverlayIdentifiers();
258     // pub fn SHMapPIDLToSystemImageListIndex();
259     // pub fn SHMultiFileProperties();
260     // pub fn SHObjectProperties();
SHOpenFolderAndSelectItems( pidlFolder: PCIDLIST_ABSOLUTE, cidl: UINT, apidl: PCUITEMID_CHILD_ARRAY, dwFlags: DWORD, ) -> HRESULT261     pub fn SHOpenFolderAndSelectItems(
262         pidlFolder: PCIDLIST_ABSOLUTE, cidl: UINT, apidl: PCUITEMID_CHILD_ARRAY, dwFlags: DWORD,
263     ) -> HRESULT;
264     // pub fn SHOpenPropSheetW();
265     // pub fn SHOpenWithDialog();
266     // pub fn SHParseDisplayName();
267     // pub fn SHPathPrepareForWriteA();
268     // pub fn SHPathPrepareForWriteW();
269     // pub fn SHPropStgCreate();
270     // pub fn SHPropStgReadMultiple();
271     // pub fn SHPropStgWriteMultiple();
272     // pub fn SHQueryRecycleBinA();
273     // pub fn SHQueryRecycleBinW();
274     // pub fn SHQueryUserNotificationState();
275     // pub fn SHRemoveLocalizedName();
276     // pub fn SHReplaceFromPropSheetExtArray();
277     // pub fn SHResolveLibrary();
278     // pub fn SHRestricted();
279     // pub fn SHSetDefaultProperties();
SHSetFolderPathA( csidl: c_int, hToken: HANDLE, dwFlags: DWORD, pszPath: LPCSTR, ) -> HRESULT280     pub fn SHSetFolderPathA(
281         csidl: c_int, hToken: HANDLE, dwFlags: DWORD, pszPath: LPCSTR,
282     ) -> HRESULT;
SHSetFolderPathW( csidl: c_int, hToken: HANDLE, dwFlags: DWORD, pszPath: LPCWSTR, ) -> HRESULT283     pub fn SHSetFolderPathW(
284         csidl: c_int, hToken: HANDLE, dwFlags: DWORD, pszPath: LPCWSTR,
285     ) -> HRESULT;
286     // pub fn SHSetInstanceExplorer();
SHSetKnownFolderPath( rfid: REFKNOWNFOLDERID, dwFlags: DWORD, hToken: HANDLE, pszPath: PCWSTR, ) -> HRESULT287     pub fn SHSetKnownFolderPath(
288         rfid: REFKNOWNFOLDERID, dwFlags: DWORD, hToken: HANDLE, pszPath: PCWSTR,
289     ) -> HRESULT;
290     // pub fn SHSetKnownFolderPathWorker();
291     // pub fn SHSetLocalizedName();
292     // pub fn SHSetTemporaryPropertyForItem();
293     // pub fn SHSetUnreadMailCountW();
294     // pub fn SHShellFolderView_Message();
295     // pub fn SHShowManageLibraryUI();
296     // pub fn SHSimpleIDListFromPath();
297     // pub fn SHStartNetConnectionDialogW();
298     // pub fn SHTestTokenMembership();
299     // pub fn SHUpdateImageA();
300     // pub fn SHUpdateImageW();
301     // pub fn SHValidateUNC();
302     // pub fn SetCurrentProcessExplicitAppUserModelID();
303     // pub fn ShellAboutA();
304     // pub fn ShellAboutW();
ShellExecuteA( hwnd: HWND, lpOperation: LPCSTR, lpFile: LPCSTR, lpParameters: LPCSTR, lpDirectory: LPCSTR, nShowCmd: c_int ) -> HINSTANCE305     pub fn ShellExecuteA(
306         hwnd: HWND, lpOperation: LPCSTR, lpFile: LPCSTR, lpParameters: LPCSTR, lpDirectory: LPCSTR,
307         nShowCmd: c_int
308     ) -> HINSTANCE;
309     // pub fn ShellExecuteEx();
310     // pub fn ShellExecuteExA();
311     // pub fn ShellExecuteExW();
ShellExecuteW( hwnd: HWND, lpOperation: LPCWSTR, lpFile: LPCWSTR, lpParameters: LPCWSTR, lpDirectory: LPCWSTR, nShowCmd: c_int ) -> HINSTANCE312     pub fn ShellExecuteW(
313         hwnd: HWND, lpOperation: LPCWSTR, lpFile: LPCWSTR, lpParameters: LPCWSTR,
314         lpDirectory: LPCWSTR, nShowCmd: c_int
315     ) -> HINSTANCE;
316     // pub fn ShellHookProc();
317     // pub fn Shell_GetCachedImageIndex();
318     // pub fn Shell_GetCachedImageIndexA();
319     // pub fn Shell_GetCachedImageIndexW();
320     // pub fn Shell_GetImageLists();
321     // pub fn Shell_MergeMenus();
Shell_NotifyIconA(dwMessage: DWORD, lpData: PNOTIFYICONDATAA) -> BOOL322      pub fn Shell_NotifyIconA(dwMessage: DWORD, lpData: PNOTIFYICONDATAA) -> BOOL;
Shell_NotifyIconW(dwMessage: DWORD, lpData: PNOTIFYICONDATAW) -> BOOL323      pub fn Shell_NotifyIconW(dwMessage: DWORD, lpData: PNOTIFYICONDATAW) -> BOOL;
324     // pub fn Shell_NotifyIconGetRect();
325     // pub fn SignalFileOpen();
326     // pub fn StgMakeUniqueName();
327     // pub fn WOWShellExecute();
328     // pub fn Win32DeleteFile();
329     // pub fn WriteCabinetState();
330 }
331 #[cfg(any(target_arch = "x86", target_arch = "x86_64", target_arch = "arm"))]
332 extern {
333     // pub static BHID_AssociationArray;
334     // pub static BHID_DataObject;
335     // pub static BHID_EnumAssocHandlers;
336     // pub static BHID_EnumItems;
337     // pub static BHID_FilePlaceholder;
338     // pub static BHID_Filter;
339     // pub static BHID_LinkTargetItem;
340     // pub static BHID_PropertyStore;
341     // pub static BHID_RandomAccessStream;
342     // pub static BHID_SFObject;
343     // pub static BHID_SFUIObject;
344     // pub static BHID_SFViewObject;
345     // pub static BHID_Storage;
346     // pub static BHID_StorageEnum;
347     // pub static BHID_Stream;
348     // pub static BHID_ThumbnailHandler;
349     // pub static BHID_Transfer;
350     // pub static CATID_BrowsableShellExt;
351     // pub static CATID_BrowseInPlace;
352     // pub static CATID_CommBand;
353     // pub static CATID_DeskBand;
354     // pub static CATID_FilePlaceholderMergeHandler;
355     // pub static CATID_InfoBand;
356     // pub static CATID_LocationFactory;
357     // pub static CATID_LocationProvider;
358     // pub static CATID_SearchableApplication;
359     // pub static CGID_DefView;
360     // pub static CGID_Explorer;
361     // pub static CGID_ExplorerBarDoc;
362     // pub static CGID_MENUDESKBAR;
363     // pub static CGID_ShellDocView;
364     // pub static CGID_ShellServiceObject;
365     // pub static CGID_ShortCut;
366     // pub static CLSID_ACLCustomMRU;
367     // pub static CLSID_ACLHistory;
368     // pub static CLSID_ACLMRU;
369     // pub static CLSID_ACLMulti;
370     // pub static CLSID_ACListISF;
371     // pub static CLSID_ActiveDesktop;
372     // pub static CLSID_AutoComplete;
373     // pub static CLSID_CAnchorBrowsePropertyPage;
374     // pub static CLSID_CDocBrowsePropertyPage;
375     // pub static CLSID_CFSIconOverlayManager;
376     // pub static CLSID_CImageBrowsePropertyPage;
377     // pub static CLSID_CURLSearchHook;
378     // pub static CLSID_CUrlHistory;
379     // pub static CLSID_ControlPanel;
380     // pub static CLSID_DarwinAppPublisher;
381     // pub static CLSID_DocHostUIHandler;
382     // pub static CLSID_DragDropHelper;
383     // pub static CLSID_FileTypes;
384     // pub static CLSID_FolderItem;
385     // pub static CLSID_FolderItemsMultiLevel;
386     // pub static CLSID_FolderShortcut;
387     // pub static CLSID_HWShellExecute;
388     // pub static CLSID_ISFBand;
389     // pub static CLSID_Internet;
390     // pub static CLSID_InternetButtons;
391     // pub static CLSID_InternetShortcut;
392     // pub static CLSID_LinkColumnProvider;
393     // pub static CLSID_MSOButtons;
394     // pub static CLSID_MenuBand;
395     // pub static CLSID_MenuBandSite;
396     // pub static CLSID_MenuToolbarBase;
397     // pub static CLSID_MyComputer;
398     // pub static CLSID_MyDocuments;
399     // pub static CLSID_NetworkDomain;
400     // pub static CLSID_NetworkServer;
401     // pub static CLSID_NetworkShare;
402     // pub static CLSID_NewMenu;
403     // pub static CLSID_Printers;
404     // pub static CLSID_ProgressDialog;
405     // pub static CLSID_QueryAssociations;
406     // pub static CLSID_QuickLinks;
407     // pub static CLSID_RecycleBin;
408     // pub static CLSID_ShellFldSetExt;
409     // pub static CLSID_ToolbarExtButtons;
410     // pub static CPFG_CREDENTIAL_PROVIDER_LABEL;
411     // pub static CPFG_CREDENTIAL_PROVIDER_LOGO;
412     // pub static CPFG_LOGON_PASSWORD;
413     // pub static CPFG_LOGON_USERNAME;
414     // pub static CPFG_SMARTCARD_PIN;
415     // pub static CPFG_SMARTCARD_USERNAME;
416     // pub static EP_AdvQueryPane;
417     // pub static EP_Commands;
418     // pub static EP_Commands_Organize;
419     // pub static EP_Commands_View;
420     // pub static EP_DetailsPane;
421     // pub static EP_NavPane;
422     // pub static EP_PreviewPane;
423     // pub static EP_QueryPane;
424     // pub static EP_Ribbon;
425     // pub static EP_StatusBar;
426     // pub static FMTID_Briefcase;
427     // pub static FMTID_CustomImageProperties;
428     // pub static FMTID_DRM;
429     // pub static FMTID_Displaced;
430     // pub static FMTID_ImageProperties;
431     // pub static FMTID_InternetSite;
432     // pub static FMTID_Intshcut;
433     // pub static FMTID_LibraryProperties;
434     // pub static FMTID_MUSIC;
435     // pub static FMTID_Misc;
436     // pub static FMTID_Query;
437     // pub static FMTID_ShellDetails;
438     // pub static FMTID_Storage;
439     // pub static FMTID_Volume;
440     // pub static FMTID_WebView;
441     // pub static FOLDERID_AccountPictures;
442     // pub static FOLDERID_AddNewPrograms;
443     // pub static FOLDERID_AdminTools;
444     // pub static FOLDERID_AppUpdates;
445     // pub static FOLDERID_ApplicationShortcuts;
446     // pub static FOLDERID_AppsFolder;
447     // pub static FOLDERID_CDBurning;
448     // pub static FOLDERID_CameraRoll;
449     // pub static FOLDERID_ChangeRemovePrograms;
450     // pub static FOLDERID_CommonAdminTools;
451     // pub static FOLDERID_CommonOEMLinks;
452     // pub static FOLDERID_CommonPrograms;
453     // pub static FOLDERID_CommonStartMenu;
454     // pub static FOLDERID_CommonStartup;
455     // pub static FOLDERID_CommonTemplates;
456     // pub static FOLDERID_ComputerFolder;
457     // pub static FOLDERID_ConflictFolder;
458     // pub static FOLDERID_ConnectionsFolder;
459     // pub static FOLDERID_Contacts;
460     // pub static FOLDERID_ControlPanelFolder;
461     // pub static FOLDERID_Cookies;
462     // pub static FOLDERID_Desktop;
463     // pub static FOLDERID_DeviceMetadataStore;
464     // pub static FOLDERID_Documents;
465     // pub static FOLDERID_DocumentsLibrary;
466     // pub static FOLDERID_Downloads;
467     // pub static FOLDERID_Favorites;
468     // pub static FOLDERID_Fonts;
469     // pub static FOLDERID_GameTasks;
470     // pub static FOLDERID_Games;
471     // pub static FOLDERID_History;
472     // pub static FOLDERID_HomeGroup;
473     // pub static FOLDERID_HomeGroupCurrentUser;
474     // pub static FOLDERID_ImplicitAppShortcuts;
475     // pub static FOLDERID_InternetCache;
476     // pub static FOLDERID_InternetFolder;
477     // pub static FOLDERID_Libraries;
478     // pub static FOLDERID_Links;
479     // pub static FOLDERID_LocalAppData;
480     // pub static FOLDERID_LocalAppDataLow;
481     // pub static FOLDERID_LocalizedResourcesDir;
482     // pub static FOLDERID_Music;
483     // pub static FOLDERID_MusicLibrary;
484     // pub static FOLDERID_NetHood;
485     // pub static FOLDERID_NetworkFolder;
486     // pub static FOLDERID_OriginalImages;
487     // pub static FOLDERID_PhotoAlbums;
488     // pub static FOLDERID_Pictures;
489     // pub static FOLDERID_PicturesLibrary;
490     // pub static FOLDERID_Playlists;
491     // pub static FOLDERID_PrintHood;
492     // pub static FOLDERID_PrintersFolder;
493     // pub static FOLDERID_Profile;
494     // pub static FOLDERID_ProgramData;
495     // pub static FOLDERID_ProgramFiles;
496     // pub static FOLDERID_ProgramFilesCommon;
497     // pub static FOLDERID_ProgramFilesCommonX64;
498     // pub static FOLDERID_ProgramFilesCommonX86;
499     // pub static FOLDERID_ProgramFilesX64;
500     // pub static FOLDERID_ProgramFilesX86;
501     // pub static FOLDERID_Programs;
502     // pub static FOLDERID_Public;
503     // pub static FOLDERID_PublicDesktop;
504     // pub static FOLDERID_PublicDocuments;
505     // pub static FOLDERID_PublicDownloads;
506     // pub static FOLDERID_PublicGameTasks;
507     // pub static FOLDERID_PublicLibraries;
508     // pub static FOLDERID_PublicMusic;
509     // pub static FOLDERID_PublicPictures;
510     // pub static FOLDERID_PublicRingtones;
511     // pub static FOLDERID_PublicUserTiles;
512     // pub static FOLDERID_PublicVideos;
513     // pub static FOLDERID_QuickLaunch;
514     // pub static FOLDERID_Recent;
515     // pub static FOLDERID_RecordedTVLibrary;
516     // pub static FOLDERID_RecycleBinFolder;
517     // pub static FOLDERID_ResourceDir;
518     // pub static FOLDERID_Ringtones;
519     // pub static FOLDERID_RoamedTileImages;
520     // pub static FOLDERID_RoamingAppData;
521     // pub static FOLDERID_RoamingTiles;
522     // pub static FOLDERID_SEARCH_CSC;
523     // pub static FOLDERID_SEARCH_MAPI;
524     // pub static FOLDERID_SampleMusic;
525     // pub static FOLDERID_SamplePictures;
526     // pub static FOLDERID_SamplePlaylists;
527     // pub static FOLDERID_SampleVideos;
528     // pub static FOLDERID_SavedGames;
529     // pub static FOLDERID_SavedSearches;
530     // pub static FOLDERID_Screenshots;
531     // pub static FOLDERID_SearchHistory;
532     // pub static FOLDERID_SearchHome;
533     // pub static FOLDERID_SearchTemplates;
534     // pub static FOLDERID_SendTo;
535     // pub static FOLDERID_SidebarDefaultParts;
536     // pub static FOLDERID_SidebarParts;
537     // pub static FOLDERID_SkyDrive;
538     // pub static FOLDERID_SkyDriveCameraRoll;
539     // pub static FOLDERID_SkyDriveDocuments;
540     // pub static FOLDERID_SkyDriveMusic;
541     // pub static FOLDERID_SkyDrivePictures;
542     // pub static FOLDERID_StartMenu;
543     // pub static FOLDERID_Startup;
544     // pub static FOLDERID_SyncManagerFolder;
545     // pub static FOLDERID_SyncResultsFolder;
546     // pub static FOLDERID_SyncSetupFolder;
547     // pub static FOLDERID_System;
548     // pub static FOLDERID_SystemX86;
549     // pub static FOLDERID_Templates;
550     // pub static FOLDERID_UserPinned;
551     // pub static FOLDERID_UserProfiles;
552     // pub static FOLDERID_UserProgramFiles;
553     // pub static FOLDERID_UserProgramFilesCommon;
554     // pub static FOLDERID_UsersFiles;
555     // pub static FOLDERID_UsersLibraries;
556     // pub static FOLDERID_Videos;
557     // pub static FOLDERID_VideosLibrary;
558     // pub static FOLDERID_Windows;
559     // pub static FOLDERTYPEID_AccountPictures;
560     // pub static FOLDERTYPEID_Communications;
561     // pub static FOLDERTYPEID_CompressedFolder;
562     // pub static FOLDERTYPEID_Contacts;
563     // pub static FOLDERTYPEID_ControlPanelCategory;
564     // pub static FOLDERTYPEID_ControlPanelClassic;
565     // pub static FOLDERTYPEID_Documents;
566     // pub static FOLDERTYPEID_Games;
567     // pub static FOLDERTYPEID_Generic;
568     // pub static FOLDERTYPEID_GenericLibrary;
569     // pub static FOLDERTYPEID_GenericSearchResults;
570     // pub static FOLDERTYPEID_Invalid;
571     // pub static FOLDERTYPEID_Music;
572     // pub static FOLDERTYPEID_NetworkExplorer;
573     // pub static FOLDERTYPEID_OpenSearch;
574     // pub static FOLDERTYPEID_OtherUsers;
575     // pub static FOLDERTYPEID_Pictures;
576     // pub static FOLDERTYPEID_Printers;
577     // pub static FOLDERTYPEID_PublishedItems;
578     // pub static FOLDERTYPEID_RecordedTV;
579     // pub static FOLDERTYPEID_RecycleBin;
580     // pub static FOLDERTYPEID_SavedGames;
581     // pub static FOLDERTYPEID_SearchConnector;
582     // pub static FOLDERTYPEID_SearchHome;
583     // pub static FOLDERTYPEID_Searches;
584     // pub static FOLDERTYPEID_SoftwareExplorer;
585     // pub static FOLDERTYPEID_StartMenu;
586     // pub static FOLDERTYPEID_StorageProviderDocuments;
587     // pub static FOLDERTYPEID_StorageProviderGeneric;
588     // pub static FOLDERTYPEID_StorageProviderMusic;
589     // pub static FOLDERTYPEID_StorageProviderPictures;
590     // pub static FOLDERTYPEID_StorageProviderVideos;
591     // pub static FOLDERTYPEID_UserFiles;
592     // pub static FOLDERTYPEID_UsersLibraries;
593     // pub static FOLDERTYPEID_Videos;
594     // pub static IID_CDefView;
595     // pub static IID_IACList;
596     // pub static IID_IACList2;
597     // pub static IID_IADesktopP2;
598     // pub static IID_IActiveDesktop;
599     // pub static IID_IActiveDesktopP;
600     // pub static IID_IBanneredBar;
601     // pub static IID_IBriefcaseStg;
602     // pub static IID_IColumnProvider;
603     // pub static IID_ICommDlgBrowser;
604     // pub static IID_ICommDlgBrowser2;
605     // pub static IID_IContextMenu;
606     // pub static IID_IContextMenu2;
607     // pub static IID_IContextMenu3;
608     // pub static IID_ICopyHookA;
609     // pub static IID_ICopyHookW;
610     // pub static IID_ICurrentWorkingDirectory;
611     // pub static IID_IDefViewFrame;
612     // pub static IID_IDefViewID;
613     // pub static IID_IDiscardableBrowserProperty;
614     // pub static IID_IDocViewSite;
615     // pub static IID_IDockingWindowFrame;
616     // pub static IID_IDockingWindowSite;
617     // pub static IID_IEnumExtraSearch;
618     // pub static IID_IEnumIDList;
619     // pub static IID_IExtractIconA;
620     // pub static IID_IExtractIconW;
621     // pub static IID_IFileSystemBindData;
622     // pub static IID_IFileViewerA;
623     // pub static IID_IFileViewerSite;
624     // pub static IID_IFileViewerW;
625     // pub static IID_INamedPropertyBag;
626     // pub static IID_INewShortcutHookA;
627     // pub static IID_INewShortcutHookW;
628     // pub static IID_IObjMgr;
629     // pub static IID_IPersistFolder;
630     // pub static IID_IProgressDialog;
631     // pub static IID_IPropSheetPage;
632     // pub static IID_IQueryAssociations;
633     // pub static IID_IQueryInfo;
634     // pub static IID_IRemoteComputer;
635     // pub static IID_ISearchContext;
636     // pub static IID_IShellBrowser;
637     // pub static IID_IShellChangeNotify;
638     // pub static IID_IShellDetails;
639     // pub static IID_IShellExecuteHookA;
640     // pub static IID_IShellExecuteHookW;
641     // pub static IID_IShellExtInit;
642     // pub static IID_IShellFolder;
643     // pub static IID_IShellFolder2;
644     // pub static IID_IShellFolderBand;
645     // pub static IID_IShellFolderViewCB;
646     // pub static IID_IShellIcon;
647     // pub static IID_IShellIconOverlay;
648     // pub static IID_IShellIconOverlayIdentifier;
649     // pub static IID_IShellIconOverlayManager;
650     // pub static IID_IShellImageStore;
651     // pub static IID_IShellLinkA;
652     // pub static IID_IShellLinkW;
653     // pub static IID_IShellPropSheetExt;
654     // pub static IID_IShellView;
655     // pub static IID_IShellView2;
656     // pub static IID_ISynchronizedCallBack;
657     // pub static IID_IThumbnailCapture;
658     // pub static IID_IURLSearchHook;
659     // pub static IID_IURLSearchHook2;
660     // pub static IID_IUniformResourceLocatorA;
661     // pub static IID_IUniformResourceLocatorW;
662     // pub static ItemCount_Property_GUID;
663     // pub static ItemIndex_Property_GUID;
664     // pub static SID_CommandsPropertyBag;
665     // pub static SID_CtxQueryAssociations;
666     // pub static SID_DefView;
667     // pub static SID_MenuShellFolder;
668     // pub static SID_SCommDlgBrowser;
669     // pub static SID_SGetViewFromViewDual;
670     // pub static SID_SInPlaceBrowser;
671     // pub static SID_SMenuBandBKContextMenu;
672     // pub static SID_SMenuBandBottom;
673     // pub static SID_SMenuBandBottomSelected;
674     // pub static SID_SMenuBandChild;
675     // pub static SID_SMenuBandContextMenuModifier;
676     // pub static SID_SMenuBandParent;
677     // pub static SID_SMenuBandTop;
678     // pub static SID_SMenuPopup;
679     // pub static SID_SSearchBoxInfo;
680     // pub static SID_STopLevelBrowser;
681     // pub static SID_STopWindow;
682     // pub static SYNCMGR_OBJECTID_BrowseContent;
683     // pub static SYNCMGR_OBJECTID_ConflictStore;
684     // pub static SYNCMGR_OBJECTID_EventLinkClick;
685     // pub static SYNCMGR_OBJECTID_EventStore;
686     // pub static SYNCMGR_OBJECTID_Icon;
687     // pub static SYNCMGR_OBJECTID_QueryBeforeActivate;
688     // pub static SYNCMGR_OBJECTID_QueryBeforeDeactivate;
689     // pub static SYNCMGR_OBJECTID_QueryBeforeDelete;
690     // pub static SYNCMGR_OBJECTID_QueryBeforeDisable;
691     // pub static SYNCMGR_OBJECTID_QueryBeforeEnable;
692     // pub static SYNCMGR_OBJECTID_ShowSchedule;
693     // pub static SelectedItemCount_Property_GUID;
694     // pub static VID_Content;
695     // pub static VID_Details;
696     // pub static VID_LargeIcons;
697     // pub static VID_List;
698     // pub static VID_SmallIcons;
699     // pub static VID_ThumbStrip;
700     // pub static VID_Thumbnails;
701     // pub static VID_Tile;
702 }
703