1 // Copyright © 2015, Peter Atashian
2 // Licensed under the MIT License <LICENSE.md>
3 //! this ALWAYS GENERATED file contains the definitions for the interfaces
4 //Terrible forward declarations that need to be filled in
5 #[repr(C)] #[derive(Clone, Copy, Debug)]
6 pub struct IContextMenu;
7 #[repr(C)] #[derive(Clone, Copy, Debug)]
8 pub struct IContextMenu2;
9 #[repr(C)] #[derive(Clone, Copy, Debug)]
10 pub struct IContextMenu3;
11 #[repr(C)] #[derive(Clone, Copy, Debug)]
12 pub struct IExecuteCommand;
13 #[repr(C)] #[derive(Clone, Copy, Debug)]
14 pub struct IPersistFolder;
15 #[repr(C)] #[derive(Clone, Copy, Debug)]
16 pub struct IRunnableTask;
17 #[repr(C)] #[derive(Clone, Copy, Debug)]
18 pub struct IShellTaskScheduler;
19 #[repr(C)] #[derive(Clone, Copy, Debug)]
20 pub struct IQueryCodePage;
21 #[repr(C)] #[derive(Clone, Copy, Debug)]
22 pub struct IPersistFolder2;
23 #[repr(C)] #[derive(Clone, Copy, Debug)]
24 pub struct IPersistFolder3;
25 #[repr(C)] #[derive(Clone, Copy, Debug)]
26 pub struct IPersistIDList;
27 #[repr(C)] #[derive(Clone, Copy, Debug)]
28 pub struct IEnumIDList;
29 #[repr(C)] #[derive(Clone, Copy, Debug)]
30 pub struct IEnumFullIDList;
31 #[repr(C)] #[derive(Clone, Copy, Debug)]
32 pub struct IFileSyncMergeHandler;
33 #[repr(C)] #[derive(Clone, Copy, Debug)]
34 pub struct IObjectWithFolderEnumMode;
35 #[repr(C)] #[derive(Clone, Copy, Debug)]
36 pub struct IParseAndCreateItem;
37 #[repr(C)] #[derive(Clone, Copy, Debug)]
38 pub struct IShellFolder;
39 #[repr(C)] #[derive(Clone, Copy, Debug)]
40 pub struct IEnumExtraSearch;
41 #[repr(C)] #[derive(Clone, Copy, Debug)]
42 pub struct IShellFolder2;
43 #[repr(C)] #[derive(Clone, Copy, Debug)]
44 pub struct IFolderViewOptions;
45 #[repr(C)] #[derive(Clone, Copy, Debug)]
46 pub struct IShellView;
47 #[repr(C)] #[derive(Clone, Copy, Debug)]
48 pub struct IShellView2;
49 #[repr(C)] #[derive(Clone, Copy, Debug)]
50 pub struct IShellView3;
51 #[repr(C)] #[derive(Clone, Copy, Debug)]
52 pub struct IFolderView;
53 #[repr(C)] #[derive(Clone, Copy, Debug)]
54 pub struct ISearchBoxInfo;
55 #[repr(C)] #[derive(Clone, Copy, Debug)]
56 pub struct IFolderView2;
57 #[repr(C)] #[derive(Clone, Copy, Debug)]
58 pub struct IFolderViewSettings;
59 #[repr(C)] #[derive(Clone, Copy, Debug)]
60 pub struct IPreviewHandlerVisuals;
61 #[repr(C)] #[derive(Clone, Copy, Debug)]
62 pub struct IVisualProperties;
63 #[repr(C)] #[derive(Clone, Copy, Debug)]
64 pub struct ICommDlgBrowser;
65 #[repr(C)] #[derive(Clone, Copy, Debug)]
66 pub struct ICommDlgBrowser2;
67 #[repr(C)] #[derive(Clone, Copy, Debug)]
68 pub struct ICommDlgBrowser3;
69 #[repr(C)] #[derive(Clone, Copy, Debug)]
70 pub struct IColumnManager;
71 #[repr(C)] #[derive(Clone, Copy, Debug)]
72 pub struct IFolderFilterSite;
73 #[repr(C)] #[derive(Clone, Copy, Debug)]
74 pub struct IFolderFilter;
75 #[repr(C)] #[derive(Clone, Copy, Debug)]
76 pub struct IInputObjectSite;
77 #[repr(C)] #[derive(Clone, Copy, Debug)]
78 pub struct IInputObject;
79 #[repr(C)] #[derive(Clone, Copy, Debug)]
80 pub struct IInputObject2;
81 #[repr(C)] #[derive(Clone, Copy, Debug)]
82 pub struct IShellIcon;
83 #[repr(C)] #[derive(Clone, Copy, Debug)]
84 pub struct IShellBrowser;
85 #[repr(C)] #[derive(Clone, Copy, Debug)]
86 pub struct IProfferService;
87 #[repr(C)] #[derive(Clone, Copy, Debug)]
88 pub struct IShellItem2;
89 #[repr(C)] #[derive(Clone, Copy, Debug)]
90 pub struct IShellItemImageFactory;
91 #[repr(C)] #[derive(Clone, Copy, Debug)]
92 pub struct IUserAccountChangeCallback;
93 #[repr(C)] #[derive(Clone, Copy, Debug)]
94 pub struct IEnumShellItems;
95 #[repr(C)] #[derive(Clone, Copy, Debug)]
96 pub struct ITransferAdviseSink;
97 #[repr(C)] #[derive(Clone, Copy, Debug)]
98 pub struct ITransferSource;
99 #[repr(C)] #[derive(Clone, Copy, Debug)]
100 pub struct IEnumResources;
101 #[repr(C)] #[derive(Clone, Copy, Debug)]
102 pub struct IShellItemResources;
103 #[repr(C)] #[derive(Clone, Copy, Debug)]
104 pub struct ITransferDestination;
105 #[repr(C)] #[derive(Clone, Copy, Debug)]
106 pub struct IStreamAsync;
107 #[repr(C)] #[derive(Clone, Copy, Debug)]
108 pub struct IStreamUnbufferedInfo;
109 #[repr(C)] #[derive(Clone, Copy, Debug)]
110 pub struct IInitializeWithItem;
111 #[repr(C)] #[derive(Clone, Copy, Debug)]
112 pub struct IObjectWithSelection;
113 #[repr(C)] #[derive(Clone, Copy, Debug)]
114 pub struct IObjectWithBackReferences;
115 #[repr(C)] #[derive(Clone, Copy, Debug)]
116 pub struct IPropertyUI;
117 #[repr(C)] #[derive(Clone, Copy, Debug)]
118 pub struct ICategoryProvider;
119 #[repr(C)] #[derive(Clone, Copy, Debug)]
120 pub struct ICategorizer;
121 #[repr(C)] #[derive(Clone, Copy, Debug)]
122 pub struct IDropTargetHelper;
123 #[repr(C)] #[derive(Clone, Copy, Debug)]
124 pub struct IDragSourceHelper;
125 #[repr(C)] #[derive(Clone, Copy, Debug)]
126 pub struct IDragSourceHelper2;
127 #[repr(C)] #[derive(Clone, Copy, Debug)]
128 pub struct IShellLinkA;
129 #[repr(C)] #[derive(Clone, Copy, Debug)]
130 pub struct IShellLinkW;
131 #[repr(C)] #[derive(Clone, Copy, Debug)]
132 pub struct IShellLinkDataList;
133 #[repr(C)] #[derive(Clone, Copy, Debug)]
134 pub struct IResolveShellLink;
135 #[repr(C)] #[derive(Clone, Copy, Debug)]
136 pub struct IActionProgressDialog;
137 #[repr(C)] #[derive(Clone, Copy, Debug)]
138 pub struct IHWEventHandler;
139 #[repr(C)] #[derive(Clone, Copy, Debug)]
140 pub struct IHWEventHandler2;
141 #[repr(C)] #[derive(Clone, Copy, Debug)]
142 pub struct IQueryCancelAutoPlay;
143 #[repr(C)] #[derive(Clone, Copy, Debug)]
144 pub struct IDynamicHWHandler;
145 #[repr(C)] #[derive(Clone, Copy, Debug)]
146 pub struct IActionProgress;
147 #[repr(C)] #[derive(Clone, Copy, Debug)]
148 pub struct IShellExtInit;
149 #[repr(C)] #[derive(Clone, Copy, Debug)]
150 pub struct IShellPropSheetExt;
151 #[repr(C)] #[derive(Clone, Copy, Debug)]
152 pub struct IRemoteComputer;
153 #[repr(C)] #[derive(Clone, Copy, Debug)]
154 pub struct IQueryContinue;
155 #[repr(C)] #[derive(Clone, Copy, Debug)]
156 pub struct IObjectWithCancelEvent;
157 #[repr(C)] #[derive(Clone, Copy, Debug)]
158 pub struct IUserNotification;
159 #[repr(C)] #[derive(Clone, Copy, Debug)]
160 pub struct IUserNotificationCallback;
161 #[repr(C)] #[derive(Clone, Copy, Debug)]
162 pub struct IUserNotification2;
163 #[repr(C)] #[derive(Clone, Copy, Debug)]
164 pub struct IItemNameLimits;
165 #[repr(C)] #[derive(Clone, Copy, Debug)]
166 pub struct ISearchFolderItemFactory;
167 #[repr(C)] #[derive(Clone, Copy, Debug)]
168 pub struct IExtractImage;
169 #[repr(C)] #[derive(Clone, Copy, Debug)]
170 pub struct IExtractImage2;
171 #[repr(C)] #[derive(Clone, Copy, Debug)]
172 pub struct IThumbnailHandlerFactory;
173 #[repr(C)] #[derive(Clone, Copy, Debug)]
174 pub struct IParentAndItem;
175 #[repr(C)] #[derive(Clone, Copy, Debug)]
176 pub struct IDockingWindow;
177 #[repr(C)] #[derive(Clone, Copy, Debug)]
178 pub struct IDeskBand;
179 #[repr(C)] #[derive(Clone, Copy, Debug)]
180 pub struct IDeskBandInfo;
181 #[repr(C)] #[derive(Clone, Copy, Debug)]
182 pub struct IDeskBand2;
183 #[repr(C)] #[derive(Clone, Copy, Debug)]
184 pub struct ITaskbarList;
185 #[repr(C)] #[derive(Clone, Copy, Debug)]
186 pub struct ITaskbarList2;
187 #[repr(C)] #[derive(Clone, Copy, Debug)]
188 pub struct ITaskbarList3;
189 #[repr(C)] #[derive(Clone, Copy, Debug)]
190 pub struct ITaskbarList4;
191 #[repr(C)] #[derive(Clone, Copy, Debug)]
192 pub struct IStartMenuPinnedList;
193 #[repr(C)] #[derive(Clone, Copy, Debug)]
194 pub struct ICDBurn;
195 #[repr(C)] #[derive(Clone, Copy, Debug)]
196 pub struct IWizardSite;
197 #[repr(C)] #[derive(Clone, Copy, Debug)]
198 pub struct IWizardExtension;
199 #[repr(C)] #[derive(Clone, Copy, Debug)]
200 pub struct IWebWizardExtension;
201 #[repr(C)] #[derive(Clone, Copy, Debug)]
202 pub struct IPublishingWizard;
203 #[repr(C)] #[derive(Clone, Copy, Debug)]
204 pub struct IFolderViewHost;
205 #[repr(C)] #[derive(Clone, Copy, Debug)]
206 pub struct IExplorerBrowserEvents;
207 #[repr(C)] #[derive(Clone, Copy, Debug)]
208 pub struct IExplorerBrowser;
209 #[repr(C)] #[derive(Clone, Copy, Debug)]
210 pub struct IAccessibleObject;
211 #[repr(C)] #[derive(Clone, Copy, Debug)]
212 pub struct IResultsFolder;
213 #[repr(C)] #[derive(Clone, Copy, Debug)]
214 pub struct IEnumObjects;
215 #[repr(C)] #[derive(Clone, Copy, Debug)]
216 pub struct IOperationsProgressDialog;
217 #[repr(C)] #[derive(Clone, Copy, Debug)]
218 pub struct IIOCancelInformation;
219 #[repr(C)] #[derive(Clone, Copy, Debug)]
220 pub struct IFileOperation;
221 #[repr(C)] #[derive(Clone, Copy, Debug)]
222 pub struct IObjectProvider;
223 #[repr(C)] #[derive(Clone, Copy, Debug)]
224 pub struct INamespaceWalkCB;
225 #[repr(C)] #[derive(Clone, Copy, Debug)]
226 pub struct INamespaceWalkCB2;
227 #[repr(C)] #[derive(Clone, Copy, Debug)]
228 pub struct INamespaceWalk;
229 #[repr(C)] #[derive(Clone, Copy, Debug)]
230 pub struct IAutoCompleteDropDown;
231 #[repr(C)] #[derive(Clone, Copy, Debug)]
232 pub struct IBandSite;
233 #[repr(C)] #[derive(Clone, Copy, Debug)]
234 pub struct ICDBurnExt;
235 #[repr(C)] #[derive(Clone, Copy, Debug)]
236 pub struct IContextMenuSite;
237 #[repr(C)] #[derive(Clone, Copy, Debug)]
238 pub struct IEnumReadyCallback;
239 #[repr(C)] #[derive(Clone, Copy, Debug)]
240 pub struct IEnumerableView;
241 #[repr(C)] #[derive(Clone, Copy, Debug)]
242 pub struct IInsertItem;
243 #[repr(C)] #[derive(Clone, Copy, Debug)]
244 pub struct IMenuBand;
245 #[repr(C)] #[derive(Clone, Copy, Debug)]
246 pub struct IFolderBandPriv;
247 #[repr(C)] #[derive(Clone, Copy, Debug)]
248 pub struct IRegTreeItem;
249 #[repr(C)] #[derive(Clone, Copy, Debug)]
250 pub struct IImageRecompress;
251 #[repr(C)] #[derive(Clone, Copy, Debug)]
252 pub struct IDeskBar;
253 #[repr(C)] #[derive(Clone, Copy, Debug)]
254 pub struct IMenuPopup;
255 #[repr(C)] #[derive(Clone, Copy, Debug)]
256 pub struct IFileIsInUse;
257 #[repr(C)] #[derive(Clone, Copy, Debug)]
258 pub struct IApplicationAssociationRegistration;
259 #[repr(C)] #[derive(Clone, Copy, Debug)]
260 pub struct IApplicationAssociationRegistrationUI;
261 #[repr(C)] #[derive(Clone, Copy, Debug)]
262 pub struct IDelegateFolder;
263 #[repr(C)] #[derive(Clone, Copy, Debug)]
264 pub struct IBrowserFrameOptions;
265 #[repr(C)] #[derive(Clone, Copy, Debug)]
266 pub struct INewWindowManager;
267 #[repr(C)] #[derive(Clone, Copy, Debug)]
268 pub struct IAttachmentExecute;
269 #[repr(C)] #[derive(Clone, Copy, Debug)]
270 pub struct IShellMenuCallback;
271 #[repr(C)] #[derive(Clone, Copy, Debug)]
272 pub struct IShellMenu;
273 #[repr(C)] #[derive(Clone, Copy, Debug)]
274 pub struct IShellRunDll;
275 #[repr(C)] #[derive(Clone, Copy, Debug)]
276 pub struct IKnownFolder;
277 #[repr(C)] #[derive(Clone, Copy, Debug)]
278 pub struct IKnownFolderManager;
279 #[repr(C)] #[derive(Clone, Copy, Debug)]
280 pub struct ISharingConfigurationManager;
281 #[repr(C)] #[derive(Clone, Copy, Debug)]
282 pub struct IPreviousVersionsInfo;
283 #[repr(C)] #[derive(Clone, Copy, Debug)]
284 pub struct IRelatedItem;
285 #[repr(C)] #[derive(Clone, Copy, Debug)]
286 pub struct IIdentityName;
287 #[repr(C)] #[derive(Clone, Copy, Debug)]
288 pub struct IDelegateItem;
289 #[repr(C)] #[derive(Clone, Copy, Debug)]
290 pub struct ICurrentItem;
291 #[repr(C)] #[derive(Clone, Copy, Debug)]
292 pub struct ITransferMediumItem;
293 #[repr(C)] #[derive(Clone, Copy, Debug)]
294 pub struct IUseToBrowseItem;
295 #[repr(C)] #[derive(Clone, Copy, Debug)]
296 pub struct IDisplayItem;
297 #[repr(C)] #[derive(Clone, Copy, Debug)]
298 pub struct IViewStateIdentityItem;
299 #[repr(C)] #[derive(Clone, Copy, Debug)]
300 pub struct IPreviewItem;
301 #[repr(C)] #[derive(Clone, Copy, Debug)]
302 pub struct IDestinationStreamFactory;
303 #[repr(C)] #[derive(Clone, Copy, Debug)]
304 pub struct INewMenuClient;
305 #[repr(C)] #[derive(Clone, Copy, Debug)]
306 pub struct IInitializeWithBindCtx;
307 #[repr(C)] #[derive(Clone, Copy, Debug)]
308 pub struct INameSpaceTreeControl;
309 #[repr(C)] #[derive(Clone, Copy, Debug)]
310 pub struct INameSpaceTreeControl2;
311 #[repr(C)] #[derive(Clone, Copy, Debug)]
312 pub struct INameSpaceTreeControlEvents;
313 #[repr(C)] #[derive(Clone, Copy, Debug)]
314 pub struct INameSpaceTreeControlDropHandler;
315 #[repr(C)] #[derive(Clone, Copy, Debug)]
316 pub struct INameSpaceTreeAccessible;
317 #[repr(C)] #[derive(Clone, Copy, Debug)]
318 pub struct INameSpaceTreeControlCustomDraw;
319 #[repr(C)] #[derive(Clone, Copy, Debug)]
320 pub struct INameSpaceTreeControlFolderCapabilities;
321 #[repr(C)] #[derive(Clone, Copy, Debug)]
322 pub struct IPreviewHandler;
323 #[repr(C)] #[derive(Clone, Copy, Debug)]
324 pub struct IPreviewHandlerFrame;
325 #[repr(C)] #[derive(Clone, Copy, Debug)]
326 pub struct ITrayDeskBand;
327 #[repr(C)] #[derive(Clone, Copy, Debug)]
328 pub struct IBandHost;
329 #[repr(C)] #[derive(Clone, Copy, Debug)]
330 pub struct IExplorerPaneVisibility;
331 #[repr(C)] #[derive(Clone, Copy, Debug)]
332 pub struct IContextMenuCB;
333 #[repr(C)] #[derive(Clone, Copy, Debug)]
334 pub struct IDefaultExtractIconInit;
335 #[repr(C)] #[derive(Clone, Copy, Debug)]
336 pub struct IExplorerCommand;
337 #[repr(C)] #[derive(Clone, Copy, Debug)]
338 pub struct IExplorerCommandState;
339 #[repr(C)] #[derive(Clone, Copy, Debug)]
340 pub struct IInitializeCommand;
341 #[repr(C)] #[derive(Clone, Copy, Debug)]
342 pub struct IEnumExplorerCommand;
343 #[repr(C)] #[derive(Clone, Copy, Debug)]
344 pub struct IExplorerCommandProvider;
345 #[repr(C)] #[derive(Clone, Copy, Debug)]
346 pub struct IMarkupCallback;
347 #[repr(C)] #[derive(Clone, Copy, Debug)]
348 pub struct IControlMarkup;
349 #[repr(C)] #[derive(Clone, Copy, Debug)]
350 pub struct IInitializeNetworkFolder;
351 #[repr(C)] #[derive(Clone, Copy, Debug)]
352 pub struct IOpenControlPanel;
353 #[repr(C)] #[derive(Clone, Copy, Debug)]
354 pub struct IComputerInfoChangeNotify;
355 #[repr(C)] #[derive(Clone, Copy, Debug)]
356 pub struct IFileSystemBindData;
357 #[repr(C)] #[derive(Clone, Copy, Debug)]
358 pub struct IFileSystemBindData2;
359 #[repr(C)] #[derive(Clone, Copy, Debug)]
360 pub struct ICustomDestinationList;
361 #[repr(C)] #[derive(Clone, Copy, Debug)]
362 pub struct IApplicationDestinations;
363 #[repr(C)] #[derive(Clone, Copy, Debug)]
364 pub struct IApplicationDocumentLists;
365 #[repr(C)] #[derive(Clone, Copy, Debug)]
366 pub struct IObjectWithAppUserModelID;
367 #[repr(C)] #[derive(Clone, Copy, Debug)]
368 pub struct IObjectWithProgID;
369 #[repr(C)] #[derive(Clone, Copy, Debug)]
370 pub struct IUpdateIDList;
371 #[repr(C)] #[derive(Clone, Copy, Debug)]
372 pub struct IDesktopGadget;
373 #[repr(C)] #[derive(Clone, Copy, Debug)]
374 pub struct IDesktopWallpaper;
375 #[repr(C)] #[derive(Clone, Copy, Debug)]
376 pub struct IHomeGroup;
377 #[repr(C)] #[derive(Clone, Copy, Debug)]
378 pub struct IInitializeWithPropertyStore;
379 #[repr(C)] #[derive(Clone, Copy, Debug)]
380 pub struct IOpenSearchSource;
381 #[repr(C)] #[derive(Clone, Copy, Debug)]
382 pub struct IShellLibrary;
383 #[repr(C)] #[derive(Clone, Copy, Debug)]
384 pub struct IDefaultFolderMenuInitialize;
385 #[repr(C)] #[derive(Clone, Copy, Debug)]
386 pub struct IApplicationActivationManager;
387 #[repr(C)] #[derive(Clone, Copy, Debug)]
388 pub struct IAssocHandlerInvoker;
389 #[repr(C)] #[derive(Clone, Copy, Debug)]
390 pub struct IAssocHandler;
391 #[repr(C)] #[derive(Clone, Copy, Debug)]
392 pub struct IEnumAssocHandlers;
393 #[repr(C)] #[derive(Clone, Copy, Debug)]
394 pub struct IDataObjectProvider;
395 #[repr(C)] #[derive(Clone, Copy, Debug)]
396 pub struct IDataTransferManagerInterop;
397 #[repr(C)] #[derive(Clone, Copy, Debug)]
398 pub struct IFrameworkInputPaneHandler;
399 #[repr(C)] #[derive(Clone, Copy, Debug)]
400 pub struct IFrameworkInputPane;
401 #[repr(C)] #[derive(Clone, Copy, Debug)]
402 pub struct IAccessibilityDockingServiceCallback;
403 #[repr(C)] #[derive(Clone, Copy, Debug)]
404 pub struct IAccessibilityDockingService;
405 #[repr(C)] #[derive(Clone, Copy, Debug)]
406 pub struct IAppVisibilityEvents;
407 #[repr(C)] #[derive(Clone, Copy, Debug)]
408 pub struct IAppVisibility;
409 #[repr(C)] #[derive(Clone, Copy, Debug)]
410 pub struct IPackageExecutionStateChangeNotification;
411 #[repr(C)] #[derive(Clone, Copy, Debug)]
412 pub struct IPackageDebugSettings;
413 #[repr(C)] #[derive(Clone, Copy, Debug)]
414 pub struct ISuspensionDependencyManager;
415 #[repr(C)] #[derive(Clone, Copy, Debug)]
416 pub struct IExecuteCommandApplicationHostEnvironment;
417 #[repr(C)] #[derive(Clone, Copy, Debug)]
418 pub struct IExecuteCommandHost;
419 #[repr(C)] #[derive(Clone, Copy, Debug)]
420 pub struct IApplicationDesignModeSettings;
421 #[repr(C)] #[derive(Clone, Copy, Debug)]
422 pub struct IApplicationDesignModeSettings2;
423 #[repr(C)] #[derive(Clone, Copy, Debug)]
424 pub struct ILaunchTargetMonitor;
425 #[repr(C)] #[derive(Clone, Copy, Debug)]
426 pub struct ILaunchSourceViewSizePreference;
427 #[repr(C)] #[derive(Clone, Copy, Debug)]
428 pub struct ILaunchTargetViewSizePreference;
429 #[repr(C)] #[derive(Clone, Copy, Debug)]
430 pub struct ILaunchSourceAppUserModelId;
431 #[repr(C)] #[derive(Clone, Copy, Debug)]
432 pub struct IInitializeWithWindow;
433 #[repr(C)] #[derive(Clone, Copy, Debug)]
434 pub struct IHandlerInfo;
435 #[repr(C)] #[derive(Clone, Copy, Debug)]
436 pub struct IHandlerActivationHost;
437 #[repr(C)] #[derive(Clone, Copy, Debug)]
438 pub struct IContactManagerInterop;
439 //4498
440 pub type SFGAOF = ::ULONG;
441 //9466
442 ENUM!{enum SIGDN {
443     SIGDN_NORMALDISPLAY = 0,
444     SIGDN_PARENTRELATIVEPARSING = 0x80018001,
445     SIGDN_DESKTOPABSOLUTEPARSING = 0x80028000,
446     SIGDN_PARENTRELATIVEEDITING = 0x80031001,
447     SIGDN_DESKTOPABSOLUTEEDITING = 0x8004c000,
448     SIGDN_FILESYSPATH = 0x80058000,
449     SIGDN_URL = 0x80068000,
450     SIGDN_PARENTRELATIVEFORADDRESSBAR = 0x8007c001,
451     SIGDN_PARENTRELATIVE = 0x80080001,
452     SIGDN_PARENTRELATIVEFORUI = 0x80094001,
453 }}
454 ENUM!{enum SICHINTF {
455     SICHINT_DISPLAY = 0,
456     SICHINT_ALLFIELDS = 0x80000000,
457     SICHINT_CANONICAL = 0x10000000,
458     SICHINT_TEST_FILESYSPATH_IF_NOT_EQUAL = 0x20000000,
459 }}
460 //9498
461 RIDL!(
462 interface IShellItem(IShellItemVtbl): IUnknown(IUnknownVtbl) {
463     fn BindToHandler(
464         &mut self, pbc: *mut ::IBindCtx, bhid: ::REFGUID, riid: ::REFIID, ppv: *mut *mut ::c_void
465     ) -> ::HRESULT,
466     fn GetParent(&mut self, ppsi: *mut *mut IShellItem) -> ::HRESULT,
467     fn GetDisplayName(&mut self, sigdnName: SIGDN, ppszName: *mut ::LPWSTR) -> ::HRESULT,
468     fn GetAttributes(&mut self, sfgaoMask: SFGAOF, psfgaoAttribs: *mut SFGAOF) -> ::HRESULT,
469     fn Compare(&mut self, psi: *mut IShellItem, hint: SICHINTF, piOrder: *mut ::c_int) -> ::HRESULT
470 }
471 );
472 //11963
473 pub type IFileOperationProgressSink = ::IUnknown; // TODO
474 pub type IShellItemArray = ::IUnknown; // TODO
475 //20869
476 RIDL!(
477 interface IModalWindow(IModalWindowVtbl): IUnknown(IUnknownVtbl) {
478     fn Show(&mut self, hwndOwner: ::HWND) -> ::HRESULT
479 }
480 );
481 //22307
482 ENUM!{enum FDE_OVERWRITE_RESPONSE {
483     FDEOR_DEFAULT = 0,
484     FDEOR_ACCEPT = 1,
485     FDEOR_REFUSE = 2,
486 }}
487 ENUM!{enum FDE_SHAREVIOLATION_RESPONSE {
488     FDESVR_DEFAULT = 0,
489     FDESVR_ACCEPT = 1,
490     FDESVR_REFUSE = 2,
491 }}
492 ENUM!{enum FDAP {
493     FDAP_BOTTOM = 0,
494     FDAP_TOP = 1,
495 }}
496 RIDL!(
497 interface IFileDialogEvents(IFileDialogEventsVtbl): IUnknown(IUnknownVtbl) {
498     fn OnFileOk(&mut self, pfd: *mut IFileDialog) -> ::HRESULT,
499     fn OnFolderChanging(&mut self, pfd: *mut IFileDialog, psiFolder: *mut IShellItem) -> ::HRESULT,
500     fn OnFolderChange(&mut self, pfd: *mut IFileDialog) -> ::HRESULT,
501     fn OnSelectionChange(&mut self, pfd: *mut IFileDialog) -> ::HRESULT,
502     fn OnShareViolation(
503         &mut self, pfd: *mut IFileDialog, psi: *mut IShellItem,
504         pResponse: *mut FDE_SHAREVIOLATION_RESPONSE
505     ) -> ::HRESULT,
506     fn OnTypeChange(&mut self, pfd: *mut IFileDialog) -> ::HRESULT,
507     fn OnOverwrite(
508         &mut self, pfd: *mut IFileDialog, psi: *mut IShellItem,
509         pResponse: *mut FDE_OVERWRITE_RESPONSE
510     ) -> ::HRESULT
511 }
512 );
513 FLAGS!{enum FILEOPENDIALOGOPTIONS {
514     FOS_OVERWRITEPROMPT = 0x2,
515     FOS_STRICTFILETYPES = 0x4,
516     FOS_NOCHANGEDIR = 0x8,
517     FOS_PICKFOLDERS = 0x20,
518     FOS_FORCEFILESYSTEM = 0x40,
519     FOS_ALLNONSTORAGEITEMS = 0x80,
520     FOS_NOVALIDATE = 0x100,
521     FOS_ALLOWMULTISELECT = 0x200,
522     FOS_PATHMUSTEXIST = 0x800,
523     FOS_FILEMUSTEXIST = 0x1000,
524     FOS_CREATEPROMPT = 0x2000,
525     FOS_SHAREAWARE = 0x4000,
526     FOS_NOREADONLYRETURN = 0x8000,
527     FOS_NOTESTFILECREATE = 0x10000,
528     FOS_HIDEMRUPLACES = 0x20000,
529     FOS_HIDEPINNEDPLACES = 0x40000,
530     FOS_NODEREFERENCELINKS = 0x100000,
531     FOS_DONTADDTORECENT = 0x2000000,
532     FOS_FORCESHOWHIDDEN = 0x10000000,
533     FOS_DEFAULTNOMINIMODE = 0x20000000,
534     FOS_FORCEPREVIEWPANEON = 0x40000000,
535     FOS_SUPPORTSTREAMABLEITEMS = 0x80000000,
536 }}
537 RIDL!(
538 interface IFileDialog(IFileDialogVtbl): IModalWindow(IModalWindowVtbl) {
539     fn SetFileTypes(
540         &mut self, cFileTypes: ::UINT, rgFilterSpec: *const ::COMDLG_FILTERSPEC
541     ) -> ::HRESULT,
542     fn SetFileTypeIndex(&mut self, iFileType: ::UINT) -> ::HRESULT,
543     fn GetFileTypeIndex(&mut self, piFileType: *mut ::UINT) -> ::HRESULT,
544     fn Advise(&mut self, pfde: *mut IFileDialogEvents, pdwCookie: *mut ::DWORD) -> ::HRESULT,
545     fn Unadvise(&mut self, dwCookie: ::DWORD) -> ::HRESULT,
546     fn SetOptions(&mut self, fos: FILEOPENDIALOGOPTIONS) -> ::HRESULT,
547     fn GetOptions(&mut self, pfos: *mut FILEOPENDIALOGOPTIONS) -> ::HRESULT,
548     fn SetDefaultFolder(&mut self, psi: *mut IShellItem) -> ::HRESULT,
549     fn SetFolder(&mut self, psi: *mut IShellItem) -> ::HRESULT,
550     fn GetFolder(&mut self, ppsi: *mut *mut IShellItem) -> ::HRESULT,
551     fn GetCurrentSelection(&mut self, ppsi: *mut *mut IShellItem) -> ::HRESULT,
552     fn SetFileName(&mut self, pszName: ::LPCWSTR) -> ::HRESULT,
553     fn GetFileName(&mut self, pszName: *mut ::LPWSTR) -> ::HRESULT,
554     fn SetTitle(&mut self, pszTitle: ::LPCWSTR) -> ::HRESULT,
555     fn SetOkButtonLabel(&mut self, pszText: ::LPCWSTR) -> ::HRESULT,
556     fn SetFileNameLabel(&mut self, pszLabel: ::LPCWSTR) -> ::HRESULT,
557     fn GetResult(&mut self, ppsi: *mut *mut IShellItem) -> ::HRESULT,
558     fn AddPlace(&mut self, psi: *mut IShellItem, fdap: FDAP) -> ::HRESULT,
559     fn SetDefaultExtension(&mut self, pszDefaultExtension: ::LPCWSTR) -> ::HRESULT,
560     fn Close(&mut self, hr: ::HRESULT) -> ::HRESULT,
561     fn SetClientGuid(&mut self, guid: ::REFGUID) -> ::HRESULT,
562     fn ClearClientData(&mut self) -> ::HRESULT,
563     fn SetFilter(&mut self, pFilter: *mut IShellItemFilter) -> ::HRESULT
564 }
565 );
566 RIDL!(
567 interface IFileSaveDialog(IFileSaveDialogVtbl): IFileDialog(IFileDialogVtbl) {
568     fn SetSaveAsItem(&mut self, psi: *mut IShellItem) -> ::HRESULT,
569     fn SetProperties(&mut self, pStore: *mut ::IPropertyStore) -> ::HRESULT,
570     fn SetCollectedProperties(
571         &mut self, pList: *mut ::IPropertyDescriptionList, fAppendDefault: ::BOOL
572     ) -> ::HRESULT,
573     fn GetProperties(&mut self, ppStore: *mut *mut ::IPropertyStore) -> ::HRESULT,
574     fn ApplyProperties(
575         &mut self, psi: *mut IShellItem, pStore: *mut ::IPropertyStore, hwnd: ::HWND,
576         pSink: *mut IFileOperationProgressSink
577     ) -> ::HRESULT
578 }
579 );
580 RIDL!(
581 interface IFileOpenDialog(IFileOpenDialogVtbl): IFileDialog(IFileDialogVtbl) {
582     fn GetResults(&mut self, ppenum: *mut *mut IShellItemArray) -> ::HRESULT,
583     fn GetSelectedItems(&mut self, ppsai: *mut *mut IShellItemArray) -> ::HRESULT
584 }
585 );
586 ENUM!{enum CDCONTROLSTATE {
587     CDCS_INACTIVE = 0x00000000,
588     CDCS_ENABLED = 0x00000001,
589     CDCS_VISIBLE = 0x00000002,
590     CDCS_ENABLEDVISIBLE = 0x00000003,
591 }}
592 RIDL!(
593 interface IFileDialogCustomize(IFileDialogCustomizeVtbl): IUnknown(IUnknownVtbl) {
594     fn EnableOpenDropDown(&mut self, dwIDCtl: ::DWORD) -> ::HRESULT,
595     fn AddMenu(&mut self, dwIDCtl: ::DWORD, pszLabel: ::LPCWSTR) -> ::HRESULT,
596     fn AddPushButton(&mut self, dwIDCtl: ::DWORD, pszLabel: ::LPCWSTR) -> ::HRESULT,
597     fn AddComboBox(&mut self, dwIDCtl: ::DWORD) -> ::HRESULT,
598     fn AddRadioButtonList(&mut self, dwIDCtl: ::DWORD) -> ::HRESULT,
599     fn AddCheckButton(
600         &mut self, dwIDCtl: ::DWORD, pszLabel: ::LPCWSTR, bChecked: ::BOOL
601     ) -> ::HRESULT,
602     fn AddEditBox(&mut self, dwIDCtl: ::DWORD, pszText: ::LPCWSTR) -> ::HRESULT,
603     fn AddSeparator(&mut self, dwIDCtl: ::DWORD) -> ::HRESULT,
604     fn AddText(&mut self, dwIDCtl: ::DWORD, pszText: ::LPCWSTR) -> ::HRESULT,
605     fn SetControlLabel(&mut self, dwIDCtl: ::DWORD, pszLabel: ::LPCWSTR) -> ::HRESULT,
606     fn GetControlState(&mut self, dwIDCtl: ::DWORD, pdwState: *mut CDCONTROLSTATE) -> ::HRESULT,
607     fn SetControlState(&mut self, dwIDCtl: ::DWORD, dwState: CDCONTROLSTATE) -> ::HRESULT,
608     fn GetEditBoxText(&mut self, dwIDCtl: ::DWORD, ppszText: *mut *mut ::WCHAR) -> ::HRESULT,
609     fn SetEditBoxText(&mut self, dwIDCtl: ::DWORD, pszText: ::LPCWSTR) -> ::HRESULT,
610     fn GetCheckButtonState(&mut self, dwIDCtl: ::DWORD, pbChecked: *mut ::BOOL) -> ::HRESULT,
611     fn SetCheckButtonState(&mut self, dwIDCtl: ::DWORD, bChecked: ::BOOL) -> ::HRESULT,
612     fn AddControlItem(
613         &mut self, dwIDCtl: ::DWORD, dwIDItem: ::DWORD, pszLabel: ::LPCWSTR
614     ) -> ::HRESULT,
615     fn RemoveControlItem(&mut self, dwIDCtl: ::DWORD, dwIDItem: ::DWORD) -> ::HRESULT,
616     fn RemoveAllControlItems(&mut self, dwIDCtl: ::DWORD) -> ::HRESULT,
617     fn GetControlItemState(
618         &mut self, dwIDCtl: ::DWORD, dwIDItem: ::DWORD, pdwState: *mut CDCONTROLSTATE
619     ) -> ::HRESULT,
620     fn SetControlItemState(
621         &mut self, dwIDCtl: ::DWORD, dwIDItem: ::DWORD, dwState: CDCONTROLSTATE
622     ) -> ::HRESULT,
623     fn GetSelectedControlItem(&mut self, dwIDCtl: ::DWORD, pdwIDItem: *mut ::DWORD) -> ::HRESULT,
624     fn SetSelectedControlItem(&mut self, dwIDCtl: ::DWORD, dwIDItem: ::DWORD) -> ::HRESULT,
625     fn StartVisualGroup(&mut self, dwIDCtl: ::DWORD, pszLabel: ::LPCWSTR) -> ::HRESULT,
626     fn EndVisualGroup(&mut self) -> ::HRESULT,
627     fn MakeProminent(&mut self, dwIDCtl: ::DWORD) -> ::HRESULT,
628     fn SetControlItemText(&mut self, dwIDCtl: ::DWORD, dwIDItem: ::DWORD, pszLabel: ::LPCWSTR) -> ::HRESULT
629 }
630 );
631 RIDL!(
632 interface IFileDialogControlEvents(IFileDialogControlEventsVtbl): IUnknown(IUnknownVtbl) {
633     fn OnItemSelected(
634         &mut self, pfdc: *mut IFileDialogCustomize, dwIDCtl: ::DWORD, dwIDItem: ::DWORD
635     ) -> ::HRESULT,
636     fn OnButtonClicked(&mut self, pfdc: *mut IFileDialogCustomize, dwIDCtl: ::DWORD) -> ::HRESULT,
637     fn OnCheckButtonToggled(
638         &mut self, pfdc: *mut IFileDialogCustomize, dwIDCtl: ::DWORD, bChecked: ::BOOL
639     ) -> ::HRESULT,
640     fn OnControlActivating(
641         &mut self, pfdc: *mut IFileDialogCustomize, dwIDCtl: ::DWORD
642     ) -> ::HRESULT
643 }
644 );
645 RIDL!(
646 interface IFileDialog2(IFileDialog2Vtbl): IFileDialog(IFileDialogVtbl) {
647     fn SetCancelButtonLabel(&mut self, pszLabel: ::LPCWSTR) -> ::HRESULT,
648     fn SetNavigationRoot(&mut self, psi: IShellItem) -> ::HRESULT
649 }
650 );
651 //27457
652 pub type IShellItemFilter = ::IUnknown; // TODO
653