1 /*** Autogenerated by WIDL 1.6 from include/shobjidl.idl - Do not edit ***/
2 
3 #ifndef __REQUIRED_RPCNDR_H_VERSION__
4 #define __REQUIRED_RPCNDR_H_VERSION__ 475
5 #endif
6 
7 #include <rpc.h>
8 #include <rpcndr.h>
9 
10 #ifndef COM_NO_WINDOWS_H
11 #include <windows.h>
12 #include <ole2.h>
13 #endif
14 
15 #ifndef __shobjidl_h__
16 #define __shobjidl_h__
17 
18 /* Forward declarations */
19 
20 #ifndef __IContextMenu_FWD_DEFINED__
21 #define __IContextMenu_FWD_DEFINED__
22 typedef interface IContextMenu IContextMenu;
23 #endif
24 
25 #ifndef __IContextMenu2_FWD_DEFINED__
26 #define __IContextMenu2_FWD_DEFINED__
27 typedef interface IContextMenu2 IContextMenu2;
28 #endif
29 
30 #ifndef __IContextMenu3_FWD_DEFINED__
31 #define __IContextMenu3_FWD_DEFINED__
32 typedef interface IContextMenu3 IContextMenu3;
33 #endif
34 
35 #ifndef __IExecuteCommand_FWD_DEFINED__
36 #define __IExecuteCommand_FWD_DEFINED__
37 typedef interface IExecuteCommand IExecuteCommand;
38 #endif
39 
40 #ifndef __IPersistFolder_FWD_DEFINED__
41 #define __IPersistFolder_FWD_DEFINED__
42 typedef interface IPersistFolder IPersistFolder;
43 #endif
44 
45 #ifndef __IRunnableTask_FWD_DEFINED__
46 #define __IRunnableTask_FWD_DEFINED__
47 typedef interface IRunnableTask IRunnableTask;
48 #endif
49 
50 #ifndef __IShellTaskScheduler_FWD_DEFINED__
51 #define __IShellTaskScheduler_FWD_DEFINED__
52 typedef interface IShellTaskScheduler IShellTaskScheduler;
53 #endif
54 
55 #ifndef __IQueryCodePage_FWD_DEFINED__
56 #define __IQueryCodePage_FWD_DEFINED__
57 typedef interface IQueryCodePage IQueryCodePage;
58 #endif
59 
60 #ifndef __IPersistFolder2_FWD_DEFINED__
61 #define __IPersistFolder2_FWD_DEFINED__
62 typedef interface IPersistFolder2 IPersistFolder2;
63 #endif
64 
65 #ifndef __IPersistFolder3_FWD_DEFINED__
66 #define __IPersistFolder3_FWD_DEFINED__
67 typedef interface IPersistFolder3 IPersistFolder3;
68 #endif
69 
70 #ifndef __IPersistIDList_FWD_DEFINED__
71 #define __IPersistIDList_FWD_DEFINED__
72 typedef interface IPersistIDList IPersistIDList;
73 #endif
74 
75 #ifndef __IEnumIDList_FWD_DEFINED__
76 #define __IEnumIDList_FWD_DEFINED__
77 typedef interface IEnumIDList IEnumIDList;
78 #endif
79 
80 #ifndef __IEnumFullIDList_FWD_DEFINED__
81 #define __IEnumFullIDList_FWD_DEFINED__
82 typedef interface IEnumFullIDList IEnumFullIDList;
83 #endif
84 
85 #ifndef __IObjectWithFolderEnumMode_FWD_DEFINED__
86 #define __IObjectWithFolderEnumMode_FWD_DEFINED__
87 typedef interface IObjectWithFolderEnumMode IObjectWithFolderEnumMode;
88 #endif
89 
90 #ifndef __IParseAndCreateItem_FWD_DEFINED__
91 #define __IParseAndCreateItem_FWD_DEFINED__
92 typedef interface IParseAndCreateItem IParseAndCreateItem;
93 #endif
94 
95 #ifndef __IShellFolder_FWD_DEFINED__
96 #define __IShellFolder_FWD_DEFINED__
97 typedef interface IShellFolder IShellFolder;
98 #endif
99 
100 #ifndef __IEnumExtraSearch_FWD_DEFINED__
101 #define __IEnumExtraSearch_FWD_DEFINED__
102 typedef interface IEnumExtraSearch IEnumExtraSearch;
103 #endif
104 
105 #ifndef __IShellFolder2_FWD_DEFINED__
106 #define __IShellFolder2_FWD_DEFINED__
107 typedef interface IShellFolder2 IShellFolder2;
108 #endif
109 
110 #ifndef __IFolderViewOptions_FWD_DEFINED__
111 #define __IFolderViewOptions_FWD_DEFINED__
112 typedef interface IFolderViewOptions IFolderViewOptions;
113 #endif
114 
115 #ifndef __IShellView_FWD_DEFINED__
116 #define __IShellView_FWD_DEFINED__
117 typedef interface IShellView IShellView;
118 #endif
119 
120 #ifndef __IShellView2_FWD_DEFINED__
121 #define __IShellView2_FWD_DEFINED__
122 typedef interface IShellView2 IShellView2;
123 #endif
124 
125 #ifndef __IShellView3_FWD_DEFINED__
126 #define __IShellView3_FWD_DEFINED__
127 typedef interface IShellView3 IShellView3;
128 #endif
129 
130 #ifndef __IFolderView_FWD_DEFINED__
131 #define __IFolderView_FWD_DEFINED__
132 typedef interface IFolderView IFolderView;
133 #endif
134 
135 #ifndef __ISearchBoxInfo_FWD_DEFINED__
136 #define __ISearchBoxInfo_FWD_DEFINED__
137 typedef interface ISearchBoxInfo ISearchBoxInfo;
138 #endif
139 
140 #ifndef __IFolderView2_FWD_DEFINED__
141 #define __IFolderView2_FWD_DEFINED__
142 typedef interface IFolderView2 IFolderView2;
143 #endif
144 
145 #ifndef __IFolderViewSettings_FWD_DEFINED__
146 #define __IFolderViewSettings_FWD_DEFINED__
147 typedef interface IFolderViewSettings IFolderViewSettings;
148 #endif
149 
150 #ifndef __IPreviewHandlerVisuals_FWD_DEFINED__
151 #define __IPreviewHandlerVisuals_FWD_DEFINED__
152 typedef interface IPreviewHandlerVisuals IPreviewHandlerVisuals;
153 #endif
154 
155 #ifndef __IVisualProperties_FWD_DEFINED__
156 #define __IVisualProperties_FWD_DEFINED__
157 typedef interface IVisualProperties IVisualProperties;
158 #endif
159 
160 #ifndef __ICommDlgBrowser_FWD_DEFINED__
161 #define __ICommDlgBrowser_FWD_DEFINED__
162 typedef interface ICommDlgBrowser ICommDlgBrowser;
163 #endif
164 
165 #ifndef __ICommDlgBrowser2_FWD_DEFINED__
166 #define __ICommDlgBrowser2_FWD_DEFINED__
167 typedef interface ICommDlgBrowser2 ICommDlgBrowser2;
168 #endif
169 
170 #ifndef __ICommDlgBrowser3_FWD_DEFINED__
171 #define __ICommDlgBrowser3_FWD_DEFINED__
172 typedef interface ICommDlgBrowser3 ICommDlgBrowser3;
173 #endif
174 
175 #ifndef __IColumnManager_FWD_DEFINED__
176 #define __IColumnManager_FWD_DEFINED__
177 typedef interface IColumnManager IColumnManager;
178 #endif
179 
180 #ifndef __IFolderFilterSite_FWD_DEFINED__
181 #define __IFolderFilterSite_FWD_DEFINED__
182 typedef interface IFolderFilterSite IFolderFilterSite;
183 #endif
184 
185 #ifndef __IFolderFilter_FWD_DEFINED__
186 #define __IFolderFilter_FWD_DEFINED__
187 typedef interface IFolderFilter IFolderFilter;
188 #endif
189 
190 #ifndef __IInputObjectSite_FWD_DEFINED__
191 #define __IInputObjectSite_FWD_DEFINED__
192 typedef interface IInputObjectSite IInputObjectSite;
193 #endif
194 
195 #ifndef __IInputObject_FWD_DEFINED__
196 #define __IInputObject_FWD_DEFINED__
197 typedef interface IInputObject IInputObject;
198 #endif
199 
200 #ifndef __IInputObject2_FWD_DEFINED__
201 #define __IInputObject2_FWD_DEFINED__
202 typedef interface IInputObject2 IInputObject2;
203 #endif
204 
205 #ifndef __IShellIcon_FWD_DEFINED__
206 #define __IShellIcon_FWD_DEFINED__
207 typedef interface IShellIcon IShellIcon;
208 #endif
209 
210 #ifndef __IShellBrowser_FWD_DEFINED__
211 #define __IShellBrowser_FWD_DEFINED__
212 typedef interface IShellBrowser IShellBrowser;
213 #endif
214 
215 #ifndef __IProfferService_FWD_DEFINED__
216 #define __IProfferService_FWD_DEFINED__
217 typedef interface IProfferService IProfferService;
218 #endif
219 
220 #ifndef __IShellItem_FWD_DEFINED__
221 #define __IShellItem_FWD_DEFINED__
222 typedef interface IShellItem IShellItem;
223 #endif
224 
225 #ifndef __IShellItem2_FWD_DEFINED__
226 #define __IShellItem2_FWD_DEFINED__
227 typedef interface IShellItem2 IShellItem2;
228 #endif
229 
230 #ifndef __IShellItemImageFactory_FWD_DEFINED__
231 #define __IShellItemImageFactory_FWD_DEFINED__
232 typedef interface IShellItemImageFactory IShellItemImageFactory;
233 #endif
234 
235 #ifndef __IUserAccountChangeCallback_FWD_DEFINED__
236 #define __IUserAccountChangeCallback_FWD_DEFINED__
237 typedef interface IUserAccountChangeCallback IUserAccountChangeCallback;
238 #endif
239 
240 #ifndef __IEnumShellItems_FWD_DEFINED__
241 #define __IEnumShellItems_FWD_DEFINED__
242 typedef interface IEnumShellItems IEnumShellItems;
243 #endif
244 
245 #ifndef __ITransferAdviseSink_FWD_DEFINED__
246 #define __ITransferAdviseSink_FWD_DEFINED__
247 typedef interface ITransferAdviseSink ITransferAdviseSink;
248 #endif
249 
250 #ifndef __ITransferSource_FWD_DEFINED__
251 #define __ITransferSource_FWD_DEFINED__
252 typedef interface ITransferSource ITransferSource;
253 #endif
254 
255 #ifndef __IEnumResources_FWD_DEFINED__
256 #define __IEnumResources_FWD_DEFINED__
257 typedef interface IEnumResources IEnumResources;
258 #endif
259 
260 #ifndef __IShellItemResources_FWD_DEFINED__
261 #define __IShellItemResources_FWD_DEFINED__
262 typedef interface IShellItemResources IShellItemResources;
263 #endif
264 
265 #ifndef __ITransferDestination_FWD_DEFINED__
266 #define __ITransferDestination_FWD_DEFINED__
267 typedef interface ITransferDestination ITransferDestination;
268 #endif
269 
270 #ifndef __IStreamAsync_FWD_DEFINED__
271 #define __IStreamAsync_FWD_DEFINED__
272 typedef interface IStreamAsync IStreamAsync;
273 #endif
274 
275 #ifndef __IStreamUnbufferedInfo_FWD_DEFINED__
276 #define __IStreamUnbufferedInfo_FWD_DEFINED__
277 typedef interface IStreamUnbufferedInfo IStreamUnbufferedInfo;
278 #endif
279 
280 #ifndef __IFileOperationProgressSink_FWD_DEFINED__
281 #define __IFileOperationProgressSink_FWD_DEFINED__
282 typedef interface IFileOperationProgressSink IFileOperationProgressSink;
283 #endif
284 
285 #ifndef __IShellItemArray_FWD_DEFINED__
286 #define __IShellItemArray_FWD_DEFINED__
287 typedef interface IShellItemArray IShellItemArray;
288 #endif
289 
290 #ifndef __IInitializeWithItem_FWD_DEFINED__
291 #define __IInitializeWithItem_FWD_DEFINED__
292 typedef interface IInitializeWithItem IInitializeWithItem;
293 #endif
294 
295 #ifndef __IObjectWithSelection_FWD_DEFINED__
296 #define __IObjectWithSelection_FWD_DEFINED__
297 typedef interface IObjectWithSelection IObjectWithSelection;
298 #endif
299 
300 #ifndef __IObjectWithBackReferences_FWD_DEFINED__
301 #define __IObjectWithBackReferences_FWD_DEFINED__
302 typedef interface IObjectWithBackReferences IObjectWithBackReferences;
303 #endif
304 
305 #ifndef __IPropertyUI_FWD_DEFINED__
306 #define __IPropertyUI_FWD_DEFINED__
307 typedef interface IPropertyUI IPropertyUI;
308 #endif
309 
310 #ifndef __ICategoryProvider_FWD_DEFINED__
311 #define __ICategoryProvider_FWD_DEFINED__
312 typedef interface ICategoryProvider ICategoryProvider;
313 #endif
314 
315 #ifndef __ICategorizer_FWD_DEFINED__
316 #define __ICategorizer_FWD_DEFINED__
317 typedef interface ICategorizer ICategorizer;
318 #endif
319 
320 #ifndef __IDropTargetHelper_FWD_DEFINED__
321 #define __IDropTargetHelper_FWD_DEFINED__
322 typedef interface IDropTargetHelper IDropTargetHelper;
323 #endif
324 
325 #ifndef __IDragSourceHelper_FWD_DEFINED__
326 #define __IDragSourceHelper_FWD_DEFINED__
327 typedef interface IDragSourceHelper IDragSourceHelper;
328 #endif
329 
330 #ifndef __IDragSourceHelper2_FWD_DEFINED__
331 #define __IDragSourceHelper2_FWD_DEFINED__
332 typedef interface IDragSourceHelper2 IDragSourceHelper2;
333 #endif
334 
335 #ifndef __IShellLinkA_FWD_DEFINED__
336 #define __IShellLinkA_FWD_DEFINED__
337 typedef interface IShellLinkA IShellLinkA;
338 #endif
339 
340 #ifndef __IShellLinkW_FWD_DEFINED__
341 #define __IShellLinkW_FWD_DEFINED__
342 typedef interface IShellLinkW IShellLinkW;
343 #endif
344 
345 #ifndef __IShellLinkDataList_FWD_DEFINED__
346 #define __IShellLinkDataList_FWD_DEFINED__
347 typedef interface IShellLinkDataList IShellLinkDataList;
348 #endif
349 
350 #ifndef __IResolveShellLink_FWD_DEFINED__
351 #define __IResolveShellLink_FWD_DEFINED__
352 typedef interface IResolveShellLink IResolveShellLink;
353 #endif
354 
355 #ifndef __IActionProgressDialog_FWD_DEFINED__
356 #define __IActionProgressDialog_FWD_DEFINED__
357 typedef interface IActionProgressDialog IActionProgressDialog;
358 #endif
359 
360 #ifndef __IHWEventHandler_FWD_DEFINED__
361 #define __IHWEventHandler_FWD_DEFINED__
362 typedef interface IHWEventHandler IHWEventHandler;
363 #endif
364 
365 #ifndef __IHWEventHandler2_FWD_DEFINED__
366 #define __IHWEventHandler2_FWD_DEFINED__
367 typedef interface IHWEventHandler2 IHWEventHandler2;
368 #endif
369 
370 #ifndef __IQueryCancelAutoPlay_FWD_DEFINED__
371 #define __IQueryCancelAutoPlay_FWD_DEFINED__
372 typedef interface IQueryCancelAutoPlay IQueryCancelAutoPlay;
373 #endif
374 
375 #ifndef __IDynamicHWHandler_FWD_DEFINED__
376 #define __IDynamicHWHandler_FWD_DEFINED__
377 typedef interface IDynamicHWHandler IDynamicHWHandler;
378 #endif
379 
380 #ifndef __IActionProgress_FWD_DEFINED__
381 #define __IActionProgress_FWD_DEFINED__
382 typedef interface IActionProgress IActionProgress;
383 #endif
384 
385 #ifndef __IShellExtInit_FWD_DEFINED__
386 #define __IShellExtInit_FWD_DEFINED__
387 typedef interface IShellExtInit IShellExtInit;
388 #endif
389 
390 #ifndef __IShellPropSheetExt_FWD_DEFINED__
391 #define __IShellPropSheetExt_FWD_DEFINED__
392 typedef interface IShellPropSheetExt IShellPropSheetExt;
393 #endif
394 
395 #ifndef __IRemoteComputer_FWD_DEFINED__
396 #define __IRemoteComputer_FWD_DEFINED__
397 typedef interface IRemoteComputer IRemoteComputer;
398 #endif
399 
400 #ifndef __IQueryContinue_FWD_DEFINED__
401 #define __IQueryContinue_FWD_DEFINED__
402 typedef interface IQueryContinue IQueryContinue;
403 #endif
404 
405 #ifndef __IObjectWithCancelEvent_FWD_DEFINED__
406 #define __IObjectWithCancelEvent_FWD_DEFINED__
407 typedef interface IObjectWithCancelEvent IObjectWithCancelEvent;
408 #endif
409 
410 #ifndef __IUserNotification_FWD_DEFINED__
411 #define __IUserNotification_FWD_DEFINED__
412 typedef interface IUserNotification IUserNotification;
413 #endif
414 
415 #ifndef __IUserNotificationCallback_FWD_DEFINED__
416 #define __IUserNotificationCallback_FWD_DEFINED__
417 typedef interface IUserNotificationCallback IUserNotificationCallback;
418 #endif
419 
420 #ifndef __IUserNotification2_FWD_DEFINED__
421 #define __IUserNotification2_FWD_DEFINED__
422 typedef interface IUserNotification2 IUserNotification2;
423 #endif
424 
425 #ifndef __IItemNameLimits_FWD_DEFINED__
426 #define __IItemNameLimits_FWD_DEFINED__
427 typedef interface IItemNameLimits IItemNameLimits;
428 #endif
429 
430 #ifndef __ISearchFolderItemFactory_FWD_DEFINED__
431 #define __ISearchFolderItemFactory_FWD_DEFINED__
432 typedef interface ISearchFolderItemFactory ISearchFolderItemFactory;
433 #endif
434 
435 #ifndef __IExtractImage_FWD_DEFINED__
436 #define __IExtractImage_FWD_DEFINED__
437 typedef interface IExtractImage IExtractImage;
438 #endif
439 
440 #ifndef __IExtractImage2_FWD_DEFINED__
441 #define __IExtractImage2_FWD_DEFINED__
442 typedef interface IExtractImage2 IExtractImage2;
443 #endif
444 
445 #ifndef __IThumbnailHandlerFactory_FWD_DEFINED__
446 #define __IThumbnailHandlerFactory_FWD_DEFINED__
447 typedef interface IThumbnailHandlerFactory IThumbnailHandlerFactory;
448 #endif
449 
450 #ifndef __IParentAndItem_FWD_DEFINED__
451 #define __IParentAndItem_FWD_DEFINED__
452 typedef interface IParentAndItem IParentAndItem;
453 #endif
454 
455 #ifndef __IDockingWindow_FWD_DEFINED__
456 #define __IDockingWindow_FWD_DEFINED__
457 typedef interface IDockingWindow IDockingWindow;
458 #endif
459 
460 #ifndef __IDeskBand_FWD_DEFINED__
461 #define __IDeskBand_FWD_DEFINED__
462 typedef interface IDeskBand IDeskBand;
463 #endif
464 
465 #ifndef __IDeskBandInfo_FWD_DEFINED__
466 #define __IDeskBandInfo_FWD_DEFINED__
467 typedef interface IDeskBandInfo IDeskBandInfo;
468 #endif
469 
470 #ifndef __IDeskBand2_FWD_DEFINED__
471 #define __IDeskBand2_FWD_DEFINED__
472 typedef interface IDeskBand2 IDeskBand2;
473 #endif
474 
475 #ifndef __ITaskbarList_FWD_DEFINED__
476 #define __ITaskbarList_FWD_DEFINED__
477 typedef interface ITaskbarList ITaskbarList;
478 #endif
479 
480 #ifndef __ITaskbarList2_FWD_DEFINED__
481 #define __ITaskbarList2_FWD_DEFINED__
482 typedef interface ITaskbarList2 ITaskbarList2;
483 #endif
484 
485 #ifndef __ITaskbarList3_FWD_DEFINED__
486 #define __ITaskbarList3_FWD_DEFINED__
487 typedef interface ITaskbarList3 ITaskbarList3;
488 #endif
489 
490 #ifndef __ITaskbarList4_FWD_DEFINED__
491 #define __ITaskbarList4_FWD_DEFINED__
492 typedef interface ITaskbarList4 ITaskbarList4;
493 #endif
494 
495 #ifndef __IStartMenuPinnedList_FWD_DEFINED__
496 #define __IStartMenuPinnedList_FWD_DEFINED__
497 typedef interface IStartMenuPinnedList IStartMenuPinnedList;
498 #endif
499 
500 #ifndef __ICDBurn_FWD_DEFINED__
501 #define __ICDBurn_FWD_DEFINED__
502 typedef interface ICDBurn ICDBurn;
503 #endif
504 
505 #ifndef __IWizardSite_FWD_DEFINED__
506 #define __IWizardSite_FWD_DEFINED__
507 typedef interface IWizardSite IWizardSite;
508 #endif
509 
510 #ifndef __IWizardExtension_FWD_DEFINED__
511 #define __IWizardExtension_FWD_DEFINED__
512 typedef interface IWizardExtension IWizardExtension;
513 #endif
514 
515 #ifndef __IWebWizardExtension_FWD_DEFINED__
516 #define __IWebWizardExtension_FWD_DEFINED__
517 typedef interface IWebWizardExtension IWebWizardExtension;
518 #endif
519 
520 #ifndef __IPublishingWizard_FWD_DEFINED__
521 #define __IPublishingWizard_FWD_DEFINED__
522 typedef interface IPublishingWizard IPublishingWizard;
523 #endif
524 
525 #ifndef __IFolderViewHost_FWD_DEFINED__
526 #define __IFolderViewHost_FWD_DEFINED__
527 typedef interface IFolderViewHost IFolderViewHost;
528 #endif
529 
530 #ifndef __IExplorerBrowserEvents_FWD_DEFINED__
531 #define __IExplorerBrowserEvents_FWD_DEFINED__
532 typedef interface IExplorerBrowserEvents IExplorerBrowserEvents;
533 #endif
534 
535 #ifndef __IExplorerBrowser_FWD_DEFINED__
536 #define __IExplorerBrowser_FWD_DEFINED__
537 typedef interface IExplorerBrowser IExplorerBrowser;
538 #endif
539 
540 #ifndef __IAccessibleObject_FWD_DEFINED__
541 #define __IAccessibleObject_FWD_DEFINED__
542 typedef interface IAccessibleObject IAccessibleObject;
543 #endif
544 
545 #ifndef __IResultsFolder_FWD_DEFINED__
546 #define __IResultsFolder_FWD_DEFINED__
547 typedef interface IResultsFolder IResultsFolder;
548 #endif
549 
550 #ifndef __IEnumObjects_FWD_DEFINED__
551 #define __IEnumObjects_FWD_DEFINED__
552 typedef interface IEnumObjects IEnumObjects;
553 #endif
554 
555 #ifndef __IOperationsProgressDialog_FWD_DEFINED__
556 #define __IOperationsProgressDialog_FWD_DEFINED__
557 typedef interface IOperationsProgressDialog IOperationsProgressDialog;
558 #endif
559 
560 #ifndef __IIOCancelInformation_FWD_DEFINED__
561 #define __IIOCancelInformation_FWD_DEFINED__
562 typedef interface IIOCancelInformation IIOCancelInformation;
563 #endif
564 
565 #ifndef __IFileOperation_FWD_DEFINED__
566 #define __IFileOperation_FWD_DEFINED__
567 typedef interface IFileOperation IFileOperation;
568 #endif
569 
570 #ifndef __IObjectProvider_FWD_DEFINED__
571 #define __IObjectProvider_FWD_DEFINED__
572 typedef interface IObjectProvider IObjectProvider;
573 #endif
574 
575 #ifndef __INamespaceWalkCB_FWD_DEFINED__
576 #define __INamespaceWalkCB_FWD_DEFINED__
577 typedef interface INamespaceWalkCB INamespaceWalkCB;
578 #endif
579 
580 #ifndef __INamespaceWalkCB2_FWD_DEFINED__
581 #define __INamespaceWalkCB2_FWD_DEFINED__
582 typedef interface INamespaceWalkCB2 INamespaceWalkCB2;
583 #endif
584 
585 #ifndef __INamespaceWalk_FWD_DEFINED__
586 #define __INamespaceWalk_FWD_DEFINED__
587 typedef interface INamespaceWalk INamespaceWalk;
588 #endif
589 
590 #ifndef __IAutoCompleteDropDown_FWD_DEFINED__
591 #define __IAutoCompleteDropDown_FWD_DEFINED__
592 typedef interface IAutoCompleteDropDown IAutoCompleteDropDown;
593 #endif
594 
595 #ifndef __IBandSite_FWD_DEFINED__
596 #define __IBandSite_FWD_DEFINED__
597 typedef interface IBandSite IBandSite;
598 #endif
599 
600 #ifndef __IModalWindow_FWD_DEFINED__
601 #define __IModalWindow_FWD_DEFINED__
602 typedef interface IModalWindow IModalWindow;
603 #endif
604 
605 #ifndef __ICDBurnExt_FWD_DEFINED__
606 #define __ICDBurnExt_FWD_DEFINED__
607 typedef interface ICDBurnExt ICDBurnExt;
608 #endif
609 
610 #ifndef __IContextMenuSite_FWD_DEFINED__
611 #define __IContextMenuSite_FWD_DEFINED__
612 typedef interface IContextMenuSite IContextMenuSite;
613 #endif
614 
615 #ifndef __IEnumReadyCallback_FWD_DEFINED__
616 #define __IEnumReadyCallback_FWD_DEFINED__
617 typedef interface IEnumReadyCallback IEnumReadyCallback;
618 #endif
619 
620 #ifndef __IEnumerableView_FWD_DEFINED__
621 #define __IEnumerableView_FWD_DEFINED__
622 typedef interface IEnumerableView IEnumerableView;
623 #endif
624 
625 #ifndef __IInsertItem_FWD_DEFINED__
626 #define __IInsertItem_FWD_DEFINED__
627 typedef interface IInsertItem IInsertItem;
628 #endif
629 
630 #ifndef __IMenuBand_FWD_DEFINED__
631 #define __IMenuBand_FWD_DEFINED__
632 typedef interface IMenuBand IMenuBand;
633 #endif
634 
635 #ifndef __IFolderBandPriv_FWD_DEFINED__
636 #define __IFolderBandPriv_FWD_DEFINED__
637 typedef interface IFolderBandPriv IFolderBandPriv;
638 #endif
639 
640 #ifndef __IRegTreeItem_FWD_DEFINED__
641 #define __IRegTreeItem_FWD_DEFINED__
642 typedef interface IRegTreeItem IRegTreeItem;
643 #endif
644 
645 #ifndef __IImageRecompress_FWD_DEFINED__
646 #define __IImageRecompress_FWD_DEFINED__
647 typedef interface IImageRecompress IImageRecompress;
648 #endif
649 
650 #ifndef __IDeskBar_FWD_DEFINED__
651 #define __IDeskBar_FWD_DEFINED__
652 typedef interface IDeskBar IDeskBar;
653 #endif
654 
655 #ifndef __IMenuPopup_FWD_DEFINED__
656 #define __IMenuPopup_FWD_DEFINED__
657 typedef interface IMenuPopup IMenuPopup;
658 #endif
659 
660 #ifndef __IFileIsInUse_FWD_DEFINED__
661 #define __IFileIsInUse_FWD_DEFINED__
662 typedef interface IFileIsInUse IFileIsInUse;
663 #endif
664 
665 #ifndef __IFileDialogEvents_FWD_DEFINED__
666 #define __IFileDialogEvents_FWD_DEFINED__
667 typedef interface IFileDialogEvents IFileDialogEvents;
668 #endif
669 
670 #ifndef __IFileDialog_FWD_DEFINED__
671 #define __IFileDialog_FWD_DEFINED__
672 typedef interface IFileDialog IFileDialog;
673 #endif
674 
675 #ifndef __IFileSaveDialog_FWD_DEFINED__
676 #define __IFileSaveDialog_FWD_DEFINED__
677 typedef interface IFileSaveDialog IFileSaveDialog;
678 #endif
679 
680 #ifndef __IFileOpenDialog_FWD_DEFINED__
681 #define __IFileOpenDialog_FWD_DEFINED__
682 typedef interface IFileOpenDialog IFileOpenDialog;
683 #endif
684 
685 #ifndef __IFileDialogCustomize_FWD_DEFINED__
686 #define __IFileDialogCustomize_FWD_DEFINED__
687 typedef interface IFileDialogCustomize IFileDialogCustomize;
688 #endif
689 
690 #ifndef __IFileDialogControlEvents_FWD_DEFINED__
691 #define __IFileDialogControlEvents_FWD_DEFINED__
692 typedef interface IFileDialogControlEvents IFileDialogControlEvents;
693 #endif
694 
695 #ifndef __IFileDialog2_FWD_DEFINED__
696 #define __IFileDialog2_FWD_DEFINED__
697 typedef interface IFileDialog2 IFileDialog2;
698 #endif
699 
700 #ifndef __IApplicationAssociationRegistration_FWD_DEFINED__
701 #define __IApplicationAssociationRegistration_FWD_DEFINED__
702 typedef interface IApplicationAssociationRegistration IApplicationAssociationRegistration;
703 #endif
704 
705 #ifndef __IApplicationAssociationRegistrationUI_FWD_DEFINED__
706 #define __IApplicationAssociationRegistrationUI_FWD_DEFINED__
707 typedef interface IApplicationAssociationRegistrationUI IApplicationAssociationRegistrationUI;
708 #endif
709 
710 #ifndef __IDelegateFolder_FWD_DEFINED__
711 #define __IDelegateFolder_FWD_DEFINED__
712 typedef interface IDelegateFolder IDelegateFolder;
713 #endif
714 
715 #ifndef __IBrowserFrameOptions_FWD_DEFINED__
716 #define __IBrowserFrameOptions_FWD_DEFINED__
717 typedef interface IBrowserFrameOptions IBrowserFrameOptions;
718 #endif
719 
720 #ifndef __INewWindowManager_FWD_DEFINED__
721 #define __INewWindowManager_FWD_DEFINED__
722 typedef interface INewWindowManager INewWindowManager;
723 #endif
724 
725 #ifndef __IAttachmentExecute_FWD_DEFINED__
726 #define __IAttachmentExecute_FWD_DEFINED__
727 typedef interface IAttachmentExecute IAttachmentExecute;
728 #endif
729 
730 #ifndef __IShellMenuCallback_FWD_DEFINED__
731 #define __IShellMenuCallback_FWD_DEFINED__
732 typedef interface IShellMenuCallback IShellMenuCallback;
733 #endif
734 
735 #ifndef __IShellMenu_FWD_DEFINED__
736 #define __IShellMenu_FWD_DEFINED__
737 typedef interface IShellMenu IShellMenu;
738 #endif
739 
740 #ifndef __IShellRunDll_FWD_DEFINED__
741 #define __IShellRunDll_FWD_DEFINED__
742 typedef interface IShellRunDll IShellRunDll;
743 #endif
744 
745 #ifndef __IKnownFolder_FWD_DEFINED__
746 #define __IKnownFolder_FWD_DEFINED__
747 typedef interface IKnownFolder IKnownFolder;
748 #endif
749 
750 #ifndef __IKnownFolderManager_FWD_DEFINED__
751 #define __IKnownFolderManager_FWD_DEFINED__
752 typedef interface IKnownFolderManager IKnownFolderManager;
753 #endif
754 
755 #ifndef __ISharingConfigurationManager_FWD_DEFINED__
756 #define __ISharingConfigurationManager_FWD_DEFINED__
757 typedef interface ISharingConfigurationManager ISharingConfigurationManager;
758 #endif
759 
760 #ifndef __IPreviousVersionsInfo_FWD_DEFINED__
761 #define __IPreviousVersionsInfo_FWD_DEFINED__
762 typedef interface IPreviousVersionsInfo IPreviousVersionsInfo;
763 #endif
764 
765 #ifndef __IRelatedItem_FWD_DEFINED__
766 #define __IRelatedItem_FWD_DEFINED__
767 typedef interface IRelatedItem IRelatedItem;
768 #endif
769 
770 #ifndef __IIdentityName_FWD_DEFINED__
771 #define __IIdentityName_FWD_DEFINED__
772 typedef interface IIdentityName IIdentityName;
773 #endif
774 
775 #ifndef __IDelegateItem_FWD_DEFINED__
776 #define __IDelegateItem_FWD_DEFINED__
777 typedef interface IDelegateItem IDelegateItem;
778 #endif
779 
780 #ifndef __ICurrentItem_FWD_DEFINED__
781 #define __ICurrentItem_FWD_DEFINED__
782 typedef interface ICurrentItem ICurrentItem;
783 #endif
784 
785 #ifndef __ITransferMediumItem_FWD_DEFINED__
786 #define __ITransferMediumItem_FWD_DEFINED__
787 typedef interface ITransferMediumItem ITransferMediumItem;
788 #endif
789 
790 #ifndef __IUseToBrowseItem_FWD_DEFINED__
791 #define __IUseToBrowseItem_FWD_DEFINED__
792 typedef interface IUseToBrowseItem IUseToBrowseItem;
793 #endif
794 
795 #ifndef __IDisplayItem_FWD_DEFINED__
796 #define __IDisplayItem_FWD_DEFINED__
797 typedef interface IDisplayItem IDisplayItem;
798 #endif
799 
800 #ifndef __IViewStateIdentityItem_FWD_DEFINED__
801 #define __IViewStateIdentityItem_FWD_DEFINED__
802 typedef interface IViewStateIdentityItem IViewStateIdentityItem;
803 #endif
804 
805 #ifndef __IPreviewItem_FWD_DEFINED__
806 #define __IPreviewItem_FWD_DEFINED__
807 typedef interface IPreviewItem IPreviewItem;
808 #endif
809 
810 #ifndef __IDestinationStreamFactory_FWD_DEFINED__
811 #define __IDestinationStreamFactory_FWD_DEFINED__
812 typedef interface IDestinationStreamFactory IDestinationStreamFactory;
813 #endif
814 
815 #ifndef __INewMenuClient_FWD_DEFINED__
816 #define __INewMenuClient_FWD_DEFINED__
817 typedef interface INewMenuClient INewMenuClient;
818 #endif
819 
820 #ifndef __IInitializeWithBindCtx_FWD_DEFINED__
821 #define __IInitializeWithBindCtx_FWD_DEFINED__
822 typedef interface IInitializeWithBindCtx IInitializeWithBindCtx;
823 #endif
824 
825 #ifndef __IShellItemFilter_FWD_DEFINED__
826 #define __IShellItemFilter_FWD_DEFINED__
827 typedef interface IShellItemFilter IShellItemFilter;
828 #endif
829 
830 #ifndef __INameSpaceTreeControl_FWD_DEFINED__
831 #define __INameSpaceTreeControl_FWD_DEFINED__
832 typedef interface INameSpaceTreeControl INameSpaceTreeControl;
833 #endif
834 
835 #ifndef __INameSpaceTreeControl2_FWD_DEFINED__
836 #define __INameSpaceTreeControl2_FWD_DEFINED__
837 typedef interface INameSpaceTreeControl2 INameSpaceTreeControl2;
838 #endif
839 
840 #ifndef __INameSpaceTreeControlEvents_FWD_DEFINED__
841 #define __INameSpaceTreeControlEvents_FWD_DEFINED__
842 typedef interface INameSpaceTreeControlEvents INameSpaceTreeControlEvents;
843 #endif
844 
845 #ifndef __INameSpaceTreeControlDropHandler_FWD_DEFINED__
846 #define __INameSpaceTreeControlDropHandler_FWD_DEFINED__
847 typedef interface INameSpaceTreeControlDropHandler INameSpaceTreeControlDropHandler;
848 #endif
849 
850 #ifndef __INameSpaceTreeAccessible_FWD_DEFINED__
851 #define __INameSpaceTreeAccessible_FWD_DEFINED__
852 typedef interface INameSpaceTreeAccessible INameSpaceTreeAccessible;
853 #endif
854 
855 #ifndef __INameSpaceTreeControlCustomDraw_FWD_DEFINED__
856 #define __INameSpaceTreeControlCustomDraw_FWD_DEFINED__
857 typedef interface INameSpaceTreeControlCustomDraw INameSpaceTreeControlCustomDraw;
858 #endif
859 
860 #ifndef __INameSpaceTreeControlFolderCapabilities_FWD_DEFINED__
861 #define __INameSpaceTreeControlFolderCapabilities_FWD_DEFINED__
862 typedef interface INameSpaceTreeControlFolderCapabilities INameSpaceTreeControlFolderCapabilities;
863 #endif
864 
865 #ifndef __IPreviewHandler_FWD_DEFINED__
866 #define __IPreviewHandler_FWD_DEFINED__
867 typedef interface IPreviewHandler IPreviewHandler;
868 #endif
869 
870 #ifndef __IPreviewHandlerFrame_FWD_DEFINED__
871 #define __IPreviewHandlerFrame_FWD_DEFINED__
872 typedef interface IPreviewHandlerFrame IPreviewHandlerFrame;
873 #endif
874 
875 #ifndef __ITrayDeskBand_FWD_DEFINED__
876 #define __ITrayDeskBand_FWD_DEFINED__
877 typedef interface ITrayDeskBand ITrayDeskBand;
878 #endif
879 
880 #ifndef __IBandHost_FWD_DEFINED__
881 #define __IBandHost_FWD_DEFINED__
882 typedef interface IBandHost IBandHost;
883 #endif
884 
885 #ifndef __IExplorerPaneVisibility_FWD_DEFINED__
886 #define __IExplorerPaneVisibility_FWD_DEFINED__
887 typedef interface IExplorerPaneVisibility IExplorerPaneVisibility;
888 #endif
889 
890 #ifndef __IContextMenuCB_FWD_DEFINED__
891 #define __IContextMenuCB_FWD_DEFINED__
892 typedef interface IContextMenuCB IContextMenuCB;
893 #endif
894 
895 #ifndef __IDefaultExtractIconInit_FWD_DEFINED__
896 #define __IDefaultExtractIconInit_FWD_DEFINED__
897 typedef interface IDefaultExtractIconInit IDefaultExtractIconInit;
898 #endif
899 
900 #ifndef __IExplorerCommand_FWD_DEFINED__
901 #define __IExplorerCommand_FWD_DEFINED__
902 typedef interface IExplorerCommand IExplorerCommand;
903 #endif
904 
905 #ifndef __IExplorerCommandState_FWD_DEFINED__
906 #define __IExplorerCommandState_FWD_DEFINED__
907 typedef interface IExplorerCommandState IExplorerCommandState;
908 #endif
909 
910 #ifndef __IInitializeCommand_FWD_DEFINED__
911 #define __IInitializeCommand_FWD_DEFINED__
912 typedef interface IInitializeCommand IInitializeCommand;
913 #endif
914 
915 #ifndef __IEnumExplorerCommand_FWD_DEFINED__
916 #define __IEnumExplorerCommand_FWD_DEFINED__
917 typedef interface IEnumExplorerCommand IEnumExplorerCommand;
918 #endif
919 
920 #ifndef __IExplorerCommandProvider_FWD_DEFINED__
921 #define __IExplorerCommandProvider_FWD_DEFINED__
922 typedef interface IExplorerCommandProvider IExplorerCommandProvider;
923 #endif
924 
925 #ifndef __IInitializeNetworkFolder_FWD_DEFINED__
926 #define __IInitializeNetworkFolder_FWD_DEFINED__
927 typedef interface IInitializeNetworkFolder IInitializeNetworkFolder;
928 #endif
929 
930 #ifndef __IOpenControlPanel_FWD_DEFINED__
931 #define __IOpenControlPanel_FWD_DEFINED__
932 typedef interface IOpenControlPanel IOpenControlPanel;
933 #endif
934 
935 #ifndef __IComputerInfoChangeNotify_FWD_DEFINED__
936 #define __IComputerInfoChangeNotify_FWD_DEFINED__
937 typedef interface IComputerInfoChangeNotify IComputerInfoChangeNotify;
938 #endif
939 
940 #ifndef __IFileSystemBindData_FWD_DEFINED__
941 #define __IFileSystemBindData_FWD_DEFINED__
942 typedef interface IFileSystemBindData IFileSystemBindData;
943 #endif
944 
945 #ifndef __IFileSystemBindData2_FWD_DEFINED__
946 #define __IFileSystemBindData2_FWD_DEFINED__
947 typedef interface IFileSystemBindData2 IFileSystemBindData2;
948 #endif
949 
950 #ifndef __ICustomDestinationList_FWD_DEFINED__
951 #define __ICustomDestinationList_FWD_DEFINED__
952 typedef interface ICustomDestinationList ICustomDestinationList;
953 #endif
954 
955 #ifndef __IApplicationDestinations_FWD_DEFINED__
956 #define __IApplicationDestinations_FWD_DEFINED__
957 typedef interface IApplicationDestinations IApplicationDestinations;
958 #endif
959 
960 #ifndef __IApplicationDocumentLists_FWD_DEFINED__
961 #define __IApplicationDocumentLists_FWD_DEFINED__
962 typedef interface IApplicationDocumentLists IApplicationDocumentLists;
963 #endif
964 
965 #ifndef __IObjectWithAppUserModelID_FWD_DEFINED__
966 #define __IObjectWithAppUserModelID_FWD_DEFINED__
967 typedef interface IObjectWithAppUserModelID IObjectWithAppUserModelID;
968 #endif
969 
970 #ifndef __IObjectWithProgID_FWD_DEFINED__
971 #define __IObjectWithProgID_FWD_DEFINED__
972 typedef interface IObjectWithProgID IObjectWithProgID;
973 #endif
974 
975 #ifndef __IUpdateIDList_FWD_DEFINED__
976 #define __IUpdateIDList_FWD_DEFINED__
977 typedef interface IUpdateIDList IUpdateIDList;
978 #endif
979 
980 #ifndef __IDesktopGadget_FWD_DEFINED__
981 #define __IDesktopGadget_FWD_DEFINED__
982 typedef interface IDesktopGadget IDesktopGadget;
983 #endif
984 
985 #ifndef __IDesktopWallpaper_FWD_DEFINED__
986 #define __IDesktopWallpaper_FWD_DEFINED__
987 typedef interface IDesktopWallpaper IDesktopWallpaper;
988 #endif
989 
990 #ifndef __IHomeGroup_FWD_DEFINED__
991 #define __IHomeGroup_FWD_DEFINED__
992 typedef interface IHomeGroup IHomeGroup;
993 #endif
994 
995 #ifndef __IInitializeWithPropertyStore_FWD_DEFINED__
996 #define __IInitializeWithPropertyStore_FWD_DEFINED__
997 typedef interface IInitializeWithPropertyStore IInitializeWithPropertyStore;
998 #endif
999 
1000 #ifndef __IOpenSearchSource_FWD_DEFINED__
1001 #define __IOpenSearchSource_FWD_DEFINED__
1002 typedef interface IOpenSearchSource IOpenSearchSource;
1003 #endif
1004 
1005 #ifndef __IShellLibrary_FWD_DEFINED__
1006 #define __IShellLibrary_FWD_DEFINED__
1007 typedef interface IShellLibrary IShellLibrary;
1008 #endif
1009 
1010 #ifndef __IPlaybackManagerEvents_FWD_DEFINED__
1011 #define __IPlaybackManagerEvents_FWD_DEFINED__
1012 typedef interface IPlaybackManagerEvents IPlaybackManagerEvents;
1013 #endif
1014 
1015 #ifndef __IPlaybackManager_FWD_DEFINED__
1016 #define __IPlaybackManager_FWD_DEFINED__
1017 typedef interface IPlaybackManager IPlaybackManager;
1018 #endif
1019 
1020 #ifndef __IDefaultFolderMenuInitialize_FWD_DEFINED__
1021 #define __IDefaultFolderMenuInitialize_FWD_DEFINED__
1022 typedef interface IDefaultFolderMenuInitialize IDefaultFolderMenuInitialize;
1023 #endif
1024 
1025 #ifndef __IApplicationActivationManager_FWD_DEFINED__
1026 #define __IApplicationActivationManager_FWD_DEFINED__
1027 typedef interface IApplicationActivationManager IApplicationActivationManager;
1028 #endif
1029 
1030 #ifndef __DesktopWallpaper_FWD_DEFINED__
1031 #define __DesktopWallpaper_FWD_DEFINED__
1032 #ifdef __cplusplus
1033 typedef class DesktopWallpaper DesktopWallpaper;
1034 #else
1035 typedef struct DesktopWallpaper DesktopWallpaper;
1036 #endif /* defined __cplusplus */
1037 #endif /* defined __DesktopWallpaper_FWD_DEFINED__ */
1038 
1039 #ifndef __ShellDesktop_FWD_DEFINED__
1040 #define __ShellDesktop_FWD_DEFINED__
1041 #ifdef __cplusplus
1042 typedef class ShellDesktop ShellDesktop;
1043 #else
1044 typedef struct ShellDesktop ShellDesktop;
1045 #endif /* defined __cplusplus */
1046 #endif /* defined __ShellDesktop_FWD_DEFINED__ */
1047 
1048 #ifndef __ShellFSFolder_FWD_DEFINED__
1049 #define __ShellFSFolder_FWD_DEFINED__
1050 #ifdef __cplusplus
1051 typedef class ShellFSFolder ShellFSFolder;
1052 #else
1053 typedef struct ShellFSFolder ShellFSFolder;
1054 #endif /* defined __cplusplus */
1055 #endif /* defined __ShellFSFolder_FWD_DEFINED__ */
1056 
1057 #ifndef __NetworkPlaces_FWD_DEFINED__
1058 #define __NetworkPlaces_FWD_DEFINED__
1059 #ifdef __cplusplus
1060 typedef class NetworkPlaces NetworkPlaces;
1061 #else
1062 typedef struct NetworkPlaces NetworkPlaces;
1063 #endif /* defined __cplusplus */
1064 #endif /* defined __NetworkPlaces_FWD_DEFINED__ */
1065 
1066 #ifndef __ShellLink_FWD_DEFINED__
1067 #define __ShellLink_FWD_DEFINED__
1068 #ifdef __cplusplus
1069 typedef class ShellLink ShellLink;
1070 #else
1071 typedef struct ShellLink ShellLink;
1072 #endif /* defined __cplusplus */
1073 #endif /* defined __ShellLink_FWD_DEFINED__ */
1074 
1075 #ifndef __QueryCancelAutoPlay_FWD_DEFINED__
1076 #define __QueryCancelAutoPlay_FWD_DEFINED__
1077 #ifdef __cplusplus
1078 typedef class QueryCancelAutoPlay QueryCancelAutoPlay;
1079 #else
1080 typedef struct QueryCancelAutoPlay QueryCancelAutoPlay;
1081 #endif /* defined __cplusplus */
1082 #endif /* defined __QueryCancelAutoPlay_FWD_DEFINED__ */
1083 
1084 #ifndef __DriveSizeCategorizer_FWD_DEFINED__
1085 #define __DriveSizeCategorizer_FWD_DEFINED__
1086 #ifdef __cplusplus
1087 typedef class DriveSizeCategorizer DriveSizeCategorizer;
1088 #else
1089 typedef struct DriveSizeCategorizer DriveSizeCategorizer;
1090 #endif /* defined __cplusplus */
1091 #endif /* defined __DriveSizeCategorizer_FWD_DEFINED__ */
1092 
1093 #ifndef __DriveTypeCategorizer_FWD_DEFINED__
1094 #define __DriveTypeCategorizer_FWD_DEFINED__
1095 #ifdef __cplusplus
1096 typedef class DriveTypeCategorizer DriveTypeCategorizer;
1097 #else
1098 typedef struct DriveTypeCategorizer DriveTypeCategorizer;
1099 #endif /* defined __cplusplus */
1100 #endif /* defined __DriveTypeCategorizer_FWD_DEFINED__ */
1101 
1102 #ifndef __FreeSpaceCategorizer_FWD_DEFINED__
1103 #define __FreeSpaceCategorizer_FWD_DEFINED__
1104 #ifdef __cplusplus
1105 typedef class FreeSpaceCategorizer FreeSpaceCategorizer;
1106 #else
1107 typedef struct FreeSpaceCategorizer FreeSpaceCategorizer;
1108 #endif /* defined __cplusplus */
1109 #endif /* defined __FreeSpaceCategorizer_FWD_DEFINED__ */
1110 
1111 #ifndef __TimeCategorizer_FWD_DEFINED__
1112 #define __TimeCategorizer_FWD_DEFINED__
1113 #ifdef __cplusplus
1114 typedef class TimeCategorizer TimeCategorizer;
1115 #else
1116 typedef struct TimeCategorizer TimeCategorizer;
1117 #endif /* defined __cplusplus */
1118 #endif /* defined __TimeCategorizer_FWD_DEFINED__ */
1119 
1120 #ifndef __SizeCategorizer_FWD_DEFINED__
1121 #define __SizeCategorizer_FWD_DEFINED__
1122 #ifdef __cplusplus
1123 typedef class SizeCategorizer SizeCategorizer;
1124 #else
1125 typedef struct SizeCategorizer SizeCategorizer;
1126 #endif /* defined __cplusplus */
1127 #endif /* defined __SizeCategorizer_FWD_DEFINED__ */
1128 
1129 #ifndef __AlphabeticalCategorizer_FWD_DEFINED__
1130 #define __AlphabeticalCategorizer_FWD_DEFINED__
1131 #ifdef __cplusplus
1132 typedef class AlphabeticalCategorizer AlphabeticalCategorizer;
1133 #else
1134 typedef struct AlphabeticalCategorizer AlphabeticalCategorizer;
1135 #endif /* defined __cplusplus */
1136 #endif /* defined __AlphabeticalCategorizer_FWD_DEFINED__ */
1137 
1138 #ifndef __MergedCategorizer_FWD_DEFINED__
1139 #define __MergedCategorizer_FWD_DEFINED__
1140 #ifdef __cplusplus
1141 typedef class MergedCategorizer MergedCategorizer;
1142 #else
1143 typedef struct MergedCategorizer MergedCategorizer;
1144 #endif /* defined __cplusplus */
1145 #endif /* defined __MergedCategorizer_FWD_DEFINED__ */
1146 
1147 #ifndef __ImageProperties_FWD_DEFINED__
1148 #define __ImageProperties_FWD_DEFINED__
1149 #ifdef __cplusplus
1150 typedef class ImageProperties ImageProperties;
1151 #else
1152 typedef struct ImageProperties ImageProperties;
1153 #endif /* defined __cplusplus */
1154 #endif /* defined __ImageProperties_FWD_DEFINED__ */
1155 
1156 #ifndef __PropertiesUI_FWD_DEFINED__
1157 #define __PropertiesUI_FWD_DEFINED__
1158 #ifdef __cplusplus
1159 typedef class PropertiesUI PropertiesUI;
1160 #else
1161 typedef struct PropertiesUI PropertiesUI;
1162 #endif /* defined __cplusplus */
1163 #endif /* defined __PropertiesUI_FWD_DEFINED__ */
1164 
1165 #ifndef __UserNotification_FWD_DEFINED__
1166 #define __UserNotification_FWD_DEFINED__
1167 #ifdef __cplusplus
1168 typedef class UserNotification UserNotification;
1169 #else
1170 typedef struct UserNotification UserNotification;
1171 #endif /* defined __cplusplus */
1172 #endif /* defined __UserNotification_FWD_DEFINED__ */
1173 
1174 #ifndef __CDBurn_FWD_DEFINED__
1175 #define __CDBurn_FWD_DEFINED__
1176 #ifdef __cplusplus
1177 typedef class CDBurn CDBurn;
1178 #else
1179 typedef struct CDBurn CDBurn;
1180 #endif /* defined __cplusplus */
1181 #endif /* defined __CDBurn_FWD_DEFINED__ */
1182 
1183 #ifndef __TaskbarList_FWD_DEFINED__
1184 #define __TaskbarList_FWD_DEFINED__
1185 #ifdef __cplusplus
1186 typedef class TaskbarList TaskbarList;
1187 #else
1188 typedef struct TaskbarList TaskbarList;
1189 #endif /* defined __cplusplus */
1190 #endif /* defined __TaskbarList_FWD_DEFINED__ */
1191 
1192 #ifndef __StartMenuPin_FWD_DEFINED__
1193 #define __StartMenuPin_FWD_DEFINED__
1194 #ifdef __cplusplus
1195 typedef class StartMenuPin StartMenuPin;
1196 #else
1197 typedef struct StartMenuPin StartMenuPin;
1198 #endif /* defined __cplusplus */
1199 #endif /* defined __StartMenuPin_FWD_DEFINED__ */
1200 
1201 #ifndef __WebWizardHost_FWD_DEFINED__
1202 #define __WebWizardHost_FWD_DEFINED__
1203 #ifdef __cplusplus
1204 typedef class WebWizardHost WebWizardHost;
1205 #else
1206 typedef struct WebWizardHost WebWizardHost;
1207 #endif /* defined __cplusplus */
1208 #endif /* defined __WebWizardHost_FWD_DEFINED__ */
1209 
1210 #ifndef __PublishDropTarget_FWD_DEFINED__
1211 #define __PublishDropTarget_FWD_DEFINED__
1212 #ifdef __cplusplus
1213 typedef class PublishDropTarget PublishDropTarget;
1214 #else
1215 typedef struct PublishDropTarget PublishDropTarget;
1216 #endif /* defined __cplusplus */
1217 #endif /* defined __PublishDropTarget_FWD_DEFINED__ */
1218 
1219 #ifndef __PublishingWizard_FWD_DEFINED__
1220 #define __PublishingWizard_FWD_DEFINED__
1221 #ifdef __cplusplus
1222 typedef class PublishingWizard PublishingWizard;
1223 #else
1224 typedef struct PublishingWizard PublishingWizard;
1225 #endif /* defined __cplusplus */
1226 #endif /* defined __PublishingWizard_FWD_DEFINED__ */
1227 
1228 #ifndef __InternetPrintOrdering_FWD_DEFINED__
1229 #define __InternetPrintOrdering_FWD_DEFINED__
1230 #ifdef __cplusplus
1231 typedef class InternetPrintOrdering InternetPrintOrdering;
1232 #else
1233 typedef struct InternetPrintOrdering InternetPrintOrdering;
1234 #endif /* defined __cplusplus */
1235 #endif /* defined __InternetPrintOrdering_FWD_DEFINED__ */
1236 
1237 #ifndef __FolderViewHost_FWD_DEFINED__
1238 #define __FolderViewHost_FWD_DEFINED__
1239 #ifdef __cplusplus
1240 typedef class FolderViewHost FolderViewHost;
1241 #else
1242 typedef struct FolderViewHost FolderViewHost;
1243 #endif /* defined __cplusplus */
1244 #endif /* defined __FolderViewHost_FWD_DEFINED__ */
1245 
1246 #ifndef __ExplorerBrowser_FWD_DEFINED__
1247 #define __ExplorerBrowser_FWD_DEFINED__
1248 #ifdef __cplusplus
1249 typedef class ExplorerBrowser ExplorerBrowser;
1250 #else
1251 typedef struct ExplorerBrowser ExplorerBrowser;
1252 #endif /* defined __cplusplus */
1253 #endif /* defined __ExplorerBrowser_FWD_DEFINED__ */
1254 
1255 #ifndef __ImageRecompress_FWD_DEFINED__
1256 #define __ImageRecompress_FWD_DEFINED__
1257 #ifdef __cplusplus
1258 typedef class ImageRecompress ImageRecompress;
1259 #else
1260 typedef struct ImageRecompress ImageRecompress;
1261 #endif /* defined __cplusplus */
1262 #endif /* defined __ImageRecompress_FWD_DEFINED__ */
1263 
1264 #ifndef __TrayBandSiteService_FWD_DEFINED__
1265 #define __TrayBandSiteService_FWD_DEFINED__
1266 #ifdef __cplusplus
1267 typedef class TrayBandSiteService TrayBandSiteService;
1268 #else
1269 typedef struct TrayBandSiteService TrayBandSiteService;
1270 #endif /* defined __cplusplus */
1271 #endif /* defined __TrayBandSiteService_FWD_DEFINED__ */
1272 
1273 #ifndef __TrayDeskBand_FWD_DEFINED__
1274 #define __TrayDeskBand_FWD_DEFINED__
1275 #ifdef __cplusplus
1276 typedef class TrayDeskBand TrayDeskBand;
1277 #else
1278 typedef struct TrayDeskBand TrayDeskBand;
1279 #endif /* defined __cplusplus */
1280 #endif /* defined __TrayDeskBand_FWD_DEFINED__ */
1281 
1282 #ifndef __AttachmentServices_FWD_DEFINED__
1283 #define __AttachmentServices_FWD_DEFINED__
1284 #ifdef __cplusplus
1285 typedef class AttachmentServices AttachmentServices;
1286 #else
1287 typedef struct AttachmentServices AttachmentServices;
1288 #endif /* defined __cplusplus */
1289 #endif /* defined __AttachmentServices_FWD_DEFINED__ */
1290 
1291 #ifndef __DocPropShellExtension_FWD_DEFINED__
1292 #define __DocPropShellExtension_FWD_DEFINED__
1293 #ifdef __cplusplus
1294 typedef class DocPropShellExtension DocPropShellExtension;
1295 #else
1296 typedef struct DocPropShellExtension DocPropShellExtension;
1297 #endif /* defined __cplusplus */
1298 #endif /* defined __DocPropShellExtension_FWD_DEFINED__ */
1299 
1300 #ifndef __ShellItem_FWD_DEFINED__
1301 #define __ShellItem_FWD_DEFINED__
1302 #ifdef __cplusplus
1303 typedef class ShellItem ShellItem;
1304 #else
1305 typedef struct ShellItem ShellItem;
1306 #endif /* defined __cplusplus */
1307 #endif /* defined __ShellItem_FWD_DEFINED__ */
1308 
1309 #ifndef __NamespaceWalker_FWD_DEFINED__
1310 #define __NamespaceWalker_FWD_DEFINED__
1311 #ifdef __cplusplus
1312 typedef class NamespaceWalker NamespaceWalker;
1313 #else
1314 typedef struct NamespaceWalker NamespaceWalker;
1315 #endif /* defined __cplusplus */
1316 #endif /* defined __NamespaceWalker_FWD_DEFINED__ */
1317 
1318 #ifndef __FileOperation_FWD_DEFINED__
1319 #define __FileOperation_FWD_DEFINED__
1320 #ifdef __cplusplus
1321 typedef class FileOperation FileOperation;
1322 #else
1323 typedef struct FileOperation FileOperation;
1324 #endif /* defined __cplusplus */
1325 #endif /* defined __FileOperation_FWD_DEFINED__ */
1326 
1327 #ifndef __FileOpenDialog_FWD_DEFINED__
1328 #define __FileOpenDialog_FWD_DEFINED__
1329 #ifdef __cplusplus
1330 typedef class FileOpenDialog FileOpenDialog;
1331 #else
1332 typedef struct FileOpenDialog FileOpenDialog;
1333 #endif /* defined __cplusplus */
1334 #endif /* defined __FileOpenDialog_FWD_DEFINED__ */
1335 
1336 #ifndef __FileSaveDialog_FWD_DEFINED__
1337 #define __FileSaveDialog_FWD_DEFINED__
1338 #ifdef __cplusplus
1339 typedef class FileSaveDialog FileSaveDialog;
1340 #else
1341 typedef struct FileSaveDialog FileSaveDialog;
1342 #endif /* defined __cplusplus */
1343 #endif /* defined __FileSaveDialog_FWD_DEFINED__ */
1344 
1345 #ifndef __KnownFolderManager_FWD_DEFINED__
1346 #define __KnownFolderManager_FWD_DEFINED__
1347 #ifdef __cplusplus
1348 typedef class KnownFolderManager KnownFolderManager;
1349 #else
1350 typedef struct KnownFolderManager KnownFolderManager;
1351 #endif /* defined __cplusplus */
1352 #endif /* defined __KnownFolderManager_FWD_DEFINED__ */
1353 
1354 #ifndef __FSCopyHandler_FWD_DEFINED__
1355 #define __FSCopyHandler_FWD_DEFINED__
1356 #ifdef __cplusplus
1357 typedef class FSCopyHandler FSCopyHandler;
1358 #else
1359 typedef struct FSCopyHandler FSCopyHandler;
1360 #endif /* defined __cplusplus */
1361 #endif /* defined __FSCopyHandler_FWD_DEFINED__ */
1362 
1363 #ifndef __SharingConfigurationManager_FWD_DEFINED__
1364 #define __SharingConfigurationManager_FWD_DEFINED__
1365 #ifdef __cplusplus
1366 typedef class SharingConfigurationManager SharingConfigurationManager;
1367 #else
1368 typedef struct SharingConfigurationManager SharingConfigurationManager;
1369 #endif /* defined __cplusplus */
1370 #endif /* defined __SharingConfigurationManager_FWD_DEFINED__ */
1371 
1372 #ifndef __PreviousVersions_FWD_DEFINED__
1373 #define __PreviousVersions_FWD_DEFINED__
1374 #ifdef __cplusplus
1375 typedef class PreviousVersions PreviousVersions;
1376 #else
1377 typedef struct PreviousVersions PreviousVersions;
1378 #endif /* defined __cplusplus */
1379 #endif /* defined __PreviousVersions_FWD_DEFINED__ */
1380 
1381 #ifndef __NetworkConnections_FWD_DEFINED__
1382 #define __NetworkConnections_FWD_DEFINED__
1383 #ifdef __cplusplus
1384 typedef class NetworkConnections NetworkConnections;
1385 #else
1386 typedef struct NetworkConnections NetworkConnections;
1387 #endif /* defined __cplusplus */
1388 #endif /* defined __NetworkConnections_FWD_DEFINED__ */
1389 
1390 #ifndef __NamespaceTreeControl_FWD_DEFINED__
1391 #define __NamespaceTreeControl_FWD_DEFINED__
1392 #ifdef __cplusplus
1393 typedef class NamespaceTreeControl NamespaceTreeControl;
1394 #else
1395 typedef struct NamespaceTreeControl NamespaceTreeControl;
1396 #endif /* defined __cplusplus */
1397 #endif /* defined __NamespaceTreeControl_FWD_DEFINED__ */
1398 
1399 #ifndef __IENamespaceTreeControl_FWD_DEFINED__
1400 #define __IENamespaceTreeControl_FWD_DEFINED__
1401 #ifdef __cplusplus
1402 typedef class IENamespaceTreeControl IENamespaceTreeControl;
1403 #else
1404 typedef struct IENamespaceTreeControl IENamespaceTreeControl;
1405 #endif /* defined __cplusplus */
1406 #endif /* defined __IENamespaceTreeControl_FWD_DEFINED__ */
1407 
1408 #ifndef __ScheduledTasks_FWD_DEFINED__
1409 #define __ScheduledTasks_FWD_DEFINED__
1410 #ifdef __cplusplus
1411 typedef class ScheduledTasks ScheduledTasks;
1412 #else
1413 typedef struct ScheduledTasks ScheduledTasks;
1414 #endif /* defined __cplusplus */
1415 #endif /* defined __ScheduledTasks_FWD_DEFINED__ */
1416 
1417 #ifndef __ApplicationAssociationRegistration_FWD_DEFINED__
1418 #define __ApplicationAssociationRegistration_FWD_DEFINED__
1419 #ifdef __cplusplus
1420 typedef class ApplicationAssociationRegistration ApplicationAssociationRegistration;
1421 #else
1422 typedef struct ApplicationAssociationRegistration ApplicationAssociationRegistration;
1423 #endif /* defined __cplusplus */
1424 #endif /* defined __ApplicationAssociationRegistration_FWD_DEFINED__ */
1425 
1426 #ifndef __ApplicationAssociationRegistrationUI_FWD_DEFINED__
1427 #define __ApplicationAssociationRegistrationUI_FWD_DEFINED__
1428 #ifdef __cplusplus
1429 typedef class ApplicationAssociationRegistrationUI ApplicationAssociationRegistrationUI;
1430 #else
1431 typedef struct ApplicationAssociationRegistrationUI ApplicationAssociationRegistrationUI;
1432 #endif /* defined __cplusplus */
1433 #endif /* defined __ApplicationAssociationRegistrationUI_FWD_DEFINED__ */
1434 
1435 #ifndef __SearchFolderItemFactory_FWD_DEFINED__
1436 #define __SearchFolderItemFactory_FWD_DEFINED__
1437 #ifdef __cplusplus
1438 typedef class SearchFolderItemFactory SearchFolderItemFactory;
1439 #else
1440 typedef struct SearchFolderItemFactory SearchFolderItemFactory;
1441 #endif /* defined __cplusplus */
1442 #endif /* defined __SearchFolderItemFactory_FWD_DEFINED__ */
1443 
1444 #ifndef __OpenControlPanel_FWD_DEFINED__
1445 #define __OpenControlPanel_FWD_DEFINED__
1446 #ifdef __cplusplus
1447 typedef class OpenControlPanel OpenControlPanel;
1448 #else
1449 typedef struct OpenControlPanel OpenControlPanel;
1450 #endif /* defined __cplusplus */
1451 #endif /* defined __OpenControlPanel_FWD_DEFINED__ */
1452 
1453 #ifndef __MailRecipient_FWD_DEFINED__
1454 #define __MailRecipient_FWD_DEFINED__
1455 #ifdef __cplusplus
1456 typedef class MailRecipient MailRecipient;
1457 #else
1458 typedef struct MailRecipient MailRecipient;
1459 #endif /* defined __cplusplus */
1460 #endif /* defined __MailRecipient_FWD_DEFINED__ */
1461 
1462 #ifndef __NetworkExplorerFolder_FWD_DEFINED__
1463 #define __NetworkExplorerFolder_FWD_DEFINED__
1464 #ifdef __cplusplus
1465 typedef class NetworkExplorerFolder NetworkExplorerFolder;
1466 #else
1467 typedef struct NetworkExplorerFolder NetworkExplorerFolder;
1468 #endif /* defined __cplusplus */
1469 #endif /* defined __NetworkExplorerFolder_FWD_DEFINED__ */
1470 
1471 #ifndef __DestinationList_FWD_DEFINED__
1472 #define __DestinationList_FWD_DEFINED__
1473 #ifdef __cplusplus
1474 typedef class DestinationList DestinationList;
1475 #else
1476 typedef struct DestinationList DestinationList;
1477 #endif /* defined __cplusplus */
1478 #endif /* defined __DestinationList_FWD_DEFINED__ */
1479 
1480 #ifndef __ApplicationDestinations_FWD_DEFINED__
1481 #define __ApplicationDestinations_FWD_DEFINED__
1482 #ifdef __cplusplus
1483 typedef class ApplicationDestinations ApplicationDestinations;
1484 #else
1485 typedef struct ApplicationDestinations ApplicationDestinations;
1486 #endif /* defined __cplusplus */
1487 #endif /* defined __ApplicationDestinations_FWD_DEFINED__ */
1488 
1489 #ifndef __ApplicationDocumentLists_FWD_DEFINED__
1490 #define __ApplicationDocumentLists_FWD_DEFINED__
1491 #ifdef __cplusplus
1492 typedef class ApplicationDocumentLists ApplicationDocumentLists;
1493 #else
1494 typedef struct ApplicationDocumentLists ApplicationDocumentLists;
1495 #endif /* defined __cplusplus */
1496 #endif /* defined __ApplicationDocumentLists_FWD_DEFINED__ */
1497 
1498 #ifndef __HomeGroup_FWD_DEFINED__
1499 #define __HomeGroup_FWD_DEFINED__
1500 #ifdef __cplusplus
1501 typedef class HomeGroup HomeGroup;
1502 #else
1503 typedef struct HomeGroup HomeGroup;
1504 #endif /* defined __cplusplus */
1505 #endif /* defined __HomeGroup_FWD_DEFINED__ */
1506 
1507 #ifndef __ShellLibrary_FWD_DEFINED__
1508 #define __ShellLibrary_FWD_DEFINED__
1509 #ifdef __cplusplus
1510 typedef class ShellLibrary ShellLibrary;
1511 #else
1512 typedef struct ShellLibrary ShellLibrary;
1513 #endif /* defined __cplusplus */
1514 #endif /* defined __ShellLibrary_FWD_DEFINED__ */
1515 
1516 #ifndef __AppStartupLink_FWD_DEFINED__
1517 #define __AppStartupLink_FWD_DEFINED__
1518 #ifdef __cplusplus
1519 typedef class AppStartupLink AppStartupLink;
1520 #else
1521 typedef struct AppStartupLink AppStartupLink;
1522 #endif /* defined __cplusplus */
1523 #endif /* defined __AppStartupLink_FWD_DEFINED__ */
1524 
1525 #ifndef __EnumerableObjectCollection_FWD_DEFINED__
1526 #define __EnumerableObjectCollection_FWD_DEFINED__
1527 #ifdef __cplusplus
1528 typedef class EnumerableObjectCollection EnumerableObjectCollection;
1529 #else
1530 typedef struct EnumerableObjectCollection EnumerableObjectCollection;
1531 #endif /* defined __cplusplus */
1532 #endif /* defined __EnumerableObjectCollection_FWD_DEFINED__ */
1533 
1534 #ifndef __DesktopGadget_FWD_DEFINED__
1535 #define __DesktopGadget_FWD_DEFINED__
1536 #ifdef __cplusplus
1537 typedef class DesktopGadget DesktopGadget;
1538 #else
1539 typedef struct DesktopGadget DesktopGadget;
1540 #endif /* defined __cplusplus */
1541 #endif /* defined __DesktopGadget_FWD_DEFINED__ */
1542 
1543 #ifndef __PlaybackManager_FWD_DEFINED__
1544 #define __PlaybackManager_FWD_DEFINED__
1545 #ifdef __cplusplus
1546 typedef class PlaybackManager PlaybackManager;
1547 #else
1548 typedef struct PlaybackManager PlaybackManager;
1549 #endif /* defined __cplusplus */
1550 #endif /* defined __PlaybackManager_FWD_DEFINED__ */
1551 
1552 #ifndef __AccessibilityDockingService_FWD_DEFINED__
1553 #define __AccessibilityDockingService_FWD_DEFINED__
1554 #ifdef __cplusplus
1555 typedef class AccessibilityDockingService AccessibilityDockingService;
1556 #else
1557 typedef struct AccessibilityDockingService AccessibilityDockingService;
1558 #endif /* defined __cplusplus */
1559 #endif /* defined __AccessibilityDockingService_FWD_DEFINED__ */
1560 
1561 #ifndef __FrameworkInputPane_FWD_DEFINED__
1562 #define __FrameworkInputPane_FWD_DEFINED__
1563 #ifdef __cplusplus
1564 typedef class FrameworkInputPane FrameworkInputPane;
1565 #else
1566 typedef struct FrameworkInputPane FrameworkInputPane;
1567 #endif /* defined __cplusplus */
1568 #endif /* defined __FrameworkInputPane_FWD_DEFINED__ */
1569 
1570 #ifndef __DefFolderMenu_FWD_DEFINED__
1571 #define __DefFolderMenu_FWD_DEFINED__
1572 #ifdef __cplusplus
1573 typedef class DefFolderMenu DefFolderMenu;
1574 #else
1575 typedef struct DefFolderMenu DefFolderMenu;
1576 #endif /* defined __cplusplus */
1577 #endif /* defined __DefFolderMenu_FWD_DEFINED__ */
1578 
1579 #ifndef __AppVisibility_FWD_DEFINED__
1580 #define __AppVisibility_FWD_DEFINED__
1581 #ifdef __cplusplus
1582 typedef class AppVisibility AppVisibility;
1583 #else
1584 typedef struct AppVisibility AppVisibility;
1585 #endif /* defined __cplusplus */
1586 #endif /* defined __AppVisibility_FWD_DEFINED__ */
1587 
1588 #ifndef __AppShellVerbHandler_FWD_DEFINED__
1589 #define __AppShellVerbHandler_FWD_DEFINED__
1590 #ifdef __cplusplus
1591 typedef class AppShellVerbHandler AppShellVerbHandler;
1592 #else
1593 typedef struct AppShellVerbHandler AppShellVerbHandler;
1594 #endif /* defined __cplusplus */
1595 #endif /* defined __AppShellVerbHandler_FWD_DEFINED__ */
1596 
1597 #ifndef __ExecuteUnknown_FWD_DEFINED__
1598 #define __ExecuteUnknown_FWD_DEFINED__
1599 #ifdef __cplusplus
1600 typedef class ExecuteUnknown ExecuteUnknown;
1601 #else
1602 typedef struct ExecuteUnknown ExecuteUnknown;
1603 #endif /* defined __cplusplus */
1604 #endif /* defined __ExecuteUnknown_FWD_DEFINED__ */
1605 
1606 #ifndef __PackageDebugSettings_FWD_DEFINED__
1607 #define __PackageDebugSettings_FWD_DEFINED__
1608 #ifdef __cplusplus
1609 typedef class PackageDebugSettings PackageDebugSettings;
1610 #else
1611 typedef struct PackageDebugSettings PackageDebugSettings;
1612 #endif /* defined __cplusplus */
1613 #endif /* defined __PackageDebugSettings_FWD_DEFINED__ */
1614 
1615 #ifndef __ApplicationActivationManager_FWD_DEFINED__
1616 #define __ApplicationActivationManager_FWD_DEFINED__
1617 #ifdef __cplusplus
1618 typedef class ApplicationActivationManager ApplicationActivationManager;
1619 #else
1620 typedef struct ApplicationActivationManager ApplicationActivationManager;
1621 #endif /* defined __cplusplus */
1622 #endif /* defined __ApplicationActivationManager_FWD_DEFINED__ */
1623 
1624 #ifndef __ApplicationDesignModeSettings_FWD_DEFINED__
1625 #define __ApplicationDesignModeSettings_FWD_DEFINED__
1626 #ifdef __cplusplus
1627 typedef class ApplicationDesignModeSettings ApplicationDesignModeSettings;
1628 #else
1629 typedef struct ApplicationDesignModeSettings ApplicationDesignModeSettings;
1630 #endif /* defined __cplusplus */
1631 #endif /* defined __ApplicationDesignModeSettings_FWD_DEFINED__ */
1632 
1633 #ifndef __ExecuteFolder_FWD_DEFINED__
1634 #define __ExecuteFolder_FWD_DEFINED__
1635 #ifdef __cplusplus
1636 typedef class ExecuteFolder ExecuteFolder;
1637 #else
1638 typedef struct ExecuteFolder ExecuteFolder;
1639 #endif /* defined __cplusplus */
1640 #endif /* defined __ExecuteFolder_FWD_DEFINED__ */
1641 
1642 #ifndef __IAssocHandlerInvoker_FWD_DEFINED__
1643 #define __IAssocHandlerInvoker_FWD_DEFINED__
1644 typedef interface IAssocHandlerInvoker IAssocHandlerInvoker;
1645 #endif
1646 
1647 #ifndef __IAssocHandler_FWD_DEFINED__
1648 #define __IAssocHandler_FWD_DEFINED__
1649 typedef interface IAssocHandler IAssocHandler;
1650 #endif
1651 
1652 #ifndef __IEnumAssocHandlers_FWD_DEFINED__
1653 #define __IEnumAssocHandlers_FWD_DEFINED__
1654 typedef interface IEnumAssocHandlers IEnumAssocHandlers;
1655 #endif
1656 
1657 #ifndef __IDataObjectProvider_FWD_DEFINED__
1658 #define __IDataObjectProvider_FWD_DEFINED__
1659 typedef interface IDataObjectProvider IDataObjectProvider;
1660 #endif
1661 
1662 #ifndef __IDataTransferManagerInterop_FWD_DEFINED__
1663 #define __IDataTransferManagerInterop_FWD_DEFINED__
1664 typedef interface IDataTransferManagerInterop IDataTransferManagerInterop;
1665 #endif
1666 
1667 #ifndef __IFrameworkInputPaneHandler_FWD_DEFINED__
1668 #define __IFrameworkInputPaneHandler_FWD_DEFINED__
1669 typedef interface IFrameworkInputPaneHandler IFrameworkInputPaneHandler;
1670 #endif
1671 
1672 #ifndef __IFrameworkInputPane_FWD_DEFINED__
1673 #define __IFrameworkInputPane_FWD_DEFINED__
1674 typedef interface IFrameworkInputPane IFrameworkInputPane;
1675 #endif
1676 
1677 #ifndef __ISearchableApplication_FWD_DEFINED__
1678 #define __ISearchableApplication_FWD_DEFINED__
1679 typedef interface ISearchableApplication ISearchableApplication;
1680 #endif
1681 
1682 #ifndef __IAccessibilityDockingServiceCallback_FWD_DEFINED__
1683 #define __IAccessibilityDockingServiceCallback_FWD_DEFINED__
1684 typedef interface IAccessibilityDockingServiceCallback IAccessibilityDockingServiceCallback;
1685 #endif
1686 
1687 #ifndef __IAccessibilityDockingService_FWD_DEFINED__
1688 #define __IAccessibilityDockingService_FWD_DEFINED__
1689 typedef interface IAccessibilityDockingService IAccessibilityDockingService;
1690 #endif
1691 
1692 #ifndef __IAppVisibilityEvents_FWD_DEFINED__
1693 #define __IAppVisibilityEvents_FWD_DEFINED__
1694 typedef interface IAppVisibilityEvents IAppVisibilityEvents;
1695 #endif
1696 
1697 #ifndef __IAppVisibility_FWD_DEFINED__
1698 #define __IAppVisibility_FWD_DEFINED__
1699 typedef interface IAppVisibility IAppVisibility;
1700 #endif
1701 
1702 #ifndef __IPackageExecutionStateChangeNotification_FWD_DEFINED__
1703 #define __IPackageExecutionStateChangeNotification_FWD_DEFINED__
1704 typedef interface IPackageExecutionStateChangeNotification IPackageExecutionStateChangeNotification;
1705 #endif
1706 
1707 #ifndef __IPackageDebugSettings_FWD_DEFINED__
1708 #define __IPackageDebugSettings_FWD_DEFINED__
1709 typedef interface IPackageDebugSettings IPackageDebugSettings;
1710 #endif
1711 
1712 #ifndef __IExecuteCommandApplicationHostEnvironment_FWD_DEFINED__
1713 #define __IExecuteCommandApplicationHostEnvironment_FWD_DEFINED__
1714 typedef interface IExecuteCommandApplicationHostEnvironment IExecuteCommandApplicationHostEnvironment;
1715 #endif
1716 
1717 #ifndef __IExecuteCommandHost_FWD_DEFINED__
1718 #define __IExecuteCommandHost_FWD_DEFINED__
1719 typedef interface IExecuteCommandHost IExecuteCommandHost;
1720 #endif
1721 
1722 #ifndef __IApplicationDesignModeSettings_FWD_DEFINED__
1723 #define __IApplicationDesignModeSettings_FWD_DEFINED__
1724 typedef interface IApplicationDesignModeSettings IApplicationDesignModeSettings;
1725 #endif
1726 
1727 #ifndef __IInitializeWithWindow_FWD_DEFINED__
1728 #define __IInitializeWithWindow_FWD_DEFINED__
1729 typedef interface IInitializeWithWindow IInitializeWithWindow;
1730 #endif
1731 
1732 #ifndef __IHandlerInfo_FWD_DEFINED__
1733 #define __IHandlerInfo_FWD_DEFINED__
1734 typedef interface IHandlerInfo IHandlerInfo;
1735 #endif
1736 
1737 #ifndef __IHandlerActivationHost_FWD_DEFINED__
1738 #define __IHandlerActivationHost_FWD_DEFINED__
1739 typedef interface IHandlerActivationHost IHandlerActivationHost;
1740 #endif
1741 
1742 /* Headers for imported files */
1743 
1744 #include <objidl.h>
1745 #include <oleidl.h>
1746 #include <oaidl.h>
1747 #include <docobj.h>
1748 #include <shtypes.h>
1749 #include <servprov.h>
1750 #include <comcat.h>
1751 #include <propidl.h>
1752 #include <prsht.h>
1753 #include <msxml.h>
1754 #include <wtypes.h>
1755 #include <propsys.h>
1756 #include <objectarray.h>
1757 #include <structuredquerycondition.h>
1758 
1759 #ifdef __cplusplus
1760 extern "C" {
1761 #endif
1762 
1763 /**
1764  * This file is part of the mingw-w64 runtime package.
1765  * No warranty is given; refer to the file DISCLAIMER within this package.
1766  */
1767 
1768 #include <winapifamily.h>
1769 
1770 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
1771 
1772 #include <_mingw_unicode.h>
1773 
1774 
1775 #include <sherrors.h>
1776 
1777 #ifndef SHSTDAPI
1778 #ifdef _SHELL32_
1779 #define SHSTDAPI STDAPI
1780 #define SHSTDAPI_(type) STDAPI_(type)
1781 #else
1782 #define SHSTDAPI EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE
1783 #define SHSTDAPI_(type) EXTERN_C DECLSPEC_IMPORT type STDAPICALLTYPE
1784 #endif
1785 #endif
1786 
1787 #define CMF_NORMAL 0x0
1788 #define CMF_DEFAULTONLY 0x1
1789 #define CMF_VERBSONLY 0x2
1790 #define CMF_EXPLORE 0x4
1791 #define CMF_NOVERBS 0x8
1792 #define CMF_CANRENAME 0x10
1793 #define CMF_NODEFAULT 0x20
1794 #if NTDDI_VERSION < NTDDI_VISTA
1795 #define CMF_INCLUDESTATIC 0x40
1796 #endif
1797 #if NTDDI_VERSION >= NTDDI_VISTA
1798 #define CMF_ITEMMENU 0x80
1799 #endif
1800 #define CMF_EXTENDEDVERBS 0x100
1801 #if NTDDI_VERSION >= NTDDI_VISTA
1802 #define CMF_DISABLEDVERBS 0x200
1803 #endif
1804 #define CMF_ASYNCVERBSTATE 0x400
1805 #define CMF_OPTIMIZEFORINVOKE 0x800
1806 #define CMF_SYNCCASCADEMENU 0x1000
1807 #define CMF_DONOTPICKDEFAULT 0x2000
1808 #define CMF_RESERVED 0xffff0000
1809 
1810 #define GCS_VERBA 0x0
1811 #define GCS_HELPTEXTA 0x1
1812 #define GCS_VALIDATEA 0x2
1813 #define GCS_VERBW 0x4
1814 #define GCS_HELPTEXTW 0x5
1815 #define GCS_VALIDATEW 0x6
1816 #define GCS_VERBICONW 0x14
1817 #define GCS_UNICODE 0x4
1818 
1819 #define GCS_VERB __MINGW_NAME_AW(GCS_VERB)
1820 #define GCS_HELPTEXT __MINGW_NAME_AW(GCS_HELPTEXT)
1821 #define GCS_VALIDATE __MINGW_NAME_AW(GCS_VALIDATE)
1822 
1823 #define CMDSTR_NEWFOLDERA "NewFolder"
1824 #define CMDSTR_VIEWLISTA "ViewList"
1825 #define CMDSTR_VIEWDETAILSA "ViewDetails"
1826 #define CMDSTR_NEWFOLDERW L"NewFolder"
1827 #define CMDSTR_VIEWLISTW L"ViewList"
1828 #define CMDSTR_VIEWDETAILSW L"ViewDetails"
1829 
1830 #define CMDSTR_NEWFOLDER __MINGW_NAME_AW(CMDSTR_NEWFOLDER)
1831 #define CMDSTR_VIEWLIST __MINGW_NAME_AW(CMDSTR_VIEWLIST)
1832 #define CMDSTR_VIEWDETAILS __MINGW_NAME_AW(CMDSTR_VIEWDETAILS)
1833 
1834 #define CMIC_MASK_HOTKEY SEE_MASK_HOTKEY
1835 #define CMIC_MASK_ICON SEE_MASK_ICON
1836 #define CMIC_MASK_FLAG_NO_UI SEE_MASK_FLAG_NO_UI
1837 #define CMIC_MASK_UNICODE SEE_MASK_UNICODE
1838 #define CMIC_MASK_NO_CONSOLE SEE_MASK_NO_CONSOLE
1839 #if NTDDI_VERSION < NTDDI_VISTA
1840 #define CMIC_MASK_HASLINKNAME SEE_MASK_HASLINKNAME
1841 #define CMIC_MASK_HASTITLE SEE_MASK_HASTITLE
1842 #endif
1843 #define CMIC_MASK_FLAG_SEP_VDM SEE_MASK_FLAG_SEPVDM
1844 #define CMIC_MASK_ASYNCOK SEE_MASK_ASYNCOK
1845 #if NTDDI_VERSION >= NTDDI_VISTA
1846 #define CMIC_MASK_NOASYNC SEE_MASK_NOASYNC
1847 #endif
1848 #define CMIC_MASK_SHIFT_DOWN 0x10000000
1849 #define CMIC_MASK_CONTROL_DOWN 0x40000000
1850 #define CMIC_MASK_FLAG_LOG_USAGE SEE_MASK_FLAG_LOG_USAGE
1851 #define CMIC_MASK_NOZONECHECKS SEE_MASK_NOZONECHECKS
1852 #define CMIC_MASK_PTINVOKE 0x20000000
1853 
1854 #include <pshpack8.h>
1855 typedef struct _CMINVOKECOMMANDINFO {
1856     DWORD cbSize;
1857     DWORD fMask;
1858     HWND hwnd;
1859     LPCSTR lpVerb;
1860     LPCSTR lpParameters;
1861     LPCSTR lpDirectory;
1862     int nShow;
1863     DWORD dwHotKey;
1864     HANDLE hIcon;
1865 } CMINVOKECOMMANDINFO;
1866 
1867 typedef CMINVOKECOMMANDINFO *LPCMINVOKECOMMANDINFO;
1868 typedef const CMINVOKECOMMANDINFO *PCCMINVOKECOMMANDINFO;
1869 
1870 typedef struct _CMINVOKECOMMANDINFOEX {
1871     DWORD cbSize;
1872     DWORD fMask;
1873     HWND hwnd;
1874     LPCSTR lpVerb;
1875     LPCSTR lpParameters;
1876     LPCSTR lpDirectory;
1877     int nShow;
1878     DWORD dwHotKey;
1879     HANDLE hIcon;
1880     LPCSTR lpTitle;
1881     LPCWSTR lpVerbW;
1882     LPCWSTR lpParametersW;
1883     LPCWSTR lpDirectoryW;
1884     LPCWSTR lpTitleW;
1885     POINT ptInvoke;
1886 } CMINVOKECOMMANDINFOEX;
1887 
1888 typedef CMINVOKECOMMANDINFOEX *LPCMINVOKECOMMANDINFOEX;
1889 typedef const CMINVOKECOMMANDINFOEX *PCCMINVOKECOMMANDINFOEX;
1890 #include <poppack.h>
1891 
1892 /*****************************************************************************
1893  * IContextMenu interface
1894  */
1895 #ifndef __IContextMenu_INTERFACE_DEFINED__
1896 #define __IContextMenu_INTERFACE_DEFINED__
1897 
1898 DEFINE_GUID(IID_IContextMenu, 0x000214e4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1899 #if defined(__cplusplus) && !defined(CINTERFACE)
1900 MIDL_INTERFACE("000214e4-0000-0000-c000-000000000046")
1901 IContextMenu : public IUnknown
1902 {
1903     virtual HRESULT STDMETHODCALLTYPE QueryContextMenu(
1904         HMENU hmenu,
1905         UINT indexMenu,
1906         UINT idCmdFirst,
1907         UINT idCmdLast,
1908         UINT uFlags) = 0;
1909 
1910     virtual HRESULT STDMETHODCALLTYPE InvokeCommand(
1911         CMINVOKECOMMANDINFO *pici) = 0;
1912 
1913     virtual HRESULT STDMETHODCALLTYPE GetCommandString(
1914         UINT_PTR idCmd,
1915         UINT uType,
1916         UINT *pReserved,
1917         CHAR *pszName,
1918         UINT cchMax) = 0;
1919 
1920 };
1921 #ifdef __CRT_UUID_DECL
1922 __CRT_UUID_DECL(IContextMenu, 0x000214e4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
1923 #endif
1924 #else
1925 typedef struct IContextMenuVtbl {
1926     BEGIN_INTERFACE
1927 
1928     /*** IUnknown methods ***/
1929     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1930         IContextMenu* This,
1931         REFIID riid,
1932         void **ppvObject);
1933 
1934     ULONG (STDMETHODCALLTYPE *AddRef)(
1935         IContextMenu* This);
1936 
1937     ULONG (STDMETHODCALLTYPE *Release)(
1938         IContextMenu* This);
1939 
1940     /*** IContextMenu methods ***/
1941     HRESULT (STDMETHODCALLTYPE *QueryContextMenu)(
1942         IContextMenu* This,
1943         HMENU hmenu,
1944         UINT indexMenu,
1945         UINT idCmdFirst,
1946         UINT idCmdLast,
1947         UINT uFlags);
1948 
1949     HRESULT (STDMETHODCALLTYPE *InvokeCommand)(
1950         IContextMenu* This,
1951         CMINVOKECOMMANDINFO *pici);
1952 
1953     HRESULT (STDMETHODCALLTYPE *GetCommandString)(
1954         IContextMenu* This,
1955         UINT_PTR idCmd,
1956         UINT uType,
1957         UINT *pReserved,
1958         CHAR *pszName,
1959         UINT cchMax);
1960 
1961     END_INTERFACE
1962 } IContextMenuVtbl;
1963 interface IContextMenu {
1964     CONST_VTBL IContextMenuVtbl* lpVtbl;
1965 };
1966 
1967 #ifdef COBJMACROS
1968 #ifndef WIDL_C_INLINE_WRAPPERS
1969 /*** IUnknown methods ***/
1970 #define IContextMenu_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1971 #define IContextMenu_AddRef(This) (This)->lpVtbl->AddRef(This)
1972 #define IContextMenu_Release(This) (This)->lpVtbl->Release(This)
1973 /*** IContextMenu methods ***/
1974 #define IContextMenu_QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags) (This)->lpVtbl->QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags)
1975 #define IContextMenu_InvokeCommand(This,pici) (This)->lpVtbl->InvokeCommand(This,pici)
1976 #define IContextMenu_GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax) (This)->lpVtbl->GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax)
1977 #else
1978 /*** IUnknown methods ***/
1979 static FORCEINLINE HRESULT IContextMenu_QueryInterface(IContextMenu* This,REFIID riid,void **ppvObject) {
1980     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1981 }
1982 static FORCEINLINE ULONG IContextMenu_AddRef(IContextMenu* This) {
1983     return This->lpVtbl->AddRef(This);
1984 }
1985 static FORCEINLINE ULONG IContextMenu_Release(IContextMenu* This) {
1986     return This->lpVtbl->Release(This);
1987 }
1988 /*** IContextMenu methods ***/
1989 static FORCEINLINE HRESULT IContextMenu_QueryContextMenu(IContextMenu* This,HMENU hmenu,UINT indexMenu,UINT idCmdFirst,UINT idCmdLast,UINT uFlags) {
1990     return This->lpVtbl->QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags);
1991 }
1992 static FORCEINLINE HRESULT IContextMenu_InvokeCommand(IContextMenu* This,CMINVOKECOMMANDINFO *pici) {
1993     return This->lpVtbl->InvokeCommand(This,pici);
1994 }
1995 static FORCEINLINE HRESULT IContextMenu_GetCommandString(IContextMenu* This,UINT_PTR idCmd,UINT uType,UINT *pReserved,CHAR *pszName,UINT cchMax) {
1996     return This->lpVtbl->GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax);
1997 }
1998 #endif
1999 #endif
2000 
2001 #endif
2002 
2003 HRESULT STDMETHODCALLTYPE IContextMenu_QueryContextMenu_Proxy(
2004     IContextMenu* This,
2005     HMENU hmenu,
2006     UINT indexMenu,
2007     UINT idCmdFirst,
2008     UINT idCmdLast,
2009     UINT uFlags);
2010 void __RPC_STUB IContextMenu_QueryContextMenu_Stub(
2011     IRpcStubBuffer* This,
2012     IRpcChannelBuffer* pRpcChannelBuffer,
2013     PRPC_MESSAGE pRpcMessage,
2014     DWORD* pdwStubPhase);
2015 HRESULT STDMETHODCALLTYPE IContextMenu_InvokeCommand_Proxy(
2016     IContextMenu* This,
2017     CMINVOKECOMMANDINFO *pici);
2018 void __RPC_STUB IContextMenu_InvokeCommand_Stub(
2019     IRpcStubBuffer* This,
2020     IRpcChannelBuffer* pRpcChannelBuffer,
2021     PRPC_MESSAGE pRpcMessage,
2022     DWORD* pdwStubPhase);
2023 HRESULT STDMETHODCALLTYPE IContextMenu_GetCommandString_Proxy(
2024     IContextMenu* This,
2025     UINT_PTR idCmd,
2026     UINT uType,
2027     UINT *pReserved,
2028     CHAR *pszName,
2029     UINT cchMax);
2030 void __RPC_STUB IContextMenu_GetCommandString_Stub(
2031     IRpcStubBuffer* This,
2032     IRpcChannelBuffer* pRpcChannelBuffer,
2033     PRPC_MESSAGE pRpcMessage,
2034     DWORD* pdwStubPhase);
2035 
2036 #endif  /* __IContextMenu_INTERFACE_DEFINED__ */
2037 
2038 typedef IContextMenu *LPCONTEXTMENU;
2039 
2040 /*****************************************************************************
2041  * IContextMenu2 interface
2042  */
2043 #ifndef __IContextMenu2_INTERFACE_DEFINED__
2044 #define __IContextMenu2_INTERFACE_DEFINED__
2045 
2046 DEFINE_GUID(IID_IContextMenu2, 0x000214f4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2047 #if defined(__cplusplus) && !defined(CINTERFACE)
2048 MIDL_INTERFACE("000214f4-0000-0000-c000-000000000046")
2049 IContextMenu2 : public IContextMenu
2050 {
2051     virtual HRESULT STDMETHODCALLTYPE HandleMenuMsg(
2052         UINT uMsg,
2053         WPARAM wParam,
2054         LPARAM lParam) = 0;
2055 
2056 };
2057 #ifdef __CRT_UUID_DECL
2058 __CRT_UUID_DECL(IContextMenu2, 0x000214f4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
2059 #endif
2060 #else
2061 typedef struct IContextMenu2Vtbl {
2062     BEGIN_INTERFACE
2063 
2064     /*** IUnknown methods ***/
2065     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2066         IContextMenu2* This,
2067         REFIID riid,
2068         void **ppvObject);
2069 
2070     ULONG (STDMETHODCALLTYPE *AddRef)(
2071         IContextMenu2* This);
2072 
2073     ULONG (STDMETHODCALLTYPE *Release)(
2074         IContextMenu2* This);
2075 
2076     /*** IContextMenu methods ***/
2077     HRESULT (STDMETHODCALLTYPE *QueryContextMenu)(
2078         IContextMenu2* This,
2079         HMENU hmenu,
2080         UINT indexMenu,
2081         UINT idCmdFirst,
2082         UINT idCmdLast,
2083         UINT uFlags);
2084 
2085     HRESULT (STDMETHODCALLTYPE *InvokeCommand)(
2086         IContextMenu2* This,
2087         CMINVOKECOMMANDINFO *pici);
2088 
2089     HRESULT (STDMETHODCALLTYPE *GetCommandString)(
2090         IContextMenu2* This,
2091         UINT_PTR idCmd,
2092         UINT uType,
2093         UINT *pReserved,
2094         CHAR *pszName,
2095         UINT cchMax);
2096 
2097     /*** IContextMenu2 methods ***/
2098     HRESULT (STDMETHODCALLTYPE *HandleMenuMsg)(
2099         IContextMenu2* This,
2100         UINT uMsg,
2101         WPARAM wParam,
2102         LPARAM lParam);
2103 
2104     END_INTERFACE
2105 } IContextMenu2Vtbl;
2106 interface IContextMenu2 {
2107     CONST_VTBL IContextMenu2Vtbl* lpVtbl;
2108 };
2109 
2110 #ifdef COBJMACROS
2111 #ifndef WIDL_C_INLINE_WRAPPERS
2112 /*** IUnknown methods ***/
2113 #define IContextMenu2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2114 #define IContextMenu2_AddRef(This) (This)->lpVtbl->AddRef(This)
2115 #define IContextMenu2_Release(This) (This)->lpVtbl->Release(This)
2116 /*** IContextMenu methods ***/
2117 #define IContextMenu2_QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags) (This)->lpVtbl->QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags)
2118 #define IContextMenu2_InvokeCommand(This,pici) (This)->lpVtbl->InvokeCommand(This,pici)
2119 #define IContextMenu2_GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax) (This)->lpVtbl->GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax)
2120 /*** IContextMenu2 methods ***/
2121 #define IContextMenu2_HandleMenuMsg(This,uMsg,wParam,lParam) (This)->lpVtbl->HandleMenuMsg(This,uMsg,wParam,lParam)
2122 #else
2123 /*** IUnknown methods ***/
2124 static FORCEINLINE HRESULT IContextMenu2_QueryInterface(IContextMenu2* This,REFIID riid,void **ppvObject) {
2125     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2126 }
2127 static FORCEINLINE ULONG IContextMenu2_AddRef(IContextMenu2* This) {
2128     return This->lpVtbl->AddRef(This);
2129 }
2130 static FORCEINLINE ULONG IContextMenu2_Release(IContextMenu2* This) {
2131     return This->lpVtbl->Release(This);
2132 }
2133 /*** IContextMenu methods ***/
2134 static FORCEINLINE HRESULT IContextMenu2_QueryContextMenu(IContextMenu2* This,HMENU hmenu,UINT indexMenu,UINT idCmdFirst,UINT idCmdLast,UINT uFlags) {
2135     return This->lpVtbl->QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags);
2136 }
2137 static FORCEINLINE HRESULT IContextMenu2_InvokeCommand(IContextMenu2* This,CMINVOKECOMMANDINFO *pici) {
2138     return This->lpVtbl->InvokeCommand(This,pici);
2139 }
2140 static FORCEINLINE HRESULT IContextMenu2_GetCommandString(IContextMenu2* This,UINT_PTR idCmd,UINT uType,UINT *pReserved,CHAR *pszName,UINT cchMax) {
2141     return This->lpVtbl->GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax);
2142 }
2143 /*** IContextMenu2 methods ***/
2144 static FORCEINLINE HRESULT IContextMenu2_HandleMenuMsg(IContextMenu2* This,UINT uMsg,WPARAM wParam,LPARAM lParam) {
2145     return This->lpVtbl->HandleMenuMsg(This,uMsg,wParam,lParam);
2146 }
2147 #endif
2148 #endif
2149 
2150 #endif
2151 
2152 HRESULT STDMETHODCALLTYPE IContextMenu2_HandleMenuMsg_Proxy(
2153     IContextMenu2* This,
2154     UINT uMsg,
2155     WPARAM wParam,
2156     LPARAM lParam);
2157 void __RPC_STUB IContextMenu2_HandleMenuMsg_Stub(
2158     IRpcStubBuffer* This,
2159     IRpcChannelBuffer* pRpcChannelBuffer,
2160     PRPC_MESSAGE pRpcMessage,
2161     DWORD* pdwStubPhase);
2162 
2163 #endif  /* __IContextMenu2_INTERFACE_DEFINED__ */
2164 
2165 typedef IContextMenu2 *LPCONTEXTMENU2;
2166 
2167 /*****************************************************************************
2168  * IContextMenu3 interface
2169  */
2170 #ifndef __IContextMenu3_INTERFACE_DEFINED__
2171 #define __IContextMenu3_INTERFACE_DEFINED__
2172 
2173 DEFINE_GUID(IID_IContextMenu3, 0xbcfce0a0, 0xec17, 0x11d0, 0x8d,0x10, 0x00,0xa0,0xc9,0x0f,0x27,0x19);
2174 #if defined(__cplusplus) && !defined(CINTERFACE)
2175 MIDL_INTERFACE("bcfce0a0-ec17-11d0-8d10-00a0c90f2719")
2176 IContextMenu3 : public IContextMenu2
2177 {
2178     virtual HRESULT STDMETHODCALLTYPE HandleMenuMsg2(
2179         UINT uMsg,
2180         WPARAM wParam,
2181         LPARAM lParam,
2182         LRESULT *plResult) = 0;
2183 
2184 };
2185 #ifdef __CRT_UUID_DECL
2186 __CRT_UUID_DECL(IContextMenu3, 0xbcfce0a0, 0xec17, 0x11d0, 0x8d,0x10, 0x00,0xa0,0xc9,0x0f,0x27,0x19)
2187 #endif
2188 #else
2189 typedef struct IContextMenu3Vtbl {
2190     BEGIN_INTERFACE
2191 
2192     /*** IUnknown methods ***/
2193     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2194         IContextMenu3* This,
2195         REFIID riid,
2196         void **ppvObject);
2197 
2198     ULONG (STDMETHODCALLTYPE *AddRef)(
2199         IContextMenu3* This);
2200 
2201     ULONG (STDMETHODCALLTYPE *Release)(
2202         IContextMenu3* This);
2203 
2204     /*** IContextMenu methods ***/
2205     HRESULT (STDMETHODCALLTYPE *QueryContextMenu)(
2206         IContextMenu3* This,
2207         HMENU hmenu,
2208         UINT indexMenu,
2209         UINT idCmdFirst,
2210         UINT idCmdLast,
2211         UINT uFlags);
2212 
2213     HRESULT (STDMETHODCALLTYPE *InvokeCommand)(
2214         IContextMenu3* This,
2215         CMINVOKECOMMANDINFO *pici);
2216 
2217     HRESULT (STDMETHODCALLTYPE *GetCommandString)(
2218         IContextMenu3* This,
2219         UINT_PTR idCmd,
2220         UINT uType,
2221         UINT *pReserved,
2222         CHAR *pszName,
2223         UINT cchMax);
2224 
2225     /*** IContextMenu2 methods ***/
2226     HRESULT (STDMETHODCALLTYPE *HandleMenuMsg)(
2227         IContextMenu3* This,
2228         UINT uMsg,
2229         WPARAM wParam,
2230         LPARAM lParam);
2231 
2232     /*** IContextMenu3 methods ***/
2233     HRESULT (STDMETHODCALLTYPE *HandleMenuMsg2)(
2234         IContextMenu3* This,
2235         UINT uMsg,
2236         WPARAM wParam,
2237         LPARAM lParam,
2238         LRESULT *plResult);
2239 
2240     END_INTERFACE
2241 } IContextMenu3Vtbl;
2242 interface IContextMenu3 {
2243     CONST_VTBL IContextMenu3Vtbl* lpVtbl;
2244 };
2245 
2246 #ifdef COBJMACROS
2247 #ifndef WIDL_C_INLINE_WRAPPERS
2248 /*** IUnknown methods ***/
2249 #define IContextMenu3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2250 #define IContextMenu3_AddRef(This) (This)->lpVtbl->AddRef(This)
2251 #define IContextMenu3_Release(This) (This)->lpVtbl->Release(This)
2252 /*** IContextMenu methods ***/
2253 #define IContextMenu3_QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags) (This)->lpVtbl->QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags)
2254 #define IContextMenu3_InvokeCommand(This,pici) (This)->lpVtbl->InvokeCommand(This,pici)
2255 #define IContextMenu3_GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax) (This)->lpVtbl->GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax)
2256 /*** IContextMenu2 methods ***/
2257 #define IContextMenu3_HandleMenuMsg(This,uMsg,wParam,lParam) (This)->lpVtbl->HandleMenuMsg(This,uMsg,wParam,lParam)
2258 /*** IContextMenu3 methods ***/
2259 #define IContextMenu3_HandleMenuMsg2(This,uMsg,wParam,lParam,plResult) (This)->lpVtbl->HandleMenuMsg2(This,uMsg,wParam,lParam,plResult)
2260 #else
2261 /*** IUnknown methods ***/
2262 static FORCEINLINE HRESULT IContextMenu3_QueryInterface(IContextMenu3* This,REFIID riid,void **ppvObject) {
2263     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2264 }
2265 static FORCEINLINE ULONG IContextMenu3_AddRef(IContextMenu3* This) {
2266     return This->lpVtbl->AddRef(This);
2267 }
2268 static FORCEINLINE ULONG IContextMenu3_Release(IContextMenu3* This) {
2269     return This->lpVtbl->Release(This);
2270 }
2271 /*** IContextMenu methods ***/
2272 static FORCEINLINE HRESULT IContextMenu3_QueryContextMenu(IContextMenu3* This,HMENU hmenu,UINT indexMenu,UINT idCmdFirst,UINT idCmdLast,UINT uFlags) {
2273     return This->lpVtbl->QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags);
2274 }
2275 static FORCEINLINE HRESULT IContextMenu3_InvokeCommand(IContextMenu3* This,CMINVOKECOMMANDINFO *pici) {
2276     return This->lpVtbl->InvokeCommand(This,pici);
2277 }
2278 static FORCEINLINE HRESULT IContextMenu3_GetCommandString(IContextMenu3* This,UINT_PTR idCmd,UINT uType,UINT *pReserved,CHAR *pszName,UINT cchMax) {
2279     return This->lpVtbl->GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax);
2280 }
2281 /*** IContextMenu2 methods ***/
2282 static FORCEINLINE HRESULT IContextMenu3_HandleMenuMsg(IContextMenu3* This,UINT uMsg,WPARAM wParam,LPARAM lParam) {
2283     return This->lpVtbl->HandleMenuMsg(This,uMsg,wParam,lParam);
2284 }
2285 /*** IContextMenu3 methods ***/
2286 static FORCEINLINE HRESULT IContextMenu3_HandleMenuMsg2(IContextMenu3* This,UINT uMsg,WPARAM wParam,LPARAM lParam,LRESULT *plResult) {
2287     return This->lpVtbl->HandleMenuMsg2(This,uMsg,wParam,lParam,plResult);
2288 }
2289 #endif
2290 #endif
2291 
2292 #endif
2293 
2294 HRESULT STDMETHODCALLTYPE IContextMenu3_HandleMenuMsg2_Proxy(
2295     IContextMenu3* This,
2296     UINT uMsg,
2297     WPARAM wParam,
2298     LPARAM lParam,
2299     LRESULT *plResult);
2300 void __RPC_STUB IContextMenu3_HandleMenuMsg2_Stub(
2301     IRpcStubBuffer* This,
2302     IRpcChannelBuffer* pRpcChannelBuffer,
2303     PRPC_MESSAGE pRpcMessage,
2304     DWORD* pdwStubPhase);
2305 
2306 #endif  /* __IContextMenu3_INTERFACE_DEFINED__ */
2307 
2308 typedef IContextMenu3 *LPCONTEXTMENU3;
2309 
2310 /*****************************************************************************
2311  * IExecuteCommand interface
2312  */
2313 #ifndef __IExecuteCommand_INTERFACE_DEFINED__
2314 #define __IExecuteCommand_INTERFACE_DEFINED__
2315 
2316 DEFINE_GUID(IID_IExecuteCommand, 0x7f9185b0, 0xcb92, 0x43c5, 0x80,0xa9, 0x92,0x27,0x7a,0x4f,0x7b,0x54);
2317 #if defined(__cplusplus) && !defined(CINTERFACE)
2318 MIDL_INTERFACE("7f9185b0-cb92-43c5-80a9-92277a4f7b54")
2319 IExecuteCommand : public IUnknown
2320 {
2321     virtual HRESULT STDMETHODCALLTYPE SetKeyState(
2322         DWORD grfKeyState) = 0;
2323 
2324     virtual HRESULT STDMETHODCALLTYPE SetParameters(
2325         LPCWSTR pszParameters) = 0;
2326 
2327     virtual HRESULT STDMETHODCALLTYPE SetPosition(
2328         POINT pt) = 0;
2329 
2330     virtual HRESULT STDMETHODCALLTYPE SetShowWindow(
2331         int nShow) = 0;
2332 
2333     virtual HRESULT STDMETHODCALLTYPE SetNoShowUI(
2334         WINBOOL fNoShowUI) = 0;
2335 
2336     virtual HRESULT STDMETHODCALLTYPE SetDirectory(
2337         LPCWSTR pszDirectory) = 0;
2338 
2339     virtual HRESULT STDMETHODCALLTYPE Execute(
2340         ) = 0;
2341 
2342 };
2343 #ifdef __CRT_UUID_DECL
2344 __CRT_UUID_DECL(IExecuteCommand, 0x7f9185b0, 0xcb92, 0x43c5, 0x80,0xa9, 0x92,0x27,0x7a,0x4f,0x7b,0x54)
2345 #endif
2346 #else
2347 typedef struct IExecuteCommandVtbl {
2348     BEGIN_INTERFACE
2349 
2350     /*** IUnknown methods ***/
2351     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2352         IExecuteCommand* This,
2353         REFIID riid,
2354         void **ppvObject);
2355 
2356     ULONG (STDMETHODCALLTYPE *AddRef)(
2357         IExecuteCommand* This);
2358 
2359     ULONG (STDMETHODCALLTYPE *Release)(
2360         IExecuteCommand* This);
2361 
2362     /*** IExecuteCommand methods ***/
2363     HRESULT (STDMETHODCALLTYPE *SetKeyState)(
2364         IExecuteCommand* This,
2365         DWORD grfKeyState);
2366 
2367     HRESULT (STDMETHODCALLTYPE *SetParameters)(
2368         IExecuteCommand* This,
2369         LPCWSTR pszParameters);
2370 
2371     HRESULT (STDMETHODCALLTYPE *SetPosition)(
2372         IExecuteCommand* This,
2373         POINT pt);
2374 
2375     HRESULT (STDMETHODCALLTYPE *SetShowWindow)(
2376         IExecuteCommand* This,
2377         int nShow);
2378 
2379     HRESULT (STDMETHODCALLTYPE *SetNoShowUI)(
2380         IExecuteCommand* This,
2381         WINBOOL fNoShowUI);
2382 
2383     HRESULT (STDMETHODCALLTYPE *SetDirectory)(
2384         IExecuteCommand* This,
2385         LPCWSTR pszDirectory);
2386 
2387     HRESULT (STDMETHODCALLTYPE *Execute)(
2388         IExecuteCommand* This);
2389 
2390     END_INTERFACE
2391 } IExecuteCommandVtbl;
2392 interface IExecuteCommand {
2393     CONST_VTBL IExecuteCommandVtbl* lpVtbl;
2394 };
2395 
2396 #ifdef COBJMACROS
2397 #ifndef WIDL_C_INLINE_WRAPPERS
2398 /*** IUnknown methods ***/
2399 #define IExecuteCommand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2400 #define IExecuteCommand_AddRef(This) (This)->lpVtbl->AddRef(This)
2401 #define IExecuteCommand_Release(This) (This)->lpVtbl->Release(This)
2402 /*** IExecuteCommand methods ***/
2403 #define IExecuteCommand_SetKeyState(This,grfKeyState) (This)->lpVtbl->SetKeyState(This,grfKeyState)
2404 #define IExecuteCommand_SetParameters(This,pszParameters) (This)->lpVtbl->SetParameters(This,pszParameters)
2405 #define IExecuteCommand_SetPosition(This,pt) (This)->lpVtbl->SetPosition(This,pt)
2406 #define IExecuteCommand_SetShowWindow(This,nShow) (This)->lpVtbl->SetShowWindow(This,nShow)
2407 #define IExecuteCommand_SetNoShowUI(This,fNoShowUI) (This)->lpVtbl->SetNoShowUI(This,fNoShowUI)
2408 #define IExecuteCommand_SetDirectory(This,pszDirectory) (This)->lpVtbl->SetDirectory(This,pszDirectory)
2409 #define IExecuteCommand_Execute(This) (This)->lpVtbl->Execute(This)
2410 #else
2411 /*** IUnknown methods ***/
2412 static FORCEINLINE HRESULT IExecuteCommand_QueryInterface(IExecuteCommand* This,REFIID riid,void **ppvObject) {
2413     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2414 }
2415 static FORCEINLINE ULONG IExecuteCommand_AddRef(IExecuteCommand* This) {
2416     return This->lpVtbl->AddRef(This);
2417 }
2418 static FORCEINLINE ULONG IExecuteCommand_Release(IExecuteCommand* This) {
2419     return This->lpVtbl->Release(This);
2420 }
2421 /*** IExecuteCommand methods ***/
2422 static FORCEINLINE HRESULT IExecuteCommand_SetKeyState(IExecuteCommand* This,DWORD grfKeyState) {
2423     return This->lpVtbl->SetKeyState(This,grfKeyState);
2424 }
2425 static FORCEINLINE HRESULT IExecuteCommand_SetParameters(IExecuteCommand* This,LPCWSTR pszParameters) {
2426     return This->lpVtbl->SetParameters(This,pszParameters);
2427 }
2428 static FORCEINLINE HRESULT IExecuteCommand_SetPosition(IExecuteCommand* This,POINT pt) {
2429     return This->lpVtbl->SetPosition(This,pt);
2430 }
2431 static FORCEINLINE HRESULT IExecuteCommand_SetShowWindow(IExecuteCommand* This,int nShow) {
2432     return This->lpVtbl->SetShowWindow(This,nShow);
2433 }
2434 static FORCEINLINE HRESULT IExecuteCommand_SetNoShowUI(IExecuteCommand* This,WINBOOL fNoShowUI) {
2435     return This->lpVtbl->SetNoShowUI(This,fNoShowUI);
2436 }
2437 static FORCEINLINE HRESULT IExecuteCommand_SetDirectory(IExecuteCommand* This,LPCWSTR pszDirectory) {
2438     return This->lpVtbl->SetDirectory(This,pszDirectory);
2439 }
2440 static FORCEINLINE HRESULT IExecuteCommand_Execute(IExecuteCommand* This) {
2441     return This->lpVtbl->Execute(This);
2442 }
2443 #endif
2444 #endif
2445 
2446 #endif
2447 
2448 HRESULT STDMETHODCALLTYPE IExecuteCommand_SetKeyState_Proxy(
2449     IExecuteCommand* This,
2450     DWORD grfKeyState);
2451 void __RPC_STUB IExecuteCommand_SetKeyState_Stub(
2452     IRpcStubBuffer* This,
2453     IRpcChannelBuffer* pRpcChannelBuffer,
2454     PRPC_MESSAGE pRpcMessage,
2455     DWORD* pdwStubPhase);
2456 HRESULT STDMETHODCALLTYPE IExecuteCommand_SetParameters_Proxy(
2457     IExecuteCommand* This,
2458     LPCWSTR pszParameters);
2459 void __RPC_STUB IExecuteCommand_SetParameters_Stub(
2460     IRpcStubBuffer* This,
2461     IRpcChannelBuffer* pRpcChannelBuffer,
2462     PRPC_MESSAGE pRpcMessage,
2463     DWORD* pdwStubPhase);
2464 HRESULT STDMETHODCALLTYPE IExecuteCommand_SetPosition_Proxy(
2465     IExecuteCommand* This,
2466     POINT pt);
2467 void __RPC_STUB IExecuteCommand_SetPosition_Stub(
2468     IRpcStubBuffer* This,
2469     IRpcChannelBuffer* pRpcChannelBuffer,
2470     PRPC_MESSAGE pRpcMessage,
2471     DWORD* pdwStubPhase);
2472 HRESULT STDMETHODCALLTYPE IExecuteCommand_SetShowWindow_Proxy(
2473     IExecuteCommand* This,
2474     int nShow);
2475 void __RPC_STUB IExecuteCommand_SetShowWindow_Stub(
2476     IRpcStubBuffer* This,
2477     IRpcChannelBuffer* pRpcChannelBuffer,
2478     PRPC_MESSAGE pRpcMessage,
2479     DWORD* pdwStubPhase);
2480 HRESULT STDMETHODCALLTYPE IExecuteCommand_SetNoShowUI_Proxy(
2481     IExecuteCommand* This,
2482     WINBOOL fNoShowUI);
2483 void __RPC_STUB IExecuteCommand_SetNoShowUI_Stub(
2484     IRpcStubBuffer* This,
2485     IRpcChannelBuffer* pRpcChannelBuffer,
2486     PRPC_MESSAGE pRpcMessage,
2487     DWORD* pdwStubPhase);
2488 HRESULT STDMETHODCALLTYPE IExecuteCommand_SetDirectory_Proxy(
2489     IExecuteCommand* This,
2490     LPCWSTR pszDirectory);
2491 void __RPC_STUB IExecuteCommand_SetDirectory_Stub(
2492     IRpcStubBuffer* This,
2493     IRpcChannelBuffer* pRpcChannelBuffer,
2494     PRPC_MESSAGE pRpcMessage,
2495     DWORD* pdwStubPhase);
2496 HRESULT STDMETHODCALLTYPE IExecuteCommand_Execute_Proxy(
2497     IExecuteCommand* This);
2498 void __RPC_STUB IExecuteCommand_Execute_Stub(
2499     IRpcStubBuffer* This,
2500     IRpcChannelBuffer* pRpcChannelBuffer,
2501     PRPC_MESSAGE pRpcMessage,
2502     DWORD* pdwStubPhase);
2503 
2504 #endif  /* __IExecuteCommand_INTERFACE_DEFINED__ */
2505 
2506 
2507 /*****************************************************************************
2508  * IPersistFolder interface
2509  */
2510 #ifndef __IPersistFolder_INTERFACE_DEFINED__
2511 #define __IPersistFolder_INTERFACE_DEFINED__
2512 
2513 DEFINE_GUID(IID_IPersistFolder, 0x000214ea, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2514 #if defined(__cplusplus) && !defined(CINTERFACE)
2515 MIDL_INTERFACE("000214ea-0000-0000-c000-000000000046")
2516 IPersistFolder : public IPersist
2517 {
2518     virtual HRESULT STDMETHODCALLTYPE Initialize(
2519         PCIDLIST_ABSOLUTE pidl) = 0;
2520 
2521 };
2522 #ifdef __CRT_UUID_DECL
2523 __CRT_UUID_DECL(IPersistFolder, 0x000214ea, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
2524 #endif
2525 #else
2526 typedef struct IPersistFolderVtbl {
2527     BEGIN_INTERFACE
2528 
2529     /*** IUnknown methods ***/
2530     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2531         IPersistFolder* This,
2532         REFIID riid,
2533         void **ppvObject);
2534 
2535     ULONG (STDMETHODCALLTYPE *AddRef)(
2536         IPersistFolder* This);
2537 
2538     ULONG (STDMETHODCALLTYPE *Release)(
2539         IPersistFolder* This);
2540 
2541     /*** IPersist methods ***/
2542     HRESULT (STDMETHODCALLTYPE *GetClassID)(
2543         IPersistFolder* This,
2544         CLSID *pClassID);
2545 
2546     /*** IPersistFolder methods ***/
2547     HRESULT (STDMETHODCALLTYPE *Initialize)(
2548         IPersistFolder* This,
2549         PCIDLIST_ABSOLUTE pidl);
2550 
2551     END_INTERFACE
2552 } IPersistFolderVtbl;
2553 interface IPersistFolder {
2554     CONST_VTBL IPersistFolderVtbl* lpVtbl;
2555 };
2556 
2557 #ifdef COBJMACROS
2558 #ifndef WIDL_C_INLINE_WRAPPERS
2559 /*** IUnknown methods ***/
2560 #define IPersistFolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2561 #define IPersistFolder_AddRef(This) (This)->lpVtbl->AddRef(This)
2562 #define IPersistFolder_Release(This) (This)->lpVtbl->Release(This)
2563 /*** IPersist methods ***/
2564 #define IPersistFolder_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
2565 /*** IPersistFolder methods ***/
2566 #define IPersistFolder_Initialize(This,pidl) (This)->lpVtbl->Initialize(This,pidl)
2567 #else
2568 /*** IUnknown methods ***/
2569 static FORCEINLINE HRESULT IPersistFolder_QueryInterface(IPersistFolder* This,REFIID riid,void **ppvObject) {
2570     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2571 }
2572 static FORCEINLINE ULONG IPersistFolder_AddRef(IPersistFolder* This) {
2573     return This->lpVtbl->AddRef(This);
2574 }
2575 static FORCEINLINE ULONG IPersistFolder_Release(IPersistFolder* This) {
2576     return This->lpVtbl->Release(This);
2577 }
2578 /*** IPersist methods ***/
2579 static FORCEINLINE HRESULT IPersistFolder_GetClassID(IPersistFolder* This,CLSID *pClassID) {
2580     return This->lpVtbl->GetClassID(This,pClassID);
2581 }
2582 /*** IPersistFolder methods ***/
2583 static FORCEINLINE HRESULT IPersistFolder_Initialize(IPersistFolder* This,PCIDLIST_ABSOLUTE pidl) {
2584     return This->lpVtbl->Initialize(This,pidl);
2585 }
2586 #endif
2587 #endif
2588 
2589 #endif
2590 
2591 HRESULT STDMETHODCALLTYPE IPersistFolder_Initialize_Proxy(
2592     IPersistFolder* This,
2593     PCIDLIST_ABSOLUTE pidl);
2594 void __RPC_STUB IPersistFolder_Initialize_Stub(
2595     IRpcStubBuffer* This,
2596     IRpcChannelBuffer* pRpcChannelBuffer,
2597     PRPC_MESSAGE pRpcMessage,
2598     DWORD* pdwStubPhase);
2599 
2600 #endif  /* __IPersistFolder_INTERFACE_DEFINED__ */
2601 
2602 typedef IPersistFolder *LPPERSISTFOLDER;
2603 
2604 #define IRTIR_TASK_NOT_RUNNING   0
2605 #define IRTIR_TASK_RUNNING       1
2606 #define IRTIR_TASK_SUSPENDED     2
2607 #define IRTIR_TASK_PENDING       3
2608 #define IRTIR_TASK_FINISHED      4
2609 
2610 /*****************************************************************************
2611  * IRunnableTask interface
2612  */
2613 #ifndef __IRunnableTask_INTERFACE_DEFINED__
2614 #define __IRunnableTask_INTERFACE_DEFINED__
2615 
2616 DEFINE_GUID(IID_IRunnableTask, 0x85788d00, 0x6807, 0x11d0, 0xb8,0x10, 0x00,0xc0,0x4f,0xd7,0x06,0xec);
2617 #if defined(__cplusplus) && !defined(CINTERFACE)
2618 MIDL_INTERFACE("85788d00-6807-11d0-b810-00c04fd706ec")
2619 IRunnableTask : public IUnknown
2620 {
2621     virtual HRESULT STDMETHODCALLTYPE Run(
2622         ) = 0;
2623 
2624     virtual HRESULT STDMETHODCALLTYPE Kill(
2625         WINBOOL bWait) = 0;
2626 
2627     virtual HRESULT STDMETHODCALLTYPE Suspend(
2628         ) = 0;
2629 
2630     virtual HRESULT STDMETHODCALLTYPE Resume(
2631         ) = 0;
2632 
2633     virtual ULONG STDMETHODCALLTYPE IsRunning(
2634         ) = 0;
2635 
2636 };
2637 #ifdef __CRT_UUID_DECL
2638 __CRT_UUID_DECL(IRunnableTask, 0x85788d00, 0x6807, 0x11d0, 0xb8,0x10, 0x00,0xc0,0x4f,0xd7,0x06,0xec)
2639 #endif
2640 #else
2641 typedef struct IRunnableTaskVtbl {
2642     BEGIN_INTERFACE
2643 
2644     /*** IUnknown methods ***/
2645     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2646         IRunnableTask* This,
2647         REFIID riid,
2648         void **ppvObject);
2649 
2650     ULONG (STDMETHODCALLTYPE *AddRef)(
2651         IRunnableTask* This);
2652 
2653     ULONG (STDMETHODCALLTYPE *Release)(
2654         IRunnableTask* This);
2655 
2656     /*** IRunnableTask methods ***/
2657     HRESULT (STDMETHODCALLTYPE *Run)(
2658         IRunnableTask* This);
2659 
2660     HRESULT (STDMETHODCALLTYPE *Kill)(
2661         IRunnableTask* This,
2662         WINBOOL bWait);
2663 
2664     HRESULT (STDMETHODCALLTYPE *Suspend)(
2665         IRunnableTask* This);
2666 
2667     HRESULT (STDMETHODCALLTYPE *Resume)(
2668         IRunnableTask* This);
2669 
2670     ULONG (STDMETHODCALLTYPE *IsRunning)(
2671         IRunnableTask* This);
2672 
2673     END_INTERFACE
2674 } IRunnableTaskVtbl;
2675 interface IRunnableTask {
2676     CONST_VTBL IRunnableTaskVtbl* lpVtbl;
2677 };
2678 
2679 #ifdef COBJMACROS
2680 #ifndef WIDL_C_INLINE_WRAPPERS
2681 /*** IUnknown methods ***/
2682 #define IRunnableTask_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2683 #define IRunnableTask_AddRef(This) (This)->lpVtbl->AddRef(This)
2684 #define IRunnableTask_Release(This) (This)->lpVtbl->Release(This)
2685 /*** IRunnableTask methods ***/
2686 #define IRunnableTask_Run(This) (This)->lpVtbl->Run(This)
2687 #define IRunnableTask_Kill(This,bWait) (This)->lpVtbl->Kill(This,bWait)
2688 #define IRunnableTask_Suspend(This) (This)->lpVtbl->Suspend(This)
2689 #define IRunnableTask_Resume(This) (This)->lpVtbl->Resume(This)
2690 #define IRunnableTask_IsRunning(This) (This)->lpVtbl->IsRunning(This)
2691 #else
2692 /*** IUnknown methods ***/
2693 static FORCEINLINE HRESULT IRunnableTask_QueryInterface(IRunnableTask* This,REFIID riid,void **ppvObject) {
2694     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2695 }
2696 static FORCEINLINE ULONG IRunnableTask_AddRef(IRunnableTask* This) {
2697     return This->lpVtbl->AddRef(This);
2698 }
2699 static FORCEINLINE ULONG IRunnableTask_Release(IRunnableTask* This) {
2700     return This->lpVtbl->Release(This);
2701 }
2702 /*** IRunnableTask methods ***/
2703 static FORCEINLINE HRESULT IRunnableTask_Run(IRunnableTask* This) {
2704     return This->lpVtbl->Run(This);
2705 }
2706 static FORCEINLINE HRESULT IRunnableTask_Kill(IRunnableTask* This,WINBOOL bWait) {
2707     return This->lpVtbl->Kill(This,bWait);
2708 }
2709 static FORCEINLINE HRESULT IRunnableTask_Suspend(IRunnableTask* This) {
2710     return This->lpVtbl->Suspend(This);
2711 }
2712 static FORCEINLINE HRESULT IRunnableTask_Resume(IRunnableTask* This) {
2713     return This->lpVtbl->Resume(This);
2714 }
2715 static FORCEINLINE ULONG IRunnableTask_IsRunning(IRunnableTask* This) {
2716     return This->lpVtbl->IsRunning(This);
2717 }
2718 #endif
2719 #endif
2720 
2721 #endif
2722 
2723 HRESULT STDMETHODCALLTYPE IRunnableTask_Run_Proxy(
2724     IRunnableTask* This);
2725 void __RPC_STUB IRunnableTask_Run_Stub(
2726     IRpcStubBuffer* This,
2727     IRpcChannelBuffer* pRpcChannelBuffer,
2728     PRPC_MESSAGE pRpcMessage,
2729     DWORD* pdwStubPhase);
2730 HRESULT STDMETHODCALLTYPE IRunnableTask_Kill_Proxy(
2731     IRunnableTask* This,
2732     WINBOOL bWait);
2733 void __RPC_STUB IRunnableTask_Kill_Stub(
2734     IRpcStubBuffer* This,
2735     IRpcChannelBuffer* pRpcChannelBuffer,
2736     PRPC_MESSAGE pRpcMessage,
2737     DWORD* pdwStubPhase);
2738 HRESULT STDMETHODCALLTYPE IRunnableTask_Suspend_Proxy(
2739     IRunnableTask* This);
2740 void __RPC_STUB IRunnableTask_Suspend_Stub(
2741     IRpcStubBuffer* This,
2742     IRpcChannelBuffer* pRpcChannelBuffer,
2743     PRPC_MESSAGE pRpcMessage,
2744     DWORD* pdwStubPhase);
2745 HRESULT STDMETHODCALLTYPE IRunnableTask_Resume_Proxy(
2746     IRunnableTask* This);
2747 void __RPC_STUB IRunnableTask_Resume_Stub(
2748     IRpcStubBuffer* This,
2749     IRpcChannelBuffer* pRpcChannelBuffer,
2750     PRPC_MESSAGE pRpcMessage,
2751     DWORD* pdwStubPhase);
2752 ULONG STDMETHODCALLTYPE IRunnableTask_IsRunning_Proxy(
2753     IRunnableTask* This);
2754 void __RPC_STUB IRunnableTask_IsRunning_Stub(
2755     IRpcStubBuffer* This,
2756     IRpcChannelBuffer* pRpcChannelBuffer,
2757     PRPC_MESSAGE pRpcMessage,
2758     DWORD* pdwStubPhase);
2759 
2760 #endif  /* __IRunnableTask_INTERFACE_DEFINED__ */
2761 
2762 
2763 #define TOID_NULL GUID_NULL
2764 #define ITSAT_DEFAULT_LPARAM ((DWORD_PTR)-1)
2765 
2766 #define ITSAT_DEFAULT_PRIORITY 0x10000000
2767 #define ITSAT_MAX_PRIORITY 0x7fffffff
2768 #define ITSAT_MIN_PRIORITY 0x00000000
2769 
2770 #define ITSSFLAG_COMPLETE_ON_DESTROY 0x0
2771 #define ITSSFLAG_KILL_ON_DESTROY 0x1
2772 
2773 #define ITSSFLAG_FLAGS_MASK 0x3
2774 
2775 #define ITSS_THREAD_DESTROY_DEFAULT_TIMEOUT (10 * 1000)
2776 #define ITSS_THREAD_TERMINATE_TIMEOUT (INFINITE)
2777 #define ITSS_THREAD_TIMEOUT_NO_CHANGE (INFINITE - 1)
2778 
2779 /*****************************************************************************
2780  * IShellTaskScheduler interface
2781  */
2782 #ifndef __IShellTaskScheduler_INTERFACE_DEFINED__
2783 #define __IShellTaskScheduler_INTERFACE_DEFINED__
2784 
2785 DEFINE_GUID(IID_IShellTaskScheduler, 0x6ccb7be0, 0x6807, 0x11d0, 0xb8,0x10, 0x00,0xc0,0x4f,0xd7,0x06,0xec);
2786 #if defined(__cplusplus) && !defined(CINTERFACE)
2787 MIDL_INTERFACE("6ccb7be0-6807-11d0-b810-00c04fd706ec")
2788 IShellTaskScheduler : public IUnknown
2789 {
2790     virtual HRESULT STDMETHODCALLTYPE AddTask(
2791         IRunnableTask *prt,
2792         REFTASKOWNERID rtoid,
2793         DWORD_PTR lParam,
2794         DWORD dwPriority) = 0;
2795 
2796     virtual HRESULT STDMETHODCALLTYPE RemoveTasks(
2797         REFTASKOWNERID rtoid,
2798         DWORD_PTR lParam,
2799         WINBOOL bWaitIfRunning) = 0;
2800 
2801     virtual UINT STDMETHODCALLTYPE CountTasks(
2802         REFTASKOWNERID rtoid) = 0;
2803 
2804     virtual HRESULT STDMETHODCALLTYPE Status(
2805         DWORD dwReleaseStatus,
2806         DWORD dwThreadTimeout) = 0;
2807 
2808 };
2809 #ifdef __CRT_UUID_DECL
2810 __CRT_UUID_DECL(IShellTaskScheduler, 0x6ccb7be0, 0x6807, 0x11d0, 0xb8,0x10, 0x00,0xc0,0x4f,0xd7,0x06,0xec)
2811 #endif
2812 #else
2813 typedef struct IShellTaskSchedulerVtbl {
2814     BEGIN_INTERFACE
2815 
2816     /*** IUnknown methods ***/
2817     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2818         IShellTaskScheduler* This,
2819         REFIID riid,
2820         void **ppvObject);
2821 
2822     ULONG (STDMETHODCALLTYPE *AddRef)(
2823         IShellTaskScheduler* This);
2824 
2825     ULONG (STDMETHODCALLTYPE *Release)(
2826         IShellTaskScheduler* This);
2827 
2828     /*** IShellTaskScheduler methods ***/
2829     HRESULT (STDMETHODCALLTYPE *AddTask)(
2830         IShellTaskScheduler* This,
2831         IRunnableTask *prt,
2832         REFTASKOWNERID rtoid,
2833         DWORD_PTR lParam,
2834         DWORD dwPriority);
2835 
2836     HRESULT (STDMETHODCALLTYPE *RemoveTasks)(
2837         IShellTaskScheduler* This,
2838         REFTASKOWNERID rtoid,
2839         DWORD_PTR lParam,
2840         WINBOOL bWaitIfRunning);
2841 
2842     UINT (STDMETHODCALLTYPE *CountTasks)(
2843         IShellTaskScheduler* This,
2844         REFTASKOWNERID rtoid);
2845 
2846     HRESULT (STDMETHODCALLTYPE *Status)(
2847         IShellTaskScheduler* This,
2848         DWORD dwReleaseStatus,
2849         DWORD dwThreadTimeout);
2850 
2851     END_INTERFACE
2852 } IShellTaskSchedulerVtbl;
2853 interface IShellTaskScheduler {
2854     CONST_VTBL IShellTaskSchedulerVtbl* lpVtbl;
2855 };
2856 
2857 #ifdef COBJMACROS
2858 #ifndef WIDL_C_INLINE_WRAPPERS
2859 /*** IUnknown methods ***/
2860 #define IShellTaskScheduler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2861 #define IShellTaskScheduler_AddRef(This) (This)->lpVtbl->AddRef(This)
2862 #define IShellTaskScheduler_Release(This) (This)->lpVtbl->Release(This)
2863 /*** IShellTaskScheduler methods ***/
2864 #define IShellTaskScheduler_AddTask(This,prt,rtoid,lParam,dwPriority) (This)->lpVtbl->AddTask(This,prt,rtoid,lParam,dwPriority)
2865 #define IShellTaskScheduler_RemoveTasks(This,rtoid,lParam,bWaitIfRunning) (This)->lpVtbl->RemoveTasks(This,rtoid,lParam,bWaitIfRunning)
2866 #define IShellTaskScheduler_CountTasks(This,rtoid) (This)->lpVtbl->CountTasks(This,rtoid)
2867 #define IShellTaskScheduler_Status(This,dwReleaseStatus,dwThreadTimeout) (This)->lpVtbl->Status(This,dwReleaseStatus,dwThreadTimeout)
2868 #else
2869 /*** IUnknown methods ***/
2870 static FORCEINLINE HRESULT IShellTaskScheduler_QueryInterface(IShellTaskScheduler* This,REFIID riid,void **ppvObject) {
2871     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2872 }
2873 static FORCEINLINE ULONG IShellTaskScheduler_AddRef(IShellTaskScheduler* This) {
2874     return This->lpVtbl->AddRef(This);
2875 }
2876 static FORCEINLINE ULONG IShellTaskScheduler_Release(IShellTaskScheduler* This) {
2877     return This->lpVtbl->Release(This);
2878 }
2879 /*** IShellTaskScheduler methods ***/
2880 static FORCEINLINE HRESULT IShellTaskScheduler_AddTask(IShellTaskScheduler* This,IRunnableTask *prt,REFTASKOWNERID rtoid,DWORD_PTR lParam,DWORD dwPriority) {
2881     return This->lpVtbl->AddTask(This,prt,rtoid,lParam,dwPriority);
2882 }
2883 static FORCEINLINE HRESULT IShellTaskScheduler_RemoveTasks(IShellTaskScheduler* This,REFTASKOWNERID rtoid,DWORD_PTR lParam,WINBOOL bWaitIfRunning) {
2884     return This->lpVtbl->RemoveTasks(This,rtoid,lParam,bWaitIfRunning);
2885 }
2886 static FORCEINLINE UINT IShellTaskScheduler_CountTasks(IShellTaskScheduler* This,REFTASKOWNERID rtoid) {
2887     return This->lpVtbl->CountTasks(This,rtoid);
2888 }
2889 static FORCEINLINE HRESULT IShellTaskScheduler_Status(IShellTaskScheduler* This,DWORD dwReleaseStatus,DWORD dwThreadTimeout) {
2890     return This->lpVtbl->Status(This,dwReleaseStatus,dwThreadTimeout);
2891 }
2892 #endif
2893 #endif
2894 
2895 #endif
2896 
2897 HRESULT STDMETHODCALLTYPE IShellTaskScheduler_AddTask_Proxy(
2898     IShellTaskScheduler* This,
2899     IRunnableTask *prt,
2900     REFTASKOWNERID rtoid,
2901     DWORD_PTR lParam,
2902     DWORD dwPriority);
2903 void __RPC_STUB IShellTaskScheduler_AddTask_Stub(
2904     IRpcStubBuffer* This,
2905     IRpcChannelBuffer* pRpcChannelBuffer,
2906     PRPC_MESSAGE pRpcMessage,
2907     DWORD* pdwStubPhase);
2908 HRESULT STDMETHODCALLTYPE IShellTaskScheduler_RemoveTasks_Proxy(
2909     IShellTaskScheduler* This,
2910     REFTASKOWNERID rtoid,
2911     DWORD_PTR lParam,
2912     WINBOOL bWaitIfRunning);
2913 void __RPC_STUB IShellTaskScheduler_RemoveTasks_Stub(
2914     IRpcStubBuffer* This,
2915     IRpcChannelBuffer* pRpcChannelBuffer,
2916     PRPC_MESSAGE pRpcMessage,
2917     DWORD* pdwStubPhase);
2918 UINT STDMETHODCALLTYPE IShellTaskScheduler_CountTasks_Proxy(
2919     IShellTaskScheduler* This,
2920     REFTASKOWNERID rtoid);
2921 void __RPC_STUB IShellTaskScheduler_CountTasks_Stub(
2922     IRpcStubBuffer* This,
2923     IRpcChannelBuffer* pRpcChannelBuffer,
2924     PRPC_MESSAGE pRpcMessage,
2925     DWORD* pdwStubPhase);
2926 HRESULT STDMETHODCALLTYPE IShellTaskScheduler_Status_Proxy(
2927     IShellTaskScheduler* This,
2928     DWORD dwReleaseStatus,
2929     DWORD dwThreadTimeout);
2930 void __RPC_STUB IShellTaskScheduler_Status_Stub(
2931     IRpcStubBuffer* This,
2932     IRpcChannelBuffer* pRpcChannelBuffer,
2933     PRPC_MESSAGE pRpcMessage,
2934     DWORD* pdwStubPhase);
2935 
2936 #endif  /* __IShellTaskScheduler_INTERFACE_DEFINED__ */
2937 
2938 
2939 #define SID_ShellTaskScheduler IID_IShellTaskScheduler
2940 
2941 /*****************************************************************************
2942  * IQueryCodePage interface
2943  */
2944 #ifndef __IQueryCodePage_INTERFACE_DEFINED__
2945 #define __IQueryCodePage_INTERFACE_DEFINED__
2946 
2947 DEFINE_GUID(IID_IQueryCodePage, 0xc7b236ce, 0xee80, 0x11d0, 0x98,0x5f, 0x00,0x60,0x08,0x05,0x93,0x82);
2948 #if defined(__cplusplus) && !defined(CINTERFACE)
2949 MIDL_INTERFACE("c7b236ce-ee80-11d0-985f-006008059382")
2950 IQueryCodePage : public IUnknown
2951 {
2952     virtual HRESULT STDMETHODCALLTYPE GetCodePage(
2953         UINT *puiCodePage) = 0;
2954 
2955     virtual HRESULT STDMETHODCALLTYPE SetCodePage(
2956         UINT uiCodePage) = 0;
2957 
2958 };
2959 #ifdef __CRT_UUID_DECL
2960 __CRT_UUID_DECL(IQueryCodePage, 0xc7b236ce, 0xee80, 0x11d0, 0x98,0x5f, 0x00,0x60,0x08,0x05,0x93,0x82)
2961 #endif
2962 #else
2963 typedef struct IQueryCodePageVtbl {
2964     BEGIN_INTERFACE
2965 
2966     /*** IUnknown methods ***/
2967     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2968         IQueryCodePage* This,
2969         REFIID riid,
2970         void **ppvObject);
2971 
2972     ULONG (STDMETHODCALLTYPE *AddRef)(
2973         IQueryCodePage* This);
2974 
2975     ULONG (STDMETHODCALLTYPE *Release)(
2976         IQueryCodePage* This);
2977 
2978     /*** IQueryCodePage methods ***/
2979     HRESULT (STDMETHODCALLTYPE *GetCodePage)(
2980         IQueryCodePage* This,
2981         UINT *puiCodePage);
2982 
2983     HRESULT (STDMETHODCALLTYPE *SetCodePage)(
2984         IQueryCodePage* This,
2985         UINT uiCodePage);
2986 
2987     END_INTERFACE
2988 } IQueryCodePageVtbl;
2989 interface IQueryCodePage {
2990     CONST_VTBL IQueryCodePageVtbl* lpVtbl;
2991 };
2992 
2993 #ifdef COBJMACROS
2994 #ifndef WIDL_C_INLINE_WRAPPERS
2995 /*** IUnknown methods ***/
2996 #define IQueryCodePage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2997 #define IQueryCodePage_AddRef(This) (This)->lpVtbl->AddRef(This)
2998 #define IQueryCodePage_Release(This) (This)->lpVtbl->Release(This)
2999 /*** IQueryCodePage methods ***/
3000 #define IQueryCodePage_GetCodePage(This,puiCodePage) (This)->lpVtbl->GetCodePage(This,puiCodePage)
3001 #define IQueryCodePage_SetCodePage(This,uiCodePage) (This)->lpVtbl->SetCodePage(This,uiCodePage)
3002 #else
3003 /*** IUnknown methods ***/
3004 static FORCEINLINE HRESULT IQueryCodePage_QueryInterface(IQueryCodePage* This,REFIID riid,void **ppvObject) {
3005     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3006 }
3007 static FORCEINLINE ULONG IQueryCodePage_AddRef(IQueryCodePage* This) {
3008     return This->lpVtbl->AddRef(This);
3009 }
3010 static FORCEINLINE ULONG IQueryCodePage_Release(IQueryCodePage* This) {
3011     return This->lpVtbl->Release(This);
3012 }
3013 /*** IQueryCodePage methods ***/
3014 static FORCEINLINE HRESULT IQueryCodePage_GetCodePage(IQueryCodePage* This,UINT *puiCodePage) {
3015     return This->lpVtbl->GetCodePage(This,puiCodePage);
3016 }
3017 static FORCEINLINE HRESULT IQueryCodePage_SetCodePage(IQueryCodePage* This,UINT uiCodePage) {
3018     return This->lpVtbl->SetCodePage(This,uiCodePage);
3019 }
3020 #endif
3021 #endif
3022 
3023 #endif
3024 
3025 HRESULT STDMETHODCALLTYPE IQueryCodePage_GetCodePage_Proxy(
3026     IQueryCodePage* This,
3027     UINT *puiCodePage);
3028 void __RPC_STUB IQueryCodePage_GetCodePage_Stub(
3029     IRpcStubBuffer* This,
3030     IRpcChannelBuffer* pRpcChannelBuffer,
3031     PRPC_MESSAGE pRpcMessage,
3032     DWORD* pdwStubPhase);
3033 HRESULT STDMETHODCALLTYPE IQueryCodePage_SetCodePage_Proxy(
3034     IQueryCodePage* This,
3035     UINT uiCodePage);
3036 void __RPC_STUB IQueryCodePage_SetCodePage_Stub(
3037     IRpcStubBuffer* This,
3038     IRpcChannelBuffer* pRpcChannelBuffer,
3039     PRPC_MESSAGE pRpcMessage,
3040     DWORD* pdwStubPhase);
3041 
3042 #endif  /* __IQueryCodePage_INTERFACE_DEFINED__ */
3043 
3044 
3045 /*****************************************************************************
3046  * IPersistFolder2 interface
3047  */
3048 #ifndef __IPersistFolder2_INTERFACE_DEFINED__
3049 #define __IPersistFolder2_INTERFACE_DEFINED__
3050 
3051 DEFINE_GUID(IID_IPersistFolder2, 0x1ac3d9f0, 0x175c, 0x11d1, 0x95,0xbe, 0x00,0x60,0x97,0x97,0xea,0x4f);
3052 #if defined(__cplusplus) && !defined(CINTERFACE)
3053 MIDL_INTERFACE("1ac3d9f0-175c-11d1-95be-00609797ea4f")
3054 IPersistFolder2 : public IPersistFolder
3055 {
3056     virtual HRESULT STDMETHODCALLTYPE GetCurFolder(
3057         PIDLIST_ABSOLUTE *ppidl) = 0;
3058 
3059 };
3060 #ifdef __CRT_UUID_DECL
3061 __CRT_UUID_DECL(IPersistFolder2, 0x1ac3d9f0, 0x175c, 0x11d1, 0x95,0xbe, 0x00,0x60,0x97,0x97,0xea,0x4f)
3062 #endif
3063 #else
3064 typedef struct IPersistFolder2Vtbl {
3065     BEGIN_INTERFACE
3066 
3067     /*** IUnknown methods ***/
3068     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3069         IPersistFolder2* This,
3070         REFIID riid,
3071         void **ppvObject);
3072 
3073     ULONG (STDMETHODCALLTYPE *AddRef)(
3074         IPersistFolder2* This);
3075 
3076     ULONG (STDMETHODCALLTYPE *Release)(
3077         IPersistFolder2* This);
3078 
3079     /*** IPersist methods ***/
3080     HRESULT (STDMETHODCALLTYPE *GetClassID)(
3081         IPersistFolder2* This,
3082         CLSID *pClassID);
3083 
3084     /*** IPersistFolder methods ***/
3085     HRESULT (STDMETHODCALLTYPE *Initialize)(
3086         IPersistFolder2* This,
3087         PCIDLIST_ABSOLUTE pidl);
3088 
3089     /*** IPersistFolder2 methods ***/
3090     HRESULT (STDMETHODCALLTYPE *GetCurFolder)(
3091         IPersistFolder2* This,
3092         PIDLIST_ABSOLUTE *ppidl);
3093 
3094     END_INTERFACE
3095 } IPersistFolder2Vtbl;
3096 interface IPersistFolder2 {
3097     CONST_VTBL IPersistFolder2Vtbl* lpVtbl;
3098 };
3099 
3100 #ifdef COBJMACROS
3101 #ifndef WIDL_C_INLINE_WRAPPERS
3102 /*** IUnknown methods ***/
3103 #define IPersistFolder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3104 #define IPersistFolder2_AddRef(This) (This)->lpVtbl->AddRef(This)
3105 #define IPersistFolder2_Release(This) (This)->lpVtbl->Release(This)
3106 /*** IPersist methods ***/
3107 #define IPersistFolder2_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
3108 /*** IPersistFolder methods ***/
3109 #define IPersistFolder2_Initialize(This,pidl) (This)->lpVtbl->Initialize(This,pidl)
3110 /*** IPersistFolder2 methods ***/
3111 #define IPersistFolder2_GetCurFolder(This,ppidl) (This)->lpVtbl->GetCurFolder(This,ppidl)
3112 #else
3113 /*** IUnknown methods ***/
3114 static FORCEINLINE HRESULT IPersistFolder2_QueryInterface(IPersistFolder2* This,REFIID riid,void **ppvObject) {
3115     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3116 }
3117 static FORCEINLINE ULONG IPersistFolder2_AddRef(IPersistFolder2* This) {
3118     return This->lpVtbl->AddRef(This);
3119 }
3120 static FORCEINLINE ULONG IPersistFolder2_Release(IPersistFolder2* This) {
3121     return This->lpVtbl->Release(This);
3122 }
3123 /*** IPersist methods ***/
3124 static FORCEINLINE HRESULT IPersistFolder2_GetClassID(IPersistFolder2* This,CLSID *pClassID) {
3125     return This->lpVtbl->GetClassID(This,pClassID);
3126 }
3127 /*** IPersistFolder methods ***/
3128 static FORCEINLINE HRESULT IPersistFolder2_Initialize(IPersistFolder2* This,PCIDLIST_ABSOLUTE pidl) {
3129     return This->lpVtbl->Initialize(This,pidl);
3130 }
3131 /*** IPersistFolder2 methods ***/
3132 static FORCEINLINE HRESULT IPersistFolder2_GetCurFolder(IPersistFolder2* This,PIDLIST_ABSOLUTE *ppidl) {
3133     return This->lpVtbl->GetCurFolder(This,ppidl);
3134 }
3135 #endif
3136 #endif
3137 
3138 #endif
3139 
3140 HRESULT STDMETHODCALLTYPE IPersistFolder2_GetCurFolder_Proxy(
3141     IPersistFolder2* This,
3142     PIDLIST_ABSOLUTE *ppidl);
3143 void __RPC_STUB IPersistFolder2_GetCurFolder_Stub(
3144     IRpcStubBuffer* This,
3145     IRpcChannelBuffer* pRpcChannelBuffer,
3146     PRPC_MESSAGE pRpcMessage,
3147     DWORD* pdwStubPhase);
3148 
3149 #endif  /* __IPersistFolder2_INTERFACE_DEFINED__ */
3150 
3151 
3152 #define CSIDL_FLAG_PFTI_TRACKTARGET CSIDL_FLAG_DONT_VERIFY
3153 
3154 #include <pshpack8.h>
3155 typedef struct _PERSIST_FOLDER_TARGET_INFO {
3156     PIDLIST_ABSOLUTE pidlTargetFolder;
3157     WCHAR szTargetParsingName[260];
3158     WCHAR szNetworkProvider[260];
3159     DWORD dwAttributes;
3160     int csidl;
3161 } PERSIST_FOLDER_TARGET_INFO;
3162 #include <poppack.h>
3163 
3164 /*****************************************************************************
3165  * IPersistFolder3 interface
3166  */
3167 #ifndef __IPersistFolder3_INTERFACE_DEFINED__
3168 #define __IPersistFolder3_INTERFACE_DEFINED__
3169 
3170 DEFINE_GUID(IID_IPersistFolder3, 0xcef04fdf, 0xfe72, 0x11d2, 0x87,0xa5, 0x00,0xc0,0x4f,0x68,0x37,0xcf);
3171 #if defined(__cplusplus) && !defined(CINTERFACE)
3172 MIDL_INTERFACE("cef04fdf-fe72-11d2-87a5-00c04f6837cf")
3173 IPersistFolder3 : public IPersistFolder2
3174 {
3175     virtual HRESULT STDMETHODCALLTYPE InitializeEx(
3176         IBindCtx *pbc,
3177         PCIDLIST_ABSOLUTE pidlRoot,
3178         const PERSIST_FOLDER_TARGET_INFO *ppfti) = 0;
3179 
3180     virtual HRESULT STDMETHODCALLTYPE GetFolderTargetInfo(
3181         PERSIST_FOLDER_TARGET_INFO *ppfti) = 0;
3182 
3183 };
3184 #ifdef __CRT_UUID_DECL
3185 __CRT_UUID_DECL(IPersistFolder3, 0xcef04fdf, 0xfe72, 0x11d2, 0x87,0xa5, 0x00,0xc0,0x4f,0x68,0x37,0xcf)
3186 #endif
3187 #else
3188 typedef struct IPersistFolder3Vtbl {
3189     BEGIN_INTERFACE
3190 
3191     /*** IUnknown methods ***/
3192     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3193         IPersistFolder3* This,
3194         REFIID riid,
3195         void **ppvObject);
3196 
3197     ULONG (STDMETHODCALLTYPE *AddRef)(
3198         IPersistFolder3* This);
3199 
3200     ULONG (STDMETHODCALLTYPE *Release)(
3201         IPersistFolder3* This);
3202 
3203     /*** IPersist methods ***/
3204     HRESULT (STDMETHODCALLTYPE *GetClassID)(
3205         IPersistFolder3* This,
3206         CLSID *pClassID);
3207 
3208     /*** IPersistFolder methods ***/
3209     HRESULT (STDMETHODCALLTYPE *Initialize)(
3210         IPersistFolder3* This,
3211         PCIDLIST_ABSOLUTE pidl);
3212 
3213     /*** IPersistFolder2 methods ***/
3214     HRESULT (STDMETHODCALLTYPE *GetCurFolder)(
3215         IPersistFolder3* This,
3216         PIDLIST_ABSOLUTE *ppidl);
3217 
3218     /*** IPersistFolder3 methods ***/
3219     HRESULT (STDMETHODCALLTYPE *InitializeEx)(
3220         IPersistFolder3* This,
3221         IBindCtx *pbc,
3222         PCIDLIST_ABSOLUTE pidlRoot,
3223         const PERSIST_FOLDER_TARGET_INFO *ppfti);
3224 
3225     HRESULT (STDMETHODCALLTYPE *GetFolderTargetInfo)(
3226         IPersistFolder3* This,
3227         PERSIST_FOLDER_TARGET_INFO *ppfti);
3228 
3229     END_INTERFACE
3230 } IPersistFolder3Vtbl;
3231 interface IPersistFolder3 {
3232     CONST_VTBL IPersistFolder3Vtbl* lpVtbl;
3233 };
3234 
3235 #ifdef COBJMACROS
3236 #ifndef WIDL_C_INLINE_WRAPPERS
3237 /*** IUnknown methods ***/
3238 #define IPersistFolder3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3239 #define IPersistFolder3_AddRef(This) (This)->lpVtbl->AddRef(This)
3240 #define IPersistFolder3_Release(This) (This)->lpVtbl->Release(This)
3241 /*** IPersist methods ***/
3242 #define IPersistFolder3_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
3243 /*** IPersistFolder methods ***/
3244 #define IPersistFolder3_Initialize(This,pidl) (This)->lpVtbl->Initialize(This,pidl)
3245 /*** IPersistFolder2 methods ***/
3246 #define IPersistFolder3_GetCurFolder(This,ppidl) (This)->lpVtbl->GetCurFolder(This,ppidl)
3247 /*** IPersistFolder3 methods ***/
3248 #define IPersistFolder3_InitializeEx(This,pbc,pidlRoot,ppfti) (This)->lpVtbl->InitializeEx(This,pbc,pidlRoot,ppfti)
3249 #define IPersistFolder3_GetFolderTargetInfo(This,ppfti) (This)->lpVtbl->GetFolderTargetInfo(This,ppfti)
3250 #else
3251 /*** IUnknown methods ***/
3252 static FORCEINLINE HRESULT IPersistFolder3_QueryInterface(IPersistFolder3* This,REFIID riid,void **ppvObject) {
3253     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3254 }
3255 static FORCEINLINE ULONG IPersistFolder3_AddRef(IPersistFolder3* This) {
3256     return This->lpVtbl->AddRef(This);
3257 }
3258 static FORCEINLINE ULONG IPersistFolder3_Release(IPersistFolder3* This) {
3259     return This->lpVtbl->Release(This);
3260 }
3261 /*** IPersist methods ***/
3262 static FORCEINLINE HRESULT IPersistFolder3_GetClassID(IPersistFolder3* This,CLSID *pClassID) {
3263     return This->lpVtbl->GetClassID(This,pClassID);
3264 }
3265 /*** IPersistFolder methods ***/
3266 static FORCEINLINE HRESULT IPersistFolder3_Initialize(IPersistFolder3* This,PCIDLIST_ABSOLUTE pidl) {
3267     return This->lpVtbl->Initialize(This,pidl);
3268 }
3269 /*** IPersistFolder2 methods ***/
3270 static FORCEINLINE HRESULT IPersistFolder3_GetCurFolder(IPersistFolder3* This,PIDLIST_ABSOLUTE *ppidl) {
3271     return This->lpVtbl->GetCurFolder(This,ppidl);
3272 }
3273 /*** IPersistFolder3 methods ***/
3274 static FORCEINLINE HRESULT IPersistFolder3_InitializeEx(IPersistFolder3* This,IBindCtx *pbc,PCIDLIST_ABSOLUTE pidlRoot,const PERSIST_FOLDER_TARGET_INFO *ppfti) {
3275     return This->lpVtbl->InitializeEx(This,pbc,pidlRoot,ppfti);
3276 }
3277 static FORCEINLINE HRESULT IPersistFolder3_GetFolderTargetInfo(IPersistFolder3* This,PERSIST_FOLDER_TARGET_INFO *ppfti) {
3278     return This->lpVtbl->GetFolderTargetInfo(This,ppfti);
3279 }
3280 #endif
3281 #endif
3282 
3283 #endif
3284 
3285 HRESULT STDMETHODCALLTYPE IPersistFolder3_InitializeEx_Proxy(
3286     IPersistFolder3* This,
3287     IBindCtx *pbc,
3288     PCIDLIST_ABSOLUTE pidlRoot,
3289     const PERSIST_FOLDER_TARGET_INFO *ppfti);
3290 void __RPC_STUB IPersistFolder3_InitializeEx_Stub(
3291     IRpcStubBuffer* This,
3292     IRpcChannelBuffer* pRpcChannelBuffer,
3293     PRPC_MESSAGE pRpcMessage,
3294     DWORD* pdwStubPhase);
3295 HRESULT STDMETHODCALLTYPE IPersistFolder3_GetFolderTargetInfo_Proxy(
3296     IPersistFolder3* This,
3297     PERSIST_FOLDER_TARGET_INFO *ppfti);
3298 void __RPC_STUB IPersistFolder3_GetFolderTargetInfo_Stub(
3299     IRpcStubBuffer* This,
3300     IRpcChannelBuffer* pRpcChannelBuffer,
3301     PRPC_MESSAGE pRpcMessage,
3302     DWORD* pdwStubPhase);
3303 
3304 #endif  /* __IPersistFolder3_INTERFACE_DEFINED__ */
3305 
3306 
3307 /*****************************************************************************
3308  * IPersistIDList interface
3309  */
3310 #ifndef __IPersistIDList_INTERFACE_DEFINED__
3311 #define __IPersistIDList_INTERFACE_DEFINED__
3312 
3313 DEFINE_GUID(IID_IPersistIDList, 0x1079acfc, 0x29bd, 0x11d3, 0x8e,0x0d, 0x00,0xc0,0x4f,0x68,0x37,0xd5);
3314 #if defined(__cplusplus) && !defined(CINTERFACE)
3315 MIDL_INTERFACE("1079acfc-29bd-11d3-8e0d-00c04f6837d5")
3316 IPersistIDList : public IPersist
3317 {
3318     virtual HRESULT STDMETHODCALLTYPE SetIDList(
3319         PCIDLIST_ABSOLUTE pidl) = 0;
3320 
3321     virtual HRESULT STDMETHODCALLTYPE GetIDList(
3322         PIDLIST_ABSOLUTE *ppidl) = 0;
3323 
3324 };
3325 #ifdef __CRT_UUID_DECL
3326 __CRT_UUID_DECL(IPersistIDList, 0x1079acfc, 0x29bd, 0x11d3, 0x8e,0x0d, 0x00,0xc0,0x4f,0x68,0x37,0xd5)
3327 #endif
3328 #else
3329 typedef struct IPersistIDListVtbl {
3330     BEGIN_INTERFACE
3331 
3332     /*** IUnknown methods ***/
3333     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3334         IPersistIDList* This,
3335         REFIID riid,
3336         void **ppvObject);
3337 
3338     ULONG (STDMETHODCALLTYPE *AddRef)(
3339         IPersistIDList* This);
3340 
3341     ULONG (STDMETHODCALLTYPE *Release)(
3342         IPersistIDList* This);
3343 
3344     /*** IPersist methods ***/
3345     HRESULT (STDMETHODCALLTYPE *GetClassID)(
3346         IPersistIDList* This,
3347         CLSID *pClassID);
3348 
3349     /*** IPersistIDList methods ***/
3350     HRESULT (STDMETHODCALLTYPE *SetIDList)(
3351         IPersistIDList* This,
3352         PCIDLIST_ABSOLUTE pidl);
3353 
3354     HRESULT (STDMETHODCALLTYPE *GetIDList)(
3355         IPersistIDList* This,
3356         PIDLIST_ABSOLUTE *ppidl);
3357 
3358     END_INTERFACE
3359 } IPersistIDListVtbl;
3360 interface IPersistIDList {
3361     CONST_VTBL IPersistIDListVtbl* lpVtbl;
3362 };
3363 
3364 #ifdef COBJMACROS
3365 #ifndef WIDL_C_INLINE_WRAPPERS
3366 /*** IUnknown methods ***/
3367 #define IPersistIDList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3368 #define IPersistIDList_AddRef(This) (This)->lpVtbl->AddRef(This)
3369 #define IPersistIDList_Release(This) (This)->lpVtbl->Release(This)
3370 /*** IPersist methods ***/
3371 #define IPersistIDList_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
3372 /*** IPersistIDList methods ***/
3373 #define IPersistIDList_SetIDList(This,pidl) (This)->lpVtbl->SetIDList(This,pidl)
3374 #define IPersistIDList_GetIDList(This,ppidl) (This)->lpVtbl->GetIDList(This,ppidl)
3375 #else
3376 /*** IUnknown methods ***/
3377 static FORCEINLINE HRESULT IPersistIDList_QueryInterface(IPersistIDList* This,REFIID riid,void **ppvObject) {
3378     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3379 }
3380 static FORCEINLINE ULONG IPersistIDList_AddRef(IPersistIDList* This) {
3381     return This->lpVtbl->AddRef(This);
3382 }
3383 static FORCEINLINE ULONG IPersistIDList_Release(IPersistIDList* This) {
3384     return This->lpVtbl->Release(This);
3385 }
3386 /*** IPersist methods ***/
3387 static FORCEINLINE HRESULT IPersistIDList_GetClassID(IPersistIDList* This,CLSID *pClassID) {
3388     return This->lpVtbl->GetClassID(This,pClassID);
3389 }
3390 /*** IPersistIDList methods ***/
3391 static FORCEINLINE HRESULT IPersistIDList_SetIDList(IPersistIDList* This,PCIDLIST_ABSOLUTE pidl) {
3392     return This->lpVtbl->SetIDList(This,pidl);
3393 }
3394 static FORCEINLINE HRESULT IPersistIDList_GetIDList(IPersistIDList* This,PIDLIST_ABSOLUTE *ppidl) {
3395     return This->lpVtbl->GetIDList(This,ppidl);
3396 }
3397 #endif
3398 #endif
3399 
3400 #endif
3401 
3402 HRESULT STDMETHODCALLTYPE IPersistIDList_SetIDList_Proxy(
3403     IPersistIDList* This,
3404     PCIDLIST_ABSOLUTE pidl);
3405 void __RPC_STUB IPersistIDList_SetIDList_Stub(
3406     IRpcStubBuffer* This,
3407     IRpcChannelBuffer* pRpcChannelBuffer,
3408     PRPC_MESSAGE pRpcMessage,
3409     DWORD* pdwStubPhase);
3410 HRESULT STDMETHODCALLTYPE IPersistIDList_GetIDList_Proxy(
3411     IPersistIDList* This,
3412     PIDLIST_ABSOLUTE *ppidl);
3413 void __RPC_STUB IPersistIDList_GetIDList_Stub(
3414     IRpcStubBuffer* This,
3415     IRpcChannelBuffer* pRpcChannelBuffer,
3416     PRPC_MESSAGE pRpcMessage,
3417     DWORD* pdwStubPhase);
3418 
3419 #endif  /* __IPersistIDList_INTERFACE_DEFINED__ */
3420 
3421 
3422 /*****************************************************************************
3423  * IEnumIDList interface
3424  */
3425 #ifndef __IEnumIDList_INTERFACE_DEFINED__
3426 #define __IEnumIDList_INTERFACE_DEFINED__
3427 
3428 DEFINE_GUID(IID_IEnumIDList, 0x000214f2, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3429 #if defined(__cplusplus) && !defined(CINTERFACE)
3430 MIDL_INTERFACE("000214f2-0000-0000-c000-000000000046")
3431 IEnumIDList : public IUnknown
3432 {
3433     virtual HRESULT STDMETHODCALLTYPE Next(
3434         ULONG celt,
3435         PITEMID_CHILD *rgelt,
3436         ULONG *pceltFetched) = 0;
3437 
3438     virtual HRESULT STDMETHODCALLTYPE Skip(
3439         ULONG celt) = 0;
3440 
3441     virtual HRESULT STDMETHODCALLTYPE Reset(
3442         ) = 0;
3443 
3444     virtual HRESULT STDMETHODCALLTYPE Clone(
3445         IEnumIDList **ppenum) = 0;
3446 
3447 };
3448 #ifdef __CRT_UUID_DECL
3449 __CRT_UUID_DECL(IEnumIDList, 0x000214f2, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
3450 #endif
3451 #else
3452 typedef struct IEnumIDListVtbl {
3453     BEGIN_INTERFACE
3454 
3455     /*** IUnknown methods ***/
3456     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3457         IEnumIDList* This,
3458         REFIID riid,
3459         void **ppvObject);
3460 
3461     ULONG (STDMETHODCALLTYPE *AddRef)(
3462         IEnumIDList* This);
3463 
3464     ULONG (STDMETHODCALLTYPE *Release)(
3465         IEnumIDList* This);
3466 
3467     /*** IEnumIDList methods ***/
3468     HRESULT (STDMETHODCALLTYPE *Next)(
3469         IEnumIDList* This,
3470         ULONG celt,
3471         PITEMID_CHILD *rgelt,
3472         ULONG *pceltFetched);
3473 
3474     HRESULT (STDMETHODCALLTYPE *Skip)(
3475         IEnumIDList* This,
3476         ULONG celt);
3477 
3478     HRESULT (STDMETHODCALLTYPE *Reset)(
3479         IEnumIDList* This);
3480 
3481     HRESULT (STDMETHODCALLTYPE *Clone)(
3482         IEnumIDList* This,
3483         IEnumIDList **ppenum);
3484 
3485     END_INTERFACE
3486 } IEnumIDListVtbl;
3487 interface IEnumIDList {
3488     CONST_VTBL IEnumIDListVtbl* lpVtbl;
3489 };
3490 
3491 #ifdef COBJMACROS
3492 #ifndef WIDL_C_INLINE_WRAPPERS
3493 /*** IUnknown methods ***/
3494 #define IEnumIDList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3495 #define IEnumIDList_AddRef(This) (This)->lpVtbl->AddRef(This)
3496 #define IEnumIDList_Release(This) (This)->lpVtbl->Release(This)
3497 /*** IEnumIDList methods ***/
3498 #define IEnumIDList_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
3499 #define IEnumIDList_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
3500 #define IEnumIDList_Reset(This) (This)->lpVtbl->Reset(This)
3501 #define IEnumIDList_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
3502 #else
3503 /*** IUnknown methods ***/
3504 static FORCEINLINE HRESULT IEnumIDList_QueryInterface(IEnumIDList* This,REFIID riid,void **ppvObject) {
3505     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3506 }
3507 static FORCEINLINE ULONG IEnumIDList_AddRef(IEnumIDList* This) {
3508     return This->lpVtbl->AddRef(This);
3509 }
3510 static FORCEINLINE ULONG IEnumIDList_Release(IEnumIDList* This) {
3511     return This->lpVtbl->Release(This);
3512 }
3513 /*** IEnumIDList methods ***/
3514 static FORCEINLINE HRESULT IEnumIDList_Next(IEnumIDList* This,ULONG celt,PITEMID_CHILD *rgelt,ULONG *pceltFetched) {
3515     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
3516 }
3517 static FORCEINLINE HRESULT IEnumIDList_Skip(IEnumIDList* This,ULONG celt) {
3518     return This->lpVtbl->Skip(This,celt);
3519 }
3520 static FORCEINLINE HRESULT IEnumIDList_Reset(IEnumIDList* This) {
3521     return This->lpVtbl->Reset(This);
3522 }
3523 static FORCEINLINE HRESULT IEnumIDList_Clone(IEnumIDList* This,IEnumIDList **ppenum) {
3524     return This->lpVtbl->Clone(This,ppenum);
3525 }
3526 #endif
3527 #endif
3528 
3529 #endif
3530 
3531 HRESULT STDMETHODCALLTYPE IEnumIDList_RemoteNext_Proxy(
3532     IEnumIDList* This,
3533     ULONG celt,
3534     PITEMID_CHILD *rgelt,
3535     ULONG *pceltFetched);
3536 void __RPC_STUB IEnumIDList_RemoteNext_Stub(
3537     IRpcStubBuffer* This,
3538     IRpcChannelBuffer* pRpcChannelBuffer,
3539     PRPC_MESSAGE pRpcMessage,
3540     DWORD* pdwStubPhase);
3541 HRESULT STDMETHODCALLTYPE IEnumIDList_Skip_Proxy(
3542     IEnumIDList* This,
3543     ULONG celt);
3544 void __RPC_STUB IEnumIDList_Skip_Stub(
3545     IRpcStubBuffer* This,
3546     IRpcChannelBuffer* pRpcChannelBuffer,
3547     PRPC_MESSAGE pRpcMessage,
3548     DWORD* pdwStubPhase);
3549 HRESULT STDMETHODCALLTYPE IEnumIDList_Reset_Proxy(
3550     IEnumIDList* This);
3551 void __RPC_STUB IEnumIDList_Reset_Stub(
3552     IRpcStubBuffer* This,
3553     IRpcChannelBuffer* pRpcChannelBuffer,
3554     PRPC_MESSAGE pRpcMessage,
3555     DWORD* pdwStubPhase);
3556 HRESULT STDMETHODCALLTYPE IEnumIDList_Clone_Proxy(
3557     IEnumIDList* This,
3558     IEnumIDList **ppenum);
3559 void __RPC_STUB IEnumIDList_Clone_Stub(
3560     IRpcStubBuffer* This,
3561     IRpcChannelBuffer* pRpcChannelBuffer,
3562     PRPC_MESSAGE pRpcMessage,
3563     DWORD* pdwStubPhase);
3564 HRESULT CALLBACK IEnumIDList_Next_Proxy(
3565     IEnumIDList* This,
3566     ULONG celt,
3567     PITEMID_CHILD *rgelt,
3568     ULONG *pceltFetched);
3569 HRESULT __RPC_STUB IEnumIDList_Next_Stub(
3570     IEnumIDList* This,
3571     ULONG celt,
3572     PITEMID_CHILD *rgelt,
3573     ULONG *pceltFetched);
3574 
3575 #endif  /* __IEnumIDList_INTERFACE_DEFINED__ */
3576 
3577 typedef IEnumIDList *LPENUMIDLIST;
3578 
3579 /*****************************************************************************
3580  * IEnumFullIDList interface
3581  */
3582 #ifndef __IEnumFullIDList_INTERFACE_DEFINED__
3583 #define __IEnumFullIDList_INTERFACE_DEFINED__
3584 
3585 DEFINE_GUID(IID_IEnumFullIDList, 0xd0191542, 0x7954, 0x4908, 0xbc,0x06, 0xb2,0x36,0x0b,0xbe,0x45,0xba);
3586 #if defined(__cplusplus) && !defined(CINTERFACE)
3587 MIDL_INTERFACE("d0191542-7954-4908-bc06-b2360bbe45ba")
3588 IEnumFullIDList : public IUnknown
3589 {
3590     virtual HRESULT STDMETHODCALLTYPE Next(
3591         ULONG celt,
3592         PIDLIST_ABSOLUTE *rgelt,
3593         ULONG *pceltFetched) = 0;
3594 
3595     virtual HRESULT STDMETHODCALLTYPE Skip(
3596         ULONG celt) = 0;
3597 
3598     virtual HRESULT STDMETHODCALLTYPE Reset(
3599         ) = 0;
3600 
3601     virtual HRESULT STDMETHODCALLTYPE Clone(
3602         IEnumFullIDList **ppenum) = 0;
3603 
3604 };
3605 #ifdef __CRT_UUID_DECL
3606 __CRT_UUID_DECL(IEnumFullIDList, 0xd0191542, 0x7954, 0x4908, 0xbc,0x06, 0xb2,0x36,0x0b,0xbe,0x45,0xba)
3607 #endif
3608 #else
3609 typedef struct IEnumFullIDListVtbl {
3610     BEGIN_INTERFACE
3611 
3612     /*** IUnknown methods ***/
3613     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3614         IEnumFullIDList* This,
3615         REFIID riid,
3616         void **ppvObject);
3617 
3618     ULONG (STDMETHODCALLTYPE *AddRef)(
3619         IEnumFullIDList* This);
3620 
3621     ULONG (STDMETHODCALLTYPE *Release)(
3622         IEnumFullIDList* This);
3623 
3624     /*** IEnumFullIDList methods ***/
3625     HRESULT (STDMETHODCALLTYPE *Next)(
3626         IEnumFullIDList* This,
3627         ULONG celt,
3628         PIDLIST_ABSOLUTE *rgelt,
3629         ULONG *pceltFetched);
3630 
3631     HRESULT (STDMETHODCALLTYPE *Skip)(
3632         IEnumFullIDList* This,
3633         ULONG celt);
3634 
3635     HRESULT (STDMETHODCALLTYPE *Reset)(
3636         IEnumFullIDList* This);
3637 
3638     HRESULT (STDMETHODCALLTYPE *Clone)(
3639         IEnumFullIDList* This,
3640         IEnumFullIDList **ppenum);
3641 
3642     END_INTERFACE
3643 } IEnumFullIDListVtbl;
3644 interface IEnumFullIDList {
3645     CONST_VTBL IEnumFullIDListVtbl* lpVtbl;
3646 };
3647 
3648 #ifdef COBJMACROS
3649 #ifndef WIDL_C_INLINE_WRAPPERS
3650 /*** IUnknown methods ***/
3651 #define IEnumFullIDList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3652 #define IEnumFullIDList_AddRef(This) (This)->lpVtbl->AddRef(This)
3653 #define IEnumFullIDList_Release(This) (This)->lpVtbl->Release(This)
3654 /*** IEnumFullIDList methods ***/
3655 #define IEnumFullIDList_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
3656 #define IEnumFullIDList_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
3657 #define IEnumFullIDList_Reset(This) (This)->lpVtbl->Reset(This)
3658 #define IEnumFullIDList_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
3659 #else
3660 /*** IUnknown methods ***/
3661 static FORCEINLINE HRESULT IEnumFullIDList_QueryInterface(IEnumFullIDList* This,REFIID riid,void **ppvObject) {
3662     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3663 }
3664 static FORCEINLINE ULONG IEnumFullIDList_AddRef(IEnumFullIDList* This) {
3665     return This->lpVtbl->AddRef(This);
3666 }
3667 static FORCEINLINE ULONG IEnumFullIDList_Release(IEnumFullIDList* This) {
3668     return This->lpVtbl->Release(This);
3669 }
3670 /*** IEnumFullIDList methods ***/
3671 static FORCEINLINE HRESULT IEnumFullIDList_Next(IEnumFullIDList* This,ULONG celt,PIDLIST_ABSOLUTE *rgelt,ULONG *pceltFetched) {
3672     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
3673 }
3674 static FORCEINLINE HRESULT IEnumFullIDList_Skip(IEnumFullIDList* This,ULONG celt) {
3675     return This->lpVtbl->Skip(This,celt);
3676 }
3677 static FORCEINLINE HRESULT IEnumFullIDList_Reset(IEnumFullIDList* This) {
3678     return This->lpVtbl->Reset(This);
3679 }
3680 static FORCEINLINE HRESULT IEnumFullIDList_Clone(IEnumFullIDList* This,IEnumFullIDList **ppenum) {
3681     return This->lpVtbl->Clone(This,ppenum);
3682 }
3683 #endif
3684 #endif
3685 
3686 #endif
3687 
3688 HRESULT STDMETHODCALLTYPE IEnumFullIDList_RemoteNext_Proxy(
3689     IEnumFullIDList* This,
3690     ULONG celt,
3691     PIDLIST_ABSOLUTE *rgelt,
3692     ULONG *pceltFetched);
3693 void __RPC_STUB IEnumFullIDList_RemoteNext_Stub(
3694     IRpcStubBuffer* This,
3695     IRpcChannelBuffer* pRpcChannelBuffer,
3696     PRPC_MESSAGE pRpcMessage,
3697     DWORD* pdwStubPhase);
3698 HRESULT STDMETHODCALLTYPE IEnumFullIDList_Skip_Proxy(
3699     IEnumFullIDList* This,
3700     ULONG celt);
3701 void __RPC_STUB IEnumFullIDList_Skip_Stub(
3702     IRpcStubBuffer* This,
3703     IRpcChannelBuffer* pRpcChannelBuffer,
3704     PRPC_MESSAGE pRpcMessage,
3705     DWORD* pdwStubPhase);
3706 HRESULT STDMETHODCALLTYPE IEnumFullIDList_Reset_Proxy(
3707     IEnumFullIDList* This);
3708 void __RPC_STUB IEnumFullIDList_Reset_Stub(
3709     IRpcStubBuffer* This,
3710     IRpcChannelBuffer* pRpcChannelBuffer,
3711     PRPC_MESSAGE pRpcMessage,
3712     DWORD* pdwStubPhase);
3713 HRESULT STDMETHODCALLTYPE IEnumFullIDList_Clone_Proxy(
3714     IEnumFullIDList* This,
3715     IEnumFullIDList **ppenum);
3716 void __RPC_STUB IEnumFullIDList_Clone_Stub(
3717     IRpcStubBuffer* This,
3718     IRpcChannelBuffer* pRpcChannelBuffer,
3719     PRPC_MESSAGE pRpcMessage,
3720     DWORD* pdwStubPhase);
3721 HRESULT CALLBACK IEnumFullIDList_Next_Proxy(
3722     IEnumFullIDList* This,
3723     ULONG celt,
3724     PIDLIST_ABSOLUTE *rgelt,
3725     ULONG *pceltFetched);
3726 HRESULT __RPC_STUB IEnumFullIDList_Next_Stub(
3727     IEnumFullIDList* This,
3728     ULONG celt,
3729     PIDLIST_ABSOLUTE *rgelt,
3730     ULONG *pceltFetched);
3731 
3732 #endif  /* __IEnumFullIDList_INTERFACE_DEFINED__ */
3733 
3734 
3735 enum _SHGDNF {
3736     SHGDN_NORMAL = 0x0,
3737     SHGDN_INFOLDER = 0x1,
3738     SHGDN_FOREDITING = 0x1000,
3739     SHGDN_FORADDRESSBAR = 0x4000,
3740     SHGDN_FORPARSING = 0x8000
3741 };
3742 
3743 
3744 typedef DWORD SHGDNF;
3745 
3746 enum _SHCONTF {
3747     SHCONTF_CHECKING_FOR_CHILDREN = 0x10,
3748     SHCONTF_FOLDERS = 0x20,
3749     SHCONTF_NONFOLDERS = 0x40,
3750     SHCONTF_INCLUDEHIDDEN = 0x80,
3751     SHCONTF_INIT_ON_FIRST_NEXT = 0x100,
3752     SHCONTF_NETPRINTERSRCH = 0x200,
3753     SHCONTF_SHAREABLE = 0x400,
3754     SHCONTF_STORAGE = 0x800,
3755     SHCONTF_NAVIGATION_ENUM = 0x1000,
3756     SHCONTF_FASTITEMS = 0x2000,
3757     SHCONTF_FLATLIST = 0x4000,
3758     SHCONTF_ENABLE_ASYNC = 0x8000,
3759     SHCONTF_INCLUDESUPERHIDDEN = 0x10000
3760 };
3761 
3762 
3763 typedef DWORD SHCONTF;
3764 
3765 #define SHCIDS_ALLFIELDS __MSABI_LONG(0x80000000)
3766 #define SHCIDS_CANONICALONLY __MSABI_LONG(0x10000000)
3767 #define SHCIDS_BITMASK __MSABI_LONG(0xffff0000)
3768 #define SHCIDS_COLUMNMASK __MSABI_LONG(0x0000ffff)
3769 
3770 #define SFGAO_CANCOPY DROPEFFECT_COPY
3771 #define SFGAO_CANMOVE DROPEFFECT_MOVE
3772 #define SFGAO_CANLINK DROPEFFECT_LINK
3773 #define SFGAO_STORAGE __MSABI_LONG(0x8)
3774 #define SFGAO_CANRENAME __MSABI_LONG(0x10)
3775 #define SFGAO_CANDELETE __MSABI_LONG(0x20)
3776 #define SFGAO_HASPROPSHEET __MSABI_LONG(0x40)
3777 #define SFGAO_DROPTARGET __MSABI_LONG(0x100)
3778 
3779 #define SFGAO_CAPABILITYMASK __MSABI_LONG(0x177)
3780 
3781 #define SFGAO_SYSTEM __MSABI_LONG(0x1000)
3782 #define SFGAO_ENCRYPTED __MSABI_LONG(0x2000)
3783 #define SFGAO_ISSLOW __MSABI_LONG(0x4000)
3784 #define SFGAO_GHOSTED __MSABI_LONG(0x8000)
3785 #define SFGAO_LINK __MSABI_LONG(0x10000)
3786 #define SFGAO_SHARE __MSABI_LONG(0x20000)
3787 #define SFGAO_READONLY __MSABI_LONG(0x40000)
3788 #define SFGAO_HIDDEN __MSABI_LONG(0x80000)
3789 
3790 #define SFGAO_DISPLAYATTRMASK __MSABI_LONG(0xfc000)
3791 
3792 #define SFGAO_FILESYSANCESTOR __MSABI_LONG(0x10000000)
3793 #define SFGAO_FOLDER __MSABI_LONG(0x20000000)
3794 #define SFGAO_FILESYSTEM __MSABI_LONG(0x40000000)
3795 #define SFGAO_HASSUBFOLDER __MSABI_LONG(0x80000000)
3796 
3797 #define SFGAO_CONTENTSMASK __MSABI_LONG(0x80000000)
3798 
3799 #define SFGAO_VALIDATE __MSABI_LONG(0x1000000)
3800 #define SFGAO_REMOVABLE __MSABI_LONG(0x2000000)
3801 #define SFGAO_COMPRESSED __MSABI_LONG(0x4000000)
3802 #define SFGAO_BROWSABLE __MSABI_LONG(0x8000000)
3803 #define SFGAO_NONENUMERATED __MSABI_LONG(0x100000)
3804 #define SFGAO_NEWCONTENT __MSABI_LONG(0x200000)
3805 #define SFGAO_CANMONIKER __MSABI_LONG(0x400000)
3806 #define SFGAO_HASSTORAGE __MSABI_LONG(0x400000)
3807 #define SFGAO_STREAM __MSABI_LONG(0x400000)
3808 #define SFGAO_STORAGEANCESTOR __MSABI_LONG(0x00800000)
3809 
3810 #define SFGAO_STORAGECAPMASK __MSABI_LONG(0x70c50008)
3811 #define SFGAO_PKEYSFGAOMASK __MSABI_LONG(0x81044000)
3812 
3813 typedef ULONG SFGAOF;
3814 
3815 #define STR_BIND_FORCE_FOLDER_SHORTCUT_RESOLVE L"Force Folder Shortcut Resolve"
3816 #define STR_AVOID_DRIVE_RESTRICTION_POLICY L"Avoid Drive Restriction Policy"
3817 #define STR_AVOID_DRIVE_RESTRICTION_POLICY L"Avoid Drive Restriction Policy"
3818 #define STR_SKIP_BINDING_CLSID L"Skip Binding CLSID"
3819 #define STR_PARSE_PREFER_FOLDER_BROWSING L"Parse Prefer Folder Browsing"
3820 #define STR_DONT_PARSE_RELATIVE L"Don't Parse Relative"
3821 #define STR_PARSE_TRANSLATE_ALIASES L"Parse Translate Aliases"
3822 #define STR_PARSE_SKIP_NET_CACHE L"Skip Net Resource Cache"
3823 #define STR_PARSE_SHELL_PROTOCOL_TO_FILE_OBJECTS L"Parse Shell Protocol To File Objects"
3824 #if _WIN32_IE >= 0x0700
3825 #define STR_TRACK_CLSID L"Track the CLSID"
3826 #define STR_INTERNAL_NAVIGATE L"Internal Navigation"
3827 #define STR_PARSE_PROPERTYSTORE L"DelegateNamedProperties"
3828 #define STR_NO_VALIDATE_FILENAME_CHARS L"NoValidateFilenameChars"
3829 #define STR_BIND_DELEGATE_CREATE_OBJECT L"Delegate Object Creation"
3830 #define STR_PARSE_ALLOW_INTERNET_SHELL_FOLDERS L"Allow binding to Internet shell folder handlers and negate STR_PARSE_PREFER_WEB_BROWSING"
3831 #define STR_PARSE_PREFER_WEB_BROWSING L"Do not bind to Internet shell folder handlers"
3832 #define STR_PARSE_SHOW_NET_DIAGNOSTICS_UI L"Show network diagnostics UI"
3833 #define STR_PARSE_DONT_REQUIRE_VALIDATED_URLS L"Do not require validated URLs"
3834 #define STR_INTERNETFOLDER_PARSE_ONLY_URLMON_BINDABLE L"Validate URL"
3835 #endif
3836 
3837 #if NTDDI_VERSION >= NTDDI_WIN8
3838 #define BIND_INTERRUPTABLE 0xffffffff
3839 #endif
3840 
3841 #if NTDDI_VERSION >= NTDDI_WIN7
3842 #define STR_BIND_FOLDERS_READ_ONLY L"Folders As Read Only"
3843 #define STR_BIND_FOLDER_ENUM_MODE L"Folder Enum Mode"
3844 
3845 typedef enum FOLDER_ENUM_MODE {
3846     FEM_VIEWRESULT = 0,
3847     FEM_NAVIGATION = 1
3848 } FOLDER_ENUM_MODE;
3849 
3850 /*****************************************************************************
3851  * IObjectWithFolderEnumMode interface
3852  */
3853 #ifndef __IObjectWithFolderEnumMode_INTERFACE_DEFINED__
3854 #define __IObjectWithFolderEnumMode_INTERFACE_DEFINED__
3855 
3856 DEFINE_GUID(IID_IObjectWithFolderEnumMode, 0x6a9d9026, 0x0e6e, 0x464c, 0xb0,0x00, 0x42,0xec,0xc0,0x7d,0xe6,0x73);
3857 #if defined(__cplusplus) && !defined(CINTERFACE)
3858 MIDL_INTERFACE("6a9d9026-0e6e-464c-b000-42ecc07de673")
3859 IObjectWithFolderEnumMode : public IUnknown
3860 {
3861     virtual HRESULT STDMETHODCALLTYPE SetMode(
3862         FOLDER_ENUM_MODE feMode) = 0;
3863 
3864     virtual HRESULT STDMETHODCALLTYPE GetMode(
3865         FOLDER_ENUM_MODE *pfeMode) = 0;
3866 
3867 };
3868 #ifdef __CRT_UUID_DECL
3869 __CRT_UUID_DECL(IObjectWithFolderEnumMode, 0x6a9d9026, 0x0e6e, 0x464c, 0xb0,0x00, 0x42,0xec,0xc0,0x7d,0xe6,0x73)
3870 #endif
3871 #else
3872 typedef struct IObjectWithFolderEnumModeVtbl {
3873     BEGIN_INTERFACE
3874 
3875     /*** IUnknown methods ***/
3876     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3877         IObjectWithFolderEnumMode* This,
3878         REFIID riid,
3879         void **ppvObject);
3880 
3881     ULONG (STDMETHODCALLTYPE *AddRef)(
3882         IObjectWithFolderEnumMode* This);
3883 
3884     ULONG (STDMETHODCALLTYPE *Release)(
3885         IObjectWithFolderEnumMode* This);
3886 
3887     /*** IObjectWithFolderEnumMode methods ***/
3888     HRESULT (STDMETHODCALLTYPE *SetMode)(
3889         IObjectWithFolderEnumMode* This,
3890         FOLDER_ENUM_MODE feMode);
3891 
3892     HRESULT (STDMETHODCALLTYPE *GetMode)(
3893         IObjectWithFolderEnumMode* This,
3894         FOLDER_ENUM_MODE *pfeMode);
3895 
3896     END_INTERFACE
3897 } IObjectWithFolderEnumModeVtbl;
3898 interface IObjectWithFolderEnumMode {
3899     CONST_VTBL IObjectWithFolderEnumModeVtbl* lpVtbl;
3900 };
3901 
3902 #ifdef COBJMACROS
3903 #ifndef WIDL_C_INLINE_WRAPPERS
3904 /*** IUnknown methods ***/
3905 #define IObjectWithFolderEnumMode_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3906 #define IObjectWithFolderEnumMode_AddRef(This) (This)->lpVtbl->AddRef(This)
3907 #define IObjectWithFolderEnumMode_Release(This) (This)->lpVtbl->Release(This)
3908 /*** IObjectWithFolderEnumMode methods ***/
3909 #define IObjectWithFolderEnumMode_SetMode(This,feMode) (This)->lpVtbl->SetMode(This,feMode)
3910 #define IObjectWithFolderEnumMode_GetMode(This,pfeMode) (This)->lpVtbl->GetMode(This,pfeMode)
3911 #else
3912 /*** IUnknown methods ***/
3913 static FORCEINLINE HRESULT IObjectWithFolderEnumMode_QueryInterface(IObjectWithFolderEnumMode* This,REFIID riid,void **ppvObject) {
3914     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3915 }
3916 static FORCEINLINE ULONG IObjectWithFolderEnumMode_AddRef(IObjectWithFolderEnumMode* This) {
3917     return This->lpVtbl->AddRef(This);
3918 }
3919 static FORCEINLINE ULONG IObjectWithFolderEnumMode_Release(IObjectWithFolderEnumMode* This) {
3920     return This->lpVtbl->Release(This);
3921 }
3922 /*** IObjectWithFolderEnumMode methods ***/
3923 static FORCEINLINE HRESULT IObjectWithFolderEnumMode_SetMode(IObjectWithFolderEnumMode* This,FOLDER_ENUM_MODE feMode) {
3924     return This->lpVtbl->SetMode(This,feMode);
3925 }
3926 static FORCEINLINE HRESULT IObjectWithFolderEnumMode_GetMode(IObjectWithFolderEnumMode* This,FOLDER_ENUM_MODE *pfeMode) {
3927     return This->lpVtbl->GetMode(This,pfeMode);
3928 }
3929 #endif
3930 #endif
3931 
3932 #endif
3933 
3934 HRESULT STDMETHODCALLTYPE IObjectWithFolderEnumMode_SetMode_Proxy(
3935     IObjectWithFolderEnumMode* This,
3936     FOLDER_ENUM_MODE feMode);
3937 void __RPC_STUB IObjectWithFolderEnumMode_SetMode_Stub(
3938     IRpcStubBuffer* This,
3939     IRpcChannelBuffer* pRpcChannelBuffer,
3940     PRPC_MESSAGE pRpcMessage,
3941     DWORD* pdwStubPhase);
3942 HRESULT STDMETHODCALLTYPE IObjectWithFolderEnumMode_GetMode_Proxy(
3943     IObjectWithFolderEnumMode* This,
3944     FOLDER_ENUM_MODE *pfeMode);
3945 void __RPC_STUB IObjectWithFolderEnumMode_GetMode_Stub(
3946     IRpcStubBuffer* This,
3947     IRpcChannelBuffer* pRpcChannelBuffer,
3948     PRPC_MESSAGE pRpcMessage,
3949     DWORD* pdwStubPhase);
3950 
3951 #endif  /* __IObjectWithFolderEnumMode_INTERFACE_DEFINED__ */
3952 
3953 
3954 #define STR_PARSE_WITH_EXPLICIT_PROGID L"ExplicitProgid"
3955 #define STR_PARSE_WITH_EXPLICIT_ASSOCAPP L"ExplicitAssociationApp"
3956 #define STR_PARSE_EXPLICIT_ASSOCIATION_SUCCESSFUL L"ExplicitAssociationSuccessful"
3957 #define STR_PARSE_AND_CREATE_ITEM L"ParseAndCreateItem"
3958 #define STR_PROPERTYBAG_PARAM L"SHBindCtxPropertyBag"
3959 #define STR_ENUM_ITEMS_FLAGS L"SHCONTF"
3960 
3961 #ifndef __IShellItem_FWD_DEFINED__
3962 #define __IShellItem_FWD_DEFINED__
3963 typedef interface IShellItem IShellItem;
3964 #endif
3965 
3966 
3967 /*****************************************************************************
3968  * IParseAndCreateItem interface
3969  */
3970 #ifndef __IParseAndCreateItem_INTERFACE_DEFINED__
3971 #define __IParseAndCreateItem_INTERFACE_DEFINED__
3972 
3973 DEFINE_GUID(IID_IParseAndCreateItem, 0x67efed0e, 0xe827, 0x4408, 0xb4,0x93, 0x78,0xf3,0x98,0x2b,0x68,0x5c);
3974 #if defined(__cplusplus) && !defined(CINTERFACE)
3975 MIDL_INTERFACE("67efed0e-e827-4408-b493-78f3982b685c")
3976 IParseAndCreateItem : public IUnknown
3977 {
3978     virtual HRESULT STDMETHODCALLTYPE SetItem(
3979         IShellItem *psi) = 0;
3980 
3981     virtual HRESULT STDMETHODCALLTYPE GetItem(
3982         REFIID riid,
3983         void **ppv) = 0;
3984 
3985 };
3986 #ifdef __CRT_UUID_DECL
3987 __CRT_UUID_DECL(IParseAndCreateItem, 0x67efed0e, 0xe827, 0x4408, 0xb4,0x93, 0x78,0xf3,0x98,0x2b,0x68,0x5c)
3988 #endif
3989 #else
3990 typedef struct IParseAndCreateItemVtbl {
3991     BEGIN_INTERFACE
3992 
3993     /*** IUnknown methods ***/
3994     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3995         IParseAndCreateItem* This,
3996         REFIID riid,
3997         void **ppvObject);
3998 
3999     ULONG (STDMETHODCALLTYPE *AddRef)(
4000         IParseAndCreateItem* This);
4001 
4002     ULONG (STDMETHODCALLTYPE *Release)(
4003         IParseAndCreateItem* This);
4004 
4005     /*** IParseAndCreateItem methods ***/
4006     HRESULT (STDMETHODCALLTYPE *SetItem)(
4007         IParseAndCreateItem* This,
4008         IShellItem *psi);
4009 
4010     HRESULT (STDMETHODCALLTYPE *GetItem)(
4011         IParseAndCreateItem* This,
4012         REFIID riid,
4013         void **ppv);
4014 
4015     END_INTERFACE
4016 } IParseAndCreateItemVtbl;
4017 interface IParseAndCreateItem {
4018     CONST_VTBL IParseAndCreateItemVtbl* lpVtbl;
4019 };
4020 
4021 #ifdef COBJMACROS
4022 #ifndef WIDL_C_INLINE_WRAPPERS
4023 /*** IUnknown methods ***/
4024 #define IParseAndCreateItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4025 #define IParseAndCreateItem_AddRef(This) (This)->lpVtbl->AddRef(This)
4026 #define IParseAndCreateItem_Release(This) (This)->lpVtbl->Release(This)
4027 /*** IParseAndCreateItem methods ***/
4028 #define IParseAndCreateItem_SetItem(This,psi) (This)->lpVtbl->SetItem(This,psi)
4029 #define IParseAndCreateItem_GetItem(This,riid,ppv) (This)->lpVtbl->GetItem(This,riid,ppv)
4030 #else
4031 /*** IUnknown methods ***/
4032 static FORCEINLINE HRESULT IParseAndCreateItem_QueryInterface(IParseAndCreateItem* This,REFIID riid,void **ppvObject) {
4033     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4034 }
4035 static FORCEINLINE ULONG IParseAndCreateItem_AddRef(IParseAndCreateItem* This) {
4036     return This->lpVtbl->AddRef(This);
4037 }
4038 static FORCEINLINE ULONG IParseAndCreateItem_Release(IParseAndCreateItem* This) {
4039     return This->lpVtbl->Release(This);
4040 }
4041 /*** IParseAndCreateItem methods ***/
4042 static FORCEINLINE HRESULT IParseAndCreateItem_SetItem(IParseAndCreateItem* This,IShellItem *psi) {
4043     return This->lpVtbl->SetItem(This,psi);
4044 }
4045 static FORCEINLINE HRESULT IParseAndCreateItem_GetItem(IParseAndCreateItem* This,REFIID riid,void **ppv) {
4046     return This->lpVtbl->GetItem(This,riid,ppv);
4047 }
4048 #endif
4049 #endif
4050 
4051 #endif
4052 
4053 HRESULT STDMETHODCALLTYPE IParseAndCreateItem_SetItem_Proxy(
4054     IParseAndCreateItem* This,
4055     IShellItem *psi);
4056 void __RPC_STUB IParseAndCreateItem_SetItem_Stub(
4057     IRpcStubBuffer* This,
4058     IRpcChannelBuffer* pRpcChannelBuffer,
4059     PRPC_MESSAGE pRpcMessage,
4060     DWORD* pdwStubPhase);
4061 HRESULT STDMETHODCALLTYPE IParseAndCreateItem_GetItem_Proxy(
4062     IParseAndCreateItem* This,
4063     REFIID riid,
4064     void **ppv);
4065 void __RPC_STUB IParseAndCreateItem_GetItem_Stub(
4066     IRpcStubBuffer* This,
4067     IRpcChannelBuffer* pRpcChannelBuffer,
4068     PRPC_MESSAGE pRpcMessage,
4069     DWORD* pdwStubPhase);
4070 
4071 #endif  /* __IParseAndCreateItem_INTERFACE_DEFINED__ */
4072 
4073 
4074 #define STR_ITEM_CACHE_CONTEXT L"ItemCacheContext"
4075 #endif
4076 
4077 #ifndef __IShellFolder_FWD_DEFINED__
4078 #define __IShellFolder_FWD_DEFINED__
4079 typedef interface IShellFolder IShellFolder;
4080 #endif
4081 
4082 
4083 /*****************************************************************************
4084  * IShellFolder interface
4085  */
4086 #ifndef __IShellFolder_INTERFACE_DEFINED__
4087 #define __IShellFolder_INTERFACE_DEFINED__
4088 
4089 DEFINE_GUID(IID_IShellFolder, 0x000214e6, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4090 #if defined(__cplusplus) && !defined(CINTERFACE)
4091 MIDL_INTERFACE("000214e6-0000-0000-c000-000000000046")
4092 IShellFolder : public IUnknown
4093 {
4094     virtual HRESULT STDMETHODCALLTYPE ParseDisplayName(
4095         HWND hwnd,
4096         IBindCtx *pbc,
4097         LPWSTR pszDisplayName,
4098         ULONG *pchEaten,
4099         PIDLIST_RELATIVE *ppidl,
4100         ULONG *pdwAttributes) = 0;
4101 
4102     virtual HRESULT STDMETHODCALLTYPE EnumObjects(
4103         HWND hwnd,
4104         SHCONTF grfFlags,
4105         IEnumIDList **ppenumIDList) = 0;
4106 
4107     virtual HRESULT STDMETHODCALLTYPE BindToObject(
4108         PCUIDLIST_RELATIVE pidl,
4109         IBindCtx *pbc,
4110         REFIID riid,
4111         void **ppv) = 0;
4112 
4113     virtual HRESULT STDMETHODCALLTYPE BindToStorage(
4114         PCUIDLIST_RELATIVE pidl,
4115         IBindCtx *pbc,
4116         REFIID riid,
4117         void **ppv) = 0;
4118 
4119     virtual HRESULT STDMETHODCALLTYPE CompareIDs(
4120         LPARAM lParam,
4121         PCUIDLIST_RELATIVE pidl1,
4122         PCUIDLIST_RELATIVE pidl2) = 0;
4123 
4124     virtual HRESULT STDMETHODCALLTYPE CreateViewObject(
4125         HWND hwndOwner,
4126         REFIID riid,
4127         void **ppv) = 0;
4128 
4129     virtual HRESULT STDMETHODCALLTYPE GetAttributesOf(
4130         UINT cidl,
4131         PCUITEMID_CHILD_ARRAY apidl,
4132         SFGAOF *rgfInOut) = 0;
4133 
4134     virtual HRESULT STDMETHODCALLTYPE GetUIObjectOf(
4135         HWND hwndOwner,
4136         UINT cidl,
4137         PCUITEMID_CHILD_ARRAY apidl,
4138         REFIID riid,
4139         UINT *rgfReserved,
4140         void **ppv) = 0;
4141 
4142     virtual HRESULT STDMETHODCALLTYPE GetDisplayNameOf(
4143         PCUITEMID_CHILD pidl,
4144         SHGDNF uFlags,
4145         STRRET *pName) = 0;
4146 
4147     virtual HRESULT STDMETHODCALLTYPE SetNameOf(
4148         HWND hwnd,
4149         PCUITEMID_CHILD pidl,
4150         LPCWSTR pszName,
4151         SHGDNF uFlags,
4152         PITEMID_CHILD *ppidlOut) = 0;
4153 
4154 };
4155 #ifdef __CRT_UUID_DECL
4156 __CRT_UUID_DECL(IShellFolder, 0x000214e6, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
4157 #endif
4158 #else
4159 typedef struct IShellFolderVtbl {
4160     BEGIN_INTERFACE
4161 
4162     /*** IUnknown methods ***/
4163     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4164         IShellFolder* This,
4165         REFIID riid,
4166         void **ppvObject);
4167 
4168     ULONG (STDMETHODCALLTYPE *AddRef)(
4169         IShellFolder* This);
4170 
4171     ULONG (STDMETHODCALLTYPE *Release)(
4172         IShellFolder* This);
4173 
4174     /*** IShellFolder methods ***/
4175     HRESULT (STDMETHODCALLTYPE *ParseDisplayName)(
4176         IShellFolder* This,
4177         HWND hwnd,
4178         IBindCtx *pbc,
4179         LPWSTR pszDisplayName,
4180         ULONG *pchEaten,
4181         PIDLIST_RELATIVE *ppidl,
4182         ULONG *pdwAttributes);
4183 
4184     HRESULT (STDMETHODCALLTYPE *EnumObjects)(
4185         IShellFolder* This,
4186         HWND hwnd,
4187         SHCONTF grfFlags,
4188         IEnumIDList **ppenumIDList);
4189 
4190     HRESULT (STDMETHODCALLTYPE *BindToObject)(
4191         IShellFolder* This,
4192         PCUIDLIST_RELATIVE pidl,
4193         IBindCtx *pbc,
4194         REFIID riid,
4195         void **ppv);
4196 
4197     HRESULT (STDMETHODCALLTYPE *BindToStorage)(
4198         IShellFolder* This,
4199         PCUIDLIST_RELATIVE pidl,
4200         IBindCtx *pbc,
4201         REFIID riid,
4202         void **ppv);
4203 
4204     HRESULT (STDMETHODCALLTYPE *CompareIDs)(
4205         IShellFolder* This,
4206         LPARAM lParam,
4207         PCUIDLIST_RELATIVE pidl1,
4208         PCUIDLIST_RELATIVE pidl2);
4209 
4210     HRESULT (STDMETHODCALLTYPE *CreateViewObject)(
4211         IShellFolder* This,
4212         HWND hwndOwner,
4213         REFIID riid,
4214         void **ppv);
4215 
4216     HRESULT (STDMETHODCALLTYPE *GetAttributesOf)(
4217         IShellFolder* This,
4218         UINT cidl,
4219         PCUITEMID_CHILD_ARRAY apidl,
4220         SFGAOF *rgfInOut);
4221 
4222     HRESULT (STDMETHODCALLTYPE *GetUIObjectOf)(
4223         IShellFolder* This,
4224         HWND hwndOwner,
4225         UINT cidl,
4226         PCUITEMID_CHILD_ARRAY apidl,
4227         REFIID riid,
4228         UINT *rgfReserved,
4229         void **ppv);
4230 
4231     HRESULT (STDMETHODCALLTYPE *GetDisplayNameOf)(
4232         IShellFolder* This,
4233         PCUITEMID_CHILD pidl,
4234         SHGDNF uFlags,
4235         STRRET *pName);
4236 
4237     HRESULT (STDMETHODCALLTYPE *SetNameOf)(
4238         IShellFolder* This,
4239         HWND hwnd,
4240         PCUITEMID_CHILD pidl,
4241         LPCWSTR pszName,
4242         SHGDNF uFlags,
4243         PITEMID_CHILD *ppidlOut);
4244 
4245     END_INTERFACE
4246 } IShellFolderVtbl;
4247 interface IShellFolder {
4248     CONST_VTBL IShellFolderVtbl* lpVtbl;
4249 };
4250 
4251 #ifdef COBJMACROS
4252 #ifndef WIDL_C_INLINE_WRAPPERS
4253 /*** IUnknown methods ***/
4254 #define IShellFolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4255 #define IShellFolder_AddRef(This) (This)->lpVtbl->AddRef(This)
4256 #define IShellFolder_Release(This) (This)->lpVtbl->Release(This)
4257 /*** IShellFolder methods ***/
4258 #define IShellFolder_ParseDisplayName(This,hwnd,pbc,pszDisplayName,pchEaten,ppidl,pdwAttributes) (This)->lpVtbl->ParseDisplayName(This,hwnd,pbc,pszDisplayName,pchEaten,ppidl,pdwAttributes)
4259 #define IShellFolder_EnumObjects(This,hwnd,grfFlags,ppenumIDList) (This)->lpVtbl->EnumObjects(This,hwnd,grfFlags,ppenumIDList)
4260 #define IShellFolder_BindToObject(This,pidl,pbc,riid,ppv) (This)->lpVtbl->BindToObject(This,pidl,pbc,riid,ppv)
4261 #define IShellFolder_BindToStorage(This,pidl,pbc,riid,ppv) (This)->lpVtbl->BindToStorage(This,pidl,pbc,riid,ppv)
4262 #define IShellFolder_CompareIDs(This,lParam,pidl1,pidl2) (This)->lpVtbl->CompareIDs(This,lParam,pidl1,pidl2)
4263 #define IShellFolder_CreateViewObject(This,hwndOwner,riid,ppv) (This)->lpVtbl->CreateViewObject(This,hwndOwner,riid,ppv)
4264 #define IShellFolder_GetAttributesOf(This,cidl,apidl,rgfInOut) (This)->lpVtbl->GetAttributesOf(This,cidl,apidl,rgfInOut)
4265 #define IShellFolder_GetUIObjectOf(This,hwndOwner,cidl,apidl,riid,rgfReserved,ppv) (This)->lpVtbl->GetUIObjectOf(This,hwndOwner,cidl,apidl,riid,rgfReserved,ppv)
4266 #define IShellFolder_GetDisplayNameOf(This,pidl,uFlags,pName) (This)->lpVtbl->GetDisplayNameOf(This,pidl,uFlags,pName)
4267 #define IShellFolder_SetNameOf(This,hwnd,pidl,pszName,uFlags,ppidlOut) (This)->lpVtbl->SetNameOf(This,hwnd,pidl,pszName,uFlags,ppidlOut)
4268 #else
4269 /*** IUnknown methods ***/
4270 static FORCEINLINE HRESULT IShellFolder_QueryInterface(IShellFolder* This,REFIID riid,void **ppvObject) {
4271     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4272 }
4273 static FORCEINLINE ULONG IShellFolder_AddRef(IShellFolder* This) {
4274     return This->lpVtbl->AddRef(This);
4275 }
4276 static FORCEINLINE ULONG IShellFolder_Release(IShellFolder* This) {
4277     return This->lpVtbl->Release(This);
4278 }
4279 /*** IShellFolder methods ***/
4280 static FORCEINLINE HRESULT IShellFolder_ParseDisplayName(IShellFolder* This,HWND hwnd,IBindCtx *pbc,LPWSTR pszDisplayName,ULONG *pchEaten,PIDLIST_RELATIVE *ppidl,ULONG *pdwAttributes) {
4281     return This->lpVtbl->ParseDisplayName(This,hwnd,pbc,pszDisplayName,pchEaten,ppidl,pdwAttributes);
4282 }
4283 static FORCEINLINE HRESULT IShellFolder_EnumObjects(IShellFolder* This,HWND hwnd,SHCONTF grfFlags,IEnumIDList **ppenumIDList) {
4284     return This->lpVtbl->EnumObjects(This,hwnd,grfFlags,ppenumIDList);
4285 }
4286 static FORCEINLINE HRESULT IShellFolder_BindToObject(IShellFolder* This,PCUIDLIST_RELATIVE pidl,IBindCtx *pbc,REFIID riid,void **ppv) {
4287     return This->lpVtbl->BindToObject(This,pidl,pbc,riid,ppv);
4288 }
4289 static FORCEINLINE HRESULT IShellFolder_BindToStorage(IShellFolder* This,PCUIDLIST_RELATIVE pidl,IBindCtx *pbc,REFIID riid,void **ppv) {
4290     return This->lpVtbl->BindToStorage(This,pidl,pbc,riid,ppv);
4291 }
4292 static FORCEINLINE HRESULT IShellFolder_CompareIDs(IShellFolder* This,LPARAM lParam,PCUIDLIST_RELATIVE pidl1,PCUIDLIST_RELATIVE pidl2) {
4293     return This->lpVtbl->CompareIDs(This,lParam,pidl1,pidl2);
4294 }
4295 static FORCEINLINE HRESULT IShellFolder_CreateViewObject(IShellFolder* This,HWND hwndOwner,REFIID riid,void **ppv) {
4296     return This->lpVtbl->CreateViewObject(This,hwndOwner,riid,ppv);
4297 }
4298 static FORCEINLINE HRESULT IShellFolder_GetAttributesOf(IShellFolder* This,UINT cidl,PCUITEMID_CHILD_ARRAY apidl,SFGAOF *rgfInOut) {
4299     return This->lpVtbl->GetAttributesOf(This,cidl,apidl,rgfInOut);
4300 }
4301 static FORCEINLINE HRESULT IShellFolder_GetUIObjectOf(IShellFolder* This,HWND hwndOwner,UINT cidl,PCUITEMID_CHILD_ARRAY apidl,REFIID riid,UINT *rgfReserved,void **ppv) {
4302     return This->lpVtbl->GetUIObjectOf(This,hwndOwner,cidl,apidl,riid,rgfReserved,ppv);
4303 }
4304 static FORCEINLINE HRESULT IShellFolder_GetDisplayNameOf(IShellFolder* This,PCUITEMID_CHILD pidl,SHGDNF uFlags,STRRET *pName) {
4305     return This->lpVtbl->GetDisplayNameOf(This,pidl,uFlags,pName);
4306 }
4307 static FORCEINLINE HRESULT IShellFolder_SetNameOf(IShellFolder* This,HWND hwnd,PCUITEMID_CHILD pidl,LPCWSTR pszName,SHGDNF uFlags,PITEMID_CHILD *ppidlOut) {
4308     return This->lpVtbl->SetNameOf(This,hwnd,pidl,pszName,uFlags,ppidlOut);
4309 }
4310 #endif
4311 #endif
4312 
4313 #endif
4314 
4315 HRESULT STDMETHODCALLTYPE IShellFolder_ParseDisplayName_Proxy(
4316     IShellFolder* This,
4317     HWND hwnd,
4318     IBindCtx *pbc,
4319     LPWSTR pszDisplayName,
4320     ULONG *pchEaten,
4321     PIDLIST_RELATIVE *ppidl,
4322     ULONG *pdwAttributes);
4323 void __RPC_STUB IShellFolder_ParseDisplayName_Stub(
4324     IRpcStubBuffer* This,
4325     IRpcChannelBuffer* pRpcChannelBuffer,
4326     PRPC_MESSAGE pRpcMessage,
4327     DWORD* pdwStubPhase);
4328 HRESULT STDMETHODCALLTYPE IShellFolder_EnumObjects_Proxy(
4329     IShellFolder* This,
4330     HWND hwnd,
4331     SHCONTF grfFlags,
4332     IEnumIDList **ppenumIDList);
4333 void __RPC_STUB IShellFolder_EnumObjects_Stub(
4334     IRpcStubBuffer* This,
4335     IRpcChannelBuffer* pRpcChannelBuffer,
4336     PRPC_MESSAGE pRpcMessage,
4337     DWORD* pdwStubPhase);
4338 HRESULT STDMETHODCALLTYPE IShellFolder_BindToObject_Proxy(
4339     IShellFolder* This,
4340     PCUIDLIST_RELATIVE pidl,
4341     IBindCtx *pbc,
4342     REFIID riid,
4343     void **ppv);
4344 void __RPC_STUB IShellFolder_BindToObject_Stub(
4345     IRpcStubBuffer* This,
4346     IRpcChannelBuffer* pRpcChannelBuffer,
4347     PRPC_MESSAGE pRpcMessage,
4348     DWORD* pdwStubPhase);
4349 HRESULT STDMETHODCALLTYPE IShellFolder_BindToStorage_Proxy(
4350     IShellFolder* This,
4351     PCUIDLIST_RELATIVE pidl,
4352     IBindCtx *pbc,
4353     REFIID riid,
4354     void **ppv);
4355 void __RPC_STUB IShellFolder_BindToStorage_Stub(
4356     IRpcStubBuffer* This,
4357     IRpcChannelBuffer* pRpcChannelBuffer,
4358     PRPC_MESSAGE pRpcMessage,
4359     DWORD* pdwStubPhase);
4360 HRESULT STDMETHODCALLTYPE IShellFolder_CompareIDs_Proxy(
4361     IShellFolder* This,
4362     LPARAM lParam,
4363     PCUIDLIST_RELATIVE pidl1,
4364     PCUIDLIST_RELATIVE pidl2);
4365 void __RPC_STUB IShellFolder_CompareIDs_Stub(
4366     IRpcStubBuffer* This,
4367     IRpcChannelBuffer* pRpcChannelBuffer,
4368     PRPC_MESSAGE pRpcMessage,
4369     DWORD* pdwStubPhase);
4370 HRESULT STDMETHODCALLTYPE IShellFolder_CreateViewObject_Proxy(
4371     IShellFolder* This,
4372     HWND hwndOwner,
4373     REFIID riid,
4374     void **ppv);
4375 void __RPC_STUB IShellFolder_CreateViewObject_Stub(
4376     IRpcStubBuffer* This,
4377     IRpcChannelBuffer* pRpcChannelBuffer,
4378     PRPC_MESSAGE pRpcMessage,
4379     DWORD* pdwStubPhase);
4380 HRESULT STDMETHODCALLTYPE IShellFolder_GetAttributesOf_Proxy(
4381     IShellFolder* This,
4382     UINT cidl,
4383     PCUITEMID_CHILD_ARRAY apidl,
4384     SFGAOF *rgfInOut);
4385 void __RPC_STUB IShellFolder_GetAttributesOf_Stub(
4386     IRpcStubBuffer* This,
4387     IRpcChannelBuffer* pRpcChannelBuffer,
4388     PRPC_MESSAGE pRpcMessage,
4389     DWORD* pdwStubPhase);
4390 HRESULT STDMETHODCALLTYPE IShellFolder_GetUIObjectOf_Proxy(
4391     IShellFolder* This,
4392     HWND hwndOwner,
4393     UINT cidl,
4394     PCUITEMID_CHILD_ARRAY apidl,
4395     REFIID riid,
4396     UINT *rgfReserved,
4397     void **ppv);
4398 void __RPC_STUB IShellFolder_GetUIObjectOf_Stub(
4399     IRpcStubBuffer* This,
4400     IRpcChannelBuffer* pRpcChannelBuffer,
4401     PRPC_MESSAGE pRpcMessage,
4402     DWORD* pdwStubPhase);
4403 HRESULT STDMETHODCALLTYPE IShellFolder_GetDisplayNameOf_Proxy(
4404     IShellFolder* This,
4405     PCUITEMID_CHILD pidl,
4406     SHGDNF uFlags,
4407     STRRET *pName);
4408 void __RPC_STUB IShellFolder_GetDisplayNameOf_Stub(
4409     IRpcStubBuffer* This,
4410     IRpcChannelBuffer* pRpcChannelBuffer,
4411     PRPC_MESSAGE pRpcMessage,
4412     DWORD* pdwStubPhase);
4413 HRESULT STDMETHODCALLTYPE IShellFolder_RemoteSetNameOf_Proxy(
4414     IShellFolder* This,
4415     HWND hwnd,
4416     PCUITEMID_CHILD pidl,
4417     LPCWSTR pszName,
4418     SHGDNF uFlags,
4419     PITEMID_CHILD *ppidlOut);
4420 void __RPC_STUB IShellFolder_RemoteSetNameOf_Stub(
4421     IRpcStubBuffer* This,
4422     IRpcChannelBuffer* pRpcChannelBuffer,
4423     PRPC_MESSAGE pRpcMessage,
4424     DWORD* pdwStubPhase);
4425 HRESULT CALLBACK IShellFolder_SetNameOf_Proxy(
4426     IShellFolder* This,
4427     HWND hwnd,
4428     PCUITEMID_CHILD pidl,
4429     LPCWSTR pszName,
4430     SHGDNF uFlags,
4431     PITEMID_CHILD *ppidlOut);
4432 HRESULT __RPC_STUB IShellFolder_SetNameOf_Stub(
4433     IShellFolder* This,
4434     HWND hwnd,
4435     PCUITEMID_CHILD pidl,
4436     LPCWSTR pszName,
4437     SHGDNF uFlags,
4438     PITEMID_CHILD *ppidlOut);
4439 
4440 #endif  /* __IShellFolder_INTERFACE_DEFINED__ */
4441 
4442 typedef IShellFolder *LPSHELLFOLDER;
4443 
4444 typedef struct EXTRASEARCH {
4445     GUID guidSearch;
4446     WCHAR wszFriendlyName[80];
4447     WCHAR wszUrl[2084];
4448 } EXTRASEARCH;
4449 typedef struct EXTRASEARCH *LPEXTRASEARCH;
4450 
4451 /*****************************************************************************
4452  * IEnumExtraSearch interface
4453  */
4454 #ifndef __IEnumExtraSearch_INTERFACE_DEFINED__
4455 #define __IEnumExtraSearch_INTERFACE_DEFINED__
4456 
4457 DEFINE_GUID(IID_IEnumExtraSearch, 0x0e700be1, 0x9db6, 0x11d1, 0xa1,0xce, 0x00,0xc0,0x4f,0xd7,0x5d,0x13);
4458 #if defined(__cplusplus) && !defined(CINTERFACE)
4459 MIDL_INTERFACE("0e700be1-9db6-11d1-a1ce-00c04fd75d13")
4460 IEnumExtraSearch : public IUnknown
4461 {
4462     virtual HRESULT STDMETHODCALLTYPE Next(
4463         ULONG celt,
4464         EXTRASEARCH *rgelt,
4465         ULONG *pceltFetched) = 0;
4466 
4467     virtual HRESULT STDMETHODCALLTYPE Skip(
4468         ULONG celt) = 0;
4469 
4470     virtual HRESULT STDMETHODCALLTYPE Reset(
4471         ) = 0;
4472 
4473     virtual HRESULT STDMETHODCALLTYPE Clone(
4474         IEnumExtraSearch **ppenum) = 0;
4475 
4476 };
4477 #ifdef __CRT_UUID_DECL
4478 __CRT_UUID_DECL(IEnumExtraSearch, 0x0e700be1, 0x9db6, 0x11d1, 0xa1,0xce, 0x00,0xc0,0x4f,0xd7,0x5d,0x13)
4479 #endif
4480 #else
4481 typedef struct IEnumExtraSearchVtbl {
4482     BEGIN_INTERFACE
4483 
4484     /*** IUnknown methods ***/
4485     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4486         IEnumExtraSearch* This,
4487         REFIID riid,
4488         void **ppvObject);
4489 
4490     ULONG (STDMETHODCALLTYPE *AddRef)(
4491         IEnumExtraSearch* This);
4492 
4493     ULONG (STDMETHODCALLTYPE *Release)(
4494         IEnumExtraSearch* This);
4495 
4496     /*** IEnumExtraSearch methods ***/
4497     HRESULT (STDMETHODCALLTYPE *Next)(
4498         IEnumExtraSearch* This,
4499         ULONG celt,
4500         EXTRASEARCH *rgelt,
4501         ULONG *pceltFetched);
4502 
4503     HRESULT (STDMETHODCALLTYPE *Skip)(
4504         IEnumExtraSearch* This,
4505         ULONG celt);
4506 
4507     HRESULT (STDMETHODCALLTYPE *Reset)(
4508         IEnumExtraSearch* This);
4509 
4510     HRESULT (STDMETHODCALLTYPE *Clone)(
4511         IEnumExtraSearch* This,
4512         IEnumExtraSearch **ppenum);
4513 
4514     END_INTERFACE
4515 } IEnumExtraSearchVtbl;
4516 interface IEnumExtraSearch {
4517     CONST_VTBL IEnumExtraSearchVtbl* lpVtbl;
4518 };
4519 
4520 #ifdef COBJMACROS
4521 #ifndef WIDL_C_INLINE_WRAPPERS
4522 /*** IUnknown methods ***/
4523 #define IEnumExtraSearch_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4524 #define IEnumExtraSearch_AddRef(This) (This)->lpVtbl->AddRef(This)
4525 #define IEnumExtraSearch_Release(This) (This)->lpVtbl->Release(This)
4526 /*** IEnumExtraSearch methods ***/
4527 #define IEnumExtraSearch_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
4528 #define IEnumExtraSearch_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
4529 #define IEnumExtraSearch_Reset(This) (This)->lpVtbl->Reset(This)
4530 #define IEnumExtraSearch_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
4531 #else
4532 /*** IUnknown methods ***/
4533 static FORCEINLINE HRESULT IEnumExtraSearch_QueryInterface(IEnumExtraSearch* This,REFIID riid,void **ppvObject) {
4534     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4535 }
4536 static FORCEINLINE ULONG IEnumExtraSearch_AddRef(IEnumExtraSearch* This) {
4537     return This->lpVtbl->AddRef(This);
4538 }
4539 static FORCEINLINE ULONG IEnumExtraSearch_Release(IEnumExtraSearch* This) {
4540     return This->lpVtbl->Release(This);
4541 }
4542 /*** IEnumExtraSearch methods ***/
4543 static FORCEINLINE HRESULT IEnumExtraSearch_Next(IEnumExtraSearch* This,ULONG celt,EXTRASEARCH *rgelt,ULONG *pceltFetched) {
4544     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
4545 }
4546 static FORCEINLINE HRESULT IEnumExtraSearch_Skip(IEnumExtraSearch* This,ULONG celt) {
4547     return This->lpVtbl->Skip(This,celt);
4548 }
4549 static FORCEINLINE HRESULT IEnumExtraSearch_Reset(IEnumExtraSearch* This) {
4550     return This->lpVtbl->Reset(This);
4551 }
4552 static FORCEINLINE HRESULT IEnumExtraSearch_Clone(IEnumExtraSearch* This,IEnumExtraSearch **ppenum) {
4553     return This->lpVtbl->Clone(This,ppenum);
4554 }
4555 #endif
4556 #endif
4557 
4558 #endif
4559 
4560 HRESULT STDMETHODCALLTYPE IEnumExtraSearch_Next_Proxy(
4561     IEnumExtraSearch* This,
4562     ULONG celt,
4563     EXTRASEARCH *rgelt,
4564     ULONG *pceltFetched);
4565 void __RPC_STUB IEnumExtraSearch_Next_Stub(
4566     IRpcStubBuffer* This,
4567     IRpcChannelBuffer* pRpcChannelBuffer,
4568     PRPC_MESSAGE pRpcMessage,
4569     DWORD* pdwStubPhase);
4570 HRESULT STDMETHODCALLTYPE IEnumExtraSearch_Skip_Proxy(
4571     IEnumExtraSearch* This,
4572     ULONG celt);
4573 void __RPC_STUB IEnumExtraSearch_Skip_Stub(
4574     IRpcStubBuffer* This,
4575     IRpcChannelBuffer* pRpcChannelBuffer,
4576     PRPC_MESSAGE pRpcMessage,
4577     DWORD* pdwStubPhase);
4578 HRESULT STDMETHODCALLTYPE IEnumExtraSearch_Reset_Proxy(
4579     IEnumExtraSearch* This);
4580 void __RPC_STUB IEnumExtraSearch_Reset_Stub(
4581     IRpcStubBuffer* This,
4582     IRpcChannelBuffer* pRpcChannelBuffer,
4583     PRPC_MESSAGE pRpcMessage,
4584     DWORD* pdwStubPhase);
4585 HRESULT STDMETHODCALLTYPE IEnumExtraSearch_Clone_Proxy(
4586     IEnumExtraSearch* This,
4587     IEnumExtraSearch **ppenum);
4588 void __RPC_STUB IEnumExtraSearch_Clone_Stub(
4589     IRpcStubBuffer* This,
4590     IRpcChannelBuffer* pRpcChannelBuffer,
4591     PRPC_MESSAGE pRpcMessage,
4592     DWORD* pdwStubPhase);
4593 
4594 #endif  /* __IEnumExtraSearch_INTERFACE_DEFINED__ */
4595 
4596 typedef IEnumExtraSearch *LPENUMEXTRASEARCH;
4597 
4598 /*****************************************************************************
4599  * IShellFolder2 interface
4600  */
4601 #ifndef __IShellFolder2_INTERFACE_DEFINED__
4602 #define __IShellFolder2_INTERFACE_DEFINED__
4603 
4604 DEFINE_GUID(IID_IShellFolder2, 0x93f2f68c, 0x1d1b, 0x11d3, 0xa3,0x0e, 0x00,0xc0,0x4f,0x79,0xab,0xd1);
4605 #if defined(__cplusplus) && !defined(CINTERFACE)
4606 MIDL_INTERFACE("93f2f68c-1d1b-11d3-a30e-00c04f79abd1")
4607 IShellFolder2 : public IShellFolder
4608 {
4609     virtual HRESULT STDMETHODCALLTYPE GetDefaultSearchGUID(
4610         GUID *pguid) = 0;
4611 
4612     virtual HRESULT STDMETHODCALLTYPE EnumSearches(
4613         IEnumExtraSearch **ppenum) = 0;
4614 
4615     virtual HRESULT STDMETHODCALLTYPE GetDefaultColumn(
4616         DWORD dwRes,
4617         ULONG *pSort,
4618         ULONG *pDisplay) = 0;
4619 
4620     virtual HRESULT STDMETHODCALLTYPE GetDefaultColumnState(
4621         UINT iColumn,
4622         SHCOLSTATEF *pcsFlags) = 0;
4623 
4624     virtual HRESULT STDMETHODCALLTYPE GetDetailsEx(
4625         PCUITEMID_CHILD pidl,
4626         const SHCOLUMNID *pscid,
4627         VARIANT *pv) = 0;
4628 
4629     virtual HRESULT STDMETHODCALLTYPE GetDetailsOf(
4630         PCUITEMID_CHILD pidl,
4631         UINT iColumn,
4632         SHELLDETAILS *psd) = 0;
4633 
4634     virtual HRESULT STDMETHODCALLTYPE MapColumnToSCID(
4635         UINT iColumn,
4636         SHCOLUMNID *pscid) = 0;
4637 
4638 };
4639 #ifdef __CRT_UUID_DECL
4640 __CRT_UUID_DECL(IShellFolder2, 0x93f2f68c, 0x1d1b, 0x11d3, 0xa3,0x0e, 0x00,0xc0,0x4f,0x79,0xab,0xd1)
4641 #endif
4642 #else
4643 typedef struct IShellFolder2Vtbl {
4644     BEGIN_INTERFACE
4645 
4646     /*** IUnknown methods ***/
4647     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4648         IShellFolder2* This,
4649         REFIID riid,
4650         void **ppvObject);
4651 
4652     ULONG (STDMETHODCALLTYPE *AddRef)(
4653         IShellFolder2* This);
4654 
4655     ULONG (STDMETHODCALLTYPE *Release)(
4656         IShellFolder2* This);
4657 
4658     /*** IShellFolder methods ***/
4659     HRESULT (STDMETHODCALLTYPE *ParseDisplayName)(
4660         IShellFolder2* This,
4661         HWND hwnd,
4662         IBindCtx *pbc,
4663         LPWSTR pszDisplayName,
4664         ULONG *pchEaten,
4665         PIDLIST_RELATIVE *ppidl,
4666         ULONG *pdwAttributes);
4667 
4668     HRESULT (STDMETHODCALLTYPE *EnumObjects)(
4669         IShellFolder2* This,
4670         HWND hwnd,
4671         SHCONTF grfFlags,
4672         IEnumIDList **ppenumIDList);
4673 
4674     HRESULT (STDMETHODCALLTYPE *BindToObject)(
4675         IShellFolder2* This,
4676         PCUIDLIST_RELATIVE pidl,
4677         IBindCtx *pbc,
4678         REFIID riid,
4679         void **ppv);
4680 
4681     HRESULT (STDMETHODCALLTYPE *BindToStorage)(
4682         IShellFolder2* This,
4683         PCUIDLIST_RELATIVE pidl,
4684         IBindCtx *pbc,
4685         REFIID riid,
4686         void **ppv);
4687 
4688     HRESULT (STDMETHODCALLTYPE *CompareIDs)(
4689         IShellFolder2* This,
4690         LPARAM lParam,
4691         PCUIDLIST_RELATIVE pidl1,
4692         PCUIDLIST_RELATIVE pidl2);
4693 
4694     HRESULT (STDMETHODCALLTYPE *CreateViewObject)(
4695         IShellFolder2* This,
4696         HWND hwndOwner,
4697         REFIID riid,
4698         void **ppv);
4699 
4700     HRESULT (STDMETHODCALLTYPE *GetAttributesOf)(
4701         IShellFolder2* This,
4702         UINT cidl,
4703         PCUITEMID_CHILD_ARRAY apidl,
4704         SFGAOF *rgfInOut);
4705 
4706     HRESULT (STDMETHODCALLTYPE *GetUIObjectOf)(
4707         IShellFolder2* This,
4708         HWND hwndOwner,
4709         UINT cidl,
4710         PCUITEMID_CHILD_ARRAY apidl,
4711         REFIID riid,
4712         UINT *rgfReserved,
4713         void **ppv);
4714 
4715     HRESULT (STDMETHODCALLTYPE *GetDisplayNameOf)(
4716         IShellFolder2* This,
4717         PCUITEMID_CHILD pidl,
4718         SHGDNF uFlags,
4719         STRRET *pName);
4720 
4721     HRESULT (STDMETHODCALLTYPE *SetNameOf)(
4722         IShellFolder2* This,
4723         HWND hwnd,
4724         PCUITEMID_CHILD pidl,
4725         LPCWSTR pszName,
4726         SHGDNF uFlags,
4727         PITEMID_CHILD *ppidlOut);
4728 
4729     /*** IShellFolder2 methods ***/
4730     HRESULT (STDMETHODCALLTYPE *GetDefaultSearchGUID)(
4731         IShellFolder2* This,
4732         GUID *pguid);
4733 
4734     HRESULT (STDMETHODCALLTYPE *EnumSearches)(
4735         IShellFolder2* This,
4736         IEnumExtraSearch **ppenum);
4737 
4738     HRESULT (STDMETHODCALLTYPE *GetDefaultColumn)(
4739         IShellFolder2* This,
4740         DWORD dwRes,
4741         ULONG *pSort,
4742         ULONG *pDisplay);
4743 
4744     HRESULT (STDMETHODCALLTYPE *GetDefaultColumnState)(
4745         IShellFolder2* This,
4746         UINT iColumn,
4747         SHCOLSTATEF *pcsFlags);
4748 
4749     HRESULT (STDMETHODCALLTYPE *GetDetailsEx)(
4750         IShellFolder2* This,
4751         PCUITEMID_CHILD pidl,
4752         const SHCOLUMNID *pscid,
4753         VARIANT *pv);
4754 
4755     HRESULT (STDMETHODCALLTYPE *GetDetailsOf)(
4756         IShellFolder2* This,
4757         PCUITEMID_CHILD pidl,
4758         UINT iColumn,
4759         SHELLDETAILS *psd);
4760 
4761     HRESULT (STDMETHODCALLTYPE *MapColumnToSCID)(
4762         IShellFolder2* This,
4763         UINT iColumn,
4764         SHCOLUMNID *pscid);
4765 
4766     END_INTERFACE
4767 } IShellFolder2Vtbl;
4768 interface IShellFolder2 {
4769     CONST_VTBL IShellFolder2Vtbl* lpVtbl;
4770 };
4771 
4772 #ifdef COBJMACROS
4773 #ifndef WIDL_C_INLINE_WRAPPERS
4774 /*** IUnknown methods ***/
4775 #define IShellFolder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4776 #define IShellFolder2_AddRef(This) (This)->lpVtbl->AddRef(This)
4777 #define IShellFolder2_Release(This) (This)->lpVtbl->Release(This)
4778 /*** IShellFolder methods ***/
4779 #define IShellFolder2_ParseDisplayName(This,hwnd,pbc,pszDisplayName,pchEaten,ppidl,pdwAttributes) (This)->lpVtbl->ParseDisplayName(This,hwnd,pbc,pszDisplayName,pchEaten,ppidl,pdwAttributes)
4780 #define IShellFolder2_EnumObjects(This,hwnd,grfFlags,ppenumIDList) (This)->lpVtbl->EnumObjects(This,hwnd,grfFlags,ppenumIDList)
4781 #define IShellFolder2_BindToObject(This,pidl,pbc,riid,ppv) (This)->lpVtbl->BindToObject(This,pidl,pbc,riid,ppv)
4782 #define IShellFolder2_BindToStorage(This,pidl,pbc,riid,ppv) (This)->lpVtbl->BindToStorage(This,pidl,pbc,riid,ppv)
4783 #define IShellFolder2_CompareIDs(This,lParam,pidl1,pidl2) (This)->lpVtbl->CompareIDs(This,lParam,pidl1,pidl2)
4784 #define IShellFolder2_CreateViewObject(This,hwndOwner,riid,ppv) (This)->lpVtbl->CreateViewObject(This,hwndOwner,riid,ppv)
4785 #define IShellFolder2_GetAttributesOf(This,cidl,apidl,rgfInOut) (This)->lpVtbl->GetAttributesOf(This,cidl,apidl,rgfInOut)
4786 #define IShellFolder2_GetUIObjectOf(This,hwndOwner,cidl,apidl,riid,rgfReserved,ppv) (This)->lpVtbl->GetUIObjectOf(This,hwndOwner,cidl,apidl,riid,rgfReserved,ppv)
4787 #define IShellFolder2_GetDisplayNameOf(This,pidl,uFlags,pName) (This)->lpVtbl->GetDisplayNameOf(This,pidl,uFlags,pName)
4788 #define IShellFolder2_SetNameOf(This,hwnd,pidl,pszName,uFlags,ppidlOut) (This)->lpVtbl->SetNameOf(This,hwnd,pidl,pszName,uFlags,ppidlOut)
4789 /*** IShellFolder2 methods ***/
4790 #define IShellFolder2_GetDefaultSearchGUID(This,pguid) (This)->lpVtbl->GetDefaultSearchGUID(This,pguid)
4791 #define IShellFolder2_EnumSearches(This,ppenum) (This)->lpVtbl->EnumSearches(This,ppenum)
4792 #define IShellFolder2_GetDefaultColumn(This,dwRes,pSort,pDisplay) (This)->lpVtbl->GetDefaultColumn(This,dwRes,pSort,pDisplay)
4793 #define IShellFolder2_GetDefaultColumnState(This,iColumn,pcsFlags) (This)->lpVtbl->GetDefaultColumnState(This,iColumn,pcsFlags)
4794 #define IShellFolder2_GetDetailsEx(This,pidl,pscid,pv) (This)->lpVtbl->GetDetailsEx(This,pidl,pscid,pv)
4795 #define IShellFolder2_GetDetailsOf(This,pidl,iColumn,psd) (This)->lpVtbl->GetDetailsOf(This,pidl,iColumn,psd)
4796 #define IShellFolder2_MapColumnToSCID(This,iColumn,pscid) (This)->lpVtbl->MapColumnToSCID(This,iColumn,pscid)
4797 #else
4798 /*** IUnknown methods ***/
4799 static FORCEINLINE HRESULT IShellFolder2_QueryInterface(IShellFolder2* This,REFIID riid,void **ppvObject) {
4800     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4801 }
4802 static FORCEINLINE ULONG IShellFolder2_AddRef(IShellFolder2* This) {
4803     return This->lpVtbl->AddRef(This);
4804 }
4805 static FORCEINLINE ULONG IShellFolder2_Release(IShellFolder2* This) {
4806     return This->lpVtbl->Release(This);
4807 }
4808 /*** IShellFolder methods ***/
4809 static FORCEINLINE HRESULT IShellFolder2_ParseDisplayName(IShellFolder2* This,HWND hwnd,IBindCtx *pbc,LPWSTR pszDisplayName,ULONG *pchEaten,PIDLIST_RELATIVE *ppidl,ULONG *pdwAttributes) {
4810     return This->lpVtbl->ParseDisplayName(This,hwnd,pbc,pszDisplayName,pchEaten,ppidl,pdwAttributes);
4811 }
4812 static FORCEINLINE HRESULT IShellFolder2_EnumObjects(IShellFolder2* This,HWND hwnd,SHCONTF grfFlags,IEnumIDList **ppenumIDList) {
4813     return This->lpVtbl->EnumObjects(This,hwnd,grfFlags,ppenumIDList);
4814 }
4815 static FORCEINLINE HRESULT IShellFolder2_BindToObject(IShellFolder2* This,PCUIDLIST_RELATIVE pidl,IBindCtx *pbc,REFIID riid,void **ppv) {
4816     return This->lpVtbl->BindToObject(This,pidl,pbc,riid,ppv);
4817 }
4818 static FORCEINLINE HRESULT IShellFolder2_BindToStorage(IShellFolder2* This,PCUIDLIST_RELATIVE pidl,IBindCtx *pbc,REFIID riid,void **ppv) {
4819     return This->lpVtbl->BindToStorage(This,pidl,pbc,riid,ppv);
4820 }
4821 static FORCEINLINE HRESULT IShellFolder2_CompareIDs(IShellFolder2* This,LPARAM lParam,PCUIDLIST_RELATIVE pidl1,PCUIDLIST_RELATIVE pidl2) {
4822     return This->lpVtbl->CompareIDs(This,lParam,pidl1,pidl2);
4823 }
4824 static FORCEINLINE HRESULT IShellFolder2_CreateViewObject(IShellFolder2* This,HWND hwndOwner,REFIID riid,void **ppv) {
4825     return This->lpVtbl->CreateViewObject(This,hwndOwner,riid,ppv);
4826 }
4827 static FORCEINLINE HRESULT IShellFolder2_GetAttributesOf(IShellFolder2* This,UINT cidl,PCUITEMID_CHILD_ARRAY apidl,SFGAOF *rgfInOut) {
4828     return This->lpVtbl->GetAttributesOf(This,cidl,apidl,rgfInOut);
4829 }
4830 static FORCEINLINE HRESULT IShellFolder2_GetUIObjectOf(IShellFolder2* This,HWND hwndOwner,UINT cidl,PCUITEMID_CHILD_ARRAY apidl,REFIID riid,UINT *rgfReserved,void **ppv) {
4831     return This->lpVtbl->GetUIObjectOf(This,hwndOwner,cidl,apidl,riid,rgfReserved,ppv);
4832 }
4833 static FORCEINLINE HRESULT IShellFolder2_GetDisplayNameOf(IShellFolder2* This,PCUITEMID_CHILD pidl,SHGDNF uFlags,STRRET *pName) {
4834     return This->lpVtbl->GetDisplayNameOf(This,pidl,uFlags,pName);
4835 }
4836 static FORCEINLINE HRESULT IShellFolder2_SetNameOf(IShellFolder2* This,HWND hwnd,PCUITEMID_CHILD pidl,LPCWSTR pszName,SHGDNF uFlags,PITEMID_CHILD *ppidlOut) {
4837     return This->lpVtbl->SetNameOf(This,hwnd,pidl,pszName,uFlags,ppidlOut);
4838 }
4839 /*** IShellFolder2 methods ***/
4840 static FORCEINLINE HRESULT IShellFolder2_GetDefaultSearchGUID(IShellFolder2* This,GUID *pguid) {
4841     return This->lpVtbl->GetDefaultSearchGUID(This,pguid);
4842 }
4843 static FORCEINLINE HRESULT IShellFolder2_EnumSearches(IShellFolder2* This,IEnumExtraSearch **ppenum) {
4844     return This->lpVtbl->EnumSearches(This,ppenum);
4845 }
4846 static FORCEINLINE HRESULT IShellFolder2_GetDefaultColumn(IShellFolder2* This,DWORD dwRes,ULONG *pSort,ULONG *pDisplay) {
4847     return This->lpVtbl->GetDefaultColumn(This,dwRes,pSort,pDisplay);
4848 }
4849 static FORCEINLINE HRESULT IShellFolder2_GetDefaultColumnState(IShellFolder2* This,UINT iColumn,SHCOLSTATEF *pcsFlags) {
4850     return This->lpVtbl->GetDefaultColumnState(This,iColumn,pcsFlags);
4851 }
4852 static FORCEINLINE HRESULT IShellFolder2_GetDetailsEx(IShellFolder2* This,PCUITEMID_CHILD pidl,const SHCOLUMNID *pscid,VARIANT *pv) {
4853     return This->lpVtbl->GetDetailsEx(This,pidl,pscid,pv);
4854 }
4855 static FORCEINLINE HRESULT IShellFolder2_GetDetailsOf(IShellFolder2* This,PCUITEMID_CHILD pidl,UINT iColumn,SHELLDETAILS *psd) {
4856     return This->lpVtbl->GetDetailsOf(This,pidl,iColumn,psd);
4857 }
4858 static FORCEINLINE HRESULT IShellFolder2_MapColumnToSCID(IShellFolder2* This,UINT iColumn,SHCOLUMNID *pscid) {
4859     return This->lpVtbl->MapColumnToSCID(This,iColumn,pscid);
4860 }
4861 #endif
4862 #endif
4863 
4864 #endif
4865 
4866 HRESULT STDMETHODCALLTYPE IShellFolder2_GetDefaultSearchGUID_Proxy(
4867     IShellFolder2* This,
4868     GUID *pguid);
4869 void __RPC_STUB IShellFolder2_GetDefaultSearchGUID_Stub(
4870     IRpcStubBuffer* This,
4871     IRpcChannelBuffer* pRpcChannelBuffer,
4872     PRPC_MESSAGE pRpcMessage,
4873     DWORD* pdwStubPhase);
4874 HRESULT STDMETHODCALLTYPE IShellFolder2_EnumSearches_Proxy(
4875     IShellFolder2* This,
4876     IEnumExtraSearch **ppenum);
4877 void __RPC_STUB IShellFolder2_EnumSearches_Stub(
4878     IRpcStubBuffer* This,
4879     IRpcChannelBuffer* pRpcChannelBuffer,
4880     PRPC_MESSAGE pRpcMessage,
4881     DWORD* pdwStubPhase);
4882 HRESULT STDMETHODCALLTYPE IShellFolder2_GetDefaultColumn_Proxy(
4883     IShellFolder2* This,
4884     DWORD dwRes,
4885     ULONG *pSort,
4886     ULONG *pDisplay);
4887 void __RPC_STUB IShellFolder2_GetDefaultColumn_Stub(
4888     IRpcStubBuffer* This,
4889     IRpcChannelBuffer* pRpcChannelBuffer,
4890     PRPC_MESSAGE pRpcMessage,
4891     DWORD* pdwStubPhase);
4892 HRESULT STDMETHODCALLTYPE IShellFolder2_GetDefaultColumnState_Proxy(
4893     IShellFolder2* This,
4894     UINT iColumn,
4895     SHCOLSTATEF *pcsFlags);
4896 void __RPC_STUB IShellFolder2_GetDefaultColumnState_Stub(
4897     IRpcStubBuffer* This,
4898     IRpcChannelBuffer* pRpcChannelBuffer,
4899     PRPC_MESSAGE pRpcMessage,
4900     DWORD* pdwStubPhase);
4901 HRESULT STDMETHODCALLTYPE IShellFolder2_GetDetailsEx_Proxy(
4902     IShellFolder2* This,
4903     PCUITEMID_CHILD pidl,
4904     const SHCOLUMNID *pscid,
4905     VARIANT *pv);
4906 void __RPC_STUB IShellFolder2_GetDetailsEx_Stub(
4907     IRpcStubBuffer* This,
4908     IRpcChannelBuffer* pRpcChannelBuffer,
4909     PRPC_MESSAGE pRpcMessage,
4910     DWORD* pdwStubPhase);
4911 HRESULT STDMETHODCALLTYPE IShellFolder2_GetDetailsOf_Proxy(
4912     IShellFolder2* This,
4913     PCUITEMID_CHILD pidl,
4914     UINT iColumn,
4915     SHELLDETAILS *psd);
4916 void __RPC_STUB IShellFolder2_GetDetailsOf_Stub(
4917     IRpcStubBuffer* This,
4918     IRpcChannelBuffer* pRpcChannelBuffer,
4919     PRPC_MESSAGE pRpcMessage,
4920     DWORD* pdwStubPhase);
4921 HRESULT STDMETHODCALLTYPE IShellFolder2_MapColumnToSCID_Proxy(
4922     IShellFolder2* This,
4923     UINT iColumn,
4924     SHCOLUMNID *pscid);
4925 void __RPC_STUB IShellFolder2_MapColumnToSCID_Stub(
4926     IRpcStubBuffer* This,
4927     IRpcChannelBuffer* pRpcChannelBuffer,
4928     PRPC_MESSAGE pRpcMessage,
4929     DWORD* pdwStubPhase);
4930 
4931 #endif  /* __IShellFolder2_INTERFACE_DEFINED__ */
4932 
4933 typedef char *LPVIEWSETTINGS;
4934 
4935 typedef enum FOLDERFLAGS {
4936     FWF_NONE = 0x0,
4937     FWF_AUTOARRANGE = 0x1,
4938     FWF_ABBREVIATEDNAMES = 0x2,
4939     FWF_SNAPTOGRID = 0x4,
4940     FWF_OWNERDATA = 0x8,
4941     FWF_BESTFITWINDOW = 0x10,
4942     FWF_DESKTOP = 0x20,
4943     FWF_SINGLESEL = 0x40,
4944     FWF_NOSUBFOLDERS = 0x80,
4945     FWF_TRANSPARENT = 0x100,
4946     FWF_NOCLIENTEDGE = 0x200,
4947     FWF_NOSCROLL = 0x400,
4948     FWF_ALIGNLEFT = 0x800,
4949     FWF_NOICONS = 0x1000,
4950     FWF_SHOWSELALWAYS = 0x2000,
4951     FWF_NOVISIBLE = 0x4000,
4952     FWF_SINGLECLICKACTIVATE = 0x8000,
4953     FWF_NOWEBVIEW = 0x10000,
4954     FWF_HIDEFILENAMES = 0x20000,
4955     FWF_CHECKSELECT = 0x40000,
4956     FWF_NOENUMREFRESH = 0x80000,
4957     FWF_NOGROUPING = 0x100000,
4958     FWF_FULLROWSELECT = 0x200000,
4959     FWF_NOFILTERS = 0x400000,
4960     FWF_NOCOLUMNHEADER = 0x800000,
4961     FWF_NOHEADERINALLVIEWS = 0x1000000,
4962     FWF_EXTENDEDTILES = 0x2000000,
4963     FWF_TRICHECKSELECT = 0x4000000,
4964     FWF_AUTOCHECKSELECT = 0x8000000,
4965     FWF_NOBROWSERVIEWSTATE = 0x10000000,
4966     FWF_SUBSETGROUPS = 0x20000000,
4967     FWF_USESEARCHFOLDER = 0x40000000,
4968     FWF_ALLOWRTLREADING = 0x80000000
4969 } FOLDERFLAGS;
4970 
4971 DEFINE_ENUM_FLAG_OPERATORS(FOLDERFLAGS)
4972 
4973 typedef enum FOLDERVIEWMODE {
4974     FVM_AUTO = -1,
4975     FVM_FIRST = 1,
4976     FVM_ICON = 1,
4977     FVM_SMALLICON = 2,
4978     FVM_LIST = 3,
4979     FVM_DETAILS = 4,
4980     FVM_THUMBNAIL = 5,
4981     FVM_TILE = 6,
4982     FVM_THUMBSTRIP = 7,
4983     FVM_CONTENT = 8,
4984     FVM_LAST = 8
4985 } FOLDERVIEWMODE;
4986 
4987 #if NTDDI_VERSION >= NTDDI_VISTA
4988 typedef enum FOLDERLOGICALVIEWMODE {
4989     FLVM_UNSPECIFIED = -1,
4990     FLVM_FIRST = 1,
4991     FLVM_DETAILS = 1,
4992     FLVM_TILES = 2,
4993     FLVM_ICONS = 3,
4994     FLVM_LIST = 4,
4995     FLVM_CONTENT = 5,
4996     FLVM_LAST = 5
4997 } FOLDERLOGICALVIEWMODE;
4998 #endif
4999 typedef struct FOLDERSETTINGS {
5000     UINT ViewMode;
5001     UINT fFlags;
5002 } FOLDERSETTINGS;
5003 
5004 typedef FOLDERSETTINGS *LPFOLDERSETTINGS;
5005 typedef const FOLDERSETTINGS *LPCFOLDERSETTINGS;
5006 typedef FOLDERSETTINGS *PFOLDERSETTINGS;
5007 
5008 /*****************************************************************************
5009  * IFolderViewOptions interface
5010  */
5011 #ifndef __IFolderViewOptions_INTERFACE_DEFINED__
5012 #define __IFolderViewOptions_INTERFACE_DEFINED__
5013 
5014 typedef enum FOLDERVIEWOPTIONS {
5015     FVO_DEFAULT = 0x0,
5016     FVO_VISTALAYOUT = 0x1,
5017     FVO_CUSTOMPOSITION = 0x2,
5018     FVO_CUSTOMORDERING = 0x4,
5019     FVO_SUPPORTHYPERLINKS = 0x8,
5020     FVO_NOANIMATIONS = 0x10,
5021     FVO_NOSCROLLTIPS = 0x20
5022 } FOLDERVIEWOPTIONS;
5023 
5024 DEFINE_ENUM_FLAG_OPERATORS(FOLDERVIEWOPTIONS)
5025 
5026 DEFINE_GUID(IID_IFolderViewOptions, 0x3cc974d2, 0xb302, 0x4d36, 0xad,0x3e, 0x06,0xd9,0x3f,0x69,0x5d,0x3f);
5027 #if defined(__cplusplus) && !defined(CINTERFACE)
5028 MIDL_INTERFACE("3cc974d2-b302-4d36-ad3e-06d93f695d3f")
5029 IFolderViewOptions : public IUnknown
5030 {
5031     virtual HRESULT STDMETHODCALLTYPE SetFolderViewOptions(
5032         FOLDERVIEWOPTIONS fvoMask,
5033         FOLDERVIEWOPTIONS fvoFlags) = 0;
5034 
5035     virtual HRESULT STDMETHODCALLTYPE GetFolderViewOptions(
5036         FOLDERVIEWOPTIONS *pfvoFlags) = 0;
5037 
5038 };
5039 #ifdef __CRT_UUID_DECL
5040 __CRT_UUID_DECL(IFolderViewOptions, 0x3cc974d2, 0xb302, 0x4d36, 0xad,0x3e, 0x06,0xd9,0x3f,0x69,0x5d,0x3f)
5041 #endif
5042 #else
5043 typedef struct IFolderViewOptionsVtbl {
5044     BEGIN_INTERFACE
5045 
5046     /*** IUnknown methods ***/
5047     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5048         IFolderViewOptions* This,
5049         REFIID riid,
5050         void **ppvObject);
5051 
5052     ULONG (STDMETHODCALLTYPE *AddRef)(
5053         IFolderViewOptions* This);
5054 
5055     ULONG (STDMETHODCALLTYPE *Release)(
5056         IFolderViewOptions* This);
5057 
5058     /*** IFolderViewOptions methods ***/
5059     HRESULT (STDMETHODCALLTYPE *SetFolderViewOptions)(
5060         IFolderViewOptions* This,
5061         FOLDERVIEWOPTIONS fvoMask,
5062         FOLDERVIEWOPTIONS fvoFlags);
5063 
5064     HRESULT (STDMETHODCALLTYPE *GetFolderViewOptions)(
5065         IFolderViewOptions* This,
5066         FOLDERVIEWOPTIONS *pfvoFlags);
5067 
5068     END_INTERFACE
5069 } IFolderViewOptionsVtbl;
5070 interface IFolderViewOptions {
5071     CONST_VTBL IFolderViewOptionsVtbl* lpVtbl;
5072 };
5073 
5074 #ifdef COBJMACROS
5075 #ifndef WIDL_C_INLINE_WRAPPERS
5076 /*** IUnknown methods ***/
5077 #define IFolderViewOptions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5078 #define IFolderViewOptions_AddRef(This) (This)->lpVtbl->AddRef(This)
5079 #define IFolderViewOptions_Release(This) (This)->lpVtbl->Release(This)
5080 /*** IFolderViewOptions methods ***/
5081 #define IFolderViewOptions_SetFolderViewOptions(This,fvoMask,fvoFlags) (This)->lpVtbl->SetFolderViewOptions(This,fvoMask,fvoFlags)
5082 #define IFolderViewOptions_GetFolderViewOptions(This,pfvoFlags) (This)->lpVtbl->GetFolderViewOptions(This,pfvoFlags)
5083 #else
5084 /*** IUnknown methods ***/
5085 static FORCEINLINE HRESULT IFolderViewOptions_QueryInterface(IFolderViewOptions* This,REFIID riid,void **ppvObject) {
5086     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5087 }
5088 static FORCEINLINE ULONG IFolderViewOptions_AddRef(IFolderViewOptions* This) {
5089     return This->lpVtbl->AddRef(This);
5090 }
5091 static FORCEINLINE ULONG IFolderViewOptions_Release(IFolderViewOptions* This) {
5092     return This->lpVtbl->Release(This);
5093 }
5094 /*** IFolderViewOptions methods ***/
5095 static FORCEINLINE HRESULT IFolderViewOptions_SetFolderViewOptions(IFolderViewOptions* This,FOLDERVIEWOPTIONS fvoMask,FOLDERVIEWOPTIONS fvoFlags) {
5096     return This->lpVtbl->SetFolderViewOptions(This,fvoMask,fvoFlags);
5097 }
5098 static FORCEINLINE HRESULT IFolderViewOptions_GetFolderViewOptions(IFolderViewOptions* This,FOLDERVIEWOPTIONS *pfvoFlags) {
5099     return This->lpVtbl->GetFolderViewOptions(This,pfvoFlags);
5100 }
5101 #endif
5102 #endif
5103 
5104 #endif
5105 
5106 HRESULT STDMETHODCALLTYPE IFolderViewOptions_SetFolderViewOptions_Proxy(
5107     IFolderViewOptions* This,
5108     FOLDERVIEWOPTIONS fvoMask,
5109     FOLDERVIEWOPTIONS fvoFlags);
5110 void __RPC_STUB IFolderViewOptions_SetFolderViewOptions_Stub(
5111     IRpcStubBuffer* This,
5112     IRpcChannelBuffer* pRpcChannelBuffer,
5113     PRPC_MESSAGE pRpcMessage,
5114     DWORD* pdwStubPhase);
5115 HRESULT STDMETHODCALLTYPE IFolderViewOptions_GetFolderViewOptions_Proxy(
5116     IFolderViewOptions* This,
5117     FOLDERVIEWOPTIONS *pfvoFlags);
5118 void __RPC_STUB IFolderViewOptions_GetFolderViewOptions_Stub(
5119     IRpcStubBuffer* This,
5120     IRpcChannelBuffer* pRpcChannelBuffer,
5121     PRPC_MESSAGE pRpcMessage,
5122     DWORD* pdwStubPhase);
5123 
5124 #endif  /* __IFolderViewOptions_INTERFACE_DEFINED__ */
5125 
5126 typedef enum _SVSIF {
5127     SVSI_DESELECT = 0x0,
5128     SVSI_SELECT = 0x1,
5129     SVSI_EDIT = 0x3,
5130     SVSI_DESELECTOTHERS = 0x4,
5131     SVSI_ENSUREVISIBLE = 0x8,
5132     SVSI_FOCUSED = 0x10,
5133     SVSI_TRANSLATEPT = 0x20,
5134     SVSI_SELECTIONMARK = 0x40,
5135     SVSI_POSITIONITEM = 0x80,
5136     SVSI_CHECK = 0x100,
5137     SVSI_CHECK2 = 0x200,
5138     SVSI_KEYBOARDSELECT = 0x401,
5139     SVSI_NOTAKEFOCUS = 0x40000000
5140 } _SVSIF;
5141 
5142 #define SVSI_NOSTATECHANGE   ((UINT)0x80000000)
5143 
5144 typedef UINT SVSIF;
5145 
5146 typedef enum _SVGIO {
5147     SVGIO_BACKGROUND = 0x0,
5148     SVGIO_SELECTION = 0x1,
5149     SVGIO_ALLVIEW = 0x2,
5150     SVGIO_CHECKED = 0x3,
5151     SVGIO_TYPE_MASK = 0xf,
5152     SVGIO_FLAG_VIEWORDER = 0x80000000
5153 } _SVGIO;
5154 
5155 DEFINE_ENUM_FLAG_OPERATORS(_SVGIO)
5156 
5157 typedef int SVGIO;
5158 
5159 typedef enum SVUIA_STATUS {
5160     SVUIA_DEACTIVATE = 0,
5161     SVUIA_ACTIVATE_NOFOCUS = 1,
5162     SVUIA_ACTIVATE_FOCUS = 2,
5163     SVUIA_INPLACEACTIVATE = 3
5164 } SVUIA_STATUS;
5165 
5166 #ifdef _FIX_ENABLEMODELESS_CONFLICT
5167 #define EnableModeless EnableModelessSV
5168 #endif
5169 
5170 #if 0
5171 typedef LPARAM LPFNSVADDPROPSHEETPAGE;
5172 #else
5173 #include <prsht.h>
5174 typedef LPFNADDPROPSHEETPAGE LPFNSVADDPROPSHEETPAGE;
5175 #endif
5176 
5177 #ifndef __IShellBrowser_FWD_DEFINED__
5178 #define __IShellBrowser_FWD_DEFINED__
5179 typedef interface IShellBrowser IShellBrowser;
5180 #endif
5181 
5182 
5183 /*****************************************************************************
5184  * IShellView interface
5185  */
5186 #ifndef __IShellView_INTERFACE_DEFINED__
5187 #define __IShellView_INTERFACE_DEFINED__
5188 
5189 DEFINE_GUID(IID_IShellView, 0x000214e3, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5190 #if defined(__cplusplus) && !defined(CINTERFACE)
5191 MIDL_INTERFACE("000214e3-0000-0000-c000-000000000046")
5192 IShellView : public IOleWindow
5193 {
5194     virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator(
5195         MSG *pmsg) = 0;
5196 
5197     virtual HRESULT STDMETHODCALLTYPE EnableModeless(
5198         WINBOOL fEnable) = 0;
5199 
5200     virtual HRESULT STDMETHODCALLTYPE UIActivate(
5201         UINT uState) = 0;
5202 
5203     virtual HRESULT STDMETHODCALLTYPE Refresh(
5204         ) = 0;
5205 
5206     virtual HRESULT STDMETHODCALLTYPE CreateViewWindow(
5207         IShellView *psvPrevious,
5208         LPCFOLDERSETTINGS pfs,
5209         IShellBrowser *psb,
5210         RECT *prcView,
5211         HWND *phWnd) = 0;
5212 
5213     virtual HRESULT STDMETHODCALLTYPE DestroyViewWindow(
5214         ) = 0;
5215 
5216     virtual HRESULT STDMETHODCALLTYPE GetCurrentInfo(
5217         LPFOLDERSETTINGS pfs) = 0;
5218 
5219     virtual HRESULT STDMETHODCALLTYPE AddPropertySheetPages(
5220         DWORD dwReserved,
5221         LPFNSVADDPROPSHEETPAGE pfn,
5222         LPARAM lparam) = 0;
5223 
5224     virtual HRESULT STDMETHODCALLTYPE SaveViewState(
5225         ) = 0;
5226 
5227     virtual HRESULT STDMETHODCALLTYPE SelectItem(
5228         PCUITEMID_CHILD pidlItem,
5229         SVSIF uFlags) = 0;
5230 
5231     virtual HRESULT STDMETHODCALLTYPE GetItemObject(
5232         UINT uItem,
5233         REFIID riid,
5234         void **ppv) = 0;
5235 
5236 };
5237 #ifdef __CRT_UUID_DECL
5238 __CRT_UUID_DECL(IShellView, 0x000214e3, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
5239 #endif
5240 #else
5241 typedef struct IShellViewVtbl {
5242     BEGIN_INTERFACE
5243 
5244     /*** IUnknown methods ***/
5245     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5246         IShellView* This,
5247         REFIID riid,
5248         void **ppvObject);
5249 
5250     ULONG (STDMETHODCALLTYPE *AddRef)(
5251         IShellView* This);
5252 
5253     ULONG (STDMETHODCALLTYPE *Release)(
5254         IShellView* This);
5255 
5256     /*** IOleWindow methods ***/
5257     HRESULT (STDMETHODCALLTYPE *GetWindow)(
5258         IShellView* This,
5259         HWND *phwnd);
5260 
5261     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
5262         IShellView* This,
5263         WINBOOL fEnterMode);
5264 
5265     /*** IShellView methods ***/
5266     HRESULT (STDMETHODCALLTYPE *TranslateAccelerator)(
5267         IShellView* This,
5268         MSG *pmsg);
5269 
5270     HRESULT (STDMETHODCALLTYPE *EnableModeless)(
5271         IShellView* This,
5272         WINBOOL fEnable);
5273 
5274     HRESULT (STDMETHODCALLTYPE *UIActivate)(
5275         IShellView* This,
5276         UINT uState);
5277 
5278     HRESULT (STDMETHODCALLTYPE *Refresh)(
5279         IShellView* This);
5280 
5281     HRESULT (STDMETHODCALLTYPE *CreateViewWindow)(
5282         IShellView* This,
5283         IShellView *psvPrevious,
5284         LPCFOLDERSETTINGS pfs,
5285         IShellBrowser *psb,
5286         RECT *prcView,
5287         HWND *phWnd);
5288 
5289     HRESULT (STDMETHODCALLTYPE *DestroyViewWindow)(
5290         IShellView* This);
5291 
5292     HRESULT (STDMETHODCALLTYPE *GetCurrentInfo)(
5293         IShellView* This,
5294         LPFOLDERSETTINGS pfs);
5295 
5296     HRESULT (STDMETHODCALLTYPE *AddPropertySheetPages)(
5297         IShellView* This,
5298         DWORD dwReserved,
5299         LPFNSVADDPROPSHEETPAGE pfn,
5300         LPARAM lparam);
5301 
5302     HRESULT (STDMETHODCALLTYPE *SaveViewState)(
5303         IShellView* This);
5304 
5305     HRESULT (STDMETHODCALLTYPE *SelectItem)(
5306         IShellView* This,
5307         PCUITEMID_CHILD pidlItem,
5308         SVSIF uFlags);
5309 
5310     HRESULT (STDMETHODCALLTYPE *GetItemObject)(
5311         IShellView* This,
5312         UINT uItem,
5313         REFIID riid,
5314         void **ppv);
5315 
5316     END_INTERFACE
5317 } IShellViewVtbl;
5318 interface IShellView {
5319     CONST_VTBL IShellViewVtbl* lpVtbl;
5320 };
5321 
5322 #ifdef COBJMACROS
5323 #ifndef WIDL_C_INLINE_WRAPPERS
5324 /*** IUnknown methods ***/
5325 #define IShellView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5326 #define IShellView_AddRef(This) (This)->lpVtbl->AddRef(This)
5327 #define IShellView_Release(This) (This)->lpVtbl->Release(This)
5328 /*** IOleWindow methods ***/
5329 #define IShellView_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
5330 #define IShellView_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
5331 /*** IShellView methods ***/
5332 #define IShellView_TranslateAccelerator(This,pmsg) (This)->lpVtbl->TranslateAccelerator(This,pmsg)
5333 #define IShellView_EnableModeless(This,fEnable) (This)->lpVtbl->EnableModeless(This,fEnable)
5334 #define IShellView_UIActivate(This,uState) (This)->lpVtbl->UIActivate(This,uState)
5335 #define IShellView_Refresh(This) (This)->lpVtbl->Refresh(This)
5336 #define IShellView_CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd) (This)->lpVtbl->CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd)
5337 #define IShellView_DestroyViewWindow(This) (This)->lpVtbl->DestroyViewWindow(This)
5338 #define IShellView_GetCurrentInfo(This,pfs) (This)->lpVtbl->GetCurrentInfo(This,pfs)
5339 #define IShellView_AddPropertySheetPages(This,dwReserved,pfn,lparam) (This)->lpVtbl->AddPropertySheetPages(This,dwReserved,pfn,lparam)
5340 #define IShellView_SaveViewState(This) (This)->lpVtbl->SaveViewState(This)
5341 #define IShellView_SelectItem(This,pidlItem,uFlags) (This)->lpVtbl->SelectItem(This,pidlItem,uFlags)
5342 #define IShellView_GetItemObject(This,uItem,riid,ppv) (This)->lpVtbl->GetItemObject(This,uItem,riid,ppv)
5343 #else
5344 /*** IUnknown methods ***/
5345 static FORCEINLINE HRESULT IShellView_QueryInterface(IShellView* This,REFIID riid,void **ppvObject) {
5346     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5347 }
5348 static FORCEINLINE ULONG IShellView_AddRef(IShellView* This) {
5349     return This->lpVtbl->AddRef(This);
5350 }
5351 static FORCEINLINE ULONG IShellView_Release(IShellView* This) {
5352     return This->lpVtbl->Release(This);
5353 }
5354 /*** IOleWindow methods ***/
5355 static FORCEINLINE HRESULT IShellView_GetWindow(IShellView* This,HWND *phwnd) {
5356     return This->lpVtbl->GetWindow(This,phwnd);
5357 }
5358 static FORCEINLINE HRESULT IShellView_ContextSensitiveHelp(IShellView* This,WINBOOL fEnterMode) {
5359     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
5360 }
5361 /*** IShellView methods ***/
5362 static FORCEINLINE HRESULT IShellView_TranslateAccelerator(IShellView* This,MSG *pmsg) {
5363     return This->lpVtbl->TranslateAccelerator(This,pmsg);
5364 }
5365 static FORCEINLINE HRESULT IShellView_EnableModeless(IShellView* This,WINBOOL fEnable) {
5366     return This->lpVtbl->EnableModeless(This,fEnable);
5367 }
5368 static FORCEINLINE HRESULT IShellView_UIActivate(IShellView* This,UINT uState) {
5369     return This->lpVtbl->UIActivate(This,uState);
5370 }
5371 static FORCEINLINE HRESULT IShellView_Refresh(IShellView* This) {
5372     return This->lpVtbl->Refresh(This);
5373 }
5374 static FORCEINLINE HRESULT IShellView_CreateViewWindow(IShellView* This,IShellView *psvPrevious,LPCFOLDERSETTINGS pfs,IShellBrowser *psb,RECT *prcView,HWND *phWnd) {
5375     return This->lpVtbl->CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd);
5376 }
5377 static FORCEINLINE HRESULT IShellView_DestroyViewWindow(IShellView* This) {
5378     return This->lpVtbl->DestroyViewWindow(This);
5379 }
5380 static FORCEINLINE HRESULT IShellView_GetCurrentInfo(IShellView* This,LPFOLDERSETTINGS pfs) {
5381     return This->lpVtbl->GetCurrentInfo(This,pfs);
5382 }
5383 static FORCEINLINE HRESULT IShellView_AddPropertySheetPages(IShellView* This,DWORD dwReserved,LPFNSVADDPROPSHEETPAGE pfn,LPARAM lparam) {
5384     return This->lpVtbl->AddPropertySheetPages(This,dwReserved,pfn,lparam);
5385 }
5386 static FORCEINLINE HRESULT IShellView_SaveViewState(IShellView* This) {
5387     return This->lpVtbl->SaveViewState(This);
5388 }
5389 static FORCEINLINE HRESULT IShellView_SelectItem(IShellView* This,PCUITEMID_CHILD pidlItem,SVSIF uFlags) {
5390     return This->lpVtbl->SelectItem(This,pidlItem,uFlags);
5391 }
5392 static FORCEINLINE HRESULT IShellView_GetItemObject(IShellView* This,UINT uItem,REFIID riid,void **ppv) {
5393     return This->lpVtbl->GetItemObject(This,uItem,riid,ppv);
5394 }
5395 #endif
5396 #endif
5397 
5398 #endif
5399 
5400 HRESULT STDMETHODCALLTYPE IShellView_TranslateAccelerator_Proxy(
5401     IShellView* This,
5402     MSG *pmsg);
5403 void __RPC_STUB IShellView_TranslateAccelerator_Stub(
5404     IRpcStubBuffer* This,
5405     IRpcChannelBuffer* pRpcChannelBuffer,
5406     PRPC_MESSAGE pRpcMessage,
5407     DWORD* pdwStubPhase);
5408 HRESULT STDMETHODCALLTYPE IShellView_EnableModeless_Proxy(
5409     IShellView* This,
5410     WINBOOL fEnable);
5411 void __RPC_STUB IShellView_EnableModeless_Stub(
5412     IRpcStubBuffer* This,
5413     IRpcChannelBuffer* pRpcChannelBuffer,
5414     PRPC_MESSAGE pRpcMessage,
5415     DWORD* pdwStubPhase);
5416 HRESULT STDMETHODCALLTYPE IShellView_UIActivate_Proxy(
5417     IShellView* This,
5418     UINT uState);
5419 void __RPC_STUB IShellView_UIActivate_Stub(
5420     IRpcStubBuffer* This,
5421     IRpcChannelBuffer* pRpcChannelBuffer,
5422     PRPC_MESSAGE pRpcMessage,
5423     DWORD* pdwStubPhase);
5424 HRESULT STDMETHODCALLTYPE IShellView_Refresh_Proxy(
5425     IShellView* This);
5426 void __RPC_STUB IShellView_Refresh_Stub(
5427     IRpcStubBuffer* This,
5428     IRpcChannelBuffer* pRpcChannelBuffer,
5429     PRPC_MESSAGE pRpcMessage,
5430     DWORD* pdwStubPhase);
5431 HRESULT STDMETHODCALLTYPE IShellView_CreateViewWindow_Proxy(
5432     IShellView* This,
5433     IShellView *psvPrevious,
5434     LPCFOLDERSETTINGS pfs,
5435     IShellBrowser *psb,
5436     RECT *prcView,
5437     HWND *phWnd);
5438 void __RPC_STUB IShellView_CreateViewWindow_Stub(
5439     IRpcStubBuffer* This,
5440     IRpcChannelBuffer* pRpcChannelBuffer,
5441     PRPC_MESSAGE pRpcMessage,
5442     DWORD* pdwStubPhase);
5443 HRESULT STDMETHODCALLTYPE IShellView_DestroyViewWindow_Proxy(
5444     IShellView* This);
5445 void __RPC_STUB IShellView_DestroyViewWindow_Stub(
5446     IRpcStubBuffer* This,
5447     IRpcChannelBuffer* pRpcChannelBuffer,
5448     PRPC_MESSAGE pRpcMessage,
5449     DWORD* pdwStubPhase);
5450 HRESULT STDMETHODCALLTYPE IShellView_GetCurrentInfo_Proxy(
5451     IShellView* This,
5452     LPFOLDERSETTINGS pfs);
5453 void __RPC_STUB IShellView_GetCurrentInfo_Stub(
5454     IRpcStubBuffer* This,
5455     IRpcChannelBuffer* pRpcChannelBuffer,
5456     PRPC_MESSAGE pRpcMessage,
5457     DWORD* pdwStubPhase);
5458 HRESULT STDMETHODCALLTYPE IShellView_SaveViewState_Proxy(
5459     IShellView* This);
5460 void __RPC_STUB IShellView_SaveViewState_Stub(
5461     IRpcStubBuffer* This,
5462     IRpcChannelBuffer* pRpcChannelBuffer,
5463     PRPC_MESSAGE pRpcMessage,
5464     DWORD* pdwStubPhase);
5465 HRESULT STDMETHODCALLTYPE IShellView_SelectItem_Proxy(
5466     IShellView* This,
5467     PCUITEMID_CHILD pidlItem,
5468     SVSIF uFlags);
5469 void __RPC_STUB IShellView_SelectItem_Stub(
5470     IRpcStubBuffer* This,
5471     IRpcChannelBuffer* pRpcChannelBuffer,
5472     PRPC_MESSAGE pRpcMessage,
5473     DWORD* pdwStubPhase);
5474 HRESULT STDMETHODCALLTYPE IShellView_GetItemObject_Proxy(
5475     IShellView* This,
5476     UINT uItem,
5477     REFIID riid,
5478     void **ppv);
5479 void __RPC_STUB IShellView_GetItemObject_Stub(
5480     IRpcStubBuffer* This,
5481     IRpcChannelBuffer* pRpcChannelBuffer,
5482     PRPC_MESSAGE pRpcMessage,
5483     DWORD* pdwStubPhase);
5484 
5485 #endif  /* __IShellView_INTERFACE_DEFINED__ */
5486 
5487 typedef IShellView *LPSHELLVIEW;
5488 
5489 /*****************************************************************************
5490  * IShellView2 interface
5491  */
5492 #ifndef __IShellView2_INTERFACE_DEFINED__
5493 #define __IShellView2_INTERFACE_DEFINED__
5494 
5495 typedef GUID SHELLVIEWID;
5496 
5497 #define SV2GV_CURRENTVIEW ((UINT)-1)
5498 #define SV2GV_DEFAULTVIEW ((UINT)-2)
5499 
5500 #include <pshpack8.h>
5501 typedef struct _SV2CVW2_PARAMS {
5502     DWORD cbSize;
5503     IShellView *psvPrev;
5504     LPCFOLDERSETTINGS pfs;
5505     IShellBrowser *psbOwner;
5506     RECT *prcView;
5507     const SHELLVIEWID *pvid;
5508     HWND hwndView;
5509 } SV2CVW2_PARAMS;
5510 typedef struct _SV2CVW2_PARAMS *LPSV2CVW2_PARAMS;
5511 #include <poppack.h>
5512 
5513 DEFINE_GUID(IID_IShellView2, 0x88e39e80, 0x3578, 0x11cf, 0xae,0x69, 0x08,0x00,0x2b,0x2e,0x12,0x62);
5514 #if defined(__cplusplus) && !defined(CINTERFACE)
5515 MIDL_INTERFACE("88e39e80-3578-11cf-ae69-08002b2e1262")
5516 IShellView2 : public IShellView
5517 {
5518     virtual HRESULT STDMETHODCALLTYPE GetView(
5519         SHELLVIEWID *pvid,
5520         ULONG uView) = 0;
5521 
5522     virtual HRESULT STDMETHODCALLTYPE CreateViewWindow2(
5523         LPSV2CVW2_PARAMS lpParams) = 0;
5524 
5525     virtual HRESULT STDMETHODCALLTYPE HandleRename(
5526         PCUITEMID_CHILD pidlNew) = 0;
5527 
5528     virtual HRESULT STDMETHODCALLTYPE SelectAndPositionItem(
5529         PCUITEMID_CHILD pidlItem,
5530         UINT uFlags,
5531         POINT *ppt) = 0;
5532 
5533 };
5534 #ifdef __CRT_UUID_DECL
5535 __CRT_UUID_DECL(IShellView2, 0x88e39e80, 0x3578, 0x11cf, 0xae,0x69, 0x08,0x00,0x2b,0x2e,0x12,0x62)
5536 #endif
5537 #else
5538 typedef struct IShellView2Vtbl {
5539     BEGIN_INTERFACE
5540 
5541     /*** IUnknown methods ***/
5542     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5543         IShellView2* This,
5544         REFIID riid,
5545         void **ppvObject);
5546 
5547     ULONG (STDMETHODCALLTYPE *AddRef)(
5548         IShellView2* This);
5549 
5550     ULONG (STDMETHODCALLTYPE *Release)(
5551         IShellView2* This);
5552 
5553     /*** IOleWindow methods ***/
5554     HRESULT (STDMETHODCALLTYPE *GetWindow)(
5555         IShellView2* This,
5556         HWND *phwnd);
5557 
5558     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
5559         IShellView2* This,
5560         WINBOOL fEnterMode);
5561 
5562     /*** IShellView methods ***/
5563     HRESULT (STDMETHODCALLTYPE *TranslateAccelerator)(
5564         IShellView2* This,
5565         MSG *pmsg);
5566 
5567     HRESULT (STDMETHODCALLTYPE *EnableModeless)(
5568         IShellView2* This,
5569         WINBOOL fEnable);
5570 
5571     HRESULT (STDMETHODCALLTYPE *UIActivate)(
5572         IShellView2* This,
5573         UINT uState);
5574 
5575     HRESULT (STDMETHODCALLTYPE *Refresh)(
5576         IShellView2* This);
5577 
5578     HRESULT (STDMETHODCALLTYPE *CreateViewWindow)(
5579         IShellView2* This,
5580         IShellView *psvPrevious,
5581         LPCFOLDERSETTINGS pfs,
5582         IShellBrowser *psb,
5583         RECT *prcView,
5584         HWND *phWnd);
5585 
5586     HRESULT (STDMETHODCALLTYPE *DestroyViewWindow)(
5587         IShellView2* This);
5588 
5589     HRESULT (STDMETHODCALLTYPE *GetCurrentInfo)(
5590         IShellView2* This,
5591         LPFOLDERSETTINGS pfs);
5592 
5593     HRESULT (STDMETHODCALLTYPE *AddPropertySheetPages)(
5594         IShellView2* This,
5595         DWORD dwReserved,
5596         LPFNSVADDPROPSHEETPAGE pfn,
5597         LPARAM lparam);
5598 
5599     HRESULT (STDMETHODCALLTYPE *SaveViewState)(
5600         IShellView2* This);
5601 
5602     HRESULT (STDMETHODCALLTYPE *SelectItem)(
5603         IShellView2* This,
5604         PCUITEMID_CHILD pidlItem,
5605         SVSIF uFlags);
5606 
5607     HRESULT (STDMETHODCALLTYPE *GetItemObject)(
5608         IShellView2* This,
5609         UINT uItem,
5610         REFIID riid,
5611         void **ppv);
5612 
5613     /*** IShellView2 methods ***/
5614     HRESULT (STDMETHODCALLTYPE *GetView)(
5615         IShellView2* This,
5616         SHELLVIEWID *pvid,
5617         ULONG uView);
5618 
5619     HRESULT (STDMETHODCALLTYPE *CreateViewWindow2)(
5620         IShellView2* This,
5621         LPSV2CVW2_PARAMS lpParams);
5622 
5623     HRESULT (STDMETHODCALLTYPE *HandleRename)(
5624         IShellView2* This,
5625         PCUITEMID_CHILD pidlNew);
5626 
5627     HRESULT (STDMETHODCALLTYPE *SelectAndPositionItem)(
5628         IShellView2* This,
5629         PCUITEMID_CHILD pidlItem,
5630         UINT uFlags,
5631         POINT *ppt);
5632 
5633     END_INTERFACE
5634 } IShellView2Vtbl;
5635 interface IShellView2 {
5636     CONST_VTBL IShellView2Vtbl* lpVtbl;
5637 };
5638 
5639 #ifdef COBJMACROS
5640 #ifndef WIDL_C_INLINE_WRAPPERS
5641 /*** IUnknown methods ***/
5642 #define IShellView2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5643 #define IShellView2_AddRef(This) (This)->lpVtbl->AddRef(This)
5644 #define IShellView2_Release(This) (This)->lpVtbl->Release(This)
5645 /*** IOleWindow methods ***/
5646 #define IShellView2_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
5647 #define IShellView2_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
5648 /*** IShellView methods ***/
5649 #define IShellView2_TranslateAccelerator(This,pmsg) (This)->lpVtbl->TranslateAccelerator(This,pmsg)
5650 #define IShellView2_EnableModeless(This,fEnable) (This)->lpVtbl->EnableModeless(This,fEnable)
5651 #define IShellView2_UIActivate(This,uState) (This)->lpVtbl->UIActivate(This,uState)
5652 #define IShellView2_Refresh(This) (This)->lpVtbl->Refresh(This)
5653 #define IShellView2_CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd) (This)->lpVtbl->CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd)
5654 #define IShellView2_DestroyViewWindow(This) (This)->lpVtbl->DestroyViewWindow(This)
5655 #define IShellView2_GetCurrentInfo(This,pfs) (This)->lpVtbl->GetCurrentInfo(This,pfs)
5656 #define IShellView2_AddPropertySheetPages(This,dwReserved,pfn,lparam) (This)->lpVtbl->AddPropertySheetPages(This,dwReserved,pfn,lparam)
5657 #define IShellView2_SaveViewState(This) (This)->lpVtbl->SaveViewState(This)
5658 #define IShellView2_SelectItem(This,pidlItem,uFlags) (This)->lpVtbl->SelectItem(This,pidlItem,uFlags)
5659 #define IShellView2_GetItemObject(This,uItem,riid,ppv) (This)->lpVtbl->GetItemObject(This,uItem,riid,ppv)
5660 /*** IShellView2 methods ***/
5661 #define IShellView2_GetView(This,pvid,uView) (This)->lpVtbl->GetView(This,pvid,uView)
5662 #define IShellView2_CreateViewWindow2(This,lpParams) (This)->lpVtbl->CreateViewWindow2(This,lpParams)
5663 #define IShellView2_HandleRename(This,pidlNew) (This)->lpVtbl->HandleRename(This,pidlNew)
5664 #define IShellView2_SelectAndPositionItem(This,pidlItem,uFlags,ppt) (This)->lpVtbl->SelectAndPositionItem(This,pidlItem,uFlags,ppt)
5665 #else
5666 /*** IUnknown methods ***/
5667 static FORCEINLINE HRESULT IShellView2_QueryInterface(IShellView2* This,REFIID riid,void **ppvObject) {
5668     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5669 }
5670 static FORCEINLINE ULONG IShellView2_AddRef(IShellView2* This) {
5671     return This->lpVtbl->AddRef(This);
5672 }
5673 static FORCEINLINE ULONG IShellView2_Release(IShellView2* This) {
5674     return This->lpVtbl->Release(This);
5675 }
5676 /*** IOleWindow methods ***/
5677 static FORCEINLINE HRESULT IShellView2_GetWindow(IShellView2* This,HWND *phwnd) {
5678     return This->lpVtbl->GetWindow(This,phwnd);
5679 }
5680 static FORCEINLINE HRESULT IShellView2_ContextSensitiveHelp(IShellView2* This,WINBOOL fEnterMode) {
5681     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
5682 }
5683 /*** IShellView methods ***/
5684 static FORCEINLINE HRESULT IShellView2_TranslateAccelerator(IShellView2* This,MSG *pmsg) {
5685     return This->lpVtbl->TranslateAccelerator(This,pmsg);
5686 }
5687 static FORCEINLINE HRESULT IShellView2_EnableModeless(IShellView2* This,WINBOOL fEnable) {
5688     return This->lpVtbl->EnableModeless(This,fEnable);
5689 }
5690 static FORCEINLINE HRESULT IShellView2_UIActivate(IShellView2* This,UINT uState) {
5691     return This->lpVtbl->UIActivate(This,uState);
5692 }
5693 static FORCEINLINE HRESULT IShellView2_Refresh(IShellView2* This) {
5694     return This->lpVtbl->Refresh(This);
5695 }
5696 static FORCEINLINE HRESULT IShellView2_CreateViewWindow(IShellView2* This,IShellView *psvPrevious,LPCFOLDERSETTINGS pfs,IShellBrowser *psb,RECT *prcView,HWND *phWnd) {
5697     return This->lpVtbl->CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd);
5698 }
5699 static FORCEINLINE HRESULT IShellView2_DestroyViewWindow(IShellView2* This) {
5700     return This->lpVtbl->DestroyViewWindow(This);
5701 }
5702 static FORCEINLINE HRESULT IShellView2_GetCurrentInfo(IShellView2* This,LPFOLDERSETTINGS pfs) {
5703     return This->lpVtbl->GetCurrentInfo(This,pfs);
5704 }
5705 static FORCEINLINE HRESULT IShellView2_AddPropertySheetPages(IShellView2* This,DWORD dwReserved,LPFNSVADDPROPSHEETPAGE pfn,LPARAM lparam) {
5706     return This->lpVtbl->AddPropertySheetPages(This,dwReserved,pfn,lparam);
5707 }
5708 static FORCEINLINE HRESULT IShellView2_SaveViewState(IShellView2* This) {
5709     return This->lpVtbl->SaveViewState(This);
5710 }
5711 static FORCEINLINE HRESULT IShellView2_SelectItem(IShellView2* This,PCUITEMID_CHILD pidlItem,SVSIF uFlags) {
5712     return This->lpVtbl->SelectItem(This,pidlItem,uFlags);
5713 }
5714 static FORCEINLINE HRESULT IShellView2_GetItemObject(IShellView2* This,UINT uItem,REFIID riid,void **ppv) {
5715     return This->lpVtbl->GetItemObject(This,uItem,riid,ppv);
5716 }
5717 /*** IShellView2 methods ***/
5718 static FORCEINLINE HRESULT IShellView2_GetView(IShellView2* This,SHELLVIEWID *pvid,ULONG uView) {
5719     return This->lpVtbl->GetView(This,pvid,uView);
5720 }
5721 static FORCEINLINE HRESULT IShellView2_CreateViewWindow2(IShellView2* This,LPSV2CVW2_PARAMS lpParams) {
5722     return This->lpVtbl->CreateViewWindow2(This,lpParams);
5723 }
5724 static FORCEINLINE HRESULT IShellView2_HandleRename(IShellView2* This,PCUITEMID_CHILD pidlNew) {
5725     return This->lpVtbl->HandleRename(This,pidlNew);
5726 }
5727 static FORCEINLINE HRESULT IShellView2_SelectAndPositionItem(IShellView2* This,PCUITEMID_CHILD pidlItem,UINT uFlags,POINT *ppt) {
5728     return This->lpVtbl->SelectAndPositionItem(This,pidlItem,uFlags,ppt);
5729 }
5730 #endif
5731 #endif
5732 
5733 #endif
5734 
5735 HRESULT STDMETHODCALLTYPE IShellView2_GetView_Proxy(
5736     IShellView2* This,
5737     SHELLVIEWID *pvid,
5738     ULONG uView);
5739 void __RPC_STUB IShellView2_GetView_Stub(
5740     IRpcStubBuffer* This,
5741     IRpcChannelBuffer* pRpcChannelBuffer,
5742     PRPC_MESSAGE pRpcMessage,
5743     DWORD* pdwStubPhase);
5744 HRESULT STDMETHODCALLTYPE IShellView2_CreateViewWindow2_Proxy(
5745     IShellView2* This,
5746     LPSV2CVW2_PARAMS lpParams);
5747 void __RPC_STUB IShellView2_CreateViewWindow2_Stub(
5748     IRpcStubBuffer* This,
5749     IRpcChannelBuffer* pRpcChannelBuffer,
5750     PRPC_MESSAGE pRpcMessage,
5751     DWORD* pdwStubPhase);
5752 HRESULT STDMETHODCALLTYPE IShellView2_HandleRename_Proxy(
5753     IShellView2* This,
5754     PCUITEMID_CHILD pidlNew);
5755 void __RPC_STUB IShellView2_HandleRename_Stub(
5756     IRpcStubBuffer* This,
5757     IRpcChannelBuffer* pRpcChannelBuffer,
5758     PRPC_MESSAGE pRpcMessage,
5759     DWORD* pdwStubPhase);
5760 HRESULT STDMETHODCALLTYPE IShellView2_SelectAndPositionItem_Proxy(
5761     IShellView2* This,
5762     PCUITEMID_CHILD pidlItem,
5763     UINT uFlags,
5764     POINT *ppt);
5765 void __RPC_STUB IShellView2_SelectAndPositionItem_Stub(
5766     IRpcStubBuffer* This,
5767     IRpcChannelBuffer* pRpcChannelBuffer,
5768     PRPC_MESSAGE pRpcMessage,
5769     DWORD* pdwStubPhase);
5770 
5771 #endif  /* __IShellView2_INTERFACE_DEFINED__ */
5772 
5773 
5774 #if NTDDI_VERSION >= NTDDI_VISTA
5775 /*****************************************************************************
5776  * IShellView3 interface
5777  */
5778 #ifndef __IShellView3_INTERFACE_DEFINED__
5779 #define __IShellView3_INTERFACE_DEFINED__
5780 
5781 enum _SV3CVW3_FLAGS {
5782     SV3CVW3_DEFAULT = 0x0,
5783     SV3CVW3_NONINTERACTIVE = 0x1,
5784     SV3CVW3_FORCEVIEWMODE = 0x2,
5785     SV3CVW3_FORCEFOLDERFLAGS = 0x4
5786 };
5787 
5788 
5789 typedef DWORD SV3CVW3_FLAGS;
5790 
5791 DEFINE_GUID(IID_IShellView3, 0xec39fa88, 0xf8af, 0x41c5, 0x84,0x21, 0x38,0xbe,0xd2,0x8f,0x46,0x73);
5792 #if defined(__cplusplus) && !defined(CINTERFACE)
5793 MIDL_INTERFACE("ec39fa88-f8af-41c5-8421-38bed28f4673")
5794 IShellView3 : public IShellView2
5795 {
5796     virtual HRESULT STDMETHODCALLTYPE CreateViewWindow3(
5797         IShellBrowser *psbOwner,
5798         IShellView *psvPrev,
5799         SV3CVW3_FLAGS dwViewFlags,
5800         FOLDERFLAGS dwMask,
5801         FOLDERFLAGS dwFlags,
5802         FOLDERVIEWMODE fvMode,
5803         const SHELLVIEWID *pvid,
5804         const RECT *prcView,
5805         HWND *phwndView) = 0;
5806 
5807 };
5808 #ifdef __CRT_UUID_DECL
5809 __CRT_UUID_DECL(IShellView3, 0xec39fa88, 0xf8af, 0x41c5, 0x84,0x21, 0x38,0xbe,0xd2,0x8f,0x46,0x73)
5810 #endif
5811 #else
5812 typedef struct IShellView3Vtbl {
5813     BEGIN_INTERFACE
5814 
5815     /*** IUnknown methods ***/
5816     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5817         IShellView3* This,
5818         REFIID riid,
5819         void **ppvObject);
5820 
5821     ULONG (STDMETHODCALLTYPE *AddRef)(
5822         IShellView3* This);
5823 
5824     ULONG (STDMETHODCALLTYPE *Release)(
5825         IShellView3* This);
5826 
5827     /*** IOleWindow methods ***/
5828     HRESULT (STDMETHODCALLTYPE *GetWindow)(
5829         IShellView3* This,
5830         HWND *phwnd);
5831 
5832     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
5833         IShellView3* This,
5834         WINBOOL fEnterMode);
5835 
5836     /*** IShellView methods ***/
5837     HRESULT (STDMETHODCALLTYPE *TranslateAccelerator)(
5838         IShellView3* This,
5839         MSG *pmsg);
5840 
5841     HRESULT (STDMETHODCALLTYPE *EnableModeless)(
5842         IShellView3* This,
5843         WINBOOL fEnable);
5844 
5845     HRESULT (STDMETHODCALLTYPE *UIActivate)(
5846         IShellView3* This,
5847         UINT uState);
5848 
5849     HRESULT (STDMETHODCALLTYPE *Refresh)(
5850         IShellView3* This);
5851 
5852     HRESULT (STDMETHODCALLTYPE *CreateViewWindow)(
5853         IShellView3* This,
5854         IShellView *psvPrevious,
5855         LPCFOLDERSETTINGS pfs,
5856         IShellBrowser *psb,
5857         RECT *prcView,
5858         HWND *phWnd);
5859 
5860     HRESULT (STDMETHODCALLTYPE *DestroyViewWindow)(
5861         IShellView3* This);
5862 
5863     HRESULT (STDMETHODCALLTYPE *GetCurrentInfo)(
5864         IShellView3* This,
5865         LPFOLDERSETTINGS pfs);
5866 
5867     HRESULT (STDMETHODCALLTYPE *AddPropertySheetPages)(
5868         IShellView3* This,
5869         DWORD dwReserved,
5870         LPFNSVADDPROPSHEETPAGE pfn,
5871         LPARAM lparam);
5872 
5873     HRESULT (STDMETHODCALLTYPE *SaveViewState)(
5874         IShellView3* This);
5875 
5876     HRESULT (STDMETHODCALLTYPE *SelectItem)(
5877         IShellView3* This,
5878         PCUITEMID_CHILD pidlItem,
5879         SVSIF uFlags);
5880 
5881     HRESULT (STDMETHODCALLTYPE *GetItemObject)(
5882         IShellView3* This,
5883         UINT uItem,
5884         REFIID riid,
5885         void **ppv);
5886 
5887     /*** IShellView2 methods ***/
5888     HRESULT (STDMETHODCALLTYPE *GetView)(
5889         IShellView3* This,
5890         SHELLVIEWID *pvid,
5891         ULONG uView);
5892 
5893     HRESULT (STDMETHODCALLTYPE *CreateViewWindow2)(
5894         IShellView3* This,
5895         LPSV2CVW2_PARAMS lpParams);
5896 
5897     HRESULT (STDMETHODCALLTYPE *HandleRename)(
5898         IShellView3* This,
5899         PCUITEMID_CHILD pidlNew);
5900 
5901     HRESULT (STDMETHODCALLTYPE *SelectAndPositionItem)(
5902         IShellView3* This,
5903         PCUITEMID_CHILD pidlItem,
5904         UINT uFlags,
5905         POINT *ppt);
5906 
5907     /*** IShellView3 methods ***/
5908     HRESULT (STDMETHODCALLTYPE *CreateViewWindow3)(
5909         IShellView3* This,
5910         IShellBrowser *psbOwner,
5911         IShellView *psvPrev,
5912         SV3CVW3_FLAGS dwViewFlags,
5913         FOLDERFLAGS dwMask,
5914         FOLDERFLAGS dwFlags,
5915         FOLDERVIEWMODE fvMode,
5916         const SHELLVIEWID *pvid,
5917         const RECT *prcView,
5918         HWND *phwndView);
5919 
5920     END_INTERFACE
5921 } IShellView3Vtbl;
5922 interface IShellView3 {
5923     CONST_VTBL IShellView3Vtbl* lpVtbl;
5924 };
5925 
5926 #ifdef COBJMACROS
5927 #ifndef WIDL_C_INLINE_WRAPPERS
5928 /*** IUnknown methods ***/
5929 #define IShellView3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5930 #define IShellView3_AddRef(This) (This)->lpVtbl->AddRef(This)
5931 #define IShellView3_Release(This) (This)->lpVtbl->Release(This)
5932 /*** IOleWindow methods ***/
5933 #define IShellView3_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
5934 #define IShellView3_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
5935 /*** IShellView methods ***/
5936 #define IShellView3_TranslateAccelerator(This,pmsg) (This)->lpVtbl->TranslateAccelerator(This,pmsg)
5937 #define IShellView3_EnableModeless(This,fEnable) (This)->lpVtbl->EnableModeless(This,fEnable)
5938 #define IShellView3_UIActivate(This,uState) (This)->lpVtbl->UIActivate(This,uState)
5939 #define IShellView3_Refresh(This) (This)->lpVtbl->Refresh(This)
5940 #define IShellView3_CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd) (This)->lpVtbl->CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd)
5941 #define IShellView3_DestroyViewWindow(This) (This)->lpVtbl->DestroyViewWindow(This)
5942 #define IShellView3_GetCurrentInfo(This,pfs) (This)->lpVtbl->GetCurrentInfo(This,pfs)
5943 #define IShellView3_AddPropertySheetPages(This,dwReserved,pfn,lparam) (This)->lpVtbl->AddPropertySheetPages(This,dwReserved,pfn,lparam)
5944 #define IShellView3_SaveViewState(This) (This)->lpVtbl->SaveViewState(This)
5945 #define IShellView3_SelectItem(This,pidlItem,uFlags) (This)->lpVtbl->SelectItem(This,pidlItem,uFlags)
5946 #define IShellView3_GetItemObject(This,uItem,riid,ppv) (This)->lpVtbl->GetItemObject(This,uItem,riid,ppv)
5947 /*** IShellView2 methods ***/
5948 #define IShellView3_GetView(This,pvid,uView) (This)->lpVtbl->GetView(This,pvid,uView)
5949 #define IShellView3_CreateViewWindow2(This,lpParams) (This)->lpVtbl->CreateViewWindow2(This,lpParams)
5950 #define IShellView3_HandleRename(This,pidlNew) (This)->lpVtbl->HandleRename(This,pidlNew)
5951 #define IShellView3_SelectAndPositionItem(This,pidlItem,uFlags,ppt) (This)->lpVtbl->SelectAndPositionItem(This,pidlItem,uFlags,ppt)
5952 /*** IShellView3 methods ***/
5953 #define IShellView3_CreateViewWindow3(This,psbOwner,psvPrev,dwViewFlags,dwMask,dwFlags,fvMode,pvid,prcView,phwndView) (This)->lpVtbl->CreateViewWindow3(This,psbOwner,psvPrev,dwViewFlags,dwMask,dwFlags,fvMode,pvid,prcView,phwndView)
5954 #else
5955 /*** IUnknown methods ***/
5956 static FORCEINLINE HRESULT IShellView3_QueryInterface(IShellView3* This,REFIID riid,void **ppvObject) {
5957     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5958 }
5959 static FORCEINLINE ULONG IShellView3_AddRef(IShellView3* This) {
5960     return This->lpVtbl->AddRef(This);
5961 }
5962 static FORCEINLINE ULONG IShellView3_Release(IShellView3* This) {
5963     return This->lpVtbl->Release(This);
5964 }
5965 /*** IOleWindow methods ***/
5966 static FORCEINLINE HRESULT IShellView3_GetWindow(IShellView3* This,HWND *phwnd) {
5967     return This->lpVtbl->GetWindow(This,phwnd);
5968 }
5969 static FORCEINLINE HRESULT IShellView3_ContextSensitiveHelp(IShellView3* This,WINBOOL fEnterMode) {
5970     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
5971 }
5972 /*** IShellView methods ***/
5973 static FORCEINLINE HRESULT IShellView3_TranslateAccelerator(IShellView3* This,MSG *pmsg) {
5974     return This->lpVtbl->TranslateAccelerator(This,pmsg);
5975 }
5976 static FORCEINLINE HRESULT IShellView3_EnableModeless(IShellView3* This,WINBOOL fEnable) {
5977     return This->lpVtbl->EnableModeless(This,fEnable);
5978 }
5979 static FORCEINLINE HRESULT IShellView3_UIActivate(IShellView3* This,UINT uState) {
5980     return This->lpVtbl->UIActivate(This,uState);
5981 }
5982 static FORCEINLINE HRESULT IShellView3_Refresh(IShellView3* This) {
5983     return This->lpVtbl->Refresh(This);
5984 }
5985 static FORCEINLINE HRESULT IShellView3_CreateViewWindow(IShellView3* This,IShellView *psvPrevious,LPCFOLDERSETTINGS pfs,IShellBrowser *psb,RECT *prcView,HWND *phWnd) {
5986     return This->lpVtbl->CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd);
5987 }
5988 static FORCEINLINE HRESULT IShellView3_DestroyViewWindow(IShellView3* This) {
5989     return This->lpVtbl->DestroyViewWindow(This);
5990 }
5991 static FORCEINLINE HRESULT IShellView3_GetCurrentInfo(IShellView3* This,LPFOLDERSETTINGS pfs) {
5992     return This->lpVtbl->GetCurrentInfo(This,pfs);
5993 }
5994 static FORCEINLINE HRESULT IShellView3_AddPropertySheetPages(IShellView3* This,DWORD dwReserved,LPFNSVADDPROPSHEETPAGE pfn,LPARAM lparam) {
5995     return This->lpVtbl->AddPropertySheetPages(This,dwReserved,pfn,lparam);
5996 }
5997 static FORCEINLINE HRESULT IShellView3_SaveViewState(IShellView3* This) {
5998     return This->lpVtbl->SaveViewState(This);
5999 }
6000 static FORCEINLINE HRESULT IShellView3_SelectItem(IShellView3* This,PCUITEMID_CHILD pidlItem,SVSIF uFlags) {
6001     return This->lpVtbl->SelectItem(This,pidlItem,uFlags);
6002 }
6003 static FORCEINLINE HRESULT IShellView3_GetItemObject(IShellView3* This,UINT uItem,REFIID riid,void **ppv) {
6004     return This->lpVtbl->GetItemObject(This,uItem,riid,ppv);
6005 }
6006 /*** IShellView2 methods ***/
6007 static FORCEINLINE HRESULT IShellView3_GetView(IShellView3* This,SHELLVIEWID *pvid,ULONG uView) {
6008     return This->lpVtbl->GetView(This,pvid,uView);
6009 }
6010 static FORCEINLINE HRESULT IShellView3_CreateViewWindow2(IShellView3* This,LPSV2CVW2_PARAMS lpParams) {
6011     return This->lpVtbl->CreateViewWindow2(This,lpParams);
6012 }
6013 static FORCEINLINE HRESULT IShellView3_HandleRename(IShellView3* This,PCUITEMID_CHILD pidlNew) {
6014     return This->lpVtbl->HandleRename(This,pidlNew);
6015 }
6016 static FORCEINLINE HRESULT IShellView3_SelectAndPositionItem(IShellView3* This,PCUITEMID_CHILD pidlItem,UINT uFlags,POINT *ppt) {
6017     return This->lpVtbl->SelectAndPositionItem(This,pidlItem,uFlags,ppt);
6018 }
6019 /*** IShellView3 methods ***/
6020 static FORCEINLINE HRESULT IShellView3_CreateViewWindow3(IShellView3* This,IShellBrowser *psbOwner,IShellView *psvPrev,SV3CVW3_FLAGS dwViewFlags,FOLDERFLAGS dwMask,FOLDERFLAGS dwFlags,FOLDERVIEWMODE fvMode,const SHELLVIEWID *pvid,const RECT *prcView,HWND *phwndView) {
6021     return This->lpVtbl->CreateViewWindow3(This,psbOwner,psvPrev,dwViewFlags,dwMask,dwFlags,fvMode,pvid,prcView,phwndView);
6022 }
6023 #endif
6024 #endif
6025 
6026 #endif
6027 
6028 HRESULT STDMETHODCALLTYPE IShellView3_CreateViewWindow3_Proxy(
6029     IShellView3* This,
6030     IShellBrowser *psbOwner,
6031     IShellView *psvPrev,
6032     SV3CVW3_FLAGS dwViewFlags,
6033     FOLDERFLAGS dwMask,
6034     FOLDERFLAGS dwFlags,
6035     FOLDERVIEWMODE fvMode,
6036     const SHELLVIEWID *pvid,
6037     const RECT *prcView,
6038     HWND *phwndView);
6039 void __RPC_STUB IShellView3_CreateViewWindow3_Stub(
6040     IRpcStubBuffer* This,
6041     IRpcChannelBuffer* pRpcChannelBuffer,
6042     PRPC_MESSAGE pRpcMessage,
6043     DWORD* pdwStubPhase);
6044 
6045 #endif  /* __IShellView3_INTERFACE_DEFINED__ */
6046 
6047 #endif
6048 #ifdef _FIX_ENABLEMODELESS_CONFLICT
6049 #undef EnableModeless
6050 #endif
6051 
6052 /*****************************************************************************
6053  * IFolderView interface
6054  */
6055 #ifndef __IFolderView_INTERFACE_DEFINED__
6056 #define __IFolderView_INTERFACE_DEFINED__
6057 
6058 DEFINE_GUID(IID_IFolderView, 0xcde725b0, 0xccc9, 0x4519, 0x91,0x7e, 0x32,0x5d,0x72,0xfa,0xb4,0xce);
6059 #if defined(__cplusplus) && !defined(CINTERFACE)
6060 MIDL_INTERFACE("cde725b0-ccc9-4519-917e-325d72fab4ce")
6061 IFolderView : public IUnknown
6062 {
6063     virtual HRESULT STDMETHODCALLTYPE GetCurrentViewMode(
6064         UINT *pViewMode) = 0;
6065 
6066     virtual HRESULT STDMETHODCALLTYPE SetCurrentViewMode(
6067         UINT ViewMode) = 0;
6068 
6069     virtual HRESULT STDMETHODCALLTYPE GetFolder(
6070         REFIID riid,
6071         void **ppv) = 0;
6072 
6073     virtual HRESULT STDMETHODCALLTYPE Item(
6074         int iItemIndex,
6075         PITEMID_CHILD *ppidl) = 0;
6076 
6077     virtual HRESULT STDMETHODCALLTYPE ItemCount(
6078         UINT uFlags,
6079         int *pcItems) = 0;
6080 
6081     virtual HRESULT STDMETHODCALLTYPE Items(
6082         UINT uFlags,
6083         REFIID riid,
6084         void **ppv) = 0;
6085 
6086     virtual HRESULT STDMETHODCALLTYPE GetSelectionMarkedItem(
6087         int *piItem) = 0;
6088 
6089     virtual HRESULT STDMETHODCALLTYPE GetFocusedItem(
6090         int *piItem) = 0;
6091 
6092     virtual HRESULT STDMETHODCALLTYPE GetItemPosition(
6093         PCUITEMID_CHILD pidl,
6094         POINT *ppt) = 0;
6095 
6096     virtual HRESULT STDMETHODCALLTYPE GetSpacing(
6097         POINT *ppt) = 0;
6098 
6099     virtual HRESULT STDMETHODCALLTYPE GetDefaultSpacing(
6100         POINT *ppt) = 0;
6101 
6102     virtual HRESULT STDMETHODCALLTYPE GetAutoArrange(
6103         ) = 0;
6104 
6105     virtual HRESULT STDMETHODCALLTYPE SelectItem(
6106         int iItem,
6107         DWORD dwFlags) = 0;
6108 
6109     virtual HRESULT STDMETHODCALLTYPE SelectAndPositionItems(
6110         UINT cidl,
6111         PCUITEMID_CHILD_ARRAY apidl,
6112         POINT *apt,
6113         DWORD dwFlags) = 0;
6114 
6115 };
6116 #ifdef __CRT_UUID_DECL
6117 __CRT_UUID_DECL(IFolderView, 0xcde725b0, 0xccc9, 0x4519, 0x91,0x7e, 0x32,0x5d,0x72,0xfa,0xb4,0xce)
6118 #endif
6119 #else
6120 typedef struct IFolderViewVtbl {
6121     BEGIN_INTERFACE
6122 
6123     /*** IUnknown methods ***/
6124     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6125         IFolderView* This,
6126         REFIID riid,
6127         void **ppvObject);
6128 
6129     ULONG (STDMETHODCALLTYPE *AddRef)(
6130         IFolderView* This);
6131 
6132     ULONG (STDMETHODCALLTYPE *Release)(
6133         IFolderView* This);
6134 
6135     /*** IFolderView methods ***/
6136     HRESULT (STDMETHODCALLTYPE *GetCurrentViewMode)(
6137         IFolderView* This,
6138         UINT *pViewMode);
6139 
6140     HRESULT (STDMETHODCALLTYPE *SetCurrentViewMode)(
6141         IFolderView* This,
6142         UINT ViewMode);
6143 
6144     HRESULT (STDMETHODCALLTYPE *GetFolder)(
6145         IFolderView* This,
6146         REFIID riid,
6147         void **ppv);
6148 
6149     HRESULT (STDMETHODCALLTYPE *Item)(
6150         IFolderView* This,
6151         int iItemIndex,
6152         PITEMID_CHILD *ppidl);
6153 
6154     HRESULT (STDMETHODCALLTYPE *ItemCount)(
6155         IFolderView* This,
6156         UINT uFlags,
6157         int *pcItems);
6158 
6159     HRESULT (STDMETHODCALLTYPE *Items)(
6160         IFolderView* This,
6161         UINT uFlags,
6162         REFIID riid,
6163         void **ppv);
6164 
6165     HRESULT (STDMETHODCALLTYPE *GetSelectionMarkedItem)(
6166         IFolderView* This,
6167         int *piItem);
6168 
6169     HRESULT (STDMETHODCALLTYPE *GetFocusedItem)(
6170         IFolderView* This,
6171         int *piItem);
6172 
6173     HRESULT (STDMETHODCALLTYPE *GetItemPosition)(
6174         IFolderView* This,
6175         PCUITEMID_CHILD pidl,
6176         POINT *ppt);
6177 
6178     HRESULT (STDMETHODCALLTYPE *GetSpacing)(
6179         IFolderView* This,
6180         POINT *ppt);
6181 
6182     HRESULT (STDMETHODCALLTYPE *GetDefaultSpacing)(
6183         IFolderView* This,
6184         POINT *ppt);
6185 
6186     HRESULT (STDMETHODCALLTYPE *GetAutoArrange)(
6187         IFolderView* This);
6188 
6189     HRESULT (STDMETHODCALLTYPE *SelectItem)(
6190         IFolderView* This,
6191         int iItem,
6192         DWORD dwFlags);
6193 
6194     HRESULT (STDMETHODCALLTYPE *SelectAndPositionItems)(
6195         IFolderView* This,
6196         UINT cidl,
6197         PCUITEMID_CHILD_ARRAY apidl,
6198         POINT *apt,
6199         DWORD dwFlags);
6200 
6201     END_INTERFACE
6202 } IFolderViewVtbl;
6203 interface IFolderView {
6204     CONST_VTBL IFolderViewVtbl* lpVtbl;
6205 };
6206 
6207 #ifdef COBJMACROS
6208 #ifndef WIDL_C_INLINE_WRAPPERS
6209 /*** IUnknown methods ***/
6210 #define IFolderView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6211 #define IFolderView_AddRef(This) (This)->lpVtbl->AddRef(This)
6212 #define IFolderView_Release(This) (This)->lpVtbl->Release(This)
6213 /*** IFolderView methods ***/
6214 #define IFolderView_GetCurrentViewMode(This,pViewMode) (This)->lpVtbl->GetCurrentViewMode(This,pViewMode)
6215 #define IFolderView_SetCurrentViewMode(This,ViewMode) (This)->lpVtbl->SetCurrentViewMode(This,ViewMode)
6216 #define IFolderView_GetFolder(This,riid,ppv) (This)->lpVtbl->GetFolder(This,riid,ppv)
6217 #define IFolderView_Item(This,iItemIndex,ppidl) (This)->lpVtbl->Item(This,iItemIndex,ppidl)
6218 #define IFolderView_ItemCount(This,uFlags,pcItems) (This)->lpVtbl->ItemCount(This,uFlags,pcItems)
6219 #define IFolderView_Items(This,uFlags,riid,ppv) (This)->lpVtbl->Items(This,uFlags,riid,ppv)
6220 #define IFolderView_GetSelectionMarkedItem(This,piItem) (This)->lpVtbl->GetSelectionMarkedItem(This,piItem)
6221 #define IFolderView_GetFocusedItem(This,piItem) (This)->lpVtbl->GetFocusedItem(This,piItem)
6222 #define IFolderView_GetItemPosition(This,pidl,ppt) (This)->lpVtbl->GetItemPosition(This,pidl,ppt)
6223 #define IFolderView_GetSpacing(This,ppt) (This)->lpVtbl->GetSpacing(This,ppt)
6224 #define IFolderView_GetDefaultSpacing(This,ppt) (This)->lpVtbl->GetDefaultSpacing(This,ppt)
6225 #define IFolderView_GetAutoArrange(This) (This)->lpVtbl->GetAutoArrange(This)
6226 #define IFolderView_SelectItem(This,iItem,dwFlags) (This)->lpVtbl->SelectItem(This,iItem,dwFlags)
6227 #define IFolderView_SelectAndPositionItems(This,cidl,apidl,apt,dwFlags) (This)->lpVtbl->SelectAndPositionItems(This,cidl,apidl,apt,dwFlags)
6228 #else
6229 /*** IUnknown methods ***/
6230 static FORCEINLINE HRESULT IFolderView_QueryInterface(IFolderView* This,REFIID riid,void **ppvObject) {
6231     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6232 }
6233 static FORCEINLINE ULONG IFolderView_AddRef(IFolderView* This) {
6234     return This->lpVtbl->AddRef(This);
6235 }
6236 static FORCEINLINE ULONG IFolderView_Release(IFolderView* This) {
6237     return This->lpVtbl->Release(This);
6238 }
6239 /*** IFolderView methods ***/
6240 static FORCEINLINE HRESULT IFolderView_GetCurrentViewMode(IFolderView* This,UINT *pViewMode) {
6241     return This->lpVtbl->GetCurrentViewMode(This,pViewMode);
6242 }
6243 static FORCEINLINE HRESULT IFolderView_SetCurrentViewMode(IFolderView* This,UINT ViewMode) {
6244     return This->lpVtbl->SetCurrentViewMode(This,ViewMode);
6245 }
6246 static FORCEINLINE HRESULT IFolderView_GetFolder(IFolderView* This,REFIID riid,void **ppv) {
6247     return This->lpVtbl->GetFolder(This,riid,ppv);
6248 }
6249 static FORCEINLINE HRESULT IFolderView_Item(IFolderView* This,int iItemIndex,PITEMID_CHILD *ppidl) {
6250     return This->lpVtbl->Item(This,iItemIndex,ppidl);
6251 }
6252 static FORCEINLINE HRESULT IFolderView_ItemCount(IFolderView* This,UINT uFlags,int *pcItems) {
6253     return This->lpVtbl->ItemCount(This,uFlags,pcItems);
6254 }
6255 static FORCEINLINE HRESULT IFolderView_Items(IFolderView* This,UINT uFlags,REFIID riid,void **ppv) {
6256     return This->lpVtbl->Items(This,uFlags,riid,ppv);
6257 }
6258 static FORCEINLINE HRESULT IFolderView_GetSelectionMarkedItem(IFolderView* This,int *piItem) {
6259     return This->lpVtbl->GetSelectionMarkedItem(This,piItem);
6260 }
6261 static FORCEINLINE HRESULT IFolderView_GetFocusedItem(IFolderView* This,int *piItem) {
6262     return This->lpVtbl->GetFocusedItem(This,piItem);
6263 }
6264 static FORCEINLINE HRESULT IFolderView_GetItemPosition(IFolderView* This,PCUITEMID_CHILD pidl,POINT *ppt) {
6265     return This->lpVtbl->GetItemPosition(This,pidl,ppt);
6266 }
6267 static FORCEINLINE HRESULT IFolderView_GetSpacing(IFolderView* This,POINT *ppt) {
6268     return This->lpVtbl->GetSpacing(This,ppt);
6269 }
6270 static FORCEINLINE HRESULT IFolderView_GetDefaultSpacing(IFolderView* This,POINT *ppt) {
6271     return This->lpVtbl->GetDefaultSpacing(This,ppt);
6272 }
6273 static FORCEINLINE HRESULT IFolderView_GetAutoArrange(IFolderView* This) {
6274     return This->lpVtbl->GetAutoArrange(This);
6275 }
6276 static FORCEINLINE HRESULT IFolderView_SelectItem(IFolderView* This,int iItem,DWORD dwFlags) {
6277     return This->lpVtbl->SelectItem(This,iItem,dwFlags);
6278 }
6279 static FORCEINLINE HRESULT IFolderView_SelectAndPositionItems(IFolderView* This,UINT cidl,PCUITEMID_CHILD_ARRAY apidl,POINT *apt,DWORD dwFlags) {
6280     return This->lpVtbl->SelectAndPositionItems(This,cidl,apidl,apt,dwFlags);
6281 }
6282 #endif
6283 #endif
6284 
6285 #endif
6286 
6287 HRESULT STDMETHODCALLTYPE IFolderView_GetCurrentViewMode_Proxy(
6288     IFolderView* This,
6289     UINT *pViewMode);
6290 void __RPC_STUB IFolderView_GetCurrentViewMode_Stub(
6291     IRpcStubBuffer* This,
6292     IRpcChannelBuffer* pRpcChannelBuffer,
6293     PRPC_MESSAGE pRpcMessage,
6294     DWORD* pdwStubPhase);
6295 HRESULT STDMETHODCALLTYPE IFolderView_SetCurrentViewMode_Proxy(
6296     IFolderView* This,
6297     UINT ViewMode);
6298 void __RPC_STUB IFolderView_SetCurrentViewMode_Stub(
6299     IRpcStubBuffer* This,
6300     IRpcChannelBuffer* pRpcChannelBuffer,
6301     PRPC_MESSAGE pRpcMessage,
6302     DWORD* pdwStubPhase);
6303 HRESULT STDMETHODCALLTYPE IFolderView_GetFolder_Proxy(
6304     IFolderView* This,
6305     REFIID riid,
6306     void **ppv);
6307 void __RPC_STUB IFolderView_GetFolder_Stub(
6308     IRpcStubBuffer* This,
6309     IRpcChannelBuffer* pRpcChannelBuffer,
6310     PRPC_MESSAGE pRpcMessage,
6311     DWORD* pdwStubPhase);
6312 HRESULT STDMETHODCALLTYPE IFolderView_Item_Proxy(
6313     IFolderView* This,
6314     int iItemIndex,
6315     PITEMID_CHILD *ppidl);
6316 void __RPC_STUB IFolderView_Item_Stub(
6317     IRpcStubBuffer* This,
6318     IRpcChannelBuffer* pRpcChannelBuffer,
6319     PRPC_MESSAGE pRpcMessage,
6320     DWORD* pdwStubPhase);
6321 HRESULT STDMETHODCALLTYPE IFolderView_ItemCount_Proxy(
6322     IFolderView* This,
6323     UINT uFlags,
6324     int *pcItems);
6325 void __RPC_STUB IFolderView_ItemCount_Stub(
6326     IRpcStubBuffer* This,
6327     IRpcChannelBuffer* pRpcChannelBuffer,
6328     PRPC_MESSAGE pRpcMessage,
6329     DWORD* pdwStubPhase);
6330 HRESULT STDMETHODCALLTYPE IFolderView_Items_Proxy(
6331     IFolderView* This,
6332     UINT uFlags,
6333     REFIID riid,
6334     void **ppv);
6335 void __RPC_STUB IFolderView_Items_Stub(
6336     IRpcStubBuffer* This,
6337     IRpcChannelBuffer* pRpcChannelBuffer,
6338     PRPC_MESSAGE pRpcMessage,
6339     DWORD* pdwStubPhase);
6340 HRESULT STDMETHODCALLTYPE IFolderView_GetSelectionMarkedItem_Proxy(
6341     IFolderView* This,
6342     int *piItem);
6343 void __RPC_STUB IFolderView_GetSelectionMarkedItem_Stub(
6344     IRpcStubBuffer* This,
6345     IRpcChannelBuffer* pRpcChannelBuffer,
6346     PRPC_MESSAGE pRpcMessage,
6347     DWORD* pdwStubPhase);
6348 HRESULT STDMETHODCALLTYPE IFolderView_GetFocusedItem_Proxy(
6349     IFolderView* This,
6350     int *piItem);
6351 void __RPC_STUB IFolderView_GetFocusedItem_Stub(
6352     IRpcStubBuffer* This,
6353     IRpcChannelBuffer* pRpcChannelBuffer,
6354     PRPC_MESSAGE pRpcMessage,
6355     DWORD* pdwStubPhase);
6356 HRESULT STDMETHODCALLTYPE IFolderView_GetItemPosition_Proxy(
6357     IFolderView* This,
6358     PCUITEMID_CHILD pidl,
6359     POINT *ppt);
6360 void __RPC_STUB IFolderView_GetItemPosition_Stub(
6361     IRpcStubBuffer* This,
6362     IRpcChannelBuffer* pRpcChannelBuffer,
6363     PRPC_MESSAGE pRpcMessage,
6364     DWORD* pdwStubPhase);
6365 HRESULT STDMETHODCALLTYPE IFolderView_GetSpacing_Proxy(
6366     IFolderView* This,
6367     POINT *ppt);
6368 void __RPC_STUB IFolderView_GetSpacing_Stub(
6369     IRpcStubBuffer* This,
6370     IRpcChannelBuffer* pRpcChannelBuffer,
6371     PRPC_MESSAGE pRpcMessage,
6372     DWORD* pdwStubPhase);
6373 HRESULT STDMETHODCALLTYPE IFolderView_GetDefaultSpacing_Proxy(
6374     IFolderView* This,
6375     POINT *ppt);
6376 void __RPC_STUB IFolderView_GetDefaultSpacing_Stub(
6377     IRpcStubBuffer* This,
6378     IRpcChannelBuffer* pRpcChannelBuffer,
6379     PRPC_MESSAGE pRpcMessage,
6380     DWORD* pdwStubPhase);
6381 HRESULT STDMETHODCALLTYPE IFolderView_GetAutoArrange_Proxy(
6382     IFolderView* This);
6383 void __RPC_STUB IFolderView_GetAutoArrange_Stub(
6384     IRpcStubBuffer* This,
6385     IRpcChannelBuffer* pRpcChannelBuffer,
6386     PRPC_MESSAGE pRpcMessage,
6387     DWORD* pdwStubPhase);
6388 HRESULT STDMETHODCALLTYPE IFolderView_SelectItem_Proxy(
6389     IFolderView* This,
6390     int iItem,
6391     DWORD dwFlags);
6392 void __RPC_STUB IFolderView_SelectItem_Stub(
6393     IRpcStubBuffer* This,
6394     IRpcChannelBuffer* pRpcChannelBuffer,
6395     PRPC_MESSAGE pRpcMessage,
6396     DWORD* pdwStubPhase);
6397 HRESULT STDMETHODCALLTYPE IFolderView_SelectAndPositionItems_Proxy(
6398     IFolderView* This,
6399     UINT cidl,
6400     PCUITEMID_CHILD_ARRAY apidl,
6401     POINT *apt,
6402     DWORD dwFlags);
6403 void __RPC_STUB IFolderView_SelectAndPositionItems_Stub(
6404     IRpcStubBuffer* This,
6405     IRpcChannelBuffer* pRpcChannelBuffer,
6406     PRPC_MESSAGE pRpcMessage,
6407     DWORD* pdwStubPhase);
6408 
6409 #endif  /* __IFolderView_INTERFACE_DEFINED__ */
6410 
6411 
6412 #define SID_SFolderView IID_IFolderView
6413 
6414 #if NTDDI_VERSION >= NTDDI_WIN7
6415 /*****************************************************************************
6416  * ISearchBoxInfo interface
6417  */
6418 #ifndef __ISearchBoxInfo_INTERFACE_DEFINED__
6419 #define __ISearchBoxInfo_INTERFACE_DEFINED__
6420 
6421 DEFINE_GUID(IID_ISearchBoxInfo, 0x6af6e03f, 0xd664, 0x4ef4, 0x96,0x26, 0xf7,0xe0,0xed,0x36,0x75,0x5e);
6422 #if defined(__cplusplus) && !defined(CINTERFACE)
6423 MIDL_INTERFACE("6af6e03f-d664-4ef4-9626-f7e0ed36755e")
6424 ISearchBoxInfo : public IUnknown
6425 {
6426     virtual HRESULT STDMETHODCALLTYPE GetCondition(
6427         REFIID riid,
6428         void **ppv) = 0;
6429 
6430     virtual HRESULT STDMETHODCALLTYPE GetText(
6431         LPWSTR *ppsz) = 0;
6432 
6433 };
6434 #ifdef __CRT_UUID_DECL
6435 __CRT_UUID_DECL(ISearchBoxInfo, 0x6af6e03f, 0xd664, 0x4ef4, 0x96,0x26, 0xf7,0xe0,0xed,0x36,0x75,0x5e)
6436 #endif
6437 #else
6438 typedef struct ISearchBoxInfoVtbl {
6439     BEGIN_INTERFACE
6440 
6441     /*** IUnknown methods ***/
6442     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6443         ISearchBoxInfo* This,
6444         REFIID riid,
6445         void **ppvObject);
6446 
6447     ULONG (STDMETHODCALLTYPE *AddRef)(
6448         ISearchBoxInfo* This);
6449 
6450     ULONG (STDMETHODCALLTYPE *Release)(
6451         ISearchBoxInfo* This);
6452 
6453     /*** ISearchBoxInfo methods ***/
6454     HRESULT (STDMETHODCALLTYPE *GetCondition)(
6455         ISearchBoxInfo* This,
6456         REFIID riid,
6457         void **ppv);
6458 
6459     HRESULT (STDMETHODCALLTYPE *GetText)(
6460         ISearchBoxInfo* This,
6461         LPWSTR *ppsz);
6462 
6463     END_INTERFACE
6464 } ISearchBoxInfoVtbl;
6465 interface ISearchBoxInfo {
6466     CONST_VTBL ISearchBoxInfoVtbl* lpVtbl;
6467 };
6468 
6469 #ifdef COBJMACROS
6470 #ifndef WIDL_C_INLINE_WRAPPERS
6471 /*** IUnknown methods ***/
6472 #define ISearchBoxInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6473 #define ISearchBoxInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
6474 #define ISearchBoxInfo_Release(This) (This)->lpVtbl->Release(This)
6475 /*** ISearchBoxInfo methods ***/
6476 #define ISearchBoxInfo_GetCondition(This,riid,ppv) (This)->lpVtbl->GetCondition(This,riid,ppv)
6477 #define ISearchBoxInfo_GetText(This,ppsz) (This)->lpVtbl->GetText(This,ppsz)
6478 #else
6479 /*** IUnknown methods ***/
6480 static FORCEINLINE HRESULT ISearchBoxInfo_QueryInterface(ISearchBoxInfo* This,REFIID riid,void **ppvObject) {
6481     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6482 }
6483 static FORCEINLINE ULONG ISearchBoxInfo_AddRef(ISearchBoxInfo* This) {
6484     return This->lpVtbl->AddRef(This);
6485 }
6486 static FORCEINLINE ULONG ISearchBoxInfo_Release(ISearchBoxInfo* This) {
6487     return This->lpVtbl->Release(This);
6488 }
6489 /*** ISearchBoxInfo methods ***/
6490 static FORCEINLINE HRESULT ISearchBoxInfo_GetCondition(ISearchBoxInfo* This,REFIID riid,void **ppv) {
6491     return This->lpVtbl->GetCondition(This,riid,ppv);
6492 }
6493 static FORCEINLINE HRESULT ISearchBoxInfo_GetText(ISearchBoxInfo* This,LPWSTR *ppsz) {
6494     return This->lpVtbl->GetText(This,ppsz);
6495 }
6496 #endif
6497 #endif
6498 
6499 #endif
6500 
6501 HRESULT STDMETHODCALLTYPE ISearchBoxInfo_GetCondition_Proxy(
6502     ISearchBoxInfo* This,
6503     REFIID riid,
6504     void **ppv);
6505 void __RPC_STUB ISearchBoxInfo_GetCondition_Stub(
6506     IRpcStubBuffer* This,
6507     IRpcChannelBuffer* pRpcChannelBuffer,
6508     PRPC_MESSAGE pRpcMessage,
6509     DWORD* pdwStubPhase);
6510 HRESULT STDMETHODCALLTYPE ISearchBoxInfo_GetText_Proxy(
6511     ISearchBoxInfo* This,
6512     LPWSTR *ppsz);
6513 void __RPC_STUB ISearchBoxInfo_GetText_Stub(
6514     IRpcStubBuffer* This,
6515     IRpcChannelBuffer* pRpcChannelBuffer,
6516     PRPC_MESSAGE pRpcMessage,
6517     DWORD* pdwStubPhase);
6518 
6519 #endif  /* __ISearchBoxInfo_INTERFACE_DEFINED__ */
6520 
6521 #endif
6522 
6523 #if NTDDI_VERSION >= NTDDI_VISTA || _WIN32_IE >= _WIN32_IE_IE70
6524 #ifndef NO_SHOBJIDL_SORTDIRECTION
6525 enum tagSORTDIRECTION {
6526     SORT_DESCENDING = -1,
6527     SORT_ASCENDING = 1
6528 };
6529 
6530 #endif
6531 
6532 typedef int SORTDIRECTION;
6533 
6534 typedef struct SORTCOLUMN {
6535     PROPERTYKEY propkey;
6536     SORTDIRECTION direction;
6537 } SORTCOLUMN;
6538 
6539 typedef enum FVTEXTTYPE {
6540     FVST_EMPTYTEXT = 0
6541 } FVTEXTTYPE;
6542 
6543 #ifndef __IShellItemArray_FWD_DEFINED__
6544 #define __IShellItemArray_FWD_DEFINED__
6545 typedef interface IShellItemArray IShellItemArray;
6546 #endif
6547 
6548 
6549 typedef HRESULT DEPRECATED_HRESULT;
6550 
6551 #ifdef __cplusplus
6552 #define DEPRECATED_HRESULT HRESULT
6553 #endif
6554 
6555 /*****************************************************************************
6556  * IFolderView2 interface
6557  */
6558 #ifndef __IFolderView2_INTERFACE_DEFINED__
6559 #define __IFolderView2_INTERFACE_DEFINED__
6560 
6561 DEFINE_GUID(IID_IFolderView2, 0x1af3a467, 0x214f, 0x4298, 0x90,0x8e, 0x06,0xb0,0x3e,0x0b,0x39,0xf9);
6562 #if defined(__cplusplus) && !defined(CINTERFACE)
6563 MIDL_INTERFACE("1af3a467-214f-4298-908e-06b03e0b39f9")
6564 IFolderView2 : public IFolderView
6565 {
6566     virtual HRESULT STDMETHODCALLTYPE SetGroupBy(
6567         REFPROPERTYKEY key,
6568         WINBOOL fAscending) = 0;
6569 
6570     virtual HRESULT STDMETHODCALLTYPE GetGroupBy(
6571         PROPERTYKEY *pkey,
6572         WINBOOL *pfAscending) = 0;
6573 
6574     virtual HRESULT STDMETHODCALLTYPE SetViewProperty(
6575         PCUITEMID_CHILD pidl,
6576         REFPROPERTYKEY propkey,
6577         REFPROPVARIANT propvar) = 0;
6578 
6579     virtual HRESULT STDMETHODCALLTYPE GetViewProperty(
6580         PCUITEMID_CHILD pidl,
6581         REFPROPERTYKEY propkey,
6582         PROPVARIANT *ppropvar) = 0;
6583 
6584     virtual HRESULT STDMETHODCALLTYPE SetTileViewProperties(
6585         PCUITEMID_CHILD pidl,
6586         LPCWSTR pszPropList) = 0;
6587 
6588     virtual HRESULT STDMETHODCALLTYPE SetExtendedTileViewProperties(
6589         PCUITEMID_CHILD pidl,
6590         LPCWSTR pszPropList) = 0;
6591 
6592     virtual HRESULT STDMETHODCALLTYPE SetText(
6593         FVTEXTTYPE iType,
6594         LPCWSTR pwszText) = 0;
6595 
6596     virtual HRESULT STDMETHODCALLTYPE SetCurrentFolderFlags(
6597         DWORD dwMask,
6598         DWORD dwFlags) = 0;
6599 
6600     virtual HRESULT STDMETHODCALLTYPE GetCurrentFolderFlags(
6601         DWORD *pdwFlags) = 0;
6602 
6603     virtual HRESULT STDMETHODCALLTYPE GetSortColumnCount(
6604         int *pcColumns) = 0;
6605 
6606     virtual HRESULT STDMETHODCALLTYPE SetSortColumns(
6607         const SORTCOLUMN *rgSortColumns,
6608         int cColumns) = 0;
6609 
6610     virtual HRESULT STDMETHODCALLTYPE GetSortColumns(
6611         SORTCOLUMN *rgSortColumns,
6612         int cColumns) = 0;
6613 
6614     virtual HRESULT STDMETHODCALLTYPE GetItem(
6615         int iItem,
6616         REFIID riid,
6617         void **ppv) = 0;
6618 
6619     virtual HRESULT STDMETHODCALLTYPE GetVisibleItem(
6620         int iStart,
6621         WINBOOL fPrevious,
6622         int *piItem) = 0;
6623 
6624     virtual HRESULT STDMETHODCALLTYPE GetSelectedItem(
6625         int iStart,
6626         int *piItem) = 0;
6627 
6628     virtual HRESULT STDMETHODCALLTYPE GetSelection(
6629         WINBOOL fNoneImpliesFolder,
6630         IShellItemArray **ppsia) = 0;
6631 
6632     virtual HRESULT STDMETHODCALLTYPE GetSelectionState(
6633         PCUITEMID_CHILD pidl,
6634         DWORD *pdwFlags) = 0;
6635 
6636     virtual HRESULT STDMETHODCALLTYPE InvokeVerbOnSelection(
6637         LPCSTR pszVerb) = 0;
6638 
6639     virtual HRESULT STDMETHODCALLTYPE SetViewModeAndIconSize(
6640         FOLDERVIEWMODE uViewMode,
6641         int iImageSize) = 0;
6642 
6643     virtual HRESULT STDMETHODCALLTYPE GetViewModeAndIconSize(
6644         FOLDERVIEWMODE *puViewMode,
6645         int *piImageSize) = 0;
6646 
6647     virtual HRESULT STDMETHODCALLTYPE SetGroupSubsetCount(
6648         UINT cVisibleRows) = 0;
6649 
6650     virtual HRESULT STDMETHODCALLTYPE GetGroupSubsetCount(
6651         UINT *pcVisibleRows) = 0;
6652 
6653     virtual HRESULT STDMETHODCALLTYPE SetRedraw(
6654         WINBOOL fRedrawOn) = 0;
6655 
6656     virtual HRESULT STDMETHODCALLTYPE IsMoveInSameFolder(
6657         ) = 0;
6658 
6659     virtual HRESULT STDMETHODCALLTYPE DoRename(
6660         ) = 0;
6661 
6662 };
6663 #ifdef __CRT_UUID_DECL
6664 __CRT_UUID_DECL(IFolderView2, 0x1af3a467, 0x214f, 0x4298, 0x90,0x8e, 0x06,0xb0,0x3e,0x0b,0x39,0xf9)
6665 #endif
6666 #else
6667 typedef struct IFolderView2Vtbl {
6668     BEGIN_INTERFACE
6669 
6670     /*** IUnknown methods ***/
6671     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6672         IFolderView2* This,
6673         REFIID riid,
6674         void **ppvObject);
6675 
6676     ULONG (STDMETHODCALLTYPE *AddRef)(
6677         IFolderView2* This);
6678 
6679     ULONG (STDMETHODCALLTYPE *Release)(
6680         IFolderView2* This);
6681 
6682     /*** IFolderView methods ***/
6683     HRESULT (STDMETHODCALLTYPE *GetCurrentViewMode)(
6684         IFolderView2* This,
6685         UINT *pViewMode);
6686 
6687     HRESULT (STDMETHODCALLTYPE *SetCurrentViewMode)(
6688         IFolderView2* This,
6689         UINT ViewMode);
6690 
6691     HRESULT (STDMETHODCALLTYPE *GetFolder)(
6692         IFolderView2* This,
6693         REFIID riid,
6694         void **ppv);
6695 
6696     HRESULT (STDMETHODCALLTYPE *Item)(
6697         IFolderView2* This,
6698         int iItemIndex,
6699         PITEMID_CHILD *ppidl);
6700 
6701     HRESULT (STDMETHODCALLTYPE *ItemCount)(
6702         IFolderView2* This,
6703         UINT uFlags,
6704         int *pcItems);
6705 
6706     HRESULT (STDMETHODCALLTYPE *Items)(
6707         IFolderView2* This,
6708         UINT uFlags,
6709         REFIID riid,
6710         void **ppv);
6711 
6712     HRESULT (STDMETHODCALLTYPE *GetSelectionMarkedItem)(
6713         IFolderView2* This,
6714         int *piItem);
6715 
6716     HRESULT (STDMETHODCALLTYPE *GetFocusedItem)(
6717         IFolderView2* This,
6718         int *piItem);
6719 
6720     HRESULT (STDMETHODCALLTYPE *GetItemPosition)(
6721         IFolderView2* This,
6722         PCUITEMID_CHILD pidl,
6723         POINT *ppt);
6724 
6725     HRESULT (STDMETHODCALLTYPE *GetSpacing)(
6726         IFolderView2* This,
6727         POINT *ppt);
6728 
6729     HRESULT (STDMETHODCALLTYPE *GetDefaultSpacing)(
6730         IFolderView2* This,
6731         POINT *ppt);
6732 
6733     HRESULT (STDMETHODCALLTYPE *GetAutoArrange)(
6734         IFolderView2* This);
6735 
6736     HRESULT (STDMETHODCALLTYPE *SelectItem)(
6737         IFolderView2* This,
6738         int iItem,
6739         DWORD dwFlags);
6740 
6741     HRESULT (STDMETHODCALLTYPE *SelectAndPositionItems)(
6742         IFolderView2* This,
6743         UINT cidl,
6744         PCUITEMID_CHILD_ARRAY apidl,
6745         POINT *apt,
6746         DWORD dwFlags);
6747 
6748     /*** IFolderView2 methods ***/
6749     HRESULT (STDMETHODCALLTYPE *SetGroupBy)(
6750         IFolderView2* This,
6751         REFPROPERTYKEY key,
6752         WINBOOL fAscending);
6753 
6754     HRESULT (STDMETHODCALLTYPE *GetGroupBy)(
6755         IFolderView2* This,
6756         PROPERTYKEY *pkey,
6757         WINBOOL *pfAscending);
6758 
6759     HRESULT (STDMETHODCALLTYPE *SetViewProperty)(
6760         IFolderView2* This,
6761         PCUITEMID_CHILD pidl,
6762         REFPROPERTYKEY propkey,
6763         REFPROPVARIANT propvar);
6764 
6765     HRESULT (STDMETHODCALLTYPE *GetViewProperty)(
6766         IFolderView2* This,
6767         PCUITEMID_CHILD pidl,
6768         REFPROPERTYKEY propkey,
6769         PROPVARIANT *ppropvar);
6770 
6771     HRESULT (STDMETHODCALLTYPE *SetTileViewProperties)(
6772         IFolderView2* This,
6773         PCUITEMID_CHILD pidl,
6774         LPCWSTR pszPropList);
6775 
6776     HRESULT (STDMETHODCALLTYPE *SetExtendedTileViewProperties)(
6777         IFolderView2* This,
6778         PCUITEMID_CHILD pidl,
6779         LPCWSTR pszPropList);
6780 
6781     HRESULT (STDMETHODCALLTYPE *SetText)(
6782         IFolderView2* This,
6783         FVTEXTTYPE iType,
6784         LPCWSTR pwszText);
6785 
6786     HRESULT (STDMETHODCALLTYPE *SetCurrentFolderFlags)(
6787         IFolderView2* This,
6788         DWORD dwMask,
6789         DWORD dwFlags);
6790 
6791     HRESULT (STDMETHODCALLTYPE *GetCurrentFolderFlags)(
6792         IFolderView2* This,
6793         DWORD *pdwFlags);
6794 
6795     HRESULT (STDMETHODCALLTYPE *GetSortColumnCount)(
6796         IFolderView2* This,
6797         int *pcColumns);
6798 
6799     HRESULT (STDMETHODCALLTYPE *SetSortColumns)(
6800         IFolderView2* This,
6801         const SORTCOLUMN *rgSortColumns,
6802         int cColumns);
6803 
6804     HRESULT (STDMETHODCALLTYPE *GetSortColumns)(
6805         IFolderView2* This,
6806         SORTCOLUMN *rgSortColumns,
6807         int cColumns);
6808 
6809     HRESULT (STDMETHODCALLTYPE *GetItem)(
6810         IFolderView2* This,
6811         int iItem,
6812         REFIID riid,
6813         void **ppv);
6814 
6815     HRESULT (STDMETHODCALLTYPE *GetVisibleItem)(
6816         IFolderView2* This,
6817         int iStart,
6818         WINBOOL fPrevious,
6819         int *piItem);
6820 
6821     HRESULT (STDMETHODCALLTYPE *GetSelectedItem)(
6822         IFolderView2* This,
6823         int iStart,
6824         int *piItem);
6825 
6826     HRESULT (STDMETHODCALLTYPE *GetSelection)(
6827         IFolderView2* This,
6828         WINBOOL fNoneImpliesFolder,
6829         IShellItemArray **ppsia);
6830 
6831     HRESULT (STDMETHODCALLTYPE *GetSelectionState)(
6832         IFolderView2* This,
6833         PCUITEMID_CHILD pidl,
6834         DWORD *pdwFlags);
6835 
6836     HRESULT (STDMETHODCALLTYPE *InvokeVerbOnSelection)(
6837         IFolderView2* This,
6838         LPCSTR pszVerb);
6839 
6840     HRESULT (STDMETHODCALLTYPE *SetViewModeAndIconSize)(
6841         IFolderView2* This,
6842         FOLDERVIEWMODE uViewMode,
6843         int iImageSize);
6844 
6845     HRESULT (STDMETHODCALLTYPE *GetViewModeAndIconSize)(
6846         IFolderView2* This,
6847         FOLDERVIEWMODE *puViewMode,
6848         int *piImageSize);
6849 
6850     HRESULT (STDMETHODCALLTYPE *SetGroupSubsetCount)(
6851         IFolderView2* This,
6852         UINT cVisibleRows);
6853 
6854     HRESULT (STDMETHODCALLTYPE *GetGroupSubsetCount)(
6855         IFolderView2* This,
6856         UINT *pcVisibleRows);
6857 
6858     HRESULT (STDMETHODCALLTYPE *SetRedraw)(
6859         IFolderView2* This,
6860         WINBOOL fRedrawOn);
6861 
6862     HRESULT (STDMETHODCALLTYPE *IsMoveInSameFolder)(
6863         IFolderView2* This);
6864 
6865     HRESULT (STDMETHODCALLTYPE *DoRename)(
6866         IFolderView2* This);
6867 
6868     END_INTERFACE
6869 } IFolderView2Vtbl;
6870 interface IFolderView2 {
6871     CONST_VTBL IFolderView2Vtbl* lpVtbl;
6872 };
6873 
6874 #ifdef COBJMACROS
6875 #ifndef WIDL_C_INLINE_WRAPPERS
6876 /*** IUnknown methods ***/
6877 #define IFolderView2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6878 #define IFolderView2_AddRef(This) (This)->lpVtbl->AddRef(This)
6879 #define IFolderView2_Release(This) (This)->lpVtbl->Release(This)
6880 /*** IFolderView methods ***/
6881 #define IFolderView2_GetCurrentViewMode(This,pViewMode) (This)->lpVtbl->GetCurrentViewMode(This,pViewMode)
6882 #define IFolderView2_SetCurrentViewMode(This,ViewMode) (This)->lpVtbl->SetCurrentViewMode(This,ViewMode)
6883 #define IFolderView2_GetFolder(This,riid,ppv) (This)->lpVtbl->GetFolder(This,riid,ppv)
6884 #define IFolderView2_Item(This,iItemIndex,ppidl) (This)->lpVtbl->Item(This,iItemIndex,ppidl)
6885 #define IFolderView2_ItemCount(This,uFlags,pcItems) (This)->lpVtbl->ItemCount(This,uFlags,pcItems)
6886 #define IFolderView2_Items(This,uFlags,riid,ppv) (This)->lpVtbl->Items(This,uFlags,riid,ppv)
6887 #define IFolderView2_GetSelectionMarkedItem(This,piItem) (This)->lpVtbl->GetSelectionMarkedItem(This,piItem)
6888 #define IFolderView2_GetFocusedItem(This,piItem) (This)->lpVtbl->GetFocusedItem(This,piItem)
6889 #define IFolderView2_GetItemPosition(This,pidl,ppt) (This)->lpVtbl->GetItemPosition(This,pidl,ppt)
6890 #define IFolderView2_GetSpacing(This,ppt) (This)->lpVtbl->GetSpacing(This,ppt)
6891 #define IFolderView2_GetDefaultSpacing(This,ppt) (This)->lpVtbl->GetDefaultSpacing(This,ppt)
6892 #define IFolderView2_GetAutoArrange(This) (This)->lpVtbl->GetAutoArrange(This)
6893 #define IFolderView2_SelectItem(This,iItem,dwFlags) (This)->lpVtbl->SelectItem(This,iItem,dwFlags)
6894 #define IFolderView2_SelectAndPositionItems(This,cidl,apidl,apt,dwFlags) (This)->lpVtbl->SelectAndPositionItems(This,cidl,apidl,apt,dwFlags)
6895 /*** IFolderView2 methods ***/
6896 #define IFolderView2_SetGroupBy(This,key,fAscending) (This)->lpVtbl->SetGroupBy(This,key,fAscending)
6897 #define IFolderView2_GetGroupBy(This,pkey,pfAscending) (This)->lpVtbl->GetGroupBy(This,pkey,pfAscending)
6898 #define IFolderView2_SetViewProperty(This,pidl,propkey,propvar) (This)->lpVtbl->SetViewProperty(This,pidl,propkey,propvar)
6899 #define IFolderView2_GetViewProperty(This,pidl,propkey,ppropvar) (This)->lpVtbl->GetViewProperty(This,pidl,propkey,ppropvar)
6900 #define IFolderView2_SetTileViewProperties(This,pidl,pszPropList) (This)->lpVtbl->SetTileViewProperties(This,pidl,pszPropList)
6901 #define IFolderView2_SetExtendedTileViewProperties(This,pidl,pszPropList) (This)->lpVtbl->SetExtendedTileViewProperties(This,pidl,pszPropList)
6902 #define IFolderView2_SetText(This,iType,pwszText) (This)->lpVtbl->SetText(This,iType,pwszText)
6903 #define IFolderView2_SetCurrentFolderFlags(This,dwMask,dwFlags) (This)->lpVtbl->SetCurrentFolderFlags(This,dwMask,dwFlags)
6904 #define IFolderView2_GetCurrentFolderFlags(This,pdwFlags) (This)->lpVtbl->GetCurrentFolderFlags(This,pdwFlags)
6905 #define IFolderView2_GetSortColumnCount(This,pcColumns) (This)->lpVtbl->GetSortColumnCount(This,pcColumns)
6906 #define IFolderView2_SetSortColumns(This,rgSortColumns,cColumns) (This)->lpVtbl->SetSortColumns(This,rgSortColumns,cColumns)
6907 #define IFolderView2_GetSortColumns(This,rgSortColumns,cColumns) (This)->lpVtbl->GetSortColumns(This,rgSortColumns,cColumns)
6908 #define IFolderView2_GetItem(This,iItem,riid,ppv) (This)->lpVtbl->GetItem(This,iItem,riid,ppv)
6909 #define IFolderView2_GetVisibleItem(This,iStart,fPrevious,piItem) (This)->lpVtbl->GetVisibleItem(This,iStart,fPrevious,piItem)
6910 #define IFolderView2_GetSelectedItem(This,iStart,piItem) (This)->lpVtbl->GetSelectedItem(This,iStart,piItem)
6911 #define IFolderView2_GetSelection(This,fNoneImpliesFolder,ppsia) (This)->lpVtbl->GetSelection(This,fNoneImpliesFolder,ppsia)
6912 #define IFolderView2_GetSelectionState(This,pidl,pdwFlags) (This)->lpVtbl->GetSelectionState(This,pidl,pdwFlags)
6913 #define IFolderView2_InvokeVerbOnSelection(This,pszVerb) (This)->lpVtbl->InvokeVerbOnSelection(This,pszVerb)
6914 #define IFolderView2_SetViewModeAndIconSize(This,uViewMode,iImageSize) (This)->lpVtbl->SetViewModeAndIconSize(This,uViewMode,iImageSize)
6915 #define IFolderView2_GetViewModeAndIconSize(This,puViewMode,piImageSize) (This)->lpVtbl->GetViewModeAndIconSize(This,puViewMode,piImageSize)
6916 #define IFolderView2_SetGroupSubsetCount(This,cVisibleRows) (This)->lpVtbl->SetGroupSubsetCount(This,cVisibleRows)
6917 #define IFolderView2_GetGroupSubsetCount(This,pcVisibleRows) (This)->lpVtbl->GetGroupSubsetCount(This,pcVisibleRows)
6918 #define IFolderView2_SetRedraw(This,fRedrawOn) (This)->lpVtbl->SetRedraw(This,fRedrawOn)
6919 #define IFolderView2_IsMoveInSameFolder(This) (This)->lpVtbl->IsMoveInSameFolder(This)
6920 #define IFolderView2_DoRename(This) (This)->lpVtbl->DoRename(This)
6921 #else
6922 /*** IUnknown methods ***/
6923 static FORCEINLINE HRESULT IFolderView2_QueryInterface(IFolderView2* This,REFIID riid,void **ppvObject) {
6924     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6925 }
6926 static FORCEINLINE ULONG IFolderView2_AddRef(IFolderView2* This) {
6927     return This->lpVtbl->AddRef(This);
6928 }
6929 static FORCEINLINE ULONG IFolderView2_Release(IFolderView2* This) {
6930     return This->lpVtbl->Release(This);
6931 }
6932 /*** IFolderView methods ***/
6933 static FORCEINLINE HRESULT IFolderView2_GetCurrentViewMode(IFolderView2* This,UINT *pViewMode) {
6934     return This->lpVtbl->GetCurrentViewMode(This,pViewMode);
6935 }
6936 static FORCEINLINE HRESULT IFolderView2_SetCurrentViewMode(IFolderView2* This,UINT ViewMode) {
6937     return This->lpVtbl->SetCurrentViewMode(This,ViewMode);
6938 }
6939 static FORCEINLINE HRESULT IFolderView2_GetFolder(IFolderView2* This,REFIID riid,void **ppv) {
6940     return This->lpVtbl->GetFolder(This,riid,ppv);
6941 }
6942 static FORCEINLINE HRESULT IFolderView2_Item(IFolderView2* This,int iItemIndex,PITEMID_CHILD *ppidl) {
6943     return This->lpVtbl->Item(This,iItemIndex,ppidl);
6944 }
6945 static FORCEINLINE HRESULT IFolderView2_ItemCount(IFolderView2* This,UINT uFlags,int *pcItems) {
6946     return This->lpVtbl->ItemCount(This,uFlags,pcItems);
6947 }
6948 static FORCEINLINE HRESULT IFolderView2_Items(IFolderView2* This,UINT uFlags,REFIID riid,void **ppv) {
6949     return This->lpVtbl->Items(This,uFlags,riid,ppv);
6950 }
6951 static FORCEINLINE HRESULT IFolderView2_GetSelectionMarkedItem(IFolderView2* This,int *piItem) {
6952     return This->lpVtbl->GetSelectionMarkedItem(This,piItem);
6953 }
6954 static FORCEINLINE HRESULT IFolderView2_GetFocusedItem(IFolderView2* This,int *piItem) {
6955     return This->lpVtbl->GetFocusedItem(This,piItem);
6956 }
6957 static FORCEINLINE HRESULT IFolderView2_GetItemPosition(IFolderView2* This,PCUITEMID_CHILD pidl,POINT *ppt) {
6958     return This->lpVtbl->GetItemPosition(This,pidl,ppt);
6959 }
6960 static FORCEINLINE HRESULT IFolderView2_GetSpacing(IFolderView2* This,POINT *ppt) {
6961     return This->lpVtbl->GetSpacing(This,ppt);
6962 }
6963 static FORCEINLINE HRESULT IFolderView2_GetDefaultSpacing(IFolderView2* This,POINT *ppt) {
6964     return This->lpVtbl->GetDefaultSpacing(This,ppt);
6965 }
6966 static FORCEINLINE HRESULT IFolderView2_GetAutoArrange(IFolderView2* This) {
6967     return This->lpVtbl->GetAutoArrange(This);
6968 }
6969 static FORCEINLINE HRESULT IFolderView2_SelectItem(IFolderView2* This,int iItem,DWORD dwFlags) {
6970     return This->lpVtbl->SelectItem(This,iItem,dwFlags);
6971 }
6972 static FORCEINLINE HRESULT IFolderView2_SelectAndPositionItems(IFolderView2* This,UINT cidl,PCUITEMID_CHILD_ARRAY apidl,POINT *apt,DWORD dwFlags) {
6973     return This->lpVtbl->SelectAndPositionItems(This,cidl,apidl,apt,dwFlags);
6974 }
6975 /*** IFolderView2 methods ***/
6976 static FORCEINLINE HRESULT IFolderView2_SetGroupBy(IFolderView2* This,REFPROPERTYKEY key,WINBOOL fAscending) {
6977     return This->lpVtbl->SetGroupBy(This,key,fAscending);
6978 }
6979 static FORCEINLINE HRESULT IFolderView2_GetGroupBy(IFolderView2* This,PROPERTYKEY *pkey,WINBOOL *pfAscending) {
6980     return This->lpVtbl->GetGroupBy(This,pkey,pfAscending);
6981 }
6982 static FORCEINLINE HRESULT IFolderView2_SetViewProperty(IFolderView2* This,PCUITEMID_CHILD pidl,REFPROPERTYKEY propkey,REFPROPVARIANT propvar) {
6983     return This->lpVtbl->SetViewProperty(This,pidl,propkey,propvar);
6984 }
6985 static FORCEINLINE HRESULT IFolderView2_GetViewProperty(IFolderView2* This,PCUITEMID_CHILD pidl,REFPROPERTYKEY propkey,PROPVARIANT *ppropvar) {
6986     return This->lpVtbl->GetViewProperty(This,pidl,propkey,ppropvar);
6987 }
6988 static FORCEINLINE HRESULT IFolderView2_SetTileViewProperties(IFolderView2* This,PCUITEMID_CHILD pidl,LPCWSTR pszPropList) {
6989     return This->lpVtbl->SetTileViewProperties(This,pidl,pszPropList);
6990 }
6991 static FORCEINLINE HRESULT IFolderView2_SetExtendedTileViewProperties(IFolderView2* This,PCUITEMID_CHILD pidl,LPCWSTR pszPropList) {
6992     return This->lpVtbl->SetExtendedTileViewProperties(This,pidl,pszPropList);
6993 }
6994 static FORCEINLINE HRESULT IFolderView2_SetText(IFolderView2* This,FVTEXTTYPE iType,LPCWSTR pwszText) {
6995     return This->lpVtbl->SetText(This,iType,pwszText);
6996 }
6997 static FORCEINLINE HRESULT IFolderView2_SetCurrentFolderFlags(IFolderView2* This,DWORD dwMask,DWORD dwFlags) {
6998     return This->lpVtbl->SetCurrentFolderFlags(This,dwMask,dwFlags);
6999 }
7000 static FORCEINLINE HRESULT IFolderView2_GetCurrentFolderFlags(IFolderView2* This,DWORD *pdwFlags) {
7001     return This->lpVtbl->GetCurrentFolderFlags(This,pdwFlags);
7002 }
7003 static FORCEINLINE HRESULT IFolderView2_GetSortColumnCount(IFolderView2* This,int *pcColumns) {
7004     return This->lpVtbl->GetSortColumnCount(This,pcColumns);
7005 }
7006 static FORCEINLINE HRESULT IFolderView2_SetSortColumns(IFolderView2* This,const SORTCOLUMN *rgSortColumns,int cColumns) {
7007     return This->lpVtbl->SetSortColumns(This,rgSortColumns,cColumns);
7008 }
7009 static FORCEINLINE HRESULT IFolderView2_GetSortColumns(IFolderView2* This,SORTCOLUMN *rgSortColumns,int cColumns) {
7010     return This->lpVtbl->GetSortColumns(This,rgSortColumns,cColumns);
7011 }
7012 static FORCEINLINE HRESULT IFolderView2_GetItem(IFolderView2* This,int iItem,REFIID riid,void **ppv) {
7013     return This->lpVtbl->GetItem(This,iItem,riid,ppv);
7014 }
7015 static FORCEINLINE HRESULT IFolderView2_GetVisibleItem(IFolderView2* This,int iStart,WINBOOL fPrevious,int *piItem) {
7016     return This->lpVtbl->GetVisibleItem(This,iStart,fPrevious,piItem);
7017 }
7018 static FORCEINLINE HRESULT IFolderView2_GetSelectedItem(IFolderView2* This,int iStart,int *piItem) {
7019     return This->lpVtbl->GetSelectedItem(This,iStart,piItem);
7020 }
7021 static FORCEINLINE HRESULT IFolderView2_GetSelection(IFolderView2* This,WINBOOL fNoneImpliesFolder,IShellItemArray **ppsia) {
7022     return This->lpVtbl->GetSelection(This,fNoneImpliesFolder,ppsia);
7023 }
7024 static FORCEINLINE HRESULT IFolderView2_GetSelectionState(IFolderView2* This,PCUITEMID_CHILD pidl,DWORD *pdwFlags) {
7025     return This->lpVtbl->GetSelectionState(This,pidl,pdwFlags);
7026 }
7027 static FORCEINLINE HRESULT IFolderView2_InvokeVerbOnSelection(IFolderView2* This,LPCSTR pszVerb) {
7028     return This->lpVtbl->InvokeVerbOnSelection(This,pszVerb);
7029 }
7030 static FORCEINLINE HRESULT IFolderView2_SetViewModeAndIconSize(IFolderView2* This,FOLDERVIEWMODE uViewMode,int iImageSize) {
7031     return This->lpVtbl->SetViewModeAndIconSize(This,uViewMode,iImageSize);
7032 }
7033 static FORCEINLINE HRESULT IFolderView2_GetViewModeAndIconSize(IFolderView2* This,FOLDERVIEWMODE *puViewMode,int *piImageSize) {
7034     return This->lpVtbl->GetViewModeAndIconSize(This,puViewMode,piImageSize);
7035 }
7036 static FORCEINLINE HRESULT IFolderView2_SetGroupSubsetCount(IFolderView2* This,UINT cVisibleRows) {
7037     return This->lpVtbl->SetGroupSubsetCount(This,cVisibleRows);
7038 }
7039 static FORCEINLINE HRESULT IFolderView2_GetGroupSubsetCount(IFolderView2* This,UINT *pcVisibleRows) {
7040     return This->lpVtbl->GetGroupSubsetCount(This,pcVisibleRows);
7041 }
7042 static FORCEINLINE HRESULT IFolderView2_SetRedraw(IFolderView2* This,WINBOOL fRedrawOn) {
7043     return This->lpVtbl->SetRedraw(This,fRedrawOn);
7044 }
7045 static FORCEINLINE HRESULT IFolderView2_IsMoveInSameFolder(IFolderView2* This) {
7046     return This->lpVtbl->IsMoveInSameFolder(This);
7047 }
7048 static FORCEINLINE HRESULT IFolderView2_DoRename(IFolderView2* This) {
7049     return This->lpVtbl->DoRename(This);
7050 }
7051 #endif
7052 #endif
7053 
7054 #endif
7055 
7056 HRESULT STDMETHODCALLTYPE IFolderView2_SetGroupBy_Proxy(
7057     IFolderView2* This,
7058     REFPROPERTYKEY key,
7059     WINBOOL fAscending);
7060 void __RPC_STUB IFolderView2_SetGroupBy_Stub(
7061     IRpcStubBuffer* This,
7062     IRpcChannelBuffer* pRpcChannelBuffer,
7063     PRPC_MESSAGE pRpcMessage,
7064     DWORD* pdwStubPhase);
7065 HRESULT STDMETHODCALLTYPE IFolderView2_RemoteGetGroupBy_Proxy(
7066     IFolderView2* This,
7067     PROPERTYKEY *pkey,
7068     WINBOOL *pfAscending);
7069 void __RPC_STUB IFolderView2_RemoteGetGroupBy_Stub(
7070     IRpcStubBuffer* This,
7071     IRpcChannelBuffer* pRpcChannelBuffer,
7072     PRPC_MESSAGE pRpcMessage,
7073     DWORD* pdwStubPhase);
7074 HRESULT STDMETHODCALLTYPE IFolderView2_SetViewProperty_Proxy(
7075     IFolderView2* This,
7076     PCUITEMID_CHILD pidl,
7077     REFPROPERTYKEY propkey,
7078     REFPROPVARIANT propvar);
7079 void __RPC_STUB IFolderView2_SetViewProperty_Stub(
7080     IRpcStubBuffer* This,
7081     IRpcChannelBuffer* pRpcChannelBuffer,
7082     PRPC_MESSAGE pRpcMessage,
7083     DWORD* pdwStubPhase);
7084 HRESULT STDMETHODCALLTYPE IFolderView2_GetViewProperty_Proxy(
7085     IFolderView2* This,
7086     PCUITEMID_CHILD pidl,
7087     REFPROPERTYKEY propkey,
7088     PROPVARIANT *ppropvar);
7089 void __RPC_STUB IFolderView2_GetViewProperty_Stub(
7090     IRpcStubBuffer* This,
7091     IRpcChannelBuffer* pRpcChannelBuffer,
7092     PRPC_MESSAGE pRpcMessage,
7093     DWORD* pdwStubPhase);
7094 HRESULT STDMETHODCALLTYPE IFolderView2_SetTileViewProperties_Proxy(
7095     IFolderView2* This,
7096     PCUITEMID_CHILD pidl,
7097     LPCWSTR pszPropList);
7098 void __RPC_STUB IFolderView2_SetTileViewProperties_Stub(
7099     IRpcStubBuffer* This,
7100     IRpcChannelBuffer* pRpcChannelBuffer,
7101     PRPC_MESSAGE pRpcMessage,
7102     DWORD* pdwStubPhase);
7103 HRESULT STDMETHODCALLTYPE IFolderView2_SetExtendedTileViewProperties_Proxy(
7104     IFolderView2* This,
7105     PCUITEMID_CHILD pidl,
7106     LPCWSTR pszPropList);
7107 void __RPC_STUB IFolderView2_SetExtendedTileViewProperties_Stub(
7108     IRpcStubBuffer* This,
7109     IRpcChannelBuffer* pRpcChannelBuffer,
7110     PRPC_MESSAGE pRpcMessage,
7111     DWORD* pdwStubPhase);
7112 HRESULT STDMETHODCALLTYPE IFolderView2_SetText_Proxy(
7113     IFolderView2* This,
7114     FVTEXTTYPE iType,
7115     LPCWSTR pwszText);
7116 void __RPC_STUB IFolderView2_SetText_Stub(
7117     IRpcStubBuffer* This,
7118     IRpcChannelBuffer* pRpcChannelBuffer,
7119     PRPC_MESSAGE pRpcMessage,
7120     DWORD* pdwStubPhase);
7121 HRESULT STDMETHODCALLTYPE IFolderView2_SetCurrentFolderFlags_Proxy(
7122     IFolderView2* This,
7123     DWORD dwMask,
7124     DWORD dwFlags);
7125 void __RPC_STUB IFolderView2_SetCurrentFolderFlags_Stub(
7126     IRpcStubBuffer* This,
7127     IRpcChannelBuffer* pRpcChannelBuffer,
7128     PRPC_MESSAGE pRpcMessage,
7129     DWORD* pdwStubPhase);
7130 HRESULT STDMETHODCALLTYPE IFolderView2_GetCurrentFolderFlags_Proxy(
7131     IFolderView2* This,
7132     DWORD *pdwFlags);
7133 void __RPC_STUB IFolderView2_GetCurrentFolderFlags_Stub(
7134     IRpcStubBuffer* This,
7135     IRpcChannelBuffer* pRpcChannelBuffer,
7136     PRPC_MESSAGE pRpcMessage,
7137     DWORD* pdwStubPhase);
7138 HRESULT STDMETHODCALLTYPE IFolderView2_GetSortColumnCount_Proxy(
7139     IFolderView2* This,
7140     int *pcColumns);
7141 void __RPC_STUB IFolderView2_GetSortColumnCount_Stub(
7142     IRpcStubBuffer* This,
7143     IRpcChannelBuffer* pRpcChannelBuffer,
7144     PRPC_MESSAGE pRpcMessage,
7145     DWORD* pdwStubPhase);
7146 HRESULT STDMETHODCALLTYPE IFolderView2_SetSortColumns_Proxy(
7147     IFolderView2* This,
7148     const SORTCOLUMN *rgSortColumns,
7149     int cColumns);
7150 void __RPC_STUB IFolderView2_SetSortColumns_Stub(
7151     IRpcStubBuffer* This,
7152     IRpcChannelBuffer* pRpcChannelBuffer,
7153     PRPC_MESSAGE pRpcMessage,
7154     DWORD* pdwStubPhase);
7155 HRESULT STDMETHODCALLTYPE IFolderView2_GetSortColumns_Proxy(
7156     IFolderView2* This,
7157     SORTCOLUMN *rgSortColumns,
7158     int cColumns);
7159 void __RPC_STUB IFolderView2_GetSortColumns_Stub(
7160     IRpcStubBuffer* This,
7161     IRpcChannelBuffer* pRpcChannelBuffer,
7162     PRPC_MESSAGE pRpcMessage,
7163     DWORD* pdwStubPhase);
7164 HRESULT STDMETHODCALLTYPE IFolderView2_GetItem_Proxy(
7165     IFolderView2* This,
7166     int iItem,
7167     REFIID riid,
7168     void **ppv);
7169 void __RPC_STUB IFolderView2_GetItem_Stub(
7170     IRpcStubBuffer* This,
7171     IRpcChannelBuffer* pRpcChannelBuffer,
7172     PRPC_MESSAGE pRpcMessage,
7173     DWORD* pdwStubPhase);
7174 HRESULT STDMETHODCALLTYPE IFolderView2_GetVisibleItem_Proxy(
7175     IFolderView2* This,
7176     int iStart,
7177     WINBOOL fPrevious,
7178     int *piItem);
7179 void __RPC_STUB IFolderView2_GetVisibleItem_Stub(
7180     IRpcStubBuffer* This,
7181     IRpcChannelBuffer* pRpcChannelBuffer,
7182     PRPC_MESSAGE pRpcMessage,
7183     DWORD* pdwStubPhase);
7184 HRESULT STDMETHODCALLTYPE IFolderView2_GetSelectedItem_Proxy(
7185     IFolderView2* This,
7186     int iStart,
7187     int *piItem);
7188 void __RPC_STUB IFolderView2_GetSelectedItem_Stub(
7189     IRpcStubBuffer* This,
7190     IRpcChannelBuffer* pRpcChannelBuffer,
7191     PRPC_MESSAGE pRpcMessage,
7192     DWORD* pdwStubPhase);
7193 HRESULT STDMETHODCALLTYPE IFolderView2_GetSelection_Proxy(
7194     IFolderView2* This,
7195     WINBOOL fNoneImpliesFolder,
7196     IShellItemArray **ppsia);
7197 void __RPC_STUB IFolderView2_GetSelection_Stub(
7198     IRpcStubBuffer* This,
7199     IRpcChannelBuffer* pRpcChannelBuffer,
7200     PRPC_MESSAGE pRpcMessage,
7201     DWORD* pdwStubPhase);
7202 HRESULT STDMETHODCALLTYPE IFolderView2_GetSelectionState_Proxy(
7203     IFolderView2* This,
7204     PCUITEMID_CHILD pidl,
7205     DWORD *pdwFlags);
7206 void __RPC_STUB IFolderView2_GetSelectionState_Stub(
7207     IRpcStubBuffer* This,
7208     IRpcChannelBuffer* pRpcChannelBuffer,
7209     PRPC_MESSAGE pRpcMessage,
7210     DWORD* pdwStubPhase);
7211 HRESULT STDMETHODCALLTYPE IFolderView2_InvokeVerbOnSelection_Proxy(
7212     IFolderView2* This,
7213     LPCSTR pszVerb);
7214 void __RPC_STUB IFolderView2_InvokeVerbOnSelection_Stub(
7215     IRpcStubBuffer* This,
7216     IRpcChannelBuffer* pRpcChannelBuffer,
7217     PRPC_MESSAGE pRpcMessage,
7218     DWORD* pdwStubPhase);
7219 HRESULT STDMETHODCALLTYPE IFolderView2_SetViewModeAndIconSize_Proxy(
7220     IFolderView2* This,
7221     FOLDERVIEWMODE uViewMode,
7222     int iImageSize);
7223 void __RPC_STUB IFolderView2_SetViewModeAndIconSize_Stub(
7224     IRpcStubBuffer* This,
7225     IRpcChannelBuffer* pRpcChannelBuffer,
7226     PRPC_MESSAGE pRpcMessage,
7227     DWORD* pdwStubPhase);
7228 HRESULT STDMETHODCALLTYPE IFolderView2_GetViewModeAndIconSize_Proxy(
7229     IFolderView2* This,
7230     FOLDERVIEWMODE *puViewMode,
7231     int *piImageSize);
7232 void __RPC_STUB IFolderView2_GetViewModeAndIconSize_Stub(
7233     IRpcStubBuffer* This,
7234     IRpcChannelBuffer* pRpcChannelBuffer,
7235     PRPC_MESSAGE pRpcMessage,
7236     DWORD* pdwStubPhase);
7237 HRESULT STDMETHODCALLTYPE IFolderView2_SetGroupSubsetCount_Proxy(
7238     IFolderView2* This,
7239     UINT cVisibleRows);
7240 void __RPC_STUB IFolderView2_SetGroupSubsetCount_Stub(
7241     IRpcStubBuffer* This,
7242     IRpcChannelBuffer* pRpcChannelBuffer,
7243     PRPC_MESSAGE pRpcMessage,
7244     DWORD* pdwStubPhase);
7245 HRESULT STDMETHODCALLTYPE IFolderView2_GetGroupSubsetCount_Proxy(
7246     IFolderView2* This,
7247     UINT *pcVisibleRows);
7248 void __RPC_STUB IFolderView2_GetGroupSubsetCount_Stub(
7249     IRpcStubBuffer* This,
7250     IRpcChannelBuffer* pRpcChannelBuffer,
7251     PRPC_MESSAGE pRpcMessage,
7252     DWORD* pdwStubPhase);
7253 HRESULT STDMETHODCALLTYPE IFolderView2_SetRedraw_Proxy(
7254     IFolderView2* This,
7255     WINBOOL fRedrawOn);
7256 void __RPC_STUB IFolderView2_SetRedraw_Stub(
7257     IRpcStubBuffer* This,
7258     IRpcChannelBuffer* pRpcChannelBuffer,
7259     PRPC_MESSAGE pRpcMessage,
7260     DWORD* pdwStubPhase);
7261 HRESULT STDMETHODCALLTYPE IFolderView2_IsMoveInSameFolder_Proxy(
7262     IFolderView2* This);
7263 void __RPC_STUB IFolderView2_IsMoveInSameFolder_Stub(
7264     IRpcStubBuffer* This,
7265     IRpcChannelBuffer* pRpcChannelBuffer,
7266     PRPC_MESSAGE pRpcMessage,
7267     DWORD* pdwStubPhase);
7268 HRESULT STDMETHODCALLTYPE IFolderView2_DoRename_Proxy(
7269     IFolderView2* This);
7270 void __RPC_STUB IFolderView2_DoRename_Stub(
7271     IRpcStubBuffer* This,
7272     IRpcChannelBuffer* pRpcChannelBuffer,
7273     PRPC_MESSAGE pRpcMessage,
7274     DWORD* pdwStubPhase);
7275 HRESULT CALLBACK IFolderView2_GetGroupBy_Proxy(
7276     IFolderView2* This,
7277     PROPERTYKEY *pkey,
7278     WINBOOL *pfAscending);
7279 HRESULT __RPC_STUB IFolderView2_GetGroupBy_Stub(
7280     IFolderView2* This,
7281     PROPERTYKEY *pkey,
7282     WINBOOL *pfAscending);
7283 
7284 #endif  /* __IFolderView2_INTERFACE_DEFINED__ */
7285 
7286 
7287 #if NTDDI_VERSION >= NTDDI_VISTA
7288 /*****************************************************************************
7289  * IFolderViewSettings interface
7290  */
7291 #ifndef __IFolderViewSettings_INTERFACE_DEFINED__
7292 #define __IFolderViewSettings_INTERFACE_DEFINED__
7293 
7294 DEFINE_GUID(IID_IFolderViewSettings, 0xae8c987d, 0x8797, 0x4ed3, 0xbe,0x72, 0x2a,0x47,0xdd,0x93,0x8d,0xb0);
7295 #if defined(__cplusplus) && !defined(CINTERFACE)
7296 MIDL_INTERFACE("ae8c987d-8797-4ed3-be72-2a47dd938db0")
7297 IFolderViewSettings : public IUnknown
7298 {
7299     virtual HRESULT STDMETHODCALLTYPE GetColumnPropertyList(
7300         REFIID riid,
7301         void **ppv) = 0;
7302 
7303     virtual HRESULT STDMETHODCALLTYPE GetGroupByProperty(
7304         PROPERTYKEY *pkey,
7305         WINBOOL *pfGroupAscending) = 0;
7306 
7307     virtual HRESULT STDMETHODCALLTYPE GetViewMode(
7308         FOLDERLOGICALVIEWMODE *plvm) = 0;
7309 
7310     virtual HRESULT STDMETHODCALLTYPE GetIconSize(
7311         UINT *puIconSize) = 0;
7312 
7313     virtual HRESULT STDMETHODCALLTYPE GetFolderFlags(
7314         FOLDERFLAGS *pfolderMask,
7315         FOLDERFLAGS *pfolderFlags) = 0;
7316 
7317     virtual HRESULT STDMETHODCALLTYPE GetSortColumns(
7318         SORTCOLUMN *rgSortColumns,
7319         UINT cColumnsIn,
7320         UINT *pcColumnsOut) = 0;
7321 
7322     virtual HRESULT STDMETHODCALLTYPE GetGroupSubsetCount(
7323         UINT *pcVisibleRows) = 0;
7324 
7325 };
7326 #ifdef __CRT_UUID_DECL
7327 __CRT_UUID_DECL(IFolderViewSettings, 0xae8c987d, 0x8797, 0x4ed3, 0xbe,0x72, 0x2a,0x47,0xdd,0x93,0x8d,0xb0)
7328 #endif
7329 #else
7330 typedef struct IFolderViewSettingsVtbl {
7331     BEGIN_INTERFACE
7332 
7333     /*** IUnknown methods ***/
7334     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7335         IFolderViewSettings* This,
7336         REFIID riid,
7337         void **ppvObject);
7338 
7339     ULONG (STDMETHODCALLTYPE *AddRef)(
7340         IFolderViewSettings* This);
7341 
7342     ULONG (STDMETHODCALLTYPE *Release)(
7343         IFolderViewSettings* This);
7344 
7345     /*** IFolderViewSettings methods ***/
7346     HRESULT (STDMETHODCALLTYPE *GetColumnPropertyList)(
7347         IFolderViewSettings* This,
7348         REFIID riid,
7349         void **ppv);
7350 
7351     HRESULT (STDMETHODCALLTYPE *GetGroupByProperty)(
7352         IFolderViewSettings* This,
7353         PROPERTYKEY *pkey,
7354         WINBOOL *pfGroupAscending);
7355 
7356     HRESULT (STDMETHODCALLTYPE *GetViewMode)(
7357         IFolderViewSettings* This,
7358         FOLDERLOGICALVIEWMODE *plvm);
7359 
7360     HRESULT (STDMETHODCALLTYPE *GetIconSize)(
7361         IFolderViewSettings* This,
7362         UINT *puIconSize);
7363 
7364     HRESULT (STDMETHODCALLTYPE *GetFolderFlags)(
7365         IFolderViewSettings* This,
7366         FOLDERFLAGS *pfolderMask,
7367         FOLDERFLAGS *pfolderFlags);
7368 
7369     HRESULT (STDMETHODCALLTYPE *GetSortColumns)(
7370         IFolderViewSettings* This,
7371         SORTCOLUMN *rgSortColumns,
7372         UINT cColumnsIn,
7373         UINT *pcColumnsOut);
7374 
7375     HRESULT (STDMETHODCALLTYPE *GetGroupSubsetCount)(
7376         IFolderViewSettings* This,
7377         UINT *pcVisibleRows);
7378 
7379     END_INTERFACE
7380 } IFolderViewSettingsVtbl;
7381 interface IFolderViewSettings {
7382     CONST_VTBL IFolderViewSettingsVtbl* lpVtbl;
7383 };
7384 
7385 #ifdef COBJMACROS
7386 #ifndef WIDL_C_INLINE_WRAPPERS
7387 /*** IUnknown methods ***/
7388 #define IFolderViewSettings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7389 #define IFolderViewSettings_AddRef(This) (This)->lpVtbl->AddRef(This)
7390 #define IFolderViewSettings_Release(This) (This)->lpVtbl->Release(This)
7391 /*** IFolderViewSettings methods ***/
7392 #define IFolderViewSettings_GetColumnPropertyList(This,riid,ppv) (This)->lpVtbl->GetColumnPropertyList(This,riid,ppv)
7393 #define IFolderViewSettings_GetGroupByProperty(This,pkey,pfGroupAscending) (This)->lpVtbl->GetGroupByProperty(This,pkey,pfGroupAscending)
7394 #define IFolderViewSettings_GetViewMode(This,plvm) (This)->lpVtbl->GetViewMode(This,plvm)
7395 #define IFolderViewSettings_GetIconSize(This,puIconSize) (This)->lpVtbl->GetIconSize(This,puIconSize)
7396 #define IFolderViewSettings_GetFolderFlags(This,pfolderMask,pfolderFlags) (This)->lpVtbl->GetFolderFlags(This,pfolderMask,pfolderFlags)
7397 #define IFolderViewSettings_GetSortColumns(This,rgSortColumns,cColumnsIn,pcColumnsOut) (This)->lpVtbl->GetSortColumns(This,rgSortColumns,cColumnsIn,pcColumnsOut)
7398 #define IFolderViewSettings_GetGroupSubsetCount(This,pcVisibleRows) (This)->lpVtbl->GetGroupSubsetCount(This,pcVisibleRows)
7399 #else
7400 /*** IUnknown methods ***/
7401 static FORCEINLINE HRESULT IFolderViewSettings_QueryInterface(IFolderViewSettings* This,REFIID riid,void **ppvObject) {
7402     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7403 }
7404 static FORCEINLINE ULONG IFolderViewSettings_AddRef(IFolderViewSettings* This) {
7405     return This->lpVtbl->AddRef(This);
7406 }
7407 static FORCEINLINE ULONG IFolderViewSettings_Release(IFolderViewSettings* This) {
7408     return This->lpVtbl->Release(This);
7409 }
7410 /*** IFolderViewSettings methods ***/
7411 static FORCEINLINE HRESULT IFolderViewSettings_GetColumnPropertyList(IFolderViewSettings* This,REFIID riid,void **ppv) {
7412     return This->lpVtbl->GetColumnPropertyList(This,riid,ppv);
7413 }
7414 static FORCEINLINE HRESULT IFolderViewSettings_GetGroupByProperty(IFolderViewSettings* This,PROPERTYKEY *pkey,WINBOOL *pfGroupAscending) {
7415     return This->lpVtbl->GetGroupByProperty(This,pkey,pfGroupAscending);
7416 }
7417 static FORCEINLINE HRESULT IFolderViewSettings_GetViewMode(IFolderViewSettings* This,FOLDERLOGICALVIEWMODE *plvm) {
7418     return This->lpVtbl->GetViewMode(This,plvm);
7419 }
7420 static FORCEINLINE HRESULT IFolderViewSettings_GetIconSize(IFolderViewSettings* This,UINT *puIconSize) {
7421     return This->lpVtbl->GetIconSize(This,puIconSize);
7422 }
7423 static FORCEINLINE HRESULT IFolderViewSettings_GetFolderFlags(IFolderViewSettings* This,FOLDERFLAGS *pfolderMask,FOLDERFLAGS *pfolderFlags) {
7424     return This->lpVtbl->GetFolderFlags(This,pfolderMask,pfolderFlags);
7425 }
7426 static FORCEINLINE HRESULT IFolderViewSettings_GetSortColumns(IFolderViewSettings* This,SORTCOLUMN *rgSortColumns,UINT cColumnsIn,UINT *pcColumnsOut) {
7427     return This->lpVtbl->GetSortColumns(This,rgSortColumns,cColumnsIn,pcColumnsOut);
7428 }
7429 static FORCEINLINE HRESULT IFolderViewSettings_GetGroupSubsetCount(IFolderViewSettings* This,UINT *pcVisibleRows) {
7430     return This->lpVtbl->GetGroupSubsetCount(This,pcVisibleRows);
7431 }
7432 #endif
7433 #endif
7434 
7435 #endif
7436 
7437 HRESULT STDMETHODCALLTYPE IFolderViewSettings_GetColumnPropertyList_Proxy(
7438     IFolderViewSettings* This,
7439     REFIID riid,
7440     void **ppv);
7441 void __RPC_STUB IFolderViewSettings_GetColumnPropertyList_Stub(
7442     IRpcStubBuffer* This,
7443     IRpcChannelBuffer* pRpcChannelBuffer,
7444     PRPC_MESSAGE pRpcMessage,
7445     DWORD* pdwStubPhase);
7446 HRESULT STDMETHODCALLTYPE IFolderViewSettings_GetGroupByProperty_Proxy(
7447     IFolderViewSettings* This,
7448     PROPERTYKEY *pkey,
7449     WINBOOL *pfGroupAscending);
7450 void __RPC_STUB IFolderViewSettings_GetGroupByProperty_Stub(
7451     IRpcStubBuffer* This,
7452     IRpcChannelBuffer* pRpcChannelBuffer,
7453     PRPC_MESSAGE pRpcMessage,
7454     DWORD* pdwStubPhase);
7455 HRESULT STDMETHODCALLTYPE IFolderViewSettings_GetViewMode_Proxy(
7456     IFolderViewSettings* This,
7457     FOLDERLOGICALVIEWMODE *plvm);
7458 void __RPC_STUB IFolderViewSettings_GetViewMode_Stub(
7459     IRpcStubBuffer* This,
7460     IRpcChannelBuffer* pRpcChannelBuffer,
7461     PRPC_MESSAGE pRpcMessage,
7462     DWORD* pdwStubPhase);
7463 HRESULT STDMETHODCALLTYPE IFolderViewSettings_GetIconSize_Proxy(
7464     IFolderViewSettings* This,
7465     UINT *puIconSize);
7466 void __RPC_STUB IFolderViewSettings_GetIconSize_Stub(
7467     IRpcStubBuffer* This,
7468     IRpcChannelBuffer* pRpcChannelBuffer,
7469     PRPC_MESSAGE pRpcMessage,
7470     DWORD* pdwStubPhase);
7471 HRESULT STDMETHODCALLTYPE IFolderViewSettings_GetFolderFlags_Proxy(
7472     IFolderViewSettings* This,
7473     FOLDERFLAGS *pfolderMask,
7474     FOLDERFLAGS *pfolderFlags);
7475 void __RPC_STUB IFolderViewSettings_GetFolderFlags_Stub(
7476     IRpcStubBuffer* This,
7477     IRpcChannelBuffer* pRpcChannelBuffer,
7478     PRPC_MESSAGE pRpcMessage,
7479     DWORD* pdwStubPhase);
7480 HRESULT STDMETHODCALLTYPE IFolderViewSettings_GetSortColumns_Proxy(
7481     IFolderViewSettings* This,
7482     SORTCOLUMN *rgSortColumns,
7483     UINT cColumnsIn,
7484     UINT *pcColumnsOut);
7485 void __RPC_STUB IFolderViewSettings_GetSortColumns_Stub(
7486     IRpcStubBuffer* This,
7487     IRpcChannelBuffer* pRpcChannelBuffer,
7488     PRPC_MESSAGE pRpcMessage,
7489     DWORD* pdwStubPhase);
7490 HRESULT STDMETHODCALLTYPE IFolderViewSettings_GetGroupSubsetCount_Proxy(
7491     IFolderViewSettings* This,
7492     UINT *pcVisibleRows);
7493 void __RPC_STUB IFolderViewSettings_GetGroupSubsetCount_Stub(
7494     IRpcStubBuffer* This,
7495     IRpcChannelBuffer* pRpcChannelBuffer,
7496     PRPC_MESSAGE pRpcMessage,
7497     DWORD* pdwStubPhase);
7498 
7499 #endif  /* __IFolderViewSettings_INTERFACE_DEFINED__ */
7500 
7501 #endif
7502 #endif
7503 
7504 #if _WIN32_IE >= _WIN32_IE_IE70
7505 /*****************************************************************************
7506  * IPreviewHandlerVisuals interface
7507  */
7508 #ifndef __IPreviewHandlerVisuals_INTERFACE_DEFINED__
7509 #define __IPreviewHandlerVisuals_INTERFACE_DEFINED__
7510 
7511 DEFINE_GUID(IID_IPreviewHandlerVisuals, 0x196bf9a5, 0xb346, 0x4ef0, 0xaa,0x1e, 0x5d,0xcd,0xb7,0x67,0x68,0xb1);
7512 #if defined(__cplusplus) && !defined(CINTERFACE)
7513 MIDL_INTERFACE("196bf9a5-b346-4ef0-aa1e-5dcdb76768b1")
7514 IPreviewHandlerVisuals : public IUnknown
7515 {
7516     virtual HRESULT STDMETHODCALLTYPE SetBackgroundColor(
7517         COLORREF color) = 0;
7518 
7519     virtual HRESULT STDMETHODCALLTYPE SetFont(
7520         const LOGFONTW *plf) = 0;
7521 
7522     virtual HRESULT STDMETHODCALLTYPE SetTextColor(
7523         COLORREF color) = 0;
7524 
7525 };
7526 #ifdef __CRT_UUID_DECL
7527 __CRT_UUID_DECL(IPreviewHandlerVisuals, 0x196bf9a5, 0xb346, 0x4ef0, 0xaa,0x1e, 0x5d,0xcd,0xb7,0x67,0x68,0xb1)
7528 #endif
7529 #else
7530 typedef struct IPreviewHandlerVisualsVtbl {
7531     BEGIN_INTERFACE
7532 
7533     /*** IUnknown methods ***/
7534     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7535         IPreviewHandlerVisuals* This,
7536         REFIID riid,
7537         void **ppvObject);
7538 
7539     ULONG (STDMETHODCALLTYPE *AddRef)(
7540         IPreviewHandlerVisuals* This);
7541 
7542     ULONG (STDMETHODCALLTYPE *Release)(
7543         IPreviewHandlerVisuals* This);
7544 
7545     /*** IPreviewHandlerVisuals methods ***/
7546     HRESULT (STDMETHODCALLTYPE *SetBackgroundColor)(
7547         IPreviewHandlerVisuals* This,
7548         COLORREF color);
7549 
7550     HRESULT (STDMETHODCALLTYPE *SetFont)(
7551         IPreviewHandlerVisuals* This,
7552         const LOGFONTW *plf);
7553 
7554     HRESULT (STDMETHODCALLTYPE *SetTextColor)(
7555         IPreviewHandlerVisuals* This,
7556         COLORREF color);
7557 
7558     END_INTERFACE
7559 } IPreviewHandlerVisualsVtbl;
7560 interface IPreviewHandlerVisuals {
7561     CONST_VTBL IPreviewHandlerVisualsVtbl* lpVtbl;
7562 };
7563 
7564 #ifdef COBJMACROS
7565 #ifndef WIDL_C_INLINE_WRAPPERS
7566 /*** IUnknown methods ***/
7567 #define IPreviewHandlerVisuals_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7568 #define IPreviewHandlerVisuals_AddRef(This) (This)->lpVtbl->AddRef(This)
7569 #define IPreviewHandlerVisuals_Release(This) (This)->lpVtbl->Release(This)
7570 /*** IPreviewHandlerVisuals methods ***/
7571 #define IPreviewHandlerVisuals_SetBackgroundColor(This,color) (This)->lpVtbl->SetBackgroundColor(This,color)
7572 #define IPreviewHandlerVisuals_SetFont(This,plf) (This)->lpVtbl->SetFont(This,plf)
7573 #define IPreviewHandlerVisuals_SetTextColor(This,color) (This)->lpVtbl->SetTextColor(This,color)
7574 #else
7575 /*** IUnknown methods ***/
7576 static FORCEINLINE HRESULT IPreviewHandlerVisuals_QueryInterface(IPreviewHandlerVisuals* This,REFIID riid,void **ppvObject) {
7577     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7578 }
7579 static FORCEINLINE ULONG IPreviewHandlerVisuals_AddRef(IPreviewHandlerVisuals* This) {
7580     return This->lpVtbl->AddRef(This);
7581 }
7582 static FORCEINLINE ULONG IPreviewHandlerVisuals_Release(IPreviewHandlerVisuals* This) {
7583     return This->lpVtbl->Release(This);
7584 }
7585 /*** IPreviewHandlerVisuals methods ***/
7586 static FORCEINLINE HRESULT IPreviewHandlerVisuals_SetBackgroundColor(IPreviewHandlerVisuals* This,COLORREF color) {
7587     return This->lpVtbl->SetBackgroundColor(This,color);
7588 }
7589 static FORCEINLINE HRESULT IPreviewHandlerVisuals_SetFont(IPreviewHandlerVisuals* This,const LOGFONTW *plf) {
7590     return This->lpVtbl->SetFont(This,plf);
7591 }
7592 static FORCEINLINE HRESULT IPreviewHandlerVisuals_SetTextColor(IPreviewHandlerVisuals* This,COLORREF color) {
7593     return This->lpVtbl->SetTextColor(This,color);
7594 }
7595 #endif
7596 #endif
7597 
7598 #endif
7599 
7600 HRESULT STDMETHODCALLTYPE IPreviewHandlerVisuals_SetBackgroundColor_Proxy(
7601     IPreviewHandlerVisuals* This,
7602     COLORREF color);
7603 void __RPC_STUB IPreviewHandlerVisuals_SetBackgroundColor_Stub(
7604     IRpcStubBuffer* This,
7605     IRpcChannelBuffer* pRpcChannelBuffer,
7606     PRPC_MESSAGE pRpcMessage,
7607     DWORD* pdwStubPhase);
7608 HRESULT STDMETHODCALLTYPE IPreviewHandlerVisuals_SetFont_Proxy(
7609     IPreviewHandlerVisuals* This,
7610     const LOGFONTW *plf);
7611 void __RPC_STUB IPreviewHandlerVisuals_SetFont_Stub(
7612     IRpcStubBuffer* This,
7613     IRpcChannelBuffer* pRpcChannelBuffer,
7614     PRPC_MESSAGE pRpcMessage,
7615     DWORD* pdwStubPhase);
7616 HRESULT STDMETHODCALLTYPE IPreviewHandlerVisuals_SetTextColor_Proxy(
7617     IPreviewHandlerVisuals* This,
7618     COLORREF color);
7619 void __RPC_STUB IPreviewHandlerVisuals_SetTextColor_Stub(
7620     IRpcStubBuffer* This,
7621     IRpcChannelBuffer* pRpcChannelBuffer,
7622     PRPC_MESSAGE pRpcMessage,
7623     DWORD* pdwStubPhase);
7624 
7625 #endif  /* __IPreviewHandlerVisuals_INTERFACE_DEFINED__ */
7626 
7627 
7628 /*****************************************************************************
7629  * IVisualProperties interface
7630  */
7631 #ifndef __IVisualProperties_INTERFACE_DEFINED__
7632 #define __IVisualProperties_INTERFACE_DEFINED__
7633 
7634 typedef enum VPWATERMARKFLAGS {
7635     VPWF_DEFAULT = 0x0,
7636     VPWF_ALPHABLEND = 0x1
7637 } VPWATERMARKFLAGS;
7638 
7639 typedef enum VPCOLORFLAGS {
7640     VPCF_TEXT = 1,
7641     VPCF_BACKGROUND = 2,
7642     VPCF_SORTCOLUMN = 3,
7643     VPCF_SUBTEXT = 4,
7644     VPCF_TEXTBACKGROUND = 5
7645 } VPCOLORFLAGS;
7646 
7647 DEFINE_ENUM_FLAG_OPERATORS(VPWATERMARKFLAGS)
7648 
7649 DEFINE_GUID(IID_IVisualProperties, 0xe693cf68, 0xd967, 0x4112, 0x87,0x63, 0x99,0x17,0x2a,0xee,0x5e,0x5a);
7650 #if defined(__cplusplus) && !defined(CINTERFACE)
7651 MIDL_INTERFACE("e693cf68-d967-4112-8763-99172aee5e5a")
7652 IVisualProperties : public IUnknown
7653 {
7654     virtual HRESULT STDMETHODCALLTYPE SetWatermark(
7655         HBITMAP hbmp,
7656         VPWATERMARKFLAGS vpwf) = 0;
7657 
7658     virtual HRESULT STDMETHODCALLTYPE SetColor(
7659         VPCOLORFLAGS vpcf,
7660         COLORREF cr) = 0;
7661 
7662     virtual HRESULT STDMETHODCALLTYPE GetColor(
7663         VPCOLORFLAGS vpcf,
7664         COLORREF *pcr) = 0;
7665 
7666     virtual HRESULT STDMETHODCALLTYPE SetItemHeight(
7667         int cyItemInPixels) = 0;
7668 
7669     virtual HRESULT STDMETHODCALLTYPE GetItemHeight(
7670         int *cyItemInPixels) = 0;
7671 
7672     virtual HRESULT STDMETHODCALLTYPE SetFont(
7673         const LOGFONTW *plf,
7674         WINBOOL bRedraw) = 0;
7675 
7676     virtual HRESULT STDMETHODCALLTYPE GetFont(
7677         LOGFONTW *plf) = 0;
7678 
7679     virtual HRESULT STDMETHODCALLTYPE SetTheme(
7680         LPCWSTR pszSubAppName,
7681         LPCWSTR pszSubIdList) = 0;
7682 
7683 };
7684 #ifdef __CRT_UUID_DECL
7685 __CRT_UUID_DECL(IVisualProperties, 0xe693cf68, 0xd967, 0x4112, 0x87,0x63, 0x99,0x17,0x2a,0xee,0x5e,0x5a)
7686 #endif
7687 #else
7688 typedef struct IVisualPropertiesVtbl {
7689     BEGIN_INTERFACE
7690 
7691     /*** IUnknown methods ***/
7692     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7693         IVisualProperties* This,
7694         REFIID riid,
7695         void **ppvObject);
7696 
7697     ULONG (STDMETHODCALLTYPE *AddRef)(
7698         IVisualProperties* This);
7699 
7700     ULONG (STDMETHODCALLTYPE *Release)(
7701         IVisualProperties* This);
7702 
7703     /*** IVisualProperties methods ***/
7704     HRESULT (STDMETHODCALLTYPE *SetWatermark)(
7705         IVisualProperties* This,
7706         HBITMAP hbmp,
7707         VPWATERMARKFLAGS vpwf);
7708 
7709     HRESULT (STDMETHODCALLTYPE *SetColor)(
7710         IVisualProperties* This,
7711         VPCOLORFLAGS vpcf,
7712         COLORREF cr);
7713 
7714     HRESULT (STDMETHODCALLTYPE *GetColor)(
7715         IVisualProperties* This,
7716         VPCOLORFLAGS vpcf,
7717         COLORREF *pcr);
7718 
7719     HRESULT (STDMETHODCALLTYPE *SetItemHeight)(
7720         IVisualProperties* This,
7721         int cyItemInPixels);
7722 
7723     HRESULT (STDMETHODCALLTYPE *GetItemHeight)(
7724         IVisualProperties* This,
7725         int *cyItemInPixels);
7726 
7727     HRESULT (STDMETHODCALLTYPE *SetFont)(
7728         IVisualProperties* This,
7729         const LOGFONTW *plf,
7730         WINBOOL bRedraw);
7731 
7732     HRESULT (STDMETHODCALLTYPE *GetFont)(
7733         IVisualProperties* This,
7734         LOGFONTW *plf);
7735 
7736     HRESULT (STDMETHODCALLTYPE *SetTheme)(
7737         IVisualProperties* This,
7738         LPCWSTR pszSubAppName,
7739         LPCWSTR pszSubIdList);
7740 
7741     END_INTERFACE
7742 } IVisualPropertiesVtbl;
7743 interface IVisualProperties {
7744     CONST_VTBL IVisualPropertiesVtbl* lpVtbl;
7745 };
7746 
7747 #ifdef COBJMACROS
7748 #ifndef WIDL_C_INLINE_WRAPPERS
7749 /*** IUnknown methods ***/
7750 #define IVisualProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7751 #define IVisualProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
7752 #define IVisualProperties_Release(This) (This)->lpVtbl->Release(This)
7753 /*** IVisualProperties methods ***/
7754 #define IVisualProperties_SetWatermark(This,hbmp,vpwf) (This)->lpVtbl->SetWatermark(This,hbmp,vpwf)
7755 #define IVisualProperties_SetColor(This,vpcf,cr) (This)->lpVtbl->SetColor(This,vpcf,cr)
7756 #define IVisualProperties_GetColor(This,vpcf,pcr) (This)->lpVtbl->GetColor(This,vpcf,pcr)
7757 #define IVisualProperties_SetItemHeight(This,cyItemInPixels) (This)->lpVtbl->SetItemHeight(This,cyItemInPixels)
7758 #define IVisualProperties_GetItemHeight(This,cyItemInPixels) (This)->lpVtbl->GetItemHeight(This,cyItemInPixels)
7759 #define IVisualProperties_SetFont(This,plf,bRedraw) (This)->lpVtbl->SetFont(This,plf,bRedraw)
7760 #define IVisualProperties_GetFont(This,plf) (This)->lpVtbl->GetFont(This,plf)
7761 #define IVisualProperties_SetTheme(This,pszSubAppName,pszSubIdList) (This)->lpVtbl->SetTheme(This,pszSubAppName,pszSubIdList)
7762 #else
7763 /*** IUnknown methods ***/
7764 static FORCEINLINE HRESULT IVisualProperties_QueryInterface(IVisualProperties* This,REFIID riid,void **ppvObject) {
7765     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7766 }
7767 static FORCEINLINE ULONG IVisualProperties_AddRef(IVisualProperties* This) {
7768     return This->lpVtbl->AddRef(This);
7769 }
7770 static FORCEINLINE ULONG IVisualProperties_Release(IVisualProperties* This) {
7771     return This->lpVtbl->Release(This);
7772 }
7773 /*** IVisualProperties methods ***/
7774 static FORCEINLINE HRESULT IVisualProperties_SetWatermark(IVisualProperties* This,HBITMAP hbmp,VPWATERMARKFLAGS vpwf) {
7775     return This->lpVtbl->SetWatermark(This,hbmp,vpwf);
7776 }
7777 static FORCEINLINE HRESULT IVisualProperties_SetColor(IVisualProperties* This,VPCOLORFLAGS vpcf,COLORREF cr) {
7778     return This->lpVtbl->SetColor(This,vpcf,cr);
7779 }
7780 static FORCEINLINE HRESULT IVisualProperties_GetColor(IVisualProperties* This,VPCOLORFLAGS vpcf,COLORREF *pcr) {
7781     return This->lpVtbl->GetColor(This,vpcf,pcr);
7782 }
7783 static FORCEINLINE HRESULT IVisualProperties_SetItemHeight(IVisualProperties* This,int cyItemInPixels) {
7784     return This->lpVtbl->SetItemHeight(This,cyItemInPixels);
7785 }
7786 static FORCEINLINE HRESULT IVisualProperties_GetItemHeight(IVisualProperties* This,int *cyItemInPixels) {
7787     return This->lpVtbl->GetItemHeight(This,cyItemInPixels);
7788 }
7789 static FORCEINLINE HRESULT IVisualProperties_SetFont(IVisualProperties* This,const LOGFONTW *plf,WINBOOL bRedraw) {
7790     return This->lpVtbl->SetFont(This,plf,bRedraw);
7791 }
7792 static FORCEINLINE HRESULT IVisualProperties_GetFont(IVisualProperties* This,LOGFONTW *plf) {
7793     return This->lpVtbl->GetFont(This,plf);
7794 }
7795 static FORCEINLINE HRESULT IVisualProperties_SetTheme(IVisualProperties* This,LPCWSTR pszSubAppName,LPCWSTR pszSubIdList) {
7796     return This->lpVtbl->SetTheme(This,pszSubAppName,pszSubIdList);
7797 }
7798 #endif
7799 #endif
7800 
7801 #endif
7802 
7803 HRESULT STDMETHODCALLTYPE IVisualProperties_SetWatermark_Proxy(
7804     IVisualProperties* This,
7805     HBITMAP hbmp,
7806     VPWATERMARKFLAGS vpwf);
7807 void __RPC_STUB IVisualProperties_SetWatermark_Stub(
7808     IRpcStubBuffer* This,
7809     IRpcChannelBuffer* pRpcChannelBuffer,
7810     PRPC_MESSAGE pRpcMessage,
7811     DWORD* pdwStubPhase);
7812 HRESULT STDMETHODCALLTYPE IVisualProperties_SetColor_Proxy(
7813     IVisualProperties* This,
7814     VPCOLORFLAGS vpcf,
7815     COLORREF cr);
7816 void __RPC_STUB IVisualProperties_SetColor_Stub(
7817     IRpcStubBuffer* This,
7818     IRpcChannelBuffer* pRpcChannelBuffer,
7819     PRPC_MESSAGE pRpcMessage,
7820     DWORD* pdwStubPhase);
7821 HRESULT STDMETHODCALLTYPE IVisualProperties_GetColor_Proxy(
7822     IVisualProperties* This,
7823     VPCOLORFLAGS vpcf,
7824     COLORREF *pcr);
7825 void __RPC_STUB IVisualProperties_GetColor_Stub(
7826     IRpcStubBuffer* This,
7827     IRpcChannelBuffer* pRpcChannelBuffer,
7828     PRPC_MESSAGE pRpcMessage,
7829     DWORD* pdwStubPhase);
7830 HRESULT STDMETHODCALLTYPE IVisualProperties_SetItemHeight_Proxy(
7831     IVisualProperties* This,
7832     int cyItemInPixels);
7833 void __RPC_STUB IVisualProperties_SetItemHeight_Stub(
7834     IRpcStubBuffer* This,
7835     IRpcChannelBuffer* pRpcChannelBuffer,
7836     PRPC_MESSAGE pRpcMessage,
7837     DWORD* pdwStubPhase);
7838 HRESULT STDMETHODCALLTYPE IVisualProperties_GetItemHeight_Proxy(
7839     IVisualProperties* This,
7840     int *cyItemInPixels);
7841 void __RPC_STUB IVisualProperties_GetItemHeight_Stub(
7842     IRpcStubBuffer* This,
7843     IRpcChannelBuffer* pRpcChannelBuffer,
7844     PRPC_MESSAGE pRpcMessage,
7845     DWORD* pdwStubPhase);
7846 HRESULT STDMETHODCALLTYPE IVisualProperties_SetFont_Proxy(
7847     IVisualProperties* This,
7848     const LOGFONTW *plf,
7849     WINBOOL bRedraw);
7850 void __RPC_STUB IVisualProperties_SetFont_Stub(
7851     IRpcStubBuffer* This,
7852     IRpcChannelBuffer* pRpcChannelBuffer,
7853     PRPC_MESSAGE pRpcMessage,
7854     DWORD* pdwStubPhase);
7855 HRESULT STDMETHODCALLTYPE IVisualProperties_GetFont_Proxy(
7856     IVisualProperties* This,
7857     LOGFONTW *plf);
7858 void __RPC_STUB IVisualProperties_GetFont_Stub(
7859     IRpcStubBuffer* This,
7860     IRpcChannelBuffer* pRpcChannelBuffer,
7861     PRPC_MESSAGE pRpcMessage,
7862     DWORD* pdwStubPhase);
7863 HRESULT STDMETHODCALLTYPE IVisualProperties_SetTheme_Proxy(
7864     IVisualProperties* This,
7865     LPCWSTR pszSubAppName,
7866     LPCWSTR pszSubIdList);
7867 void __RPC_STUB IVisualProperties_SetTheme_Stub(
7868     IRpcStubBuffer* This,
7869     IRpcChannelBuffer* pRpcChannelBuffer,
7870     PRPC_MESSAGE pRpcMessage,
7871     DWORD* pdwStubPhase);
7872 
7873 #endif  /* __IVisualProperties_INTERFACE_DEFINED__ */
7874 
7875 #endif
7876 
7877 #define CDBOSC_SETFOCUS 0x00000000
7878 #define CDBOSC_KILLFOCUS 0x00000001
7879 #define CDBOSC_SELCHANGE 0x00000002
7880 #define CDBOSC_RENAME 0x00000003
7881 #define CDBOSC_STATECHANGE 0x00000004
7882 
7883 /*****************************************************************************
7884  * ICommDlgBrowser interface
7885  */
7886 #ifndef __ICommDlgBrowser_INTERFACE_DEFINED__
7887 #define __ICommDlgBrowser_INTERFACE_DEFINED__
7888 
7889 DEFINE_GUID(IID_ICommDlgBrowser, 0x000214f1, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
7890 #if defined(__cplusplus) && !defined(CINTERFACE)
7891 MIDL_INTERFACE("000214f1-0000-0000-c000-000000000046")
7892 ICommDlgBrowser : public IUnknown
7893 {
7894     virtual HRESULT STDMETHODCALLTYPE OnDefaultCommand(
7895         IShellView *ppshv) = 0;
7896 
7897     virtual HRESULT STDMETHODCALLTYPE OnStateChange(
7898         IShellView *ppshv,
7899         ULONG uChange) = 0;
7900 
7901     virtual HRESULT STDMETHODCALLTYPE IncludeObject(
7902         IShellView *ppshv,
7903         PCUITEMID_CHILD pidl) = 0;
7904 
7905 };
7906 #ifdef __CRT_UUID_DECL
7907 __CRT_UUID_DECL(ICommDlgBrowser, 0x000214f1, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
7908 #endif
7909 #else
7910 typedef struct ICommDlgBrowserVtbl {
7911     BEGIN_INTERFACE
7912 
7913     /*** IUnknown methods ***/
7914     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7915         ICommDlgBrowser* This,
7916         REFIID riid,
7917         void **ppvObject);
7918 
7919     ULONG (STDMETHODCALLTYPE *AddRef)(
7920         ICommDlgBrowser* This);
7921 
7922     ULONG (STDMETHODCALLTYPE *Release)(
7923         ICommDlgBrowser* This);
7924 
7925     /*** ICommDlgBrowser methods ***/
7926     HRESULT (STDMETHODCALLTYPE *OnDefaultCommand)(
7927         ICommDlgBrowser* This,
7928         IShellView *ppshv);
7929 
7930     HRESULT (STDMETHODCALLTYPE *OnStateChange)(
7931         ICommDlgBrowser* This,
7932         IShellView *ppshv,
7933         ULONG uChange);
7934 
7935     HRESULT (STDMETHODCALLTYPE *IncludeObject)(
7936         ICommDlgBrowser* This,
7937         IShellView *ppshv,
7938         PCUITEMID_CHILD pidl);
7939 
7940     END_INTERFACE
7941 } ICommDlgBrowserVtbl;
7942 interface ICommDlgBrowser {
7943     CONST_VTBL ICommDlgBrowserVtbl* lpVtbl;
7944 };
7945 
7946 #ifdef COBJMACROS
7947 #ifndef WIDL_C_INLINE_WRAPPERS
7948 /*** IUnknown methods ***/
7949 #define ICommDlgBrowser_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7950 #define ICommDlgBrowser_AddRef(This) (This)->lpVtbl->AddRef(This)
7951 #define ICommDlgBrowser_Release(This) (This)->lpVtbl->Release(This)
7952 /*** ICommDlgBrowser methods ***/
7953 #define ICommDlgBrowser_OnDefaultCommand(This,ppshv) (This)->lpVtbl->OnDefaultCommand(This,ppshv)
7954 #define ICommDlgBrowser_OnStateChange(This,ppshv,uChange) (This)->lpVtbl->OnStateChange(This,ppshv,uChange)
7955 #define ICommDlgBrowser_IncludeObject(This,ppshv,pidl) (This)->lpVtbl->IncludeObject(This,ppshv,pidl)
7956 #else
7957 /*** IUnknown methods ***/
7958 static FORCEINLINE HRESULT ICommDlgBrowser_QueryInterface(ICommDlgBrowser* This,REFIID riid,void **ppvObject) {
7959     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7960 }
7961 static FORCEINLINE ULONG ICommDlgBrowser_AddRef(ICommDlgBrowser* This) {
7962     return This->lpVtbl->AddRef(This);
7963 }
7964 static FORCEINLINE ULONG ICommDlgBrowser_Release(ICommDlgBrowser* This) {
7965     return This->lpVtbl->Release(This);
7966 }
7967 /*** ICommDlgBrowser methods ***/
7968 static FORCEINLINE HRESULT ICommDlgBrowser_OnDefaultCommand(ICommDlgBrowser* This,IShellView *ppshv) {
7969     return This->lpVtbl->OnDefaultCommand(This,ppshv);
7970 }
7971 static FORCEINLINE HRESULT ICommDlgBrowser_OnStateChange(ICommDlgBrowser* This,IShellView *ppshv,ULONG uChange) {
7972     return This->lpVtbl->OnStateChange(This,ppshv,uChange);
7973 }
7974 static FORCEINLINE HRESULT ICommDlgBrowser_IncludeObject(ICommDlgBrowser* This,IShellView *ppshv,PCUITEMID_CHILD pidl) {
7975     return This->lpVtbl->IncludeObject(This,ppshv,pidl);
7976 }
7977 #endif
7978 #endif
7979 
7980 #endif
7981 
7982 HRESULT STDMETHODCALLTYPE ICommDlgBrowser_OnDefaultCommand_Proxy(
7983     ICommDlgBrowser* This,
7984     IShellView *ppshv);
7985 void __RPC_STUB ICommDlgBrowser_OnDefaultCommand_Stub(
7986     IRpcStubBuffer* This,
7987     IRpcChannelBuffer* pRpcChannelBuffer,
7988     PRPC_MESSAGE pRpcMessage,
7989     DWORD* pdwStubPhase);
7990 HRESULT STDMETHODCALLTYPE ICommDlgBrowser_OnStateChange_Proxy(
7991     ICommDlgBrowser* This,
7992     IShellView *ppshv,
7993     ULONG uChange);
7994 void __RPC_STUB ICommDlgBrowser_OnStateChange_Stub(
7995     IRpcStubBuffer* This,
7996     IRpcChannelBuffer* pRpcChannelBuffer,
7997     PRPC_MESSAGE pRpcMessage,
7998     DWORD* pdwStubPhase);
7999 HRESULT STDMETHODCALLTYPE ICommDlgBrowser_IncludeObject_Proxy(
8000     ICommDlgBrowser* This,
8001     IShellView *ppshv,
8002     PCUITEMID_CHILD pidl);
8003 void __RPC_STUB ICommDlgBrowser_IncludeObject_Stub(
8004     IRpcStubBuffer* This,
8005     IRpcChannelBuffer* pRpcChannelBuffer,
8006     PRPC_MESSAGE pRpcMessage,
8007     DWORD* pdwStubPhase);
8008 
8009 #endif  /* __ICommDlgBrowser_INTERFACE_DEFINED__ */
8010 
8011 typedef ICommDlgBrowser *LPCOMMDLGBROWSER;
8012 
8013 #define SID_SExplorerBrowserFrame IID_ICommDlgBrowser
8014 
8015 #define CDB2N_CONTEXTMENU_DONE 0x00000001
8016 #define CDB2N_CONTEXTMENU_START 0x00000002
8017 
8018 #define CDB2GVF_SHOWALLFILES 0x1
8019 #if NTDDI_VERSION >= NTDDI_VISTA
8020 #define CDB2GVF_ISFILESAVE 0x2
8021 #define CDB2GVF_ALLOWPREVIEWPANE 0x4
8022 #define CDB2GVF_NOSELECTVERB 0x8
8023 #define CDB2GVF_NOINCLUDEITEM 0x10
8024 #define CDB2GVF_ISFOLDERPICKER 0x20
8025 #define CDB2GVF_ADDSHIELD 0x40
8026 #endif
8027 
8028 /*****************************************************************************
8029  * ICommDlgBrowser2 interface
8030  */
8031 #ifndef __ICommDlgBrowser2_INTERFACE_DEFINED__
8032 #define __ICommDlgBrowser2_INTERFACE_DEFINED__
8033 
8034 DEFINE_GUID(IID_ICommDlgBrowser2, 0x10339516, 0x2894, 0x11d2, 0x90,0x39, 0x00,0xc0,0x4f,0x8e,0xeb,0x3e);
8035 #if defined(__cplusplus) && !defined(CINTERFACE)
8036 MIDL_INTERFACE("10339516-2894-11d2-9039-00c04f8eeb3e")
8037 ICommDlgBrowser2 : public ICommDlgBrowser
8038 {
8039     virtual HRESULT STDMETHODCALLTYPE Notify(
8040         IShellView *ppshv,
8041         DWORD dwNotifyType) = 0;
8042 
8043     virtual HRESULT STDMETHODCALLTYPE GetDefaultMenuText(
8044         IShellView *ppshv,
8045         LPWSTR pszText,
8046         int cchMax) = 0;
8047 
8048     virtual HRESULT STDMETHODCALLTYPE GetViewFlags(
8049         DWORD *pdwFlags) = 0;
8050 
8051 };
8052 #ifdef __CRT_UUID_DECL
8053 __CRT_UUID_DECL(ICommDlgBrowser2, 0x10339516, 0x2894, 0x11d2, 0x90,0x39, 0x00,0xc0,0x4f,0x8e,0xeb,0x3e)
8054 #endif
8055 #else
8056 typedef struct ICommDlgBrowser2Vtbl {
8057     BEGIN_INTERFACE
8058 
8059     /*** IUnknown methods ***/
8060     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8061         ICommDlgBrowser2* This,
8062         REFIID riid,
8063         void **ppvObject);
8064 
8065     ULONG (STDMETHODCALLTYPE *AddRef)(
8066         ICommDlgBrowser2* This);
8067 
8068     ULONG (STDMETHODCALLTYPE *Release)(
8069         ICommDlgBrowser2* This);
8070 
8071     /*** ICommDlgBrowser methods ***/
8072     HRESULT (STDMETHODCALLTYPE *OnDefaultCommand)(
8073         ICommDlgBrowser2* This,
8074         IShellView *ppshv);
8075 
8076     HRESULT (STDMETHODCALLTYPE *OnStateChange)(
8077         ICommDlgBrowser2* This,
8078         IShellView *ppshv,
8079         ULONG uChange);
8080 
8081     HRESULT (STDMETHODCALLTYPE *IncludeObject)(
8082         ICommDlgBrowser2* This,
8083         IShellView *ppshv,
8084         PCUITEMID_CHILD pidl);
8085 
8086     /*** ICommDlgBrowser2 methods ***/
8087     HRESULT (STDMETHODCALLTYPE *Notify)(
8088         ICommDlgBrowser2* This,
8089         IShellView *ppshv,
8090         DWORD dwNotifyType);
8091 
8092     HRESULT (STDMETHODCALLTYPE *GetDefaultMenuText)(
8093         ICommDlgBrowser2* This,
8094         IShellView *ppshv,
8095         LPWSTR pszText,
8096         int cchMax);
8097 
8098     HRESULT (STDMETHODCALLTYPE *GetViewFlags)(
8099         ICommDlgBrowser2* This,
8100         DWORD *pdwFlags);
8101 
8102     END_INTERFACE
8103 } ICommDlgBrowser2Vtbl;
8104 interface ICommDlgBrowser2 {
8105     CONST_VTBL ICommDlgBrowser2Vtbl* lpVtbl;
8106 };
8107 
8108 #ifdef COBJMACROS
8109 #ifndef WIDL_C_INLINE_WRAPPERS
8110 /*** IUnknown methods ***/
8111 #define ICommDlgBrowser2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8112 #define ICommDlgBrowser2_AddRef(This) (This)->lpVtbl->AddRef(This)
8113 #define ICommDlgBrowser2_Release(This) (This)->lpVtbl->Release(This)
8114 /*** ICommDlgBrowser methods ***/
8115 #define ICommDlgBrowser2_OnDefaultCommand(This,ppshv) (This)->lpVtbl->OnDefaultCommand(This,ppshv)
8116 #define ICommDlgBrowser2_OnStateChange(This,ppshv,uChange) (This)->lpVtbl->OnStateChange(This,ppshv,uChange)
8117 #define ICommDlgBrowser2_IncludeObject(This,ppshv,pidl) (This)->lpVtbl->IncludeObject(This,ppshv,pidl)
8118 /*** ICommDlgBrowser2 methods ***/
8119 #define ICommDlgBrowser2_Notify(This,ppshv,dwNotifyType) (This)->lpVtbl->Notify(This,ppshv,dwNotifyType)
8120 #define ICommDlgBrowser2_GetDefaultMenuText(This,ppshv,pszText,cchMax) (This)->lpVtbl->GetDefaultMenuText(This,ppshv,pszText,cchMax)
8121 #define ICommDlgBrowser2_GetViewFlags(This,pdwFlags) (This)->lpVtbl->GetViewFlags(This,pdwFlags)
8122 #else
8123 /*** IUnknown methods ***/
8124 static FORCEINLINE HRESULT ICommDlgBrowser2_QueryInterface(ICommDlgBrowser2* This,REFIID riid,void **ppvObject) {
8125     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8126 }
8127 static FORCEINLINE ULONG ICommDlgBrowser2_AddRef(ICommDlgBrowser2* This) {
8128     return This->lpVtbl->AddRef(This);
8129 }
8130 static FORCEINLINE ULONG ICommDlgBrowser2_Release(ICommDlgBrowser2* This) {
8131     return This->lpVtbl->Release(This);
8132 }
8133 /*** ICommDlgBrowser methods ***/
8134 static FORCEINLINE HRESULT ICommDlgBrowser2_OnDefaultCommand(ICommDlgBrowser2* This,IShellView *ppshv) {
8135     return This->lpVtbl->OnDefaultCommand(This,ppshv);
8136 }
8137 static FORCEINLINE HRESULT ICommDlgBrowser2_OnStateChange(ICommDlgBrowser2* This,IShellView *ppshv,ULONG uChange) {
8138     return This->lpVtbl->OnStateChange(This,ppshv,uChange);
8139 }
8140 static FORCEINLINE HRESULT ICommDlgBrowser2_IncludeObject(ICommDlgBrowser2* This,IShellView *ppshv,PCUITEMID_CHILD pidl) {
8141     return This->lpVtbl->IncludeObject(This,ppshv,pidl);
8142 }
8143 /*** ICommDlgBrowser2 methods ***/
8144 static FORCEINLINE HRESULT ICommDlgBrowser2_Notify(ICommDlgBrowser2* This,IShellView *ppshv,DWORD dwNotifyType) {
8145     return This->lpVtbl->Notify(This,ppshv,dwNotifyType);
8146 }
8147 static FORCEINLINE HRESULT ICommDlgBrowser2_GetDefaultMenuText(ICommDlgBrowser2* This,IShellView *ppshv,LPWSTR pszText,int cchMax) {
8148     return This->lpVtbl->GetDefaultMenuText(This,ppshv,pszText,cchMax);
8149 }
8150 static FORCEINLINE HRESULT ICommDlgBrowser2_GetViewFlags(ICommDlgBrowser2* This,DWORD *pdwFlags) {
8151     return This->lpVtbl->GetViewFlags(This,pdwFlags);
8152 }
8153 #endif
8154 #endif
8155 
8156 #endif
8157 
8158 HRESULT STDMETHODCALLTYPE ICommDlgBrowser2_Notify_Proxy(
8159     ICommDlgBrowser2* This,
8160     IShellView *ppshv,
8161     DWORD dwNotifyType);
8162 void __RPC_STUB ICommDlgBrowser2_Notify_Stub(
8163     IRpcStubBuffer* This,
8164     IRpcChannelBuffer* pRpcChannelBuffer,
8165     PRPC_MESSAGE pRpcMessage,
8166     DWORD* pdwStubPhase);
8167 HRESULT STDMETHODCALLTYPE ICommDlgBrowser2_GetDefaultMenuText_Proxy(
8168     ICommDlgBrowser2* This,
8169     IShellView *ppshv,
8170     LPWSTR pszText,
8171     int cchMax);
8172 void __RPC_STUB ICommDlgBrowser2_GetDefaultMenuText_Stub(
8173     IRpcStubBuffer* This,
8174     IRpcChannelBuffer* pRpcChannelBuffer,
8175     PRPC_MESSAGE pRpcMessage,
8176     DWORD* pdwStubPhase);
8177 HRESULT STDMETHODCALLTYPE ICommDlgBrowser2_GetViewFlags_Proxy(
8178     ICommDlgBrowser2* This,
8179     DWORD *pdwFlags);
8180 void __RPC_STUB ICommDlgBrowser2_GetViewFlags_Stub(
8181     IRpcStubBuffer* This,
8182     IRpcChannelBuffer* pRpcChannelBuffer,
8183     PRPC_MESSAGE pRpcMessage,
8184     DWORD* pdwStubPhase);
8185 
8186 #endif  /* __ICommDlgBrowser2_INTERFACE_DEFINED__ */
8187 
8188 typedef ICommDlgBrowser2 *LPCOMMDLGBROWSER2;
8189 
8190 #if _WIN32_IE >= _WIN32_IE_IE70
8191 /*****************************************************************************
8192  * ICommDlgBrowser3 interface
8193  */
8194 #ifndef __ICommDlgBrowser3_INTERFACE_DEFINED__
8195 #define __ICommDlgBrowser3_INTERFACE_DEFINED__
8196 
8197 DEFINE_GUID(IID_ICommDlgBrowser3, 0xc8ad25a1, 0x3294, 0x41ee, 0x81,0x65, 0x71,0x17,0x4b,0xd0,0x1c,0x57);
8198 #if defined(__cplusplus) && !defined(CINTERFACE)
8199 MIDL_INTERFACE("c8ad25a1-3294-41ee-8165-71174bd01c57")
8200 ICommDlgBrowser3 : public ICommDlgBrowser2
8201 {
8202     virtual HRESULT STDMETHODCALLTYPE OnColumnClicked(
8203         IShellView *ppshv,
8204         int iColumn) = 0;
8205 
8206     virtual HRESULT STDMETHODCALLTYPE GetCurrentFilter(
8207         LPWSTR pszFileSpec,
8208         int cchFileSpec) = 0;
8209 
8210     virtual HRESULT STDMETHODCALLTYPE OnPreViewCreated(
8211         IShellView *ppshv) = 0;
8212 
8213 };
8214 #ifdef __CRT_UUID_DECL
8215 __CRT_UUID_DECL(ICommDlgBrowser3, 0xc8ad25a1, 0x3294, 0x41ee, 0x81,0x65, 0x71,0x17,0x4b,0xd0,0x1c,0x57)
8216 #endif
8217 #else
8218 typedef struct ICommDlgBrowser3Vtbl {
8219     BEGIN_INTERFACE
8220 
8221     /*** IUnknown methods ***/
8222     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8223         ICommDlgBrowser3* This,
8224         REFIID riid,
8225         void **ppvObject);
8226 
8227     ULONG (STDMETHODCALLTYPE *AddRef)(
8228         ICommDlgBrowser3* This);
8229 
8230     ULONG (STDMETHODCALLTYPE *Release)(
8231         ICommDlgBrowser3* This);
8232 
8233     /*** ICommDlgBrowser methods ***/
8234     HRESULT (STDMETHODCALLTYPE *OnDefaultCommand)(
8235         ICommDlgBrowser3* This,
8236         IShellView *ppshv);
8237 
8238     HRESULT (STDMETHODCALLTYPE *OnStateChange)(
8239         ICommDlgBrowser3* This,
8240         IShellView *ppshv,
8241         ULONG uChange);
8242 
8243     HRESULT (STDMETHODCALLTYPE *IncludeObject)(
8244         ICommDlgBrowser3* This,
8245         IShellView *ppshv,
8246         PCUITEMID_CHILD pidl);
8247 
8248     /*** ICommDlgBrowser2 methods ***/
8249     HRESULT (STDMETHODCALLTYPE *Notify)(
8250         ICommDlgBrowser3* This,
8251         IShellView *ppshv,
8252         DWORD dwNotifyType);
8253 
8254     HRESULT (STDMETHODCALLTYPE *GetDefaultMenuText)(
8255         ICommDlgBrowser3* This,
8256         IShellView *ppshv,
8257         LPWSTR pszText,
8258         int cchMax);
8259 
8260     HRESULT (STDMETHODCALLTYPE *GetViewFlags)(
8261         ICommDlgBrowser3* This,
8262         DWORD *pdwFlags);
8263 
8264     /*** ICommDlgBrowser3 methods ***/
8265     HRESULT (STDMETHODCALLTYPE *OnColumnClicked)(
8266         ICommDlgBrowser3* This,
8267         IShellView *ppshv,
8268         int iColumn);
8269 
8270     HRESULT (STDMETHODCALLTYPE *GetCurrentFilter)(
8271         ICommDlgBrowser3* This,
8272         LPWSTR pszFileSpec,
8273         int cchFileSpec);
8274 
8275     HRESULT (STDMETHODCALLTYPE *OnPreViewCreated)(
8276         ICommDlgBrowser3* This,
8277         IShellView *ppshv);
8278 
8279     END_INTERFACE
8280 } ICommDlgBrowser3Vtbl;
8281 interface ICommDlgBrowser3 {
8282     CONST_VTBL ICommDlgBrowser3Vtbl* lpVtbl;
8283 };
8284 
8285 #ifdef COBJMACROS
8286 #ifndef WIDL_C_INLINE_WRAPPERS
8287 /*** IUnknown methods ***/
8288 #define ICommDlgBrowser3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8289 #define ICommDlgBrowser3_AddRef(This) (This)->lpVtbl->AddRef(This)
8290 #define ICommDlgBrowser3_Release(This) (This)->lpVtbl->Release(This)
8291 /*** ICommDlgBrowser methods ***/
8292 #define ICommDlgBrowser3_OnDefaultCommand(This,ppshv) (This)->lpVtbl->OnDefaultCommand(This,ppshv)
8293 #define ICommDlgBrowser3_OnStateChange(This,ppshv,uChange) (This)->lpVtbl->OnStateChange(This,ppshv,uChange)
8294 #define ICommDlgBrowser3_IncludeObject(This,ppshv,pidl) (This)->lpVtbl->IncludeObject(This,ppshv,pidl)
8295 /*** ICommDlgBrowser2 methods ***/
8296 #define ICommDlgBrowser3_Notify(This,ppshv,dwNotifyType) (This)->lpVtbl->Notify(This,ppshv,dwNotifyType)
8297 #define ICommDlgBrowser3_GetDefaultMenuText(This,ppshv,pszText,cchMax) (This)->lpVtbl->GetDefaultMenuText(This,ppshv,pszText,cchMax)
8298 #define ICommDlgBrowser3_GetViewFlags(This,pdwFlags) (This)->lpVtbl->GetViewFlags(This,pdwFlags)
8299 /*** ICommDlgBrowser3 methods ***/
8300 #define ICommDlgBrowser3_OnColumnClicked(This,ppshv,iColumn) (This)->lpVtbl->OnColumnClicked(This,ppshv,iColumn)
8301 #define ICommDlgBrowser3_GetCurrentFilter(This,pszFileSpec,cchFileSpec) (This)->lpVtbl->GetCurrentFilter(This,pszFileSpec,cchFileSpec)
8302 #define ICommDlgBrowser3_OnPreViewCreated(This,ppshv) (This)->lpVtbl->OnPreViewCreated(This,ppshv)
8303 #else
8304 /*** IUnknown methods ***/
8305 static FORCEINLINE HRESULT ICommDlgBrowser3_QueryInterface(ICommDlgBrowser3* This,REFIID riid,void **ppvObject) {
8306     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8307 }
8308 static FORCEINLINE ULONG ICommDlgBrowser3_AddRef(ICommDlgBrowser3* This) {
8309     return This->lpVtbl->AddRef(This);
8310 }
8311 static FORCEINLINE ULONG ICommDlgBrowser3_Release(ICommDlgBrowser3* This) {
8312     return This->lpVtbl->Release(This);
8313 }
8314 /*** ICommDlgBrowser methods ***/
8315 static FORCEINLINE HRESULT ICommDlgBrowser3_OnDefaultCommand(ICommDlgBrowser3* This,IShellView *ppshv) {
8316     return This->lpVtbl->OnDefaultCommand(This,ppshv);
8317 }
8318 static FORCEINLINE HRESULT ICommDlgBrowser3_OnStateChange(ICommDlgBrowser3* This,IShellView *ppshv,ULONG uChange) {
8319     return This->lpVtbl->OnStateChange(This,ppshv,uChange);
8320 }
8321 static FORCEINLINE HRESULT ICommDlgBrowser3_IncludeObject(ICommDlgBrowser3* This,IShellView *ppshv,PCUITEMID_CHILD pidl) {
8322     return This->lpVtbl->IncludeObject(This,ppshv,pidl);
8323 }
8324 /*** ICommDlgBrowser2 methods ***/
8325 static FORCEINLINE HRESULT ICommDlgBrowser3_Notify(ICommDlgBrowser3* This,IShellView *ppshv,DWORD dwNotifyType) {
8326     return This->lpVtbl->Notify(This,ppshv,dwNotifyType);
8327 }
8328 static FORCEINLINE HRESULT ICommDlgBrowser3_GetDefaultMenuText(ICommDlgBrowser3* This,IShellView *ppshv,LPWSTR pszText,int cchMax) {
8329     return This->lpVtbl->GetDefaultMenuText(This,ppshv,pszText,cchMax);
8330 }
8331 static FORCEINLINE HRESULT ICommDlgBrowser3_GetViewFlags(ICommDlgBrowser3* This,DWORD *pdwFlags) {
8332     return This->lpVtbl->GetViewFlags(This,pdwFlags);
8333 }
8334 /*** ICommDlgBrowser3 methods ***/
8335 static FORCEINLINE HRESULT ICommDlgBrowser3_OnColumnClicked(ICommDlgBrowser3* This,IShellView *ppshv,int iColumn) {
8336     return This->lpVtbl->OnColumnClicked(This,ppshv,iColumn);
8337 }
8338 static FORCEINLINE HRESULT ICommDlgBrowser3_GetCurrentFilter(ICommDlgBrowser3* This,LPWSTR pszFileSpec,int cchFileSpec) {
8339     return This->lpVtbl->GetCurrentFilter(This,pszFileSpec,cchFileSpec);
8340 }
8341 static FORCEINLINE HRESULT ICommDlgBrowser3_OnPreViewCreated(ICommDlgBrowser3* This,IShellView *ppshv) {
8342     return This->lpVtbl->OnPreViewCreated(This,ppshv);
8343 }
8344 #endif
8345 #endif
8346 
8347 #endif
8348 
8349 HRESULT STDMETHODCALLTYPE ICommDlgBrowser3_OnColumnClicked_Proxy(
8350     ICommDlgBrowser3* This,
8351     IShellView *ppshv,
8352     int iColumn);
8353 void __RPC_STUB ICommDlgBrowser3_OnColumnClicked_Stub(
8354     IRpcStubBuffer* This,
8355     IRpcChannelBuffer* pRpcChannelBuffer,
8356     PRPC_MESSAGE pRpcMessage,
8357     DWORD* pdwStubPhase);
8358 HRESULT STDMETHODCALLTYPE ICommDlgBrowser3_GetCurrentFilter_Proxy(
8359     ICommDlgBrowser3* This,
8360     LPWSTR pszFileSpec,
8361     int cchFileSpec);
8362 void __RPC_STUB ICommDlgBrowser3_GetCurrentFilter_Stub(
8363     IRpcStubBuffer* This,
8364     IRpcChannelBuffer* pRpcChannelBuffer,
8365     PRPC_MESSAGE pRpcMessage,
8366     DWORD* pdwStubPhase);
8367 HRESULT STDMETHODCALLTYPE ICommDlgBrowser3_OnPreViewCreated_Proxy(
8368     ICommDlgBrowser3* This,
8369     IShellView *ppshv);
8370 void __RPC_STUB ICommDlgBrowser3_OnPreViewCreated_Stub(
8371     IRpcStubBuffer* This,
8372     IRpcChannelBuffer* pRpcChannelBuffer,
8373     PRPC_MESSAGE pRpcMessage,
8374     DWORD* pdwStubPhase);
8375 
8376 #endif  /* __ICommDlgBrowser3_INTERFACE_DEFINED__ */
8377 
8378 
8379 typedef enum CM_MASK {
8380     CM_MASK_WIDTH = 0x1,
8381     CM_MASK_DEFAULTWIDTH = 0x2,
8382     CM_MASK_IDEALWIDTH = 0x4,
8383     CM_MASK_NAME = 0x8,
8384     CM_MASK_STATE = 0x10
8385 } CM_MASK;
8386 
8387 DEFINE_ENUM_FLAG_OPERATORS(CM_MASK)
8388 
8389 typedef enum CM_STATE {
8390     CM_STATE_NONE = 0x0,
8391     CM_STATE_VISIBLE = 0x1,
8392     CM_STATE_FIXEDWIDTH = 0x2,
8393     CM_STATE_NOSORTBYFOLDERNESS = 0x4,
8394     CM_STATE_ALWAYSVISIBLE = 0x8
8395 } CM_STATE;
8396 
8397 DEFINE_ENUM_FLAG_OPERATORS(CM_STATE)
8398 
8399 typedef enum CM_ENUM_FLAGS {
8400     CM_ENUM_ALL = 0x1,
8401     CM_ENUM_VISIBLE = 0x2
8402 } CM_ENUM_FLAGS;
8403 
8404 DEFINE_ENUM_FLAG_OPERATORS(CM_ENUM_FLAGS)
8405 
8406 typedef enum CM_SET_WIDTH_VALUE {
8407     CM_WIDTH_USEDEFAULT = -1,
8408     CM_WIDTH_AUTOSIZE = -2
8409 } CM_SET_WIDTH_VALUE;
8410 
8411 typedef struct CM_COLUMNINFO {
8412     DWORD cbSize;
8413     DWORD dwMask;
8414     DWORD dwState;
8415     UINT uWidth;
8416     UINT uDefaultWidth;
8417     UINT uIdealWidth;
8418     WCHAR wszName[80];
8419 } CM_COLUMNINFO;
8420 
8421 /*****************************************************************************
8422  * IColumnManager interface
8423  */
8424 #ifndef __IColumnManager_INTERFACE_DEFINED__
8425 #define __IColumnManager_INTERFACE_DEFINED__
8426 
8427 DEFINE_GUID(IID_IColumnManager, 0xd8ec27bb, 0x3f3b, 0x4042, 0xb1,0x0a, 0x4a,0xcf,0xd9,0x24,0xd4,0x53);
8428 #if defined(__cplusplus) && !defined(CINTERFACE)
8429 MIDL_INTERFACE("d8ec27bb-3f3b-4042-b10a-4acfd924d453")
8430 IColumnManager : public IUnknown
8431 {
8432     virtual HRESULT STDMETHODCALLTYPE SetColumnInfo(
8433         REFPROPERTYKEY propkey,
8434         const CM_COLUMNINFO *pcmci) = 0;
8435 
8436     virtual HRESULT STDMETHODCALLTYPE GetColumnInfo(
8437         REFPROPERTYKEY propkey,
8438         CM_COLUMNINFO *pcmci) = 0;
8439 
8440     virtual HRESULT STDMETHODCALLTYPE GetColumnCount(
8441         CM_ENUM_FLAGS dwFlags,
8442         UINT *puCount) = 0;
8443 
8444     virtual HRESULT STDMETHODCALLTYPE GetColumns(
8445         CM_ENUM_FLAGS dwFlags,
8446         PROPERTYKEY *rgkeyOrder,
8447         UINT cColumns) = 0;
8448 
8449     virtual HRESULT STDMETHODCALLTYPE SetColumns(
8450         const PROPERTYKEY *rgkeyOrder,
8451         UINT cVisible) = 0;
8452 
8453 };
8454 #ifdef __CRT_UUID_DECL
8455 __CRT_UUID_DECL(IColumnManager, 0xd8ec27bb, 0x3f3b, 0x4042, 0xb1,0x0a, 0x4a,0xcf,0xd9,0x24,0xd4,0x53)
8456 #endif
8457 #else
8458 typedef struct IColumnManagerVtbl {
8459     BEGIN_INTERFACE
8460 
8461     /*** IUnknown methods ***/
8462     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8463         IColumnManager* This,
8464         REFIID riid,
8465         void **ppvObject);
8466 
8467     ULONG (STDMETHODCALLTYPE *AddRef)(
8468         IColumnManager* This);
8469 
8470     ULONG (STDMETHODCALLTYPE *Release)(
8471         IColumnManager* This);
8472 
8473     /*** IColumnManager methods ***/
8474     HRESULT (STDMETHODCALLTYPE *SetColumnInfo)(
8475         IColumnManager* This,
8476         REFPROPERTYKEY propkey,
8477         const CM_COLUMNINFO *pcmci);
8478 
8479     HRESULT (STDMETHODCALLTYPE *GetColumnInfo)(
8480         IColumnManager* This,
8481         REFPROPERTYKEY propkey,
8482         CM_COLUMNINFO *pcmci);
8483 
8484     HRESULT (STDMETHODCALLTYPE *GetColumnCount)(
8485         IColumnManager* This,
8486         CM_ENUM_FLAGS dwFlags,
8487         UINT *puCount);
8488 
8489     HRESULT (STDMETHODCALLTYPE *GetColumns)(
8490         IColumnManager* This,
8491         CM_ENUM_FLAGS dwFlags,
8492         PROPERTYKEY *rgkeyOrder,
8493         UINT cColumns);
8494 
8495     HRESULT (STDMETHODCALLTYPE *SetColumns)(
8496         IColumnManager* This,
8497         const PROPERTYKEY *rgkeyOrder,
8498         UINT cVisible);
8499 
8500     END_INTERFACE
8501 } IColumnManagerVtbl;
8502 interface IColumnManager {
8503     CONST_VTBL IColumnManagerVtbl* lpVtbl;
8504 };
8505 
8506 #ifdef COBJMACROS
8507 #ifndef WIDL_C_INLINE_WRAPPERS
8508 /*** IUnknown methods ***/
8509 #define IColumnManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8510 #define IColumnManager_AddRef(This) (This)->lpVtbl->AddRef(This)
8511 #define IColumnManager_Release(This) (This)->lpVtbl->Release(This)
8512 /*** IColumnManager methods ***/
8513 #define IColumnManager_SetColumnInfo(This,propkey,pcmci) (This)->lpVtbl->SetColumnInfo(This,propkey,pcmci)
8514 #define IColumnManager_GetColumnInfo(This,propkey,pcmci) (This)->lpVtbl->GetColumnInfo(This,propkey,pcmci)
8515 #define IColumnManager_GetColumnCount(This,dwFlags,puCount) (This)->lpVtbl->GetColumnCount(This,dwFlags,puCount)
8516 #define IColumnManager_GetColumns(This,dwFlags,rgkeyOrder,cColumns) (This)->lpVtbl->GetColumns(This,dwFlags,rgkeyOrder,cColumns)
8517 #define IColumnManager_SetColumns(This,rgkeyOrder,cVisible) (This)->lpVtbl->SetColumns(This,rgkeyOrder,cVisible)
8518 #else
8519 /*** IUnknown methods ***/
8520 static FORCEINLINE HRESULT IColumnManager_QueryInterface(IColumnManager* This,REFIID riid,void **ppvObject) {
8521     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8522 }
8523 static FORCEINLINE ULONG IColumnManager_AddRef(IColumnManager* This) {
8524     return This->lpVtbl->AddRef(This);
8525 }
8526 static FORCEINLINE ULONG IColumnManager_Release(IColumnManager* This) {
8527     return This->lpVtbl->Release(This);
8528 }
8529 /*** IColumnManager methods ***/
8530 static FORCEINLINE HRESULT IColumnManager_SetColumnInfo(IColumnManager* This,REFPROPERTYKEY propkey,const CM_COLUMNINFO *pcmci) {
8531     return This->lpVtbl->SetColumnInfo(This,propkey,pcmci);
8532 }
8533 static FORCEINLINE HRESULT IColumnManager_GetColumnInfo(IColumnManager* This,REFPROPERTYKEY propkey,CM_COLUMNINFO *pcmci) {
8534     return This->lpVtbl->GetColumnInfo(This,propkey,pcmci);
8535 }
8536 static FORCEINLINE HRESULT IColumnManager_GetColumnCount(IColumnManager* This,CM_ENUM_FLAGS dwFlags,UINT *puCount) {
8537     return This->lpVtbl->GetColumnCount(This,dwFlags,puCount);
8538 }
8539 static FORCEINLINE HRESULT IColumnManager_GetColumns(IColumnManager* This,CM_ENUM_FLAGS dwFlags,PROPERTYKEY *rgkeyOrder,UINT cColumns) {
8540     return This->lpVtbl->GetColumns(This,dwFlags,rgkeyOrder,cColumns);
8541 }
8542 static FORCEINLINE HRESULT IColumnManager_SetColumns(IColumnManager* This,const PROPERTYKEY *rgkeyOrder,UINT cVisible) {
8543     return This->lpVtbl->SetColumns(This,rgkeyOrder,cVisible);
8544 }
8545 #endif
8546 #endif
8547 
8548 #endif
8549 
8550 HRESULT STDMETHODCALLTYPE IColumnManager_SetColumnInfo_Proxy(
8551     IColumnManager* This,
8552     REFPROPERTYKEY propkey,
8553     const CM_COLUMNINFO *pcmci);
8554 void __RPC_STUB IColumnManager_SetColumnInfo_Stub(
8555     IRpcStubBuffer* This,
8556     IRpcChannelBuffer* pRpcChannelBuffer,
8557     PRPC_MESSAGE pRpcMessage,
8558     DWORD* pdwStubPhase);
8559 HRESULT STDMETHODCALLTYPE IColumnManager_GetColumnInfo_Proxy(
8560     IColumnManager* This,
8561     REFPROPERTYKEY propkey,
8562     CM_COLUMNINFO *pcmci);
8563 void __RPC_STUB IColumnManager_GetColumnInfo_Stub(
8564     IRpcStubBuffer* This,
8565     IRpcChannelBuffer* pRpcChannelBuffer,
8566     PRPC_MESSAGE pRpcMessage,
8567     DWORD* pdwStubPhase);
8568 HRESULT STDMETHODCALLTYPE IColumnManager_GetColumnCount_Proxy(
8569     IColumnManager* This,
8570     CM_ENUM_FLAGS dwFlags,
8571     UINT *puCount);
8572 void __RPC_STUB IColumnManager_GetColumnCount_Stub(
8573     IRpcStubBuffer* This,
8574     IRpcChannelBuffer* pRpcChannelBuffer,
8575     PRPC_MESSAGE pRpcMessage,
8576     DWORD* pdwStubPhase);
8577 HRESULT STDMETHODCALLTYPE IColumnManager_GetColumns_Proxy(
8578     IColumnManager* This,
8579     CM_ENUM_FLAGS dwFlags,
8580     PROPERTYKEY *rgkeyOrder,
8581     UINT cColumns);
8582 void __RPC_STUB IColumnManager_GetColumns_Stub(
8583     IRpcStubBuffer* This,
8584     IRpcChannelBuffer* pRpcChannelBuffer,
8585     PRPC_MESSAGE pRpcMessage,
8586     DWORD* pdwStubPhase);
8587 HRESULT STDMETHODCALLTYPE IColumnManager_SetColumns_Proxy(
8588     IColumnManager* This,
8589     const PROPERTYKEY *rgkeyOrder,
8590     UINT cVisible);
8591 void __RPC_STUB IColumnManager_SetColumns_Stub(
8592     IRpcStubBuffer* This,
8593     IRpcChannelBuffer* pRpcChannelBuffer,
8594     PRPC_MESSAGE pRpcMessage,
8595     DWORD* pdwStubPhase);
8596 
8597 #endif  /* __IColumnManager_INTERFACE_DEFINED__ */
8598 
8599 #endif
8600 
8601 /*****************************************************************************
8602  * IFolderFilterSite interface
8603  */
8604 #ifndef __IFolderFilterSite_INTERFACE_DEFINED__
8605 #define __IFolderFilterSite_INTERFACE_DEFINED__
8606 
8607 DEFINE_GUID(IID_IFolderFilterSite, 0xc0a651f5, 0xb48b, 0x11d2, 0xb5,0xed, 0x00,0x60,0x97,0xc6,0x86,0xf6);
8608 #if defined(__cplusplus) && !defined(CINTERFACE)
8609 MIDL_INTERFACE("c0a651f5-b48b-11d2-b5ed-006097c686f6")
8610 IFolderFilterSite : public IUnknown
8611 {
8612     virtual HRESULT STDMETHODCALLTYPE SetFilter(
8613         IUnknown *punk) = 0;
8614 
8615 };
8616 #ifdef __CRT_UUID_DECL
8617 __CRT_UUID_DECL(IFolderFilterSite, 0xc0a651f5, 0xb48b, 0x11d2, 0xb5,0xed, 0x00,0x60,0x97,0xc6,0x86,0xf6)
8618 #endif
8619 #else
8620 typedef struct IFolderFilterSiteVtbl {
8621     BEGIN_INTERFACE
8622 
8623     /*** IUnknown methods ***/
8624     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8625         IFolderFilterSite* This,
8626         REFIID riid,
8627         void **ppvObject);
8628 
8629     ULONG (STDMETHODCALLTYPE *AddRef)(
8630         IFolderFilterSite* This);
8631 
8632     ULONG (STDMETHODCALLTYPE *Release)(
8633         IFolderFilterSite* This);
8634 
8635     /*** IFolderFilterSite methods ***/
8636     HRESULT (STDMETHODCALLTYPE *SetFilter)(
8637         IFolderFilterSite* This,
8638         IUnknown *punk);
8639 
8640     END_INTERFACE
8641 } IFolderFilterSiteVtbl;
8642 interface IFolderFilterSite {
8643     CONST_VTBL IFolderFilterSiteVtbl* lpVtbl;
8644 };
8645 
8646 #ifdef COBJMACROS
8647 #ifndef WIDL_C_INLINE_WRAPPERS
8648 /*** IUnknown methods ***/
8649 #define IFolderFilterSite_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8650 #define IFolderFilterSite_AddRef(This) (This)->lpVtbl->AddRef(This)
8651 #define IFolderFilterSite_Release(This) (This)->lpVtbl->Release(This)
8652 /*** IFolderFilterSite methods ***/
8653 #define IFolderFilterSite_SetFilter(This,punk) (This)->lpVtbl->SetFilter(This,punk)
8654 #else
8655 /*** IUnknown methods ***/
8656 static FORCEINLINE HRESULT IFolderFilterSite_QueryInterface(IFolderFilterSite* This,REFIID riid,void **ppvObject) {
8657     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8658 }
8659 static FORCEINLINE ULONG IFolderFilterSite_AddRef(IFolderFilterSite* This) {
8660     return This->lpVtbl->AddRef(This);
8661 }
8662 static FORCEINLINE ULONG IFolderFilterSite_Release(IFolderFilterSite* This) {
8663     return This->lpVtbl->Release(This);
8664 }
8665 /*** IFolderFilterSite methods ***/
8666 static FORCEINLINE HRESULT IFolderFilterSite_SetFilter(IFolderFilterSite* This,IUnknown *punk) {
8667     return This->lpVtbl->SetFilter(This,punk);
8668 }
8669 #endif
8670 #endif
8671 
8672 #endif
8673 
8674 HRESULT STDMETHODCALLTYPE IFolderFilterSite_SetFilter_Proxy(
8675     IFolderFilterSite* This,
8676     IUnknown *punk);
8677 void __RPC_STUB IFolderFilterSite_SetFilter_Stub(
8678     IRpcStubBuffer* This,
8679     IRpcChannelBuffer* pRpcChannelBuffer,
8680     PRPC_MESSAGE pRpcMessage,
8681     DWORD* pdwStubPhase);
8682 
8683 #endif  /* __IFolderFilterSite_INTERFACE_DEFINED__ */
8684 
8685 
8686 /*****************************************************************************
8687  * IFolderFilter interface
8688  */
8689 #ifndef __IFolderFilter_INTERFACE_DEFINED__
8690 #define __IFolderFilter_INTERFACE_DEFINED__
8691 
8692 DEFINE_GUID(IID_IFolderFilter, 0x9cc22886, 0xdc8e, 0x11d2, 0xb1,0xd0, 0x00,0xc0,0x4f,0x8e,0xeb,0x3e);
8693 #if defined(__cplusplus) && !defined(CINTERFACE)
8694 MIDL_INTERFACE("9cc22886-dc8e-11d2-b1d0-00c04f8eeb3e")
8695 IFolderFilter : public IUnknown
8696 {
8697     virtual HRESULT STDMETHODCALLTYPE ShouldShow(
8698         IShellFolder *psf,
8699         PCIDLIST_ABSOLUTE pidlFolder,
8700         PCUITEMID_CHILD pidlItem) = 0;
8701 
8702     virtual HRESULT STDMETHODCALLTYPE GetEnumFlags(
8703         IShellFolder *psf,
8704         PCIDLIST_ABSOLUTE pidlFolder,
8705         HWND *phwnd,
8706         DWORD *pgrfFlags) = 0;
8707 
8708 };
8709 #ifdef __CRT_UUID_DECL
8710 __CRT_UUID_DECL(IFolderFilter, 0x9cc22886, 0xdc8e, 0x11d2, 0xb1,0xd0, 0x00,0xc0,0x4f,0x8e,0xeb,0x3e)
8711 #endif
8712 #else
8713 typedef struct IFolderFilterVtbl {
8714     BEGIN_INTERFACE
8715 
8716     /*** IUnknown methods ***/
8717     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8718         IFolderFilter* This,
8719         REFIID riid,
8720         void **ppvObject);
8721 
8722     ULONG (STDMETHODCALLTYPE *AddRef)(
8723         IFolderFilter* This);
8724 
8725     ULONG (STDMETHODCALLTYPE *Release)(
8726         IFolderFilter* This);
8727 
8728     /*** IFolderFilter methods ***/
8729     HRESULT (STDMETHODCALLTYPE *ShouldShow)(
8730         IFolderFilter* This,
8731         IShellFolder *psf,
8732         PCIDLIST_ABSOLUTE pidlFolder,
8733         PCUITEMID_CHILD pidlItem);
8734 
8735     HRESULT (STDMETHODCALLTYPE *GetEnumFlags)(
8736         IFolderFilter* This,
8737         IShellFolder *psf,
8738         PCIDLIST_ABSOLUTE pidlFolder,
8739         HWND *phwnd,
8740         DWORD *pgrfFlags);
8741 
8742     END_INTERFACE
8743 } IFolderFilterVtbl;
8744 interface IFolderFilter {
8745     CONST_VTBL IFolderFilterVtbl* lpVtbl;
8746 };
8747 
8748 #ifdef COBJMACROS
8749 #ifndef WIDL_C_INLINE_WRAPPERS
8750 /*** IUnknown methods ***/
8751 #define IFolderFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8752 #define IFolderFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
8753 #define IFolderFilter_Release(This) (This)->lpVtbl->Release(This)
8754 /*** IFolderFilter methods ***/
8755 #define IFolderFilter_ShouldShow(This,psf,pidlFolder,pidlItem) (This)->lpVtbl->ShouldShow(This,psf,pidlFolder,pidlItem)
8756 #define IFolderFilter_GetEnumFlags(This,psf,pidlFolder,phwnd,pgrfFlags) (This)->lpVtbl->GetEnumFlags(This,psf,pidlFolder,phwnd,pgrfFlags)
8757 #else
8758 /*** IUnknown methods ***/
8759 static FORCEINLINE HRESULT IFolderFilter_QueryInterface(IFolderFilter* This,REFIID riid,void **ppvObject) {
8760     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8761 }
8762 static FORCEINLINE ULONG IFolderFilter_AddRef(IFolderFilter* This) {
8763     return This->lpVtbl->AddRef(This);
8764 }
8765 static FORCEINLINE ULONG IFolderFilter_Release(IFolderFilter* This) {
8766     return This->lpVtbl->Release(This);
8767 }
8768 /*** IFolderFilter methods ***/
8769 static FORCEINLINE HRESULT IFolderFilter_ShouldShow(IFolderFilter* This,IShellFolder *psf,PCIDLIST_ABSOLUTE pidlFolder,PCUITEMID_CHILD pidlItem) {
8770     return This->lpVtbl->ShouldShow(This,psf,pidlFolder,pidlItem);
8771 }
8772 static FORCEINLINE HRESULT IFolderFilter_GetEnumFlags(IFolderFilter* This,IShellFolder *psf,PCIDLIST_ABSOLUTE pidlFolder,HWND *phwnd,DWORD *pgrfFlags) {
8773     return This->lpVtbl->GetEnumFlags(This,psf,pidlFolder,phwnd,pgrfFlags);
8774 }
8775 #endif
8776 #endif
8777 
8778 #endif
8779 
8780 HRESULT STDMETHODCALLTYPE IFolderFilter_ShouldShow_Proxy(
8781     IFolderFilter* This,
8782     IShellFolder *psf,
8783     PCIDLIST_ABSOLUTE pidlFolder,
8784     PCUITEMID_CHILD pidlItem);
8785 void __RPC_STUB IFolderFilter_ShouldShow_Stub(
8786     IRpcStubBuffer* This,
8787     IRpcChannelBuffer* pRpcChannelBuffer,
8788     PRPC_MESSAGE pRpcMessage,
8789     DWORD* pdwStubPhase);
8790 HRESULT STDMETHODCALLTYPE IFolderFilter_GetEnumFlags_Proxy(
8791     IFolderFilter* This,
8792     IShellFolder *psf,
8793     PCIDLIST_ABSOLUTE pidlFolder,
8794     HWND *phwnd,
8795     DWORD *pgrfFlags);
8796 void __RPC_STUB IFolderFilter_GetEnumFlags_Stub(
8797     IRpcStubBuffer* This,
8798     IRpcChannelBuffer* pRpcChannelBuffer,
8799     PRPC_MESSAGE pRpcMessage,
8800     DWORD* pdwStubPhase);
8801 
8802 #endif  /* __IFolderFilter_INTERFACE_DEFINED__ */
8803 
8804 
8805 /*****************************************************************************
8806  * IInputObjectSite interface
8807  */
8808 #ifndef __IInputObjectSite_INTERFACE_DEFINED__
8809 #define __IInputObjectSite_INTERFACE_DEFINED__
8810 
8811 DEFINE_GUID(IID_IInputObjectSite, 0xf1db8392, 0x7331, 0x11d0, 0x8c,0x99, 0x00,0xa0,0xc9,0x2d,0xbf,0xe8);
8812 #if defined(__cplusplus) && !defined(CINTERFACE)
8813 MIDL_INTERFACE("f1db8392-7331-11d0-8c99-00a0c92dbfe8")
8814 IInputObjectSite : public IUnknown
8815 {
8816     virtual HRESULT STDMETHODCALLTYPE OnFocusChangeIS(
8817         IUnknown *punkObj,
8818         WINBOOL fSetFocus) = 0;
8819 
8820 };
8821 #ifdef __CRT_UUID_DECL
8822 __CRT_UUID_DECL(IInputObjectSite, 0xf1db8392, 0x7331, 0x11d0, 0x8c,0x99, 0x00,0xa0,0xc9,0x2d,0xbf,0xe8)
8823 #endif
8824 #else
8825 typedef struct IInputObjectSiteVtbl {
8826     BEGIN_INTERFACE
8827 
8828     /*** IUnknown methods ***/
8829     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8830         IInputObjectSite* This,
8831         REFIID riid,
8832         void **ppvObject);
8833 
8834     ULONG (STDMETHODCALLTYPE *AddRef)(
8835         IInputObjectSite* This);
8836 
8837     ULONG (STDMETHODCALLTYPE *Release)(
8838         IInputObjectSite* This);
8839 
8840     /*** IInputObjectSite methods ***/
8841     HRESULT (STDMETHODCALLTYPE *OnFocusChangeIS)(
8842         IInputObjectSite* This,
8843         IUnknown *punkObj,
8844         WINBOOL fSetFocus);
8845 
8846     END_INTERFACE
8847 } IInputObjectSiteVtbl;
8848 interface IInputObjectSite {
8849     CONST_VTBL IInputObjectSiteVtbl* lpVtbl;
8850 };
8851 
8852 #ifdef COBJMACROS
8853 #ifndef WIDL_C_INLINE_WRAPPERS
8854 /*** IUnknown methods ***/
8855 #define IInputObjectSite_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8856 #define IInputObjectSite_AddRef(This) (This)->lpVtbl->AddRef(This)
8857 #define IInputObjectSite_Release(This) (This)->lpVtbl->Release(This)
8858 /*** IInputObjectSite methods ***/
8859 #define IInputObjectSite_OnFocusChangeIS(This,punkObj,fSetFocus) (This)->lpVtbl->OnFocusChangeIS(This,punkObj,fSetFocus)
8860 #else
8861 /*** IUnknown methods ***/
8862 static FORCEINLINE HRESULT IInputObjectSite_QueryInterface(IInputObjectSite* This,REFIID riid,void **ppvObject) {
8863     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8864 }
8865 static FORCEINLINE ULONG IInputObjectSite_AddRef(IInputObjectSite* This) {
8866     return This->lpVtbl->AddRef(This);
8867 }
8868 static FORCEINLINE ULONG IInputObjectSite_Release(IInputObjectSite* This) {
8869     return This->lpVtbl->Release(This);
8870 }
8871 /*** IInputObjectSite methods ***/
8872 static FORCEINLINE HRESULT IInputObjectSite_OnFocusChangeIS(IInputObjectSite* This,IUnknown *punkObj,WINBOOL fSetFocus) {
8873     return This->lpVtbl->OnFocusChangeIS(This,punkObj,fSetFocus);
8874 }
8875 #endif
8876 #endif
8877 
8878 #endif
8879 
8880 HRESULT STDMETHODCALLTYPE IInputObjectSite_OnFocusChangeIS_Proxy(
8881     IInputObjectSite* This,
8882     IUnknown *punkObj,
8883     WINBOOL fSetFocus);
8884 void __RPC_STUB IInputObjectSite_OnFocusChangeIS_Stub(
8885     IRpcStubBuffer* This,
8886     IRpcChannelBuffer* pRpcChannelBuffer,
8887     PRPC_MESSAGE pRpcMessage,
8888     DWORD* pdwStubPhase);
8889 
8890 #endif  /* __IInputObjectSite_INTERFACE_DEFINED__ */
8891 
8892 
8893 /*****************************************************************************
8894  * IInputObject interface
8895  */
8896 #ifndef __IInputObject_INTERFACE_DEFINED__
8897 #define __IInputObject_INTERFACE_DEFINED__
8898 
8899 DEFINE_GUID(IID_IInputObject, 0x68284faa, 0x6a48, 0x11d0, 0x8c,0x78, 0x00,0xc0,0x4f,0xd9,0x18,0xb4);
8900 #if defined(__cplusplus) && !defined(CINTERFACE)
8901 MIDL_INTERFACE("68284faa-6a48-11d0-8c78-00c04fd918b4")
8902 IInputObject : public IUnknown
8903 {
8904     virtual HRESULT STDMETHODCALLTYPE UIActivateIO(
8905         WINBOOL fActivate,
8906         MSG *pMsg) = 0;
8907 
8908     virtual HRESULT STDMETHODCALLTYPE HasFocusIO(
8909         ) = 0;
8910 
8911     virtual HRESULT STDMETHODCALLTYPE TranslateAcceleratorIO(
8912         MSG *pMsg) = 0;
8913 
8914 };
8915 #ifdef __CRT_UUID_DECL
8916 __CRT_UUID_DECL(IInputObject, 0x68284faa, 0x6a48, 0x11d0, 0x8c,0x78, 0x00,0xc0,0x4f,0xd9,0x18,0xb4)
8917 #endif
8918 #else
8919 typedef struct IInputObjectVtbl {
8920     BEGIN_INTERFACE
8921 
8922     /*** IUnknown methods ***/
8923     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8924         IInputObject* This,
8925         REFIID riid,
8926         void **ppvObject);
8927 
8928     ULONG (STDMETHODCALLTYPE *AddRef)(
8929         IInputObject* This);
8930 
8931     ULONG (STDMETHODCALLTYPE *Release)(
8932         IInputObject* This);
8933 
8934     /*** IInputObject methods ***/
8935     HRESULT (STDMETHODCALLTYPE *UIActivateIO)(
8936         IInputObject* This,
8937         WINBOOL fActivate,
8938         MSG *pMsg);
8939 
8940     HRESULT (STDMETHODCALLTYPE *HasFocusIO)(
8941         IInputObject* This);
8942 
8943     HRESULT (STDMETHODCALLTYPE *TranslateAcceleratorIO)(
8944         IInputObject* This,
8945         MSG *pMsg);
8946 
8947     END_INTERFACE
8948 } IInputObjectVtbl;
8949 interface IInputObject {
8950     CONST_VTBL IInputObjectVtbl* lpVtbl;
8951 };
8952 
8953 #ifdef COBJMACROS
8954 #ifndef WIDL_C_INLINE_WRAPPERS
8955 /*** IUnknown methods ***/
8956 #define IInputObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8957 #define IInputObject_AddRef(This) (This)->lpVtbl->AddRef(This)
8958 #define IInputObject_Release(This) (This)->lpVtbl->Release(This)
8959 /*** IInputObject methods ***/
8960 #define IInputObject_UIActivateIO(This,fActivate,pMsg) (This)->lpVtbl->UIActivateIO(This,fActivate,pMsg)
8961 #define IInputObject_HasFocusIO(This) (This)->lpVtbl->HasFocusIO(This)
8962 #define IInputObject_TranslateAcceleratorIO(This,pMsg) (This)->lpVtbl->TranslateAcceleratorIO(This,pMsg)
8963 #else
8964 /*** IUnknown methods ***/
8965 static FORCEINLINE HRESULT IInputObject_QueryInterface(IInputObject* This,REFIID riid,void **ppvObject) {
8966     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8967 }
8968 static FORCEINLINE ULONG IInputObject_AddRef(IInputObject* This) {
8969     return This->lpVtbl->AddRef(This);
8970 }
8971 static FORCEINLINE ULONG IInputObject_Release(IInputObject* This) {
8972     return This->lpVtbl->Release(This);
8973 }
8974 /*** IInputObject methods ***/
8975 static FORCEINLINE HRESULT IInputObject_UIActivateIO(IInputObject* This,WINBOOL fActivate,MSG *pMsg) {
8976     return This->lpVtbl->UIActivateIO(This,fActivate,pMsg);
8977 }
8978 static FORCEINLINE HRESULT IInputObject_HasFocusIO(IInputObject* This) {
8979     return This->lpVtbl->HasFocusIO(This);
8980 }
8981 static FORCEINLINE HRESULT IInputObject_TranslateAcceleratorIO(IInputObject* This,MSG *pMsg) {
8982     return This->lpVtbl->TranslateAcceleratorIO(This,pMsg);
8983 }
8984 #endif
8985 #endif
8986 
8987 #endif
8988 
8989 HRESULT STDMETHODCALLTYPE IInputObject_UIActivateIO_Proxy(
8990     IInputObject* This,
8991     WINBOOL fActivate,
8992     MSG *pMsg);
8993 void __RPC_STUB IInputObject_UIActivateIO_Stub(
8994     IRpcStubBuffer* This,
8995     IRpcChannelBuffer* pRpcChannelBuffer,
8996     PRPC_MESSAGE pRpcMessage,
8997     DWORD* pdwStubPhase);
8998 HRESULT STDMETHODCALLTYPE IInputObject_HasFocusIO_Proxy(
8999     IInputObject* This);
9000 void __RPC_STUB IInputObject_HasFocusIO_Stub(
9001     IRpcStubBuffer* This,
9002     IRpcChannelBuffer* pRpcChannelBuffer,
9003     PRPC_MESSAGE pRpcMessage,
9004     DWORD* pdwStubPhase);
9005 HRESULT STDMETHODCALLTYPE IInputObject_TranslateAcceleratorIO_Proxy(
9006     IInputObject* This,
9007     MSG *pMsg);
9008 void __RPC_STUB IInputObject_TranslateAcceleratorIO_Stub(
9009     IRpcStubBuffer* This,
9010     IRpcChannelBuffer* pRpcChannelBuffer,
9011     PRPC_MESSAGE pRpcMessage,
9012     DWORD* pdwStubPhase);
9013 
9014 #endif  /* __IInputObject_INTERFACE_DEFINED__ */
9015 
9016 
9017 /*****************************************************************************
9018  * IInputObject2 interface
9019  */
9020 #ifndef __IInputObject2_INTERFACE_DEFINED__
9021 #define __IInputObject2_INTERFACE_DEFINED__
9022 
9023 DEFINE_GUID(IID_IInputObject2, 0x6915c085, 0x510b, 0x44cd, 0x94,0xaf, 0x28,0xdf,0xa5,0x6c,0xf9,0x2b);
9024 #if defined(__cplusplus) && !defined(CINTERFACE)
9025 MIDL_INTERFACE("6915c085-510b-44cd-94af-28dfa56cf92b")
9026 IInputObject2 : public IInputObject
9027 {
9028     virtual HRESULT STDMETHODCALLTYPE TranslateAcceleratorGlobal(
9029         MSG *pMsg) = 0;
9030 
9031 };
9032 #ifdef __CRT_UUID_DECL
9033 __CRT_UUID_DECL(IInputObject2, 0x6915c085, 0x510b, 0x44cd, 0x94,0xaf, 0x28,0xdf,0xa5,0x6c,0xf9,0x2b)
9034 #endif
9035 #else
9036 typedef struct IInputObject2Vtbl {
9037     BEGIN_INTERFACE
9038 
9039     /*** IUnknown methods ***/
9040     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9041         IInputObject2* This,
9042         REFIID riid,
9043         void **ppvObject);
9044 
9045     ULONG (STDMETHODCALLTYPE *AddRef)(
9046         IInputObject2* This);
9047 
9048     ULONG (STDMETHODCALLTYPE *Release)(
9049         IInputObject2* This);
9050 
9051     /*** IInputObject methods ***/
9052     HRESULT (STDMETHODCALLTYPE *UIActivateIO)(
9053         IInputObject2* This,
9054         WINBOOL fActivate,
9055         MSG *pMsg);
9056 
9057     HRESULT (STDMETHODCALLTYPE *HasFocusIO)(
9058         IInputObject2* This);
9059 
9060     HRESULT (STDMETHODCALLTYPE *TranslateAcceleratorIO)(
9061         IInputObject2* This,
9062         MSG *pMsg);
9063 
9064     /*** IInputObject2 methods ***/
9065     HRESULT (STDMETHODCALLTYPE *TranslateAcceleratorGlobal)(
9066         IInputObject2* This,
9067         MSG *pMsg);
9068 
9069     END_INTERFACE
9070 } IInputObject2Vtbl;
9071 interface IInputObject2 {
9072     CONST_VTBL IInputObject2Vtbl* lpVtbl;
9073 };
9074 
9075 #ifdef COBJMACROS
9076 #ifndef WIDL_C_INLINE_WRAPPERS
9077 /*** IUnknown methods ***/
9078 #define IInputObject2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9079 #define IInputObject2_AddRef(This) (This)->lpVtbl->AddRef(This)
9080 #define IInputObject2_Release(This) (This)->lpVtbl->Release(This)
9081 /*** IInputObject methods ***/
9082 #define IInputObject2_UIActivateIO(This,fActivate,pMsg) (This)->lpVtbl->UIActivateIO(This,fActivate,pMsg)
9083 #define IInputObject2_HasFocusIO(This) (This)->lpVtbl->HasFocusIO(This)
9084 #define IInputObject2_TranslateAcceleratorIO(This,pMsg) (This)->lpVtbl->TranslateAcceleratorIO(This,pMsg)
9085 /*** IInputObject2 methods ***/
9086 #define IInputObject2_TranslateAcceleratorGlobal(This,pMsg) (This)->lpVtbl->TranslateAcceleratorGlobal(This,pMsg)
9087 #else
9088 /*** IUnknown methods ***/
9089 static FORCEINLINE HRESULT IInputObject2_QueryInterface(IInputObject2* This,REFIID riid,void **ppvObject) {
9090     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9091 }
9092 static FORCEINLINE ULONG IInputObject2_AddRef(IInputObject2* This) {
9093     return This->lpVtbl->AddRef(This);
9094 }
9095 static FORCEINLINE ULONG IInputObject2_Release(IInputObject2* This) {
9096     return This->lpVtbl->Release(This);
9097 }
9098 /*** IInputObject methods ***/
9099 static FORCEINLINE HRESULT IInputObject2_UIActivateIO(IInputObject2* This,WINBOOL fActivate,MSG *pMsg) {
9100     return This->lpVtbl->UIActivateIO(This,fActivate,pMsg);
9101 }
9102 static FORCEINLINE HRESULT IInputObject2_HasFocusIO(IInputObject2* This) {
9103     return This->lpVtbl->HasFocusIO(This);
9104 }
9105 static FORCEINLINE HRESULT IInputObject2_TranslateAcceleratorIO(IInputObject2* This,MSG *pMsg) {
9106     return This->lpVtbl->TranslateAcceleratorIO(This,pMsg);
9107 }
9108 /*** IInputObject2 methods ***/
9109 static FORCEINLINE HRESULT IInputObject2_TranslateAcceleratorGlobal(IInputObject2* This,MSG *pMsg) {
9110     return This->lpVtbl->TranslateAcceleratorGlobal(This,pMsg);
9111 }
9112 #endif
9113 #endif
9114 
9115 #endif
9116 
9117 HRESULT STDMETHODCALLTYPE IInputObject2_TranslateAcceleratorGlobal_Proxy(
9118     IInputObject2* This,
9119     MSG *pMsg);
9120 void __RPC_STUB IInputObject2_TranslateAcceleratorGlobal_Stub(
9121     IRpcStubBuffer* This,
9122     IRpcChannelBuffer* pRpcChannelBuffer,
9123     PRPC_MESSAGE pRpcMessage,
9124     DWORD* pdwStubPhase);
9125 
9126 #endif  /* __IInputObject2_INTERFACE_DEFINED__ */
9127 
9128 
9129 /*****************************************************************************
9130  * IShellIcon interface
9131  */
9132 #ifndef __IShellIcon_INTERFACE_DEFINED__
9133 #define __IShellIcon_INTERFACE_DEFINED__
9134 
9135 DEFINE_GUID(IID_IShellIcon, 0x000214e5, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
9136 #if defined(__cplusplus) && !defined(CINTERFACE)
9137 MIDL_INTERFACE("000214e5-0000-0000-c000-000000000046")
9138 IShellIcon : public IUnknown
9139 {
9140     virtual HRESULT STDMETHODCALLTYPE GetIconOf(
9141         PCUITEMID_CHILD pidl,
9142         UINT flags,
9143         int *pIconIndex) = 0;
9144 
9145 };
9146 #ifdef __CRT_UUID_DECL
9147 __CRT_UUID_DECL(IShellIcon, 0x000214e5, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
9148 #endif
9149 #else
9150 typedef struct IShellIconVtbl {
9151     BEGIN_INTERFACE
9152 
9153     /*** IUnknown methods ***/
9154     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9155         IShellIcon* This,
9156         REFIID riid,
9157         void **ppvObject);
9158 
9159     ULONG (STDMETHODCALLTYPE *AddRef)(
9160         IShellIcon* This);
9161 
9162     ULONG (STDMETHODCALLTYPE *Release)(
9163         IShellIcon* This);
9164 
9165     /*** IShellIcon methods ***/
9166     HRESULT (STDMETHODCALLTYPE *GetIconOf)(
9167         IShellIcon* This,
9168         PCUITEMID_CHILD pidl,
9169         UINT flags,
9170         int *pIconIndex);
9171 
9172     END_INTERFACE
9173 } IShellIconVtbl;
9174 interface IShellIcon {
9175     CONST_VTBL IShellIconVtbl* lpVtbl;
9176 };
9177 
9178 #ifdef COBJMACROS
9179 #ifndef WIDL_C_INLINE_WRAPPERS
9180 /*** IUnknown methods ***/
9181 #define IShellIcon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9182 #define IShellIcon_AddRef(This) (This)->lpVtbl->AddRef(This)
9183 #define IShellIcon_Release(This) (This)->lpVtbl->Release(This)
9184 /*** IShellIcon methods ***/
9185 #define IShellIcon_GetIconOf(This,pidl,flags,pIconIndex) (This)->lpVtbl->GetIconOf(This,pidl,flags,pIconIndex)
9186 #else
9187 /*** IUnknown methods ***/
9188 static FORCEINLINE HRESULT IShellIcon_QueryInterface(IShellIcon* This,REFIID riid,void **ppvObject) {
9189     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9190 }
9191 static FORCEINLINE ULONG IShellIcon_AddRef(IShellIcon* This) {
9192     return This->lpVtbl->AddRef(This);
9193 }
9194 static FORCEINLINE ULONG IShellIcon_Release(IShellIcon* This) {
9195     return This->lpVtbl->Release(This);
9196 }
9197 /*** IShellIcon methods ***/
9198 static FORCEINLINE HRESULT IShellIcon_GetIconOf(IShellIcon* This,PCUITEMID_CHILD pidl,UINT flags,int *pIconIndex) {
9199     return This->lpVtbl->GetIconOf(This,pidl,flags,pIconIndex);
9200 }
9201 #endif
9202 #endif
9203 
9204 #endif
9205 
9206 HRESULT STDMETHODCALLTYPE IShellIcon_GetIconOf_Proxy(
9207     IShellIcon* This,
9208     PCUITEMID_CHILD pidl,
9209     UINT flags,
9210     int *pIconIndex);
9211 void __RPC_STUB IShellIcon_GetIconOf_Stub(
9212     IRpcStubBuffer* This,
9213     IRpcChannelBuffer* pRpcChannelBuffer,
9214     PRPC_MESSAGE pRpcMessage,
9215     DWORD* pdwStubPhase);
9216 
9217 #endif  /* __IShellIcon_INTERFACE_DEFINED__ */
9218 
9219 
9220 #define SBSP_DEFBROWSER 0x0000
9221 #define SBSP_SAMEBROWSER 0x0001
9222 #define SBSP_NEWBROWSER 0x0002
9223 
9224 #define SBSP_DEFMODE 0x0000
9225 #define SBSP_OPENMODE 0x0010
9226 #define SBSP_EXPLOREMODE 0x0020
9227 #define SBSP_HELPMODE 0x0040
9228 #define SBSP_NOTRANSFERHIST 0x0080
9229 
9230 #define SBSP_ABSOLUTE 0x0000
9231 #define SBSP_RELATIVE 0x1000
9232 #define SBSP_PARENT 0x2000
9233 #define SBSP_NAVIGATEBACK 0x4000
9234 #define SBSP_NAVIGATEFORWARD 0x8000
9235 #define SBSP_ALLOW_AUTONAVIGATE 0x00010000
9236 #if NTDDI_VERSION >= NTDDI_VISTA
9237 #define SBSP_KEEPSAMETEMPLATE 0x00020000
9238 #define SBSP_KEEPWORDWHEELTEXT 0x00040000
9239 #define SBSP_ACTIVATE_NOFOCUS 0x00080000
9240 #define SBSP_CREATENOHISTORY 0x00100000
9241 #define SBSP_PLAYNOSOUND 0x00200000
9242 #endif
9243 #if _WIN32_IE >= _WIN32_IE_IE60SP2
9244 #define SBSP_CALLERUNTRUSTED 0x00800000
9245 #define SBSP_TRUSTFIRSTDOWNLOAD 0x01000000
9246 #define SBSP_UNTRUSTEDFORDOWNLOAD 0x02000000
9247 #endif
9248 #define SBSP_NOAUTOSELECT 0x04000000
9249 #define SBSP_WRITENOHISTORY 0x08000000
9250 #if _WIN32_IE >= _WIN32_IE_IE60SP2
9251 #define SBSP_TRUSTEDFORACTIVEX 0x10000000
9252 #endif
9253 #if _WIN32_IE >= _WIN32_IE_IE70
9254 #define SBSP_FEEDNAVIGATION 0x20000000
9255 #endif
9256 #define SBSP_REDIRECT 0x40000000
9257 #define SBSP_INITIATEDBYHLINKFRAME 0x80000000
9258 
9259 #define FCW_STATUS 0x0001
9260 #define FCW_TOOLBAR 0x0002
9261 #define FCW_TREE 0x0003
9262 #define FCW_INTERNETBAR 0x0006
9263 #define FCW_PROGRESS 0x0008
9264 
9265 #define FCT_MERGE 0x0001
9266 #define FCT_CONFIGABLE 0x0002
9267 #define FCT_ADDTOEND 0x0004
9268 
9269 #if 0
9270 typedef LPARAM LPTBBUTTONSB;
9271 #else
9272 #include <commctrl.h>
9273 
9274 typedef LPTBBUTTON LPTBBUTTONSB;
9275 #endif
9276 
9277 /*****************************************************************************
9278  * IShellBrowser interface
9279  */
9280 #ifndef __IShellBrowser_INTERFACE_DEFINED__
9281 #define __IShellBrowser_INTERFACE_DEFINED__
9282 
9283 DEFINE_GUID(IID_IShellBrowser, 0x000214e2, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
9284 #if defined(__cplusplus) && !defined(CINTERFACE)
9285 MIDL_INTERFACE("000214e2-0000-0000-c000-000000000046")
9286 IShellBrowser : public IOleWindow
9287 {
9288     virtual HRESULT STDMETHODCALLTYPE InsertMenusSB(
9289         HMENU hmenuShared,
9290         LPOLEMENUGROUPWIDTHS lpMenuWidths) = 0;
9291 
9292     virtual HRESULT STDMETHODCALLTYPE SetMenuSB(
9293         HMENU hmenuShared,
9294         HOLEMENU holemenuRes,
9295         HWND hwndActiveObject) = 0;
9296 
9297     virtual HRESULT STDMETHODCALLTYPE RemoveMenusSB(
9298         HMENU hmenuShared) = 0;
9299 
9300     virtual HRESULT STDMETHODCALLTYPE SetStatusTextSB(
9301         LPCWSTR pszStatusText) = 0;
9302 
9303     virtual HRESULT STDMETHODCALLTYPE EnableModelessSB(
9304         WINBOOL fEnable) = 0;
9305 
9306     virtual HRESULT STDMETHODCALLTYPE TranslateAcceleratorSB(
9307         MSG *pmsg,
9308         WORD wID) = 0;
9309 
9310     virtual HRESULT STDMETHODCALLTYPE BrowseObject(
9311         PCUIDLIST_RELATIVE pidl,
9312         UINT wFlags) = 0;
9313 
9314     virtual HRESULT STDMETHODCALLTYPE GetViewStateStream(
9315         DWORD grfMode,
9316         IStream **ppStrm) = 0;
9317 
9318     virtual HRESULT STDMETHODCALLTYPE GetControlWindow(
9319         UINT id,
9320         HWND *phwnd) = 0;
9321 
9322     virtual HRESULT STDMETHODCALLTYPE SendControlMsg(
9323         UINT id,
9324         UINT uMsg,
9325         WPARAM wParam,
9326         LPARAM lParam,
9327         LRESULT *pret) = 0;
9328 
9329     virtual HRESULT STDMETHODCALLTYPE QueryActiveShellView(
9330         IShellView **ppshv) = 0;
9331 
9332     virtual HRESULT STDMETHODCALLTYPE OnViewWindowActive(
9333         IShellView *pshv) = 0;
9334 
9335     virtual HRESULT STDMETHODCALLTYPE SetToolbarItems(
9336         LPTBBUTTONSB lpButtons,
9337         UINT nButtons,
9338         UINT uFlags) = 0;
9339 
9340 };
9341 #ifdef __CRT_UUID_DECL
9342 __CRT_UUID_DECL(IShellBrowser, 0x000214e2, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
9343 #endif
9344 #else
9345 typedef struct IShellBrowserVtbl {
9346     BEGIN_INTERFACE
9347 
9348     /*** IUnknown methods ***/
9349     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9350         IShellBrowser* This,
9351         REFIID riid,
9352         void **ppvObject);
9353 
9354     ULONG (STDMETHODCALLTYPE *AddRef)(
9355         IShellBrowser* This);
9356 
9357     ULONG (STDMETHODCALLTYPE *Release)(
9358         IShellBrowser* This);
9359 
9360     /*** IOleWindow methods ***/
9361     HRESULT (STDMETHODCALLTYPE *GetWindow)(
9362         IShellBrowser* This,
9363         HWND *phwnd);
9364 
9365     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
9366         IShellBrowser* This,
9367         WINBOOL fEnterMode);
9368 
9369     /*** IShellBrowser methods ***/
9370     HRESULT (STDMETHODCALLTYPE *InsertMenusSB)(
9371         IShellBrowser* This,
9372         HMENU hmenuShared,
9373         LPOLEMENUGROUPWIDTHS lpMenuWidths);
9374 
9375     HRESULT (STDMETHODCALLTYPE *SetMenuSB)(
9376         IShellBrowser* This,
9377         HMENU hmenuShared,
9378         HOLEMENU holemenuRes,
9379         HWND hwndActiveObject);
9380 
9381     HRESULT (STDMETHODCALLTYPE *RemoveMenusSB)(
9382         IShellBrowser* This,
9383         HMENU hmenuShared);
9384 
9385     HRESULT (STDMETHODCALLTYPE *SetStatusTextSB)(
9386         IShellBrowser* This,
9387         LPCWSTR pszStatusText);
9388 
9389     HRESULT (STDMETHODCALLTYPE *EnableModelessSB)(
9390         IShellBrowser* This,
9391         WINBOOL fEnable);
9392 
9393     HRESULT (STDMETHODCALLTYPE *TranslateAcceleratorSB)(
9394         IShellBrowser* This,
9395         MSG *pmsg,
9396         WORD wID);
9397 
9398     HRESULT (STDMETHODCALLTYPE *BrowseObject)(
9399         IShellBrowser* This,
9400         PCUIDLIST_RELATIVE pidl,
9401         UINT wFlags);
9402 
9403     HRESULT (STDMETHODCALLTYPE *GetViewStateStream)(
9404         IShellBrowser* This,
9405         DWORD grfMode,
9406         IStream **ppStrm);
9407 
9408     HRESULT (STDMETHODCALLTYPE *GetControlWindow)(
9409         IShellBrowser* This,
9410         UINT id,
9411         HWND *phwnd);
9412 
9413     HRESULT (STDMETHODCALLTYPE *SendControlMsg)(
9414         IShellBrowser* This,
9415         UINT id,
9416         UINT uMsg,
9417         WPARAM wParam,
9418         LPARAM lParam,
9419         LRESULT *pret);
9420 
9421     HRESULT (STDMETHODCALLTYPE *QueryActiveShellView)(
9422         IShellBrowser* This,
9423         IShellView **ppshv);
9424 
9425     HRESULT (STDMETHODCALLTYPE *OnViewWindowActive)(
9426         IShellBrowser* This,
9427         IShellView *pshv);
9428 
9429     HRESULT (STDMETHODCALLTYPE *SetToolbarItems)(
9430         IShellBrowser* This,
9431         LPTBBUTTONSB lpButtons,
9432         UINT nButtons,
9433         UINT uFlags);
9434 
9435     END_INTERFACE
9436 } IShellBrowserVtbl;
9437 interface IShellBrowser {
9438     CONST_VTBL IShellBrowserVtbl* lpVtbl;
9439 };
9440 
9441 #ifdef COBJMACROS
9442 #ifndef WIDL_C_INLINE_WRAPPERS
9443 /*** IUnknown methods ***/
9444 #define IShellBrowser_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9445 #define IShellBrowser_AddRef(This) (This)->lpVtbl->AddRef(This)
9446 #define IShellBrowser_Release(This) (This)->lpVtbl->Release(This)
9447 /*** IOleWindow methods ***/
9448 #define IShellBrowser_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
9449 #define IShellBrowser_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
9450 /*** IShellBrowser methods ***/
9451 #define IShellBrowser_InsertMenusSB(This,hmenuShared,lpMenuWidths) (This)->lpVtbl->InsertMenusSB(This,hmenuShared,lpMenuWidths)
9452 #define IShellBrowser_SetMenuSB(This,hmenuShared,holemenuRes,hwndActiveObject) (This)->lpVtbl->SetMenuSB(This,hmenuShared,holemenuRes,hwndActiveObject)
9453 #define IShellBrowser_RemoveMenusSB(This,hmenuShared) (This)->lpVtbl->RemoveMenusSB(This,hmenuShared)
9454 #define IShellBrowser_SetStatusTextSB(This,pszStatusText) (This)->lpVtbl->SetStatusTextSB(This,pszStatusText)
9455 #define IShellBrowser_EnableModelessSB(This,fEnable) (This)->lpVtbl->EnableModelessSB(This,fEnable)
9456 #define IShellBrowser_TranslateAcceleratorSB(This,pmsg,wID) (This)->lpVtbl->TranslateAcceleratorSB(This,pmsg,wID)
9457 #define IShellBrowser_BrowseObject(This,pidl,wFlags) (This)->lpVtbl->BrowseObject(This,pidl,wFlags)
9458 #define IShellBrowser_GetViewStateStream(This,grfMode,ppStrm) (This)->lpVtbl->GetViewStateStream(This,grfMode,ppStrm)
9459 #define IShellBrowser_GetControlWindow(This,id,phwnd) (This)->lpVtbl->GetControlWindow(This,id,phwnd)
9460 #define IShellBrowser_SendControlMsg(This,id,uMsg,wParam,lParam,pret) (This)->lpVtbl->SendControlMsg(This,id,uMsg,wParam,lParam,pret)
9461 #define IShellBrowser_QueryActiveShellView(This,ppshv) (This)->lpVtbl->QueryActiveShellView(This,ppshv)
9462 #define IShellBrowser_OnViewWindowActive(This,pshv) (This)->lpVtbl->OnViewWindowActive(This,pshv)
9463 #define IShellBrowser_SetToolbarItems(This,lpButtons,nButtons,uFlags) (This)->lpVtbl->SetToolbarItems(This,lpButtons,nButtons,uFlags)
9464 #else
9465 /*** IUnknown methods ***/
9466 static FORCEINLINE HRESULT IShellBrowser_QueryInterface(IShellBrowser* This,REFIID riid,void **ppvObject) {
9467     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9468 }
9469 static FORCEINLINE ULONG IShellBrowser_AddRef(IShellBrowser* This) {
9470     return This->lpVtbl->AddRef(This);
9471 }
9472 static FORCEINLINE ULONG IShellBrowser_Release(IShellBrowser* This) {
9473     return This->lpVtbl->Release(This);
9474 }
9475 /*** IOleWindow methods ***/
9476 static FORCEINLINE HRESULT IShellBrowser_GetWindow(IShellBrowser* This,HWND *phwnd) {
9477     return This->lpVtbl->GetWindow(This,phwnd);
9478 }
9479 static FORCEINLINE HRESULT IShellBrowser_ContextSensitiveHelp(IShellBrowser* This,WINBOOL fEnterMode) {
9480     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
9481 }
9482 /*** IShellBrowser methods ***/
9483 static FORCEINLINE HRESULT IShellBrowser_InsertMenusSB(IShellBrowser* This,HMENU hmenuShared,LPOLEMENUGROUPWIDTHS lpMenuWidths) {
9484     return This->lpVtbl->InsertMenusSB(This,hmenuShared,lpMenuWidths);
9485 }
9486 static FORCEINLINE HRESULT IShellBrowser_SetMenuSB(IShellBrowser* This,HMENU hmenuShared,HOLEMENU holemenuRes,HWND hwndActiveObject) {
9487     return This->lpVtbl->SetMenuSB(This,hmenuShared,holemenuRes,hwndActiveObject);
9488 }
9489 static FORCEINLINE HRESULT IShellBrowser_RemoveMenusSB(IShellBrowser* This,HMENU hmenuShared) {
9490     return This->lpVtbl->RemoveMenusSB(This,hmenuShared);
9491 }
9492 static FORCEINLINE HRESULT IShellBrowser_SetStatusTextSB(IShellBrowser* This,LPCWSTR pszStatusText) {
9493     return This->lpVtbl->SetStatusTextSB(This,pszStatusText);
9494 }
9495 static FORCEINLINE HRESULT IShellBrowser_EnableModelessSB(IShellBrowser* This,WINBOOL fEnable) {
9496     return This->lpVtbl->EnableModelessSB(This,fEnable);
9497 }
9498 static FORCEINLINE HRESULT IShellBrowser_TranslateAcceleratorSB(IShellBrowser* This,MSG *pmsg,WORD wID) {
9499     return This->lpVtbl->TranslateAcceleratorSB(This,pmsg,wID);
9500 }
9501 static FORCEINLINE HRESULT IShellBrowser_BrowseObject(IShellBrowser* This,PCUIDLIST_RELATIVE pidl,UINT wFlags) {
9502     return This->lpVtbl->BrowseObject(This,pidl,wFlags);
9503 }
9504 static FORCEINLINE HRESULT IShellBrowser_GetViewStateStream(IShellBrowser* This,DWORD grfMode,IStream **ppStrm) {
9505     return This->lpVtbl->GetViewStateStream(This,grfMode,ppStrm);
9506 }
9507 static FORCEINLINE HRESULT IShellBrowser_GetControlWindow(IShellBrowser* This,UINT id,HWND *phwnd) {
9508     return This->lpVtbl->GetControlWindow(This,id,phwnd);
9509 }
9510 static FORCEINLINE HRESULT IShellBrowser_SendControlMsg(IShellBrowser* This,UINT id,UINT uMsg,WPARAM wParam,LPARAM lParam,LRESULT *pret) {
9511     return This->lpVtbl->SendControlMsg(This,id,uMsg,wParam,lParam,pret);
9512 }
9513 static FORCEINLINE HRESULT IShellBrowser_QueryActiveShellView(IShellBrowser* This,IShellView **ppshv) {
9514     return This->lpVtbl->QueryActiveShellView(This,ppshv);
9515 }
9516 static FORCEINLINE HRESULT IShellBrowser_OnViewWindowActive(IShellBrowser* This,IShellView *pshv) {
9517     return This->lpVtbl->OnViewWindowActive(This,pshv);
9518 }
9519 static FORCEINLINE HRESULT IShellBrowser_SetToolbarItems(IShellBrowser* This,LPTBBUTTONSB lpButtons,UINT nButtons,UINT uFlags) {
9520     return This->lpVtbl->SetToolbarItems(This,lpButtons,nButtons,uFlags);
9521 }
9522 #endif
9523 #endif
9524 
9525 #endif
9526 
9527 HRESULT STDMETHODCALLTYPE IShellBrowser_InsertMenusSB_Proxy(
9528     IShellBrowser* This,
9529     HMENU hmenuShared,
9530     LPOLEMENUGROUPWIDTHS lpMenuWidths);
9531 void __RPC_STUB IShellBrowser_InsertMenusSB_Stub(
9532     IRpcStubBuffer* This,
9533     IRpcChannelBuffer* pRpcChannelBuffer,
9534     PRPC_MESSAGE pRpcMessage,
9535     DWORD* pdwStubPhase);
9536 HRESULT STDMETHODCALLTYPE IShellBrowser_SetMenuSB_Proxy(
9537     IShellBrowser* This,
9538     HMENU hmenuShared,
9539     HOLEMENU holemenuRes,
9540     HWND hwndActiveObject);
9541 void __RPC_STUB IShellBrowser_SetMenuSB_Stub(
9542     IRpcStubBuffer* This,
9543     IRpcChannelBuffer* pRpcChannelBuffer,
9544     PRPC_MESSAGE pRpcMessage,
9545     DWORD* pdwStubPhase);
9546 HRESULT STDMETHODCALLTYPE IShellBrowser_RemoveMenusSB_Proxy(
9547     IShellBrowser* This,
9548     HMENU hmenuShared);
9549 void __RPC_STUB IShellBrowser_RemoveMenusSB_Stub(
9550     IRpcStubBuffer* This,
9551     IRpcChannelBuffer* pRpcChannelBuffer,
9552     PRPC_MESSAGE pRpcMessage,
9553     DWORD* pdwStubPhase);
9554 HRESULT STDMETHODCALLTYPE IShellBrowser_SetStatusTextSB_Proxy(
9555     IShellBrowser* This,
9556     LPCWSTR pszStatusText);
9557 void __RPC_STUB IShellBrowser_SetStatusTextSB_Stub(
9558     IRpcStubBuffer* This,
9559     IRpcChannelBuffer* pRpcChannelBuffer,
9560     PRPC_MESSAGE pRpcMessage,
9561     DWORD* pdwStubPhase);
9562 HRESULT STDMETHODCALLTYPE IShellBrowser_EnableModelessSB_Proxy(
9563     IShellBrowser* This,
9564     WINBOOL fEnable);
9565 void __RPC_STUB IShellBrowser_EnableModelessSB_Stub(
9566     IRpcStubBuffer* This,
9567     IRpcChannelBuffer* pRpcChannelBuffer,
9568     PRPC_MESSAGE pRpcMessage,
9569     DWORD* pdwStubPhase);
9570 HRESULT STDMETHODCALLTYPE IShellBrowser_TranslateAcceleratorSB_Proxy(
9571     IShellBrowser* This,
9572     MSG *pmsg,
9573     WORD wID);
9574 void __RPC_STUB IShellBrowser_TranslateAcceleratorSB_Stub(
9575     IRpcStubBuffer* This,
9576     IRpcChannelBuffer* pRpcChannelBuffer,
9577     PRPC_MESSAGE pRpcMessage,
9578     DWORD* pdwStubPhase);
9579 HRESULT STDMETHODCALLTYPE IShellBrowser_BrowseObject_Proxy(
9580     IShellBrowser* This,
9581     PCUIDLIST_RELATIVE pidl,
9582     UINT wFlags);
9583 void __RPC_STUB IShellBrowser_BrowseObject_Stub(
9584     IRpcStubBuffer* This,
9585     IRpcChannelBuffer* pRpcChannelBuffer,
9586     PRPC_MESSAGE pRpcMessage,
9587     DWORD* pdwStubPhase);
9588 HRESULT STDMETHODCALLTYPE IShellBrowser_GetViewStateStream_Proxy(
9589     IShellBrowser* This,
9590     DWORD grfMode,
9591     IStream **ppStrm);
9592 void __RPC_STUB IShellBrowser_GetViewStateStream_Stub(
9593     IRpcStubBuffer* This,
9594     IRpcChannelBuffer* pRpcChannelBuffer,
9595     PRPC_MESSAGE pRpcMessage,
9596     DWORD* pdwStubPhase);
9597 HRESULT STDMETHODCALLTYPE IShellBrowser_GetControlWindow_Proxy(
9598     IShellBrowser* This,
9599     UINT id,
9600     HWND *phwnd);
9601 void __RPC_STUB IShellBrowser_GetControlWindow_Stub(
9602     IRpcStubBuffer* This,
9603     IRpcChannelBuffer* pRpcChannelBuffer,
9604     PRPC_MESSAGE pRpcMessage,
9605     DWORD* pdwStubPhase);
9606 HRESULT STDMETHODCALLTYPE IShellBrowser_QueryActiveShellView_Proxy(
9607     IShellBrowser* This,
9608     IShellView **ppshv);
9609 void __RPC_STUB IShellBrowser_QueryActiveShellView_Stub(
9610     IRpcStubBuffer* This,
9611     IRpcChannelBuffer* pRpcChannelBuffer,
9612     PRPC_MESSAGE pRpcMessage,
9613     DWORD* pdwStubPhase);
9614 HRESULT STDMETHODCALLTYPE IShellBrowser_OnViewWindowActive_Proxy(
9615     IShellBrowser* This,
9616     IShellView *pshv);
9617 void __RPC_STUB IShellBrowser_OnViewWindowActive_Stub(
9618     IRpcStubBuffer* This,
9619     IRpcChannelBuffer* pRpcChannelBuffer,
9620     PRPC_MESSAGE pRpcMessage,
9621     DWORD* pdwStubPhase);
9622 
9623 #endif  /* __IShellBrowser_INTERFACE_DEFINED__ */
9624 
9625 
9626 typedef IShellBrowser *LPSHELLBROWSER;
9627 
9628 /*****************************************************************************
9629  * IProfferService interface
9630  */
9631 #ifndef __IProfferService_INTERFACE_DEFINED__
9632 #define __IProfferService_INTERFACE_DEFINED__
9633 
9634 DEFINE_GUID(IID_IProfferService, 0xcb728b20, 0xf786, 0x11ce, 0x92,0xad, 0x00,0xaa,0x00,0xa7,0x4c,0xd0);
9635 #if defined(__cplusplus) && !defined(CINTERFACE)
9636 MIDL_INTERFACE("cb728b20-f786-11ce-92ad-00aa00a74cd0")
9637 IProfferService : public IUnknown
9638 {
9639     virtual HRESULT STDMETHODCALLTYPE ProfferService(
9640         REFGUID guidService,
9641         IServiceProvider *psp,
9642         DWORD *pdwCookie) = 0;
9643 
9644     virtual HRESULT STDMETHODCALLTYPE RevokeService(
9645         DWORD dwCookie) = 0;
9646 
9647 };
9648 #ifdef __CRT_UUID_DECL
9649 __CRT_UUID_DECL(IProfferService, 0xcb728b20, 0xf786, 0x11ce, 0x92,0xad, 0x00,0xaa,0x00,0xa7,0x4c,0xd0)
9650 #endif
9651 #else
9652 typedef struct IProfferServiceVtbl {
9653     BEGIN_INTERFACE
9654 
9655     /*** IUnknown methods ***/
9656     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9657         IProfferService* This,
9658         REFIID riid,
9659         void **ppvObject);
9660 
9661     ULONG (STDMETHODCALLTYPE *AddRef)(
9662         IProfferService* This);
9663 
9664     ULONG (STDMETHODCALLTYPE *Release)(
9665         IProfferService* This);
9666 
9667     /*** IProfferService methods ***/
9668     HRESULT (STDMETHODCALLTYPE *ProfferService)(
9669         IProfferService* This,
9670         REFGUID guidService,
9671         IServiceProvider *psp,
9672         DWORD *pdwCookie);
9673 
9674     HRESULT (STDMETHODCALLTYPE *RevokeService)(
9675         IProfferService* This,
9676         DWORD dwCookie);
9677 
9678     END_INTERFACE
9679 } IProfferServiceVtbl;
9680 interface IProfferService {
9681     CONST_VTBL IProfferServiceVtbl* lpVtbl;
9682 };
9683 
9684 #ifdef COBJMACROS
9685 #ifndef WIDL_C_INLINE_WRAPPERS
9686 /*** IUnknown methods ***/
9687 #define IProfferService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9688 #define IProfferService_AddRef(This) (This)->lpVtbl->AddRef(This)
9689 #define IProfferService_Release(This) (This)->lpVtbl->Release(This)
9690 /*** IProfferService methods ***/
9691 #define IProfferService_ProfferService(This,guidService,psp,pdwCookie) (This)->lpVtbl->ProfferService(This,guidService,psp,pdwCookie)
9692 #define IProfferService_RevokeService(This,dwCookie) (This)->lpVtbl->RevokeService(This,dwCookie)
9693 #else
9694 /*** IUnknown methods ***/
9695 static FORCEINLINE HRESULT IProfferService_QueryInterface(IProfferService* This,REFIID riid,void **ppvObject) {
9696     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9697 }
9698 static FORCEINLINE ULONG IProfferService_AddRef(IProfferService* This) {
9699     return This->lpVtbl->AddRef(This);
9700 }
9701 static FORCEINLINE ULONG IProfferService_Release(IProfferService* This) {
9702     return This->lpVtbl->Release(This);
9703 }
9704 /*** IProfferService methods ***/
9705 static FORCEINLINE HRESULT IProfferService_ProfferService(IProfferService* This,REFGUID guidService,IServiceProvider *psp,DWORD *pdwCookie) {
9706     return This->lpVtbl->ProfferService(This,guidService,psp,pdwCookie);
9707 }
9708 static FORCEINLINE HRESULT IProfferService_RevokeService(IProfferService* This,DWORD dwCookie) {
9709     return This->lpVtbl->RevokeService(This,dwCookie);
9710 }
9711 #endif
9712 #endif
9713 
9714 #endif
9715 
9716 HRESULT STDMETHODCALLTYPE IProfferService_ProfferService_Proxy(
9717     IProfferService* This,
9718     REFGUID guidService,
9719     IServiceProvider *psp,
9720     DWORD *pdwCookie);
9721 void __RPC_STUB IProfferService_ProfferService_Stub(
9722     IRpcStubBuffer* This,
9723     IRpcChannelBuffer* pRpcChannelBuffer,
9724     PRPC_MESSAGE pRpcMessage,
9725     DWORD* pdwStubPhase);
9726 HRESULT STDMETHODCALLTYPE IProfferService_RevokeService_Proxy(
9727     IProfferService* This,
9728     DWORD dwCookie);
9729 void __RPC_STUB IProfferService_RevokeService_Stub(
9730     IRpcStubBuffer* This,
9731     IRpcChannelBuffer* pRpcChannelBuffer,
9732     PRPC_MESSAGE pRpcMessage,
9733     DWORD* pdwStubPhase);
9734 
9735 #endif  /* __IProfferService_INTERFACE_DEFINED__ */
9736 
9737 
9738 #define SID_SProfferService IID_IProfferService
9739 #define STR_DONT_RESOLVE_LINK L"Don't Resolve Link"
9740 #define STR_GET_ASYNC_HANDLER L"GetAsyncHandler"
9741 
9742 /*****************************************************************************
9743  * IShellItem interface
9744  */
9745 #ifndef __IShellItem_INTERFACE_DEFINED__
9746 #define __IShellItem_INTERFACE_DEFINED__
9747 
9748 typedef enum _SIGDN {
9749     SIGDN_NORMALDISPLAY = 0x0,
9750     SIGDN_PARENTRELATIVEPARSING = (int)0x80018001,
9751     SIGDN_DESKTOPABSOLUTEPARSING = (int)0x80028000,
9752     SIGDN_PARENTRELATIVEEDITING = (int)0x80031001,
9753     SIGDN_DESKTOPABSOLUTEEDITING = (int)0x8004c000,
9754     SIGDN_FILESYSPATH = (int)0x80058000,
9755     SIGDN_URL = (int)0x80068000,
9756     SIGDN_PARENTRELATIVEFORADDRESSBAR = (int)0x8007c001,
9757     SIGDN_PARENTRELATIVE = (int)0x80080001,
9758     SIGDN_PARENTRELATIVEFORUI = (int)0x80094001
9759 } SIGDN;
9760 
9761 enum _SICHINTF {
9762     SICHINT_DISPLAY = 0x0,
9763     SICHINT_ALLFIELDS = (int)0x80000000,
9764     SICHINT_CANONICAL = 0x10000000,
9765     SICHINT_TEST_FILESYSPATH_IF_NOT_EQUAL = 0x20000000
9766 };
9767 
9768 
9769 typedef DWORD SICHINTF;
9770 
9771 DEFINE_GUID(IID_IShellItem, 0x43826d1e, 0xe718, 0x42ee, 0xbc,0x55, 0xa1,0xe2,0x61,0xc3,0x7b,0xfe);
9772 #if defined(__cplusplus) && !defined(CINTERFACE)
9773 MIDL_INTERFACE("43826d1e-e718-42ee-bc55-a1e261c37bfe")
9774 IShellItem : public IUnknown
9775 {
9776     virtual HRESULT STDMETHODCALLTYPE BindToHandler(
9777         IBindCtx *pbc,
9778         REFGUID bhid,
9779         REFIID riid,
9780         void **ppv) = 0;
9781 
9782     virtual HRESULT STDMETHODCALLTYPE GetParent(
9783         IShellItem **ppsi) = 0;
9784 
9785     virtual HRESULT STDMETHODCALLTYPE GetDisplayName(
9786         SIGDN sigdnName,
9787         LPWSTR *ppszName) = 0;
9788 
9789     virtual HRESULT STDMETHODCALLTYPE GetAttributes(
9790         SFGAOF sfgaoMask,
9791         SFGAOF *psfgaoAttribs) = 0;
9792 
9793     virtual HRESULT STDMETHODCALLTYPE Compare(
9794         IShellItem *psi,
9795         SICHINTF hint,
9796         int *piOrder) = 0;
9797 
9798 };
9799 #ifdef __CRT_UUID_DECL
9800 __CRT_UUID_DECL(IShellItem, 0x43826d1e, 0xe718, 0x42ee, 0xbc,0x55, 0xa1,0xe2,0x61,0xc3,0x7b,0xfe)
9801 #endif
9802 #else
9803 typedef struct IShellItemVtbl {
9804     BEGIN_INTERFACE
9805 
9806     /*** IUnknown methods ***/
9807     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9808         IShellItem* This,
9809         REFIID riid,
9810         void **ppvObject);
9811 
9812     ULONG (STDMETHODCALLTYPE *AddRef)(
9813         IShellItem* This);
9814 
9815     ULONG (STDMETHODCALLTYPE *Release)(
9816         IShellItem* This);
9817 
9818     /*** IShellItem methods ***/
9819     HRESULT (STDMETHODCALLTYPE *BindToHandler)(
9820         IShellItem* This,
9821         IBindCtx *pbc,
9822         REFGUID bhid,
9823         REFIID riid,
9824         void **ppv);
9825 
9826     HRESULT (STDMETHODCALLTYPE *GetParent)(
9827         IShellItem* This,
9828         IShellItem **ppsi);
9829 
9830     HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
9831         IShellItem* This,
9832         SIGDN sigdnName,
9833         LPWSTR *ppszName);
9834 
9835     HRESULT (STDMETHODCALLTYPE *GetAttributes)(
9836         IShellItem* This,
9837         SFGAOF sfgaoMask,
9838         SFGAOF *psfgaoAttribs);
9839 
9840     HRESULT (STDMETHODCALLTYPE *Compare)(
9841         IShellItem* This,
9842         IShellItem *psi,
9843         SICHINTF hint,
9844         int *piOrder);
9845 
9846     END_INTERFACE
9847 } IShellItemVtbl;
9848 interface IShellItem {
9849     CONST_VTBL IShellItemVtbl* lpVtbl;
9850 };
9851 
9852 #ifdef COBJMACROS
9853 #ifndef WIDL_C_INLINE_WRAPPERS
9854 /*** IUnknown methods ***/
9855 #define IShellItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9856 #define IShellItem_AddRef(This) (This)->lpVtbl->AddRef(This)
9857 #define IShellItem_Release(This) (This)->lpVtbl->Release(This)
9858 /*** IShellItem methods ***/
9859 #define IShellItem_BindToHandler(This,pbc,bhid,riid,ppv) (This)->lpVtbl->BindToHandler(This,pbc,bhid,riid,ppv)
9860 #define IShellItem_GetParent(This,ppsi) (This)->lpVtbl->GetParent(This,ppsi)
9861 #define IShellItem_GetDisplayName(This,sigdnName,ppszName) (This)->lpVtbl->GetDisplayName(This,sigdnName,ppszName)
9862 #define IShellItem_GetAttributes(This,sfgaoMask,psfgaoAttribs) (This)->lpVtbl->GetAttributes(This,sfgaoMask,psfgaoAttribs)
9863 #define IShellItem_Compare(This,psi,hint,piOrder) (This)->lpVtbl->Compare(This,psi,hint,piOrder)
9864 #else
9865 /*** IUnknown methods ***/
9866 static FORCEINLINE HRESULT IShellItem_QueryInterface(IShellItem* This,REFIID riid,void **ppvObject) {
9867     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9868 }
9869 static FORCEINLINE ULONG IShellItem_AddRef(IShellItem* This) {
9870     return This->lpVtbl->AddRef(This);
9871 }
9872 static FORCEINLINE ULONG IShellItem_Release(IShellItem* This) {
9873     return This->lpVtbl->Release(This);
9874 }
9875 /*** IShellItem methods ***/
9876 static FORCEINLINE HRESULT IShellItem_BindToHandler(IShellItem* This,IBindCtx *pbc,REFGUID bhid,REFIID riid,void **ppv) {
9877     return This->lpVtbl->BindToHandler(This,pbc,bhid,riid,ppv);
9878 }
9879 static FORCEINLINE HRESULT IShellItem_GetParent(IShellItem* This,IShellItem **ppsi) {
9880     return This->lpVtbl->GetParent(This,ppsi);
9881 }
9882 static FORCEINLINE HRESULT IShellItem_GetDisplayName(IShellItem* This,SIGDN sigdnName,LPWSTR *ppszName) {
9883     return This->lpVtbl->GetDisplayName(This,sigdnName,ppszName);
9884 }
9885 static FORCEINLINE HRESULT IShellItem_GetAttributes(IShellItem* This,SFGAOF sfgaoMask,SFGAOF *psfgaoAttribs) {
9886     return This->lpVtbl->GetAttributes(This,sfgaoMask,psfgaoAttribs);
9887 }
9888 static FORCEINLINE HRESULT IShellItem_Compare(IShellItem* This,IShellItem *psi,SICHINTF hint,int *piOrder) {
9889     return This->lpVtbl->Compare(This,psi,hint,piOrder);
9890 }
9891 #endif
9892 #endif
9893 
9894 #endif
9895 
9896 HRESULT STDMETHODCALLTYPE IShellItem_BindToHandler_Proxy(
9897     IShellItem* This,
9898     IBindCtx *pbc,
9899     REFGUID bhid,
9900     REFIID riid,
9901     void **ppv);
9902 void __RPC_STUB IShellItem_BindToHandler_Stub(
9903     IRpcStubBuffer* This,
9904     IRpcChannelBuffer* pRpcChannelBuffer,
9905     PRPC_MESSAGE pRpcMessage,
9906     DWORD* pdwStubPhase);
9907 HRESULT STDMETHODCALLTYPE IShellItem_GetParent_Proxy(
9908     IShellItem* This,
9909     IShellItem **ppsi);
9910 void __RPC_STUB IShellItem_GetParent_Stub(
9911     IRpcStubBuffer* This,
9912     IRpcChannelBuffer* pRpcChannelBuffer,
9913     PRPC_MESSAGE pRpcMessage,
9914     DWORD* pdwStubPhase);
9915 HRESULT STDMETHODCALLTYPE IShellItem_GetDisplayName_Proxy(
9916     IShellItem* This,
9917     SIGDN sigdnName,
9918     LPWSTR *ppszName);
9919 void __RPC_STUB IShellItem_GetDisplayName_Stub(
9920     IRpcStubBuffer* This,
9921     IRpcChannelBuffer* pRpcChannelBuffer,
9922     PRPC_MESSAGE pRpcMessage,
9923     DWORD* pdwStubPhase);
9924 HRESULT STDMETHODCALLTYPE IShellItem_GetAttributes_Proxy(
9925     IShellItem* This,
9926     SFGAOF sfgaoMask,
9927     SFGAOF *psfgaoAttribs);
9928 void __RPC_STUB IShellItem_GetAttributes_Stub(
9929     IRpcStubBuffer* This,
9930     IRpcChannelBuffer* pRpcChannelBuffer,
9931     PRPC_MESSAGE pRpcMessage,
9932     DWORD* pdwStubPhase);
9933 HRESULT STDMETHODCALLTYPE IShellItem_Compare_Proxy(
9934     IShellItem* This,
9935     IShellItem *psi,
9936     SICHINTF hint,
9937     int *piOrder);
9938 void __RPC_STUB IShellItem_Compare_Stub(
9939     IRpcStubBuffer* This,
9940     IRpcChannelBuffer* pRpcChannelBuffer,
9941     PRPC_MESSAGE pRpcMessage,
9942     DWORD* pdwStubPhase);
9943 
9944 #endif  /* __IShellItem_INTERFACE_DEFINED__ */
9945 
9946 
9947 SHSTDAPI_(PIDLIST_ABSOLUTE) SHSimpleIDListFromPath(PCWSTR pszPath);
9948 
9949 #if _WIN32_IE >= _WIN32_IE_IE70
9950   SHSTDAPI SHCreateItemFromIDList(PCIDLIST_ABSOLUTE pidl, REFIID riid, void **ppv);
9951   SHSTDAPI SHCreateItemFromParsingName(PCWSTR pszPath, IBindCtx *pbc, REFIID riid, void **ppv);
9952   SHSTDAPI SHCreateItemWithParent(PCIDLIST_ABSOLUTE pidlParent, IShellFolder *psfParent, PCUITEMID_CHILD pidl, REFIID riid, void **ppvItem);
9953   SHSTDAPI SHCreateItemFromRelativeName(IShellItem *psiParent, PCWSTR pszName, IBindCtx *pbc, REFIID riid, void **ppv);
9954 #endif
9955 #if NTDDI_VERSION >= NTDDI_VISTA
9956   SHSTDAPI SHCreateItemInKnownFolder(REFKNOWNFOLDERID kfid, DWORD dwKFFlags, PCWSTR pszItem, REFIID riid, void **ppv);
9957   SHSTDAPI SHGetIDListFromObject(IUnknown *punk, PIDLIST_ABSOLUTE *ppidl);
9958   SHSTDAPI SHGetItemFromObject(IUnknown *punk, REFIID riid, void **ppv);
9959   SHSTDAPI SHGetPropertyStoreFromIDList(PCIDLIST_ABSOLUTE pidl, GETPROPERTYSTOREFLAGS flags, REFIID riid, void **ppv);
9960   SHSTDAPI SHGetPropertyStoreFromParsingName(PCWSTR pszPath, IBindCtx *pbc, GETPROPERTYSTOREFLAGS flags, REFIID riid, void **ppv);
9961   SHSTDAPI SHGetNameFromIDList(PCIDLIST_ABSOLUTE pidl, SIGDN sigdnName, PWSTR *ppszName);
9962 #endif
9963 #if NTDDI_VERSION >= NTDDI_WIN7
9964 typedef enum DATAOBJ_GET_ITEM_FLAGS {
9965     DOGIF_DEFAULT = 0x0,
9966     DOGIF_TRAVERSE_LINK = 0x1,
9967     DOGIF_NO_HDROP = 0x2,
9968     DOGIF_NO_URL = 0x4,
9969     DOGIF_ONLY_IF_ONE = 0x8
9970 } DATAOBJ_GET_ITEM_FLAGS;
9971 
9972 DEFINE_ENUM_FLAG_OPERATORS(DATAOBJ_GET_ITEM_FLAGS)
9973 
9974   STDAPI SHGetItemFromDataObject(IDataObject *pdtobj, DATAOBJ_GET_ITEM_FLAGS dwFlags, REFIID riid, void **ppv);
9975 #endif
9976 
9977 #define STR_GPS_HANDLERPROPERTIESONLY L"GPS_HANDLERPROPERTIESONLY"
9978 #define STR_GPS_FASTPROPERTIESONLY L"GPS_FASTPROPERTIESONLY"
9979 #define STR_GPS_OPENSLOWITEM L"GPS_OPENSLOWITEM"
9980 #define STR_GPS_DELAYCREATION L"GPS_DELAYCREATION"
9981 #define STR_GPS_BESTEFFORT L"GPS_BESTEFFORT"
9982 #define STR_GPS_NO_OPLOCK L"GPS_NO_OPLOCK"
9983 
9984 /*****************************************************************************
9985  * IShellItem2 interface
9986  */
9987 #ifndef __IShellItem2_INTERFACE_DEFINED__
9988 #define __IShellItem2_INTERFACE_DEFINED__
9989 
9990 DEFINE_GUID(IID_IShellItem2, 0x7e9fb0d3, 0x919f, 0x4307, 0xab,0x2e, 0x9b,0x18,0x60,0x31,0x0c,0x93);
9991 #if defined(__cplusplus) && !defined(CINTERFACE)
9992 MIDL_INTERFACE("7e9fb0d3-919f-4307-ab2e-9b1860310c93")
9993 IShellItem2 : public IShellItem
9994 {
9995     virtual HRESULT STDMETHODCALLTYPE GetPropertyStore(
9996         GETPROPERTYSTOREFLAGS flags,
9997         REFIID riid,
9998         void **ppv) = 0;
9999 
10000     virtual HRESULT STDMETHODCALLTYPE GetPropertyStoreWithCreateObject(
10001         GETPROPERTYSTOREFLAGS flags,
10002         IUnknown *punkCreateObject,
10003         REFIID riid,
10004         void **ppv) = 0;
10005 
10006     virtual HRESULT STDMETHODCALLTYPE GetPropertyStoreForKeys(
10007         const PROPERTYKEY *rgKeys,
10008         UINT cKeys,
10009         GETPROPERTYSTOREFLAGS flags,
10010         REFIID riid,
10011         void **ppv) = 0;
10012 
10013     virtual HRESULT STDMETHODCALLTYPE GetPropertyDescriptionList(
10014         REFPROPERTYKEY keyType,
10015         REFIID riid,
10016         void **ppv) = 0;
10017 
10018     virtual HRESULT STDMETHODCALLTYPE Update(
10019         IBindCtx *pbc) = 0;
10020 
10021     virtual HRESULT STDMETHODCALLTYPE GetProperty(
10022         REFPROPERTYKEY key,
10023         PROPVARIANT *ppropvar) = 0;
10024 
10025     virtual HRESULT STDMETHODCALLTYPE GetCLSID(
10026         REFPROPERTYKEY key,
10027         CLSID *pclsid) = 0;
10028 
10029     virtual HRESULT STDMETHODCALLTYPE GetFileTime(
10030         REFPROPERTYKEY key,
10031         FILETIME *pft) = 0;
10032 
10033     virtual HRESULT STDMETHODCALLTYPE GetInt32(
10034         REFPROPERTYKEY key,
10035         int *pi) = 0;
10036 
10037     virtual HRESULT STDMETHODCALLTYPE GetString(
10038         REFPROPERTYKEY key,
10039         LPWSTR *ppsz) = 0;
10040 
10041     virtual HRESULT STDMETHODCALLTYPE GetUInt32(
10042         REFPROPERTYKEY key,
10043         ULONG *pui) = 0;
10044 
10045     virtual HRESULT STDMETHODCALLTYPE GetUInt64(
10046         REFPROPERTYKEY key,
10047         ULONGLONG *pull) = 0;
10048 
10049     virtual HRESULT STDMETHODCALLTYPE GetBool(
10050         REFPROPERTYKEY key,
10051         WINBOOL *pf) = 0;
10052 
10053 };
10054 #ifdef __CRT_UUID_DECL
10055 __CRT_UUID_DECL(IShellItem2, 0x7e9fb0d3, 0x919f, 0x4307, 0xab,0x2e, 0x9b,0x18,0x60,0x31,0x0c,0x93)
10056 #endif
10057 #else
10058 typedef struct IShellItem2Vtbl {
10059     BEGIN_INTERFACE
10060 
10061     /*** IUnknown methods ***/
10062     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10063         IShellItem2* This,
10064         REFIID riid,
10065         void **ppvObject);
10066 
10067     ULONG (STDMETHODCALLTYPE *AddRef)(
10068         IShellItem2* This);
10069 
10070     ULONG (STDMETHODCALLTYPE *Release)(
10071         IShellItem2* This);
10072 
10073     /*** IShellItem methods ***/
10074     HRESULT (STDMETHODCALLTYPE *BindToHandler)(
10075         IShellItem2* This,
10076         IBindCtx *pbc,
10077         REFGUID bhid,
10078         REFIID riid,
10079         void **ppv);
10080 
10081     HRESULT (STDMETHODCALLTYPE *GetParent)(
10082         IShellItem2* This,
10083         IShellItem **ppsi);
10084 
10085     HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
10086         IShellItem2* This,
10087         SIGDN sigdnName,
10088         LPWSTR *ppszName);
10089 
10090     HRESULT (STDMETHODCALLTYPE *GetAttributes)(
10091         IShellItem2* This,
10092         SFGAOF sfgaoMask,
10093         SFGAOF *psfgaoAttribs);
10094 
10095     HRESULT (STDMETHODCALLTYPE *Compare)(
10096         IShellItem2* This,
10097         IShellItem *psi,
10098         SICHINTF hint,
10099         int *piOrder);
10100 
10101     /*** IShellItem2 methods ***/
10102     HRESULT (STDMETHODCALLTYPE *GetPropertyStore)(
10103         IShellItem2* This,
10104         GETPROPERTYSTOREFLAGS flags,
10105         REFIID riid,
10106         void **ppv);
10107 
10108     HRESULT (STDMETHODCALLTYPE *GetPropertyStoreWithCreateObject)(
10109         IShellItem2* This,
10110         GETPROPERTYSTOREFLAGS flags,
10111         IUnknown *punkCreateObject,
10112         REFIID riid,
10113         void **ppv);
10114 
10115     HRESULT (STDMETHODCALLTYPE *GetPropertyStoreForKeys)(
10116         IShellItem2* This,
10117         const PROPERTYKEY *rgKeys,
10118         UINT cKeys,
10119         GETPROPERTYSTOREFLAGS flags,
10120         REFIID riid,
10121         void **ppv);
10122 
10123     HRESULT (STDMETHODCALLTYPE *GetPropertyDescriptionList)(
10124         IShellItem2* This,
10125         REFPROPERTYKEY keyType,
10126         REFIID riid,
10127         void **ppv);
10128 
10129     HRESULT (STDMETHODCALLTYPE *Update)(
10130         IShellItem2* This,
10131         IBindCtx *pbc);
10132 
10133     HRESULT (STDMETHODCALLTYPE *GetProperty)(
10134         IShellItem2* This,
10135         REFPROPERTYKEY key,
10136         PROPVARIANT *ppropvar);
10137 
10138     HRESULT (STDMETHODCALLTYPE *GetCLSID)(
10139         IShellItem2* This,
10140         REFPROPERTYKEY key,
10141         CLSID *pclsid);
10142 
10143     HRESULT (STDMETHODCALLTYPE *GetFileTime)(
10144         IShellItem2* This,
10145         REFPROPERTYKEY key,
10146         FILETIME *pft);
10147 
10148     HRESULT (STDMETHODCALLTYPE *GetInt32)(
10149         IShellItem2* This,
10150         REFPROPERTYKEY key,
10151         int *pi);
10152 
10153     HRESULT (STDMETHODCALLTYPE *GetString)(
10154         IShellItem2* This,
10155         REFPROPERTYKEY key,
10156         LPWSTR *ppsz);
10157 
10158     HRESULT (STDMETHODCALLTYPE *GetUInt32)(
10159         IShellItem2* This,
10160         REFPROPERTYKEY key,
10161         ULONG *pui);
10162 
10163     HRESULT (STDMETHODCALLTYPE *GetUInt64)(
10164         IShellItem2* This,
10165         REFPROPERTYKEY key,
10166         ULONGLONG *pull);
10167 
10168     HRESULT (STDMETHODCALLTYPE *GetBool)(
10169         IShellItem2* This,
10170         REFPROPERTYKEY key,
10171         WINBOOL *pf);
10172 
10173     END_INTERFACE
10174 } IShellItem2Vtbl;
10175 interface IShellItem2 {
10176     CONST_VTBL IShellItem2Vtbl* lpVtbl;
10177 };
10178 
10179 #ifdef COBJMACROS
10180 #ifndef WIDL_C_INLINE_WRAPPERS
10181 /*** IUnknown methods ***/
10182 #define IShellItem2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10183 #define IShellItem2_AddRef(This) (This)->lpVtbl->AddRef(This)
10184 #define IShellItem2_Release(This) (This)->lpVtbl->Release(This)
10185 /*** IShellItem methods ***/
10186 #define IShellItem2_BindToHandler(This,pbc,bhid,riid,ppv) (This)->lpVtbl->BindToHandler(This,pbc,bhid,riid,ppv)
10187 #define IShellItem2_GetParent(This,ppsi) (This)->lpVtbl->GetParent(This,ppsi)
10188 #define IShellItem2_GetDisplayName(This,sigdnName,ppszName) (This)->lpVtbl->GetDisplayName(This,sigdnName,ppszName)
10189 #define IShellItem2_GetAttributes(This,sfgaoMask,psfgaoAttribs) (This)->lpVtbl->GetAttributes(This,sfgaoMask,psfgaoAttribs)
10190 #define IShellItem2_Compare(This,psi,hint,piOrder) (This)->lpVtbl->Compare(This,psi,hint,piOrder)
10191 /*** IShellItem2 methods ***/
10192 #define IShellItem2_GetPropertyStore(This,flags,riid,ppv) (This)->lpVtbl->GetPropertyStore(This,flags,riid,ppv)
10193 #define IShellItem2_GetPropertyStoreWithCreateObject(This,flags,punkCreateObject,riid,ppv) (This)->lpVtbl->GetPropertyStoreWithCreateObject(This,flags,punkCreateObject,riid,ppv)
10194 #define IShellItem2_GetPropertyStoreForKeys(This,rgKeys,cKeys,flags,riid,ppv) (This)->lpVtbl->GetPropertyStoreForKeys(This,rgKeys,cKeys,flags,riid,ppv)
10195 #define IShellItem2_GetPropertyDescriptionList(This,keyType,riid,ppv) (This)->lpVtbl->GetPropertyDescriptionList(This,keyType,riid,ppv)
10196 #define IShellItem2_Update(This,pbc) (This)->lpVtbl->Update(This,pbc)
10197 #define IShellItem2_GetProperty(This,key,ppropvar) (This)->lpVtbl->GetProperty(This,key,ppropvar)
10198 #define IShellItem2_GetCLSID(This,key,pclsid) (This)->lpVtbl->GetCLSID(This,key,pclsid)
10199 #define IShellItem2_GetFileTime(This,key,pft) (This)->lpVtbl->GetFileTime(This,key,pft)
10200 #define IShellItem2_GetInt32(This,key,pi) (This)->lpVtbl->GetInt32(This,key,pi)
10201 #define IShellItem2_GetString(This,key,ppsz) (This)->lpVtbl->GetString(This,key,ppsz)
10202 #define IShellItem2_GetUInt32(This,key,pui) (This)->lpVtbl->GetUInt32(This,key,pui)
10203 #define IShellItem2_GetUInt64(This,key,pull) (This)->lpVtbl->GetUInt64(This,key,pull)
10204 #define IShellItem2_GetBool(This,key,pf) (This)->lpVtbl->GetBool(This,key,pf)
10205 #else
10206 /*** IUnknown methods ***/
10207 static FORCEINLINE HRESULT IShellItem2_QueryInterface(IShellItem2* This,REFIID riid,void **ppvObject) {
10208     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10209 }
10210 static FORCEINLINE ULONG IShellItem2_AddRef(IShellItem2* This) {
10211     return This->lpVtbl->AddRef(This);
10212 }
10213 static FORCEINLINE ULONG IShellItem2_Release(IShellItem2* This) {
10214     return This->lpVtbl->Release(This);
10215 }
10216 /*** IShellItem methods ***/
10217 static FORCEINLINE HRESULT IShellItem2_BindToHandler(IShellItem2* This,IBindCtx *pbc,REFGUID bhid,REFIID riid,void **ppv) {
10218     return This->lpVtbl->BindToHandler(This,pbc,bhid,riid,ppv);
10219 }
10220 static FORCEINLINE HRESULT IShellItem2_GetParent(IShellItem2* This,IShellItem **ppsi) {
10221     return This->lpVtbl->GetParent(This,ppsi);
10222 }
10223 static FORCEINLINE HRESULT IShellItem2_GetDisplayName(IShellItem2* This,SIGDN sigdnName,LPWSTR *ppszName) {
10224     return This->lpVtbl->GetDisplayName(This,sigdnName,ppszName);
10225 }
10226 static FORCEINLINE HRESULT IShellItem2_GetAttributes(IShellItem2* This,SFGAOF sfgaoMask,SFGAOF *psfgaoAttribs) {
10227     return This->lpVtbl->GetAttributes(This,sfgaoMask,psfgaoAttribs);
10228 }
10229 static FORCEINLINE HRESULT IShellItem2_Compare(IShellItem2* This,IShellItem *psi,SICHINTF hint,int *piOrder) {
10230     return This->lpVtbl->Compare(This,psi,hint,piOrder);
10231 }
10232 /*** IShellItem2 methods ***/
10233 static FORCEINLINE HRESULT IShellItem2_GetPropertyStore(IShellItem2* This,GETPROPERTYSTOREFLAGS flags,REFIID riid,void **ppv) {
10234     return This->lpVtbl->GetPropertyStore(This,flags,riid,ppv);
10235 }
10236 static FORCEINLINE HRESULT IShellItem2_GetPropertyStoreWithCreateObject(IShellItem2* This,GETPROPERTYSTOREFLAGS flags,IUnknown *punkCreateObject,REFIID riid,void **ppv) {
10237     return This->lpVtbl->GetPropertyStoreWithCreateObject(This,flags,punkCreateObject,riid,ppv);
10238 }
10239 static FORCEINLINE HRESULT IShellItem2_GetPropertyStoreForKeys(IShellItem2* This,const PROPERTYKEY *rgKeys,UINT cKeys,GETPROPERTYSTOREFLAGS flags,REFIID riid,void **ppv) {
10240     return This->lpVtbl->GetPropertyStoreForKeys(This,rgKeys,cKeys,flags,riid,ppv);
10241 }
10242 static FORCEINLINE HRESULT IShellItem2_GetPropertyDescriptionList(IShellItem2* This,REFPROPERTYKEY keyType,REFIID riid,void **ppv) {
10243     return This->lpVtbl->GetPropertyDescriptionList(This,keyType,riid,ppv);
10244 }
10245 static FORCEINLINE HRESULT IShellItem2_Update(IShellItem2* This,IBindCtx *pbc) {
10246     return This->lpVtbl->Update(This,pbc);
10247 }
10248 static FORCEINLINE HRESULT IShellItem2_GetProperty(IShellItem2* This,REFPROPERTYKEY key,PROPVARIANT *ppropvar) {
10249     return This->lpVtbl->GetProperty(This,key,ppropvar);
10250 }
10251 static FORCEINLINE HRESULT IShellItem2_GetCLSID(IShellItem2* This,REFPROPERTYKEY key,CLSID *pclsid) {
10252     return This->lpVtbl->GetCLSID(This,key,pclsid);
10253 }
10254 static FORCEINLINE HRESULT IShellItem2_GetFileTime(IShellItem2* This,REFPROPERTYKEY key,FILETIME *pft) {
10255     return This->lpVtbl->GetFileTime(This,key,pft);
10256 }
10257 static FORCEINLINE HRESULT IShellItem2_GetInt32(IShellItem2* This,REFPROPERTYKEY key,int *pi) {
10258     return This->lpVtbl->GetInt32(This,key,pi);
10259 }
10260 static FORCEINLINE HRESULT IShellItem2_GetString(IShellItem2* This,REFPROPERTYKEY key,LPWSTR *ppsz) {
10261     return This->lpVtbl->GetString(This,key,ppsz);
10262 }
10263 static FORCEINLINE HRESULT IShellItem2_GetUInt32(IShellItem2* This,REFPROPERTYKEY key,ULONG *pui) {
10264     return This->lpVtbl->GetUInt32(This,key,pui);
10265 }
10266 static FORCEINLINE HRESULT IShellItem2_GetUInt64(IShellItem2* This,REFPROPERTYKEY key,ULONGLONG *pull) {
10267     return This->lpVtbl->GetUInt64(This,key,pull);
10268 }
10269 static FORCEINLINE HRESULT IShellItem2_GetBool(IShellItem2* This,REFPROPERTYKEY key,WINBOOL *pf) {
10270     return This->lpVtbl->GetBool(This,key,pf);
10271 }
10272 #endif
10273 #endif
10274 
10275 #endif
10276 
10277 HRESULT STDMETHODCALLTYPE IShellItem2_GetPropertyStore_Proxy(
10278     IShellItem2* This,
10279     GETPROPERTYSTOREFLAGS flags,
10280     REFIID riid,
10281     void **ppv);
10282 void __RPC_STUB IShellItem2_GetPropertyStore_Stub(
10283     IRpcStubBuffer* This,
10284     IRpcChannelBuffer* pRpcChannelBuffer,
10285     PRPC_MESSAGE pRpcMessage,
10286     DWORD* pdwStubPhase);
10287 HRESULT STDMETHODCALLTYPE IShellItem2_GetPropertyStoreWithCreateObject_Proxy(
10288     IShellItem2* This,
10289     GETPROPERTYSTOREFLAGS flags,
10290     IUnknown *punkCreateObject,
10291     REFIID riid,
10292     void **ppv);
10293 void __RPC_STUB IShellItem2_GetPropertyStoreWithCreateObject_Stub(
10294     IRpcStubBuffer* This,
10295     IRpcChannelBuffer* pRpcChannelBuffer,
10296     PRPC_MESSAGE pRpcMessage,
10297     DWORD* pdwStubPhase);
10298 HRESULT STDMETHODCALLTYPE IShellItem2_GetPropertyStoreForKeys_Proxy(
10299     IShellItem2* This,
10300     const PROPERTYKEY *rgKeys,
10301     UINT cKeys,
10302     GETPROPERTYSTOREFLAGS flags,
10303     REFIID riid,
10304     void **ppv);
10305 void __RPC_STUB IShellItem2_GetPropertyStoreForKeys_Stub(
10306     IRpcStubBuffer* This,
10307     IRpcChannelBuffer* pRpcChannelBuffer,
10308     PRPC_MESSAGE pRpcMessage,
10309     DWORD* pdwStubPhase);
10310 HRESULT STDMETHODCALLTYPE IShellItem2_GetPropertyDescriptionList_Proxy(
10311     IShellItem2* This,
10312     REFPROPERTYKEY keyType,
10313     REFIID riid,
10314     void **ppv);
10315 void __RPC_STUB IShellItem2_GetPropertyDescriptionList_Stub(
10316     IRpcStubBuffer* This,
10317     IRpcChannelBuffer* pRpcChannelBuffer,
10318     PRPC_MESSAGE pRpcMessage,
10319     DWORD* pdwStubPhase);
10320 HRESULT STDMETHODCALLTYPE IShellItem2_Update_Proxy(
10321     IShellItem2* This,
10322     IBindCtx *pbc);
10323 void __RPC_STUB IShellItem2_Update_Stub(
10324     IRpcStubBuffer* This,
10325     IRpcChannelBuffer* pRpcChannelBuffer,
10326     PRPC_MESSAGE pRpcMessage,
10327     DWORD* pdwStubPhase);
10328 HRESULT STDMETHODCALLTYPE IShellItem2_GetProperty_Proxy(
10329     IShellItem2* This,
10330     REFPROPERTYKEY key,
10331     PROPVARIANT *ppropvar);
10332 void __RPC_STUB IShellItem2_GetProperty_Stub(
10333     IRpcStubBuffer* This,
10334     IRpcChannelBuffer* pRpcChannelBuffer,
10335     PRPC_MESSAGE pRpcMessage,
10336     DWORD* pdwStubPhase);
10337 HRESULT STDMETHODCALLTYPE IShellItem2_GetCLSID_Proxy(
10338     IShellItem2* This,
10339     REFPROPERTYKEY key,
10340     CLSID *pclsid);
10341 void __RPC_STUB IShellItem2_GetCLSID_Stub(
10342     IRpcStubBuffer* This,
10343     IRpcChannelBuffer* pRpcChannelBuffer,
10344     PRPC_MESSAGE pRpcMessage,
10345     DWORD* pdwStubPhase);
10346 HRESULT STDMETHODCALLTYPE IShellItem2_GetFileTime_Proxy(
10347     IShellItem2* This,
10348     REFPROPERTYKEY key,
10349     FILETIME *pft);
10350 void __RPC_STUB IShellItem2_GetFileTime_Stub(
10351     IRpcStubBuffer* This,
10352     IRpcChannelBuffer* pRpcChannelBuffer,
10353     PRPC_MESSAGE pRpcMessage,
10354     DWORD* pdwStubPhase);
10355 HRESULT STDMETHODCALLTYPE IShellItem2_GetInt32_Proxy(
10356     IShellItem2* This,
10357     REFPROPERTYKEY key,
10358     int *pi);
10359 void __RPC_STUB IShellItem2_GetInt32_Stub(
10360     IRpcStubBuffer* This,
10361     IRpcChannelBuffer* pRpcChannelBuffer,
10362     PRPC_MESSAGE pRpcMessage,
10363     DWORD* pdwStubPhase);
10364 HRESULT STDMETHODCALLTYPE IShellItem2_GetString_Proxy(
10365     IShellItem2* This,
10366     REFPROPERTYKEY key,
10367     LPWSTR *ppsz);
10368 void __RPC_STUB IShellItem2_GetString_Stub(
10369     IRpcStubBuffer* This,
10370     IRpcChannelBuffer* pRpcChannelBuffer,
10371     PRPC_MESSAGE pRpcMessage,
10372     DWORD* pdwStubPhase);
10373 HRESULT STDMETHODCALLTYPE IShellItem2_GetUInt32_Proxy(
10374     IShellItem2* This,
10375     REFPROPERTYKEY key,
10376     ULONG *pui);
10377 void __RPC_STUB IShellItem2_GetUInt32_Stub(
10378     IRpcStubBuffer* This,
10379     IRpcChannelBuffer* pRpcChannelBuffer,
10380     PRPC_MESSAGE pRpcMessage,
10381     DWORD* pdwStubPhase);
10382 HRESULT STDMETHODCALLTYPE IShellItem2_GetUInt64_Proxy(
10383     IShellItem2* This,
10384     REFPROPERTYKEY key,
10385     ULONGLONG *pull);
10386 void __RPC_STUB IShellItem2_GetUInt64_Stub(
10387     IRpcStubBuffer* This,
10388     IRpcChannelBuffer* pRpcChannelBuffer,
10389     PRPC_MESSAGE pRpcMessage,
10390     DWORD* pdwStubPhase);
10391 HRESULT STDMETHODCALLTYPE IShellItem2_GetBool_Proxy(
10392     IShellItem2* This,
10393     REFPROPERTYKEY key,
10394     WINBOOL *pf);
10395 void __RPC_STUB IShellItem2_GetBool_Stub(
10396     IRpcStubBuffer* This,
10397     IRpcChannelBuffer* pRpcChannelBuffer,
10398     PRPC_MESSAGE pRpcMessage,
10399     DWORD* pdwStubPhase);
10400 
10401 #endif  /* __IShellItem2_INTERFACE_DEFINED__ */
10402 
10403 
10404 enum _SIIGBF {
10405     SIIGBF_RESIZETOFIT = 0x0,
10406     SIIGBF_BIGGERSIZEOK = 0x1,
10407     SIIGBF_MEMORYONLY = 0x2,
10408     SIIGBF_ICONONLY = 0x4,
10409     SIIGBF_THUMBNAILONLY = 0x8,
10410     SIIGBF_INCACHEONLY = 0x10,
10411     SIIGBF_CROPTOSQUARE = 0x20,
10412     SIIGBF_WIDETHUMBNAILS = 0x40,
10413     SIIGBF_ICONBACKGROUND = 0x80,
10414     SIIGBF_SCALEUP = 0x100
10415 };
10416 
10417 
10418 typedef int SIIGBF;
10419 
10420 /*****************************************************************************
10421  * IShellItemImageFactory interface
10422  */
10423 #ifndef __IShellItemImageFactory_INTERFACE_DEFINED__
10424 #define __IShellItemImageFactory_INTERFACE_DEFINED__
10425 
10426 DEFINE_GUID(IID_IShellItemImageFactory, 0xbcc18b79, 0xba16, 0x442f, 0x80,0xc4, 0x8a,0x59,0xc3,0x0c,0x46,0x3b);
10427 #if defined(__cplusplus) && !defined(CINTERFACE)
10428 MIDL_INTERFACE("bcc18b79-ba16-442f-80c4-8a59c30c463b")
10429 IShellItemImageFactory : public IUnknown
10430 {
10431     virtual HRESULT STDMETHODCALLTYPE GetImage(
10432         SIZE size,
10433         SIIGBF flags,
10434         HBITMAP *phbm) = 0;
10435 
10436 };
10437 #ifdef __CRT_UUID_DECL
10438 __CRT_UUID_DECL(IShellItemImageFactory, 0xbcc18b79, 0xba16, 0x442f, 0x80,0xc4, 0x8a,0x59,0xc3,0x0c,0x46,0x3b)
10439 #endif
10440 #else
10441 typedef struct IShellItemImageFactoryVtbl {
10442     BEGIN_INTERFACE
10443 
10444     /*** IUnknown methods ***/
10445     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10446         IShellItemImageFactory* This,
10447         REFIID riid,
10448         void **ppvObject);
10449 
10450     ULONG (STDMETHODCALLTYPE *AddRef)(
10451         IShellItemImageFactory* This);
10452 
10453     ULONG (STDMETHODCALLTYPE *Release)(
10454         IShellItemImageFactory* This);
10455 
10456     /*** IShellItemImageFactory methods ***/
10457     HRESULT (STDMETHODCALLTYPE *GetImage)(
10458         IShellItemImageFactory* This,
10459         SIZE size,
10460         SIIGBF flags,
10461         HBITMAP *phbm);
10462 
10463     END_INTERFACE
10464 } IShellItemImageFactoryVtbl;
10465 interface IShellItemImageFactory {
10466     CONST_VTBL IShellItemImageFactoryVtbl* lpVtbl;
10467 };
10468 
10469 #ifdef COBJMACROS
10470 #ifndef WIDL_C_INLINE_WRAPPERS
10471 /*** IUnknown methods ***/
10472 #define IShellItemImageFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10473 #define IShellItemImageFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
10474 #define IShellItemImageFactory_Release(This) (This)->lpVtbl->Release(This)
10475 /*** IShellItemImageFactory methods ***/
10476 #define IShellItemImageFactory_GetImage(This,size,flags,phbm) (This)->lpVtbl->GetImage(This,size,flags,phbm)
10477 #else
10478 /*** IUnknown methods ***/
10479 static FORCEINLINE HRESULT IShellItemImageFactory_QueryInterface(IShellItemImageFactory* This,REFIID riid,void **ppvObject) {
10480     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10481 }
10482 static FORCEINLINE ULONG IShellItemImageFactory_AddRef(IShellItemImageFactory* This) {
10483     return This->lpVtbl->AddRef(This);
10484 }
10485 static FORCEINLINE ULONG IShellItemImageFactory_Release(IShellItemImageFactory* This) {
10486     return This->lpVtbl->Release(This);
10487 }
10488 /*** IShellItemImageFactory methods ***/
10489 static FORCEINLINE HRESULT IShellItemImageFactory_GetImage(IShellItemImageFactory* This,SIZE size,SIIGBF flags,HBITMAP *phbm) {
10490     return This->lpVtbl->GetImage(This,size,flags,phbm);
10491 }
10492 #endif
10493 #endif
10494 
10495 #endif
10496 
10497 HRESULT STDMETHODCALLTYPE IShellItemImageFactory_GetImage_Proxy(
10498     IShellItemImageFactory* This,
10499     SIZE size,
10500     SIIGBF flags,
10501     HBITMAP *phbm);
10502 void __RPC_STUB IShellItemImageFactory_GetImage_Stub(
10503     IRpcStubBuffer* This,
10504     IRpcChannelBuffer* pRpcChannelBuffer,
10505     PRPC_MESSAGE pRpcMessage,
10506     DWORD* pdwStubPhase);
10507 
10508 #endif  /* __IShellItemImageFactory_INTERFACE_DEFINED__ */
10509 
10510 
10511 /*****************************************************************************
10512  * IUserAccountChangeCallback interface
10513  */
10514 #ifndef __IUserAccountChangeCallback_INTERFACE_DEFINED__
10515 #define __IUserAccountChangeCallback_INTERFACE_DEFINED__
10516 
10517 DEFINE_GUID(IID_IUserAccountChangeCallback, 0xa561e69a, 0xb4b8, 0x4113, 0x91,0xa5, 0x64,0xc6,0xbc,0xca,0x34,0x30);
10518 #if defined(__cplusplus) && !defined(CINTERFACE)
10519 MIDL_INTERFACE("a561e69a-b4b8-4113-91a5-64c6bcca3430")
10520 IUserAccountChangeCallback : public IUnknown
10521 {
10522     virtual HRESULT STDMETHODCALLTYPE OnPictureChange(
10523         LPCWSTR pszUserName) = 0;
10524 
10525 };
10526 #ifdef __CRT_UUID_DECL
10527 __CRT_UUID_DECL(IUserAccountChangeCallback, 0xa561e69a, 0xb4b8, 0x4113, 0x91,0xa5, 0x64,0xc6,0xbc,0xca,0x34,0x30)
10528 #endif
10529 #else
10530 typedef struct IUserAccountChangeCallbackVtbl {
10531     BEGIN_INTERFACE
10532 
10533     /*** IUnknown methods ***/
10534     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10535         IUserAccountChangeCallback* This,
10536         REFIID riid,
10537         void **ppvObject);
10538 
10539     ULONG (STDMETHODCALLTYPE *AddRef)(
10540         IUserAccountChangeCallback* This);
10541 
10542     ULONG (STDMETHODCALLTYPE *Release)(
10543         IUserAccountChangeCallback* This);
10544 
10545     /*** IUserAccountChangeCallback methods ***/
10546     HRESULT (STDMETHODCALLTYPE *OnPictureChange)(
10547         IUserAccountChangeCallback* This,
10548         LPCWSTR pszUserName);
10549 
10550     END_INTERFACE
10551 } IUserAccountChangeCallbackVtbl;
10552 interface IUserAccountChangeCallback {
10553     CONST_VTBL IUserAccountChangeCallbackVtbl* lpVtbl;
10554 };
10555 
10556 #ifdef COBJMACROS
10557 #ifndef WIDL_C_INLINE_WRAPPERS
10558 /*** IUnknown methods ***/
10559 #define IUserAccountChangeCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10560 #define IUserAccountChangeCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
10561 #define IUserAccountChangeCallback_Release(This) (This)->lpVtbl->Release(This)
10562 /*** IUserAccountChangeCallback methods ***/
10563 #define IUserAccountChangeCallback_OnPictureChange(This,pszUserName) (This)->lpVtbl->OnPictureChange(This,pszUserName)
10564 #else
10565 /*** IUnknown methods ***/
10566 static FORCEINLINE HRESULT IUserAccountChangeCallback_QueryInterface(IUserAccountChangeCallback* This,REFIID riid,void **ppvObject) {
10567     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10568 }
10569 static FORCEINLINE ULONG IUserAccountChangeCallback_AddRef(IUserAccountChangeCallback* This) {
10570     return This->lpVtbl->AddRef(This);
10571 }
10572 static FORCEINLINE ULONG IUserAccountChangeCallback_Release(IUserAccountChangeCallback* This) {
10573     return This->lpVtbl->Release(This);
10574 }
10575 /*** IUserAccountChangeCallback methods ***/
10576 static FORCEINLINE HRESULT IUserAccountChangeCallback_OnPictureChange(IUserAccountChangeCallback* This,LPCWSTR pszUserName) {
10577     return This->lpVtbl->OnPictureChange(This,pszUserName);
10578 }
10579 #endif
10580 #endif
10581 
10582 #endif
10583 
10584 HRESULT STDMETHODCALLTYPE IUserAccountChangeCallback_OnPictureChange_Proxy(
10585     IUserAccountChangeCallback* This,
10586     LPCWSTR pszUserName);
10587 void __RPC_STUB IUserAccountChangeCallback_OnPictureChange_Stub(
10588     IRpcStubBuffer* This,
10589     IRpcChannelBuffer* pRpcChannelBuffer,
10590     PRPC_MESSAGE pRpcMessage,
10591     DWORD* pdwStubPhase);
10592 
10593 #endif  /* __IUserAccountChangeCallback_INTERFACE_DEFINED__ */
10594 
10595 
10596 /*****************************************************************************
10597  * IEnumShellItems interface
10598  */
10599 #ifndef __IEnumShellItems_INTERFACE_DEFINED__
10600 #define __IEnumShellItems_INTERFACE_DEFINED__
10601 
10602 DEFINE_GUID(IID_IEnumShellItems, 0x70629033, 0xe363, 0x4a28, 0xa5,0x67, 0x0d,0xb7,0x80,0x06,0xe6,0xd7);
10603 #if defined(__cplusplus) && !defined(CINTERFACE)
10604 MIDL_INTERFACE("70629033-e363-4a28-a567-0db78006e6d7")
10605 IEnumShellItems : public IUnknown
10606 {
10607     virtual HRESULT STDMETHODCALLTYPE Next(
10608         ULONG celt,
10609         IShellItem **rgelt,
10610         ULONG *pceltFetched) = 0;
10611 
10612     virtual HRESULT STDMETHODCALLTYPE Skip(
10613         ULONG celt) = 0;
10614 
10615     virtual HRESULT STDMETHODCALLTYPE Reset(
10616         ) = 0;
10617 
10618     virtual HRESULT STDMETHODCALLTYPE Clone(
10619         IEnumShellItems **ppenum) = 0;
10620 
10621 };
10622 #ifdef __CRT_UUID_DECL
10623 __CRT_UUID_DECL(IEnumShellItems, 0x70629033, 0xe363, 0x4a28, 0xa5,0x67, 0x0d,0xb7,0x80,0x06,0xe6,0xd7)
10624 #endif
10625 #else
10626 typedef struct IEnumShellItemsVtbl {
10627     BEGIN_INTERFACE
10628 
10629     /*** IUnknown methods ***/
10630     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10631         IEnumShellItems* This,
10632         REFIID riid,
10633         void **ppvObject);
10634 
10635     ULONG (STDMETHODCALLTYPE *AddRef)(
10636         IEnumShellItems* This);
10637 
10638     ULONG (STDMETHODCALLTYPE *Release)(
10639         IEnumShellItems* This);
10640 
10641     /*** IEnumShellItems methods ***/
10642     HRESULT (STDMETHODCALLTYPE *Next)(
10643         IEnumShellItems* This,
10644         ULONG celt,
10645         IShellItem **rgelt,
10646         ULONG *pceltFetched);
10647 
10648     HRESULT (STDMETHODCALLTYPE *Skip)(
10649         IEnumShellItems* This,
10650         ULONG celt);
10651 
10652     HRESULT (STDMETHODCALLTYPE *Reset)(
10653         IEnumShellItems* This);
10654 
10655     HRESULT (STDMETHODCALLTYPE *Clone)(
10656         IEnumShellItems* This,
10657         IEnumShellItems **ppenum);
10658 
10659     END_INTERFACE
10660 } IEnumShellItemsVtbl;
10661 interface IEnumShellItems {
10662     CONST_VTBL IEnumShellItemsVtbl* lpVtbl;
10663 };
10664 
10665 #ifdef COBJMACROS
10666 #ifndef WIDL_C_INLINE_WRAPPERS
10667 /*** IUnknown methods ***/
10668 #define IEnumShellItems_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10669 #define IEnumShellItems_AddRef(This) (This)->lpVtbl->AddRef(This)
10670 #define IEnumShellItems_Release(This) (This)->lpVtbl->Release(This)
10671 /*** IEnumShellItems methods ***/
10672 #define IEnumShellItems_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
10673 #define IEnumShellItems_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
10674 #define IEnumShellItems_Reset(This) (This)->lpVtbl->Reset(This)
10675 #define IEnumShellItems_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
10676 #else
10677 /*** IUnknown methods ***/
10678 static FORCEINLINE HRESULT IEnumShellItems_QueryInterface(IEnumShellItems* This,REFIID riid,void **ppvObject) {
10679     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10680 }
10681 static FORCEINLINE ULONG IEnumShellItems_AddRef(IEnumShellItems* This) {
10682     return This->lpVtbl->AddRef(This);
10683 }
10684 static FORCEINLINE ULONG IEnumShellItems_Release(IEnumShellItems* This) {
10685     return This->lpVtbl->Release(This);
10686 }
10687 /*** IEnumShellItems methods ***/
10688 static FORCEINLINE HRESULT IEnumShellItems_Next(IEnumShellItems* This,ULONG celt,IShellItem **rgelt,ULONG *pceltFetched) {
10689     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
10690 }
10691 static FORCEINLINE HRESULT IEnumShellItems_Skip(IEnumShellItems* This,ULONG celt) {
10692     return This->lpVtbl->Skip(This,celt);
10693 }
10694 static FORCEINLINE HRESULT IEnumShellItems_Reset(IEnumShellItems* This) {
10695     return This->lpVtbl->Reset(This);
10696 }
10697 static FORCEINLINE HRESULT IEnumShellItems_Clone(IEnumShellItems* This,IEnumShellItems **ppenum) {
10698     return This->lpVtbl->Clone(This,ppenum);
10699 }
10700 #endif
10701 #endif
10702 
10703 #endif
10704 
10705 HRESULT STDMETHODCALLTYPE IEnumShellItems_RemoteNext_Proxy(
10706     IEnumShellItems* This,
10707     ULONG celt,
10708     IShellItem **rgelt,
10709     ULONG *pceltFetched);
10710 void __RPC_STUB IEnumShellItems_RemoteNext_Stub(
10711     IRpcStubBuffer* This,
10712     IRpcChannelBuffer* pRpcChannelBuffer,
10713     PRPC_MESSAGE pRpcMessage,
10714     DWORD* pdwStubPhase);
10715 HRESULT STDMETHODCALLTYPE IEnumShellItems_Skip_Proxy(
10716     IEnumShellItems* This,
10717     ULONG celt);
10718 void __RPC_STUB IEnumShellItems_Skip_Stub(
10719     IRpcStubBuffer* This,
10720     IRpcChannelBuffer* pRpcChannelBuffer,
10721     PRPC_MESSAGE pRpcMessage,
10722     DWORD* pdwStubPhase);
10723 HRESULT STDMETHODCALLTYPE IEnumShellItems_Reset_Proxy(
10724     IEnumShellItems* This);
10725 void __RPC_STUB IEnumShellItems_Reset_Stub(
10726     IRpcStubBuffer* This,
10727     IRpcChannelBuffer* pRpcChannelBuffer,
10728     PRPC_MESSAGE pRpcMessage,
10729     DWORD* pdwStubPhase);
10730 HRESULT STDMETHODCALLTYPE IEnumShellItems_Clone_Proxy(
10731     IEnumShellItems* This,
10732     IEnumShellItems **ppenum);
10733 void __RPC_STUB IEnumShellItems_Clone_Stub(
10734     IRpcStubBuffer* This,
10735     IRpcChannelBuffer* pRpcChannelBuffer,
10736     PRPC_MESSAGE pRpcMessage,
10737     DWORD* pdwStubPhase);
10738 HRESULT CALLBACK IEnumShellItems_Next_Proxy(
10739     IEnumShellItems* This,
10740     ULONG celt,
10741     IShellItem **rgelt,
10742     ULONG *pceltFetched);
10743 HRESULT __RPC_STUB IEnumShellItems_Next_Stub(
10744     IEnumShellItems* This,
10745     ULONG celt,
10746     IShellItem **rgelt,
10747     ULONG *pceltFetched);
10748 
10749 #endif  /* __IEnumShellItems_INTERFACE_DEFINED__ */
10750 
10751 
10752 typedef GUID STGTRANSCONFIRMATION;
10753 typedef GUID *LPSTGTRANSCONFIRMATION;
10754 
10755 typedef enum STGOP {
10756     STGOP_MOVE = 1,
10757     STGOP_COPY = 2,
10758     STGOP_SYNC = 3,
10759     STGOP_REMOVE = 5,
10760     STGOP_RENAME = 6,
10761     STGOP_APPLYPROPERTIES = 8,
10762     STGOP_NEW = 10
10763 } STGOP;
10764 
10765 enum _TRANSFER_SOURCE_FLAGS {
10766     TSF_NORMAL = 0x0,
10767     TSF_FAIL_EXIST = 0x0,
10768     TSF_RENAME_EXIST = 0x1,
10769     TSF_OVERWRITE_EXIST = 0x2,
10770     TSF_ALLOW_DECRYPTION = 0x4,
10771     TSF_NO_SECURITY = 0x8,
10772     TSF_COPY_CREATION_TIME = 0x10,
10773     TSF_COPY_WRITE_TIME = 0x20,
10774     TSF_USE_FULL_ACCESS = 0x40,
10775     TSF_DELETE_RECYCLE_IF_POSSIBLE = 0x80,
10776     TSF_COPY_HARD_LINK = 0x100,
10777     TSF_COPY_LOCALIZED_NAME = 0x200,
10778     TSF_MOVE_AS_COPY_DELETE = 0x400,
10779     TSF_SUSPEND_SHELLEVENTS = 0x800
10780 };
10781 
10782 
10783 typedef DWORD TRANSFER_SOURCE_FLAGS;
10784 
10785 #if _WIN32_IE >= _WIN32_IE_IE70
10786 /*****************************************************************************
10787  * ITransferAdviseSink interface
10788  */
10789 #ifndef __ITransferAdviseSink_INTERFACE_DEFINED__
10790 #define __ITransferAdviseSink_INTERFACE_DEFINED__
10791 
10792 enum _TRANSFER_ADVISE_STATE {
10793     TS_NONE = 0x0,
10794     TS_PERFORMING = 0x1,
10795     TS_PREPARING = 0x2,
10796     TS_INDETERMINATE = 0x4
10797 };
10798 
10799 
10800 typedef DWORD TRANSFER_ADVISE_STATE;
10801 
10802 DEFINE_GUID(IID_ITransferAdviseSink, 0xd594d0d8, 0x8da7, 0x457b, 0xb3,0xb4, 0xce,0x5d,0xba,0xac,0x0b,0x88);
10803 #if defined(__cplusplus) && !defined(CINTERFACE)
10804 MIDL_INTERFACE("d594d0d8-8da7-457b-b3b4-ce5dbaac0b88")
10805 ITransferAdviseSink : public IUnknown
10806 {
10807     virtual HRESULT STDMETHODCALLTYPE UpdateProgress(
10808         ULONGLONG ullSizeCurrent,
10809         ULONGLONG ullSizeTotal,
10810         int nFilesCurrent,
10811         int nFilesTotal,
10812         int nFoldersCurrent,
10813         int nFoldersTotal) = 0;
10814 
10815     virtual HRESULT STDMETHODCALLTYPE UpdateTransferState(
10816         TRANSFER_ADVISE_STATE ts) = 0;
10817 
10818     virtual HRESULT STDMETHODCALLTYPE ConfirmOverwrite(
10819         IShellItem *psiSource,
10820         IShellItem *psiDestParent,
10821         LPCWSTR pszName) = 0;
10822 
10823     virtual HRESULT STDMETHODCALLTYPE ConfirmEncryptionLoss(
10824         IShellItem *psiSource) = 0;
10825 
10826     virtual HRESULT STDMETHODCALLTYPE FileFailure(
10827         IShellItem *psi,
10828         LPCWSTR pszItem,
10829         HRESULT hrError,
10830         LPWSTR pszRename,
10831         ULONG cchRename) = 0;
10832 
10833     virtual HRESULT STDMETHODCALLTYPE SubStreamFailure(
10834         IShellItem *psi,
10835         LPCWSTR pszStreamName,
10836         HRESULT hrError) = 0;
10837 
10838     virtual HRESULT STDMETHODCALLTYPE PropertyFailure(
10839         IShellItem *psi,
10840         const PROPERTYKEY *pkey,
10841         HRESULT hrError) = 0;
10842 
10843 };
10844 #ifdef __CRT_UUID_DECL
10845 __CRT_UUID_DECL(ITransferAdviseSink, 0xd594d0d8, 0x8da7, 0x457b, 0xb3,0xb4, 0xce,0x5d,0xba,0xac,0x0b,0x88)
10846 #endif
10847 #else
10848 typedef struct ITransferAdviseSinkVtbl {
10849     BEGIN_INTERFACE
10850 
10851     /*** IUnknown methods ***/
10852     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10853         ITransferAdviseSink* This,
10854         REFIID riid,
10855         void **ppvObject);
10856 
10857     ULONG (STDMETHODCALLTYPE *AddRef)(
10858         ITransferAdviseSink* This);
10859 
10860     ULONG (STDMETHODCALLTYPE *Release)(
10861         ITransferAdviseSink* This);
10862 
10863     /*** ITransferAdviseSink methods ***/
10864     HRESULT (STDMETHODCALLTYPE *UpdateProgress)(
10865         ITransferAdviseSink* This,
10866         ULONGLONG ullSizeCurrent,
10867         ULONGLONG ullSizeTotal,
10868         int nFilesCurrent,
10869         int nFilesTotal,
10870         int nFoldersCurrent,
10871         int nFoldersTotal);
10872 
10873     HRESULT (STDMETHODCALLTYPE *UpdateTransferState)(
10874         ITransferAdviseSink* This,
10875         TRANSFER_ADVISE_STATE ts);
10876 
10877     HRESULT (STDMETHODCALLTYPE *ConfirmOverwrite)(
10878         ITransferAdviseSink* This,
10879         IShellItem *psiSource,
10880         IShellItem *psiDestParent,
10881         LPCWSTR pszName);
10882 
10883     HRESULT (STDMETHODCALLTYPE *ConfirmEncryptionLoss)(
10884         ITransferAdviseSink* This,
10885         IShellItem *psiSource);
10886 
10887     HRESULT (STDMETHODCALLTYPE *FileFailure)(
10888         ITransferAdviseSink* This,
10889         IShellItem *psi,
10890         LPCWSTR pszItem,
10891         HRESULT hrError,
10892         LPWSTR pszRename,
10893         ULONG cchRename);
10894 
10895     HRESULT (STDMETHODCALLTYPE *SubStreamFailure)(
10896         ITransferAdviseSink* This,
10897         IShellItem *psi,
10898         LPCWSTR pszStreamName,
10899         HRESULT hrError);
10900 
10901     HRESULT (STDMETHODCALLTYPE *PropertyFailure)(
10902         ITransferAdviseSink* This,
10903         IShellItem *psi,
10904         const PROPERTYKEY *pkey,
10905         HRESULT hrError);
10906 
10907     END_INTERFACE
10908 } ITransferAdviseSinkVtbl;
10909 interface ITransferAdviseSink {
10910     CONST_VTBL ITransferAdviseSinkVtbl* lpVtbl;
10911 };
10912 
10913 #ifdef COBJMACROS
10914 #ifndef WIDL_C_INLINE_WRAPPERS
10915 /*** IUnknown methods ***/
10916 #define ITransferAdviseSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10917 #define ITransferAdviseSink_AddRef(This) (This)->lpVtbl->AddRef(This)
10918 #define ITransferAdviseSink_Release(This) (This)->lpVtbl->Release(This)
10919 /*** ITransferAdviseSink methods ***/
10920 #define ITransferAdviseSink_UpdateProgress(This,ullSizeCurrent,ullSizeTotal,nFilesCurrent,nFilesTotal,nFoldersCurrent,nFoldersTotal) (This)->lpVtbl->UpdateProgress(This,ullSizeCurrent,ullSizeTotal,nFilesCurrent,nFilesTotal,nFoldersCurrent,nFoldersTotal)
10921 #define ITransferAdviseSink_UpdateTransferState(This,ts) (This)->lpVtbl->UpdateTransferState(This,ts)
10922 #define ITransferAdviseSink_ConfirmOverwrite(This,psiSource,psiDestParent,pszName) (This)->lpVtbl->ConfirmOverwrite(This,psiSource,psiDestParent,pszName)
10923 #define ITransferAdviseSink_ConfirmEncryptionLoss(This,psiSource) (This)->lpVtbl->ConfirmEncryptionLoss(This,psiSource)
10924 #define ITransferAdviseSink_FileFailure(This,psi,pszItem,hrError,pszRename,cchRename) (This)->lpVtbl->FileFailure(This,psi,pszItem,hrError,pszRename,cchRename)
10925 #define ITransferAdviseSink_SubStreamFailure(This,psi,pszStreamName,hrError) (This)->lpVtbl->SubStreamFailure(This,psi,pszStreamName,hrError)
10926 #define ITransferAdviseSink_PropertyFailure(This,psi,pkey,hrError) (This)->lpVtbl->PropertyFailure(This,psi,pkey,hrError)
10927 #else
10928 /*** IUnknown methods ***/
10929 static FORCEINLINE HRESULT ITransferAdviseSink_QueryInterface(ITransferAdviseSink* This,REFIID riid,void **ppvObject) {
10930     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10931 }
10932 static FORCEINLINE ULONG ITransferAdviseSink_AddRef(ITransferAdviseSink* This) {
10933     return This->lpVtbl->AddRef(This);
10934 }
10935 static FORCEINLINE ULONG ITransferAdviseSink_Release(ITransferAdviseSink* This) {
10936     return This->lpVtbl->Release(This);
10937 }
10938 /*** ITransferAdviseSink methods ***/
10939 static FORCEINLINE HRESULT ITransferAdviseSink_UpdateProgress(ITransferAdviseSink* This,ULONGLONG ullSizeCurrent,ULONGLONG ullSizeTotal,int nFilesCurrent,int nFilesTotal,int nFoldersCurrent,int nFoldersTotal) {
10940     return This->lpVtbl->UpdateProgress(This,ullSizeCurrent,ullSizeTotal,nFilesCurrent,nFilesTotal,nFoldersCurrent,nFoldersTotal);
10941 }
10942 static FORCEINLINE HRESULT ITransferAdviseSink_UpdateTransferState(ITransferAdviseSink* This,TRANSFER_ADVISE_STATE ts) {
10943     return This->lpVtbl->UpdateTransferState(This,ts);
10944 }
10945 static FORCEINLINE HRESULT ITransferAdviseSink_ConfirmOverwrite(ITransferAdviseSink* This,IShellItem *psiSource,IShellItem *psiDestParent,LPCWSTR pszName) {
10946     return This->lpVtbl->ConfirmOverwrite(This,psiSource,psiDestParent,pszName);
10947 }
10948 static FORCEINLINE HRESULT ITransferAdviseSink_ConfirmEncryptionLoss(ITransferAdviseSink* This,IShellItem *psiSource) {
10949     return This->lpVtbl->ConfirmEncryptionLoss(This,psiSource);
10950 }
10951 static FORCEINLINE HRESULT ITransferAdviseSink_FileFailure(ITransferAdviseSink* This,IShellItem *psi,LPCWSTR pszItem,HRESULT hrError,LPWSTR pszRename,ULONG cchRename) {
10952     return This->lpVtbl->FileFailure(This,psi,pszItem,hrError,pszRename,cchRename);
10953 }
10954 static FORCEINLINE HRESULT ITransferAdviseSink_SubStreamFailure(ITransferAdviseSink* This,IShellItem *psi,LPCWSTR pszStreamName,HRESULT hrError) {
10955     return This->lpVtbl->SubStreamFailure(This,psi,pszStreamName,hrError);
10956 }
10957 static FORCEINLINE HRESULT ITransferAdviseSink_PropertyFailure(ITransferAdviseSink* This,IShellItem *psi,const PROPERTYKEY *pkey,HRESULT hrError) {
10958     return This->lpVtbl->PropertyFailure(This,psi,pkey,hrError);
10959 }
10960 #endif
10961 #endif
10962 
10963 #endif
10964 
10965 HRESULT STDMETHODCALLTYPE ITransferAdviseSink_UpdateProgress_Proxy(
10966     ITransferAdviseSink* This,
10967     ULONGLONG ullSizeCurrent,
10968     ULONGLONG ullSizeTotal,
10969     int nFilesCurrent,
10970     int nFilesTotal,
10971     int nFoldersCurrent,
10972     int nFoldersTotal);
10973 void __RPC_STUB ITransferAdviseSink_UpdateProgress_Stub(
10974     IRpcStubBuffer* This,
10975     IRpcChannelBuffer* pRpcChannelBuffer,
10976     PRPC_MESSAGE pRpcMessage,
10977     DWORD* pdwStubPhase);
10978 HRESULT STDMETHODCALLTYPE ITransferAdviseSink_UpdateTransferState_Proxy(
10979     ITransferAdviseSink* This,
10980     TRANSFER_ADVISE_STATE ts);
10981 void __RPC_STUB ITransferAdviseSink_UpdateTransferState_Stub(
10982     IRpcStubBuffer* This,
10983     IRpcChannelBuffer* pRpcChannelBuffer,
10984     PRPC_MESSAGE pRpcMessage,
10985     DWORD* pdwStubPhase);
10986 HRESULT STDMETHODCALLTYPE ITransferAdviseSink_ConfirmOverwrite_Proxy(
10987     ITransferAdviseSink* This,
10988     IShellItem *psiSource,
10989     IShellItem *psiDestParent,
10990     LPCWSTR pszName);
10991 void __RPC_STUB ITransferAdviseSink_ConfirmOverwrite_Stub(
10992     IRpcStubBuffer* This,
10993     IRpcChannelBuffer* pRpcChannelBuffer,
10994     PRPC_MESSAGE pRpcMessage,
10995     DWORD* pdwStubPhase);
10996 HRESULT STDMETHODCALLTYPE ITransferAdviseSink_ConfirmEncryptionLoss_Proxy(
10997     ITransferAdviseSink* This,
10998     IShellItem *psiSource);
10999 void __RPC_STUB ITransferAdviseSink_ConfirmEncryptionLoss_Stub(
11000     IRpcStubBuffer* This,
11001     IRpcChannelBuffer* pRpcChannelBuffer,
11002     PRPC_MESSAGE pRpcMessage,
11003     DWORD* pdwStubPhase);
11004 HRESULT STDMETHODCALLTYPE ITransferAdviseSink_FileFailure_Proxy(
11005     ITransferAdviseSink* This,
11006     IShellItem *psi,
11007     LPCWSTR pszItem,
11008     HRESULT hrError,
11009     LPWSTR pszRename,
11010     ULONG cchRename);
11011 void __RPC_STUB ITransferAdviseSink_FileFailure_Stub(
11012     IRpcStubBuffer* This,
11013     IRpcChannelBuffer* pRpcChannelBuffer,
11014     PRPC_MESSAGE pRpcMessage,
11015     DWORD* pdwStubPhase);
11016 HRESULT STDMETHODCALLTYPE ITransferAdviseSink_SubStreamFailure_Proxy(
11017     ITransferAdviseSink* This,
11018     IShellItem *psi,
11019     LPCWSTR pszStreamName,
11020     HRESULT hrError);
11021 void __RPC_STUB ITransferAdviseSink_SubStreamFailure_Stub(
11022     IRpcStubBuffer* This,
11023     IRpcChannelBuffer* pRpcChannelBuffer,
11024     PRPC_MESSAGE pRpcMessage,
11025     DWORD* pdwStubPhase);
11026 HRESULT STDMETHODCALLTYPE ITransferAdviseSink_PropertyFailure_Proxy(
11027     ITransferAdviseSink* This,
11028     IShellItem *psi,
11029     const PROPERTYKEY *pkey,
11030     HRESULT hrError);
11031 void __RPC_STUB ITransferAdviseSink_PropertyFailure_Stub(
11032     IRpcStubBuffer* This,
11033     IRpcChannelBuffer* pRpcChannelBuffer,
11034     PRPC_MESSAGE pRpcMessage,
11035     DWORD* pdwStubPhase);
11036 
11037 #endif  /* __ITransferAdviseSink_INTERFACE_DEFINED__ */
11038 
11039 #endif
11040 
11041 #if NTDDI_VERSION >= NTDDI_VISTA
11042 /*****************************************************************************
11043  * ITransferSource interface
11044  */
11045 #ifndef __ITransferSource_INTERFACE_DEFINED__
11046 #define __ITransferSource_INTERFACE_DEFINED__
11047 
11048 DEFINE_GUID(IID_ITransferSource, 0x00adb003, 0xbde9, 0x45c6, 0x8e,0x29, 0xd0,0x9f,0x93,0x53,0xe1,0x08);
11049 #if defined(__cplusplus) && !defined(CINTERFACE)
11050 MIDL_INTERFACE("00adb003-bde9-45c6-8e29-d09f9353e108")
11051 ITransferSource : public IUnknown
11052 {
11053     virtual HRESULT STDMETHODCALLTYPE Advise(
11054         ITransferAdviseSink *psink,
11055         DWORD *pdwCookie) = 0;
11056 
11057     virtual HRESULT STDMETHODCALLTYPE Unadvise(
11058         DWORD dwCookie) = 0;
11059 
11060     virtual HRESULT STDMETHODCALLTYPE SetProperties(
11061         IPropertyChangeArray *pproparray) = 0;
11062 
11063     virtual HRESULT STDMETHODCALLTYPE OpenItem(
11064         IShellItem *psi,
11065         TRANSFER_SOURCE_FLAGS flags,
11066         REFIID riid,
11067         void **ppv) = 0;
11068 
11069     virtual HRESULT STDMETHODCALLTYPE MoveItem(
11070         IShellItem *psi,
11071         IShellItem *psiParentDst,
11072         LPCWSTR pszNameDst,
11073         TRANSFER_SOURCE_FLAGS flags,
11074         IShellItem **ppsiNew) = 0;
11075 
11076     virtual HRESULT STDMETHODCALLTYPE RecycleItem(
11077         IShellItem *psiSource,
11078         IShellItem *psiParentDest,
11079         TRANSFER_SOURCE_FLAGS flags,
11080         IShellItem **ppsiNewDest) = 0;
11081 
11082     virtual HRESULT STDMETHODCALLTYPE RemoveItem(
11083         IShellItem *psiSource,
11084         TRANSFER_SOURCE_FLAGS flags) = 0;
11085 
11086     virtual HRESULT STDMETHODCALLTYPE RenameItem(
11087         IShellItem *psiSource,
11088         LPCWSTR pszNewName,
11089         TRANSFER_SOURCE_FLAGS flags,
11090         IShellItem **ppsiNewDest) = 0;
11091 
11092     virtual HRESULT STDMETHODCALLTYPE LinkItem(
11093         IShellItem *psiSource,
11094         IShellItem *psiParentDest,
11095         LPCWSTR pszNewName,
11096         TRANSFER_SOURCE_FLAGS flags,
11097         IShellItem **ppsiNewDest) = 0;
11098 
11099     virtual HRESULT STDMETHODCALLTYPE ApplyPropertiesToItem(
11100         IShellItem *psiSource,
11101         IShellItem **ppsiNew) = 0;
11102 
11103     virtual HRESULT STDMETHODCALLTYPE GetDefaultDestinationName(
11104         IShellItem *psiSource,
11105         IShellItem *psiParentDest,
11106         LPWSTR *ppszDestinationName) = 0;
11107 
11108     virtual HRESULT STDMETHODCALLTYPE EnterFolder(
11109         IShellItem *psiChildFolderDest) = 0;
11110 
11111     virtual HRESULT STDMETHODCALLTYPE LeaveFolder(
11112         IShellItem *psiChildFolderDest) = 0;
11113 
11114 };
11115 #ifdef __CRT_UUID_DECL
11116 __CRT_UUID_DECL(ITransferSource, 0x00adb003, 0xbde9, 0x45c6, 0x8e,0x29, 0xd0,0x9f,0x93,0x53,0xe1,0x08)
11117 #endif
11118 #else
11119 typedef struct ITransferSourceVtbl {
11120     BEGIN_INTERFACE
11121 
11122     /*** IUnknown methods ***/
11123     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11124         ITransferSource* This,
11125         REFIID riid,
11126         void **ppvObject);
11127 
11128     ULONG (STDMETHODCALLTYPE *AddRef)(
11129         ITransferSource* This);
11130 
11131     ULONG (STDMETHODCALLTYPE *Release)(
11132         ITransferSource* This);
11133 
11134     /*** ITransferSource methods ***/
11135     HRESULT (STDMETHODCALLTYPE *Advise)(
11136         ITransferSource* This,
11137         ITransferAdviseSink *psink,
11138         DWORD *pdwCookie);
11139 
11140     HRESULT (STDMETHODCALLTYPE *Unadvise)(
11141         ITransferSource* This,
11142         DWORD dwCookie);
11143 
11144     HRESULT (STDMETHODCALLTYPE *SetProperties)(
11145         ITransferSource* This,
11146         IPropertyChangeArray *pproparray);
11147 
11148     HRESULT (STDMETHODCALLTYPE *OpenItem)(
11149         ITransferSource* This,
11150         IShellItem *psi,
11151         TRANSFER_SOURCE_FLAGS flags,
11152         REFIID riid,
11153         void **ppv);
11154 
11155     HRESULT (STDMETHODCALLTYPE *MoveItem)(
11156         ITransferSource* This,
11157         IShellItem *psi,
11158         IShellItem *psiParentDst,
11159         LPCWSTR pszNameDst,
11160         TRANSFER_SOURCE_FLAGS flags,
11161         IShellItem **ppsiNew);
11162 
11163     HRESULT (STDMETHODCALLTYPE *RecycleItem)(
11164         ITransferSource* This,
11165         IShellItem *psiSource,
11166         IShellItem *psiParentDest,
11167         TRANSFER_SOURCE_FLAGS flags,
11168         IShellItem **ppsiNewDest);
11169 
11170     HRESULT (STDMETHODCALLTYPE *RemoveItem)(
11171         ITransferSource* This,
11172         IShellItem *psiSource,
11173         TRANSFER_SOURCE_FLAGS flags);
11174 
11175     HRESULT (STDMETHODCALLTYPE *RenameItem)(
11176         ITransferSource* This,
11177         IShellItem *psiSource,
11178         LPCWSTR pszNewName,
11179         TRANSFER_SOURCE_FLAGS flags,
11180         IShellItem **ppsiNewDest);
11181 
11182     HRESULT (STDMETHODCALLTYPE *LinkItem)(
11183         ITransferSource* This,
11184         IShellItem *psiSource,
11185         IShellItem *psiParentDest,
11186         LPCWSTR pszNewName,
11187         TRANSFER_SOURCE_FLAGS flags,
11188         IShellItem **ppsiNewDest);
11189 
11190     HRESULT (STDMETHODCALLTYPE *ApplyPropertiesToItem)(
11191         ITransferSource* This,
11192         IShellItem *psiSource,
11193         IShellItem **ppsiNew);
11194 
11195     HRESULT (STDMETHODCALLTYPE *GetDefaultDestinationName)(
11196         ITransferSource* This,
11197         IShellItem *psiSource,
11198         IShellItem *psiParentDest,
11199         LPWSTR *ppszDestinationName);
11200 
11201     HRESULT (STDMETHODCALLTYPE *EnterFolder)(
11202         ITransferSource* This,
11203         IShellItem *psiChildFolderDest);
11204 
11205     HRESULT (STDMETHODCALLTYPE *LeaveFolder)(
11206         ITransferSource* This,
11207         IShellItem *psiChildFolderDest);
11208 
11209     END_INTERFACE
11210 } ITransferSourceVtbl;
11211 interface ITransferSource {
11212     CONST_VTBL ITransferSourceVtbl* lpVtbl;
11213 };
11214 
11215 #ifdef COBJMACROS
11216 #ifndef WIDL_C_INLINE_WRAPPERS
11217 /*** IUnknown methods ***/
11218 #define ITransferSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11219 #define ITransferSource_AddRef(This) (This)->lpVtbl->AddRef(This)
11220 #define ITransferSource_Release(This) (This)->lpVtbl->Release(This)
11221 /*** ITransferSource methods ***/
11222 #define ITransferSource_Advise(This,psink,pdwCookie) (This)->lpVtbl->Advise(This,psink,pdwCookie)
11223 #define ITransferSource_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
11224 #define ITransferSource_SetProperties(This,pproparray) (This)->lpVtbl->SetProperties(This,pproparray)
11225 #define ITransferSource_OpenItem(This,psi,flags,riid,ppv) (This)->lpVtbl->OpenItem(This,psi,flags,riid,ppv)
11226 #define ITransferSource_MoveItem(This,psi,psiParentDst,pszNameDst,flags,ppsiNew) (This)->lpVtbl->MoveItem(This,psi,psiParentDst,pszNameDst,flags,ppsiNew)
11227 #define ITransferSource_RecycleItem(This,psiSource,psiParentDest,flags,ppsiNewDest) (This)->lpVtbl->RecycleItem(This,psiSource,psiParentDest,flags,ppsiNewDest)
11228 #define ITransferSource_RemoveItem(This,psiSource,flags) (This)->lpVtbl->RemoveItem(This,psiSource,flags)
11229 #define ITransferSource_RenameItem(This,psiSource,pszNewName,flags,ppsiNewDest) (This)->lpVtbl->RenameItem(This,psiSource,pszNewName,flags,ppsiNewDest)
11230 #define ITransferSource_LinkItem(This,psiSource,psiParentDest,pszNewName,flags,ppsiNewDest) (This)->lpVtbl->LinkItem(This,psiSource,psiParentDest,pszNewName,flags,ppsiNewDest)
11231 #define ITransferSource_ApplyPropertiesToItem(This,psiSource,ppsiNew) (This)->lpVtbl->ApplyPropertiesToItem(This,psiSource,ppsiNew)
11232 #define ITransferSource_GetDefaultDestinationName(This,psiSource,psiParentDest,ppszDestinationName) (This)->lpVtbl->GetDefaultDestinationName(This,psiSource,psiParentDest,ppszDestinationName)
11233 #define ITransferSource_EnterFolder(This,psiChildFolderDest) (This)->lpVtbl->EnterFolder(This,psiChildFolderDest)
11234 #define ITransferSource_LeaveFolder(This,psiChildFolderDest) (This)->lpVtbl->LeaveFolder(This,psiChildFolderDest)
11235 #else
11236 /*** IUnknown methods ***/
11237 static FORCEINLINE HRESULT ITransferSource_QueryInterface(ITransferSource* This,REFIID riid,void **ppvObject) {
11238     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11239 }
11240 static FORCEINLINE ULONG ITransferSource_AddRef(ITransferSource* This) {
11241     return This->lpVtbl->AddRef(This);
11242 }
11243 static FORCEINLINE ULONG ITransferSource_Release(ITransferSource* This) {
11244     return This->lpVtbl->Release(This);
11245 }
11246 /*** ITransferSource methods ***/
11247 static FORCEINLINE HRESULT ITransferSource_Advise(ITransferSource* This,ITransferAdviseSink *psink,DWORD *pdwCookie) {
11248     return This->lpVtbl->Advise(This,psink,pdwCookie);
11249 }
11250 static FORCEINLINE HRESULT ITransferSource_Unadvise(ITransferSource* This,DWORD dwCookie) {
11251     return This->lpVtbl->Unadvise(This,dwCookie);
11252 }
11253 static FORCEINLINE HRESULT ITransferSource_SetProperties(ITransferSource* This,IPropertyChangeArray *pproparray) {
11254     return This->lpVtbl->SetProperties(This,pproparray);
11255 }
11256 static FORCEINLINE HRESULT ITransferSource_OpenItem(ITransferSource* This,IShellItem *psi,TRANSFER_SOURCE_FLAGS flags,REFIID riid,void **ppv) {
11257     return This->lpVtbl->OpenItem(This,psi,flags,riid,ppv);
11258 }
11259 static FORCEINLINE HRESULT ITransferSource_MoveItem(ITransferSource* This,IShellItem *psi,IShellItem *psiParentDst,LPCWSTR pszNameDst,TRANSFER_SOURCE_FLAGS flags,IShellItem **ppsiNew) {
11260     return This->lpVtbl->MoveItem(This,psi,psiParentDst,pszNameDst,flags,ppsiNew);
11261 }
11262 static FORCEINLINE HRESULT ITransferSource_RecycleItem(ITransferSource* This,IShellItem *psiSource,IShellItem *psiParentDest,TRANSFER_SOURCE_FLAGS flags,IShellItem **ppsiNewDest) {
11263     return This->lpVtbl->RecycleItem(This,psiSource,psiParentDest,flags,ppsiNewDest);
11264 }
11265 static FORCEINLINE HRESULT ITransferSource_RemoveItem(ITransferSource* This,IShellItem *psiSource,TRANSFER_SOURCE_FLAGS flags) {
11266     return This->lpVtbl->RemoveItem(This,psiSource,flags);
11267 }
11268 static FORCEINLINE HRESULT ITransferSource_RenameItem(ITransferSource* This,IShellItem *psiSource,LPCWSTR pszNewName,TRANSFER_SOURCE_FLAGS flags,IShellItem **ppsiNewDest) {
11269     return This->lpVtbl->RenameItem(This,psiSource,pszNewName,flags,ppsiNewDest);
11270 }
11271 static FORCEINLINE HRESULT ITransferSource_LinkItem(ITransferSource* This,IShellItem *psiSource,IShellItem *psiParentDest,LPCWSTR pszNewName,TRANSFER_SOURCE_FLAGS flags,IShellItem **ppsiNewDest) {
11272     return This->lpVtbl->LinkItem(This,psiSource,psiParentDest,pszNewName,flags,ppsiNewDest);
11273 }
11274 static FORCEINLINE HRESULT ITransferSource_ApplyPropertiesToItem(ITransferSource* This,IShellItem *psiSource,IShellItem **ppsiNew) {
11275     return This->lpVtbl->ApplyPropertiesToItem(This,psiSource,ppsiNew);
11276 }
11277 static FORCEINLINE HRESULT ITransferSource_GetDefaultDestinationName(ITransferSource* This,IShellItem *psiSource,IShellItem *psiParentDest,LPWSTR *ppszDestinationName) {
11278     return This->lpVtbl->GetDefaultDestinationName(This,psiSource,psiParentDest,ppszDestinationName);
11279 }
11280 static FORCEINLINE HRESULT ITransferSource_EnterFolder(ITransferSource* This,IShellItem *psiChildFolderDest) {
11281     return This->lpVtbl->EnterFolder(This,psiChildFolderDest);
11282 }
11283 static FORCEINLINE HRESULT ITransferSource_LeaveFolder(ITransferSource* This,IShellItem *psiChildFolderDest) {
11284     return This->lpVtbl->LeaveFolder(This,psiChildFolderDest);
11285 }
11286 #endif
11287 #endif
11288 
11289 #endif
11290 
11291 HRESULT STDMETHODCALLTYPE ITransferSource_Advise_Proxy(
11292     ITransferSource* This,
11293     ITransferAdviseSink *psink,
11294     DWORD *pdwCookie);
11295 void __RPC_STUB ITransferSource_Advise_Stub(
11296     IRpcStubBuffer* This,
11297     IRpcChannelBuffer* pRpcChannelBuffer,
11298     PRPC_MESSAGE pRpcMessage,
11299     DWORD* pdwStubPhase);
11300 HRESULT STDMETHODCALLTYPE ITransferSource_Unadvise_Proxy(
11301     ITransferSource* This,
11302     DWORD dwCookie);
11303 void __RPC_STUB ITransferSource_Unadvise_Stub(
11304     IRpcStubBuffer* This,
11305     IRpcChannelBuffer* pRpcChannelBuffer,
11306     PRPC_MESSAGE pRpcMessage,
11307     DWORD* pdwStubPhase);
11308 HRESULT STDMETHODCALLTYPE ITransferSource_SetProperties_Proxy(
11309     ITransferSource* This,
11310     IPropertyChangeArray *pproparray);
11311 void __RPC_STUB ITransferSource_SetProperties_Stub(
11312     IRpcStubBuffer* This,
11313     IRpcChannelBuffer* pRpcChannelBuffer,
11314     PRPC_MESSAGE pRpcMessage,
11315     DWORD* pdwStubPhase);
11316 HRESULT STDMETHODCALLTYPE ITransferSource_OpenItem_Proxy(
11317     ITransferSource* This,
11318     IShellItem *psi,
11319     TRANSFER_SOURCE_FLAGS flags,
11320     REFIID riid,
11321     void **ppv);
11322 void __RPC_STUB ITransferSource_OpenItem_Stub(
11323     IRpcStubBuffer* This,
11324     IRpcChannelBuffer* pRpcChannelBuffer,
11325     PRPC_MESSAGE pRpcMessage,
11326     DWORD* pdwStubPhase);
11327 HRESULT STDMETHODCALLTYPE ITransferSource_MoveItem_Proxy(
11328     ITransferSource* This,
11329     IShellItem *psi,
11330     IShellItem *psiParentDst,
11331     LPCWSTR pszNameDst,
11332     TRANSFER_SOURCE_FLAGS flags,
11333     IShellItem **ppsiNew);
11334 void __RPC_STUB ITransferSource_MoveItem_Stub(
11335     IRpcStubBuffer* This,
11336     IRpcChannelBuffer* pRpcChannelBuffer,
11337     PRPC_MESSAGE pRpcMessage,
11338     DWORD* pdwStubPhase);
11339 HRESULT STDMETHODCALLTYPE ITransferSource_RecycleItem_Proxy(
11340     ITransferSource* This,
11341     IShellItem *psiSource,
11342     IShellItem *psiParentDest,
11343     TRANSFER_SOURCE_FLAGS flags,
11344     IShellItem **ppsiNewDest);
11345 void __RPC_STUB ITransferSource_RecycleItem_Stub(
11346     IRpcStubBuffer* This,
11347     IRpcChannelBuffer* pRpcChannelBuffer,
11348     PRPC_MESSAGE pRpcMessage,
11349     DWORD* pdwStubPhase);
11350 HRESULT STDMETHODCALLTYPE ITransferSource_RemoveItem_Proxy(
11351     ITransferSource* This,
11352     IShellItem *psiSource,
11353     TRANSFER_SOURCE_FLAGS flags);
11354 void __RPC_STUB ITransferSource_RemoveItem_Stub(
11355     IRpcStubBuffer* This,
11356     IRpcChannelBuffer* pRpcChannelBuffer,
11357     PRPC_MESSAGE pRpcMessage,
11358     DWORD* pdwStubPhase);
11359 HRESULT STDMETHODCALLTYPE ITransferSource_RenameItem_Proxy(
11360     ITransferSource* This,
11361     IShellItem *psiSource,
11362     LPCWSTR pszNewName,
11363     TRANSFER_SOURCE_FLAGS flags,
11364     IShellItem **ppsiNewDest);
11365 void __RPC_STUB ITransferSource_RenameItem_Stub(
11366     IRpcStubBuffer* This,
11367     IRpcChannelBuffer* pRpcChannelBuffer,
11368     PRPC_MESSAGE pRpcMessage,
11369     DWORD* pdwStubPhase);
11370 HRESULT STDMETHODCALLTYPE ITransferSource_LinkItem_Proxy(
11371     ITransferSource* This,
11372     IShellItem *psiSource,
11373     IShellItem *psiParentDest,
11374     LPCWSTR pszNewName,
11375     TRANSFER_SOURCE_FLAGS flags,
11376     IShellItem **ppsiNewDest);
11377 void __RPC_STUB ITransferSource_LinkItem_Stub(
11378     IRpcStubBuffer* This,
11379     IRpcChannelBuffer* pRpcChannelBuffer,
11380     PRPC_MESSAGE pRpcMessage,
11381     DWORD* pdwStubPhase);
11382 HRESULT STDMETHODCALLTYPE ITransferSource_ApplyPropertiesToItem_Proxy(
11383     ITransferSource* This,
11384     IShellItem *psiSource,
11385     IShellItem **ppsiNew);
11386 void __RPC_STUB ITransferSource_ApplyPropertiesToItem_Stub(
11387     IRpcStubBuffer* This,
11388     IRpcChannelBuffer* pRpcChannelBuffer,
11389     PRPC_MESSAGE pRpcMessage,
11390     DWORD* pdwStubPhase);
11391 HRESULT STDMETHODCALLTYPE ITransferSource_GetDefaultDestinationName_Proxy(
11392     ITransferSource* This,
11393     IShellItem *psiSource,
11394     IShellItem *psiParentDest,
11395     LPWSTR *ppszDestinationName);
11396 void __RPC_STUB ITransferSource_GetDefaultDestinationName_Stub(
11397     IRpcStubBuffer* This,
11398     IRpcChannelBuffer* pRpcChannelBuffer,
11399     PRPC_MESSAGE pRpcMessage,
11400     DWORD* pdwStubPhase);
11401 HRESULT STDMETHODCALLTYPE ITransferSource_EnterFolder_Proxy(
11402     ITransferSource* This,
11403     IShellItem *psiChildFolderDest);
11404 void __RPC_STUB ITransferSource_EnterFolder_Stub(
11405     IRpcStubBuffer* This,
11406     IRpcChannelBuffer* pRpcChannelBuffer,
11407     PRPC_MESSAGE pRpcMessage,
11408     DWORD* pdwStubPhase);
11409 HRESULT STDMETHODCALLTYPE ITransferSource_LeaveFolder_Proxy(
11410     ITransferSource* This,
11411     IShellItem *psiChildFolderDest);
11412 void __RPC_STUB ITransferSource_LeaveFolder_Stub(
11413     IRpcStubBuffer* This,
11414     IRpcChannelBuffer* pRpcChannelBuffer,
11415     PRPC_MESSAGE pRpcMessage,
11416     DWORD* pdwStubPhase);
11417 
11418 #endif  /* __ITransferSource_INTERFACE_DEFINED__ */
11419 
11420 #endif
11421 
11422 typedef struct SHELL_ITEM_RESOURCE {
11423     GUID guidType;
11424     WCHAR szName[260];
11425 } SHELL_ITEM_RESOURCE;
11426 
11427 /*****************************************************************************
11428  * IEnumResources interface
11429  */
11430 #ifndef __IEnumResources_INTERFACE_DEFINED__
11431 #define __IEnumResources_INTERFACE_DEFINED__
11432 
11433 DEFINE_GUID(IID_IEnumResources, 0x2dd81fe3, 0xa83c, 0x4da9, 0xa3,0x30, 0x47,0x24,0x9d,0x34,0x5b,0xa1);
11434 #if defined(__cplusplus) && !defined(CINTERFACE)
11435 MIDL_INTERFACE("2dd81fe3-a83c-4da9-a330-47249d345ba1")
11436 IEnumResources : public IUnknown
11437 {
11438     virtual HRESULT STDMETHODCALLTYPE Next(
11439         ULONG celt,
11440         SHELL_ITEM_RESOURCE *psir,
11441         ULONG *pceltFetched) = 0;
11442 
11443     virtual HRESULT STDMETHODCALLTYPE Skip(
11444         ULONG celt) = 0;
11445 
11446     virtual HRESULT STDMETHODCALLTYPE Reset(
11447         ) = 0;
11448 
11449     virtual HRESULT STDMETHODCALLTYPE Clone(
11450         IEnumResources **ppenumr) = 0;
11451 
11452 };
11453 #ifdef __CRT_UUID_DECL
11454 __CRT_UUID_DECL(IEnumResources, 0x2dd81fe3, 0xa83c, 0x4da9, 0xa3,0x30, 0x47,0x24,0x9d,0x34,0x5b,0xa1)
11455 #endif
11456 #else
11457 typedef struct IEnumResourcesVtbl {
11458     BEGIN_INTERFACE
11459 
11460     /*** IUnknown methods ***/
11461     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11462         IEnumResources* This,
11463         REFIID riid,
11464         void **ppvObject);
11465 
11466     ULONG (STDMETHODCALLTYPE *AddRef)(
11467         IEnumResources* This);
11468 
11469     ULONG (STDMETHODCALLTYPE *Release)(
11470         IEnumResources* This);
11471 
11472     /*** IEnumResources methods ***/
11473     HRESULT (STDMETHODCALLTYPE *Next)(
11474         IEnumResources* This,
11475         ULONG celt,
11476         SHELL_ITEM_RESOURCE *psir,
11477         ULONG *pceltFetched);
11478 
11479     HRESULT (STDMETHODCALLTYPE *Skip)(
11480         IEnumResources* This,
11481         ULONG celt);
11482 
11483     HRESULT (STDMETHODCALLTYPE *Reset)(
11484         IEnumResources* This);
11485 
11486     HRESULT (STDMETHODCALLTYPE *Clone)(
11487         IEnumResources* This,
11488         IEnumResources **ppenumr);
11489 
11490     END_INTERFACE
11491 } IEnumResourcesVtbl;
11492 interface IEnumResources {
11493     CONST_VTBL IEnumResourcesVtbl* lpVtbl;
11494 };
11495 
11496 #ifdef COBJMACROS
11497 #ifndef WIDL_C_INLINE_WRAPPERS
11498 /*** IUnknown methods ***/
11499 #define IEnumResources_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11500 #define IEnumResources_AddRef(This) (This)->lpVtbl->AddRef(This)
11501 #define IEnumResources_Release(This) (This)->lpVtbl->Release(This)
11502 /*** IEnumResources methods ***/
11503 #define IEnumResources_Next(This,celt,psir,pceltFetched) (This)->lpVtbl->Next(This,celt,psir,pceltFetched)
11504 #define IEnumResources_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
11505 #define IEnumResources_Reset(This) (This)->lpVtbl->Reset(This)
11506 #define IEnumResources_Clone(This,ppenumr) (This)->lpVtbl->Clone(This,ppenumr)
11507 #else
11508 /*** IUnknown methods ***/
11509 static FORCEINLINE HRESULT IEnumResources_QueryInterface(IEnumResources* This,REFIID riid,void **ppvObject) {
11510     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11511 }
11512 static FORCEINLINE ULONG IEnumResources_AddRef(IEnumResources* This) {
11513     return This->lpVtbl->AddRef(This);
11514 }
11515 static FORCEINLINE ULONG IEnumResources_Release(IEnumResources* This) {
11516     return This->lpVtbl->Release(This);
11517 }
11518 /*** IEnumResources methods ***/
11519 static FORCEINLINE HRESULT IEnumResources_Next(IEnumResources* This,ULONG celt,SHELL_ITEM_RESOURCE *psir,ULONG *pceltFetched) {
11520     return This->lpVtbl->Next(This,celt,psir,pceltFetched);
11521 }
11522 static FORCEINLINE HRESULT IEnumResources_Skip(IEnumResources* This,ULONG celt) {
11523     return This->lpVtbl->Skip(This,celt);
11524 }
11525 static FORCEINLINE HRESULT IEnumResources_Reset(IEnumResources* This) {
11526     return This->lpVtbl->Reset(This);
11527 }
11528 static FORCEINLINE HRESULT IEnumResources_Clone(IEnumResources* This,IEnumResources **ppenumr) {
11529     return This->lpVtbl->Clone(This,ppenumr);
11530 }
11531 #endif
11532 #endif
11533 
11534 #endif
11535 
11536 HRESULT STDMETHODCALLTYPE IEnumResources_Next_Proxy(
11537     IEnumResources* This,
11538     ULONG celt,
11539     SHELL_ITEM_RESOURCE *psir,
11540     ULONG *pceltFetched);
11541 void __RPC_STUB IEnumResources_Next_Stub(
11542     IRpcStubBuffer* This,
11543     IRpcChannelBuffer* pRpcChannelBuffer,
11544     PRPC_MESSAGE pRpcMessage,
11545     DWORD* pdwStubPhase);
11546 HRESULT STDMETHODCALLTYPE IEnumResources_Skip_Proxy(
11547     IEnumResources* This,
11548     ULONG celt);
11549 void __RPC_STUB IEnumResources_Skip_Stub(
11550     IRpcStubBuffer* This,
11551     IRpcChannelBuffer* pRpcChannelBuffer,
11552     PRPC_MESSAGE pRpcMessage,
11553     DWORD* pdwStubPhase);
11554 HRESULT STDMETHODCALLTYPE IEnumResources_Reset_Proxy(
11555     IEnumResources* This);
11556 void __RPC_STUB IEnumResources_Reset_Stub(
11557     IRpcStubBuffer* This,
11558     IRpcChannelBuffer* pRpcChannelBuffer,
11559     PRPC_MESSAGE pRpcMessage,
11560     DWORD* pdwStubPhase);
11561 HRESULT STDMETHODCALLTYPE IEnumResources_Clone_Proxy(
11562     IEnumResources* This,
11563     IEnumResources **ppenumr);
11564 void __RPC_STUB IEnumResources_Clone_Stub(
11565     IRpcStubBuffer* This,
11566     IRpcChannelBuffer* pRpcChannelBuffer,
11567     PRPC_MESSAGE pRpcMessage,
11568     DWORD* pdwStubPhase);
11569 
11570 #endif  /* __IEnumResources_INTERFACE_DEFINED__ */
11571 
11572 
11573 /*****************************************************************************
11574  * IShellItemResources interface
11575  */
11576 #ifndef __IShellItemResources_INTERFACE_DEFINED__
11577 #define __IShellItemResources_INTERFACE_DEFINED__
11578 
11579 DEFINE_GUID(IID_IShellItemResources, 0xff5693be, 0x2ce0, 0x4d48, 0xb5,0xc5, 0x40,0x81,0x7d,0x1a,0xcd,0xb9);
11580 #if defined(__cplusplus) && !defined(CINTERFACE)
11581 MIDL_INTERFACE("ff5693be-2ce0-4d48-b5c5-40817d1acdb9")
11582 IShellItemResources : public IUnknown
11583 {
11584     virtual HRESULT STDMETHODCALLTYPE GetAttributes(
11585         DWORD *pdwAttributes) = 0;
11586 
11587     virtual HRESULT STDMETHODCALLTYPE GetSize(
11588         ULONGLONG *pullSize) = 0;
11589 
11590     virtual HRESULT STDMETHODCALLTYPE GetTimes(
11591         FILETIME *pftCreation,
11592         FILETIME *pftWrite,
11593         FILETIME *pftAccess) = 0;
11594 
11595     virtual HRESULT STDMETHODCALLTYPE SetTimes(
11596         const FILETIME *pftCreation,
11597         const FILETIME *pftWrite,
11598         const FILETIME *pftAccess) = 0;
11599 
11600     virtual HRESULT STDMETHODCALLTYPE GetResourceDescription(
11601         const SHELL_ITEM_RESOURCE *pcsir,
11602         LPWSTR *ppszDescription) = 0;
11603 
11604     virtual HRESULT STDMETHODCALLTYPE EnumResources(
11605         IEnumResources **ppenumr) = 0;
11606 
11607     virtual HRESULT STDMETHODCALLTYPE SupportsResource(
11608         const SHELL_ITEM_RESOURCE *pcsir) = 0;
11609 
11610     virtual HRESULT STDMETHODCALLTYPE OpenResource(
11611         const SHELL_ITEM_RESOURCE *pcsir,
11612         REFIID riid,
11613         void **ppv) = 0;
11614 
11615     virtual HRESULT STDMETHODCALLTYPE CreateResource(
11616         const SHELL_ITEM_RESOURCE *pcsir,
11617         REFIID riid,
11618         void **ppv) = 0;
11619 
11620     virtual HRESULT STDMETHODCALLTYPE MarkForDelete(
11621         ) = 0;
11622 
11623 };
11624 #ifdef __CRT_UUID_DECL
11625 __CRT_UUID_DECL(IShellItemResources, 0xff5693be, 0x2ce0, 0x4d48, 0xb5,0xc5, 0x40,0x81,0x7d,0x1a,0xcd,0xb9)
11626 #endif
11627 #else
11628 typedef struct IShellItemResourcesVtbl {
11629     BEGIN_INTERFACE
11630 
11631     /*** IUnknown methods ***/
11632     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11633         IShellItemResources* This,
11634         REFIID riid,
11635         void **ppvObject);
11636 
11637     ULONG (STDMETHODCALLTYPE *AddRef)(
11638         IShellItemResources* This);
11639 
11640     ULONG (STDMETHODCALLTYPE *Release)(
11641         IShellItemResources* This);
11642 
11643     /*** IShellItemResources methods ***/
11644     HRESULT (STDMETHODCALLTYPE *GetAttributes)(
11645         IShellItemResources* This,
11646         DWORD *pdwAttributes);
11647 
11648     HRESULT (STDMETHODCALLTYPE *GetSize)(
11649         IShellItemResources* This,
11650         ULONGLONG *pullSize);
11651 
11652     HRESULT (STDMETHODCALLTYPE *GetTimes)(
11653         IShellItemResources* This,
11654         FILETIME *pftCreation,
11655         FILETIME *pftWrite,
11656         FILETIME *pftAccess);
11657 
11658     HRESULT (STDMETHODCALLTYPE *SetTimes)(
11659         IShellItemResources* This,
11660         const FILETIME *pftCreation,
11661         const FILETIME *pftWrite,
11662         const FILETIME *pftAccess);
11663 
11664     HRESULT (STDMETHODCALLTYPE *GetResourceDescription)(
11665         IShellItemResources* This,
11666         const SHELL_ITEM_RESOURCE *pcsir,
11667         LPWSTR *ppszDescription);
11668 
11669     HRESULT (STDMETHODCALLTYPE *EnumResources)(
11670         IShellItemResources* This,
11671         IEnumResources **ppenumr);
11672 
11673     HRESULT (STDMETHODCALLTYPE *SupportsResource)(
11674         IShellItemResources* This,
11675         const SHELL_ITEM_RESOURCE *pcsir);
11676 
11677     HRESULT (STDMETHODCALLTYPE *OpenResource)(
11678         IShellItemResources* This,
11679         const SHELL_ITEM_RESOURCE *pcsir,
11680         REFIID riid,
11681         void **ppv);
11682 
11683     HRESULT (STDMETHODCALLTYPE *CreateResource)(
11684         IShellItemResources* This,
11685         const SHELL_ITEM_RESOURCE *pcsir,
11686         REFIID riid,
11687         void **ppv);
11688 
11689     HRESULT (STDMETHODCALLTYPE *MarkForDelete)(
11690         IShellItemResources* This);
11691 
11692     END_INTERFACE
11693 } IShellItemResourcesVtbl;
11694 interface IShellItemResources {
11695     CONST_VTBL IShellItemResourcesVtbl* lpVtbl;
11696 };
11697 
11698 #ifdef COBJMACROS
11699 #ifndef WIDL_C_INLINE_WRAPPERS
11700 /*** IUnknown methods ***/
11701 #define IShellItemResources_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11702 #define IShellItemResources_AddRef(This) (This)->lpVtbl->AddRef(This)
11703 #define IShellItemResources_Release(This) (This)->lpVtbl->Release(This)
11704 /*** IShellItemResources methods ***/
11705 #define IShellItemResources_GetAttributes(This,pdwAttributes) (This)->lpVtbl->GetAttributes(This,pdwAttributes)
11706 #define IShellItemResources_GetSize(This,pullSize) (This)->lpVtbl->GetSize(This,pullSize)
11707 #define IShellItemResources_GetTimes(This,pftCreation,pftWrite,pftAccess) (This)->lpVtbl->GetTimes(This,pftCreation,pftWrite,pftAccess)
11708 #define IShellItemResources_SetTimes(This,pftCreation,pftWrite,pftAccess) (This)->lpVtbl->SetTimes(This,pftCreation,pftWrite,pftAccess)
11709 #define IShellItemResources_GetResourceDescription(This,pcsir,ppszDescription) (This)->lpVtbl->GetResourceDescription(This,pcsir,ppszDescription)
11710 #define IShellItemResources_EnumResources(This,ppenumr) (This)->lpVtbl->EnumResources(This,ppenumr)
11711 #define IShellItemResources_SupportsResource(This,pcsir) (This)->lpVtbl->SupportsResource(This,pcsir)
11712 #define IShellItemResources_OpenResource(This,pcsir,riid,ppv) (This)->lpVtbl->OpenResource(This,pcsir,riid,ppv)
11713 #define IShellItemResources_CreateResource(This,pcsir,riid,ppv) (This)->lpVtbl->CreateResource(This,pcsir,riid,ppv)
11714 #define IShellItemResources_MarkForDelete(This) (This)->lpVtbl->MarkForDelete(This)
11715 #else
11716 /*** IUnknown methods ***/
11717 static FORCEINLINE HRESULT IShellItemResources_QueryInterface(IShellItemResources* This,REFIID riid,void **ppvObject) {
11718     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11719 }
11720 static FORCEINLINE ULONG IShellItemResources_AddRef(IShellItemResources* This) {
11721     return This->lpVtbl->AddRef(This);
11722 }
11723 static FORCEINLINE ULONG IShellItemResources_Release(IShellItemResources* This) {
11724     return This->lpVtbl->Release(This);
11725 }
11726 /*** IShellItemResources methods ***/
11727 static FORCEINLINE HRESULT IShellItemResources_GetAttributes(IShellItemResources* This,DWORD *pdwAttributes) {
11728     return This->lpVtbl->GetAttributes(This,pdwAttributes);
11729 }
11730 static FORCEINLINE HRESULT IShellItemResources_GetSize(IShellItemResources* This,ULONGLONG *pullSize) {
11731     return This->lpVtbl->GetSize(This,pullSize);
11732 }
11733 static FORCEINLINE HRESULT IShellItemResources_GetTimes(IShellItemResources* This,FILETIME *pftCreation,FILETIME *pftWrite,FILETIME *pftAccess) {
11734     return This->lpVtbl->GetTimes(This,pftCreation,pftWrite,pftAccess);
11735 }
11736 static FORCEINLINE HRESULT IShellItemResources_SetTimes(IShellItemResources* This,const FILETIME *pftCreation,const FILETIME *pftWrite,const FILETIME *pftAccess) {
11737     return This->lpVtbl->SetTimes(This,pftCreation,pftWrite,pftAccess);
11738 }
11739 static FORCEINLINE HRESULT IShellItemResources_GetResourceDescription(IShellItemResources* This,const SHELL_ITEM_RESOURCE *pcsir,LPWSTR *ppszDescription) {
11740     return This->lpVtbl->GetResourceDescription(This,pcsir,ppszDescription);
11741 }
11742 static FORCEINLINE HRESULT IShellItemResources_EnumResources(IShellItemResources* This,IEnumResources **ppenumr) {
11743     return This->lpVtbl->EnumResources(This,ppenumr);
11744 }
11745 static FORCEINLINE HRESULT IShellItemResources_SupportsResource(IShellItemResources* This,const SHELL_ITEM_RESOURCE *pcsir) {
11746     return This->lpVtbl->SupportsResource(This,pcsir);
11747 }
11748 static FORCEINLINE HRESULT IShellItemResources_OpenResource(IShellItemResources* This,const SHELL_ITEM_RESOURCE *pcsir,REFIID riid,void **ppv) {
11749     return This->lpVtbl->OpenResource(This,pcsir,riid,ppv);
11750 }
11751 static FORCEINLINE HRESULT IShellItemResources_CreateResource(IShellItemResources* This,const SHELL_ITEM_RESOURCE *pcsir,REFIID riid,void **ppv) {
11752     return This->lpVtbl->CreateResource(This,pcsir,riid,ppv);
11753 }
11754 static FORCEINLINE HRESULT IShellItemResources_MarkForDelete(IShellItemResources* This) {
11755     return This->lpVtbl->MarkForDelete(This);
11756 }
11757 #endif
11758 #endif
11759 
11760 #endif
11761 
11762 HRESULT STDMETHODCALLTYPE IShellItemResources_GetAttributes_Proxy(
11763     IShellItemResources* This,
11764     DWORD *pdwAttributes);
11765 void __RPC_STUB IShellItemResources_GetAttributes_Stub(
11766     IRpcStubBuffer* This,
11767     IRpcChannelBuffer* pRpcChannelBuffer,
11768     PRPC_MESSAGE pRpcMessage,
11769     DWORD* pdwStubPhase);
11770 HRESULT STDMETHODCALLTYPE IShellItemResources_GetSize_Proxy(
11771     IShellItemResources* This,
11772     ULONGLONG *pullSize);
11773 void __RPC_STUB IShellItemResources_GetSize_Stub(
11774     IRpcStubBuffer* This,
11775     IRpcChannelBuffer* pRpcChannelBuffer,
11776     PRPC_MESSAGE pRpcMessage,
11777     DWORD* pdwStubPhase);
11778 HRESULT STDMETHODCALLTYPE IShellItemResources_GetTimes_Proxy(
11779     IShellItemResources* This,
11780     FILETIME *pftCreation,
11781     FILETIME *pftWrite,
11782     FILETIME *pftAccess);
11783 void __RPC_STUB IShellItemResources_GetTimes_Stub(
11784     IRpcStubBuffer* This,
11785     IRpcChannelBuffer* pRpcChannelBuffer,
11786     PRPC_MESSAGE pRpcMessage,
11787     DWORD* pdwStubPhase);
11788 HRESULT STDMETHODCALLTYPE IShellItemResources_SetTimes_Proxy(
11789     IShellItemResources* This,
11790     const FILETIME *pftCreation,
11791     const FILETIME *pftWrite,
11792     const FILETIME *pftAccess);
11793 void __RPC_STUB IShellItemResources_SetTimes_Stub(
11794     IRpcStubBuffer* This,
11795     IRpcChannelBuffer* pRpcChannelBuffer,
11796     PRPC_MESSAGE pRpcMessage,
11797     DWORD* pdwStubPhase);
11798 HRESULT STDMETHODCALLTYPE IShellItemResources_GetResourceDescription_Proxy(
11799     IShellItemResources* This,
11800     const SHELL_ITEM_RESOURCE *pcsir,
11801     LPWSTR *ppszDescription);
11802 void __RPC_STUB IShellItemResources_GetResourceDescription_Stub(
11803     IRpcStubBuffer* This,
11804     IRpcChannelBuffer* pRpcChannelBuffer,
11805     PRPC_MESSAGE pRpcMessage,
11806     DWORD* pdwStubPhase);
11807 HRESULT STDMETHODCALLTYPE IShellItemResources_EnumResources_Proxy(
11808     IShellItemResources* This,
11809     IEnumResources **ppenumr);
11810 void __RPC_STUB IShellItemResources_EnumResources_Stub(
11811     IRpcStubBuffer* This,
11812     IRpcChannelBuffer* pRpcChannelBuffer,
11813     PRPC_MESSAGE pRpcMessage,
11814     DWORD* pdwStubPhase);
11815 HRESULT STDMETHODCALLTYPE IShellItemResources_SupportsResource_Proxy(
11816     IShellItemResources* This,
11817     const SHELL_ITEM_RESOURCE *pcsir);
11818 void __RPC_STUB IShellItemResources_SupportsResource_Stub(
11819     IRpcStubBuffer* This,
11820     IRpcChannelBuffer* pRpcChannelBuffer,
11821     PRPC_MESSAGE pRpcMessage,
11822     DWORD* pdwStubPhase);
11823 HRESULT STDMETHODCALLTYPE IShellItemResources_OpenResource_Proxy(
11824     IShellItemResources* This,
11825     const SHELL_ITEM_RESOURCE *pcsir,
11826     REFIID riid,
11827     void **ppv);
11828 void __RPC_STUB IShellItemResources_OpenResource_Stub(
11829     IRpcStubBuffer* This,
11830     IRpcChannelBuffer* pRpcChannelBuffer,
11831     PRPC_MESSAGE pRpcMessage,
11832     DWORD* pdwStubPhase);
11833 HRESULT STDMETHODCALLTYPE IShellItemResources_CreateResource_Proxy(
11834     IShellItemResources* This,
11835     const SHELL_ITEM_RESOURCE *pcsir,
11836     REFIID riid,
11837     void **ppv);
11838 void __RPC_STUB IShellItemResources_CreateResource_Stub(
11839     IRpcStubBuffer* This,
11840     IRpcChannelBuffer* pRpcChannelBuffer,
11841     PRPC_MESSAGE pRpcMessage,
11842     DWORD* pdwStubPhase);
11843 HRESULT STDMETHODCALLTYPE IShellItemResources_MarkForDelete_Proxy(
11844     IShellItemResources* This);
11845 void __RPC_STUB IShellItemResources_MarkForDelete_Stub(
11846     IRpcStubBuffer* This,
11847     IRpcChannelBuffer* pRpcChannelBuffer,
11848     PRPC_MESSAGE pRpcMessage,
11849     DWORD* pdwStubPhase);
11850 
11851 #endif  /* __IShellItemResources_INTERFACE_DEFINED__ */
11852 
11853 
11854 /*****************************************************************************
11855  * ITransferDestination interface
11856  */
11857 #ifndef __ITransferDestination_INTERFACE_DEFINED__
11858 #define __ITransferDestination_INTERFACE_DEFINED__
11859 
11860 DEFINE_GUID(IID_ITransferDestination, 0x48addd32, 0x3ca5, 0x4124, 0xab,0xe3, 0xb5,0xa7,0x25,0x31,0xb2,0x07);
11861 #if defined(__cplusplus) && !defined(CINTERFACE)
11862 MIDL_INTERFACE("48addd32-3ca5-4124-abe3-b5a72531b207")
11863 ITransferDestination : public IUnknown
11864 {
11865     virtual HRESULT STDMETHODCALLTYPE Advise(
11866         ITransferAdviseSink *psink,
11867         DWORD *pdwCookie) = 0;
11868 
11869     virtual HRESULT STDMETHODCALLTYPE Unadvise(
11870         DWORD dwCookie) = 0;
11871 
11872     virtual HRESULT STDMETHODCALLTYPE CreateItem(
11873         LPCWSTR pszName,
11874         DWORD dwAttributes,
11875         ULONGLONG ullSize,
11876         TRANSFER_SOURCE_FLAGS flags,
11877         REFIID riidItem,
11878         void **ppvItem,
11879         REFIID riidResources,
11880         void **ppvResources) = 0;
11881 
11882 };
11883 #ifdef __CRT_UUID_DECL
11884 __CRT_UUID_DECL(ITransferDestination, 0x48addd32, 0x3ca5, 0x4124, 0xab,0xe3, 0xb5,0xa7,0x25,0x31,0xb2,0x07)
11885 #endif
11886 #else
11887 typedef struct ITransferDestinationVtbl {
11888     BEGIN_INTERFACE
11889 
11890     /*** IUnknown methods ***/
11891     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11892         ITransferDestination* This,
11893         REFIID riid,
11894         void **ppvObject);
11895 
11896     ULONG (STDMETHODCALLTYPE *AddRef)(
11897         ITransferDestination* This);
11898 
11899     ULONG (STDMETHODCALLTYPE *Release)(
11900         ITransferDestination* This);
11901 
11902     /*** ITransferDestination methods ***/
11903     HRESULT (STDMETHODCALLTYPE *Advise)(
11904         ITransferDestination* This,
11905         ITransferAdviseSink *psink,
11906         DWORD *pdwCookie);
11907 
11908     HRESULT (STDMETHODCALLTYPE *Unadvise)(
11909         ITransferDestination* This,
11910         DWORD dwCookie);
11911 
11912     HRESULT (STDMETHODCALLTYPE *CreateItem)(
11913         ITransferDestination* This,
11914         LPCWSTR pszName,
11915         DWORD dwAttributes,
11916         ULONGLONG ullSize,
11917         TRANSFER_SOURCE_FLAGS flags,
11918         REFIID riidItem,
11919         void **ppvItem,
11920         REFIID riidResources,
11921         void **ppvResources);
11922 
11923     END_INTERFACE
11924 } ITransferDestinationVtbl;
11925 interface ITransferDestination {
11926     CONST_VTBL ITransferDestinationVtbl* lpVtbl;
11927 };
11928 
11929 #ifdef COBJMACROS
11930 #ifndef WIDL_C_INLINE_WRAPPERS
11931 /*** IUnknown methods ***/
11932 #define ITransferDestination_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11933 #define ITransferDestination_AddRef(This) (This)->lpVtbl->AddRef(This)
11934 #define ITransferDestination_Release(This) (This)->lpVtbl->Release(This)
11935 /*** ITransferDestination methods ***/
11936 #define ITransferDestination_Advise(This,psink,pdwCookie) (This)->lpVtbl->Advise(This,psink,pdwCookie)
11937 #define ITransferDestination_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
11938 #define ITransferDestination_CreateItem(This,pszName,dwAttributes,ullSize,flags,riidItem,ppvItem,riidResources,ppvResources) (This)->lpVtbl->CreateItem(This,pszName,dwAttributes,ullSize,flags,riidItem,ppvItem,riidResources,ppvResources)
11939 #else
11940 /*** IUnknown methods ***/
11941 static FORCEINLINE HRESULT ITransferDestination_QueryInterface(ITransferDestination* This,REFIID riid,void **ppvObject) {
11942     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11943 }
11944 static FORCEINLINE ULONG ITransferDestination_AddRef(ITransferDestination* This) {
11945     return This->lpVtbl->AddRef(This);
11946 }
11947 static FORCEINLINE ULONG ITransferDestination_Release(ITransferDestination* This) {
11948     return This->lpVtbl->Release(This);
11949 }
11950 /*** ITransferDestination methods ***/
11951 static FORCEINLINE HRESULT ITransferDestination_Advise(ITransferDestination* This,ITransferAdviseSink *psink,DWORD *pdwCookie) {
11952     return This->lpVtbl->Advise(This,psink,pdwCookie);
11953 }
11954 static FORCEINLINE HRESULT ITransferDestination_Unadvise(ITransferDestination* This,DWORD dwCookie) {
11955     return This->lpVtbl->Unadvise(This,dwCookie);
11956 }
11957 static FORCEINLINE HRESULT ITransferDestination_CreateItem(ITransferDestination* This,LPCWSTR pszName,DWORD dwAttributes,ULONGLONG ullSize,TRANSFER_SOURCE_FLAGS flags,REFIID riidItem,void **ppvItem,REFIID riidResources,void **ppvResources) {
11958     return This->lpVtbl->CreateItem(This,pszName,dwAttributes,ullSize,flags,riidItem,ppvItem,riidResources,ppvResources);
11959 }
11960 #endif
11961 #endif
11962 
11963 #endif
11964 
11965 HRESULT STDMETHODCALLTYPE ITransferDestination_Advise_Proxy(
11966     ITransferDestination* This,
11967     ITransferAdviseSink *psink,
11968     DWORD *pdwCookie);
11969 void __RPC_STUB ITransferDestination_Advise_Stub(
11970     IRpcStubBuffer* This,
11971     IRpcChannelBuffer* pRpcChannelBuffer,
11972     PRPC_MESSAGE pRpcMessage,
11973     DWORD* pdwStubPhase);
11974 HRESULT STDMETHODCALLTYPE ITransferDestination_Unadvise_Proxy(
11975     ITransferDestination* This,
11976     DWORD dwCookie);
11977 void __RPC_STUB ITransferDestination_Unadvise_Stub(
11978     IRpcStubBuffer* This,
11979     IRpcChannelBuffer* pRpcChannelBuffer,
11980     PRPC_MESSAGE pRpcMessage,
11981     DWORD* pdwStubPhase);
11982 HRESULT STDMETHODCALLTYPE ITransferDestination_CreateItem_Proxy(
11983     ITransferDestination* This,
11984     LPCWSTR pszName,
11985     DWORD dwAttributes,
11986     ULONGLONG ullSize,
11987     TRANSFER_SOURCE_FLAGS flags,
11988     REFIID riidItem,
11989     void **ppvItem,
11990     REFIID riidResources,
11991     void **ppvResources);
11992 void __RPC_STUB ITransferDestination_CreateItem_Stub(
11993     IRpcStubBuffer* This,
11994     IRpcChannelBuffer* pRpcChannelBuffer,
11995     PRPC_MESSAGE pRpcMessage,
11996     DWORD* pdwStubPhase);
11997 
11998 #endif  /* __ITransferDestination_INTERFACE_DEFINED__ */
11999 
12000 #if 0
12001 typedef struct _OVERLAPPED {
12002     ULONG_PTR Internal;
12003     ULONG_PTR InternalHigh;
12004     __C89_NAMELESS union {
12005         __C89_NAMELESS struct {
12006             DWORD Offset;
12007             DWORD OffsetHigh;
12008         } __C89_NAMELESSSTRUCTNAME;
12009         PVOID Pointer;
12010     } __C89_NAMELESSUNIONNAME;
12011     HANDLE hEvent;
12012 } OVERLAPPED;
12013 typedef struct _OVERLAPPED *LPOVERLAPPED;
12014 #endif
12015 
12016 /*****************************************************************************
12017  * IStreamAsync interface
12018  */
12019 #ifndef __IStreamAsync_INTERFACE_DEFINED__
12020 #define __IStreamAsync_INTERFACE_DEFINED__
12021 
12022 DEFINE_GUID(IID_IStreamAsync, 0xfe0b6665, 0xe0ca, 0x49b9, 0xa1,0x78, 0x2b,0x5c,0xb4,0x8d,0x92,0xa5);
12023 #if defined(__cplusplus) && !defined(CINTERFACE)
12024 MIDL_INTERFACE("fe0b6665-e0ca-49b9-a178-2b5cb48d92a5")
12025 IStreamAsync : public IStream
12026 {
12027     virtual HRESULT STDMETHODCALLTYPE ReadAsync(
12028         void *pv,
12029         DWORD cb,
12030         LPDWORD pcbRead,
12031         LPOVERLAPPED lpOverlapped) = 0;
12032 
12033     virtual HRESULT STDMETHODCALLTYPE WriteAsync(
12034         const void *lpBuffer,
12035         DWORD cb,
12036         LPDWORD pcbWritten,
12037         LPOVERLAPPED lpOverlapped) = 0;
12038 
12039     virtual HRESULT STDMETHODCALLTYPE OverlappedResult(
12040         LPOVERLAPPED lpOverlapped,
12041         LPDWORD lpNumberOfBytesTransferred,
12042         WINBOOL bWait) = 0;
12043 
12044     virtual HRESULT STDMETHODCALLTYPE CancelIo(
12045         ) = 0;
12046 
12047 };
12048 #ifdef __CRT_UUID_DECL
12049 __CRT_UUID_DECL(IStreamAsync, 0xfe0b6665, 0xe0ca, 0x49b9, 0xa1,0x78, 0x2b,0x5c,0xb4,0x8d,0x92,0xa5)
12050 #endif
12051 #else
12052 typedef struct IStreamAsyncVtbl {
12053     BEGIN_INTERFACE
12054 
12055     /*** IUnknown methods ***/
12056     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12057         IStreamAsync* This,
12058         REFIID riid,
12059         void **ppvObject);
12060 
12061     ULONG (STDMETHODCALLTYPE *AddRef)(
12062         IStreamAsync* This);
12063 
12064     ULONG (STDMETHODCALLTYPE *Release)(
12065         IStreamAsync* This);
12066 
12067     /*** ISequentialStream methods ***/
12068     HRESULT (STDMETHODCALLTYPE *Read)(
12069         IStreamAsync* This,
12070         void *pv,
12071         ULONG cb,
12072         ULONG *pcbRead);
12073 
12074     HRESULT (STDMETHODCALLTYPE *Write)(
12075         IStreamAsync* This,
12076         const void *pv,
12077         ULONG cb,
12078         ULONG *pcbWritten);
12079 
12080     /*** IStream methods ***/
12081     HRESULT (STDMETHODCALLTYPE *Seek)(
12082         IStreamAsync* This,
12083         LARGE_INTEGER dlibMove,
12084         DWORD dwOrigin,
12085         ULARGE_INTEGER *plibNewPosition);
12086 
12087     HRESULT (STDMETHODCALLTYPE *SetSize)(
12088         IStreamAsync* This,
12089         ULARGE_INTEGER libNewSize);
12090 
12091     HRESULT (STDMETHODCALLTYPE *CopyTo)(
12092         IStreamAsync* This,
12093         IStream *pstm,
12094         ULARGE_INTEGER cb,
12095         ULARGE_INTEGER *pcbRead,
12096         ULARGE_INTEGER *pcbWritten);
12097 
12098     HRESULT (STDMETHODCALLTYPE *Commit)(
12099         IStreamAsync* This,
12100         DWORD grfCommitFlags);
12101 
12102     HRESULT (STDMETHODCALLTYPE *Revert)(
12103         IStreamAsync* This);
12104 
12105     HRESULT (STDMETHODCALLTYPE *LockRegion)(
12106         IStreamAsync* This,
12107         ULARGE_INTEGER libOffset,
12108         ULARGE_INTEGER cb,
12109         DWORD dwLockType);
12110 
12111     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
12112         IStreamAsync* This,
12113         ULARGE_INTEGER libOffset,
12114         ULARGE_INTEGER cb,
12115         DWORD dwLockType);
12116 
12117     HRESULT (STDMETHODCALLTYPE *Stat)(
12118         IStreamAsync* This,
12119         STATSTG *pstatstg,
12120         DWORD grfStatFlag);
12121 
12122     HRESULT (STDMETHODCALLTYPE *Clone)(
12123         IStreamAsync* This,
12124         IStream **ppstm);
12125 
12126     /*** IStreamAsync methods ***/
12127     HRESULT (STDMETHODCALLTYPE *ReadAsync)(
12128         IStreamAsync* This,
12129         void *pv,
12130         DWORD cb,
12131         LPDWORD pcbRead,
12132         LPOVERLAPPED lpOverlapped);
12133 
12134     HRESULT (STDMETHODCALLTYPE *WriteAsync)(
12135         IStreamAsync* This,
12136         const void *lpBuffer,
12137         DWORD cb,
12138         LPDWORD pcbWritten,
12139         LPOVERLAPPED lpOverlapped);
12140 
12141     HRESULT (STDMETHODCALLTYPE *OverlappedResult)(
12142         IStreamAsync* This,
12143         LPOVERLAPPED lpOverlapped,
12144         LPDWORD lpNumberOfBytesTransferred,
12145         WINBOOL bWait);
12146 
12147     HRESULT (STDMETHODCALLTYPE *CancelIo)(
12148         IStreamAsync* This);
12149 
12150     END_INTERFACE
12151 } IStreamAsyncVtbl;
12152 interface IStreamAsync {
12153     CONST_VTBL IStreamAsyncVtbl* lpVtbl;
12154 };
12155 
12156 #ifdef COBJMACROS
12157 #ifndef WIDL_C_INLINE_WRAPPERS
12158 /*** IUnknown methods ***/
12159 #define IStreamAsync_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12160 #define IStreamAsync_AddRef(This) (This)->lpVtbl->AddRef(This)
12161 #define IStreamAsync_Release(This) (This)->lpVtbl->Release(This)
12162 /*** ISequentialStream methods ***/
12163 #define IStreamAsync_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
12164 #define IStreamAsync_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
12165 /*** IStream methods ***/
12166 #define IStreamAsync_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
12167 #define IStreamAsync_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
12168 #define IStreamAsync_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
12169 #define IStreamAsync_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
12170 #define IStreamAsync_Revert(This) (This)->lpVtbl->Revert(This)
12171 #define IStreamAsync_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
12172 #define IStreamAsync_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
12173 #define IStreamAsync_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
12174 #define IStreamAsync_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
12175 /*** IStreamAsync methods ***/
12176 #define IStreamAsync_ReadAsync(This,pv,cb,pcbRead,lpOverlapped) (This)->lpVtbl->ReadAsync(This,pv,cb,pcbRead,lpOverlapped)
12177 #define IStreamAsync_WriteAsync(This,lpBuffer,cb,pcbWritten,lpOverlapped) (This)->lpVtbl->WriteAsync(This,lpBuffer,cb,pcbWritten,lpOverlapped)
12178 #define IStreamAsync_OverlappedResult(This,lpOverlapped,lpNumberOfBytesTransferred,bWait) (This)->lpVtbl->OverlappedResult(This,lpOverlapped,lpNumberOfBytesTransferred,bWait)
12179 #define IStreamAsync_CancelIo(This) (This)->lpVtbl->CancelIo(This)
12180 #else
12181 /*** IUnknown methods ***/
12182 static FORCEINLINE HRESULT IStreamAsync_QueryInterface(IStreamAsync* This,REFIID riid,void **ppvObject) {
12183     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12184 }
12185 static FORCEINLINE ULONG IStreamAsync_AddRef(IStreamAsync* This) {
12186     return This->lpVtbl->AddRef(This);
12187 }
12188 static FORCEINLINE ULONG IStreamAsync_Release(IStreamAsync* This) {
12189     return This->lpVtbl->Release(This);
12190 }
12191 /*** ISequentialStream methods ***/
12192 static FORCEINLINE HRESULT IStreamAsync_Read(IStreamAsync* This,void *pv,ULONG cb,ULONG *pcbRead) {
12193     return This->lpVtbl->Read(This,pv,cb,pcbRead);
12194 }
12195 static FORCEINLINE HRESULT IStreamAsync_Write(IStreamAsync* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
12196     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
12197 }
12198 /*** IStream methods ***/
12199 static FORCEINLINE HRESULT IStreamAsync_Seek(IStreamAsync* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
12200     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
12201 }
12202 static FORCEINLINE HRESULT IStreamAsync_SetSize(IStreamAsync* This,ULARGE_INTEGER libNewSize) {
12203     return This->lpVtbl->SetSize(This,libNewSize);
12204 }
12205 static FORCEINLINE HRESULT IStreamAsync_CopyTo(IStreamAsync* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
12206     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
12207 }
12208 static FORCEINLINE HRESULT IStreamAsync_Commit(IStreamAsync* This,DWORD grfCommitFlags) {
12209     return This->lpVtbl->Commit(This,grfCommitFlags);
12210 }
12211 static FORCEINLINE HRESULT IStreamAsync_Revert(IStreamAsync* This) {
12212     return This->lpVtbl->Revert(This);
12213 }
12214 static FORCEINLINE HRESULT IStreamAsync_LockRegion(IStreamAsync* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
12215     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
12216 }
12217 static FORCEINLINE HRESULT IStreamAsync_UnlockRegion(IStreamAsync* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
12218     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
12219 }
12220 static FORCEINLINE HRESULT IStreamAsync_Stat(IStreamAsync* This,STATSTG *pstatstg,DWORD grfStatFlag) {
12221     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
12222 }
12223 static FORCEINLINE HRESULT IStreamAsync_Clone(IStreamAsync* This,IStream **ppstm) {
12224     return This->lpVtbl->Clone(This,ppstm);
12225 }
12226 /*** IStreamAsync methods ***/
12227 static FORCEINLINE HRESULT IStreamAsync_ReadAsync(IStreamAsync* This,void *pv,DWORD cb,LPDWORD pcbRead,LPOVERLAPPED lpOverlapped) {
12228     return This->lpVtbl->ReadAsync(This,pv,cb,pcbRead,lpOverlapped);
12229 }
12230 static FORCEINLINE HRESULT IStreamAsync_WriteAsync(IStreamAsync* This,const void *lpBuffer,DWORD cb,LPDWORD pcbWritten,LPOVERLAPPED lpOverlapped) {
12231     return This->lpVtbl->WriteAsync(This,lpBuffer,cb,pcbWritten,lpOverlapped);
12232 }
12233 static FORCEINLINE HRESULT IStreamAsync_OverlappedResult(IStreamAsync* This,LPOVERLAPPED lpOverlapped,LPDWORD lpNumberOfBytesTransferred,WINBOOL bWait) {
12234     return This->lpVtbl->OverlappedResult(This,lpOverlapped,lpNumberOfBytesTransferred,bWait);
12235 }
12236 static FORCEINLINE HRESULT IStreamAsync_CancelIo(IStreamAsync* This) {
12237     return This->lpVtbl->CancelIo(This);
12238 }
12239 #endif
12240 #endif
12241 
12242 #endif
12243 
12244 HRESULT STDMETHODCALLTYPE IStreamAsync_ReadAsync_Proxy(
12245     IStreamAsync* This,
12246     void *pv,
12247     DWORD cb,
12248     LPDWORD pcbRead,
12249     LPOVERLAPPED lpOverlapped);
12250 void __RPC_STUB IStreamAsync_ReadAsync_Stub(
12251     IRpcStubBuffer* This,
12252     IRpcChannelBuffer* pRpcChannelBuffer,
12253     PRPC_MESSAGE pRpcMessage,
12254     DWORD* pdwStubPhase);
12255 HRESULT STDMETHODCALLTYPE IStreamAsync_WriteAsync_Proxy(
12256     IStreamAsync* This,
12257     const void *lpBuffer,
12258     DWORD cb,
12259     LPDWORD pcbWritten,
12260     LPOVERLAPPED lpOverlapped);
12261 void __RPC_STUB IStreamAsync_WriteAsync_Stub(
12262     IRpcStubBuffer* This,
12263     IRpcChannelBuffer* pRpcChannelBuffer,
12264     PRPC_MESSAGE pRpcMessage,
12265     DWORD* pdwStubPhase);
12266 HRESULT STDMETHODCALLTYPE IStreamAsync_OverlappedResult_Proxy(
12267     IStreamAsync* This,
12268     LPOVERLAPPED lpOverlapped,
12269     LPDWORD lpNumberOfBytesTransferred,
12270     WINBOOL bWait);
12271 void __RPC_STUB IStreamAsync_OverlappedResult_Stub(
12272     IRpcStubBuffer* This,
12273     IRpcChannelBuffer* pRpcChannelBuffer,
12274     PRPC_MESSAGE pRpcMessage,
12275     DWORD* pdwStubPhase);
12276 HRESULT STDMETHODCALLTYPE IStreamAsync_CancelIo_Proxy(
12277     IStreamAsync* This);
12278 void __RPC_STUB IStreamAsync_CancelIo_Stub(
12279     IRpcStubBuffer* This,
12280     IRpcChannelBuffer* pRpcChannelBuffer,
12281     PRPC_MESSAGE pRpcMessage,
12282     DWORD* pdwStubPhase);
12283 
12284 #endif  /* __IStreamAsync_INTERFACE_DEFINED__ */
12285 
12286 
12287 /*****************************************************************************
12288  * IStreamUnbufferedInfo interface
12289  */
12290 #ifndef __IStreamUnbufferedInfo_INTERFACE_DEFINED__
12291 #define __IStreamUnbufferedInfo_INTERFACE_DEFINED__
12292 
12293 DEFINE_GUID(IID_IStreamUnbufferedInfo, 0x8a68fdda, 0x1fdc, 0x4c20, 0x8c,0xeb, 0x41,0x66,0x43,0xb5,0xa6,0x25);
12294 #if defined(__cplusplus) && !defined(CINTERFACE)
12295 MIDL_INTERFACE("8a68fdda-1fdc-4c20-8ceb-416643b5a625")
12296 IStreamUnbufferedInfo : public IUnknown
12297 {
12298     virtual HRESULT STDMETHODCALLTYPE GetSectorSize(
12299         ULONG *pcbSectorSize) = 0;
12300 
12301 };
12302 #ifdef __CRT_UUID_DECL
12303 __CRT_UUID_DECL(IStreamUnbufferedInfo, 0x8a68fdda, 0x1fdc, 0x4c20, 0x8c,0xeb, 0x41,0x66,0x43,0xb5,0xa6,0x25)
12304 #endif
12305 #else
12306 typedef struct IStreamUnbufferedInfoVtbl {
12307     BEGIN_INTERFACE
12308 
12309     /*** IUnknown methods ***/
12310     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12311         IStreamUnbufferedInfo* This,
12312         REFIID riid,
12313         void **ppvObject);
12314 
12315     ULONG (STDMETHODCALLTYPE *AddRef)(
12316         IStreamUnbufferedInfo* This);
12317 
12318     ULONG (STDMETHODCALLTYPE *Release)(
12319         IStreamUnbufferedInfo* This);
12320 
12321     /*** IStreamUnbufferedInfo methods ***/
12322     HRESULT (STDMETHODCALLTYPE *GetSectorSize)(
12323         IStreamUnbufferedInfo* This,
12324         ULONG *pcbSectorSize);
12325 
12326     END_INTERFACE
12327 } IStreamUnbufferedInfoVtbl;
12328 interface IStreamUnbufferedInfo {
12329     CONST_VTBL IStreamUnbufferedInfoVtbl* lpVtbl;
12330 };
12331 
12332 #ifdef COBJMACROS
12333 #ifndef WIDL_C_INLINE_WRAPPERS
12334 /*** IUnknown methods ***/
12335 #define IStreamUnbufferedInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12336 #define IStreamUnbufferedInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
12337 #define IStreamUnbufferedInfo_Release(This) (This)->lpVtbl->Release(This)
12338 /*** IStreamUnbufferedInfo methods ***/
12339 #define IStreamUnbufferedInfo_GetSectorSize(This,pcbSectorSize) (This)->lpVtbl->GetSectorSize(This,pcbSectorSize)
12340 #else
12341 /*** IUnknown methods ***/
12342 static FORCEINLINE HRESULT IStreamUnbufferedInfo_QueryInterface(IStreamUnbufferedInfo* This,REFIID riid,void **ppvObject) {
12343     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12344 }
12345 static FORCEINLINE ULONG IStreamUnbufferedInfo_AddRef(IStreamUnbufferedInfo* This) {
12346     return This->lpVtbl->AddRef(This);
12347 }
12348 static FORCEINLINE ULONG IStreamUnbufferedInfo_Release(IStreamUnbufferedInfo* This) {
12349     return This->lpVtbl->Release(This);
12350 }
12351 /*** IStreamUnbufferedInfo methods ***/
12352 static FORCEINLINE HRESULT IStreamUnbufferedInfo_GetSectorSize(IStreamUnbufferedInfo* This,ULONG *pcbSectorSize) {
12353     return This->lpVtbl->GetSectorSize(This,pcbSectorSize);
12354 }
12355 #endif
12356 #endif
12357 
12358 #endif
12359 
12360 HRESULT STDMETHODCALLTYPE IStreamUnbufferedInfo_GetSectorSize_Proxy(
12361     IStreamUnbufferedInfo* This,
12362     ULONG *pcbSectorSize);
12363 void __RPC_STUB IStreamUnbufferedInfo_GetSectorSize_Stub(
12364     IRpcStubBuffer* This,
12365     IRpcChannelBuffer* pRpcChannelBuffer,
12366     PRPC_MESSAGE pRpcMessage,
12367     DWORD* pdwStubPhase);
12368 
12369 #endif  /* __IStreamUnbufferedInfo_INTERFACE_DEFINED__ */
12370 
12371 
12372 #if _WIN32_IE >= _WIN32_IE_IE70
12373 /*****************************************************************************
12374  * IFileOperationProgressSink interface
12375  */
12376 #ifndef __IFileOperationProgressSink_INTERFACE_DEFINED__
12377 #define __IFileOperationProgressSink_INTERFACE_DEFINED__
12378 
12379 DEFINE_GUID(IID_IFileOperationProgressSink, 0x04b0f1a7, 0x9490, 0x44bc, 0x96,0xe1, 0x42,0x96,0xa3,0x12,0x52,0xe2);
12380 #if defined(__cplusplus) && !defined(CINTERFACE)
12381 MIDL_INTERFACE("04b0f1a7-9490-44bc-96e1-4296a31252e2")
12382 IFileOperationProgressSink : public IUnknown
12383 {
12384     virtual HRESULT STDMETHODCALLTYPE StartOperations(
12385         ) = 0;
12386 
12387     virtual HRESULT STDMETHODCALLTYPE FinishOperations(
12388         HRESULT hrResult) = 0;
12389 
12390     virtual HRESULT STDMETHODCALLTYPE PreRenameItem(
12391         DWORD dwFlags,
12392         IShellItem *psiItem,
12393         LPCWSTR pszNewName) = 0;
12394 
12395     virtual HRESULT STDMETHODCALLTYPE PostRenameItem(
12396         DWORD dwFlags,
12397         IShellItem *psiItem,
12398         LPCWSTR pszNewName,
12399         HRESULT hrRename,
12400         IShellItem *psiNewlyCreated) = 0;
12401 
12402     virtual HRESULT STDMETHODCALLTYPE PreMoveItem(
12403         DWORD dwFlags,
12404         IShellItem *psiItem,
12405         IShellItem *psiDestinationFolder,
12406         LPCWSTR pszNewName) = 0;
12407 
12408     virtual HRESULT STDMETHODCALLTYPE PostMoveItem(
12409         DWORD dwFlags,
12410         IShellItem *psiItem,
12411         IShellItem *psiDestinationFolder,
12412         LPCWSTR pszNewName,
12413         HRESULT hrMove,
12414         IShellItem *psiNewlyCreated) = 0;
12415 
12416     virtual HRESULT STDMETHODCALLTYPE PreCopyItem(
12417         DWORD dwFlags,
12418         IShellItem *psiItem,
12419         IShellItem *psiDestinationFolder,
12420         LPCWSTR pszNewName) = 0;
12421 
12422     virtual HRESULT STDMETHODCALLTYPE PostCopyItem(
12423         DWORD dwFlags,
12424         IShellItem *psiItem,
12425         IShellItem *psiDestinationFolder,
12426         LPCWSTR pszNewName,
12427         HRESULT hrCopy,
12428         IShellItem *psiNewlyCreated) = 0;
12429 
12430     virtual HRESULT STDMETHODCALLTYPE PreDeleteItem(
12431         DWORD dwFlags,
12432         IShellItem *psiItem) = 0;
12433 
12434     virtual HRESULT STDMETHODCALLTYPE PostDeleteItem(
12435         DWORD dwFlags,
12436         IShellItem *psiItem,
12437         HRESULT hrDelete,
12438         IShellItem *psiNewlyCreated) = 0;
12439 
12440     virtual HRESULT STDMETHODCALLTYPE PreNewItem(
12441         DWORD dwFlags,
12442         IShellItem *psiDestinationFolder,
12443         LPCWSTR pszNewName) = 0;
12444 
12445     virtual HRESULT STDMETHODCALLTYPE PostNewItem(
12446         DWORD dwFlags,
12447         IShellItem *psiDestinationFolder,
12448         LPCWSTR pszNewName,
12449         LPCWSTR pszTemplateName,
12450         DWORD dwFileAttributes,
12451         HRESULT hrNew,
12452         IShellItem *psiNewItem) = 0;
12453 
12454     virtual HRESULT STDMETHODCALLTYPE UpdateProgress(
12455         UINT iWorkTotal,
12456         UINT iWorkSoFar) = 0;
12457 
12458     virtual HRESULT STDMETHODCALLTYPE ResetTimer(
12459         ) = 0;
12460 
12461     virtual HRESULT STDMETHODCALLTYPE PauseTimer(
12462         ) = 0;
12463 
12464     virtual HRESULT STDMETHODCALLTYPE ResumeTimer(
12465         ) = 0;
12466 
12467 };
12468 #ifdef __CRT_UUID_DECL
12469 __CRT_UUID_DECL(IFileOperationProgressSink, 0x04b0f1a7, 0x9490, 0x44bc, 0x96,0xe1, 0x42,0x96,0xa3,0x12,0x52,0xe2)
12470 #endif
12471 #else
12472 typedef struct IFileOperationProgressSinkVtbl {
12473     BEGIN_INTERFACE
12474 
12475     /*** IUnknown methods ***/
12476     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12477         IFileOperationProgressSink* This,
12478         REFIID riid,
12479         void **ppvObject);
12480 
12481     ULONG (STDMETHODCALLTYPE *AddRef)(
12482         IFileOperationProgressSink* This);
12483 
12484     ULONG (STDMETHODCALLTYPE *Release)(
12485         IFileOperationProgressSink* This);
12486 
12487     /*** IFileOperationProgressSink methods ***/
12488     HRESULT (STDMETHODCALLTYPE *StartOperations)(
12489         IFileOperationProgressSink* This);
12490 
12491     HRESULT (STDMETHODCALLTYPE *FinishOperations)(
12492         IFileOperationProgressSink* This,
12493         HRESULT hrResult);
12494 
12495     HRESULT (STDMETHODCALLTYPE *PreRenameItem)(
12496         IFileOperationProgressSink* This,
12497         DWORD dwFlags,
12498         IShellItem *psiItem,
12499         LPCWSTR pszNewName);
12500 
12501     HRESULT (STDMETHODCALLTYPE *PostRenameItem)(
12502         IFileOperationProgressSink* This,
12503         DWORD dwFlags,
12504         IShellItem *psiItem,
12505         LPCWSTR pszNewName,
12506         HRESULT hrRename,
12507         IShellItem *psiNewlyCreated);
12508 
12509     HRESULT (STDMETHODCALLTYPE *PreMoveItem)(
12510         IFileOperationProgressSink* This,
12511         DWORD dwFlags,
12512         IShellItem *psiItem,
12513         IShellItem *psiDestinationFolder,
12514         LPCWSTR pszNewName);
12515 
12516     HRESULT (STDMETHODCALLTYPE *PostMoveItem)(
12517         IFileOperationProgressSink* This,
12518         DWORD dwFlags,
12519         IShellItem *psiItem,
12520         IShellItem *psiDestinationFolder,
12521         LPCWSTR pszNewName,
12522         HRESULT hrMove,
12523         IShellItem *psiNewlyCreated);
12524 
12525     HRESULT (STDMETHODCALLTYPE *PreCopyItem)(
12526         IFileOperationProgressSink* This,
12527         DWORD dwFlags,
12528         IShellItem *psiItem,
12529         IShellItem *psiDestinationFolder,
12530         LPCWSTR pszNewName);
12531 
12532     HRESULT (STDMETHODCALLTYPE *PostCopyItem)(
12533         IFileOperationProgressSink* This,
12534         DWORD dwFlags,
12535         IShellItem *psiItem,
12536         IShellItem *psiDestinationFolder,
12537         LPCWSTR pszNewName,
12538         HRESULT hrCopy,
12539         IShellItem *psiNewlyCreated);
12540 
12541     HRESULT (STDMETHODCALLTYPE *PreDeleteItem)(
12542         IFileOperationProgressSink* This,
12543         DWORD dwFlags,
12544         IShellItem *psiItem);
12545 
12546     HRESULT (STDMETHODCALLTYPE *PostDeleteItem)(
12547         IFileOperationProgressSink* This,
12548         DWORD dwFlags,
12549         IShellItem *psiItem,
12550         HRESULT hrDelete,
12551         IShellItem *psiNewlyCreated);
12552 
12553     HRESULT (STDMETHODCALLTYPE *PreNewItem)(
12554         IFileOperationProgressSink* This,
12555         DWORD dwFlags,
12556         IShellItem *psiDestinationFolder,
12557         LPCWSTR pszNewName);
12558 
12559     HRESULT (STDMETHODCALLTYPE *PostNewItem)(
12560         IFileOperationProgressSink* This,
12561         DWORD dwFlags,
12562         IShellItem *psiDestinationFolder,
12563         LPCWSTR pszNewName,
12564         LPCWSTR pszTemplateName,
12565         DWORD dwFileAttributes,
12566         HRESULT hrNew,
12567         IShellItem *psiNewItem);
12568 
12569     HRESULT (STDMETHODCALLTYPE *UpdateProgress)(
12570         IFileOperationProgressSink* This,
12571         UINT iWorkTotal,
12572         UINT iWorkSoFar);
12573 
12574     HRESULT (STDMETHODCALLTYPE *ResetTimer)(
12575         IFileOperationProgressSink* This);
12576 
12577     HRESULT (STDMETHODCALLTYPE *PauseTimer)(
12578         IFileOperationProgressSink* This);
12579 
12580     HRESULT (STDMETHODCALLTYPE *ResumeTimer)(
12581         IFileOperationProgressSink* This);
12582 
12583     END_INTERFACE
12584 } IFileOperationProgressSinkVtbl;
12585 interface IFileOperationProgressSink {
12586     CONST_VTBL IFileOperationProgressSinkVtbl* lpVtbl;
12587 };
12588 
12589 #ifdef COBJMACROS
12590 #ifndef WIDL_C_INLINE_WRAPPERS
12591 /*** IUnknown methods ***/
12592 #define IFileOperationProgressSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12593 #define IFileOperationProgressSink_AddRef(This) (This)->lpVtbl->AddRef(This)
12594 #define IFileOperationProgressSink_Release(This) (This)->lpVtbl->Release(This)
12595 /*** IFileOperationProgressSink methods ***/
12596 #define IFileOperationProgressSink_StartOperations(This) (This)->lpVtbl->StartOperations(This)
12597 #define IFileOperationProgressSink_FinishOperations(This,hrResult) (This)->lpVtbl->FinishOperations(This,hrResult)
12598 #define IFileOperationProgressSink_PreRenameItem(This,dwFlags,psiItem,pszNewName) (This)->lpVtbl->PreRenameItem(This,dwFlags,psiItem,pszNewName)
12599 #define IFileOperationProgressSink_PostRenameItem(This,dwFlags,psiItem,pszNewName,hrRename,psiNewlyCreated) (This)->lpVtbl->PostRenameItem(This,dwFlags,psiItem,pszNewName,hrRename,psiNewlyCreated)
12600 #define IFileOperationProgressSink_PreMoveItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName) (This)->lpVtbl->PreMoveItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName)
12601 #define IFileOperationProgressSink_PostMoveItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName,hrMove,psiNewlyCreated) (This)->lpVtbl->PostMoveItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName,hrMove,psiNewlyCreated)
12602 #define IFileOperationProgressSink_PreCopyItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName) (This)->lpVtbl->PreCopyItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName)
12603 #define IFileOperationProgressSink_PostCopyItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName,hrCopy,psiNewlyCreated) (This)->lpVtbl->PostCopyItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName,hrCopy,psiNewlyCreated)
12604 #define IFileOperationProgressSink_PreDeleteItem(This,dwFlags,psiItem) (This)->lpVtbl->PreDeleteItem(This,dwFlags,psiItem)
12605 #define IFileOperationProgressSink_PostDeleteItem(This,dwFlags,psiItem,hrDelete,psiNewlyCreated) (This)->lpVtbl->PostDeleteItem(This,dwFlags,psiItem,hrDelete,psiNewlyCreated)
12606 #define IFileOperationProgressSink_PreNewItem(This,dwFlags,psiDestinationFolder,pszNewName) (This)->lpVtbl->PreNewItem(This,dwFlags,psiDestinationFolder,pszNewName)
12607 #define IFileOperationProgressSink_PostNewItem(This,dwFlags,psiDestinationFolder,pszNewName,pszTemplateName,dwFileAttributes,hrNew,psiNewItem) (This)->lpVtbl->PostNewItem(This,dwFlags,psiDestinationFolder,pszNewName,pszTemplateName,dwFileAttributes,hrNew,psiNewItem)
12608 #define IFileOperationProgressSink_UpdateProgress(This,iWorkTotal,iWorkSoFar) (This)->lpVtbl->UpdateProgress(This,iWorkTotal,iWorkSoFar)
12609 #define IFileOperationProgressSink_ResetTimer(This) (This)->lpVtbl->ResetTimer(This)
12610 #define IFileOperationProgressSink_PauseTimer(This) (This)->lpVtbl->PauseTimer(This)
12611 #define IFileOperationProgressSink_ResumeTimer(This) (This)->lpVtbl->ResumeTimer(This)
12612 #else
12613 /*** IUnknown methods ***/
12614 static FORCEINLINE HRESULT IFileOperationProgressSink_QueryInterface(IFileOperationProgressSink* This,REFIID riid,void **ppvObject) {
12615     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12616 }
12617 static FORCEINLINE ULONG IFileOperationProgressSink_AddRef(IFileOperationProgressSink* This) {
12618     return This->lpVtbl->AddRef(This);
12619 }
12620 static FORCEINLINE ULONG IFileOperationProgressSink_Release(IFileOperationProgressSink* This) {
12621     return This->lpVtbl->Release(This);
12622 }
12623 /*** IFileOperationProgressSink methods ***/
12624 static FORCEINLINE HRESULT IFileOperationProgressSink_StartOperations(IFileOperationProgressSink* This) {
12625     return This->lpVtbl->StartOperations(This);
12626 }
12627 static FORCEINLINE HRESULT IFileOperationProgressSink_FinishOperations(IFileOperationProgressSink* This,HRESULT hrResult) {
12628     return This->lpVtbl->FinishOperations(This,hrResult);
12629 }
12630 static FORCEINLINE HRESULT IFileOperationProgressSink_PreRenameItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem,LPCWSTR pszNewName) {
12631     return This->lpVtbl->PreRenameItem(This,dwFlags,psiItem,pszNewName);
12632 }
12633 static FORCEINLINE HRESULT IFileOperationProgressSink_PostRenameItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem,LPCWSTR pszNewName,HRESULT hrRename,IShellItem *psiNewlyCreated) {
12634     return This->lpVtbl->PostRenameItem(This,dwFlags,psiItem,pszNewName,hrRename,psiNewlyCreated);
12635 }
12636 static FORCEINLINE HRESULT IFileOperationProgressSink_PreMoveItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem,IShellItem *psiDestinationFolder,LPCWSTR pszNewName) {
12637     return This->lpVtbl->PreMoveItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName);
12638 }
12639 static FORCEINLINE HRESULT IFileOperationProgressSink_PostMoveItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem,IShellItem *psiDestinationFolder,LPCWSTR pszNewName,HRESULT hrMove,IShellItem *psiNewlyCreated) {
12640     return This->lpVtbl->PostMoveItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName,hrMove,psiNewlyCreated);
12641 }
12642 static FORCEINLINE HRESULT IFileOperationProgressSink_PreCopyItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem,IShellItem *psiDestinationFolder,LPCWSTR pszNewName) {
12643     return This->lpVtbl->PreCopyItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName);
12644 }
12645 static FORCEINLINE HRESULT IFileOperationProgressSink_PostCopyItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem,IShellItem *psiDestinationFolder,LPCWSTR pszNewName,HRESULT hrCopy,IShellItem *psiNewlyCreated) {
12646     return This->lpVtbl->PostCopyItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName,hrCopy,psiNewlyCreated);
12647 }
12648 static FORCEINLINE HRESULT IFileOperationProgressSink_PreDeleteItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem) {
12649     return This->lpVtbl->PreDeleteItem(This,dwFlags,psiItem);
12650 }
12651 static FORCEINLINE HRESULT IFileOperationProgressSink_PostDeleteItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem,HRESULT hrDelete,IShellItem *psiNewlyCreated) {
12652     return This->lpVtbl->PostDeleteItem(This,dwFlags,psiItem,hrDelete,psiNewlyCreated);
12653 }
12654 static FORCEINLINE HRESULT IFileOperationProgressSink_PreNewItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiDestinationFolder,LPCWSTR pszNewName) {
12655     return This->lpVtbl->PreNewItem(This,dwFlags,psiDestinationFolder,pszNewName);
12656 }
12657 static FORCEINLINE HRESULT IFileOperationProgressSink_PostNewItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiDestinationFolder,LPCWSTR pszNewName,LPCWSTR pszTemplateName,DWORD dwFileAttributes,HRESULT hrNew,IShellItem *psiNewItem) {
12658     return This->lpVtbl->PostNewItem(This,dwFlags,psiDestinationFolder,pszNewName,pszTemplateName,dwFileAttributes,hrNew,psiNewItem);
12659 }
12660 static FORCEINLINE HRESULT IFileOperationProgressSink_UpdateProgress(IFileOperationProgressSink* This,UINT iWorkTotal,UINT iWorkSoFar) {
12661     return This->lpVtbl->UpdateProgress(This,iWorkTotal,iWorkSoFar);
12662 }
12663 static FORCEINLINE HRESULT IFileOperationProgressSink_ResetTimer(IFileOperationProgressSink* This) {
12664     return This->lpVtbl->ResetTimer(This);
12665 }
12666 static FORCEINLINE HRESULT IFileOperationProgressSink_PauseTimer(IFileOperationProgressSink* This) {
12667     return This->lpVtbl->PauseTimer(This);
12668 }
12669 static FORCEINLINE HRESULT IFileOperationProgressSink_ResumeTimer(IFileOperationProgressSink* This) {
12670     return This->lpVtbl->ResumeTimer(This);
12671 }
12672 #endif
12673 #endif
12674 
12675 #endif
12676 
12677 HRESULT STDMETHODCALLTYPE IFileOperationProgressSink_StartOperations_Proxy(
12678     IFileOperationProgressSink* This);
12679 void __RPC_STUB IFileOperationProgressSink_StartOperations_Stub(
12680     IRpcStubBuffer* This,
12681     IRpcChannelBuffer* pRpcChannelBuffer,
12682     PRPC_MESSAGE pRpcMessage,
12683     DWORD* pdwStubPhase);
12684 HRESULT STDMETHODCALLTYPE IFileOperationProgressSink_FinishOperations_Proxy(
12685     IFileOperationProgressSink* This,
12686     HRESULT hrResult);
12687 void __RPC_STUB IFileOperationProgressSink_FinishOperations_Stub(
12688     IRpcStubBuffer* This,
12689     IRpcChannelBuffer* pRpcChannelBuffer,
12690     PRPC_MESSAGE pRpcMessage,
12691     DWORD* pdwStubPhase);
12692 HRESULT STDMETHODCALLTYPE IFileOperationProgressSink_PreRenameItem_Proxy(
12693     IFileOperationProgressSink* This,
12694     DWORD dwFlags,
12695     IShellItem *psiItem,
12696     LPCWSTR pszNewName);
12697 void __RPC_STUB IFileOperationProgressSink_PreRenameItem_Stub(
12698     IRpcStubBuffer* This,
12699     IRpcChannelBuffer* pRpcChannelBuffer,
12700     PRPC_MESSAGE pRpcMessage,
12701     DWORD* pdwStubPhase);
12702 HRESULT STDMETHODCALLTYPE IFileOperationProgressSink_PostRenameItem_Proxy(
12703     IFileOperationProgressSink* This,
12704     DWORD dwFlags,
12705     IShellItem *psiItem,
12706     LPCWSTR pszNewName,
12707     HRESULT hrRename,
12708     IShellItem *psiNewlyCreated);
12709 void __RPC_STUB IFileOperationProgressSink_PostRenameItem_Stub(
12710     IRpcStubBuffer* This,
12711     IRpcChannelBuffer* pRpcChannelBuffer,
12712     PRPC_MESSAGE pRpcMessage,
12713     DWORD* pdwStubPhase);
12714 HRESULT STDMETHODCALLTYPE IFileOperationProgressSink_PreMoveItem_Proxy(
12715     IFileOperationProgressSink* This,
12716     DWORD dwFlags,
12717     IShellItem *psiItem,
12718     IShellItem *psiDestinationFolder,
12719     LPCWSTR pszNewName);
12720 void __RPC_STUB IFileOperationProgressSink_PreMoveItem_Stub(
12721     IRpcStubBuffer* This,
12722     IRpcChannelBuffer* pRpcChannelBuffer,
12723     PRPC_MESSAGE pRpcMessage,
12724     DWORD* pdwStubPhase);
12725 HRESULT STDMETHODCALLTYPE IFileOperationProgressSink_PostMoveItem_Proxy(
12726     IFileOperationProgressSink* This,
12727     DWORD dwFlags,
12728     IShellItem *psiItem,
12729     IShellItem *psiDestinationFolder,
12730     LPCWSTR pszNewName,
12731     HRESULT hrMove,
12732     IShellItem *psiNewlyCreated);
12733 void __RPC_STUB IFileOperationProgressSink_PostMoveItem_Stub(
12734     IRpcStubBuffer* This,
12735     IRpcChannelBuffer* pRpcChannelBuffer,
12736     PRPC_MESSAGE pRpcMessage,
12737     DWORD* pdwStubPhase);
12738 HRESULT STDMETHODCALLTYPE IFileOperationProgressSink_PreCopyItem_Proxy(
12739     IFileOperationProgressSink* This,
12740     DWORD dwFlags,
12741     IShellItem *psiItem,
12742     IShellItem *psiDestinationFolder,
12743     LPCWSTR pszNewName);
12744 void __RPC_STUB IFileOperationProgressSink_PreCopyItem_Stub(
12745     IRpcStubBuffer* This,
12746     IRpcChannelBuffer* pRpcChannelBuffer,
12747     PRPC_MESSAGE pRpcMessage,
12748     DWORD* pdwStubPhase);
12749 HRESULT STDMETHODCALLTYPE IFileOperationProgressSink_PostCopyItem_Proxy(
12750     IFileOperationProgressSink* This,
12751     DWORD dwFlags,
12752     IShellItem *psiItem,
12753     IShellItem *psiDestinationFolder,
12754     LPCWSTR pszNewName,
12755     HRESULT hrCopy,
12756     IShellItem *psiNewlyCreated);
12757 void __RPC_STUB IFileOperationProgressSink_PostCopyItem_Stub(
12758     IRpcStubBuffer* This,
12759     IRpcChannelBuffer* pRpcChannelBuffer,
12760     PRPC_MESSAGE pRpcMessage,
12761     DWORD* pdwStubPhase);
12762 HRESULT STDMETHODCALLTYPE IFileOperationProgressSink_PreDeleteItem_Proxy(
12763     IFileOperationProgressSink* This,
12764     DWORD dwFlags,
12765     IShellItem *psiItem);
12766 void __RPC_STUB IFileOperationProgressSink_PreDeleteItem_Stub(
12767     IRpcStubBuffer* This,
12768     IRpcChannelBuffer* pRpcChannelBuffer,
12769     PRPC_MESSAGE pRpcMessage,
12770     DWORD* pdwStubPhase);
12771 HRESULT STDMETHODCALLTYPE IFileOperationProgressSink_PostDeleteItem_Proxy(
12772     IFileOperationProgressSink* This,
12773     DWORD dwFlags,
12774     IShellItem *psiItem,
12775     HRESULT hrDelete,
12776     IShellItem *psiNewlyCreated);
12777 void __RPC_STUB IFileOperationProgressSink_PostDeleteItem_Stub(
12778     IRpcStubBuffer* This,
12779     IRpcChannelBuffer* pRpcChannelBuffer,
12780     PRPC_MESSAGE pRpcMessage,
12781     DWORD* pdwStubPhase);
12782 HRESULT STDMETHODCALLTYPE IFileOperationProgressSink_PreNewItem_Proxy(
12783     IFileOperationProgressSink* This,
12784     DWORD dwFlags,
12785     IShellItem *psiDestinationFolder,
12786     LPCWSTR pszNewName);
12787 void __RPC_STUB IFileOperationProgressSink_PreNewItem_Stub(
12788     IRpcStubBuffer* This,
12789     IRpcChannelBuffer* pRpcChannelBuffer,
12790     PRPC_MESSAGE pRpcMessage,
12791     DWORD* pdwStubPhase);
12792 HRESULT STDMETHODCALLTYPE IFileOperationProgressSink_PostNewItem_Proxy(
12793     IFileOperationProgressSink* This,
12794     DWORD dwFlags,
12795     IShellItem *psiDestinationFolder,
12796     LPCWSTR pszNewName,
12797     LPCWSTR pszTemplateName,
12798     DWORD dwFileAttributes,
12799     HRESULT hrNew,
12800     IShellItem *psiNewItem);
12801 void __RPC_STUB IFileOperationProgressSink_PostNewItem_Stub(
12802     IRpcStubBuffer* This,
12803     IRpcChannelBuffer* pRpcChannelBuffer,
12804     PRPC_MESSAGE pRpcMessage,
12805     DWORD* pdwStubPhase);
12806 HRESULT STDMETHODCALLTYPE IFileOperationProgressSink_UpdateProgress_Proxy(
12807     IFileOperationProgressSink* This,
12808     UINT iWorkTotal,
12809     UINT iWorkSoFar);
12810 void __RPC_STUB IFileOperationProgressSink_UpdateProgress_Stub(
12811     IRpcStubBuffer* This,
12812     IRpcChannelBuffer* pRpcChannelBuffer,
12813     PRPC_MESSAGE pRpcMessage,
12814     DWORD* pdwStubPhase);
12815 HRESULT STDMETHODCALLTYPE IFileOperationProgressSink_ResetTimer_Proxy(
12816     IFileOperationProgressSink* This);
12817 void __RPC_STUB IFileOperationProgressSink_ResetTimer_Stub(
12818     IRpcStubBuffer* This,
12819     IRpcChannelBuffer* pRpcChannelBuffer,
12820     PRPC_MESSAGE pRpcMessage,
12821     DWORD* pdwStubPhase);
12822 HRESULT STDMETHODCALLTYPE IFileOperationProgressSink_PauseTimer_Proxy(
12823     IFileOperationProgressSink* This);
12824 void __RPC_STUB IFileOperationProgressSink_PauseTimer_Stub(
12825     IRpcStubBuffer* This,
12826     IRpcChannelBuffer* pRpcChannelBuffer,
12827     PRPC_MESSAGE pRpcMessage,
12828     DWORD* pdwStubPhase);
12829 HRESULT STDMETHODCALLTYPE IFileOperationProgressSink_ResumeTimer_Proxy(
12830     IFileOperationProgressSink* This);
12831 void __RPC_STUB IFileOperationProgressSink_ResumeTimer_Stub(
12832     IRpcStubBuffer* This,
12833     IRpcChannelBuffer* pRpcChannelBuffer,
12834     PRPC_MESSAGE pRpcMessage,
12835     DWORD* pdwStubPhase);
12836 
12837 #endif  /* __IFileOperationProgressSink_INTERFACE_DEFINED__ */
12838 
12839 #endif
12840 
12841 /*****************************************************************************
12842  * IShellItemArray interface
12843  */
12844 #ifndef __IShellItemArray_INTERFACE_DEFINED__
12845 #define __IShellItemArray_INTERFACE_DEFINED__
12846 
12847 typedef enum SIATTRIBFLAGS {
12848     SIATTRIBFLAGS_AND = 0x1,
12849     SIATTRIBFLAGS_OR = 0x2,
12850     SIATTRIBFLAGS_APPCOMPAT = 0x3,
12851     SIATTRIBFLAGS_MASK = 0x3,
12852     SIATTRIBFLAGS_ALLITEMS = 0x4000
12853 } SIATTRIBFLAGS;
12854 
12855 DEFINE_ENUM_FLAG_OPERATORS(SIATTRIBFLAGS)
12856 
12857 DEFINE_GUID(IID_IShellItemArray, 0xb63ea76d, 0x1f85, 0x456f, 0xa1,0x9c, 0x48,0x15,0x9e,0xfa,0x85,0x8b);
12858 #if defined(__cplusplus) && !defined(CINTERFACE)
12859 MIDL_INTERFACE("b63ea76d-1f85-456f-a19c-48159efa858b")
12860 IShellItemArray : public IUnknown
12861 {
12862     virtual HRESULT STDMETHODCALLTYPE BindToHandler(
12863         IBindCtx *pbc,
12864         REFGUID bhid,
12865         REFIID riid,
12866         void **ppvOut) = 0;
12867 
12868     virtual HRESULT STDMETHODCALLTYPE GetPropertyStore(
12869         GETPROPERTYSTOREFLAGS flags,
12870         REFIID riid,
12871         void **ppv) = 0;
12872 
12873     virtual HRESULT STDMETHODCALLTYPE GetPropertyDescriptionList(
12874         REFPROPERTYKEY keyType,
12875         REFIID riid,
12876         void **ppv) = 0;
12877 
12878     virtual HRESULT STDMETHODCALLTYPE GetAttributes(
12879         SIATTRIBFLAGS AttribFlags,
12880         SFGAOF sfgaoMask,
12881         SFGAOF *psfgaoAttribs) = 0;
12882 
12883     virtual HRESULT STDMETHODCALLTYPE GetCount(
12884         DWORD *pdwNumItems) = 0;
12885 
12886     virtual HRESULT STDMETHODCALLTYPE GetItemAt(
12887         DWORD dwIndex,
12888         IShellItem **ppsi) = 0;
12889 
12890     virtual HRESULT STDMETHODCALLTYPE EnumItems(
12891         IEnumShellItems **ppenumShellItems) = 0;
12892 
12893 };
12894 #ifdef __CRT_UUID_DECL
12895 __CRT_UUID_DECL(IShellItemArray, 0xb63ea76d, 0x1f85, 0x456f, 0xa1,0x9c, 0x48,0x15,0x9e,0xfa,0x85,0x8b)
12896 #endif
12897 #else
12898 typedef struct IShellItemArrayVtbl {
12899     BEGIN_INTERFACE
12900 
12901     /*** IUnknown methods ***/
12902     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12903         IShellItemArray* This,
12904         REFIID riid,
12905         void **ppvObject);
12906 
12907     ULONG (STDMETHODCALLTYPE *AddRef)(
12908         IShellItemArray* This);
12909 
12910     ULONG (STDMETHODCALLTYPE *Release)(
12911         IShellItemArray* This);
12912 
12913     /*** IShellItemArray methods ***/
12914     HRESULT (STDMETHODCALLTYPE *BindToHandler)(
12915         IShellItemArray* This,
12916         IBindCtx *pbc,
12917         REFGUID bhid,
12918         REFIID riid,
12919         void **ppvOut);
12920 
12921     HRESULT (STDMETHODCALLTYPE *GetPropertyStore)(
12922         IShellItemArray* This,
12923         GETPROPERTYSTOREFLAGS flags,
12924         REFIID riid,
12925         void **ppv);
12926 
12927     HRESULT (STDMETHODCALLTYPE *GetPropertyDescriptionList)(
12928         IShellItemArray* This,
12929         REFPROPERTYKEY keyType,
12930         REFIID riid,
12931         void **ppv);
12932 
12933     HRESULT (STDMETHODCALLTYPE *GetAttributes)(
12934         IShellItemArray* This,
12935         SIATTRIBFLAGS AttribFlags,
12936         SFGAOF sfgaoMask,
12937         SFGAOF *psfgaoAttribs);
12938 
12939     HRESULT (STDMETHODCALLTYPE *GetCount)(
12940         IShellItemArray* This,
12941         DWORD *pdwNumItems);
12942 
12943     HRESULT (STDMETHODCALLTYPE *GetItemAt)(
12944         IShellItemArray* This,
12945         DWORD dwIndex,
12946         IShellItem **ppsi);
12947 
12948     HRESULT (STDMETHODCALLTYPE *EnumItems)(
12949         IShellItemArray* This,
12950         IEnumShellItems **ppenumShellItems);
12951 
12952     END_INTERFACE
12953 } IShellItemArrayVtbl;
12954 interface IShellItemArray {
12955     CONST_VTBL IShellItemArrayVtbl* lpVtbl;
12956 };
12957 
12958 #ifdef COBJMACROS
12959 #ifndef WIDL_C_INLINE_WRAPPERS
12960 /*** IUnknown methods ***/
12961 #define IShellItemArray_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12962 #define IShellItemArray_AddRef(This) (This)->lpVtbl->AddRef(This)
12963 #define IShellItemArray_Release(This) (This)->lpVtbl->Release(This)
12964 /*** IShellItemArray methods ***/
12965 #define IShellItemArray_BindToHandler(This,pbc,bhid,riid,ppvOut) (This)->lpVtbl->BindToHandler(This,pbc,bhid,riid,ppvOut)
12966 #define IShellItemArray_GetPropertyStore(This,flags,riid,ppv) (This)->lpVtbl->GetPropertyStore(This,flags,riid,ppv)
12967 #define IShellItemArray_GetPropertyDescriptionList(This,keyType,riid,ppv) (This)->lpVtbl->GetPropertyDescriptionList(This,keyType,riid,ppv)
12968 #define IShellItemArray_GetAttributes(This,AttribFlags,sfgaoMask,psfgaoAttribs) (This)->lpVtbl->GetAttributes(This,AttribFlags,sfgaoMask,psfgaoAttribs)
12969 #define IShellItemArray_GetCount(This,pdwNumItems) (This)->lpVtbl->GetCount(This,pdwNumItems)
12970 #define IShellItemArray_GetItemAt(This,dwIndex,ppsi) (This)->lpVtbl->GetItemAt(This,dwIndex,ppsi)
12971 #define IShellItemArray_EnumItems(This,ppenumShellItems) (This)->lpVtbl->EnumItems(This,ppenumShellItems)
12972 #else
12973 /*** IUnknown methods ***/
12974 static FORCEINLINE HRESULT IShellItemArray_QueryInterface(IShellItemArray* This,REFIID riid,void **ppvObject) {
12975     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12976 }
12977 static FORCEINLINE ULONG IShellItemArray_AddRef(IShellItemArray* This) {
12978     return This->lpVtbl->AddRef(This);
12979 }
12980 static FORCEINLINE ULONG IShellItemArray_Release(IShellItemArray* This) {
12981     return This->lpVtbl->Release(This);
12982 }
12983 /*** IShellItemArray methods ***/
12984 static FORCEINLINE HRESULT IShellItemArray_BindToHandler(IShellItemArray* This,IBindCtx *pbc,REFGUID bhid,REFIID riid,void **ppvOut) {
12985     return This->lpVtbl->BindToHandler(This,pbc,bhid,riid,ppvOut);
12986 }
12987 static FORCEINLINE HRESULT IShellItemArray_GetPropertyStore(IShellItemArray* This,GETPROPERTYSTOREFLAGS flags,REFIID riid,void **ppv) {
12988     return This->lpVtbl->GetPropertyStore(This,flags,riid,ppv);
12989 }
12990 static FORCEINLINE HRESULT IShellItemArray_GetPropertyDescriptionList(IShellItemArray* This,REFPROPERTYKEY keyType,REFIID riid,void **ppv) {
12991     return This->lpVtbl->GetPropertyDescriptionList(This,keyType,riid,ppv);
12992 }
12993 static FORCEINLINE HRESULT IShellItemArray_GetAttributes(IShellItemArray* This,SIATTRIBFLAGS AttribFlags,SFGAOF sfgaoMask,SFGAOF *psfgaoAttribs) {
12994     return This->lpVtbl->GetAttributes(This,AttribFlags,sfgaoMask,psfgaoAttribs);
12995 }
12996 static FORCEINLINE HRESULT IShellItemArray_GetCount(IShellItemArray* This,DWORD *pdwNumItems) {
12997     return This->lpVtbl->GetCount(This,pdwNumItems);
12998 }
12999 static FORCEINLINE HRESULT IShellItemArray_GetItemAt(IShellItemArray* This,DWORD dwIndex,IShellItem **ppsi) {
13000     return This->lpVtbl->GetItemAt(This,dwIndex,ppsi);
13001 }
13002 static FORCEINLINE HRESULT IShellItemArray_EnumItems(IShellItemArray* This,IEnumShellItems **ppenumShellItems) {
13003     return This->lpVtbl->EnumItems(This,ppenumShellItems);
13004 }
13005 #endif
13006 #endif
13007 
13008 #endif
13009 
13010 HRESULT STDMETHODCALLTYPE IShellItemArray_BindToHandler_Proxy(
13011     IShellItemArray* This,
13012     IBindCtx *pbc,
13013     REFGUID bhid,
13014     REFIID riid,
13015     void **ppvOut);
13016 void __RPC_STUB IShellItemArray_BindToHandler_Stub(
13017     IRpcStubBuffer* This,
13018     IRpcChannelBuffer* pRpcChannelBuffer,
13019     PRPC_MESSAGE pRpcMessage,
13020     DWORD* pdwStubPhase);
13021 HRESULT STDMETHODCALLTYPE IShellItemArray_GetPropertyStore_Proxy(
13022     IShellItemArray* This,
13023     GETPROPERTYSTOREFLAGS flags,
13024     REFIID riid,
13025     void **ppv);
13026 void __RPC_STUB IShellItemArray_GetPropertyStore_Stub(
13027     IRpcStubBuffer* This,
13028     IRpcChannelBuffer* pRpcChannelBuffer,
13029     PRPC_MESSAGE pRpcMessage,
13030     DWORD* pdwStubPhase);
13031 HRESULT STDMETHODCALLTYPE IShellItemArray_GetPropertyDescriptionList_Proxy(
13032     IShellItemArray* This,
13033     REFPROPERTYKEY keyType,
13034     REFIID riid,
13035     void **ppv);
13036 void __RPC_STUB IShellItemArray_GetPropertyDescriptionList_Stub(
13037     IRpcStubBuffer* This,
13038     IRpcChannelBuffer* pRpcChannelBuffer,
13039     PRPC_MESSAGE pRpcMessage,
13040     DWORD* pdwStubPhase);
13041 HRESULT STDMETHODCALLTYPE IShellItemArray_GetAttributes_Proxy(
13042     IShellItemArray* This,
13043     SIATTRIBFLAGS AttribFlags,
13044     SFGAOF sfgaoMask,
13045     SFGAOF *psfgaoAttribs);
13046 void __RPC_STUB IShellItemArray_GetAttributes_Stub(
13047     IRpcStubBuffer* This,
13048     IRpcChannelBuffer* pRpcChannelBuffer,
13049     PRPC_MESSAGE pRpcMessage,
13050     DWORD* pdwStubPhase);
13051 HRESULT STDMETHODCALLTYPE IShellItemArray_GetCount_Proxy(
13052     IShellItemArray* This,
13053     DWORD *pdwNumItems);
13054 void __RPC_STUB IShellItemArray_GetCount_Stub(
13055     IRpcStubBuffer* This,
13056     IRpcChannelBuffer* pRpcChannelBuffer,
13057     PRPC_MESSAGE pRpcMessage,
13058     DWORD* pdwStubPhase);
13059 HRESULT STDMETHODCALLTYPE IShellItemArray_GetItemAt_Proxy(
13060     IShellItemArray* This,
13061     DWORD dwIndex,
13062     IShellItem **ppsi);
13063 void __RPC_STUB IShellItemArray_GetItemAt_Stub(
13064     IRpcStubBuffer* This,
13065     IRpcChannelBuffer* pRpcChannelBuffer,
13066     PRPC_MESSAGE pRpcMessage,
13067     DWORD* pdwStubPhase);
13068 HRESULT STDMETHODCALLTYPE IShellItemArray_EnumItems_Proxy(
13069     IShellItemArray* This,
13070     IEnumShellItems **ppenumShellItems);
13071 void __RPC_STUB IShellItemArray_EnumItems_Stub(
13072     IRpcStubBuffer* This,
13073     IRpcChannelBuffer* pRpcChannelBuffer,
13074     PRPC_MESSAGE pRpcMessage,
13075     DWORD* pdwStubPhase);
13076 
13077 #endif  /* __IShellItemArray_INTERFACE_DEFINED__ */
13078 
13079 
13080 #if _WIN32_IE >= _WIN32_IE_IE70
13081   SHSTDAPI SHCreateShellItemArray(PCIDLIST_ABSOLUTE pidlParent, IShellFolder *psf, UINT cidl, PCUITEMID_CHILD_ARRAY ppidl, IShellItemArray **ppsiItemArray);
13082   SHSTDAPI SHCreateShellItemArrayFromDataObject(IDataObject *pdo, REFIID riid, void **ppv);
13083   SHSTDAPI SHCreateShellItemArrayFromIDLists(UINT cidl, PCIDLIST_ABSOLUTE_ARRAY rgpidl, IShellItemArray **ppsiItemArray);
13084   SHSTDAPI SHCreateShellItemArrayFromShellItem(IShellItem *psi, REFIID riid, void **ppv);
13085 #endif
13086 
13087 /*****************************************************************************
13088  * IInitializeWithItem interface
13089  */
13090 #ifndef __IInitializeWithItem_INTERFACE_DEFINED__
13091 #define __IInitializeWithItem_INTERFACE_DEFINED__
13092 
13093 DEFINE_GUID(IID_IInitializeWithItem, 0x7f73be3f, 0xfb79, 0x493c, 0xa6,0xc7, 0x7e,0xe1,0x4e,0x24,0x58,0x41);
13094 #if defined(__cplusplus) && !defined(CINTERFACE)
13095 MIDL_INTERFACE("7f73be3f-fb79-493c-a6c7-7ee14e245841")
13096 IInitializeWithItem : public IUnknown
13097 {
13098     virtual HRESULT STDMETHODCALLTYPE Initialize(
13099         IShellItem *psi,
13100         DWORD grfMode) = 0;
13101 
13102 };
13103 #ifdef __CRT_UUID_DECL
13104 __CRT_UUID_DECL(IInitializeWithItem, 0x7f73be3f, 0xfb79, 0x493c, 0xa6,0xc7, 0x7e,0xe1,0x4e,0x24,0x58,0x41)
13105 #endif
13106 #else
13107 typedef struct IInitializeWithItemVtbl {
13108     BEGIN_INTERFACE
13109 
13110     /*** IUnknown methods ***/
13111     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13112         IInitializeWithItem* This,
13113         REFIID riid,
13114         void **ppvObject);
13115 
13116     ULONG (STDMETHODCALLTYPE *AddRef)(
13117         IInitializeWithItem* This);
13118 
13119     ULONG (STDMETHODCALLTYPE *Release)(
13120         IInitializeWithItem* This);
13121 
13122     /*** IInitializeWithItem methods ***/
13123     HRESULT (STDMETHODCALLTYPE *Initialize)(
13124         IInitializeWithItem* This,
13125         IShellItem *psi,
13126         DWORD grfMode);
13127 
13128     END_INTERFACE
13129 } IInitializeWithItemVtbl;
13130 interface IInitializeWithItem {
13131     CONST_VTBL IInitializeWithItemVtbl* lpVtbl;
13132 };
13133 
13134 #ifdef COBJMACROS
13135 #ifndef WIDL_C_INLINE_WRAPPERS
13136 /*** IUnknown methods ***/
13137 #define IInitializeWithItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13138 #define IInitializeWithItem_AddRef(This) (This)->lpVtbl->AddRef(This)
13139 #define IInitializeWithItem_Release(This) (This)->lpVtbl->Release(This)
13140 /*** IInitializeWithItem methods ***/
13141 #define IInitializeWithItem_Initialize(This,psi,grfMode) (This)->lpVtbl->Initialize(This,psi,grfMode)
13142 #else
13143 /*** IUnknown methods ***/
13144 static FORCEINLINE HRESULT IInitializeWithItem_QueryInterface(IInitializeWithItem* This,REFIID riid,void **ppvObject) {
13145     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13146 }
13147 static FORCEINLINE ULONG IInitializeWithItem_AddRef(IInitializeWithItem* This) {
13148     return This->lpVtbl->AddRef(This);
13149 }
13150 static FORCEINLINE ULONG IInitializeWithItem_Release(IInitializeWithItem* This) {
13151     return This->lpVtbl->Release(This);
13152 }
13153 /*** IInitializeWithItem methods ***/
13154 static FORCEINLINE HRESULT IInitializeWithItem_Initialize(IInitializeWithItem* This,IShellItem *psi,DWORD grfMode) {
13155     return This->lpVtbl->Initialize(This,psi,grfMode);
13156 }
13157 #endif
13158 #endif
13159 
13160 #endif
13161 
13162 HRESULT STDMETHODCALLTYPE IInitializeWithItem_Initialize_Proxy(
13163     IInitializeWithItem* This,
13164     IShellItem *psi,
13165     DWORD grfMode);
13166 void __RPC_STUB IInitializeWithItem_Initialize_Stub(
13167     IRpcStubBuffer* This,
13168     IRpcChannelBuffer* pRpcChannelBuffer,
13169     PRPC_MESSAGE pRpcMessage,
13170     DWORD* pdwStubPhase);
13171 
13172 #endif  /* __IInitializeWithItem_INTERFACE_DEFINED__ */
13173 
13174 
13175 /*****************************************************************************
13176  * IObjectWithSelection interface
13177  */
13178 #ifndef __IObjectWithSelection_INTERFACE_DEFINED__
13179 #define __IObjectWithSelection_INTERFACE_DEFINED__
13180 
13181 DEFINE_GUID(IID_IObjectWithSelection, 0x1c9cd5bb, 0x98e9, 0x4491, 0xa6,0x0f, 0x31,0xaa,0xcc,0x72,0xb8,0x3c);
13182 #if defined(__cplusplus) && !defined(CINTERFACE)
13183 MIDL_INTERFACE("1c9cd5bb-98e9-4491-a60f-31aacc72b83c")
13184 IObjectWithSelection : public IUnknown
13185 {
13186     virtual HRESULT STDMETHODCALLTYPE SetSelection(
13187         IShellItemArray *psia) = 0;
13188 
13189     virtual HRESULT STDMETHODCALLTYPE GetSelection(
13190         REFIID riid,
13191         void **ppv) = 0;
13192 
13193 };
13194 #ifdef __CRT_UUID_DECL
13195 __CRT_UUID_DECL(IObjectWithSelection, 0x1c9cd5bb, 0x98e9, 0x4491, 0xa6,0x0f, 0x31,0xaa,0xcc,0x72,0xb8,0x3c)
13196 #endif
13197 #else
13198 typedef struct IObjectWithSelectionVtbl {
13199     BEGIN_INTERFACE
13200 
13201     /*** IUnknown methods ***/
13202     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13203         IObjectWithSelection* This,
13204         REFIID riid,
13205         void **ppvObject);
13206 
13207     ULONG (STDMETHODCALLTYPE *AddRef)(
13208         IObjectWithSelection* This);
13209 
13210     ULONG (STDMETHODCALLTYPE *Release)(
13211         IObjectWithSelection* This);
13212 
13213     /*** IObjectWithSelection methods ***/
13214     HRESULT (STDMETHODCALLTYPE *SetSelection)(
13215         IObjectWithSelection* This,
13216         IShellItemArray *psia);
13217 
13218     HRESULT (STDMETHODCALLTYPE *GetSelection)(
13219         IObjectWithSelection* This,
13220         REFIID riid,
13221         void **ppv);
13222 
13223     END_INTERFACE
13224 } IObjectWithSelectionVtbl;
13225 interface IObjectWithSelection {
13226     CONST_VTBL IObjectWithSelectionVtbl* lpVtbl;
13227 };
13228 
13229 #ifdef COBJMACROS
13230 #ifndef WIDL_C_INLINE_WRAPPERS
13231 /*** IUnknown methods ***/
13232 #define IObjectWithSelection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13233 #define IObjectWithSelection_AddRef(This) (This)->lpVtbl->AddRef(This)
13234 #define IObjectWithSelection_Release(This) (This)->lpVtbl->Release(This)
13235 /*** IObjectWithSelection methods ***/
13236 #define IObjectWithSelection_SetSelection(This,psia) (This)->lpVtbl->SetSelection(This,psia)
13237 #define IObjectWithSelection_GetSelection(This,riid,ppv) (This)->lpVtbl->GetSelection(This,riid,ppv)
13238 #else
13239 /*** IUnknown methods ***/
13240 static FORCEINLINE HRESULT IObjectWithSelection_QueryInterface(IObjectWithSelection* This,REFIID riid,void **ppvObject) {
13241     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13242 }
13243 static FORCEINLINE ULONG IObjectWithSelection_AddRef(IObjectWithSelection* This) {
13244     return This->lpVtbl->AddRef(This);
13245 }
13246 static FORCEINLINE ULONG IObjectWithSelection_Release(IObjectWithSelection* This) {
13247     return This->lpVtbl->Release(This);
13248 }
13249 /*** IObjectWithSelection methods ***/
13250 static FORCEINLINE HRESULT IObjectWithSelection_SetSelection(IObjectWithSelection* This,IShellItemArray *psia) {
13251     return This->lpVtbl->SetSelection(This,psia);
13252 }
13253 static FORCEINLINE HRESULT IObjectWithSelection_GetSelection(IObjectWithSelection* This,REFIID riid,void **ppv) {
13254     return This->lpVtbl->GetSelection(This,riid,ppv);
13255 }
13256 #endif
13257 #endif
13258 
13259 #endif
13260 
13261 HRESULT STDMETHODCALLTYPE IObjectWithSelection_SetSelection_Proxy(
13262     IObjectWithSelection* This,
13263     IShellItemArray *psia);
13264 void __RPC_STUB IObjectWithSelection_SetSelection_Stub(
13265     IRpcStubBuffer* This,
13266     IRpcChannelBuffer* pRpcChannelBuffer,
13267     PRPC_MESSAGE pRpcMessage,
13268     DWORD* pdwStubPhase);
13269 HRESULT STDMETHODCALLTYPE IObjectWithSelection_GetSelection_Proxy(
13270     IObjectWithSelection* This,
13271     REFIID riid,
13272     void **ppv);
13273 void __RPC_STUB IObjectWithSelection_GetSelection_Stub(
13274     IRpcStubBuffer* This,
13275     IRpcChannelBuffer* pRpcChannelBuffer,
13276     PRPC_MESSAGE pRpcMessage,
13277     DWORD* pdwStubPhase);
13278 
13279 #endif  /* __IObjectWithSelection_INTERFACE_DEFINED__ */
13280 
13281 
13282 /*****************************************************************************
13283  * IObjectWithBackReferences interface
13284  */
13285 #ifndef __IObjectWithBackReferences_INTERFACE_DEFINED__
13286 #define __IObjectWithBackReferences_INTERFACE_DEFINED__
13287 
13288 DEFINE_GUID(IID_IObjectWithBackReferences, 0x321a6a6a, 0xd61f, 0x4bf3, 0x97,0xae, 0x14,0xbe,0x29,0x86,0xbb,0x36);
13289 #if defined(__cplusplus) && !defined(CINTERFACE)
13290 MIDL_INTERFACE("321a6a6a-d61f-4bf3-97ae-14be2986bb36")
13291 IObjectWithBackReferences : public IUnknown
13292 {
13293     virtual HRESULT STDMETHODCALLTYPE RemoveBackReferences(
13294         ) = 0;
13295 
13296 };
13297 #ifdef __CRT_UUID_DECL
13298 __CRT_UUID_DECL(IObjectWithBackReferences, 0x321a6a6a, 0xd61f, 0x4bf3, 0x97,0xae, 0x14,0xbe,0x29,0x86,0xbb,0x36)
13299 #endif
13300 #else
13301 typedef struct IObjectWithBackReferencesVtbl {
13302     BEGIN_INTERFACE
13303 
13304     /*** IUnknown methods ***/
13305     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13306         IObjectWithBackReferences* This,
13307         REFIID riid,
13308         void **ppvObject);
13309 
13310     ULONG (STDMETHODCALLTYPE *AddRef)(
13311         IObjectWithBackReferences* This);
13312 
13313     ULONG (STDMETHODCALLTYPE *Release)(
13314         IObjectWithBackReferences* This);
13315 
13316     /*** IObjectWithBackReferences methods ***/
13317     HRESULT (STDMETHODCALLTYPE *RemoveBackReferences)(
13318         IObjectWithBackReferences* This);
13319 
13320     END_INTERFACE
13321 } IObjectWithBackReferencesVtbl;
13322 interface IObjectWithBackReferences {
13323     CONST_VTBL IObjectWithBackReferencesVtbl* lpVtbl;
13324 };
13325 
13326 #ifdef COBJMACROS
13327 #ifndef WIDL_C_INLINE_WRAPPERS
13328 /*** IUnknown methods ***/
13329 #define IObjectWithBackReferences_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13330 #define IObjectWithBackReferences_AddRef(This) (This)->lpVtbl->AddRef(This)
13331 #define IObjectWithBackReferences_Release(This) (This)->lpVtbl->Release(This)
13332 /*** IObjectWithBackReferences methods ***/
13333 #define IObjectWithBackReferences_RemoveBackReferences(This) (This)->lpVtbl->RemoveBackReferences(This)
13334 #else
13335 /*** IUnknown methods ***/
13336 static FORCEINLINE HRESULT IObjectWithBackReferences_QueryInterface(IObjectWithBackReferences* This,REFIID riid,void **ppvObject) {
13337     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13338 }
13339 static FORCEINLINE ULONG IObjectWithBackReferences_AddRef(IObjectWithBackReferences* This) {
13340     return This->lpVtbl->AddRef(This);
13341 }
13342 static FORCEINLINE ULONG IObjectWithBackReferences_Release(IObjectWithBackReferences* This) {
13343     return This->lpVtbl->Release(This);
13344 }
13345 /*** IObjectWithBackReferences methods ***/
13346 static FORCEINLINE HRESULT IObjectWithBackReferences_RemoveBackReferences(IObjectWithBackReferences* This) {
13347     return This->lpVtbl->RemoveBackReferences(This);
13348 }
13349 #endif
13350 #endif
13351 
13352 #endif
13353 
13354 HRESULT STDMETHODCALLTYPE IObjectWithBackReferences_RemoveBackReferences_Proxy(
13355     IObjectWithBackReferences* This);
13356 void __RPC_STUB IObjectWithBackReferences_RemoveBackReferences_Stub(
13357     IRpcStubBuffer* This,
13358     IRpcChannelBuffer* pRpcChannelBuffer,
13359     PRPC_MESSAGE pRpcMessage,
13360     DWORD* pdwStubPhase);
13361 
13362 #endif  /* __IObjectWithBackReferences_INTERFACE_DEFINED__ */
13363 
13364 
13365 enum _PROPERTYUI_NAME_FLAGS {
13366     PUIFNF_DEFAULT = 0x0,
13367     PUIFNF_MNEMONIC = 0x1
13368 };
13369 
13370 
13371 typedef DWORD PROPERTYUI_NAME_FLAGS;
13372 
13373 enum _PROPERTYUI_FLAGS {
13374     PUIF_DEFAULT = 0x0,
13375     PUIF_RIGHTALIGN = 0x1,
13376     PUIF_NOLABELININFOTIP = 0x2
13377 };
13378 
13379 
13380 typedef DWORD PROPERTYUI_FLAGS;
13381 
13382 enum _PROPERTYUI_FORMAT_FLAGS {
13383     PUIFFDF_DEFAULT = 0x0,
13384     PUIFFDF_RIGHTTOLEFT = 0x1,
13385     PUIFFDF_SHORTFORMAT = 0x2,
13386     PUIFFDF_NOTIME = 0x4,
13387     PUIFFDF_FRIENDLYDATE = 0x8
13388 };
13389 
13390 
13391 typedef DWORD PROPERTYUI_FORMAT_FLAGS;
13392 
13393 /*****************************************************************************
13394  * IPropertyUI interface
13395  */
13396 #ifndef __IPropertyUI_INTERFACE_DEFINED__
13397 #define __IPropertyUI_INTERFACE_DEFINED__
13398 
13399 DEFINE_GUID(IID_IPropertyUI, 0x757a7d9f, 0x919a, 0x4118, 0x99,0xd7, 0xdb,0xb2,0x08,0xc8,0xcc,0x66);
13400 #if defined(__cplusplus) && !defined(CINTERFACE)
13401 MIDL_INTERFACE("757a7d9f-919a-4118-99d7-dbb208c8cc66")
13402 IPropertyUI : public IUnknown
13403 {
13404     virtual HRESULT STDMETHODCALLTYPE ParsePropertyName(
13405         LPCWSTR pszName,
13406         FMTID *pfmtid,
13407         PROPID *ppid,
13408         ULONG *pchEaten) = 0;
13409 
13410     virtual HRESULT STDMETHODCALLTYPE GetCannonicalName(
13411         REFFMTID fmtid,
13412         PROPID pid,
13413         LPWSTR pwszText,
13414         DWORD cchText) = 0;
13415 
13416     virtual HRESULT STDMETHODCALLTYPE GetDisplayName(
13417         REFFMTID fmtid,
13418         PROPID pid,
13419         PROPERTYUI_NAME_FLAGS flags,
13420         LPWSTR pwszText,
13421         DWORD cchText) = 0;
13422 
13423     virtual HRESULT STDMETHODCALLTYPE GetPropertyDescription(
13424         REFFMTID fmtid,
13425         PROPID pid,
13426         LPWSTR pwszText,
13427         DWORD cchText) = 0;
13428 
13429     virtual HRESULT STDMETHODCALLTYPE GetDefaultWidth(
13430         REFFMTID fmtid,
13431         PROPID pid,
13432         ULONG *pcxChars) = 0;
13433 
13434     virtual HRESULT STDMETHODCALLTYPE GetFlags(
13435         REFFMTID fmtid,
13436         PROPID pid,
13437         PROPERTYUI_FLAGS *pflags) = 0;
13438 
13439     virtual HRESULT STDMETHODCALLTYPE FormatForDisplay(
13440         REFFMTID fmtid,
13441         PROPID pid,
13442         const PROPVARIANT *ppropvar,
13443         PROPERTYUI_FORMAT_FLAGS puiff,
13444         LPWSTR pwszText,
13445         DWORD cchText) = 0;
13446 
13447     virtual HRESULT STDMETHODCALLTYPE GetHelpInfo(
13448         REFFMTID fmtid,
13449         PROPID pid,
13450         LPWSTR pwszHelpFile,
13451         DWORD cch,
13452         UINT *puHelpID) = 0;
13453 
13454 };
13455 #ifdef __CRT_UUID_DECL
13456 __CRT_UUID_DECL(IPropertyUI, 0x757a7d9f, 0x919a, 0x4118, 0x99,0xd7, 0xdb,0xb2,0x08,0xc8,0xcc,0x66)
13457 #endif
13458 #else
13459 typedef struct IPropertyUIVtbl {
13460     BEGIN_INTERFACE
13461 
13462     /*** IUnknown methods ***/
13463     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13464         IPropertyUI* This,
13465         REFIID riid,
13466         void **ppvObject);
13467 
13468     ULONG (STDMETHODCALLTYPE *AddRef)(
13469         IPropertyUI* This);
13470 
13471     ULONG (STDMETHODCALLTYPE *Release)(
13472         IPropertyUI* This);
13473 
13474     /*** IPropertyUI methods ***/
13475     HRESULT (STDMETHODCALLTYPE *ParsePropertyName)(
13476         IPropertyUI* This,
13477         LPCWSTR pszName,
13478         FMTID *pfmtid,
13479         PROPID *ppid,
13480         ULONG *pchEaten);
13481 
13482     HRESULT (STDMETHODCALLTYPE *GetCannonicalName)(
13483         IPropertyUI* This,
13484         REFFMTID fmtid,
13485         PROPID pid,
13486         LPWSTR pwszText,
13487         DWORD cchText);
13488 
13489     HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
13490         IPropertyUI* This,
13491         REFFMTID fmtid,
13492         PROPID pid,
13493         PROPERTYUI_NAME_FLAGS flags,
13494         LPWSTR pwszText,
13495         DWORD cchText);
13496 
13497     HRESULT (STDMETHODCALLTYPE *GetPropertyDescription)(
13498         IPropertyUI* This,
13499         REFFMTID fmtid,
13500         PROPID pid,
13501         LPWSTR pwszText,
13502         DWORD cchText);
13503 
13504     HRESULT (STDMETHODCALLTYPE *GetDefaultWidth)(
13505         IPropertyUI* This,
13506         REFFMTID fmtid,
13507         PROPID pid,
13508         ULONG *pcxChars);
13509 
13510     HRESULT (STDMETHODCALLTYPE *GetFlags)(
13511         IPropertyUI* This,
13512         REFFMTID fmtid,
13513         PROPID pid,
13514         PROPERTYUI_FLAGS *pflags);
13515 
13516     HRESULT (STDMETHODCALLTYPE *FormatForDisplay)(
13517         IPropertyUI* This,
13518         REFFMTID fmtid,
13519         PROPID pid,
13520         const PROPVARIANT *ppropvar,
13521         PROPERTYUI_FORMAT_FLAGS puiff,
13522         LPWSTR pwszText,
13523         DWORD cchText);
13524 
13525     HRESULT (STDMETHODCALLTYPE *GetHelpInfo)(
13526         IPropertyUI* This,
13527         REFFMTID fmtid,
13528         PROPID pid,
13529         LPWSTR pwszHelpFile,
13530         DWORD cch,
13531         UINT *puHelpID);
13532 
13533     END_INTERFACE
13534 } IPropertyUIVtbl;
13535 interface IPropertyUI {
13536     CONST_VTBL IPropertyUIVtbl* lpVtbl;
13537 };
13538 
13539 #ifdef COBJMACROS
13540 #ifndef WIDL_C_INLINE_WRAPPERS
13541 /*** IUnknown methods ***/
13542 #define IPropertyUI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13543 #define IPropertyUI_AddRef(This) (This)->lpVtbl->AddRef(This)
13544 #define IPropertyUI_Release(This) (This)->lpVtbl->Release(This)
13545 /*** IPropertyUI methods ***/
13546 #define IPropertyUI_ParsePropertyName(This,pszName,pfmtid,ppid,pchEaten) (This)->lpVtbl->ParsePropertyName(This,pszName,pfmtid,ppid,pchEaten)
13547 #define IPropertyUI_GetCannonicalName(This,fmtid,pid,pwszText,cchText) (This)->lpVtbl->GetCannonicalName(This,fmtid,pid,pwszText,cchText)
13548 #define IPropertyUI_GetDisplayName(This,fmtid,pid,flags,pwszText,cchText) (This)->lpVtbl->GetDisplayName(This,fmtid,pid,flags,pwszText,cchText)
13549 #define IPropertyUI_GetPropertyDescription(This,fmtid,pid,pwszText,cchText) (This)->lpVtbl->GetPropertyDescription(This,fmtid,pid,pwszText,cchText)
13550 #define IPropertyUI_GetDefaultWidth(This,fmtid,pid,pcxChars) (This)->lpVtbl->GetDefaultWidth(This,fmtid,pid,pcxChars)
13551 #define IPropertyUI_GetFlags(This,fmtid,pid,pflags) (This)->lpVtbl->GetFlags(This,fmtid,pid,pflags)
13552 #define IPropertyUI_FormatForDisplay(This,fmtid,pid,ppropvar,puiff,pwszText,cchText) (This)->lpVtbl->FormatForDisplay(This,fmtid,pid,ppropvar,puiff,pwszText,cchText)
13553 #define IPropertyUI_GetHelpInfo(This,fmtid,pid,pwszHelpFile,cch,puHelpID) (This)->lpVtbl->GetHelpInfo(This,fmtid,pid,pwszHelpFile,cch,puHelpID)
13554 #else
13555 /*** IUnknown methods ***/
13556 static FORCEINLINE HRESULT IPropertyUI_QueryInterface(IPropertyUI* This,REFIID riid,void **ppvObject) {
13557     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13558 }
13559 static FORCEINLINE ULONG IPropertyUI_AddRef(IPropertyUI* This) {
13560     return This->lpVtbl->AddRef(This);
13561 }
13562 static FORCEINLINE ULONG IPropertyUI_Release(IPropertyUI* This) {
13563     return This->lpVtbl->Release(This);
13564 }
13565 /*** IPropertyUI methods ***/
13566 static FORCEINLINE HRESULT IPropertyUI_ParsePropertyName(IPropertyUI* This,LPCWSTR pszName,FMTID *pfmtid,PROPID *ppid,ULONG *pchEaten) {
13567     return This->lpVtbl->ParsePropertyName(This,pszName,pfmtid,ppid,pchEaten);
13568 }
13569 static FORCEINLINE HRESULT IPropertyUI_GetCannonicalName(IPropertyUI* This,REFFMTID fmtid,PROPID pid,LPWSTR pwszText,DWORD cchText) {
13570     return This->lpVtbl->GetCannonicalName(This,fmtid,pid,pwszText,cchText);
13571 }
13572 static FORCEINLINE HRESULT IPropertyUI_GetDisplayName(IPropertyUI* This,REFFMTID fmtid,PROPID pid,PROPERTYUI_NAME_FLAGS flags,LPWSTR pwszText,DWORD cchText) {
13573     return This->lpVtbl->GetDisplayName(This,fmtid,pid,flags,pwszText,cchText);
13574 }
13575 static FORCEINLINE HRESULT IPropertyUI_GetPropertyDescription(IPropertyUI* This,REFFMTID fmtid,PROPID pid,LPWSTR pwszText,DWORD cchText) {
13576     return This->lpVtbl->GetPropertyDescription(This,fmtid,pid,pwszText,cchText);
13577 }
13578 static FORCEINLINE HRESULT IPropertyUI_GetDefaultWidth(IPropertyUI* This,REFFMTID fmtid,PROPID pid,ULONG *pcxChars) {
13579     return This->lpVtbl->GetDefaultWidth(This,fmtid,pid,pcxChars);
13580 }
13581 static FORCEINLINE HRESULT IPropertyUI_GetFlags(IPropertyUI* This,REFFMTID fmtid,PROPID pid,PROPERTYUI_FLAGS *pflags) {
13582     return This->lpVtbl->GetFlags(This,fmtid,pid,pflags);
13583 }
13584 static FORCEINLINE HRESULT IPropertyUI_FormatForDisplay(IPropertyUI* This,REFFMTID fmtid,PROPID pid,const PROPVARIANT *ppropvar,PROPERTYUI_FORMAT_FLAGS puiff,LPWSTR pwszText,DWORD cchText) {
13585     return This->lpVtbl->FormatForDisplay(This,fmtid,pid,ppropvar,puiff,pwszText,cchText);
13586 }
13587 static FORCEINLINE HRESULT IPropertyUI_GetHelpInfo(IPropertyUI* This,REFFMTID fmtid,PROPID pid,LPWSTR pwszHelpFile,DWORD cch,UINT *puHelpID) {
13588     return This->lpVtbl->GetHelpInfo(This,fmtid,pid,pwszHelpFile,cch,puHelpID);
13589 }
13590 #endif
13591 #endif
13592 
13593 #endif
13594 
13595 HRESULT STDMETHODCALLTYPE IPropertyUI_ParsePropertyName_Proxy(
13596     IPropertyUI* This,
13597     LPCWSTR pszName,
13598     FMTID *pfmtid,
13599     PROPID *ppid,
13600     ULONG *pchEaten);
13601 void __RPC_STUB IPropertyUI_ParsePropertyName_Stub(
13602     IRpcStubBuffer* This,
13603     IRpcChannelBuffer* pRpcChannelBuffer,
13604     PRPC_MESSAGE pRpcMessage,
13605     DWORD* pdwStubPhase);
13606 HRESULT STDMETHODCALLTYPE IPropertyUI_GetCannonicalName_Proxy(
13607     IPropertyUI* This,
13608     REFFMTID fmtid,
13609     PROPID pid,
13610     LPWSTR pwszText,
13611     DWORD cchText);
13612 void __RPC_STUB IPropertyUI_GetCannonicalName_Stub(
13613     IRpcStubBuffer* This,
13614     IRpcChannelBuffer* pRpcChannelBuffer,
13615     PRPC_MESSAGE pRpcMessage,
13616     DWORD* pdwStubPhase);
13617 HRESULT STDMETHODCALLTYPE IPropertyUI_GetDisplayName_Proxy(
13618     IPropertyUI* This,
13619     REFFMTID fmtid,
13620     PROPID pid,
13621     PROPERTYUI_NAME_FLAGS flags,
13622     LPWSTR pwszText,
13623     DWORD cchText);
13624 void __RPC_STUB IPropertyUI_GetDisplayName_Stub(
13625     IRpcStubBuffer* This,
13626     IRpcChannelBuffer* pRpcChannelBuffer,
13627     PRPC_MESSAGE pRpcMessage,
13628     DWORD* pdwStubPhase);
13629 HRESULT STDMETHODCALLTYPE IPropertyUI_GetPropertyDescription_Proxy(
13630     IPropertyUI* This,
13631     REFFMTID fmtid,
13632     PROPID pid,
13633     LPWSTR pwszText,
13634     DWORD cchText);
13635 void __RPC_STUB IPropertyUI_GetPropertyDescription_Stub(
13636     IRpcStubBuffer* This,
13637     IRpcChannelBuffer* pRpcChannelBuffer,
13638     PRPC_MESSAGE pRpcMessage,
13639     DWORD* pdwStubPhase);
13640 HRESULT STDMETHODCALLTYPE IPropertyUI_GetDefaultWidth_Proxy(
13641     IPropertyUI* This,
13642     REFFMTID fmtid,
13643     PROPID pid,
13644     ULONG *pcxChars);
13645 void __RPC_STUB IPropertyUI_GetDefaultWidth_Stub(
13646     IRpcStubBuffer* This,
13647     IRpcChannelBuffer* pRpcChannelBuffer,
13648     PRPC_MESSAGE pRpcMessage,
13649     DWORD* pdwStubPhase);
13650 HRESULT STDMETHODCALLTYPE IPropertyUI_GetFlags_Proxy(
13651     IPropertyUI* This,
13652     REFFMTID fmtid,
13653     PROPID pid,
13654     PROPERTYUI_FLAGS *pflags);
13655 void __RPC_STUB IPropertyUI_GetFlags_Stub(
13656     IRpcStubBuffer* This,
13657     IRpcChannelBuffer* pRpcChannelBuffer,
13658     PRPC_MESSAGE pRpcMessage,
13659     DWORD* pdwStubPhase);
13660 HRESULT STDMETHODCALLTYPE IPropertyUI_FormatForDisplay_Proxy(
13661     IPropertyUI* This,
13662     REFFMTID fmtid,
13663     PROPID pid,
13664     const PROPVARIANT *ppropvar,
13665     PROPERTYUI_FORMAT_FLAGS puiff,
13666     LPWSTR pwszText,
13667     DWORD cchText);
13668 void __RPC_STUB IPropertyUI_FormatForDisplay_Stub(
13669     IRpcStubBuffer* This,
13670     IRpcChannelBuffer* pRpcChannelBuffer,
13671     PRPC_MESSAGE pRpcMessage,
13672     DWORD* pdwStubPhase);
13673 HRESULT STDMETHODCALLTYPE IPropertyUI_GetHelpInfo_Proxy(
13674     IPropertyUI* This,
13675     REFFMTID fmtid,
13676     PROPID pid,
13677     LPWSTR pwszHelpFile,
13678     DWORD cch,
13679     UINT *puHelpID);
13680 void __RPC_STUB IPropertyUI_GetHelpInfo_Stub(
13681     IRpcStubBuffer* This,
13682     IRpcChannelBuffer* pRpcChannelBuffer,
13683     PRPC_MESSAGE pRpcMessage,
13684     DWORD* pdwStubPhase);
13685 
13686 #endif  /* __IPropertyUI_INTERFACE_DEFINED__ */
13687 
13688 
13689 #if _WIN32_IE >= _WIN32_IE_IE70
13690   SHSTDAPI SHRemovePersonalPropertyValues(IShellItemArray *psia);
13691   SHSTDAPI SHAddDefaultPropertiesByExt(PCWSTR pszExt, IPropertyStore *pPropStore);
13692   SHSTDAPI SHCreateDefaultPropertiesOp(IShellItem *psi, IFileOperation **ppFileOp);
13693   SHSTDAPI SHSetDefaultProperties(HWND hwnd, IShellItem *psi, DWORD dwFileOpFlags, IFileOperationProgressSink *pfops);
13694 #endif
13695 
13696 /*****************************************************************************
13697  * ICategoryProvider interface
13698  */
13699 #ifndef __ICategoryProvider_INTERFACE_DEFINED__
13700 #define __ICategoryProvider_INTERFACE_DEFINED__
13701 
13702 DEFINE_GUID(IID_ICategoryProvider, 0x9af64809, 0x5864, 0x4c26, 0xa7,0x20, 0xc1,0xf7,0x8c,0x08,0x6e,0xe3);
13703 #if defined(__cplusplus) && !defined(CINTERFACE)
13704 MIDL_INTERFACE("9af64809-5864-4c26-a720-c1f78c086ee3")
13705 ICategoryProvider : public IUnknown
13706 {
13707     virtual HRESULT STDMETHODCALLTYPE CanCategorizeOnSCID(
13708         const SHCOLUMNID *pscid) = 0;
13709 
13710     virtual HRESULT STDMETHODCALLTYPE GetDefaultCategory(
13711         GUID *pguid,
13712         SHCOLUMNID *pscid) = 0;
13713 
13714     virtual HRESULT STDMETHODCALLTYPE GetCategoryForSCID(
13715         const SHCOLUMNID *pscid,
13716         GUID *pguid) = 0;
13717 
13718     virtual HRESULT STDMETHODCALLTYPE EnumCategories(
13719         IEnumGUID **penum) = 0;
13720 
13721     virtual HRESULT STDMETHODCALLTYPE GetCategoryName(
13722         const GUID *pguid,
13723         LPWSTR pszName,
13724         UINT cch) = 0;
13725 
13726     virtual HRESULT STDMETHODCALLTYPE CreateCategory(
13727         const GUID *pguid,
13728         REFIID riid,
13729         void **ppv) = 0;
13730 
13731 };
13732 #ifdef __CRT_UUID_DECL
13733 __CRT_UUID_DECL(ICategoryProvider, 0x9af64809, 0x5864, 0x4c26, 0xa7,0x20, 0xc1,0xf7,0x8c,0x08,0x6e,0xe3)
13734 #endif
13735 #else
13736 typedef struct ICategoryProviderVtbl {
13737     BEGIN_INTERFACE
13738 
13739     /*** IUnknown methods ***/
13740     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13741         ICategoryProvider* This,
13742         REFIID riid,
13743         void **ppvObject);
13744 
13745     ULONG (STDMETHODCALLTYPE *AddRef)(
13746         ICategoryProvider* This);
13747 
13748     ULONG (STDMETHODCALLTYPE *Release)(
13749         ICategoryProvider* This);
13750 
13751     /*** ICategoryProvider methods ***/
13752     HRESULT (STDMETHODCALLTYPE *CanCategorizeOnSCID)(
13753         ICategoryProvider* This,
13754         const SHCOLUMNID *pscid);
13755 
13756     HRESULT (STDMETHODCALLTYPE *GetDefaultCategory)(
13757         ICategoryProvider* This,
13758         GUID *pguid,
13759         SHCOLUMNID *pscid);
13760 
13761     HRESULT (STDMETHODCALLTYPE *GetCategoryForSCID)(
13762         ICategoryProvider* This,
13763         const SHCOLUMNID *pscid,
13764         GUID *pguid);
13765 
13766     HRESULT (STDMETHODCALLTYPE *EnumCategories)(
13767         ICategoryProvider* This,
13768         IEnumGUID **penum);
13769 
13770     HRESULT (STDMETHODCALLTYPE *GetCategoryName)(
13771         ICategoryProvider* This,
13772         const GUID *pguid,
13773         LPWSTR pszName,
13774         UINT cch);
13775 
13776     HRESULT (STDMETHODCALLTYPE *CreateCategory)(
13777         ICategoryProvider* This,
13778         const GUID *pguid,
13779         REFIID riid,
13780         void **ppv);
13781 
13782     END_INTERFACE
13783 } ICategoryProviderVtbl;
13784 interface ICategoryProvider {
13785     CONST_VTBL ICategoryProviderVtbl* lpVtbl;
13786 };
13787 
13788 #ifdef COBJMACROS
13789 #ifndef WIDL_C_INLINE_WRAPPERS
13790 /*** IUnknown methods ***/
13791 #define ICategoryProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13792 #define ICategoryProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
13793 #define ICategoryProvider_Release(This) (This)->lpVtbl->Release(This)
13794 /*** ICategoryProvider methods ***/
13795 #define ICategoryProvider_CanCategorizeOnSCID(This,pscid) (This)->lpVtbl->CanCategorizeOnSCID(This,pscid)
13796 #define ICategoryProvider_GetDefaultCategory(This,pguid,pscid) (This)->lpVtbl->GetDefaultCategory(This,pguid,pscid)
13797 #define ICategoryProvider_GetCategoryForSCID(This,pscid,pguid) (This)->lpVtbl->GetCategoryForSCID(This,pscid,pguid)
13798 #define ICategoryProvider_EnumCategories(This,penum) (This)->lpVtbl->EnumCategories(This,penum)
13799 #define ICategoryProvider_GetCategoryName(This,pguid,pszName,cch) (This)->lpVtbl->GetCategoryName(This,pguid,pszName,cch)
13800 #define ICategoryProvider_CreateCategory(This,pguid,riid,ppv) (This)->lpVtbl->CreateCategory(This,pguid,riid,ppv)
13801 #else
13802 /*** IUnknown methods ***/
13803 static FORCEINLINE HRESULT ICategoryProvider_QueryInterface(ICategoryProvider* This,REFIID riid,void **ppvObject) {
13804     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13805 }
13806 static FORCEINLINE ULONG ICategoryProvider_AddRef(ICategoryProvider* This) {
13807     return This->lpVtbl->AddRef(This);
13808 }
13809 static FORCEINLINE ULONG ICategoryProvider_Release(ICategoryProvider* This) {
13810     return This->lpVtbl->Release(This);
13811 }
13812 /*** ICategoryProvider methods ***/
13813 static FORCEINLINE HRESULT ICategoryProvider_CanCategorizeOnSCID(ICategoryProvider* This,const SHCOLUMNID *pscid) {
13814     return This->lpVtbl->CanCategorizeOnSCID(This,pscid);
13815 }
13816 static FORCEINLINE HRESULT ICategoryProvider_GetDefaultCategory(ICategoryProvider* This,GUID *pguid,SHCOLUMNID *pscid) {
13817     return This->lpVtbl->GetDefaultCategory(This,pguid,pscid);
13818 }
13819 static FORCEINLINE HRESULT ICategoryProvider_GetCategoryForSCID(ICategoryProvider* This,const SHCOLUMNID *pscid,GUID *pguid) {
13820     return This->lpVtbl->GetCategoryForSCID(This,pscid,pguid);
13821 }
13822 static FORCEINLINE HRESULT ICategoryProvider_EnumCategories(ICategoryProvider* This,IEnumGUID **penum) {
13823     return This->lpVtbl->EnumCategories(This,penum);
13824 }
13825 static FORCEINLINE HRESULT ICategoryProvider_GetCategoryName(ICategoryProvider* This,const GUID *pguid,LPWSTR pszName,UINT cch) {
13826     return This->lpVtbl->GetCategoryName(This,pguid,pszName,cch);
13827 }
13828 static FORCEINLINE HRESULT ICategoryProvider_CreateCategory(ICategoryProvider* This,const GUID *pguid,REFIID riid,void **ppv) {
13829     return This->lpVtbl->CreateCategory(This,pguid,riid,ppv);
13830 }
13831 #endif
13832 #endif
13833 
13834 #endif
13835 
13836 HRESULT STDMETHODCALLTYPE ICategoryProvider_CanCategorizeOnSCID_Proxy(
13837     ICategoryProvider* This,
13838     const SHCOLUMNID *pscid);
13839 void __RPC_STUB ICategoryProvider_CanCategorizeOnSCID_Stub(
13840     IRpcStubBuffer* This,
13841     IRpcChannelBuffer* pRpcChannelBuffer,
13842     PRPC_MESSAGE pRpcMessage,
13843     DWORD* pdwStubPhase);
13844 HRESULT STDMETHODCALLTYPE ICategoryProvider_GetDefaultCategory_Proxy(
13845     ICategoryProvider* This,
13846     GUID *pguid,
13847     SHCOLUMNID *pscid);
13848 void __RPC_STUB ICategoryProvider_GetDefaultCategory_Stub(
13849     IRpcStubBuffer* This,
13850     IRpcChannelBuffer* pRpcChannelBuffer,
13851     PRPC_MESSAGE pRpcMessage,
13852     DWORD* pdwStubPhase);
13853 HRESULT STDMETHODCALLTYPE ICategoryProvider_GetCategoryForSCID_Proxy(
13854     ICategoryProvider* This,
13855     const SHCOLUMNID *pscid,
13856     GUID *pguid);
13857 void __RPC_STUB ICategoryProvider_GetCategoryForSCID_Stub(
13858     IRpcStubBuffer* This,
13859     IRpcChannelBuffer* pRpcChannelBuffer,
13860     PRPC_MESSAGE pRpcMessage,
13861     DWORD* pdwStubPhase);
13862 HRESULT STDMETHODCALLTYPE ICategoryProvider_EnumCategories_Proxy(
13863     ICategoryProvider* This,
13864     IEnumGUID **penum);
13865 void __RPC_STUB ICategoryProvider_EnumCategories_Stub(
13866     IRpcStubBuffer* This,
13867     IRpcChannelBuffer* pRpcChannelBuffer,
13868     PRPC_MESSAGE pRpcMessage,
13869     DWORD* pdwStubPhase);
13870 HRESULT STDMETHODCALLTYPE ICategoryProvider_GetCategoryName_Proxy(
13871     ICategoryProvider* This,
13872     const GUID *pguid,
13873     LPWSTR pszName,
13874     UINT cch);
13875 void __RPC_STUB ICategoryProvider_GetCategoryName_Stub(
13876     IRpcStubBuffer* This,
13877     IRpcChannelBuffer* pRpcChannelBuffer,
13878     PRPC_MESSAGE pRpcMessage,
13879     DWORD* pdwStubPhase);
13880 HRESULT STDMETHODCALLTYPE ICategoryProvider_CreateCategory_Proxy(
13881     ICategoryProvider* This,
13882     const GUID *pguid,
13883     REFIID riid,
13884     void **ppv);
13885 void __RPC_STUB ICategoryProvider_CreateCategory_Stub(
13886     IRpcStubBuffer* This,
13887     IRpcChannelBuffer* pRpcChannelBuffer,
13888     PRPC_MESSAGE pRpcMessage,
13889     DWORD* pdwStubPhase);
13890 
13891 #endif  /* __ICategoryProvider_INTERFACE_DEFINED__ */
13892 
13893 
13894 typedef enum CATEGORYINFO_FLAGS {
13895     CATINFO_NORMAL = 0x0,
13896     CATINFO_COLLAPSED = 0x1,
13897     CATINFO_HIDDEN = 0x2,
13898     CATINFO_EXPANDED = 0x4,
13899     CATINFO_NOHEADER = 0x8,
13900     CATINFO_NOTCOLLAPSIBLE = 0x10,
13901     CATINFO_NOHEADERCOUNT = 0x20,
13902     CATINFO_SUBSETTED = 0x40
13903 } CATEGORYINFO_FLAGS;
13904 
13905 DEFINE_ENUM_FLAG_OPERATORS(CATEGORYINFO_FLAGS)
13906 
13907 typedef enum CATSORT_FLAGS {
13908     CATSORT_DEFAULT = 0x0,
13909     CATSORT_NAME = 0x1
13910 } CATSORT_FLAGS;
13911 
13912 DEFINE_ENUM_FLAG_OPERATORS(CATSORT_FLAGS)
13913 
13914 typedef struct CATEGORY_INFO {
13915     CATEGORYINFO_FLAGS cif;
13916     WCHAR wszName[260];
13917 } CATEGORY_INFO;
13918 
13919 /*****************************************************************************
13920  * ICategorizer interface
13921  */
13922 #ifndef __ICategorizer_INTERFACE_DEFINED__
13923 #define __ICategorizer_INTERFACE_DEFINED__
13924 
13925 DEFINE_GUID(IID_ICategorizer, 0xa3b14589, 0x9174, 0x49a8, 0x89,0xa3, 0x06,0xa1,0xae,0x2b,0x9b,0xa7);
13926 #if defined(__cplusplus) && !defined(CINTERFACE)
13927 MIDL_INTERFACE("a3b14589-9174-49a8-89a3-06a1ae2b9ba7")
13928 ICategorizer : public IUnknown
13929 {
13930     virtual HRESULT STDMETHODCALLTYPE GetDescription(
13931         LPWSTR pszDesc,
13932         UINT cch) = 0;
13933 
13934     virtual HRESULT STDMETHODCALLTYPE GetCategory(
13935         UINT cidl,
13936         PCUITEMID_CHILD_ARRAY apidl,
13937         DWORD *rgCategoryIds) = 0;
13938 
13939     virtual HRESULT STDMETHODCALLTYPE GetCategoryInfo(
13940         DWORD dwCategoryId,
13941         CATEGORY_INFO *pci) = 0;
13942 
13943     virtual HRESULT STDMETHODCALLTYPE CompareCategory(
13944         CATSORT_FLAGS csfFlags,
13945         DWORD dwCategoryId1,
13946         DWORD dwCategoryId2) = 0;
13947 
13948 };
13949 #ifdef __CRT_UUID_DECL
13950 __CRT_UUID_DECL(ICategorizer, 0xa3b14589, 0x9174, 0x49a8, 0x89,0xa3, 0x06,0xa1,0xae,0x2b,0x9b,0xa7)
13951 #endif
13952 #else
13953 typedef struct ICategorizerVtbl {
13954     BEGIN_INTERFACE
13955 
13956     /*** IUnknown methods ***/
13957     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13958         ICategorizer* This,
13959         REFIID riid,
13960         void **ppvObject);
13961 
13962     ULONG (STDMETHODCALLTYPE *AddRef)(
13963         ICategorizer* This);
13964 
13965     ULONG (STDMETHODCALLTYPE *Release)(
13966         ICategorizer* This);
13967 
13968     /*** ICategorizer methods ***/
13969     HRESULT (STDMETHODCALLTYPE *GetDescription)(
13970         ICategorizer* This,
13971         LPWSTR pszDesc,
13972         UINT cch);
13973 
13974     HRESULT (STDMETHODCALLTYPE *GetCategory)(
13975         ICategorizer* This,
13976         UINT cidl,
13977         PCUITEMID_CHILD_ARRAY apidl,
13978         DWORD *rgCategoryIds);
13979 
13980     HRESULT (STDMETHODCALLTYPE *GetCategoryInfo)(
13981         ICategorizer* This,
13982         DWORD dwCategoryId,
13983         CATEGORY_INFO *pci);
13984 
13985     HRESULT (STDMETHODCALLTYPE *CompareCategory)(
13986         ICategorizer* This,
13987         CATSORT_FLAGS csfFlags,
13988         DWORD dwCategoryId1,
13989         DWORD dwCategoryId2);
13990 
13991     END_INTERFACE
13992 } ICategorizerVtbl;
13993 interface ICategorizer {
13994     CONST_VTBL ICategorizerVtbl* lpVtbl;
13995 };
13996 
13997 #ifdef COBJMACROS
13998 #ifndef WIDL_C_INLINE_WRAPPERS
13999 /*** IUnknown methods ***/
14000 #define ICategorizer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14001 #define ICategorizer_AddRef(This) (This)->lpVtbl->AddRef(This)
14002 #define ICategorizer_Release(This) (This)->lpVtbl->Release(This)
14003 /*** ICategorizer methods ***/
14004 #define ICategorizer_GetDescription(This,pszDesc,cch) (This)->lpVtbl->GetDescription(This,pszDesc,cch)
14005 #define ICategorizer_GetCategory(This,cidl,apidl,rgCategoryIds) (This)->lpVtbl->GetCategory(This,cidl,apidl,rgCategoryIds)
14006 #define ICategorizer_GetCategoryInfo(This,dwCategoryId,pci) (This)->lpVtbl->GetCategoryInfo(This,dwCategoryId,pci)
14007 #define ICategorizer_CompareCategory(This,csfFlags,dwCategoryId1,dwCategoryId2) (This)->lpVtbl->CompareCategory(This,csfFlags,dwCategoryId1,dwCategoryId2)
14008 #else
14009 /*** IUnknown methods ***/
14010 static FORCEINLINE HRESULT ICategorizer_QueryInterface(ICategorizer* This,REFIID riid,void **ppvObject) {
14011     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14012 }
14013 static FORCEINLINE ULONG ICategorizer_AddRef(ICategorizer* This) {
14014     return This->lpVtbl->AddRef(This);
14015 }
14016 static FORCEINLINE ULONG ICategorizer_Release(ICategorizer* This) {
14017     return This->lpVtbl->Release(This);
14018 }
14019 /*** ICategorizer methods ***/
14020 static FORCEINLINE HRESULT ICategorizer_GetDescription(ICategorizer* This,LPWSTR pszDesc,UINT cch) {
14021     return This->lpVtbl->GetDescription(This,pszDesc,cch);
14022 }
14023 static FORCEINLINE HRESULT ICategorizer_GetCategory(ICategorizer* This,UINT cidl,PCUITEMID_CHILD_ARRAY apidl,DWORD *rgCategoryIds) {
14024     return This->lpVtbl->GetCategory(This,cidl,apidl,rgCategoryIds);
14025 }
14026 static FORCEINLINE HRESULT ICategorizer_GetCategoryInfo(ICategorizer* This,DWORD dwCategoryId,CATEGORY_INFO *pci) {
14027     return This->lpVtbl->GetCategoryInfo(This,dwCategoryId,pci);
14028 }
14029 static FORCEINLINE HRESULT ICategorizer_CompareCategory(ICategorizer* This,CATSORT_FLAGS csfFlags,DWORD dwCategoryId1,DWORD dwCategoryId2) {
14030     return This->lpVtbl->CompareCategory(This,csfFlags,dwCategoryId1,dwCategoryId2);
14031 }
14032 #endif
14033 #endif
14034 
14035 #endif
14036 
14037 HRESULT STDMETHODCALLTYPE ICategorizer_GetDescription_Proxy(
14038     ICategorizer* This,
14039     LPWSTR pszDesc,
14040     UINT cch);
14041 void __RPC_STUB ICategorizer_GetDescription_Stub(
14042     IRpcStubBuffer* This,
14043     IRpcChannelBuffer* pRpcChannelBuffer,
14044     PRPC_MESSAGE pRpcMessage,
14045     DWORD* pdwStubPhase);
14046 HRESULT STDMETHODCALLTYPE ICategorizer_GetCategory_Proxy(
14047     ICategorizer* This,
14048     UINT cidl,
14049     PCUITEMID_CHILD_ARRAY apidl,
14050     DWORD *rgCategoryIds);
14051 void __RPC_STUB ICategorizer_GetCategory_Stub(
14052     IRpcStubBuffer* This,
14053     IRpcChannelBuffer* pRpcChannelBuffer,
14054     PRPC_MESSAGE pRpcMessage,
14055     DWORD* pdwStubPhase);
14056 HRESULT STDMETHODCALLTYPE ICategorizer_GetCategoryInfo_Proxy(
14057     ICategorizer* This,
14058     DWORD dwCategoryId,
14059     CATEGORY_INFO *pci);
14060 void __RPC_STUB ICategorizer_GetCategoryInfo_Stub(
14061     IRpcStubBuffer* This,
14062     IRpcChannelBuffer* pRpcChannelBuffer,
14063     PRPC_MESSAGE pRpcMessage,
14064     DWORD* pdwStubPhase);
14065 HRESULT STDMETHODCALLTYPE ICategorizer_CompareCategory_Proxy(
14066     ICategorizer* This,
14067     CATSORT_FLAGS csfFlags,
14068     DWORD dwCategoryId1,
14069     DWORD dwCategoryId2);
14070 void __RPC_STUB ICategorizer_CompareCategory_Stub(
14071     IRpcStubBuffer* This,
14072     IRpcChannelBuffer* pRpcChannelBuffer,
14073     PRPC_MESSAGE pRpcMessage,
14074     DWORD* pdwStubPhase);
14075 
14076 #endif  /* __ICategorizer_INTERFACE_DEFINED__ */
14077 
14078 
14079 #include <pshpack8.h>
14080 typedef struct SHDRAGIMAGE {
14081     SIZE sizeDragImage;
14082     POINT ptOffset;
14083     HBITMAP hbmpDragImage;
14084     COLORREF crColorKey;
14085 } SHDRAGIMAGE;
14086 typedef struct SHDRAGIMAGE *LPSHDRAGIMAGE;
14087 #include <poppack.h>
14088 
14089 #define DI_GETDRAGIMAGE     TEXT("ShellGetDragImage")
14090 
14091 /*****************************************************************************
14092  * IDropTargetHelper interface
14093  */
14094 #ifndef __IDropTargetHelper_INTERFACE_DEFINED__
14095 #define __IDropTargetHelper_INTERFACE_DEFINED__
14096 
14097 DEFINE_GUID(IID_IDropTargetHelper, 0x4657278b, 0x411b, 0x11d2, 0x83,0x9a, 0x00,0xc0,0x4f,0xd9,0x18,0xd0);
14098 #if defined(__cplusplus) && !defined(CINTERFACE)
14099 MIDL_INTERFACE("4657278b-411b-11d2-839a-00c04fd918d0")
14100 IDropTargetHelper : public IUnknown
14101 {
14102     virtual HRESULT STDMETHODCALLTYPE DragEnter(
14103         HWND hwndTarget,
14104         IDataObject *pDataObject,
14105         POINT *ppt,
14106         DWORD dwEffect) = 0;
14107 
14108     virtual HRESULT STDMETHODCALLTYPE DragLeave(
14109         ) = 0;
14110 
14111     virtual HRESULT STDMETHODCALLTYPE DragOver(
14112         POINT *ppt,
14113         DWORD dwEffect) = 0;
14114 
14115     virtual HRESULT STDMETHODCALLTYPE Drop(
14116         IDataObject *pDataObject,
14117         POINT *ppt,
14118         DWORD dwEffect) = 0;
14119 
14120     virtual HRESULT STDMETHODCALLTYPE Show(
14121         WINBOOL fShow) = 0;
14122 
14123 };
14124 #ifdef __CRT_UUID_DECL
14125 __CRT_UUID_DECL(IDropTargetHelper, 0x4657278b, 0x411b, 0x11d2, 0x83,0x9a, 0x00,0xc0,0x4f,0xd9,0x18,0xd0)
14126 #endif
14127 #else
14128 typedef struct IDropTargetHelperVtbl {
14129     BEGIN_INTERFACE
14130 
14131     /*** IUnknown methods ***/
14132     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14133         IDropTargetHelper* This,
14134         REFIID riid,
14135         void **ppvObject);
14136 
14137     ULONG (STDMETHODCALLTYPE *AddRef)(
14138         IDropTargetHelper* This);
14139 
14140     ULONG (STDMETHODCALLTYPE *Release)(
14141         IDropTargetHelper* This);
14142 
14143     /*** IDropTargetHelper methods ***/
14144     HRESULT (STDMETHODCALLTYPE *DragEnter)(
14145         IDropTargetHelper* This,
14146         HWND hwndTarget,
14147         IDataObject *pDataObject,
14148         POINT *ppt,
14149         DWORD dwEffect);
14150 
14151     HRESULT (STDMETHODCALLTYPE *DragLeave)(
14152         IDropTargetHelper* This);
14153 
14154     HRESULT (STDMETHODCALLTYPE *DragOver)(
14155         IDropTargetHelper* This,
14156         POINT *ppt,
14157         DWORD dwEffect);
14158 
14159     HRESULT (STDMETHODCALLTYPE *Drop)(
14160         IDropTargetHelper* This,
14161         IDataObject *pDataObject,
14162         POINT *ppt,
14163         DWORD dwEffect);
14164 
14165     HRESULT (STDMETHODCALLTYPE *Show)(
14166         IDropTargetHelper* This,
14167         WINBOOL fShow);
14168 
14169     END_INTERFACE
14170 } IDropTargetHelperVtbl;
14171 interface IDropTargetHelper {
14172     CONST_VTBL IDropTargetHelperVtbl* lpVtbl;
14173 };
14174 
14175 #ifdef COBJMACROS
14176 #ifndef WIDL_C_INLINE_WRAPPERS
14177 /*** IUnknown methods ***/
14178 #define IDropTargetHelper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14179 #define IDropTargetHelper_AddRef(This) (This)->lpVtbl->AddRef(This)
14180 #define IDropTargetHelper_Release(This) (This)->lpVtbl->Release(This)
14181 /*** IDropTargetHelper methods ***/
14182 #define IDropTargetHelper_DragEnter(This,hwndTarget,pDataObject,ppt,dwEffect) (This)->lpVtbl->DragEnter(This,hwndTarget,pDataObject,ppt,dwEffect)
14183 #define IDropTargetHelper_DragLeave(This) (This)->lpVtbl->DragLeave(This)
14184 #define IDropTargetHelper_DragOver(This,ppt,dwEffect) (This)->lpVtbl->DragOver(This,ppt,dwEffect)
14185 #define IDropTargetHelper_Drop(This,pDataObject,ppt,dwEffect) (This)->lpVtbl->Drop(This,pDataObject,ppt,dwEffect)
14186 #define IDropTargetHelper_Show(This,fShow) (This)->lpVtbl->Show(This,fShow)
14187 #else
14188 /*** IUnknown methods ***/
14189 static FORCEINLINE HRESULT IDropTargetHelper_QueryInterface(IDropTargetHelper* This,REFIID riid,void **ppvObject) {
14190     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14191 }
14192 static FORCEINLINE ULONG IDropTargetHelper_AddRef(IDropTargetHelper* This) {
14193     return This->lpVtbl->AddRef(This);
14194 }
14195 static FORCEINLINE ULONG IDropTargetHelper_Release(IDropTargetHelper* This) {
14196     return This->lpVtbl->Release(This);
14197 }
14198 /*** IDropTargetHelper methods ***/
14199 static FORCEINLINE HRESULT IDropTargetHelper_DragEnter(IDropTargetHelper* This,HWND hwndTarget,IDataObject *pDataObject,POINT *ppt,DWORD dwEffect) {
14200     return This->lpVtbl->DragEnter(This,hwndTarget,pDataObject,ppt,dwEffect);
14201 }
14202 static FORCEINLINE HRESULT IDropTargetHelper_DragLeave(IDropTargetHelper* This) {
14203     return This->lpVtbl->DragLeave(This);
14204 }
14205 static FORCEINLINE HRESULT IDropTargetHelper_DragOver(IDropTargetHelper* This,POINT *ppt,DWORD dwEffect) {
14206     return This->lpVtbl->DragOver(This,ppt,dwEffect);
14207 }
14208 static FORCEINLINE HRESULT IDropTargetHelper_Drop(IDropTargetHelper* This,IDataObject *pDataObject,POINT *ppt,DWORD dwEffect) {
14209     return This->lpVtbl->Drop(This,pDataObject,ppt,dwEffect);
14210 }
14211 static FORCEINLINE HRESULT IDropTargetHelper_Show(IDropTargetHelper* This,WINBOOL fShow) {
14212     return This->lpVtbl->Show(This,fShow);
14213 }
14214 #endif
14215 #endif
14216 
14217 #endif
14218 
14219 HRESULT STDMETHODCALLTYPE IDropTargetHelper_DragEnter_Proxy(
14220     IDropTargetHelper* This,
14221     HWND hwndTarget,
14222     IDataObject *pDataObject,
14223     POINT *ppt,
14224     DWORD dwEffect);
14225 void __RPC_STUB IDropTargetHelper_DragEnter_Stub(
14226     IRpcStubBuffer* This,
14227     IRpcChannelBuffer* pRpcChannelBuffer,
14228     PRPC_MESSAGE pRpcMessage,
14229     DWORD* pdwStubPhase);
14230 HRESULT STDMETHODCALLTYPE IDropTargetHelper_DragLeave_Proxy(
14231     IDropTargetHelper* This);
14232 void __RPC_STUB IDropTargetHelper_DragLeave_Stub(
14233     IRpcStubBuffer* This,
14234     IRpcChannelBuffer* pRpcChannelBuffer,
14235     PRPC_MESSAGE pRpcMessage,
14236     DWORD* pdwStubPhase);
14237 HRESULT STDMETHODCALLTYPE IDropTargetHelper_DragOver_Proxy(
14238     IDropTargetHelper* This,
14239     POINT *ppt,
14240     DWORD dwEffect);
14241 void __RPC_STUB IDropTargetHelper_DragOver_Stub(
14242     IRpcStubBuffer* This,
14243     IRpcChannelBuffer* pRpcChannelBuffer,
14244     PRPC_MESSAGE pRpcMessage,
14245     DWORD* pdwStubPhase);
14246 HRESULT STDMETHODCALLTYPE IDropTargetHelper_Drop_Proxy(
14247     IDropTargetHelper* This,
14248     IDataObject *pDataObject,
14249     POINT *ppt,
14250     DWORD dwEffect);
14251 void __RPC_STUB IDropTargetHelper_Drop_Stub(
14252     IRpcStubBuffer* This,
14253     IRpcChannelBuffer* pRpcChannelBuffer,
14254     PRPC_MESSAGE pRpcMessage,
14255     DWORD* pdwStubPhase);
14256 HRESULT STDMETHODCALLTYPE IDropTargetHelper_Show_Proxy(
14257     IDropTargetHelper* This,
14258     WINBOOL fShow);
14259 void __RPC_STUB IDropTargetHelper_Show_Stub(
14260     IRpcStubBuffer* This,
14261     IRpcChannelBuffer* pRpcChannelBuffer,
14262     PRPC_MESSAGE pRpcMessage,
14263     DWORD* pdwStubPhase);
14264 
14265 #endif  /* __IDropTargetHelper_INTERFACE_DEFINED__ */
14266 
14267 
14268 /*****************************************************************************
14269  * IDragSourceHelper interface
14270  */
14271 #ifndef __IDragSourceHelper_INTERFACE_DEFINED__
14272 #define __IDragSourceHelper_INTERFACE_DEFINED__
14273 
14274 DEFINE_GUID(IID_IDragSourceHelper, 0xde5bf786, 0x477a, 0x11d2, 0x83,0x9d, 0x00,0xc0,0x4f,0xd9,0x18,0xd0);
14275 #if defined(__cplusplus) && !defined(CINTERFACE)
14276 MIDL_INTERFACE("de5bf786-477a-11d2-839d-00c04fd918d0")
14277 IDragSourceHelper : public IUnknown
14278 {
14279     virtual HRESULT STDMETHODCALLTYPE InitializeFromBitmap(
14280         LPSHDRAGIMAGE pshdi,
14281         IDataObject *pDataObject) = 0;
14282 
14283     virtual HRESULT STDMETHODCALLTYPE InitializeFromWindow(
14284         HWND hwnd,
14285         POINT *ppt,
14286         IDataObject *pDataObject) = 0;
14287 
14288 };
14289 #ifdef __CRT_UUID_DECL
14290 __CRT_UUID_DECL(IDragSourceHelper, 0xde5bf786, 0x477a, 0x11d2, 0x83,0x9d, 0x00,0xc0,0x4f,0xd9,0x18,0xd0)
14291 #endif
14292 #else
14293 typedef struct IDragSourceHelperVtbl {
14294     BEGIN_INTERFACE
14295 
14296     /*** IUnknown methods ***/
14297     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14298         IDragSourceHelper* This,
14299         REFIID riid,
14300         void **ppvObject);
14301 
14302     ULONG (STDMETHODCALLTYPE *AddRef)(
14303         IDragSourceHelper* This);
14304 
14305     ULONG (STDMETHODCALLTYPE *Release)(
14306         IDragSourceHelper* This);
14307 
14308     /*** IDragSourceHelper methods ***/
14309     HRESULT (STDMETHODCALLTYPE *InitializeFromBitmap)(
14310         IDragSourceHelper* This,
14311         LPSHDRAGIMAGE pshdi,
14312         IDataObject *pDataObject);
14313 
14314     HRESULT (STDMETHODCALLTYPE *InitializeFromWindow)(
14315         IDragSourceHelper* This,
14316         HWND hwnd,
14317         POINT *ppt,
14318         IDataObject *pDataObject);
14319 
14320     END_INTERFACE
14321 } IDragSourceHelperVtbl;
14322 interface IDragSourceHelper {
14323     CONST_VTBL IDragSourceHelperVtbl* lpVtbl;
14324 };
14325 
14326 #ifdef COBJMACROS
14327 #ifndef WIDL_C_INLINE_WRAPPERS
14328 /*** IUnknown methods ***/
14329 #define IDragSourceHelper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14330 #define IDragSourceHelper_AddRef(This) (This)->lpVtbl->AddRef(This)
14331 #define IDragSourceHelper_Release(This) (This)->lpVtbl->Release(This)
14332 /*** IDragSourceHelper methods ***/
14333 #define IDragSourceHelper_InitializeFromBitmap(This,pshdi,pDataObject) (This)->lpVtbl->InitializeFromBitmap(This,pshdi,pDataObject)
14334 #define IDragSourceHelper_InitializeFromWindow(This,hwnd,ppt,pDataObject) (This)->lpVtbl->InitializeFromWindow(This,hwnd,ppt,pDataObject)
14335 #else
14336 /*** IUnknown methods ***/
14337 static FORCEINLINE HRESULT IDragSourceHelper_QueryInterface(IDragSourceHelper* This,REFIID riid,void **ppvObject) {
14338     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14339 }
14340 static FORCEINLINE ULONG IDragSourceHelper_AddRef(IDragSourceHelper* This) {
14341     return This->lpVtbl->AddRef(This);
14342 }
14343 static FORCEINLINE ULONG IDragSourceHelper_Release(IDragSourceHelper* This) {
14344     return This->lpVtbl->Release(This);
14345 }
14346 /*** IDragSourceHelper methods ***/
14347 static FORCEINLINE HRESULT IDragSourceHelper_InitializeFromBitmap(IDragSourceHelper* This,LPSHDRAGIMAGE pshdi,IDataObject *pDataObject) {
14348     return This->lpVtbl->InitializeFromBitmap(This,pshdi,pDataObject);
14349 }
14350 static FORCEINLINE HRESULT IDragSourceHelper_InitializeFromWindow(IDragSourceHelper* This,HWND hwnd,POINT *ppt,IDataObject *pDataObject) {
14351     return This->lpVtbl->InitializeFromWindow(This,hwnd,ppt,pDataObject);
14352 }
14353 #endif
14354 #endif
14355 
14356 #endif
14357 
14358 HRESULT STDMETHODCALLTYPE IDragSourceHelper_InitializeFromBitmap_Proxy(
14359     IDragSourceHelper* This,
14360     LPSHDRAGIMAGE pshdi,
14361     IDataObject *pDataObject);
14362 void __RPC_STUB IDragSourceHelper_InitializeFromBitmap_Stub(
14363     IRpcStubBuffer* This,
14364     IRpcChannelBuffer* pRpcChannelBuffer,
14365     PRPC_MESSAGE pRpcMessage,
14366     DWORD* pdwStubPhase);
14367 HRESULT STDMETHODCALLTYPE IDragSourceHelper_InitializeFromWindow_Proxy(
14368     IDragSourceHelper* This,
14369     HWND hwnd,
14370     POINT *ppt,
14371     IDataObject *pDataObject);
14372 void __RPC_STUB IDragSourceHelper_InitializeFromWindow_Stub(
14373     IRpcStubBuffer* This,
14374     IRpcChannelBuffer* pRpcChannelBuffer,
14375     PRPC_MESSAGE pRpcMessage,
14376     DWORD* pdwStubPhase);
14377 
14378 #endif  /* __IDragSourceHelper_INTERFACE_DEFINED__ */
14379 
14380 
14381 #if NTDDI_VERSION >= NTDDI_VISTA
14382 typedef enum DSH_FLAGS {
14383     DSH_ALLOWDROPDESCRIPTIONTEXT = 0x1
14384 } DSH_FLAGS;
14385 
14386 DEFINE_ENUM_FLAG_OPERATORS(DSH_FLAGS)
14387 
14388 /*****************************************************************************
14389  * IDragSourceHelper2 interface
14390  */
14391 #ifndef __IDragSourceHelper2_INTERFACE_DEFINED__
14392 #define __IDragSourceHelper2_INTERFACE_DEFINED__
14393 
14394 DEFINE_GUID(IID_IDragSourceHelper2, 0x83e07d0d, 0x0c5f, 0x4163, 0xbf,0x1a, 0x60,0xb2,0x74,0x05,0x1e,0x40);
14395 #if defined(__cplusplus) && !defined(CINTERFACE)
14396 MIDL_INTERFACE("83e07d0d-0c5f-4163-bf1a-60b274051e40")
14397 IDragSourceHelper2 : public IDragSourceHelper
14398 {
14399     virtual HRESULT STDMETHODCALLTYPE SetFlags(
14400         DWORD dwFlags) = 0;
14401 
14402 };
14403 #ifdef __CRT_UUID_DECL
14404 __CRT_UUID_DECL(IDragSourceHelper2, 0x83e07d0d, 0x0c5f, 0x4163, 0xbf,0x1a, 0x60,0xb2,0x74,0x05,0x1e,0x40)
14405 #endif
14406 #else
14407 typedef struct IDragSourceHelper2Vtbl {
14408     BEGIN_INTERFACE
14409 
14410     /*** IUnknown methods ***/
14411     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14412         IDragSourceHelper2* This,
14413         REFIID riid,
14414         void **ppvObject);
14415 
14416     ULONG (STDMETHODCALLTYPE *AddRef)(
14417         IDragSourceHelper2* This);
14418 
14419     ULONG (STDMETHODCALLTYPE *Release)(
14420         IDragSourceHelper2* This);
14421 
14422     /*** IDragSourceHelper methods ***/
14423     HRESULT (STDMETHODCALLTYPE *InitializeFromBitmap)(
14424         IDragSourceHelper2* This,
14425         LPSHDRAGIMAGE pshdi,
14426         IDataObject *pDataObject);
14427 
14428     HRESULT (STDMETHODCALLTYPE *InitializeFromWindow)(
14429         IDragSourceHelper2* This,
14430         HWND hwnd,
14431         POINT *ppt,
14432         IDataObject *pDataObject);
14433 
14434     /*** IDragSourceHelper2 methods ***/
14435     HRESULT (STDMETHODCALLTYPE *SetFlags)(
14436         IDragSourceHelper2* This,
14437         DWORD dwFlags);
14438 
14439     END_INTERFACE
14440 } IDragSourceHelper2Vtbl;
14441 interface IDragSourceHelper2 {
14442     CONST_VTBL IDragSourceHelper2Vtbl* lpVtbl;
14443 };
14444 
14445 #ifdef COBJMACROS
14446 #ifndef WIDL_C_INLINE_WRAPPERS
14447 /*** IUnknown methods ***/
14448 #define IDragSourceHelper2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14449 #define IDragSourceHelper2_AddRef(This) (This)->lpVtbl->AddRef(This)
14450 #define IDragSourceHelper2_Release(This) (This)->lpVtbl->Release(This)
14451 /*** IDragSourceHelper methods ***/
14452 #define IDragSourceHelper2_InitializeFromBitmap(This,pshdi,pDataObject) (This)->lpVtbl->InitializeFromBitmap(This,pshdi,pDataObject)
14453 #define IDragSourceHelper2_InitializeFromWindow(This,hwnd,ppt,pDataObject) (This)->lpVtbl->InitializeFromWindow(This,hwnd,ppt,pDataObject)
14454 /*** IDragSourceHelper2 methods ***/
14455 #define IDragSourceHelper2_SetFlags(This,dwFlags) (This)->lpVtbl->SetFlags(This,dwFlags)
14456 #else
14457 /*** IUnknown methods ***/
14458 static FORCEINLINE HRESULT IDragSourceHelper2_QueryInterface(IDragSourceHelper2* This,REFIID riid,void **ppvObject) {
14459     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14460 }
14461 static FORCEINLINE ULONG IDragSourceHelper2_AddRef(IDragSourceHelper2* This) {
14462     return This->lpVtbl->AddRef(This);
14463 }
14464 static FORCEINLINE ULONG IDragSourceHelper2_Release(IDragSourceHelper2* This) {
14465     return This->lpVtbl->Release(This);
14466 }
14467 /*** IDragSourceHelper methods ***/
14468 static FORCEINLINE HRESULT IDragSourceHelper2_InitializeFromBitmap(IDragSourceHelper2* This,LPSHDRAGIMAGE pshdi,IDataObject *pDataObject) {
14469     return This->lpVtbl->InitializeFromBitmap(This,pshdi,pDataObject);
14470 }
14471 static FORCEINLINE HRESULT IDragSourceHelper2_InitializeFromWindow(IDragSourceHelper2* This,HWND hwnd,POINT *ppt,IDataObject *pDataObject) {
14472     return This->lpVtbl->InitializeFromWindow(This,hwnd,ppt,pDataObject);
14473 }
14474 /*** IDragSourceHelper2 methods ***/
14475 static FORCEINLINE HRESULT IDragSourceHelper2_SetFlags(IDragSourceHelper2* This,DWORD dwFlags) {
14476     return This->lpVtbl->SetFlags(This,dwFlags);
14477 }
14478 #endif
14479 #endif
14480 
14481 #endif
14482 
14483 HRESULT STDMETHODCALLTYPE IDragSourceHelper2_SetFlags_Proxy(
14484     IDragSourceHelper2* This,
14485     DWORD dwFlags);
14486 void __RPC_STUB IDragSourceHelper2_SetFlags_Stub(
14487     IRpcStubBuffer* This,
14488     IRpcChannelBuffer* pRpcChannelBuffer,
14489     PRPC_MESSAGE pRpcMessage,
14490     DWORD* pdwStubPhase);
14491 
14492 #endif  /* __IDragSourceHelper2_INTERFACE_DEFINED__ */
14493 
14494 #endif
14495 
14496 #define IShellLink __MINGW_NAME_AW(IShellLink)
14497 
14498 typedef enum SLR_FLAGS {
14499     SLR_NO_UI = 0x1,
14500     SLR_ANY_MATCH = 0x2,
14501     SLR_UPDATE = 0x4,
14502     SLR_NOUPDATE = 0x8,
14503     SLR_NOSEARCH = 0x10,
14504     SLR_NOTRACK = 0x20,
14505     SLR_NOLINKINFO = 0x40,
14506     SLR_INVOKE_MSI = 0x80,
14507     SLR_NO_UI_WITH_MSG_PUMP = 0x101,
14508     SLR_OFFER_DELETE_WITHOUT_FILE = 0x200,
14509     SLR_KNOWNFOLDER = 0x400,
14510     SLR_MACHINE_IN_LOCAL_TARGET = 0x800,
14511     SLR_UPDATE_MACHINE_AND_SID = 0x1000
14512 } SLR_FLAGS;
14513 
14514 DEFINE_ENUM_FLAG_OPERATORS(SLR_FLAGS)
14515 
14516 typedef enum SLGP_FLAGS {
14517     SLGP_SHORTPATH = 0x1,
14518     SLGP_UNCPRIORITY = 0x2,
14519     SLGP_RAWPATH = 0x4,
14520     SLGP_RELATIVEPRIORITY = 0x8
14521 } SLGP_FLAGS;
14522 
14523 DEFINE_ENUM_FLAG_OPERATORS(SLGP_FLAGS)
14524 
14525 /*****************************************************************************
14526  * IShellLinkA interface
14527  */
14528 #ifndef __IShellLinkA_INTERFACE_DEFINED__
14529 #define __IShellLinkA_INTERFACE_DEFINED__
14530 
14531 DEFINE_GUID(IID_IShellLinkA, 0x000214ee, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
14532 #if defined(__cplusplus) && !defined(CINTERFACE)
14533 MIDL_INTERFACE("000214ee-0000-0000-c000-000000000046")
14534 IShellLinkA : public IUnknown
14535 {
14536     virtual HRESULT STDMETHODCALLTYPE GetPath(
14537         LPSTR pszFile,
14538         int cch,
14539         WIN32_FIND_DATAA *pfd,
14540         DWORD fFlags) = 0;
14541 
14542     virtual HRESULT STDMETHODCALLTYPE GetIDList(
14543         PIDLIST_ABSOLUTE *ppidl) = 0;
14544 
14545     virtual HRESULT STDMETHODCALLTYPE SetIDList(
14546         PCIDLIST_ABSOLUTE pidl) = 0;
14547 
14548     virtual HRESULT STDMETHODCALLTYPE GetDescription(
14549         LPSTR pszName,
14550         int cch) = 0;
14551 
14552     virtual HRESULT STDMETHODCALLTYPE SetDescription(
14553         LPCSTR pszName) = 0;
14554 
14555     virtual HRESULT STDMETHODCALLTYPE GetWorkingDirectory(
14556         LPSTR pszDir,
14557         int cch) = 0;
14558 
14559     virtual HRESULT STDMETHODCALLTYPE SetWorkingDirectory(
14560         LPCSTR pszDir) = 0;
14561 
14562     virtual HRESULT STDMETHODCALLTYPE GetArguments(
14563         LPSTR pszArgs,
14564         int cch) = 0;
14565 
14566     virtual HRESULT STDMETHODCALLTYPE SetArguments(
14567         LPCSTR pszArgs) = 0;
14568 
14569     virtual HRESULT STDMETHODCALLTYPE GetHotkey(
14570         WORD *pwHotkey) = 0;
14571 
14572     virtual HRESULT STDMETHODCALLTYPE SetHotkey(
14573         WORD wHotkey) = 0;
14574 
14575     virtual HRESULT STDMETHODCALLTYPE GetShowCmd(
14576         int *piShowCmd) = 0;
14577 
14578     virtual HRESULT STDMETHODCALLTYPE SetShowCmd(
14579         int iShowCmd) = 0;
14580 
14581     virtual HRESULT STDMETHODCALLTYPE GetIconLocation(
14582         LPSTR pszIconPath,
14583         int cch,
14584         int *piIcon) = 0;
14585 
14586     virtual HRESULT STDMETHODCALLTYPE SetIconLocation(
14587         LPCSTR pszIconPath,
14588         int iIcon) = 0;
14589 
14590     virtual HRESULT STDMETHODCALLTYPE SetRelativePath(
14591         LPCSTR pszPathRel,
14592         DWORD dwReserved) = 0;
14593 
14594     virtual HRESULT STDMETHODCALLTYPE Resolve(
14595         HWND hwnd,
14596         DWORD fFlags) = 0;
14597 
14598     virtual HRESULT STDMETHODCALLTYPE SetPath(
14599         LPCSTR pszFile) = 0;
14600 
14601 };
14602 #ifdef __CRT_UUID_DECL
14603 __CRT_UUID_DECL(IShellLinkA, 0x000214ee, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
14604 #endif
14605 #else
14606 typedef struct IShellLinkAVtbl {
14607     BEGIN_INTERFACE
14608 
14609     /*** IUnknown methods ***/
14610     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14611         IShellLinkA* This,
14612         REFIID riid,
14613         void **ppvObject);
14614 
14615     ULONG (STDMETHODCALLTYPE *AddRef)(
14616         IShellLinkA* This);
14617 
14618     ULONG (STDMETHODCALLTYPE *Release)(
14619         IShellLinkA* This);
14620 
14621     /*** IShellLinkA methods ***/
14622     HRESULT (STDMETHODCALLTYPE *GetPath)(
14623         IShellLinkA* This,
14624         LPSTR pszFile,
14625         int cch,
14626         WIN32_FIND_DATAA *pfd,
14627         DWORD fFlags);
14628 
14629     HRESULT (STDMETHODCALLTYPE *GetIDList)(
14630         IShellLinkA* This,
14631         PIDLIST_ABSOLUTE *ppidl);
14632 
14633     HRESULT (STDMETHODCALLTYPE *SetIDList)(
14634         IShellLinkA* This,
14635         PCIDLIST_ABSOLUTE pidl);
14636 
14637     HRESULT (STDMETHODCALLTYPE *GetDescription)(
14638         IShellLinkA* This,
14639         LPSTR pszName,
14640         int cch);
14641 
14642     HRESULT (STDMETHODCALLTYPE *SetDescription)(
14643         IShellLinkA* This,
14644         LPCSTR pszName);
14645 
14646     HRESULT (STDMETHODCALLTYPE *GetWorkingDirectory)(
14647         IShellLinkA* This,
14648         LPSTR pszDir,
14649         int cch);
14650 
14651     HRESULT (STDMETHODCALLTYPE *SetWorkingDirectory)(
14652         IShellLinkA* This,
14653         LPCSTR pszDir);
14654 
14655     HRESULT (STDMETHODCALLTYPE *GetArguments)(
14656         IShellLinkA* This,
14657         LPSTR pszArgs,
14658         int cch);
14659 
14660     HRESULT (STDMETHODCALLTYPE *SetArguments)(
14661         IShellLinkA* This,
14662         LPCSTR pszArgs);
14663 
14664     HRESULT (STDMETHODCALLTYPE *GetHotkey)(
14665         IShellLinkA* This,
14666         WORD *pwHotkey);
14667 
14668     HRESULT (STDMETHODCALLTYPE *SetHotkey)(
14669         IShellLinkA* This,
14670         WORD wHotkey);
14671 
14672     HRESULT (STDMETHODCALLTYPE *GetShowCmd)(
14673         IShellLinkA* This,
14674         int *piShowCmd);
14675 
14676     HRESULT (STDMETHODCALLTYPE *SetShowCmd)(
14677         IShellLinkA* This,
14678         int iShowCmd);
14679 
14680     HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
14681         IShellLinkA* This,
14682         LPSTR pszIconPath,
14683         int cch,
14684         int *piIcon);
14685 
14686     HRESULT (STDMETHODCALLTYPE *SetIconLocation)(
14687         IShellLinkA* This,
14688         LPCSTR pszIconPath,
14689         int iIcon);
14690 
14691     HRESULT (STDMETHODCALLTYPE *SetRelativePath)(
14692         IShellLinkA* This,
14693         LPCSTR pszPathRel,
14694         DWORD dwReserved);
14695 
14696     HRESULT (STDMETHODCALLTYPE *Resolve)(
14697         IShellLinkA* This,
14698         HWND hwnd,
14699         DWORD fFlags);
14700 
14701     HRESULT (STDMETHODCALLTYPE *SetPath)(
14702         IShellLinkA* This,
14703         LPCSTR pszFile);
14704 
14705     END_INTERFACE
14706 } IShellLinkAVtbl;
14707 interface IShellLinkA {
14708     CONST_VTBL IShellLinkAVtbl* lpVtbl;
14709 };
14710 
14711 #ifdef COBJMACROS
14712 #ifndef WIDL_C_INLINE_WRAPPERS
14713 /*** IUnknown methods ***/
14714 #define IShellLinkA_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14715 #define IShellLinkA_AddRef(This) (This)->lpVtbl->AddRef(This)
14716 #define IShellLinkA_Release(This) (This)->lpVtbl->Release(This)
14717 /*** IShellLinkA methods ***/
14718 #define IShellLinkA_GetPath(This,pszFile,cch,pfd,fFlags) (This)->lpVtbl->GetPath(This,pszFile,cch,pfd,fFlags)
14719 #define IShellLinkA_GetIDList(This,ppidl) (This)->lpVtbl->GetIDList(This,ppidl)
14720 #define IShellLinkA_SetIDList(This,pidl) (This)->lpVtbl->SetIDList(This,pidl)
14721 #define IShellLinkA_GetDescription(This,pszName,cch) (This)->lpVtbl->GetDescription(This,pszName,cch)
14722 #define IShellLinkA_SetDescription(This,pszName) (This)->lpVtbl->SetDescription(This,pszName)
14723 #define IShellLinkA_GetWorkingDirectory(This,pszDir,cch) (This)->lpVtbl->GetWorkingDirectory(This,pszDir,cch)
14724 #define IShellLinkA_SetWorkingDirectory(This,pszDir) (This)->lpVtbl->SetWorkingDirectory(This,pszDir)
14725 #define IShellLinkA_GetArguments(This,pszArgs,cch) (This)->lpVtbl->GetArguments(This,pszArgs,cch)
14726 #define IShellLinkA_SetArguments(This,pszArgs) (This)->lpVtbl->SetArguments(This,pszArgs)
14727 #define IShellLinkA_GetHotkey(This,pwHotkey) (This)->lpVtbl->GetHotkey(This,pwHotkey)
14728 #define IShellLinkA_SetHotkey(This,wHotkey) (This)->lpVtbl->SetHotkey(This,wHotkey)
14729 #define IShellLinkA_GetShowCmd(This,piShowCmd) (This)->lpVtbl->GetShowCmd(This,piShowCmd)
14730 #define IShellLinkA_SetShowCmd(This,iShowCmd) (This)->lpVtbl->SetShowCmd(This,iShowCmd)
14731 #define IShellLinkA_GetIconLocation(This,pszIconPath,cch,piIcon) (This)->lpVtbl->GetIconLocation(This,pszIconPath,cch,piIcon)
14732 #define IShellLinkA_SetIconLocation(This,pszIconPath,iIcon) (This)->lpVtbl->SetIconLocation(This,pszIconPath,iIcon)
14733 #define IShellLinkA_SetRelativePath(This,pszPathRel,dwReserved) (This)->lpVtbl->SetRelativePath(This,pszPathRel,dwReserved)
14734 #define IShellLinkA_Resolve(This,hwnd,fFlags) (This)->lpVtbl->Resolve(This,hwnd,fFlags)
14735 #define IShellLinkA_SetPath(This,pszFile) (This)->lpVtbl->SetPath(This,pszFile)
14736 #else
14737 /*** IUnknown methods ***/
14738 static FORCEINLINE HRESULT IShellLinkA_QueryInterface(IShellLinkA* This,REFIID riid,void **ppvObject) {
14739     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14740 }
14741 static FORCEINLINE ULONG IShellLinkA_AddRef(IShellLinkA* This) {
14742     return This->lpVtbl->AddRef(This);
14743 }
14744 static FORCEINLINE ULONG IShellLinkA_Release(IShellLinkA* This) {
14745     return This->lpVtbl->Release(This);
14746 }
14747 /*** IShellLinkA methods ***/
14748 static FORCEINLINE HRESULT IShellLinkA_GetPath(IShellLinkA* This,LPSTR pszFile,int cch,WIN32_FIND_DATAA *pfd,DWORD fFlags) {
14749     return This->lpVtbl->GetPath(This,pszFile,cch,pfd,fFlags);
14750 }
14751 static FORCEINLINE HRESULT IShellLinkA_GetIDList(IShellLinkA* This,PIDLIST_ABSOLUTE *ppidl) {
14752     return This->lpVtbl->GetIDList(This,ppidl);
14753 }
14754 static FORCEINLINE HRESULT IShellLinkA_SetIDList(IShellLinkA* This,PCIDLIST_ABSOLUTE pidl) {
14755     return This->lpVtbl->SetIDList(This,pidl);
14756 }
14757 static FORCEINLINE HRESULT IShellLinkA_GetDescription(IShellLinkA* This,LPSTR pszName,int cch) {
14758     return This->lpVtbl->GetDescription(This,pszName,cch);
14759 }
14760 static FORCEINLINE HRESULT IShellLinkA_SetDescription(IShellLinkA* This,LPCSTR pszName) {
14761     return This->lpVtbl->SetDescription(This,pszName);
14762 }
14763 static FORCEINLINE HRESULT IShellLinkA_GetWorkingDirectory(IShellLinkA* This,LPSTR pszDir,int cch) {
14764     return This->lpVtbl->GetWorkingDirectory(This,pszDir,cch);
14765 }
14766 static FORCEINLINE HRESULT IShellLinkA_SetWorkingDirectory(IShellLinkA* This,LPCSTR pszDir) {
14767     return This->lpVtbl->SetWorkingDirectory(This,pszDir);
14768 }
14769 static FORCEINLINE HRESULT IShellLinkA_GetArguments(IShellLinkA* This,LPSTR pszArgs,int cch) {
14770     return This->lpVtbl->GetArguments(This,pszArgs,cch);
14771 }
14772 static FORCEINLINE HRESULT IShellLinkA_SetArguments(IShellLinkA* This,LPCSTR pszArgs) {
14773     return This->lpVtbl->SetArguments(This,pszArgs);
14774 }
14775 static FORCEINLINE HRESULT IShellLinkA_GetHotkey(IShellLinkA* This,WORD *pwHotkey) {
14776     return This->lpVtbl->GetHotkey(This,pwHotkey);
14777 }
14778 static FORCEINLINE HRESULT IShellLinkA_SetHotkey(IShellLinkA* This,WORD wHotkey) {
14779     return This->lpVtbl->SetHotkey(This,wHotkey);
14780 }
14781 static FORCEINLINE HRESULT IShellLinkA_GetShowCmd(IShellLinkA* This,int *piShowCmd) {
14782     return This->lpVtbl->GetShowCmd(This,piShowCmd);
14783 }
14784 static FORCEINLINE HRESULT IShellLinkA_SetShowCmd(IShellLinkA* This,int iShowCmd) {
14785     return This->lpVtbl->SetShowCmd(This,iShowCmd);
14786 }
14787 static FORCEINLINE HRESULT IShellLinkA_GetIconLocation(IShellLinkA* This,LPSTR pszIconPath,int cch,int *piIcon) {
14788     return This->lpVtbl->GetIconLocation(This,pszIconPath,cch,piIcon);
14789 }
14790 static FORCEINLINE HRESULT IShellLinkA_SetIconLocation(IShellLinkA* This,LPCSTR pszIconPath,int iIcon) {
14791     return This->lpVtbl->SetIconLocation(This,pszIconPath,iIcon);
14792 }
14793 static FORCEINLINE HRESULT IShellLinkA_SetRelativePath(IShellLinkA* This,LPCSTR pszPathRel,DWORD dwReserved) {
14794     return This->lpVtbl->SetRelativePath(This,pszPathRel,dwReserved);
14795 }
14796 static FORCEINLINE HRESULT IShellLinkA_Resolve(IShellLinkA* This,HWND hwnd,DWORD fFlags) {
14797     return This->lpVtbl->Resolve(This,hwnd,fFlags);
14798 }
14799 static FORCEINLINE HRESULT IShellLinkA_SetPath(IShellLinkA* This,LPCSTR pszFile) {
14800     return This->lpVtbl->SetPath(This,pszFile);
14801 }
14802 #endif
14803 #endif
14804 
14805 #endif
14806 
14807 HRESULT STDMETHODCALLTYPE IShellLinkA_GetPath_Proxy(
14808     IShellLinkA* This,
14809     LPSTR pszFile,
14810     int cch,
14811     WIN32_FIND_DATAA *pfd,
14812     DWORD fFlags);
14813 void __RPC_STUB IShellLinkA_GetPath_Stub(
14814     IRpcStubBuffer* This,
14815     IRpcChannelBuffer* pRpcChannelBuffer,
14816     PRPC_MESSAGE pRpcMessage,
14817     DWORD* pdwStubPhase);
14818 HRESULT STDMETHODCALLTYPE IShellLinkA_GetIDList_Proxy(
14819     IShellLinkA* This,
14820     PIDLIST_ABSOLUTE *ppidl);
14821 void __RPC_STUB IShellLinkA_GetIDList_Stub(
14822     IRpcStubBuffer* This,
14823     IRpcChannelBuffer* pRpcChannelBuffer,
14824     PRPC_MESSAGE pRpcMessage,
14825     DWORD* pdwStubPhase);
14826 HRESULT STDMETHODCALLTYPE IShellLinkA_SetIDList_Proxy(
14827     IShellLinkA* This,
14828     PCIDLIST_ABSOLUTE pidl);
14829 void __RPC_STUB IShellLinkA_SetIDList_Stub(
14830     IRpcStubBuffer* This,
14831     IRpcChannelBuffer* pRpcChannelBuffer,
14832     PRPC_MESSAGE pRpcMessage,
14833     DWORD* pdwStubPhase);
14834 HRESULT STDMETHODCALLTYPE IShellLinkA_GetDescription_Proxy(
14835     IShellLinkA* This,
14836     LPSTR pszName,
14837     int cch);
14838 void __RPC_STUB IShellLinkA_GetDescription_Stub(
14839     IRpcStubBuffer* This,
14840     IRpcChannelBuffer* pRpcChannelBuffer,
14841     PRPC_MESSAGE pRpcMessage,
14842     DWORD* pdwStubPhase);
14843 HRESULT STDMETHODCALLTYPE IShellLinkA_SetDescription_Proxy(
14844     IShellLinkA* This,
14845     LPCSTR pszName);
14846 void __RPC_STUB IShellLinkA_SetDescription_Stub(
14847     IRpcStubBuffer* This,
14848     IRpcChannelBuffer* pRpcChannelBuffer,
14849     PRPC_MESSAGE pRpcMessage,
14850     DWORD* pdwStubPhase);
14851 HRESULT STDMETHODCALLTYPE IShellLinkA_GetWorkingDirectory_Proxy(
14852     IShellLinkA* This,
14853     LPSTR pszDir,
14854     int cch);
14855 void __RPC_STUB IShellLinkA_GetWorkingDirectory_Stub(
14856     IRpcStubBuffer* This,
14857     IRpcChannelBuffer* pRpcChannelBuffer,
14858     PRPC_MESSAGE pRpcMessage,
14859     DWORD* pdwStubPhase);
14860 HRESULT STDMETHODCALLTYPE IShellLinkA_SetWorkingDirectory_Proxy(
14861     IShellLinkA* This,
14862     LPCSTR pszDir);
14863 void __RPC_STUB IShellLinkA_SetWorkingDirectory_Stub(
14864     IRpcStubBuffer* This,
14865     IRpcChannelBuffer* pRpcChannelBuffer,
14866     PRPC_MESSAGE pRpcMessage,
14867     DWORD* pdwStubPhase);
14868 HRESULT STDMETHODCALLTYPE IShellLinkA_GetArguments_Proxy(
14869     IShellLinkA* This,
14870     LPSTR pszArgs,
14871     int cch);
14872 void __RPC_STUB IShellLinkA_GetArguments_Stub(
14873     IRpcStubBuffer* This,
14874     IRpcChannelBuffer* pRpcChannelBuffer,
14875     PRPC_MESSAGE pRpcMessage,
14876     DWORD* pdwStubPhase);
14877 HRESULT STDMETHODCALLTYPE IShellLinkA_SetArguments_Proxy(
14878     IShellLinkA* This,
14879     LPCSTR pszArgs);
14880 void __RPC_STUB IShellLinkA_SetArguments_Stub(
14881     IRpcStubBuffer* This,
14882     IRpcChannelBuffer* pRpcChannelBuffer,
14883     PRPC_MESSAGE pRpcMessage,
14884     DWORD* pdwStubPhase);
14885 HRESULT STDMETHODCALLTYPE IShellLinkA_GetHotkey_Proxy(
14886     IShellLinkA* This,
14887     WORD *pwHotkey);
14888 void __RPC_STUB IShellLinkA_GetHotkey_Stub(
14889     IRpcStubBuffer* This,
14890     IRpcChannelBuffer* pRpcChannelBuffer,
14891     PRPC_MESSAGE pRpcMessage,
14892     DWORD* pdwStubPhase);
14893 HRESULT STDMETHODCALLTYPE IShellLinkA_SetHotkey_Proxy(
14894     IShellLinkA* This,
14895     WORD wHotkey);
14896 void __RPC_STUB IShellLinkA_SetHotkey_Stub(
14897     IRpcStubBuffer* This,
14898     IRpcChannelBuffer* pRpcChannelBuffer,
14899     PRPC_MESSAGE pRpcMessage,
14900     DWORD* pdwStubPhase);
14901 HRESULT STDMETHODCALLTYPE IShellLinkA_GetShowCmd_Proxy(
14902     IShellLinkA* This,
14903     int *piShowCmd);
14904 void __RPC_STUB IShellLinkA_GetShowCmd_Stub(
14905     IRpcStubBuffer* This,
14906     IRpcChannelBuffer* pRpcChannelBuffer,
14907     PRPC_MESSAGE pRpcMessage,
14908     DWORD* pdwStubPhase);
14909 HRESULT STDMETHODCALLTYPE IShellLinkA_SetShowCmd_Proxy(
14910     IShellLinkA* This,
14911     int iShowCmd);
14912 void __RPC_STUB IShellLinkA_SetShowCmd_Stub(
14913     IRpcStubBuffer* This,
14914     IRpcChannelBuffer* pRpcChannelBuffer,
14915     PRPC_MESSAGE pRpcMessage,
14916     DWORD* pdwStubPhase);
14917 HRESULT STDMETHODCALLTYPE IShellLinkA_GetIconLocation_Proxy(
14918     IShellLinkA* This,
14919     LPSTR pszIconPath,
14920     int cch,
14921     int *piIcon);
14922 void __RPC_STUB IShellLinkA_GetIconLocation_Stub(
14923     IRpcStubBuffer* This,
14924     IRpcChannelBuffer* pRpcChannelBuffer,
14925     PRPC_MESSAGE pRpcMessage,
14926     DWORD* pdwStubPhase);
14927 HRESULT STDMETHODCALLTYPE IShellLinkA_SetIconLocation_Proxy(
14928     IShellLinkA* This,
14929     LPCSTR pszIconPath,
14930     int iIcon);
14931 void __RPC_STUB IShellLinkA_SetIconLocation_Stub(
14932     IRpcStubBuffer* This,
14933     IRpcChannelBuffer* pRpcChannelBuffer,
14934     PRPC_MESSAGE pRpcMessage,
14935     DWORD* pdwStubPhase);
14936 HRESULT STDMETHODCALLTYPE IShellLinkA_SetRelativePath_Proxy(
14937     IShellLinkA* This,
14938     LPCSTR pszPathRel,
14939     DWORD dwReserved);
14940 void __RPC_STUB IShellLinkA_SetRelativePath_Stub(
14941     IRpcStubBuffer* This,
14942     IRpcChannelBuffer* pRpcChannelBuffer,
14943     PRPC_MESSAGE pRpcMessage,
14944     DWORD* pdwStubPhase);
14945 HRESULT STDMETHODCALLTYPE IShellLinkA_Resolve_Proxy(
14946     IShellLinkA* This,
14947     HWND hwnd,
14948     DWORD fFlags);
14949 void __RPC_STUB IShellLinkA_Resolve_Stub(
14950     IRpcStubBuffer* This,
14951     IRpcChannelBuffer* pRpcChannelBuffer,
14952     PRPC_MESSAGE pRpcMessage,
14953     DWORD* pdwStubPhase);
14954 HRESULT STDMETHODCALLTYPE IShellLinkA_SetPath_Proxy(
14955     IShellLinkA* This,
14956     LPCSTR pszFile);
14957 void __RPC_STUB IShellLinkA_SetPath_Stub(
14958     IRpcStubBuffer* This,
14959     IRpcChannelBuffer* pRpcChannelBuffer,
14960     PRPC_MESSAGE pRpcMessage,
14961     DWORD* pdwStubPhase);
14962 
14963 #endif  /* __IShellLinkA_INTERFACE_DEFINED__ */
14964 
14965 
14966 /*****************************************************************************
14967  * IShellLinkW interface
14968  */
14969 #ifndef __IShellLinkW_INTERFACE_DEFINED__
14970 #define __IShellLinkW_INTERFACE_DEFINED__
14971 
14972 DEFINE_GUID(IID_IShellLinkW, 0x000214f9, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
14973 #if defined(__cplusplus) && !defined(CINTERFACE)
14974 MIDL_INTERFACE("000214f9-0000-0000-c000-000000000046")
14975 IShellLinkW : public IUnknown
14976 {
14977     virtual HRESULT STDMETHODCALLTYPE GetPath(
14978         LPWSTR pszFile,
14979         int cch,
14980         WIN32_FIND_DATAW *pfd,
14981         DWORD fFlags) = 0;
14982 
14983     virtual HRESULT STDMETHODCALLTYPE GetIDList(
14984         PIDLIST_ABSOLUTE *ppidl) = 0;
14985 
14986     virtual HRESULT STDMETHODCALLTYPE SetIDList(
14987         PCIDLIST_ABSOLUTE pidl) = 0;
14988 
14989     virtual HRESULT STDMETHODCALLTYPE GetDescription(
14990         LPWSTR pszName,
14991         int cch) = 0;
14992 
14993     virtual HRESULT STDMETHODCALLTYPE SetDescription(
14994         LPCWSTR pszName) = 0;
14995 
14996     virtual HRESULT STDMETHODCALLTYPE GetWorkingDirectory(
14997         LPWSTR pszDir,
14998         int cch) = 0;
14999 
15000     virtual HRESULT STDMETHODCALLTYPE SetWorkingDirectory(
15001         LPCWSTR pszDir) = 0;
15002 
15003     virtual HRESULT STDMETHODCALLTYPE GetArguments(
15004         LPWSTR pszArgs,
15005         int cch) = 0;
15006 
15007     virtual HRESULT STDMETHODCALLTYPE SetArguments(
15008         LPCWSTR pszArgs) = 0;
15009 
15010     virtual HRESULT STDMETHODCALLTYPE GetHotkey(
15011         WORD *pwHotkey) = 0;
15012 
15013     virtual HRESULT STDMETHODCALLTYPE SetHotkey(
15014         WORD wHotkey) = 0;
15015 
15016     virtual HRESULT STDMETHODCALLTYPE GetShowCmd(
15017         int *piShowCmd) = 0;
15018 
15019     virtual HRESULT STDMETHODCALLTYPE SetShowCmd(
15020         int iShowCmd) = 0;
15021 
15022     virtual HRESULT STDMETHODCALLTYPE GetIconLocation(
15023         LPWSTR pszIconPath,
15024         int cch,
15025         int *piIcon) = 0;
15026 
15027     virtual HRESULT STDMETHODCALLTYPE SetIconLocation(
15028         LPCWSTR pszIconPath,
15029         int iIcon) = 0;
15030 
15031     virtual HRESULT STDMETHODCALLTYPE SetRelativePath(
15032         LPCWSTR pszPathRel,
15033         DWORD dwReserved) = 0;
15034 
15035     virtual HRESULT STDMETHODCALLTYPE Resolve(
15036         HWND hwnd,
15037         DWORD fFlags) = 0;
15038 
15039     virtual HRESULT STDMETHODCALLTYPE SetPath(
15040         LPCWSTR pszFile) = 0;
15041 
15042 };
15043 #ifdef __CRT_UUID_DECL
15044 __CRT_UUID_DECL(IShellLinkW, 0x000214f9, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
15045 #endif
15046 #else
15047 typedef struct IShellLinkWVtbl {
15048     BEGIN_INTERFACE
15049 
15050     /*** IUnknown methods ***/
15051     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15052         IShellLinkW* This,
15053         REFIID riid,
15054         void **ppvObject);
15055 
15056     ULONG (STDMETHODCALLTYPE *AddRef)(
15057         IShellLinkW* This);
15058 
15059     ULONG (STDMETHODCALLTYPE *Release)(
15060         IShellLinkW* This);
15061 
15062     /*** IShellLinkW methods ***/
15063     HRESULT (STDMETHODCALLTYPE *GetPath)(
15064         IShellLinkW* This,
15065         LPWSTR pszFile,
15066         int cch,
15067         WIN32_FIND_DATAW *pfd,
15068         DWORD fFlags);
15069 
15070     HRESULT (STDMETHODCALLTYPE *GetIDList)(
15071         IShellLinkW* This,
15072         PIDLIST_ABSOLUTE *ppidl);
15073 
15074     HRESULT (STDMETHODCALLTYPE *SetIDList)(
15075         IShellLinkW* This,
15076         PCIDLIST_ABSOLUTE pidl);
15077 
15078     HRESULT (STDMETHODCALLTYPE *GetDescription)(
15079         IShellLinkW* This,
15080         LPWSTR pszName,
15081         int cch);
15082 
15083     HRESULT (STDMETHODCALLTYPE *SetDescription)(
15084         IShellLinkW* This,
15085         LPCWSTR pszName);
15086 
15087     HRESULT (STDMETHODCALLTYPE *GetWorkingDirectory)(
15088         IShellLinkW* This,
15089         LPWSTR pszDir,
15090         int cch);
15091 
15092     HRESULT (STDMETHODCALLTYPE *SetWorkingDirectory)(
15093         IShellLinkW* This,
15094         LPCWSTR pszDir);
15095 
15096     HRESULT (STDMETHODCALLTYPE *GetArguments)(
15097         IShellLinkW* This,
15098         LPWSTR pszArgs,
15099         int cch);
15100 
15101     HRESULT (STDMETHODCALLTYPE *SetArguments)(
15102         IShellLinkW* This,
15103         LPCWSTR pszArgs);
15104 
15105     HRESULT (STDMETHODCALLTYPE *GetHotkey)(
15106         IShellLinkW* This,
15107         WORD *pwHotkey);
15108 
15109     HRESULT (STDMETHODCALLTYPE *SetHotkey)(
15110         IShellLinkW* This,
15111         WORD wHotkey);
15112 
15113     HRESULT (STDMETHODCALLTYPE *GetShowCmd)(
15114         IShellLinkW* This,
15115         int *piShowCmd);
15116 
15117     HRESULT (STDMETHODCALLTYPE *SetShowCmd)(
15118         IShellLinkW* This,
15119         int iShowCmd);
15120 
15121     HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
15122         IShellLinkW* This,
15123         LPWSTR pszIconPath,
15124         int cch,
15125         int *piIcon);
15126 
15127     HRESULT (STDMETHODCALLTYPE *SetIconLocation)(
15128         IShellLinkW* This,
15129         LPCWSTR pszIconPath,
15130         int iIcon);
15131 
15132     HRESULT (STDMETHODCALLTYPE *SetRelativePath)(
15133         IShellLinkW* This,
15134         LPCWSTR pszPathRel,
15135         DWORD dwReserved);
15136 
15137     HRESULT (STDMETHODCALLTYPE *Resolve)(
15138         IShellLinkW* This,
15139         HWND hwnd,
15140         DWORD fFlags);
15141 
15142     HRESULT (STDMETHODCALLTYPE *SetPath)(
15143         IShellLinkW* This,
15144         LPCWSTR pszFile);
15145 
15146     END_INTERFACE
15147 } IShellLinkWVtbl;
15148 interface IShellLinkW {
15149     CONST_VTBL IShellLinkWVtbl* lpVtbl;
15150 };
15151 
15152 #ifdef COBJMACROS
15153 #ifndef WIDL_C_INLINE_WRAPPERS
15154 /*** IUnknown methods ***/
15155 #define IShellLinkW_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15156 #define IShellLinkW_AddRef(This) (This)->lpVtbl->AddRef(This)
15157 #define IShellLinkW_Release(This) (This)->lpVtbl->Release(This)
15158 /*** IShellLinkW methods ***/
15159 #define IShellLinkW_GetPath(This,pszFile,cch,pfd,fFlags) (This)->lpVtbl->GetPath(This,pszFile,cch,pfd,fFlags)
15160 #define IShellLinkW_GetIDList(This,ppidl) (This)->lpVtbl->GetIDList(This,ppidl)
15161 #define IShellLinkW_SetIDList(This,pidl) (This)->lpVtbl->SetIDList(This,pidl)
15162 #define IShellLinkW_GetDescription(This,pszName,cch) (This)->lpVtbl->GetDescription(This,pszName,cch)
15163 #define IShellLinkW_SetDescription(This,pszName) (This)->lpVtbl->SetDescription(This,pszName)
15164 #define IShellLinkW_GetWorkingDirectory(This,pszDir,cch) (This)->lpVtbl->GetWorkingDirectory(This,pszDir,cch)
15165 #define IShellLinkW_SetWorkingDirectory(This,pszDir) (This)->lpVtbl->SetWorkingDirectory(This,pszDir)
15166 #define IShellLinkW_GetArguments(This,pszArgs,cch) (This)->lpVtbl->GetArguments(This,pszArgs,cch)
15167 #define IShellLinkW_SetArguments(This,pszArgs) (This)->lpVtbl->SetArguments(This,pszArgs)
15168 #define IShellLinkW_GetHotkey(This,pwHotkey) (This)->lpVtbl->GetHotkey(This,pwHotkey)
15169 #define IShellLinkW_SetHotkey(This,wHotkey) (This)->lpVtbl->SetHotkey(This,wHotkey)
15170 #define IShellLinkW_GetShowCmd(This,piShowCmd) (This)->lpVtbl->GetShowCmd(This,piShowCmd)
15171 #define IShellLinkW_SetShowCmd(This,iShowCmd) (This)->lpVtbl->SetShowCmd(This,iShowCmd)
15172 #define IShellLinkW_GetIconLocation(This,pszIconPath,cch,piIcon) (This)->lpVtbl->GetIconLocation(This,pszIconPath,cch,piIcon)
15173 #define IShellLinkW_SetIconLocation(This,pszIconPath,iIcon) (This)->lpVtbl->SetIconLocation(This,pszIconPath,iIcon)
15174 #define IShellLinkW_SetRelativePath(This,pszPathRel,dwReserved) (This)->lpVtbl->SetRelativePath(This,pszPathRel,dwReserved)
15175 #define IShellLinkW_Resolve(This,hwnd,fFlags) (This)->lpVtbl->Resolve(This,hwnd,fFlags)
15176 #define IShellLinkW_SetPath(This,pszFile) (This)->lpVtbl->SetPath(This,pszFile)
15177 #else
15178 /*** IUnknown methods ***/
15179 static FORCEINLINE HRESULT IShellLinkW_QueryInterface(IShellLinkW* This,REFIID riid,void **ppvObject) {
15180     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15181 }
15182 static FORCEINLINE ULONG IShellLinkW_AddRef(IShellLinkW* This) {
15183     return This->lpVtbl->AddRef(This);
15184 }
15185 static FORCEINLINE ULONG IShellLinkW_Release(IShellLinkW* This) {
15186     return This->lpVtbl->Release(This);
15187 }
15188 /*** IShellLinkW methods ***/
15189 static FORCEINLINE HRESULT IShellLinkW_GetPath(IShellLinkW* This,LPWSTR pszFile,int cch,WIN32_FIND_DATAW *pfd,DWORD fFlags) {
15190     return This->lpVtbl->GetPath(This,pszFile,cch,pfd,fFlags);
15191 }
15192 static FORCEINLINE HRESULT IShellLinkW_GetIDList(IShellLinkW* This,PIDLIST_ABSOLUTE *ppidl) {
15193     return This->lpVtbl->GetIDList(This,ppidl);
15194 }
15195 static FORCEINLINE HRESULT IShellLinkW_SetIDList(IShellLinkW* This,PCIDLIST_ABSOLUTE pidl) {
15196     return This->lpVtbl->SetIDList(This,pidl);
15197 }
15198 static FORCEINLINE HRESULT IShellLinkW_GetDescription(IShellLinkW* This,LPWSTR pszName,int cch) {
15199     return This->lpVtbl->GetDescription(This,pszName,cch);
15200 }
15201 static FORCEINLINE HRESULT IShellLinkW_SetDescription(IShellLinkW* This,LPCWSTR pszName) {
15202     return This->lpVtbl->SetDescription(This,pszName);
15203 }
15204 static FORCEINLINE HRESULT IShellLinkW_GetWorkingDirectory(IShellLinkW* This,LPWSTR pszDir,int cch) {
15205     return This->lpVtbl->GetWorkingDirectory(This,pszDir,cch);
15206 }
15207 static FORCEINLINE HRESULT IShellLinkW_SetWorkingDirectory(IShellLinkW* This,LPCWSTR pszDir) {
15208     return This->lpVtbl->SetWorkingDirectory(This,pszDir);
15209 }
15210 static FORCEINLINE HRESULT IShellLinkW_GetArguments(IShellLinkW* This,LPWSTR pszArgs,int cch) {
15211     return This->lpVtbl->GetArguments(This,pszArgs,cch);
15212 }
15213 static FORCEINLINE HRESULT IShellLinkW_SetArguments(IShellLinkW* This,LPCWSTR pszArgs) {
15214     return This->lpVtbl->SetArguments(This,pszArgs);
15215 }
15216 static FORCEINLINE HRESULT IShellLinkW_GetHotkey(IShellLinkW* This,WORD *pwHotkey) {
15217     return This->lpVtbl->GetHotkey(This,pwHotkey);
15218 }
15219 static FORCEINLINE HRESULT IShellLinkW_SetHotkey(IShellLinkW* This,WORD wHotkey) {
15220     return This->lpVtbl->SetHotkey(This,wHotkey);
15221 }
15222 static FORCEINLINE HRESULT IShellLinkW_GetShowCmd(IShellLinkW* This,int *piShowCmd) {
15223     return This->lpVtbl->GetShowCmd(This,piShowCmd);
15224 }
15225 static FORCEINLINE HRESULT IShellLinkW_SetShowCmd(IShellLinkW* This,int iShowCmd) {
15226     return This->lpVtbl->SetShowCmd(This,iShowCmd);
15227 }
15228 static FORCEINLINE HRESULT IShellLinkW_GetIconLocation(IShellLinkW* This,LPWSTR pszIconPath,int cch,int *piIcon) {
15229     return This->lpVtbl->GetIconLocation(This,pszIconPath,cch,piIcon);
15230 }
15231 static FORCEINLINE HRESULT IShellLinkW_SetIconLocation(IShellLinkW* This,LPCWSTR pszIconPath,int iIcon) {
15232     return This->lpVtbl->SetIconLocation(This,pszIconPath,iIcon);
15233 }
15234 static FORCEINLINE HRESULT IShellLinkW_SetRelativePath(IShellLinkW* This,LPCWSTR pszPathRel,DWORD dwReserved) {
15235     return This->lpVtbl->SetRelativePath(This,pszPathRel,dwReserved);
15236 }
15237 static FORCEINLINE HRESULT IShellLinkW_Resolve(IShellLinkW* This,HWND hwnd,DWORD fFlags) {
15238     return This->lpVtbl->Resolve(This,hwnd,fFlags);
15239 }
15240 static FORCEINLINE HRESULT IShellLinkW_SetPath(IShellLinkW* This,LPCWSTR pszFile) {
15241     return This->lpVtbl->SetPath(This,pszFile);
15242 }
15243 #endif
15244 #endif
15245 
15246 #endif
15247 
15248 HRESULT STDMETHODCALLTYPE IShellLinkW_GetPath_Proxy(
15249     IShellLinkW* This,
15250     LPWSTR pszFile,
15251     int cch,
15252     WIN32_FIND_DATAW *pfd,
15253     DWORD fFlags);
15254 void __RPC_STUB IShellLinkW_GetPath_Stub(
15255     IRpcStubBuffer* This,
15256     IRpcChannelBuffer* pRpcChannelBuffer,
15257     PRPC_MESSAGE pRpcMessage,
15258     DWORD* pdwStubPhase);
15259 HRESULT STDMETHODCALLTYPE IShellLinkW_GetIDList_Proxy(
15260     IShellLinkW* This,
15261     PIDLIST_ABSOLUTE *ppidl);
15262 void __RPC_STUB IShellLinkW_GetIDList_Stub(
15263     IRpcStubBuffer* This,
15264     IRpcChannelBuffer* pRpcChannelBuffer,
15265     PRPC_MESSAGE pRpcMessage,
15266     DWORD* pdwStubPhase);
15267 HRESULT STDMETHODCALLTYPE IShellLinkW_SetIDList_Proxy(
15268     IShellLinkW* This,
15269     PCIDLIST_ABSOLUTE pidl);
15270 void __RPC_STUB IShellLinkW_SetIDList_Stub(
15271     IRpcStubBuffer* This,
15272     IRpcChannelBuffer* pRpcChannelBuffer,
15273     PRPC_MESSAGE pRpcMessage,
15274     DWORD* pdwStubPhase);
15275 HRESULT STDMETHODCALLTYPE IShellLinkW_GetDescription_Proxy(
15276     IShellLinkW* This,
15277     LPWSTR pszName,
15278     int cch);
15279 void __RPC_STUB IShellLinkW_GetDescription_Stub(
15280     IRpcStubBuffer* This,
15281     IRpcChannelBuffer* pRpcChannelBuffer,
15282     PRPC_MESSAGE pRpcMessage,
15283     DWORD* pdwStubPhase);
15284 HRESULT STDMETHODCALLTYPE IShellLinkW_SetDescription_Proxy(
15285     IShellLinkW* This,
15286     LPCWSTR pszName);
15287 void __RPC_STUB IShellLinkW_SetDescription_Stub(
15288     IRpcStubBuffer* This,
15289     IRpcChannelBuffer* pRpcChannelBuffer,
15290     PRPC_MESSAGE pRpcMessage,
15291     DWORD* pdwStubPhase);
15292 HRESULT STDMETHODCALLTYPE IShellLinkW_GetWorkingDirectory_Proxy(
15293     IShellLinkW* This,
15294     LPWSTR pszDir,
15295     int cch);
15296 void __RPC_STUB IShellLinkW_GetWorkingDirectory_Stub(
15297     IRpcStubBuffer* This,
15298     IRpcChannelBuffer* pRpcChannelBuffer,
15299     PRPC_MESSAGE pRpcMessage,
15300     DWORD* pdwStubPhase);
15301 HRESULT STDMETHODCALLTYPE IShellLinkW_SetWorkingDirectory_Proxy(
15302     IShellLinkW* This,
15303     LPCWSTR pszDir);
15304 void __RPC_STUB IShellLinkW_SetWorkingDirectory_Stub(
15305     IRpcStubBuffer* This,
15306     IRpcChannelBuffer* pRpcChannelBuffer,
15307     PRPC_MESSAGE pRpcMessage,
15308     DWORD* pdwStubPhase);
15309 HRESULT STDMETHODCALLTYPE IShellLinkW_GetArguments_Proxy(
15310     IShellLinkW* This,
15311     LPWSTR pszArgs,
15312     int cch);
15313 void __RPC_STUB IShellLinkW_GetArguments_Stub(
15314     IRpcStubBuffer* This,
15315     IRpcChannelBuffer* pRpcChannelBuffer,
15316     PRPC_MESSAGE pRpcMessage,
15317     DWORD* pdwStubPhase);
15318 HRESULT STDMETHODCALLTYPE IShellLinkW_SetArguments_Proxy(
15319     IShellLinkW* This,
15320     LPCWSTR pszArgs);
15321 void __RPC_STUB IShellLinkW_SetArguments_Stub(
15322     IRpcStubBuffer* This,
15323     IRpcChannelBuffer* pRpcChannelBuffer,
15324     PRPC_MESSAGE pRpcMessage,
15325     DWORD* pdwStubPhase);
15326 HRESULT STDMETHODCALLTYPE IShellLinkW_GetHotkey_Proxy(
15327     IShellLinkW* This,
15328     WORD *pwHotkey);
15329 void __RPC_STUB IShellLinkW_GetHotkey_Stub(
15330     IRpcStubBuffer* This,
15331     IRpcChannelBuffer* pRpcChannelBuffer,
15332     PRPC_MESSAGE pRpcMessage,
15333     DWORD* pdwStubPhase);
15334 HRESULT STDMETHODCALLTYPE IShellLinkW_SetHotkey_Proxy(
15335     IShellLinkW* This,
15336     WORD wHotkey);
15337 void __RPC_STUB IShellLinkW_SetHotkey_Stub(
15338     IRpcStubBuffer* This,
15339     IRpcChannelBuffer* pRpcChannelBuffer,
15340     PRPC_MESSAGE pRpcMessage,
15341     DWORD* pdwStubPhase);
15342 HRESULT STDMETHODCALLTYPE IShellLinkW_GetShowCmd_Proxy(
15343     IShellLinkW* This,
15344     int *piShowCmd);
15345 void __RPC_STUB IShellLinkW_GetShowCmd_Stub(
15346     IRpcStubBuffer* This,
15347     IRpcChannelBuffer* pRpcChannelBuffer,
15348     PRPC_MESSAGE pRpcMessage,
15349     DWORD* pdwStubPhase);
15350 HRESULT STDMETHODCALLTYPE IShellLinkW_SetShowCmd_Proxy(
15351     IShellLinkW* This,
15352     int iShowCmd);
15353 void __RPC_STUB IShellLinkW_SetShowCmd_Stub(
15354     IRpcStubBuffer* This,
15355     IRpcChannelBuffer* pRpcChannelBuffer,
15356     PRPC_MESSAGE pRpcMessage,
15357     DWORD* pdwStubPhase);
15358 HRESULT STDMETHODCALLTYPE IShellLinkW_GetIconLocation_Proxy(
15359     IShellLinkW* This,
15360     LPWSTR pszIconPath,
15361     int cch,
15362     int *piIcon);
15363 void __RPC_STUB IShellLinkW_GetIconLocation_Stub(
15364     IRpcStubBuffer* This,
15365     IRpcChannelBuffer* pRpcChannelBuffer,
15366     PRPC_MESSAGE pRpcMessage,
15367     DWORD* pdwStubPhase);
15368 HRESULT STDMETHODCALLTYPE IShellLinkW_SetIconLocation_Proxy(
15369     IShellLinkW* This,
15370     LPCWSTR pszIconPath,
15371     int iIcon);
15372 void __RPC_STUB IShellLinkW_SetIconLocation_Stub(
15373     IRpcStubBuffer* This,
15374     IRpcChannelBuffer* pRpcChannelBuffer,
15375     PRPC_MESSAGE pRpcMessage,
15376     DWORD* pdwStubPhase);
15377 HRESULT STDMETHODCALLTYPE IShellLinkW_SetRelativePath_Proxy(
15378     IShellLinkW* This,
15379     LPCWSTR pszPathRel,
15380     DWORD dwReserved);
15381 void __RPC_STUB IShellLinkW_SetRelativePath_Stub(
15382     IRpcStubBuffer* This,
15383     IRpcChannelBuffer* pRpcChannelBuffer,
15384     PRPC_MESSAGE pRpcMessage,
15385     DWORD* pdwStubPhase);
15386 HRESULT STDMETHODCALLTYPE IShellLinkW_Resolve_Proxy(
15387     IShellLinkW* This,
15388     HWND hwnd,
15389     DWORD fFlags);
15390 void __RPC_STUB IShellLinkW_Resolve_Stub(
15391     IRpcStubBuffer* This,
15392     IRpcChannelBuffer* pRpcChannelBuffer,
15393     PRPC_MESSAGE pRpcMessage,
15394     DWORD* pdwStubPhase);
15395 HRESULT STDMETHODCALLTYPE IShellLinkW_SetPath_Proxy(
15396     IShellLinkW* This,
15397     LPCWSTR pszFile);
15398 void __RPC_STUB IShellLinkW_SetPath_Stub(
15399     IRpcStubBuffer* This,
15400     IRpcChannelBuffer* pRpcChannelBuffer,
15401     PRPC_MESSAGE pRpcMessage,
15402     DWORD* pdwStubPhase);
15403 
15404 #endif  /* __IShellLinkW_INTERFACE_DEFINED__ */
15405 
15406 
15407 /*****************************************************************************
15408  * IShellLinkDataList interface
15409  */
15410 #ifndef __IShellLinkDataList_INTERFACE_DEFINED__
15411 #define __IShellLinkDataList_INTERFACE_DEFINED__
15412 
15413 DEFINE_GUID(IID_IShellLinkDataList, 0x45e2b4ae, 0xb1c3, 0x11d0, 0xb9,0x2f, 0x00,0xa0,0xc9,0x03,0x12,0xe1);
15414 #if defined(__cplusplus) && !defined(CINTERFACE)
15415 MIDL_INTERFACE("45e2b4ae-b1c3-11d0-b92f-00a0c90312e1")
15416 IShellLinkDataList : public IUnknown
15417 {
15418     virtual HRESULT STDMETHODCALLTYPE AddDataBlock(
15419         void *pDataBlock) = 0;
15420 
15421     virtual HRESULT STDMETHODCALLTYPE CopyDataBlock(
15422         DWORD dwSig,
15423         void **ppDataBlock) = 0;
15424 
15425     virtual HRESULT STDMETHODCALLTYPE RemoveDataBlock(
15426         DWORD dwSig) = 0;
15427 
15428     virtual HRESULT STDMETHODCALLTYPE GetFlags(
15429         DWORD *pdwFlags) = 0;
15430 
15431     virtual HRESULT STDMETHODCALLTYPE SetFlags(
15432         DWORD dwFlags) = 0;
15433 
15434 };
15435 #ifdef __CRT_UUID_DECL
15436 __CRT_UUID_DECL(IShellLinkDataList, 0x45e2b4ae, 0xb1c3, 0x11d0, 0xb9,0x2f, 0x00,0xa0,0xc9,0x03,0x12,0xe1)
15437 #endif
15438 #else
15439 typedef struct IShellLinkDataListVtbl {
15440     BEGIN_INTERFACE
15441 
15442     /*** IUnknown methods ***/
15443     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15444         IShellLinkDataList* This,
15445         REFIID riid,
15446         void **ppvObject);
15447 
15448     ULONG (STDMETHODCALLTYPE *AddRef)(
15449         IShellLinkDataList* This);
15450 
15451     ULONG (STDMETHODCALLTYPE *Release)(
15452         IShellLinkDataList* This);
15453 
15454     /*** IShellLinkDataList methods ***/
15455     HRESULT (STDMETHODCALLTYPE *AddDataBlock)(
15456         IShellLinkDataList* This,
15457         void *pDataBlock);
15458 
15459     HRESULT (STDMETHODCALLTYPE *CopyDataBlock)(
15460         IShellLinkDataList* This,
15461         DWORD dwSig,
15462         void **ppDataBlock);
15463 
15464     HRESULT (STDMETHODCALLTYPE *RemoveDataBlock)(
15465         IShellLinkDataList* This,
15466         DWORD dwSig);
15467 
15468     HRESULT (STDMETHODCALLTYPE *GetFlags)(
15469         IShellLinkDataList* This,
15470         DWORD *pdwFlags);
15471 
15472     HRESULT (STDMETHODCALLTYPE *SetFlags)(
15473         IShellLinkDataList* This,
15474         DWORD dwFlags);
15475 
15476     END_INTERFACE
15477 } IShellLinkDataListVtbl;
15478 interface IShellLinkDataList {
15479     CONST_VTBL IShellLinkDataListVtbl* lpVtbl;
15480 };
15481 
15482 #ifdef COBJMACROS
15483 #ifndef WIDL_C_INLINE_WRAPPERS
15484 /*** IUnknown methods ***/
15485 #define IShellLinkDataList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15486 #define IShellLinkDataList_AddRef(This) (This)->lpVtbl->AddRef(This)
15487 #define IShellLinkDataList_Release(This) (This)->lpVtbl->Release(This)
15488 /*** IShellLinkDataList methods ***/
15489 #define IShellLinkDataList_AddDataBlock(This,pDataBlock) (This)->lpVtbl->AddDataBlock(This,pDataBlock)
15490 #define IShellLinkDataList_CopyDataBlock(This,dwSig,ppDataBlock) (This)->lpVtbl->CopyDataBlock(This,dwSig,ppDataBlock)
15491 #define IShellLinkDataList_RemoveDataBlock(This,dwSig) (This)->lpVtbl->RemoveDataBlock(This,dwSig)
15492 #define IShellLinkDataList_GetFlags(This,pdwFlags) (This)->lpVtbl->GetFlags(This,pdwFlags)
15493 #define IShellLinkDataList_SetFlags(This,dwFlags) (This)->lpVtbl->SetFlags(This,dwFlags)
15494 #else
15495 /*** IUnknown methods ***/
15496 static FORCEINLINE HRESULT IShellLinkDataList_QueryInterface(IShellLinkDataList* This,REFIID riid,void **ppvObject) {
15497     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15498 }
15499 static FORCEINLINE ULONG IShellLinkDataList_AddRef(IShellLinkDataList* This) {
15500     return This->lpVtbl->AddRef(This);
15501 }
15502 static FORCEINLINE ULONG IShellLinkDataList_Release(IShellLinkDataList* This) {
15503     return This->lpVtbl->Release(This);
15504 }
15505 /*** IShellLinkDataList methods ***/
15506 static FORCEINLINE HRESULT IShellLinkDataList_AddDataBlock(IShellLinkDataList* This,void *pDataBlock) {
15507     return This->lpVtbl->AddDataBlock(This,pDataBlock);
15508 }
15509 static FORCEINLINE HRESULT IShellLinkDataList_CopyDataBlock(IShellLinkDataList* This,DWORD dwSig,void **ppDataBlock) {
15510     return This->lpVtbl->CopyDataBlock(This,dwSig,ppDataBlock);
15511 }
15512 static FORCEINLINE HRESULT IShellLinkDataList_RemoveDataBlock(IShellLinkDataList* This,DWORD dwSig) {
15513     return This->lpVtbl->RemoveDataBlock(This,dwSig);
15514 }
15515 static FORCEINLINE HRESULT IShellLinkDataList_GetFlags(IShellLinkDataList* This,DWORD *pdwFlags) {
15516     return This->lpVtbl->GetFlags(This,pdwFlags);
15517 }
15518 static FORCEINLINE HRESULT IShellLinkDataList_SetFlags(IShellLinkDataList* This,DWORD dwFlags) {
15519     return This->lpVtbl->SetFlags(This,dwFlags);
15520 }
15521 #endif
15522 #endif
15523 
15524 #endif
15525 
15526 HRESULT STDMETHODCALLTYPE IShellLinkDataList_RemoveDataBlock_Proxy(
15527     IShellLinkDataList* This,
15528     DWORD dwSig);
15529 void __RPC_STUB IShellLinkDataList_RemoveDataBlock_Stub(
15530     IRpcStubBuffer* This,
15531     IRpcChannelBuffer* pRpcChannelBuffer,
15532     PRPC_MESSAGE pRpcMessage,
15533     DWORD* pdwStubPhase);
15534 HRESULT STDMETHODCALLTYPE IShellLinkDataList_GetFlags_Proxy(
15535     IShellLinkDataList* This,
15536     DWORD *pdwFlags);
15537 void __RPC_STUB IShellLinkDataList_GetFlags_Stub(
15538     IRpcStubBuffer* This,
15539     IRpcChannelBuffer* pRpcChannelBuffer,
15540     PRPC_MESSAGE pRpcMessage,
15541     DWORD* pdwStubPhase);
15542 HRESULT STDMETHODCALLTYPE IShellLinkDataList_SetFlags_Proxy(
15543     IShellLinkDataList* This,
15544     DWORD dwFlags);
15545 void __RPC_STUB IShellLinkDataList_SetFlags_Stub(
15546     IRpcStubBuffer* This,
15547     IRpcChannelBuffer* pRpcChannelBuffer,
15548     PRPC_MESSAGE pRpcMessage,
15549     DWORD* pdwStubPhase);
15550 
15551 #endif  /* __IShellLinkDataList_INTERFACE_DEFINED__ */
15552 
15553 
15554 /*****************************************************************************
15555  * IResolveShellLink interface
15556  */
15557 #ifndef __IResolveShellLink_INTERFACE_DEFINED__
15558 #define __IResolveShellLink_INTERFACE_DEFINED__
15559 
15560 DEFINE_GUID(IID_IResolveShellLink, 0x5cd52983, 0x9449, 0x11d2, 0x96,0x3a, 0x00,0xc0,0x4f,0x79,0xad,0xf0);
15561 #if defined(__cplusplus) && !defined(CINTERFACE)
15562 MIDL_INTERFACE("5cd52983-9449-11d2-963a-00c04f79adf0")
15563 IResolveShellLink : public IUnknown
15564 {
15565     virtual HRESULT STDMETHODCALLTYPE ResolveShellLink(
15566         IUnknown *punkLink,
15567         HWND hwnd,
15568         DWORD fFlags) = 0;
15569 
15570 };
15571 #ifdef __CRT_UUID_DECL
15572 __CRT_UUID_DECL(IResolveShellLink, 0x5cd52983, 0x9449, 0x11d2, 0x96,0x3a, 0x00,0xc0,0x4f,0x79,0xad,0xf0)
15573 #endif
15574 #else
15575 typedef struct IResolveShellLinkVtbl {
15576     BEGIN_INTERFACE
15577 
15578     /*** IUnknown methods ***/
15579     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15580         IResolveShellLink* This,
15581         REFIID riid,
15582         void **ppvObject);
15583 
15584     ULONG (STDMETHODCALLTYPE *AddRef)(
15585         IResolveShellLink* This);
15586 
15587     ULONG (STDMETHODCALLTYPE *Release)(
15588         IResolveShellLink* This);
15589 
15590     /*** IResolveShellLink methods ***/
15591     HRESULT (STDMETHODCALLTYPE *ResolveShellLink)(
15592         IResolveShellLink* This,
15593         IUnknown *punkLink,
15594         HWND hwnd,
15595         DWORD fFlags);
15596 
15597     END_INTERFACE
15598 } IResolveShellLinkVtbl;
15599 interface IResolveShellLink {
15600     CONST_VTBL IResolveShellLinkVtbl* lpVtbl;
15601 };
15602 
15603 #ifdef COBJMACROS
15604 #ifndef WIDL_C_INLINE_WRAPPERS
15605 /*** IUnknown methods ***/
15606 #define IResolveShellLink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15607 #define IResolveShellLink_AddRef(This) (This)->lpVtbl->AddRef(This)
15608 #define IResolveShellLink_Release(This) (This)->lpVtbl->Release(This)
15609 /*** IResolveShellLink methods ***/
15610 #define IResolveShellLink_ResolveShellLink(This,punkLink,hwnd,fFlags) (This)->lpVtbl->ResolveShellLink(This,punkLink,hwnd,fFlags)
15611 #else
15612 /*** IUnknown methods ***/
15613 static FORCEINLINE HRESULT IResolveShellLink_QueryInterface(IResolveShellLink* This,REFIID riid,void **ppvObject) {
15614     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15615 }
15616 static FORCEINLINE ULONG IResolveShellLink_AddRef(IResolveShellLink* This) {
15617     return This->lpVtbl->AddRef(This);
15618 }
15619 static FORCEINLINE ULONG IResolveShellLink_Release(IResolveShellLink* This) {
15620     return This->lpVtbl->Release(This);
15621 }
15622 /*** IResolveShellLink methods ***/
15623 static FORCEINLINE HRESULT IResolveShellLink_ResolveShellLink(IResolveShellLink* This,IUnknown *punkLink,HWND hwnd,DWORD fFlags) {
15624     return This->lpVtbl->ResolveShellLink(This,punkLink,hwnd,fFlags);
15625 }
15626 #endif
15627 #endif
15628 
15629 #endif
15630 
15631 HRESULT STDMETHODCALLTYPE IResolveShellLink_ResolveShellLink_Proxy(
15632     IResolveShellLink* This,
15633     IUnknown *punkLink,
15634     HWND hwnd,
15635     DWORD fFlags);
15636 void __RPC_STUB IResolveShellLink_ResolveShellLink_Stub(
15637     IRpcStubBuffer* This,
15638     IRpcChannelBuffer* pRpcChannelBuffer,
15639     PRPC_MESSAGE pRpcMessage,
15640     DWORD* pdwStubPhase);
15641 
15642 #endif  /* __IResolveShellLink_INTERFACE_DEFINED__ */
15643 
15644 
15645 /*****************************************************************************
15646  * IActionProgressDialog interface
15647  */
15648 #ifndef __IActionProgressDialog_INTERFACE_DEFINED__
15649 #define __IActionProgressDialog_INTERFACE_DEFINED__
15650 
15651 enum _SPINITF {
15652     SPINITF_NORMAL = 0x0,
15653     SPINITF_MODAL = 0x1,
15654     SPINITF_NOMINIMIZE = 0x8
15655 };
15656 
15657 
15658 typedef DWORD SPINITF;
15659 
15660 DEFINE_GUID(IID_IActionProgressDialog, 0x49ff1172, 0xeadc, 0x446d, 0x92,0x85, 0x15,0x64,0x53,0xa6,0x43,0x1c);
15661 #if defined(__cplusplus) && !defined(CINTERFACE)
15662 MIDL_INTERFACE("49ff1172-eadc-446d-9285-156453a6431c")
15663 IActionProgressDialog : public IUnknown
15664 {
15665     virtual HRESULT STDMETHODCALLTYPE Initialize(
15666         SPINITF flags,
15667         LPCWSTR pszTitle,
15668         LPCWSTR pszCancel) = 0;
15669 
15670     virtual HRESULT STDMETHODCALLTYPE Stop(
15671         ) = 0;
15672 
15673 };
15674 #ifdef __CRT_UUID_DECL
15675 __CRT_UUID_DECL(IActionProgressDialog, 0x49ff1172, 0xeadc, 0x446d, 0x92,0x85, 0x15,0x64,0x53,0xa6,0x43,0x1c)
15676 #endif
15677 #else
15678 typedef struct IActionProgressDialogVtbl {
15679     BEGIN_INTERFACE
15680 
15681     /*** IUnknown methods ***/
15682     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15683         IActionProgressDialog* This,
15684         REFIID riid,
15685         void **ppvObject);
15686 
15687     ULONG (STDMETHODCALLTYPE *AddRef)(
15688         IActionProgressDialog* This);
15689 
15690     ULONG (STDMETHODCALLTYPE *Release)(
15691         IActionProgressDialog* This);
15692 
15693     /*** IActionProgressDialog methods ***/
15694     HRESULT (STDMETHODCALLTYPE *Initialize)(
15695         IActionProgressDialog* This,
15696         SPINITF flags,
15697         LPCWSTR pszTitle,
15698         LPCWSTR pszCancel);
15699 
15700     HRESULT (STDMETHODCALLTYPE *Stop)(
15701         IActionProgressDialog* This);
15702 
15703     END_INTERFACE
15704 } IActionProgressDialogVtbl;
15705 interface IActionProgressDialog {
15706     CONST_VTBL IActionProgressDialogVtbl* lpVtbl;
15707 };
15708 
15709 #ifdef COBJMACROS
15710 #ifndef WIDL_C_INLINE_WRAPPERS
15711 /*** IUnknown methods ***/
15712 #define IActionProgressDialog_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15713 #define IActionProgressDialog_AddRef(This) (This)->lpVtbl->AddRef(This)
15714 #define IActionProgressDialog_Release(This) (This)->lpVtbl->Release(This)
15715 /*** IActionProgressDialog methods ***/
15716 #define IActionProgressDialog_Initialize(This,flags,pszTitle,pszCancel) (This)->lpVtbl->Initialize(This,flags,pszTitle,pszCancel)
15717 #define IActionProgressDialog_Stop(This) (This)->lpVtbl->Stop(This)
15718 #else
15719 /*** IUnknown methods ***/
15720 static FORCEINLINE HRESULT IActionProgressDialog_QueryInterface(IActionProgressDialog* This,REFIID riid,void **ppvObject) {
15721     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15722 }
15723 static FORCEINLINE ULONG IActionProgressDialog_AddRef(IActionProgressDialog* This) {
15724     return This->lpVtbl->AddRef(This);
15725 }
15726 static FORCEINLINE ULONG IActionProgressDialog_Release(IActionProgressDialog* This) {
15727     return This->lpVtbl->Release(This);
15728 }
15729 /*** IActionProgressDialog methods ***/
15730 static FORCEINLINE HRESULT IActionProgressDialog_Initialize(IActionProgressDialog* This,SPINITF flags,LPCWSTR pszTitle,LPCWSTR pszCancel) {
15731     return This->lpVtbl->Initialize(This,flags,pszTitle,pszCancel);
15732 }
15733 static FORCEINLINE HRESULT IActionProgressDialog_Stop(IActionProgressDialog* This) {
15734     return This->lpVtbl->Stop(This);
15735 }
15736 #endif
15737 #endif
15738 
15739 #endif
15740 
15741 HRESULT STDMETHODCALLTYPE IActionProgressDialog_Initialize_Proxy(
15742     IActionProgressDialog* This,
15743     SPINITF flags,
15744     LPCWSTR pszTitle,
15745     LPCWSTR pszCancel);
15746 void __RPC_STUB IActionProgressDialog_Initialize_Stub(
15747     IRpcStubBuffer* This,
15748     IRpcChannelBuffer* pRpcChannelBuffer,
15749     PRPC_MESSAGE pRpcMessage,
15750     DWORD* pdwStubPhase);
15751 HRESULT STDMETHODCALLTYPE IActionProgressDialog_Stop_Proxy(
15752     IActionProgressDialog* This);
15753 void __RPC_STUB IActionProgressDialog_Stop_Stub(
15754     IRpcStubBuffer* This,
15755     IRpcChannelBuffer* pRpcChannelBuffer,
15756     PRPC_MESSAGE pRpcMessage,
15757     DWORD* pdwStubPhase);
15758 
15759 #endif  /* __IActionProgressDialog_INTERFACE_DEFINED__ */
15760 
15761 
15762 /*****************************************************************************
15763  * IHWEventHandler interface
15764  */
15765 #ifndef __IHWEventHandler_INTERFACE_DEFINED__
15766 #define __IHWEventHandler_INTERFACE_DEFINED__
15767 
15768 DEFINE_GUID(IID_IHWEventHandler, 0xc1fb73d0, 0xec3a, 0x4ba2, 0xb5,0x12, 0x8c,0xdb,0x91,0x87,0xb6,0xd1);
15769 #if defined(__cplusplus) && !defined(CINTERFACE)
15770 MIDL_INTERFACE("c1fb73d0-ec3a-4ba2-b512-8cdb9187b6d1")
15771 IHWEventHandler : public IUnknown
15772 {
15773     virtual HRESULT STDMETHODCALLTYPE Initialize(
15774         LPCWSTR pszParams) = 0;
15775 
15776     virtual HRESULT STDMETHODCALLTYPE HandleEvent(
15777         LPCWSTR pszDeviceID,
15778         LPCWSTR pszAltDeviceID,
15779         LPCWSTR pszEventType) = 0;
15780 
15781     virtual HRESULT STDMETHODCALLTYPE HandleEventWithContent(
15782         LPCWSTR pszDeviceID,
15783         LPCWSTR pszAltDeviceID,
15784         LPCWSTR pszEventType,
15785         LPCWSTR pszContentTypeHandler,
15786         IDataObject *pdataobject) = 0;
15787 
15788 };
15789 #ifdef __CRT_UUID_DECL
15790 __CRT_UUID_DECL(IHWEventHandler, 0xc1fb73d0, 0xec3a, 0x4ba2, 0xb5,0x12, 0x8c,0xdb,0x91,0x87,0xb6,0xd1)
15791 #endif
15792 #else
15793 typedef struct IHWEventHandlerVtbl {
15794     BEGIN_INTERFACE
15795 
15796     /*** IUnknown methods ***/
15797     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15798         IHWEventHandler* This,
15799         REFIID riid,
15800         void **ppvObject);
15801 
15802     ULONG (STDMETHODCALLTYPE *AddRef)(
15803         IHWEventHandler* This);
15804 
15805     ULONG (STDMETHODCALLTYPE *Release)(
15806         IHWEventHandler* This);
15807 
15808     /*** IHWEventHandler methods ***/
15809     HRESULT (STDMETHODCALLTYPE *Initialize)(
15810         IHWEventHandler* This,
15811         LPCWSTR pszParams);
15812 
15813     HRESULT (STDMETHODCALLTYPE *HandleEvent)(
15814         IHWEventHandler* This,
15815         LPCWSTR pszDeviceID,
15816         LPCWSTR pszAltDeviceID,
15817         LPCWSTR pszEventType);
15818 
15819     HRESULT (STDMETHODCALLTYPE *HandleEventWithContent)(
15820         IHWEventHandler* This,
15821         LPCWSTR pszDeviceID,
15822         LPCWSTR pszAltDeviceID,
15823         LPCWSTR pszEventType,
15824         LPCWSTR pszContentTypeHandler,
15825         IDataObject *pdataobject);
15826 
15827     END_INTERFACE
15828 } IHWEventHandlerVtbl;
15829 interface IHWEventHandler {
15830     CONST_VTBL IHWEventHandlerVtbl* lpVtbl;
15831 };
15832 
15833 #ifdef COBJMACROS
15834 #ifndef WIDL_C_INLINE_WRAPPERS
15835 /*** IUnknown methods ***/
15836 #define IHWEventHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15837 #define IHWEventHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
15838 #define IHWEventHandler_Release(This) (This)->lpVtbl->Release(This)
15839 /*** IHWEventHandler methods ***/
15840 #define IHWEventHandler_Initialize(This,pszParams) (This)->lpVtbl->Initialize(This,pszParams)
15841 #define IHWEventHandler_HandleEvent(This,pszDeviceID,pszAltDeviceID,pszEventType) (This)->lpVtbl->HandleEvent(This,pszDeviceID,pszAltDeviceID,pszEventType)
15842 #define IHWEventHandler_HandleEventWithContent(This,pszDeviceID,pszAltDeviceID,pszEventType,pszContentTypeHandler,pdataobject) (This)->lpVtbl->HandleEventWithContent(This,pszDeviceID,pszAltDeviceID,pszEventType,pszContentTypeHandler,pdataobject)
15843 #else
15844 /*** IUnknown methods ***/
15845 static FORCEINLINE HRESULT IHWEventHandler_QueryInterface(IHWEventHandler* This,REFIID riid,void **ppvObject) {
15846     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15847 }
15848 static FORCEINLINE ULONG IHWEventHandler_AddRef(IHWEventHandler* This) {
15849     return This->lpVtbl->AddRef(This);
15850 }
15851 static FORCEINLINE ULONG IHWEventHandler_Release(IHWEventHandler* This) {
15852     return This->lpVtbl->Release(This);
15853 }
15854 /*** IHWEventHandler methods ***/
15855 static FORCEINLINE HRESULT IHWEventHandler_Initialize(IHWEventHandler* This,LPCWSTR pszParams) {
15856     return This->lpVtbl->Initialize(This,pszParams);
15857 }
15858 static FORCEINLINE HRESULT IHWEventHandler_HandleEvent(IHWEventHandler* This,LPCWSTR pszDeviceID,LPCWSTR pszAltDeviceID,LPCWSTR pszEventType) {
15859     return This->lpVtbl->HandleEvent(This,pszDeviceID,pszAltDeviceID,pszEventType);
15860 }
15861 static FORCEINLINE HRESULT IHWEventHandler_HandleEventWithContent(IHWEventHandler* This,LPCWSTR pszDeviceID,LPCWSTR pszAltDeviceID,LPCWSTR pszEventType,LPCWSTR pszContentTypeHandler,IDataObject *pdataobject) {
15862     return This->lpVtbl->HandleEventWithContent(This,pszDeviceID,pszAltDeviceID,pszEventType,pszContentTypeHandler,pdataobject);
15863 }
15864 #endif
15865 #endif
15866 
15867 #endif
15868 
15869 HRESULT STDMETHODCALLTYPE IHWEventHandler_Initialize_Proxy(
15870     IHWEventHandler* This,
15871     LPCWSTR pszParams);
15872 void __RPC_STUB IHWEventHandler_Initialize_Stub(
15873     IRpcStubBuffer* This,
15874     IRpcChannelBuffer* pRpcChannelBuffer,
15875     PRPC_MESSAGE pRpcMessage,
15876     DWORD* pdwStubPhase);
15877 HRESULT STDMETHODCALLTYPE IHWEventHandler_HandleEvent_Proxy(
15878     IHWEventHandler* This,
15879     LPCWSTR pszDeviceID,
15880     LPCWSTR pszAltDeviceID,
15881     LPCWSTR pszEventType);
15882 void __RPC_STUB IHWEventHandler_HandleEvent_Stub(
15883     IRpcStubBuffer* This,
15884     IRpcChannelBuffer* pRpcChannelBuffer,
15885     PRPC_MESSAGE pRpcMessage,
15886     DWORD* pdwStubPhase);
15887 HRESULT STDMETHODCALLTYPE IHWEventHandler_HandleEventWithContent_Proxy(
15888     IHWEventHandler* This,
15889     LPCWSTR pszDeviceID,
15890     LPCWSTR pszAltDeviceID,
15891     LPCWSTR pszEventType,
15892     LPCWSTR pszContentTypeHandler,
15893     IDataObject *pdataobject);
15894 void __RPC_STUB IHWEventHandler_HandleEventWithContent_Stub(
15895     IRpcStubBuffer* This,
15896     IRpcChannelBuffer* pRpcChannelBuffer,
15897     PRPC_MESSAGE pRpcMessage,
15898     DWORD* pdwStubPhase);
15899 
15900 #endif  /* __IHWEventHandler_INTERFACE_DEFINED__ */
15901 
15902 
15903 /*****************************************************************************
15904  * IHWEventHandler2 interface
15905  */
15906 #ifndef __IHWEventHandler2_INTERFACE_DEFINED__
15907 #define __IHWEventHandler2_INTERFACE_DEFINED__
15908 
15909 DEFINE_GUID(IID_IHWEventHandler2, 0xcfcc809f, 0x295d, 0x42e8, 0x9f,0xfc, 0x42,0x4b,0x33,0xc4,0x87,0xe6);
15910 #if defined(__cplusplus) && !defined(CINTERFACE)
15911 MIDL_INTERFACE("cfcc809f-295d-42e8-9ffc-424b33c487e6")
15912 IHWEventHandler2 : public IHWEventHandler
15913 {
15914     virtual HRESULT STDMETHODCALLTYPE HandleEventWithHWND(
15915         LPCWSTR pszDeviceID,
15916         LPCWSTR pszAltDeviceID,
15917         LPCWSTR pszEventType,
15918         HWND hwndOwner) = 0;
15919 
15920 };
15921 #ifdef __CRT_UUID_DECL
15922 __CRT_UUID_DECL(IHWEventHandler2, 0xcfcc809f, 0x295d, 0x42e8, 0x9f,0xfc, 0x42,0x4b,0x33,0xc4,0x87,0xe6)
15923 #endif
15924 #else
15925 typedef struct IHWEventHandler2Vtbl {
15926     BEGIN_INTERFACE
15927 
15928     /*** IUnknown methods ***/
15929     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15930         IHWEventHandler2* This,
15931         REFIID riid,
15932         void **ppvObject);
15933 
15934     ULONG (STDMETHODCALLTYPE *AddRef)(
15935         IHWEventHandler2* This);
15936 
15937     ULONG (STDMETHODCALLTYPE *Release)(
15938         IHWEventHandler2* This);
15939 
15940     /*** IHWEventHandler methods ***/
15941     HRESULT (STDMETHODCALLTYPE *Initialize)(
15942         IHWEventHandler2* This,
15943         LPCWSTR pszParams);
15944 
15945     HRESULT (STDMETHODCALLTYPE *HandleEvent)(
15946         IHWEventHandler2* This,
15947         LPCWSTR pszDeviceID,
15948         LPCWSTR pszAltDeviceID,
15949         LPCWSTR pszEventType);
15950 
15951     HRESULT (STDMETHODCALLTYPE *HandleEventWithContent)(
15952         IHWEventHandler2* This,
15953         LPCWSTR pszDeviceID,
15954         LPCWSTR pszAltDeviceID,
15955         LPCWSTR pszEventType,
15956         LPCWSTR pszContentTypeHandler,
15957         IDataObject *pdataobject);
15958 
15959     /*** IHWEventHandler2 methods ***/
15960     HRESULT (STDMETHODCALLTYPE *HandleEventWithHWND)(
15961         IHWEventHandler2* This,
15962         LPCWSTR pszDeviceID,
15963         LPCWSTR pszAltDeviceID,
15964         LPCWSTR pszEventType,
15965         HWND hwndOwner);
15966 
15967     END_INTERFACE
15968 } IHWEventHandler2Vtbl;
15969 interface IHWEventHandler2 {
15970     CONST_VTBL IHWEventHandler2Vtbl* lpVtbl;
15971 };
15972 
15973 #ifdef COBJMACROS
15974 #ifndef WIDL_C_INLINE_WRAPPERS
15975 /*** IUnknown methods ***/
15976 #define IHWEventHandler2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15977 #define IHWEventHandler2_AddRef(This) (This)->lpVtbl->AddRef(This)
15978 #define IHWEventHandler2_Release(This) (This)->lpVtbl->Release(This)
15979 /*** IHWEventHandler methods ***/
15980 #define IHWEventHandler2_Initialize(This,pszParams) (This)->lpVtbl->Initialize(This,pszParams)
15981 #define IHWEventHandler2_HandleEvent(This,pszDeviceID,pszAltDeviceID,pszEventType) (This)->lpVtbl->HandleEvent(This,pszDeviceID,pszAltDeviceID,pszEventType)
15982 #define IHWEventHandler2_HandleEventWithContent(This,pszDeviceID,pszAltDeviceID,pszEventType,pszContentTypeHandler,pdataobject) (This)->lpVtbl->HandleEventWithContent(This,pszDeviceID,pszAltDeviceID,pszEventType,pszContentTypeHandler,pdataobject)
15983 /*** IHWEventHandler2 methods ***/
15984 #define IHWEventHandler2_HandleEventWithHWND(This,pszDeviceID,pszAltDeviceID,pszEventType,hwndOwner) (This)->lpVtbl->HandleEventWithHWND(This,pszDeviceID,pszAltDeviceID,pszEventType,hwndOwner)
15985 #else
15986 /*** IUnknown methods ***/
15987 static FORCEINLINE HRESULT IHWEventHandler2_QueryInterface(IHWEventHandler2* This,REFIID riid,void **ppvObject) {
15988     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15989 }
15990 static FORCEINLINE ULONG IHWEventHandler2_AddRef(IHWEventHandler2* This) {
15991     return This->lpVtbl->AddRef(This);
15992 }
15993 static FORCEINLINE ULONG IHWEventHandler2_Release(IHWEventHandler2* This) {
15994     return This->lpVtbl->Release(This);
15995 }
15996 /*** IHWEventHandler methods ***/
15997 static FORCEINLINE HRESULT IHWEventHandler2_Initialize(IHWEventHandler2* This,LPCWSTR pszParams) {
15998     return This->lpVtbl->Initialize(This,pszParams);
15999 }
16000 static FORCEINLINE HRESULT IHWEventHandler2_HandleEvent(IHWEventHandler2* This,LPCWSTR pszDeviceID,LPCWSTR pszAltDeviceID,LPCWSTR pszEventType) {
16001     return This->lpVtbl->HandleEvent(This,pszDeviceID,pszAltDeviceID,pszEventType);
16002 }
16003 static FORCEINLINE HRESULT IHWEventHandler2_HandleEventWithContent(IHWEventHandler2* This,LPCWSTR pszDeviceID,LPCWSTR pszAltDeviceID,LPCWSTR pszEventType,LPCWSTR pszContentTypeHandler,IDataObject *pdataobject) {
16004     return This->lpVtbl->HandleEventWithContent(This,pszDeviceID,pszAltDeviceID,pszEventType,pszContentTypeHandler,pdataobject);
16005 }
16006 /*** IHWEventHandler2 methods ***/
16007 static FORCEINLINE HRESULT IHWEventHandler2_HandleEventWithHWND(IHWEventHandler2* This,LPCWSTR pszDeviceID,LPCWSTR pszAltDeviceID,LPCWSTR pszEventType,HWND hwndOwner) {
16008     return This->lpVtbl->HandleEventWithHWND(This,pszDeviceID,pszAltDeviceID,pszEventType,hwndOwner);
16009 }
16010 #endif
16011 #endif
16012 
16013 #endif
16014 
16015 HRESULT STDMETHODCALLTYPE IHWEventHandler2_HandleEventWithHWND_Proxy(
16016     IHWEventHandler2* This,
16017     LPCWSTR pszDeviceID,
16018     LPCWSTR pszAltDeviceID,
16019     LPCWSTR pszEventType,
16020     HWND hwndOwner);
16021 void __RPC_STUB IHWEventHandler2_HandleEventWithHWND_Stub(
16022     IRpcStubBuffer* This,
16023     IRpcChannelBuffer* pRpcChannelBuffer,
16024     PRPC_MESSAGE pRpcMessage,
16025     DWORD* pdwStubPhase);
16026 
16027 #endif  /* __IHWEventHandler2_INTERFACE_DEFINED__ */
16028 
16029 
16030 #define ARCONTENT_AUTORUNINF 0x00000002
16031 #define ARCONTENT_AUDIOCD 0x00000004
16032 #define ARCONTENT_DVDMOVIE 0x00000008
16033 #define ARCONTENT_BLANKCD 0x00000010
16034 #define ARCONTENT_BLANKDVD 0x00000020
16035 #define ARCONTENT_UNKNOWNCONTENT 0x00000040
16036 #define ARCONTENT_AUTOPLAYPIX 0x00000080
16037 #define ARCONTENT_AUTOPLAYMUSIC 0x00000100
16038 #define ARCONTENT_AUTOPLAYVIDEO 0x00000200
16039 
16040 #if NTDDI_VERSION >= NTDDI_VISTA
16041 #define ARCONTENT_VCD 0x00000400
16042 #define ARCONTENT_SVCD 0x00000800
16043 #define ARCONTENT_DVDAUDIO 0x00001000
16044 #define ARCONTENT_BLANKBD 0x00002000
16045 #define ARCONTENT_BLURAY 0x00004000
16046 #define ARCONTENT_CAMERASTORAGE 0x00008000
16047 #define ARCONTENT_CUSTOMEVENT 0x00010000
16048 #define ARCONTENT_NONE 0x00000000
16049 #define ARCONTENT_MASK 0x0001FFFE
16050 
16051 #define ARCONTENT_PHASE_UNKNOWN 0x00000000
16052 #define ARCONTENT_PHASE_PRESNIFF 0x10000000
16053 #define ARCONTENT_PHASE_SNIFFING 0x20000000
16054 #define ARCONTENT_PHASE_FINAL 0x40000000
16055 #define ARCONTENT_PHASE_MASK 0x70000000
16056 #endif
16057 
16058 /*****************************************************************************
16059  * IQueryCancelAutoPlay interface
16060  */
16061 #ifndef __IQueryCancelAutoPlay_INTERFACE_DEFINED__
16062 #define __IQueryCancelAutoPlay_INTERFACE_DEFINED__
16063 
16064 DEFINE_GUID(IID_IQueryCancelAutoPlay, 0xddefe873, 0x6997, 0x4e68, 0xbe,0x26, 0x39,0xb6,0x33,0xad,0xbe,0x12);
16065 #if defined(__cplusplus) && !defined(CINTERFACE)
16066 MIDL_INTERFACE("ddefe873-6997-4e68-be26-39b633adbe12")
16067 IQueryCancelAutoPlay : public IUnknown
16068 {
16069     virtual HRESULT STDMETHODCALLTYPE AllowAutoPlay(
16070         LPCWSTR pszPath,
16071         DWORD dwContentType,
16072         LPCWSTR pszLabel,
16073         DWORD dwSerialNumber) = 0;
16074 
16075 };
16076 #ifdef __CRT_UUID_DECL
16077 __CRT_UUID_DECL(IQueryCancelAutoPlay, 0xddefe873, 0x6997, 0x4e68, 0xbe,0x26, 0x39,0xb6,0x33,0xad,0xbe,0x12)
16078 #endif
16079 #else
16080 typedef struct IQueryCancelAutoPlayVtbl {
16081     BEGIN_INTERFACE
16082 
16083     /*** IUnknown methods ***/
16084     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16085         IQueryCancelAutoPlay* This,
16086         REFIID riid,
16087         void **ppvObject);
16088 
16089     ULONG (STDMETHODCALLTYPE *AddRef)(
16090         IQueryCancelAutoPlay* This);
16091 
16092     ULONG (STDMETHODCALLTYPE *Release)(
16093         IQueryCancelAutoPlay* This);
16094 
16095     /*** IQueryCancelAutoPlay methods ***/
16096     HRESULT (STDMETHODCALLTYPE *AllowAutoPlay)(
16097         IQueryCancelAutoPlay* This,
16098         LPCWSTR pszPath,
16099         DWORD dwContentType,
16100         LPCWSTR pszLabel,
16101         DWORD dwSerialNumber);
16102 
16103     END_INTERFACE
16104 } IQueryCancelAutoPlayVtbl;
16105 interface IQueryCancelAutoPlay {
16106     CONST_VTBL IQueryCancelAutoPlayVtbl* lpVtbl;
16107 };
16108 
16109 #ifdef COBJMACROS
16110 #ifndef WIDL_C_INLINE_WRAPPERS
16111 /*** IUnknown methods ***/
16112 #define IQueryCancelAutoPlay_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16113 #define IQueryCancelAutoPlay_AddRef(This) (This)->lpVtbl->AddRef(This)
16114 #define IQueryCancelAutoPlay_Release(This) (This)->lpVtbl->Release(This)
16115 /*** IQueryCancelAutoPlay methods ***/
16116 #define IQueryCancelAutoPlay_AllowAutoPlay(This,pszPath,dwContentType,pszLabel,dwSerialNumber) (This)->lpVtbl->AllowAutoPlay(This,pszPath,dwContentType,pszLabel,dwSerialNumber)
16117 #else
16118 /*** IUnknown methods ***/
16119 static FORCEINLINE HRESULT IQueryCancelAutoPlay_QueryInterface(IQueryCancelAutoPlay* This,REFIID riid,void **ppvObject) {
16120     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16121 }
16122 static FORCEINLINE ULONG IQueryCancelAutoPlay_AddRef(IQueryCancelAutoPlay* This) {
16123     return This->lpVtbl->AddRef(This);
16124 }
16125 static FORCEINLINE ULONG IQueryCancelAutoPlay_Release(IQueryCancelAutoPlay* This) {
16126     return This->lpVtbl->Release(This);
16127 }
16128 /*** IQueryCancelAutoPlay methods ***/
16129 static FORCEINLINE HRESULT IQueryCancelAutoPlay_AllowAutoPlay(IQueryCancelAutoPlay* This,LPCWSTR pszPath,DWORD dwContentType,LPCWSTR pszLabel,DWORD dwSerialNumber) {
16130     return This->lpVtbl->AllowAutoPlay(This,pszPath,dwContentType,pszLabel,dwSerialNumber);
16131 }
16132 #endif
16133 #endif
16134 
16135 #endif
16136 
16137 HRESULT STDMETHODCALLTYPE IQueryCancelAutoPlay_AllowAutoPlay_Proxy(
16138     IQueryCancelAutoPlay* This,
16139     LPCWSTR pszPath,
16140     DWORD dwContentType,
16141     LPCWSTR pszLabel,
16142     DWORD dwSerialNumber);
16143 void __RPC_STUB IQueryCancelAutoPlay_AllowAutoPlay_Stub(
16144     IRpcStubBuffer* This,
16145     IRpcChannelBuffer* pRpcChannelBuffer,
16146     PRPC_MESSAGE pRpcMessage,
16147     DWORD* pdwStubPhase);
16148 
16149 #endif  /* __IQueryCancelAutoPlay_INTERFACE_DEFINED__ */
16150 
16151 
16152 #if NTDDI_VERSION >= NTDDI_VISTA
16153 /*****************************************************************************
16154  * IDynamicHWHandler interface
16155  */
16156 #ifndef __IDynamicHWHandler_INTERFACE_DEFINED__
16157 #define __IDynamicHWHandler_INTERFACE_DEFINED__
16158 
16159 DEFINE_GUID(IID_IDynamicHWHandler, 0xdc2601d7, 0x059e, 0x42fc, 0xa0,0x9d, 0x2a,0xfd,0x21,0xb6,0xd5,0xf7);
16160 #if defined(__cplusplus) && !defined(CINTERFACE)
16161 MIDL_INTERFACE("dc2601d7-059e-42fc-a09d-2afd21b6d5f7")
16162 IDynamicHWHandler : public IUnknown
16163 {
16164     virtual HRESULT STDMETHODCALLTYPE GetDynamicInfo(
16165         LPCWSTR pszDeviceID,
16166         DWORD dwContentType,
16167         LPWSTR *ppszAction) = 0;
16168 
16169 };
16170 #ifdef __CRT_UUID_DECL
16171 __CRT_UUID_DECL(IDynamicHWHandler, 0xdc2601d7, 0x059e, 0x42fc, 0xa0,0x9d, 0x2a,0xfd,0x21,0xb6,0xd5,0xf7)
16172 #endif
16173 #else
16174 typedef struct IDynamicHWHandlerVtbl {
16175     BEGIN_INTERFACE
16176 
16177     /*** IUnknown methods ***/
16178     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16179         IDynamicHWHandler* This,
16180         REFIID riid,
16181         void **ppvObject);
16182 
16183     ULONG (STDMETHODCALLTYPE *AddRef)(
16184         IDynamicHWHandler* This);
16185 
16186     ULONG (STDMETHODCALLTYPE *Release)(
16187         IDynamicHWHandler* This);
16188 
16189     /*** IDynamicHWHandler methods ***/
16190     HRESULT (STDMETHODCALLTYPE *GetDynamicInfo)(
16191         IDynamicHWHandler* This,
16192         LPCWSTR pszDeviceID,
16193         DWORD dwContentType,
16194         LPWSTR *ppszAction);
16195 
16196     END_INTERFACE
16197 } IDynamicHWHandlerVtbl;
16198 interface IDynamicHWHandler {
16199     CONST_VTBL IDynamicHWHandlerVtbl* lpVtbl;
16200 };
16201 
16202 #ifdef COBJMACROS
16203 #ifndef WIDL_C_INLINE_WRAPPERS
16204 /*** IUnknown methods ***/
16205 #define IDynamicHWHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16206 #define IDynamicHWHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
16207 #define IDynamicHWHandler_Release(This) (This)->lpVtbl->Release(This)
16208 /*** IDynamicHWHandler methods ***/
16209 #define IDynamicHWHandler_GetDynamicInfo(This,pszDeviceID,dwContentType,ppszAction) (This)->lpVtbl->GetDynamicInfo(This,pszDeviceID,dwContentType,ppszAction)
16210 #else
16211 /*** IUnknown methods ***/
16212 static FORCEINLINE HRESULT IDynamicHWHandler_QueryInterface(IDynamicHWHandler* This,REFIID riid,void **ppvObject) {
16213     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16214 }
16215 static FORCEINLINE ULONG IDynamicHWHandler_AddRef(IDynamicHWHandler* This) {
16216     return This->lpVtbl->AddRef(This);
16217 }
16218 static FORCEINLINE ULONG IDynamicHWHandler_Release(IDynamicHWHandler* This) {
16219     return This->lpVtbl->Release(This);
16220 }
16221 /*** IDynamicHWHandler methods ***/
16222 static FORCEINLINE HRESULT IDynamicHWHandler_GetDynamicInfo(IDynamicHWHandler* This,LPCWSTR pszDeviceID,DWORD dwContentType,LPWSTR *ppszAction) {
16223     return This->lpVtbl->GetDynamicInfo(This,pszDeviceID,dwContentType,ppszAction);
16224 }
16225 #endif
16226 #endif
16227 
16228 #endif
16229 
16230 HRESULT STDMETHODCALLTYPE IDynamicHWHandler_GetDynamicInfo_Proxy(
16231     IDynamicHWHandler* This,
16232     LPCWSTR pszDeviceID,
16233     DWORD dwContentType,
16234     LPWSTR *ppszAction);
16235 void __RPC_STUB IDynamicHWHandler_GetDynamicInfo_Stub(
16236     IRpcStubBuffer* This,
16237     IRpcChannelBuffer* pRpcChannelBuffer,
16238     PRPC_MESSAGE pRpcMessage,
16239     DWORD* pdwStubPhase);
16240 
16241 #endif  /* __IDynamicHWHandler_INTERFACE_DEFINED__ */
16242 
16243 #endif
16244 
16245 /*****************************************************************************
16246  * IActionProgress interface
16247  */
16248 #ifndef __IActionProgress_INTERFACE_DEFINED__
16249 #define __IActionProgress_INTERFACE_DEFINED__
16250 
16251 enum _SPBEGINF {
16252     SPBEGINF_NORMAL = 0x0,
16253     SPBEGINF_AUTOTIME = 0x2,
16254     SPBEGINF_NOPROGRESSBAR = 0x10,
16255     SPBEGINF_MARQUEEPROGRESS = 0x20,
16256     SPBEGINF_NOCANCELBUTTON = 0x40
16257 };
16258 
16259 
16260 typedef DWORD SPBEGINF;
16261 
16262 typedef enum _SPACTION {
16263     SPACTION_NONE = 0,
16264     SPACTION_MOVING = 1,
16265     SPACTION_COPYING = 2,
16266     SPACTION_RECYCLING = 3,
16267     SPACTION_APPLYINGATTRIBS = 4,
16268     SPACTION_DOWNLOADING = 5,
16269     SPACTION_SEARCHING_INTERNET = 6,
16270     SPACTION_CALCULATING = 7,
16271     SPACTION_UPLOADING = 8,
16272     SPACTION_SEARCHING_FILES = 9,
16273     SPACTION_DELETING = 10,
16274     SPACTION_RENAMING = 11,
16275     SPACTION_FORMATTING = 12,
16276     SPACTION_COPY_MOVING = 13
16277 } SPACTION;
16278 
16279 typedef enum _SPTEXT {
16280     SPTEXT_ACTIONDESCRIPTION = 1,
16281     SPTEXT_ACTIONDETAIL = 2
16282 } SPTEXT;
16283 
16284 DEFINE_GUID(IID_IActionProgress, 0x49ff1173, 0xeadc, 0x446d, 0x92,0x85, 0x15,0x64,0x53,0xa6,0x43,0x1c);
16285 #if defined(__cplusplus) && !defined(CINTERFACE)
16286 MIDL_INTERFACE("49ff1173-eadc-446d-9285-156453a6431c")
16287 IActionProgress : public IUnknown
16288 {
16289     virtual HRESULT STDMETHODCALLTYPE Begin(
16290         SPACTION action,
16291         SPBEGINF flags) = 0;
16292 
16293     virtual HRESULT STDMETHODCALLTYPE UpdateProgress(
16294         ULONGLONG ulCompleted,
16295         ULONGLONG ulTotal) = 0;
16296 
16297     virtual HRESULT STDMETHODCALLTYPE UpdateText(
16298         SPTEXT sptext,
16299         LPCWSTR pszText,
16300         WINBOOL fMayCompact) = 0;
16301 
16302     virtual HRESULT STDMETHODCALLTYPE QueryCancel(
16303         WINBOOL *pfCancelled) = 0;
16304 
16305     virtual HRESULT STDMETHODCALLTYPE ResetCancel(
16306         ) = 0;
16307 
16308     virtual HRESULT STDMETHODCALLTYPE End(
16309         ) = 0;
16310 
16311 };
16312 #ifdef __CRT_UUID_DECL
16313 __CRT_UUID_DECL(IActionProgress, 0x49ff1173, 0xeadc, 0x446d, 0x92,0x85, 0x15,0x64,0x53,0xa6,0x43,0x1c)
16314 #endif
16315 #else
16316 typedef struct IActionProgressVtbl {
16317     BEGIN_INTERFACE
16318 
16319     /*** IUnknown methods ***/
16320     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16321         IActionProgress* This,
16322         REFIID riid,
16323         void **ppvObject);
16324 
16325     ULONG (STDMETHODCALLTYPE *AddRef)(
16326         IActionProgress* This);
16327 
16328     ULONG (STDMETHODCALLTYPE *Release)(
16329         IActionProgress* This);
16330 
16331     /*** IActionProgress methods ***/
16332     HRESULT (STDMETHODCALLTYPE *Begin)(
16333         IActionProgress* This,
16334         SPACTION action,
16335         SPBEGINF flags);
16336 
16337     HRESULT (STDMETHODCALLTYPE *UpdateProgress)(
16338         IActionProgress* This,
16339         ULONGLONG ulCompleted,
16340         ULONGLONG ulTotal);
16341 
16342     HRESULT (STDMETHODCALLTYPE *UpdateText)(
16343         IActionProgress* This,
16344         SPTEXT sptext,
16345         LPCWSTR pszText,
16346         WINBOOL fMayCompact);
16347 
16348     HRESULT (STDMETHODCALLTYPE *QueryCancel)(
16349         IActionProgress* This,
16350         WINBOOL *pfCancelled);
16351 
16352     HRESULT (STDMETHODCALLTYPE *ResetCancel)(
16353         IActionProgress* This);
16354 
16355     HRESULT (STDMETHODCALLTYPE *End)(
16356         IActionProgress* This);
16357 
16358     END_INTERFACE
16359 } IActionProgressVtbl;
16360 interface IActionProgress {
16361     CONST_VTBL IActionProgressVtbl* lpVtbl;
16362 };
16363 
16364 #ifdef COBJMACROS
16365 #ifndef WIDL_C_INLINE_WRAPPERS
16366 /*** IUnknown methods ***/
16367 #define IActionProgress_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16368 #define IActionProgress_AddRef(This) (This)->lpVtbl->AddRef(This)
16369 #define IActionProgress_Release(This) (This)->lpVtbl->Release(This)
16370 /*** IActionProgress methods ***/
16371 #define IActionProgress_Begin(This,action,flags) (This)->lpVtbl->Begin(This,action,flags)
16372 #define IActionProgress_UpdateProgress(This,ulCompleted,ulTotal) (This)->lpVtbl->UpdateProgress(This,ulCompleted,ulTotal)
16373 #define IActionProgress_UpdateText(This,sptext,pszText,fMayCompact) (This)->lpVtbl->UpdateText(This,sptext,pszText,fMayCompact)
16374 #define IActionProgress_QueryCancel(This,pfCancelled) (This)->lpVtbl->QueryCancel(This,pfCancelled)
16375 #define IActionProgress_ResetCancel(This) (This)->lpVtbl->ResetCancel(This)
16376 #define IActionProgress_End(This) (This)->lpVtbl->End(This)
16377 #else
16378 /*** IUnknown methods ***/
16379 static FORCEINLINE HRESULT IActionProgress_QueryInterface(IActionProgress* This,REFIID riid,void **ppvObject) {
16380     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16381 }
16382 static FORCEINLINE ULONG IActionProgress_AddRef(IActionProgress* This) {
16383     return This->lpVtbl->AddRef(This);
16384 }
16385 static FORCEINLINE ULONG IActionProgress_Release(IActionProgress* This) {
16386     return This->lpVtbl->Release(This);
16387 }
16388 /*** IActionProgress methods ***/
16389 static FORCEINLINE HRESULT IActionProgress_Begin(IActionProgress* This,SPACTION action,SPBEGINF flags) {
16390     return This->lpVtbl->Begin(This,action,flags);
16391 }
16392 static FORCEINLINE HRESULT IActionProgress_UpdateProgress(IActionProgress* This,ULONGLONG ulCompleted,ULONGLONG ulTotal) {
16393     return This->lpVtbl->UpdateProgress(This,ulCompleted,ulTotal);
16394 }
16395 static FORCEINLINE HRESULT IActionProgress_UpdateText(IActionProgress* This,SPTEXT sptext,LPCWSTR pszText,WINBOOL fMayCompact) {
16396     return This->lpVtbl->UpdateText(This,sptext,pszText,fMayCompact);
16397 }
16398 static FORCEINLINE HRESULT IActionProgress_QueryCancel(IActionProgress* This,WINBOOL *pfCancelled) {
16399     return This->lpVtbl->QueryCancel(This,pfCancelled);
16400 }
16401 static FORCEINLINE HRESULT IActionProgress_ResetCancel(IActionProgress* This) {
16402     return This->lpVtbl->ResetCancel(This);
16403 }
16404 static FORCEINLINE HRESULT IActionProgress_End(IActionProgress* This) {
16405     return This->lpVtbl->End(This);
16406 }
16407 #endif
16408 #endif
16409 
16410 #endif
16411 
16412 HRESULT STDMETHODCALLTYPE IActionProgress_Begin_Proxy(
16413     IActionProgress* This,
16414     SPACTION action,
16415     SPBEGINF flags);
16416 void __RPC_STUB IActionProgress_Begin_Stub(
16417     IRpcStubBuffer* This,
16418     IRpcChannelBuffer* pRpcChannelBuffer,
16419     PRPC_MESSAGE pRpcMessage,
16420     DWORD* pdwStubPhase);
16421 HRESULT STDMETHODCALLTYPE IActionProgress_UpdateProgress_Proxy(
16422     IActionProgress* This,
16423     ULONGLONG ulCompleted,
16424     ULONGLONG ulTotal);
16425 void __RPC_STUB IActionProgress_UpdateProgress_Stub(
16426     IRpcStubBuffer* This,
16427     IRpcChannelBuffer* pRpcChannelBuffer,
16428     PRPC_MESSAGE pRpcMessage,
16429     DWORD* pdwStubPhase);
16430 HRESULT STDMETHODCALLTYPE IActionProgress_UpdateText_Proxy(
16431     IActionProgress* This,
16432     SPTEXT sptext,
16433     LPCWSTR pszText,
16434     WINBOOL fMayCompact);
16435 void __RPC_STUB IActionProgress_UpdateText_Stub(
16436     IRpcStubBuffer* This,
16437     IRpcChannelBuffer* pRpcChannelBuffer,
16438     PRPC_MESSAGE pRpcMessage,
16439     DWORD* pdwStubPhase);
16440 HRESULT STDMETHODCALLTYPE IActionProgress_QueryCancel_Proxy(
16441     IActionProgress* This,
16442     WINBOOL *pfCancelled);
16443 void __RPC_STUB IActionProgress_QueryCancel_Stub(
16444     IRpcStubBuffer* This,
16445     IRpcChannelBuffer* pRpcChannelBuffer,
16446     PRPC_MESSAGE pRpcMessage,
16447     DWORD* pdwStubPhase);
16448 HRESULT STDMETHODCALLTYPE IActionProgress_ResetCancel_Proxy(
16449     IActionProgress* This);
16450 void __RPC_STUB IActionProgress_ResetCancel_Stub(
16451     IRpcStubBuffer* This,
16452     IRpcChannelBuffer* pRpcChannelBuffer,
16453     PRPC_MESSAGE pRpcMessage,
16454     DWORD* pdwStubPhase);
16455 HRESULT STDMETHODCALLTYPE IActionProgress_End_Proxy(
16456     IActionProgress* This);
16457 void __RPC_STUB IActionProgress_End_Stub(
16458     IRpcStubBuffer* This,
16459     IRpcChannelBuffer* pRpcChannelBuffer,
16460     PRPC_MESSAGE pRpcMessage,
16461     DWORD* pdwStubPhase);
16462 
16463 #endif  /* __IActionProgress_INTERFACE_DEFINED__ */
16464 
16465 
16466 /*****************************************************************************
16467  * IShellExtInit interface
16468  */
16469 #ifndef __IShellExtInit_INTERFACE_DEFINED__
16470 #define __IShellExtInit_INTERFACE_DEFINED__
16471 
16472 DEFINE_GUID(IID_IShellExtInit, 0x000214e8, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
16473 #if defined(__cplusplus) && !defined(CINTERFACE)
16474 MIDL_INTERFACE("000214e8-0000-0000-c000-000000000046")
16475 IShellExtInit : public IUnknown
16476 {
16477     virtual HRESULT STDMETHODCALLTYPE Initialize(
16478         PCIDLIST_ABSOLUTE pidlFolder,
16479         IDataObject *pdtobj,
16480         HKEY hkeyProgID) = 0;
16481 
16482 };
16483 #ifdef __CRT_UUID_DECL
16484 __CRT_UUID_DECL(IShellExtInit, 0x000214e8, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
16485 #endif
16486 #else
16487 typedef struct IShellExtInitVtbl {
16488     BEGIN_INTERFACE
16489 
16490     /*** IUnknown methods ***/
16491     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16492         IShellExtInit* This,
16493         REFIID riid,
16494         void **ppvObject);
16495 
16496     ULONG (STDMETHODCALLTYPE *AddRef)(
16497         IShellExtInit* This);
16498 
16499     ULONG (STDMETHODCALLTYPE *Release)(
16500         IShellExtInit* This);
16501 
16502     /*** IShellExtInit methods ***/
16503     HRESULT (STDMETHODCALLTYPE *Initialize)(
16504         IShellExtInit* This,
16505         PCIDLIST_ABSOLUTE pidlFolder,
16506         IDataObject *pdtobj,
16507         HKEY hkeyProgID);
16508 
16509     END_INTERFACE
16510 } IShellExtInitVtbl;
16511 interface IShellExtInit {
16512     CONST_VTBL IShellExtInitVtbl* lpVtbl;
16513 };
16514 
16515 #ifdef COBJMACROS
16516 #ifndef WIDL_C_INLINE_WRAPPERS
16517 /*** IUnknown methods ***/
16518 #define IShellExtInit_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16519 #define IShellExtInit_AddRef(This) (This)->lpVtbl->AddRef(This)
16520 #define IShellExtInit_Release(This) (This)->lpVtbl->Release(This)
16521 /*** IShellExtInit methods ***/
16522 #define IShellExtInit_Initialize(This,pidlFolder,pdtobj,hkeyProgID) (This)->lpVtbl->Initialize(This,pidlFolder,pdtobj,hkeyProgID)
16523 #else
16524 /*** IUnknown methods ***/
16525 static FORCEINLINE HRESULT IShellExtInit_QueryInterface(IShellExtInit* This,REFIID riid,void **ppvObject) {
16526     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16527 }
16528 static FORCEINLINE ULONG IShellExtInit_AddRef(IShellExtInit* This) {
16529     return This->lpVtbl->AddRef(This);
16530 }
16531 static FORCEINLINE ULONG IShellExtInit_Release(IShellExtInit* This) {
16532     return This->lpVtbl->Release(This);
16533 }
16534 /*** IShellExtInit methods ***/
16535 static FORCEINLINE HRESULT IShellExtInit_Initialize(IShellExtInit* This,PCIDLIST_ABSOLUTE pidlFolder,IDataObject *pdtobj,HKEY hkeyProgID) {
16536     return This->lpVtbl->Initialize(This,pidlFolder,pdtobj,hkeyProgID);
16537 }
16538 #endif
16539 #endif
16540 
16541 #endif
16542 
16543 HRESULT STDMETHODCALLTYPE IShellExtInit_Initialize_Proxy(
16544     IShellExtInit* This,
16545     PCIDLIST_ABSOLUTE pidlFolder,
16546     IDataObject *pdtobj,
16547     HKEY hkeyProgID);
16548 void __RPC_STUB IShellExtInit_Initialize_Stub(
16549     IRpcStubBuffer* This,
16550     IRpcChannelBuffer* pRpcChannelBuffer,
16551     PRPC_MESSAGE pRpcMessage,
16552     DWORD* pdwStubPhase);
16553 
16554 #endif  /* __IShellExtInit_INTERFACE_DEFINED__ */
16555 
16556 typedef IShellExtInit *LPSHELLEXTINIT;
16557 
16558 /*****************************************************************************
16559  * IShellPropSheetExt interface
16560  */
16561 #ifndef __IShellPropSheetExt_INTERFACE_DEFINED__
16562 #define __IShellPropSheetExt_INTERFACE_DEFINED__
16563 
16564 enum _EXPPS {
16565     EXPPS_FILETYPES = 0x1
16566 };
16567 
16568 
16569 typedef UINT EXPPS;
16570 
16571 DEFINE_GUID(IID_IShellPropSheetExt, 0x000214e9, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
16572 #if defined(__cplusplus) && !defined(CINTERFACE)
16573 MIDL_INTERFACE("000214e9-0000-0000-c000-000000000046")
16574 IShellPropSheetExt : public IUnknown
16575 {
16576     virtual HRESULT STDMETHODCALLTYPE AddPages(
16577         LPFNSVADDPROPSHEETPAGE pfnAddPage,
16578         LPARAM lParam) = 0;
16579 
16580     virtual HRESULT STDMETHODCALLTYPE ReplacePage(
16581         EXPPS uPageID,
16582         LPFNSVADDPROPSHEETPAGE pfnReplaceWith,
16583         LPARAM lParam) = 0;
16584 
16585 };
16586 #ifdef __CRT_UUID_DECL
16587 __CRT_UUID_DECL(IShellPropSheetExt, 0x000214e9, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
16588 #endif
16589 #else
16590 typedef struct IShellPropSheetExtVtbl {
16591     BEGIN_INTERFACE
16592 
16593     /*** IUnknown methods ***/
16594     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16595         IShellPropSheetExt* This,
16596         REFIID riid,
16597         void **ppvObject);
16598 
16599     ULONG (STDMETHODCALLTYPE *AddRef)(
16600         IShellPropSheetExt* This);
16601 
16602     ULONG (STDMETHODCALLTYPE *Release)(
16603         IShellPropSheetExt* This);
16604 
16605     /*** IShellPropSheetExt methods ***/
16606     HRESULT (STDMETHODCALLTYPE *AddPages)(
16607         IShellPropSheetExt* This,
16608         LPFNSVADDPROPSHEETPAGE pfnAddPage,
16609         LPARAM lParam);
16610 
16611     HRESULT (STDMETHODCALLTYPE *ReplacePage)(
16612         IShellPropSheetExt* This,
16613         EXPPS uPageID,
16614         LPFNSVADDPROPSHEETPAGE pfnReplaceWith,
16615         LPARAM lParam);
16616 
16617     END_INTERFACE
16618 } IShellPropSheetExtVtbl;
16619 interface IShellPropSheetExt {
16620     CONST_VTBL IShellPropSheetExtVtbl* lpVtbl;
16621 };
16622 
16623 #ifdef COBJMACROS
16624 #ifndef WIDL_C_INLINE_WRAPPERS
16625 /*** IUnknown methods ***/
16626 #define IShellPropSheetExt_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16627 #define IShellPropSheetExt_AddRef(This) (This)->lpVtbl->AddRef(This)
16628 #define IShellPropSheetExt_Release(This) (This)->lpVtbl->Release(This)
16629 /*** IShellPropSheetExt methods ***/
16630 #define IShellPropSheetExt_AddPages(This,pfnAddPage,lParam) (This)->lpVtbl->AddPages(This,pfnAddPage,lParam)
16631 #define IShellPropSheetExt_ReplacePage(This,uPageID,pfnReplaceWith,lParam) (This)->lpVtbl->ReplacePage(This,uPageID,pfnReplaceWith,lParam)
16632 #else
16633 /*** IUnknown methods ***/
16634 static FORCEINLINE HRESULT IShellPropSheetExt_QueryInterface(IShellPropSheetExt* This,REFIID riid,void **ppvObject) {
16635     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16636 }
16637 static FORCEINLINE ULONG IShellPropSheetExt_AddRef(IShellPropSheetExt* This) {
16638     return This->lpVtbl->AddRef(This);
16639 }
16640 static FORCEINLINE ULONG IShellPropSheetExt_Release(IShellPropSheetExt* This) {
16641     return This->lpVtbl->Release(This);
16642 }
16643 /*** IShellPropSheetExt methods ***/
16644 static FORCEINLINE HRESULT IShellPropSheetExt_AddPages(IShellPropSheetExt* This,LPFNSVADDPROPSHEETPAGE pfnAddPage,LPARAM lParam) {
16645     return This->lpVtbl->AddPages(This,pfnAddPage,lParam);
16646 }
16647 static FORCEINLINE HRESULT IShellPropSheetExt_ReplacePage(IShellPropSheetExt* This,EXPPS uPageID,LPFNSVADDPROPSHEETPAGE pfnReplaceWith,LPARAM lParam) {
16648     return This->lpVtbl->ReplacePage(This,uPageID,pfnReplaceWith,lParam);
16649 }
16650 #endif
16651 #endif
16652 
16653 #endif
16654 
16655 HRESULT STDMETHODCALLTYPE IShellPropSheetExt_AddPages_Proxy(
16656     IShellPropSheetExt* This,
16657     LPFNSVADDPROPSHEETPAGE pfnAddPage,
16658     LPARAM lParam);
16659 void __RPC_STUB IShellPropSheetExt_AddPages_Stub(
16660     IRpcStubBuffer* This,
16661     IRpcChannelBuffer* pRpcChannelBuffer,
16662     PRPC_MESSAGE pRpcMessage,
16663     DWORD* pdwStubPhase);
16664 HRESULT STDMETHODCALLTYPE IShellPropSheetExt_ReplacePage_Proxy(
16665     IShellPropSheetExt* This,
16666     EXPPS uPageID,
16667     LPFNSVADDPROPSHEETPAGE pfnReplaceWith,
16668     LPARAM lParam);
16669 void __RPC_STUB IShellPropSheetExt_ReplacePage_Stub(
16670     IRpcStubBuffer* This,
16671     IRpcChannelBuffer* pRpcChannelBuffer,
16672     PRPC_MESSAGE pRpcMessage,
16673     DWORD* pdwStubPhase);
16674 
16675 #endif  /* __IShellPropSheetExt_INTERFACE_DEFINED__ */
16676 
16677 typedef IShellPropSheetExt *LPSHELLPROPSHEETEXT;
16678 
16679 /*****************************************************************************
16680  * IRemoteComputer interface
16681  */
16682 #ifndef __IRemoteComputer_INTERFACE_DEFINED__
16683 #define __IRemoteComputer_INTERFACE_DEFINED__
16684 
16685 DEFINE_GUID(IID_IRemoteComputer, 0x000214fe, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
16686 #if defined(__cplusplus) && !defined(CINTERFACE)
16687 MIDL_INTERFACE("000214fe-0000-0000-c000-000000000046")
16688 IRemoteComputer : public IUnknown
16689 {
16690     virtual HRESULT STDMETHODCALLTYPE Initialize(
16691         LPCWSTR pszMachine,
16692         WINBOOL bEnumerating) = 0;
16693 
16694 };
16695 #ifdef __CRT_UUID_DECL
16696 __CRT_UUID_DECL(IRemoteComputer, 0x000214fe, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
16697 #endif
16698 #else
16699 typedef struct IRemoteComputerVtbl {
16700     BEGIN_INTERFACE
16701 
16702     /*** IUnknown methods ***/
16703     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16704         IRemoteComputer* This,
16705         REFIID riid,
16706         void **ppvObject);
16707 
16708     ULONG (STDMETHODCALLTYPE *AddRef)(
16709         IRemoteComputer* This);
16710 
16711     ULONG (STDMETHODCALLTYPE *Release)(
16712         IRemoteComputer* This);
16713 
16714     /*** IRemoteComputer methods ***/
16715     HRESULT (STDMETHODCALLTYPE *Initialize)(
16716         IRemoteComputer* This,
16717         LPCWSTR pszMachine,
16718         WINBOOL bEnumerating);
16719 
16720     END_INTERFACE
16721 } IRemoteComputerVtbl;
16722 interface IRemoteComputer {
16723     CONST_VTBL IRemoteComputerVtbl* lpVtbl;
16724 };
16725 
16726 #ifdef COBJMACROS
16727 #ifndef WIDL_C_INLINE_WRAPPERS
16728 /*** IUnknown methods ***/
16729 #define IRemoteComputer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16730 #define IRemoteComputer_AddRef(This) (This)->lpVtbl->AddRef(This)
16731 #define IRemoteComputer_Release(This) (This)->lpVtbl->Release(This)
16732 /*** IRemoteComputer methods ***/
16733 #define IRemoteComputer_Initialize(This,pszMachine,bEnumerating) (This)->lpVtbl->Initialize(This,pszMachine,bEnumerating)
16734 #else
16735 /*** IUnknown methods ***/
16736 static FORCEINLINE HRESULT IRemoteComputer_QueryInterface(IRemoteComputer* This,REFIID riid,void **ppvObject) {
16737     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16738 }
16739 static FORCEINLINE ULONG IRemoteComputer_AddRef(IRemoteComputer* This) {
16740     return This->lpVtbl->AddRef(This);
16741 }
16742 static FORCEINLINE ULONG IRemoteComputer_Release(IRemoteComputer* This) {
16743     return This->lpVtbl->Release(This);
16744 }
16745 /*** IRemoteComputer methods ***/
16746 static FORCEINLINE HRESULT IRemoteComputer_Initialize(IRemoteComputer* This,LPCWSTR pszMachine,WINBOOL bEnumerating) {
16747     return This->lpVtbl->Initialize(This,pszMachine,bEnumerating);
16748 }
16749 #endif
16750 #endif
16751 
16752 #endif
16753 
16754 HRESULT STDMETHODCALLTYPE IRemoteComputer_Initialize_Proxy(
16755     IRemoteComputer* This,
16756     LPCWSTR pszMachine,
16757     WINBOOL bEnumerating);
16758 void __RPC_STUB IRemoteComputer_Initialize_Stub(
16759     IRpcStubBuffer* This,
16760     IRpcChannelBuffer* pRpcChannelBuffer,
16761     PRPC_MESSAGE pRpcMessage,
16762     DWORD* pdwStubPhase);
16763 
16764 #endif  /* __IRemoteComputer_INTERFACE_DEFINED__ */
16765 
16766 
16767 /*****************************************************************************
16768  * IQueryContinue interface
16769  */
16770 #ifndef __IQueryContinue_INTERFACE_DEFINED__
16771 #define __IQueryContinue_INTERFACE_DEFINED__
16772 
16773 DEFINE_GUID(IID_IQueryContinue, 0x7307055c, 0xb24a, 0x486b, 0x9f,0x25, 0x16,0x3e,0x59,0x7a,0x28,0xa9);
16774 #if defined(__cplusplus) && !defined(CINTERFACE)
16775 MIDL_INTERFACE("7307055c-b24a-486b-9f25-163e597a28a9")
16776 IQueryContinue : public IUnknown
16777 {
16778     virtual HRESULT STDMETHODCALLTYPE QueryContinue(
16779         ) = 0;
16780 
16781 };
16782 #ifdef __CRT_UUID_DECL
16783 __CRT_UUID_DECL(IQueryContinue, 0x7307055c, 0xb24a, 0x486b, 0x9f,0x25, 0x16,0x3e,0x59,0x7a,0x28,0xa9)
16784 #endif
16785 #else
16786 typedef struct IQueryContinueVtbl {
16787     BEGIN_INTERFACE
16788 
16789     /*** IUnknown methods ***/
16790     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16791         IQueryContinue* This,
16792         REFIID riid,
16793         void **ppvObject);
16794 
16795     ULONG (STDMETHODCALLTYPE *AddRef)(
16796         IQueryContinue* This);
16797 
16798     ULONG (STDMETHODCALLTYPE *Release)(
16799         IQueryContinue* This);
16800 
16801     /*** IQueryContinue methods ***/
16802     HRESULT (STDMETHODCALLTYPE *QueryContinue)(
16803         IQueryContinue* This);
16804 
16805     END_INTERFACE
16806 } IQueryContinueVtbl;
16807 interface IQueryContinue {
16808     CONST_VTBL IQueryContinueVtbl* lpVtbl;
16809 };
16810 
16811 #ifdef COBJMACROS
16812 #ifndef WIDL_C_INLINE_WRAPPERS
16813 /*** IUnknown methods ***/
16814 #define IQueryContinue_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16815 #define IQueryContinue_AddRef(This) (This)->lpVtbl->AddRef(This)
16816 #define IQueryContinue_Release(This) (This)->lpVtbl->Release(This)
16817 /*** IQueryContinue methods ***/
16818 #define IQueryContinue_QueryContinue(This) (This)->lpVtbl->QueryContinue(This)
16819 #else
16820 /*** IUnknown methods ***/
16821 static FORCEINLINE HRESULT IQueryContinue_QueryInterface(IQueryContinue* This,REFIID riid,void **ppvObject) {
16822     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16823 }
16824 static FORCEINLINE ULONG IQueryContinue_AddRef(IQueryContinue* This) {
16825     return This->lpVtbl->AddRef(This);
16826 }
16827 static FORCEINLINE ULONG IQueryContinue_Release(IQueryContinue* This) {
16828     return This->lpVtbl->Release(This);
16829 }
16830 /*** IQueryContinue methods ***/
16831 static FORCEINLINE HRESULT IQueryContinue_QueryContinue(IQueryContinue* This) {
16832     return This->lpVtbl->QueryContinue(This);
16833 }
16834 #endif
16835 #endif
16836 
16837 #endif
16838 
16839 HRESULT STDMETHODCALLTYPE IQueryContinue_QueryContinue_Proxy(
16840     IQueryContinue* This);
16841 void __RPC_STUB IQueryContinue_QueryContinue_Stub(
16842     IRpcStubBuffer* This,
16843     IRpcChannelBuffer* pRpcChannelBuffer,
16844     PRPC_MESSAGE pRpcMessage,
16845     DWORD* pdwStubPhase);
16846 
16847 #endif  /* __IQueryContinue_INTERFACE_DEFINED__ */
16848 
16849 
16850 /*****************************************************************************
16851  * IObjectWithCancelEvent interface
16852  */
16853 #ifndef __IObjectWithCancelEvent_INTERFACE_DEFINED__
16854 #define __IObjectWithCancelEvent_INTERFACE_DEFINED__
16855 
16856 DEFINE_GUID(IID_IObjectWithCancelEvent, 0xf279b885, 0x0ae9, 0x4b85, 0xac,0x06, 0xdd,0xec,0xf9,0x40,0x89,0x41);
16857 #if defined(__cplusplus) && !defined(CINTERFACE)
16858 MIDL_INTERFACE("f279b885-0ae9-4b85-ac06-ddecf9408941")
16859 IObjectWithCancelEvent : public IUnknown
16860 {
16861     virtual HRESULT STDMETHODCALLTYPE GetCancelEvent(
16862         HANDLE *phEvent) = 0;
16863 
16864 };
16865 #ifdef __CRT_UUID_DECL
16866 __CRT_UUID_DECL(IObjectWithCancelEvent, 0xf279b885, 0x0ae9, 0x4b85, 0xac,0x06, 0xdd,0xec,0xf9,0x40,0x89,0x41)
16867 #endif
16868 #else
16869 typedef struct IObjectWithCancelEventVtbl {
16870     BEGIN_INTERFACE
16871 
16872     /*** IUnknown methods ***/
16873     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16874         IObjectWithCancelEvent* This,
16875         REFIID riid,
16876         void **ppvObject);
16877 
16878     ULONG (STDMETHODCALLTYPE *AddRef)(
16879         IObjectWithCancelEvent* This);
16880 
16881     ULONG (STDMETHODCALLTYPE *Release)(
16882         IObjectWithCancelEvent* This);
16883 
16884     /*** IObjectWithCancelEvent methods ***/
16885     HRESULT (STDMETHODCALLTYPE *GetCancelEvent)(
16886         IObjectWithCancelEvent* This,
16887         HANDLE *phEvent);
16888 
16889     END_INTERFACE
16890 } IObjectWithCancelEventVtbl;
16891 interface IObjectWithCancelEvent {
16892     CONST_VTBL IObjectWithCancelEventVtbl* lpVtbl;
16893 };
16894 
16895 #ifdef COBJMACROS
16896 #ifndef WIDL_C_INLINE_WRAPPERS
16897 /*** IUnknown methods ***/
16898 #define IObjectWithCancelEvent_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16899 #define IObjectWithCancelEvent_AddRef(This) (This)->lpVtbl->AddRef(This)
16900 #define IObjectWithCancelEvent_Release(This) (This)->lpVtbl->Release(This)
16901 /*** IObjectWithCancelEvent methods ***/
16902 #define IObjectWithCancelEvent_GetCancelEvent(This,phEvent) (This)->lpVtbl->GetCancelEvent(This,phEvent)
16903 #else
16904 /*** IUnknown methods ***/
16905 static FORCEINLINE HRESULT IObjectWithCancelEvent_QueryInterface(IObjectWithCancelEvent* This,REFIID riid,void **ppvObject) {
16906     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16907 }
16908 static FORCEINLINE ULONG IObjectWithCancelEvent_AddRef(IObjectWithCancelEvent* This) {
16909     return This->lpVtbl->AddRef(This);
16910 }
16911 static FORCEINLINE ULONG IObjectWithCancelEvent_Release(IObjectWithCancelEvent* This) {
16912     return This->lpVtbl->Release(This);
16913 }
16914 /*** IObjectWithCancelEvent methods ***/
16915 static FORCEINLINE HRESULT IObjectWithCancelEvent_GetCancelEvent(IObjectWithCancelEvent* This,HANDLE *phEvent) {
16916     return This->lpVtbl->GetCancelEvent(This,phEvent);
16917 }
16918 #endif
16919 #endif
16920 
16921 #endif
16922 
16923 HRESULT STDMETHODCALLTYPE IObjectWithCancelEvent_GetCancelEvent_Proxy(
16924     IObjectWithCancelEvent* This,
16925     HANDLE *phEvent);
16926 void __RPC_STUB IObjectWithCancelEvent_GetCancelEvent_Stub(
16927     IRpcStubBuffer* This,
16928     IRpcChannelBuffer* pRpcChannelBuffer,
16929     PRPC_MESSAGE pRpcMessage,
16930     DWORD* pdwStubPhase);
16931 
16932 #endif  /* __IObjectWithCancelEvent_INTERFACE_DEFINED__ */
16933 
16934 
16935 /*****************************************************************************
16936  * IUserNotification interface
16937  */
16938 #ifndef __IUserNotification_INTERFACE_DEFINED__
16939 #define __IUserNotification_INTERFACE_DEFINED__
16940 
16941 DEFINE_GUID(IID_IUserNotification, 0xba9711ba, 0x5893, 0x4787, 0xa7,0xe1, 0x41,0x27,0x71,0x51,0x55,0x0b);
16942 #if defined(__cplusplus) && !defined(CINTERFACE)
16943 MIDL_INTERFACE("ba9711ba-5893-4787-a7e1-41277151550b")
16944 IUserNotification : public IUnknown
16945 {
16946     virtual HRESULT STDMETHODCALLTYPE SetBalloonInfo(
16947         LPCWSTR pszTitle,
16948         LPCWSTR pszText,
16949         DWORD dwInfoFlags) = 0;
16950 
16951     virtual HRESULT STDMETHODCALLTYPE SetBalloonRetry(
16952         DWORD dwShowTime,
16953         DWORD dwInterval,
16954         UINT cRetryCount) = 0;
16955 
16956     virtual HRESULT STDMETHODCALLTYPE SetIconInfo(
16957         HICON hIcon,
16958         LPCWSTR pszToolTip) = 0;
16959 
16960     virtual HRESULT STDMETHODCALLTYPE Show(
16961         IQueryContinue *pqc,
16962         DWORD dwContinuePollInterval) = 0;
16963 
16964     virtual HRESULT STDMETHODCALLTYPE PlaySound(
16965         LPCWSTR pszSoundName) = 0;
16966 
16967 };
16968 #ifdef __CRT_UUID_DECL
16969 __CRT_UUID_DECL(IUserNotification, 0xba9711ba, 0x5893, 0x4787, 0xa7,0xe1, 0x41,0x27,0x71,0x51,0x55,0x0b)
16970 #endif
16971 #else
16972 typedef struct IUserNotificationVtbl {
16973     BEGIN_INTERFACE
16974 
16975     /*** IUnknown methods ***/
16976     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16977         IUserNotification* This,
16978         REFIID riid,
16979         void **ppvObject);
16980 
16981     ULONG (STDMETHODCALLTYPE *AddRef)(
16982         IUserNotification* This);
16983 
16984     ULONG (STDMETHODCALLTYPE *Release)(
16985         IUserNotification* This);
16986 
16987     /*** IUserNotification methods ***/
16988     HRESULT (STDMETHODCALLTYPE *SetBalloonInfo)(
16989         IUserNotification* This,
16990         LPCWSTR pszTitle,
16991         LPCWSTR pszText,
16992         DWORD dwInfoFlags);
16993 
16994     HRESULT (STDMETHODCALLTYPE *SetBalloonRetry)(
16995         IUserNotification* This,
16996         DWORD dwShowTime,
16997         DWORD dwInterval,
16998         UINT cRetryCount);
16999 
17000     HRESULT (STDMETHODCALLTYPE *SetIconInfo)(
17001         IUserNotification* This,
17002         HICON hIcon,
17003         LPCWSTR pszToolTip);
17004 
17005     HRESULT (STDMETHODCALLTYPE *Show)(
17006         IUserNotification* This,
17007         IQueryContinue *pqc,
17008         DWORD dwContinuePollInterval);
17009 
17010     HRESULT (STDMETHODCALLTYPE *PlaySound)(
17011         IUserNotification* This,
17012         LPCWSTR pszSoundName);
17013 
17014     END_INTERFACE
17015 } IUserNotificationVtbl;
17016 interface IUserNotification {
17017     CONST_VTBL IUserNotificationVtbl* lpVtbl;
17018 };
17019 
17020 #ifdef COBJMACROS
17021 #ifndef WIDL_C_INLINE_WRAPPERS
17022 /*** IUnknown methods ***/
17023 #define IUserNotification_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17024 #define IUserNotification_AddRef(This) (This)->lpVtbl->AddRef(This)
17025 #define IUserNotification_Release(This) (This)->lpVtbl->Release(This)
17026 /*** IUserNotification methods ***/
17027 #define IUserNotification_SetBalloonInfo(This,pszTitle,pszText,dwInfoFlags) (This)->lpVtbl->SetBalloonInfo(This,pszTitle,pszText,dwInfoFlags)
17028 #define IUserNotification_SetBalloonRetry(This,dwShowTime,dwInterval,cRetryCount) (This)->lpVtbl->SetBalloonRetry(This,dwShowTime,dwInterval,cRetryCount)
17029 #define IUserNotification_SetIconInfo(This,hIcon,pszToolTip) (This)->lpVtbl->SetIconInfo(This,hIcon,pszToolTip)
17030 #define IUserNotification_Show(This,pqc,dwContinuePollInterval) (This)->lpVtbl->Show(This,pqc,dwContinuePollInterval)
17031 #define IUserNotification_PlaySound(This,pszSoundName) (This)->lpVtbl->PlaySound(This,pszSoundName)
17032 #else
17033 /*** IUnknown methods ***/
17034 static FORCEINLINE HRESULT IUserNotification_QueryInterface(IUserNotification* This,REFIID riid,void **ppvObject) {
17035     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17036 }
17037 static FORCEINLINE ULONG IUserNotification_AddRef(IUserNotification* This) {
17038     return This->lpVtbl->AddRef(This);
17039 }
17040 static FORCEINLINE ULONG IUserNotification_Release(IUserNotification* This) {
17041     return This->lpVtbl->Release(This);
17042 }
17043 /*** IUserNotification methods ***/
17044 static FORCEINLINE HRESULT IUserNotification_SetBalloonInfo(IUserNotification* This,LPCWSTR pszTitle,LPCWSTR pszText,DWORD dwInfoFlags) {
17045     return This->lpVtbl->SetBalloonInfo(This,pszTitle,pszText,dwInfoFlags);
17046 }
17047 static FORCEINLINE HRESULT IUserNotification_SetBalloonRetry(IUserNotification* This,DWORD dwShowTime,DWORD dwInterval,UINT cRetryCount) {
17048     return This->lpVtbl->SetBalloonRetry(This,dwShowTime,dwInterval,cRetryCount);
17049 }
17050 static FORCEINLINE HRESULT IUserNotification_SetIconInfo(IUserNotification* This,HICON hIcon,LPCWSTR pszToolTip) {
17051     return This->lpVtbl->SetIconInfo(This,hIcon,pszToolTip);
17052 }
17053 static FORCEINLINE HRESULT IUserNotification_Show(IUserNotification* This,IQueryContinue *pqc,DWORD dwContinuePollInterval) {
17054     return This->lpVtbl->Show(This,pqc,dwContinuePollInterval);
17055 }
17056 static FORCEINLINE HRESULT IUserNotification_PlaySound(IUserNotification* This,LPCWSTR pszSoundName) {
17057     return This->lpVtbl->PlaySound(This,pszSoundName);
17058 }
17059 #endif
17060 #endif
17061 
17062 #endif
17063 
17064 HRESULT STDMETHODCALLTYPE IUserNotification_SetBalloonInfo_Proxy(
17065     IUserNotification* This,
17066     LPCWSTR pszTitle,
17067     LPCWSTR pszText,
17068     DWORD dwInfoFlags);
17069 void __RPC_STUB IUserNotification_SetBalloonInfo_Stub(
17070     IRpcStubBuffer* This,
17071     IRpcChannelBuffer* pRpcChannelBuffer,
17072     PRPC_MESSAGE pRpcMessage,
17073     DWORD* pdwStubPhase);
17074 HRESULT STDMETHODCALLTYPE IUserNotification_SetBalloonRetry_Proxy(
17075     IUserNotification* This,
17076     DWORD dwShowTime,
17077     DWORD dwInterval,
17078     UINT cRetryCount);
17079 void __RPC_STUB IUserNotification_SetBalloonRetry_Stub(
17080     IRpcStubBuffer* This,
17081     IRpcChannelBuffer* pRpcChannelBuffer,
17082     PRPC_MESSAGE pRpcMessage,
17083     DWORD* pdwStubPhase);
17084 HRESULT STDMETHODCALLTYPE IUserNotification_SetIconInfo_Proxy(
17085     IUserNotification* This,
17086     HICON hIcon,
17087     LPCWSTR pszToolTip);
17088 void __RPC_STUB IUserNotification_SetIconInfo_Stub(
17089     IRpcStubBuffer* This,
17090     IRpcChannelBuffer* pRpcChannelBuffer,
17091     PRPC_MESSAGE pRpcMessage,
17092     DWORD* pdwStubPhase);
17093 HRESULT STDMETHODCALLTYPE IUserNotification_Show_Proxy(
17094     IUserNotification* This,
17095     IQueryContinue *pqc,
17096     DWORD dwContinuePollInterval);
17097 void __RPC_STUB IUserNotification_Show_Stub(
17098     IRpcStubBuffer* This,
17099     IRpcChannelBuffer* pRpcChannelBuffer,
17100     PRPC_MESSAGE pRpcMessage,
17101     DWORD* pdwStubPhase);
17102 HRESULT STDMETHODCALLTYPE IUserNotification_PlaySound_Proxy(
17103     IUserNotification* This,
17104     LPCWSTR pszSoundName);
17105 void __RPC_STUB IUserNotification_PlaySound_Stub(
17106     IRpcStubBuffer* This,
17107     IRpcChannelBuffer* pRpcChannelBuffer,
17108     PRPC_MESSAGE pRpcMessage,
17109     DWORD* pdwStubPhase);
17110 
17111 #endif  /* __IUserNotification_INTERFACE_DEFINED__ */
17112 
17113 
17114 /*****************************************************************************
17115  * IUserNotificationCallback interface
17116  */
17117 #ifndef __IUserNotificationCallback_INTERFACE_DEFINED__
17118 #define __IUserNotificationCallback_INTERFACE_DEFINED__
17119 
17120 DEFINE_GUID(IID_IUserNotificationCallback, 0x19108294, 0x0441, 0x4aff, 0x80,0x13, 0xfa,0x0a,0x73,0x0b,0x0b,0xea);
17121 #if defined(__cplusplus) && !defined(CINTERFACE)
17122 MIDL_INTERFACE("19108294-0441-4aff-8013-fa0a730b0bea")
17123 IUserNotificationCallback : public IUnknown
17124 {
17125     virtual HRESULT STDMETHODCALLTYPE OnBalloonUserClick(
17126         POINT *pt) = 0;
17127 
17128     virtual HRESULT STDMETHODCALLTYPE OnLeftClick(
17129         POINT *pt) = 0;
17130 
17131     virtual HRESULT STDMETHODCALLTYPE OnContextMenu(
17132         POINT *pt) = 0;
17133 
17134 };
17135 #ifdef __CRT_UUID_DECL
17136 __CRT_UUID_DECL(IUserNotificationCallback, 0x19108294, 0x0441, 0x4aff, 0x80,0x13, 0xfa,0x0a,0x73,0x0b,0x0b,0xea)
17137 #endif
17138 #else
17139 typedef struct IUserNotificationCallbackVtbl {
17140     BEGIN_INTERFACE
17141 
17142     /*** IUnknown methods ***/
17143     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17144         IUserNotificationCallback* This,
17145         REFIID riid,
17146         void **ppvObject);
17147 
17148     ULONG (STDMETHODCALLTYPE *AddRef)(
17149         IUserNotificationCallback* This);
17150 
17151     ULONG (STDMETHODCALLTYPE *Release)(
17152         IUserNotificationCallback* This);
17153 
17154     /*** IUserNotificationCallback methods ***/
17155     HRESULT (STDMETHODCALLTYPE *OnBalloonUserClick)(
17156         IUserNotificationCallback* This,
17157         POINT *pt);
17158 
17159     HRESULT (STDMETHODCALLTYPE *OnLeftClick)(
17160         IUserNotificationCallback* This,
17161         POINT *pt);
17162 
17163     HRESULT (STDMETHODCALLTYPE *OnContextMenu)(
17164         IUserNotificationCallback* This,
17165         POINT *pt);
17166 
17167     END_INTERFACE
17168 } IUserNotificationCallbackVtbl;
17169 interface IUserNotificationCallback {
17170     CONST_VTBL IUserNotificationCallbackVtbl* lpVtbl;
17171 };
17172 
17173 #ifdef COBJMACROS
17174 #ifndef WIDL_C_INLINE_WRAPPERS
17175 /*** IUnknown methods ***/
17176 #define IUserNotificationCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17177 #define IUserNotificationCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
17178 #define IUserNotificationCallback_Release(This) (This)->lpVtbl->Release(This)
17179 /*** IUserNotificationCallback methods ***/
17180 #define IUserNotificationCallback_OnBalloonUserClick(This,pt) (This)->lpVtbl->OnBalloonUserClick(This,pt)
17181 #define IUserNotificationCallback_OnLeftClick(This,pt) (This)->lpVtbl->OnLeftClick(This,pt)
17182 #define IUserNotificationCallback_OnContextMenu(This,pt) (This)->lpVtbl->OnContextMenu(This,pt)
17183 #else
17184 /*** IUnknown methods ***/
17185 static FORCEINLINE HRESULT IUserNotificationCallback_QueryInterface(IUserNotificationCallback* This,REFIID riid,void **ppvObject) {
17186     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17187 }
17188 static FORCEINLINE ULONG IUserNotificationCallback_AddRef(IUserNotificationCallback* This) {
17189     return This->lpVtbl->AddRef(This);
17190 }
17191 static FORCEINLINE ULONG IUserNotificationCallback_Release(IUserNotificationCallback* This) {
17192     return This->lpVtbl->Release(This);
17193 }
17194 /*** IUserNotificationCallback methods ***/
17195 static FORCEINLINE HRESULT IUserNotificationCallback_OnBalloonUserClick(IUserNotificationCallback* This,POINT *pt) {
17196     return This->lpVtbl->OnBalloonUserClick(This,pt);
17197 }
17198 static FORCEINLINE HRESULT IUserNotificationCallback_OnLeftClick(IUserNotificationCallback* This,POINT *pt) {
17199     return This->lpVtbl->OnLeftClick(This,pt);
17200 }
17201 static FORCEINLINE HRESULT IUserNotificationCallback_OnContextMenu(IUserNotificationCallback* This,POINT *pt) {
17202     return This->lpVtbl->OnContextMenu(This,pt);
17203 }
17204 #endif
17205 #endif
17206 
17207 #endif
17208 
17209 HRESULT STDMETHODCALLTYPE IUserNotificationCallback_OnBalloonUserClick_Proxy(
17210     IUserNotificationCallback* This,
17211     POINT *pt);
17212 void __RPC_STUB IUserNotificationCallback_OnBalloonUserClick_Stub(
17213     IRpcStubBuffer* This,
17214     IRpcChannelBuffer* pRpcChannelBuffer,
17215     PRPC_MESSAGE pRpcMessage,
17216     DWORD* pdwStubPhase);
17217 HRESULT STDMETHODCALLTYPE IUserNotificationCallback_OnLeftClick_Proxy(
17218     IUserNotificationCallback* This,
17219     POINT *pt);
17220 void __RPC_STUB IUserNotificationCallback_OnLeftClick_Stub(
17221     IRpcStubBuffer* This,
17222     IRpcChannelBuffer* pRpcChannelBuffer,
17223     PRPC_MESSAGE pRpcMessage,
17224     DWORD* pdwStubPhase);
17225 HRESULT STDMETHODCALLTYPE IUserNotificationCallback_OnContextMenu_Proxy(
17226     IUserNotificationCallback* This,
17227     POINT *pt);
17228 void __RPC_STUB IUserNotificationCallback_OnContextMenu_Stub(
17229     IRpcStubBuffer* This,
17230     IRpcChannelBuffer* pRpcChannelBuffer,
17231     PRPC_MESSAGE pRpcMessage,
17232     DWORD* pdwStubPhase);
17233 
17234 #endif  /* __IUserNotificationCallback_INTERFACE_DEFINED__ */
17235 
17236 
17237 /*****************************************************************************
17238  * IUserNotification2 interface
17239  */
17240 #ifndef __IUserNotification2_INTERFACE_DEFINED__
17241 #define __IUserNotification2_INTERFACE_DEFINED__
17242 
17243 DEFINE_GUID(IID_IUserNotification2, 0x215913cc, 0x57eb, 0x4fab, 0xab,0x5a, 0xe5,0xfa,0x7b,0xea,0x2a,0x6c);
17244 #if defined(__cplusplus) && !defined(CINTERFACE)
17245 MIDL_INTERFACE("215913cc-57eb-4fab-ab5a-e5fa7bea2a6c")
17246 IUserNotification2 : public IUnknown
17247 {
17248     virtual HRESULT STDMETHODCALLTYPE SetBalloonInfo(
17249         LPCWSTR pszTitle,
17250         LPCWSTR pszText,
17251         DWORD dwInfoFlags) = 0;
17252 
17253     virtual HRESULT STDMETHODCALLTYPE SetBalloonRetry(
17254         DWORD dwShowTime,
17255         DWORD dwInterval,
17256         UINT cRetryCount) = 0;
17257 
17258     virtual HRESULT STDMETHODCALLTYPE SetIconInfo(
17259         HICON hIcon,
17260         LPCWSTR pszToolTip) = 0;
17261 
17262     virtual HRESULT STDMETHODCALLTYPE Show(
17263         IQueryContinue *pqc,
17264         DWORD dwContinuePollInterval,
17265         IUserNotificationCallback *pSink) = 0;
17266 
17267     virtual HRESULT STDMETHODCALLTYPE PlaySound(
17268         LPCWSTR pszSoundName) = 0;
17269 
17270 };
17271 #ifdef __CRT_UUID_DECL
17272 __CRT_UUID_DECL(IUserNotification2, 0x215913cc, 0x57eb, 0x4fab, 0xab,0x5a, 0xe5,0xfa,0x7b,0xea,0x2a,0x6c)
17273 #endif
17274 #else
17275 typedef struct IUserNotification2Vtbl {
17276     BEGIN_INTERFACE
17277 
17278     /*** IUnknown methods ***/
17279     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17280         IUserNotification2* This,
17281         REFIID riid,
17282         void **ppvObject);
17283 
17284     ULONG (STDMETHODCALLTYPE *AddRef)(
17285         IUserNotification2* This);
17286 
17287     ULONG (STDMETHODCALLTYPE *Release)(
17288         IUserNotification2* This);
17289 
17290     /*** IUserNotification2 methods ***/
17291     HRESULT (STDMETHODCALLTYPE *SetBalloonInfo)(
17292         IUserNotification2* This,
17293         LPCWSTR pszTitle,
17294         LPCWSTR pszText,
17295         DWORD dwInfoFlags);
17296 
17297     HRESULT (STDMETHODCALLTYPE *SetBalloonRetry)(
17298         IUserNotification2* This,
17299         DWORD dwShowTime,
17300         DWORD dwInterval,
17301         UINT cRetryCount);
17302 
17303     HRESULT (STDMETHODCALLTYPE *SetIconInfo)(
17304         IUserNotification2* This,
17305         HICON hIcon,
17306         LPCWSTR pszToolTip);
17307 
17308     HRESULT (STDMETHODCALLTYPE *Show)(
17309         IUserNotification2* This,
17310         IQueryContinue *pqc,
17311         DWORD dwContinuePollInterval,
17312         IUserNotificationCallback *pSink);
17313 
17314     HRESULT (STDMETHODCALLTYPE *PlaySound)(
17315         IUserNotification2* This,
17316         LPCWSTR pszSoundName);
17317 
17318     END_INTERFACE
17319 } IUserNotification2Vtbl;
17320 interface IUserNotification2 {
17321     CONST_VTBL IUserNotification2Vtbl* lpVtbl;
17322 };
17323 
17324 #ifdef COBJMACROS
17325 #ifndef WIDL_C_INLINE_WRAPPERS
17326 /*** IUnknown methods ***/
17327 #define IUserNotification2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17328 #define IUserNotification2_AddRef(This) (This)->lpVtbl->AddRef(This)
17329 #define IUserNotification2_Release(This) (This)->lpVtbl->Release(This)
17330 /*** IUserNotification2 methods ***/
17331 #define IUserNotification2_SetBalloonInfo(This,pszTitle,pszText,dwInfoFlags) (This)->lpVtbl->SetBalloonInfo(This,pszTitle,pszText,dwInfoFlags)
17332 #define IUserNotification2_SetBalloonRetry(This,dwShowTime,dwInterval,cRetryCount) (This)->lpVtbl->SetBalloonRetry(This,dwShowTime,dwInterval,cRetryCount)
17333 #define IUserNotification2_SetIconInfo(This,hIcon,pszToolTip) (This)->lpVtbl->SetIconInfo(This,hIcon,pszToolTip)
17334 #define IUserNotification2_Show(This,pqc,dwContinuePollInterval,pSink) (This)->lpVtbl->Show(This,pqc,dwContinuePollInterval,pSink)
17335 #define IUserNotification2_PlaySound(This,pszSoundName) (This)->lpVtbl->PlaySound(This,pszSoundName)
17336 #else
17337 /*** IUnknown methods ***/
17338 static FORCEINLINE HRESULT IUserNotification2_QueryInterface(IUserNotification2* This,REFIID riid,void **ppvObject) {
17339     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17340 }
17341 static FORCEINLINE ULONG IUserNotification2_AddRef(IUserNotification2* This) {
17342     return This->lpVtbl->AddRef(This);
17343 }
17344 static FORCEINLINE ULONG IUserNotification2_Release(IUserNotification2* This) {
17345     return This->lpVtbl->Release(This);
17346 }
17347 /*** IUserNotification2 methods ***/
17348 static FORCEINLINE HRESULT IUserNotification2_SetBalloonInfo(IUserNotification2* This,LPCWSTR pszTitle,LPCWSTR pszText,DWORD dwInfoFlags) {
17349     return This->lpVtbl->SetBalloonInfo(This,pszTitle,pszText,dwInfoFlags);
17350 }
17351 static FORCEINLINE HRESULT IUserNotification2_SetBalloonRetry(IUserNotification2* This,DWORD dwShowTime,DWORD dwInterval,UINT cRetryCount) {
17352     return This->lpVtbl->SetBalloonRetry(This,dwShowTime,dwInterval,cRetryCount);
17353 }
17354 static FORCEINLINE HRESULT IUserNotification2_SetIconInfo(IUserNotification2* This,HICON hIcon,LPCWSTR pszToolTip) {
17355     return This->lpVtbl->SetIconInfo(This,hIcon,pszToolTip);
17356 }
17357 static FORCEINLINE HRESULT IUserNotification2_Show(IUserNotification2* This,IQueryContinue *pqc,DWORD dwContinuePollInterval,IUserNotificationCallback *pSink) {
17358     return This->lpVtbl->Show(This,pqc,dwContinuePollInterval,pSink);
17359 }
17360 static FORCEINLINE HRESULT IUserNotification2_PlaySound(IUserNotification2* This,LPCWSTR pszSoundName) {
17361     return This->lpVtbl->PlaySound(This,pszSoundName);
17362 }
17363 #endif
17364 #endif
17365 
17366 #endif
17367 
17368 HRESULT STDMETHODCALLTYPE IUserNotification2_SetBalloonInfo_Proxy(
17369     IUserNotification2* This,
17370     LPCWSTR pszTitle,
17371     LPCWSTR pszText,
17372     DWORD dwInfoFlags);
17373 void __RPC_STUB IUserNotification2_SetBalloonInfo_Stub(
17374     IRpcStubBuffer* This,
17375     IRpcChannelBuffer* pRpcChannelBuffer,
17376     PRPC_MESSAGE pRpcMessage,
17377     DWORD* pdwStubPhase);
17378 HRESULT STDMETHODCALLTYPE IUserNotification2_SetBalloonRetry_Proxy(
17379     IUserNotification2* This,
17380     DWORD dwShowTime,
17381     DWORD dwInterval,
17382     UINT cRetryCount);
17383 void __RPC_STUB IUserNotification2_SetBalloonRetry_Stub(
17384     IRpcStubBuffer* This,
17385     IRpcChannelBuffer* pRpcChannelBuffer,
17386     PRPC_MESSAGE pRpcMessage,
17387     DWORD* pdwStubPhase);
17388 HRESULT STDMETHODCALLTYPE IUserNotification2_SetIconInfo_Proxy(
17389     IUserNotification2* This,
17390     HICON hIcon,
17391     LPCWSTR pszToolTip);
17392 void __RPC_STUB IUserNotification2_SetIconInfo_Stub(
17393     IRpcStubBuffer* This,
17394     IRpcChannelBuffer* pRpcChannelBuffer,
17395     PRPC_MESSAGE pRpcMessage,
17396     DWORD* pdwStubPhase);
17397 HRESULT STDMETHODCALLTYPE IUserNotification2_Show_Proxy(
17398     IUserNotification2* This,
17399     IQueryContinue *pqc,
17400     DWORD dwContinuePollInterval,
17401     IUserNotificationCallback *pSink);
17402 void __RPC_STUB IUserNotification2_Show_Stub(
17403     IRpcStubBuffer* This,
17404     IRpcChannelBuffer* pRpcChannelBuffer,
17405     PRPC_MESSAGE pRpcMessage,
17406     DWORD* pdwStubPhase);
17407 HRESULT STDMETHODCALLTYPE IUserNotification2_PlaySound_Proxy(
17408     IUserNotification2* This,
17409     LPCWSTR pszSoundName);
17410 void __RPC_STUB IUserNotification2_PlaySound_Stub(
17411     IRpcStubBuffer* This,
17412     IRpcChannelBuffer* pRpcChannelBuffer,
17413     PRPC_MESSAGE pRpcMessage,
17414     DWORD* pdwStubPhase);
17415 
17416 #endif  /* __IUserNotification2_INTERFACE_DEFINED__ */
17417 
17418 
17419 /*****************************************************************************
17420  * IItemNameLimits interface
17421  */
17422 #ifndef __IItemNameLimits_INTERFACE_DEFINED__
17423 #define __IItemNameLimits_INTERFACE_DEFINED__
17424 
17425 DEFINE_GUID(IID_IItemNameLimits, 0x1df0d7f1, 0xb267, 0x4d28, 0x8b,0x10, 0x12,0xe2,0x32,0x02,0xa5,0xc4);
17426 #if defined(__cplusplus) && !defined(CINTERFACE)
17427 MIDL_INTERFACE("1df0d7f1-b267-4d28-8b10-12e23202a5c4")
17428 IItemNameLimits : public IUnknown
17429 {
17430     virtual HRESULT STDMETHODCALLTYPE GetValidCharacters(
17431         LPWSTR *ppwszValidChars,
17432         LPWSTR *ppwszInvalidChars) = 0;
17433 
17434     virtual HRESULT STDMETHODCALLTYPE GetMaxLength(
17435         LPCWSTR pszName,
17436         int *piMaxNameLen) = 0;
17437 
17438 };
17439 #ifdef __CRT_UUID_DECL
17440 __CRT_UUID_DECL(IItemNameLimits, 0x1df0d7f1, 0xb267, 0x4d28, 0x8b,0x10, 0x12,0xe2,0x32,0x02,0xa5,0xc4)
17441 #endif
17442 #else
17443 typedef struct IItemNameLimitsVtbl {
17444     BEGIN_INTERFACE
17445 
17446     /*** IUnknown methods ***/
17447     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17448         IItemNameLimits* This,
17449         REFIID riid,
17450         void **ppvObject);
17451 
17452     ULONG (STDMETHODCALLTYPE *AddRef)(
17453         IItemNameLimits* This);
17454 
17455     ULONG (STDMETHODCALLTYPE *Release)(
17456         IItemNameLimits* This);
17457 
17458     /*** IItemNameLimits methods ***/
17459     HRESULT (STDMETHODCALLTYPE *GetValidCharacters)(
17460         IItemNameLimits* This,
17461         LPWSTR *ppwszValidChars,
17462         LPWSTR *ppwszInvalidChars);
17463 
17464     HRESULT (STDMETHODCALLTYPE *GetMaxLength)(
17465         IItemNameLimits* This,
17466         LPCWSTR pszName,
17467         int *piMaxNameLen);
17468 
17469     END_INTERFACE
17470 } IItemNameLimitsVtbl;
17471 interface IItemNameLimits {
17472     CONST_VTBL IItemNameLimitsVtbl* lpVtbl;
17473 };
17474 
17475 #ifdef COBJMACROS
17476 #ifndef WIDL_C_INLINE_WRAPPERS
17477 /*** IUnknown methods ***/
17478 #define IItemNameLimits_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17479 #define IItemNameLimits_AddRef(This) (This)->lpVtbl->AddRef(This)
17480 #define IItemNameLimits_Release(This) (This)->lpVtbl->Release(This)
17481 /*** IItemNameLimits methods ***/
17482 #define IItemNameLimits_GetValidCharacters(This,ppwszValidChars,ppwszInvalidChars) (This)->lpVtbl->GetValidCharacters(This,ppwszValidChars,ppwszInvalidChars)
17483 #define IItemNameLimits_GetMaxLength(This,pszName,piMaxNameLen) (This)->lpVtbl->GetMaxLength(This,pszName,piMaxNameLen)
17484 #else
17485 /*** IUnknown methods ***/
17486 static FORCEINLINE HRESULT IItemNameLimits_QueryInterface(IItemNameLimits* This,REFIID riid,void **ppvObject) {
17487     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17488 }
17489 static FORCEINLINE ULONG IItemNameLimits_AddRef(IItemNameLimits* This) {
17490     return This->lpVtbl->AddRef(This);
17491 }
17492 static FORCEINLINE ULONG IItemNameLimits_Release(IItemNameLimits* This) {
17493     return This->lpVtbl->Release(This);
17494 }
17495 /*** IItemNameLimits methods ***/
17496 static FORCEINLINE HRESULT IItemNameLimits_GetValidCharacters(IItemNameLimits* This,LPWSTR *ppwszValidChars,LPWSTR *ppwszInvalidChars) {
17497     return This->lpVtbl->GetValidCharacters(This,ppwszValidChars,ppwszInvalidChars);
17498 }
17499 static FORCEINLINE HRESULT IItemNameLimits_GetMaxLength(IItemNameLimits* This,LPCWSTR pszName,int *piMaxNameLen) {
17500     return This->lpVtbl->GetMaxLength(This,pszName,piMaxNameLen);
17501 }
17502 #endif
17503 #endif
17504 
17505 #endif
17506 
17507 HRESULT STDMETHODCALLTYPE IItemNameLimits_GetValidCharacters_Proxy(
17508     IItemNameLimits* This,
17509     LPWSTR *ppwszValidChars,
17510     LPWSTR *ppwszInvalidChars);
17511 void __RPC_STUB IItemNameLimits_GetValidCharacters_Stub(
17512     IRpcStubBuffer* This,
17513     IRpcChannelBuffer* pRpcChannelBuffer,
17514     PRPC_MESSAGE pRpcMessage,
17515     DWORD* pdwStubPhase);
17516 HRESULT STDMETHODCALLTYPE IItemNameLimits_GetMaxLength_Proxy(
17517     IItemNameLimits* This,
17518     LPCWSTR pszName,
17519     int *piMaxNameLen);
17520 void __RPC_STUB IItemNameLimits_GetMaxLength_Stub(
17521     IRpcStubBuffer* This,
17522     IRpcChannelBuffer* pRpcChannelBuffer,
17523     PRPC_MESSAGE pRpcMessage,
17524     DWORD* pdwStubPhase);
17525 
17526 #endif  /* __IItemNameLimits_INTERFACE_DEFINED__ */
17527 
17528 
17529 #if NTDDI_VERSION >= NTDDI_VISTA
17530 #ifndef __ICondition_FWD_DEFINED__
17531 #define __ICondition_FWD_DEFINED__
17532 typedef interface ICondition ICondition;
17533 #endif
17534 
17535 
17536 /*****************************************************************************
17537  * ISearchFolderItemFactory interface
17538  */
17539 #ifndef __ISearchFolderItemFactory_INTERFACE_DEFINED__
17540 #define __ISearchFolderItemFactory_INTERFACE_DEFINED__
17541 
17542 DEFINE_GUID(IID_ISearchFolderItemFactory, 0xa0ffbc28, 0x5482, 0x4366, 0xbe,0x27, 0x3e,0x81,0xe7,0x8e,0x06,0xc2);
17543 #if defined(__cplusplus) && !defined(CINTERFACE)
17544 MIDL_INTERFACE("a0ffbc28-5482-4366-be27-3e81e78e06c2")
17545 ISearchFolderItemFactory : public IUnknown
17546 {
17547     virtual HRESULT STDMETHODCALLTYPE SetDisplayName(
17548         LPCWSTR pszDisplayName) = 0;
17549 
17550     virtual HRESULT STDMETHODCALLTYPE SetFolderTypeID(
17551         FOLDERTYPEID ftid) = 0;
17552 
17553     virtual HRESULT STDMETHODCALLTYPE SetFolderLogicalViewMode(
17554         FOLDERLOGICALVIEWMODE flvm) = 0;
17555 
17556     virtual HRESULT STDMETHODCALLTYPE SetIconSize(
17557         int iIconSize) = 0;
17558 
17559     virtual HRESULT STDMETHODCALLTYPE SetVisibleColumns(
17560         UINT cVisibleColumns,
17561         PROPERTYKEY *rgKey) = 0;
17562 
17563     virtual HRESULT STDMETHODCALLTYPE SetSortColumns(
17564         UINT cSortColumns,
17565         SORTCOLUMN *rgSortColumns) = 0;
17566 
17567     virtual HRESULT STDMETHODCALLTYPE SetGroupColumn(
17568         REFPROPERTYKEY keyGroup) = 0;
17569 
17570     virtual HRESULT STDMETHODCALLTYPE SetStacks(
17571         UINT cStackKeys,
17572         PROPERTYKEY *rgStackKeys) = 0;
17573 
17574     virtual HRESULT STDMETHODCALLTYPE SetScope(
17575         IShellItemArray *psiaScope) = 0;
17576 
17577     virtual HRESULT STDMETHODCALLTYPE SetCondition(
17578         ICondition *pCondition) = 0;
17579 
17580     virtual HRESULT STDMETHODCALLTYPE GetShellItem(
17581         REFIID riid,
17582         void **ppv) = 0;
17583 
17584     virtual HRESULT STDMETHODCALLTYPE GetIDList(
17585         PIDLIST_ABSOLUTE *ppidl) = 0;
17586 
17587 };
17588 #ifdef __CRT_UUID_DECL
17589 __CRT_UUID_DECL(ISearchFolderItemFactory, 0xa0ffbc28, 0x5482, 0x4366, 0xbe,0x27, 0x3e,0x81,0xe7,0x8e,0x06,0xc2)
17590 #endif
17591 #else
17592 typedef struct ISearchFolderItemFactoryVtbl {
17593     BEGIN_INTERFACE
17594 
17595     /*** IUnknown methods ***/
17596     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17597         ISearchFolderItemFactory* This,
17598         REFIID riid,
17599         void **ppvObject);
17600 
17601     ULONG (STDMETHODCALLTYPE *AddRef)(
17602         ISearchFolderItemFactory* This);
17603 
17604     ULONG (STDMETHODCALLTYPE *Release)(
17605         ISearchFolderItemFactory* This);
17606 
17607     /*** ISearchFolderItemFactory methods ***/
17608     HRESULT (STDMETHODCALLTYPE *SetDisplayName)(
17609         ISearchFolderItemFactory* This,
17610         LPCWSTR pszDisplayName);
17611 
17612     HRESULT (STDMETHODCALLTYPE *SetFolderTypeID)(
17613         ISearchFolderItemFactory* This,
17614         FOLDERTYPEID ftid);
17615 
17616     HRESULT (STDMETHODCALLTYPE *SetFolderLogicalViewMode)(
17617         ISearchFolderItemFactory* This,
17618         FOLDERLOGICALVIEWMODE flvm);
17619 
17620     HRESULT (STDMETHODCALLTYPE *SetIconSize)(
17621         ISearchFolderItemFactory* This,
17622         int iIconSize);
17623 
17624     HRESULT (STDMETHODCALLTYPE *SetVisibleColumns)(
17625         ISearchFolderItemFactory* This,
17626         UINT cVisibleColumns,
17627         PROPERTYKEY *rgKey);
17628 
17629     HRESULT (STDMETHODCALLTYPE *SetSortColumns)(
17630         ISearchFolderItemFactory* This,
17631         UINT cSortColumns,
17632         SORTCOLUMN *rgSortColumns);
17633 
17634     HRESULT (STDMETHODCALLTYPE *SetGroupColumn)(
17635         ISearchFolderItemFactory* This,
17636         REFPROPERTYKEY keyGroup);
17637 
17638     HRESULT (STDMETHODCALLTYPE *SetStacks)(
17639         ISearchFolderItemFactory* This,
17640         UINT cStackKeys,
17641         PROPERTYKEY *rgStackKeys);
17642 
17643     HRESULT (STDMETHODCALLTYPE *SetScope)(
17644         ISearchFolderItemFactory* This,
17645         IShellItemArray *psiaScope);
17646 
17647     HRESULT (STDMETHODCALLTYPE *SetCondition)(
17648         ISearchFolderItemFactory* This,
17649         ICondition *pCondition);
17650 
17651     HRESULT (STDMETHODCALLTYPE *GetShellItem)(
17652         ISearchFolderItemFactory* This,
17653         REFIID riid,
17654         void **ppv);
17655 
17656     HRESULT (STDMETHODCALLTYPE *GetIDList)(
17657         ISearchFolderItemFactory* This,
17658         PIDLIST_ABSOLUTE *ppidl);
17659 
17660     END_INTERFACE
17661 } ISearchFolderItemFactoryVtbl;
17662 interface ISearchFolderItemFactory {
17663     CONST_VTBL ISearchFolderItemFactoryVtbl* lpVtbl;
17664 };
17665 
17666 #ifdef COBJMACROS
17667 #ifndef WIDL_C_INLINE_WRAPPERS
17668 /*** IUnknown methods ***/
17669 #define ISearchFolderItemFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17670 #define ISearchFolderItemFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
17671 #define ISearchFolderItemFactory_Release(This) (This)->lpVtbl->Release(This)
17672 /*** ISearchFolderItemFactory methods ***/
17673 #define ISearchFolderItemFactory_SetDisplayName(This,pszDisplayName) (This)->lpVtbl->SetDisplayName(This,pszDisplayName)
17674 #define ISearchFolderItemFactory_SetFolderTypeID(This,ftid) (This)->lpVtbl->SetFolderTypeID(This,ftid)
17675 #define ISearchFolderItemFactory_SetFolderLogicalViewMode(This,flvm) (This)->lpVtbl->SetFolderLogicalViewMode(This,flvm)
17676 #define ISearchFolderItemFactory_SetIconSize(This,iIconSize) (This)->lpVtbl->SetIconSize(This,iIconSize)
17677 #define ISearchFolderItemFactory_SetVisibleColumns(This,cVisibleColumns,rgKey) (This)->lpVtbl->SetVisibleColumns(This,cVisibleColumns,rgKey)
17678 #define ISearchFolderItemFactory_SetSortColumns(This,cSortColumns,rgSortColumns) (This)->lpVtbl->SetSortColumns(This,cSortColumns,rgSortColumns)
17679 #define ISearchFolderItemFactory_SetGroupColumn(This,keyGroup) (This)->lpVtbl->SetGroupColumn(This,keyGroup)
17680 #define ISearchFolderItemFactory_SetStacks(This,cStackKeys,rgStackKeys) (This)->lpVtbl->SetStacks(This,cStackKeys,rgStackKeys)
17681 #define ISearchFolderItemFactory_SetScope(This,psiaScope) (This)->lpVtbl->SetScope(This,psiaScope)
17682 #define ISearchFolderItemFactory_SetCondition(This,pCondition) (This)->lpVtbl->SetCondition(This,pCondition)
17683 #define ISearchFolderItemFactory_GetShellItem(This,riid,ppv) (This)->lpVtbl->GetShellItem(This,riid,ppv)
17684 #define ISearchFolderItemFactory_GetIDList(This,ppidl) (This)->lpVtbl->GetIDList(This,ppidl)
17685 #else
17686 /*** IUnknown methods ***/
17687 static FORCEINLINE HRESULT ISearchFolderItemFactory_QueryInterface(ISearchFolderItemFactory* This,REFIID riid,void **ppvObject) {
17688     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17689 }
17690 static FORCEINLINE ULONG ISearchFolderItemFactory_AddRef(ISearchFolderItemFactory* This) {
17691     return This->lpVtbl->AddRef(This);
17692 }
17693 static FORCEINLINE ULONG ISearchFolderItemFactory_Release(ISearchFolderItemFactory* This) {
17694     return This->lpVtbl->Release(This);
17695 }
17696 /*** ISearchFolderItemFactory methods ***/
17697 static FORCEINLINE HRESULT ISearchFolderItemFactory_SetDisplayName(ISearchFolderItemFactory* This,LPCWSTR pszDisplayName) {
17698     return This->lpVtbl->SetDisplayName(This,pszDisplayName);
17699 }
17700 static FORCEINLINE HRESULT ISearchFolderItemFactory_SetFolderTypeID(ISearchFolderItemFactory* This,FOLDERTYPEID ftid) {
17701     return This->lpVtbl->SetFolderTypeID(This,ftid);
17702 }
17703 static FORCEINLINE HRESULT ISearchFolderItemFactory_SetFolderLogicalViewMode(ISearchFolderItemFactory* This,FOLDERLOGICALVIEWMODE flvm) {
17704     return This->lpVtbl->SetFolderLogicalViewMode(This,flvm);
17705 }
17706 static FORCEINLINE HRESULT ISearchFolderItemFactory_SetIconSize(ISearchFolderItemFactory* This,int iIconSize) {
17707     return This->lpVtbl->SetIconSize(This,iIconSize);
17708 }
17709 static FORCEINLINE HRESULT ISearchFolderItemFactory_SetVisibleColumns(ISearchFolderItemFactory* This,UINT cVisibleColumns,PROPERTYKEY *rgKey) {
17710     return This->lpVtbl->SetVisibleColumns(This,cVisibleColumns,rgKey);
17711 }
17712 static FORCEINLINE HRESULT ISearchFolderItemFactory_SetSortColumns(ISearchFolderItemFactory* This,UINT cSortColumns,SORTCOLUMN *rgSortColumns) {
17713     return This->lpVtbl->SetSortColumns(This,cSortColumns,rgSortColumns);
17714 }
17715 static FORCEINLINE HRESULT ISearchFolderItemFactory_SetGroupColumn(ISearchFolderItemFactory* This,REFPROPERTYKEY keyGroup) {
17716     return This->lpVtbl->SetGroupColumn(This,keyGroup);
17717 }
17718 static FORCEINLINE HRESULT ISearchFolderItemFactory_SetStacks(ISearchFolderItemFactory* This,UINT cStackKeys,PROPERTYKEY *rgStackKeys) {
17719     return This->lpVtbl->SetStacks(This,cStackKeys,rgStackKeys);
17720 }
17721 static FORCEINLINE HRESULT ISearchFolderItemFactory_SetScope(ISearchFolderItemFactory* This,IShellItemArray *psiaScope) {
17722     return This->lpVtbl->SetScope(This,psiaScope);
17723 }
17724 static FORCEINLINE HRESULT ISearchFolderItemFactory_SetCondition(ISearchFolderItemFactory* This,ICondition *pCondition) {
17725     return This->lpVtbl->SetCondition(This,pCondition);
17726 }
17727 static FORCEINLINE HRESULT ISearchFolderItemFactory_GetShellItem(ISearchFolderItemFactory* This,REFIID riid,void **ppv) {
17728     return This->lpVtbl->GetShellItem(This,riid,ppv);
17729 }
17730 static FORCEINLINE HRESULT ISearchFolderItemFactory_GetIDList(ISearchFolderItemFactory* This,PIDLIST_ABSOLUTE *ppidl) {
17731     return This->lpVtbl->GetIDList(This,ppidl);
17732 }
17733 #endif
17734 #endif
17735 
17736 #endif
17737 
17738 HRESULT STDMETHODCALLTYPE ISearchFolderItemFactory_SetDisplayName_Proxy(
17739     ISearchFolderItemFactory* This,
17740     LPCWSTR pszDisplayName);
17741 void __RPC_STUB ISearchFolderItemFactory_SetDisplayName_Stub(
17742     IRpcStubBuffer* This,
17743     IRpcChannelBuffer* pRpcChannelBuffer,
17744     PRPC_MESSAGE pRpcMessage,
17745     DWORD* pdwStubPhase);
17746 HRESULT STDMETHODCALLTYPE ISearchFolderItemFactory_SetFolderTypeID_Proxy(
17747     ISearchFolderItemFactory* This,
17748     FOLDERTYPEID ftid);
17749 void __RPC_STUB ISearchFolderItemFactory_SetFolderTypeID_Stub(
17750     IRpcStubBuffer* This,
17751     IRpcChannelBuffer* pRpcChannelBuffer,
17752     PRPC_MESSAGE pRpcMessage,
17753     DWORD* pdwStubPhase);
17754 HRESULT STDMETHODCALLTYPE ISearchFolderItemFactory_SetFolderLogicalViewMode_Proxy(
17755     ISearchFolderItemFactory* This,
17756     FOLDERLOGICALVIEWMODE flvm);
17757 void __RPC_STUB ISearchFolderItemFactory_SetFolderLogicalViewMode_Stub(
17758     IRpcStubBuffer* This,
17759     IRpcChannelBuffer* pRpcChannelBuffer,
17760     PRPC_MESSAGE pRpcMessage,
17761     DWORD* pdwStubPhase);
17762 HRESULT STDMETHODCALLTYPE ISearchFolderItemFactory_SetIconSize_Proxy(
17763     ISearchFolderItemFactory* This,
17764     int iIconSize);
17765 void __RPC_STUB ISearchFolderItemFactory_SetIconSize_Stub(
17766     IRpcStubBuffer* This,
17767     IRpcChannelBuffer* pRpcChannelBuffer,
17768     PRPC_MESSAGE pRpcMessage,
17769     DWORD* pdwStubPhase);
17770 HRESULT STDMETHODCALLTYPE ISearchFolderItemFactory_SetVisibleColumns_Proxy(
17771     ISearchFolderItemFactory* This,
17772     UINT cVisibleColumns,
17773     PROPERTYKEY *rgKey);
17774 void __RPC_STUB ISearchFolderItemFactory_SetVisibleColumns_Stub(
17775     IRpcStubBuffer* This,
17776     IRpcChannelBuffer* pRpcChannelBuffer,
17777     PRPC_MESSAGE pRpcMessage,
17778     DWORD* pdwStubPhase);
17779 HRESULT STDMETHODCALLTYPE ISearchFolderItemFactory_SetSortColumns_Proxy(
17780     ISearchFolderItemFactory* This,
17781     UINT cSortColumns,
17782     SORTCOLUMN *rgSortColumns);
17783 void __RPC_STUB ISearchFolderItemFactory_SetSortColumns_Stub(
17784     IRpcStubBuffer* This,
17785     IRpcChannelBuffer* pRpcChannelBuffer,
17786     PRPC_MESSAGE pRpcMessage,
17787     DWORD* pdwStubPhase);
17788 HRESULT STDMETHODCALLTYPE ISearchFolderItemFactory_SetGroupColumn_Proxy(
17789     ISearchFolderItemFactory* This,
17790     REFPROPERTYKEY keyGroup);
17791 void __RPC_STUB ISearchFolderItemFactory_SetGroupColumn_Stub(
17792     IRpcStubBuffer* This,
17793     IRpcChannelBuffer* pRpcChannelBuffer,
17794     PRPC_MESSAGE pRpcMessage,
17795     DWORD* pdwStubPhase);
17796 HRESULT STDMETHODCALLTYPE ISearchFolderItemFactory_SetStacks_Proxy(
17797     ISearchFolderItemFactory* This,
17798     UINT cStackKeys,
17799     PROPERTYKEY *rgStackKeys);
17800 void __RPC_STUB ISearchFolderItemFactory_SetStacks_Stub(
17801     IRpcStubBuffer* This,
17802     IRpcChannelBuffer* pRpcChannelBuffer,
17803     PRPC_MESSAGE pRpcMessage,
17804     DWORD* pdwStubPhase);
17805 HRESULT STDMETHODCALLTYPE ISearchFolderItemFactory_SetScope_Proxy(
17806     ISearchFolderItemFactory* This,
17807     IShellItemArray *psiaScope);
17808 void __RPC_STUB ISearchFolderItemFactory_SetScope_Stub(
17809     IRpcStubBuffer* This,
17810     IRpcChannelBuffer* pRpcChannelBuffer,
17811     PRPC_MESSAGE pRpcMessage,
17812     DWORD* pdwStubPhase);
17813 HRESULT STDMETHODCALLTYPE ISearchFolderItemFactory_SetCondition_Proxy(
17814     ISearchFolderItemFactory* This,
17815     ICondition *pCondition);
17816 void __RPC_STUB ISearchFolderItemFactory_SetCondition_Stub(
17817     IRpcStubBuffer* This,
17818     IRpcChannelBuffer* pRpcChannelBuffer,
17819     PRPC_MESSAGE pRpcMessage,
17820     DWORD* pdwStubPhase);
17821 HRESULT STDMETHODCALLTYPE ISearchFolderItemFactory_GetShellItem_Proxy(
17822     ISearchFolderItemFactory* This,
17823     REFIID riid,
17824     void **ppv);
17825 void __RPC_STUB ISearchFolderItemFactory_GetShellItem_Stub(
17826     IRpcStubBuffer* This,
17827     IRpcChannelBuffer* pRpcChannelBuffer,
17828     PRPC_MESSAGE pRpcMessage,
17829     DWORD* pdwStubPhase);
17830 HRESULT STDMETHODCALLTYPE ISearchFolderItemFactory_GetIDList_Proxy(
17831     ISearchFolderItemFactory* This,
17832     PIDLIST_ABSOLUTE *ppidl);
17833 void __RPC_STUB ISearchFolderItemFactory_GetIDList_Stub(
17834     IRpcStubBuffer* This,
17835     IRpcChannelBuffer* pRpcChannelBuffer,
17836     PRPC_MESSAGE pRpcMessage,
17837     DWORD* pdwStubPhase);
17838 
17839 #endif  /* __ISearchFolderItemFactory_INTERFACE_DEFINED__ */
17840 
17841 #endif
17842 
17843 #define IEI_PRIORITY_MAX ITSAT_MAX_PRIORITY
17844 #define IEI_PRIORITY_MIN ITSAT_MIN_PRIORITY
17845 #define IEIT_PRIORITY_NORMAL ITSAT_DEFAULT_PRIORITY
17846 
17847 #define IEIFLAG_ASYNC 0x0001
17848 #define IEIFLAG_CACHE 0x0002
17849 #define IEIFLAG_ASPECT 0x0004
17850 #define IEIFLAG_OFFLINE 0x0008
17851 #define IEIFLAG_GLEAM 0x0010
17852 #define IEIFLAG_SCREEN 0x0020
17853 #define IEIFLAG_ORIGSIZE 0x0040
17854 #define IEIFLAG_NOSTAMP 0x0080
17855 #define IEIFLAG_NOBORDER 0x0100
17856 #define IEIFLAG_QUALITY 0x0200
17857 #define IEIFLAG_REFRESH 0x0400
17858 
17859 /*****************************************************************************
17860  * IExtractImage interface
17861  */
17862 #ifndef __IExtractImage_INTERFACE_DEFINED__
17863 #define __IExtractImage_INTERFACE_DEFINED__
17864 
17865 DEFINE_GUID(IID_IExtractImage, 0xbb2e617c, 0x0920, 0x11d1, 0x9a,0x0b, 0x00,0xc0,0x4f,0xc2,0xd6,0xc1);
17866 #if defined(__cplusplus) && !defined(CINTERFACE)
17867 MIDL_INTERFACE("bb2e617c-0920-11d1-9a0b-00c04fc2d6c1")
17868 IExtractImage : public IUnknown
17869 {
17870     virtual HRESULT STDMETHODCALLTYPE GetLocation(
17871         LPWSTR pszPathBuffer,
17872         DWORD cch,
17873         DWORD *pdwPriority,
17874         const SIZE *prgSize,
17875         DWORD dwRecClrDepth,
17876         DWORD *pdwFlags) = 0;
17877 
17878     virtual HRESULT STDMETHODCALLTYPE Extract(
17879         HBITMAP *phBmpThumbnail) = 0;
17880 
17881 };
17882 #ifdef __CRT_UUID_DECL
17883 __CRT_UUID_DECL(IExtractImage, 0xbb2e617c, 0x0920, 0x11d1, 0x9a,0x0b, 0x00,0xc0,0x4f,0xc2,0xd6,0xc1)
17884 #endif
17885 #else
17886 typedef struct IExtractImageVtbl {
17887     BEGIN_INTERFACE
17888 
17889     /*** IUnknown methods ***/
17890     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17891         IExtractImage* This,
17892         REFIID riid,
17893         void **ppvObject);
17894 
17895     ULONG (STDMETHODCALLTYPE *AddRef)(
17896         IExtractImage* This);
17897 
17898     ULONG (STDMETHODCALLTYPE *Release)(
17899         IExtractImage* This);
17900 
17901     /*** IExtractImage methods ***/
17902     HRESULT (STDMETHODCALLTYPE *GetLocation)(
17903         IExtractImage* This,
17904         LPWSTR pszPathBuffer,
17905         DWORD cch,
17906         DWORD *pdwPriority,
17907         const SIZE *prgSize,
17908         DWORD dwRecClrDepth,
17909         DWORD *pdwFlags);
17910 
17911     HRESULT (STDMETHODCALLTYPE *Extract)(
17912         IExtractImage* This,
17913         HBITMAP *phBmpThumbnail);
17914 
17915     END_INTERFACE
17916 } IExtractImageVtbl;
17917 interface IExtractImage {
17918     CONST_VTBL IExtractImageVtbl* lpVtbl;
17919 };
17920 
17921 #ifdef COBJMACROS
17922 #ifndef WIDL_C_INLINE_WRAPPERS
17923 /*** IUnknown methods ***/
17924 #define IExtractImage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17925 #define IExtractImage_AddRef(This) (This)->lpVtbl->AddRef(This)
17926 #define IExtractImage_Release(This) (This)->lpVtbl->Release(This)
17927 /*** IExtractImage methods ***/
17928 #define IExtractImage_GetLocation(This,pszPathBuffer,cch,pdwPriority,prgSize,dwRecClrDepth,pdwFlags) (This)->lpVtbl->GetLocation(This,pszPathBuffer,cch,pdwPriority,prgSize,dwRecClrDepth,pdwFlags)
17929 #define IExtractImage_Extract(This,phBmpThumbnail) (This)->lpVtbl->Extract(This,phBmpThumbnail)
17930 #else
17931 /*** IUnknown methods ***/
17932 static FORCEINLINE HRESULT IExtractImage_QueryInterface(IExtractImage* This,REFIID riid,void **ppvObject) {
17933     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17934 }
17935 static FORCEINLINE ULONG IExtractImage_AddRef(IExtractImage* This) {
17936     return This->lpVtbl->AddRef(This);
17937 }
17938 static FORCEINLINE ULONG IExtractImage_Release(IExtractImage* This) {
17939     return This->lpVtbl->Release(This);
17940 }
17941 /*** IExtractImage methods ***/
17942 static FORCEINLINE HRESULT IExtractImage_GetLocation(IExtractImage* This,LPWSTR pszPathBuffer,DWORD cch,DWORD *pdwPriority,const SIZE *prgSize,DWORD dwRecClrDepth,DWORD *pdwFlags) {
17943     return This->lpVtbl->GetLocation(This,pszPathBuffer,cch,pdwPriority,prgSize,dwRecClrDepth,pdwFlags);
17944 }
17945 static FORCEINLINE HRESULT IExtractImage_Extract(IExtractImage* This,HBITMAP *phBmpThumbnail) {
17946     return This->lpVtbl->Extract(This,phBmpThumbnail);
17947 }
17948 #endif
17949 #endif
17950 
17951 #endif
17952 
17953 HRESULT STDMETHODCALLTYPE IExtractImage_GetLocation_Proxy(
17954     IExtractImage* This,
17955     LPWSTR pszPathBuffer,
17956     DWORD cch,
17957     DWORD *pdwPriority,
17958     const SIZE *prgSize,
17959     DWORD dwRecClrDepth,
17960     DWORD *pdwFlags);
17961 void __RPC_STUB IExtractImage_GetLocation_Stub(
17962     IRpcStubBuffer* This,
17963     IRpcChannelBuffer* pRpcChannelBuffer,
17964     PRPC_MESSAGE pRpcMessage,
17965     DWORD* pdwStubPhase);
17966 HRESULT STDMETHODCALLTYPE IExtractImage_Extract_Proxy(
17967     IExtractImage* This,
17968     HBITMAP *phBmpThumbnail);
17969 void __RPC_STUB IExtractImage_Extract_Stub(
17970     IRpcStubBuffer* This,
17971     IRpcChannelBuffer* pRpcChannelBuffer,
17972     PRPC_MESSAGE pRpcMessage,
17973     DWORD* pdwStubPhase);
17974 
17975 #endif  /* __IExtractImage_INTERFACE_DEFINED__ */
17976 
17977 typedef IExtractImage *LPEXTRACTIMAGE;
17978 
17979 /*****************************************************************************
17980  * IExtractImage2 interface
17981  */
17982 #ifndef __IExtractImage2_INTERFACE_DEFINED__
17983 #define __IExtractImage2_INTERFACE_DEFINED__
17984 
17985 DEFINE_GUID(IID_IExtractImage2, 0x953bb1ee, 0x93b4, 0x11d1, 0x98,0xa3, 0x00,0xc0,0x4f,0xb6,0x87,0xda);
17986 #if defined(__cplusplus) && !defined(CINTERFACE)
17987 MIDL_INTERFACE("953bb1ee-93b4-11d1-98a3-00c04fb687da")
17988 IExtractImage2 : public IExtractImage
17989 {
17990     virtual HRESULT STDMETHODCALLTYPE GetDateStamp(
17991         FILETIME *pDateStamp) = 0;
17992 
17993 };
17994 #ifdef __CRT_UUID_DECL
17995 __CRT_UUID_DECL(IExtractImage2, 0x953bb1ee, 0x93b4, 0x11d1, 0x98,0xa3, 0x00,0xc0,0x4f,0xb6,0x87,0xda)
17996 #endif
17997 #else
17998 typedef struct IExtractImage2Vtbl {
17999     BEGIN_INTERFACE
18000 
18001     /*** IUnknown methods ***/
18002     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18003         IExtractImage2* This,
18004         REFIID riid,
18005         void **ppvObject);
18006 
18007     ULONG (STDMETHODCALLTYPE *AddRef)(
18008         IExtractImage2* This);
18009 
18010     ULONG (STDMETHODCALLTYPE *Release)(
18011         IExtractImage2* This);
18012 
18013     /*** IExtractImage methods ***/
18014     HRESULT (STDMETHODCALLTYPE *GetLocation)(
18015         IExtractImage2* This,
18016         LPWSTR pszPathBuffer,
18017         DWORD cch,
18018         DWORD *pdwPriority,
18019         const SIZE *prgSize,
18020         DWORD dwRecClrDepth,
18021         DWORD *pdwFlags);
18022 
18023     HRESULT (STDMETHODCALLTYPE *Extract)(
18024         IExtractImage2* This,
18025         HBITMAP *phBmpThumbnail);
18026 
18027     /*** IExtractImage2 methods ***/
18028     HRESULT (STDMETHODCALLTYPE *GetDateStamp)(
18029         IExtractImage2* This,
18030         FILETIME *pDateStamp);
18031 
18032     END_INTERFACE
18033 } IExtractImage2Vtbl;
18034 interface IExtractImage2 {
18035     CONST_VTBL IExtractImage2Vtbl* lpVtbl;
18036 };
18037 
18038 #ifdef COBJMACROS
18039 #ifndef WIDL_C_INLINE_WRAPPERS
18040 /*** IUnknown methods ***/
18041 #define IExtractImage2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18042 #define IExtractImage2_AddRef(This) (This)->lpVtbl->AddRef(This)
18043 #define IExtractImage2_Release(This) (This)->lpVtbl->Release(This)
18044 /*** IExtractImage methods ***/
18045 #define IExtractImage2_GetLocation(This,pszPathBuffer,cch,pdwPriority,prgSize,dwRecClrDepth,pdwFlags) (This)->lpVtbl->GetLocation(This,pszPathBuffer,cch,pdwPriority,prgSize,dwRecClrDepth,pdwFlags)
18046 #define IExtractImage2_Extract(This,phBmpThumbnail) (This)->lpVtbl->Extract(This,phBmpThumbnail)
18047 /*** IExtractImage2 methods ***/
18048 #define IExtractImage2_GetDateStamp(This,pDateStamp) (This)->lpVtbl->GetDateStamp(This,pDateStamp)
18049 #else
18050 /*** IUnknown methods ***/
18051 static FORCEINLINE HRESULT IExtractImage2_QueryInterface(IExtractImage2* This,REFIID riid,void **ppvObject) {
18052     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18053 }
18054 static FORCEINLINE ULONG IExtractImage2_AddRef(IExtractImage2* This) {
18055     return This->lpVtbl->AddRef(This);
18056 }
18057 static FORCEINLINE ULONG IExtractImage2_Release(IExtractImage2* This) {
18058     return This->lpVtbl->Release(This);
18059 }
18060 /*** IExtractImage methods ***/
18061 static FORCEINLINE HRESULT IExtractImage2_GetLocation(IExtractImage2* This,LPWSTR pszPathBuffer,DWORD cch,DWORD *pdwPriority,const SIZE *prgSize,DWORD dwRecClrDepth,DWORD *pdwFlags) {
18062     return This->lpVtbl->GetLocation(This,pszPathBuffer,cch,pdwPriority,prgSize,dwRecClrDepth,pdwFlags);
18063 }
18064 static FORCEINLINE HRESULT IExtractImage2_Extract(IExtractImage2* This,HBITMAP *phBmpThumbnail) {
18065     return This->lpVtbl->Extract(This,phBmpThumbnail);
18066 }
18067 /*** IExtractImage2 methods ***/
18068 static FORCEINLINE HRESULT IExtractImage2_GetDateStamp(IExtractImage2* This,FILETIME *pDateStamp) {
18069     return This->lpVtbl->GetDateStamp(This,pDateStamp);
18070 }
18071 #endif
18072 #endif
18073 
18074 #endif
18075 
18076 HRESULT STDMETHODCALLTYPE IExtractImage2_GetDateStamp_Proxy(
18077     IExtractImage2* This,
18078     FILETIME *pDateStamp);
18079 void __RPC_STUB IExtractImage2_GetDateStamp_Stub(
18080     IRpcStubBuffer* This,
18081     IRpcChannelBuffer* pRpcChannelBuffer,
18082     PRPC_MESSAGE pRpcMessage,
18083     DWORD* pdwStubPhase);
18084 
18085 #endif  /* __IExtractImage2_INTERFACE_DEFINED__ */
18086 
18087 typedef IExtractImage2 *LPEXTRACTIMAGE2;
18088 
18089 /*****************************************************************************
18090  * IThumbnailHandlerFactory interface
18091  */
18092 #ifndef __IThumbnailHandlerFactory_INTERFACE_DEFINED__
18093 #define __IThumbnailHandlerFactory_INTERFACE_DEFINED__
18094 
18095 DEFINE_GUID(IID_IThumbnailHandlerFactory, 0xe35b4b2e, 0x00da, 0x4bc1, 0x9f,0x13, 0x38,0xbc,0x11,0xf5,0xd4,0x17);
18096 #if defined(__cplusplus) && !defined(CINTERFACE)
18097 MIDL_INTERFACE("e35b4b2e-00da-4bc1-9f13-38bc11f5d417")
18098 IThumbnailHandlerFactory : public IUnknown
18099 {
18100     virtual HRESULT STDMETHODCALLTYPE GetThumbnailHandler(
18101         PCUITEMID_CHILD pidlChild,
18102         IBindCtx *pbc,
18103         REFIID riid,
18104         void **ppv) = 0;
18105 
18106 };
18107 #ifdef __CRT_UUID_DECL
18108 __CRT_UUID_DECL(IThumbnailHandlerFactory, 0xe35b4b2e, 0x00da, 0x4bc1, 0x9f,0x13, 0x38,0xbc,0x11,0xf5,0xd4,0x17)
18109 #endif
18110 #else
18111 typedef struct IThumbnailHandlerFactoryVtbl {
18112     BEGIN_INTERFACE
18113 
18114     /*** IUnknown methods ***/
18115     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18116         IThumbnailHandlerFactory* This,
18117         REFIID riid,
18118         void **ppvObject);
18119 
18120     ULONG (STDMETHODCALLTYPE *AddRef)(
18121         IThumbnailHandlerFactory* This);
18122 
18123     ULONG (STDMETHODCALLTYPE *Release)(
18124         IThumbnailHandlerFactory* This);
18125 
18126     /*** IThumbnailHandlerFactory methods ***/
18127     HRESULT (STDMETHODCALLTYPE *GetThumbnailHandler)(
18128         IThumbnailHandlerFactory* This,
18129         PCUITEMID_CHILD pidlChild,
18130         IBindCtx *pbc,
18131         REFIID riid,
18132         void **ppv);
18133 
18134     END_INTERFACE
18135 } IThumbnailHandlerFactoryVtbl;
18136 interface IThumbnailHandlerFactory {
18137     CONST_VTBL IThumbnailHandlerFactoryVtbl* lpVtbl;
18138 };
18139 
18140 #ifdef COBJMACROS
18141 #ifndef WIDL_C_INLINE_WRAPPERS
18142 /*** IUnknown methods ***/
18143 #define IThumbnailHandlerFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18144 #define IThumbnailHandlerFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
18145 #define IThumbnailHandlerFactory_Release(This) (This)->lpVtbl->Release(This)
18146 /*** IThumbnailHandlerFactory methods ***/
18147 #define IThumbnailHandlerFactory_GetThumbnailHandler(This,pidlChild,pbc,riid,ppv) (This)->lpVtbl->GetThumbnailHandler(This,pidlChild,pbc,riid,ppv)
18148 #else
18149 /*** IUnknown methods ***/
18150 static FORCEINLINE HRESULT IThumbnailHandlerFactory_QueryInterface(IThumbnailHandlerFactory* This,REFIID riid,void **ppvObject) {
18151     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18152 }
18153 static FORCEINLINE ULONG IThumbnailHandlerFactory_AddRef(IThumbnailHandlerFactory* This) {
18154     return This->lpVtbl->AddRef(This);
18155 }
18156 static FORCEINLINE ULONG IThumbnailHandlerFactory_Release(IThumbnailHandlerFactory* This) {
18157     return This->lpVtbl->Release(This);
18158 }
18159 /*** IThumbnailHandlerFactory methods ***/
18160 static FORCEINLINE HRESULT IThumbnailHandlerFactory_GetThumbnailHandler(IThumbnailHandlerFactory* This,PCUITEMID_CHILD pidlChild,IBindCtx *pbc,REFIID riid,void **ppv) {
18161     return This->lpVtbl->GetThumbnailHandler(This,pidlChild,pbc,riid,ppv);
18162 }
18163 #endif
18164 #endif
18165 
18166 #endif
18167 
18168 HRESULT STDMETHODCALLTYPE IThumbnailHandlerFactory_GetThumbnailHandler_Proxy(
18169     IThumbnailHandlerFactory* This,
18170     PCUITEMID_CHILD pidlChild,
18171     IBindCtx *pbc,
18172     REFIID riid,
18173     void **ppv);
18174 void __RPC_STUB IThumbnailHandlerFactory_GetThumbnailHandler_Stub(
18175     IRpcStubBuffer* This,
18176     IRpcChannelBuffer* pRpcChannelBuffer,
18177     PRPC_MESSAGE pRpcMessage,
18178     DWORD* pdwStubPhase);
18179 
18180 #endif  /* __IThumbnailHandlerFactory_INTERFACE_DEFINED__ */
18181 
18182 
18183 /*****************************************************************************
18184  * IParentAndItem interface
18185  */
18186 #ifndef __IParentAndItem_INTERFACE_DEFINED__
18187 #define __IParentAndItem_INTERFACE_DEFINED__
18188 
18189 DEFINE_GUID(IID_IParentAndItem, 0xb3a4b685, 0xb685, 0x4805, 0x99,0xd9, 0x5d,0xea,0xd2,0x87,0x32,0x36);
18190 #if defined(__cplusplus) && !defined(CINTERFACE)
18191 MIDL_INTERFACE("b3a4b685-b685-4805-99d9-5dead2873236")
18192 IParentAndItem : public IUnknown
18193 {
18194     virtual HRESULT STDMETHODCALLTYPE SetParentAndItem(
18195         PCIDLIST_ABSOLUTE pidlParent,
18196         IShellFolder *psf,
18197         PCUITEMID_CHILD pidlChild) = 0;
18198 
18199     virtual HRESULT STDMETHODCALLTYPE GetParentAndItem(
18200         PIDLIST_ABSOLUTE *ppidlParent,
18201         IShellFolder **ppsf,
18202         PITEMID_CHILD *ppidlChild) = 0;
18203 
18204 };
18205 #ifdef __CRT_UUID_DECL
18206 __CRT_UUID_DECL(IParentAndItem, 0xb3a4b685, 0xb685, 0x4805, 0x99,0xd9, 0x5d,0xea,0xd2,0x87,0x32,0x36)
18207 #endif
18208 #else
18209 typedef struct IParentAndItemVtbl {
18210     BEGIN_INTERFACE
18211 
18212     /*** IUnknown methods ***/
18213     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18214         IParentAndItem* This,
18215         REFIID riid,
18216         void **ppvObject);
18217 
18218     ULONG (STDMETHODCALLTYPE *AddRef)(
18219         IParentAndItem* This);
18220 
18221     ULONG (STDMETHODCALLTYPE *Release)(
18222         IParentAndItem* This);
18223 
18224     /*** IParentAndItem methods ***/
18225     HRESULT (STDMETHODCALLTYPE *SetParentAndItem)(
18226         IParentAndItem* This,
18227         PCIDLIST_ABSOLUTE pidlParent,
18228         IShellFolder *psf,
18229         PCUITEMID_CHILD pidlChild);
18230 
18231     HRESULT (STDMETHODCALLTYPE *GetParentAndItem)(
18232         IParentAndItem* This,
18233         PIDLIST_ABSOLUTE *ppidlParent,
18234         IShellFolder **ppsf,
18235         PITEMID_CHILD *ppidlChild);
18236 
18237     END_INTERFACE
18238 } IParentAndItemVtbl;
18239 interface IParentAndItem {
18240     CONST_VTBL IParentAndItemVtbl* lpVtbl;
18241 };
18242 
18243 #ifdef COBJMACROS
18244 #ifndef WIDL_C_INLINE_WRAPPERS
18245 /*** IUnknown methods ***/
18246 #define IParentAndItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18247 #define IParentAndItem_AddRef(This) (This)->lpVtbl->AddRef(This)
18248 #define IParentAndItem_Release(This) (This)->lpVtbl->Release(This)
18249 /*** IParentAndItem methods ***/
18250 #define IParentAndItem_SetParentAndItem(This,pidlParent,psf,pidlChild) (This)->lpVtbl->SetParentAndItem(This,pidlParent,psf,pidlChild)
18251 #define IParentAndItem_GetParentAndItem(This,ppidlParent,ppsf,ppidlChild) (This)->lpVtbl->GetParentAndItem(This,ppidlParent,ppsf,ppidlChild)
18252 #else
18253 /*** IUnknown methods ***/
18254 static FORCEINLINE HRESULT IParentAndItem_QueryInterface(IParentAndItem* This,REFIID riid,void **ppvObject) {
18255     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18256 }
18257 static FORCEINLINE ULONG IParentAndItem_AddRef(IParentAndItem* This) {
18258     return This->lpVtbl->AddRef(This);
18259 }
18260 static FORCEINLINE ULONG IParentAndItem_Release(IParentAndItem* This) {
18261     return This->lpVtbl->Release(This);
18262 }
18263 /*** IParentAndItem methods ***/
18264 static FORCEINLINE HRESULT IParentAndItem_SetParentAndItem(IParentAndItem* This,PCIDLIST_ABSOLUTE pidlParent,IShellFolder *psf,PCUITEMID_CHILD pidlChild) {
18265     return This->lpVtbl->SetParentAndItem(This,pidlParent,psf,pidlChild);
18266 }
18267 static FORCEINLINE HRESULT IParentAndItem_GetParentAndItem(IParentAndItem* This,PIDLIST_ABSOLUTE *ppidlParent,IShellFolder **ppsf,PITEMID_CHILD *ppidlChild) {
18268     return This->lpVtbl->GetParentAndItem(This,ppidlParent,ppsf,ppidlChild);
18269 }
18270 #endif
18271 #endif
18272 
18273 #endif
18274 
18275 HRESULT STDMETHODCALLTYPE IParentAndItem_SetParentAndItem_Proxy(
18276     IParentAndItem* This,
18277     PCIDLIST_ABSOLUTE pidlParent,
18278     IShellFolder *psf,
18279     PCUITEMID_CHILD pidlChild);
18280 void __RPC_STUB IParentAndItem_SetParentAndItem_Stub(
18281     IRpcStubBuffer* This,
18282     IRpcChannelBuffer* pRpcChannelBuffer,
18283     PRPC_MESSAGE pRpcMessage,
18284     DWORD* pdwStubPhase);
18285 HRESULT STDMETHODCALLTYPE IParentAndItem_RemoteGetParentAndItem_Proxy(
18286     IParentAndItem* This,
18287     PIDLIST_ABSOLUTE *ppidlParent,
18288     IShellFolder **ppsf,
18289     PITEMID_CHILD *ppidlChild);
18290 void __RPC_STUB IParentAndItem_RemoteGetParentAndItem_Stub(
18291     IRpcStubBuffer* This,
18292     IRpcChannelBuffer* pRpcChannelBuffer,
18293     PRPC_MESSAGE pRpcMessage,
18294     DWORD* pdwStubPhase);
18295 HRESULT CALLBACK IParentAndItem_GetParentAndItem_Proxy(
18296     IParentAndItem* This,
18297     PIDLIST_ABSOLUTE *ppidlParent,
18298     IShellFolder **ppsf,
18299     PITEMID_CHILD *ppidlChild);
18300 HRESULT __RPC_STUB IParentAndItem_GetParentAndItem_Stub(
18301     IParentAndItem* This,
18302     PIDLIST_ABSOLUTE *ppidlParent,
18303     IShellFolder **ppsf,
18304     PITEMID_CHILD *ppidlChild);
18305 
18306 #endif  /* __IParentAndItem_INTERFACE_DEFINED__ */
18307 
18308 
18309 /*****************************************************************************
18310  * IDockingWindow interface
18311  */
18312 #ifndef __IDockingWindow_INTERFACE_DEFINED__
18313 #define __IDockingWindow_INTERFACE_DEFINED__
18314 
18315 DEFINE_GUID(IID_IDockingWindow, 0x012dd920, 0x7b26, 0x11d0, 0x8c,0xa9, 0x00,0xa0,0xc9,0x2d,0xbf,0xe8);
18316 #if defined(__cplusplus) && !defined(CINTERFACE)
18317 MIDL_INTERFACE("012dd920-7b26-11d0-8ca9-00a0c92dbfe8")
18318 IDockingWindow : public IOleWindow
18319 {
18320     virtual HRESULT STDMETHODCALLTYPE ShowDW(
18321         WINBOOL fShow) = 0;
18322 
18323     virtual HRESULT STDMETHODCALLTYPE CloseDW(
18324         DWORD dwReserved) = 0;
18325 
18326     virtual HRESULT STDMETHODCALLTYPE ResizeBorderDW(
18327         LPCRECT prcBorder,
18328         IUnknown *punkToolbarSite,
18329         WINBOOL fReserved) = 0;
18330 
18331 };
18332 #ifdef __CRT_UUID_DECL
18333 __CRT_UUID_DECL(IDockingWindow, 0x012dd920, 0x7b26, 0x11d0, 0x8c,0xa9, 0x00,0xa0,0xc9,0x2d,0xbf,0xe8)
18334 #endif
18335 #else
18336 typedef struct IDockingWindowVtbl {
18337     BEGIN_INTERFACE
18338 
18339     /*** IUnknown methods ***/
18340     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18341         IDockingWindow* This,
18342         REFIID riid,
18343         void **ppvObject);
18344 
18345     ULONG (STDMETHODCALLTYPE *AddRef)(
18346         IDockingWindow* This);
18347 
18348     ULONG (STDMETHODCALLTYPE *Release)(
18349         IDockingWindow* This);
18350 
18351     /*** IOleWindow methods ***/
18352     HRESULT (STDMETHODCALLTYPE *GetWindow)(
18353         IDockingWindow* This,
18354         HWND *phwnd);
18355 
18356     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
18357         IDockingWindow* This,
18358         WINBOOL fEnterMode);
18359 
18360     /*** IDockingWindow methods ***/
18361     HRESULT (STDMETHODCALLTYPE *ShowDW)(
18362         IDockingWindow* This,
18363         WINBOOL fShow);
18364 
18365     HRESULT (STDMETHODCALLTYPE *CloseDW)(
18366         IDockingWindow* This,
18367         DWORD dwReserved);
18368 
18369     HRESULT (STDMETHODCALLTYPE *ResizeBorderDW)(
18370         IDockingWindow* This,
18371         LPCRECT prcBorder,
18372         IUnknown *punkToolbarSite,
18373         WINBOOL fReserved);
18374 
18375     END_INTERFACE
18376 } IDockingWindowVtbl;
18377 interface IDockingWindow {
18378     CONST_VTBL IDockingWindowVtbl* lpVtbl;
18379 };
18380 
18381 #ifdef COBJMACROS
18382 #ifndef WIDL_C_INLINE_WRAPPERS
18383 /*** IUnknown methods ***/
18384 #define IDockingWindow_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18385 #define IDockingWindow_AddRef(This) (This)->lpVtbl->AddRef(This)
18386 #define IDockingWindow_Release(This) (This)->lpVtbl->Release(This)
18387 /*** IOleWindow methods ***/
18388 #define IDockingWindow_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
18389 #define IDockingWindow_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
18390 /*** IDockingWindow methods ***/
18391 #define IDockingWindow_ShowDW(This,fShow) (This)->lpVtbl->ShowDW(This,fShow)
18392 #define IDockingWindow_CloseDW(This,dwReserved) (This)->lpVtbl->CloseDW(This,dwReserved)
18393 #define IDockingWindow_ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved) (This)->lpVtbl->ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved)
18394 #else
18395 /*** IUnknown methods ***/
18396 static FORCEINLINE HRESULT IDockingWindow_QueryInterface(IDockingWindow* This,REFIID riid,void **ppvObject) {
18397     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18398 }
18399 static FORCEINLINE ULONG IDockingWindow_AddRef(IDockingWindow* This) {
18400     return This->lpVtbl->AddRef(This);
18401 }
18402 static FORCEINLINE ULONG IDockingWindow_Release(IDockingWindow* This) {
18403     return This->lpVtbl->Release(This);
18404 }
18405 /*** IOleWindow methods ***/
18406 static FORCEINLINE HRESULT IDockingWindow_GetWindow(IDockingWindow* This,HWND *phwnd) {
18407     return This->lpVtbl->GetWindow(This,phwnd);
18408 }
18409 static FORCEINLINE HRESULT IDockingWindow_ContextSensitiveHelp(IDockingWindow* This,WINBOOL fEnterMode) {
18410     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
18411 }
18412 /*** IDockingWindow methods ***/
18413 static FORCEINLINE HRESULT IDockingWindow_ShowDW(IDockingWindow* This,WINBOOL fShow) {
18414     return This->lpVtbl->ShowDW(This,fShow);
18415 }
18416 static FORCEINLINE HRESULT IDockingWindow_CloseDW(IDockingWindow* This,DWORD dwReserved) {
18417     return This->lpVtbl->CloseDW(This,dwReserved);
18418 }
18419 static FORCEINLINE HRESULT IDockingWindow_ResizeBorderDW(IDockingWindow* This,LPCRECT prcBorder,IUnknown *punkToolbarSite,WINBOOL fReserved) {
18420     return This->lpVtbl->ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved);
18421 }
18422 #endif
18423 #endif
18424 
18425 #endif
18426 
18427 HRESULT STDMETHODCALLTYPE IDockingWindow_ShowDW_Proxy(
18428     IDockingWindow* This,
18429     WINBOOL fShow);
18430 void __RPC_STUB IDockingWindow_ShowDW_Stub(
18431     IRpcStubBuffer* This,
18432     IRpcChannelBuffer* pRpcChannelBuffer,
18433     PRPC_MESSAGE pRpcMessage,
18434     DWORD* pdwStubPhase);
18435 HRESULT STDMETHODCALLTYPE IDockingWindow_CloseDW_Proxy(
18436     IDockingWindow* This,
18437     DWORD dwReserved);
18438 void __RPC_STUB IDockingWindow_CloseDW_Stub(
18439     IRpcStubBuffer* This,
18440     IRpcChannelBuffer* pRpcChannelBuffer,
18441     PRPC_MESSAGE pRpcMessage,
18442     DWORD* pdwStubPhase);
18443 HRESULT STDMETHODCALLTYPE IDockingWindow_ResizeBorderDW_Proxy(
18444     IDockingWindow* This,
18445     LPCRECT prcBorder,
18446     IUnknown *punkToolbarSite,
18447     WINBOOL fReserved);
18448 void __RPC_STUB IDockingWindow_ResizeBorderDW_Stub(
18449     IRpcStubBuffer* This,
18450     IRpcChannelBuffer* pRpcChannelBuffer,
18451     PRPC_MESSAGE pRpcMessage,
18452     DWORD* pdwStubPhase);
18453 
18454 #endif  /* __IDockingWindow_INTERFACE_DEFINED__ */
18455 
18456 
18457 #define DBIM_MINSIZE 0x0001
18458 #define DBIM_MAXSIZE 0x0002
18459 #define DBIM_INTEGRAL 0x0004
18460 #define DBIM_ACTUAL 0x0008
18461 #define DBIM_TITLE 0x0010
18462 #define DBIM_MODEFLAGS 0x0020
18463 #define DBIM_BKCOLOR 0x0040
18464 
18465 #include <pshpack8.h>
18466 typedef struct DESKBANDINFO {
18467     DWORD dwMask;
18468     POINTL ptMinSize;
18469     POINTL ptMaxSize;
18470     POINTL ptIntegral;
18471     POINTL ptActual;
18472     WCHAR wszTitle[256];
18473     DWORD dwModeFlags;
18474     COLORREF crBkgnd;
18475 } DESKBANDINFO;
18476 #include <poppack.h>
18477 
18478 #define DBIMF_NORMAL 0x0000
18479 #define DBIMF_FIXED 0x0001
18480 #define DBIMF_FIXEDBMP 0x0004
18481 #define DBIMF_VARIABLEHEIGHT 0x0008
18482 #define DBIMF_UNDELETEABLE 0x0010
18483 #define DBIMF_DEBOSSED 0x0020
18484 #define DBIMF_BKCOLOR 0x0040
18485 #define DBIMF_USECHEVRON 0x0080
18486 #define DBIMF_BREAK 0x0100
18487 #define DBIMF_ADDTOFRONT 0x0200
18488 #define DBIMF_TOPALIGN 0x0400
18489 #if NTDDI_VERSION >= NTDDI_VISTA
18490 #define DBIMF_NOGRIPPER 0x0800
18491 #define DBIMF_ALWAYSGRIPPER 0x1000
18492 #define DBIMF_NOMARGINS 0x2000
18493 #endif
18494 
18495 #define DBIF_VIEWMODE_NORMAL 0x0000
18496 #define DBIF_VIEWMODE_VERTICAL 0x0001
18497 #define DBIF_VIEWMODE_FLOATING 0x0002
18498 #define DBIF_VIEWMODE_TRANSPARENT 0x0004
18499 
18500 enum tagDESKBANDCID {
18501     DBID_BANDINFOCHANGED = 0,
18502     DBID_SHOWONLY = 1,
18503     DBID_MAXIMIZEBAND = 2,
18504     DBID_PUSHCHEVRON = 3,
18505     DBID_DELAYINIT = 4,
18506     DBID_FINISHINIT = 5,
18507     DBID_SETWINDOWTHEME = 6,
18508     DBID_PERMITAUTOHIDE = 7
18509 };
18510 
18511 
18512 #define DBPC_SELECTFIRST    (DWORD)-1
18513 #define DBPC_SELECTLAST     (DWORD)-2
18514 
18515 #define CGID_DeskBand IID_IDeskBand
18516 
18517 /*****************************************************************************
18518  * IDeskBand interface
18519  */
18520 #ifndef __IDeskBand_INTERFACE_DEFINED__
18521 #define __IDeskBand_INTERFACE_DEFINED__
18522 
18523 DEFINE_GUID(IID_IDeskBand, 0xeb0fe172, 0x1a3a, 0x11d0, 0x89,0xb3, 0x00,0xa0,0xc9,0x0a,0x90,0xac);
18524 #if defined(__cplusplus) && !defined(CINTERFACE)
18525 MIDL_INTERFACE("eb0fe172-1a3a-11d0-89b3-00a0c90a90ac")
18526 IDeskBand : public IDockingWindow
18527 {
18528     virtual HRESULT STDMETHODCALLTYPE GetBandInfo(
18529         DWORD dwBandID,
18530         DWORD dwViewMode,
18531         DESKBANDINFO *pdbi) = 0;
18532 
18533 };
18534 #ifdef __CRT_UUID_DECL
18535 __CRT_UUID_DECL(IDeskBand, 0xeb0fe172, 0x1a3a, 0x11d0, 0x89,0xb3, 0x00,0xa0,0xc9,0x0a,0x90,0xac)
18536 #endif
18537 #else
18538 typedef struct IDeskBandVtbl {
18539     BEGIN_INTERFACE
18540 
18541     /*** IUnknown methods ***/
18542     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18543         IDeskBand* This,
18544         REFIID riid,
18545         void **ppvObject);
18546 
18547     ULONG (STDMETHODCALLTYPE *AddRef)(
18548         IDeskBand* This);
18549 
18550     ULONG (STDMETHODCALLTYPE *Release)(
18551         IDeskBand* This);
18552 
18553     /*** IOleWindow methods ***/
18554     HRESULT (STDMETHODCALLTYPE *GetWindow)(
18555         IDeskBand* This,
18556         HWND *phwnd);
18557 
18558     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
18559         IDeskBand* This,
18560         WINBOOL fEnterMode);
18561 
18562     /*** IDockingWindow methods ***/
18563     HRESULT (STDMETHODCALLTYPE *ShowDW)(
18564         IDeskBand* This,
18565         WINBOOL fShow);
18566 
18567     HRESULT (STDMETHODCALLTYPE *CloseDW)(
18568         IDeskBand* This,
18569         DWORD dwReserved);
18570 
18571     HRESULT (STDMETHODCALLTYPE *ResizeBorderDW)(
18572         IDeskBand* This,
18573         LPCRECT prcBorder,
18574         IUnknown *punkToolbarSite,
18575         WINBOOL fReserved);
18576 
18577     /*** IDeskBand methods ***/
18578     HRESULT (STDMETHODCALLTYPE *GetBandInfo)(
18579         IDeskBand* This,
18580         DWORD dwBandID,
18581         DWORD dwViewMode,
18582         DESKBANDINFO *pdbi);
18583 
18584     END_INTERFACE
18585 } IDeskBandVtbl;
18586 interface IDeskBand {
18587     CONST_VTBL IDeskBandVtbl* lpVtbl;
18588 };
18589 
18590 #ifdef COBJMACROS
18591 #ifndef WIDL_C_INLINE_WRAPPERS
18592 /*** IUnknown methods ***/
18593 #define IDeskBand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18594 #define IDeskBand_AddRef(This) (This)->lpVtbl->AddRef(This)
18595 #define IDeskBand_Release(This) (This)->lpVtbl->Release(This)
18596 /*** IOleWindow methods ***/
18597 #define IDeskBand_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
18598 #define IDeskBand_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
18599 /*** IDockingWindow methods ***/
18600 #define IDeskBand_ShowDW(This,fShow) (This)->lpVtbl->ShowDW(This,fShow)
18601 #define IDeskBand_CloseDW(This,dwReserved) (This)->lpVtbl->CloseDW(This,dwReserved)
18602 #define IDeskBand_ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved) (This)->lpVtbl->ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved)
18603 /*** IDeskBand methods ***/
18604 #define IDeskBand_GetBandInfo(This,dwBandID,dwViewMode,pdbi) (This)->lpVtbl->GetBandInfo(This,dwBandID,dwViewMode,pdbi)
18605 #else
18606 /*** IUnknown methods ***/
18607 static FORCEINLINE HRESULT IDeskBand_QueryInterface(IDeskBand* This,REFIID riid,void **ppvObject) {
18608     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18609 }
18610 static FORCEINLINE ULONG IDeskBand_AddRef(IDeskBand* This) {
18611     return This->lpVtbl->AddRef(This);
18612 }
18613 static FORCEINLINE ULONG IDeskBand_Release(IDeskBand* This) {
18614     return This->lpVtbl->Release(This);
18615 }
18616 /*** IOleWindow methods ***/
18617 static FORCEINLINE HRESULT IDeskBand_GetWindow(IDeskBand* This,HWND *phwnd) {
18618     return This->lpVtbl->GetWindow(This,phwnd);
18619 }
18620 static FORCEINLINE HRESULT IDeskBand_ContextSensitiveHelp(IDeskBand* This,WINBOOL fEnterMode) {
18621     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
18622 }
18623 /*** IDockingWindow methods ***/
18624 static FORCEINLINE HRESULT IDeskBand_ShowDW(IDeskBand* This,WINBOOL fShow) {
18625     return This->lpVtbl->ShowDW(This,fShow);
18626 }
18627 static FORCEINLINE HRESULT IDeskBand_CloseDW(IDeskBand* This,DWORD dwReserved) {
18628     return This->lpVtbl->CloseDW(This,dwReserved);
18629 }
18630 static FORCEINLINE HRESULT IDeskBand_ResizeBorderDW(IDeskBand* This,LPCRECT prcBorder,IUnknown *punkToolbarSite,WINBOOL fReserved) {
18631     return This->lpVtbl->ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved);
18632 }
18633 /*** IDeskBand methods ***/
18634 static FORCEINLINE HRESULT IDeskBand_GetBandInfo(IDeskBand* This,DWORD dwBandID,DWORD dwViewMode,DESKBANDINFO *pdbi) {
18635     return This->lpVtbl->GetBandInfo(This,dwBandID,dwViewMode,pdbi);
18636 }
18637 #endif
18638 #endif
18639 
18640 #endif
18641 
18642 HRESULT STDMETHODCALLTYPE IDeskBand_GetBandInfo_Proxy(
18643     IDeskBand* This,
18644     DWORD dwBandID,
18645     DWORD dwViewMode,
18646     DESKBANDINFO *pdbi);
18647 void __RPC_STUB IDeskBand_GetBandInfo_Stub(
18648     IRpcStubBuffer* This,
18649     IRpcChannelBuffer* pRpcChannelBuffer,
18650     PRPC_MESSAGE pRpcMessage,
18651     DWORD* pdwStubPhase);
18652 
18653 #endif  /* __IDeskBand_INTERFACE_DEFINED__ */
18654 
18655 
18656 #if NTDDI_VERSION >= NTDDI_VISTA
18657 /*****************************************************************************
18658  * IDeskBandInfo interface
18659  */
18660 #ifndef __IDeskBandInfo_INTERFACE_DEFINED__
18661 #define __IDeskBandInfo_INTERFACE_DEFINED__
18662 
18663 DEFINE_GUID(IID_IDeskBandInfo, 0x77e425fc, 0xcbf9, 0x4307, 0xba,0x6a, 0xbb,0x57,0x27,0x74,0x56,0x61);
18664 #if defined(__cplusplus) && !defined(CINTERFACE)
18665 MIDL_INTERFACE("77e425fc-cbf9-4307-ba6a-bb5727745661")
18666 IDeskBandInfo : public IUnknown
18667 {
18668     virtual HRESULT STDMETHODCALLTYPE GetDefaultBandWidth(
18669         DWORD dwBandID,
18670         DWORD dwViewMode,
18671         int *pnWidth) = 0;
18672 
18673 };
18674 #ifdef __CRT_UUID_DECL
18675 __CRT_UUID_DECL(IDeskBandInfo, 0x77e425fc, 0xcbf9, 0x4307, 0xba,0x6a, 0xbb,0x57,0x27,0x74,0x56,0x61)
18676 #endif
18677 #else
18678 typedef struct IDeskBandInfoVtbl {
18679     BEGIN_INTERFACE
18680 
18681     /*** IUnknown methods ***/
18682     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18683         IDeskBandInfo* This,
18684         REFIID riid,
18685         void **ppvObject);
18686 
18687     ULONG (STDMETHODCALLTYPE *AddRef)(
18688         IDeskBandInfo* This);
18689 
18690     ULONG (STDMETHODCALLTYPE *Release)(
18691         IDeskBandInfo* This);
18692 
18693     /*** IDeskBandInfo methods ***/
18694     HRESULT (STDMETHODCALLTYPE *GetDefaultBandWidth)(
18695         IDeskBandInfo* This,
18696         DWORD dwBandID,
18697         DWORD dwViewMode,
18698         int *pnWidth);
18699 
18700     END_INTERFACE
18701 } IDeskBandInfoVtbl;
18702 interface IDeskBandInfo {
18703     CONST_VTBL IDeskBandInfoVtbl* lpVtbl;
18704 };
18705 
18706 #ifdef COBJMACROS
18707 #ifndef WIDL_C_INLINE_WRAPPERS
18708 /*** IUnknown methods ***/
18709 #define IDeskBandInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18710 #define IDeskBandInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
18711 #define IDeskBandInfo_Release(This) (This)->lpVtbl->Release(This)
18712 /*** IDeskBandInfo methods ***/
18713 #define IDeskBandInfo_GetDefaultBandWidth(This,dwBandID,dwViewMode,pnWidth) (This)->lpVtbl->GetDefaultBandWidth(This,dwBandID,dwViewMode,pnWidth)
18714 #else
18715 /*** IUnknown methods ***/
18716 static FORCEINLINE HRESULT IDeskBandInfo_QueryInterface(IDeskBandInfo* This,REFIID riid,void **ppvObject) {
18717     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18718 }
18719 static FORCEINLINE ULONG IDeskBandInfo_AddRef(IDeskBandInfo* This) {
18720     return This->lpVtbl->AddRef(This);
18721 }
18722 static FORCEINLINE ULONG IDeskBandInfo_Release(IDeskBandInfo* This) {
18723     return This->lpVtbl->Release(This);
18724 }
18725 /*** IDeskBandInfo methods ***/
18726 static FORCEINLINE HRESULT IDeskBandInfo_GetDefaultBandWidth(IDeskBandInfo* This,DWORD dwBandID,DWORD dwViewMode,int *pnWidth) {
18727     return This->lpVtbl->GetDefaultBandWidth(This,dwBandID,dwViewMode,pnWidth);
18728 }
18729 #endif
18730 #endif
18731 
18732 #endif
18733 
18734 HRESULT STDMETHODCALLTYPE IDeskBandInfo_GetDefaultBandWidth_Proxy(
18735     IDeskBandInfo* This,
18736     DWORD dwBandID,
18737     DWORD dwViewMode,
18738     int *pnWidth);
18739 void __RPC_STUB IDeskBandInfo_GetDefaultBandWidth_Stub(
18740     IRpcStubBuffer* This,
18741     IRpcChannelBuffer* pRpcChannelBuffer,
18742     PRPC_MESSAGE pRpcMessage,
18743     DWORD* pdwStubPhase);
18744 
18745 #endif  /* __IDeskBandInfo_INTERFACE_DEFINED__ */
18746 
18747 
18748 /*****************************************************************************
18749  * IDeskBand2 interface
18750  */
18751 #ifndef __IDeskBand2_INTERFACE_DEFINED__
18752 #define __IDeskBand2_INTERFACE_DEFINED__
18753 
18754 DEFINE_GUID(IID_IDeskBand2, 0x79d16de4, 0xabee, 0x4021, 0x8d,0x9d, 0x91,0x69,0xb2,0x61,0xd6,0x57);
18755 #if defined(__cplusplus) && !defined(CINTERFACE)
18756 MIDL_INTERFACE("79d16de4-abee-4021-8d9d-9169b261d657")
18757 IDeskBand2 : public IDeskBand
18758 {
18759     virtual HRESULT STDMETHODCALLTYPE CanRenderComposited(
18760         WINBOOL *pfCanRenderComposited) = 0;
18761 
18762     virtual HRESULT STDMETHODCALLTYPE SetCompositionState(
18763         WINBOOL fCompositionEnabled) = 0;
18764 
18765     virtual HRESULT STDMETHODCALLTYPE GetCompositionState(
18766         WINBOOL *pfCompositionEnabled) = 0;
18767 
18768 };
18769 #ifdef __CRT_UUID_DECL
18770 __CRT_UUID_DECL(IDeskBand2, 0x79d16de4, 0xabee, 0x4021, 0x8d,0x9d, 0x91,0x69,0xb2,0x61,0xd6,0x57)
18771 #endif
18772 #else
18773 typedef struct IDeskBand2Vtbl {
18774     BEGIN_INTERFACE
18775 
18776     /*** IUnknown methods ***/
18777     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18778         IDeskBand2* This,
18779         REFIID riid,
18780         void **ppvObject);
18781 
18782     ULONG (STDMETHODCALLTYPE *AddRef)(
18783         IDeskBand2* This);
18784 
18785     ULONG (STDMETHODCALLTYPE *Release)(
18786         IDeskBand2* This);
18787 
18788     /*** IOleWindow methods ***/
18789     HRESULT (STDMETHODCALLTYPE *GetWindow)(
18790         IDeskBand2* This,
18791         HWND *phwnd);
18792 
18793     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
18794         IDeskBand2* This,
18795         WINBOOL fEnterMode);
18796 
18797     /*** IDockingWindow methods ***/
18798     HRESULT (STDMETHODCALLTYPE *ShowDW)(
18799         IDeskBand2* This,
18800         WINBOOL fShow);
18801 
18802     HRESULT (STDMETHODCALLTYPE *CloseDW)(
18803         IDeskBand2* This,
18804         DWORD dwReserved);
18805 
18806     HRESULT (STDMETHODCALLTYPE *ResizeBorderDW)(
18807         IDeskBand2* This,
18808         LPCRECT prcBorder,
18809         IUnknown *punkToolbarSite,
18810         WINBOOL fReserved);
18811 
18812     /*** IDeskBand methods ***/
18813     HRESULT (STDMETHODCALLTYPE *GetBandInfo)(
18814         IDeskBand2* This,
18815         DWORD dwBandID,
18816         DWORD dwViewMode,
18817         DESKBANDINFO *pdbi);
18818 
18819     /*** IDeskBand2 methods ***/
18820     HRESULT (STDMETHODCALLTYPE *CanRenderComposited)(
18821         IDeskBand2* This,
18822         WINBOOL *pfCanRenderComposited);
18823 
18824     HRESULT (STDMETHODCALLTYPE *SetCompositionState)(
18825         IDeskBand2* This,
18826         WINBOOL fCompositionEnabled);
18827 
18828     HRESULT (STDMETHODCALLTYPE *GetCompositionState)(
18829         IDeskBand2* This,
18830         WINBOOL *pfCompositionEnabled);
18831 
18832     END_INTERFACE
18833 } IDeskBand2Vtbl;
18834 interface IDeskBand2 {
18835     CONST_VTBL IDeskBand2Vtbl* lpVtbl;
18836 };
18837 
18838 #ifdef COBJMACROS
18839 #ifndef WIDL_C_INLINE_WRAPPERS
18840 /*** IUnknown methods ***/
18841 #define IDeskBand2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18842 #define IDeskBand2_AddRef(This) (This)->lpVtbl->AddRef(This)
18843 #define IDeskBand2_Release(This) (This)->lpVtbl->Release(This)
18844 /*** IOleWindow methods ***/
18845 #define IDeskBand2_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
18846 #define IDeskBand2_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
18847 /*** IDockingWindow methods ***/
18848 #define IDeskBand2_ShowDW(This,fShow) (This)->lpVtbl->ShowDW(This,fShow)
18849 #define IDeskBand2_CloseDW(This,dwReserved) (This)->lpVtbl->CloseDW(This,dwReserved)
18850 #define IDeskBand2_ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved) (This)->lpVtbl->ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved)
18851 /*** IDeskBand methods ***/
18852 #define IDeskBand2_GetBandInfo(This,dwBandID,dwViewMode,pdbi) (This)->lpVtbl->GetBandInfo(This,dwBandID,dwViewMode,pdbi)
18853 /*** IDeskBand2 methods ***/
18854 #define IDeskBand2_CanRenderComposited(This,pfCanRenderComposited) (This)->lpVtbl->CanRenderComposited(This,pfCanRenderComposited)
18855 #define IDeskBand2_SetCompositionState(This,fCompositionEnabled) (This)->lpVtbl->SetCompositionState(This,fCompositionEnabled)
18856 #define IDeskBand2_GetCompositionState(This,pfCompositionEnabled) (This)->lpVtbl->GetCompositionState(This,pfCompositionEnabled)
18857 #else
18858 /*** IUnknown methods ***/
18859 static FORCEINLINE HRESULT IDeskBand2_QueryInterface(IDeskBand2* This,REFIID riid,void **ppvObject) {
18860     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18861 }
18862 static FORCEINLINE ULONG IDeskBand2_AddRef(IDeskBand2* This) {
18863     return This->lpVtbl->AddRef(This);
18864 }
18865 static FORCEINLINE ULONG IDeskBand2_Release(IDeskBand2* This) {
18866     return This->lpVtbl->Release(This);
18867 }
18868 /*** IOleWindow methods ***/
18869 static FORCEINLINE HRESULT IDeskBand2_GetWindow(IDeskBand2* This,HWND *phwnd) {
18870     return This->lpVtbl->GetWindow(This,phwnd);
18871 }
18872 static FORCEINLINE HRESULT IDeskBand2_ContextSensitiveHelp(IDeskBand2* This,WINBOOL fEnterMode) {
18873     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
18874 }
18875 /*** IDockingWindow methods ***/
18876 static FORCEINLINE HRESULT IDeskBand2_ShowDW(IDeskBand2* This,WINBOOL fShow) {
18877     return This->lpVtbl->ShowDW(This,fShow);
18878 }
18879 static FORCEINLINE HRESULT IDeskBand2_CloseDW(IDeskBand2* This,DWORD dwReserved) {
18880     return This->lpVtbl->CloseDW(This,dwReserved);
18881 }
18882 static FORCEINLINE HRESULT IDeskBand2_ResizeBorderDW(IDeskBand2* This,LPCRECT prcBorder,IUnknown *punkToolbarSite,WINBOOL fReserved) {
18883     return This->lpVtbl->ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved);
18884 }
18885 /*** IDeskBand methods ***/
18886 static FORCEINLINE HRESULT IDeskBand2_GetBandInfo(IDeskBand2* This,DWORD dwBandID,DWORD dwViewMode,DESKBANDINFO *pdbi) {
18887     return This->lpVtbl->GetBandInfo(This,dwBandID,dwViewMode,pdbi);
18888 }
18889 /*** IDeskBand2 methods ***/
18890 static FORCEINLINE HRESULT IDeskBand2_CanRenderComposited(IDeskBand2* This,WINBOOL *pfCanRenderComposited) {
18891     return This->lpVtbl->CanRenderComposited(This,pfCanRenderComposited);
18892 }
18893 static FORCEINLINE HRESULT IDeskBand2_SetCompositionState(IDeskBand2* This,WINBOOL fCompositionEnabled) {
18894     return This->lpVtbl->SetCompositionState(This,fCompositionEnabled);
18895 }
18896 static FORCEINLINE HRESULT IDeskBand2_GetCompositionState(IDeskBand2* This,WINBOOL *pfCompositionEnabled) {
18897     return This->lpVtbl->GetCompositionState(This,pfCompositionEnabled);
18898 }
18899 #endif
18900 #endif
18901 
18902 #endif
18903 
18904 HRESULT STDMETHODCALLTYPE IDeskBand2_CanRenderComposited_Proxy(
18905     IDeskBand2* This,
18906     WINBOOL *pfCanRenderComposited);
18907 void __RPC_STUB IDeskBand2_CanRenderComposited_Stub(
18908     IRpcStubBuffer* This,
18909     IRpcChannelBuffer* pRpcChannelBuffer,
18910     PRPC_MESSAGE pRpcMessage,
18911     DWORD* pdwStubPhase);
18912 HRESULT STDMETHODCALLTYPE IDeskBand2_SetCompositionState_Proxy(
18913     IDeskBand2* This,
18914     WINBOOL fCompositionEnabled);
18915 void __RPC_STUB IDeskBand2_SetCompositionState_Stub(
18916     IRpcStubBuffer* This,
18917     IRpcChannelBuffer* pRpcChannelBuffer,
18918     PRPC_MESSAGE pRpcMessage,
18919     DWORD* pdwStubPhase);
18920 HRESULT STDMETHODCALLTYPE IDeskBand2_GetCompositionState_Proxy(
18921     IDeskBand2* This,
18922     WINBOOL *pfCompositionEnabled);
18923 void __RPC_STUB IDeskBand2_GetCompositionState_Stub(
18924     IRpcStubBuffer* This,
18925     IRpcChannelBuffer* pRpcChannelBuffer,
18926     PRPC_MESSAGE pRpcMessage,
18927     DWORD* pdwStubPhase);
18928 
18929 #endif  /* __IDeskBand2_INTERFACE_DEFINED__ */
18930 
18931 #endif
18932 
18933 /*****************************************************************************
18934  * ITaskbarList interface
18935  */
18936 #ifndef __ITaskbarList_INTERFACE_DEFINED__
18937 #define __ITaskbarList_INTERFACE_DEFINED__
18938 
18939 DEFINE_GUID(IID_ITaskbarList, 0x56fdf342, 0xfd6d, 0x11d0, 0x95,0x8a, 0x00,0x60,0x97,0xc9,0xa0,0x90);
18940 #if defined(__cplusplus) && !defined(CINTERFACE)
18941 MIDL_INTERFACE("56fdf342-fd6d-11d0-958a-006097c9a090")
18942 ITaskbarList : public IUnknown
18943 {
18944     virtual HRESULT STDMETHODCALLTYPE HrInit(
18945         ) = 0;
18946 
18947     virtual HRESULT STDMETHODCALLTYPE AddTab(
18948         HWND hwnd) = 0;
18949 
18950     virtual HRESULT STDMETHODCALLTYPE DeleteTab(
18951         HWND hwnd) = 0;
18952 
18953     virtual HRESULT STDMETHODCALLTYPE ActivateTab(
18954         HWND hwnd) = 0;
18955 
18956     virtual HRESULT STDMETHODCALLTYPE SetActiveAlt(
18957         HWND hwnd) = 0;
18958 
18959 };
18960 #ifdef __CRT_UUID_DECL
18961 __CRT_UUID_DECL(ITaskbarList, 0x56fdf342, 0xfd6d, 0x11d0, 0x95,0x8a, 0x00,0x60,0x97,0xc9,0xa0,0x90)
18962 #endif
18963 #else
18964 typedef struct ITaskbarListVtbl {
18965     BEGIN_INTERFACE
18966 
18967     /*** IUnknown methods ***/
18968     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18969         ITaskbarList* This,
18970         REFIID riid,
18971         void **ppvObject);
18972 
18973     ULONG (STDMETHODCALLTYPE *AddRef)(
18974         ITaskbarList* This);
18975 
18976     ULONG (STDMETHODCALLTYPE *Release)(
18977         ITaskbarList* This);
18978 
18979     /*** ITaskbarList methods ***/
18980     HRESULT (STDMETHODCALLTYPE *HrInit)(
18981         ITaskbarList* This);
18982 
18983     HRESULT (STDMETHODCALLTYPE *AddTab)(
18984         ITaskbarList* This,
18985         HWND hwnd);
18986 
18987     HRESULT (STDMETHODCALLTYPE *DeleteTab)(
18988         ITaskbarList* This,
18989         HWND hwnd);
18990 
18991     HRESULT (STDMETHODCALLTYPE *ActivateTab)(
18992         ITaskbarList* This,
18993         HWND hwnd);
18994 
18995     HRESULT (STDMETHODCALLTYPE *SetActiveAlt)(
18996         ITaskbarList* This,
18997         HWND hwnd);
18998 
18999     END_INTERFACE
19000 } ITaskbarListVtbl;
19001 interface ITaskbarList {
19002     CONST_VTBL ITaskbarListVtbl* lpVtbl;
19003 };
19004 
19005 #ifdef COBJMACROS
19006 #ifndef WIDL_C_INLINE_WRAPPERS
19007 /*** IUnknown methods ***/
19008 #define ITaskbarList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19009 #define ITaskbarList_AddRef(This) (This)->lpVtbl->AddRef(This)
19010 #define ITaskbarList_Release(This) (This)->lpVtbl->Release(This)
19011 /*** ITaskbarList methods ***/
19012 #define ITaskbarList_HrInit(This) (This)->lpVtbl->HrInit(This)
19013 #define ITaskbarList_AddTab(This,hwnd) (This)->lpVtbl->AddTab(This,hwnd)
19014 #define ITaskbarList_DeleteTab(This,hwnd) (This)->lpVtbl->DeleteTab(This,hwnd)
19015 #define ITaskbarList_ActivateTab(This,hwnd) (This)->lpVtbl->ActivateTab(This,hwnd)
19016 #define ITaskbarList_SetActiveAlt(This,hwnd) (This)->lpVtbl->SetActiveAlt(This,hwnd)
19017 #else
19018 /*** IUnknown methods ***/
19019 static FORCEINLINE HRESULT ITaskbarList_QueryInterface(ITaskbarList* This,REFIID riid,void **ppvObject) {
19020     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19021 }
19022 static FORCEINLINE ULONG ITaskbarList_AddRef(ITaskbarList* This) {
19023     return This->lpVtbl->AddRef(This);
19024 }
19025 static FORCEINLINE ULONG ITaskbarList_Release(ITaskbarList* This) {
19026     return This->lpVtbl->Release(This);
19027 }
19028 /*** ITaskbarList methods ***/
19029 static FORCEINLINE HRESULT ITaskbarList_HrInit(ITaskbarList* This) {
19030     return This->lpVtbl->HrInit(This);
19031 }
19032 static FORCEINLINE HRESULT ITaskbarList_AddTab(ITaskbarList* This,HWND hwnd) {
19033     return This->lpVtbl->AddTab(This,hwnd);
19034 }
19035 static FORCEINLINE HRESULT ITaskbarList_DeleteTab(ITaskbarList* This,HWND hwnd) {
19036     return This->lpVtbl->DeleteTab(This,hwnd);
19037 }
19038 static FORCEINLINE HRESULT ITaskbarList_ActivateTab(ITaskbarList* This,HWND hwnd) {
19039     return This->lpVtbl->ActivateTab(This,hwnd);
19040 }
19041 static FORCEINLINE HRESULT ITaskbarList_SetActiveAlt(ITaskbarList* This,HWND hwnd) {
19042     return This->lpVtbl->SetActiveAlt(This,hwnd);
19043 }
19044 #endif
19045 #endif
19046 
19047 #endif
19048 
19049 HRESULT STDMETHODCALLTYPE ITaskbarList_HrInit_Proxy(
19050     ITaskbarList* This);
19051 void __RPC_STUB ITaskbarList_HrInit_Stub(
19052     IRpcStubBuffer* This,
19053     IRpcChannelBuffer* pRpcChannelBuffer,
19054     PRPC_MESSAGE pRpcMessage,
19055     DWORD* pdwStubPhase);
19056 HRESULT STDMETHODCALLTYPE ITaskbarList_AddTab_Proxy(
19057     ITaskbarList* This,
19058     HWND hwnd);
19059 void __RPC_STUB ITaskbarList_AddTab_Stub(
19060     IRpcStubBuffer* This,
19061     IRpcChannelBuffer* pRpcChannelBuffer,
19062     PRPC_MESSAGE pRpcMessage,
19063     DWORD* pdwStubPhase);
19064 HRESULT STDMETHODCALLTYPE ITaskbarList_DeleteTab_Proxy(
19065     ITaskbarList* This,
19066     HWND hwnd);
19067 void __RPC_STUB ITaskbarList_DeleteTab_Stub(
19068     IRpcStubBuffer* This,
19069     IRpcChannelBuffer* pRpcChannelBuffer,
19070     PRPC_MESSAGE pRpcMessage,
19071     DWORD* pdwStubPhase);
19072 HRESULT STDMETHODCALLTYPE ITaskbarList_ActivateTab_Proxy(
19073     ITaskbarList* This,
19074     HWND hwnd);
19075 void __RPC_STUB ITaskbarList_ActivateTab_Stub(
19076     IRpcStubBuffer* This,
19077     IRpcChannelBuffer* pRpcChannelBuffer,
19078     PRPC_MESSAGE pRpcMessage,
19079     DWORD* pdwStubPhase);
19080 HRESULT STDMETHODCALLTYPE ITaskbarList_SetActiveAlt_Proxy(
19081     ITaskbarList* This,
19082     HWND hwnd);
19083 void __RPC_STUB ITaskbarList_SetActiveAlt_Stub(
19084     IRpcStubBuffer* This,
19085     IRpcChannelBuffer* pRpcChannelBuffer,
19086     PRPC_MESSAGE pRpcMessage,
19087     DWORD* pdwStubPhase);
19088 
19089 #endif  /* __ITaskbarList_INTERFACE_DEFINED__ */
19090 
19091 
19092 /*****************************************************************************
19093  * ITaskbarList2 interface
19094  */
19095 #ifndef __ITaskbarList2_INTERFACE_DEFINED__
19096 #define __ITaskbarList2_INTERFACE_DEFINED__
19097 
19098 DEFINE_GUID(IID_ITaskbarList2, 0x602d4995, 0xb13a, 0x429b, 0xa6,0x6e, 0x19,0x35,0xe4,0x4f,0x43,0x17);
19099 #if defined(__cplusplus) && !defined(CINTERFACE)
19100 MIDL_INTERFACE("602d4995-b13a-429b-a66e-1935e44f4317")
19101 ITaskbarList2 : public ITaskbarList
19102 {
19103     virtual HRESULT STDMETHODCALLTYPE MarkFullscreenWindow(
19104         HWND hwnd,
19105         WINBOOL fFullscreen) = 0;
19106 
19107 };
19108 #ifdef __CRT_UUID_DECL
19109 __CRT_UUID_DECL(ITaskbarList2, 0x602d4995, 0xb13a, 0x429b, 0xa6,0x6e, 0x19,0x35,0xe4,0x4f,0x43,0x17)
19110 #endif
19111 #else
19112 typedef struct ITaskbarList2Vtbl {
19113     BEGIN_INTERFACE
19114 
19115     /*** IUnknown methods ***/
19116     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19117         ITaskbarList2* This,
19118         REFIID riid,
19119         void **ppvObject);
19120 
19121     ULONG (STDMETHODCALLTYPE *AddRef)(
19122         ITaskbarList2* This);
19123 
19124     ULONG (STDMETHODCALLTYPE *Release)(
19125         ITaskbarList2* This);
19126 
19127     /*** ITaskbarList methods ***/
19128     HRESULT (STDMETHODCALLTYPE *HrInit)(
19129         ITaskbarList2* This);
19130 
19131     HRESULT (STDMETHODCALLTYPE *AddTab)(
19132         ITaskbarList2* This,
19133         HWND hwnd);
19134 
19135     HRESULT (STDMETHODCALLTYPE *DeleteTab)(
19136         ITaskbarList2* This,
19137         HWND hwnd);
19138 
19139     HRESULT (STDMETHODCALLTYPE *ActivateTab)(
19140         ITaskbarList2* This,
19141         HWND hwnd);
19142 
19143     HRESULT (STDMETHODCALLTYPE *SetActiveAlt)(
19144         ITaskbarList2* This,
19145         HWND hwnd);
19146 
19147     /*** ITaskbarList2 methods ***/
19148     HRESULT (STDMETHODCALLTYPE *MarkFullscreenWindow)(
19149         ITaskbarList2* This,
19150         HWND hwnd,
19151         WINBOOL fFullscreen);
19152 
19153     END_INTERFACE
19154 } ITaskbarList2Vtbl;
19155 interface ITaskbarList2 {
19156     CONST_VTBL ITaskbarList2Vtbl* lpVtbl;
19157 };
19158 
19159 #ifdef COBJMACROS
19160 #ifndef WIDL_C_INLINE_WRAPPERS
19161 /*** IUnknown methods ***/
19162 #define ITaskbarList2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19163 #define ITaskbarList2_AddRef(This) (This)->lpVtbl->AddRef(This)
19164 #define ITaskbarList2_Release(This) (This)->lpVtbl->Release(This)
19165 /*** ITaskbarList methods ***/
19166 #define ITaskbarList2_HrInit(This) (This)->lpVtbl->HrInit(This)
19167 #define ITaskbarList2_AddTab(This,hwnd) (This)->lpVtbl->AddTab(This,hwnd)
19168 #define ITaskbarList2_DeleteTab(This,hwnd) (This)->lpVtbl->DeleteTab(This,hwnd)
19169 #define ITaskbarList2_ActivateTab(This,hwnd) (This)->lpVtbl->ActivateTab(This,hwnd)
19170 #define ITaskbarList2_SetActiveAlt(This,hwnd) (This)->lpVtbl->SetActiveAlt(This,hwnd)
19171 /*** ITaskbarList2 methods ***/
19172 #define ITaskbarList2_MarkFullscreenWindow(This,hwnd,fFullscreen) (This)->lpVtbl->MarkFullscreenWindow(This,hwnd,fFullscreen)
19173 #else
19174 /*** IUnknown methods ***/
19175 static FORCEINLINE HRESULT ITaskbarList2_QueryInterface(ITaskbarList2* This,REFIID riid,void **ppvObject) {
19176     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19177 }
19178 static FORCEINLINE ULONG ITaskbarList2_AddRef(ITaskbarList2* This) {
19179     return This->lpVtbl->AddRef(This);
19180 }
19181 static FORCEINLINE ULONG ITaskbarList2_Release(ITaskbarList2* This) {
19182     return This->lpVtbl->Release(This);
19183 }
19184 /*** ITaskbarList methods ***/
19185 static FORCEINLINE HRESULT ITaskbarList2_HrInit(ITaskbarList2* This) {
19186     return This->lpVtbl->HrInit(This);
19187 }
19188 static FORCEINLINE HRESULT ITaskbarList2_AddTab(ITaskbarList2* This,HWND hwnd) {
19189     return This->lpVtbl->AddTab(This,hwnd);
19190 }
19191 static FORCEINLINE HRESULT ITaskbarList2_DeleteTab(ITaskbarList2* This,HWND hwnd) {
19192     return This->lpVtbl->DeleteTab(This,hwnd);
19193 }
19194 static FORCEINLINE HRESULT ITaskbarList2_ActivateTab(ITaskbarList2* This,HWND hwnd) {
19195     return This->lpVtbl->ActivateTab(This,hwnd);
19196 }
19197 static FORCEINLINE HRESULT ITaskbarList2_SetActiveAlt(ITaskbarList2* This,HWND hwnd) {
19198     return This->lpVtbl->SetActiveAlt(This,hwnd);
19199 }
19200 /*** ITaskbarList2 methods ***/
19201 static FORCEINLINE HRESULT ITaskbarList2_MarkFullscreenWindow(ITaskbarList2* This,HWND hwnd,WINBOOL fFullscreen) {
19202     return This->lpVtbl->MarkFullscreenWindow(This,hwnd,fFullscreen);
19203 }
19204 #endif
19205 #endif
19206 
19207 #endif
19208 
19209 HRESULT STDMETHODCALLTYPE ITaskbarList2_MarkFullscreenWindow_Proxy(
19210     ITaskbarList2* This,
19211     HWND hwnd,
19212     WINBOOL fFullscreen);
19213 void __RPC_STUB ITaskbarList2_MarkFullscreenWindow_Stub(
19214     IRpcStubBuffer* This,
19215     IRpcChannelBuffer* pRpcChannelBuffer,
19216     PRPC_MESSAGE pRpcMessage,
19217     DWORD* pdwStubPhase);
19218 
19219 #endif  /* __ITaskbarList2_INTERFACE_DEFINED__ */
19220 
19221 
19222 #if 0
19223 typedef IUnknown *HIMAGELIST;
19224 #endif
19225 
19226 typedef enum THUMBBUTTONFLAGS {
19227     THBF_ENABLED = 0x0,
19228     THBF_DISABLED = 0x1,
19229     THBF_DISMISSONCLICK = 0x2,
19230     THBF_NOBACKGROUND = 0x4,
19231     THBF_HIDDEN = 0x8,
19232     THBF_NONINTERACTIVE = 0x10
19233 } THUMBBUTTONFLAGS;
19234 
19235 DEFINE_ENUM_FLAG_OPERATORS(THUMBBUTTONFLAGS)
19236 
19237 
19238 typedef enum THUMBBUTTONMASK {
19239     THB_BITMAP = 0x1,
19240     THB_ICON = 0x2,
19241     THB_TOOLTIP = 0x4,
19242     THB_FLAGS = 0x8
19243 } THUMBBUTTONMASK;
19244 
19245 DEFINE_ENUM_FLAG_OPERATORS(THUMBBUTTONMASK)
19246 
19247 #include <pshpack8.h>
19248 typedef struct THUMBBUTTON {
19249     THUMBBUTTONMASK dwMask;
19250     UINT iId;
19251     UINT iBitmap;
19252     HICON hIcon;
19253     WCHAR szTip[260];
19254     THUMBBUTTONFLAGS dwFlags;
19255 } THUMBBUTTON;
19256 typedef struct THUMBBUTTON *LPTHUMBBUTTON;
19257 #include <poppack.h>
19258 
19259 #define THBN_CLICKED 0x1800
19260 
19261 /*****************************************************************************
19262  * ITaskbarList3 interface
19263  */
19264 #ifndef __ITaskbarList3_INTERFACE_DEFINED__
19265 #define __ITaskbarList3_INTERFACE_DEFINED__
19266 
19267 typedef enum TBPFLAG {
19268     TBPF_NOPROGRESS = 0x0,
19269     TBPF_INDETERMINATE = 0x1,
19270     TBPF_NORMAL = 0x2,
19271     TBPF_ERROR = 0x4,
19272     TBPF_PAUSED = 0x8
19273 } TBPFLAG;
19274 
19275 DEFINE_ENUM_FLAG_OPERATORS(TBPFLAG)
19276 
19277 DEFINE_GUID(IID_ITaskbarList3, 0xea1afb91, 0x9e28, 0x4b86, 0x90,0xe9, 0x9e,0x9f,0x8a,0x5e,0xef,0xaf);
19278 #if defined(__cplusplus) && !defined(CINTERFACE)
19279 MIDL_INTERFACE("ea1afb91-9e28-4b86-90e9-9e9f8a5eefaf")
19280 ITaskbarList3 : public ITaskbarList2
19281 {
19282     virtual HRESULT STDMETHODCALLTYPE SetProgressValue(
19283         HWND hwnd,
19284         ULONGLONG ullCompleted,
19285         ULONGLONG ullTotal) = 0;
19286 
19287     virtual HRESULT STDMETHODCALLTYPE SetProgressState(
19288         HWND hwnd,
19289         TBPFLAG tbpFlags) = 0;
19290 
19291     virtual HRESULT STDMETHODCALLTYPE RegisterTab(
19292         HWND hwndTab,
19293         HWND hwndMDI) = 0;
19294 
19295     virtual HRESULT STDMETHODCALLTYPE UnregisterTab(
19296         HWND hwndTab) = 0;
19297 
19298     virtual HRESULT STDMETHODCALLTYPE SetTabOrder(
19299         HWND hwndTab,
19300         HWND hwndInsertBefore) = 0;
19301 
19302     virtual HRESULT STDMETHODCALLTYPE SetTabActive(
19303         HWND hwndTab,
19304         HWND hwndMDI,
19305         DWORD dwReserved) = 0;
19306 
19307     virtual HRESULT STDMETHODCALLTYPE ThumbBarAddButtons(
19308         HWND hwnd,
19309         UINT cButtons,
19310         LPTHUMBBUTTON pButton) = 0;
19311 
19312     virtual HRESULT STDMETHODCALLTYPE ThumbBarUpdateButtons(
19313         HWND hwnd,
19314         UINT cButtons,
19315         LPTHUMBBUTTON pButton) = 0;
19316 
19317     virtual HRESULT STDMETHODCALLTYPE ThumbBarSetImageList(
19318         HWND hwnd,
19319         HIMAGELIST himl) = 0;
19320 
19321     virtual HRESULT STDMETHODCALLTYPE SetOverlayIcon(
19322         HWND hwnd,
19323         HICON hIcon,
19324         LPCWSTR pszDescription) = 0;
19325 
19326     virtual HRESULT STDMETHODCALLTYPE SetThumbnailTooltip(
19327         HWND hwnd,
19328         LPCWSTR pszTip) = 0;
19329 
19330     virtual HRESULT STDMETHODCALLTYPE SetThumbnailClip(
19331         HWND hwnd,
19332         RECT *prcClip) = 0;
19333 
19334 };
19335 #ifdef __CRT_UUID_DECL
19336 __CRT_UUID_DECL(ITaskbarList3, 0xea1afb91, 0x9e28, 0x4b86, 0x90,0xe9, 0x9e,0x9f,0x8a,0x5e,0xef,0xaf)
19337 #endif
19338 #else
19339 typedef struct ITaskbarList3Vtbl {
19340     BEGIN_INTERFACE
19341 
19342     /*** IUnknown methods ***/
19343     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19344         ITaskbarList3* This,
19345         REFIID riid,
19346         void **ppvObject);
19347 
19348     ULONG (STDMETHODCALLTYPE *AddRef)(
19349         ITaskbarList3* This);
19350 
19351     ULONG (STDMETHODCALLTYPE *Release)(
19352         ITaskbarList3* This);
19353 
19354     /*** ITaskbarList methods ***/
19355     HRESULT (STDMETHODCALLTYPE *HrInit)(
19356         ITaskbarList3* This);
19357 
19358     HRESULT (STDMETHODCALLTYPE *AddTab)(
19359         ITaskbarList3* This,
19360         HWND hwnd);
19361 
19362     HRESULT (STDMETHODCALLTYPE *DeleteTab)(
19363         ITaskbarList3* This,
19364         HWND hwnd);
19365 
19366     HRESULT (STDMETHODCALLTYPE *ActivateTab)(
19367         ITaskbarList3* This,
19368         HWND hwnd);
19369 
19370     HRESULT (STDMETHODCALLTYPE *SetActiveAlt)(
19371         ITaskbarList3* This,
19372         HWND hwnd);
19373 
19374     /*** ITaskbarList2 methods ***/
19375     HRESULT (STDMETHODCALLTYPE *MarkFullscreenWindow)(
19376         ITaskbarList3* This,
19377         HWND hwnd,
19378         WINBOOL fFullscreen);
19379 
19380     /*** ITaskbarList3 methods ***/
19381     HRESULT (STDMETHODCALLTYPE *SetProgressValue)(
19382         ITaskbarList3* This,
19383         HWND hwnd,
19384         ULONGLONG ullCompleted,
19385         ULONGLONG ullTotal);
19386 
19387     HRESULT (STDMETHODCALLTYPE *SetProgressState)(
19388         ITaskbarList3* This,
19389         HWND hwnd,
19390         TBPFLAG tbpFlags);
19391 
19392     HRESULT (STDMETHODCALLTYPE *RegisterTab)(
19393         ITaskbarList3* This,
19394         HWND hwndTab,
19395         HWND hwndMDI);
19396 
19397     HRESULT (STDMETHODCALLTYPE *UnregisterTab)(
19398         ITaskbarList3* This,
19399         HWND hwndTab);
19400 
19401     HRESULT (STDMETHODCALLTYPE *SetTabOrder)(
19402         ITaskbarList3* This,
19403         HWND hwndTab,
19404         HWND hwndInsertBefore);
19405 
19406     HRESULT (STDMETHODCALLTYPE *SetTabActive)(
19407         ITaskbarList3* This,
19408         HWND hwndTab,
19409         HWND hwndMDI,
19410         DWORD dwReserved);
19411 
19412     HRESULT (STDMETHODCALLTYPE *ThumbBarAddButtons)(
19413         ITaskbarList3* This,
19414         HWND hwnd,
19415         UINT cButtons,
19416         LPTHUMBBUTTON pButton);
19417 
19418     HRESULT (STDMETHODCALLTYPE *ThumbBarUpdateButtons)(
19419         ITaskbarList3* This,
19420         HWND hwnd,
19421         UINT cButtons,
19422         LPTHUMBBUTTON pButton);
19423 
19424     HRESULT (STDMETHODCALLTYPE *ThumbBarSetImageList)(
19425         ITaskbarList3* This,
19426         HWND hwnd,
19427         HIMAGELIST himl);
19428 
19429     HRESULT (STDMETHODCALLTYPE *SetOverlayIcon)(
19430         ITaskbarList3* This,
19431         HWND hwnd,
19432         HICON hIcon,
19433         LPCWSTR pszDescription);
19434 
19435     HRESULT (STDMETHODCALLTYPE *SetThumbnailTooltip)(
19436         ITaskbarList3* This,
19437         HWND hwnd,
19438         LPCWSTR pszTip);
19439 
19440     HRESULT (STDMETHODCALLTYPE *SetThumbnailClip)(
19441         ITaskbarList3* This,
19442         HWND hwnd,
19443         RECT *prcClip);
19444 
19445     END_INTERFACE
19446 } ITaskbarList3Vtbl;
19447 interface ITaskbarList3 {
19448     CONST_VTBL ITaskbarList3Vtbl* lpVtbl;
19449 };
19450 
19451 #ifdef COBJMACROS
19452 #ifndef WIDL_C_INLINE_WRAPPERS
19453 /*** IUnknown methods ***/
19454 #define ITaskbarList3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19455 #define ITaskbarList3_AddRef(This) (This)->lpVtbl->AddRef(This)
19456 #define ITaskbarList3_Release(This) (This)->lpVtbl->Release(This)
19457 /*** ITaskbarList methods ***/
19458 #define ITaskbarList3_HrInit(This) (This)->lpVtbl->HrInit(This)
19459 #define ITaskbarList3_AddTab(This,hwnd) (This)->lpVtbl->AddTab(This,hwnd)
19460 #define ITaskbarList3_DeleteTab(This,hwnd) (This)->lpVtbl->DeleteTab(This,hwnd)
19461 #define ITaskbarList3_ActivateTab(This,hwnd) (This)->lpVtbl->ActivateTab(This,hwnd)
19462 #define ITaskbarList3_SetActiveAlt(This,hwnd) (This)->lpVtbl->SetActiveAlt(This,hwnd)
19463 /*** ITaskbarList2 methods ***/
19464 #define ITaskbarList3_MarkFullscreenWindow(This,hwnd,fFullscreen) (This)->lpVtbl->MarkFullscreenWindow(This,hwnd,fFullscreen)
19465 /*** ITaskbarList3 methods ***/
19466 #define ITaskbarList3_SetProgressValue(This,hwnd,ullCompleted,ullTotal) (This)->lpVtbl->SetProgressValue(This,hwnd,ullCompleted,ullTotal)
19467 #define ITaskbarList3_SetProgressState(This,hwnd,tbpFlags) (This)->lpVtbl->SetProgressState(This,hwnd,tbpFlags)
19468 #define ITaskbarList3_RegisterTab(This,hwndTab,hwndMDI) (This)->lpVtbl->RegisterTab(This,hwndTab,hwndMDI)
19469 #define ITaskbarList3_UnregisterTab(This,hwndTab) (This)->lpVtbl->UnregisterTab(This,hwndTab)
19470 #define ITaskbarList3_SetTabOrder(This,hwndTab,hwndInsertBefore) (This)->lpVtbl->SetTabOrder(This,hwndTab,hwndInsertBefore)
19471 #define ITaskbarList3_SetTabActive(This,hwndTab,hwndMDI,dwReserved) (This)->lpVtbl->SetTabActive(This,hwndTab,hwndMDI,dwReserved)
19472 #define ITaskbarList3_ThumbBarAddButtons(This,hwnd,cButtons,pButton) (This)->lpVtbl->ThumbBarAddButtons(This,hwnd,cButtons,pButton)
19473 #define ITaskbarList3_ThumbBarUpdateButtons(This,hwnd,cButtons,pButton) (This)->lpVtbl->ThumbBarUpdateButtons(This,hwnd,cButtons,pButton)
19474 #define ITaskbarList3_ThumbBarSetImageList(This,hwnd,himl) (This)->lpVtbl->ThumbBarSetImageList(This,hwnd,himl)
19475 #define ITaskbarList3_SetOverlayIcon(This,hwnd,hIcon,pszDescription) (This)->lpVtbl->SetOverlayIcon(This,hwnd,hIcon,pszDescription)
19476 #define ITaskbarList3_SetThumbnailTooltip(This,hwnd,pszTip) (This)->lpVtbl->SetThumbnailTooltip(This,hwnd,pszTip)
19477 #define ITaskbarList3_SetThumbnailClip(This,hwnd,prcClip) (This)->lpVtbl->SetThumbnailClip(This,hwnd,prcClip)
19478 #else
19479 /*** IUnknown methods ***/
19480 static FORCEINLINE HRESULT ITaskbarList3_QueryInterface(ITaskbarList3* This,REFIID riid,void **ppvObject) {
19481     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19482 }
19483 static FORCEINLINE ULONG ITaskbarList3_AddRef(ITaskbarList3* This) {
19484     return This->lpVtbl->AddRef(This);
19485 }
19486 static FORCEINLINE ULONG ITaskbarList3_Release(ITaskbarList3* This) {
19487     return This->lpVtbl->Release(This);
19488 }
19489 /*** ITaskbarList methods ***/
19490 static FORCEINLINE HRESULT ITaskbarList3_HrInit(ITaskbarList3* This) {
19491     return This->lpVtbl->HrInit(This);
19492 }
19493 static FORCEINLINE HRESULT ITaskbarList3_AddTab(ITaskbarList3* This,HWND hwnd) {
19494     return This->lpVtbl->AddTab(This,hwnd);
19495 }
19496 static FORCEINLINE HRESULT ITaskbarList3_DeleteTab(ITaskbarList3* This,HWND hwnd) {
19497     return This->lpVtbl->DeleteTab(This,hwnd);
19498 }
19499 static FORCEINLINE HRESULT ITaskbarList3_ActivateTab(ITaskbarList3* This,HWND hwnd) {
19500     return This->lpVtbl->ActivateTab(This,hwnd);
19501 }
19502 static FORCEINLINE HRESULT ITaskbarList3_SetActiveAlt(ITaskbarList3* This,HWND hwnd) {
19503     return This->lpVtbl->SetActiveAlt(This,hwnd);
19504 }
19505 /*** ITaskbarList2 methods ***/
19506 static FORCEINLINE HRESULT ITaskbarList3_MarkFullscreenWindow(ITaskbarList3* This,HWND hwnd,WINBOOL fFullscreen) {
19507     return This->lpVtbl->MarkFullscreenWindow(This,hwnd,fFullscreen);
19508 }
19509 /*** ITaskbarList3 methods ***/
19510 static FORCEINLINE HRESULT ITaskbarList3_SetProgressValue(ITaskbarList3* This,HWND hwnd,ULONGLONG ullCompleted,ULONGLONG ullTotal) {
19511     return This->lpVtbl->SetProgressValue(This,hwnd,ullCompleted,ullTotal);
19512 }
19513 static FORCEINLINE HRESULT ITaskbarList3_SetProgressState(ITaskbarList3* This,HWND hwnd,TBPFLAG tbpFlags) {
19514     return This->lpVtbl->SetProgressState(This,hwnd,tbpFlags);
19515 }
19516 static FORCEINLINE HRESULT ITaskbarList3_RegisterTab(ITaskbarList3* This,HWND hwndTab,HWND hwndMDI) {
19517     return This->lpVtbl->RegisterTab(This,hwndTab,hwndMDI);
19518 }
19519 static FORCEINLINE HRESULT ITaskbarList3_UnregisterTab(ITaskbarList3* This,HWND hwndTab) {
19520     return This->lpVtbl->UnregisterTab(This,hwndTab);
19521 }
19522 static FORCEINLINE HRESULT ITaskbarList3_SetTabOrder(ITaskbarList3* This,HWND hwndTab,HWND hwndInsertBefore) {
19523     return This->lpVtbl->SetTabOrder(This,hwndTab,hwndInsertBefore);
19524 }
19525 static FORCEINLINE HRESULT ITaskbarList3_SetTabActive(ITaskbarList3* This,HWND hwndTab,HWND hwndMDI,DWORD dwReserved) {
19526     return This->lpVtbl->SetTabActive(This,hwndTab,hwndMDI,dwReserved);
19527 }
19528 static FORCEINLINE HRESULT ITaskbarList3_ThumbBarAddButtons(ITaskbarList3* This,HWND hwnd,UINT cButtons,LPTHUMBBUTTON pButton) {
19529     return This->lpVtbl->ThumbBarAddButtons(This,hwnd,cButtons,pButton);
19530 }
19531 static FORCEINLINE HRESULT ITaskbarList3_ThumbBarUpdateButtons(ITaskbarList3* This,HWND hwnd,UINT cButtons,LPTHUMBBUTTON pButton) {
19532     return This->lpVtbl->ThumbBarUpdateButtons(This,hwnd,cButtons,pButton);
19533 }
19534 static FORCEINLINE HRESULT ITaskbarList3_ThumbBarSetImageList(ITaskbarList3* This,HWND hwnd,HIMAGELIST himl) {
19535     return This->lpVtbl->ThumbBarSetImageList(This,hwnd,himl);
19536 }
19537 static FORCEINLINE HRESULT ITaskbarList3_SetOverlayIcon(ITaskbarList3* This,HWND hwnd,HICON hIcon,LPCWSTR pszDescription) {
19538     return This->lpVtbl->SetOverlayIcon(This,hwnd,hIcon,pszDescription);
19539 }
19540 static FORCEINLINE HRESULT ITaskbarList3_SetThumbnailTooltip(ITaskbarList3* This,HWND hwnd,LPCWSTR pszTip) {
19541     return This->lpVtbl->SetThumbnailTooltip(This,hwnd,pszTip);
19542 }
19543 static FORCEINLINE HRESULT ITaskbarList3_SetThumbnailClip(ITaskbarList3* This,HWND hwnd,RECT *prcClip) {
19544     return This->lpVtbl->SetThumbnailClip(This,hwnd,prcClip);
19545 }
19546 #endif
19547 #endif
19548 
19549 #endif
19550 
19551 HRESULT STDMETHODCALLTYPE ITaskbarList3_SetProgressValue_Proxy(
19552     ITaskbarList3* This,
19553     HWND hwnd,
19554     ULONGLONG ullCompleted,
19555     ULONGLONG ullTotal);
19556 void __RPC_STUB ITaskbarList3_SetProgressValue_Stub(
19557     IRpcStubBuffer* This,
19558     IRpcChannelBuffer* pRpcChannelBuffer,
19559     PRPC_MESSAGE pRpcMessage,
19560     DWORD* pdwStubPhase);
19561 HRESULT STDMETHODCALLTYPE ITaskbarList3_SetProgressState_Proxy(
19562     ITaskbarList3* This,
19563     HWND hwnd,
19564     TBPFLAG tbpFlags);
19565 void __RPC_STUB ITaskbarList3_SetProgressState_Stub(
19566     IRpcStubBuffer* This,
19567     IRpcChannelBuffer* pRpcChannelBuffer,
19568     PRPC_MESSAGE pRpcMessage,
19569     DWORD* pdwStubPhase);
19570 HRESULT STDMETHODCALLTYPE ITaskbarList3_RegisterTab_Proxy(
19571     ITaskbarList3* This,
19572     HWND hwndTab,
19573     HWND hwndMDI);
19574 void __RPC_STUB ITaskbarList3_RegisterTab_Stub(
19575     IRpcStubBuffer* This,
19576     IRpcChannelBuffer* pRpcChannelBuffer,
19577     PRPC_MESSAGE pRpcMessage,
19578     DWORD* pdwStubPhase);
19579 HRESULT STDMETHODCALLTYPE ITaskbarList3_UnregisterTab_Proxy(
19580     ITaskbarList3* This,
19581     HWND hwndTab);
19582 void __RPC_STUB ITaskbarList3_UnregisterTab_Stub(
19583     IRpcStubBuffer* This,
19584     IRpcChannelBuffer* pRpcChannelBuffer,
19585     PRPC_MESSAGE pRpcMessage,
19586     DWORD* pdwStubPhase);
19587 HRESULT STDMETHODCALLTYPE ITaskbarList3_SetTabOrder_Proxy(
19588     ITaskbarList3* This,
19589     HWND hwndTab,
19590     HWND hwndInsertBefore);
19591 void __RPC_STUB ITaskbarList3_SetTabOrder_Stub(
19592     IRpcStubBuffer* This,
19593     IRpcChannelBuffer* pRpcChannelBuffer,
19594     PRPC_MESSAGE pRpcMessage,
19595     DWORD* pdwStubPhase);
19596 HRESULT STDMETHODCALLTYPE ITaskbarList3_SetTabActive_Proxy(
19597     ITaskbarList3* This,
19598     HWND hwndTab,
19599     HWND hwndMDI,
19600     DWORD dwReserved);
19601 void __RPC_STUB ITaskbarList3_SetTabActive_Stub(
19602     IRpcStubBuffer* This,
19603     IRpcChannelBuffer* pRpcChannelBuffer,
19604     PRPC_MESSAGE pRpcMessage,
19605     DWORD* pdwStubPhase);
19606 HRESULT STDMETHODCALLTYPE ITaskbarList3_ThumbBarAddButtons_Proxy(
19607     ITaskbarList3* This,
19608     HWND hwnd,
19609     UINT cButtons,
19610     LPTHUMBBUTTON pButton);
19611 void __RPC_STUB ITaskbarList3_ThumbBarAddButtons_Stub(
19612     IRpcStubBuffer* This,
19613     IRpcChannelBuffer* pRpcChannelBuffer,
19614     PRPC_MESSAGE pRpcMessage,
19615     DWORD* pdwStubPhase);
19616 HRESULT STDMETHODCALLTYPE ITaskbarList3_ThumbBarUpdateButtons_Proxy(
19617     ITaskbarList3* This,
19618     HWND hwnd,
19619     UINT cButtons,
19620     LPTHUMBBUTTON pButton);
19621 void __RPC_STUB ITaskbarList3_ThumbBarUpdateButtons_Stub(
19622     IRpcStubBuffer* This,
19623     IRpcChannelBuffer* pRpcChannelBuffer,
19624     PRPC_MESSAGE pRpcMessage,
19625     DWORD* pdwStubPhase);
19626 HRESULT STDMETHODCALLTYPE ITaskbarList3_ThumbBarSetImageList_Proxy(
19627     ITaskbarList3* This,
19628     HWND hwnd,
19629     HIMAGELIST himl);
19630 void __RPC_STUB ITaskbarList3_ThumbBarSetImageList_Stub(
19631     IRpcStubBuffer* This,
19632     IRpcChannelBuffer* pRpcChannelBuffer,
19633     PRPC_MESSAGE pRpcMessage,
19634     DWORD* pdwStubPhase);
19635 HRESULT STDMETHODCALLTYPE ITaskbarList3_SetOverlayIcon_Proxy(
19636     ITaskbarList3* This,
19637     HWND hwnd,
19638     HICON hIcon,
19639     LPCWSTR pszDescription);
19640 void __RPC_STUB ITaskbarList3_SetOverlayIcon_Stub(
19641     IRpcStubBuffer* This,
19642     IRpcChannelBuffer* pRpcChannelBuffer,
19643     PRPC_MESSAGE pRpcMessage,
19644     DWORD* pdwStubPhase);
19645 HRESULT STDMETHODCALLTYPE ITaskbarList3_SetThumbnailTooltip_Proxy(
19646     ITaskbarList3* This,
19647     HWND hwnd,
19648     LPCWSTR pszTip);
19649 void __RPC_STUB ITaskbarList3_SetThumbnailTooltip_Stub(
19650     IRpcStubBuffer* This,
19651     IRpcChannelBuffer* pRpcChannelBuffer,
19652     PRPC_MESSAGE pRpcMessage,
19653     DWORD* pdwStubPhase);
19654 HRESULT STDMETHODCALLTYPE ITaskbarList3_SetThumbnailClip_Proxy(
19655     ITaskbarList3* This,
19656     HWND hwnd,
19657     RECT *prcClip);
19658 void __RPC_STUB ITaskbarList3_SetThumbnailClip_Stub(
19659     IRpcStubBuffer* This,
19660     IRpcChannelBuffer* pRpcChannelBuffer,
19661     PRPC_MESSAGE pRpcMessage,
19662     DWORD* pdwStubPhase);
19663 
19664 #endif  /* __ITaskbarList3_INTERFACE_DEFINED__ */
19665 
19666 
19667 /*****************************************************************************
19668  * ITaskbarList4 interface
19669  */
19670 #ifndef __ITaskbarList4_INTERFACE_DEFINED__
19671 #define __ITaskbarList4_INTERFACE_DEFINED__
19672 
19673 typedef enum STPFLAG {
19674     STPF_NONE = 0x0,
19675     STPF_USEAPPTHUMBNAILALWAYS = 0x1,
19676     STPF_USEAPPTHUMBNAILWHENACTIVE = 0x2,
19677     STPF_USEAPPPEEKALWAYS = 0x4,
19678     STPF_USEAPPPEEKWHENACTIVE = 0x8
19679 } STPFLAG;
19680 
19681 DEFINE_ENUM_FLAG_OPERATORS(STPFLAG)
19682 
19683 DEFINE_GUID(IID_ITaskbarList4, 0xc43dc798, 0x95d1, 0x4bea, 0x90,0x30, 0xbb,0x99,0xe2,0x98,0x3a,0x1a);
19684 #if defined(__cplusplus) && !defined(CINTERFACE)
19685 MIDL_INTERFACE("c43dc798-95d1-4bea-9030-bb99e2983a1a")
19686 ITaskbarList4 : public ITaskbarList3
19687 {
19688     virtual HRESULT STDMETHODCALLTYPE SetTabProperties(
19689         HWND hwndTab,
19690         STPFLAG stpFlags) = 0;
19691 
19692 };
19693 #ifdef __CRT_UUID_DECL
19694 __CRT_UUID_DECL(ITaskbarList4, 0xc43dc798, 0x95d1, 0x4bea, 0x90,0x30, 0xbb,0x99,0xe2,0x98,0x3a,0x1a)
19695 #endif
19696 #else
19697 typedef struct ITaskbarList4Vtbl {
19698     BEGIN_INTERFACE
19699 
19700     /*** IUnknown methods ***/
19701     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19702         ITaskbarList4* This,
19703         REFIID riid,
19704         void **ppvObject);
19705 
19706     ULONG (STDMETHODCALLTYPE *AddRef)(
19707         ITaskbarList4* This);
19708 
19709     ULONG (STDMETHODCALLTYPE *Release)(
19710         ITaskbarList4* This);
19711 
19712     /*** ITaskbarList methods ***/
19713     HRESULT (STDMETHODCALLTYPE *HrInit)(
19714         ITaskbarList4* This);
19715 
19716     HRESULT (STDMETHODCALLTYPE *AddTab)(
19717         ITaskbarList4* This,
19718         HWND hwnd);
19719 
19720     HRESULT (STDMETHODCALLTYPE *DeleteTab)(
19721         ITaskbarList4* This,
19722         HWND hwnd);
19723 
19724     HRESULT (STDMETHODCALLTYPE *ActivateTab)(
19725         ITaskbarList4* This,
19726         HWND hwnd);
19727 
19728     HRESULT (STDMETHODCALLTYPE *SetActiveAlt)(
19729         ITaskbarList4* This,
19730         HWND hwnd);
19731 
19732     /*** ITaskbarList2 methods ***/
19733     HRESULT (STDMETHODCALLTYPE *MarkFullscreenWindow)(
19734         ITaskbarList4* This,
19735         HWND hwnd,
19736         WINBOOL fFullscreen);
19737 
19738     /*** ITaskbarList3 methods ***/
19739     HRESULT (STDMETHODCALLTYPE *SetProgressValue)(
19740         ITaskbarList4* This,
19741         HWND hwnd,
19742         ULONGLONG ullCompleted,
19743         ULONGLONG ullTotal);
19744 
19745     HRESULT (STDMETHODCALLTYPE *SetProgressState)(
19746         ITaskbarList4* This,
19747         HWND hwnd,
19748         TBPFLAG tbpFlags);
19749 
19750     HRESULT (STDMETHODCALLTYPE *RegisterTab)(
19751         ITaskbarList4* This,
19752         HWND hwndTab,
19753         HWND hwndMDI);
19754 
19755     HRESULT (STDMETHODCALLTYPE *UnregisterTab)(
19756         ITaskbarList4* This,
19757         HWND hwndTab);
19758 
19759     HRESULT (STDMETHODCALLTYPE *SetTabOrder)(
19760         ITaskbarList4* This,
19761         HWND hwndTab,
19762         HWND hwndInsertBefore);
19763 
19764     HRESULT (STDMETHODCALLTYPE *SetTabActive)(
19765         ITaskbarList4* This,
19766         HWND hwndTab,
19767         HWND hwndMDI,
19768         DWORD dwReserved);
19769 
19770     HRESULT (STDMETHODCALLTYPE *ThumbBarAddButtons)(
19771         ITaskbarList4* This,
19772         HWND hwnd,
19773         UINT cButtons,
19774         LPTHUMBBUTTON pButton);
19775 
19776     HRESULT (STDMETHODCALLTYPE *ThumbBarUpdateButtons)(
19777         ITaskbarList4* This,
19778         HWND hwnd,
19779         UINT cButtons,
19780         LPTHUMBBUTTON pButton);
19781 
19782     HRESULT (STDMETHODCALLTYPE *ThumbBarSetImageList)(
19783         ITaskbarList4* This,
19784         HWND hwnd,
19785         HIMAGELIST himl);
19786 
19787     HRESULT (STDMETHODCALLTYPE *SetOverlayIcon)(
19788         ITaskbarList4* This,
19789         HWND hwnd,
19790         HICON hIcon,
19791         LPCWSTR pszDescription);
19792 
19793     HRESULT (STDMETHODCALLTYPE *SetThumbnailTooltip)(
19794         ITaskbarList4* This,
19795         HWND hwnd,
19796         LPCWSTR pszTip);
19797 
19798     HRESULT (STDMETHODCALLTYPE *SetThumbnailClip)(
19799         ITaskbarList4* This,
19800         HWND hwnd,
19801         RECT *prcClip);
19802 
19803     /*** ITaskbarList4 methods ***/
19804     HRESULT (STDMETHODCALLTYPE *SetTabProperties)(
19805         ITaskbarList4* This,
19806         HWND hwndTab,
19807         STPFLAG stpFlags);
19808 
19809     END_INTERFACE
19810 } ITaskbarList4Vtbl;
19811 interface ITaskbarList4 {
19812     CONST_VTBL ITaskbarList4Vtbl* lpVtbl;
19813 };
19814 
19815 #ifdef COBJMACROS
19816 #ifndef WIDL_C_INLINE_WRAPPERS
19817 /*** IUnknown methods ***/
19818 #define ITaskbarList4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19819 #define ITaskbarList4_AddRef(This) (This)->lpVtbl->AddRef(This)
19820 #define ITaskbarList4_Release(This) (This)->lpVtbl->Release(This)
19821 /*** ITaskbarList methods ***/
19822 #define ITaskbarList4_HrInit(This) (This)->lpVtbl->HrInit(This)
19823 #define ITaskbarList4_AddTab(This,hwnd) (This)->lpVtbl->AddTab(This,hwnd)
19824 #define ITaskbarList4_DeleteTab(This,hwnd) (This)->lpVtbl->DeleteTab(This,hwnd)
19825 #define ITaskbarList4_ActivateTab(This,hwnd) (This)->lpVtbl->ActivateTab(This,hwnd)
19826 #define ITaskbarList4_SetActiveAlt(This,hwnd) (This)->lpVtbl->SetActiveAlt(This,hwnd)
19827 /*** ITaskbarList2 methods ***/
19828 #define ITaskbarList4_MarkFullscreenWindow(This,hwnd,fFullscreen) (This)->lpVtbl->MarkFullscreenWindow(This,hwnd,fFullscreen)
19829 /*** ITaskbarList3 methods ***/
19830 #define ITaskbarList4_SetProgressValue(This,hwnd,ullCompleted,ullTotal) (This)->lpVtbl->SetProgressValue(This,hwnd,ullCompleted,ullTotal)
19831 #define ITaskbarList4_SetProgressState(This,hwnd,tbpFlags) (This)->lpVtbl->SetProgressState(This,hwnd,tbpFlags)
19832 #define ITaskbarList4_RegisterTab(This,hwndTab,hwndMDI) (This)->lpVtbl->RegisterTab(This,hwndTab,hwndMDI)
19833 #define ITaskbarList4_UnregisterTab(This,hwndTab) (This)->lpVtbl->UnregisterTab(This,hwndTab)
19834 #define ITaskbarList4_SetTabOrder(This,hwndTab,hwndInsertBefore) (This)->lpVtbl->SetTabOrder(This,hwndTab,hwndInsertBefore)
19835 #define ITaskbarList4_SetTabActive(This,hwndTab,hwndMDI,dwReserved) (This)->lpVtbl->SetTabActive(This,hwndTab,hwndMDI,dwReserved)
19836 #define ITaskbarList4_ThumbBarAddButtons(This,hwnd,cButtons,pButton) (This)->lpVtbl->ThumbBarAddButtons(This,hwnd,cButtons,pButton)
19837 #define ITaskbarList4_ThumbBarUpdateButtons(This,hwnd,cButtons,pButton) (This)->lpVtbl->ThumbBarUpdateButtons(This,hwnd,cButtons,pButton)
19838 #define ITaskbarList4_ThumbBarSetImageList(This,hwnd,himl) (This)->lpVtbl->ThumbBarSetImageList(This,hwnd,himl)
19839 #define ITaskbarList4_SetOverlayIcon(This,hwnd,hIcon,pszDescription) (This)->lpVtbl->SetOverlayIcon(This,hwnd,hIcon,pszDescription)
19840 #define ITaskbarList4_SetThumbnailTooltip(This,hwnd,pszTip) (This)->lpVtbl->SetThumbnailTooltip(This,hwnd,pszTip)
19841 #define ITaskbarList4_SetThumbnailClip(This,hwnd,prcClip) (This)->lpVtbl->SetThumbnailClip(This,hwnd,prcClip)
19842 /*** ITaskbarList4 methods ***/
19843 #define ITaskbarList4_SetTabProperties(This,hwndTab,stpFlags) (This)->lpVtbl->SetTabProperties(This,hwndTab,stpFlags)
19844 #else
19845 /*** IUnknown methods ***/
19846 static FORCEINLINE HRESULT ITaskbarList4_QueryInterface(ITaskbarList4* This,REFIID riid,void **ppvObject) {
19847     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19848 }
19849 static FORCEINLINE ULONG ITaskbarList4_AddRef(ITaskbarList4* This) {
19850     return This->lpVtbl->AddRef(This);
19851 }
19852 static FORCEINLINE ULONG ITaskbarList4_Release(ITaskbarList4* This) {
19853     return This->lpVtbl->Release(This);
19854 }
19855 /*** ITaskbarList methods ***/
19856 static FORCEINLINE HRESULT ITaskbarList4_HrInit(ITaskbarList4* This) {
19857     return This->lpVtbl->HrInit(This);
19858 }
19859 static FORCEINLINE HRESULT ITaskbarList4_AddTab(ITaskbarList4* This,HWND hwnd) {
19860     return This->lpVtbl->AddTab(This,hwnd);
19861 }
19862 static FORCEINLINE HRESULT ITaskbarList4_DeleteTab(ITaskbarList4* This,HWND hwnd) {
19863     return This->lpVtbl->DeleteTab(This,hwnd);
19864 }
19865 static FORCEINLINE HRESULT ITaskbarList4_ActivateTab(ITaskbarList4* This,HWND hwnd) {
19866     return This->lpVtbl->ActivateTab(This,hwnd);
19867 }
19868 static FORCEINLINE HRESULT ITaskbarList4_SetActiveAlt(ITaskbarList4* This,HWND hwnd) {
19869     return This->lpVtbl->SetActiveAlt(This,hwnd);
19870 }
19871 /*** ITaskbarList2 methods ***/
19872 static FORCEINLINE HRESULT ITaskbarList4_MarkFullscreenWindow(ITaskbarList4* This,HWND hwnd,WINBOOL fFullscreen) {
19873     return This->lpVtbl->MarkFullscreenWindow(This,hwnd,fFullscreen);
19874 }
19875 /*** ITaskbarList3 methods ***/
19876 static FORCEINLINE HRESULT ITaskbarList4_SetProgressValue(ITaskbarList4* This,HWND hwnd,ULONGLONG ullCompleted,ULONGLONG ullTotal) {
19877     return This->lpVtbl->SetProgressValue(This,hwnd,ullCompleted,ullTotal);
19878 }
19879 static FORCEINLINE HRESULT ITaskbarList4_SetProgressState(ITaskbarList4* This,HWND hwnd,TBPFLAG tbpFlags) {
19880     return This->lpVtbl->SetProgressState(This,hwnd,tbpFlags);
19881 }
19882 static FORCEINLINE HRESULT ITaskbarList4_RegisterTab(ITaskbarList4* This,HWND hwndTab,HWND hwndMDI) {
19883     return This->lpVtbl->RegisterTab(This,hwndTab,hwndMDI);
19884 }
19885 static FORCEINLINE HRESULT ITaskbarList4_UnregisterTab(ITaskbarList4* This,HWND hwndTab) {
19886     return This->lpVtbl->UnregisterTab(This,hwndTab);
19887 }
19888 static FORCEINLINE HRESULT ITaskbarList4_SetTabOrder(ITaskbarList4* This,HWND hwndTab,HWND hwndInsertBefore) {
19889     return This->lpVtbl->SetTabOrder(This,hwndTab,hwndInsertBefore);
19890 }
19891 static FORCEINLINE HRESULT ITaskbarList4_SetTabActive(ITaskbarList4* This,HWND hwndTab,HWND hwndMDI,DWORD dwReserved) {
19892     return This->lpVtbl->SetTabActive(This,hwndTab,hwndMDI,dwReserved);
19893 }
19894 static FORCEINLINE HRESULT ITaskbarList4_ThumbBarAddButtons(ITaskbarList4* This,HWND hwnd,UINT cButtons,LPTHUMBBUTTON pButton) {
19895     return This->lpVtbl->ThumbBarAddButtons(This,hwnd,cButtons,pButton);
19896 }
19897 static FORCEINLINE HRESULT ITaskbarList4_ThumbBarUpdateButtons(ITaskbarList4* This,HWND hwnd,UINT cButtons,LPTHUMBBUTTON pButton) {
19898     return This->lpVtbl->ThumbBarUpdateButtons(This,hwnd,cButtons,pButton);
19899 }
19900 static FORCEINLINE HRESULT ITaskbarList4_ThumbBarSetImageList(ITaskbarList4* This,HWND hwnd,HIMAGELIST himl) {
19901     return This->lpVtbl->ThumbBarSetImageList(This,hwnd,himl);
19902 }
19903 static FORCEINLINE HRESULT ITaskbarList4_SetOverlayIcon(ITaskbarList4* This,HWND hwnd,HICON hIcon,LPCWSTR pszDescription) {
19904     return This->lpVtbl->SetOverlayIcon(This,hwnd,hIcon,pszDescription);
19905 }
19906 static FORCEINLINE HRESULT ITaskbarList4_SetThumbnailTooltip(ITaskbarList4* This,HWND hwnd,LPCWSTR pszTip) {
19907     return This->lpVtbl->SetThumbnailTooltip(This,hwnd,pszTip);
19908 }
19909 static FORCEINLINE HRESULT ITaskbarList4_SetThumbnailClip(ITaskbarList4* This,HWND hwnd,RECT *prcClip) {
19910     return This->lpVtbl->SetThumbnailClip(This,hwnd,prcClip);
19911 }
19912 /*** ITaskbarList4 methods ***/
19913 static FORCEINLINE HRESULT ITaskbarList4_SetTabProperties(ITaskbarList4* This,HWND hwndTab,STPFLAG stpFlags) {
19914     return This->lpVtbl->SetTabProperties(This,hwndTab,stpFlags);
19915 }
19916 #endif
19917 #endif
19918 
19919 #endif
19920 
19921 HRESULT STDMETHODCALLTYPE ITaskbarList4_SetTabProperties_Proxy(
19922     ITaskbarList4* This,
19923     HWND hwndTab,
19924     STPFLAG stpFlags);
19925 void __RPC_STUB ITaskbarList4_SetTabProperties_Stub(
19926     IRpcStubBuffer* This,
19927     IRpcChannelBuffer* pRpcChannelBuffer,
19928     PRPC_MESSAGE pRpcMessage,
19929     DWORD* pdwStubPhase);
19930 
19931 #endif  /* __ITaskbarList4_INTERFACE_DEFINED__ */
19932 
19933 
19934 /*****************************************************************************
19935  * IStartMenuPinnedList interface
19936  */
19937 #ifndef __IStartMenuPinnedList_INTERFACE_DEFINED__
19938 #define __IStartMenuPinnedList_INTERFACE_DEFINED__
19939 
19940 DEFINE_GUID(IID_IStartMenuPinnedList, 0x4cd19ada, 0x25a5, 0x4a32, 0xb3,0xb7, 0x34,0x7b,0xee,0x5b,0xe3,0x6b);
19941 #if defined(__cplusplus) && !defined(CINTERFACE)
19942 MIDL_INTERFACE("4cd19ada-25a5-4a32-b3b7-347bee5be36b")
19943 IStartMenuPinnedList : public IUnknown
19944 {
19945     virtual HRESULT STDMETHODCALLTYPE RemoveFromList(
19946         IShellItem *pitem) = 0;
19947 
19948 };
19949 #ifdef __CRT_UUID_DECL
19950 __CRT_UUID_DECL(IStartMenuPinnedList, 0x4cd19ada, 0x25a5, 0x4a32, 0xb3,0xb7, 0x34,0x7b,0xee,0x5b,0xe3,0x6b)
19951 #endif
19952 #else
19953 typedef struct IStartMenuPinnedListVtbl {
19954     BEGIN_INTERFACE
19955 
19956     /*** IUnknown methods ***/
19957     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19958         IStartMenuPinnedList* This,
19959         REFIID riid,
19960         void **ppvObject);
19961 
19962     ULONG (STDMETHODCALLTYPE *AddRef)(
19963         IStartMenuPinnedList* This);
19964 
19965     ULONG (STDMETHODCALLTYPE *Release)(
19966         IStartMenuPinnedList* This);
19967 
19968     /*** IStartMenuPinnedList methods ***/
19969     HRESULT (STDMETHODCALLTYPE *RemoveFromList)(
19970         IStartMenuPinnedList* This,
19971         IShellItem *pitem);
19972 
19973     END_INTERFACE
19974 } IStartMenuPinnedListVtbl;
19975 interface IStartMenuPinnedList {
19976     CONST_VTBL IStartMenuPinnedListVtbl* lpVtbl;
19977 };
19978 
19979 #ifdef COBJMACROS
19980 #ifndef WIDL_C_INLINE_WRAPPERS
19981 /*** IUnknown methods ***/
19982 #define IStartMenuPinnedList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19983 #define IStartMenuPinnedList_AddRef(This) (This)->lpVtbl->AddRef(This)
19984 #define IStartMenuPinnedList_Release(This) (This)->lpVtbl->Release(This)
19985 /*** IStartMenuPinnedList methods ***/
19986 #define IStartMenuPinnedList_RemoveFromList(This,pitem) (This)->lpVtbl->RemoveFromList(This,pitem)
19987 #else
19988 /*** IUnknown methods ***/
19989 static FORCEINLINE HRESULT IStartMenuPinnedList_QueryInterface(IStartMenuPinnedList* This,REFIID riid,void **ppvObject) {
19990     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19991 }
19992 static FORCEINLINE ULONG IStartMenuPinnedList_AddRef(IStartMenuPinnedList* This) {
19993     return This->lpVtbl->AddRef(This);
19994 }
19995 static FORCEINLINE ULONG IStartMenuPinnedList_Release(IStartMenuPinnedList* This) {
19996     return This->lpVtbl->Release(This);
19997 }
19998 /*** IStartMenuPinnedList methods ***/
19999 static FORCEINLINE HRESULT IStartMenuPinnedList_RemoveFromList(IStartMenuPinnedList* This,IShellItem *pitem) {
20000     return This->lpVtbl->RemoveFromList(This,pitem);
20001 }
20002 #endif
20003 #endif
20004 
20005 #endif
20006 
20007 HRESULT STDMETHODCALLTYPE IStartMenuPinnedList_RemoveFromList_Proxy(
20008     IStartMenuPinnedList* This,
20009     IShellItem *pitem);
20010 void __RPC_STUB IStartMenuPinnedList_RemoveFromList_Stub(
20011     IRpcStubBuffer* This,
20012     IRpcChannelBuffer* pRpcChannelBuffer,
20013     PRPC_MESSAGE pRpcMessage,
20014     DWORD* pdwStubPhase);
20015 
20016 #endif  /* __IStartMenuPinnedList_INTERFACE_DEFINED__ */
20017 
20018 
20019 /*****************************************************************************
20020  * ICDBurn interface
20021  */
20022 #ifndef __ICDBurn_INTERFACE_DEFINED__
20023 #define __ICDBurn_INTERFACE_DEFINED__
20024 
20025 DEFINE_GUID(IID_ICDBurn, 0x3d73a659, 0xe5d0, 0x4d42, 0xaf,0xc0, 0x51,0x21,0xba,0x42,0x5c,0x8d);
20026 #if defined(__cplusplus) && !defined(CINTERFACE)
20027 MIDL_INTERFACE("3d73a659-e5d0-4d42-afc0-5121ba425c8d")
20028 ICDBurn : public IUnknown
20029 {
20030     virtual HRESULT STDMETHODCALLTYPE GetRecorderDriveLetter(
20031         LPWSTR pszDrive,
20032         UINT cch) = 0;
20033 
20034     virtual HRESULT STDMETHODCALLTYPE Burn(
20035         HWND hwnd) = 0;
20036 
20037     virtual HRESULT STDMETHODCALLTYPE HasRecordableDrive(
20038         WINBOOL *pfHasRecorder) = 0;
20039 
20040 };
20041 #ifdef __CRT_UUID_DECL
20042 __CRT_UUID_DECL(ICDBurn, 0x3d73a659, 0xe5d0, 0x4d42, 0xaf,0xc0, 0x51,0x21,0xba,0x42,0x5c,0x8d)
20043 #endif
20044 #else
20045 typedef struct ICDBurnVtbl {
20046     BEGIN_INTERFACE
20047 
20048     /*** IUnknown methods ***/
20049     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20050         ICDBurn* This,
20051         REFIID riid,
20052         void **ppvObject);
20053 
20054     ULONG (STDMETHODCALLTYPE *AddRef)(
20055         ICDBurn* This);
20056 
20057     ULONG (STDMETHODCALLTYPE *Release)(
20058         ICDBurn* This);
20059 
20060     /*** ICDBurn methods ***/
20061     HRESULT (STDMETHODCALLTYPE *GetRecorderDriveLetter)(
20062         ICDBurn* This,
20063         LPWSTR pszDrive,
20064         UINT cch);
20065 
20066     HRESULT (STDMETHODCALLTYPE *Burn)(
20067         ICDBurn* This,
20068         HWND hwnd);
20069 
20070     HRESULT (STDMETHODCALLTYPE *HasRecordableDrive)(
20071         ICDBurn* This,
20072         WINBOOL *pfHasRecorder);
20073 
20074     END_INTERFACE
20075 } ICDBurnVtbl;
20076 interface ICDBurn {
20077     CONST_VTBL ICDBurnVtbl* lpVtbl;
20078 };
20079 
20080 #ifdef COBJMACROS
20081 #ifndef WIDL_C_INLINE_WRAPPERS
20082 /*** IUnknown methods ***/
20083 #define ICDBurn_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20084 #define ICDBurn_AddRef(This) (This)->lpVtbl->AddRef(This)
20085 #define ICDBurn_Release(This) (This)->lpVtbl->Release(This)
20086 /*** ICDBurn methods ***/
20087 #define ICDBurn_GetRecorderDriveLetter(This,pszDrive,cch) (This)->lpVtbl->GetRecorderDriveLetter(This,pszDrive,cch)
20088 #define ICDBurn_Burn(This,hwnd) (This)->lpVtbl->Burn(This,hwnd)
20089 #define ICDBurn_HasRecordableDrive(This,pfHasRecorder) (This)->lpVtbl->HasRecordableDrive(This,pfHasRecorder)
20090 #else
20091 /*** IUnknown methods ***/
20092 static FORCEINLINE HRESULT ICDBurn_QueryInterface(ICDBurn* This,REFIID riid,void **ppvObject) {
20093     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20094 }
20095 static FORCEINLINE ULONG ICDBurn_AddRef(ICDBurn* This) {
20096     return This->lpVtbl->AddRef(This);
20097 }
20098 static FORCEINLINE ULONG ICDBurn_Release(ICDBurn* This) {
20099     return This->lpVtbl->Release(This);
20100 }
20101 /*** ICDBurn methods ***/
20102 static FORCEINLINE HRESULT ICDBurn_GetRecorderDriveLetter(ICDBurn* This,LPWSTR pszDrive,UINT cch) {
20103     return This->lpVtbl->GetRecorderDriveLetter(This,pszDrive,cch);
20104 }
20105 static FORCEINLINE HRESULT ICDBurn_Burn(ICDBurn* This,HWND hwnd) {
20106     return This->lpVtbl->Burn(This,hwnd);
20107 }
20108 static FORCEINLINE HRESULT ICDBurn_HasRecordableDrive(ICDBurn* This,WINBOOL *pfHasRecorder) {
20109     return This->lpVtbl->HasRecordableDrive(This,pfHasRecorder);
20110 }
20111 #endif
20112 #endif
20113 
20114 #endif
20115 
20116 HRESULT STDMETHODCALLTYPE ICDBurn_GetRecorderDriveLetter_Proxy(
20117     ICDBurn* This,
20118     LPWSTR pszDrive,
20119     UINT cch);
20120 void __RPC_STUB ICDBurn_GetRecorderDriveLetter_Stub(
20121     IRpcStubBuffer* This,
20122     IRpcChannelBuffer* pRpcChannelBuffer,
20123     PRPC_MESSAGE pRpcMessage,
20124     DWORD* pdwStubPhase);
20125 HRESULT STDMETHODCALLTYPE ICDBurn_Burn_Proxy(
20126     ICDBurn* This,
20127     HWND hwnd);
20128 void __RPC_STUB ICDBurn_Burn_Stub(
20129     IRpcStubBuffer* This,
20130     IRpcChannelBuffer* pRpcChannelBuffer,
20131     PRPC_MESSAGE pRpcMessage,
20132     DWORD* pdwStubPhase);
20133 HRESULT STDMETHODCALLTYPE ICDBurn_HasRecordableDrive_Proxy(
20134     ICDBurn* This,
20135     WINBOOL *pfHasRecorder);
20136 void __RPC_STUB ICDBurn_HasRecordableDrive_Stub(
20137     IRpcStubBuffer* This,
20138     IRpcChannelBuffer* pRpcChannelBuffer,
20139     PRPC_MESSAGE pRpcMessage,
20140     DWORD* pdwStubPhase);
20141 
20142 #endif  /* __ICDBurn_INTERFACE_DEFINED__ */
20143 
20144 
20145 #define IDD_WIZEXTN_FIRST 0x5000
20146 #define IDD_WIZEXTN_LAST 0x5100
20147 
20148 /*****************************************************************************
20149  * IWizardSite interface
20150  */
20151 #ifndef __IWizardSite_INTERFACE_DEFINED__
20152 #define __IWizardSite_INTERFACE_DEFINED__
20153 
20154 DEFINE_GUID(IID_IWizardSite, 0x88960f5b, 0x422f, 0x4e7b, 0x80,0x13, 0x73,0x41,0x53,0x81,0xc3,0xc3);
20155 #if defined(__cplusplus) && !defined(CINTERFACE)
20156 MIDL_INTERFACE("88960f5b-422f-4e7b-8013-73415381c3c3")
20157 IWizardSite : public IUnknown
20158 {
20159     virtual HRESULT STDMETHODCALLTYPE GetPreviousPage(
20160         HPROPSHEETPAGE *phpage) = 0;
20161 
20162     virtual HRESULT STDMETHODCALLTYPE GetNextPage(
20163         HPROPSHEETPAGE *phpage) = 0;
20164 
20165     virtual HRESULT STDMETHODCALLTYPE GetCancelledPage(
20166         HPROPSHEETPAGE *phpage) = 0;
20167 
20168 };
20169 #ifdef __CRT_UUID_DECL
20170 __CRT_UUID_DECL(IWizardSite, 0x88960f5b, 0x422f, 0x4e7b, 0x80,0x13, 0x73,0x41,0x53,0x81,0xc3,0xc3)
20171 #endif
20172 #else
20173 typedef struct IWizardSiteVtbl {
20174     BEGIN_INTERFACE
20175 
20176     /*** IUnknown methods ***/
20177     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20178         IWizardSite* This,
20179         REFIID riid,
20180         void **ppvObject);
20181 
20182     ULONG (STDMETHODCALLTYPE *AddRef)(
20183         IWizardSite* This);
20184 
20185     ULONG (STDMETHODCALLTYPE *Release)(
20186         IWizardSite* This);
20187 
20188     /*** IWizardSite methods ***/
20189     HRESULT (STDMETHODCALLTYPE *GetPreviousPage)(
20190         IWizardSite* This,
20191         HPROPSHEETPAGE *phpage);
20192 
20193     HRESULT (STDMETHODCALLTYPE *GetNextPage)(
20194         IWizardSite* This,
20195         HPROPSHEETPAGE *phpage);
20196 
20197     HRESULT (STDMETHODCALLTYPE *GetCancelledPage)(
20198         IWizardSite* This,
20199         HPROPSHEETPAGE *phpage);
20200 
20201     END_INTERFACE
20202 } IWizardSiteVtbl;
20203 interface IWizardSite {
20204     CONST_VTBL IWizardSiteVtbl* lpVtbl;
20205 };
20206 
20207 #ifdef COBJMACROS
20208 #ifndef WIDL_C_INLINE_WRAPPERS
20209 /*** IUnknown methods ***/
20210 #define IWizardSite_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20211 #define IWizardSite_AddRef(This) (This)->lpVtbl->AddRef(This)
20212 #define IWizardSite_Release(This) (This)->lpVtbl->Release(This)
20213 /*** IWizardSite methods ***/
20214 #define IWizardSite_GetPreviousPage(This,phpage) (This)->lpVtbl->GetPreviousPage(This,phpage)
20215 #define IWizardSite_GetNextPage(This,phpage) (This)->lpVtbl->GetNextPage(This,phpage)
20216 #define IWizardSite_GetCancelledPage(This,phpage) (This)->lpVtbl->GetCancelledPage(This,phpage)
20217 #else
20218 /*** IUnknown methods ***/
20219 static FORCEINLINE HRESULT IWizardSite_QueryInterface(IWizardSite* This,REFIID riid,void **ppvObject) {
20220     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20221 }
20222 static FORCEINLINE ULONG IWizardSite_AddRef(IWizardSite* This) {
20223     return This->lpVtbl->AddRef(This);
20224 }
20225 static FORCEINLINE ULONG IWizardSite_Release(IWizardSite* This) {
20226     return This->lpVtbl->Release(This);
20227 }
20228 /*** IWizardSite methods ***/
20229 static FORCEINLINE HRESULT IWizardSite_GetPreviousPage(IWizardSite* This,HPROPSHEETPAGE *phpage) {
20230     return This->lpVtbl->GetPreviousPage(This,phpage);
20231 }
20232 static FORCEINLINE HRESULT IWizardSite_GetNextPage(IWizardSite* This,HPROPSHEETPAGE *phpage) {
20233     return This->lpVtbl->GetNextPage(This,phpage);
20234 }
20235 static FORCEINLINE HRESULT IWizardSite_GetCancelledPage(IWizardSite* This,HPROPSHEETPAGE *phpage) {
20236     return This->lpVtbl->GetCancelledPage(This,phpage);
20237 }
20238 #endif
20239 #endif
20240 
20241 #endif
20242 
20243 HRESULT STDMETHODCALLTYPE IWizardSite_GetPreviousPage_Proxy(
20244     IWizardSite* This,
20245     HPROPSHEETPAGE *phpage);
20246 void __RPC_STUB IWizardSite_GetPreviousPage_Stub(
20247     IRpcStubBuffer* This,
20248     IRpcChannelBuffer* pRpcChannelBuffer,
20249     PRPC_MESSAGE pRpcMessage,
20250     DWORD* pdwStubPhase);
20251 HRESULT STDMETHODCALLTYPE IWizardSite_GetNextPage_Proxy(
20252     IWizardSite* This,
20253     HPROPSHEETPAGE *phpage);
20254 void __RPC_STUB IWizardSite_GetNextPage_Stub(
20255     IRpcStubBuffer* This,
20256     IRpcChannelBuffer* pRpcChannelBuffer,
20257     PRPC_MESSAGE pRpcMessage,
20258     DWORD* pdwStubPhase);
20259 HRESULT STDMETHODCALLTYPE IWizardSite_GetCancelledPage_Proxy(
20260     IWizardSite* This,
20261     HPROPSHEETPAGE *phpage);
20262 void __RPC_STUB IWizardSite_GetCancelledPage_Stub(
20263     IRpcStubBuffer* This,
20264     IRpcChannelBuffer* pRpcChannelBuffer,
20265     PRPC_MESSAGE pRpcMessage,
20266     DWORD* pdwStubPhase);
20267 
20268 #endif  /* __IWizardSite_INTERFACE_DEFINED__ */
20269 
20270 
20271 #define SID_WizardSite IID_IWizardSite
20272 
20273 /*****************************************************************************
20274  * IWizardExtension interface
20275  */
20276 #ifndef __IWizardExtension_INTERFACE_DEFINED__
20277 #define __IWizardExtension_INTERFACE_DEFINED__
20278 
20279 DEFINE_GUID(IID_IWizardExtension, 0xc02ea696, 0x86cc, 0x491e, 0x9b,0x23, 0x74,0x39,0x4a,0x04,0x44,0xa8);
20280 #if defined(__cplusplus) && !defined(CINTERFACE)
20281 MIDL_INTERFACE("c02ea696-86cc-491e-9b23-74394a0444a8")
20282 IWizardExtension : public IUnknown
20283 {
20284     virtual HRESULT STDMETHODCALLTYPE AddPages(
20285         HPROPSHEETPAGE *aPages,
20286         UINT cPages,
20287         UINT *pnPagesAdded) = 0;
20288 
20289     virtual HRESULT STDMETHODCALLTYPE GetFirstPage(
20290         HPROPSHEETPAGE *phpage) = 0;
20291 
20292     virtual HRESULT STDMETHODCALLTYPE GetLastPage(
20293         HPROPSHEETPAGE *phpage) = 0;
20294 
20295 };
20296 #ifdef __CRT_UUID_DECL
20297 __CRT_UUID_DECL(IWizardExtension, 0xc02ea696, 0x86cc, 0x491e, 0x9b,0x23, 0x74,0x39,0x4a,0x04,0x44,0xa8)
20298 #endif
20299 #else
20300 typedef struct IWizardExtensionVtbl {
20301     BEGIN_INTERFACE
20302 
20303     /*** IUnknown methods ***/
20304     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20305         IWizardExtension* This,
20306         REFIID riid,
20307         void **ppvObject);
20308 
20309     ULONG (STDMETHODCALLTYPE *AddRef)(
20310         IWizardExtension* This);
20311 
20312     ULONG (STDMETHODCALLTYPE *Release)(
20313         IWizardExtension* This);
20314 
20315     /*** IWizardExtension methods ***/
20316     HRESULT (STDMETHODCALLTYPE *AddPages)(
20317         IWizardExtension* This,
20318         HPROPSHEETPAGE *aPages,
20319         UINT cPages,
20320         UINT *pnPagesAdded);
20321 
20322     HRESULT (STDMETHODCALLTYPE *GetFirstPage)(
20323         IWizardExtension* This,
20324         HPROPSHEETPAGE *phpage);
20325 
20326     HRESULT (STDMETHODCALLTYPE *GetLastPage)(
20327         IWizardExtension* This,
20328         HPROPSHEETPAGE *phpage);
20329 
20330     END_INTERFACE
20331 } IWizardExtensionVtbl;
20332 interface IWizardExtension {
20333     CONST_VTBL IWizardExtensionVtbl* lpVtbl;
20334 };
20335 
20336 #ifdef COBJMACROS
20337 #ifndef WIDL_C_INLINE_WRAPPERS
20338 /*** IUnknown methods ***/
20339 #define IWizardExtension_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20340 #define IWizardExtension_AddRef(This) (This)->lpVtbl->AddRef(This)
20341 #define IWizardExtension_Release(This) (This)->lpVtbl->Release(This)
20342 /*** IWizardExtension methods ***/
20343 #define IWizardExtension_AddPages(This,aPages,cPages,pnPagesAdded) (This)->lpVtbl->AddPages(This,aPages,cPages,pnPagesAdded)
20344 #define IWizardExtension_GetFirstPage(This,phpage) (This)->lpVtbl->GetFirstPage(This,phpage)
20345 #define IWizardExtension_GetLastPage(This,phpage) (This)->lpVtbl->GetLastPage(This,phpage)
20346 #else
20347 /*** IUnknown methods ***/
20348 static FORCEINLINE HRESULT IWizardExtension_QueryInterface(IWizardExtension* This,REFIID riid,void **ppvObject) {
20349     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20350 }
20351 static FORCEINLINE ULONG IWizardExtension_AddRef(IWizardExtension* This) {
20352     return This->lpVtbl->AddRef(This);
20353 }
20354 static FORCEINLINE ULONG IWizardExtension_Release(IWizardExtension* This) {
20355     return This->lpVtbl->Release(This);
20356 }
20357 /*** IWizardExtension methods ***/
20358 static FORCEINLINE HRESULT IWizardExtension_AddPages(IWizardExtension* This,HPROPSHEETPAGE *aPages,UINT cPages,UINT *pnPagesAdded) {
20359     return This->lpVtbl->AddPages(This,aPages,cPages,pnPagesAdded);
20360 }
20361 static FORCEINLINE HRESULT IWizardExtension_GetFirstPage(IWizardExtension* This,HPROPSHEETPAGE *phpage) {
20362     return This->lpVtbl->GetFirstPage(This,phpage);
20363 }
20364 static FORCEINLINE HRESULT IWizardExtension_GetLastPage(IWizardExtension* This,HPROPSHEETPAGE *phpage) {
20365     return This->lpVtbl->GetLastPage(This,phpage);
20366 }
20367 #endif
20368 #endif
20369 
20370 #endif
20371 
20372 HRESULT STDMETHODCALLTYPE IWizardExtension_AddPages_Proxy(
20373     IWizardExtension* This,
20374     HPROPSHEETPAGE *aPages,
20375     UINT cPages,
20376     UINT *pnPagesAdded);
20377 void __RPC_STUB IWizardExtension_AddPages_Stub(
20378     IRpcStubBuffer* This,
20379     IRpcChannelBuffer* pRpcChannelBuffer,
20380     PRPC_MESSAGE pRpcMessage,
20381     DWORD* pdwStubPhase);
20382 HRESULT STDMETHODCALLTYPE IWizardExtension_GetFirstPage_Proxy(
20383     IWizardExtension* This,
20384     HPROPSHEETPAGE *phpage);
20385 void __RPC_STUB IWizardExtension_GetFirstPage_Stub(
20386     IRpcStubBuffer* This,
20387     IRpcChannelBuffer* pRpcChannelBuffer,
20388     PRPC_MESSAGE pRpcMessage,
20389     DWORD* pdwStubPhase);
20390 HRESULT STDMETHODCALLTYPE IWizardExtension_GetLastPage_Proxy(
20391     IWizardExtension* This,
20392     HPROPSHEETPAGE *phpage);
20393 void __RPC_STUB IWizardExtension_GetLastPage_Stub(
20394     IRpcStubBuffer* This,
20395     IRpcChannelBuffer* pRpcChannelBuffer,
20396     PRPC_MESSAGE pRpcMessage,
20397     DWORD* pdwStubPhase);
20398 
20399 #endif  /* __IWizardExtension_INTERFACE_DEFINED__ */
20400 
20401 
20402 /*****************************************************************************
20403  * IWebWizardExtension interface
20404  */
20405 #ifndef __IWebWizardExtension_INTERFACE_DEFINED__
20406 #define __IWebWizardExtension_INTERFACE_DEFINED__
20407 
20408 DEFINE_GUID(IID_IWebWizardExtension, 0x0e6b3f66, 0x98d1, 0x48c0, 0xa2,0x22, 0xfb,0xde,0x74,0xe2,0xfb,0xc5);
20409 #if defined(__cplusplus) && !defined(CINTERFACE)
20410 MIDL_INTERFACE("0e6b3f66-98d1-48c0-a222-fbde74e2fbc5")
20411 IWebWizardExtension : public IWizardExtension
20412 {
20413     virtual HRESULT STDMETHODCALLTYPE SetInitialURL(
20414         LPCWSTR pszURL) = 0;
20415 
20416     virtual HRESULT STDMETHODCALLTYPE SetErrorURL(
20417         LPCWSTR pszErrorURL) = 0;
20418 
20419 };
20420 #ifdef __CRT_UUID_DECL
20421 __CRT_UUID_DECL(IWebWizardExtension, 0x0e6b3f66, 0x98d1, 0x48c0, 0xa2,0x22, 0xfb,0xde,0x74,0xe2,0xfb,0xc5)
20422 #endif
20423 #else
20424 typedef struct IWebWizardExtensionVtbl {
20425     BEGIN_INTERFACE
20426 
20427     /*** IUnknown methods ***/
20428     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20429         IWebWizardExtension* This,
20430         REFIID riid,
20431         void **ppvObject);
20432 
20433     ULONG (STDMETHODCALLTYPE *AddRef)(
20434         IWebWizardExtension* This);
20435 
20436     ULONG (STDMETHODCALLTYPE *Release)(
20437         IWebWizardExtension* This);
20438 
20439     /*** IWizardExtension methods ***/
20440     HRESULT (STDMETHODCALLTYPE *AddPages)(
20441         IWebWizardExtension* This,
20442         HPROPSHEETPAGE *aPages,
20443         UINT cPages,
20444         UINT *pnPagesAdded);
20445 
20446     HRESULT (STDMETHODCALLTYPE *GetFirstPage)(
20447         IWebWizardExtension* This,
20448         HPROPSHEETPAGE *phpage);
20449 
20450     HRESULT (STDMETHODCALLTYPE *GetLastPage)(
20451         IWebWizardExtension* This,
20452         HPROPSHEETPAGE *phpage);
20453 
20454     /*** IWebWizardExtension methods ***/
20455     HRESULT (STDMETHODCALLTYPE *SetInitialURL)(
20456         IWebWizardExtension* This,
20457         LPCWSTR pszURL);
20458 
20459     HRESULT (STDMETHODCALLTYPE *SetErrorURL)(
20460         IWebWizardExtension* This,
20461         LPCWSTR pszErrorURL);
20462 
20463     END_INTERFACE
20464 } IWebWizardExtensionVtbl;
20465 interface IWebWizardExtension {
20466     CONST_VTBL IWebWizardExtensionVtbl* lpVtbl;
20467 };
20468 
20469 #ifdef COBJMACROS
20470 #ifndef WIDL_C_INLINE_WRAPPERS
20471 /*** IUnknown methods ***/
20472 #define IWebWizardExtension_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20473 #define IWebWizardExtension_AddRef(This) (This)->lpVtbl->AddRef(This)
20474 #define IWebWizardExtension_Release(This) (This)->lpVtbl->Release(This)
20475 /*** IWizardExtension methods ***/
20476 #define IWebWizardExtension_AddPages(This,aPages,cPages,pnPagesAdded) (This)->lpVtbl->AddPages(This,aPages,cPages,pnPagesAdded)
20477 #define IWebWizardExtension_GetFirstPage(This,phpage) (This)->lpVtbl->GetFirstPage(This,phpage)
20478 #define IWebWizardExtension_GetLastPage(This,phpage) (This)->lpVtbl->GetLastPage(This,phpage)
20479 /*** IWebWizardExtension methods ***/
20480 #define IWebWizardExtension_SetInitialURL(This,pszURL) (This)->lpVtbl->SetInitialURL(This,pszURL)
20481 #define IWebWizardExtension_SetErrorURL(This,pszErrorURL) (This)->lpVtbl->SetErrorURL(This,pszErrorURL)
20482 #else
20483 /*** IUnknown methods ***/
20484 static FORCEINLINE HRESULT IWebWizardExtension_QueryInterface(IWebWizardExtension* This,REFIID riid,void **ppvObject) {
20485     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20486 }
20487 static FORCEINLINE ULONG IWebWizardExtension_AddRef(IWebWizardExtension* This) {
20488     return This->lpVtbl->AddRef(This);
20489 }
20490 static FORCEINLINE ULONG IWebWizardExtension_Release(IWebWizardExtension* This) {
20491     return This->lpVtbl->Release(This);
20492 }
20493 /*** IWizardExtension methods ***/
20494 static FORCEINLINE HRESULT IWebWizardExtension_AddPages(IWebWizardExtension* This,HPROPSHEETPAGE *aPages,UINT cPages,UINT *pnPagesAdded) {
20495     return This->lpVtbl->AddPages(This,aPages,cPages,pnPagesAdded);
20496 }
20497 static FORCEINLINE HRESULT IWebWizardExtension_GetFirstPage(IWebWizardExtension* This,HPROPSHEETPAGE *phpage) {
20498     return This->lpVtbl->GetFirstPage(This,phpage);
20499 }
20500 static FORCEINLINE HRESULT IWebWizardExtension_GetLastPage(IWebWizardExtension* This,HPROPSHEETPAGE *phpage) {
20501     return This->lpVtbl->GetLastPage(This,phpage);
20502 }
20503 /*** IWebWizardExtension methods ***/
20504 static FORCEINLINE HRESULT IWebWizardExtension_SetInitialURL(IWebWizardExtension* This,LPCWSTR pszURL) {
20505     return This->lpVtbl->SetInitialURL(This,pszURL);
20506 }
20507 static FORCEINLINE HRESULT IWebWizardExtension_SetErrorURL(IWebWizardExtension* This,LPCWSTR pszErrorURL) {
20508     return This->lpVtbl->SetErrorURL(This,pszErrorURL);
20509 }
20510 #endif
20511 #endif
20512 
20513 #endif
20514 
20515 HRESULT STDMETHODCALLTYPE IWebWizardExtension_SetInitialURL_Proxy(
20516     IWebWizardExtension* This,
20517     LPCWSTR pszURL);
20518 void __RPC_STUB IWebWizardExtension_SetInitialURL_Stub(
20519     IRpcStubBuffer* This,
20520     IRpcChannelBuffer* pRpcChannelBuffer,
20521     PRPC_MESSAGE pRpcMessage,
20522     DWORD* pdwStubPhase);
20523 HRESULT STDMETHODCALLTYPE IWebWizardExtension_SetErrorURL_Proxy(
20524     IWebWizardExtension* This,
20525     LPCWSTR pszErrorURL);
20526 void __RPC_STUB IWebWizardExtension_SetErrorURL_Stub(
20527     IRpcStubBuffer* This,
20528     IRpcChannelBuffer* pRpcChannelBuffer,
20529     PRPC_MESSAGE pRpcMessage,
20530     DWORD* pdwStubPhase);
20531 
20532 #endif  /* __IWebWizardExtension_INTERFACE_DEFINED__ */
20533 
20534 
20535 #define SID_WebWizardHost IID_IWebWizardExtension
20536 
20537 #define SHPWHF_NORECOMPRESS 0x00000001
20538 #define SHPWHF_NONETPLACECREATE 0x00000002
20539 #define SHPWHF_NOFILESELECTOR 0x00000004
20540 #define SHPWHF_USEMRU 0x00000008
20541 #if NTDDI_VERSION >= NTDDI_VISTA
20542 #define SHPWHF_ANYLOCATION 0x00000100
20543 #endif
20544 #define SHPWHF_VALIDATEVIAWEBFOLDERS 0x00010000
20545 
20546 #ifndef __IXMLDOMDocument_FWD_DEFINED__
20547 #define __IXMLDOMDocument_FWD_DEFINED__
20548 typedef interface IXMLDOMDocument IXMLDOMDocument;
20549 #endif
20550 
20551 
20552 /*****************************************************************************
20553  * IPublishingWizard interface
20554  */
20555 #ifndef __IPublishingWizard_INTERFACE_DEFINED__
20556 #define __IPublishingWizard_INTERFACE_DEFINED__
20557 
20558 DEFINE_GUID(IID_IPublishingWizard, 0xaa9198bb, 0xccec, 0x472d, 0xbe,0xed, 0x19,0xa4,0xf6,0x73,0x3f,0x7a);
20559 #if defined(__cplusplus) && !defined(CINTERFACE)
20560 MIDL_INTERFACE("aa9198bb-ccec-472d-beed-19a4f6733f7a")
20561 IPublishingWizard : public IWizardExtension
20562 {
20563     virtual HRESULT STDMETHODCALLTYPE Initialize(
20564         IDataObject *pdo,
20565         DWORD dwOptions,
20566         LPCWSTR pszServiceScope) = 0;
20567 
20568     virtual HRESULT STDMETHODCALLTYPE GetTransferManifest(
20569         HRESULT *phrFromTransfer,
20570         IXMLDOMDocument **pdocManifest) = 0;
20571 
20572 };
20573 #ifdef __CRT_UUID_DECL
20574 __CRT_UUID_DECL(IPublishingWizard, 0xaa9198bb, 0xccec, 0x472d, 0xbe,0xed, 0x19,0xa4,0xf6,0x73,0x3f,0x7a)
20575 #endif
20576 #else
20577 typedef struct IPublishingWizardVtbl {
20578     BEGIN_INTERFACE
20579 
20580     /*** IUnknown methods ***/
20581     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20582         IPublishingWizard* This,
20583         REFIID riid,
20584         void **ppvObject);
20585 
20586     ULONG (STDMETHODCALLTYPE *AddRef)(
20587         IPublishingWizard* This);
20588 
20589     ULONG (STDMETHODCALLTYPE *Release)(
20590         IPublishingWizard* This);
20591 
20592     /*** IWizardExtension methods ***/
20593     HRESULT (STDMETHODCALLTYPE *AddPages)(
20594         IPublishingWizard* This,
20595         HPROPSHEETPAGE *aPages,
20596         UINT cPages,
20597         UINT *pnPagesAdded);
20598 
20599     HRESULT (STDMETHODCALLTYPE *GetFirstPage)(
20600         IPublishingWizard* This,
20601         HPROPSHEETPAGE *phpage);
20602 
20603     HRESULT (STDMETHODCALLTYPE *GetLastPage)(
20604         IPublishingWizard* This,
20605         HPROPSHEETPAGE *phpage);
20606 
20607     /*** IPublishingWizard methods ***/
20608     HRESULT (STDMETHODCALLTYPE *Initialize)(
20609         IPublishingWizard* This,
20610         IDataObject *pdo,
20611         DWORD dwOptions,
20612         LPCWSTR pszServiceScope);
20613 
20614     HRESULT (STDMETHODCALLTYPE *GetTransferManifest)(
20615         IPublishingWizard* This,
20616         HRESULT *phrFromTransfer,
20617         IXMLDOMDocument **pdocManifest);
20618 
20619     END_INTERFACE
20620 } IPublishingWizardVtbl;
20621 interface IPublishingWizard {
20622     CONST_VTBL IPublishingWizardVtbl* lpVtbl;
20623 };
20624 
20625 #ifdef COBJMACROS
20626 #ifndef WIDL_C_INLINE_WRAPPERS
20627 /*** IUnknown methods ***/
20628 #define IPublishingWizard_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20629 #define IPublishingWizard_AddRef(This) (This)->lpVtbl->AddRef(This)
20630 #define IPublishingWizard_Release(This) (This)->lpVtbl->Release(This)
20631 /*** IWizardExtension methods ***/
20632 #define IPublishingWizard_AddPages(This,aPages,cPages,pnPagesAdded) (This)->lpVtbl->AddPages(This,aPages,cPages,pnPagesAdded)
20633 #define IPublishingWizard_GetFirstPage(This,phpage) (This)->lpVtbl->GetFirstPage(This,phpage)
20634 #define IPublishingWizard_GetLastPage(This,phpage) (This)->lpVtbl->GetLastPage(This,phpage)
20635 /*** IPublishingWizard methods ***/
20636 #define IPublishingWizard_Initialize(This,pdo,dwOptions,pszServiceScope) (This)->lpVtbl->Initialize(This,pdo,dwOptions,pszServiceScope)
20637 #define IPublishingWizard_GetTransferManifest(This,phrFromTransfer,pdocManifest) (This)->lpVtbl->GetTransferManifest(This,phrFromTransfer,pdocManifest)
20638 #else
20639 /*** IUnknown methods ***/
20640 static FORCEINLINE HRESULT IPublishingWizard_QueryInterface(IPublishingWizard* This,REFIID riid,void **ppvObject) {
20641     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20642 }
20643 static FORCEINLINE ULONG IPublishingWizard_AddRef(IPublishingWizard* This) {
20644     return This->lpVtbl->AddRef(This);
20645 }
20646 static FORCEINLINE ULONG IPublishingWizard_Release(IPublishingWizard* This) {
20647     return This->lpVtbl->Release(This);
20648 }
20649 /*** IWizardExtension methods ***/
20650 static FORCEINLINE HRESULT IPublishingWizard_AddPages(IPublishingWizard* This,HPROPSHEETPAGE *aPages,UINT cPages,UINT *pnPagesAdded) {
20651     return This->lpVtbl->AddPages(This,aPages,cPages,pnPagesAdded);
20652 }
20653 static FORCEINLINE HRESULT IPublishingWizard_GetFirstPage(IPublishingWizard* This,HPROPSHEETPAGE *phpage) {
20654     return This->lpVtbl->GetFirstPage(This,phpage);
20655 }
20656 static FORCEINLINE HRESULT IPublishingWizard_GetLastPage(IPublishingWizard* This,HPROPSHEETPAGE *phpage) {
20657     return This->lpVtbl->GetLastPage(This,phpage);
20658 }
20659 /*** IPublishingWizard methods ***/
20660 static FORCEINLINE HRESULT IPublishingWizard_Initialize(IPublishingWizard* This,IDataObject *pdo,DWORD dwOptions,LPCWSTR pszServiceScope) {
20661     return This->lpVtbl->Initialize(This,pdo,dwOptions,pszServiceScope);
20662 }
20663 static FORCEINLINE HRESULT IPublishingWizard_GetTransferManifest(IPublishingWizard* This,HRESULT *phrFromTransfer,IXMLDOMDocument **pdocManifest) {
20664     return This->lpVtbl->GetTransferManifest(This,phrFromTransfer,pdocManifest);
20665 }
20666 #endif
20667 #endif
20668 
20669 #endif
20670 
20671 HRESULT STDMETHODCALLTYPE IPublishingWizard_Initialize_Proxy(
20672     IPublishingWizard* This,
20673     IDataObject *pdo,
20674     DWORD dwOptions,
20675     LPCWSTR pszServiceScope);
20676 void __RPC_STUB IPublishingWizard_Initialize_Stub(
20677     IRpcStubBuffer* This,
20678     IRpcChannelBuffer* pRpcChannelBuffer,
20679     PRPC_MESSAGE pRpcMessage,
20680     DWORD* pdwStubPhase);
20681 HRESULT STDMETHODCALLTYPE IPublishingWizard_GetTransferManifest_Proxy(
20682     IPublishingWizard* This,
20683     HRESULT *phrFromTransfer,
20684     IXMLDOMDocument **pdocManifest);
20685 void __RPC_STUB IPublishingWizard_GetTransferManifest_Stub(
20686     IRpcStubBuffer* This,
20687     IRpcChannelBuffer* pRpcChannelBuffer,
20688     PRPC_MESSAGE pRpcMessage,
20689     DWORD* pdwStubPhase);
20690 
20691 #endif  /* __IPublishingWizard_INTERFACE_DEFINED__ */
20692 
20693 
20694 /*****************************************************************************
20695  * IFolderViewHost interface
20696  */
20697 #ifndef __IFolderViewHost_INTERFACE_DEFINED__
20698 #define __IFolderViewHost_INTERFACE_DEFINED__
20699 
20700 DEFINE_GUID(IID_IFolderViewHost, 0x1ea58f02, 0xd55a, 0x411d, 0xb0,0x9e, 0x9e,0x65,0xac,0x21,0x60,0x5b);
20701 #if defined(__cplusplus) && !defined(CINTERFACE)
20702 MIDL_INTERFACE("1ea58f02-d55a-411d-b09e-9e65ac21605b")
20703 IFolderViewHost : public IUnknown
20704 {
20705     virtual HRESULT STDMETHODCALLTYPE Initialize(
20706         HWND hwndParent,
20707         IDataObject *pdo,
20708         RECT *prc) = 0;
20709 
20710 };
20711 #ifdef __CRT_UUID_DECL
20712 __CRT_UUID_DECL(IFolderViewHost, 0x1ea58f02, 0xd55a, 0x411d, 0xb0,0x9e, 0x9e,0x65,0xac,0x21,0x60,0x5b)
20713 #endif
20714 #else
20715 typedef struct IFolderViewHostVtbl {
20716     BEGIN_INTERFACE
20717 
20718     /*** IUnknown methods ***/
20719     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20720         IFolderViewHost* This,
20721         REFIID riid,
20722         void **ppvObject);
20723 
20724     ULONG (STDMETHODCALLTYPE *AddRef)(
20725         IFolderViewHost* This);
20726 
20727     ULONG (STDMETHODCALLTYPE *Release)(
20728         IFolderViewHost* This);
20729 
20730     /*** IFolderViewHost methods ***/
20731     HRESULT (STDMETHODCALLTYPE *Initialize)(
20732         IFolderViewHost* This,
20733         HWND hwndParent,
20734         IDataObject *pdo,
20735         RECT *prc);
20736 
20737     END_INTERFACE
20738 } IFolderViewHostVtbl;
20739 interface IFolderViewHost {
20740     CONST_VTBL IFolderViewHostVtbl* lpVtbl;
20741 };
20742 
20743 #ifdef COBJMACROS
20744 #ifndef WIDL_C_INLINE_WRAPPERS
20745 /*** IUnknown methods ***/
20746 #define IFolderViewHost_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20747 #define IFolderViewHost_AddRef(This) (This)->lpVtbl->AddRef(This)
20748 #define IFolderViewHost_Release(This) (This)->lpVtbl->Release(This)
20749 /*** IFolderViewHost methods ***/
20750 #define IFolderViewHost_Initialize(This,hwndParent,pdo,prc) (This)->lpVtbl->Initialize(This,hwndParent,pdo,prc)
20751 #else
20752 /*** IUnknown methods ***/
20753 static FORCEINLINE HRESULT IFolderViewHost_QueryInterface(IFolderViewHost* This,REFIID riid,void **ppvObject) {
20754     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20755 }
20756 static FORCEINLINE ULONG IFolderViewHost_AddRef(IFolderViewHost* This) {
20757     return This->lpVtbl->AddRef(This);
20758 }
20759 static FORCEINLINE ULONG IFolderViewHost_Release(IFolderViewHost* This) {
20760     return This->lpVtbl->Release(This);
20761 }
20762 /*** IFolderViewHost methods ***/
20763 static FORCEINLINE HRESULT IFolderViewHost_Initialize(IFolderViewHost* This,HWND hwndParent,IDataObject *pdo,RECT *prc) {
20764     return This->lpVtbl->Initialize(This,hwndParent,pdo,prc);
20765 }
20766 #endif
20767 #endif
20768 
20769 #endif
20770 
20771 HRESULT STDMETHODCALLTYPE IFolderViewHost_Initialize_Proxy(
20772     IFolderViewHost* This,
20773     HWND hwndParent,
20774     IDataObject *pdo,
20775     RECT *prc);
20776 void __RPC_STUB IFolderViewHost_Initialize_Stub(
20777     IRpcStubBuffer* This,
20778     IRpcChannelBuffer* pRpcChannelBuffer,
20779     PRPC_MESSAGE pRpcMessage,
20780     DWORD* pdwStubPhase);
20781 
20782 #endif  /* __IFolderViewHost_INTERFACE_DEFINED__ */
20783 
20784 
20785 #if _WIN32_IE >= _WIN32_IE_IE70
20786 /*****************************************************************************
20787  * IExplorerBrowserEvents interface
20788  */
20789 #ifndef __IExplorerBrowserEvents_INTERFACE_DEFINED__
20790 #define __IExplorerBrowserEvents_INTERFACE_DEFINED__
20791 
20792 DEFINE_GUID(IID_IExplorerBrowserEvents, 0x361bbdc7, 0xe6ee, 0x4e13, 0xbe,0x58, 0x58,0xe2,0x24,0x0c,0x81,0x0f);
20793 #if defined(__cplusplus) && !defined(CINTERFACE)
20794 MIDL_INTERFACE("361bbdc7-e6ee-4e13-be58-58e2240c810f")
20795 IExplorerBrowserEvents : public IUnknown
20796 {
20797     virtual HRESULT STDMETHODCALLTYPE OnNavigationPending(
20798         PCIDLIST_ABSOLUTE pidlFolder) = 0;
20799 
20800     virtual HRESULT STDMETHODCALLTYPE OnViewCreated(
20801         IShellView *psv) = 0;
20802 
20803     virtual HRESULT STDMETHODCALLTYPE OnNavigationComplete(
20804         PCIDLIST_ABSOLUTE pidlFolder) = 0;
20805 
20806     virtual HRESULT STDMETHODCALLTYPE OnNavigationFailed(
20807         PCIDLIST_ABSOLUTE pidlFolder) = 0;
20808 
20809 };
20810 #ifdef __CRT_UUID_DECL
20811 __CRT_UUID_DECL(IExplorerBrowserEvents, 0x361bbdc7, 0xe6ee, 0x4e13, 0xbe,0x58, 0x58,0xe2,0x24,0x0c,0x81,0x0f)
20812 #endif
20813 #else
20814 typedef struct IExplorerBrowserEventsVtbl {
20815     BEGIN_INTERFACE
20816 
20817     /*** IUnknown methods ***/
20818     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20819         IExplorerBrowserEvents* This,
20820         REFIID riid,
20821         void **ppvObject);
20822 
20823     ULONG (STDMETHODCALLTYPE *AddRef)(
20824         IExplorerBrowserEvents* This);
20825 
20826     ULONG (STDMETHODCALLTYPE *Release)(
20827         IExplorerBrowserEvents* This);
20828 
20829     /*** IExplorerBrowserEvents methods ***/
20830     HRESULT (STDMETHODCALLTYPE *OnNavigationPending)(
20831         IExplorerBrowserEvents* This,
20832         PCIDLIST_ABSOLUTE pidlFolder);
20833 
20834     HRESULT (STDMETHODCALLTYPE *OnViewCreated)(
20835         IExplorerBrowserEvents* This,
20836         IShellView *psv);
20837 
20838     HRESULT (STDMETHODCALLTYPE *OnNavigationComplete)(
20839         IExplorerBrowserEvents* This,
20840         PCIDLIST_ABSOLUTE pidlFolder);
20841 
20842     HRESULT (STDMETHODCALLTYPE *OnNavigationFailed)(
20843         IExplorerBrowserEvents* This,
20844         PCIDLIST_ABSOLUTE pidlFolder);
20845 
20846     END_INTERFACE
20847 } IExplorerBrowserEventsVtbl;
20848 interface IExplorerBrowserEvents {
20849     CONST_VTBL IExplorerBrowserEventsVtbl* lpVtbl;
20850 };
20851 
20852 #ifdef COBJMACROS
20853 #ifndef WIDL_C_INLINE_WRAPPERS
20854 /*** IUnknown methods ***/
20855 #define IExplorerBrowserEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20856 #define IExplorerBrowserEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
20857 #define IExplorerBrowserEvents_Release(This) (This)->lpVtbl->Release(This)
20858 /*** IExplorerBrowserEvents methods ***/
20859 #define IExplorerBrowserEvents_OnNavigationPending(This,pidlFolder) (This)->lpVtbl->OnNavigationPending(This,pidlFolder)
20860 #define IExplorerBrowserEvents_OnViewCreated(This,psv) (This)->lpVtbl->OnViewCreated(This,psv)
20861 #define IExplorerBrowserEvents_OnNavigationComplete(This,pidlFolder) (This)->lpVtbl->OnNavigationComplete(This,pidlFolder)
20862 #define IExplorerBrowserEvents_OnNavigationFailed(This,pidlFolder) (This)->lpVtbl->OnNavigationFailed(This,pidlFolder)
20863 #else
20864 /*** IUnknown methods ***/
20865 static FORCEINLINE HRESULT IExplorerBrowserEvents_QueryInterface(IExplorerBrowserEvents* This,REFIID riid,void **ppvObject) {
20866     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20867 }
20868 static FORCEINLINE ULONG IExplorerBrowserEvents_AddRef(IExplorerBrowserEvents* This) {
20869     return This->lpVtbl->AddRef(This);
20870 }
20871 static FORCEINLINE ULONG IExplorerBrowserEvents_Release(IExplorerBrowserEvents* This) {
20872     return This->lpVtbl->Release(This);
20873 }
20874 /*** IExplorerBrowserEvents methods ***/
20875 static FORCEINLINE HRESULT IExplorerBrowserEvents_OnNavigationPending(IExplorerBrowserEvents* This,PCIDLIST_ABSOLUTE pidlFolder) {
20876     return This->lpVtbl->OnNavigationPending(This,pidlFolder);
20877 }
20878 static FORCEINLINE HRESULT IExplorerBrowserEvents_OnViewCreated(IExplorerBrowserEvents* This,IShellView *psv) {
20879     return This->lpVtbl->OnViewCreated(This,psv);
20880 }
20881 static FORCEINLINE HRESULT IExplorerBrowserEvents_OnNavigationComplete(IExplorerBrowserEvents* This,PCIDLIST_ABSOLUTE pidlFolder) {
20882     return This->lpVtbl->OnNavigationComplete(This,pidlFolder);
20883 }
20884 static FORCEINLINE HRESULT IExplorerBrowserEvents_OnNavigationFailed(IExplorerBrowserEvents* This,PCIDLIST_ABSOLUTE pidlFolder) {
20885     return This->lpVtbl->OnNavigationFailed(This,pidlFolder);
20886 }
20887 #endif
20888 #endif
20889 
20890 #endif
20891 
20892 HRESULT STDMETHODCALLTYPE IExplorerBrowserEvents_OnNavigationPending_Proxy(
20893     IExplorerBrowserEvents* This,
20894     PCIDLIST_ABSOLUTE pidlFolder);
20895 void __RPC_STUB IExplorerBrowserEvents_OnNavigationPending_Stub(
20896     IRpcStubBuffer* This,
20897     IRpcChannelBuffer* pRpcChannelBuffer,
20898     PRPC_MESSAGE pRpcMessage,
20899     DWORD* pdwStubPhase);
20900 HRESULT STDMETHODCALLTYPE IExplorerBrowserEvents_OnViewCreated_Proxy(
20901     IExplorerBrowserEvents* This,
20902     IShellView *psv);
20903 void __RPC_STUB IExplorerBrowserEvents_OnViewCreated_Stub(
20904     IRpcStubBuffer* This,
20905     IRpcChannelBuffer* pRpcChannelBuffer,
20906     PRPC_MESSAGE pRpcMessage,
20907     DWORD* pdwStubPhase);
20908 HRESULT STDMETHODCALLTYPE IExplorerBrowserEvents_OnNavigationComplete_Proxy(
20909     IExplorerBrowserEvents* This,
20910     PCIDLIST_ABSOLUTE pidlFolder);
20911 void __RPC_STUB IExplorerBrowserEvents_OnNavigationComplete_Stub(
20912     IRpcStubBuffer* This,
20913     IRpcChannelBuffer* pRpcChannelBuffer,
20914     PRPC_MESSAGE pRpcMessage,
20915     DWORD* pdwStubPhase);
20916 HRESULT STDMETHODCALLTYPE IExplorerBrowserEvents_OnNavigationFailed_Proxy(
20917     IExplorerBrowserEvents* This,
20918     PCIDLIST_ABSOLUTE pidlFolder);
20919 void __RPC_STUB IExplorerBrowserEvents_OnNavigationFailed_Stub(
20920     IRpcStubBuffer* This,
20921     IRpcChannelBuffer* pRpcChannelBuffer,
20922     PRPC_MESSAGE pRpcMessage,
20923     DWORD* pdwStubPhase);
20924 
20925 #endif  /* __IExplorerBrowserEvents_INTERFACE_DEFINED__ */
20926 
20927 
20928 typedef enum EXPLORER_BROWSER_OPTIONS {
20929     EBO_NONE = 0x0,
20930     EBO_NAVIGATEONCE = 0x1,
20931     EBO_SHOWFRAMES = 0x2,
20932     EBO_ALWAYSNAVIGATE = 0x4,
20933     EBO_NOTRAVELLOG = 0x8,
20934     EBO_NOWRAPPERWINDOW = 0x10,
20935     EBO_HTMLSHAREPOINTVIEW = 0x20,
20936     EBO_NOBORDER = 0x40,
20937     EBO_NOPERSISTVIEWSTATE = 0x80
20938 } EXPLORER_BROWSER_OPTIONS;
20939 
20940 DEFINE_ENUM_FLAG_OPERATORS(EXPLORER_BROWSER_OPTIONS)
20941 
20942 typedef enum EXPLORER_BROWSER_FILL_FLAGS {
20943     EBF_NONE = 0x0,
20944     EBF_SELECTFROMDATAOBJECT = 0x100,
20945     EBF_NODROPTARGET = 0x200
20946 } EXPLORER_BROWSER_FILL_FLAGS;
20947 
20948 DEFINE_ENUM_FLAG_OPERATORS(EXPLORER_BROWSER_FILL_FLAGS)
20949 
20950 /*****************************************************************************
20951  * IExplorerBrowser interface
20952  */
20953 #ifndef __IExplorerBrowser_INTERFACE_DEFINED__
20954 #define __IExplorerBrowser_INTERFACE_DEFINED__
20955 
20956 DEFINE_GUID(IID_IExplorerBrowser, 0xdfd3b6b5, 0xc10c, 0x4be9, 0x85,0xf6, 0xa6,0x69,0x69,0xf4,0x02,0xf6);
20957 #if defined(__cplusplus) && !defined(CINTERFACE)
20958 MIDL_INTERFACE("dfd3b6b5-c10c-4be9-85f6-a66969f402f6")
20959 IExplorerBrowser : public IUnknown
20960 {
20961     virtual HRESULT STDMETHODCALLTYPE Initialize(
20962         HWND hwndParent,
20963         const RECT *prc,
20964         const FOLDERSETTINGS *pfs) = 0;
20965 
20966     virtual HRESULT STDMETHODCALLTYPE Destroy(
20967         ) = 0;
20968 
20969     virtual HRESULT STDMETHODCALLTYPE SetRect(
20970         HDWP *phdwp,
20971         RECT rcBrowser) = 0;
20972 
20973     virtual HRESULT STDMETHODCALLTYPE SetPropertyBag(
20974         LPCWSTR pszPropertyBag) = 0;
20975 
20976     virtual HRESULT STDMETHODCALLTYPE SetEmptyText(
20977         LPCWSTR pszEmptyText) = 0;
20978 
20979     virtual HRESULT STDMETHODCALLTYPE SetFolderSettings(
20980         const FOLDERSETTINGS *pfs) = 0;
20981 
20982     virtual HRESULT STDMETHODCALLTYPE Advise(
20983         IExplorerBrowserEvents *psbe,
20984         DWORD *pdwCookie) = 0;
20985 
20986     virtual HRESULT STDMETHODCALLTYPE Unadvise(
20987         DWORD dwCookie) = 0;
20988 
20989     virtual HRESULT STDMETHODCALLTYPE SetOptions(
20990         EXPLORER_BROWSER_OPTIONS dwFlag) = 0;
20991 
20992     virtual HRESULT STDMETHODCALLTYPE GetOptions(
20993         EXPLORER_BROWSER_OPTIONS *pdwFlag) = 0;
20994 
20995     virtual HRESULT STDMETHODCALLTYPE BrowseToIDList(
20996         PCUIDLIST_RELATIVE pidl,
20997         UINT uFlags) = 0;
20998 
20999     virtual HRESULT STDMETHODCALLTYPE BrowseToObject(
21000         IUnknown *punk,
21001         UINT uFlags) = 0;
21002 
21003     virtual HRESULT STDMETHODCALLTYPE FillFromObject(
21004         IUnknown *punk,
21005         EXPLORER_BROWSER_FILL_FLAGS dwFlags) = 0;
21006 
21007     virtual HRESULT STDMETHODCALLTYPE RemoveAll(
21008         ) = 0;
21009 
21010     virtual HRESULT STDMETHODCALLTYPE GetCurrentView(
21011         REFIID riid,
21012         void **ppv) = 0;
21013 
21014 };
21015 #ifdef __CRT_UUID_DECL
21016 __CRT_UUID_DECL(IExplorerBrowser, 0xdfd3b6b5, 0xc10c, 0x4be9, 0x85,0xf6, 0xa6,0x69,0x69,0xf4,0x02,0xf6)
21017 #endif
21018 #else
21019 typedef struct IExplorerBrowserVtbl {
21020     BEGIN_INTERFACE
21021 
21022     /*** IUnknown methods ***/
21023     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21024         IExplorerBrowser* This,
21025         REFIID riid,
21026         void **ppvObject);
21027 
21028     ULONG (STDMETHODCALLTYPE *AddRef)(
21029         IExplorerBrowser* This);
21030 
21031     ULONG (STDMETHODCALLTYPE *Release)(
21032         IExplorerBrowser* This);
21033 
21034     /*** IExplorerBrowser methods ***/
21035     HRESULT (STDMETHODCALLTYPE *Initialize)(
21036         IExplorerBrowser* This,
21037         HWND hwndParent,
21038         const RECT *prc,
21039         const FOLDERSETTINGS *pfs);
21040 
21041     HRESULT (STDMETHODCALLTYPE *Destroy)(
21042         IExplorerBrowser* This);
21043 
21044     HRESULT (STDMETHODCALLTYPE *SetRect)(
21045         IExplorerBrowser* This,
21046         HDWP *phdwp,
21047         RECT rcBrowser);
21048 
21049     HRESULT (STDMETHODCALLTYPE *SetPropertyBag)(
21050         IExplorerBrowser* This,
21051         LPCWSTR pszPropertyBag);
21052 
21053     HRESULT (STDMETHODCALLTYPE *SetEmptyText)(
21054         IExplorerBrowser* This,
21055         LPCWSTR pszEmptyText);
21056 
21057     HRESULT (STDMETHODCALLTYPE *SetFolderSettings)(
21058         IExplorerBrowser* This,
21059         const FOLDERSETTINGS *pfs);
21060 
21061     HRESULT (STDMETHODCALLTYPE *Advise)(
21062         IExplorerBrowser* This,
21063         IExplorerBrowserEvents *psbe,
21064         DWORD *pdwCookie);
21065 
21066     HRESULT (STDMETHODCALLTYPE *Unadvise)(
21067         IExplorerBrowser* This,
21068         DWORD dwCookie);
21069 
21070     HRESULT (STDMETHODCALLTYPE *SetOptions)(
21071         IExplorerBrowser* This,
21072         EXPLORER_BROWSER_OPTIONS dwFlag);
21073 
21074     HRESULT (STDMETHODCALLTYPE *GetOptions)(
21075         IExplorerBrowser* This,
21076         EXPLORER_BROWSER_OPTIONS *pdwFlag);
21077 
21078     HRESULT (STDMETHODCALLTYPE *BrowseToIDList)(
21079         IExplorerBrowser* This,
21080         PCUIDLIST_RELATIVE pidl,
21081         UINT uFlags);
21082 
21083     HRESULT (STDMETHODCALLTYPE *BrowseToObject)(
21084         IExplorerBrowser* This,
21085         IUnknown *punk,
21086         UINT uFlags);
21087 
21088     HRESULT (STDMETHODCALLTYPE *FillFromObject)(
21089         IExplorerBrowser* This,
21090         IUnknown *punk,
21091         EXPLORER_BROWSER_FILL_FLAGS dwFlags);
21092 
21093     HRESULT (STDMETHODCALLTYPE *RemoveAll)(
21094         IExplorerBrowser* This);
21095 
21096     HRESULT (STDMETHODCALLTYPE *GetCurrentView)(
21097         IExplorerBrowser* This,
21098         REFIID riid,
21099         void **ppv);
21100 
21101     END_INTERFACE
21102 } IExplorerBrowserVtbl;
21103 interface IExplorerBrowser {
21104     CONST_VTBL IExplorerBrowserVtbl* lpVtbl;
21105 };
21106 
21107 #ifdef COBJMACROS
21108 #ifndef WIDL_C_INLINE_WRAPPERS
21109 /*** IUnknown methods ***/
21110 #define IExplorerBrowser_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21111 #define IExplorerBrowser_AddRef(This) (This)->lpVtbl->AddRef(This)
21112 #define IExplorerBrowser_Release(This) (This)->lpVtbl->Release(This)
21113 /*** IExplorerBrowser methods ***/
21114 #define IExplorerBrowser_Initialize(This,hwndParent,prc,pfs) (This)->lpVtbl->Initialize(This,hwndParent,prc,pfs)
21115 #define IExplorerBrowser_Destroy(This) (This)->lpVtbl->Destroy(This)
21116 #define IExplorerBrowser_SetRect(This,phdwp,rcBrowser) (This)->lpVtbl->SetRect(This,phdwp,rcBrowser)
21117 #define IExplorerBrowser_SetPropertyBag(This,pszPropertyBag) (This)->lpVtbl->SetPropertyBag(This,pszPropertyBag)
21118 #define IExplorerBrowser_SetEmptyText(This,pszEmptyText) (This)->lpVtbl->SetEmptyText(This,pszEmptyText)
21119 #define IExplorerBrowser_SetFolderSettings(This,pfs) (This)->lpVtbl->SetFolderSettings(This,pfs)
21120 #define IExplorerBrowser_Advise(This,psbe,pdwCookie) (This)->lpVtbl->Advise(This,psbe,pdwCookie)
21121 #define IExplorerBrowser_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
21122 #define IExplorerBrowser_SetOptions(This,dwFlag) (This)->lpVtbl->SetOptions(This,dwFlag)
21123 #define IExplorerBrowser_GetOptions(This,pdwFlag) (This)->lpVtbl->GetOptions(This,pdwFlag)
21124 #define IExplorerBrowser_BrowseToIDList(This,pidl,uFlags) (This)->lpVtbl->BrowseToIDList(This,pidl,uFlags)
21125 #define IExplorerBrowser_BrowseToObject(This,punk,uFlags) (This)->lpVtbl->BrowseToObject(This,punk,uFlags)
21126 #define IExplorerBrowser_FillFromObject(This,punk,dwFlags) (This)->lpVtbl->FillFromObject(This,punk,dwFlags)
21127 #define IExplorerBrowser_RemoveAll(This) (This)->lpVtbl->RemoveAll(This)
21128 #define IExplorerBrowser_GetCurrentView(This,riid,ppv) (This)->lpVtbl->GetCurrentView(This,riid,ppv)
21129 #else
21130 /*** IUnknown methods ***/
21131 static FORCEINLINE HRESULT IExplorerBrowser_QueryInterface(IExplorerBrowser* This,REFIID riid,void **ppvObject) {
21132     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21133 }
21134 static FORCEINLINE ULONG IExplorerBrowser_AddRef(IExplorerBrowser* This) {
21135     return This->lpVtbl->AddRef(This);
21136 }
21137 static FORCEINLINE ULONG IExplorerBrowser_Release(IExplorerBrowser* This) {
21138     return This->lpVtbl->Release(This);
21139 }
21140 /*** IExplorerBrowser methods ***/
21141 static FORCEINLINE HRESULT IExplorerBrowser_Initialize(IExplorerBrowser* This,HWND hwndParent,const RECT *prc,const FOLDERSETTINGS *pfs) {
21142     return This->lpVtbl->Initialize(This,hwndParent,prc,pfs);
21143 }
21144 static FORCEINLINE HRESULT IExplorerBrowser_Destroy(IExplorerBrowser* This) {
21145     return This->lpVtbl->Destroy(This);
21146 }
21147 static FORCEINLINE HRESULT IExplorerBrowser_SetRect(IExplorerBrowser* This,HDWP *phdwp,RECT rcBrowser) {
21148     return This->lpVtbl->SetRect(This,phdwp,rcBrowser);
21149 }
21150 static FORCEINLINE HRESULT IExplorerBrowser_SetPropertyBag(IExplorerBrowser* This,LPCWSTR pszPropertyBag) {
21151     return This->lpVtbl->SetPropertyBag(This,pszPropertyBag);
21152 }
21153 static FORCEINLINE HRESULT IExplorerBrowser_SetEmptyText(IExplorerBrowser* This,LPCWSTR pszEmptyText) {
21154     return This->lpVtbl->SetEmptyText(This,pszEmptyText);
21155 }
21156 static FORCEINLINE HRESULT IExplorerBrowser_SetFolderSettings(IExplorerBrowser* This,const FOLDERSETTINGS *pfs) {
21157     return This->lpVtbl->SetFolderSettings(This,pfs);
21158 }
21159 static FORCEINLINE HRESULT IExplorerBrowser_Advise(IExplorerBrowser* This,IExplorerBrowserEvents *psbe,DWORD *pdwCookie) {
21160     return This->lpVtbl->Advise(This,psbe,pdwCookie);
21161 }
21162 static FORCEINLINE HRESULT IExplorerBrowser_Unadvise(IExplorerBrowser* This,DWORD dwCookie) {
21163     return This->lpVtbl->Unadvise(This,dwCookie);
21164 }
21165 static FORCEINLINE HRESULT IExplorerBrowser_SetOptions(IExplorerBrowser* This,EXPLORER_BROWSER_OPTIONS dwFlag) {
21166     return This->lpVtbl->SetOptions(This,dwFlag);
21167 }
21168 static FORCEINLINE HRESULT IExplorerBrowser_GetOptions(IExplorerBrowser* This,EXPLORER_BROWSER_OPTIONS *pdwFlag) {
21169     return This->lpVtbl->GetOptions(This,pdwFlag);
21170 }
21171 static FORCEINLINE HRESULT IExplorerBrowser_BrowseToIDList(IExplorerBrowser* This,PCUIDLIST_RELATIVE pidl,UINT uFlags) {
21172     return This->lpVtbl->BrowseToIDList(This,pidl,uFlags);
21173 }
21174 static FORCEINLINE HRESULT IExplorerBrowser_BrowseToObject(IExplorerBrowser* This,IUnknown *punk,UINT uFlags) {
21175     return This->lpVtbl->BrowseToObject(This,punk,uFlags);
21176 }
21177 static FORCEINLINE HRESULT IExplorerBrowser_FillFromObject(IExplorerBrowser* This,IUnknown *punk,EXPLORER_BROWSER_FILL_FLAGS dwFlags) {
21178     return This->lpVtbl->FillFromObject(This,punk,dwFlags);
21179 }
21180 static FORCEINLINE HRESULT IExplorerBrowser_RemoveAll(IExplorerBrowser* This) {
21181     return This->lpVtbl->RemoveAll(This);
21182 }
21183 static FORCEINLINE HRESULT IExplorerBrowser_GetCurrentView(IExplorerBrowser* This,REFIID riid,void **ppv) {
21184     return This->lpVtbl->GetCurrentView(This,riid,ppv);
21185 }
21186 #endif
21187 #endif
21188 
21189 #endif
21190 
21191 HRESULT STDMETHODCALLTYPE IExplorerBrowser_Destroy_Proxy(
21192     IExplorerBrowser* This);
21193 void __RPC_STUB IExplorerBrowser_Destroy_Stub(
21194     IRpcStubBuffer* This,
21195     IRpcChannelBuffer* pRpcChannelBuffer,
21196     PRPC_MESSAGE pRpcMessage,
21197     DWORD* pdwStubPhase);
21198 HRESULT STDMETHODCALLTYPE IExplorerBrowser_SetPropertyBag_Proxy(
21199     IExplorerBrowser* This,
21200     LPCWSTR pszPropertyBag);
21201 void __RPC_STUB IExplorerBrowser_SetPropertyBag_Stub(
21202     IRpcStubBuffer* This,
21203     IRpcChannelBuffer* pRpcChannelBuffer,
21204     PRPC_MESSAGE pRpcMessage,
21205     DWORD* pdwStubPhase);
21206 HRESULT STDMETHODCALLTYPE IExplorerBrowser_SetEmptyText_Proxy(
21207     IExplorerBrowser* This,
21208     LPCWSTR pszEmptyText);
21209 void __RPC_STUB IExplorerBrowser_SetEmptyText_Stub(
21210     IRpcStubBuffer* This,
21211     IRpcChannelBuffer* pRpcChannelBuffer,
21212     PRPC_MESSAGE pRpcMessage,
21213     DWORD* pdwStubPhase);
21214 HRESULT STDMETHODCALLTYPE IExplorerBrowser_SetFolderSettings_Proxy(
21215     IExplorerBrowser* This,
21216     const FOLDERSETTINGS *pfs);
21217 void __RPC_STUB IExplorerBrowser_SetFolderSettings_Stub(
21218     IRpcStubBuffer* This,
21219     IRpcChannelBuffer* pRpcChannelBuffer,
21220     PRPC_MESSAGE pRpcMessage,
21221     DWORD* pdwStubPhase);
21222 HRESULT STDMETHODCALLTYPE IExplorerBrowser_Advise_Proxy(
21223     IExplorerBrowser* This,
21224     IExplorerBrowserEvents *psbe,
21225     DWORD *pdwCookie);
21226 void __RPC_STUB IExplorerBrowser_Advise_Stub(
21227     IRpcStubBuffer* This,
21228     IRpcChannelBuffer* pRpcChannelBuffer,
21229     PRPC_MESSAGE pRpcMessage,
21230     DWORD* pdwStubPhase);
21231 HRESULT STDMETHODCALLTYPE IExplorerBrowser_Unadvise_Proxy(
21232     IExplorerBrowser* This,
21233     DWORD dwCookie);
21234 void __RPC_STUB IExplorerBrowser_Unadvise_Stub(
21235     IRpcStubBuffer* This,
21236     IRpcChannelBuffer* pRpcChannelBuffer,
21237     PRPC_MESSAGE pRpcMessage,
21238     DWORD* pdwStubPhase);
21239 HRESULT STDMETHODCALLTYPE IExplorerBrowser_SetOptions_Proxy(
21240     IExplorerBrowser* This,
21241     EXPLORER_BROWSER_OPTIONS dwFlag);
21242 void __RPC_STUB IExplorerBrowser_SetOptions_Stub(
21243     IRpcStubBuffer* This,
21244     IRpcChannelBuffer* pRpcChannelBuffer,
21245     PRPC_MESSAGE pRpcMessage,
21246     DWORD* pdwStubPhase);
21247 HRESULT STDMETHODCALLTYPE IExplorerBrowser_GetOptions_Proxy(
21248     IExplorerBrowser* This,
21249     EXPLORER_BROWSER_OPTIONS *pdwFlag);
21250 void __RPC_STUB IExplorerBrowser_GetOptions_Stub(
21251     IRpcStubBuffer* This,
21252     IRpcChannelBuffer* pRpcChannelBuffer,
21253     PRPC_MESSAGE pRpcMessage,
21254     DWORD* pdwStubPhase);
21255 HRESULT STDMETHODCALLTYPE IExplorerBrowser_BrowseToIDList_Proxy(
21256     IExplorerBrowser* This,
21257     PCUIDLIST_RELATIVE pidl,
21258     UINT uFlags);
21259 void __RPC_STUB IExplorerBrowser_BrowseToIDList_Stub(
21260     IRpcStubBuffer* This,
21261     IRpcChannelBuffer* pRpcChannelBuffer,
21262     PRPC_MESSAGE pRpcMessage,
21263     DWORD* pdwStubPhase);
21264 HRESULT STDMETHODCALLTYPE IExplorerBrowser_BrowseToObject_Proxy(
21265     IExplorerBrowser* This,
21266     IUnknown *punk,
21267     UINT uFlags);
21268 void __RPC_STUB IExplorerBrowser_BrowseToObject_Stub(
21269     IRpcStubBuffer* This,
21270     IRpcChannelBuffer* pRpcChannelBuffer,
21271     PRPC_MESSAGE pRpcMessage,
21272     DWORD* pdwStubPhase);
21273 HRESULT STDMETHODCALLTYPE IExplorerBrowser_FillFromObject_Proxy(
21274     IExplorerBrowser* This,
21275     IUnknown *punk,
21276     EXPLORER_BROWSER_FILL_FLAGS dwFlags);
21277 void __RPC_STUB IExplorerBrowser_FillFromObject_Stub(
21278     IRpcStubBuffer* This,
21279     IRpcChannelBuffer* pRpcChannelBuffer,
21280     PRPC_MESSAGE pRpcMessage,
21281     DWORD* pdwStubPhase);
21282 HRESULT STDMETHODCALLTYPE IExplorerBrowser_RemoveAll_Proxy(
21283     IExplorerBrowser* This);
21284 void __RPC_STUB IExplorerBrowser_RemoveAll_Stub(
21285     IRpcStubBuffer* This,
21286     IRpcChannelBuffer* pRpcChannelBuffer,
21287     PRPC_MESSAGE pRpcMessage,
21288     DWORD* pdwStubPhase);
21289 HRESULT STDMETHODCALLTYPE IExplorerBrowser_GetCurrentView_Proxy(
21290     IExplorerBrowser* This,
21291     REFIID riid,
21292     void **ppv);
21293 void __RPC_STUB IExplorerBrowser_GetCurrentView_Stub(
21294     IRpcStubBuffer* This,
21295     IRpcChannelBuffer* pRpcChannelBuffer,
21296     PRPC_MESSAGE pRpcMessage,
21297     DWORD* pdwStubPhase);
21298 
21299 #endif  /* __IExplorerBrowser_INTERFACE_DEFINED__ */
21300 
21301 
21302 /*****************************************************************************
21303  * IAccessibleObject interface
21304  */
21305 #ifndef __IAccessibleObject_INTERFACE_DEFINED__
21306 #define __IAccessibleObject_INTERFACE_DEFINED__
21307 
21308 DEFINE_GUID(IID_IAccessibleObject, 0x95a391c5, 0x9ed4, 0x4c28, 0x84,0x01, 0xab,0x9e,0x06,0x71,0x9e,0x11);
21309 #if defined(__cplusplus) && !defined(CINTERFACE)
21310 MIDL_INTERFACE("95a391c5-9ed4-4c28-8401-ab9e06719e11")
21311 IAccessibleObject : public IUnknown
21312 {
21313     virtual HRESULT STDMETHODCALLTYPE SetAccessibleName(
21314         LPCWSTR pszName) = 0;
21315 
21316 };
21317 #ifdef __CRT_UUID_DECL
21318 __CRT_UUID_DECL(IAccessibleObject, 0x95a391c5, 0x9ed4, 0x4c28, 0x84,0x01, 0xab,0x9e,0x06,0x71,0x9e,0x11)
21319 #endif
21320 #else
21321 typedef struct IAccessibleObjectVtbl {
21322     BEGIN_INTERFACE
21323 
21324     /*** IUnknown methods ***/
21325     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21326         IAccessibleObject* This,
21327         REFIID riid,
21328         void **ppvObject);
21329 
21330     ULONG (STDMETHODCALLTYPE *AddRef)(
21331         IAccessibleObject* This);
21332 
21333     ULONG (STDMETHODCALLTYPE *Release)(
21334         IAccessibleObject* This);
21335 
21336     /*** IAccessibleObject methods ***/
21337     HRESULT (STDMETHODCALLTYPE *SetAccessibleName)(
21338         IAccessibleObject* This,
21339         LPCWSTR pszName);
21340 
21341     END_INTERFACE
21342 } IAccessibleObjectVtbl;
21343 interface IAccessibleObject {
21344     CONST_VTBL IAccessibleObjectVtbl* lpVtbl;
21345 };
21346 
21347 #ifdef COBJMACROS
21348 #ifndef WIDL_C_INLINE_WRAPPERS
21349 /*** IUnknown methods ***/
21350 #define IAccessibleObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21351 #define IAccessibleObject_AddRef(This) (This)->lpVtbl->AddRef(This)
21352 #define IAccessibleObject_Release(This) (This)->lpVtbl->Release(This)
21353 /*** IAccessibleObject methods ***/
21354 #define IAccessibleObject_SetAccessibleName(This,pszName) (This)->lpVtbl->SetAccessibleName(This,pszName)
21355 #else
21356 /*** IUnknown methods ***/
21357 static FORCEINLINE HRESULT IAccessibleObject_QueryInterface(IAccessibleObject* This,REFIID riid,void **ppvObject) {
21358     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21359 }
21360 static FORCEINLINE ULONG IAccessibleObject_AddRef(IAccessibleObject* This) {
21361     return This->lpVtbl->AddRef(This);
21362 }
21363 static FORCEINLINE ULONG IAccessibleObject_Release(IAccessibleObject* This) {
21364     return This->lpVtbl->Release(This);
21365 }
21366 /*** IAccessibleObject methods ***/
21367 static FORCEINLINE HRESULT IAccessibleObject_SetAccessibleName(IAccessibleObject* This,LPCWSTR pszName) {
21368     return This->lpVtbl->SetAccessibleName(This,pszName);
21369 }
21370 #endif
21371 #endif
21372 
21373 #endif
21374 
21375 HRESULT STDMETHODCALLTYPE IAccessibleObject_SetAccessibleName_Proxy(
21376     IAccessibleObject* This,
21377     LPCWSTR pszName);
21378 void __RPC_STUB IAccessibleObject_SetAccessibleName_Stub(
21379     IRpcStubBuffer* This,
21380     IRpcChannelBuffer* pRpcChannelBuffer,
21381     PRPC_MESSAGE pRpcMessage,
21382     DWORD* pdwStubPhase);
21383 
21384 #endif  /* __IAccessibleObject_INTERFACE_DEFINED__ */
21385 
21386 #endif
21387 
21388 /*****************************************************************************
21389  * IResultsFolder interface
21390  */
21391 #ifndef __IResultsFolder_INTERFACE_DEFINED__
21392 #define __IResultsFolder_INTERFACE_DEFINED__
21393 
21394 DEFINE_GUID(IID_IResultsFolder, 0x96e5ae6d, 0x6ae1, 0x4b1c, 0x90,0x0c, 0xc6,0x48,0x0e,0xaa,0x88,0x28);
21395 #if defined(__cplusplus) && !defined(CINTERFACE)
21396 MIDL_INTERFACE("96e5ae6d-6ae1-4b1c-900c-c6480eaa8828")
21397 IResultsFolder : public IUnknown
21398 {
21399     virtual HRESULT STDMETHODCALLTYPE AddItem(
21400         IShellItem *psi) = 0;
21401 
21402     virtual HRESULT STDMETHODCALLTYPE AddIDList(
21403         PCIDLIST_ABSOLUTE pidl,
21404         PITEMID_CHILD *ppidlAdded) = 0;
21405 
21406     virtual HRESULT STDMETHODCALLTYPE RemoveItem(
21407         IShellItem *psi) = 0;
21408 
21409     virtual HRESULT STDMETHODCALLTYPE RemoveIDList(
21410         PCIDLIST_ABSOLUTE pidl) = 0;
21411 
21412     virtual HRESULT STDMETHODCALLTYPE RemoveAll(
21413         ) = 0;
21414 
21415 };
21416 #ifdef __CRT_UUID_DECL
21417 __CRT_UUID_DECL(IResultsFolder, 0x96e5ae6d, 0x6ae1, 0x4b1c, 0x90,0x0c, 0xc6,0x48,0x0e,0xaa,0x88,0x28)
21418 #endif
21419 #else
21420 typedef struct IResultsFolderVtbl {
21421     BEGIN_INTERFACE
21422 
21423     /*** IUnknown methods ***/
21424     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21425         IResultsFolder* This,
21426         REFIID riid,
21427         void **ppvObject);
21428 
21429     ULONG (STDMETHODCALLTYPE *AddRef)(
21430         IResultsFolder* This);
21431 
21432     ULONG (STDMETHODCALLTYPE *Release)(
21433         IResultsFolder* This);
21434 
21435     /*** IResultsFolder methods ***/
21436     HRESULT (STDMETHODCALLTYPE *AddItem)(
21437         IResultsFolder* This,
21438         IShellItem *psi);
21439 
21440     HRESULT (STDMETHODCALLTYPE *AddIDList)(
21441         IResultsFolder* This,
21442         PCIDLIST_ABSOLUTE pidl,
21443         PITEMID_CHILD *ppidlAdded);
21444 
21445     HRESULT (STDMETHODCALLTYPE *RemoveItem)(
21446         IResultsFolder* This,
21447         IShellItem *psi);
21448 
21449     HRESULT (STDMETHODCALLTYPE *RemoveIDList)(
21450         IResultsFolder* This,
21451         PCIDLIST_ABSOLUTE pidl);
21452 
21453     HRESULT (STDMETHODCALLTYPE *RemoveAll)(
21454         IResultsFolder* This);
21455 
21456     END_INTERFACE
21457 } IResultsFolderVtbl;
21458 interface IResultsFolder {
21459     CONST_VTBL IResultsFolderVtbl* lpVtbl;
21460 };
21461 
21462 #ifdef COBJMACROS
21463 #ifndef WIDL_C_INLINE_WRAPPERS
21464 /*** IUnknown methods ***/
21465 #define IResultsFolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21466 #define IResultsFolder_AddRef(This) (This)->lpVtbl->AddRef(This)
21467 #define IResultsFolder_Release(This) (This)->lpVtbl->Release(This)
21468 /*** IResultsFolder methods ***/
21469 #define IResultsFolder_AddItem(This,psi) (This)->lpVtbl->AddItem(This,psi)
21470 #define IResultsFolder_AddIDList(This,pidl,ppidlAdded) (This)->lpVtbl->AddIDList(This,pidl,ppidlAdded)
21471 #define IResultsFolder_RemoveItem(This,psi) (This)->lpVtbl->RemoveItem(This,psi)
21472 #define IResultsFolder_RemoveIDList(This,pidl) (This)->lpVtbl->RemoveIDList(This,pidl)
21473 #define IResultsFolder_RemoveAll(This) (This)->lpVtbl->RemoveAll(This)
21474 #else
21475 /*** IUnknown methods ***/
21476 static FORCEINLINE HRESULT IResultsFolder_QueryInterface(IResultsFolder* This,REFIID riid,void **ppvObject) {
21477     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21478 }
21479 static FORCEINLINE ULONG IResultsFolder_AddRef(IResultsFolder* This) {
21480     return This->lpVtbl->AddRef(This);
21481 }
21482 static FORCEINLINE ULONG IResultsFolder_Release(IResultsFolder* This) {
21483     return This->lpVtbl->Release(This);
21484 }
21485 /*** IResultsFolder methods ***/
21486 static FORCEINLINE HRESULT IResultsFolder_AddItem(IResultsFolder* This,IShellItem *psi) {
21487     return This->lpVtbl->AddItem(This,psi);
21488 }
21489 static FORCEINLINE HRESULT IResultsFolder_AddIDList(IResultsFolder* This,PCIDLIST_ABSOLUTE pidl,PITEMID_CHILD *ppidlAdded) {
21490     return This->lpVtbl->AddIDList(This,pidl,ppidlAdded);
21491 }
21492 static FORCEINLINE HRESULT IResultsFolder_RemoveItem(IResultsFolder* This,IShellItem *psi) {
21493     return This->lpVtbl->RemoveItem(This,psi);
21494 }
21495 static FORCEINLINE HRESULT IResultsFolder_RemoveIDList(IResultsFolder* This,PCIDLIST_ABSOLUTE pidl) {
21496     return This->lpVtbl->RemoveIDList(This,pidl);
21497 }
21498 static FORCEINLINE HRESULT IResultsFolder_RemoveAll(IResultsFolder* This) {
21499     return This->lpVtbl->RemoveAll(This);
21500 }
21501 #endif
21502 #endif
21503 
21504 #endif
21505 
21506 HRESULT STDMETHODCALLTYPE IResultsFolder_AddItem_Proxy(
21507     IResultsFolder* This,
21508     IShellItem *psi);
21509 void __RPC_STUB IResultsFolder_AddItem_Stub(
21510     IRpcStubBuffer* This,
21511     IRpcChannelBuffer* pRpcChannelBuffer,
21512     PRPC_MESSAGE pRpcMessage,
21513     DWORD* pdwStubPhase);
21514 HRESULT STDMETHODCALLTYPE IResultsFolder_RemoteAddIDList_Proxy(
21515     IResultsFolder* This,
21516     PCIDLIST_ABSOLUTE pidl,
21517     PITEMID_CHILD *ppidlAdded);
21518 void __RPC_STUB IResultsFolder_RemoteAddIDList_Stub(
21519     IRpcStubBuffer* This,
21520     IRpcChannelBuffer* pRpcChannelBuffer,
21521     PRPC_MESSAGE pRpcMessage,
21522     DWORD* pdwStubPhase);
21523 HRESULT STDMETHODCALLTYPE IResultsFolder_RemoveItem_Proxy(
21524     IResultsFolder* This,
21525     IShellItem *psi);
21526 void __RPC_STUB IResultsFolder_RemoveItem_Stub(
21527     IRpcStubBuffer* This,
21528     IRpcChannelBuffer* pRpcChannelBuffer,
21529     PRPC_MESSAGE pRpcMessage,
21530     DWORD* pdwStubPhase);
21531 HRESULT STDMETHODCALLTYPE IResultsFolder_RemoveIDList_Proxy(
21532     IResultsFolder* This,
21533     PCIDLIST_ABSOLUTE pidl);
21534 void __RPC_STUB IResultsFolder_RemoveIDList_Stub(
21535     IRpcStubBuffer* This,
21536     IRpcChannelBuffer* pRpcChannelBuffer,
21537     PRPC_MESSAGE pRpcMessage,
21538     DWORD* pdwStubPhase);
21539 HRESULT STDMETHODCALLTYPE IResultsFolder_RemoveAll_Proxy(
21540     IResultsFolder* This);
21541 void __RPC_STUB IResultsFolder_RemoveAll_Stub(
21542     IRpcStubBuffer* This,
21543     IRpcChannelBuffer* pRpcChannelBuffer,
21544     PRPC_MESSAGE pRpcMessage,
21545     DWORD* pdwStubPhase);
21546 HRESULT CALLBACK IResultsFolder_AddIDList_Proxy(
21547     IResultsFolder* This,
21548     PCIDLIST_ABSOLUTE pidl,
21549     PITEMID_CHILD *ppidlAdded);
21550 HRESULT __RPC_STUB IResultsFolder_AddIDList_Stub(
21551     IResultsFolder* This,
21552     PCIDLIST_ABSOLUTE pidl,
21553     PITEMID_CHILD *ppidlAdded);
21554 
21555 #endif  /* __IResultsFolder_INTERFACE_DEFINED__ */
21556 
21557 #if _WIN32_IE >= _WIN32_IE_IE70
21558 /*****************************************************************************
21559  * IEnumObjects interface
21560  */
21561 #ifndef __IEnumObjects_INTERFACE_DEFINED__
21562 #define __IEnumObjects_INTERFACE_DEFINED__
21563 
21564 DEFINE_GUID(IID_IEnumObjects, 0x2c1c7e2e, 0x2d0e, 0x4059, 0x83,0x1e, 0x1e,0x6f,0x82,0x33,0x5c,0x2e);
21565 #if defined(__cplusplus) && !defined(CINTERFACE)
21566 MIDL_INTERFACE("2c1c7e2e-2d0e-4059-831e-1e6f82335c2e")
21567 IEnumObjects : public IUnknown
21568 {
21569     virtual HRESULT STDMETHODCALLTYPE Next(
21570         ULONG celt,
21571         REFIID riid,
21572         void **rgelt,
21573         ULONG *pceltFetched) = 0;
21574 
21575     virtual HRESULT STDMETHODCALLTYPE Skip(
21576         ULONG celt) = 0;
21577 
21578     virtual HRESULT STDMETHODCALLTYPE Reset(
21579         ) = 0;
21580 
21581     virtual HRESULT STDMETHODCALLTYPE Clone(
21582         IEnumObjects **ppenum) = 0;
21583 
21584 };
21585 #ifdef __CRT_UUID_DECL
21586 __CRT_UUID_DECL(IEnumObjects, 0x2c1c7e2e, 0x2d0e, 0x4059, 0x83,0x1e, 0x1e,0x6f,0x82,0x33,0x5c,0x2e)
21587 #endif
21588 #else
21589 typedef struct IEnumObjectsVtbl {
21590     BEGIN_INTERFACE
21591 
21592     /*** IUnknown methods ***/
21593     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21594         IEnumObjects* This,
21595         REFIID riid,
21596         void **ppvObject);
21597 
21598     ULONG (STDMETHODCALLTYPE *AddRef)(
21599         IEnumObjects* This);
21600 
21601     ULONG (STDMETHODCALLTYPE *Release)(
21602         IEnumObjects* This);
21603 
21604     /*** IEnumObjects methods ***/
21605     HRESULT (STDMETHODCALLTYPE *Next)(
21606         IEnumObjects* This,
21607         ULONG celt,
21608         REFIID riid,
21609         void **rgelt,
21610         ULONG *pceltFetched);
21611 
21612     HRESULT (STDMETHODCALLTYPE *Skip)(
21613         IEnumObjects* This,
21614         ULONG celt);
21615 
21616     HRESULT (STDMETHODCALLTYPE *Reset)(
21617         IEnumObjects* This);
21618 
21619     HRESULT (STDMETHODCALLTYPE *Clone)(
21620         IEnumObjects* This,
21621         IEnumObjects **ppenum);
21622 
21623     END_INTERFACE
21624 } IEnumObjectsVtbl;
21625 interface IEnumObjects {
21626     CONST_VTBL IEnumObjectsVtbl* lpVtbl;
21627 };
21628 
21629 #ifdef COBJMACROS
21630 #ifndef WIDL_C_INLINE_WRAPPERS
21631 /*** IUnknown methods ***/
21632 #define IEnumObjects_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21633 #define IEnumObjects_AddRef(This) (This)->lpVtbl->AddRef(This)
21634 #define IEnumObjects_Release(This) (This)->lpVtbl->Release(This)
21635 /*** IEnumObjects methods ***/
21636 #define IEnumObjects_Next(This,celt,riid,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,riid,rgelt,pceltFetched)
21637 #define IEnumObjects_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
21638 #define IEnumObjects_Reset(This) (This)->lpVtbl->Reset(This)
21639 #define IEnumObjects_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
21640 #else
21641 /*** IUnknown methods ***/
21642 static FORCEINLINE HRESULT IEnumObjects_QueryInterface(IEnumObjects* This,REFIID riid,void **ppvObject) {
21643     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21644 }
21645 static FORCEINLINE ULONG IEnumObjects_AddRef(IEnumObjects* This) {
21646     return This->lpVtbl->AddRef(This);
21647 }
21648 static FORCEINLINE ULONG IEnumObjects_Release(IEnumObjects* This) {
21649     return This->lpVtbl->Release(This);
21650 }
21651 /*** IEnumObjects methods ***/
21652 static FORCEINLINE HRESULT IEnumObjects_Next(IEnumObjects* This,ULONG celt,REFIID riid,void **rgelt,ULONG *pceltFetched) {
21653     return This->lpVtbl->Next(This,celt,riid,rgelt,pceltFetched);
21654 }
21655 static FORCEINLINE HRESULT IEnumObjects_Skip(IEnumObjects* This,ULONG celt) {
21656     return This->lpVtbl->Skip(This,celt);
21657 }
21658 static FORCEINLINE HRESULT IEnumObjects_Reset(IEnumObjects* This) {
21659     return This->lpVtbl->Reset(This);
21660 }
21661 static FORCEINLINE HRESULT IEnumObjects_Clone(IEnumObjects* This,IEnumObjects **ppenum) {
21662     return This->lpVtbl->Clone(This,ppenum);
21663 }
21664 #endif
21665 #endif
21666 
21667 #endif
21668 
21669 HRESULT STDMETHODCALLTYPE IEnumObjects_RemoteNext_Proxy(
21670     IEnumObjects* This,
21671     ULONG celt,
21672     REFIID riid,
21673     void **rgelt,
21674     ULONG *pceltFetched);
21675 void __RPC_STUB IEnumObjects_RemoteNext_Stub(
21676     IRpcStubBuffer* This,
21677     IRpcChannelBuffer* pRpcChannelBuffer,
21678     PRPC_MESSAGE pRpcMessage,
21679     DWORD* pdwStubPhase);
21680 HRESULT STDMETHODCALLTYPE IEnumObjects_Skip_Proxy(
21681     IEnumObjects* This,
21682     ULONG celt);
21683 void __RPC_STUB IEnumObjects_Skip_Stub(
21684     IRpcStubBuffer* This,
21685     IRpcChannelBuffer* pRpcChannelBuffer,
21686     PRPC_MESSAGE pRpcMessage,
21687     DWORD* pdwStubPhase);
21688 HRESULT STDMETHODCALLTYPE IEnumObjects_Reset_Proxy(
21689     IEnumObjects* This);
21690 void __RPC_STUB IEnumObjects_Reset_Stub(
21691     IRpcStubBuffer* This,
21692     IRpcChannelBuffer* pRpcChannelBuffer,
21693     PRPC_MESSAGE pRpcMessage,
21694     DWORD* pdwStubPhase);
21695 HRESULT STDMETHODCALLTYPE IEnumObjects_Clone_Proxy(
21696     IEnumObjects* This,
21697     IEnumObjects **ppenum);
21698 void __RPC_STUB IEnumObjects_Clone_Stub(
21699     IRpcStubBuffer* This,
21700     IRpcChannelBuffer* pRpcChannelBuffer,
21701     PRPC_MESSAGE pRpcMessage,
21702     DWORD* pdwStubPhase);
21703 HRESULT CALLBACK IEnumObjects_Next_Proxy(
21704     IEnumObjects* This,
21705     ULONG celt,
21706     REFIID riid,
21707     void **rgelt,
21708     ULONG *pceltFetched);
21709 HRESULT __RPC_STUB IEnumObjects_Next_Stub(
21710     IEnumObjects* This,
21711     ULONG celt,
21712     REFIID riid,
21713     void **rgelt,
21714     ULONG *pceltFetched);
21715 
21716 #endif  /* __IEnumObjects_INTERFACE_DEFINED__ */
21717 
21718 
21719 enum _OPPROGDLGF {
21720     OPPROGDLG_DEFAULT = 0x0,
21721     OPPROGDLG_ENABLEPAUSE = 0x80,
21722     OPPROGDLG_ALLOWUNDO = 0x100,
21723     OPPROGDLG_DONTDISPLAYSOURCEPATH = 0x200,
21724     OPPROGDLG_DONTDISPLAYDESTPATH = 0x400,
21725     OPPROGDLG_NOMULTIDAYESTIMATES = 0x800,
21726     OPPROGDLG_DONTDISPLAYLOCATIONS = 0x1000
21727 };
21728 
21729 
21730 typedef DWORD OPPROGDLGF;
21731 
21732 /*****************************************************************************
21733  * IOperationsProgressDialog interface
21734  */
21735 #ifndef __IOperationsProgressDialog_INTERFACE_DEFINED__
21736 #define __IOperationsProgressDialog_INTERFACE_DEFINED__
21737 
21738 enum _PDMODE {
21739     PDM_DEFAULT = 0x0,
21740     PDM_RUN = 0x1,
21741     PDM_PREFLIGHT = 0x2,
21742     PDM_UNDOING = 0x4,
21743     PDM_ERRORSBLOCKING = 0x8,
21744     PDM_INDETERMINATE = 0x10
21745 };
21746 
21747 
21748 typedef DWORD PDMODE;
21749 
21750 typedef enum PDOPSTATUS {
21751     PDOPS_RUNNING = 1,
21752     PDOPS_PAUSED = 2,
21753     PDOPS_CANCELLED = 3,
21754     PDOPS_STOPPED = 4,
21755     PDOPS_ERRORS = 5
21756 } PDOPSTATUS;
21757 
21758 DEFINE_GUID(IID_IOperationsProgressDialog, 0x0c9fb851, 0xe5c9, 0x43eb, 0xa3,0x70, 0xf0,0x67,0x7b,0x13,0x87,0x4c);
21759 #if defined(__cplusplus) && !defined(CINTERFACE)
21760 MIDL_INTERFACE("0c9fb851-e5c9-43eb-a370-f0677b13874c")
21761 IOperationsProgressDialog : public IUnknown
21762 {
21763     virtual HRESULT STDMETHODCALLTYPE StartProgressDialog(
21764         HWND hwndOwner,
21765         OPPROGDLGF flags) = 0;
21766 
21767     virtual HRESULT STDMETHODCALLTYPE StopProgressDialog(
21768         ) = 0;
21769 
21770     virtual HRESULT STDMETHODCALLTYPE SetOperation(
21771         SPACTION action) = 0;
21772 
21773     virtual HRESULT STDMETHODCALLTYPE SetMode(
21774         PDMODE mode) = 0;
21775 
21776     virtual HRESULT STDMETHODCALLTYPE UpdateProgress(
21777         ULONGLONG ullPointsCurrent,
21778         ULONGLONG ullPointsTotal,
21779         ULONGLONG ullSizeCurrent,
21780         ULONGLONG ullSizeTotal,
21781         ULONGLONG ullItemsCurrent,
21782         ULONGLONG ullItemsTotal) = 0;
21783 
21784     virtual HRESULT STDMETHODCALLTYPE UpdateLocations(
21785         IShellItem *psiSource,
21786         IShellItem *psiTarget,
21787         IShellItem *psiItem) = 0;
21788 
21789     virtual HRESULT STDMETHODCALLTYPE ResetTimer(
21790         ) = 0;
21791 
21792     virtual HRESULT STDMETHODCALLTYPE PauseTimer(
21793         ) = 0;
21794 
21795     virtual HRESULT STDMETHODCALLTYPE ResumeTimer(
21796         ) = 0;
21797 
21798     virtual HRESULT STDMETHODCALLTYPE GetMilliseconds(
21799         ULONGLONG *pullElapsed,
21800         ULONGLONG *pullRemaining) = 0;
21801 
21802     virtual HRESULT STDMETHODCALLTYPE GetOperationStatus(
21803         PDOPSTATUS *popstatus) = 0;
21804 
21805 };
21806 #ifdef __CRT_UUID_DECL
21807 __CRT_UUID_DECL(IOperationsProgressDialog, 0x0c9fb851, 0xe5c9, 0x43eb, 0xa3,0x70, 0xf0,0x67,0x7b,0x13,0x87,0x4c)
21808 #endif
21809 #else
21810 typedef struct IOperationsProgressDialogVtbl {
21811     BEGIN_INTERFACE
21812 
21813     /*** IUnknown methods ***/
21814     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21815         IOperationsProgressDialog* This,
21816         REFIID riid,
21817         void **ppvObject);
21818 
21819     ULONG (STDMETHODCALLTYPE *AddRef)(
21820         IOperationsProgressDialog* This);
21821 
21822     ULONG (STDMETHODCALLTYPE *Release)(
21823         IOperationsProgressDialog* This);
21824 
21825     /*** IOperationsProgressDialog methods ***/
21826     HRESULT (STDMETHODCALLTYPE *StartProgressDialog)(
21827         IOperationsProgressDialog* This,
21828         HWND hwndOwner,
21829         OPPROGDLGF flags);
21830 
21831     HRESULT (STDMETHODCALLTYPE *StopProgressDialog)(
21832         IOperationsProgressDialog* This);
21833 
21834     HRESULT (STDMETHODCALLTYPE *SetOperation)(
21835         IOperationsProgressDialog* This,
21836         SPACTION action);
21837 
21838     HRESULT (STDMETHODCALLTYPE *SetMode)(
21839         IOperationsProgressDialog* This,
21840         PDMODE mode);
21841 
21842     HRESULT (STDMETHODCALLTYPE *UpdateProgress)(
21843         IOperationsProgressDialog* This,
21844         ULONGLONG ullPointsCurrent,
21845         ULONGLONG ullPointsTotal,
21846         ULONGLONG ullSizeCurrent,
21847         ULONGLONG ullSizeTotal,
21848         ULONGLONG ullItemsCurrent,
21849         ULONGLONG ullItemsTotal);
21850 
21851     HRESULT (STDMETHODCALLTYPE *UpdateLocations)(
21852         IOperationsProgressDialog* This,
21853         IShellItem *psiSource,
21854         IShellItem *psiTarget,
21855         IShellItem *psiItem);
21856 
21857     HRESULT (STDMETHODCALLTYPE *ResetTimer)(
21858         IOperationsProgressDialog* This);
21859 
21860     HRESULT (STDMETHODCALLTYPE *PauseTimer)(
21861         IOperationsProgressDialog* This);
21862 
21863     HRESULT (STDMETHODCALLTYPE *ResumeTimer)(
21864         IOperationsProgressDialog* This);
21865 
21866     HRESULT (STDMETHODCALLTYPE *GetMilliseconds)(
21867         IOperationsProgressDialog* This,
21868         ULONGLONG *pullElapsed,
21869         ULONGLONG *pullRemaining);
21870 
21871     HRESULT (STDMETHODCALLTYPE *GetOperationStatus)(
21872         IOperationsProgressDialog* This,
21873         PDOPSTATUS *popstatus);
21874 
21875     END_INTERFACE
21876 } IOperationsProgressDialogVtbl;
21877 interface IOperationsProgressDialog {
21878     CONST_VTBL IOperationsProgressDialogVtbl* lpVtbl;
21879 };
21880 
21881 #ifdef COBJMACROS
21882 #ifndef WIDL_C_INLINE_WRAPPERS
21883 /*** IUnknown methods ***/
21884 #define IOperationsProgressDialog_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21885 #define IOperationsProgressDialog_AddRef(This) (This)->lpVtbl->AddRef(This)
21886 #define IOperationsProgressDialog_Release(This) (This)->lpVtbl->Release(This)
21887 /*** IOperationsProgressDialog methods ***/
21888 #define IOperationsProgressDialog_StartProgressDialog(This,hwndOwner,flags) (This)->lpVtbl->StartProgressDialog(This,hwndOwner,flags)
21889 #define IOperationsProgressDialog_StopProgressDialog(This) (This)->lpVtbl->StopProgressDialog(This)
21890 #define IOperationsProgressDialog_SetOperation(This,action) (This)->lpVtbl->SetOperation(This,action)
21891 #define IOperationsProgressDialog_SetMode(This,mode) (This)->lpVtbl->SetMode(This,mode)
21892 #define IOperationsProgressDialog_UpdateProgress(This,ullPointsCurrent,ullPointsTotal,ullSizeCurrent,ullSizeTotal,ullItemsCurrent,ullItemsTotal) (This)->lpVtbl->UpdateProgress(This,ullPointsCurrent,ullPointsTotal,ullSizeCurrent,ullSizeTotal,ullItemsCurrent,ullItemsTotal)
21893 #define IOperationsProgressDialog_UpdateLocations(This,psiSource,psiTarget,psiItem) (This)->lpVtbl->UpdateLocations(This,psiSource,psiTarget,psiItem)
21894 #define IOperationsProgressDialog_ResetTimer(This) (This)->lpVtbl->ResetTimer(This)
21895 #define IOperationsProgressDialog_PauseTimer(This) (This)->lpVtbl->PauseTimer(This)
21896 #define IOperationsProgressDialog_ResumeTimer(This) (This)->lpVtbl->ResumeTimer(This)
21897 #define IOperationsProgressDialog_GetMilliseconds(This,pullElapsed,pullRemaining) (This)->lpVtbl->GetMilliseconds(This,pullElapsed,pullRemaining)
21898 #define IOperationsProgressDialog_GetOperationStatus(This,popstatus) (This)->lpVtbl->GetOperationStatus(This,popstatus)
21899 #else
21900 /*** IUnknown methods ***/
21901 static FORCEINLINE HRESULT IOperationsProgressDialog_QueryInterface(IOperationsProgressDialog* This,REFIID riid,void **ppvObject) {
21902     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21903 }
21904 static FORCEINLINE ULONG IOperationsProgressDialog_AddRef(IOperationsProgressDialog* This) {
21905     return This->lpVtbl->AddRef(This);
21906 }
21907 static FORCEINLINE ULONG IOperationsProgressDialog_Release(IOperationsProgressDialog* This) {
21908     return This->lpVtbl->Release(This);
21909 }
21910 /*** IOperationsProgressDialog methods ***/
21911 static FORCEINLINE HRESULT IOperationsProgressDialog_StartProgressDialog(IOperationsProgressDialog* This,HWND hwndOwner,OPPROGDLGF flags) {
21912     return This->lpVtbl->StartProgressDialog(This,hwndOwner,flags);
21913 }
21914 static FORCEINLINE HRESULT IOperationsProgressDialog_StopProgressDialog(IOperationsProgressDialog* This) {
21915     return This->lpVtbl->StopProgressDialog(This);
21916 }
21917 static FORCEINLINE HRESULT IOperationsProgressDialog_SetOperation(IOperationsProgressDialog* This,SPACTION action) {
21918     return This->lpVtbl->SetOperation(This,action);
21919 }
21920 static FORCEINLINE HRESULT IOperationsProgressDialog_SetMode(IOperationsProgressDialog* This,PDMODE mode) {
21921     return This->lpVtbl->SetMode(This,mode);
21922 }
21923 static FORCEINLINE HRESULT IOperationsProgressDialog_UpdateProgress(IOperationsProgressDialog* This,ULONGLONG ullPointsCurrent,ULONGLONG ullPointsTotal,ULONGLONG ullSizeCurrent,ULONGLONG ullSizeTotal,ULONGLONG ullItemsCurrent,ULONGLONG ullItemsTotal) {
21924     return This->lpVtbl->UpdateProgress(This,ullPointsCurrent,ullPointsTotal,ullSizeCurrent,ullSizeTotal,ullItemsCurrent,ullItemsTotal);
21925 }
21926 static FORCEINLINE HRESULT IOperationsProgressDialog_UpdateLocations(IOperationsProgressDialog* This,IShellItem *psiSource,IShellItem *psiTarget,IShellItem *psiItem) {
21927     return This->lpVtbl->UpdateLocations(This,psiSource,psiTarget,psiItem);
21928 }
21929 static FORCEINLINE HRESULT IOperationsProgressDialog_ResetTimer(IOperationsProgressDialog* This) {
21930     return This->lpVtbl->ResetTimer(This);
21931 }
21932 static FORCEINLINE HRESULT IOperationsProgressDialog_PauseTimer(IOperationsProgressDialog* This) {
21933     return This->lpVtbl->PauseTimer(This);
21934 }
21935 static FORCEINLINE HRESULT IOperationsProgressDialog_ResumeTimer(IOperationsProgressDialog* This) {
21936     return This->lpVtbl->ResumeTimer(This);
21937 }
21938 static FORCEINLINE HRESULT IOperationsProgressDialog_GetMilliseconds(IOperationsProgressDialog* This,ULONGLONG *pullElapsed,ULONGLONG *pullRemaining) {
21939     return This->lpVtbl->GetMilliseconds(This,pullElapsed,pullRemaining);
21940 }
21941 static FORCEINLINE HRESULT IOperationsProgressDialog_GetOperationStatus(IOperationsProgressDialog* This,PDOPSTATUS *popstatus) {
21942     return This->lpVtbl->GetOperationStatus(This,popstatus);
21943 }
21944 #endif
21945 #endif
21946 
21947 #endif
21948 
21949 HRESULT STDMETHODCALLTYPE IOperationsProgressDialog_StartProgressDialog_Proxy(
21950     IOperationsProgressDialog* This,
21951     HWND hwndOwner,
21952     OPPROGDLGF flags);
21953 void __RPC_STUB IOperationsProgressDialog_StartProgressDialog_Stub(
21954     IRpcStubBuffer* This,
21955     IRpcChannelBuffer* pRpcChannelBuffer,
21956     PRPC_MESSAGE pRpcMessage,
21957     DWORD* pdwStubPhase);
21958 HRESULT STDMETHODCALLTYPE IOperationsProgressDialog_StopProgressDialog_Proxy(
21959     IOperationsProgressDialog* This);
21960 void __RPC_STUB IOperationsProgressDialog_StopProgressDialog_Stub(
21961     IRpcStubBuffer* This,
21962     IRpcChannelBuffer* pRpcChannelBuffer,
21963     PRPC_MESSAGE pRpcMessage,
21964     DWORD* pdwStubPhase);
21965 HRESULT STDMETHODCALLTYPE IOperationsProgressDialog_SetOperation_Proxy(
21966     IOperationsProgressDialog* This,
21967     SPACTION action);
21968 void __RPC_STUB IOperationsProgressDialog_SetOperation_Stub(
21969     IRpcStubBuffer* This,
21970     IRpcChannelBuffer* pRpcChannelBuffer,
21971     PRPC_MESSAGE pRpcMessage,
21972     DWORD* pdwStubPhase);
21973 HRESULT STDMETHODCALLTYPE IOperationsProgressDialog_SetMode_Proxy(
21974     IOperationsProgressDialog* This,
21975     PDMODE mode);
21976 void __RPC_STUB IOperationsProgressDialog_SetMode_Stub(
21977     IRpcStubBuffer* This,
21978     IRpcChannelBuffer* pRpcChannelBuffer,
21979     PRPC_MESSAGE pRpcMessage,
21980     DWORD* pdwStubPhase);
21981 HRESULT STDMETHODCALLTYPE IOperationsProgressDialog_UpdateProgress_Proxy(
21982     IOperationsProgressDialog* This,
21983     ULONGLONG ullPointsCurrent,
21984     ULONGLONG ullPointsTotal,
21985     ULONGLONG ullSizeCurrent,
21986     ULONGLONG ullSizeTotal,
21987     ULONGLONG ullItemsCurrent,
21988     ULONGLONG ullItemsTotal);
21989 void __RPC_STUB IOperationsProgressDialog_UpdateProgress_Stub(
21990     IRpcStubBuffer* This,
21991     IRpcChannelBuffer* pRpcChannelBuffer,
21992     PRPC_MESSAGE pRpcMessage,
21993     DWORD* pdwStubPhase);
21994 HRESULT STDMETHODCALLTYPE IOperationsProgressDialog_UpdateLocations_Proxy(
21995     IOperationsProgressDialog* This,
21996     IShellItem *psiSource,
21997     IShellItem *psiTarget,
21998     IShellItem *psiItem);
21999 void __RPC_STUB IOperationsProgressDialog_UpdateLocations_Stub(
22000     IRpcStubBuffer* This,
22001     IRpcChannelBuffer* pRpcChannelBuffer,
22002     PRPC_MESSAGE pRpcMessage,
22003     DWORD* pdwStubPhase);
22004 HRESULT STDMETHODCALLTYPE IOperationsProgressDialog_ResetTimer_Proxy(
22005     IOperationsProgressDialog* This);
22006 void __RPC_STUB IOperationsProgressDialog_ResetTimer_Stub(
22007     IRpcStubBuffer* This,
22008     IRpcChannelBuffer* pRpcChannelBuffer,
22009     PRPC_MESSAGE pRpcMessage,
22010     DWORD* pdwStubPhase);
22011 HRESULT STDMETHODCALLTYPE IOperationsProgressDialog_PauseTimer_Proxy(
22012     IOperationsProgressDialog* This);
22013 void __RPC_STUB IOperationsProgressDialog_PauseTimer_Stub(
22014     IRpcStubBuffer* This,
22015     IRpcChannelBuffer* pRpcChannelBuffer,
22016     PRPC_MESSAGE pRpcMessage,
22017     DWORD* pdwStubPhase);
22018 HRESULT STDMETHODCALLTYPE IOperationsProgressDialog_ResumeTimer_Proxy(
22019     IOperationsProgressDialog* This);
22020 void __RPC_STUB IOperationsProgressDialog_ResumeTimer_Stub(
22021     IRpcStubBuffer* This,
22022     IRpcChannelBuffer* pRpcChannelBuffer,
22023     PRPC_MESSAGE pRpcMessage,
22024     DWORD* pdwStubPhase);
22025 HRESULT STDMETHODCALLTYPE IOperationsProgressDialog_GetMilliseconds_Proxy(
22026     IOperationsProgressDialog* This,
22027     ULONGLONG *pullElapsed,
22028     ULONGLONG *pullRemaining);
22029 void __RPC_STUB IOperationsProgressDialog_GetMilliseconds_Stub(
22030     IRpcStubBuffer* This,
22031     IRpcChannelBuffer* pRpcChannelBuffer,
22032     PRPC_MESSAGE pRpcMessage,
22033     DWORD* pdwStubPhase);
22034 HRESULT STDMETHODCALLTYPE IOperationsProgressDialog_GetOperationStatus_Proxy(
22035     IOperationsProgressDialog* This,
22036     PDOPSTATUS *popstatus);
22037 void __RPC_STUB IOperationsProgressDialog_GetOperationStatus_Stub(
22038     IRpcStubBuffer* This,
22039     IRpcChannelBuffer* pRpcChannelBuffer,
22040     PRPC_MESSAGE pRpcMessage,
22041     DWORD* pdwStubPhase);
22042 
22043 #endif  /* __IOperationsProgressDialog_INTERFACE_DEFINED__ */
22044 
22045 
22046 /*****************************************************************************
22047  * IIOCancelInformation interface
22048  */
22049 #ifndef __IIOCancelInformation_INTERFACE_DEFINED__
22050 #define __IIOCancelInformation_INTERFACE_DEFINED__
22051 
22052 DEFINE_GUID(IID_IIOCancelInformation, 0xf5b0bf81, 0x8cb5, 0x4b1b, 0x94,0x49, 0x1a,0x15,0x9e,0x0c,0x73,0x3c);
22053 #if defined(__cplusplus) && !defined(CINTERFACE)
22054 MIDL_INTERFACE("f5b0bf81-8cb5-4b1b-9449-1a159e0c733c")
22055 IIOCancelInformation : public IUnknown
22056 {
22057     virtual HRESULT STDMETHODCALLTYPE SetCancelInformation(
22058         DWORD dwThreadID,
22059         UINT uMsgCancel) = 0;
22060 
22061     virtual HRESULT STDMETHODCALLTYPE GetCancelInformation(
22062         DWORD *pdwThreadID,
22063         UINT *puMsgCancel) = 0;
22064 
22065 };
22066 #ifdef __CRT_UUID_DECL
22067 __CRT_UUID_DECL(IIOCancelInformation, 0xf5b0bf81, 0x8cb5, 0x4b1b, 0x94,0x49, 0x1a,0x15,0x9e,0x0c,0x73,0x3c)
22068 #endif
22069 #else
22070 typedef struct IIOCancelInformationVtbl {
22071     BEGIN_INTERFACE
22072 
22073     /*** IUnknown methods ***/
22074     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22075         IIOCancelInformation* This,
22076         REFIID riid,
22077         void **ppvObject);
22078 
22079     ULONG (STDMETHODCALLTYPE *AddRef)(
22080         IIOCancelInformation* This);
22081 
22082     ULONG (STDMETHODCALLTYPE *Release)(
22083         IIOCancelInformation* This);
22084 
22085     /*** IIOCancelInformation methods ***/
22086     HRESULT (STDMETHODCALLTYPE *SetCancelInformation)(
22087         IIOCancelInformation* This,
22088         DWORD dwThreadID,
22089         UINT uMsgCancel);
22090 
22091     HRESULT (STDMETHODCALLTYPE *GetCancelInformation)(
22092         IIOCancelInformation* This,
22093         DWORD *pdwThreadID,
22094         UINT *puMsgCancel);
22095 
22096     END_INTERFACE
22097 } IIOCancelInformationVtbl;
22098 interface IIOCancelInformation {
22099     CONST_VTBL IIOCancelInformationVtbl* lpVtbl;
22100 };
22101 
22102 #ifdef COBJMACROS
22103 #ifndef WIDL_C_INLINE_WRAPPERS
22104 /*** IUnknown methods ***/
22105 #define IIOCancelInformation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22106 #define IIOCancelInformation_AddRef(This) (This)->lpVtbl->AddRef(This)
22107 #define IIOCancelInformation_Release(This) (This)->lpVtbl->Release(This)
22108 /*** IIOCancelInformation methods ***/
22109 #define IIOCancelInformation_SetCancelInformation(This,dwThreadID,uMsgCancel) (This)->lpVtbl->SetCancelInformation(This,dwThreadID,uMsgCancel)
22110 #define IIOCancelInformation_GetCancelInformation(This,pdwThreadID,puMsgCancel) (This)->lpVtbl->GetCancelInformation(This,pdwThreadID,puMsgCancel)
22111 #else
22112 /*** IUnknown methods ***/
22113 static FORCEINLINE HRESULT IIOCancelInformation_QueryInterface(IIOCancelInformation* This,REFIID riid,void **ppvObject) {
22114     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22115 }
22116 static FORCEINLINE ULONG IIOCancelInformation_AddRef(IIOCancelInformation* This) {
22117     return This->lpVtbl->AddRef(This);
22118 }
22119 static FORCEINLINE ULONG IIOCancelInformation_Release(IIOCancelInformation* This) {
22120     return This->lpVtbl->Release(This);
22121 }
22122 /*** IIOCancelInformation methods ***/
22123 static FORCEINLINE HRESULT IIOCancelInformation_SetCancelInformation(IIOCancelInformation* This,DWORD dwThreadID,UINT uMsgCancel) {
22124     return This->lpVtbl->SetCancelInformation(This,dwThreadID,uMsgCancel);
22125 }
22126 static FORCEINLINE HRESULT IIOCancelInformation_GetCancelInformation(IIOCancelInformation* This,DWORD *pdwThreadID,UINT *puMsgCancel) {
22127     return This->lpVtbl->GetCancelInformation(This,pdwThreadID,puMsgCancel);
22128 }
22129 #endif
22130 #endif
22131 
22132 #endif
22133 
22134 HRESULT STDMETHODCALLTYPE IIOCancelInformation_SetCancelInformation_Proxy(
22135     IIOCancelInformation* This,
22136     DWORD dwThreadID,
22137     UINT uMsgCancel);
22138 void __RPC_STUB IIOCancelInformation_SetCancelInformation_Stub(
22139     IRpcStubBuffer* This,
22140     IRpcChannelBuffer* pRpcChannelBuffer,
22141     PRPC_MESSAGE pRpcMessage,
22142     DWORD* pdwStubPhase);
22143 HRESULT STDMETHODCALLTYPE IIOCancelInformation_GetCancelInformation_Proxy(
22144     IIOCancelInformation* This,
22145     DWORD *pdwThreadID,
22146     UINT *puMsgCancel);
22147 void __RPC_STUB IIOCancelInformation_GetCancelInformation_Stub(
22148     IRpcStubBuffer* This,
22149     IRpcChannelBuffer* pRpcChannelBuffer,
22150     PRPC_MESSAGE pRpcMessage,
22151     DWORD* pdwStubPhase);
22152 
22153 #endif  /* __IIOCancelInformation_INTERFACE_DEFINED__ */
22154 
22155 
22156 #define FOFX_NOSKIPJUNCTIONS 0x00010000
22157 #define FOFX_PREFERHARDLINK 0x00020000
22158 #define FOFX_SHOWELEVATIONPROMPT 0x00040000
22159 #define FOFX_RECYCLEONDELETE 0x00080000
22160 #define FOFX_EARLYFAILURE 0x00100000
22161 #define FOFX_PRESERVEFILEEXTENSIONS 0x00200000
22162 #define FOFX_KEEPNEWERFILE 0x00400000
22163 #define FOFX_NOCOPYHOOKS 0x00800000
22164 #define FOFX_NOMINIMIZEBOX 0x01000000
22165 #define FOFX_MOVEACLSACROSSVOLUMES 0x02000000
22166 #define FOFX_DONTDISPLAYSOURCEPATH 0x04000000
22167 #define FOFX_DONTDISPLAYDESTPATH 0x08000000
22168 #define FOFX_REQUIREELEVATION 0x10000000
22169 #define FOFX_ADDUNDORECORD 0x20000000
22170 #define FOFX_COPYASDOWNLOAD 0x40000000
22171 #define FOFX_DONTDISPLAYLOCATIONS 0x80000000
22172 
22173 /*****************************************************************************
22174  * IFileOperation interface
22175  */
22176 #ifndef __IFileOperation_INTERFACE_DEFINED__
22177 #define __IFileOperation_INTERFACE_DEFINED__
22178 
22179 DEFINE_GUID(IID_IFileOperation, 0x947aab5f, 0x0a5c, 0x4c13, 0xb4,0xd6, 0x4b,0xf7,0x83,0x6f,0xc9,0xf8);
22180 #if defined(__cplusplus) && !defined(CINTERFACE)
22181 MIDL_INTERFACE("947aab5f-0a5c-4c13-b4d6-4bf7836fc9f8")
22182 IFileOperation : public IUnknown
22183 {
22184     virtual HRESULT STDMETHODCALLTYPE Advise(
22185         IFileOperationProgressSink *pfops,
22186         DWORD *pdwCookie) = 0;
22187 
22188     virtual HRESULT STDMETHODCALLTYPE Unadvise(
22189         DWORD dwCookie) = 0;
22190 
22191     virtual HRESULT STDMETHODCALLTYPE SetOperationFlags(
22192         DWORD dwOperationFlags) = 0;
22193 
22194     virtual HRESULT STDMETHODCALLTYPE SetProgressMessage(
22195         LPCWSTR pszMessage) = 0;
22196 
22197     virtual HRESULT STDMETHODCALLTYPE SetProgressDialog(
22198         IOperationsProgressDialog *popd) = 0;
22199 
22200     virtual HRESULT STDMETHODCALLTYPE SetProperties(
22201         IPropertyChangeArray *pproparray) = 0;
22202 
22203     virtual HRESULT STDMETHODCALLTYPE SetOwnerWindow(
22204         HWND hwndOwner) = 0;
22205 
22206     virtual HRESULT STDMETHODCALLTYPE ApplyPropertiesToItem(
22207         IShellItem *psiItem) = 0;
22208 
22209     virtual HRESULT STDMETHODCALLTYPE ApplyPropertiesToItems(
22210         IUnknown *punkItems) = 0;
22211 
22212     virtual HRESULT STDMETHODCALLTYPE RenameItem(
22213         IShellItem *psiItem,
22214         LPCWSTR pszNewName,
22215         IFileOperationProgressSink *pfopsItem) = 0;
22216 
22217     virtual HRESULT STDMETHODCALLTYPE RenameItems(
22218         IUnknown *pUnkItems,
22219         LPCWSTR pszNewName) = 0;
22220 
22221     virtual HRESULT STDMETHODCALLTYPE MoveItem(
22222         IShellItem *psiItem,
22223         IShellItem *psiDestinationFolder,
22224         LPCWSTR pszNewName,
22225         IFileOperationProgressSink *pfopsItem) = 0;
22226 
22227     virtual HRESULT STDMETHODCALLTYPE MoveItems(
22228         IUnknown *punkItems,
22229         IShellItem *psiDestinationFolder) = 0;
22230 
22231     virtual HRESULT STDMETHODCALLTYPE CopyItem(
22232         IShellItem *psiItem,
22233         IShellItem *psiDestinationFolder,
22234         LPCWSTR pszCopyName,
22235         IFileOperationProgressSink *pfopsItem) = 0;
22236 
22237     virtual HRESULT STDMETHODCALLTYPE CopyItems(
22238         IUnknown *punkItems,
22239         IShellItem *psiDestinationFolder) = 0;
22240 
22241     virtual HRESULT STDMETHODCALLTYPE DeleteItem(
22242         IShellItem *psiItem,
22243         IFileOperationProgressSink *pfopsItem) = 0;
22244 
22245     virtual HRESULT STDMETHODCALLTYPE DeleteItems(
22246         IUnknown *punkItems) = 0;
22247 
22248     virtual HRESULT STDMETHODCALLTYPE NewItem(
22249         IShellItem *psiDestinationFolder,
22250         DWORD dwFileAttributes,
22251         LPCWSTR pszName,
22252         LPCWSTR pszTemplateName,
22253         IFileOperationProgressSink *pfopsItem) = 0;
22254 
22255     virtual HRESULT STDMETHODCALLTYPE PerformOperations(
22256         ) = 0;
22257 
22258     virtual HRESULT STDMETHODCALLTYPE GetAnyOperationsAborted(
22259         WINBOOL *pfAnyOperationsAborted) = 0;
22260 
22261 };
22262 #ifdef __CRT_UUID_DECL
22263 __CRT_UUID_DECL(IFileOperation, 0x947aab5f, 0x0a5c, 0x4c13, 0xb4,0xd6, 0x4b,0xf7,0x83,0x6f,0xc9,0xf8)
22264 #endif
22265 #else
22266 typedef struct IFileOperationVtbl {
22267     BEGIN_INTERFACE
22268 
22269     /*** IUnknown methods ***/
22270     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22271         IFileOperation* This,
22272         REFIID riid,
22273         void **ppvObject);
22274 
22275     ULONG (STDMETHODCALLTYPE *AddRef)(
22276         IFileOperation* This);
22277 
22278     ULONG (STDMETHODCALLTYPE *Release)(
22279         IFileOperation* This);
22280 
22281     /*** IFileOperation methods ***/
22282     HRESULT (STDMETHODCALLTYPE *Advise)(
22283         IFileOperation* This,
22284         IFileOperationProgressSink *pfops,
22285         DWORD *pdwCookie);
22286 
22287     HRESULT (STDMETHODCALLTYPE *Unadvise)(
22288         IFileOperation* This,
22289         DWORD dwCookie);
22290 
22291     HRESULT (STDMETHODCALLTYPE *SetOperationFlags)(
22292         IFileOperation* This,
22293         DWORD dwOperationFlags);
22294 
22295     HRESULT (STDMETHODCALLTYPE *SetProgressMessage)(
22296         IFileOperation* This,
22297         LPCWSTR pszMessage);
22298 
22299     HRESULT (STDMETHODCALLTYPE *SetProgressDialog)(
22300         IFileOperation* This,
22301         IOperationsProgressDialog *popd);
22302 
22303     HRESULT (STDMETHODCALLTYPE *SetProperties)(
22304         IFileOperation* This,
22305         IPropertyChangeArray *pproparray);
22306 
22307     HRESULT (STDMETHODCALLTYPE *SetOwnerWindow)(
22308         IFileOperation* This,
22309         HWND hwndOwner);
22310 
22311     HRESULT (STDMETHODCALLTYPE *ApplyPropertiesToItem)(
22312         IFileOperation* This,
22313         IShellItem *psiItem);
22314 
22315     HRESULT (STDMETHODCALLTYPE *ApplyPropertiesToItems)(
22316         IFileOperation* This,
22317         IUnknown *punkItems);
22318 
22319     HRESULT (STDMETHODCALLTYPE *RenameItem)(
22320         IFileOperation* This,
22321         IShellItem *psiItem,
22322         LPCWSTR pszNewName,
22323         IFileOperationProgressSink *pfopsItem);
22324 
22325     HRESULT (STDMETHODCALLTYPE *RenameItems)(
22326         IFileOperation* This,
22327         IUnknown *pUnkItems,
22328         LPCWSTR pszNewName);
22329 
22330     HRESULT (STDMETHODCALLTYPE *MoveItem)(
22331         IFileOperation* This,
22332         IShellItem *psiItem,
22333         IShellItem *psiDestinationFolder,
22334         LPCWSTR pszNewName,
22335         IFileOperationProgressSink *pfopsItem);
22336 
22337     HRESULT (STDMETHODCALLTYPE *MoveItems)(
22338         IFileOperation* This,
22339         IUnknown *punkItems,
22340         IShellItem *psiDestinationFolder);
22341 
22342     HRESULT (STDMETHODCALLTYPE *CopyItem)(
22343         IFileOperation* This,
22344         IShellItem *psiItem,
22345         IShellItem *psiDestinationFolder,
22346         LPCWSTR pszCopyName,
22347         IFileOperationProgressSink *pfopsItem);
22348 
22349     HRESULT (STDMETHODCALLTYPE *CopyItems)(
22350         IFileOperation* This,
22351         IUnknown *punkItems,
22352         IShellItem *psiDestinationFolder);
22353 
22354     HRESULT (STDMETHODCALLTYPE *DeleteItem)(
22355         IFileOperation* This,
22356         IShellItem *psiItem,
22357         IFileOperationProgressSink *pfopsItem);
22358 
22359     HRESULT (STDMETHODCALLTYPE *DeleteItems)(
22360         IFileOperation* This,
22361         IUnknown *punkItems);
22362 
22363     HRESULT (STDMETHODCALLTYPE *NewItem)(
22364         IFileOperation* This,
22365         IShellItem *psiDestinationFolder,
22366         DWORD dwFileAttributes,
22367         LPCWSTR pszName,
22368         LPCWSTR pszTemplateName,
22369         IFileOperationProgressSink *pfopsItem);
22370 
22371     HRESULT (STDMETHODCALLTYPE *PerformOperations)(
22372         IFileOperation* This);
22373 
22374     HRESULT (STDMETHODCALLTYPE *GetAnyOperationsAborted)(
22375         IFileOperation* This,
22376         WINBOOL *pfAnyOperationsAborted);
22377 
22378     END_INTERFACE
22379 } IFileOperationVtbl;
22380 interface IFileOperation {
22381     CONST_VTBL IFileOperationVtbl* lpVtbl;
22382 };
22383 
22384 #ifdef COBJMACROS
22385 #ifndef WIDL_C_INLINE_WRAPPERS
22386 /*** IUnknown methods ***/
22387 #define IFileOperation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22388 #define IFileOperation_AddRef(This) (This)->lpVtbl->AddRef(This)
22389 #define IFileOperation_Release(This) (This)->lpVtbl->Release(This)
22390 /*** IFileOperation methods ***/
22391 #define IFileOperation_Advise(This,pfops,pdwCookie) (This)->lpVtbl->Advise(This,pfops,pdwCookie)
22392 #define IFileOperation_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
22393 #define IFileOperation_SetOperationFlags(This,dwOperationFlags) (This)->lpVtbl->SetOperationFlags(This,dwOperationFlags)
22394 #define IFileOperation_SetProgressMessage(This,pszMessage) (This)->lpVtbl->SetProgressMessage(This,pszMessage)
22395 #define IFileOperation_SetProgressDialog(This,popd) (This)->lpVtbl->SetProgressDialog(This,popd)
22396 #define IFileOperation_SetProperties(This,pproparray) (This)->lpVtbl->SetProperties(This,pproparray)
22397 #define IFileOperation_SetOwnerWindow(This,hwndOwner) (This)->lpVtbl->SetOwnerWindow(This,hwndOwner)
22398 #define IFileOperation_ApplyPropertiesToItem(This,psiItem) (This)->lpVtbl->ApplyPropertiesToItem(This,psiItem)
22399 #define IFileOperation_ApplyPropertiesToItems(This,punkItems) (This)->lpVtbl->ApplyPropertiesToItems(This,punkItems)
22400 #define IFileOperation_RenameItem(This,psiItem,pszNewName,pfopsItem) (This)->lpVtbl->RenameItem(This,psiItem,pszNewName,pfopsItem)
22401 #define IFileOperation_RenameItems(This,pUnkItems,pszNewName) (This)->lpVtbl->RenameItems(This,pUnkItems,pszNewName)
22402 #define IFileOperation_MoveItem(This,psiItem,psiDestinationFolder,pszNewName,pfopsItem) (This)->lpVtbl->MoveItem(This,psiItem,psiDestinationFolder,pszNewName,pfopsItem)
22403 #define IFileOperation_MoveItems(This,punkItems,psiDestinationFolder) (This)->lpVtbl->MoveItems(This,punkItems,psiDestinationFolder)
22404 #define IFileOperation_CopyItem(This,psiItem,psiDestinationFolder,pszCopyName,pfopsItem) (This)->lpVtbl->CopyItem(This,psiItem,psiDestinationFolder,pszCopyName,pfopsItem)
22405 #define IFileOperation_CopyItems(This,punkItems,psiDestinationFolder) (This)->lpVtbl->CopyItems(This,punkItems,psiDestinationFolder)
22406 #define IFileOperation_DeleteItem(This,psiItem,pfopsItem) (This)->lpVtbl->DeleteItem(This,psiItem,pfopsItem)
22407 #define IFileOperation_DeleteItems(This,punkItems) (This)->lpVtbl->DeleteItems(This,punkItems)
22408 #define IFileOperation_NewItem(This,psiDestinationFolder,dwFileAttributes,pszName,pszTemplateName,pfopsItem) (This)->lpVtbl->NewItem(This,psiDestinationFolder,dwFileAttributes,pszName,pszTemplateName,pfopsItem)
22409 #define IFileOperation_PerformOperations(This) (This)->lpVtbl->PerformOperations(This)
22410 #define IFileOperation_GetAnyOperationsAborted(This,pfAnyOperationsAborted) (This)->lpVtbl->GetAnyOperationsAborted(This,pfAnyOperationsAborted)
22411 #else
22412 /*** IUnknown methods ***/
22413 static FORCEINLINE HRESULT IFileOperation_QueryInterface(IFileOperation* This,REFIID riid,void **ppvObject) {
22414     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22415 }
22416 static FORCEINLINE ULONG IFileOperation_AddRef(IFileOperation* This) {
22417     return This->lpVtbl->AddRef(This);
22418 }
22419 static FORCEINLINE ULONG IFileOperation_Release(IFileOperation* This) {
22420     return This->lpVtbl->Release(This);
22421 }
22422 /*** IFileOperation methods ***/
22423 static FORCEINLINE HRESULT IFileOperation_Advise(IFileOperation* This,IFileOperationProgressSink *pfops,DWORD *pdwCookie) {
22424     return This->lpVtbl->Advise(This,pfops,pdwCookie);
22425 }
22426 static FORCEINLINE HRESULT IFileOperation_Unadvise(IFileOperation* This,DWORD dwCookie) {
22427     return This->lpVtbl->Unadvise(This,dwCookie);
22428 }
22429 static FORCEINLINE HRESULT IFileOperation_SetOperationFlags(IFileOperation* This,DWORD dwOperationFlags) {
22430     return This->lpVtbl->SetOperationFlags(This,dwOperationFlags);
22431 }
22432 static FORCEINLINE HRESULT IFileOperation_SetProgressMessage(IFileOperation* This,LPCWSTR pszMessage) {
22433     return This->lpVtbl->SetProgressMessage(This,pszMessage);
22434 }
22435 static FORCEINLINE HRESULT IFileOperation_SetProgressDialog(IFileOperation* This,IOperationsProgressDialog *popd) {
22436     return This->lpVtbl->SetProgressDialog(This,popd);
22437 }
22438 static FORCEINLINE HRESULT IFileOperation_SetProperties(IFileOperation* This,IPropertyChangeArray *pproparray) {
22439     return This->lpVtbl->SetProperties(This,pproparray);
22440 }
22441 static FORCEINLINE HRESULT IFileOperation_SetOwnerWindow(IFileOperation* This,HWND hwndOwner) {
22442     return This->lpVtbl->SetOwnerWindow(This,hwndOwner);
22443 }
22444 static FORCEINLINE HRESULT IFileOperation_ApplyPropertiesToItem(IFileOperation* This,IShellItem *psiItem) {
22445     return This->lpVtbl->ApplyPropertiesToItem(This,psiItem);
22446 }
22447 static FORCEINLINE HRESULT IFileOperation_ApplyPropertiesToItems(IFileOperation* This,IUnknown *punkItems) {
22448     return This->lpVtbl->ApplyPropertiesToItems(This,punkItems);
22449 }
22450 static FORCEINLINE HRESULT IFileOperation_RenameItem(IFileOperation* This,IShellItem *psiItem,LPCWSTR pszNewName,IFileOperationProgressSink *pfopsItem) {
22451     return This->lpVtbl->RenameItem(This,psiItem,pszNewName,pfopsItem);
22452 }
22453 static FORCEINLINE HRESULT IFileOperation_RenameItems(IFileOperation* This,IUnknown *pUnkItems,LPCWSTR pszNewName) {
22454     return This->lpVtbl->RenameItems(This,pUnkItems,pszNewName);
22455 }
22456 static FORCEINLINE HRESULT IFileOperation_MoveItem(IFileOperation* This,IShellItem *psiItem,IShellItem *psiDestinationFolder,LPCWSTR pszNewName,IFileOperationProgressSink *pfopsItem) {
22457     return This->lpVtbl->MoveItem(This,psiItem,psiDestinationFolder,pszNewName,pfopsItem);
22458 }
22459 static FORCEINLINE HRESULT IFileOperation_MoveItems(IFileOperation* This,IUnknown *punkItems,IShellItem *psiDestinationFolder) {
22460     return This->lpVtbl->MoveItems(This,punkItems,psiDestinationFolder);
22461 }
22462 static FORCEINLINE HRESULT IFileOperation_CopyItem(IFileOperation* This,IShellItem *psiItem,IShellItem *psiDestinationFolder,LPCWSTR pszCopyName,IFileOperationProgressSink *pfopsItem) {
22463     return This->lpVtbl->CopyItem(This,psiItem,psiDestinationFolder,pszCopyName,pfopsItem);
22464 }
22465 static FORCEINLINE HRESULT IFileOperation_CopyItems(IFileOperation* This,IUnknown *punkItems,IShellItem *psiDestinationFolder) {
22466     return This->lpVtbl->CopyItems(This,punkItems,psiDestinationFolder);
22467 }
22468 static FORCEINLINE HRESULT IFileOperation_DeleteItem(IFileOperation* This,IShellItem *psiItem,IFileOperationProgressSink *pfopsItem) {
22469     return This->lpVtbl->DeleteItem(This,psiItem,pfopsItem);
22470 }
22471 static FORCEINLINE HRESULT IFileOperation_DeleteItems(IFileOperation* This,IUnknown *punkItems) {
22472     return This->lpVtbl->DeleteItems(This,punkItems);
22473 }
22474 static FORCEINLINE HRESULT IFileOperation_NewItem(IFileOperation* This,IShellItem *psiDestinationFolder,DWORD dwFileAttributes,LPCWSTR pszName,LPCWSTR pszTemplateName,IFileOperationProgressSink *pfopsItem) {
22475     return This->lpVtbl->NewItem(This,psiDestinationFolder,dwFileAttributes,pszName,pszTemplateName,pfopsItem);
22476 }
22477 static FORCEINLINE HRESULT IFileOperation_PerformOperations(IFileOperation* This) {
22478     return This->lpVtbl->PerformOperations(This);
22479 }
22480 static FORCEINLINE HRESULT IFileOperation_GetAnyOperationsAborted(IFileOperation* This,WINBOOL *pfAnyOperationsAborted) {
22481     return This->lpVtbl->GetAnyOperationsAborted(This,pfAnyOperationsAborted);
22482 }
22483 #endif
22484 #endif
22485 
22486 #endif
22487 
22488 HRESULT STDMETHODCALLTYPE IFileOperation_Advise_Proxy(
22489     IFileOperation* This,
22490     IFileOperationProgressSink *pfops,
22491     DWORD *pdwCookie);
22492 void __RPC_STUB IFileOperation_Advise_Stub(
22493     IRpcStubBuffer* This,
22494     IRpcChannelBuffer* pRpcChannelBuffer,
22495     PRPC_MESSAGE pRpcMessage,
22496     DWORD* pdwStubPhase);
22497 HRESULT STDMETHODCALLTYPE IFileOperation_Unadvise_Proxy(
22498     IFileOperation* This,
22499     DWORD dwCookie);
22500 void __RPC_STUB IFileOperation_Unadvise_Stub(
22501     IRpcStubBuffer* This,
22502     IRpcChannelBuffer* pRpcChannelBuffer,
22503     PRPC_MESSAGE pRpcMessage,
22504     DWORD* pdwStubPhase);
22505 HRESULT STDMETHODCALLTYPE IFileOperation_SetOperationFlags_Proxy(
22506     IFileOperation* This,
22507     DWORD dwOperationFlags);
22508 void __RPC_STUB IFileOperation_SetOperationFlags_Stub(
22509     IRpcStubBuffer* This,
22510     IRpcChannelBuffer* pRpcChannelBuffer,
22511     PRPC_MESSAGE pRpcMessage,
22512     DWORD* pdwStubPhase);
22513 HRESULT STDMETHODCALLTYPE IFileOperation_SetProgressMessage_Proxy(
22514     IFileOperation* This,
22515     LPCWSTR pszMessage);
22516 void __RPC_STUB IFileOperation_SetProgressMessage_Stub(
22517     IRpcStubBuffer* This,
22518     IRpcChannelBuffer* pRpcChannelBuffer,
22519     PRPC_MESSAGE pRpcMessage,
22520     DWORD* pdwStubPhase);
22521 HRESULT STDMETHODCALLTYPE IFileOperation_SetProgressDialog_Proxy(
22522     IFileOperation* This,
22523     IOperationsProgressDialog *popd);
22524 void __RPC_STUB IFileOperation_SetProgressDialog_Stub(
22525     IRpcStubBuffer* This,
22526     IRpcChannelBuffer* pRpcChannelBuffer,
22527     PRPC_MESSAGE pRpcMessage,
22528     DWORD* pdwStubPhase);
22529 HRESULT STDMETHODCALLTYPE IFileOperation_SetProperties_Proxy(
22530     IFileOperation* This,
22531     IPropertyChangeArray *pproparray);
22532 void __RPC_STUB IFileOperation_SetProperties_Stub(
22533     IRpcStubBuffer* This,
22534     IRpcChannelBuffer* pRpcChannelBuffer,
22535     PRPC_MESSAGE pRpcMessage,
22536     DWORD* pdwStubPhase);
22537 HRESULT STDMETHODCALLTYPE IFileOperation_SetOwnerWindow_Proxy(
22538     IFileOperation* This,
22539     HWND hwndOwner);
22540 void __RPC_STUB IFileOperation_SetOwnerWindow_Stub(
22541     IRpcStubBuffer* This,
22542     IRpcChannelBuffer* pRpcChannelBuffer,
22543     PRPC_MESSAGE pRpcMessage,
22544     DWORD* pdwStubPhase);
22545 HRESULT STDMETHODCALLTYPE IFileOperation_ApplyPropertiesToItem_Proxy(
22546     IFileOperation* This,
22547     IShellItem *psiItem);
22548 void __RPC_STUB IFileOperation_ApplyPropertiesToItem_Stub(
22549     IRpcStubBuffer* This,
22550     IRpcChannelBuffer* pRpcChannelBuffer,
22551     PRPC_MESSAGE pRpcMessage,
22552     DWORD* pdwStubPhase);
22553 HRESULT STDMETHODCALLTYPE IFileOperation_ApplyPropertiesToItems_Proxy(
22554     IFileOperation* This,
22555     IUnknown *punkItems);
22556 void __RPC_STUB IFileOperation_ApplyPropertiesToItems_Stub(
22557     IRpcStubBuffer* This,
22558     IRpcChannelBuffer* pRpcChannelBuffer,
22559     PRPC_MESSAGE pRpcMessage,
22560     DWORD* pdwStubPhase);
22561 HRESULT STDMETHODCALLTYPE IFileOperation_RenameItem_Proxy(
22562     IFileOperation* This,
22563     IShellItem *psiItem,
22564     LPCWSTR pszNewName,
22565     IFileOperationProgressSink *pfopsItem);
22566 void __RPC_STUB IFileOperation_RenameItem_Stub(
22567     IRpcStubBuffer* This,
22568     IRpcChannelBuffer* pRpcChannelBuffer,
22569     PRPC_MESSAGE pRpcMessage,
22570     DWORD* pdwStubPhase);
22571 HRESULT STDMETHODCALLTYPE IFileOperation_RenameItems_Proxy(
22572     IFileOperation* This,
22573     IUnknown *pUnkItems,
22574     LPCWSTR pszNewName);
22575 void __RPC_STUB IFileOperation_RenameItems_Stub(
22576     IRpcStubBuffer* This,
22577     IRpcChannelBuffer* pRpcChannelBuffer,
22578     PRPC_MESSAGE pRpcMessage,
22579     DWORD* pdwStubPhase);
22580 HRESULT STDMETHODCALLTYPE IFileOperation_MoveItem_Proxy(
22581     IFileOperation* This,
22582     IShellItem *psiItem,
22583     IShellItem *psiDestinationFolder,
22584     LPCWSTR pszNewName,
22585     IFileOperationProgressSink *pfopsItem);
22586 void __RPC_STUB IFileOperation_MoveItem_Stub(
22587     IRpcStubBuffer* This,
22588     IRpcChannelBuffer* pRpcChannelBuffer,
22589     PRPC_MESSAGE pRpcMessage,
22590     DWORD* pdwStubPhase);
22591 HRESULT STDMETHODCALLTYPE IFileOperation_MoveItems_Proxy(
22592     IFileOperation* This,
22593     IUnknown *punkItems,
22594     IShellItem *psiDestinationFolder);
22595 void __RPC_STUB IFileOperation_MoveItems_Stub(
22596     IRpcStubBuffer* This,
22597     IRpcChannelBuffer* pRpcChannelBuffer,
22598     PRPC_MESSAGE pRpcMessage,
22599     DWORD* pdwStubPhase);
22600 HRESULT STDMETHODCALLTYPE IFileOperation_CopyItem_Proxy(
22601     IFileOperation* This,
22602     IShellItem *psiItem,
22603     IShellItem *psiDestinationFolder,
22604     LPCWSTR pszCopyName,
22605     IFileOperationProgressSink *pfopsItem);
22606 void __RPC_STUB IFileOperation_CopyItem_Stub(
22607     IRpcStubBuffer* This,
22608     IRpcChannelBuffer* pRpcChannelBuffer,
22609     PRPC_MESSAGE pRpcMessage,
22610     DWORD* pdwStubPhase);
22611 HRESULT STDMETHODCALLTYPE IFileOperation_CopyItems_Proxy(
22612     IFileOperation* This,
22613     IUnknown *punkItems,
22614     IShellItem *psiDestinationFolder);
22615 void __RPC_STUB IFileOperation_CopyItems_Stub(
22616     IRpcStubBuffer* This,
22617     IRpcChannelBuffer* pRpcChannelBuffer,
22618     PRPC_MESSAGE pRpcMessage,
22619     DWORD* pdwStubPhase);
22620 HRESULT STDMETHODCALLTYPE IFileOperation_DeleteItem_Proxy(
22621     IFileOperation* This,
22622     IShellItem *psiItem,
22623     IFileOperationProgressSink *pfopsItem);
22624 void __RPC_STUB IFileOperation_DeleteItem_Stub(
22625     IRpcStubBuffer* This,
22626     IRpcChannelBuffer* pRpcChannelBuffer,
22627     PRPC_MESSAGE pRpcMessage,
22628     DWORD* pdwStubPhase);
22629 HRESULT STDMETHODCALLTYPE IFileOperation_DeleteItems_Proxy(
22630     IFileOperation* This,
22631     IUnknown *punkItems);
22632 void __RPC_STUB IFileOperation_DeleteItems_Stub(
22633     IRpcStubBuffer* This,
22634     IRpcChannelBuffer* pRpcChannelBuffer,
22635     PRPC_MESSAGE pRpcMessage,
22636     DWORD* pdwStubPhase);
22637 HRESULT STDMETHODCALLTYPE IFileOperation_NewItem_Proxy(
22638     IFileOperation* This,
22639     IShellItem *psiDestinationFolder,
22640     DWORD dwFileAttributes,
22641     LPCWSTR pszName,
22642     LPCWSTR pszTemplateName,
22643     IFileOperationProgressSink *pfopsItem);
22644 void __RPC_STUB IFileOperation_NewItem_Stub(
22645     IRpcStubBuffer* This,
22646     IRpcChannelBuffer* pRpcChannelBuffer,
22647     PRPC_MESSAGE pRpcMessage,
22648     DWORD* pdwStubPhase);
22649 HRESULT STDMETHODCALLTYPE IFileOperation_PerformOperations_Proxy(
22650     IFileOperation* This);
22651 void __RPC_STUB IFileOperation_PerformOperations_Stub(
22652     IRpcStubBuffer* This,
22653     IRpcChannelBuffer* pRpcChannelBuffer,
22654     PRPC_MESSAGE pRpcMessage,
22655     DWORD* pdwStubPhase);
22656 HRESULT STDMETHODCALLTYPE IFileOperation_GetAnyOperationsAborted_Proxy(
22657     IFileOperation* This,
22658     WINBOOL *pfAnyOperationsAborted);
22659 void __RPC_STUB IFileOperation_GetAnyOperationsAborted_Stub(
22660     IRpcStubBuffer* This,
22661     IRpcChannelBuffer* pRpcChannelBuffer,
22662     PRPC_MESSAGE pRpcMessage,
22663     DWORD* pdwStubPhase);
22664 
22665 #endif  /* __IFileOperation_INTERFACE_DEFINED__ */
22666 
22667 
22668 /*****************************************************************************
22669  * IObjectProvider interface
22670  */
22671 #ifndef __IObjectProvider_INTERFACE_DEFINED__
22672 #define __IObjectProvider_INTERFACE_DEFINED__
22673 
22674 DEFINE_GUID(IID_IObjectProvider, 0xa6087428, 0x3be3, 0x4d73, 0xb3,0x08, 0x7c,0x04,0xa5,0x40,0xbf,0x1a);
22675 #if defined(__cplusplus) && !defined(CINTERFACE)
22676 MIDL_INTERFACE("a6087428-3be3-4d73-b308-7c04a540bf1a")
22677 IObjectProvider : public IUnknown
22678 {
22679     virtual HRESULT STDMETHODCALLTYPE QueryObject(
22680         REFGUID guidObject,
22681         REFIID riid,
22682         void **ppvOut) = 0;
22683 
22684 };
22685 #ifdef __CRT_UUID_DECL
22686 __CRT_UUID_DECL(IObjectProvider, 0xa6087428, 0x3be3, 0x4d73, 0xb3,0x08, 0x7c,0x04,0xa5,0x40,0xbf,0x1a)
22687 #endif
22688 #else
22689 typedef struct IObjectProviderVtbl {
22690     BEGIN_INTERFACE
22691 
22692     /*** IUnknown methods ***/
22693     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22694         IObjectProvider* This,
22695         REFIID riid,
22696         void **ppvObject);
22697 
22698     ULONG (STDMETHODCALLTYPE *AddRef)(
22699         IObjectProvider* This);
22700 
22701     ULONG (STDMETHODCALLTYPE *Release)(
22702         IObjectProvider* This);
22703 
22704     /*** IObjectProvider methods ***/
22705     HRESULT (STDMETHODCALLTYPE *QueryObject)(
22706         IObjectProvider* This,
22707         REFGUID guidObject,
22708         REFIID riid,
22709         void **ppvOut);
22710 
22711     END_INTERFACE
22712 } IObjectProviderVtbl;
22713 interface IObjectProvider {
22714     CONST_VTBL IObjectProviderVtbl* lpVtbl;
22715 };
22716 
22717 #ifdef COBJMACROS
22718 #ifndef WIDL_C_INLINE_WRAPPERS
22719 /*** IUnknown methods ***/
22720 #define IObjectProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22721 #define IObjectProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
22722 #define IObjectProvider_Release(This) (This)->lpVtbl->Release(This)
22723 /*** IObjectProvider methods ***/
22724 #define IObjectProvider_QueryObject(This,guidObject,riid,ppvOut) (This)->lpVtbl->QueryObject(This,guidObject,riid,ppvOut)
22725 #else
22726 /*** IUnknown methods ***/
22727 static FORCEINLINE HRESULT IObjectProvider_QueryInterface(IObjectProvider* This,REFIID riid,void **ppvObject) {
22728     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22729 }
22730 static FORCEINLINE ULONG IObjectProvider_AddRef(IObjectProvider* This) {
22731     return This->lpVtbl->AddRef(This);
22732 }
22733 static FORCEINLINE ULONG IObjectProvider_Release(IObjectProvider* This) {
22734     return This->lpVtbl->Release(This);
22735 }
22736 /*** IObjectProvider methods ***/
22737 static FORCEINLINE HRESULT IObjectProvider_QueryObject(IObjectProvider* This,REFGUID guidObject,REFIID riid,void **ppvOut) {
22738     return This->lpVtbl->QueryObject(This,guidObject,riid,ppvOut);
22739 }
22740 #endif
22741 #endif
22742 
22743 #endif
22744 
22745 HRESULT STDMETHODCALLTYPE IObjectProvider_QueryObject_Proxy(
22746     IObjectProvider* This,
22747     REFGUID guidObject,
22748     REFIID riid,
22749     void **ppvOut);
22750 void __RPC_STUB IObjectProvider_QueryObject_Stub(
22751     IRpcStubBuffer* This,
22752     IRpcChannelBuffer* pRpcChannelBuffer,
22753     PRPC_MESSAGE pRpcMessage,
22754     DWORD* pdwStubPhase);
22755 
22756 #endif  /* __IObjectProvider_INTERFACE_DEFINED__ */
22757 
22758 #endif
22759 
22760 /*****************************************************************************
22761  * INamespaceWalkCB interface
22762  */
22763 #ifndef __INamespaceWalkCB_INTERFACE_DEFINED__
22764 #define __INamespaceWalkCB_INTERFACE_DEFINED__
22765 
22766 DEFINE_GUID(IID_INamespaceWalkCB, 0xd92995f8, 0xcf5e, 0x4a76, 0xbf,0x59, 0xea,0xd3,0x9e,0xa2,0xb9,0x7e);
22767 #if defined(__cplusplus) && !defined(CINTERFACE)
22768 MIDL_INTERFACE("d92995f8-cf5e-4a76-bf59-ead39ea2b97e")
22769 INamespaceWalkCB : public IUnknown
22770 {
22771     virtual HRESULT STDMETHODCALLTYPE FoundItem(
22772         IShellFolder *psf,
22773         PCUITEMID_CHILD pidl) = 0;
22774 
22775     virtual HRESULT STDMETHODCALLTYPE EnterFolder(
22776         IShellFolder *psf,
22777         PCUITEMID_CHILD pidl) = 0;
22778 
22779     virtual HRESULT STDMETHODCALLTYPE LeaveFolder(
22780         IShellFolder *psf,
22781         PCUITEMID_CHILD pidl) = 0;
22782 
22783     virtual HRESULT STDMETHODCALLTYPE InitializeProgressDialog(
22784         LPWSTR *ppszTitle,
22785         LPWSTR *ppszCancel) = 0;
22786 
22787 };
22788 #ifdef __CRT_UUID_DECL
22789 __CRT_UUID_DECL(INamespaceWalkCB, 0xd92995f8, 0xcf5e, 0x4a76, 0xbf,0x59, 0xea,0xd3,0x9e,0xa2,0xb9,0x7e)
22790 #endif
22791 #else
22792 typedef struct INamespaceWalkCBVtbl {
22793     BEGIN_INTERFACE
22794 
22795     /*** IUnknown methods ***/
22796     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22797         INamespaceWalkCB* This,
22798         REFIID riid,
22799         void **ppvObject);
22800 
22801     ULONG (STDMETHODCALLTYPE *AddRef)(
22802         INamespaceWalkCB* This);
22803 
22804     ULONG (STDMETHODCALLTYPE *Release)(
22805         INamespaceWalkCB* This);
22806 
22807     /*** INamespaceWalkCB methods ***/
22808     HRESULT (STDMETHODCALLTYPE *FoundItem)(
22809         INamespaceWalkCB* This,
22810         IShellFolder *psf,
22811         PCUITEMID_CHILD pidl);
22812 
22813     HRESULT (STDMETHODCALLTYPE *EnterFolder)(
22814         INamespaceWalkCB* This,
22815         IShellFolder *psf,
22816         PCUITEMID_CHILD pidl);
22817 
22818     HRESULT (STDMETHODCALLTYPE *LeaveFolder)(
22819         INamespaceWalkCB* This,
22820         IShellFolder *psf,
22821         PCUITEMID_CHILD pidl);
22822 
22823     HRESULT (STDMETHODCALLTYPE *InitializeProgressDialog)(
22824         INamespaceWalkCB* This,
22825         LPWSTR *ppszTitle,
22826         LPWSTR *ppszCancel);
22827 
22828     END_INTERFACE
22829 } INamespaceWalkCBVtbl;
22830 interface INamespaceWalkCB {
22831     CONST_VTBL INamespaceWalkCBVtbl* lpVtbl;
22832 };
22833 
22834 #ifdef COBJMACROS
22835 #ifndef WIDL_C_INLINE_WRAPPERS
22836 /*** IUnknown methods ***/
22837 #define INamespaceWalkCB_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22838 #define INamespaceWalkCB_AddRef(This) (This)->lpVtbl->AddRef(This)
22839 #define INamespaceWalkCB_Release(This) (This)->lpVtbl->Release(This)
22840 /*** INamespaceWalkCB methods ***/
22841 #define INamespaceWalkCB_FoundItem(This,psf,pidl) (This)->lpVtbl->FoundItem(This,psf,pidl)
22842 #define INamespaceWalkCB_EnterFolder(This,psf,pidl) (This)->lpVtbl->EnterFolder(This,psf,pidl)
22843 #define INamespaceWalkCB_LeaveFolder(This,psf,pidl) (This)->lpVtbl->LeaveFolder(This,psf,pidl)
22844 #define INamespaceWalkCB_InitializeProgressDialog(This,ppszTitle,ppszCancel) (This)->lpVtbl->InitializeProgressDialog(This,ppszTitle,ppszCancel)
22845 #else
22846 /*** IUnknown methods ***/
22847 static FORCEINLINE HRESULT INamespaceWalkCB_QueryInterface(INamespaceWalkCB* This,REFIID riid,void **ppvObject) {
22848     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22849 }
22850 static FORCEINLINE ULONG INamespaceWalkCB_AddRef(INamespaceWalkCB* This) {
22851     return This->lpVtbl->AddRef(This);
22852 }
22853 static FORCEINLINE ULONG INamespaceWalkCB_Release(INamespaceWalkCB* This) {
22854     return This->lpVtbl->Release(This);
22855 }
22856 /*** INamespaceWalkCB methods ***/
22857 static FORCEINLINE HRESULT INamespaceWalkCB_FoundItem(INamespaceWalkCB* This,IShellFolder *psf,PCUITEMID_CHILD pidl) {
22858     return This->lpVtbl->FoundItem(This,psf,pidl);
22859 }
22860 static FORCEINLINE HRESULT INamespaceWalkCB_EnterFolder(INamespaceWalkCB* This,IShellFolder *psf,PCUITEMID_CHILD pidl) {
22861     return This->lpVtbl->EnterFolder(This,psf,pidl);
22862 }
22863 static FORCEINLINE HRESULT INamespaceWalkCB_LeaveFolder(INamespaceWalkCB* This,IShellFolder *psf,PCUITEMID_CHILD pidl) {
22864     return This->lpVtbl->LeaveFolder(This,psf,pidl);
22865 }
22866 static FORCEINLINE HRESULT INamespaceWalkCB_InitializeProgressDialog(INamespaceWalkCB* This,LPWSTR *ppszTitle,LPWSTR *ppszCancel) {
22867     return This->lpVtbl->InitializeProgressDialog(This,ppszTitle,ppszCancel);
22868 }
22869 #endif
22870 #endif
22871 
22872 #endif
22873 
22874 HRESULT STDMETHODCALLTYPE INamespaceWalkCB_FoundItem_Proxy(
22875     INamespaceWalkCB* This,
22876     IShellFolder *psf,
22877     PCUITEMID_CHILD pidl);
22878 void __RPC_STUB INamespaceWalkCB_FoundItem_Stub(
22879     IRpcStubBuffer* This,
22880     IRpcChannelBuffer* pRpcChannelBuffer,
22881     PRPC_MESSAGE pRpcMessage,
22882     DWORD* pdwStubPhase);
22883 HRESULT STDMETHODCALLTYPE INamespaceWalkCB_EnterFolder_Proxy(
22884     INamespaceWalkCB* This,
22885     IShellFolder *psf,
22886     PCUITEMID_CHILD pidl);
22887 void __RPC_STUB INamespaceWalkCB_EnterFolder_Stub(
22888     IRpcStubBuffer* This,
22889     IRpcChannelBuffer* pRpcChannelBuffer,
22890     PRPC_MESSAGE pRpcMessage,
22891     DWORD* pdwStubPhase);
22892 HRESULT STDMETHODCALLTYPE INamespaceWalkCB_LeaveFolder_Proxy(
22893     INamespaceWalkCB* This,
22894     IShellFolder *psf,
22895     PCUITEMID_CHILD pidl);
22896 void __RPC_STUB INamespaceWalkCB_LeaveFolder_Stub(
22897     IRpcStubBuffer* This,
22898     IRpcChannelBuffer* pRpcChannelBuffer,
22899     PRPC_MESSAGE pRpcMessage,
22900     DWORD* pdwStubPhase);
22901 HRESULT STDMETHODCALLTYPE INamespaceWalkCB_InitializeProgressDialog_Proxy(
22902     INamespaceWalkCB* This,
22903     LPWSTR *ppszTitle,
22904     LPWSTR *ppszCancel);
22905 void __RPC_STUB INamespaceWalkCB_InitializeProgressDialog_Stub(
22906     IRpcStubBuffer* This,
22907     IRpcChannelBuffer* pRpcChannelBuffer,
22908     PRPC_MESSAGE pRpcMessage,
22909     DWORD* pdwStubPhase);
22910 
22911 #endif  /* __INamespaceWalkCB_INTERFACE_DEFINED__ */
22912 
22913 
22914 #if _WIN32_IE >= _WIN32_IE_IE70
22915 /*****************************************************************************
22916  * INamespaceWalkCB2 interface
22917  */
22918 #ifndef __INamespaceWalkCB2_INTERFACE_DEFINED__
22919 #define __INamespaceWalkCB2_INTERFACE_DEFINED__
22920 
22921 DEFINE_GUID(IID_INamespaceWalkCB2, 0x7ac7492b, 0xc38e, 0x438a, 0x87,0xdb, 0x68,0x73,0x78,0x44,0xff,0x70);
22922 #if defined(__cplusplus) && !defined(CINTERFACE)
22923 MIDL_INTERFACE("7ac7492b-c38e-438a-87db-68737844ff70")
22924 INamespaceWalkCB2 : public INamespaceWalkCB
22925 {
22926     virtual HRESULT STDMETHODCALLTYPE WalkComplete(
22927         HRESULT hr) = 0;
22928 
22929 };
22930 #ifdef __CRT_UUID_DECL
22931 __CRT_UUID_DECL(INamespaceWalkCB2, 0x7ac7492b, 0xc38e, 0x438a, 0x87,0xdb, 0x68,0x73,0x78,0x44,0xff,0x70)
22932 #endif
22933 #else
22934 typedef struct INamespaceWalkCB2Vtbl {
22935     BEGIN_INTERFACE
22936 
22937     /*** IUnknown methods ***/
22938     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22939         INamespaceWalkCB2* This,
22940         REFIID riid,
22941         void **ppvObject);
22942 
22943     ULONG (STDMETHODCALLTYPE *AddRef)(
22944         INamespaceWalkCB2* This);
22945 
22946     ULONG (STDMETHODCALLTYPE *Release)(
22947         INamespaceWalkCB2* This);
22948 
22949     /*** INamespaceWalkCB methods ***/
22950     HRESULT (STDMETHODCALLTYPE *FoundItem)(
22951         INamespaceWalkCB2* This,
22952         IShellFolder *psf,
22953         PCUITEMID_CHILD pidl);
22954 
22955     HRESULT (STDMETHODCALLTYPE *EnterFolder)(
22956         INamespaceWalkCB2* This,
22957         IShellFolder *psf,
22958         PCUITEMID_CHILD pidl);
22959 
22960     HRESULT (STDMETHODCALLTYPE *LeaveFolder)(
22961         INamespaceWalkCB2* This,
22962         IShellFolder *psf,
22963         PCUITEMID_CHILD pidl);
22964 
22965     HRESULT (STDMETHODCALLTYPE *InitializeProgressDialog)(
22966         INamespaceWalkCB2* This,
22967         LPWSTR *ppszTitle,
22968         LPWSTR *ppszCancel);
22969 
22970     /*** INamespaceWalkCB2 methods ***/
22971     HRESULT (STDMETHODCALLTYPE *WalkComplete)(
22972         INamespaceWalkCB2* This,
22973         HRESULT hr);
22974 
22975     END_INTERFACE
22976 } INamespaceWalkCB2Vtbl;
22977 interface INamespaceWalkCB2 {
22978     CONST_VTBL INamespaceWalkCB2Vtbl* lpVtbl;
22979 };
22980 
22981 #ifdef COBJMACROS
22982 #ifndef WIDL_C_INLINE_WRAPPERS
22983 /*** IUnknown methods ***/
22984 #define INamespaceWalkCB2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22985 #define INamespaceWalkCB2_AddRef(This) (This)->lpVtbl->AddRef(This)
22986 #define INamespaceWalkCB2_Release(This) (This)->lpVtbl->Release(This)
22987 /*** INamespaceWalkCB methods ***/
22988 #define INamespaceWalkCB2_FoundItem(This,psf,pidl) (This)->lpVtbl->FoundItem(This,psf,pidl)
22989 #define INamespaceWalkCB2_EnterFolder(This,psf,pidl) (This)->lpVtbl->EnterFolder(This,psf,pidl)
22990 #define INamespaceWalkCB2_LeaveFolder(This,psf,pidl) (This)->lpVtbl->LeaveFolder(This,psf,pidl)
22991 #define INamespaceWalkCB2_InitializeProgressDialog(This,ppszTitle,ppszCancel) (This)->lpVtbl->InitializeProgressDialog(This,ppszTitle,ppszCancel)
22992 /*** INamespaceWalkCB2 methods ***/
22993 #define INamespaceWalkCB2_WalkComplete(This,hr) (This)->lpVtbl->WalkComplete(This,hr)
22994 #else
22995 /*** IUnknown methods ***/
22996 static FORCEINLINE HRESULT INamespaceWalkCB2_QueryInterface(INamespaceWalkCB2* This,REFIID riid,void **ppvObject) {
22997     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22998 }
22999 static FORCEINLINE ULONG INamespaceWalkCB2_AddRef(INamespaceWalkCB2* This) {
23000     return This->lpVtbl->AddRef(This);
23001 }
23002 static FORCEINLINE ULONG INamespaceWalkCB2_Release(INamespaceWalkCB2* This) {
23003     return This->lpVtbl->Release(This);
23004 }
23005 /*** INamespaceWalkCB methods ***/
23006 static FORCEINLINE HRESULT INamespaceWalkCB2_FoundItem(INamespaceWalkCB2* This,IShellFolder *psf,PCUITEMID_CHILD pidl) {
23007     return This->lpVtbl->FoundItem(This,psf,pidl);
23008 }
23009 static FORCEINLINE HRESULT INamespaceWalkCB2_EnterFolder(INamespaceWalkCB2* This,IShellFolder *psf,PCUITEMID_CHILD pidl) {
23010     return This->lpVtbl->EnterFolder(This,psf,pidl);
23011 }
23012 static FORCEINLINE HRESULT INamespaceWalkCB2_LeaveFolder(INamespaceWalkCB2* This,IShellFolder *psf,PCUITEMID_CHILD pidl) {
23013     return This->lpVtbl->LeaveFolder(This,psf,pidl);
23014 }
23015 static FORCEINLINE HRESULT INamespaceWalkCB2_InitializeProgressDialog(INamespaceWalkCB2* This,LPWSTR *ppszTitle,LPWSTR *ppszCancel) {
23016     return This->lpVtbl->InitializeProgressDialog(This,ppszTitle,ppszCancel);
23017 }
23018 /*** INamespaceWalkCB2 methods ***/
23019 static FORCEINLINE HRESULT INamespaceWalkCB2_WalkComplete(INamespaceWalkCB2* This,HRESULT hr) {
23020     return This->lpVtbl->WalkComplete(This,hr);
23021 }
23022 #endif
23023 #endif
23024 
23025 #endif
23026 
23027 HRESULT STDMETHODCALLTYPE INamespaceWalkCB2_WalkComplete_Proxy(
23028     INamespaceWalkCB2* This,
23029     HRESULT hr);
23030 void __RPC_STUB INamespaceWalkCB2_WalkComplete_Stub(
23031     IRpcStubBuffer* This,
23032     IRpcChannelBuffer* pRpcChannelBuffer,
23033     PRPC_MESSAGE pRpcMessage,
23034     DWORD* pdwStubPhase);
23035 
23036 #endif  /* __INamespaceWalkCB2_INTERFACE_DEFINED__ */
23037 
23038 #endif
23039 
23040 /*****************************************************************************
23041  * INamespaceWalk interface
23042  */
23043 #ifndef __INamespaceWalk_INTERFACE_DEFINED__
23044 #define __INamespaceWalk_INTERFACE_DEFINED__
23045 
23046 typedef enum NAMESPACEWALKFLAG {
23047     NSWF_DEFAULT = 0x0,
23048     NSWF_NONE_IMPLIES_ALL = 0x1,
23049     NSWF_ONE_IMPLIES_ALL = 0x2,
23050     NSWF_DONT_TRAVERSE_LINKS = 0x4,
23051     NSWF_DONT_ACCUMULATE_RESULT = 0x8,
23052     NSWF_TRAVERSE_STREAM_JUNCTIONS = 0x10,
23053     NSWF_FILESYSTEM_ONLY = 0x20,
23054     NSWF_SHOW_PROGRESS = 0x40,
23055     NSWF_FLAG_VIEWORDER = 0x80,
23056     NSWF_IGNORE_AUTOPLAY_HIDA = 0x100,
23057     NSWF_ASYNC = 0x200,
23058     NSWF_DONT_RESOLVE_LINKS = 0x400,
23059     NSWF_ACCUMULATE_FOLDERS = 0x800,
23060     NSWF_DONT_SORT = 0x1000,
23061     NSWF_USE_TRANSFER_MEDIUM = 0x2000,
23062     NSWF_DONT_TRAVERSE_STREAM_JUNCTIONS = 0x4000,
23063     NSWF_ANY_IMPLIES_ALL = 0x8000
23064 } NAMESPACEWALKFLAG;
23065 
23066 #define NSWF_ENUMERATE_BEST_EFFORT 0x00010000
23067 #define NSWF_TRAVERSE_ONLY_STORAGE 0x00020000
23068 
23069 DEFINE_ENUM_FLAG_OPERATORS(NAMESPACEWALKFLAG)
23070 
23071 DEFINE_GUID(IID_INamespaceWalk, 0x57ced8a7, 0x3f4a, 0x432c, 0x93,0x50, 0x30,0xf2,0x44,0x83,0xf7,0x4f);
23072 #if defined(__cplusplus) && !defined(CINTERFACE)
23073 MIDL_INTERFACE("57ced8a7-3f4a-432c-9350-30f24483f74f")
23074 INamespaceWalk : public IUnknown
23075 {
23076     virtual HRESULT STDMETHODCALLTYPE Walk(
23077         IUnknown *punkToWalk,
23078         DWORD dwFlags,
23079         int cDepth,
23080         INamespaceWalkCB *pnswcb) = 0;
23081 
23082     virtual HRESULT STDMETHODCALLTYPE GetIDArrayResult(
23083         UINT *pcItems,
23084         PIDLIST_ABSOLUTE **prgpidl) = 0;
23085 
23086 };
23087 #ifdef __CRT_UUID_DECL
23088 __CRT_UUID_DECL(INamespaceWalk, 0x57ced8a7, 0x3f4a, 0x432c, 0x93,0x50, 0x30,0xf2,0x44,0x83,0xf7,0x4f)
23089 #endif
23090 #else
23091 typedef struct INamespaceWalkVtbl {
23092     BEGIN_INTERFACE
23093 
23094     /*** IUnknown methods ***/
23095     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
23096         INamespaceWalk* This,
23097         REFIID riid,
23098         void **ppvObject);
23099 
23100     ULONG (STDMETHODCALLTYPE *AddRef)(
23101         INamespaceWalk* This);
23102 
23103     ULONG (STDMETHODCALLTYPE *Release)(
23104         INamespaceWalk* This);
23105 
23106     /*** INamespaceWalk methods ***/
23107     HRESULT (STDMETHODCALLTYPE *Walk)(
23108         INamespaceWalk* This,
23109         IUnknown *punkToWalk,
23110         DWORD dwFlags,
23111         int cDepth,
23112         INamespaceWalkCB *pnswcb);
23113 
23114     HRESULT (STDMETHODCALLTYPE *GetIDArrayResult)(
23115         INamespaceWalk* This,
23116         UINT *pcItems,
23117         PIDLIST_ABSOLUTE **prgpidl);
23118 
23119     END_INTERFACE
23120 } INamespaceWalkVtbl;
23121 interface INamespaceWalk {
23122     CONST_VTBL INamespaceWalkVtbl* lpVtbl;
23123 };
23124 
23125 #ifdef COBJMACROS
23126 #ifndef WIDL_C_INLINE_WRAPPERS
23127 /*** IUnknown methods ***/
23128 #define INamespaceWalk_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
23129 #define INamespaceWalk_AddRef(This) (This)->lpVtbl->AddRef(This)
23130 #define INamespaceWalk_Release(This) (This)->lpVtbl->Release(This)
23131 /*** INamespaceWalk methods ***/
23132 #define INamespaceWalk_Walk(This,punkToWalk,dwFlags,cDepth,pnswcb) (This)->lpVtbl->Walk(This,punkToWalk,dwFlags,cDepth,pnswcb)
23133 #define INamespaceWalk_GetIDArrayResult(This,pcItems,prgpidl) (This)->lpVtbl->GetIDArrayResult(This,pcItems,prgpidl)
23134 #else
23135 /*** IUnknown methods ***/
23136 static FORCEINLINE HRESULT INamespaceWalk_QueryInterface(INamespaceWalk* This,REFIID riid,void **ppvObject) {
23137     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
23138 }
23139 static FORCEINLINE ULONG INamespaceWalk_AddRef(INamespaceWalk* This) {
23140     return This->lpVtbl->AddRef(This);
23141 }
23142 static FORCEINLINE ULONG INamespaceWalk_Release(INamespaceWalk* This) {
23143     return This->lpVtbl->Release(This);
23144 }
23145 /*** INamespaceWalk methods ***/
23146 static FORCEINLINE HRESULT INamespaceWalk_Walk(INamespaceWalk* This,IUnknown *punkToWalk,DWORD dwFlags,int cDepth,INamespaceWalkCB *pnswcb) {
23147     return This->lpVtbl->Walk(This,punkToWalk,dwFlags,cDepth,pnswcb);
23148 }
23149 static FORCEINLINE HRESULT INamespaceWalk_GetIDArrayResult(INamespaceWalk* This,UINT *pcItems,PIDLIST_ABSOLUTE **prgpidl) {
23150     return This->lpVtbl->GetIDArrayResult(This,pcItems,prgpidl);
23151 }
23152 #endif
23153 #endif
23154 
23155 #endif
23156 
23157 HRESULT STDMETHODCALLTYPE INamespaceWalk_Walk_Proxy(
23158     INamespaceWalk* This,
23159     IUnknown *punkToWalk,
23160     DWORD dwFlags,
23161     int cDepth,
23162     INamespaceWalkCB *pnswcb);
23163 void __RPC_STUB INamespaceWalk_Walk_Stub(
23164     IRpcStubBuffer* This,
23165     IRpcChannelBuffer* pRpcChannelBuffer,
23166     PRPC_MESSAGE pRpcMessage,
23167     DWORD* pdwStubPhase);
23168 HRESULT STDMETHODCALLTYPE INamespaceWalk_GetIDArrayResult_Proxy(
23169     INamespaceWalk* This,
23170     UINT *pcItems,
23171     PIDLIST_ABSOLUTE **prgpidl);
23172 void __RPC_STUB INamespaceWalk_GetIDArrayResult_Stub(
23173     IRpcStubBuffer* This,
23174     IRpcChannelBuffer* pRpcChannelBuffer,
23175     PRPC_MESSAGE pRpcMessage,
23176     DWORD* pdwStubPhase);
23177 
23178 #endif  /* __INamespaceWalk_INTERFACE_DEFINED__ */
23179 
23180 
FreeIDListArray(PIDLIST_RELATIVE * ppidls,UINT cItems)23181   __forceinline void FreeIDListArray(PIDLIST_RELATIVE *ppidls, UINT cItems) {
23182     UINT i;
23183     for (i = 0; i < cItems; i++) {
23184       CoTaskMemFree(ppidls[i]);
23185     }
23186     CoTaskMemFree(ppidls);
23187   }
23188 #if defined(STRICT_TYPED_ITEMIDS) && defined(__cplusplus)
FreeIDListArrayFull(PIDLIST_ABSOLUTE * ppidls,UINT cItems)23189   __forceinline void FreeIDListArrayFull(PIDLIST_ABSOLUTE *ppidls, UINT cItems) {
23190     UINT i;
23191     for (i = 0; i < cItems; i++)
23192       CoTaskMemFree(ppidls[i]);
23193     CoTaskMemFree(ppidls);
23194   }
FreeIDListArrayChild(PITEMID_CHILD * ppidls,UINT cItems)23195   __forceinline void FreeIDListArrayChild(PITEMID_CHILD *ppidls, UINT cItems) {
23196     UINT i;
23197     for (i = 0; i < cItems; i++)
23198       CoTaskMemFree(ppidls[i]);
23199     CoTaskMemFree(ppidls);
23200   }
23201 #else
23202 #define FreeIDListArrayFull FreeIDListArray
23203 #define FreeIDListArrayChild FreeIDListArray
23204 #endif
23205 
23206 #define ACDD_VISIBLE 0x1
23207 
23208 /*****************************************************************************
23209  * IAutoCompleteDropDown interface
23210  */
23211 #ifndef __IAutoCompleteDropDown_INTERFACE_DEFINED__
23212 #define __IAutoCompleteDropDown_INTERFACE_DEFINED__
23213 
23214 DEFINE_GUID(IID_IAutoCompleteDropDown, 0x3cd141f4, 0x3c6a, 0x11d2, 0xbc,0xaa, 0x00,0xc0,0x4f,0xd9,0x29,0xdb);
23215 #if defined(__cplusplus) && !defined(CINTERFACE)
23216 MIDL_INTERFACE("3cd141f4-3c6a-11d2-bcaa-00c04fd929db")
23217 IAutoCompleteDropDown : public IUnknown
23218 {
23219     virtual HRESULT STDMETHODCALLTYPE GetDropDownStatus(
23220         DWORD *pdwFlags,
23221         LPWSTR *ppwszString) = 0;
23222 
23223     virtual HRESULT STDMETHODCALLTYPE ResetEnumerator(
23224         ) = 0;
23225 
23226 };
23227 #ifdef __CRT_UUID_DECL
23228 __CRT_UUID_DECL(IAutoCompleteDropDown, 0x3cd141f4, 0x3c6a, 0x11d2, 0xbc,0xaa, 0x00,0xc0,0x4f,0xd9,0x29,0xdb)
23229 #endif
23230 #else
23231 typedef struct IAutoCompleteDropDownVtbl {
23232     BEGIN_INTERFACE
23233 
23234     /*** IUnknown methods ***/
23235     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
23236         IAutoCompleteDropDown* This,
23237         REFIID riid,
23238         void **ppvObject);
23239 
23240     ULONG (STDMETHODCALLTYPE *AddRef)(
23241         IAutoCompleteDropDown* This);
23242 
23243     ULONG (STDMETHODCALLTYPE *Release)(
23244         IAutoCompleteDropDown* This);
23245 
23246     /*** IAutoCompleteDropDown methods ***/
23247     HRESULT (STDMETHODCALLTYPE *GetDropDownStatus)(
23248         IAutoCompleteDropDown* This,
23249         DWORD *pdwFlags,
23250         LPWSTR *ppwszString);
23251 
23252     HRESULT (STDMETHODCALLTYPE *ResetEnumerator)(
23253         IAutoCompleteDropDown* This);
23254 
23255     END_INTERFACE
23256 } IAutoCompleteDropDownVtbl;
23257 interface IAutoCompleteDropDown {
23258     CONST_VTBL IAutoCompleteDropDownVtbl* lpVtbl;
23259 };
23260 
23261 #ifdef COBJMACROS
23262 #ifndef WIDL_C_INLINE_WRAPPERS
23263 /*** IUnknown methods ***/
23264 #define IAutoCompleteDropDown_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
23265 #define IAutoCompleteDropDown_AddRef(This) (This)->lpVtbl->AddRef(This)
23266 #define IAutoCompleteDropDown_Release(This) (This)->lpVtbl->Release(This)
23267 /*** IAutoCompleteDropDown methods ***/
23268 #define IAutoCompleteDropDown_GetDropDownStatus(This,pdwFlags,ppwszString) (This)->lpVtbl->GetDropDownStatus(This,pdwFlags,ppwszString)
23269 #define IAutoCompleteDropDown_ResetEnumerator(This) (This)->lpVtbl->ResetEnumerator(This)
23270 #else
23271 /*** IUnknown methods ***/
23272 static FORCEINLINE HRESULT IAutoCompleteDropDown_QueryInterface(IAutoCompleteDropDown* This,REFIID riid,void **ppvObject) {
23273     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
23274 }
23275 static FORCEINLINE ULONG IAutoCompleteDropDown_AddRef(IAutoCompleteDropDown* This) {
23276     return This->lpVtbl->AddRef(This);
23277 }
23278 static FORCEINLINE ULONG IAutoCompleteDropDown_Release(IAutoCompleteDropDown* This) {
23279     return This->lpVtbl->Release(This);
23280 }
23281 /*** IAutoCompleteDropDown methods ***/
23282 static FORCEINLINE HRESULT IAutoCompleteDropDown_GetDropDownStatus(IAutoCompleteDropDown* This,DWORD *pdwFlags,LPWSTR *ppwszString) {
23283     return This->lpVtbl->GetDropDownStatus(This,pdwFlags,ppwszString);
23284 }
23285 static FORCEINLINE HRESULT IAutoCompleteDropDown_ResetEnumerator(IAutoCompleteDropDown* This) {
23286     return This->lpVtbl->ResetEnumerator(This);
23287 }
23288 #endif
23289 #endif
23290 
23291 #endif
23292 
23293 HRESULT STDMETHODCALLTYPE IAutoCompleteDropDown_GetDropDownStatus_Proxy(
23294     IAutoCompleteDropDown* This,
23295     DWORD *pdwFlags,
23296     LPWSTR *ppwszString);
23297 void __RPC_STUB IAutoCompleteDropDown_GetDropDownStatus_Stub(
23298     IRpcStubBuffer* This,
23299     IRpcChannelBuffer* pRpcChannelBuffer,
23300     PRPC_MESSAGE pRpcMessage,
23301     DWORD* pdwStubPhase);
23302 HRESULT STDMETHODCALLTYPE IAutoCompleteDropDown_ResetEnumerator_Proxy(
23303     IAutoCompleteDropDown* This);
23304 void __RPC_STUB IAutoCompleteDropDown_ResetEnumerator_Stub(
23305     IRpcStubBuffer* This,
23306     IRpcChannelBuffer* pRpcChannelBuffer,
23307     PRPC_MESSAGE pRpcMessage,
23308     DWORD* pdwStubPhase);
23309 
23310 #endif  /* __IAutoCompleteDropDown_INTERFACE_DEFINED__ */
23311 
23312 
23313 #include <pshpack8.h>
23314 typedef struct tagBANDSITEINFO {
23315     DWORD dwMask;
23316     DWORD dwState;
23317     DWORD dwStyle;
23318 } BANDSITEINFO;
23319 #include <poppack.h>
23320 enum tagBANDSITECID {
23321     BSID_BANDADDED = 0,
23322     BSID_BANDREMOVED = 1
23323 };
23324 
23325 
23326 #define BSIM_STATE 0x00000001
23327 #define BSIM_STYLE 0x00000002
23328 
23329 #define BSSF_VISIBLE 0x00000001
23330 #define BSSF_NOTITLE 0x00000002
23331 #define BSSF_UNDELETEABLE 0x00001000
23332 
23333 #define BSIS_AUTOGRIPPER 0x00000000
23334 #define BSIS_NOGRIPPER 0x00000001
23335 #define BSIS_ALWAYSGRIPPER 0x00000002
23336 #define BSIS_LEFTALIGN 0x00000004
23337 #define BSIS_SINGLECLICK 0x00000008
23338 #define BSIS_NOCONTEXTMENU 0x00000010
23339 #define BSIS_NODROPTARGET 0x00000020
23340 #define BSIS_NOCAPTION 0x00000040
23341 #define BSIS_PREFERNOLINEBREAK 0x00000080
23342 #define BSIS_LOCKED 0x00000100
23343 #if _WIN32_IE >= _WIN32_IE_IE70
23344 #define BSIS_PRESERVEORDERDURINGLAYOUT 0x00000200
23345 #define BSIS_FIXEDORDER 0x00000400
23346 #endif
23347 
23348 #define SID_SBandSite IID_IBandSite
23349 #define CGID_BandSite IID_IBandSite
23350 
23351 /*****************************************************************************
23352  * IBandSite interface
23353  */
23354 #ifndef __IBandSite_INTERFACE_DEFINED__
23355 #define __IBandSite_INTERFACE_DEFINED__
23356 
23357 DEFINE_GUID(IID_IBandSite, 0x4cf504b0, 0xde96, 0x11d0, 0x8b,0x3f, 0x00,0xa0,0xc9,0x11,0xe8,0xe5);
23358 #if defined(__cplusplus) && !defined(CINTERFACE)
23359 MIDL_INTERFACE("4cf504b0-de96-11d0-8b3f-00a0c911e8e5")
23360 IBandSite : public IUnknown
23361 {
23362     virtual HRESULT STDMETHODCALLTYPE AddBand(
23363         IUnknown *punk) = 0;
23364 
23365     virtual HRESULT STDMETHODCALLTYPE EnumBands(
23366         UINT uBand,
23367         DWORD *pdwBandID) = 0;
23368 
23369     virtual HRESULT STDMETHODCALLTYPE QueryBand(
23370         DWORD dwBandID,
23371         IDeskBand **ppstb,
23372         DWORD *pdwState,
23373         LPWSTR pszName,
23374         int cchName) = 0;
23375 
23376     virtual HRESULT STDMETHODCALLTYPE SetBandState(
23377         DWORD dwBandID,
23378         DWORD dwMask,
23379         DWORD dwState) = 0;
23380 
23381     virtual HRESULT STDMETHODCALLTYPE RemoveBand(
23382         DWORD dwBandID) = 0;
23383 
23384     virtual HRESULT STDMETHODCALLTYPE GetBandObject(
23385         DWORD dwBandID,
23386         REFIID riid,
23387         void **ppv) = 0;
23388 
23389     virtual HRESULT STDMETHODCALLTYPE SetBandSiteInfo(
23390         const BANDSITEINFO *pbsinfo) = 0;
23391 
23392     virtual HRESULT STDMETHODCALLTYPE GetBandSiteInfo(
23393         BANDSITEINFO *pbsinfo) = 0;
23394 
23395 };
23396 #ifdef __CRT_UUID_DECL
23397 __CRT_UUID_DECL(IBandSite, 0x4cf504b0, 0xde96, 0x11d0, 0x8b,0x3f, 0x00,0xa0,0xc9,0x11,0xe8,0xe5)
23398 #endif
23399 #else
23400 typedef struct IBandSiteVtbl {
23401     BEGIN_INTERFACE
23402 
23403     /*** IUnknown methods ***/
23404     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
23405         IBandSite* This,
23406         REFIID riid,
23407         void **ppvObject);
23408 
23409     ULONG (STDMETHODCALLTYPE *AddRef)(
23410         IBandSite* This);
23411 
23412     ULONG (STDMETHODCALLTYPE *Release)(
23413         IBandSite* This);
23414 
23415     /*** IBandSite methods ***/
23416     HRESULT (STDMETHODCALLTYPE *AddBand)(
23417         IBandSite* This,
23418         IUnknown *punk);
23419 
23420     HRESULT (STDMETHODCALLTYPE *EnumBands)(
23421         IBandSite* This,
23422         UINT uBand,
23423         DWORD *pdwBandID);
23424 
23425     HRESULT (STDMETHODCALLTYPE *QueryBand)(
23426         IBandSite* This,
23427         DWORD dwBandID,
23428         IDeskBand **ppstb,
23429         DWORD *pdwState,
23430         LPWSTR pszName,
23431         int cchName);
23432 
23433     HRESULT (STDMETHODCALLTYPE *SetBandState)(
23434         IBandSite* This,
23435         DWORD dwBandID,
23436         DWORD dwMask,
23437         DWORD dwState);
23438 
23439     HRESULT (STDMETHODCALLTYPE *RemoveBand)(
23440         IBandSite* This,
23441         DWORD dwBandID);
23442 
23443     HRESULT (STDMETHODCALLTYPE *GetBandObject)(
23444         IBandSite* This,
23445         DWORD dwBandID,
23446         REFIID riid,
23447         void **ppv);
23448 
23449     HRESULT (STDMETHODCALLTYPE *SetBandSiteInfo)(
23450         IBandSite* This,
23451         const BANDSITEINFO *pbsinfo);
23452 
23453     HRESULT (STDMETHODCALLTYPE *GetBandSiteInfo)(
23454         IBandSite* This,
23455         BANDSITEINFO *pbsinfo);
23456 
23457     END_INTERFACE
23458 } IBandSiteVtbl;
23459 interface IBandSite {
23460     CONST_VTBL IBandSiteVtbl* lpVtbl;
23461 };
23462 
23463 #ifdef COBJMACROS
23464 #ifndef WIDL_C_INLINE_WRAPPERS
23465 /*** IUnknown methods ***/
23466 #define IBandSite_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
23467 #define IBandSite_AddRef(This) (This)->lpVtbl->AddRef(This)
23468 #define IBandSite_Release(This) (This)->lpVtbl->Release(This)
23469 /*** IBandSite methods ***/
23470 #define IBandSite_AddBand(This,punk) (This)->lpVtbl->AddBand(This,punk)
23471 #define IBandSite_EnumBands(This,uBand,pdwBandID) (This)->lpVtbl->EnumBands(This,uBand,pdwBandID)
23472 #define IBandSite_QueryBand(This,dwBandID,ppstb,pdwState,pszName,cchName) (This)->lpVtbl->QueryBand(This,dwBandID,ppstb,pdwState,pszName,cchName)
23473 #define IBandSite_SetBandState(This,dwBandID,dwMask,dwState) (This)->lpVtbl->SetBandState(This,dwBandID,dwMask,dwState)
23474 #define IBandSite_RemoveBand(This,dwBandID) (This)->lpVtbl->RemoveBand(This,dwBandID)
23475 #define IBandSite_GetBandObject(This,dwBandID,riid,ppv) (This)->lpVtbl->GetBandObject(This,dwBandID,riid,ppv)
23476 #define IBandSite_SetBandSiteInfo(This,pbsinfo) (This)->lpVtbl->SetBandSiteInfo(This,pbsinfo)
23477 #define IBandSite_GetBandSiteInfo(This,pbsinfo) (This)->lpVtbl->GetBandSiteInfo(This,pbsinfo)
23478 #else
23479 /*** IUnknown methods ***/
23480 static FORCEINLINE HRESULT IBandSite_QueryInterface(IBandSite* This,REFIID riid,void **ppvObject) {
23481     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
23482 }
23483 static FORCEINLINE ULONG IBandSite_AddRef(IBandSite* This) {
23484     return This->lpVtbl->AddRef(This);
23485 }
23486 static FORCEINLINE ULONG IBandSite_Release(IBandSite* This) {
23487     return This->lpVtbl->Release(This);
23488 }
23489 /*** IBandSite methods ***/
23490 static FORCEINLINE HRESULT IBandSite_AddBand(IBandSite* This,IUnknown *punk) {
23491     return This->lpVtbl->AddBand(This,punk);
23492 }
23493 static FORCEINLINE HRESULT IBandSite_EnumBands(IBandSite* This,UINT uBand,DWORD *pdwBandID) {
23494     return This->lpVtbl->EnumBands(This,uBand,pdwBandID);
23495 }
23496 static FORCEINLINE HRESULT IBandSite_QueryBand(IBandSite* This,DWORD dwBandID,IDeskBand **ppstb,DWORD *pdwState,LPWSTR pszName,int cchName) {
23497     return This->lpVtbl->QueryBand(This,dwBandID,ppstb,pdwState,pszName,cchName);
23498 }
23499 static FORCEINLINE HRESULT IBandSite_SetBandState(IBandSite* This,DWORD dwBandID,DWORD dwMask,DWORD dwState) {
23500     return This->lpVtbl->SetBandState(This,dwBandID,dwMask,dwState);
23501 }
23502 static FORCEINLINE HRESULT IBandSite_RemoveBand(IBandSite* This,DWORD dwBandID) {
23503     return This->lpVtbl->RemoveBand(This,dwBandID);
23504 }
23505 static FORCEINLINE HRESULT IBandSite_GetBandObject(IBandSite* This,DWORD dwBandID,REFIID riid,void **ppv) {
23506     return This->lpVtbl->GetBandObject(This,dwBandID,riid,ppv);
23507 }
23508 static FORCEINLINE HRESULT IBandSite_SetBandSiteInfo(IBandSite* This,const BANDSITEINFO *pbsinfo) {
23509     return This->lpVtbl->SetBandSiteInfo(This,pbsinfo);
23510 }
23511 static FORCEINLINE HRESULT IBandSite_GetBandSiteInfo(IBandSite* This,BANDSITEINFO *pbsinfo) {
23512     return This->lpVtbl->GetBandSiteInfo(This,pbsinfo);
23513 }
23514 #endif
23515 #endif
23516 
23517 #endif
23518 
23519 HRESULT STDMETHODCALLTYPE IBandSite_AddBand_Proxy(
23520     IBandSite* This,
23521     IUnknown *punk);
23522 void __RPC_STUB IBandSite_AddBand_Stub(
23523     IRpcStubBuffer* This,
23524     IRpcChannelBuffer* pRpcChannelBuffer,
23525     PRPC_MESSAGE pRpcMessage,
23526     DWORD* pdwStubPhase);
23527 HRESULT STDMETHODCALLTYPE IBandSite_EnumBands_Proxy(
23528     IBandSite* This,
23529     UINT uBand,
23530     DWORD *pdwBandID);
23531 void __RPC_STUB IBandSite_EnumBands_Stub(
23532     IRpcStubBuffer* This,
23533     IRpcChannelBuffer* pRpcChannelBuffer,
23534     PRPC_MESSAGE pRpcMessage,
23535     DWORD* pdwStubPhase);
23536 HRESULT STDMETHODCALLTYPE IBandSite_RemoteQueryBand_Proxy(
23537     IBandSite* This,
23538     DWORD dwBandID,
23539     IDeskBand **ppstb,
23540     DWORD *pdwState,
23541     LPWSTR pszName,
23542     int cchName);
23543 void __RPC_STUB IBandSite_RemoteQueryBand_Stub(
23544     IRpcStubBuffer* This,
23545     IRpcChannelBuffer* pRpcChannelBuffer,
23546     PRPC_MESSAGE pRpcMessage,
23547     DWORD* pdwStubPhase);
23548 HRESULT STDMETHODCALLTYPE IBandSite_SetBandState_Proxy(
23549     IBandSite* This,
23550     DWORD dwBandID,
23551     DWORD dwMask,
23552     DWORD dwState);
23553 void __RPC_STUB IBandSite_SetBandState_Stub(
23554     IRpcStubBuffer* This,
23555     IRpcChannelBuffer* pRpcChannelBuffer,
23556     PRPC_MESSAGE pRpcMessage,
23557     DWORD* pdwStubPhase);
23558 HRESULT STDMETHODCALLTYPE IBandSite_RemoveBand_Proxy(
23559     IBandSite* This,
23560     DWORD dwBandID);
23561 void __RPC_STUB IBandSite_RemoveBand_Stub(
23562     IRpcStubBuffer* This,
23563     IRpcChannelBuffer* pRpcChannelBuffer,
23564     PRPC_MESSAGE pRpcMessage,
23565     DWORD* pdwStubPhase);
23566 HRESULT STDMETHODCALLTYPE IBandSite_GetBandObject_Proxy(
23567     IBandSite* This,
23568     DWORD dwBandID,
23569     REFIID riid,
23570     void **ppv);
23571 void __RPC_STUB IBandSite_GetBandObject_Stub(
23572     IRpcStubBuffer* This,
23573     IRpcChannelBuffer* pRpcChannelBuffer,
23574     PRPC_MESSAGE pRpcMessage,
23575     DWORD* pdwStubPhase);
23576 HRESULT STDMETHODCALLTYPE IBandSite_SetBandSiteInfo_Proxy(
23577     IBandSite* This,
23578     const BANDSITEINFO *pbsinfo);
23579 void __RPC_STUB IBandSite_SetBandSiteInfo_Stub(
23580     IRpcStubBuffer* This,
23581     IRpcChannelBuffer* pRpcChannelBuffer,
23582     PRPC_MESSAGE pRpcMessage,
23583     DWORD* pdwStubPhase);
23584 HRESULT STDMETHODCALLTYPE IBandSite_GetBandSiteInfo_Proxy(
23585     IBandSite* This,
23586     BANDSITEINFO *pbsinfo);
23587 void __RPC_STUB IBandSite_GetBandSiteInfo_Stub(
23588     IRpcStubBuffer* This,
23589     IRpcChannelBuffer* pRpcChannelBuffer,
23590     PRPC_MESSAGE pRpcMessage,
23591     DWORD* pdwStubPhase);
23592 HRESULT CALLBACK IBandSite_QueryBand_Proxy(
23593     IBandSite* This,
23594     DWORD dwBandID,
23595     IDeskBand **ppstb,
23596     DWORD *pdwState,
23597     LPWSTR pszName,
23598     int cchName);
23599 HRESULT __RPC_STUB IBandSite_QueryBand_Stub(
23600     IBandSite* This,
23601     DWORD dwBandID,
23602     IDeskBand **ppstb,
23603     DWORD *pdwState,
23604     LPWSTR pszName,
23605     int cchName);
23606 
23607 #endif  /* __IBandSite_INTERFACE_DEFINED__ */
23608 
23609 
23610 /*****************************************************************************
23611  * IModalWindow interface
23612  */
23613 #ifndef __IModalWindow_INTERFACE_DEFINED__
23614 #define __IModalWindow_INTERFACE_DEFINED__
23615 
23616 DEFINE_GUID(IID_IModalWindow, 0xb4db1657, 0x70d7, 0x485e, 0x8e,0x3e, 0x6f,0xcb,0x5a,0x5c,0x18,0x02);
23617 #if defined(__cplusplus) && !defined(CINTERFACE)
23618 MIDL_INTERFACE("b4db1657-70d7-485e-8e3e-6fcb5a5c1802")
23619 IModalWindow : public IUnknown
23620 {
23621     virtual HRESULT STDMETHODCALLTYPE Show(
23622         HWND hwndOwner) = 0;
23623 
23624 };
23625 #ifdef __CRT_UUID_DECL
23626 __CRT_UUID_DECL(IModalWindow, 0xb4db1657, 0x70d7, 0x485e, 0x8e,0x3e, 0x6f,0xcb,0x5a,0x5c,0x18,0x02)
23627 #endif
23628 #else
23629 typedef struct IModalWindowVtbl {
23630     BEGIN_INTERFACE
23631 
23632     /*** IUnknown methods ***/
23633     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
23634         IModalWindow* This,
23635         REFIID riid,
23636         void **ppvObject);
23637 
23638     ULONG (STDMETHODCALLTYPE *AddRef)(
23639         IModalWindow* This);
23640 
23641     ULONG (STDMETHODCALLTYPE *Release)(
23642         IModalWindow* This);
23643 
23644     /*** IModalWindow methods ***/
23645     HRESULT (STDMETHODCALLTYPE *Show)(
23646         IModalWindow* This,
23647         HWND hwndOwner);
23648 
23649     END_INTERFACE
23650 } IModalWindowVtbl;
23651 interface IModalWindow {
23652     CONST_VTBL IModalWindowVtbl* lpVtbl;
23653 };
23654 
23655 #ifdef COBJMACROS
23656 #ifndef WIDL_C_INLINE_WRAPPERS
23657 /*** IUnknown methods ***/
23658 #define IModalWindow_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
23659 #define IModalWindow_AddRef(This) (This)->lpVtbl->AddRef(This)
23660 #define IModalWindow_Release(This) (This)->lpVtbl->Release(This)
23661 /*** IModalWindow methods ***/
23662 #define IModalWindow_Show(This,hwndOwner) (This)->lpVtbl->Show(This,hwndOwner)
23663 #else
23664 /*** IUnknown methods ***/
23665 static FORCEINLINE HRESULT IModalWindow_QueryInterface(IModalWindow* This,REFIID riid,void **ppvObject) {
23666     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
23667 }
23668 static FORCEINLINE ULONG IModalWindow_AddRef(IModalWindow* This) {
23669     return This->lpVtbl->AddRef(This);
23670 }
23671 static FORCEINLINE ULONG IModalWindow_Release(IModalWindow* This) {
23672     return This->lpVtbl->Release(This);
23673 }
23674 /*** IModalWindow methods ***/
23675 static FORCEINLINE HRESULT IModalWindow_Show(IModalWindow* This,HWND hwndOwner) {
23676     return This->lpVtbl->Show(This,hwndOwner);
23677 }
23678 #endif
23679 #endif
23680 
23681 #endif
23682 
23683 HRESULT STDMETHODCALLTYPE IModalWindow_RemoteShow_Proxy(
23684     IModalWindow* This,
23685     HWND hwndOwner);
23686 void __RPC_STUB IModalWindow_RemoteShow_Stub(
23687     IRpcStubBuffer* This,
23688     IRpcChannelBuffer* pRpcChannelBuffer,
23689     PRPC_MESSAGE pRpcMessage,
23690     DWORD* pdwStubPhase);
23691 HRESULT CALLBACK IModalWindow_Show_Proxy(
23692     IModalWindow* This,
23693     HWND hwndOwner);
23694 HRESULT __RPC_STUB IModalWindow_Show_Stub(
23695     IModalWindow* This,
23696     HWND hwndOwner);
23697 
23698 #endif  /* __IModalWindow_INTERFACE_DEFINED__ */
23699 
23700 
23701 #define PROPSTR_EXTENSIONCOMPLETIONSTATE L"ExtensionCompletionState"
23702 
23703 enum tagCDBURNINGEXTENSIONRET {
23704     CDBE_RET_DEFAULT = 0x0,
23705     CDBE_RET_DONTRUNOTHEREXTS = 0x1,
23706     CDBE_RET_STOPWIZARD = 0x2
23707 };
23708 
23709 
23710 #define SID_CDWizardHost IID_ICDBurnExt
23711 
23712 enum _CDBE_ACTIONS {
23713     CDBE_TYPE_MUSIC = 0x1,
23714     CDBE_TYPE_DATA = 0x2,
23715     CDBE_TYPE_ALL = (int)0xffffffff
23716 };
23717 
23718 
23719 typedef DWORD CDBE_ACTIONS;
23720 
23721 /*****************************************************************************
23722  * ICDBurnExt interface
23723  */
23724 #ifndef __ICDBurnExt_INTERFACE_DEFINED__
23725 #define __ICDBurnExt_INTERFACE_DEFINED__
23726 
23727 DEFINE_GUID(IID_ICDBurnExt, 0x2271dcca, 0x74fc, 0x4414, 0x8f,0xb7, 0xc5,0x6b,0x05,0xac,0xe2,0xd7);
23728 #if defined(__cplusplus) && !defined(CINTERFACE)
23729 MIDL_INTERFACE("2271dcca-74fc-4414-8fb7-c56b05ace2d7")
23730 ICDBurnExt : public IUnknown
23731 {
23732     virtual HRESULT STDMETHODCALLTYPE GetSupportedActionTypes(
23733         CDBE_ACTIONS *pdwActions) = 0;
23734 
23735 };
23736 #ifdef __CRT_UUID_DECL
23737 __CRT_UUID_DECL(ICDBurnExt, 0x2271dcca, 0x74fc, 0x4414, 0x8f,0xb7, 0xc5,0x6b,0x05,0xac,0xe2,0xd7)
23738 #endif
23739 #else
23740 typedef struct ICDBurnExtVtbl {
23741     BEGIN_INTERFACE
23742 
23743     /*** IUnknown methods ***/
23744     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
23745         ICDBurnExt* This,
23746         REFIID riid,
23747         void **ppvObject);
23748 
23749     ULONG (STDMETHODCALLTYPE *AddRef)(
23750         ICDBurnExt* This);
23751 
23752     ULONG (STDMETHODCALLTYPE *Release)(
23753         ICDBurnExt* This);
23754 
23755     /*** ICDBurnExt methods ***/
23756     HRESULT (STDMETHODCALLTYPE *GetSupportedActionTypes)(
23757         ICDBurnExt* This,
23758         CDBE_ACTIONS *pdwActions);
23759 
23760     END_INTERFACE
23761 } ICDBurnExtVtbl;
23762 interface ICDBurnExt {
23763     CONST_VTBL ICDBurnExtVtbl* lpVtbl;
23764 };
23765 
23766 #ifdef COBJMACROS
23767 #ifndef WIDL_C_INLINE_WRAPPERS
23768 /*** IUnknown methods ***/
23769 #define ICDBurnExt_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
23770 #define ICDBurnExt_AddRef(This) (This)->lpVtbl->AddRef(This)
23771 #define ICDBurnExt_Release(This) (This)->lpVtbl->Release(This)
23772 /*** ICDBurnExt methods ***/
23773 #define ICDBurnExt_GetSupportedActionTypes(This,pdwActions) (This)->lpVtbl->GetSupportedActionTypes(This,pdwActions)
23774 #else
23775 /*** IUnknown methods ***/
23776 static FORCEINLINE HRESULT ICDBurnExt_QueryInterface(ICDBurnExt* This,REFIID riid,void **ppvObject) {
23777     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
23778 }
23779 static FORCEINLINE ULONG ICDBurnExt_AddRef(ICDBurnExt* This) {
23780     return This->lpVtbl->AddRef(This);
23781 }
23782 static FORCEINLINE ULONG ICDBurnExt_Release(ICDBurnExt* This) {
23783     return This->lpVtbl->Release(This);
23784 }
23785 /*** ICDBurnExt methods ***/
23786 static FORCEINLINE HRESULT ICDBurnExt_GetSupportedActionTypes(ICDBurnExt* This,CDBE_ACTIONS *pdwActions) {
23787     return This->lpVtbl->GetSupportedActionTypes(This,pdwActions);
23788 }
23789 #endif
23790 #endif
23791 
23792 #endif
23793 
23794 HRESULT STDMETHODCALLTYPE ICDBurnExt_GetSupportedActionTypes_Proxy(
23795     ICDBurnExt* This,
23796     CDBE_ACTIONS *pdwActions);
23797 void __RPC_STUB ICDBurnExt_GetSupportedActionTypes_Stub(
23798     IRpcStubBuffer* This,
23799     IRpcChannelBuffer* pRpcChannelBuffer,
23800     PRPC_MESSAGE pRpcMessage,
23801     DWORD* pdwStubPhase);
23802 
23803 #endif  /* __ICDBurnExt_INTERFACE_DEFINED__ */
23804 
23805 
23806 /*****************************************************************************
23807  * IContextMenuSite interface
23808  */
23809 #ifndef __IContextMenuSite_INTERFACE_DEFINED__
23810 #define __IContextMenuSite_INTERFACE_DEFINED__
23811 
23812 DEFINE_GUID(IID_IContextMenuSite, 0x0811aebe, 0x0b87, 0x4c54, 0x9e,0x72, 0x54,0x8c,0xf6,0x49,0x01,0x6b);
23813 #if defined(__cplusplus) && !defined(CINTERFACE)
23814 MIDL_INTERFACE("0811aebe-0b87-4c54-9e72-548cf649016b")
23815 IContextMenuSite : public IUnknown
23816 {
23817     virtual HRESULT STDMETHODCALLTYPE DoContextMenuPopup(
23818         IUnknown *punkContextMenu,
23819         UINT fFlags,
23820         POINT pt) = 0;
23821 
23822 };
23823 #ifdef __CRT_UUID_DECL
23824 __CRT_UUID_DECL(IContextMenuSite, 0x0811aebe, 0x0b87, 0x4c54, 0x9e,0x72, 0x54,0x8c,0xf6,0x49,0x01,0x6b)
23825 #endif
23826 #else
23827 typedef struct IContextMenuSiteVtbl {
23828     BEGIN_INTERFACE
23829 
23830     /*** IUnknown methods ***/
23831     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
23832         IContextMenuSite* This,
23833         REFIID riid,
23834         void **ppvObject);
23835 
23836     ULONG (STDMETHODCALLTYPE *AddRef)(
23837         IContextMenuSite* This);
23838 
23839     ULONG (STDMETHODCALLTYPE *Release)(
23840         IContextMenuSite* This);
23841 
23842     /*** IContextMenuSite methods ***/
23843     HRESULT (STDMETHODCALLTYPE *DoContextMenuPopup)(
23844         IContextMenuSite* This,
23845         IUnknown *punkContextMenu,
23846         UINT fFlags,
23847         POINT pt);
23848 
23849     END_INTERFACE
23850 } IContextMenuSiteVtbl;
23851 interface IContextMenuSite {
23852     CONST_VTBL IContextMenuSiteVtbl* lpVtbl;
23853 };
23854 
23855 #ifdef COBJMACROS
23856 #ifndef WIDL_C_INLINE_WRAPPERS
23857 /*** IUnknown methods ***/
23858 #define IContextMenuSite_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
23859 #define IContextMenuSite_AddRef(This) (This)->lpVtbl->AddRef(This)
23860 #define IContextMenuSite_Release(This) (This)->lpVtbl->Release(This)
23861 /*** IContextMenuSite methods ***/
23862 #define IContextMenuSite_DoContextMenuPopup(This,punkContextMenu,fFlags,pt) (This)->lpVtbl->DoContextMenuPopup(This,punkContextMenu,fFlags,pt)
23863 #else
23864 /*** IUnknown methods ***/
23865 static FORCEINLINE HRESULT IContextMenuSite_QueryInterface(IContextMenuSite* This,REFIID riid,void **ppvObject) {
23866     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
23867 }
23868 static FORCEINLINE ULONG IContextMenuSite_AddRef(IContextMenuSite* This) {
23869     return This->lpVtbl->AddRef(This);
23870 }
23871 static FORCEINLINE ULONG IContextMenuSite_Release(IContextMenuSite* This) {
23872     return This->lpVtbl->Release(This);
23873 }
23874 /*** IContextMenuSite methods ***/
23875 static FORCEINLINE HRESULT IContextMenuSite_DoContextMenuPopup(IContextMenuSite* This,IUnknown *punkContextMenu,UINT fFlags,POINT pt) {
23876     return This->lpVtbl->DoContextMenuPopup(This,punkContextMenu,fFlags,pt);
23877 }
23878 #endif
23879 #endif
23880 
23881 #endif
23882 
23883 HRESULT STDMETHODCALLTYPE IContextMenuSite_DoContextMenuPopup_Proxy(
23884     IContextMenuSite* This,
23885     IUnknown *punkContextMenu,
23886     UINT fFlags,
23887     POINT pt);
23888 void __RPC_STUB IContextMenuSite_DoContextMenuPopup_Stub(
23889     IRpcStubBuffer* This,
23890     IRpcChannelBuffer* pRpcChannelBuffer,
23891     PRPC_MESSAGE pRpcMessage,
23892     DWORD* pdwStubPhase);
23893 
23894 #endif  /* __IContextMenuSite_INTERFACE_DEFINED__ */
23895 
23896 
23897 /*****************************************************************************
23898  * IEnumReadyCallback interface
23899  */
23900 #ifndef __IEnumReadyCallback_INTERFACE_DEFINED__
23901 #define __IEnumReadyCallback_INTERFACE_DEFINED__
23902 
23903 DEFINE_GUID(IID_IEnumReadyCallback, 0x61e00d45, 0x8fff, 0x4e60, 0x92,0x4e, 0x65,0x37,0xb6,0x16,0x12,0xdd);
23904 #if defined(__cplusplus) && !defined(CINTERFACE)
23905 MIDL_INTERFACE("61e00d45-8fff-4e60-924e-6537b61612dd")
23906 IEnumReadyCallback : public IUnknown
23907 {
23908     virtual HRESULT STDMETHODCALLTYPE EnumReady(
23909         ) = 0;
23910 
23911 };
23912 #ifdef __CRT_UUID_DECL
23913 __CRT_UUID_DECL(IEnumReadyCallback, 0x61e00d45, 0x8fff, 0x4e60, 0x92,0x4e, 0x65,0x37,0xb6,0x16,0x12,0xdd)
23914 #endif
23915 #else
23916 typedef struct IEnumReadyCallbackVtbl {
23917     BEGIN_INTERFACE
23918 
23919     /*** IUnknown methods ***/
23920     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
23921         IEnumReadyCallback* This,
23922         REFIID riid,
23923         void **ppvObject);
23924 
23925     ULONG (STDMETHODCALLTYPE *AddRef)(
23926         IEnumReadyCallback* This);
23927 
23928     ULONG (STDMETHODCALLTYPE *Release)(
23929         IEnumReadyCallback* This);
23930 
23931     /*** IEnumReadyCallback methods ***/
23932     HRESULT (STDMETHODCALLTYPE *EnumReady)(
23933         IEnumReadyCallback* This);
23934 
23935     END_INTERFACE
23936 } IEnumReadyCallbackVtbl;
23937 interface IEnumReadyCallback {
23938     CONST_VTBL IEnumReadyCallbackVtbl* lpVtbl;
23939 };
23940 
23941 #ifdef COBJMACROS
23942 #ifndef WIDL_C_INLINE_WRAPPERS
23943 /*** IUnknown methods ***/
23944 #define IEnumReadyCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
23945 #define IEnumReadyCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
23946 #define IEnumReadyCallback_Release(This) (This)->lpVtbl->Release(This)
23947 /*** IEnumReadyCallback methods ***/
23948 #define IEnumReadyCallback_EnumReady(This) (This)->lpVtbl->EnumReady(This)
23949 #else
23950 /*** IUnknown methods ***/
23951 static FORCEINLINE HRESULT IEnumReadyCallback_QueryInterface(IEnumReadyCallback* This,REFIID riid,void **ppvObject) {
23952     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
23953 }
23954 static FORCEINLINE ULONG IEnumReadyCallback_AddRef(IEnumReadyCallback* This) {
23955     return This->lpVtbl->AddRef(This);
23956 }
23957 static FORCEINLINE ULONG IEnumReadyCallback_Release(IEnumReadyCallback* This) {
23958     return This->lpVtbl->Release(This);
23959 }
23960 /*** IEnumReadyCallback methods ***/
23961 static FORCEINLINE HRESULT IEnumReadyCallback_EnumReady(IEnumReadyCallback* This) {
23962     return This->lpVtbl->EnumReady(This);
23963 }
23964 #endif
23965 #endif
23966 
23967 #endif
23968 
23969 HRESULT STDMETHODCALLTYPE IEnumReadyCallback_EnumReady_Proxy(
23970     IEnumReadyCallback* This);
23971 void __RPC_STUB IEnumReadyCallback_EnumReady_Stub(
23972     IRpcStubBuffer* This,
23973     IRpcChannelBuffer* pRpcChannelBuffer,
23974     PRPC_MESSAGE pRpcMessage,
23975     DWORD* pdwStubPhase);
23976 
23977 #endif  /* __IEnumReadyCallback_INTERFACE_DEFINED__ */
23978 
23979 
23980 /*****************************************************************************
23981  * IEnumerableView interface
23982  */
23983 #ifndef __IEnumerableView_INTERFACE_DEFINED__
23984 #define __IEnumerableView_INTERFACE_DEFINED__
23985 
23986 DEFINE_GUID(IID_IEnumerableView, 0x8c8bf236, 0x1aec, 0x495f, 0x98,0x94, 0x91,0xd5,0x7c,0x3c,0x68,0x6f);
23987 #if defined(__cplusplus) && !defined(CINTERFACE)
23988 MIDL_INTERFACE("8c8bf236-1aec-495f-9894-91d57c3c686f")
23989 IEnumerableView : public IUnknown
23990 {
23991     virtual HRESULT STDMETHODCALLTYPE SetEnumReadyCallback(
23992         IEnumReadyCallback *percb) = 0;
23993 
23994     virtual HRESULT STDMETHODCALLTYPE CreateEnumIDListFromContents(
23995         PCIDLIST_ABSOLUTE pidlFolder,
23996         DWORD dwEnumFlags,
23997         IEnumIDList **ppEnumIDList) = 0;
23998 
23999 };
24000 #ifdef __CRT_UUID_DECL
24001 __CRT_UUID_DECL(IEnumerableView, 0x8c8bf236, 0x1aec, 0x495f, 0x98,0x94, 0x91,0xd5,0x7c,0x3c,0x68,0x6f)
24002 #endif
24003 #else
24004 typedef struct IEnumerableViewVtbl {
24005     BEGIN_INTERFACE
24006 
24007     /*** IUnknown methods ***/
24008     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
24009         IEnumerableView* This,
24010         REFIID riid,
24011         void **ppvObject);
24012 
24013     ULONG (STDMETHODCALLTYPE *AddRef)(
24014         IEnumerableView* This);
24015 
24016     ULONG (STDMETHODCALLTYPE *Release)(
24017         IEnumerableView* This);
24018 
24019     /*** IEnumerableView methods ***/
24020     HRESULT (STDMETHODCALLTYPE *SetEnumReadyCallback)(
24021         IEnumerableView* This,
24022         IEnumReadyCallback *percb);
24023 
24024     HRESULT (STDMETHODCALLTYPE *CreateEnumIDListFromContents)(
24025         IEnumerableView* This,
24026         PCIDLIST_ABSOLUTE pidlFolder,
24027         DWORD dwEnumFlags,
24028         IEnumIDList **ppEnumIDList);
24029 
24030     END_INTERFACE
24031 } IEnumerableViewVtbl;
24032 interface IEnumerableView {
24033     CONST_VTBL IEnumerableViewVtbl* lpVtbl;
24034 };
24035 
24036 #ifdef COBJMACROS
24037 #ifndef WIDL_C_INLINE_WRAPPERS
24038 /*** IUnknown methods ***/
24039 #define IEnumerableView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
24040 #define IEnumerableView_AddRef(This) (This)->lpVtbl->AddRef(This)
24041 #define IEnumerableView_Release(This) (This)->lpVtbl->Release(This)
24042 /*** IEnumerableView methods ***/
24043 #define IEnumerableView_SetEnumReadyCallback(This,percb) (This)->lpVtbl->SetEnumReadyCallback(This,percb)
24044 #define IEnumerableView_CreateEnumIDListFromContents(This,pidlFolder,dwEnumFlags,ppEnumIDList) (This)->lpVtbl->CreateEnumIDListFromContents(This,pidlFolder,dwEnumFlags,ppEnumIDList)
24045 #else
24046 /*** IUnknown methods ***/
24047 static FORCEINLINE HRESULT IEnumerableView_QueryInterface(IEnumerableView* This,REFIID riid,void **ppvObject) {
24048     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
24049 }
24050 static FORCEINLINE ULONG IEnumerableView_AddRef(IEnumerableView* This) {
24051     return This->lpVtbl->AddRef(This);
24052 }
24053 static FORCEINLINE ULONG IEnumerableView_Release(IEnumerableView* This) {
24054     return This->lpVtbl->Release(This);
24055 }
24056 /*** IEnumerableView methods ***/
24057 static FORCEINLINE HRESULT IEnumerableView_SetEnumReadyCallback(IEnumerableView* This,IEnumReadyCallback *percb) {
24058     return This->lpVtbl->SetEnumReadyCallback(This,percb);
24059 }
24060 static FORCEINLINE HRESULT IEnumerableView_CreateEnumIDListFromContents(IEnumerableView* This,PCIDLIST_ABSOLUTE pidlFolder,DWORD dwEnumFlags,IEnumIDList **ppEnumIDList) {
24061     return This->lpVtbl->CreateEnumIDListFromContents(This,pidlFolder,dwEnumFlags,ppEnumIDList);
24062 }
24063 #endif
24064 #endif
24065 
24066 #endif
24067 
24068 HRESULT STDMETHODCALLTYPE IEnumerableView_SetEnumReadyCallback_Proxy(
24069     IEnumerableView* This,
24070     IEnumReadyCallback *percb);
24071 void __RPC_STUB IEnumerableView_SetEnumReadyCallback_Stub(
24072     IRpcStubBuffer* This,
24073     IRpcChannelBuffer* pRpcChannelBuffer,
24074     PRPC_MESSAGE pRpcMessage,
24075     DWORD* pdwStubPhase);
24076 HRESULT STDMETHODCALLTYPE IEnumerableView_CreateEnumIDListFromContents_Proxy(
24077     IEnumerableView* This,
24078     PCIDLIST_ABSOLUTE pidlFolder,
24079     DWORD dwEnumFlags,
24080     IEnumIDList **ppEnumIDList);
24081 void __RPC_STUB IEnumerableView_CreateEnumIDListFromContents_Stub(
24082     IRpcStubBuffer* This,
24083     IRpcChannelBuffer* pRpcChannelBuffer,
24084     PRPC_MESSAGE pRpcMessage,
24085     DWORD* pdwStubPhase);
24086 
24087 #endif  /* __IEnumerableView_INTERFACE_DEFINED__ */
24088 
24089 
24090 #define SID_EnumerableView IID_IEnumerableView
24091 
24092 /*****************************************************************************
24093  * IInsertItem interface
24094  */
24095 #ifndef __IInsertItem_INTERFACE_DEFINED__
24096 #define __IInsertItem_INTERFACE_DEFINED__
24097 
24098 DEFINE_GUID(IID_IInsertItem, 0xd2b57227, 0x3d23, 0x4b95, 0x93,0xc0, 0x49,0x2b,0xd4,0x54,0xc3,0x56);
24099 #if defined(__cplusplus) && !defined(CINTERFACE)
24100 MIDL_INTERFACE("d2b57227-3d23-4b95-93c0-492bd454c356")
24101 IInsertItem : public IUnknown
24102 {
24103     virtual HRESULT STDMETHODCALLTYPE InsertItem(
24104         PCUIDLIST_RELATIVE pidl) = 0;
24105 
24106 };
24107 #ifdef __CRT_UUID_DECL
24108 __CRT_UUID_DECL(IInsertItem, 0xd2b57227, 0x3d23, 0x4b95, 0x93,0xc0, 0x49,0x2b,0xd4,0x54,0xc3,0x56)
24109 #endif
24110 #else
24111 typedef struct IInsertItemVtbl {
24112     BEGIN_INTERFACE
24113 
24114     /*** IUnknown methods ***/
24115     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
24116         IInsertItem* This,
24117         REFIID riid,
24118         void **ppvObject);
24119 
24120     ULONG (STDMETHODCALLTYPE *AddRef)(
24121         IInsertItem* This);
24122 
24123     ULONG (STDMETHODCALLTYPE *Release)(
24124         IInsertItem* This);
24125 
24126     /*** IInsertItem methods ***/
24127     HRESULT (STDMETHODCALLTYPE *InsertItem)(
24128         IInsertItem* This,
24129         PCUIDLIST_RELATIVE pidl);
24130 
24131     END_INTERFACE
24132 } IInsertItemVtbl;
24133 interface IInsertItem {
24134     CONST_VTBL IInsertItemVtbl* lpVtbl;
24135 };
24136 
24137 #ifdef COBJMACROS
24138 #ifndef WIDL_C_INLINE_WRAPPERS
24139 /*** IUnknown methods ***/
24140 #define IInsertItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
24141 #define IInsertItem_AddRef(This) (This)->lpVtbl->AddRef(This)
24142 #define IInsertItem_Release(This) (This)->lpVtbl->Release(This)
24143 /*** IInsertItem methods ***/
24144 #define IInsertItem_InsertItem(This,pidl) (This)->lpVtbl->InsertItem(This,pidl)
24145 #else
24146 /*** IUnknown methods ***/
24147 static FORCEINLINE HRESULT IInsertItem_QueryInterface(IInsertItem* This,REFIID riid,void **ppvObject) {
24148     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
24149 }
24150 static FORCEINLINE ULONG IInsertItem_AddRef(IInsertItem* This) {
24151     return This->lpVtbl->AddRef(This);
24152 }
24153 static FORCEINLINE ULONG IInsertItem_Release(IInsertItem* This) {
24154     return This->lpVtbl->Release(This);
24155 }
24156 /*** IInsertItem methods ***/
24157 static FORCEINLINE HRESULT IInsertItem_InsertItem(IInsertItem* This,PCUIDLIST_RELATIVE pidl) {
24158     return This->lpVtbl->InsertItem(This,pidl);
24159 }
24160 #endif
24161 #endif
24162 
24163 #endif
24164 
24165 HRESULT STDMETHODCALLTYPE IInsertItem_InsertItem_Proxy(
24166     IInsertItem* This,
24167     PCUIDLIST_RELATIVE pidl);
24168 void __RPC_STUB IInsertItem_InsertItem_Stub(
24169     IRpcStubBuffer* This,
24170     IRpcChannelBuffer* pRpcChannelBuffer,
24171     PRPC_MESSAGE pRpcMessage,
24172     DWORD* pdwStubPhase);
24173 
24174 #endif  /* __IInsertItem_INTERFACE_DEFINED__ */
24175 
24176 
24177 /*****************************************************************************
24178  * IMenuBand interface
24179  */
24180 #ifndef __IMenuBand_INTERFACE_DEFINED__
24181 #define __IMenuBand_INTERFACE_DEFINED__
24182 
24183 enum tagMENUBANDHANDLERCID {
24184     MBHANDCID_PIDLSELECT = 0
24185 };
24186 
24187 
24188 DEFINE_GUID(IID_IMenuBand, 0x568804cd, 0xcbd7, 0x11d0, 0x98,0x16, 0x00,0xc0,0x4f,0xd9,0x19,0x72);
24189 #if defined(__cplusplus) && !defined(CINTERFACE)
24190 MIDL_INTERFACE("568804cd-cbd7-11d0-9816-00c04fd91972")
24191 IMenuBand : public IUnknown
24192 {
24193     virtual HRESULT STDMETHODCALLTYPE IsMenuMessage(
24194         MSG *pmsg) = 0;
24195 
24196     virtual HRESULT STDMETHODCALLTYPE TranslateMenuMessage(
24197         MSG *pmsg,
24198         LRESULT *plRet) = 0;
24199 
24200 };
24201 #ifdef __CRT_UUID_DECL
24202 __CRT_UUID_DECL(IMenuBand, 0x568804cd, 0xcbd7, 0x11d0, 0x98,0x16, 0x00,0xc0,0x4f,0xd9,0x19,0x72)
24203 #endif
24204 #else
24205 typedef struct IMenuBandVtbl {
24206     BEGIN_INTERFACE
24207 
24208     /*** IUnknown methods ***/
24209     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
24210         IMenuBand* This,
24211         REFIID riid,
24212         void **ppvObject);
24213 
24214     ULONG (STDMETHODCALLTYPE *AddRef)(
24215         IMenuBand* This);
24216 
24217     ULONG (STDMETHODCALLTYPE *Release)(
24218         IMenuBand* This);
24219 
24220     /*** IMenuBand methods ***/
24221     HRESULT (STDMETHODCALLTYPE *IsMenuMessage)(
24222         IMenuBand* This,
24223         MSG *pmsg);
24224 
24225     HRESULT (STDMETHODCALLTYPE *TranslateMenuMessage)(
24226         IMenuBand* This,
24227         MSG *pmsg,
24228         LRESULT *plRet);
24229 
24230     END_INTERFACE
24231 } IMenuBandVtbl;
24232 interface IMenuBand {
24233     CONST_VTBL IMenuBandVtbl* lpVtbl;
24234 };
24235 
24236 #ifdef COBJMACROS
24237 #ifndef WIDL_C_INLINE_WRAPPERS
24238 /*** IUnknown methods ***/
24239 #define IMenuBand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
24240 #define IMenuBand_AddRef(This) (This)->lpVtbl->AddRef(This)
24241 #define IMenuBand_Release(This) (This)->lpVtbl->Release(This)
24242 /*** IMenuBand methods ***/
24243 #define IMenuBand_IsMenuMessage(This,pmsg) (This)->lpVtbl->IsMenuMessage(This,pmsg)
24244 #define IMenuBand_TranslateMenuMessage(This,pmsg,plRet) (This)->lpVtbl->TranslateMenuMessage(This,pmsg,plRet)
24245 #else
24246 /*** IUnknown methods ***/
24247 static FORCEINLINE HRESULT IMenuBand_QueryInterface(IMenuBand* This,REFIID riid,void **ppvObject) {
24248     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
24249 }
24250 static FORCEINLINE ULONG IMenuBand_AddRef(IMenuBand* This) {
24251     return This->lpVtbl->AddRef(This);
24252 }
24253 static FORCEINLINE ULONG IMenuBand_Release(IMenuBand* This) {
24254     return This->lpVtbl->Release(This);
24255 }
24256 /*** IMenuBand methods ***/
24257 static FORCEINLINE HRESULT IMenuBand_IsMenuMessage(IMenuBand* This,MSG *pmsg) {
24258     return This->lpVtbl->IsMenuMessage(This,pmsg);
24259 }
24260 static FORCEINLINE HRESULT IMenuBand_TranslateMenuMessage(IMenuBand* This,MSG *pmsg,LRESULT *plRet) {
24261     return This->lpVtbl->TranslateMenuMessage(This,pmsg,plRet);
24262 }
24263 #endif
24264 #endif
24265 
24266 #endif
24267 
24268 HRESULT STDMETHODCALLTYPE IMenuBand_IsMenuMessage_Proxy(
24269     IMenuBand* This,
24270     MSG *pmsg);
24271 void __RPC_STUB IMenuBand_IsMenuMessage_Stub(
24272     IRpcStubBuffer* This,
24273     IRpcChannelBuffer* pRpcChannelBuffer,
24274     PRPC_MESSAGE pRpcMessage,
24275     DWORD* pdwStubPhase);
24276 HRESULT STDMETHODCALLTYPE IMenuBand_TranslateMenuMessage_Proxy(
24277     IMenuBand* This,
24278     MSG *pmsg,
24279     LRESULT *plRet);
24280 void __RPC_STUB IMenuBand_TranslateMenuMessage_Stub(
24281     IRpcStubBuffer* This,
24282     IRpcChannelBuffer* pRpcChannelBuffer,
24283     PRPC_MESSAGE pRpcMessage,
24284     DWORD* pdwStubPhase);
24285 
24286 #endif  /* __IMenuBand_INTERFACE_DEFINED__ */
24287 
24288 
24289 /*****************************************************************************
24290  * IFolderBandPriv interface
24291  */
24292 #ifndef __IFolderBandPriv_INTERFACE_DEFINED__
24293 #define __IFolderBandPriv_INTERFACE_DEFINED__
24294 
24295 DEFINE_GUID(IID_IFolderBandPriv, 0x47c01f95, 0xe185, 0x412c, 0xb5,0xc5, 0x4f,0x27,0xdf,0x96,0x5a,0xea);
24296 #if defined(__cplusplus) && !defined(CINTERFACE)
24297 MIDL_INTERFACE("47c01f95-e185-412c-b5c5-4f27df965aea")
24298 IFolderBandPriv : public IUnknown
24299 {
24300     virtual HRESULT STDMETHODCALLTYPE SetCascade(
24301         WINBOOL fCascade) = 0;
24302 
24303     virtual HRESULT STDMETHODCALLTYPE SetAccelerators(
24304         WINBOOL fAccelerators) = 0;
24305 
24306     virtual HRESULT STDMETHODCALLTYPE SetNoIcons(
24307         WINBOOL fNoIcons) = 0;
24308 
24309     virtual HRESULT STDMETHODCALLTYPE SetNoText(
24310         WINBOOL fNoText) = 0;
24311 
24312 };
24313 #ifdef __CRT_UUID_DECL
24314 __CRT_UUID_DECL(IFolderBandPriv, 0x47c01f95, 0xe185, 0x412c, 0xb5,0xc5, 0x4f,0x27,0xdf,0x96,0x5a,0xea)
24315 #endif
24316 #else
24317 typedef struct IFolderBandPrivVtbl {
24318     BEGIN_INTERFACE
24319 
24320     /*** IUnknown methods ***/
24321     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
24322         IFolderBandPriv* This,
24323         REFIID riid,
24324         void **ppvObject);
24325 
24326     ULONG (STDMETHODCALLTYPE *AddRef)(
24327         IFolderBandPriv* This);
24328 
24329     ULONG (STDMETHODCALLTYPE *Release)(
24330         IFolderBandPriv* This);
24331 
24332     /*** IFolderBandPriv methods ***/
24333     HRESULT (STDMETHODCALLTYPE *SetCascade)(
24334         IFolderBandPriv* This,
24335         WINBOOL fCascade);
24336 
24337     HRESULT (STDMETHODCALLTYPE *SetAccelerators)(
24338         IFolderBandPriv* This,
24339         WINBOOL fAccelerators);
24340 
24341     HRESULT (STDMETHODCALLTYPE *SetNoIcons)(
24342         IFolderBandPriv* This,
24343         WINBOOL fNoIcons);
24344 
24345     HRESULT (STDMETHODCALLTYPE *SetNoText)(
24346         IFolderBandPriv* This,
24347         WINBOOL fNoText);
24348 
24349     END_INTERFACE
24350 } IFolderBandPrivVtbl;
24351 interface IFolderBandPriv {
24352     CONST_VTBL IFolderBandPrivVtbl* lpVtbl;
24353 };
24354 
24355 #ifdef COBJMACROS
24356 #ifndef WIDL_C_INLINE_WRAPPERS
24357 /*** IUnknown methods ***/
24358 #define IFolderBandPriv_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
24359 #define IFolderBandPriv_AddRef(This) (This)->lpVtbl->AddRef(This)
24360 #define IFolderBandPriv_Release(This) (This)->lpVtbl->Release(This)
24361 /*** IFolderBandPriv methods ***/
24362 #define IFolderBandPriv_SetCascade(This,fCascade) (This)->lpVtbl->SetCascade(This,fCascade)
24363 #define IFolderBandPriv_SetAccelerators(This,fAccelerators) (This)->lpVtbl->SetAccelerators(This,fAccelerators)
24364 #define IFolderBandPriv_SetNoIcons(This,fNoIcons) (This)->lpVtbl->SetNoIcons(This,fNoIcons)
24365 #define IFolderBandPriv_SetNoText(This,fNoText) (This)->lpVtbl->SetNoText(This,fNoText)
24366 #else
24367 /*** IUnknown methods ***/
24368 static FORCEINLINE HRESULT IFolderBandPriv_QueryInterface(IFolderBandPriv* This,REFIID riid,void **ppvObject) {
24369     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
24370 }
24371 static FORCEINLINE ULONG IFolderBandPriv_AddRef(IFolderBandPriv* This) {
24372     return This->lpVtbl->AddRef(This);
24373 }
24374 static FORCEINLINE ULONG IFolderBandPriv_Release(IFolderBandPriv* This) {
24375     return This->lpVtbl->Release(This);
24376 }
24377 /*** IFolderBandPriv methods ***/
24378 static FORCEINLINE HRESULT IFolderBandPriv_SetCascade(IFolderBandPriv* This,WINBOOL fCascade) {
24379     return This->lpVtbl->SetCascade(This,fCascade);
24380 }
24381 static FORCEINLINE HRESULT IFolderBandPriv_SetAccelerators(IFolderBandPriv* This,WINBOOL fAccelerators) {
24382     return This->lpVtbl->SetAccelerators(This,fAccelerators);
24383 }
24384 static FORCEINLINE HRESULT IFolderBandPriv_SetNoIcons(IFolderBandPriv* This,WINBOOL fNoIcons) {
24385     return This->lpVtbl->SetNoIcons(This,fNoIcons);
24386 }
24387 static FORCEINLINE HRESULT IFolderBandPriv_SetNoText(IFolderBandPriv* This,WINBOOL fNoText) {
24388     return This->lpVtbl->SetNoText(This,fNoText);
24389 }
24390 #endif
24391 #endif
24392 
24393 #endif
24394 
24395 HRESULT STDMETHODCALLTYPE IFolderBandPriv_SetCascade_Proxy(
24396     IFolderBandPriv* This,
24397     WINBOOL fCascade);
24398 void __RPC_STUB IFolderBandPriv_SetCascade_Stub(
24399     IRpcStubBuffer* This,
24400     IRpcChannelBuffer* pRpcChannelBuffer,
24401     PRPC_MESSAGE pRpcMessage,
24402     DWORD* pdwStubPhase);
24403 HRESULT STDMETHODCALLTYPE IFolderBandPriv_SetAccelerators_Proxy(
24404     IFolderBandPriv* This,
24405     WINBOOL fAccelerators);
24406 void __RPC_STUB IFolderBandPriv_SetAccelerators_Stub(
24407     IRpcStubBuffer* This,
24408     IRpcChannelBuffer* pRpcChannelBuffer,
24409     PRPC_MESSAGE pRpcMessage,
24410     DWORD* pdwStubPhase);
24411 HRESULT STDMETHODCALLTYPE IFolderBandPriv_SetNoIcons_Proxy(
24412     IFolderBandPriv* This,
24413     WINBOOL fNoIcons);
24414 void __RPC_STUB IFolderBandPriv_SetNoIcons_Stub(
24415     IRpcStubBuffer* This,
24416     IRpcChannelBuffer* pRpcChannelBuffer,
24417     PRPC_MESSAGE pRpcMessage,
24418     DWORD* pdwStubPhase);
24419 HRESULT STDMETHODCALLTYPE IFolderBandPriv_SetNoText_Proxy(
24420     IFolderBandPriv* This,
24421     WINBOOL fNoText);
24422 void __RPC_STUB IFolderBandPriv_SetNoText_Stub(
24423     IRpcStubBuffer* This,
24424     IRpcChannelBuffer* pRpcChannelBuffer,
24425     PRPC_MESSAGE pRpcMessage,
24426     DWORD* pdwStubPhase);
24427 
24428 #endif  /* __IFolderBandPriv_INTERFACE_DEFINED__ */
24429 
24430 
24431 /*****************************************************************************
24432  * IRegTreeItem interface
24433  */
24434 #ifndef __IRegTreeItem_INTERFACE_DEFINED__
24435 #define __IRegTreeItem_INTERFACE_DEFINED__
24436 
24437 DEFINE_GUID(IID_IRegTreeItem, 0xa9521922, 0x0812, 0x4d44, 0x9e,0xc3, 0x7f,0xd3,0x8c,0x72,0x6f,0x3d);
24438 #if defined(__cplusplus) && !defined(CINTERFACE)
24439 MIDL_INTERFACE("a9521922-0812-4d44-9ec3-7fd38c726f3d")
24440 IRegTreeItem : public IUnknown
24441 {
24442     virtual HRESULT STDMETHODCALLTYPE GetCheckState(
24443         WINBOOL *pbCheck) = 0;
24444 
24445     virtual HRESULT STDMETHODCALLTYPE SetCheckState(
24446         WINBOOL bCheck) = 0;
24447 
24448 };
24449 #ifdef __CRT_UUID_DECL
24450 __CRT_UUID_DECL(IRegTreeItem, 0xa9521922, 0x0812, 0x4d44, 0x9e,0xc3, 0x7f,0xd3,0x8c,0x72,0x6f,0x3d)
24451 #endif
24452 #else
24453 typedef struct IRegTreeItemVtbl {
24454     BEGIN_INTERFACE
24455 
24456     /*** IUnknown methods ***/
24457     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
24458         IRegTreeItem* This,
24459         REFIID riid,
24460         void **ppvObject);
24461 
24462     ULONG (STDMETHODCALLTYPE *AddRef)(
24463         IRegTreeItem* This);
24464 
24465     ULONG (STDMETHODCALLTYPE *Release)(
24466         IRegTreeItem* This);
24467 
24468     /*** IRegTreeItem methods ***/
24469     HRESULT (STDMETHODCALLTYPE *GetCheckState)(
24470         IRegTreeItem* This,
24471         WINBOOL *pbCheck);
24472 
24473     HRESULT (STDMETHODCALLTYPE *SetCheckState)(
24474         IRegTreeItem* This,
24475         WINBOOL bCheck);
24476 
24477     END_INTERFACE
24478 } IRegTreeItemVtbl;
24479 interface IRegTreeItem {
24480     CONST_VTBL IRegTreeItemVtbl* lpVtbl;
24481 };
24482 
24483 #ifdef COBJMACROS
24484 #ifndef WIDL_C_INLINE_WRAPPERS
24485 /*** IUnknown methods ***/
24486 #define IRegTreeItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
24487 #define IRegTreeItem_AddRef(This) (This)->lpVtbl->AddRef(This)
24488 #define IRegTreeItem_Release(This) (This)->lpVtbl->Release(This)
24489 /*** IRegTreeItem methods ***/
24490 #define IRegTreeItem_GetCheckState(This,pbCheck) (This)->lpVtbl->GetCheckState(This,pbCheck)
24491 #define IRegTreeItem_SetCheckState(This,bCheck) (This)->lpVtbl->SetCheckState(This,bCheck)
24492 #else
24493 /*** IUnknown methods ***/
24494 static FORCEINLINE HRESULT IRegTreeItem_QueryInterface(IRegTreeItem* This,REFIID riid,void **ppvObject) {
24495     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
24496 }
24497 static FORCEINLINE ULONG IRegTreeItem_AddRef(IRegTreeItem* This) {
24498     return This->lpVtbl->AddRef(This);
24499 }
24500 static FORCEINLINE ULONG IRegTreeItem_Release(IRegTreeItem* This) {
24501     return This->lpVtbl->Release(This);
24502 }
24503 /*** IRegTreeItem methods ***/
24504 static FORCEINLINE HRESULT IRegTreeItem_GetCheckState(IRegTreeItem* This,WINBOOL *pbCheck) {
24505     return This->lpVtbl->GetCheckState(This,pbCheck);
24506 }
24507 static FORCEINLINE HRESULT IRegTreeItem_SetCheckState(IRegTreeItem* This,WINBOOL bCheck) {
24508     return This->lpVtbl->SetCheckState(This,bCheck);
24509 }
24510 #endif
24511 #endif
24512 
24513 #endif
24514 
24515 HRESULT STDMETHODCALLTYPE IRegTreeItem_GetCheckState_Proxy(
24516     IRegTreeItem* This,
24517     WINBOOL *pbCheck);
24518 void __RPC_STUB IRegTreeItem_GetCheckState_Stub(
24519     IRpcStubBuffer* This,
24520     IRpcChannelBuffer* pRpcChannelBuffer,
24521     PRPC_MESSAGE pRpcMessage,
24522     DWORD* pdwStubPhase);
24523 HRESULT STDMETHODCALLTYPE IRegTreeItem_SetCheckState_Proxy(
24524     IRegTreeItem* This,
24525     WINBOOL bCheck);
24526 void __RPC_STUB IRegTreeItem_SetCheckState_Stub(
24527     IRpcStubBuffer* This,
24528     IRpcChannelBuffer* pRpcChannelBuffer,
24529     PRPC_MESSAGE pRpcMessage,
24530     DWORD* pdwStubPhase);
24531 
24532 #endif  /* __IRegTreeItem_INTERFACE_DEFINED__ */
24533 
24534 
24535 /*****************************************************************************
24536  * IImageRecompress interface
24537  */
24538 #ifndef __IImageRecompress_INTERFACE_DEFINED__
24539 #define __IImageRecompress_INTERFACE_DEFINED__
24540 
24541 DEFINE_GUID(IID_IImageRecompress, 0x505f1513, 0x6b3e, 0x4892, 0xa2,0x72, 0x59,0xf8,0x88,0x9a,0x4d,0x3e);
24542 #if defined(__cplusplus) && !defined(CINTERFACE)
24543 MIDL_INTERFACE("505f1513-6b3e-4892-a272-59f8889a4d3e")
24544 IImageRecompress : public IUnknown
24545 {
24546     virtual HRESULT STDMETHODCALLTYPE RecompressImage(
24547         IShellItem *psi,
24548         int cx,
24549         int cy,
24550         int iQuality,
24551         IStorage *pstg,
24552         IStream **ppstrmOut) = 0;
24553 
24554 };
24555 #ifdef __CRT_UUID_DECL
24556 __CRT_UUID_DECL(IImageRecompress, 0x505f1513, 0x6b3e, 0x4892, 0xa2,0x72, 0x59,0xf8,0x88,0x9a,0x4d,0x3e)
24557 #endif
24558 #else
24559 typedef struct IImageRecompressVtbl {
24560     BEGIN_INTERFACE
24561 
24562     /*** IUnknown methods ***/
24563     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
24564         IImageRecompress* This,
24565         REFIID riid,
24566         void **ppvObject);
24567 
24568     ULONG (STDMETHODCALLTYPE *AddRef)(
24569         IImageRecompress* This);
24570 
24571     ULONG (STDMETHODCALLTYPE *Release)(
24572         IImageRecompress* This);
24573 
24574     /*** IImageRecompress methods ***/
24575     HRESULT (STDMETHODCALLTYPE *RecompressImage)(
24576         IImageRecompress* This,
24577         IShellItem *psi,
24578         int cx,
24579         int cy,
24580         int iQuality,
24581         IStorage *pstg,
24582         IStream **ppstrmOut);
24583 
24584     END_INTERFACE
24585 } IImageRecompressVtbl;
24586 interface IImageRecompress {
24587     CONST_VTBL IImageRecompressVtbl* lpVtbl;
24588 };
24589 
24590 #ifdef COBJMACROS
24591 #ifndef WIDL_C_INLINE_WRAPPERS
24592 /*** IUnknown methods ***/
24593 #define IImageRecompress_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
24594 #define IImageRecompress_AddRef(This) (This)->lpVtbl->AddRef(This)
24595 #define IImageRecompress_Release(This) (This)->lpVtbl->Release(This)
24596 /*** IImageRecompress methods ***/
24597 #define IImageRecompress_RecompressImage(This,psi,cx,cy,iQuality,pstg,ppstrmOut) (This)->lpVtbl->RecompressImage(This,psi,cx,cy,iQuality,pstg,ppstrmOut)
24598 #else
24599 /*** IUnknown methods ***/
24600 static FORCEINLINE HRESULT IImageRecompress_QueryInterface(IImageRecompress* This,REFIID riid,void **ppvObject) {
24601     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
24602 }
24603 static FORCEINLINE ULONG IImageRecompress_AddRef(IImageRecompress* This) {
24604     return This->lpVtbl->AddRef(This);
24605 }
24606 static FORCEINLINE ULONG IImageRecompress_Release(IImageRecompress* This) {
24607     return This->lpVtbl->Release(This);
24608 }
24609 /*** IImageRecompress methods ***/
24610 static FORCEINLINE HRESULT IImageRecompress_RecompressImage(IImageRecompress* This,IShellItem *psi,int cx,int cy,int iQuality,IStorage *pstg,IStream **ppstrmOut) {
24611     return This->lpVtbl->RecompressImage(This,psi,cx,cy,iQuality,pstg,ppstrmOut);
24612 }
24613 #endif
24614 #endif
24615 
24616 #endif
24617 
24618 HRESULT STDMETHODCALLTYPE IImageRecompress_RecompressImage_Proxy(
24619     IImageRecompress* This,
24620     IShellItem *psi,
24621     int cx,
24622     int cy,
24623     int iQuality,
24624     IStorage *pstg,
24625     IStream **ppstrmOut);
24626 void __RPC_STUB IImageRecompress_RecompressImage_Stub(
24627     IRpcStubBuffer* This,
24628     IRpcChannelBuffer* pRpcChannelBuffer,
24629     PRPC_MESSAGE pRpcMessage,
24630     DWORD* pdwStubPhase);
24631 
24632 #endif  /* __IImageRecompress_INTERFACE_DEFINED__ */
24633 
24634 
24635 #if _WIN32_IE >= _WIN32_IE_IE60
24636 /*****************************************************************************
24637  * IDeskBar interface
24638  */
24639 #ifndef __IDeskBar_INTERFACE_DEFINED__
24640 #define __IDeskBar_INTERFACE_DEFINED__
24641 
24642 DEFINE_GUID(IID_IDeskBar, 0xeb0fe173, 0x1a3a, 0x11d0, 0x89,0xb3, 0x00,0xa0,0xc9,0x0a,0x90,0xac);
24643 #if defined(__cplusplus) && !defined(CINTERFACE)
24644 MIDL_INTERFACE("eb0fe173-1a3a-11d0-89b3-00a0c90a90ac")
24645 IDeskBar : public IOleWindow
24646 {
24647     virtual HRESULT STDMETHODCALLTYPE SetClient(
24648         IUnknown *punkClient) = 0;
24649 
24650     virtual HRESULT STDMETHODCALLTYPE GetClient(
24651         IUnknown **ppunkClient) = 0;
24652 
24653     virtual HRESULT STDMETHODCALLTYPE OnPosRectChangeDB(
24654         RECT *prc) = 0;
24655 
24656 };
24657 #ifdef __CRT_UUID_DECL
24658 __CRT_UUID_DECL(IDeskBar, 0xeb0fe173, 0x1a3a, 0x11d0, 0x89,0xb3, 0x00,0xa0,0xc9,0x0a,0x90,0xac)
24659 #endif
24660 #else
24661 typedef struct IDeskBarVtbl {
24662     BEGIN_INTERFACE
24663 
24664     /*** IUnknown methods ***/
24665     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
24666         IDeskBar* This,
24667         REFIID riid,
24668         void **ppvObject);
24669 
24670     ULONG (STDMETHODCALLTYPE *AddRef)(
24671         IDeskBar* This);
24672 
24673     ULONG (STDMETHODCALLTYPE *Release)(
24674         IDeskBar* This);
24675 
24676     /*** IOleWindow methods ***/
24677     HRESULT (STDMETHODCALLTYPE *GetWindow)(
24678         IDeskBar* This,
24679         HWND *phwnd);
24680 
24681     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
24682         IDeskBar* This,
24683         WINBOOL fEnterMode);
24684 
24685     /*** IDeskBar methods ***/
24686     HRESULT (STDMETHODCALLTYPE *SetClient)(
24687         IDeskBar* This,
24688         IUnknown *punkClient);
24689 
24690     HRESULT (STDMETHODCALLTYPE *GetClient)(
24691         IDeskBar* This,
24692         IUnknown **ppunkClient);
24693 
24694     HRESULT (STDMETHODCALLTYPE *OnPosRectChangeDB)(
24695         IDeskBar* This,
24696         RECT *prc);
24697 
24698     END_INTERFACE
24699 } IDeskBarVtbl;
24700 interface IDeskBar {
24701     CONST_VTBL IDeskBarVtbl* lpVtbl;
24702 };
24703 
24704 #ifdef COBJMACROS
24705 #ifndef WIDL_C_INLINE_WRAPPERS
24706 /*** IUnknown methods ***/
24707 #define IDeskBar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
24708 #define IDeskBar_AddRef(This) (This)->lpVtbl->AddRef(This)
24709 #define IDeskBar_Release(This) (This)->lpVtbl->Release(This)
24710 /*** IOleWindow methods ***/
24711 #define IDeskBar_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
24712 #define IDeskBar_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
24713 /*** IDeskBar methods ***/
24714 #define IDeskBar_SetClient(This,punkClient) (This)->lpVtbl->SetClient(This,punkClient)
24715 #define IDeskBar_GetClient(This,ppunkClient) (This)->lpVtbl->GetClient(This,ppunkClient)
24716 #define IDeskBar_OnPosRectChangeDB(This,prc) (This)->lpVtbl->OnPosRectChangeDB(This,prc)
24717 #else
24718 /*** IUnknown methods ***/
24719 static FORCEINLINE HRESULT IDeskBar_QueryInterface(IDeskBar* This,REFIID riid,void **ppvObject) {
24720     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
24721 }
24722 static FORCEINLINE ULONG IDeskBar_AddRef(IDeskBar* This) {
24723     return This->lpVtbl->AddRef(This);
24724 }
24725 static FORCEINLINE ULONG IDeskBar_Release(IDeskBar* This) {
24726     return This->lpVtbl->Release(This);
24727 }
24728 /*** IOleWindow methods ***/
24729 static FORCEINLINE HRESULT IDeskBar_GetWindow(IDeskBar* This,HWND *phwnd) {
24730     return This->lpVtbl->GetWindow(This,phwnd);
24731 }
24732 static FORCEINLINE HRESULT IDeskBar_ContextSensitiveHelp(IDeskBar* This,WINBOOL fEnterMode) {
24733     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
24734 }
24735 /*** IDeskBar methods ***/
24736 static FORCEINLINE HRESULT IDeskBar_SetClient(IDeskBar* This,IUnknown *punkClient) {
24737     return This->lpVtbl->SetClient(This,punkClient);
24738 }
24739 static FORCEINLINE HRESULT IDeskBar_GetClient(IDeskBar* This,IUnknown **ppunkClient) {
24740     return This->lpVtbl->GetClient(This,ppunkClient);
24741 }
24742 static FORCEINLINE HRESULT IDeskBar_OnPosRectChangeDB(IDeskBar* This,RECT *prc) {
24743     return This->lpVtbl->OnPosRectChangeDB(This,prc);
24744 }
24745 #endif
24746 #endif
24747 
24748 #endif
24749 
24750 HRESULT STDMETHODCALLTYPE IDeskBar_SetClient_Proxy(
24751     IDeskBar* This,
24752     IUnknown *punkClient);
24753 void __RPC_STUB IDeskBar_SetClient_Stub(
24754     IRpcStubBuffer* This,
24755     IRpcChannelBuffer* pRpcChannelBuffer,
24756     PRPC_MESSAGE pRpcMessage,
24757     DWORD* pdwStubPhase);
24758 HRESULT STDMETHODCALLTYPE IDeskBar_GetClient_Proxy(
24759     IDeskBar* This,
24760     IUnknown **ppunkClient);
24761 void __RPC_STUB IDeskBar_GetClient_Stub(
24762     IRpcStubBuffer* This,
24763     IRpcChannelBuffer* pRpcChannelBuffer,
24764     PRPC_MESSAGE pRpcMessage,
24765     DWORD* pdwStubPhase);
24766 HRESULT STDMETHODCALLTYPE IDeskBar_OnPosRectChangeDB_Proxy(
24767     IDeskBar* This,
24768     RECT *prc);
24769 void __RPC_STUB IDeskBar_OnPosRectChangeDB_Stub(
24770     IRpcStubBuffer* This,
24771     IRpcChannelBuffer* pRpcChannelBuffer,
24772     PRPC_MESSAGE pRpcMessage,
24773     DWORD* pdwStubPhase);
24774 
24775 #endif  /* __IDeskBar_INTERFACE_DEFINED__ */
24776 
24777 
24778 /*****************************************************************************
24779  * IMenuPopup interface
24780  */
24781 #ifndef __IMenuPopup_INTERFACE_DEFINED__
24782 #define __IMenuPopup_INTERFACE_DEFINED__
24783 
24784 enum tagMENUPOPUPSELECT {
24785     MPOS_EXECUTE = 0,
24786     MPOS_FULLCANCEL = 1,
24787     MPOS_CANCELLEVEL = 2,
24788     MPOS_SELECTLEFT = 3,
24789     MPOS_SELECTRIGHT = 4,
24790     MPOS_CHILDTRACKING = 5
24791 };
24792 
24793 
24794 enum tagMENUPOPUPPOPUPFLAGS {
24795     MPPF_SETFOCUS = 0x1,
24796     MPPF_INITIALSELECT = 0x2,
24797     MPPF_NOANIMATE = 0x4,
24798     MPPF_KEYBOARD = 0x10,
24799     MPPF_REPOSITION = 0x20,
24800     MPPF_FORCEZORDER = 0x40,
24801     MPPF_FINALSELECT = 0x80,
24802     MPPF_TOP = 0x20000000,
24803     MPPF_LEFT = 0x40000000,
24804     MPPF_RIGHT = 0x60000000,
24805     MPPF_BOTTOM = (int)0x80000000,
24806     MPPF_POS_MASK = (int)0xe0000000,
24807     MPPF_ALIGN_LEFT = 0x2000000,
24808     MPPF_ALIGN_RIGHT = 0x4000000
24809 };
24810 
24811 
24812 typedef int MP_POPUPFLAGS;
24813 
24814 DEFINE_GUID(IID_IMenuPopup, 0xd1e7afeb, 0x6a2e, 0x11d0, 0x8c,0x78, 0x00,0xc0,0x4f,0xd9,0x18,0xb4);
24815 #if defined(__cplusplus) && !defined(CINTERFACE)
24816 MIDL_INTERFACE("d1e7afeb-6a2e-11d0-8c78-00c04fd918b4")
24817 IMenuPopup : public IDeskBar
24818 {
24819     virtual HRESULT STDMETHODCALLTYPE Popup(
24820         POINTL *ppt,
24821         RECTL *prcExclude,
24822         MP_POPUPFLAGS dwFlags) = 0;
24823 
24824     virtual HRESULT STDMETHODCALLTYPE OnSelect(
24825         DWORD dwSelectType) = 0;
24826 
24827     virtual HRESULT STDMETHODCALLTYPE SetSubMenu(
24828         IMenuPopup *pmp,
24829         WINBOOL fSet) = 0;
24830 
24831 };
24832 #ifdef __CRT_UUID_DECL
24833 __CRT_UUID_DECL(IMenuPopup, 0xd1e7afeb, 0x6a2e, 0x11d0, 0x8c,0x78, 0x00,0xc0,0x4f,0xd9,0x18,0xb4)
24834 #endif
24835 #else
24836 typedef struct IMenuPopupVtbl {
24837     BEGIN_INTERFACE
24838 
24839     /*** IUnknown methods ***/
24840     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
24841         IMenuPopup* This,
24842         REFIID riid,
24843         void **ppvObject);
24844 
24845     ULONG (STDMETHODCALLTYPE *AddRef)(
24846         IMenuPopup* This);
24847 
24848     ULONG (STDMETHODCALLTYPE *Release)(
24849         IMenuPopup* This);
24850 
24851     /*** IOleWindow methods ***/
24852     HRESULT (STDMETHODCALLTYPE *GetWindow)(
24853         IMenuPopup* This,
24854         HWND *phwnd);
24855 
24856     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
24857         IMenuPopup* This,
24858         WINBOOL fEnterMode);
24859 
24860     /*** IDeskBar methods ***/
24861     HRESULT (STDMETHODCALLTYPE *SetClient)(
24862         IMenuPopup* This,
24863         IUnknown *punkClient);
24864 
24865     HRESULT (STDMETHODCALLTYPE *GetClient)(
24866         IMenuPopup* This,
24867         IUnknown **ppunkClient);
24868 
24869     HRESULT (STDMETHODCALLTYPE *OnPosRectChangeDB)(
24870         IMenuPopup* This,
24871         RECT *prc);
24872 
24873     /*** IMenuPopup methods ***/
24874     HRESULT (STDMETHODCALLTYPE *Popup)(
24875         IMenuPopup* This,
24876         POINTL *ppt,
24877         RECTL *prcExclude,
24878         MP_POPUPFLAGS dwFlags);
24879 
24880     HRESULT (STDMETHODCALLTYPE *OnSelect)(
24881         IMenuPopup* This,
24882         DWORD dwSelectType);
24883 
24884     HRESULT (STDMETHODCALLTYPE *SetSubMenu)(
24885         IMenuPopup* This,
24886         IMenuPopup *pmp,
24887         WINBOOL fSet);
24888 
24889     END_INTERFACE
24890 } IMenuPopupVtbl;
24891 interface IMenuPopup {
24892     CONST_VTBL IMenuPopupVtbl* lpVtbl;
24893 };
24894 
24895 #ifdef COBJMACROS
24896 #ifndef WIDL_C_INLINE_WRAPPERS
24897 /*** IUnknown methods ***/
24898 #define IMenuPopup_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
24899 #define IMenuPopup_AddRef(This) (This)->lpVtbl->AddRef(This)
24900 #define IMenuPopup_Release(This) (This)->lpVtbl->Release(This)
24901 /*** IOleWindow methods ***/
24902 #define IMenuPopup_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
24903 #define IMenuPopup_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
24904 /*** IDeskBar methods ***/
24905 #define IMenuPopup_SetClient(This,punkClient) (This)->lpVtbl->SetClient(This,punkClient)
24906 #define IMenuPopup_GetClient(This,ppunkClient) (This)->lpVtbl->GetClient(This,ppunkClient)
24907 #define IMenuPopup_OnPosRectChangeDB(This,prc) (This)->lpVtbl->OnPosRectChangeDB(This,prc)
24908 /*** IMenuPopup methods ***/
24909 #define IMenuPopup_Popup(This,ppt,prcExclude,dwFlags) (This)->lpVtbl->Popup(This,ppt,prcExclude,dwFlags)
24910 #define IMenuPopup_OnSelect(This,dwSelectType) (This)->lpVtbl->OnSelect(This,dwSelectType)
24911 #define IMenuPopup_SetSubMenu(This,pmp,fSet) (This)->lpVtbl->SetSubMenu(This,pmp,fSet)
24912 #else
24913 /*** IUnknown methods ***/
24914 static FORCEINLINE HRESULT IMenuPopup_QueryInterface(IMenuPopup* This,REFIID riid,void **ppvObject) {
24915     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
24916 }
24917 static FORCEINLINE ULONG IMenuPopup_AddRef(IMenuPopup* This) {
24918     return This->lpVtbl->AddRef(This);
24919 }
24920 static FORCEINLINE ULONG IMenuPopup_Release(IMenuPopup* This) {
24921     return This->lpVtbl->Release(This);
24922 }
24923 /*** IOleWindow methods ***/
24924 static FORCEINLINE HRESULT IMenuPopup_GetWindow(IMenuPopup* This,HWND *phwnd) {
24925     return This->lpVtbl->GetWindow(This,phwnd);
24926 }
24927 static FORCEINLINE HRESULT IMenuPopup_ContextSensitiveHelp(IMenuPopup* This,WINBOOL fEnterMode) {
24928     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
24929 }
24930 /*** IDeskBar methods ***/
24931 static FORCEINLINE HRESULT IMenuPopup_SetClient(IMenuPopup* This,IUnknown *punkClient) {
24932     return This->lpVtbl->SetClient(This,punkClient);
24933 }
24934 static FORCEINLINE HRESULT IMenuPopup_GetClient(IMenuPopup* This,IUnknown **ppunkClient) {
24935     return This->lpVtbl->GetClient(This,ppunkClient);
24936 }
24937 static FORCEINLINE HRESULT IMenuPopup_OnPosRectChangeDB(IMenuPopup* This,RECT *prc) {
24938     return This->lpVtbl->OnPosRectChangeDB(This,prc);
24939 }
24940 /*** IMenuPopup methods ***/
24941 static FORCEINLINE HRESULT IMenuPopup_Popup(IMenuPopup* This,POINTL *ppt,RECTL *prcExclude,MP_POPUPFLAGS dwFlags) {
24942     return This->lpVtbl->Popup(This,ppt,prcExclude,dwFlags);
24943 }
24944 static FORCEINLINE HRESULT IMenuPopup_OnSelect(IMenuPopup* This,DWORD dwSelectType) {
24945     return This->lpVtbl->OnSelect(This,dwSelectType);
24946 }
24947 static FORCEINLINE HRESULT IMenuPopup_SetSubMenu(IMenuPopup* This,IMenuPopup *pmp,WINBOOL fSet) {
24948     return This->lpVtbl->SetSubMenu(This,pmp,fSet);
24949 }
24950 #endif
24951 #endif
24952 
24953 #endif
24954 
24955 HRESULT STDMETHODCALLTYPE IMenuPopup_Popup_Proxy(
24956     IMenuPopup* This,
24957     POINTL *ppt,
24958     RECTL *prcExclude,
24959     MP_POPUPFLAGS dwFlags);
24960 void __RPC_STUB IMenuPopup_Popup_Stub(
24961     IRpcStubBuffer* This,
24962     IRpcChannelBuffer* pRpcChannelBuffer,
24963     PRPC_MESSAGE pRpcMessage,
24964     DWORD* pdwStubPhase);
24965 HRESULT STDMETHODCALLTYPE IMenuPopup_OnSelect_Proxy(
24966     IMenuPopup* This,
24967     DWORD dwSelectType);
24968 void __RPC_STUB IMenuPopup_OnSelect_Stub(
24969     IRpcStubBuffer* This,
24970     IRpcChannelBuffer* pRpcChannelBuffer,
24971     PRPC_MESSAGE pRpcMessage,
24972     DWORD* pdwStubPhase);
24973 HRESULT STDMETHODCALLTYPE IMenuPopup_SetSubMenu_Proxy(
24974     IMenuPopup* This,
24975     IMenuPopup *pmp,
24976     WINBOOL fSet);
24977 void __RPC_STUB IMenuPopup_SetSubMenu_Stub(
24978     IRpcStubBuffer* This,
24979     IRpcChannelBuffer* pRpcChannelBuffer,
24980     PRPC_MESSAGE pRpcMessage,
24981     DWORD* pdwStubPhase);
24982 
24983 #endif  /* __IMenuPopup_INTERFACE_DEFINED__ */
24984 
24985 #endif
24986 
24987 #if NTDDI_VERSION >= NTDDI_VISTA
24988 typedef enum FILE_USAGE_TYPE {
24989     FUT_PLAYING = 0,
24990     FUT_EDITING = 1,
24991     FUT_GENERIC = 2
24992 } FILE_USAGE_TYPE;
24993 
24994 #define OF_CAP_CANSWITCHTO 0x0001
24995 #define OF_CAP_CANCLOSE 0x0002
24996 
24997 /*****************************************************************************
24998  * IFileIsInUse interface
24999  */
25000 #ifndef __IFileIsInUse_INTERFACE_DEFINED__
25001 #define __IFileIsInUse_INTERFACE_DEFINED__
25002 
25003 DEFINE_GUID(IID_IFileIsInUse, 0x64a1cbf0, 0x3a1a, 0x4461, 0x91,0x58, 0x37,0x69,0x69,0x69,0x39,0x50);
25004 #if defined(__cplusplus) && !defined(CINTERFACE)
25005 MIDL_INTERFACE("64a1cbf0-3a1a-4461-9158-376969693950")
25006 IFileIsInUse : public IUnknown
25007 {
25008     virtual HRESULT STDMETHODCALLTYPE GetAppName(
25009         LPWSTR *ppszName) = 0;
25010 
25011     virtual HRESULT STDMETHODCALLTYPE GetUsage(
25012         FILE_USAGE_TYPE *pfut) = 0;
25013 
25014     virtual HRESULT STDMETHODCALLTYPE GetCapabilities(
25015         DWORD *pdwCapFlags) = 0;
25016 
25017     virtual HRESULT STDMETHODCALLTYPE GetSwitchToHWND(
25018         HWND *phwnd) = 0;
25019 
25020     virtual HRESULT STDMETHODCALLTYPE CloseFile(
25021         ) = 0;
25022 
25023 };
25024 #ifdef __CRT_UUID_DECL
25025 __CRT_UUID_DECL(IFileIsInUse, 0x64a1cbf0, 0x3a1a, 0x4461, 0x91,0x58, 0x37,0x69,0x69,0x69,0x39,0x50)
25026 #endif
25027 #else
25028 typedef struct IFileIsInUseVtbl {
25029     BEGIN_INTERFACE
25030 
25031     /*** IUnknown methods ***/
25032     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
25033         IFileIsInUse* This,
25034         REFIID riid,
25035         void **ppvObject);
25036 
25037     ULONG (STDMETHODCALLTYPE *AddRef)(
25038         IFileIsInUse* This);
25039 
25040     ULONG (STDMETHODCALLTYPE *Release)(
25041         IFileIsInUse* This);
25042 
25043     /*** IFileIsInUse methods ***/
25044     HRESULT (STDMETHODCALLTYPE *GetAppName)(
25045         IFileIsInUse* This,
25046         LPWSTR *ppszName);
25047 
25048     HRESULT (STDMETHODCALLTYPE *GetUsage)(
25049         IFileIsInUse* This,
25050         FILE_USAGE_TYPE *pfut);
25051 
25052     HRESULT (STDMETHODCALLTYPE *GetCapabilities)(
25053         IFileIsInUse* This,
25054         DWORD *pdwCapFlags);
25055 
25056     HRESULT (STDMETHODCALLTYPE *GetSwitchToHWND)(
25057         IFileIsInUse* This,
25058         HWND *phwnd);
25059 
25060     HRESULT (STDMETHODCALLTYPE *CloseFile)(
25061         IFileIsInUse* This);
25062 
25063     END_INTERFACE
25064 } IFileIsInUseVtbl;
25065 interface IFileIsInUse {
25066     CONST_VTBL IFileIsInUseVtbl* lpVtbl;
25067 };
25068 
25069 #ifdef COBJMACROS
25070 #ifndef WIDL_C_INLINE_WRAPPERS
25071 /*** IUnknown methods ***/
25072 #define IFileIsInUse_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
25073 #define IFileIsInUse_AddRef(This) (This)->lpVtbl->AddRef(This)
25074 #define IFileIsInUse_Release(This) (This)->lpVtbl->Release(This)
25075 /*** IFileIsInUse methods ***/
25076 #define IFileIsInUse_GetAppName(This,ppszName) (This)->lpVtbl->GetAppName(This,ppszName)
25077 #define IFileIsInUse_GetUsage(This,pfut) (This)->lpVtbl->GetUsage(This,pfut)
25078 #define IFileIsInUse_GetCapabilities(This,pdwCapFlags) (This)->lpVtbl->GetCapabilities(This,pdwCapFlags)
25079 #define IFileIsInUse_GetSwitchToHWND(This,phwnd) (This)->lpVtbl->GetSwitchToHWND(This,phwnd)
25080 #define IFileIsInUse_CloseFile(This) (This)->lpVtbl->CloseFile(This)
25081 #else
25082 /*** IUnknown methods ***/
25083 static FORCEINLINE HRESULT IFileIsInUse_QueryInterface(IFileIsInUse* This,REFIID riid,void **ppvObject) {
25084     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
25085 }
25086 static FORCEINLINE ULONG IFileIsInUse_AddRef(IFileIsInUse* This) {
25087     return This->lpVtbl->AddRef(This);
25088 }
25089 static FORCEINLINE ULONG IFileIsInUse_Release(IFileIsInUse* This) {
25090     return This->lpVtbl->Release(This);
25091 }
25092 /*** IFileIsInUse methods ***/
25093 static FORCEINLINE HRESULT IFileIsInUse_GetAppName(IFileIsInUse* This,LPWSTR *ppszName) {
25094     return This->lpVtbl->GetAppName(This,ppszName);
25095 }
25096 static FORCEINLINE HRESULT IFileIsInUse_GetUsage(IFileIsInUse* This,FILE_USAGE_TYPE *pfut) {
25097     return This->lpVtbl->GetUsage(This,pfut);
25098 }
25099 static FORCEINLINE HRESULT IFileIsInUse_GetCapabilities(IFileIsInUse* This,DWORD *pdwCapFlags) {
25100     return This->lpVtbl->GetCapabilities(This,pdwCapFlags);
25101 }
25102 static FORCEINLINE HRESULT IFileIsInUse_GetSwitchToHWND(IFileIsInUse* This,HWND *phwnd) {
25103     return This->lpVtbl->GetSwitchToHWND(This,phwnd);
25104 }
25105 static FORCEINLINE HRESULT IFileIsInUse_CloseFile(IFileIsInUse* This) {
25106     return This->lpVtbl->CloseFile(This);
25107 }
25108 #endif
25109 #endif
25110 
25111 #endif
25112 
25113 HRESULT STDMETHODCALLTYPE IFileIsInUse_GetAppName_Proxy(
25114     IFileIsInUse* This,
25115     LPWSTR *ppszName);
25116 void __RPC_STUB IFileIsInUse_GetAppName_Stub(
25117     IRpcStubBuffer* This,
25118     IRpcChannelBuffer* pRpcChannelBuffer,
25119     PRPC_MESSAGE pRpcMessage,
25120     DWORD* pdwStubPhase);
25121 HRESULT STDMETHODCALLTYPE IFileIsInUse_GetUsage_Proxy(
25122     IFileIsInUse* This,
25123     FILE_USAGE_TYPE *pfut);
25124 void __RPC_STUB IFileIsInUse_GetUsage_Stub(
25125     IRpcStubBuffer* This,
25126     IRpcChannelBuffer* pRpcChannelBuffer,
25127     PRPC_MESSAGE pRpcMessage,
25128     DWORD* pdwStubPhase);
25129 HRESULT STDMETHODCALLTYPE IFileIsInUse_GetCapabilities_Proxy(
25130     IFileIsInUse* This,
25131     DWORD *pdwCapFlags);
25132 void __RPC_STUB IFileIsInUse_GetCapabilities_Stub(
25133     IRpcStubBuffer* This,
25134     IRpcChannelBuffer* pRpcChannelBuffer,
25135     PRPC_MESSAGE pRpcMessage,
25136     DWORD* pdwStubPhase);
25137 HRESULT STDMETHODCALLTYPE IFileIsInUse_GetSwitchToHWND_Proxy(
25138     IFileIsInUse* This,
25139     HWND *phwnd);
25140 void __RPC_STUB IFileIsInUse_GetSwitchToHWND_Stub(
25141     IRpcStubBuffer* This,
25142     IRpcChannelBuffer* pRpcChannelBuffer,
25143     PRPC_MESSAGE pRpcMessage,
25144     DWORD* pdwStubPhase);
25145 HRESULT STDMETHODCALLTYPE IFileIsInUse_CloseFile_Proxy(
25146     IFileIsInUse* This);
25147 void __RPC_STUB IFileIsInUse_CloseFile_Stub(
25148     IRpcStubBuffer* This,
25149     IRpcChannelBuffer* pRpcChannelBuffer,
25150     PRPC_MESSAGE pRpcMessage,
25151     DWORD* pdwStubPhase);
25152 
25153 #endif  /* __IFileIsInUse_INTERFACE_DEFINED__ */
25154 
25155 
25156 #ifndef __IFileDialog_FWD_DEFINED__
25157 #define __IFileDialog_FWD_DEFINED__
25158 typedef interface IFileDialog IFileDialog;
25159 #endif
25160 
25161 
25162 typedef enum FDE_OVERWRITE_RESPONSE {
25163     FDEOR_DEFAULT = 0,
25164     FDEOR_ACCEPT = 1,
25165     FDEOR_REFUSE = 2
25166 } FDE_OVERWRITE_RESPONSE;
25167 
25168 typedef enum FDE_SHAREVIOLATION_RESPONSE {
25169     FDESVR_DEFAULT = 0,
25170     FDESVR_ACCEPT = 1,
25171     FDESVR_REFUSE = 2
25172 } FDE_SHAREVIOLATION_RESPONSE;
25173 
25174 typedef enum FDAP {
25175     FDAP_BOTTOM = 0,
25176     FDAP_TOP = 1
25177 } FDAP;
25178 
25179 /*****************************************************************************
25180  * IFileDialogEvents interface
25181  */
25182 #ifndef __IFileDialogEvents_INTERFACE_DEFINED__
25183 #define __IFileDialogEvents_INTERFACE_DEFINED__
25184 
25185 DEFINE_GUID(IID_IFileDialogEvents, 0x973510db, 0x7d7f, 0x452b, 0x89,0x75, 0x74,0xa8,0x58,0x28,0xd3,0x54);
25186 #if defined(__cplusplus) && !defined(CINTERFACE)
25187 MIDL_INTERFACE("973510db-7d7f-452b-8975-74a85828d354")
25188 IFileDialogEvents : public IUnknown
25189 {
25190     virtual HRESULT STDMETHODCALLTYPE OnFileOk(
25191         IFileDialog *pfd) = 0;
25192 
25193     virtual HRESULT STDMETHODCALLTYPE OnFolderChanging(
25194         IFileDialog *pfd,
25195         IShellItem *psiFolder) = 0;
25196 
25197     virtual HRESULT STDMETHODCALLTYPE OnFolderChange(
25198         IFileDialog *pfd) = 0;
25199 
25200     virtual HRESULT STDMETHODCALLTYPE OnSelectionChange(
25201         IFileDialog *pfd) = 0;
25202 
25203     virtual HRESULT STDMETHODCALLTYPE OnShareViolation(
25204         IFileDialog *pfd,
25205         IShellItem *psi,
25206         FDE_SHAREVIOLATION_RESPONSE *pResponse) = 0;
25207 
25208     virtual HRESULT STDMETHODCALLTYPE OnTypeChange(
25209         IFileDialog *pfd) = 0;
25210 
25211     virtual HRESULT STDMETHODCALLTYPE OnOverwrite(
25212         IFileDialog *pfd,
25213         IShellItem *psi,
25214         FDE_OVERWRITE_RESPONSE *pResponse) = 0;
25215 
25216 };
25217 #ifdef __CRT_UUID_DECL
25218 __CRT_UUID_DECL(IFileDialogEvents, 0x973510db, 0x7d7f, 0x452b, 0x89,0x75, 0x74,0xa8,0x58,0x28,0xd3,0x54)
25219 #endif
25220 #else
25221 typedef struct IFileDialogEventsVtbl {
25222     BEGIN_INTERFACE
25223 
25224     /*** IUnknown methods ***/
25225     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
25226         IFileDialogEvents* This,
25227         REFIID riid,
25228         void **ppvObject);
25229 
25230     ULONG (STDMETHODCALLTYPE *AddRef)(
25231         IFileDialogEvents* This);
25232 
25233     ULONG (STDMETHODCALLTYPE *Release)(
25234         IFileDialogEvents* This);
25235 
25236     /*** IFileDialogEvents methods ***/
25237     HRESULT (STDMETHODCALLTYPE *OnFileOk)(
25238         IFileDialogEvents* This,
25239         IFileDialog *pfd);
25240 
25241     HRESULT (STDMETHODCALLTYPE *OnFolderChanging)(
25242         IFileDialogEvents* This,
25243         IFileDialog *pfd,
25244         IShellItem *psiFolder);
25245 
25246     HRESULT (STDMETHODCALLTYPE *OnFolderChange)(
25247         IFileDialogEvents* This,
25248         IFileDialog *pfd);
25249 
25250     HRESULT (STDMETHODCALLTYPE *OnSelectionChange)(
25251         IFileDialogEvents* This,
25252         IFileDialog *pfd);
25253 
25254     HRESULT (STDMETHODCALLTYPE *OnShareViolation)(
25255         IFileDialogEvents* This,
25256         IFileDialog *pfd,
25257         IShellItem *psi,
25258         FDE_SHAREVIOLATION_RESPONSE *pResponse);
25259 
25260     HRESULT (STDMETHODCALLTYPE *OnTypeChange)(
25261         IFileDialogEvents* This,
25262         IFileDialog *pfd);
25263 
25264     HRESULT (STDMETHODCALLTYPE *OnOverwrite)(
25265         IFileDialogEvents* This,
25266         IFileDialog *pfd,
25267         IShellItem *psi,
25268         FDE_OVERWRITE_RESPONSE *pResponse);
25269 
25270     END_INTERFACE
25271 } IFileDialogEventsVtbl;
25272 interface IFileDialogEvents {
25273     CONST_VTBL IFileDialogEventsVtbl* lpVtbl;
25274 };
25275 
25276 #ifdef COBJMACROS
25277 #ifndef WIDL_C_INLINE_WRAPPERS
25278 /*** IUnknown methods ***/
25279 #define IFileDialogEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
25280 #define IFileDialogEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
25281 #define IFileDialogEvents_Release(This) (This)->lpVtbl->Release(This)
25282 /*** IFileDialogEvents methods ***/
25283 #define IFileDialogEvents_OnFileOk(This,pfd) (This)->lpVtbl->OnFileOk(This,pfd)
25284 #define IFileDialogEvents_OnFolderChanging(This,pfd,psiFolder) (This)->lpVtbl->OnFolderChanging(This,pfd,psiFolder)
25285 #define IFileDialogEvents_OnFolderChange(This,pfd) (This)->lpVtbl->OnFolderChange(This,pfd)
25286 #define IFileDialogEvents_OnSelectionChange(This,pfd) (This)->lpVtbl->OnSelectionChange(This,pfd)
25287 #define IFileDialogEvents_OnShareViolation(This,pfd,psi,pResponse) (This)->lpVtbl->OnShareViolation(This,pfd,psi,pResponse)
25288 #define IFileDialogEvents_OnTypeChange(This,pfd) (This)->lpVtbl->OnTypeChange(This,pfd)
25289 #define IFileDialogEvents_OnOverwrite(This,pfd,psi,pResponse) (This)->lpVtbl->OnOverwrite(This,pfd,psi,pResponse)
25290 #else
25291 /*** IUnknown methods ***/
25292 static FORCEINLINE HRESULT IFileDialogEvents_QueryInterface(IFileDialogEvents* This,REFIID riid,void **ppvObject) {
25293     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
25294 }
25295 static FORCEINLINE ULONG IFileDialogEvents_AddRef(IFileDialogEvents* This) {
25296     return This->lpVtbl->AddRef(This);
25297 }
25298 static FORCEINLINE ULONG IFileDialogEvents_Release(IFileDialogEvents* This) {
25299     return This->lpVtbl->Release(This);
25300 }
25301 /*** IFileDialogEvents methods ***/
25302 static FORCEINLINE HRESULT IFileDialogEvents_OnFileOk(IFileDialogEvents* This,IFileDialog *pfd) {
25303     return This->lpVtbl->OnFileOk(This,pfd);
25304 }
25305 static FORCEINLINE HRESULT IFileDialogEvents_OnFolderChanging(IFileDialogEvents* This,IFileDialog *pfd,IShellItem *psiFolder) {
25306     return This->lpVtbl->OnFolderChanging(This,pfd,psiFolder);
25307 }
25308 static FORCEINLINE HRESULT IFileDialogEvents_OnFolderChange(IFileDialogEvents* This,IFileDialog *pfd) {
25309     return This->lpVtbl->OnFolderChange(This,pfd);
25310 }
25311 static FORCEINLINE HRESULT IFileDialogEvents_OnSelectionChange(IFileDialogEvents* This,IFileDialog *pfd) {
25312     return This->lpVtbl->OnSelectionChange(This,pfd);
25313 }
25314 static FORCEINLINE HRESULT IFileDialogEvents_OnShareViolation(IFileDialogEvents* This,IFileDialog *pfd,IShellItem *psi,FDE_SHAREVIOLATION_RESPONSE *pResponse) {
25315     return This->lpVtbl->OnShareViolation(This,pfd,psi,pResponse);
25316 }
25317 static FORCEINLINE HRESULT IFileDialogEvents_OnTypeChange(IFileDialogEvents* This,IFileDialog *pfd) {
25318     return This->lpVtbl->OnTypeChange(This,pfd);
25319 }
25320 static FORCEINLINE HRESULT IFileDialogEvents_OnOverwrite(IFileDialogEvents* This,IFileDialog *pfd,IShellItem *psi,FDE_OVERWRITE_RESPONSE *pResponse) {
25321     return This->lpVtbl->OnOverwrite(This,pfd,psi,pResponse);
25322 }
25323 #endif
25324 #endif
25325 
25326 #endif
25327 
25328 HRESULT STDMETHODCALLTYPE IFileDialogEvents_OnFileOk_Proxy(
25329     IFileDialogEvents* This,
25330     IFileDialog *pfd);
25331 void __RPC_STUB IFileDialogEvents_OnFileOk_Stub(
25332     IRpcStubBuffer* This,
25333     IRpcChannelBuffer* pRpcChannelBuffer,
25334     PRPC_MESSAGE pRpcMessage,
25335     DWORD* pdwStubPhase);
25336 HRESULT STDMETHODCALLTYPE IFileDialogEvents_OnFolderChanging_Proxy(
25337     IFileDialogEvents* This,
25338     IFileDialog *pfd,
25339     IShellItem *psiFolder);
25340 void __RPC_STUB IFileDialogEvents_OnFolderChanging_Stub(
25341     IRpcStubBuffer* This,
25342     IRpcChannelBuffer* pRpcChannelBuffer,
25343     PRPC_MESSAGE pRpcMessage,
25344     DWORD* pdwStubPhase);
25345 HRESULT STDMETHODCALLTYPE IFileDialogEvents_OnFolderChange_Proxy(
25346     IFileDialogEvents* This,
25347     IFileDialog *pfd);
25348 void __RPC_STUB IFileDialogEvents_OnFolderChange_Stub(
25349     IRpcStubBuffer* This,
25350     IRpcChannelBuffer* pRpcChannelBuffer,
25351     PRPC_MESSAGE pRpcMessage,
25352     DWORD* pdwStubPhase);
25353 HRESULT STDMETHODCALLTYPE IFileDialogEvents_OnSelectionChange_Proxy(
25354     IFileDialogEvents* This,
25355     IFileDialog *pfd);
25356 void __RPC_STUB IFileDialogEvents_OnSelectionChange_Stub(
25357     IRpcStubBuffer* This,
25358     IRpcChannelBuffer* pRpcChannelBuffer,
25359     PRPC_MESSAGE pRpcMessage,
25360     DWORD* pdwStubPhase);
25361 HRESULT STDMETHODCALLTYPE IFileDialogEvents_OnShareViolation_Proxy(
25362     IFileDialogEvents* This,
25363     IFileDialog *pfd,
25364     IShellItem *psi,
25365     FDE_SHAREVIOLATION_RESPONSE *pResponse);
25366 void __RPC_STUB IFileDialogEvents_OnShareViolation_Stub(
25367     IRpcStubBuffer* This,
25368     IRpcChannelBuffer* pRpcChannelBuffer,
25369     PRPC_MESSAGE pRpcMessage,
25370     DWORD* pdwStubPhase);
25371 HRESULT STDMETHODCALLTYPE IFileDialogEvents_OnTypeChange_Proxy(
25372     IFileDialogEvents* This,
25373     IFileDialog *pfd);
25374 void __RPC_STUB IFileDialogEvents_OnTypeChange_Stub(
25375     IRpcStubBuffer* This,
25376     IRpcChannelBuffer* pRpcChannelBuffer,
25377     PRPC_MESSAGE pRpcMessage,
25378     DWORD* pdwStubPhase);
25379 HRESULT STDMETHODCALLTYPE IFileDialogEvents_OnOverwrite_Proxy(
25380     IFileDialogEvents* This,
25381     IFileDialog *pfd,
25382     IShellItem *psi,
25383     FDE_OVERWRITE_RESPONSE *pResponse);
25384 void __RPC_STUB IFileDialogEvents_OnOverwrite_Stub(
25385     IRpcStubBuffer* This,
25386     IRpcChannelBuffer* pRpcChannelBuffer,
25387     PRPC_MESSAGE pRpcMessage,
25388     DWORD* pdwStubPhase);
25389 
25390 #endif  /* __IFileDialogEvents_INTERFACE_DEFINED__ */
25391 
25392 
25393 #ifndef __IShellItemFilter_FWD_DEFINED__
25394 #define __IShellItemFilter_FWD_DEFINED__
25395 typedef interface IShellItemFilter IShellItemFilter;
25396 #endif
25397 
25398 
25399 /*****************************************************************************
25400  * IFileDialog interface
25401  */
25402 #ifndef __IFileDialog_INTERFACE_DEFINED__
25403 #define __IFileDialog_INTERFACE_DEFINED__
25404 
25405 enum _FILEOPENDIALOGOPTIONS {
25406     FOS_OVERWRITEPROMPT = 0x2,
25407     FOS_STRICTFILETYPES = 0x4,
25408     FOS_NOCHANGEDIR = 0x8,
25409     FOS_PICKFOLDERS = 0x20,
25410     FOS_FORCEFILESYSTEM = 0x40,
25411     FOS_ALLNONSTORAGEITEMS = 0x80,
25412     FOS_NOVALIDATE = 0x100,
25413     FOS_ALLOWMULTISELECT = 0x200,
25414     FOS_PATHMUSTEXIST = 0x800,
25415     FOS_FILEMUSTEXIST = 0x1000,
25416     FOS_CREATEPROMPT = 0x2000,
25417     FOS_SHAREAWARE = 0x4000,
25418     FOS_NOREADONLYRETURN = 0x8000,
25419     FOS_NOTESTFILECREATE = 0x10000,
25420     FOS_HIDEMRUPLACES = 0x20000,
25421     FOS_HIDEPINNEDPLACES = 0x40000,
25422     FOS_NODEREFERENCELINKS = 0x100000,
25423     FOS_DONTADDTORECENT = 0x2000000,
25424     FOS_FORCESHOWHIDDEN = 0x10000000,
25425     FOS_DEFAULTNOMINIMODE = 0x20000000,
25426     FOS_FORCEPREVIEWPANEON = 0x40000000
25427 };
25428 
25429 
25430 typedef DWORD FILEOPENDIALOGOPTIONS;
25431 
25432 DEFINE_GUID(IID_IFileDialog, 0x42f85136, 0xdb7e, 0x439c, 0x85,0xf1, 0xe4,0x07,0x5d,0x13,0x5f,0xc8);
25433 #if defined(__cplusplus) && !defined(CINTERFACE)
25434 MIDL_INTERFACE("42f85136-db7e-439c-85f1-e4075d135fc8")
25435 IFileDialog : public IModalWindow
25436 {
25437     virtual HRESULT STDMETHODCALLTYPE SetFileTypes(
25438         UINT cFileTypes,
25439         const COMDLG_FILTERSPEC *rgFilterSpec) = 0;
25440 
25441     virtual HRESULT STDMETHODCALLTYPE SetFileTypeIndex(
25442         UINT iFileType) = 0;
25443 
25444     virtual HRESULT STDMETHODCALLTYPE GetFileTypeIndex(
25445         UINT *piFileType) = 0;
25446 
25447     virtual HRESULT STDMETHODCALLTYPE Advise(
25448         IFileDialogEvents *pfde,
25449         DWORD *pdwCookie) = 0;
25450 
25451     virtual HRESULT STDMETHODCALLTYPE Unadvise(
25452         DWORD dwCookie) = 0;
25453 
25454     virtual HRESULT STDMETHODCALLTYPE SetOptions(
25455         FILEOPENDIALOGOPTIONS fos) = 0;
25456 
25457     virtual HRESULT STDMETHODCALLTYPE GetOptions(
25458         FILEOPENDIALOGOPTIONS *pfos) = 0;
25459 
25460     virtual HRESULT STDMETHODCALLTYPE SetDefaultFolder(
25461         IShellItem *psi) = 0;
25462 
25463     virtual HRESULT STDMETHODCALLTYPE SetFolder(
25464         IShellItem *psi) = 0;
25465 
25466     virtual HRESULT STDMETHODCALLTYPE GetFolder(
25467         IShellItem **ppsi) = 0;
25468 
25469     virtual HRESULT STDMETHODCALLTYPE GetCurrentSelection(
25470         IShellItem **ppsi) = 0;
25471 
25472     virtual HRESULT STDMETHODCALLTYPE SetFileName(
25473         LPCWSTR pszName) = 0;
25474 
25475     virtual HRESULT STDMETHODCALLTYPE GetFileName(
25476         LPWSTR *pszName) = 0;
25477 
25478     virtual HRESULT STDMETHODCALLTYPE SetTitle(
25479         LPCWSTR pszTitle) = 0;
25480 
25481     virtual HRESULT STDMETHODCALLTYPE SetOkButtonLabel(
25482         LPCWSTR pszText) = 0;
25483 
25484     virtual HRESULT STDMETHODCALLTYPE SetFileNameLabel(
25485         LPCWSTR pszLabel) = 0;
25486 
25487     virtual HRESULT STDMETHODCALLTYPE GetResult(
25488         IShellItem **ppsi) = 0;
25489 
25490     virtual HRESULT STDMETHODCALLTYPE AddPlace(
25491         IShellItem *psi,
25492         FDAP fdap) = 0;
25493 
25494     virtual HRESULT STDMETHODCALLTYPE SetDefaultExtension(
25495         LPCWSTR pszDefaultExtension) = 0;
25496 
25497     virtual HRESULT STDMETHODCALLTYPE Close(
25498         HRESULT hr) = 0;
25499 
25500     virtual HRESULT STDMETHODCALLTYPE SetClientGuid(
25501         REFGUID guid) = 0;
25502 
25503     virtual HRESULT STDMETHODCALLTYPE ClearClientData(
25504         ) = 0;
25505 
25506     virtual HRESULT STDMETHODCALLTYPE SetFilter(
25507         IShellItemFilter *pFilter) = 0;
25508 
25509 };
25510 #ifdef __CRT_UUID_DECL
25511 __CRT_UUID_DECL(IFileDialog, 0x42f85136, 0xdb7e, 0x439c, 0x85,0xf1, 0xe4,0x07,0x5d,0x13,0x5f,0xc8)
25512 #endif
25513 #else
25514 typedef struct IFileDialogVtbl {
25515     BEGIN_INTERFACE
25516 
25517     /*** IUnknown methods ***/
25518     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
25519         IFileDialog* This,
25520         REFIID riid,
25521         void **ppvObject);
25522 
25523     ULONG (STDMETHODCALLTYPE *AddRef)(
25524         IFileDialog* This);
25525 
25526     ULONG (STDMETHODCALLTYPE *Release)(
25527         IFileDialog* This);
25528 
25529     /*** IModalWindow methods ***/
25530     HRESULT (STDMETHODCALLTYPE *Show)(
25531         IFileDialog* This,
25532         HWND hwndOwner);
25533 
25534     /*** IFileDialog methods ***/
25535     HRESULT (STDMETHODCALLTYPE *SetFileTypes)(
25536         IFileDialog* This,
25537         UINT cFileTypes,
25538         const COMDLG_FILTERSPEC *rgFilterSpec);
25539 
25540     HRESULT (STDMETHODCALLTYPE *SetFileTypeIndex)(
25541         IFileDialog* This,
25542         UINT iFileType);
25543 
25544     HRESULT (STDMETHODCALLTYPE *GetFileTypeIndex)(
25545         IFileDialog* This,
25546         UINT *piFileType);
25547 
25548     HRESULT (STDMETHODCALLTYPE *Advise)(
25549         IFileDialog* This,
25550         IFileDialogEvents *pfde,
25551         DWORD *pdwCookie);
25552 
25553     HRESULT (STDMETHODCALLTYPE *Unadvise)(
25554         IFileDialog* This,
25555         DWORD dwCookie);
25556 
25557     HRESULT (STDMETHODCALLTYPE *SetOptions)(
25558         IFileDialog* This,
25559         FILEOPENDIALOGOPTIONS fos);
25560 
25561     HRESULT (STDMETHODCALLTYPE *GetOptions)(
25562         IFileDialog* This,
25563         FILEOPENDIALOGOPTIONS *pfos);
25564 
25565     HRESULT (STDMETHODCALLTYPE *SetDefaultFolder)(
25566         IFileDialog* This,
25567         IShellItem *psi);
25568 
25569     HRESULT (STDMETHODCALLTYPE *SetFolder)(
25570         IFileDialog* This,
25571         IShellItem *psi);
25572 
25573     HRESULT (STDMETHODCALLTYPE *GetFolder)(
25574         IFileDialog* This,
25575         IShellItem **ppsi);
25576 
25577     HRESULT (STDMETHODCALLTYPE *GetCurrentSelection)(
25578         IFileDialog* This,
25579         IShellItem **ppsi);
25580 
25581     HRESULT (STDMETHODCALLTYPE *SetFileName)(
25582         IFileDialog* This,
25583         LPCWSTR pszName);
25584 
25585     HRESULT (STDMETHODCALLTYPE *GetFileName)(
25586         IFileDialog* This,
25587         LPWSTR *pszName);
25588 
25589     HRESULT (STDMETHODCALLTYPE *SetTitle)(
25590         IFileDialog* This,
25591         LPCWSTR pszTitle);
25592 
25593     HRESULT (STDMETHODCALLTYPE *SetOkButtonLabel)(
25594         IFileDialog* This,
25595         LPCWSTR pszText);
25596 
25597     HRESULT (STDMETHODCALLTYPE *SetFileNameLabel)(
25598         IFileDialog* This,
25599         LPCWSTR pszLabel);
25600 
25601     HRESULT (STDMETHODCALLTYPE *GetResult)(
25602         IFileDialog* This,
25603         IShellItem **ppsi);
25604 
25605     HRESULT (STDMETHODCALLTYPE *AddPlace)(
25606         IFileDialog* This,
25607         IShellItem *psi,
25608         FDAP fdap);
25609 
25610     HRESULT (STDMETHODCALLTYPE *SetDefaultExtension)(
25611         IFileDialog* This,
25612         LPCWSTR pszDefaultExtension);
25613 
25614     HRESULT (STDMETHODCALLTYPE *Close)(
25615         IFileDialog* This,
25616         HRESULT hr);
25617 
25618     HRESULT (STDMETHODCALLTYPE *SetClientGuid)(
25619         IFileDialog* This,
25620         REFGUID guid);
25621 
25622     HRESULT (STDMETHODCALLTYPE *ClearClientData)(
25623         IFileDialog* This);
25624 
25625     HRESULT (STDMETHODCALLTYPE *SetFilter)(
25626         IFileDialog* This,
25627         IShellItemFilter *pFilter);
25628 
25629     END_INTERFACE
25630 } IFileDialogVtbl;
25631 interface IFileDialog {
25632     CONST_VTBL IFileDialogVtbl* lpVtbl;
25633 };
25634 
25635 #ifdef COBJMACROS
25636 #ifndef WIDL_C_INLINE_WRAPPERS
25637 /*** IUnknown methods ***/
25638 #define IFileDialog_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
25639 #define IFileDialog_AddRef(This) (This)->lpVtbl->AddRef(This)
25640 #define IFileDialog_Release(This) (This)->lpVtbl->Release(This)
25641 /*** IModalWindow methods ***/
25642 #define IFileDialog_Show(This,hwndOwner) (This)->lpVtbl->Show(This,hwndOwner)
25643 /*** IFileDialog methods ***/
25644 #define IFileDialog_SetFileTypes(This,cFileTypes,rgFilterSpec) (This)->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec)
25645 #define IFileDialog_SetFileTypeIndex(This,iFileType) (This)->lpVtbl->SetFileTypeIndex(This,iFileType)
25646 #define IFileDialog_GetFileTypeIndex(This,piFileType) (This)->lpVtbl->GetFileTypeIndex(This,piFileType)
25647 #define IFileDialog_Advise(This,pfde,pdwCookie) (This)->lpVtbl->Advise(This,pfde,pdwCookie)
25648 #define IFileDialog_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
25649 #define IFileDialog_SetOptions(This,fos) (This)->lpVtbl->SetOptions(This,fos)
25650 #define IFileDialog_GetOptions(This,pfos) (This)->lpVtbl->GetOptions(This,pfos)
25651 #define IFileDialog_SetDefaultFolder(This,psi) (This)->lpVtbl->SetDefaultFolder(This,psi)
25652 #define IFileDialog_SetFolder(This,psi) (This)->lpVtbl->SetFolder(This,psi)
25653 #define IFileDialog_GetFolder(This,ppsi) (This)->lpVtbl->GetFolder(This,ppsi)
25654 #define IFileDialog_GetCurrentSelection(This,ppsi) (This)->lpVtbl->GetCurrentSelection(This,ppsi)
25655 #define IFileDialog_SetFileName(This,pszName) (This)->lpVtbl->SetFileName(This,pszName)
25656 #define IFileDialog_GetFileName(This,pszName) (This)->lpVtbl->GetFileName(This,pszName)
25657 #define IFileDialog_SetTitle(This,pszTitle) (This)->lpVtbl->SetTitle(This,pszTitle)
25658 #define IFileDialog_SetOkButtonLabel(This,pszText) (This)->lpVtbl->SetOkButtonLabel(This,pszText)
25659 #define IFileDialog_SetFileNameLabel(This,pszLabel) (This)->lpVtbl->SetFileNameLabel(This,pszLabel)
25660 #define IFileDialog_GetResult(This,ppsi) (This)->lpVtbl->GetResult(This,ppsi)
25661 #define IFileDialog_AddPlace(This,psi,fdap) (This)->lpVtbl->AddPlace(This,psi,fdap)
25662 #define IFileDialog_SetDefaultExtension(This,pszDefaultExtension) (This)->lpVtbl->SetDefaultExtension(This,pszDefaultExtension)
25663 #define IFileDialog_Close(This,hr) (This)->lpVtbl->Close(This,hr)
25664 #define IFileDialog_SetClientGuid(This,guid) (This)->lpVtbl->SetClientGuid(This,guid)
25665 #define IFileDialog_ClearClientData(This) (This)->lpVtbl->ClearClientData(This)
25666 #define IFileDialog_SetFilter(This,pFilter) (This)->lpVtbl->SetFilter(This,pFilter)
25667 #else
25668 /*** IUnknown methods ***/
25669 static FORCEINLINE HRESULT IFileDialog_QueryInterface(IFileDialog* This,REFIID riid,void **ppvObject) {
25670     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
25671 }
25672 static FORCEINLINE ULONG IFileDialog_AddRef(IFileDialog* This) {
25673     return This->lpVtbl->AddRef(This);
25674 }
25675 static FORCEINLINE ULONG IFileDialog_Release(IFileDialog* This) {
25676     return This->lpVtbl->Release(This);
25677 }
25678 /*** IModalWindow methods ***/
25679 static FORCEINLINE HRESULT IFileDialog_Show(IFileDialog* This,HWND hwndOwner) {
25680     return This->lpVtbl->Show(This,hwndOwner);
25681 }
25682 /*** IFileDialog methods ***/
25683 static FORCEINLINE HRESULT IFileDialog_SetFileTypes(IFileDialog* This,UINT cFileTypes,const COMDLG_FILTERSPEC *rgFilterSpec) {
25684     return This->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec);
25685 }
25686 static FORCEINLINE HRESULT IFileDialog_SetFileTypeIndex(IFileDialog* This,UINT iFileType) {
25687     return This->lpVtbl->SetFileTypeIndex(This,iFileType);
25688 }
25689 static FORCEINLINE HRESULT IFileDialog_GetFileTypeIndex(IFileDialog* This,UINT *piFileType) {
25690     return This->lpVtbl->GetFileTypeIndex(This,piFileType);
25691 }
25692 static FORCEINLINE HRESULT IFileDialog_Advise(IFileDialog* This,IFileDialogEvents *pfde,DWORD *pdwCookie) {
25693     return This->lpVtbl->Advise(This,pfde,pdwCookie);
25694 }
25695 static FORCEINLINE HRESULT IFileDialog_Unadvise(IFileDialog* This,DWORD dwCookie) {
25696     return This->lpVtbl->Unadvise(This,dwCookie);
25697 }
25698 static FORCEINLINE HRESULT IFileDialog_SetOptions(IFileDialog* This,FILEOPENDIALOGOPTIONS fos) {
25699     return This->lpVtbl->SetOptions(This,fos);
25700 }
25701 static FORCEINLINE HRESULT IFileDialog_GetOptions(IFileDialog* This,FILEOPENDIALOGOPTIONS *pfos) {
25702     return This->lpVtbl->GetOptions(This,pfos);
25703 }
25704 static FORCEINLINE HRESULT IFileDialog_SetDefaultFolder(IFileDialog* This,IShellItem *psi) {
25705     return This->lpVtbl->SetDefaultFolder(This,psi);
25706 }
25707 static FORCEINLINE HRESULT IFileDialog_SetFolder(IFileDialog* This,IShellItem *psi) {
25708     return This->lpVtbl->SetFolder(This,psi);
25709 }
25710 static FORCEINLINE HRESULT IFileDialog_GetFolder(IFileDialog* This,IShellItem **ppsi) {
25711     return This->lpVtbl->GetFolder(This,ppsi);
25712 }
25713 static FORCEINLINE HRESULT IFileDialog_GetCurrentSelection(IFileDialog* This,IShellItem **ppsi) {
25714     return This->lpVtbl->GetCurrentSelection(This,ppsi);
25715 }
25716 static FORCEINLINE HRESULT IFileDialog_SetFileName(IFileDialog* This,LPCWSTR pszName) {
25717     return This->lpVtbl->SetFileName(This,pszName);
25718 }
25719 static FORCEINLINE HRESULT IFileDialog_GetFileName(IFileDialog* This,LPWSTR *pszName) {
25720     return This->lpVtbl->GetFileName(This,pszName);
25721 }
25722 static FORCEINLINE HRESULT IFileDialog_SetTitle(IFileDialog* This,LPCWSTR pszTitle) {
25723     return This->lpVtbl->SetTitle(This,pszTitle);
25724 }
25725 static FORCEINLINE HRESULT IFileDialog_SetOkButtonLabel(IFileDialog* This,LPCWSTR pszText) {
25726     return This->lpVtbl->SetOkButtonLabel(This,pszText);
25727 }
25728 static FORCEINLINE HRESULT IFileDialog_SetFileNameLabel(IFileDialog* This,LPCWSTR pszLabel) {
25729     return This->lpVtbl->SetFileNameLabel(This,pszLabel);
25730 }
25731 static FORCEINLINE HRESULT IFileDialog_GetResult(IFileDialog* This,IShellItem **ppsi) {
25732     return This->lpVtbl->GetResult(This,ppsi);
25733 }
25734 static FORCEINLINE HRESULT IFileDialog_AddPlace(IFileDialog* This,IShellItem *psi,FDAP fdap) {
25735     return This->lpVtbl->AddPlace(This,psi,fdap);
25736 }
25737 static FORCEINLINE HRESULT IFileDialog_SetDefaultExtension(IFileDialog* This,LPCWSTR pszDefaultExtension) {
25738     return This->lpVtbl->SetDefaultExtension(This,pszDefaultExtension);
25739 }
25740 static FORCEINLINE HRESULT IFileDialog_Close(IFileDialog* This,HRESULT hr) {
25741     return This->lpVtbl->Close(This,hr);
25742 }
25743 static FORCEINLINE HRESULT IFileDialog_SetClientGuid(IFileDialog* This,REFGUID guid) {
25744     return This->lpVtbl->SetClientGuid(This,guid);
25745 }
25746 static FORCEINLINE HRESULT IFileDialog_ClearClientData(IFileDialog* This) {
25747     return This->lpVtbl->ClearClientData(This);
25748 }
25749 static FORCEINLINE HRESULT IFileDialog_SetFilter(IFileDialog* This,IShellItemFilter *pFilter) {
25750     return This->lpVtbl->SetFilter(This,pFilter);
25751 }
25752 #endif
25753 #endif
25754 
25755 #endif
25756 
25757 HRESULT STDMETHODCALLTYPE IFileDialog_SetFileTypes_Proxy(
25758     IFileDialog* This,
25759     UINT cFileTypes,
25760     const COMDLG_FILTERSPEC *rgFilterSpec);
25761 void __RPC_STUB IFileDialog_SetFileTypes_Stub(
25762     IRpcStubBuffer* This,
25763     IRpcChannelBuffer* pRpcChannelBuffer,
25764     PRPC_MESSAGE pRpcMessage,
25765     DWORD* pdwStubPhase);
25766 HRESULT STDMETHODCALLTYPE IFileDialog_SetFileTypeIndex_Proxy(
25767     IFileDialog* This,
25768     UINT iFileType);
25769 void __RPC_STUB IFileDialog_SetFileTypeIndex_Stub(
25770     IRpcStubBuffer* This,
25771     IRpcChannelBuffer* pRpcChannelBuffer,
25772     PRPC_MESSAGE pRpcMessage,
25773     DWORD* pdwStubPhase);
25774 HRESULT STDMETHODCALLTYPE IFileDialog_GetFileTypeIndex_Proxy(
25775     IFileDialog* This,
25776     UINT *piFileType);
25777 void __RPC_STUB IFileDialog_GetFileTypeIndex_Stub(
25778     IRpcStubBuffer* This,
25779     IRpcChannelBuffer* pRpcChannelBuffer,
25780     PRPC_MESSAGE pRpcMessage,
25781     DWORD* pdwStubPhase);
25782 HRESULT STDMETHODCALLTYPE IFileDialog_Advise_Proxy(
25783     IFileDialog* This,
25784     IFileDialogEvents *pfde,
25785     DWORD *pdwCookie);
25786 void __RPC_STUB IFileDialog_Advise_Stub(
25787     IRpcStubBuffer* This,
25788     IRpcChannelBuffer* pRpcChannelBuffer,
25789     PRPC_MESSAGE pRpcMessage,
25790     DWORD* pdwStubPhase);
25791 HRESULT STDMETHODCALLTYPE IFileDialog_Unadvise_Proxy(
25792     IFileDialog* This,
25793     DWORD dwCookie);
25794 void __RPC_STUB IFileDialog_Unadvise_Stub(
25795     IRpcStubBuffer* This,
25796     IRpcChannelBuffer* pRpcChannelBuffer,
25797     PRPC_MESSAGE pRpcMessage,
25798     DWORD* pdwStubPhase);
25799 HRESULT STDMETHODCALLTYPE IFileDialog_SetOptions_Proxy(
25800     IFileDialog* This,
25801     FILEOPENDIALOGOPTIONS fos);
25802 void __RPC_STUB IFileDialog_SetOptions_Stub(
25803     IRpcStubBuffer* This,
25804     IRpcChannelBuffer* pRpcChannelBuffer,
25805     PRPC_MESSAGE pRpcMessage,
25806     DWORD* pdwStubPhase);
25807 HRESULT STDMETHODCALLTYPE IFileDialog_GetOptions_Proxy(
25808     IFileDialog* This,
25809     FILEOPENDIALOGOPTIONS *pfos);
25810 void __RPC_STUB IFileDialog_GetOptions_Stub(
25811     IRpcStubBuffer* This,
25812     IRpcChannelBuffer* pRpcChannelBuffer,
25813     PRPC_MESSAGE pRpcMessage,
25814     DWORD* pdwStubPhase);
25815 HRESULT STDMETHODCALLTYPE IFileDialog_SetDefaultFolder_Proxy(
25816     IFileDialog* This,
25817     IShellItem *psi);
25818 void __RPC_STUB IFileDialog_SetDefaultFolder_Stub(
25819     IRpcStubBuffer* This,
25820     IRpcChannelBuffer* pRpcChannelBuffer,
25821     PRPC_MESSAGE pRpcMessage,
25822     DWORD* pdwStubPhase);
25823 HRESULT STDMETHODCALLTYPE IFileDialog_SetFolder_Proxy(
25824     IFileDialog* This,
25825     IShellItem *psi);
25826 void __RPC_STUB IFileDialog_SetFolder_Stub(
25827     IRpcStubBuffer* This,
25828     IRpcChannelBuffer* pRpcChannelBuffer,
25829     PRPC_MESSAGE pRpcMessage,
25830     DWORD* pdwStubPhase);
25831 HRESULT STDMETHODCALLTYPE IFileDialog_GetFolder_Proxy(
25832     IFileDialog* This,
25833     IShellItem **ppsi);
25834 void __RPC_STUB IFileDialog_GetFolder_Stub(
25835     IRpcStubBuffer* This,
25836     IRpcChannelBuffer* pRpcChannelBuffer,
25837     PRPC_MESSAGE pRpcMessage,
25838     DWORD* pdwStubPhase);
25839 HRESULT STDMETHODCALLTYPE IFileDialog_GetCurrentSelection_Proxy(
25840     IFileDialog* This,
25841     IShellItem **ppsi);
25842 void __RPC_STUB IFileDialog_GetCurrentSelection_Stub(
25843     IRpcStubBuffer* This,
25844     IRpcChannelBuffer* pRpcChannelBuffer,
25845     PRPC_MESSAGE pRpcMessage,
25846     DWORD* pdwStubPhase);
25847 HRESULT STDMETHODCALLTYPE IFileDialog_SetFileName_Proxy(
25848     IFileDialog* This,
25849     LPCWSTR pszName);
25850 void __RPC_STUB IFileDialog_SetFileName_Stub(
25851     IRpcStubBuffer* This,
25852     IRpcChannelBuffer* pRpcChannelBuffer,
25853     PRPC_MESSAGE pRpcMessage,
25854     DWORD* pdwStubPhase);
25855 HRESULT STDMETHODCALLTYPE IFileDialog_GetFileName_Proxy(
25856     IFileDialog* This,
25857     LPWSTR *pszName);
25858 void __RPC_STUB IFileDialog_GetFileName_Stub(
25859     IRpcStubBuffer* This,
25860     IRpcChannelBuffer* pRpcChannelBuffer,
25861     PRPC_MESSAGE pRpcMessage,
25862     DWORD* pdwStubPhase);
25863 HRESULT STDMETHODCALLTYPE IFileDialog_SetTitle_Proxy(
25864     IFileDialog* This,
25865     LPCWSTR pszTitle);
25866 void __RPC_STUB IFileDialog_SetTitle_Stub(
25867     IRpcStubBuffer* This,
25868     IRpcChannelBuffer* pRpcChannelBuffer,
25869     PRPC_MESSAGE pRpcMessage,
25870     DWORD* pdwStubPhase);
25871 HRESULT STDMETHODCALLTYPE IFileDialog_SetOkButtonLabel_Proxy(
25872     IFileDialog* This,
25873     LPCWSTR pszText);
25874 void __RPC_STUB IFileDialog_SetOkButtonLabel_Stub(
25875     IRpcStubBuffer* This,
25876     IRpcChannelBuffer* pRpcChannelBuffer,
25877     PRPC_MESSAGE pRpcMessage,
25878     DWORD* pdwStubPhase);
25879 HRESULT STDMETHODCALLTYPE IFileDialog_SetFileNameLabel_Proxy(
25880     IFileDialog* This,
25881     LPCWSTR pszLabel);
25882 void __RPC_STUB IFileDialog_SetFileNameLabel_Stub(
25883     IRpcStubBuffer* This,
25884     IRpcChannelBuffer* pRpcChannelBuffer,
25885     PRPC_MESSAGE pRpcMessage,
25886     DWORD* pdwStubPhase);
25887 HRESULT STDMETHODCALLTYPE IFileDialog_GetResult_Proxy(
25888     IFileDialog* This,
25889     IShellItem **ppsi);
25890 void __RPC_STUB IFileDialog_GetResult_Stub(
25891     IRpcStubBuffer* This,
25892     IRpcChannelBuffer* pRpcChannelBuffer,
25893     PRPC_MESSAGE pRpcMessage,
25894     DWORD* pdwStubPhase);
25895 HRESULT STDMETHODCALLTYPE IFileDialog_AddPlace_Proxy(
25896     IFileDialog* This,
25897     IShellItem *psi,
25898     FDAP fdap);
25899 void __RPC_STUB IFileDialog_AddPlace_Stub(
25900     IRpcStubBuffer* This,
25901     IRpcChannelBuffer* pRpcChannelBuffer,
25902     PRPC_MESSAGE pRpcMessage,
25903     DWORD* pdwStubPhase);
25904 HRESULT STDMETHODCALLTYPE IFileDialog_SetDefaultExtension_Proxy(
25905     IFileDialog* This,
25906     LPCWSTR pszDefaultExtension);
25907 void __RPC_STUB IFileDialog_SetDefaultExtension_Stub(
25908     IRpcStubBuffer* This,
25909     IRpcChannelBuffer* pRpcChannelBuffer,
25910     PRPC_MESSAGE pRpcMessage,
25911     DWORD* pdwStubPhase);
25912 HRESULT STDMETHODCALLTYPE IFileDialog_Close_Proxy(
25913     IFileDialog* This,
25914     HRESULT hr);
25915 void __RPC_STUB IFileDialog_Close_Stub(
25916     IRpcStubBuffer* This,
25917     IRpcChannelBuffer* pRpcChannelBuffer,
25918     PRPC_MESSAGE pRpcMessage,
25919     DWORD* pdwStubPhase);
25920 HRESULT STDMETHODCALLTYPE IFileDialog_SetClientGuid_Proxy(
25921     IFileDialog* This,
25922     REFGUID guid);
25923 void __RPC_STUB IFileDialog_SetClientGuid_Stub(
25924     IRpcStubBuffer* This,
25925     IRpcChannelBuffer* pRpcChannelBuffer,
25926     PRPC_MESSAGE pRpcMessage,
25927     DWORD* pdwStubPhase);
25928 HRESULT STDMETHODCALLTYPE IFileDialog_ClearClientData_Proxy(
25929     IFileDialog* This);
25930 void __RPC_STUB IFileDialog_ClearClientData_Stub(
25931     IRpcStubBuffer* This,
25932     IRpcChannelBuffer* pRpcChannelBuffer,
25933     PRPC_MESSAGE pRpcMessage,
25934     DWORD* pdwStubPhase);
25935 HRESULT STDMETHODCALLTYPE IFileDialog_SetFilter_Proxy(
25936     IFileDialog* This,
25937     IShellItemFilter *pFilter);
25938 void __RPC_STUB IFileDialog_SetFilter_Stub(
25939     IRpcStubBuffer* This,
25940     IRpcChannelBuffer* pRpcChannelBuffer,
25941     PRPC_MESSAGE pRpcMessage,
25942     DWORD* pdwStubPhase);
25943 
25944 #endif  /* __IFileDialog_INTERFACE_DEFINED__ */
25945 
25946 
25947 /*****************************************************************************
25948  * IFileSaveDialog interface
25949  */
25950 #ifndef __IFileSaveDialog_INTERFACE_DEFINED__
25951 #define __IFileSaveDialog_INTERFACE_DEFINED__
25952 
25953 DEFINE_GUID(IID_IFileSaveDialog, 0x84bccd23, 0x5fde, 0x4cdb, 0xae,0xa4, 0xaf,0x64,0xb8,0x3d,0x78,0xab);
25954 #if defined(__cplusplus) && !defined(CINTERFACE)
25955 MIDL_INTERFACE("84bccd23-5fde-4cdb-aea4-af64b83d78ab")
25956 IFileSaveDialog : public IFileDialog
25957 {
25958     virtual HRESULT STDMETHODCALLTYPE SetSaveAsItem(
25959         IShellItem *psi) = 0;
25960 
25961     virtual HRESULT STDMETHODCALLTYPE SetProperties(
25962         IPropertyStore *pStore) = 0;
25963 
25964     virtual HRESULT STDMETHODCALLTYPE SetCollectedProperties(
25965         IPropertyDescriptionList *pList,
25966         WINBOOL fAppendDefault) = 0;
25967 
25968     virtual HRESULT STDMETHODCALLTYPE GetProperties(
25969         IPropertyStore **ppStore) = 0;
25970 
25971     virtual HRESULT STDMETHODCALLTYPE ApplyProperties(
25972         IShellItem *psi,
25973         IPropertyStore *pStore,
25974         HWND hwnd,
25975         IFileOperationProgressSink *pSink) = 0;
25976 
25977 };
25978 #ifdef __CRT_UUID_DECL
25979 __CRT_UUID_DECL(IFileSaveDialog, 0x84bccd23, 0x5fde, 0x4cdb, 0xae,0xa4, 0xaf,0x64,0xb8,0x3d,0x78,0xab)
25980 #endif
25981 #else
25982 typedef struct IFileSaveDialogVtbl {
25983     BEGIN_INTERFACE
25984 
25985     /*** IUnknown methods ***/
25986     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
25987         IFileSaveDialog* This,
25988         REFIID riid,
25989         void **ppvObject);
25990 
25991     ULONG (STDMETHODCALLTYPE *AddRef)(
25992         IFileSaveDialog* This);
25993 
25994     ULONG (STDMETHODCALLTYPE *Release)(
25995         IFileSaveDialog* This);
25996 
25997     /*** IModalWindow methods ***/
25998     HRESULT (STDMETHODCALLTYPE *Show)(
25999         IFileSaveDialog* This,
26000         HWND hwndOwner);
26001 
26002     /*** IFileDialog methods ***/
26003     HRESULT (STDMETHODCALLTYPE *SetFileTypes)(
26004         IFileSaveDialog* This,
26005         UINT cFileTypes,
26006         const COMDLG_FILTERSPEC *rgFilterSpec);
26007 
26008     HRESULT (STDMETHODCALLTYPE *SetFileTypeIndex)(
26009         IFileSaveDialog* This,
26010         UINT iFileType);
26011 
26012     HRESULT (STDMETHODCALLTYPE *GetFileTypeIndex)(
26013         IFileSaveDialog* This,
26014         UINT *piFileType);
26015 
26016     HRESULT (STDMETHODCALLTYPE *Advise)(
26017         IFileSaveDialog* This,
26018         IFileDialogEvents *pfde,
26019         DWORD *pdwCookie);
26020 
26021     HRESULT (STDMETHODCALLTYPE *Unadvise)(
26022         IFileSaveDialog* This,
26023         DWORD dwCookie);
26024 
26025     HRESULT (STDMETHODCALLTYPE *SetOptions)(
26026         IFileSaveDialog* This,
26027         FILEOPENDIALOGOPTIONS fos);
26028 
26029     HRESULT (STDMETHODCALLTYPE *GetOptions)(
26030         IFileSaveDialog* This,
26031         FILEOPENDIALOGOPTIONS *pfos);
26032 
26033     HRESULT (STDMETHODCALLTYPE *SetDefaultFolder)(
26034         IFileSaveDialog* This,
26035         IShellItem *psi);
26036 
26037     HRESULT (STDMETHODCALLTYPE *SetFolder)(
26038         IFileSaveDialog* This,
26039         IShellItem *psi);
26040 
26041     HRESULT (STDMETHODCALLTYPE *GetFolder)(
26042         IFileSaveDialog* This,
26043         IShellItem **ppsi);
26044 
26045     HRESULT (STDMETHODCALLTYPE *GetCurrentSelection)(
26046         IFileSaveDialog* This,
26047         IShellItem **ppsi);
26048 
26049     HRESULT (STDMETHODCALLTYPE *SetFileName)(
26050         IFileSaveDialog* This,
26051         LPCWSTR pszName);
26052 
26053     HRESULT (STDMETHODCALLTYPE *GetFileName)(
26054         IFileSaveDialog* This,
26055         LPWSTR *pszName);
26056 
26057     HRESULT (STDMETHODCALLTYPE *SetTitle)(
26058         IFileSaveDialog* This,
26059         LPCWSTR pszTitle);
26060 
26061     HRESULT (STDMETHODCALLTYPE *SetOkButtonLabel)(
26062         IFileSaveDialog* This,
26063         LPCWSTR pszText);
26064 
26065     HRESULT (STDMETHODCALLTYPE *SetFileNameLabel)(
26066         IFileSaveDialog* This,
26067         LPCWSTR pszLabel);
26068 
26069     HRESULT (STDMETHODCALLTYPE *GetResult)(
26070         IFileSaveDialog* This,
26071         IShellItem **ppsi);
26072 
26073     HRESULT (STDMETHODCALLTYPE *AddPlace)(
26074         IFileSaveDialog* This,
26075         IShellItem *psi,
26076         FDAP fdap);
26077 
26078     HRESULT (STDMETHODCALLTYPE *SetDefaultExtension)(
26079         IFileSaveDialog* This,
26080         LPCWSTR pszDefaultExtension);
26081 
26082     HRESULT (STDMETHODCALLTYPE *Close)(
26083         IFileSaveDialog* This,
26084         HRESULT hr);
26085 
26086     HRESULT (STDMETHODCALLTYPE *SetClientGuid)(
26087         IFileSaveDialog* This,
26088         REFGUID guid);
26089 
26090     HRESULT (STDMETHODCALLTYPE *ClearClientData)(
26091         IFileSaveDialog* This);
26092 
26093     HRESULT (STDMETHODCALLTYPE *SetFilter)(
26094         IFileSaveDialog* This,
26095         IShellItemFilter *pFilter);
26096 
26097     /*** IFileSaveDialog methods ***/
26098     HRESULT (STDMETHODCALLTYPE *SetSaveAsItem)(
26099         IFileSaveDialog* This,
26100         IShellItem *psi);
26101 
26102     HRESULT (STDMETHODCALLTYPE *SetProperties)(
26103         IFileSaveDialog* This,
26104         IPropertyStore *pStore);
26105 
26106     HRESULT (STDMETHODCALLTYPE *SetCollectedProperties)(
26107         IFileSaveDialog* This,
26108         IPropertyDescriptionList *pList,
26109         WINBOOL fAppendDefault);
26110 
26111     HRESULT (STDMETHODCALLTYPE *GetProperties)(
26112         IFileSaveDialog* This,
26113         IPropertyStore **ppStore);
26114 
26115     HRESULT (STDMETHODCALLTYPE *ApplyProperties)(
26116         IFileSaveDialog* This,
26117         IShellItem *psi,
26118         IPropertyStore *pStore,
26119         HWND hwnd,
26120         IFileOperationProgressSink *pSink);
26121 
26122     END_INTERFACE
26123 } IFileSaveDialogVtbl;
26124 interface IFileSaveDialog {
26125     CONST_VTBL IFileSaveDialogVtbl* lpVtbl;
26126 };
26127 
26128 #ifdef COBJMACROS
26129 #ifndef WIDL_C_INLINE_WRAPPERS
26130 /*** IUnknown methods ***/
26131 #define IFileSaveDialog_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
26132 #define IFileSaveDialog_AddRef(This) (This)->lpVtbl->AddRef(This)
26133 #define IFileSaveDialog_Release(This) (This)->lpVtbl->Release(This)
26134 /*** IModalWindow methods ***/
26135 #define IFileSaveDialog_Show(This,hwndOwner) (This)->lpVtbl->Show(This,hwndOwner)
26136 /*** IFileDialog methods ***/
26137 #define IFileSaveDialog_SetFileTypes(This,cFileTypes,rgFilterSpec) (This)->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec)
26138 #define IFileSaveDialog_SetFileTypeIndex(This,iFileType) (This)->lpVtbl->SetFileTypeIndex(This,iFileType)
26139 #define IFileSaveDialog_GetFileTypeIndex(This,piFileType) (This)->lpVtbl->GetFileTypeIndex(This,piFileType)
26140 #define IFileSaveDialog_Advise(This,pfde,pdwCookie) (This)->lpVtbl->Advise(This,pfde,pdwCookie)
26141 #define IFileSaveDialog_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
26142 #define IFileSaveDialog_SetOptions(This,fos) (This)->lpVtbl->SetOptions(This,fos)
26143 #define IFileSaveDialog_GetOptions(This,pfos) (This)->lpVtbl->GetOptions(This,pfos)
26144 #define IFileSaveDialog_SetDefaultFolder(This,psi) (This)->lpVtbl->SetDefaultFolder(This,psi)
26145 #define IFileSaveDialog_SetFolder(This,psi) (This)->lpVtbl->SetFolder(This,psi)
26146 #define IFileSaveDialog_GetFolder(This,ppsi) (This)->lpVtbl->GetFolder(This,ppsi)
26147 #define IFileSaveDialog_GetCurrentSelection(This,ppsi) (This)->lpVtbl->GetCurrentSelection(This,ppsi)
26148 #define IFileSaveDialog_SetFileName(This,pszName) (This)->lpVtbl->SetFileName(This,pszName)
26149 #define IFileSaveDialog_GetFileName(This,pszName) (This)->lpVtbl->GetFileName(This,pszName)
26150 #define IFileSaveDialog_SetTitle(This,pszTitle) (This)->lpVtbl->SetTitle(This,pszTitle)
26151 #define IFileSaveDialog_SetOkButtonLabel(This,pszText) (This)->lpVtbl->SetOkButtonLabel(This,pszText)
26152 #define IFileSaveDialog_SetFileNameLabel(This,pszLabel) (This)->lpVtbl->SetFileNameLabel(This,pszLabel)
26153 #define IFileSaveDialog_GetResult(This,ppsi) (This)->lpVtbl->GetResult(This,ppsi)
26154 #define IFileSaveDialog_AddPlace(This,psi,fdap) (This)->lpVtbl->AddPlace(This,psi,fdap)
26155 #define IFileSaveDialog_SetDefaultExtension(This,pszDefaultExtension) (This)->lpVtbl->SetDefaultExtension(This,pszDefaultExtension)
26156 #define IFileSaveDialog_Close(This,hr) (This)->lpVtbl->Close(This,hr)
26157 #define IFileSaveDialog_SetClientGuid(This,guid) (This)->lpVtbl->SetClientGuid(This,guid)
26158 #define IFileSaveDialog_ClearClientData(This) (This)->lpVtbl->ClearClientData(This)
26159 #define IFileSaveDialog_SetFilter(This,pFilter) (This)->lpVtbl->SetFilter(This,pFilter)
26160 /*** IFileSaveDialog methods ***/
26161 #define IFileSaveDialog_SetSaveAsItem(This,psi) (This)->lpVtbl->SetSaveAsItem(This,psi)
26162 #define IFileSaveDialog_SetProperties(This,pStore) (This)->lpVtbl->SetProperties(This,pStore)
26163 #define IFileSaveDialog_SetCollectedProperties(This,pList,fAppendDefault) (This)->lpVtbl->SetCollectedProperties(This,pList,fAppendDefault)
26164 #define IFileSaveDialog_GetProperties(This,ppStore) (This)->lpVtbl->GetProperties(This,ppStore)
26165 #define IFileSaveDialog_ApplyProperties(This,psi,pStore,hwnd,pSink) (This)->lpVtbl->ApplyProperties(This,psi,pStore,hwnd,pSink)
26166 #else
26167 /*** IUnknown methods ***/
26168 static FORCEINLINE HRESULT IFileSaveDialog_QueryInterface(IFileSaveDialog* This,REFIID riid,void **ppvObject) {
26169     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
26170 }
26171 static FORCEINLINE ULONG IFileSaveDialog_AddRef(IFileSaveDialog* This) {
26172     return This->lpVtbl->AddRef(This);
26173 }
26174 static FORCEINLINE ULONG IFileSaveDialog_Release(IFileSaveDialog* This) {
26175     return This->lpVtbl->Release(This);
26176 }
26177 /*** IModalWindow methods ***/
26178 static FORCEINLINE HRESULT IFileSaveDialog_Show(IFileSaveDialog* This,HWND hwndOwner) {
26179     return This->lpVtbl->Show(This,hwndOwner);
26180 }
26181 /*** IFileDialog methods ***/
26182 static FORCEINLINE HRESULT IFileSaveDialog_SetFileTypes(IFileSaveDialog* This,UINT cFileTypes,const COMDLG_FILTERSPEC *rgFilterSpec) {
26183     return This->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec);
26184 }
26185 static FORCEINLINE HRESULT IFileSaveDialog_SetFileTypeIndex(IFileSaveDialog* This,UINT iFileType) {
26186     return This->lpVtbl->SetFileTypeIndex(This,iFileType);
26187 }
26188 static FORCEINLINE HRESULT IFileSaveDialog_GetFileTypeIndex(IFileSaveDialog* This,UINT *piFileType) {
26189     return This->lpVtbl->GetFileTypeIndex(This,piFileType);
26190 }
26191 static FORCEINLINE HRESULT IFileSaveDialog_Advise(IFileSaveDialog* This,IFileDialogEvents *pfde,DWORD *pdwCookie) {
26192     return This->lpVtbl->Advise(This,pfde,pdwCookie);
26193 }
26194 static FORCEINLINE HRESULT IFileSaveDialog_Unadvise(IFileSaveDialog* This,DWORD dwCookie) {
26195     return This->lpVtbl->Unadvise(This,dwCookie);
26196 }
26197 static FORCEINLINE HRESULT IFileSaveDialog_SetOptions(IFileSaveDialog* This,FILEOPENDIALOGOPTIONS fos) {
26198     return This->lpVtbl->SetOptions(This,fos);
26199 }
26200 static FORCEINLINE HRESULT IFileSaveDialog_GetOptions(IFileSaveDialog* This,FILEOPENDIALOGOPTIONS *pfos) {
26201     return This->lpVtbl->GetOptions(This,pfos);
26202 }
26203 static FORCEINLINE HRESULT IFileSaveDialog_SetDefaultFolder(IFileSaveDialog* This,IShellItem *psi) {
26204     return This->lpVtbl->SetDefaultFolder(This,psi);
26205 }
26206 static FORCEINLINE HRESULT IFileSaveDialog_SetFolder(IFileSaveDialog* This,IShellItem *psi) {
26207     return This->lpVtbl->SetFolder(This,psi);
26208 }
26209 static FORCEINLINE HRESULT IFileSaveDialog_GetFolder(IFileSaveDialog* This,IShellItem **ppsi) {
26210     return This->lpVtbl->GetFolder(This,ppsi);
26211 }
26212 static FORCEINLINE HRESULT IFileSaveDialog_GetCurrentSelection(IFileSaveDialog* This,IShellItem **ppsi) {
26213     return This->lpVtbl->GetCurrentSelection(This,ppsi);
26214 }
26215 static FORCEINLINE HRESULT IFileSaveDialog_SetFileName(IFileSaveDialog* This,LPCWSTR pszName) {
26216     return This->lpVtbl->SetFileName(This,pszName);
26217 }
26218 static FORCEINLINE HRESULT IFileSaveDialog_GetFileName(IFileSaveDialog* This,LPWSTR *pszName) {
26219     return This->lpVtbl->GetFileName(This,pszName);
26220 }
26221 static FORCEINLINE HRESULT IFileSaveDialog_SetTitle(IFileSaveDialog* This,LPCWSTR pszTitle) {
26222     return This->lpVtbl->SetTitle(This,pszTitle);
26223 }
26224 static FORCEINLINE HRESULT IFileSaveDialog_SetOkButtonLabel(IFileSaveDialog* This,LPCWSTR pszText) {
26225     return This->lpVtbl->SetOkButtonLabel(This,pszText);
26226 }
26227 static FORCEINLINE HRESULT IFileSaveDialog_SetFileNameLabel(IFileSaveDialog* This,LPCWSTR pszLabel) {
26228     return This->lpVtbl->SetFileNameLabel(This,pszLabel);
26229 }
26230 static FORCEINLINE HRESULT IFileSaveDialog_GetResult(IFileSaveDialog* This,IShellItem **ppsi) {
26231     return This->lpVtbl->GetResult(This,ppsi);
26232 }
26233 static FORCEINLINE HRESULT IFileSaveDialog_AddPlace(IFileSaveDialog* This,IShellItem *psi,FDAP fdap) {
26234     return This->lpVtbl->AddPlace(This,psi,fdap);
26235 }
26236 static FORCEINLINE HRESULT IFileSaveDialog_SetDefaultExtension(IFileSaveDialog* This,LPCWSTR pszDefaultExtension) {
26237     return This->lpVtbl->SetDefaultExtension(This,pszDefaultExtension);
26238 }
26239 static FORCEINLINE HRESULT IFileSaveDialog_Close(IFileSaveDialog* This,HRESULT hr) {
26240     return This->lpVtbl->Close(This,hr);
26241 }
26242 static FORCEINLINE HRESULT IFileSaveDialog_SetClientGuid(IFileSaveDialog* This,REFGUID guid) {
26243     return This->lpVtbl->SetClientGuid(This,guid);
26244 }
26245 static FORCEINLINE HRESULT IFileSaveDialog_ClearClientData(IFileSaveDialog* This) {
26246     return This->lpVtbl->ClearClientData(This);
26247 }
26248 static FORCEINLINE HRESULT IFileSaveDialog_SetFilter(IFileSaveDialog* This,IShellItemFilter *pFilter) {
26249     return This->lpVtbl->SetFilter(This,pFilter);
26250 }
26251 /*** IFileSaveDialog methods ***/
26252 static FORCEINLINE HRESULT IFileSaveDialog_SetSaveAsItem(IFileSaveDialog* This,IShellItem *psi) {
26253     return This->lpVtbl->SetSaveAsItem(This,psi);
26254 }
26255 static FORCEINLINE HRESULT IFileSaveDialog_SetProperties(IFileSaveDialog* This,IPropertyStore *pStore) {
26256     return This->lpVtbl->SetProperties(This,pStore);
26257 }
26258 static FORCEINLINE HRESULT IFileSaveDialog_SetCollectedProperties(IFileSaveDialog* This,IPropertyDescriptionList *pList,WINBOOL fAppendDefault) {
26259     return This->lpVtbl->SetCollectedProperties(This,pList,fAppendDefault);
26260 }
26261 static FORCEINLINE HRESULT IFileSaveDialog_GetProperties(IFileSaveDialog* This,IPropertyStore **ppStore) {
26262     return This->lpVtbl->GetProperties(This,ppStore);
26263 }
26264 static FORCEINLINE HRESULT IFileSaveDialog_ApplyProperties(IFileSaveDialog* This,IShellItem *psi,IPropertyStore *pStore,HWND hwnd,IFileOperationProgressSink *pSink) {
26265     return This->lpVtbl->ApplyProperties(This,psi,pStore,hwnd,pSink);
26266 }
26267 #endif
26268 #endif
26269 
26270 #endif
26271 
26272 HRESULT STDMETHODCALLTYPE IFileSaveDialog_SetSaveAsItem_Proxy(
26273     IFileSaveDialog* This,
26274     IShellItem *psi);
26275 void __RPC_STUB IFileSaveDialog_SetSaveAsItem_Stub(
26276     IRpcStubBuffer* This,
26277     IRpcChannelBuffer* pRpcChannelBuffer,
26278     PRPC_MESSAGE pRpcMessage,
26279     DWORD* pdwStubPhase);
26280 HRESULT STDMETHODCALLTYPE IFileSaveDialog_SetProperties_Proxy(
26281     IFileSaveDialog* This,
26282     IPropertyStore *pStore);
26283 void __RPC_STUB IFileSaveDialog_SetProperties_Stub(
26284     IRpcStubBuffer* This,
26285     IRpcChannelBuffer* pRpcChannelBuffer,
26286     PRPC_MESSAGE pRpcMessage,
26287     DWORD* pdwStubPhase);
26288 HRESULT STDMETHODCALLTYPE IFileSaveDialog_SetCollectedProperties_Proxy(
26289     IFileSaveDialog* This,
26290     IPropertyDescriptionList *pList,
26291     WINBOOL fAppendDefault);
26292 void __RPC_STUB IFileSaveDialog_SetCollectedProperties_Stub(
26293     IRpcStubBuffer* This,
26294     IRpcChannelBuffer* pRpcChannelBuffer,
26295     PRPC_MESSAGE pRpcMessage,
26296     DWORD* pdwStubPhase);
26297 HRESULT STDMETHODCALLTYPE IFileSaveDialog_GetProperties_Proxy(
26298     IFileSaveDialog* This,
26299     IPropertyStore **ppStore);
26300 void __RPC_STUB IFileSaveDialog_GetProperties_Stub(
26301     IRpcStubBuffer* This,
26302     IRpcChannelBuffer* pRpcChannelBuffer,
26303     PRPC_MESSAGE pRpcMessage,
26304     DWORD* pdwStubPhase);
26305 HRESULT STDMETHODCALLTYPE IFileSaveDialog_ApplyProperties_Proxy(
26306     IFileSaveDialog* This,
26307     IShellItem *psi,
26308     IPropertyStore *pStore,
26309     HWND hwnd,
26310     IFileOperationProgressSink *pSink);
26311 void __RPC_STUB IFileSaveDialog_ApplyProperties_Stub(
26312     IRpcStubBuffer* This,
26313     IRpcChannelBuffer* pRpcChannelBuffer,
26314     PRPC_MESSAGE pRpcMessage,
26315     DWORD* pdwStubPhase);
26316 
26317 #endif  /* __IFileSaveDialog_INTERFACE_DEFINED__ */
26318 
26319 
26320 /*****************************************************************************
26321  * IFileOpenDialog interface
26322  */
26323 #ifndef __IFileOpenDialog_INTERFACE_DEFINED__
26324 #define __IFileOpenDialog_INTERFACE_DEFINED__
26325 
26326 DEFINE_GUID(IID_IFileOpenDialog, 0xd57c7288, 0xd4ad, 0x4768, 0xbe,0x02, 0x9d,0x96,0x95,0x32,0xd9,0x60);
26327 #if defined(__cplusplus) && !defined(CINTERFACE)
26328 MIDL_INTERFACE("d57c7288-d4ad-4768-be02-9d969532d960")
26329 IFileOpenDialog : public IFileDialog
26330 {
26331     virtual HRESULT STDMETHODCALLTYPE GetResults(
26332         IShellItemArray **ppenum) = 0;
26333 
26334     virtual HRESULT STDMETHODCALLTYPE GetSelectedItems(
26335         IShellItemArray **ppsai) = 0;
26336 
26337 };
26338 #ifdef __CRT_UUID_DECL
26339 __CRT_UUID_DECL(IFileOpenDialog, 0xd57c7288, 0xd4ad, 0x4768, 0xbe,0x02, 0x9d,0x96,0x95,0x32,0xd9,0x60)
26340 #endif
26341 #else
26342 typedef struct IFileOpenDialogVtbl {
26343     BEGIN_INTERFACE
26344 
26345     /*** IUnknown methods ***/
26346     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
26347         IFileOpenDialog* This,
26348         REFIID riid,
26349         void **ppvObject);
26350 
26351     ULONG (STDMETHODCALLTYPE *AddRef)(
26352         IFileOpenDialog* This);
26353 
26354     ULONG (STDMETHODCALLTYPE *Release)(
26355         IFileOpenDialog* This);
26356 
26357     /*** IModalWindow methods ***/
26358     HRESULT (STDMETHODCALLTYPE *Show)(
26359         IFileOpenDialog* This,
26360         HWND hwndOwner);
26361 
26362     /*** IFileDialog methods ***/
26363     HRESULT (STDMETHODCALLTYPE *SetFileTypes)(
26364         IFileOpenDialog* This,
26365         UINT cFileTypes,
26366         const COMDLG_FILTERSPEC *rgFilterSpec);
26367 
26368     HRESULT (STDMETHODCALLTYPE *SetFileTypeIndex)(
26369         IFileOpenDialog* This,
26370         UINT iFileType);
26371 
26372     HRESULT (STDMETHODCALLTYPE *GetFileTypeIndex)(
26373         IFileOpenDialog* This,
26374         UINT *piFileType);
26375 
26376     HRESULT (STDMETHODCALLTYPE *Advise)(
26377         IFileOpenDialog* This,
26378         IFileDialogEvents *pfde,
26379         DWORD *pdwCookie);
26380 
26381     HRESULT (STDMETHODCALLTYPE *Unadvise)(
26382         IFileOpenDialog* This,
26383         DWORD dwCookie);
26384 
26385     HRESULT (STDMETHODCALLTYPE *SetOptions)(
26386         IFileOpenDialog* This,
26387         FILEOPENDIALOGOPTIONS fos);
26388 
26389     HRESULT (STDMETHODCALLTYPE *GetOptions)(
26390         IFileOpenDialog* This,
26391         FILEOPENDIALOGOPTIONS *pfos);
26392 
26393     HRESULT (STDMETHODCALLTYPE *SetDefaultFolder)(
26394         IFileOpenDialog* This,
26395         IShellItem *psi);
26396 
26397     HRESULT (STDMETHODCALLTYPE *SetFolder)(
26398         IFileOpenDialog* This,
26399         IShellItem *psi);
26400 
26401     HRESULT (STDMETHODCALLTYPE *GetFolder)(
26402         IFileOpenDialog* This,
26403         IShellItem **ppsi);
26404 
26405     HRESULT (STDMETHODCALLTYPE *GetCurrentSelection)(
26406         IFileOpenDialog* This,
26407         IShellItem **ppsi);
26408 
26409     HRESULT (STDMETHODCALLTYPE *SetFileName)(
26410         IFileOpenDialog* This,
26411         LPCWSTR pszName);
26412 
26413     HRESULT (STDMETHODCALLTYPE *GetFileName)(
26414         IFileOpenDialog* This,
26415         LPWSTR *pszName);
26416 
26417     HRESULT (STDMETHODCALLTYPE *SetTitle)(
26418         IFileOpenDialog* This,
26419         LPCWSTR pszTitle);
26420 
26421     HRESULT (STDMETHODCALLTYPE *SetOkButtonLabel)(
26422         IFileOpenDialog* This,
26423         LPCWSTR pszText);
26424 
26425     HRESULT (STDMETHODCALLTYPE *SetFileNameLabel)(
26426         IFileOpenDialog* This,
26427         LPCWSTR pszLabel);
26428 
26429     HRESULT (STDMETHODCALLTYPE *GetResult)(
26430         IFileOpenDialog* This,
26431         IShellItem **ppsi);
26432 
26433     HRESULT (STDMETHODCALLTYPE *AddPlace)(
26434         IFileOpenDialog* This,
26435         IShellItem *psi,
26436         FDAP fdap);
26437 
26438     HRESULT (STDMETHODCALLTYPE *SetDefaultExtension)(
26439         IFileOpenDialog* This,
26440         LPCWSTR pszDefaultExtension);
26441 
26442     HRESULT (STDMETHODCALLTYPE *Close)(
26443         IFileOpenDialog* This,
26444         HRESULT hr);
26445 
26446     HRESULT (STDMETHODCALLTYPE *SetClientGuid)(
26447         IFileOpenDialog* This,
26448         REFGUID guid);
26449 
26450     HRESULT (STDMETHODCALLTYPE *ClearClientData)(
26451         IFileOpenDialog* This);
26452 
26453     HRESULT (STDMETHODCALLTYPE *SetFilter)(
26454         IFileOpenDialog* This,
26455         IShellItemFilter *pFilter);
26456 
26457     /*** IFileOpenDialog methods ***/
26458     HRESULT (STDMETHODCALLTYPE *GetResults)(
26459         IFileOpenDialog* This,
26460         IShellItemArray **ppenum);
26461 
26462     HRESULT (STDMETHODCALLTYPE *GetSelectedItems)(
26463         IFileOpenDialog* This,
26464         IShellItemArray **ppsai);
26465 
26466     END_INTERFACE
26467 } IFileOpenDialogVtbl;
26468 interface IFileOpenDialog {
26469     CONST_VTBL IFileOpenDialogVtbl* lpVtbl;
26470 };
26471 
26472 #ifdef COBJMACROS
26473 #ifndef WIDL_C_INLINE_WRAPPERS
26474 /*** IUnknown methods ***/
26475 #define IFileOpenDialog_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
26476 #define IFileOpenDialog_AddRef(This) (This)->lpVtbl->AddRef(This)
26477 #define IFileOpenDialog_Release(This) (This)->lpVtbl->Release(This)
26478 /*** IModalWindow methods ***/
26479 #define IFileOpenDialog_Show(This,hwndOwner) (This)->lpVtbl->Show(This,hwndOwner)
26480 /*** IFileDialog methods ***/
26481 #define IFileOpenDialog_SetFileTypes(This,cFileTypes,rgFilterSpec) (This)->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec)
26482 #define IFileOpenDialog_SetFileTypeIndex(This,iFileType) (This)->lpVtbl->SetFileTypeIndex(This,iFileType)
26483 #define IFileOpenDialog_GetFileTypeIndex(This,piFileType) (This)->lpVtbl->GetFileTypeIndex(This,piFileType)
26484 #define IFileOpenDialog_Advise(This,pfde,pdwCookie) (This)->lpVtbl->Advise(This,pfde,pdwCookie)
26485 #define IFileOpenDialog_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
26486 #define IFileOpenDialog_SetOptions(This,fos) (This)->lpVtbl->SetOptions(This,fos)
26487 #define IFileOpenDialog_GetOptions(This,pfos) (This)->lpVtbl->GetOptions(This,pfos)
26488 #define IFileOpenDialog_SetDefaultFolder(This,psi) (This)->lpVtbl->SetDefaultFolder(This,psi)
26489 #define IFileOpenDialog_SetFolder(This,psi) (This)->lpVtbl->SetFolder(This,psi)
26490 #define IFileOpenDialog_GetFolder(This,ppsi) (This)->lpVtbl->GetFolder(This,ppsi)
26491 #define IFileOpenDialog_GetCurrentSelection(This,ppsi) (This)->lpVtbl->GetCurrentSelection(This,ppsi)
26492 #define IFileOpenDialog_SetFileName(This,pszName) (This)->lpVtbl->SetFileName(This,pszName)
26493 #define IFileOpenDialog_GetFileName(This,pszName) (This)->lpVtbl->GetFileName(This,pszName)
26494 #define IFileOpenDialog_SetTitle(This,pszTitle) (This)->lpVtbl->SetTitle(This,pszTitle)
26495 #define IFileOpenDialog_SetOkButtonLabel(This,pszText) (This)->lpVtbl->SetOkButtonLabel(This,pszText)
26496 #define IFileOpenDialog_SetFileNameLabel(This,pszLabel) (This)->lpVtbl->SetFileNameLabel(This,pszLabel)
26497 #define IFileOpenDialog_GetResult(This,ppsi) (This)->lpVtbl->GetResult(This,ppsi)
26498 #define IFileOpenDialog_AddPlace(This,psi,fdap) (This)->lpVtbl->AddPlace(This,psi,fdap)
26499 #define IFileOpenDialog_SetDefaultExtension(This,pszDefaultExtension) (This)->lpVtbl->SetDefaultExtension(This,pszDefaultExtension)
26500 #define IFileOpenDialog_Close(This,hr) (This)->lpVtbl->Close(This,hr)
26501 #define IFileOpenDialog_SetClientGuid(This,guid) (This)->lpVtbl->SetClientGuid(This,guid)
26502 #define IFileOpenDialog_ClearClientData(This) (This)->lpVtbl->ClearClientData(This)
26503 #define IFileOpenDialog_SetFilter(This,pFilter) (This)->lpVtbl->SetFilter(This,pFilter)
26504 /*** IFileOpenDialog methods ***/
26505 #define IFileOpenDialog_GetResults(This,ppenum) (This)->lpVtbl->GetResults(This,ppenum)
26506 #define IFileOpenDialog_GetSelectedItems(This,ppsai) (This)->lpVtbl->GetSelectedItems(This,ppsai)
26507 #else
26508 /*** IUnknown methods ***/
26509 static FORCEINLINE HRESULT IFileOpenDialog_QueryInterface(IFileOpenDialog* This,REFIID riid,void **ppvObject) {
26510     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
26511 }
26512 static FORCEINLINE ULONG IFileOpenDialog_AddRef(IFileOpenDialog* This) {
26513     return This->lpVtbl->AddRef(This);
26514 }
26515 static FORCEINLINE ULONG IFileOpenDialog_Release(IFileOpenDialog* This) {
26516     return This->lpVtbl->Release(This);
26517 }
26518 /*** IModalWindow methods ***/
26519 static FORCEINLINE HRESULT IFileOpenDialog_Show(IFileOpenDialog* This,HWND hwndOwner) {
26520     return This->lpVtbl->Show(This,hwndOwner);
26521 }
26522 /*** IFileDialog methods ***/
26523 static FORCEINLINE HRESULT IFileOpenDialog_SetFileTypes(IFileOpenDialog* This,UINT cFileTypes,const COMDLG_FILTERSPEC *rgFilterSpec) {
26524     return This->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec);
26525 }
26526 static FORCEINLINE HRESULT IFileOpenDialog_SetFileTypeIndex(IFileOpenDialog* This,UINT iFileType) {
26527     return This->lpVtbl->SetFileTypeIndex(This,iFileType);
26528 }
26529 static FORCEINLINE HRESULT IFileOpenDialog_GetFileTypeIndex(IFileOpenDialog* This,UINT *piFileType) {
26530     return This->lpVtbl->GetFileTypeIndex(This,piFileType);
26531 }
26532 static FORCEINLINE HRESULT IFileOpenDialog_Advise(IFileOpenDialog* This,IFileDialogEvents *pfde,DWORD *pdwCookie) {
26533     return This->lpVtbl->Advise(This,pfde,pdwCookie);
26534 }
26535 static FORCEINLINE HRESULT IFileOpenDialog_Unadvise(IFileOpenDialog* This,DWORD dwCookie) {
26536     return This->lpVtbl->Unadvise(This,dwCookie);
26537 }
26538 static FORCEINLINE HRESULT IFileOpenDialog_SetOptions(IFileOpenDialog* This,FILEOPENDIALOGOPTIONS fos) {
26539     return This->lpVtbl->SetOptions(This,fos);
26540 }
26541 static FORCEINLINE HRESULT IFileOpenDialog_GetOptions(IFileOpenDialog* This,FILEOPENDIALOGOPTIONS *pfos) {
26542     return This->lpVtbl->GetOptions(This,pfos);
26543 }
26544 static FORCEINLINE HRESULT IFileOpenDialog_SetDefaultFolder(IFileOpenDialog* This,IShellItem *psi) {
26545     return This->lpVtbl->SetDefaultFolder(This,psi);
26546 }
26547 static FORCEINLINE HRESULT IFileOpenDialog_SetFolder(IFileOpenDialog* This,IShellItem *psi) {
26548     return This->lpVtbl->SetFolder(This,psi);
26549 }
26550 static FORCEINLINE HRESULT IFileOpenDialog_GetFolder(IFileOpenDialog* This,IShellItem **ppsi) {
26551     return This->lpVtbl->GetFolder(This,ppsi);
26552 }
26553 static FORCEINLINE HRESULT IFileOpenDialog_GetCurrentSelection(IFileOpenDialog* This,IShellItem **ppsi) {
26554     return This->lpVtbl->GetCurrentSelection(This,ppsi);
26555 }
26556 static FORCEINLINE HRESULT IFileOpenDialog_SetFileName(IFileOpenDialog* This,LPCWSTR pszName) {
26557     return This->lpVtbl->SetFileName(This,pszName);
26558 }
26559 static FORCEINLINE HRESULT IFileOpenDialog_GetFileName(IFileOpenDialog* This,LPWSTR *pszName) {
26560     return This->lpVtbl->GetFileName(This,pszName);
26561 }
26562 static FORCEINLINE HRESULT IFileOpenDialog_SetTitle(IFileOpenDialog* This,LPCWSTR pszTitle) {
26563     return This->lpVtbl->SetTitle(This,pszTitle);
26564 }
26565 static FORCEINLINE HRESULT IFileOpenDialog_SetOkButtonLabel(IFileOpenDialog* This,LPCWSTR pszText) {
26566     return This->lpVtbl->SetOkButtonLabel(This,pszText);
26567 }
26568 static FORCEINLINE HRESULT IFileOpenDialog_SetFileNameLabel(IFileOpenDialog* This,LPCWSTR pszLabel) {
26569     return This->lpVtbl->SetFileNameLabel(This,pszLabel);
26570 }
26571 static FORCEINLINE HRESULT IFileOpenDialog_GetResult(IFileOpenDialog* This,IShellItem **ppsi) {
26572     return This->lpVtbl->GetResult(This,ppsi);
26573 }
26574 static FORCEINLINE HRESULT IFileOpenDialog_AddPlace(IFileOpenDialog* This,IShellItem *psi,FDAP fdap) {
26575     return This->lpVtbl->AddPlace(This,psi,fdap);
26576 }
26577 static FORCEINLINE HRESULT IFileOpenDialog_SetDefaultExtension(IFileOpenDialog* This,LPCWSTR pszDefaultExtension) {
26578     return This->lpVtbl->SetDefaultExtension(This,pszDefaultExtension);
26579 }
26580 static FORCEINLINE HRESULT IFileOpenDialog_Close(IFileOpenDialog* This,HRESULT hr) {
26581     return This->lpVtbl->Close(This,hr);
26582 }
26583 static FORCEINLINE HRESULT IFileOpenDialog_SetClientGuid(IFileOpenDialog* This,REFGUID guid) {
26584     return This->lpVtbl->SetClientGuid(This,guid);
26585 }
26586 static FORCEINLINE HRESULT IFileOpenDialog_ClearClientData(IFileOpenDialog* This) {
26587     return This->lpVtbl->ClearClientData(This);
26588 }
26589 static FORCEINLINE HRESULT IFileOpenDialog_SetFilter(IFileOpenDialog* This,IShellItemFilter *pFilter) {
26590     return This->lpVtbl->SetFilter(This,pFilter);
26591 }
26592 /*** IFileOpenDialog methods ***/
26593 static FORCEINLINE HRESULT IFileOpenDialog_GetResults(IFileOpenDialog* This,IShellItemArray **ppenum) {
26594     return This->lpVtbl->GetResults(This,ppenum);
26595 }
26596 static FORCEINLINE HRESULT IFileOpenDialog_GetSelectedItems(IFileOpenDialog* This,IShellItemArray **ppsai) {
26597     return This->lpVtbl->GetSelectedItems(This,ppsai);
26598 }
26599 #endif
26600 #endif
26601 
26602 #endif
26603 
26604 HRESULT STDMETHODCALLTYPE IFileOpenDialog_GetResults_Proxy(
26605     IFileOpenDialog* This,
26606     IShellItemArray **ppenum);
26607 void __RPC_STUB IFileOpenDialog_GetResults_Stub(
26608     IRpcStubBuffer* This,
26609     IRpcChannelBuffer* pRpcChannelBuffer,
26610     PRPC_MESSAGE pRpcMessage,
26611     DWORD* pdwStubPhase);
26612 HRESULT STDMETHODCALLTYPE IFileOpenDialog_GetSelectedItems_Proxy(
26613     IFileOpenDialog* This,
26614     IShellItemArray **ppsai);
26615 void __RPC_STUB IFileOpenDialog_GetSelectedItems_Stub(
26616     IRpcStubBuffer* This,
26617     IRpcChannelBuffer* pRpcChannelBuffer,
26618     PRPC_MESSAGE pRpcMessage,
26619     DWORD* pdwStubPhase);
26620 
26621 #endif  /* __IFileOpenDialog_INTERFACE_DEFINED__ */
26622 
26623 
26624 typedef enum CDCONTROLSTATEF {
26625     CDCS_INACTIVE = 0x0,
26626     CDCS_ENABLED = 0x1,
26627     CDCS_VISIBLE = 0x2,
26628     CDCS_ENABLEDVISIBLE = 0x3
26629 } CDCONTROLSTATEF;
26630 
26631 DEFINE_ENUM_FLAG_OPERATORS(CDCONTROLSTATEF)
26632 
26633 /*****************************************************************************
26634  * IFileDialogCustomize interface
26635  */
26636 #ifndef __IFileDialogCustomize_INTERFACE_DEFINED__
26637 #define __IFileDialogCustomize_INTERFACE_DEFINED__
26638 
26639 DEFINE_GUID(IID_IFileDialogCustomize, 0xe6fdd21a, 0x163f, 0x4975, 0x9c,0x8c, 0xa6,0x9f,0x1b,0xa3,0x70,0x34);
26640 #if defined(__cplusplus) && !defined(CINTERFACE)
26641 MIDL_INTERFACE("e6fdd21a-163f-4975-9c8c-a69f1ba37034")
26642 IFileDialogCustomize : public IUnknown
26643 {
26644     virtual HRESULT STDMETHODCALLTYPE EnableOpenDropDown(
26645         DWORD dwIDCtl) = 0;
26646 
26647     virtual HRESULT STDMETHODCALLTYPE AddMenu(
26648         DWORD dwIDCtl,
26649         LPCWSTR pszLabel) = 0;
26650 
26651     virtual HRESULT STDMETHODCALLTYPE AddPushButton(
26652         DWORD dwIDCtl,
26653         LPCWSTR pszLabel) = 0;
26654 
26655     virtual HRESULT STDMETHODCALLTYPE AddComboBox(
26656         DWORD dwIDCtl) = 0;
26657 
26658     virtual HRESULT STDMETHODCALLTYPE AddRadioButtonList(
26659         DWORD dwIDCtl) = 0;
26660 
26661     virtual HRESULT STDMETHODCALLTYPE AddCheckButton(
26662         DWORD dwIDCtl,
26663         LPCWSTR pszLabel,
26664         WINBOOL bChecked) = 0;
26665 
26666     virtual HRESULT STDMETHODCALLTYPE AddEditBox(
26667         DWORD dwIDCtl,
26668         LPCWSTR pszText) = 0;
26669 
26670     virtual HRESULT STDMETHODCALLTYPE AddSeparator(
26671         DWORD dwIDCtl) = 0;
26672 
26673     virtual HRESULT STDMETHODCALLTYPE AddText(
26674         DWORD dwIDCtl,
26675         LPCWSTR pszText) = 0;
26676 
26677     virtual HRESULT STDMETHODCALLTYPE SetControlLabel(
26678         DWORD dwIDCtl,
26679         LPCWSTR pszLabel) = 0;
26680 
26681     virtual HRESULT STDMETHODCALLTYPE GetControlState(
26682         DWORD dwIDCtl,
26683         CDCONTROLSTATEF *pdwState) = 0;
26684 
26685     virtual HRESULT STDMETHODCALLTYPE SetControlState(
26686         DWORD dwIDCtl,
26687         CDCONTROLSTATEF dwState) = 0;
26688 
26689     virtual HRESULT STDMETHODCALLTYPE GetEditBoxText(
26690         DWORD dwIDCtl,
26691         WCHAR **ppszText) = 0;
26692 
26693     virtual HRESULT STDMETHODCALLTYPE SetEditBoxText(
26694         DWORD dwIDCtl,
26695         LPCWSTR pszText) = 0;
26696 
26697     virtual HRESULT STDMETHODCALLTYPE GetCheckButtonState(
26698         DWORD dwIDCtl,
26699         WINBOOL *pbChecked) = 0;
26700 
26701     virtual HRESULT STDMETHODCALLTYPE SetCheckButtonState(
26702         DWORD dwIDCtl,
26703         WINBOOL bChecked) = 0;
26704 
26705     virtual HRESULT STDMETHODCALLTYPE AddControlItem(
26706         DWORD dwIDCtl,
26707         DWORD dwIDItem,
26708         LPCWSTR pszLabel) = 0;
26709 
26710     virtual HRESULT STDMETHODCALLTYPE RemoveControlItem(
26711         DWORD dwIDCtl,
26712         DWORD dwIDItem) = 0;
26713 
26714     virtual HRESULT STDMETHODCALLTYPE RemoveAllControlItems(
26715         DWORD dwIDCtl) = 0;
26716 
26717     virtual HRESULT STDMETHODCALLTYPE GetControlItemState(
26718         DWORD dwIDCtl,
26719         DWORD dwIDItem,
26720         CDCONTROLSTATEF *pdwState) = 0;
26721 
26722     virtual HRESULT STDMETHODCALLTYPE SetControlItemState(
26723         DWORD dwIDCtl,
26724         DWORD dwIDItem,
26725         CDCONTROLSTATEF dwState) = 0;
26726 
26727     virtual HRESULT STDMETHODCALLTYPE GetSelectedControlItem(
26728         DWORD dwIDCtl,
26729         DWORD *pdwIDItem) = 0;
26730 
26731     virtual HRESULT STDMETHODCALLTYPE SetSelectedControlItem(
26732         DWORD dwIDCtl,
26733         DWORD dwIDItem) = 0;
26734 
26735     virtual HRESULT STDMETHODCALLTYPE StartVisualGroup(
26736         DWORD dwIDCtl,
26737         LPCWSTR pszLabel) = 0;
26738 
26739     virtual HRESULT STDMETHODCALLTYPE EndVisualGroup(
26740         ) = 0;
26741 
26742     virtual HRESULT STDMETHODCALLTYPE MakeProminent(
26743         DWORD dwIDCtl) = 0;
26744 
26745     virtual HRESULT STDMETHODCALLTYPE SetControlItemText(
26746         DWORD dwIDCtl,
26747         DWORD dwIDItem,
26748         LPCWSTR pszLabel) = 0;
26749 
26750 };
26751 #ifdef __CRT_UUID_DECL
26752 __CRT_UUID_DECL(IFileDialogCustomize, 0xe6fdd21a, 0x163f, 0x4975, 0x9c,0x8c, 0xa6,0x9f,0x1b,0xa3,0x70,0x34)
26753 #endif
26754 #else
26755 typedef struct IFileDialogCustomizeVtbl {
26756     BEGIN_INTERFACE
26757 
26758     /*** IUnknown methods ***/
26759     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
26760         IFileDialogCustomize* This,
26761         REFIID riid,
26762         void **ppvObject);
26763 
26764     ULONG (STDMETHODCALLTYPE *AddRef)(
26765         IFileDialogCustomize* This);
26766 
26767     ULONG (STDMETHODCALLTYPE *Release)(
26768         IFileDialogCustomize* This);
26769 
26770     /*** IFileDialogCustomize methods ***/
26771     HRESULT (STDMETHODCALLTYPE *EnableOpenDropDown)(
26772         IFileDialogCustomize* This,
26773         DWORD dwIDCtl);
26774 
26775     HRESULT (STDMETHODCALLTYPE *AddMenu)(
26776         IFileDialogCustomize* This,
26777         DWORD dwIDCtl,
26778         LPCWSTR pszLabel);
26779 
26780     HRESULT (STDMETHODCALLTYPE *AddPushButton)(
26781         IFileDialogCustomize* This,
26782         DWORD dwIDCtl,
26783         LPCWSTR pszLabel);
26784 
26785     HRESULT (STDMETHODCALLTYPE *AddComboBox)(
26786         IFileDialogCustomize* This,
26787         DWORD dwIDCtl);
26788 
26789     HRESULT (STDMETHODCALLTYPE *AddRadioButtonList)(
26790         IFileDialogCustomize* This,
26791         DWORD dwIDCtl);
26792 
26793     HRESULT (STDMETHODCALLTYPE *AddCheckButton)(
26794         IFileDialogCustomize* This,
26795         DWORD dwIDCtl,
26796         LPCWSTR pszLabel,
26797         WINBOOL bChecked);
26798 
26799     HRESULT (STDMETHODCALLTYPE *AddEditBox)(
26800         IFileDialogCustomize* This,
26801         DWORD dwIDCtl,
26802         LPCWSTR pszText);
26803 
26804     HRESULT (STDMETHODCALLTYPE *AddSeparator)(
26805         IFileDialogCustomize* This,
26806         DWORD dwIDCtl);
26807 
26808     HRESULT (STDMETHODCALLTYPE *AddText)(
26809         IFileDialogCustomize* This,
26810         DWORD dwIDCtl,
26811         LPCWSTR pszText);
26812 
26813     HRESULT (STDMETHODCALLTYPE *SetControlLabel)(
26814         IFileDialogCustomize* This,
26815         DWORD dwIDCtl,
26816         LPCWSTR pszLabel);
26817 
26818     HRESULT (STDMETHODCALLTYPE *GetControlState)(
26819         IFileDialogCustomize* This,
26820         DWORD dwIDCtl,
26821         CDCONTROLSTATEF *pdwState);
26822 
26823     HRESULT (STDMETHODCALLTYPE *SetControlState)(
26824         IFileDialogCustomize* This,
26825         DWORD dwIDCtl,
26826         CDCONTROLSTATEF dwState);
26827 
26828     HRESULT (STDMETHODCALLTYPE *GetEditBoxText)(
26829         IFileDialogCustomize* This,
26830         DWORD dwIDCtl,
26831         WCHAR **ppszText);
26832 
26833     HRESULT (STDMETHODCALLTYPE *SetEditBoxText)(
26834         IFileDialogCustomize* This,
26835         DWORD dwIDCtl,
26836         LPCWSTR pszText);
26837 
26838     HRESULT (STDMETHODCALLTYPE *GetCheckButtonState)(
26839         IFileDialogCustomize* This,
26840         DWORD dwIDCtl,
26841         WINBOOL *pbChecked);
26842 
26843     HRESULT (STDMETHODCALLTYPE *SetCheckButtonState)(
26844         IFileDialogCustomize* This,
26845         DWORD dwIDCtl,
26846         WINBOOL bChecked);
26847 
26848     HRESULT (STDMETHODCALLTYPE *AddControlItem)(
26849         IFileDialogCustomize* This,
26850         DWORD dwIDCtl,
26851         DWORD dwIDItem,
26852         LPCWSTR pszLabel);
26853 
26854     HRESULT (STDMETHODCALLTYPE *RemoveControlItem)(
26855         IFileDialogCustomize* This,
26856         DWORD dwIDCtl,
26857         DWORD dwIDItem);
26858 
26859     HRESULT (STDMETHODCALLTYPE *RemoveAllControlItems)(
26860         IFileDialogCustomize* This,
26861         DWORD dwIDCtl);
26862 
26863     HRESULT (STDMETHODCALLTYPE *GetControlItemState)(
26864         IFileDialogCustomize* This,
26865         DWORD dwIDCtl,
26866         DWORD dwIDItem,
26867         CDCONTROLSTATEF *pdwState);
26868 
26869     HRESULT (STDMETHODCALLTYPE *SetControlItemState)(
26870         IFileDialogCustomize* This,
26871         DWORD dwIDCtl,
26872         DWORD dwIDItem,
26873         CDCONTROLSTATEF dwState);
26874 
26875     HRESULT (STDMETHODCALLTYPE *GetSelectedControlItem)(
26876         IFileDialogCustomize* This,
26877         DWORD dwIDCtl,
26878         DWORD *pdwIDItem);
26879 
26880     HRESULT (STDMETHODCALLTYPE *SetSelectedControlItem)(
26881         IFileDialogCustomize* This,
26882         DWORD dwIDCtl,
26883         DWORD dwIDItem);
26884 
26885     HRESULT (STDMETHODCALLTYPE *StartVisualGroup)(
26886         IFileDialogCustomize* This,
26887         DWORD dwIDCtl,
26888         LPCWSTR pszLabel);
26889 
26890     HRESULT (STDMETHODCALLTYPE *EndVisualGroup)(
26891         IFileDialogCustomize* This);
26892 
26893     HRESULT (STDMETHODCALLTYPE *MakeProminent)(
26894         IFileDialogCustomize* This,
26895         DWORD dwIDCtl);
26896 
26897     HRESULT (STDMETHODCALLTYPE *SetControlItemText)(
26898         IFileDialogCustomize* This,
26899         DWORD dwIDCtl,
26900         DWORD dwIDItem,
26901         LPCWSTR pszLabel);
26902 
26903     END_INTERFACE
26904 } IFileDialogCustomizeVtbl;
26905 interface IFileDialogCustomize {
26906     CONST_VTBL IFileDialogCustomizeVtbl* lpVtbl;
26907 };
26908 
26909 #ifdef COBJMACROS
26910 #ifndef WIDL_C_INLINE_WRAPPERS
26911 /*** IUnknown methods ***/
26912 #define IFileDialogCustomize_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
26913 #define IFileDialogCustomize_AddRef(This) (This)->lpVtbl->AddRef(This)
26914 #define IFileDialogCustomize_Release(This) (This)->lpVtbl->Release(This)
26915 /*** IFileDialogCustomize methods ***/
26916 #define IFileDialogCustomize_EnableOpenDropDown(This,dwIDCtl) (This)->lpVtbl->EnableOpenDropDown(This,dwIDCtl)
26917 #define IFileDialogCustomize_AddMenu(This,dwIDCtl,pszLabel) (This)->lpVtbl->AddMenu(This,dwIDCtl,pszLabel)
26918 #define IFileDialogCustomize_AddPushButton(This,dwIDCtl,pszLabel) (This)->lpVtbl->AddPushButton(This,dwIDCtl,pszLabel)
26919 #define IFileDialogCustomize_AddComboBox(This,dwIDCtl) (This)->lpVtbl->AddComboBox(This,dwIDCtl)
26920 #define IFileDialogCustomize_AddRadioButtonList(This,dwIDCtl) (This)->lpVtbl->AddRadioButtonList(This,dwIDCtl)
26921 #define IFileDialogCustomize_AddCheckButton(This,dwIDCtl,pszLabel,bChecked) (This)->lpVtbl->AddCheckButton(This,dwIDCtl,pszLabel,bChecked)
26922 #define IFileDialogCustomize_AddEditBox(This,dwIDCtl,pszText) (This)->lpVtbl->AddEditBox(This,dwIDCtl,pszText)
26923 #define IFileDialogCustomize_AddSeparator(This,dwIDCtl) (This)->lpVtbl->AddSeparator(This,dwIDCtl)
26924 #define IFileDialogCustomize_AddText(This,dwIDCtl,pszText) (This)->lpVtbl->AddText(This,dwIDCtl,pszText)
26925 #define IFileDialogCustomize_SetControlLabel(This,dwIDCtl,pszLabel) (This)->lpVtbl->SetControlLabel(This,dwIDCtl,pszLabel)
26926 #define IFileDialogCustomize_GetControlState(This,dwIDCtl,pdwState) (This)->lpVtbl->GetControlState(This,dwIDCtl,pdwState)
26927 #define IFileDialogCustomize_SetControlState(This,dwIDCtl,dwState) (This)->lpVtbl->SetControlState(This,dwIDCtl,dwState)
26928 #define IFileDialogCustomize_GetEditBoxText(This,dwIDCtl,ppszText) (This)->lpVtbl->GetEditBoxText(This,dwIDCtl,ppszText)
26929 #define IFileDialogCustomize_SetEditBoxText(This,dwIDCtl,pszText) (This)->lpVtbl->SetEditBoxText(This,dwIDCtl,pszText)
26930 #define IFileDialogCustomize_GetCheckButtonState(This,dwIDCtl,pbChecked) (This)->lpVtbl->GetCheckButtonState(This,dwIDCtl,pbChecked)
26931 #define IFileDialogCustomize_SetCheckButtonState(This,dwIDCtl,bChecked) (This)->lpVtbl->SetCheckButtonState(This,dwIDCtl,bChecked)
26932 #define IFileDialogCustomize_AddControlItem(This,dwIDCtl,dwIDItem,pszLabel) (This)->lpVtbl->AddControlItem(This,dwIDCtl,dwIDItem,pszLabel)
26933 #define IFileDialogCustomize_RemoveControlItem(This,dwIDCtl,dwIDItem) (This)->lpVtbl->RemoveControlItem(This,dwIDCtl,dwIDItem)
26934 #define IFileDialogCustomize_RemoveAllControlItems(This,dwIDCtl) (This)->lpVtbl->RemoveAllControlItems(This,dwIDCtl)
26935 #define IFileDialogCustomize_GetControlItemState(This,dwIDCtl,dwIDItem,pdwState) (This)->lpVtbl->GetControlItemState(This,dwIDCtl,dwIDItem,pdwState)
26936 #define IFileDialogCustomize_SetControlItemState(This,dwIDCtl,dwIDItem,dwState) (This)->lpVtbl->SetControlItemState(This,dwIDCtl,dwIDItem,dwState)
26937 #define IFileDialogCustomize_GetSelectedControlItem(This,dwIDCtl,pdwIDItem) (This)->lpVtbl->GetSelectedControlItem(This,dwIDCtl,pdwIDItem)
26938 #define IFileDialogCustomize_SetSelectedControlItem(This,dwIDCtl,dwIDItem) (This)->lpVtbl->SetSelectedControlItem(This,dwIDCtl,dwIDItem)
26939 #define IFileDialogCustomize_StartVisualGroup(This,dwIDCtl,pszLabel) (This)->lpVtbl->StartVisualGroup(This,dwIDCtl,pszLabel)
26940 #define IFileDialogCustomize_EndVisualGroup(This) (This)->lpVtbl->EndVisualGroup(This)
26941 #define IFileDialogCustomize_MakeProminent(This,dwIDCtl) (This)->lpVtbl->MakeProminent(This,dwIDCtl)
26942 #define IFileDialogCustomize_SetControlItemText(This,dwIDCtl,dwIDItem,pszLabel) (This)->lpVtbl->SetControlItemText(This,dwIDCtl,dwIDItem,pszLabel)
26943 #else
26944 /*** IUnknown methods ***/
26945 static FORCEINLINE HRESULT IFileDialogCustomize_QueryInterface(IFileDialogCustomize* This,REFIID riid,void **ppvObject) {
26946     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
26947 }
26948 static FORCEINLINE ULONG IFileDialogCustomize_AddRef(IFileDialogCustomize* This) {
26949     return This->lpVtbl->AddRef(This);
26950 }
26951 static FORCEINLINE ULONG IFileDialogCustomize_Release(IFileDialogCustomize* This) {
26952     return This->lpVtbl->Release(This);
26953 }
26954 /*** IFileDialogCustomize methods ***/
26955 static FORCEINLINE HRESULT IFileDialogCustomize_EnableOpenDropDown(IFileDialogCustomize* This,DWORD dwIDCtl) {
26956     return This->lpVtbl->EnableOpenDropDown(This,dwIDCtl);
26957 }
26958 static FORCEINLINE HRESULT IFileDialogCustomize_AddMenu(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszLabel) {
26959     return This->lpVtbl->AddMenu(This,dwIDCtl,pszLabel);
26960 }
26961 static FORCEINLINE HRESULT IFileDialogCustomize_AddPushButton(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszLabel) {
26962     return This->lpVtbl->AddPushButton(This,dwIDCtl,pszLabel);
26963 }
26964 static FORCEINLINE HRESULT IFileDialogCustomize_AddComboBox(IFileDialogCustomize* This,DWORD dwIDCtl) {
26965     return This->lpVtbl->AddComboBox(This,dwIDCtl);
26966 }
26967 static FORCEINLINE HRESULT IFileDialogCustomize_AddRadioButtonList(IFileDialogCustomize* This,DWORD dwIDCtl) {
26968     return This->lpVtbl->AddRadioButtonList(This,dwIDCtl);
26969 }
26970 static FORCEINLINE HRESULT IFileDialogCustomize_AddCheckButton(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszLabel,WINBOOL bChecked) {
26971     return This->lpVtbl->AddCheckButton(This,dwIDCtl,pszLabel,bChecked);
26972 }
26973 static FORCEINLINE HRESULT IFileDialogCustomize_AddEditBox(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszText) {
26974     return This->lpVtbl->AddEditBox(This,dwIDCtl,pszText);
26975 }
26976 static FORCEINLINE HRESULT IFileDialogCustomize_AddSeparator(IFileDialogCustomize* This,DWORD dwIDCtl) {
26977     return This->lpVtbl->AddSeparator(This,dwIDCtl);
26978 }
26979 static FORCEINLINE HRESULT IFileDialogCustomize_AddText(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszText) {
26980     return This->lpVtbl->AddText(This,dwIDCtl,pszText);
26981 }
26982 static FORCEINLINE HRESULT IFileDialogCustomize_SetControlLabel(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszLabel) {
26983     return This->lpVtbl->SetControlLabel(This,dwIDCtl,pszLabel);
26984 }
26985 static FORCEINLINE HRESULT IFileDialogCustomize_GetControlState(IFileDialogCustomize* This,DWORD dwIDCtl,CDCONTROLSTATEF *pdwState) {
26986     return This->lpVtbl->GetControlState(This,dwIDCtl,pdwState);
26987 }
26988 static FORCEINLINE HRESULT IFileDialogCustomize_SetControlState(IFileDialogCustomize* This,DWORD dwIDCtl,CDCONTROLSTATEF dwState) {
26989     return This->lpVtbl->SetControlState(This,dwIDCtl,dwState);
26990 }
26991 static FORCEINLINE HRESULT IFileDialogCustomize_GetEditBoxText(IFileDialogCustomize* This,DWORD dwIDCtl,WCHAR **ppszText) {
26992     return This->lpVtbl->GetEditBoxText(This,dwIDCtl,ppszText);
26993 }
26994 static FORCEINLINE HRESULT IFileDialogCustomize_SetEditBoxText(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszText) {
26995     return This->lpVtbl->SetEditBoxText(This,dwIDCtl,pszText);
26996 }
26997 static FORCEINLINE HRESULT IFileDialogCustomize_GetCheckButtonState(IFileDialogCustomize* This,DWORD dwIDCtl,WINBOOL *pbChecked) {
26998     return This->lpVtbl->GetCheckButtonState(This,dwIDCtl,pbChecked);
26999 }
27000 static FORCEINLINE HRESULT IFileDialogCustomize_SetCheckButtonState(IFileDialogCustomize* This,DWORD dwIDCtl,WINBOOL bChecked) {
27001     return This->lpVtbl->SetCheckButtonState(This,dwIDCtl,bChecked);
27002 }
27003 static FORCEINLINE HRESULT IFileDialogCustomize_AddControlItem(IFileDialogCustomize* This,DWORD dwIDCtl,DWORD dwIDItem,LPCWSTR pszLabel) {
27004     return This->lpVtbl->AddControlItem(This,dwIDCtl,dwIDItem,pszLabel);
27005 }
27006 static FORCEINLINE HRESULT IFileDialogCustomize_RemoveControlItem(IFileDialogCustomize* This,DWORD dwIDCtl,DWORD dwIDItem) {
27007     return This->lpVtbl->RemoveControlItem(This,dwIDCtl,dwIDItem);
27008 }
27009 static FORCEINLINE HRESULT IFileDialogCustomize_RemoveAllControlItems(IFileDialogCustomize* This,DWORD dwIDCtl) {
27010     return This->lpVtbl->RemoveAllControlItems(This,dwIDCtl);
27011 }
27012 static FORCEINLINE HRESULT IFileDialogCustomize_GetControlItemState(IFileDialogCustomize* This,DWORD dwIDCtl,DWORD dwIDItem,CDCONTROLSTATEF *pdwState) {
27013     return This->lpVtbl->GetControlItemState(This,dwIDCtl,dwIDItem,pdwState);
27014 }
27015 static FORCEINLINE HRESULT IFileDialogCustomize_SetControlItemState(IFileDialogCustomize* This,DWORD dwIDCtl,DWORD dwIDItem,CDCONTROLSTATEF dwState) {
27016     return This->lpVtbl->SetControlItemState(This,dwIDCtl,dwIDItem,dwState);
27017 }
27018 static FORCEINLINE HRESULT IFileDialogCustomize_GetSelectedControlItem(IFileDialogCustomize* This,DWORD dwIDCtl,DWORD *pdwIDItem) {
27019     return This->lpVtbl->GetSelectedControlItem(This,dwIDCtl,pdwIDItem);
27020 }
27021 static FORCEINLINE HRESULT IFileDialogCustomize_SetSelectedControlItem(IFileDialogCustomize* This,DWORD dwIDCtl,DWORD dwIDItem) {
27022     return This->lpVtbl->SetSelectedControlItem(This,dwIDCtl,dwIDItem);
27023 }
27024 static FORCEINLINE HRESULT IFileDialogCustomize_StartVisualGroup(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszLabel) {
27025     return This->lpVtbl->StartVisualGroup(This,dwIDCtl,pszLabel);
27026 }
27027 static FORCEINLINE HRESULT IFileDialogCustomize_EndVisualGroup(IFileDialogCustomize* This) {
27028     return This->lpVtbl->EndVisualGroup(This);
27029 }
27030 static FORCEINLINE HRESULT IFileDialogCustomize_MakeProminent(IFileDialogCustomize* This,DWORD dwIDCtl) {
27031     return This->lpVtbl->MakeProminent(This,dwIDCtl);
27032 }
27033 static FORCEINLINE HRESULT IFileDialogCustomize_SetControlItemText(IFileDialogCustomize* This,DWORD dwIDCtl,DWORD dwIDItem,LPCWSTR pszLabel) {
27034     return This->lpVtbl->SetControlItemText(This,dwIDCtl,dwIDItem,pszLabel);
27035 }
27036 #endif
27037 #endif
27038 
27039 #endif
27040 
27041 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_EnableOpenDropDown_Proxy(
27042     IFileDialogCustomize* This,
27043     DWORD dwIDCtl);
27044 void __RPC_STUB IFileDialogCustomize_EnableOpenDropDown_Stub(
27045     IRpcStubBuffer* This,
27046     IRpcChannelBuffer* pRpcChannelBuffer,
27047     PRPC_MESSAGE pRpcMessage,
27048     DWORD* pdwStubPhase);
27049 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_AddMenu_Proxy(
27050     IFileDialogCustomize* This,
27051     DWORD dwIDCtl,
27052     LPCWSTR pszLabel);
27053 void __RPC_STUB IFileDialogCustomize_AddMenu_Stub(
27054     IRpcStubBuffer* This,
27055     IRpcChannelBuffer* pRpcChannelBuffer,
27056     PRPC_MESSAGE pRpcMessage,
27057     DWORD* pdwStubPhase);
27058 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_AddPushButton_Proxy(
27059     IFileDialogCustomize* This,
27060     DWORD dwIDCtl,
27061     LPCWSTR pszLabel);
27062 void __RPC_STUB IFileDialogCustomize_AddPushButton_Stub(
27063     IRpcStubBuffer* This,
27064     IRpcChannelBuffer* pRpcChannelBuffer,
27065     PRPC_MESSAGE pRpcMessage,
27066     DWORD* pdwStubPhase);
27067 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_AddComboBox_Proxy(
27068     IFileDialogCustomize* This,
27069     DWORD dwIDCtl);
27070 void __RPC_STUB IFileDialogCustomize_AddComboBox_Stub(
27071     IRpcStubBuffer* This,
27072     IRpcChannelBuffer* pRpcChannelBuffer,
27073     PRPC_MESSAGE pRpcMessage,
27074     DWORD* pdwStubPhase);
27075 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_AddRadioButtonList_Proxy(
27076     IFileDialogCustomize* This,
27077     DWORD dwIDCtl);
27078 void __RPC_STUB IFileDialogCustomize_AddRadioButtonList_Stub(
27079     IRpcStubBuffer* This,
27080     IRpcChannelBuffer* pRpcChannelBuffer,
27081     PRPC_MESSAGE pRpcMessage,
27082     DWORD* pdwStubPhase);
27083 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_AddCheckButton_Proxy(
27084     IFileDialogCustomize* This,
27085     DWORD dwIDCtl,
27086     LPCWSTR pszLabel,
27087     WINBOOL bChecked);
27088 void __RPC_STUB IFileDialogCustomize_AddCheckButton_Stub(
27089     IRpcStubBuffer* This,
27090     IRpcChannelBuffer* pRpcChannelBuffer,
27091     PRPC_MESSAGE pRpcMessage,
27092     DWORD* pdwStubPhase);
27093 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_AddEditBox_Proxy(
27094     IFileDialogCustomize* This,
27095     DWORD dwIDCtl,
27096     LPCWSTR pszText);
27097 void __RPC_STUB IFileDialogCustomize_AddEditBox_Stub(
27098     IRpcStubBuffer* This,
27099     IRpcChannelBuffer* pRpcChannelBuffer,
27100     PRPC_MESSAGE pRpcMessage,
27101     DWORD* pdwStubPhase);
27102 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_AddSeparator_Proxy(
27103     IFileDialogCustomize* This,
27104     DWORD dwIDCtl);
27105 void __RPC_STUB IFileDialogCustomize_AddSeparator_Stub(
27106     IRpcStubBuffer* This,
27107     IRpcChannelBuffer* pRpcChannelBuffer,
27108     PRPC_MESSAGE pRpcMessage,
27109     DWORD* pdwStubPhase);
27110 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_AddText_Proxy(
27111     IFileDialogCustomize* This,
27112     DWORD dwIDCtl,
27113     LPCWSTR pszText);
27114 void __RPC_STUB IFileDialogCustomize_AddText_Stub(
27115     IRpcStubBuffer* This,
27116     IRpcChannelBuffer* pRpcChannelBuffer,
27117     PRPC_MESSAGE pRpcMessage,
27118     DWORD* pdwStubPhase);
27119 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_SetControlLabel_Proxy(
27120     IFileDialogCustomize* This,
27121     DWORD dwIDCtl,
27122     LPCWSTR pszLabel);
27123 void __RPC_STUB IFileDialogCustomize_SetControlLabel_Stub(
27124     IRpcStubBuffer* This,
27125     IRpcChannelBuffer* pRpcChannelBuffer,
27126     PRPC_MESSAGE pRpcMessage,
27127     DWORD* pdwStubPhase);
27128 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_GetControlState_Proxy(
27129     IFileDialogCustomize* This,
27130     DWORD dwIDCtl,
27131     CDCONTROLSTATEF *pdwState);
27132 void __RPC_STUB IFileDialogCustomize_GetControlState_Stub(
27133     IRpcStubBuffer* This,
27134     IRpcChannelBuffer* pRpcChannelBuffer,
27135     PRPC_MESSAGE pRpcMessage,
27136     DWORD* pdwStubPhase);
27137 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_SetControlState_Proxy(
27138     IFileDialogCustomize* This,
27139     DWORD dwIDCtl,
27140     CDCONTROLSTATEF dwState);
27141 void __RPC_STUB IFileDialogCustomize_SetControlState_Stub(
27142     IRpcStubBuffer* This,
27143     IRpcChannelBuffer* pRpcChannelBuffer,
27144     PRPC_MESSAGE pRpcMessage,
27145     DWORD* pdwStubPhase);
27146 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_GetEditBoxText_Proxy(
27147     IFileDialogCustomize* This,
27148     DWORD dwIDCtl,
27149     WCHAR **ppszText);
27150 void __RPC_STUB IFileDialogCustomize_GetEditBoxText_Stub(
27151     IRpcStubBuffer* This,
27152     IRpcChannelBuffer* pRpcChannelBuffer,
27153     PRPC_MESSAGE pRpcMessage,
27154     DWORD* pdwStubPhase);
27155 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_SetEditBoxText_Proxy(
27156     IFileDialogCustomize* This,
27157     DWORD dwIDCtl,
27158     LPCWSTR pszText);
27159 void __RPC_STUB IFileDialogCustomize_SetEditBoxText_Stub(
27160     IRpcStubBuffer* This,
27161     IRpcChannelBuffer* pRpcChannelBuffer,
27162     PRPC_MESSAGE pRpcMessage,
27163     DWORD* pdwStubPhase);
27164 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_GetCheckButtonState_Proxy(
27165     IFileDialogCustomize* This,
27166     DWORD dwIDCtl,
27167     WINBOOL *pbChecked);
27168 void __RPC_STUB IFileDialogCustomize_GetCheckButtonState_Stub(
27169     IRpcStubBuffer* This,
27170     IRpcChannelBuffer* pRpcChannelBuffer,
27171     PRPC_MESSAGE pRpcMessage,
27172     DWORD* pdwStubPhase);
27173 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_SetCheckButtonState_Proxy(
27174     IFileDialogCustomize* This,
27175     DWORD dwIDCtl,
27176     WINBOOL bChecked);
27177 void __RPC_STUB IFileDialogCustomize_SetCheckButtonState_Stub(
27178     IRpcStubBuffer* This,
27179     IRpcChannelBuffer* pRpcChannelBuffer,
27180     PRPC_MESSAGE pRpcMessage,
27181     DWORD* pdwStubPhase);
27182 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_AddControlItem_Proxy(
27183     IFileDialogCustomize* This,
27184     DWORD dwIDCtl,
27185     DWORD dwIDItem,
27186     LPCWSTR pszLabel);
27187 void __RPC_STUB IFileDialogCustomize_AddControlItem_Stub(
27188     IRpcStubBuffer* This,
27189     IRpcChannelBuffer* pRpcChannelBuffer,
27190     PRPC_MESSAGE pRpcMessage,
27191     DWORD* pdwStubPhase);
27192 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_RemoveControlItem_Proxy(
27193     IFileDialogCustomize* This,
27194     DWORD dwIDCtl,
27195     DWORD dwIDItem);
27196 void __RPC_STUB IFileDialogCustomize_RemoveControlItem_Stub(
27197     IRpcStubBuffer* This,
27198     IRpcChannelBuffer* pRpcChannelBuffer,
27199     PRPC_MESSAGE pRpcMessage,
27200     DWORD* pdwStubPhase);
27201 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_RemoveAllControlItems_Proxy(
27202     IFileDialogCustomize* This,
27203     DWORD dwIDCtl);
27204 void __RPC_STUB IFileDialogCustomize_RemoveAllControlItems_Stub(
27205     IRpcStubBuffer* This,
27206     IRpcChannelBuffer* pRpcChannelBuffer,
27207     PRPC_MESSAGE pRpcMessage,
27208     DWORD* pdwStubPhase);
27209 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_GetControlItemState_Proxy(
27210     IFileDialogCustomize* This,
27211     DWORD dwIDCtl,
27212     DWORD dwIDItem,
27213     CDCONTROLSTATEF *pdwState);
27214 void __RPC_STUB IFileDialogCustomize_GetControlItemState_Stub(
27215     IRpcStubBuffer* This,
27216     IRpcChannelBuffer* pRpcChannelBuffer,
27217     PRPC_MESSAGE pRpcMessage,
27218     DWORD* pdwStubPhase);
27219 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_SetControlItemState_Proxy(
27220     IFileDialogCustomize* This,
27221     DWORD dwIDCtl,
27222     DWORD dwIDItem,
27223     CDCONTROLSTATEF dwState);
27224 void __RPC_STUB IFileDialogCustomize_SetControlItemState_Stub(
27225     IRpcStubBuffer* This,
27226     IRpcChannelBuffer* pRpcChannelBuffer,
27227     PRPC_MESSAGE pRpcMessage,
27228     DWORD* pdwStubPhase);
27229 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_GetSelectedControlItem_Proxy(
27230     IFileDialogCustomize* This,
27231     DWORD dwIDCtl,
27232     DWORD *pdwIDItem);
27233 void __RPC_STUB IFileDialogCustomize_GetSelectedControlItem_Stub(
27234     IRpcStubBuffer* This,
27235     IRpcChannelBuffer* pRpcChannelBuffer,
27236     PRPC_MESSAGE pRpcMessage,
27237     DWORD* pdwStubPhase);
27238 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_SetSelectedControlItem_Proxy(
27239     IFileDialogCustomize* This,
27240     DWORD dwIDCtl,
27241     DWORD dwIDItem);
27242 void __RPC_STUB IFileDialogCustomize_SetSelectedControlItem_Stub(
27243     IRpcStubBuffer* This,
27244     IRpcChannelBuffer* pRpcChannelBuffer,
27245     PRPC_MESSAGE pRpcMessage,
27246     DWORD* pdwStubPhase);
27247 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_StartVisualGroup_Proxy(
27248     IFileDialogCustomize* This,
27249     DWORD dwIDCtl,
27250     LPCWSTR pszLabel);
27251 void __RPC_STUB IFileDialogCustomize_StartVisualGroup_Stub(
27252     IRpcStubBuffer* This,
27253     IRpcChannelBuffer* pRpcChannelBuffer,
27254     PRPC_MESSAGE pRpcMessage,
27255     DWORD* pdwStubPhase);
27256 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_EndVisualGroup_Proxy(
27257     IFileDialogCustomize* This);
27258 void __RPC_STUB IFileDialogCustomize_EndVisualGroup_Stub(
27259     IRpcStubBuffer* This,
27260     IRpcChannelBuffer* pRpcChannelBuffer,
27261     PRPC_MESSAGE pRpcMessage,
27262     DWORD* pdwStubPhase);
27263 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_MakeProminent_Proxy(
27264     IFileDialogCustomize* This,
27265     DWORD dwIDCtl);
27266 void __RPC_STUB IFileDialogCustomize_MakeProminent_Stub(
27267     IRpcStubBuffer* This,
27268     IRpcChannelBuffer* pRpcChannelBuffer,
27269     PRPC_MESSAGE pRpcMessage,
27270     DWORD* pdwStubPhase);
27271 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_SetControlItemText_Proxy(
27272     IFileDialogCustomize* This,
27273     DWORD dwIDCtl,
27274     DWORD dwIDItem,
27275     LPCWSTR pszLabel);
27276 void __RPC_STUB IFileDialogCustomize_SetControlItemText_Stub(
27277     IRpcStubBuffer* This,
27278     IRpcChannelBuffer* pRpcChannelBuffer,
27279     PRPC_MESSAGE pRpcMessage,
27280     DWORD* pdwStubPhase);
27281 
27282 #endif  /* __IFileDialogCustomize_INTERFACE_DEFINED__ */
27283 
27284 
27285 /*****************************************************************************
27286  * IFileDialogControlEvents interface
27287  */
27288 #ifndef __IFileDialogControlEvents_INTERFACE_DEFINED__
27289 #define __IFileDialogControlEvents_INTERFACE_DEFINED__
27290 
27291 DEFINE_GUID(IID_IFileDialogControlEvents, 0x36116642, 0xd713, 0x4b97, 0x9b,0x83, 0x74,0x84,0xa9,0xd0,0x04,0x33);
27292 #if defined(__cplusplus) && !defined(CINTERFACE)
27293 MIDL_INTERFACE("36116642-d713-4b97-9b83-7484a9d00433")
27294 IFileDialogControlEvents : public IUnknown
27295 {
27296     virtual HRESULT STDMETHODCALLTYPE OnItemSelected(
27297         IFileDialogCustomize *pfdc,
27298         DWORD dwIDCtl,
27299         DWORD dwIDItem) = 0;
27300 
27301     virtual HRESULT STDMETHODCALLTYPE OnButtonClicked(
27302         IFileDialogCustomize *pfdc,
27303         DWORD dwIDCtl) = 0;
27304 
27305     virtual HRESULT STDMETHODCALLTYPE OnCheckButtonToggled(
27306         IFileDialogCustomize *pfdc,
27307         DWORD dwIDCtl,
27308         WINBOOL bChecked) = 0;
27309 
27310     virtual HRESULT STDMETHODCALLTYPE OnControlActivating(
27311         IFileDialogCustomize *pfdc,
27312         DWORD dwIDCtl) = 0;
27313 
27314 };
27315 #ifdef __CRT_UUID_DECL
27316 __CRT_UUID_DECL(IFileDialogControlEvents, 0x36116642, 0xd713, 0x4b97, 0x9b,0x83, 0x74,0x84,0xa9,0xd0,0x04,0x33)
27317 #endif
27318 #else
27319 typedef struct IFileDialogControlEventsVtbl {
27320     BEGIN_INTERFACE
27321 
27322     /*** IUnknown methods ***/
27323     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
27324         IFileDialogControlEvents* This,
27325         REFIID riid,
27326         void **ppvObject);
27327 
27328     ULONG (STDMETHODCALLTYPE *AddRef)(
27329         IFileDialogControlEvents* This);
27330 
27331     ULONG (STDMETHODCALLTYPE *Release)(
27332         IFileDialogControlEvents* This);
27333 
27334     /*** IFileDialogControlEvents methods ***/
27335     HRESULT (STDMETHODCALLTYPE *OnItemSelected)(
27336         IFileDialogControlEvents* This,
27337         IFileDialogCustomize *pfdc,
27338         DWORD dwIDCtl,
27339         DWORD dwIDItem);
27340 
27341     HRESULT (STDMETHODCALLTYPE *OnButtonClicked)(
27342         IFileDialogControlEvents* This,
27343         IFileDialogCustomize *pfdc,
27344         DWORD dwIDCtl);
27345 
27346     HRESULT (STDMETHODCALLTYPE *OnCheckButtonToggled)(
27347         IFileDialogControlEvents* This,
27348         IFileDialogCustomize *pfdc,
27349         DWORD dwIDCtl,
27350         WINBOOL bChecked);
27351 
27352     HRESULT (STDMETHODCALLTYPE *OnControlActivating)(
27353         IFileDialogControlEvents* This,
27354         IFileDialogCustomize *pfdc,
27355         DWORD dwIDCtl);
27356 
27357     END_INTERFACE
27358 } IFileDialogControlEventsVtbl;
27359 interface IFileDialogControlEvents {
27360     CONST_VTBL IFileDialogControlEventsVtbl* lpVtbl;
27361 };
27362 
27363 #ifdef COBJMACROS
27364 #ifndef WIDL_C_INLINE_WRAPPERS
27365 /*** IUnknown methods ***/
27366 #define IFileDialogControlEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
27367 #define IFileDialogControlEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
27368 #define IFileDialogControlEvents_Release(This) (This)->lpVtbl->Release(This)
27369 /*** IFileDialogControlEvents methods ***/
27370 #define IFileDialogControlEvents_OnItemSelected(This,pfdc,dwIDCtl,dwIDItem) (This)->lpVtbl->OnItemSelected(This,pfdc,dwIDCtl,dwIDItem)
27371 #define IFileDialogControlEvents_OnButtonClicked(This,pfdc,dwIDCtl) (This)->lpVtbl->OnButtonClicked(This,pfdc,dwIDCtl)
27372 #define IFileDialogControlEvents_OnCheckButtonToggled(This,pfdc,dwIDCtl,bChecked) (This)->lpVtbl->OnCheckButtonToggled(This,pfdc,dwIDCtl,bChecked)
27373 #define IFileDialogControlEvents_OnControlActivating(This,pfdc,dwIDCtl) (This)->lpVtbl->OnControlActivating(This,pfdc,dwIDCtl)
27374 #else
27375 /*** IUnknown methods ***/
27376 static FORCEINLINE HRESULT IFileDialogControlEvents_QueryInterface(IFileDialogControlEvents* This,REFIID riid,void **ppvObject) {
27377     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
27378 }
27379 static FORCEINLINE ULONG IFileDialogControlEvents_AddRef(IFileDialogControlEvents* This) {
27380     return This->lpVtbl->AddRef(This);
27381 }
27382 static FORCEINLINE ULONG IFileDialogControlEvents_Release(IFileDialogControlEvents* This) {
27383     return This->lpVtbl->Release(This);
27384 }
27385 /*** IFileDialogControlEvents methods ***/
27386 static FORCEINLINE HRESULT IFileDialogControlEvents_OnItemSelected(IFileDialogControlEvents* This,IFileDialogCustomize *pfdc,DWORD dwIDCtl,DWORD dwIDItem) {
27387     return This->lpVtbl->OnItemSelected(This,pfdc,dwIDCtl,dwIDItem);
27388 }
27389 static FORCEINLINE HRESULT IFileDialogControlEvents_OnButtonClicked(IFileDialogControlEvents* This,IFileDialogCustomize *pfdc,DWORD dwIDCtl) {
27390     return This->lpVtbl->OnButtonClicked(This,pfdc,dwIDCtl);
27391 }
27392 static FORCEINLINE HRESULT IFileDialogControlEvents_OnCheckButtonToggled(IFileDialogControlEvents* This,IFileDialogCustomize *pfdc,DWORD dwIDCtl,WINBOOL bChecked) {
27393     return This->lpVtbl->OnCheckButtonToggled(This,pfdc,dwIDCtl,bChecked);
27394 }
27395 static FORCEINLINE HRESULT IFileDialogControlEvents_OnControlActivating(IFileDialogControlEvents* This,IFileDialogCustomize *pfdc,DWORD dwIDCtl) {
27396     return This->lpVtbl->OnControlActivating(This,pfdc,dwIDCtl);
27397 }
27398 #endif
27399 #endif
27400 
27401 #endif
27402 
27403 HRESULT STDMETHODCALLTYPE IFileDialogControlEvents_OnItemSelected_Proxy(
27404     IFileDialogControlEvents* This,
27405     IFileDialogCustomize *pfdc,
27406     DWORD dwIDCtl,
27407     DWORD dwIDItem);
27408 void __RPC_STUB IFileDialogControlEvents_OnItemSelected_Stub(
27409     IRpcStubBuffer* This,
27410     IRpcChannelBuffer* pRpcChannelBuffer,
27411     PRPC_MESSAGE pRpcMessage,
27412     DWORD* pdwStubPhase);
27413 HRESULT STDMETHODCALLTYPE IFileDialogControlEvents_OnButtonClicked_Proxy(
27414     IFileDialogControlEvents* This,
27415     IFileDialogCustomize *pfdc,
27416     DWORD dwIDCtl);
27417 void __RPC_STUB IFileDialogControlEvents_OnButtonClicked_Stub(
27418     IRpcStubBuffer* This,
27419     IRpcChannelBuffer* pRpcChannelBuffer,
27420     PRPC_MESSAGE pRpcMessage,
27421     DWORD* pdwStubPhase);
27422 HRESULT STDMETHODCALLTYPE IFileDialogControlEvents_OnCheckButtonToggled_Proxy(
27423     IFileDialogControlEvents* This,
27424     IFileDialogCustomize *pfdc,
27425     DWORD dwIDCtl,
27426     WINBOOL bChecked);
27427 void __RPC_STUB IFileDialogControlEvents_OnCheckButtonToggled_Stub(
27428     IRpcStubBuffer* This,
27429     IRpcChannelBuffer* pRpcChannelBuffer,
27430     PRPC_MESSAGE pRpcMessage,
27431     DWORD* pdwStubPhase);
27432 HRESULT STDMETHODCALLTYPE IFileDialogControlEvents_OnControlActivating_Proxy(
27433     IFileDialogControlEvents* This,
27434     IFileDialogCustomize *pfdc,
27435     DWORD dwIDCtl);
27436 void __RPC_STUB IFileDialogControlEvents_OnControlActivating_Stub(
27437     IRpcStubBuffer* This,
27438     IRpcChannelBuffer* pRpcChannelBuffer,
27439     PRPC_MESSAGE pRpcMessage,
27440     DWORD* pdwStubPhase);
27441 
27442 #endif  /* __IFileDialogControlEvents_INTERFACE_DEFINED__ */
27443 
27444 
27445 /*****************************************************************************
27446  * IFileDialog2 interface
27447  */
27448 #ifndef __IFileDialog2_INTERFACE_DEFINED__
27449 #define __IFileDialog2_INTERFACE_DEFINED__
27450 
27451 DEFINE_GUID(IID_IFileDialog2, 0x61744fc7, 0x85b5, 0x4791, 0xa9,0xb0, 0x27,0x22,0x76,0x30,0x9b,0x13);
27452 #if defined(__cplusplus) && !defined(CINTERFACE)
27453 MIDL_INTERFACE("61744fc7-85b5-4791-a9b0-272276309b13")
27454 IFileDialog2 : public IFileDialog
27455 {
27456     virtual HRESULT STDMETHODCALLTYPE SetCancelButtonLabel(
27457         LPCWSTR pszLabel) = 0;
27458 
27459     virtual HRESULT STDMETHODCALLTYPE SetNavigationRoot(
27460         IShellItem *psi) = 0;
27461 
27462 };
27463 #ifdef __CRT_UUID_DECL
27464 __CRT_UUID_DECL(IFileDialog2, 0x61744fc7, 0x85b5, 0x4791, 0xa9,0xb0, 0x27,0x22,0x76,0x30,0x9b,0x13)
27465 #endif
27466 #else
27467 typedef struct IFileDialog2Vtbl {
27468     BEGIN_INTERFACE
27469 
27470     /*** IUnknown methods ***/
27471     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
27472         IFileDialog2* This,
27473         REFIID riid,
27474         void **ppvObject);
27475 
27476     ULONG (STDMETHODCALLTYPE *AddRef)(
27477         IFileDialog2* This);
27478 
27479     ULONG (STDMETHODCALLTYPE *Release)(
27480         IFileDialog2* This);
27481 
27482     /*** IModalWindow methods ***/
27483     HRESULT (STDMETHODCALLTYPE *Show)(
27484         IFileDialog2* This,
27485         HWND hwndOwner);
27486 
27487     /*** IFileDialog methods ***/
27488     HRESULT (STDMETHODCALLTYPE *SetFileTypes)(
27489         IFileDialog2* This,
27490         UINT cFileTypes,
27491         const COMDLG_FILTERSPEC *rgFilterSpec);
27492 
27493     HRESULT (STDMETHODCALLTYPE *SetFileTypeIndex)(
27494         IFileDialog2* This,
27495         UINT iFileType);
27496 
27497     HRESULT (STDMETHODCALLTYPE *GetFileTypeIndex)(
27498         IFileDialog2* This,
27499         UINT *piFileType);
27500 
27501     HRESULT (STDMETHODCALLTYPE *Advise)(
27502         IFileDialog2* This,
27503         IFileDialogEvents *pfde,
27504         DWORD *pdwCookie);
27505 
27506     HRESULT (STDMETHODCALLTYPE *Unadvise)(
27507         IFileDialog2* This,
27508         DWORD dwCookie);
27509 
27510     HRESULT (STDMETHODCALLTYPE *SetOptions)(
27511         IFileDialog2* This,
27512         FILEOPENDIALOGOPTIONS fos);
27513 
27514     HRESULT (STDMETHODCALLTYPE *GetOptions)(
27515         IFileDialog2* This,
27516         FILEOPENDIALOGOPTIONS *pfos);
27517 
27518     HRESULT (STDMETHODCALLTYPE *SetDefaultFolder)(
27519         IFileDialog2* This,
27520         IShellItem *psi);
27521 
27522     HRESULT (STDMETHODCALLTYPE *SetFolder)(
27523         IFileDialog2* This,
27524         IShellItem *psi);
27525 
27526     HRESULT (STDMETHODCALLTYPE *GetFolder)(
27527         IFileDialog2* This,
27528         IShellItem **ppsi);
27529 
27530     HRESULT (STDMETHODCALLTYPE *GetCurrentSelection)(
27531         IFileDialog2* This,
27532         IShellItem **ppsi);
27533 
27534     HRESULT (STDMETHODCALLTYPE *SetFileName)(
27535         IFileDialog2* This,
27536         LPCWSTR pszName);
27537 
27538     HRESULT (STDMETHODCALLTYPE *GetFileName)(
27539         IFileDialog2* This,
27540         LPWSTR *pszName);
27541 
27542     HRESULT (STDMETHODCALLTYPE *SetTitle)(
27543         IFileDialog2* This,
27544         LPCWSTR pszTitle);
27545 
27546     HRESULT (STDMETHODCALLTYPE *SetOkButtonLabel)(
27547         IFileDialog2* This,
27548         LPCWSTR pszText);
27549 
27550     HRESULT (STDMETHODCALLTYPE *SetFileNameLabel)(
27551         IFileDialog2* This,
27552         LPCWSTR pszLabel);
27553 
27554     HRESULT (STDMETHODCALLTYPE *GetResult)(
27555         IFileDialog2* This,
27556         IShellItem **ppsi);
27557 
27558     HRESULT (STDMETHODCALLTYPE *AddPlace)(
27559         IFileDialog2* This,
27560         IShellItem *psi,
27561         FDAP fdap);
27562 
27563     HRESULT (STDMETHODCALLTYPE *SetDefaultExtension)(
27564         IFileDialog2* This,
27565         LPCWSTR pszDefaultExtension);
27566 
27567     HRESULT (STDMETHODCALLTYPE *Close)(
27568         IFileDialog2* This,
27569         HRESULT hr);
27570 
27571     HRESULT (STDMETHODCALLTYPE *SetClientGuid)(
27572         IFileDialog2* This,
27573         REFGUID guid);
27574 
27575     HRESULT (STDMETHODCALLTYPE *ClearClientData)(
27576         IFileDialog2* This);
27577 
27578     HRESULT (STDMETHODCALLTYPE *SetFilter)(
27579         IFileDialog2* This,
27580         IShellItemFilter *pFilter);
27581 
27582     /*** IFileDialog2 methods ***/
27583     HRESULT (STDMETHODCALLTYPE *SetCancelButtonLabel)(
27584         IFileDialog2* This,
27585         LPCWSTR pszLabel);
27586 
27587     HRESULT (STDMETHODCALLTYPE *SetNavigationRoot)(
27588         IFileDialog2* This,
27589         IShellItem *psi);
27590 
27591     END_INTERFACE
27592 } IFileDialog2Vtbl;
27593 interface IFileDialog2 {
27594     CONST_VTBL IFileDialog2Vtbl* lpVtbl;
27595 };
27596 
27597 #ifdef COBJMACROS
27598 #ifndef WIDL_C_INLINE_WRAPPERS
27599 /*** IUnknown methods ***/
27600 #define IFileDialog2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
27601 #define IFileDialog2_AddRef(This) (This)->lpVtbl->AddRef(This)
27602 #define IFileDialog2_Release(This) (This)->lpVtbl->Release(This)
27603 /*** IModalWindow methods ***/
27604 #define IFileDialog2_Show(This,hwndOwner) (This)->lpVtbl->Show(This,hwndOwner)
27605 /*** IFileDialog methods ***/
27606 #define IFileDialog2_SetFileTypes(This,cFileTypes,rgFilterSpec) (This)->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec)
27607 #define IFileDialog2_SetFileTypeIndex(This,iFileType) (This)->lpVtbl->SetFileTypeIndex(This,iFileType)
27608 #define IFileDialog2_GetFileTypeIndex(This,piFileType) (This)->lpVtbl->GetFileTypeIndex(This,piFileType)
27609 #define IFileDialog2_Advise(This,pfde,pdwCookie) (This)->lpVtbl->Advise(This,pfde,pdwCookie)
27610 #define IFileDialog2_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
27611 #define IFileDialog2_SetOptions(This,fos) (This)->lpVtbl->SetOptions(This,fos)
27612 #define IFileDialog2_GetOptions(This,pfos) (This)->lpVtbl->GetOptions(This,pfos)
27613 #define IFileDialog2_SetDefaultFolder(This,psi) (This)->lpVtbl->SetDefaultFolder(This,psi)
27614 #define IFileDialog2_SetFolder(This,psi) (This)->lpVtbl->SetFolder(This,psi)
27615 #define IFileDialog2_GetFolder(This,ppsi) (This)->lpVtbl->GetFolder(This,ppsi)
27616 #define IFileDialog2_GetCurrentSelection(This,ppsi) (This)->lpVtbl->GetCurrentSelection(This,ppsi)
27617 #define IFileDialog2_SetFileName(This,pszName) (This)->lpVtbl->SetFileName(This,pszName)
27618 #define IFileDialog2_GetFileName(This,pszName) (This)->lpVtbl->GetFileName(This,pszName)
27619 #define IFileDialog2_SetTitle(This,pszTitle) (This)->lpVtbl->SetTitle(This,pszTitle)
27620 #define IFileDialog2_SetOkButtonLabel(This,pszText) (This)->lpVtbl->SetOkButtonLabel(This,pszText)
27621 #define IFileDialog2_SetFileNameLabel(This,pszLabel) (This)->lpVtbl->SetFileNameLabel(This,pszLabel)
27622 #define IFileDialog2_GetResult(This,ppsi) (This)->lpVtbl->GetResult(This,ppsi)
27623 #define IFileDialog2_AddPlace(This,psi,fdap) (This)->lpVtbl->AddPlace(This,psi,fdap)
27624 #define IFileDialog2_SetDefaultExtension(This,pszDefaultExtension) (This)->lpVtbl->SetDefaultExtension(This,pszDefaultExtension)
27625 #define IFileDialog2_Close(This,hr) (This)->lpVtbl->Close(This,hr)
27626 #define IFileDialog2_SetClientGuid(This,guid) (This)->lpVtbl->SetClientGuid(This,guid)
27627 #define IFileDialog2_ClearClientData(This) (This)->lpVtbl->ClearClientData(This)
27628 #define IFileDialog2_SetFilter(This,pFilter) (This)->lpVtbl->SetFilter(This,pFilter)
27629 /*** IFileDialog2 methods ***/
27630 #define IFileDialog2_SetCancelButtonLabel(This,pszLabel) (This)->lpVtbl->SetCancelButtonLabel(This,pszLabel)
27631 #define IFileDialog2_SetNavigationRoot(This,psi) (This)->lpVtbl->SetNavigationRoot(This,psi)
27632 #else
27633 /*** IUnknown methods ***/
27634 static FORCEINLINE HRESULT IFileDialog2_QueryInterface(IFileDialog2* This,REFIID riid,void **ppvObject) {
27635     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
27636 }
27637 static FORCEINLINE ULONG IFileDialog2_AddRef(IFileDialog2* This) {
27638     return This->lpVtbl->AddRef(This);
27639 }
27640 static FORCEINLINE ULONG IFileDialog2_Release(IFileDialog2* This) {
27641     return This->lpVtbl->Release(This);
27642 }
27643 /*** IModalWindow methods ***/
27644 static FORCEINLINE HRESULT IFileDialog2_Show(IFileDialog2* This,HWND hwndOwner) {
27645     return This->lpVtbl->Show(This,hwndOwner);
27646 }
27647 /*** IFileDialog methods ***/
27648 static FORCEINLINE HRESULT IFileDialog2_SetFileTypes(IFileDialog2* This,UINT cFileTypes,const COMDLG_FILTERSPEC *rgFilterSpec) {
27649     return This->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec);
27650 }
27651 static FORCEINLINE HRESULT IFileDialog2_SetFileTypeIndex(IFileDialog2* This,UINT iFileType) {
27652     return This->lpVtbl->SetFileTypeIndex(This,iFileType);
27653 }
27654 static FORCEINLINE HRESULT IFileDialog2_GetFileTypeIndex(IFileDialog2* This,UINT *piFileType) {
27655     return This->lpVtbl->GetFileTypeIndex(This,piFileType);
27656 }
27657 static FORCEINLINE HRESULT IFileDialog2_Advise(IFileDialog2* This,IFileDialogEvents *pfde,DWORD *pdwCookie) {
27658     return This->lpVtbl->Advise(This,pfde,pdwCookie);
27659 }
27660 static FORCEINLINE HRESULT IFileDialog2_Unadvise(IFileDialog2* This,DWORD dwCookie) {
27661     return This->lpVtbl->Unadvise(This,dwCookie);
27662 }
27663 static FORCEINLINE HRESULT IFileDialog2_SetOptions(IFileDialog2* This,FILEOPENDIALOGOPTIONS fos) {
27664     return This->lpVtbl->SetOptions(This,fos);
27665 }
27666 static FORCEINLINE HRESULT IFileDialog2_GetOptions(IFileDialog2* This,FILEOPENDIALOGOPTIONS *pfos) {
27667     return This->lpVtbl->GetOptions(This,pfos);
27668 }
27669 static FORCEINLINE HRESULT IFileDialog2_SetDefaultFolder(IFileDialog2* This,IShellItem *psi) {
27670     return This->lpVtbl->SetDefaultFolder(This,psi);
27671 }
27672 static FORCEINLINE HRESULT IFileDialog2_SetFolder(IFileDialog2* This,IShellItem *psi) {
27673     return This->lpVtbl->SetFolder(This,psi);
27674 }
27675 static FORCEINLINE HRESULT IFileDialog2_GetFolder(IFileDialog2* This,IShellItem **ppsi) {
27676     return This->lpVtbl->GetFolder(This,ppsi);
27677 }
27678 static FORCEINLINE HRESULT IFileDialog2_GetCurrentSelection(IFileDialog2* This,IShellItem **ppsi) {
27679     return This->lpVtbl->GetCurrentSelection(This,ppsi);
27680 }
27681 static FORCEINLINE HRESULT IFileDialog2_SetFileName(IFileDialog2* This,LPCWSTR pszName) {
27682     return This->lpVtbl->SetFileName(This,pszName);
27683 }
27684 static FORCEINLINE HRESULT IFileDialog2_GetFileName(IFileDialog2* This,LPWSTR *pszName) {
27685     return This->lpVtbl->GetFileName(This,pszName);
27686 }
27687 static FORCEINLINE HRESULT IFileDialog2_SetTitle(IFileDialog2* This,LPCWSTR pszTitle) {
27688     return This->lpVtbl->SetTitle(This,pszTitle);
27689 }
27690 static FORCEINLINE HRESULT IFileDialog2_SetOkButtonLabel(IFileDialog2* This,LPCWSTR pszText) {
27691     return This->lpVtbl->SetOkButtonLabel(This,pszText);
27692 }
27693 static FORCEINLINE HRESULT IFileDialog2_SetFileNameLabel(IFileDialog2* This,LPCWSTR pszLabel) {
27694     return This->lpVtbl->SetFileNameLabel(This,pszLabel);
27695 }
27696 static FORCEINLINE HRESULT IFileDialog2_GetResult(IFileDialog2* This,IShellItem **ppsi) {
27697     return This->lpVtbl->GetResult(This,ppsi);
27698 }
27699 static FORCEINLINE HRESULT IFileDialog2_AddPlace(IFileDialog2* This,IShellItem *psi,FDAP fdap) {
27700     return This->lpVtbl->AddPlace(This,psi,fdap);
27701 }
27702 static FORCEINLINE HRESULT IFileDialog2_SetDefaultExtension(IFileDialog2* This,LPCWSTR pszDefaultExtension) {
27703     return This->lpVtbl->SetDefaultExtension(This,pszDefaultExtension);
27704 }
27705 static FORCEINLINE HRESULT IFileDialog2_Close(IFileDialog2* This,HRESULT hr) {
27706     return This->lpVtbl->Close(This,hr);
27707 }
27708 static FORCEINLINE HRESULT IFileDialog2_SetClientGuid(IFileDialog2* This,REFGUID guid) {
27709     return This->lpVtbl->SetClientGuid(This,guid);
27710 }
27711 static FORCEINLINE HRESULT IFileDialog2_ClearClientData(IFileDialog2* This) {
27712     return This->lpVtbl->ClearClientData(This);
27713 }
27714 static FORCEINLINE HRESULT IFileDialog2_SetFilter(IFileDialog2* This,IShellItemFilter *pFilter) {
27715     return This->lpVtbl->SetFilter(This,pFilter);
27716 }
27717 /*** IFileDialog2 methods ***/
27718 static FORCEINLINE HRESULT IFileDialog2_SetCancelButtonLabel(IFileDialog2* This,LPCWSTR pszLabel) {
27719     return This->lpVtbl->SetCancelButtonLabel(This,pszLabel);
27720 }
27721 static FORCEINLINE HRESULT IFileDialog2_SetNavigationRoot(IFileDialog2* This,IShellItem *psi) {
27722     return This->lpVtbl->SetNavigationRoot(This,psi);
27723 }
27724 #endif
27725 #endif
27726 
27727 #endif
27728 
27729 HRESULT STDMETHODCALLTYPE IFileDialog2_SetCancelButtonLabel_Proxy(
27730     IFileDialog2* This,
27731     LPCWSTR pszLabel);
27732 void __RPC_STUB IFileDialog2_SetCancelButtonLabel_Stub(
27733     IRpcStubBuffer* This,
27734     IRpcChannelBuffer* pRpcChannelBuffer,
27735     PRPC_MESSAGE pRpcMessage,
27736     DWORD* pdwStubPhase);
27737 HRESULT STDMETHODCALLTYPE IFileDialog2_SetNavigationRoot_Proxy(
27738     IFileDialog2* This,
27739     IShellItem *psi);
27740 void __RPC_STUB IFileDialog2_SetNavigationRoot_Stub(
27741     IRpcStubBuffer* This,
27742     IRpcChannelBuffer* pRpcChannelBuffer,
27743     PRPC_MESSAGE pRpcMessage,
27744     DWORD* pdwStubPhase);
27745 
27746 #endif  /* __IFileDialog2_INTERFACE_DEFINED__ */
27747 
27748 
27749 typedef enum ASSOCIATIONLEVEL {
27750     AL_MACHINE = 0,
27751     AL_EFFECTIVE = 1,
27752     AL_USER = 2
27753 } ASSOCIATIONLEVEL;
27754 
27755 typedef enum ASSOCIATIONTYPE {
27756     AT_FILEEXTENSION = 0,
27757     AT_URLPROTOCOL = 1,
27758     AT_STARTMENUCLIENT = 2,
27759     AT_MIMETYPE = 3
27760 } ASSOCIATIONTYPE;
27761 
27762 /*****************************************************************************
27763  * IApplicationAssociationRegistration interface
27764  */
27765 #ifndef __IApplicationAssociationRegistration_INTERFACE_DEFINED__
27766 #define __IApplicationAssociationRegistration_INTERFACE_DEFINED__
27767 
27768 DEFINE_GUID(IID_IApplicationAssociationRegistration, 0x4e530b0a, 0xe611, 0x4c77, 0xa3,0xac, 0x90,0x31,0xd0,0x22,0x28,0x1b);
27769 #if defined(__cplusplus) && !defined(CINTERFACE)
27770 MIDL_INTERFACE("4e530b0a-e611-4c77-a3ac-9031d022281b")
27771 IApplicationAssociationRegistration : public IUnknown
27772 {
27773     virtual HRESULT STDMETHODCALLTYPE QueryCurrentDefault(
27774         LPCWSTR pszQuery,
27775         ASSOCIATIONTYPE atQueryType,
27776         ASSOCIATIONLEVEL alQueryLevel,
27777         LPWSTR *ppszAssociation) = 0;
27778 
27779     virtual HRESULT STDMETHODCALLTYPE QueryAppIsDefault(
27780         LPCWSTR pszQuery,
27781         ASSOCIATIONTYPE atQueryType,
27782         ASSOCIATIONLEVEL alQueryLevel,
27783         LPCWSTR pszAppRegistryName,
27784         WINBOOL *pfDefault) = 0;
27785 
27786     virtual HRESULT STDMETHODCALLTYPE QueryAppIsDefaultAll(
27787         ASSOCIATIONLEVEL alQueryLevel,
27788         LPCWSTR pszAppRegistryName,
27789         WINBOOL *pfDefault) = 0;
27790 
27791     virtual HRESULT STDMETHODCALLTYPE SetAppAsDefault(
27792         LPCWSTR pszAppRegistryName,
27793         LPCWSTR pszSet,
27794         ASSOCIATIONTYPE atSetType) = 0;
27795 
27796     virtual HRESULT STDMETHODCALLTYPE SetAppAsDefaultAll(
27797         LPCWSTR pszAppRegistryName) = 0;
27798 
27799     virtual HRESULT STDMETHODCALLTYPE ClearUserAssociations(
27800         ) = 0;
27801 
27802 };
27803 #ifdef __CRT_UUID_DECL
27804 __CRT_UUID_DECL(IApplicationAssociationRegistration, 0x4e530b0a, 0xe611, 0x4c77, 0xa3,0xac, 0x90,0x31,0xd0,0x22,0x28,0x1b)
27805 #endif
27806 #else
27807 typedef struct IApplicationAssociationRegistrationVtbl {
27808     BEGIN_INTERFACE
27809 
27810     /*** IUnknown methods ***/
27811     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
27812         IApplicationAssociationRegistration* This,
27813         REFIID riid,
27814         void **ppvObject);
27815 
27816     ULONG (STDMETHODCALLTYPE *AddRef)(
27817         IApplicationAssociationRegistration* This);
27818 
27819     ULONG (STDMETHODCALLTYPE *Release)(
27820         IApplicationAssociationRegistration* This);
27821 
27822     /*** IApplicationAssociationRegistration methods ***/
27823     HRESULT (STDMETHODCALLTYPE *QueryCurrentDefault)(
27824         IApplicationAssociationRegistration* This,
27825         LPCWSTR pszQuery,
27826         ASSOCIATIONTYPE atQueryType,
27827         ASSOCIATIONLEVEL alQueryLevel,
27828         LPWSTR *ppszAssociation);
27829 
27830     HRESULT (STDMETHODCALLTYPE *QueryAppIsDefault)(
27831         IApplicationAssociationRegistration* This,
27832         LPCWSTR pszQuery,
27833         ASSOCIATIONTYPE atQueryType,
27834         ASSOCIATIONLEVEL alQueryLevel,
27835         LPCWSTR pszAppRegistryName,
27836         WINBOOL *pfDefault);
27837 
27838     HRESULT (STDMETHODCALLTYPE *QueryAppIsDefaultAll)(
27839         IApplicationAssociationRegistration* This,
27840         ASSOCIATIONLEVEL alQueryLevel,
27841         LPCWSTR pszAppRegistryName,
27842         WINBOOL *pfDefault);
27843 
27844     HRESULT (STDMETHODCALLTYPE *SetAppAsDefault)(
27845         IApplicationAssociationRegistration* This,
27846         LPCWSTR pszAppRegistryName,
27847         LPCWSTR pszSet,
27848         ASSOCIATIONTYPE atSetType);
27849 
27850     HRESULT (STDMETHODCALLTYPE *SetAppAsDefaultAll)(
27851         IApplicationAssociationRegistration* This,
27852         LPCWSTR pszAppRegistryName);
27853 
27854     HRESULT (STDMETHODCALLTYPE *ClearUserAssociations)(
27855         IApplicationAssociationRegistration* This);
27856 
27857     END_INTERFACE
27858 } IApplicationAssociationRegistrationVtbl;
27859 interface IApplicationAssociationRegistration {
27860     CONST_VTBL IApplicationAssociationRegistrationVtbl* lpVtbl;
27861 };
27862 
27863 #ifdef COBJMACROS
27864 #ifndef WIDL_C_INLINE_WRAPPERS
27865 /*** IUnknown methods ***/
27866 #define IApplicationAssociationRegistration_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
27867 #define IApplicationAssociationRegistration_AddRef(This) (This)->lpVtbl->AddRef(This)
27868 #define IApplicationAssociationRegistration_Release(This) (This)->lpVtbl->Release(This)
27869 /*** IApplicationAssociationRegistration methods ***/
27870 #define IApplicationAssociationRegistration_QueryCurrentDefault(This,pszQuery,atQueryType,alQueryLevel,ppszAssociation) (This)->lpVtbl->QueryCurrentDefault(This,pszQuery,atQueryType,alQueryLevel,ppszAssociation)
27871 #define IApplicationAssociationRegistration_QueryAppIsDefault(This,pszQuery,atQueryType,alQueryLevel,pszAppRegistryName,pfDefault) (This)->lpVtbl->QueryAppIsDefault(This,pszQuery,atQueryType,alQueryLevel,pszAppRegistryName,pfDefault)
27872 #define IApplicationAssociationRegistration_QueryAppIsDefaultAll(This,alQueryLevel,pszAppRegistryName,pfDefault) (This)->lpVtbl->QueryAppIsDefaultAll(This,alQueryLevel,pszAppRegistryName,pfDefault)
27873 #define IApplicationAssociationRegistration_SetAppAsDefault(This,pszAppRegistryName,pszSet,atSetType) (This)->lpVtbl->SetAppAsDefault(This,pszAppRegistryName,pszSet,atSetType)
27874 #define IApplicationAssociationRegistration_SetAppAsDefaultAll(This,pszAppRegistryName) (This)->lpVtbl->SetAppAsDefaultAll(This,pszAppRegistryName)
27875 #define IApplicationAssociationRegistration_ClearUserAssociations(This) (This)->lpVtbl->ClearUserAssociations(This)
27876 #else
27877 /*** IUnknown methods ***/
27878 static FORCEINLINE HRESULT IApplicationAssociationRegistration_QueryInterface(IApplicationAssociationRegistration* This,REFIID riid,void **ppvObject) {
27879     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
27880 }
27881 static FORCEINLINE ULONG IApplicationAssociationRegistration_AddRef(IApplicationAssociationRegistration* This) {
27882     return This->lpVtbl->AddRef(This);
27883 }
27884 static FORCEINLINE ULONG IApplicationAssociationRegistration_Release(IApplicationAssociationRegistration* This) {
27885     return This->lpVtbl->Release(This);
27886 }
27887 /*** IApplicationAssociationRegistration methods ***/
27888 static FORCEINLINE HRESULT IApplicationAssociationRegistration_QueryCurrentDefault(IApplicationAssociationRegistration* This,LPCWSTR pszQuery,ASSOCIATIONTYPE atQueryType,ASSOCIATIONLEVEL alQueryLevel,LPWSTR *ppszAssociation) {
27889     return This->lpVtbl->QueryCurrentDefault(This,pszQuery,atQueryType,alQueryLevel,ppszAssociation);
27890 }
27891 static FORCEINLINE HRESULT IApplicationAssociationRegistration_QueryAppIsDefault(IApplicationAssociationRegistration* This,LPCWSTR pszQuery,ASSOCIATIONTYPE atQueryType,ASSOCIATIONLEVEL alQueryLevel,LPCWSTR pszAppRegistryName,WINBOOL *pfDefault) {
27892     return This->lpVtbl->QueryAppIsDefault(This,pszQuery,atQueryType,alQueryLevel,pszAppRegistryName,pfDefault);
27893 }
27894 static FORCEINLINE HRESULT IApplicationAssociationRegistration_QueryAppIsDefaultAll(IApplicationAssociationRegistration* This,ASSOCIATIONLEVEL alQueryLevel,LPCWSTR pszAppRegistryName,WINBOOL *pfDefault) {
27895     return This->lpVtbl->QueryAppIsDefaultAll(This,alQueryLevel,pszAppRegistryName,pfDefault);
27896 }
27897 static FORCEINLINE HRESULT IApplicationAssociationRegistration_SetAppAsDefault(IApplicationAssociationRegistration* This,LPCWSTR pszAppRegistryName,LPCWSTR pszSet,ASSOCIATIONTYPE atSetType) {
27898     return This->lpVtbl->SetAppAsDefault(This,pszAppRegistryName,pszSet,atSetType);
27899 }
27900 static FORCEINLINE HRESULT IApplicationAssociationRegistration_SetAppAsDefaultAll(IApplicationAssociationRegistration* This,LPCWSTR pszAppRegistryName) {
27901     return This->lpVtbl->SetAppAsDefaultAll(This,pszAppRegistryName);
27902 }
27903 static FORCEINLINE HRESULT IApplicationAssociationRegistration_ClearUserAssociations(IApplicationAssociationRegistration* This) {
27904     return This->lpVtbl->ClearUserAssociations(This);
27905 }
27906 #endif
27907 #endif
27908 
27909 #endif
27910 
27911 HRESULT STDMETHODCALLTYPE IApplicationAssociationRegistration_QueryCurrentDefault_Proxy(
27912     IApplicationAssociationRegistration* This,
27913     LPCWSTR pszQuery,
27914     ASSOCIATIONTYPE atQueryType,
27915     ASSOCIATIONLEVEL alQueryLevel,
27916     LPWSTR *ppszAssociation);
27917 void __RPC_STUB IApplicationAssociationRegistration_QueryCurrentDefault_Stub(
27918     IRpcStubBuffer* This,
27919     IRpcChannelBuffer* pRpcChannelBuffer,
27920     PRPC_MESSAGE pRpcMessage,
27921     DWORD* pdwStubPhase);
27922 HRESULT STDMETHODCALLTYPE IApplicationAssociationRegistration_QueryAppIsDefault_Proxy(
27923     IApplicationAssociationRegistration* This,
27924     LPCWSTR pszQuery,
27925     ASSOCIATIONTYPE atQueryType,
27926     ASSOCIATIONLEVEL alQueryLevel,
27927     LPCWSTR pszAppRegistryName,
27928     WINBOOL *pfDefault);
27929 void __RPC_STUB IApplicationAssociationRegistration_QueryAppIsDefault_Stub(
27930     IRpcStubBuffer* This,
27931     IRpcChannelBuffer* pRpcChannelBuffer,
27932     PRPC_MESSAGE pRpcMessage,
27933     DWORD* pdwStubPhase);
27934 HRESULT STDMETHODCALLTYPE IApplicationAssociationRegistration_QueryAppIsDefaultAll_Proxy(
27935     IApplicationAssociationRegistration* This,
27936     ASSOCIATIONLEVEL alQueryLevel,
27937     LPCWSTR pszAppRegistryName,
27938     WINBOOL *pfDefault);
27939 void __RPC_STUB IApplicationAssociationRegistration_QueryAppIsDefaultAll_Stub(
27940     IRpcStubBuffer* This,
27941     IRpcChannelBuffer* pRpcChannelBuffer,
27942     PRPC_MESSAGE pRpcMessage,
27943     DWORD* pdwStubPhase);
27944 HRESULT STDMETHODCALLTYPE IApplicationAssociationRegistration_SetAppAsDefault_Proxy(
27945     IApplicationAssociationRegistration* This,
27946     LPCWSTR pszAppRegistryName,
27947     LPCWSTR pszSet,
27948     ASSOCIATIONTYPE atSetType);
27949 void __RPC_STUB IApplicationAssociationRegistration_SetAppAsDefault_Stub(
27950     IRpcStubBuffer* This,
27951     IRpcChannelBuffer* pRpcChannelBuffer,
27952     PRPC_MESSAGE pRpcMessage,
27953     DWORD* pdwStubPhase);
27954 HRESULT STDMETHODCALLTYPE IApplicationAssociationRegistration_SetAppAsDefaultAll_Proxy(
27955     IApplicationAssociationRegistration* This,
27956     LPCWSTR pszAppRegistryName);
27957 void __RPC_STUB IApplicationAssociationRegistration_SetAppAsDefaultAll_Stub(
27958     IRpcStubBuffer* This,
27959     IRpcChannelBuffer* pRpcChannelBuffer,
27960     PRPC_MESSAGE pRpcMessage,
27961     DWORD* pdwStubPhase);
27962 HRESULT STDMETHODCALLTYPE IApplicationAssociationRegistration_ClearUserAssociations_Proxy(
27963     IApplicationAssociationRegistration* This);
27964 void __RPC_STUB IApplicationAssociationRegistration_ClearUserAssociations_Stub(
27965     IRpcStubBuffer* This,
27966     IRpcChannelBuffer* pRpcChannelBuffer,
27967     PRPC_MESSAGE pRpcMessage,
27968     DWORD* pdwStubPhase);
27969 
27970 #endif  /* __IApplicationAssociationRegistration_INTERFACE_DEFINED__ */
27971 
27972 
27973 SHSTDAPI SHCreateAssociationRegistration(REFIID riid, void **ppv);
27974 
27975 /*****************************************************************************
27976  * IApplicationAssociationRegistrationUI interface
27977  */
27978 #ifndef __IApplicationAssociationRegistrationUI_INTERFACE_DEFINED__
27979 #define __IApplicationAssociationRegistrationUI_INTERFACE_DEFINED__
27980 
27981 DEFINE_GUID(IID_IApplicationAssociationRegistrationUI, 0x1f76a169, 0xf994, 0x40ac, 0x8f,0xc8, 0x09,0x59,0xe8,0x87,0x47,0x10);
27982 #if defined(__cplusplus) && !defined(CINTERFACE)
27983 MIDL_INTERFACE("1f76a169-f994-40ac-8fc8-0959e8874710")
27984 IApplicationAssociationRegistrationUI : public IUnknown
27985 {
27986     virtual HRESULT STDMETHODCALLTYPE LaunchAdvancedAssociationUI(
27987         LPCWSTR pszAppRegistryName) = 0;
27988 
27989 };
27990 #ifdef __CRT_UUID_DECL
27991 __CRT_UUID_DECL(IApplicationAssociationRegistrationUI, 0x1f76a169, 0xf994, 0x40ac, 0x8f,0xc8, 0x09,0x59,0xe8,0x87,0x47,0x10)
27992 #endif
27993 #else
27994 typedef struct IApplicationAssociationRegistrationUIVtbl {
27995     BEGIN_INTERFACE
27996 
27997     /*** IUnknown methods ***/
27998     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
27999         IApplicationAssociationRegistrationUI* This,
28000         REFIID riid,
28001         void **ppvObject);
28002 
28003     ULONG (STDMETHODCALLTYPE *AddRef)(
28004         IApplicationAssociationRegistrationUI* This);
28005 
28006     ULONG (STDMETHODCALLTYPE *Release)(
28007         IApplicationAssociationRegistrationUI* This);
28008 
28009     /*** IApplicationAssociationRegistrationUI methods ***/
28010     HRESULT (STDMETHODCALLTYPE *LaunchAdvancedAssociationUI)(
28011         IApplicationAssociationRegistrationUI* This,
28012         LPCWSTR pszAppRegistryName);
28013 
28014     END_INTERFACE
28015 } IApplicationAssociationRegistrationUIVtbl;
28016 interface IApplicationAssociationRegistrationUI {
28017     CONST_VTBL IApplicationAssociationRegistrationUIVtbl* lpVtbl;
28018 };
28019 
28020 #ifdef COBJMACROS
28021 #ifndef WIDL_C_INLINE_WRAPPERS
28022 /*** IUnknown methods ***/
28023 #define IApplicationAssociationRegistrationUI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
28024 #define IApplicationAssociationRegistrationUI_AddRef(This) (This)->lpVtbl->AddRef(This)
28025 #define IApplicationAssociationRegistrationUI_Release(This) (This)->lpVtbl->Release(This)
28026 /*** IApplicationAssociationRegistrationUI methods ***/
28027 #define IApplicationAssociationRegistrationUI_LaunchAdvancedAssociationUI(This,pszAppRegistryName) (This)->lpVtbl->LaunchAdvancedAssociationUI(This,pszAppRegistryName)
28028 #else
28029 /*** IUnknown methods ***/
28030 static FORCEINLINE HRESULT IApplicationAssociationRegistrationUI_QueryInterface(IApplicationAssociationRegistrationUI* This,REFIID riid,void **ppvObject) {
28031     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
28032 }
28033 static FORCEINLINE ULONG IApplicationAssociationRegistrationUI_AddRef(IApplicationAssociationRegistrationUI* This) {
28034     return This->lpVtbl->AddRef(This);
28035 }
28036 static FORCEINLINE ULONG IApplicationAssociationRegistrationUI_Release(IApplicationAssociationRegistrationUI* This) {
28037     return This->lpVtbl->Release(This);
28038 }
28039 /*** IApplicationAssociationRegistrationUI methods ***/
28040 static FORCEINLINE HRESULT IApplicationAssociationRegistrationUI_LaunchAdvancedAssociationUI(IApplicationAssociationRegistrationUI* This,LPCWSTR pszAppRegistryName) {
28041     return This->lpVtbl->LaunchAdvancedAssociationUI(This,pszAppRegistryName);
28042 }
28043 #endif
28044 #endif
28045 
28046 #endif
28047 
28048 HRESULT STDMETHODCALLTYPE IApplicationAssociationRegistrationUI_LaunchAdvancedAssociationUI_Proxy(
28049     IApplicationAssociationRegistrationUI* This,
28050     LPCWSTR pszAppRegistryName);
28051 void __RPC_STUB IApplicationAssociationRegistrationUI_LaunchAdvancedAssociationUI_Stub(
28052     IRpcStubBuffer* This,
28053     IRpcChannelBuffer* pRpcChannelBuffer,
28054     PRPC_MESSAGE pRpcMessage,
28055     DWORD* pdwStubPhase);
28056 
28057 #endif  /* __IApplicationAssociationRegistrationUI_INTERFACE_DEFINED__ */
28058 
28059 #endif
28060 
28061 #include <pshpack1.h>
28062 typedef struct DELEGATEITEMID {
28063     WORD cbSize;
28064     WORD wOuter;
28065     WORD cbInner;
28066     BYTE rgb[1];
28067 } DELEGATEITEMID;
28068 #include <poppack.h>
28069 
28070 typedef const UNALIGNED DELEGATEITEMID *PCDELEGATEITEMID;
28071 typedef UNALIGNED DELEGATEITEMID *PDELEGATEITEMID;
28072 
28073 /*****************************************************************************
28074  * IDelegateFolder interface
28075  */
28076 #ifndef __IDelegateFolder_INTERFACE_DEFINED__
28077 #define __IDelegateFolder_INTERFACE_DEFINED__
28078 
28079 DEFINE_GUID(IID_IDelegateFolder, 0xadd8ba80, 0x002b, 0x11d0, 0x8f,0x0f, 0x00,0xc0,0x4f,0xd7,0xd0,0x62);
28080 #if defined(__cplusplus) && !defined(CINTERFACE)
28081 MIDL_INTERFACE("add8ba80-002b-11d0-8f0f-00c04fd7d062")
28082 IDelegateFolder : public IUnknown
28083 {
28084     virtual HRESULT STDMETHODCALLTYPE SetItemAlloc(
28085         IMalloc *pmalloc) = 0;
28086 
28087 };
28088 #ifdef __CRT_UUID_DECL
28089 __CRT_UUID_DECL(IDelegateFolder, 0xadd8ba80, 0x002b, 0x11d0, 0x8f,0x0f, 0x00,0xc0,0x4f,0xd7,0xd0,0x62)
28090 #endif
28091 #else
28092 typedef struct IDelegateFolderVtbl {
28093     BEGIN_INTERFACE
28094 
28095     /*** IUnknown methods ***/
28096     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
28097         IDelegateFolder* This,
28098         REFIID riid,
28099         void **ppvObject);
28100 
28101     ULONG (STDMETHODCALLTYPE *AddRef)(
28102         IDelegateFolder* This);
28103 
28104     ULONG (STDMETHODCALLTYPE *Release)(
28105         IDelegateFolder* This);
28106 
28107     /*** IDelegateFolder methods ***/
28108     HRESULT (STDMETHODCALLTYPE *SetItemAlloc)(
28109         IDelegateFolder* This,
28110         IMalloc *pmalloc);
28111 
28112     END_INTERFACE
28113 } IDelegateFolderVtbl;
28114 interface IDelegateFolder {
28115     CONST_VTBL IDelegateFolderVtbl* lpVtbl;
28116 };
28117 
28118 #ifdef COBJMACROS
28119 #ifndef WIDL_C_INLINE_WRAPPERS
28120 /*** IUnknown methods ***/
28121 #define IDelegateFolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
28122 #define IDelegateFolder_AddRef(This) (This)->lpVtbl->AddRef(This)
28123 #define IDelegateFolder_Release(This) (This)->lpVtbl->Release(This)
28124 /*** IDelegateFolder methods ***/
28125 #define IDelegateFolder_SetItemAlloc(This,pmalloc) (This)->lpVtbl->SetItemAlloc(This,pmalloc)
28126 #else
28127 /*** IUnknown methods ***/
28128 static FORCEINLINE HRESULT IDelegateFolder_QueryInterface(IDelegateFolder* This,REFIID riid,void **ppvObject) {
28129     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
28130 }
28131 static FORCEINLINE ULONG IDelegateFolder_AddRef(IDelegateFolder* This) {
28132     return This->lpVtbl->AddRef(This);
28133 }
28134 static FORCEINLINE ULONG IDelegateFolder_Release(IDelegateFolder* This) {
28135     return This->lpVtbl->Release(This);
28136 }
28137 /*** IDelegateFolder methods ***/
28138 static FORCEINLINE HRESULT IDelegateFolder_SetItemAlloc(IDelegateFolder* This,IMalloc *pmalloc) {
28139     return This->lpVtbl->SetItemAlloc(This,pmalloc);
28140 }
28141 #endif
28142 #endif
28143 
28144 #endif
28145 
28146 HRESULT STDMETHODCALLTYPE IDelegateFolder_SetItemAlloc_Proxy(
28147     IDelegateFolder* This,
28148     IMalloc *pmalloc);
28149 void __RPC_STUB IDelegateFolder_SetItemAlloc_Stub(
28150     IRpcStubBuffer* This,
28151     IRpcChannelBuffer* pRpcChannelBuffer,
28152     PRPC_MESSAGE pRpcMessage,
28153     DWORD* pdwStubPhase);
28154 
28155 #endif  /* __IDelegateFolder_INTERFACE_DEFINED__ */
28156 
28157 
28158 #if _WIN32_IE >= _WIN32_IE_IE60
28159 /*****************************************************************************
28160  * IBrowserFrameOptions interface
28161  */
28162 #ifndef __IBrowserFrameOptions_INTERFACE_DEFINED__
28163 #define __IBrowserFrameOptions_INTERFACE_DEFINED__
28164 
28165 typedef IBrowserFrameOptions *LPBROWSERFRAMEOPTIONS;
28166 
28167 enum _BROWSERFRAMEOPTIONS {
28168     BFO_NONE = 0x0,
28169     BFO_BROWSER_PERSIST_SETTINGS = 0x1,
28170     BFO_RENAME_FOLDER_OPTIONS_TOINTERNET = 0x2,
28171     BFO_BOTH_OPTIONS = 0x4,
28172     BIF_PREFER_INTERNET_SHORTCUT = 0x8,
28173     BFO_BROWSE_NO_IN_NEW_PROCESS = 0x10,
28174     BFO_ENABLE_HYPERLINK_TRACKING = 0x20,
28175     BFO_USE_IE_OFFLINE_SUPPORT = 0x40,
28176     BFO_SUBSTITUE_INTERNET_START_PAGE = 0x80,
28177     BFO_USE_IE_LOGOBANDING = 0x100,
28178     BFO_ADD_IE_TOCAPTIONBAR = 0x200,
28179     BFO_USE_DIALUP_REF = 0x400,
28180     BFO_USE_IE_TOOLBAR = 0x800,
28181     BFO_NO_PARENT_FOLDER_SUPPORT = 0x1000,
28182     BFO_NO_REOPEN_NEXT_RESTART = 0x2000,
28183     BFO_GO_HOME_PAGE = 0x4000,
28184     BFO_PREFER_IEPROCESS = 0x8000,
28185     BFO_SHOW_NAVIGATION_CANCELLED = 0x10000,
28186     BFO_USE_IE_STATUSBAR = 0x20000,
28187     BFO_QUERY_ALL = (int)0xffffffff
28188 };
28189 
28190 
28191 typedef DWORD BROWSERFRAMEOPTIONS;
28192 
28193 DEFINE_GUID(IID_IBrowserFrameOptions, 0x10df43c8, 0x1dbe, 0x11d3, 0x8b,0x34, 0x00,0x60,0x97,0xdf,0x5b,0xd4);
28194 #if defined(__cplusplus) && !defined(CINTERFACE)
28195 MIDL_INTERFACE("10df43c8-1dbe-11d3-8b34-006097df5bd4")
28196 IBrowserFrameOptions : public IUnknown
28197 {
28198     virtual HRESULT STDMETHODCALLTYPE GetFrameOptions(
28199         BROWSERFRAMEOPTIONS dwMask,
28200         BROWSERFRAMEOPTIONS *pdwOptions) = 0;
28201 
28202 };
28203 #ifdef __CRT_UUID_DECL
28204 __CRT_UUID_DECL(IBrowserFrameOptions, 0x10df43c8, 0x1dbe, 0x11d3, 0x8b,0x34, 0x00,0x60,0x97,0xdf,0x5b,0xd4)
28205 #endif
28206 #else
28207 typedef struct IBrowserFrameOptionsVtbl {
28208     BEGIN_INTERFACE
28209 
28210     /*** IUnknown methods ***/
28211     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
28212         IBrowserFrameOptions* This,
28213         REFIID riid,
28214         void **ppvObject);
28215 
28216     ULONG (STDMETHODCALLTYPE *AddRef)(
28217         IBrowserFrameOptions* This);
28218 
28219     ULONG (STDMETHODCALLTYPE *Release)(
28220         IBrowserFrameOptions* This);
28221 
28222     /*** IBrowserFrameOptions methods ***/
28223     HRESULT (STDMETHODCALLTYPE *GetFrameOptions)(
28224         IBrowserFrameOptions* This,
28225         BROWSERFRAMEOPTIONS dwMask,
28226         BROWSERFRAMEOPTIONS *pdwOptions);
28227 
28228     END_INTERFACE
28229 } IBrowserFrameOptionsVtbl;
28230 interface IBrowserFrameOptions {
28231     CONST_VTBL IBrowserFrameOptionsVtbl* lpVtbl;
28232 };
28233 
28234 #ifdef COBJMACROS
28235 #ifndef WIDL_C_INLINE_WRAPPERS
28236 /*** IUnknown methods ***/
28237 #define IBrowserFrameOptions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
28238 #define IBrowserFrameOptions_AddRef(This) (This)->lpVtbl->AddRef(This)
28239 #define IBrowserFrameOptions_Release(This) (This)->lpVtbl->Release(This)
28240 /*** IBrowserFrameOptions methods ***/
28241 #define IBrowserFrameOptions_GetFrameOptions(This,dwMask,pdwOptions) (This)->lpVtbl->GetFrameOptions(This,dwMask,pdwOptions)
28242 #else
28243 /*** IUnknown methods ***/
28244 static FORCEINLINE HRESULT IBrowserFrameOptions_QueryInterface(IBrowserFrameOptions* This,REFIID riid,void **ppvObject) {
28245     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
28246 }
28247 static FORCEINLINE ULONG IBrowserFrameOptions_AddRef(IBrowserFrameOptions* This) {
28248     return This->lpVtbl->AddRef(This);
28249 }
28250 static FORCEINLINE ULONG IBrowserFrameOptions_Release(IBrowserFrameOptions* This) {
28251     return This->lpVtbl->Release(This);
28252 }
28253 /*** IBrowserFrameOptions methods ***/
28254 static FORCEINLINE HRESULT IBrowserFrameOptions_GetFrameOptions(IBrowserFrameOptions* This,BROWSERFRAMEOPTIONS dwMask,BROWSERFRAMEOPTIONS *pdwOptions) {
28255     return This->lpVtbl->GetFrameOptions(This,dwMask,pdwOptions);
28256 }
28257 #endif
28258 #endif
28259 
28260 #endif
28261 
28262 HRESULT STDMETHODCALLTYPE IBrowserFrameOptions_GetFrameOptions_Proxy(
28263     IBrowserFrameOptions* This,
28264     BROWSERFRAMEOPTIONS dwMask,
28265     BROWSERFRAMEOPTIONS *pdwOptions);
28266 void __RPC_STUB IBrowserFrameOptions_GetFrameOptions_Stub(
28267     IRpcStubBuffer* This,
28268     IRpcChannelBuffer* pRpcChannelBuffer,
28269     PRPC_MESSAGE pRpcMessage,
28270     DWORD* pdwStubPhase);
28271 
28272 #endif  /* __IBrowserFrameOptions_INTERFACE_DEFINED__ */
28273 
28274 #endif
28275 
28276 #if _WIN32_IE >= _WIN32_IE_IE60SP2
28277 typedef enum NWMF {
28278     NWMF_UNLOADING = 0x1,
28279     NWMF_USERINITED = 0x2,
28280     NWMF_FIRST = 0x4,
28281     NWMF_OVERRIDEKEY = 0x8,
28282     NWMF_SHOWHELP = 0x10,
28283     NWMF_HTMLDIALOG = 0x20,
28284     NWMF_FROMDIALOGCHILD = 0x40,
28285     NWMF_USERREQUESTED = 0x80,
28286     NWMF_USERALLOWED = 0x100,
28287     NWMF_FORCEWINDOW = 0x10000,
28288     NWMF_FORCETAB = 0x20000,
28289     NWMF_SUGGESTWINDOW = 0x40000,
28290     NWMF_SUGGESTTAB = 0x80000,
28291     NWMF_INACTIVETAB = 0x100000
28292 } NWMF;
28293 
28294 DEFINE_ENUM_FLAG_OPERATORS(NWMF)
28295 
28296 #define SID_SNewWindowManager IID_INewWindowManager
28297 
28298 /*****************************************************************************
28299  * INewWindowManager interface
28300  */
28301 #ifndef __INewWindowManager_INTERFACE_DEFINED__
28302 #define __INewWindowManager_INTERFACE_DEFINED__
28303 
28304 DEFINE_GUID(IID_INewWindowManager, 0xd2bc4c84, 0x3f72, 0x4a52, 0xa6,0x04, 0x7b,0xcb,0xf3,0x98,0x2c,0xbb);
28305 #if defined(__cplusplus) && !defined(CINTERFACE)
28306 MIDL_INTERFACE("d2bc4c84-3f72-4a52-a604-7bcbf3982cbb")
28307 INewWindowManager : public IUnknown
28308 {
28309     virtual HRESULT STDMETHODCALLTYPE EvaluateNewWindow(
28310         LPCWSTR pszUrl,
28311         LPCWSTR pszName,
28312         LPCWSTR pszUrlContext,
28313         LPCWSTR pszFeatures,
28314         WINBOOL fReplace,
28315         DWORD dwFlags,
28316         DWORD dwUserActionTime) = 0;
28317 
28318 };
28319 #ifdef __CRT_UUID_DECL
28320 __CRT_UUID_DECL(INewWindowManager, 0xd2bc4c84, 0x3f72, 0x4a52, 0xa6,0x04, 0x7b,0xcb,0xf3,0x98,0x2c,0xbb)
28321 #endif
28322 #else
28323 typedef struct INewWindowManagerVtbl {
28324     BEGIN_INTERFACE
28325 
28326     /*** IUnknown methods ***/
28327     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
28328         INewWindowManager* This,
28329         REFIID riid,
28330         void **ppvObject);
28331 
28332     ULONG (STDMETHODCALLTYPE *AddRef)(
28333         INewWindowManager* This);
28334 
28335     ULONG (STDMETHODCALLTYPE *Release)(
28336         INewWindowManager* This);
28337 
28338     /*** INewWindowManager methods ***/
28339     HRESULT (STDMETHODCALLTYPE *EvaluateNewWindow)(
28340         INewWindowManager* This,
28341         LPCWSTR pszUrl,
28342         LPCWSTR pszName,
28343         LPCWSTR pszUrlContext,
28344         LPCWSTR pszFeatures,
28345         WINBOOL fReplace,
28346         DWORD dwFlags,
28347         DWORD dwUserActionTime);
28348 
28349     END_INTERFACE
28350 } INewWindowManagerVtbl;
28351 interface INewWindowManager {
28352     CONST_VTBL INewWindowManagerVtbl* lpVtbl;
28353 };
28354 
28355 #ifdef COBJMACROS
28356 #ifndef WIDL_C_INLINE_WRAPPERS
28357 /*** IUnknown methods ***/
28358 #define INewWindowManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
28359 #define INewWindowManager_AddRef(This) (This)->lpVtbl->AddRef(This)
28360 #define INewWindowManager_Release(This) (This)->lpVtbl->Release(This)
28361 /*** INewWindowManager methods ***/
28362 #define INewWindowManager_EvaluateNewWindow(This,pszUrl,pszName,pszUrlContext,pszFeatures,fReplace,dwFlags,dwUserActionTime) (This)->lpVtbl->EvaluateNewWindow(This,pszUrl,pszName,pszUrlContext,pszFeatures,fReplace,dwFlags,dwUserActionTime)
28363 #else
28364 /*** IUnknown methods ***/
28365 static FORCEINLINE HRESULT INewWindowManager_QueryInterface(INewWindowManager* This,REFIID riid,void **ppvObject) {
28366     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
28367 }
28368 static FORCEINLINE ULONG INewWindowManager_AddRef(INewWindowManager* This) {
28369     return This->lpVtbl->AddRef(This);
28370 }
28371 static FORCEINLINE ULONG INewWindowManager_Release(INewWindowManager* This) {
28372     return This->lpVtbl->Release(This);
28373 }
28374 /*** INewWindowManager methods ***/
28375 static FORCEINLINE HRESULT INewWindowManager_EvaluateNewWindow(INewWindowManager* This,LPCWSTR pszUrl,LPCWSTR pszName,LPCWSTR pszUrlContext,LPCWSTR pszFeatures,WINBOOL fReplace,DWORD dwFlags,DWORD dwUserActionTime) {
28376     return This->lpVtbl->EvaluateNewWindow(This,pszUrl,pszName,pszUrlContext,pszFeatures,fReplace,dwFlags,dwUserActionTime);
28377 }
28378 #endif
28379 #endif
28380 
28381 #endif
28382 
28383 HRESULT STDMETHODCALLTYPE INewWindowManager_EvaluateNewWindow_Proxy(
28384     INewWindowManager* This,
28385     LPCWSTR pszUrl,
28386     LPCWSTR pszName,
28387     LPCWSTR pszUrlContext,
28388     LPCWSTR pszFeatures,
28389     WINBOOL fReplace,
28390     DWORD dwFlags,
28391     DWORD dwUserActionTime);
28392 void __RPC_STUB INewWindowManager_EvaluateNewWindow_Stub(
28393     IRpcStubBuffer* This,
28394     IRpcChannelBuffer* pRpcChannelBuffer,
28395     PRPC_MESSAGE pRpcMessage,
28396     DWORD* pdwStubPhase);
28397 
28398 #endif  /* __INewWindowManager_INTERFACE_DEFINED__ */
28399 
28400 
28401 /*****************************************************************************
28402  * IAttachmentExecute interface
28403  */
28404 #ifndef __IAttachmentExecute_INTERFACE_DEFINED__
28405 #define __IAttachmentExecute_INTERFACE_DEFINED__
28406 
28407 typedef enum ATTACHMENT_PROMPT {
28408     ATTACHMENT_PROMPT_NONE = 0x0,
28409     ATTACHMENT_PROMPT_SAVE = 0x1,
28410     ATTACHMENT_PROMPT_EXEC = 0x2,
28411     ATTACHMENT_PROMPT_EXEC_OR_SAVE = 0x3
28412 } ATTACHMENT_PROMPT;
28413 
28414 typedef enum ATTACHMENT_ACTION {
28415     ATTACHMENT_ACTION_CANCEL = 0x0,
28416     ATTACHMENT_ACTION_SAVE = 0x1,
28417     ATTACHMENT_ACTION_EXEC = 0x2
28418 } ATTACHMENT_ACTION;
28419 
28420 DEFINE_GUID(IID_IAttachmentExecute, 0x73db1241, 0x1e85, 0x4581, 0x8e,0x4f, 0xa8,0x1e,0x1d,0x0f,0x8c,0x57);
28421 #if defined(__cplusplus) && !defined(CINTERFACE)
28422 MIDL_INTERFACE("73db1241-1e85-4581-8e4f-a81e1d0f8c57")
28423 IAttachmentExecute : public IUnknown
28424 {
28425     virtual HRESULT STDMETHODCALLTYPE SetClientTitle(
28426         LPCWSTR pszTitle) = 0;
28427 
28428     virtual HRESULT STDMETHODCALLTYPE SetClientGuid(
28429         REFGUID guid) = 0;
28430 
28431     virtual HRESULT STDMETHODCALLTYPE SetLocalPath(
28432         LPCWSTR pszLocalPath) = 0;
28433 
28434     virtual HRESULT STDMETHODCALLTYPE SetFileName(
28435         LPCWSTR pszFileName) = 0;
28436 
28437     virtual HRESULT STDMETHODCALLTYPE SetSource(
28438         LPCWSTR pszSource) = 0;
28439 
28440     virtual HRESULT STDMETHODCALLTYPE SetReferrer(
28441         LPCWSTR pszReferrer) = 0;
28442 
28443     virtual HRESULT STDMETHODCALLTYPE CheckPolicy(
28444         ) = 0;
28445 
28446     virtual HRESULT STDMETHODCALLTYPE Prompt(
28447         HWND hwnd,
28448         ATTACHMENT_PROMPT prompt,
28449         ATTACHMENT_ACTION *paction) = 0;
28450 
28451     virtual HRESULT STDMETHODCALLTYPE Save(
28452         ) = 0;
28453 
28454     virtual HRESULT STDMETHODCALLTYPE Execute(
28455         HWND hwnd,
28456         LPCWSTR pszVerb,
28457         HANDLE *phProcess) = 0;
28458 
28459     virtual HRESULT STDMETHODCALLTYPE SaveWithUI(
28460         HWND hwnd) = 0;
28461 
28462     virtual HRESULT STDMETHODCALLTYPE ClearClientState(
28463         ) = 0;
28464 
28465 };
28466 #ifdef __CRT_UUID_DECL
28467 __CRT_UUID_DECL(IAttachmentExecute, 0x73db1241, 0x1e85, 0x4581, 0x8e,0x4f, 0xa8,0x1e,0x1d,0x0f,0x8c,0x57)
28468 #endif
28469 #else
28470 typedef struct IAttachmentExecuteVtbl {
28471     BEGIN_INTERFACE
28472 
28473     /*** IUnknown methods ***/
28474     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
28475         IAttachmentExecute* This,
28476         REFIID riid,
28477         void **ppvObject);
28478 
28479     ULONG (STDMETHODCALLTYPE *AddRef)(
28480         IAttachmentExecute* This);
28481 
28482     ULONG (STDMETHODCALLTYPE *Release)(
28483         IAttachmentExecute* This);
28484 
28485     /*** IAttachmentExecute methods ***/
28486     HRESULT (STDMETHODCALLTYPE *SetClientTitle)(
28487         IAttachmentExecute* This,
28488         LPCWSTR pszTitle);
28489 
28490     HRESULT (STDMETHODCALLTYPE *SetClientGuid)(
28491         IAttachmentExecute* This,
28492         REFGUID guid);
28493 
28494     HRESULT (STDMETHODCALLTYPE *SetLocalPath)(
28495         IAttachmentExecute* This,
28496         LPCWSTR pszLocalPath);
28497 
28498     HRESULT (STDMETHODCALLTYPE *SetFileName)(
28499         IAttachmentExecute* This,
28500         LPCWSTR pszFileName);
28501 
28502     HRESULT (STDMETHODCALLTYPE *SetSource)(
28503         IAttachmentExecute* This,
28504         LPCWSTR pszSource);
28505 
28506     HRESULT (STDMETHODCALLTYPE *SetReferrer)(
28507         IAttachmentExecute* This,
28508         LPCWSTR pszReferrer);
28509 
28510     HRESULT (STDMETHODCALLTYPE *CheckPolicy)(
28511         IAttachmentExecute* This);
28512 
28513     HRESULT (STDMETHODCALLTYPE *Prompt)(
28514         IAttachmentExecute* This,
28515         HWND hwnd,
28516         ATTACHMENT_PROMPT prompt,
28517         ATTACHMENT_ACTION *paction);
28518 
28519     HRESULT (STDMETHODCALLTYPE *Save)(
28520         IAttachmentExecute* This);
28521 
28522     HRESULT (STDMETHODCALLTYPE *Execute)(
28523         IAttachmentExecute* This,
28524         HWND hwnd,
28525         LPCWSTR pszVerb,
28526         HANDLE *phProcess);
28527 
28528     HRESULT (STDMETHODCALLTYPE *SaveWithUI)(
28529         IAttachmentExecute* This,
28530         HWND hwnd);
28531 
28532     HRESULT (STDMETHODCALLTYPE *ClearClientState)(
28533         IAttachmentExecute* This);
28534 
28535     END_INTERFACE
28536 } IAttachmentExecuteVtbl;
28537 interface IAttachmentExecute {
28538     CONST_VTBL IAttachmentExecuteVtbl* lpVtbl;
28539 };
28540 
28541 #ifdef COBJMACROS
28542 #ifndef WIDL_C_INLINE_WRAPPERS
28543 /*** IUnknown methods ***/
28544 #define IAttachmentExecute_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
28545 #define IAttachmentExecute_AddRef(This) (This)->lpVtbl->AddRef(This)
28546 #define IAttachmentExecute_Release(This) (This)->lpVtbl->Release(This)
28547 /*** IAttachmentExecute methods ***/
28548 #define IAttachmentExecute_SetClientTitle(This,pszTitle) (This)->lpVtbl->SetClientTitle(This,pszTitle)
28549 #define IAttachmentExecute_SetClientGuid(This,guid) (This)->lpVtbl->SetClientGuid(This,guid)
28550 #define IAttachmentExecute_SetLocalPath(This,pszLocalPath) (This)->lpVtbl->SetLocalPath(This,pszLocalPath)
28551 #define IAttachmentExecute_SetFileName(This,pszFileName) (This)->lpVtbl->SetFileName(This,pszFileName)
28552 #define IAttachmentExecute_SetSource(This,pszSource) (This)->lpVtbl->SetSource(This,pszSource)
28553 #define IAttachmentExecute_SetReferrer(This,pszReferrer) (This)->lpVtbl->SetReferrer(This,pszReferrer)
28554 #define IAttachmentExecute_CheckPolicy(This) (This)->lpVtbl->CheckPolicy(This)
28555 #define IAttachmentExecute_Prompt(This,hwnd,prompt,paction) (This)->lpVtbl->Prompt(This,hwnd,prompt,paction)
28556 #define IAttachmentExecute_Save(This) (This)->lpVtbl->Save(This)
28557 #define IAttachmentExecute_Execute(This,hwnd,pszVerb,phProcess) (This)->lpVtbl->Execute(This,hwnd,pszVerb,phProcess)
28558 #define IAttachmentExecute_SaveWithUI(This,hwnd) (This)->lpVtbl->SaveWithUI(This,hwnd)
28559 #define IAttachmentExecute_ClearClientState(This) (This)->lpVtbl->ClearClientState(This)
28560 #else
28561 /*** IUnknown methods ***/
28562 static FORCEINLINE HRESULT IAttachmentExecute_QueryInterface(IAttachmentExecute* This,REFIID riid,void **ppvObject) {
28563     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
28564 }
28565 static FORCEINLINE ULONG IAttachmentExecute_AddRef(IAttachmentExecute* This) {
28566     return This->lpVtbl->AddRef(This);
28567 }
28568 static FORCEINLINE ULONG IAttachmentExecute_Release(IAttachmentExecute* This) {
28569     return This->lpVtbl->Release(This);
28570 }
28571 /*** IAttachmentExecute methods ***/
28572 static FORCEINLINE HRESULT IAttachmentExecute_SetClientTitle(IAttachmentExecute* This,LPCWSTR pszTitle) {
28573     return This->lpVtbl->SetClientTitle(This,pszTitle);
28574 }
28575 static FORCEINLINE HRESULT IAttachmentExecute_SetClientGuid(IAttachmentExecute* This,REFGUID guid) {
28576     return This->lpVtbl->SetClientGuid(This,guid);
28577 }
28578 static FORCEINLINE HRESULT IAttachmentExecute_SetLocalPath(IAttachmentExecute* This,LPCWSTR pszLocalPath) {
28579     return This->lpVtbl->SetLocalPath(This,pszLocalPath);
28580 }
28581 static FORCEINLINE HRESULT IAttachmentExecute_SetFileName(IAttachmentExecute* This,LPCWSTR pszFileName) {
28582     return This->lpVtbl->SetFileName(This,pszFileName);
28583 }
28584 static FORCEINLINE HRESULT IAttachmentExecute_SetSource(IAttachmentExecute* This,LPCWSTR pszSource) {
28585     return This->lpVtbl->SetSource(This,pszSource);
28586 }
28587 static FORCEINLINE HRESULT IAttachmentExecute_SetReferrer(IAttachmentExecute* This,LPCWSTR pszReferrer) {
28588     return This->lpVtbl->SetReferrer(This,pszReferrer);
28589 }
28590 static FORCEINLINE HRESULT IAttachmentExecute_CheckPolicy(IAttachmentExecute* This) {
28591     return This->lpVtbl->CheckPolicy(This);
28592 }
28593 static FORCEINLINE HRESULT IAttachmentExecute_Prompt(IAttachmentExecute* This,HWND hwnd,ATTACHMENT_PROMPT prompt,ATTACHMENT_ACTION *paction) {
28594     return This->lpVtbl->Prompt(This,hwnd,prompt,paction);
28595 }
28596 static FORCEINLINE HRESULT IAttachmentExecute_Save(IAttachmentExecute* This) {
28597     return This->lpVtbl->Save(This);
28598 }
28599 static FORCEINLINE HRESULT IAttachmentExecute_Execute(IAttachmentExecute* This,HWND hwnd,LPCWSTR pszVerb,HANDLE *phProcess) {
28600     return This->lpVtbl->Execute(This,hwnd,pszVerb,phProcess);
28601 }
28602 static FORCEINLINE HRESULT IAttachmentExecute_SaveWithUI(IAttachmentExecute* This,HWND hwnd) {
28603     return This->lpVtbl->SaveWithUI(This,hwnd);
28604 }
28605 static FORCEINLINE HRESULT IAttachmentExecute_ClearClientState(IAttachmentExecute* This) {
28606     return This->lpVtbl->ClearClientState(This);
28607 }
28608 #endif
28609 #endif
28610 
28611 #endif
28612 
28613 HRESULT STDMETHODCALLTYPE IAttachmentExecute_SetClientTitle_Proxy(
28614     IAttachmentExecute* This,
28615     LPCWSTR pszTitle);
28616 void __RPC_STUB IAttachmentExecute_SetClientTitle_Stub(
28617     IRpcStubBuffer* This,
28618     IRpcChannelBuffer* pRpcChannelBuffer,
28619     PRPC_MESSAGE pRpcMessage,
28620     DWORD* pdwStubPhase);
28621 HRESULT STDMETHODCALLTYPE IAttachmentExecute_SetClientGuid_Proxy(
28622     IAttachmentExecute* This,
28623     REFGUID guid);
28624 void __RPC_STUB IAttachmentExecute_SetClientGuid_Stub(
28625     IRpcStubBuffer* This,
28626     IRpcChannelBuffer* pRpcChannelBuffer,
28627     PRPC_MESSAGE pRpcMessage,
28628     DWORD* pdwStubPhase);
28629 HRESULT STDMETHODCALLTYPE IAttachmentExecute_SetLocalPath_Proxy(
28630     IAttachmentExecute* This,
28631     LPCWSTR pszLocalPath);
28632 void __RPC_STUB IAttachmentExecute_SetLocalPath_Stub(
28633     IRpcStubBuffer* This,
28634     IRpcChannelBuffer* pRpcChannelBuffer,
28635     PRPC_MESSAGE pRpcMessage,
28636     DWORD* pdwStubPhase);
28637 HRESULT STDMETHODCALLTYPE IAttachmentExecute_SetFileName_Proxy(
28638     IAttachmentExecute* This,
28639     LPCWSTR pszFileName);
28640 void __RPC_STUB IAttachmentExecute_SetFileName_Stub(
28641     IRpcStubBuffer* This,
28642     IRpcChannelBuffer* pRpcChannelBuffer,
28643     PRPC_MESSAGE pRpcMessage,
28644     DWORD* pdwStubPhase);
28645 HRESULT STDMETHODCALLTYPE IAttachmentExecute_SetSource_Proxy(
28646     IAttachmentExecute* This,
28647     LPCWSTR pszSource);
28648 void __RPC_STUB IAttachmentExecute_SetSource_Stub(
28649     IRpcStubBuffer* This,
28650     IRpcChannelBuffer* pRpcChannelBuffer,
28651     PRPC_MESSAGE pRpcMessage,
28652     DWORD* pdwStubPhase);
28653 HRESULT STDMETHODCALLTYPE IAttachmentExecute_SetReferrer_Proxy(
28654     IAttachmentExecute* This,
28655     LPCWSTR pszReferrer);
28656 void __RPC_STUB IAttachmentExecute_SetReferrer_Stub(
28657     IRpcStubBuffer* This,
28658     IRpcChannelBuffer* pRpcChannelBuffer,
28659     PRPC_MESSAGE pRpcMessage,
28660     DWORD* pdwStubPhase);
28661 HRESULT STDMETHODCALLTYPE IAttachmentExecute_CheckPolicy_Proxy(
28662     IAttachmentExecute* This);
28663 void __RPC_STUB IAttachmentExecute_CheckPolicy_Stub(
28664     IRpcStubBuffer* This,
28665     IRpcChannelBuffer* pRpcChannelBuffer,
28666     PRPC_MESSAGE pRpcMessage,
28667     DWORD* pdwStubPhase);
28668 HRESULT STDMETHODCALLTYPE IAttachmentExecute_Prompt_Proxy(
28669     IAttachmentExecute* This,
28670     HWND hwnd,
28671     ATTACHMENT_PROMPT prompt,
28672     ATTACHMENT_ACTION *paction);
28673 void __RPC_STUB IAttachmentExecute_Prompt_Stub(
28674     IRpcStubBuffer* This,
28675     IRpcChannelBuffer* pRpcChannelBuffer,
28676     PRPC_MESSAGE pRpcMessage,
28677     DWORD* pdwStubPhase);
28678 HRESULT STDMETHODCALLTYPE IAttachmentExecute_Save_Proxy(
28679     IAttachmentExecute* This);
28680 void __RPC_STUB IAttachmentExecute_Save_Stub(
28681     IRpcStubBuffer* This,
28682     IRpcChannelBuffer* pRpcChannelBuffer,
28683     PRPC_MESSAGE pRpcMessage,
28684     DWORD* pdwStubPhase);
28685 HRESULT STDMETHODCALLTYPE IAttachmentExecute_Execute_Proxy(
28686     IAttachmentExecute* This,
28687     HWND hwnd,
28688     LPCWSTR pszVerb,
28689     HANDLE *phProcess);
28690 void __RPC_STUB IAttachmentExecute_Execute_Stub(
28691     IRpcStubBuffer* This,
28692     IRpcChannelBuffer* pRpcChannelBuffer,
28693     PRPC_MESSAGE pRpcMessage,
28694     DWORD* pdwStubPhase);
28695 HRESULT STDMETHODCALLTYPE IAttachmentExecute_SaveWithUI_Proxy(
28696     IAttachmentExecute* This,
28697     HWND hwnd);
28698 void __RPC_STUB IAttachmentExecute_SaveWithUI_Stub(
28699     IRpcStubBuffer* This,
28700     IRpcChannelBuffer* pRpcChannelBuffer,
28701     PRPC_MESSAGE pRpcMessage,
28702     DWORD* pdwStubPhase);
28703 HRESULT STDMETHODCALLTYPE IAttachmentExecute_ClearClientState_Proxy(
28704     IAttachmentExecute* This);
28705 void __RPC_STUB IAttachmentExecute_ClearClientState_Stub(
28706     IRpcStubBuffer* This,
28707     IRpcChannelBuffer* pRpcChannelBuffer,
28708     PRPC_MESSAGE pRpcMessage,
28709     DWORD* pdwStubPhase);
28710 
28711 #endif  /* __IAttachmentExecute_INTERFACE_DEFINED__ */
28712 
28713 #endif
28714 
28715 #if _WIN32_IE >= _WIN32_IE_IE60
28716 
28717 #include <pshpack8.h>
28718 typedef struct tagSMDATA {
28719     DWORD dwMask;
28720     DWORD dwFlags;
28721     HMENU hmenu;
28722     HWND hwnd;
28723     UINT uId;
28724     UINT uIdParent;
28725     UINT uIdAncestor;
28726     IUnknown *punk;
28727     PIDLIST_ABSOLUTE pidlFolder;
28728     PUITEMID_CHILD pidlItem;
28729     IShellFolder *psf;
28730     void *pvUserData;
28731 } SMDATA;
28732 typedef struct tagSMDATA *LPSMDATA;
28733 
28734 #define SMDM_SHELLFOLDER 0x00000001
28735 #define SMDM_HMENU 0x00000002
28736 #define SMDM_TOOLBAR 0x00000004
28737 
28738 typedef struct tagSMINFO {
28739     DWORD dwMask;
28740     DWORD dwType;
28741     DWORD dwFlags;
28742     int iIcon;
28743 } SMINFO;
28744 typedef struct tagSMINFO *PSMINFO;
28745 
28746 typedef struct SHCSCHANGENOTIFYSTRUCT {
28747     LONG lEvent;
28748     PCIDLIST_ABSOLUTE pidl1;
28749     PCIDLIST_ABSOLUTE pidl2;
28750 } SMCSHCHANGENOTIFYSTRUCT;
28751 typedef struct SHCSCHANGENOTIFYSTRUCT *PSMCSHCHANGENOTIFYSTRUCT;
28752 #include <poppack.h>
28753 
28754 enum tagSMINFOMASK {
28755     SMIM_TYPE = 0x1,
28756     SMIM_FLAGS = 0x2,
28757     SMIM_ICON = 0x4
28758 };
28759 
28760 
28761 enum tagSMINFOTYPE {
28762     SMIT_SEPARATOR = 0x1,
28763     SMIT_STRING = 0x2
28764 };
28765 
28766 
28767 enum tagSMINFOFLAGS {
28768     SMIF_ICON = 0x1,
28769     SMIF_ACCELERATOR = 0x2,
28770     SMIF_DROPTARGET = 0x4,
28771     SMIF_SUBMENU = 0x8,
28772     SMIF_CHECKED = 0x20,
28773     SMIF_DROPCASCADE = 0x40,
28774     SMIF_HIDDEN = 0x80,
28775     SMIF_DISABLED = 0x100,
28776     SMIF_TRACKPOPUP = 0x200,
28777     SMIF_DEMOTED = 0x400,
28778     SMIF_ALTSTATE = 0x800,
28779     SMIF_DRAGNDROP = 0x1000,
28780     SMIF_NEW = 0x2000
28781 };
28782 
28783 
28784 #define SMC_INITMENU 0x00000001
28785 #define SMC_CREATE 0x00000002
28786 #define SMC_EXITMENU 0x00000003
28787 #define SMC_GETINFO 0x00000005
28788 #define SMC_GETSFINFO 0x00000006
28789 #define SMC_GETOBJECT 0x00000007
28790 #define SMC_GETSFOBJECT 0x00000008
28791 #define SMC_SFEXEC 0x00000009
28792 #define SMC_SFSELECTITEM 0x0000000A
28793 #define SMC_REFRESH 0x00000010
28794 #define SMC_DEMOTE 0x00000011
28795 #define SMC_PROMOTE 0x00000012
28796 #define SMC_DEFAULTICON 0x00000016
28797 #define SMC_NEWITEM 0x00000017
28798 #define SMC_CHEVRONEXPAND 0x00000019
28799 #define SMC_DISPLAYCHEVRONTIP 0x0000002A
28800 #define SMC_SETSFOBJECT 0x0000002D
28801 #define SMC_SHCHANGENOTIFY 0x0000002E
28802 #define SMC_CHEVRONGETTIP 0x0000002F
28803 #define SMC_SFDDRESTRICTED 0x00000030
28804 #if _WIN32_IE >= _WIN32_IE_IE70
28805 #define SMC_SFEXEC_MIDDLE 0x00000031
28806 #define SMC_GETAUTOEXPANDSTATE 0x00000041
28807 #define SMC_AUTOEXPANDCHANGE 0x00000042
28808 #define SMC_GETCONTEXTMENUMODIFIER 0x00000043
28809 #define SMC_GETBKCONTEXTMENU 0x00000044
28810 #define SMC_OPEN 0x00000045
28811 
28812 #define SMAE_EXPANDED 0x00000001
28813 #define SMAE_CONTRACTED 0x00000002
28814 
28815 #define SMAE_USER 0x00000004
28816 
28817 #define SMAE_VALID 0x00000007
28818 #endif
28819 
28820 /*****************************************************************************
28821  * IShellMenuCallback interface
28822  */
28823 #ifndef __IShellMenuCallback_INTERFACE_DEFINED__
28824 #define __IShellMenuCallback_INTERFACE_DEFINED__
28825 
28826 DEFINE_GUID(IID_IShellMenuCallback, 0x4ca300a1, 0x9b8d, 0x11d1, 0x8b,0x22, 0x00,0xc0,0x4f,0xd9,0x18,0xd0);
28827 #if defined(__cplusplus) && !defined(CINTERFACE)
28828 MIDL_INTERFACE("4ca300a1-9b8d-11d1-8b22-00c04fd918d0")
28829 IShellMenuCallback : public IUnknown
28830 {
28831     virtual HRESULT STDMETHODCALLTYPE CallbackSM(
28832         LPSMDATA psmd,
28833         UINT uMsg,
28834         WPARAM wParam,
28835         LPARAM lParam) = 0;
28836 
28837 };
28838 #ifdef __CRT_UUID_DECL
28839 __CRT_UUID_DECL(IShellMenuCallback, 0x4ca300a1, 0x9b8d, 0x11d1, 0x8b,0x22, 0x00,0xc0,0x4f,0xd9,0x18,0xd0)
28840 #endif
28841 #else
28842 typedef struct IShellMenuCallbackVtbl {
28843     BEGIN_INTERFACE
28844 
28845     /*** IUnknown methods ***/
28846     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
28847         IShellMenuCallback* This,
28848         REFIID riid,
28849         void **ppvObject);
28850 
28851     ULONG (STDMETHODCALLTYPE *AddRef)(
28852         IShellMenuCallback* This);
28853 
28854     ULONG (STDMETHODCALLTYPE *Release)(
28855         IShellMenuCallback* This);
28856 
28857     /*** IShellMenuCallback methods ***/
28858     HRESULT (STDMETHODCALLTYPE *CallbackSM)(
28859         IShellMenuCallback* This,
28860         LPSMDATA psmd,
28861         UINT uMsg,
28862         WPARAM wParam,
28863         LPARAM lParam);
28864 
28865     END_INTERFACE
28866 } IShellMenuCallbackVtbl;
28867 interface IShellMenuCallback {
28868     CONST_VTBL IShellMenuCallbackVtbl* lpVtbl;
28869 };
28870 
28871 #ifdef COBJMACROS
28872 #ifndef WIDL_C_INLINE_WRAPPERS
28873 /*** IUnknown methods ***/
28874 #define IShellMenuCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
28875 #define IShellMenuCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
28876 #define IShellMenuCallback_Release(This) (This)->lpVtbl->Release(This)
28877 /*** IShellMenuCallback methods ***/
28878 #define IShellMenuCallback_CallbackSM(This,psmd,uMsg,wParam,lParam) (This)->lpVtbl->CallbackSM(This,psmd,uMsg,wParam,lParam)
28879 #else
28880 /*** IUnknown methods ***/
28881 static FORCEINLINE HRESULT IShellMenuCallback_QueryInterface(IShellMenuCallback* This,REFIID riid,void **ppvObject) {
28882     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
28883 }
28884 static FORCEINLINE ULONG IShellMenuCallback_AddRef(IShellMenuCallback* This) {
28885     return This->lpVtbl->AddRef(This);
28886 }
28887 static FORCEINLINE ULONG IShellMenuCallback_Release(IShellMenuCallback* This) {
28888     return This->lpVtbl->Release(This);
28889 }
28890 /*** IShellMenuCallback methods ***/
28891 static FORCEINLINE HRESULT IShellMenuCallback_CallbackSM(IShellMenuCallback* This,LPSMDATA psmd,UINT uMsg,WPARAM wParam,LPARAM lParam) {
28892     return This->lpVtbl->CallbackSM(This,psmd,uMsg,wParam,lParam);
28893 }
28894 #endif
28895 #endif
28896 
28897 #endif
28898 
28899 HRESULT STDMETHODCALLTYPE IShellMenuCallback_CallbackSM_Proxy(
28900     IShellMenuCallback* This,
28901     LPSMDATA psmd,
28902     UINT uMsg,
28903     WPARAM wParam,
28904     LPARAM lParam);
28905 void __RPC_STUB IShellMenuCallback_CallbackSM_Stub(
28906     IRpcStubBuffer* This,
28907     IRpcChannelBuffer* pRpcChannelBuffer,
28908     PRPC_MESSAGE pRpcMessage,
28909     DWORD* pdwStubPhase);
28910 
28911 #endif  /* __IShellMenuCallback_INTERFACE_DEFINED__ */
28912 
28913 
28914 #define SMINIT_DEFAULT 0x00000000
28915 #define SMINIT_RESTRICT_DRAGDROP 0x00000002
28916 #define SMINIT_TOPLEVEL 0x00000004
28917 #define SMINIT_CACHED 0x00000010
28918 #if _WIN32_IE >= _WIN32_IE_IE70
28919 #define SMINIT_AUTOEXPAND 0x00000100
28920 #define SMINIT_AUTOTOOLTIP 0x00000200
28921 #define SMINIT_DROPONCONTAINER 0x00000400
28922 #endif
28923 
28924 #define SMINIT_VERTICAL 0x10000000
28925 #define SMINIT_HORIZONTAL 0x20000000
28926 
28927 #define ANCESTORDEFAULT (UINT)-1
28928 
28929 #define SMSET_TOP 0x10000000
28930 #define SMSET_BOTTOM 0x20000000
28931 #define SMSET_DONTOWN 0x00000001
28932 
28933 #define SMINV_REFRESH 0x00000001
28934 #define SMINV_ID 0x00000008
28935 
28936 /*****************************************************************************
28937  * IShellMenu interface
28938  */
28939 #ifndef __IShellMenu_INTERFACE_DEFINED__
28940 #define __IShellMenu_INTERFACE_DEFINED__
28941 
28942 DEFINE_GUID(IID_IShellMenu, 0xee1f7637, 0xe138, 0x11d1, 0x83,0x79, 0x00,0xc0,0x4f,0xd9,0x18,0xd0);
28943 #if defined(__cplusplus) && !defined(CINTERFACE)
28944 MIDL_INTERFACE("ee1f7637-e138-11d1-8379-00c04fd918d0")
28945 IShellMenu : public IUnknown
28946 {
28947     virtual HRESULT STDMETHODCALLTYPE Initialize(
28948         IShellMenuCallback *psmc,
28949         UINT uId,
28950         UINT uIdAncestor,
28951         DWORD dwFlags) = 0;
28952 
28953     virtual HRESULT STDMETHODCALLTYPE GetMenuInfo(
28954         IShellMenuCallback **ppsmc,
28955         UINT *puId,
28956         UINT *puIdAncestor,
28957         DWORD *pdwFlags) = 0;
28958 
28959     virtual HRESULT STDMETHODCALLTYPE SetShellFolder(
28960         IShellFolder *psf,
28961         PCIDLIST_ABSOLUTE pidlFolder,
28962         HKEY hKey,
28963         DWORD dwFlags) = 0;
28964 
28965     virtual HRESULT STDMETHODCALLTYPE GetShellFolder(
28966         DWORD *pdwFlags,
28967         PIDLIST_ABSOLUTE *ppidl,
28968         REFIID riid,
28969         void **ppv) = 0;
28970 
28971     virtual HRESULT STDMETHODCALLTYPE SetMenu(
28972         HMENU hmenu,
28973         HWND hwnd,
28974         DWORD dwFlags) = 0;
28975 
28976     virtual HRESULT STDMETHODCALLTYPE GetMenu(
28977         HMENU *phmenu,
28978         HWND *phwnd,
28979         DWORD *pdwFlags) = 0;
28980 
28981     virtual HRESULT STDMETHODCALLTYPE InvalidateItem(
28982         LPSMDATA psmd,
28983         DWORD dwFlags) = 0;
28984 
28985     virtual HRESULT STDMETHODCALLTYPE GetState(
28986         LPSMDATA psmd) = 0;
28987 
28988     virtual HRESULT STDMETHODCALLTYPE SetMenuToolbar(
28989         IUnknown *punk,
28990         DWORD dwFlags) = 0;
28991 
28992 };
28993 #ifdef __CRT_UUID_DECL
28994 __CRT_UUID_DECL(IShellMenu, 0xee1f7637, 0xe138, 0x11d1, 0x83,0x79, 0x00,0xc0,0x4f,0xd9,0x18,0xd0)
28995 #endif
28996 #else
28997 typedef struct IShellMenuVtbl {
28998     BEGIN_INTERFACE
28999 
29000     /*** IUnknown methods ***/
29001     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
29002         IShellMenu* This,
29003         REFIID riid,
29004         void **ppvObject);
29005 
29006     ULONG (STDMETHODCALLTYPE *AddRef)(
29007         IShellMenu* This);
29008 
29009     ULONG (STDMETHODCALLTYPE *Release)(
29010         IShellMenu* This);
29011 
29012     /*** IShellMenu methods ***/
29013     HRESULT (STDMETHODCALLTYPE *Initialize)(
29014         IShellMenu* This,
29015         IShellMenuCallback *psmc,
29016         UINT uId,
29017         UINT uIdAncestor,
29018         DWORD dwFlags);
29019 
29020     HRESULT (STDMETHODCALLTYPE *GetMenuInfo)(
29021         IShellMenu* This,
29022         IShellMenuCallback **ppsmc,
29023         UINT *puId,
29024         UINT *puIdAncestor,
29025         DWORD *pdwFlags);
29026 
29027     HRESULT (STDMETHODCALLTYPE *SetShellFolder)(
29028         IShellMenu* This,
29029         IShellFolder *psf,
29030         PCIDLIST_ABSOLUTE pidlFolder,
29031         HKEY hKey,
29032         DWORD dwFlags);
29033 
29034     HRESULT (STDMETHODCALLTYPE *GetShellFolder)(
29035         IShellMenu* This,
29036         DWORD *pdwFlags,
29037         PIDLIST_ABSOLUTE *ppidl,
29038         REFIID riid,
29039         void **ppv);
29040 
29041     HRESULT (STDMETHODCALLTYPE *SetMenu)(
29042         IShellMenu* This,
29043         HMENU hmenu,
29044         HWND hwnd,
29045         DWORD dwFlags);
29046 
29047     HRESULT (STDMETHODCALLTYPE *GetMenu)(
29048         IShellMenu* This,
29049         HMENU *phmenu,
29050         HWND *phwnd,
29051         DWORD *pdwFlags);
29052 
29053     HRESULT (STDMETHODCALLTYPE *InvalidateItem)(
29054         IShellMenu* This,
29055         LPSMDATA psmd,
29056         DWORD dwFlags);
29057 
29058     HRESULT (STDMETHODCALLTYPE *GetState)(
29059         IShellMenu* This,
29060         LPSMDATA psmd);
29061 
29062     HRESULT (STDMETHODCALLTYPE *SetMenuToolbar)(
29063         IShellMenu* This,
29064         IUnknown *punk,
29065         DWORD dwFlags);
29066 
29067     END_INTERFACE
29068 } IShellMenuVtbl;
29069 interface IShellMenu {
29070     CONST_VTBL IShellMenuVtbl* lpVtbl;
29071 };
29072 
29073 #ifdef COBJMACROS
29074 #ifndef WIDL_C_INLINE_WRAPPERS
29075 /*** IUnknown methods ***/
29076 #define IShellMenu_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
29077 #define IShellMenu_AddRef(This) (This)->lpVtbl->AddRef(This)
29078 #define IShellMenu_Release(This) (This)->lpVtbl->Release(This)
29079 /*** IShellMenu methods ***/
29080 #define IShellMenu_Initialize(This,psmc,uId,uIdAncestor,dwFlags) (This)->lpVtbl->Initialize(This,psmc,uId,uIdAncestor,dwFlags)
29081 #define IShellMenu_GetMenuInfo(This,ppsmc,puId,puIdAncestor,pdwFlags) (This)->lpVtbl->GetMenuInfo(This,ppsmc,puId,puIdAncestor,pdwFlags)
29082 #define IShellMenu_SetShellFolder(This,psf,pidlFolder,hKey,dwFlags) (This)->lpVtbl->SetShellFolder(This,psf,pidlFolder,hKey,dwFlags)
29083 #define IShellMenu_GetShellFolder(This,pdwFlags,ppidl,riid,ppv) (This)->lpVtbl->GetShellFolder(This,pdwFlags,ppidl,riid,ppv)
29084 #define IShellMenu_SetMenu(This,hmenu,hwnd,dwFlags) (This)->lpVtbl->SetMenu(This,hmenu,hwnd,dwFlags)
29085 #define IShellMenu_GetMenu(This,phmenu,phwnd,pdwFlags) (This)->lpVtbl->GetMenu(This,phmenu,phwnd,pdwFlags)
29086 #define IShellMenu_InvalidateItem(This,psmd,dwFlags) (This)->lpVtbl->InvalidateItem(This,psmd,dwFlags)
29087 #define IShellMenu_GetState(This,psmd) (This)->lpVtbl->GetState(This,psmd)
29088 #define IShellMenu_SetMenuToolbar(This,punk,dwFlags) (This)->lpVtbl->SetMenuToolbar(This,punk,dwFlags)
29089 #else
29090 /*** IUnknown methods ***/
29091 static FORCEINLINE HRESULT IShellMenu_QueryInterface(IShellMenu* This,REFIID riid,void **ppvObject) {
29092     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
29093 }
29094 static FORCEINLINE ULONG IShellMenu_AddRef(IShellMenu* This) {
29095     return This->lpVtbl->AddRef(This);
29096 }
29097 static FORCEINLINE ULONG IShellMenu_Release(IShellMenu* This) {
29098     return This->lpVtbl->Release(This);
29099 }
29100 /*** IShellMenu methods ***/
29101 static FORCEINLINE HRESULT IShellMenu_Initialize(IShellMenu* This,IShellMenuCallback *psmc,UINT uId,UINT uIdAncestor,DWORD dwFlags) {
29102     return This->lpVtbl->Initialize(This,psmc,uId,uIdAncestor,dwFlags);
29103 }
29104 static FORCEINLINE HRESULT IShellMenu_GetMenuInfo(IShellMenu* This,IShellMenuCallback **ppsmc,UINT *puId,UINT *puIdAncestor,DWORD *pdwFlags) {
29105     return This->lpVtbl->GetMenuInfo(This,ppsmc,puId,puIdAncestor,pdwFlags);
29106 }
29107 static FORCEINLINE HRESULT IShellMenu_SetShellFolder(IShellMenu* This,IShellFolder *psf,PCIDLIST_ABSOLUTE pidlFolder,HKEY hKey,DWORD dwFlags) {
29108     return This->lpVtbl->SetShellFolder(This,psf,pidlFolder,hKey,dwFlags);
29109 }
29110 static FORCEINLINE HRESULT IShellMenu_GetShellFolder(IShellMenu* This,DWORD *pdwFlags,PIDLIST_ABSOLUTE *ppidl,REFIID riid,void **ppv) {
29111     return This->lpVtbl->GetShellFolder(This,pdwFlags,ppidl,riid,ppv);
29112 }
29113 static FORCEINLINE HRESULT IShellMenu_SetMenu(IShellMenu* This,HMENU hmenu,HWND hwnd,DWORD dwFlags) {
29114     return This->lpVtbl->SetMenu(This,hmenu,hwnd,dwFlags);
29115 }
29116 static FORCEINLINE HRESULT IShellMenu_GetMenu(IShellMenu* This,HMENU *phmenu,HWND *phwnd,DWORD *pdwFlags) {
29117     return This->lpVtbl->GetMenu(This,phmenu,phwnd,pdwFlags);
29118 }
29119 static FORCEINLINE HRESULT IShellMenu_InvalidateItem(IShellMenu* This,LPSMDATA psmd,DWORD dwFlags) {
29120     return This->lpVtbl->InvalidateItem(This,psmd,dwFlags);
29121 }
29122 static FORCEINLINE HRESULT IShellMenu_GetState(IShellMenu* This,LPSMDATA psmd) {
29123     return This->lpVtbl->GetState(This,psmd);
29124 }
29125 static FORCEINLINE HRESULT IShellMenu_SetMenuToolbar(IShellMenu* This,IUnknown *punk,DWORD dwFlags) {
29126     return This->lpVtbl->SetMenuToolbar(This,punk,dwFlags);
29127 }
29128 #endif
29129 #endif
29130 
29131 #endif
29132 
29133 HRESULT STDMETHODCALLTYPE IShellMenu_Initialize_Proxy(
29134     IShellMenu* This,
29135     IShellMenuCallback *psmc,
29136     UINT uId,
29137     UINT uIdAncestor,
29138     DWORD dwFlags);
29139 void __RPC_STUB IShellMenu_Initialize_Stub(
29140     IRpcStubBuffer* This,
29141     IRpcChannelBuffer* pRpcChannelBuffer,
29142     PRPC_MESSAGE pRpcMessage,
29143     DWORD* pdwStubPhase);
29144 HRESULT STDMETHODCALLTYPE IShellMenu_GetMenuInfo_Proxy(
29145     IShellMenu* This,
29146     IShellMenuCallback **ppsmc,
29147     UINT *puId,
29148     UINT *puIdAncestor,
29149     DWORD *pdwFlags);
29150 void __RPC_STUB IShellMenu_GetMenuInfo_Stub(
29151     IRpcStubBuffer* This,
29152     IRpcChannelBuffer* pRpcChannelBuffer,
29153     PRPC_MESSAGE pRpcMessage,
29154     DWORD* pdwStubPhase);
29155 HRESULT STDMETHODCALLTYPE IShellMenu_SetShellFolder_Proxy(
29156     IShellMenu* This,
29157     IShellFolder *psf,
29158     PCIDLIST_ABSOLUTE pidlFolder,
29159     HKEY hKey,
29160     DWORD dwFlags);
29161 void __RPC_STUB IShellMenu_SetShellFolder_Stub(
29162     IRpcStubBuffer* This,
29163     IRpcChannelBuffer* pRpcChannelBuffer,
29164     PRPC_MESSAGE pRpcMessage,
29165     DWORD* pdwStubPhase);
29166 HRESULT STDMETHODCALLTYPE IShellMenu_GetShellFolder_Proxy(
29167     IShellMenu* This,
29168     DWORD *pdwFlags,
29169     PIDLIST_ABSOLUTE *ppidl,
29170     REFIID riid,
29171     void **ppv);
29172 void __RPC_STUB IShellMenu_GetShellFolder_Stub(
29173     IRpcStubBuffer* This,
29174     IRpcChannelBuffer* pRpcChannelBuffer,
29175     PRPC_MESSAGE pRpcMessage,
29176     DWORD* pdwStubPhase);
29177 HRESULT STDMETHODCALLTYPE IShellMenu_SetMenu_Proxy(
29178     IShellMenu* This,
29179     HMENU hmenu,
29180     HWND hwnd,
29181     DWORD dwFlags);
29182 void __RPC_STUB IShellMenu_SetMenu_Stub(
29183     IRpcStubBuffer* This,
29184     IRpcChannelBuffer* pRpcChannelBuffer,
29185     PRPC_MESSAGE pRpcMessage,
29186     DWORD* pdwStubPhase);
29187 HRESULT STDMETHODCALLTYPE IShellMenu_GetMenu_Proxy(
29188     IShellMenu* This,
29189     HMENU *phmenu,
29190     HWND *phwnd,
29191     DWORD *pdwFlags);
29192 void __RPC_STUB IShellMenu_GetMenu_Stub(
29193     IRpcStubBuffer* This,
29194     IRpcChannelBuffer* pRpcChannelBuffer,
29195     PRPC_MESSAGE pRpcMessage,
29196     DWORD* pdwStubPhase);
29197 HRESULT STDMETHODCALLTYPE IShellMenu_InvalidateItem_Proxy(
29198     IShellMenu* This,
29199     LPSMDATA psmd,
29200     DWORD dwFlags);
29201 void __RPC_STUB IShellMenu_InvalidateItem_Stub(
29202     IRpcStubBuffer* This,
29203     IRpcChannelBuffer* pRpcChannelBuffer,
29204     PRPC_MESSAGE pRpcMessage,
29205     DWORD* pdwStubPhase);
29206 HRESULT STDMETHODCALLTYPE IShellMenu_GetState_Proxy(
29207     IShellMenu* This,
29208     LPSMDATA psmd);
29209 void __RPC_STUB IShellMenu_GetState_Stub(
29210     IRpcStubBuffer* This,
29211     IRpcChannelBuffer* pRpcChannelBuffer,
29212     PRPC_MESSAGE pRpcMessage,
29213     DWORD* pdwStubPhase);
29214 HRESULT STDMETHODCALLTYPE IShellMenu_SetMenuToolbar_Proxy(
29215     IShellMenu* This,
29216     IUnknown *punk,
29217     DWORD dwFlags);
29218 void __RPC_STUB IShellMenu_SetMenuToolbar_Stub(
29219     IRpcStubBuffer* This,
29220     IRpcChannelBuffer* pRpcChannelBuffer,
29221     PRPC_MESSAGE pRpcMessage,
29222     DWORD* pdwStubPhase);
29223 
29224 #endif  /* __IShellMenu_INTERFACE_DEFINED__ */
29225 
29226 #endif
29227 
29228 /*****************************************************************************
29229  * IShellRunDll interface
29230  */
29231 #ifndef __IShellRunDll_INTERFACE_DEFINED__
29232 #define __IShellRunDll_INTERFACE_DEFINED__
29233 
29234 DEFINE_GUID(IID_IShellRunDll, 0xfce4bde0, 0x4b68, 0x4b80, 0x8e,0x9c, 0x74,0x26,0x31,0x5a,0x73,0x88);
29235 #if defined(__cplusplus) && !defined(CINTERFACE)
29236 MIDL_INTERFACE("fce4bde0-4b68-4b80-8e9c-7426315a7388")
29237 IShellRunDll : public IUnknown
29238 {
29239     virtual HRESULT STDMETHODCALLTYPE Run(
29240         LPCWSTR pszArgs) = 0;
29241 
29242 };
29243 #ifdef __CRT_UUID_DECL
29244 __CRT_UUID_DECL(IShellRunDll, 0xfce4bde0, 0x4b68, 0x4b80, 0x8e,0x9c, 0x74,0x26,0x31,0x5a,0x73,0x88)
29245 #endif
29246 #else
29247 typedef struct IShellRunDllVtbl {
29248     BEGIN_INTERFACE
29249 
29250     /*** IUnknown methods ***/
29251     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
29252         IShellRunDll* This,
29253         REFIID riid,
29254         void **ppvObject);
29255 
29256     ULONG (STDMETHODCALLTYPE *AddRef)(
29257         IShellRunDll* This);
29258 
29259     ULONG (STDMETHODCALLTYPE *Release)(
29260         IShellRunDll* This);
29261 
29262     /*** IShellRunDll methods ***/
29263     HRESULT (STDMETHODCALLTYPE *Run)(
29264         IShellRunDll* This,
29265         LPCWSTR pszArgs);
29266 
29267     END_INTERFACE
29268 } IShellRunDllVtbl;
29269 interface IShellRunDll {
29270     CONST_VTBL IShellRunDllVtbl* lpVtbl;
29271 };
29272 
29273 #ifdef COBJMACROS
29274 #ifndef WIDL_C_INLINE_WRAPPERS
29275 /*** IUnknown methods ***/
29276 #define IShellRunDll_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
29277 #define IShellRunDll_AddRef(This) (This)->lpVtbl->AddRef(This)
29278 #define IShellRunDll_Release(This) (This)->lpVtbl->Release(This)
29279 /*** IShellRunDll methods ***/
29280 #define IShellRunDll_Run(This,pszArgs) (This)->lpVtbl->Run(This,pszArgs)
29281 #else
29282 /*** IUnknown methods ***/
29283 static FORCEINLINE HRESULT IShellRunDll_QueryInterface(IShellRunDll* This,REFIID riid,void **ppvObject) {
29284     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
29285 }
29286 static FORCEINLINE ULONG IShellRunDll_AddRef(IShellRunDll* This) {
29287     return This->lpVtbl->AddRef(This);
29288 }
29289 static FORCEINLINE ULONG IShellRunDll_Release(IShellRunDll* This) {
29290     return This->lpVtbl->Release(This);
29291 }
29292 /*** IShellRunDll methods ***/
29293 static FORCEINLINE HRESULT IShellRunDll_Run(IShellRunDll* This,LPCWSTR pszArgs) {
29294     return This->lpVtbl->Run(This,pszArgs);
29295 }
29296 #endif
29297 #endif
29298 
29299 #endif
29300 
29301 HRESULT STDMETHODCALLTYPE IShellRunDll_Run_Proxy(
29302     IShellRunDll* This,
29303     LPCWSTR pszArgs);
29304 void __RPC_STUB IShellRunDll_Run_Stub(
29305     IRpcStubBuffer* This,
29306     IRpcChannelBuffer* pRpcChannelBuffer,
29307     PRPC_MESSAGE pRpcMessage,
29308     DWORD* pdwStubPhase);
29309 
29310 #endif  /* __IShellRunDll_INTERFACE_DEFINED__ */
29311 
29312 
29313 #if NTDDI_VERSION >= NTDDI_VISTA
29314 typedef enum KF_CATEGORY {
29315     KF_CATEGORY_VIRTUAL = 1,
29316     KF_CATEGORY_FIXED = 2,
29317     KF_CATEGORY_COMMON = 3,
29318     KF_CATEGORY_PERUSER = 4
29319 } KF_CATEGORY;
29320 
29321 enum _KF_DEFINITION_FLAGS {
29322     KFDF_LOCAL_REDIRECT_ONLY = 0x2,
29323     KFDF_ROAMABLE = 0x4,
29324     KFDF_PRECREATE = 0x8,
29325     KFDF_STREAM = 0x10,
29326     KFDF_PUBLISHEXPANDEDPATH = 0x20
29327 };
29328 
29329 
29330 typedef DWORD KF_DEFINITION_FLAGS;
29331 
29332 enum _KF_REDIRECT_FLAGS {
29333     KF_REDIRECT_USER_EXCLUSIVE = 0x1,
29334     KF_REDIRECT_COPY_SOURCE_DACL = 0x2,
29335     KF_REDIRECT_OWNER_USER = 0x4,
29336     KF_REDIRECT_SET_OWNER_EXPLICIT = 0x8,
29337     KF_REDIRECT_CHECK_ONLY = 0x10,
29338     KF_REDIRECT_WITH_UI = 0x20,
29339     KF_REDIRECT_UNPIN = 0x40,
29340     KF_REDIRECT_PIN = 0x80,
29341     KF_REDIRECT_COPY_CONTENTS = 0x200,
29342     KF_REDIRECT_DEL_SOURCE_CONTENTS = 0x400,
29343     KF_REDIRECT_EXCLUDE_ALL_KNOWN_SUBFOLDERS = 0x800
29344 };
29345 
29346 
29347 typedef DWORD KF_REDIRECT_FLAGS;
29348 
29349 enum _KF_REDIRECTION_CAPABILITIES {
29350     KF_REDIRECTION_CAPABILITIES_ALLOW_ALL = 0xff,
29351     KF_REDIRECTION_CAPABILITIES_REDIRECTABLE = 0x1,
29352     KF_REDIRECTION_CAPABILITIES_DENY_ALL = 0xfff00,
29353     KF_REDIRECTION_CAPABILITIES_DENY_POLICY_REDIRECTED = 0x100,
29354     KF_REDIRECTION_CAPABILITIES_DENY_POLICY = 0x200,
29355     KF_REDIRECTION_CAPABILITIES_DENY_PERMISSIONS = 0x400
29356 };
29357 
29358 
29359 typedef DWORD KF_REDIRECTION_CAPABILITIES;
29360 
29361 typedef struct KNOWNFOLDER_DEFINITION {
29362     KF_CATEGORY category;
29363     LPWSTR pszName;
29364     LPWSTR pszDescription;
29365     KNOWNFOLDERID fidParent;
29366     LPWSTR pszRelativePath;
29367     LPWSTR pszParsingName;
29368     LPWSTR pszTooltip;
29369     LPWSTR pszLocalizedName;
29370     LPWSTR pszIcon;
29371     LPWSTR pszSecurity;
29372     DWORD dwAttributes;
29373     KF_DEFINITION_FLAGS kfdFlags;
29374     FOLDERTYPEID ftidType;
29375 } KNOWNFOLDER_DEFINITION;
29376 
29377 /*****************************************************************************
29378  * IKnownFolder interface
29379  */
29380 #ifndef __IKnownFolder_INTERFACE_DEFINED__
29381 #define __IKnownFolder_INTERFACE_DEFINED__
29382 
29383 DEFINE_GUID(IID_IKnownFolder, 0x3aa7af7e, 0x9b36, 0x420c, 0xa8,0xe3, 0xf7,0x7d,0x46,0x74,0xa4,0x88);
29384 #if defined(__cplusplus) && !defined(CINTERFACE)
29385 MIDL_INTERFACE("3aa7af7e-9b36-420c-a8e3-f77d4674a488")
29386 IKnownFolder : public IUnknown
29387 {
29388     virtual HRESULT STDMETHODCALLTYPE GetId(
29389         KNOWNFOLDERID *pkfid) = 0;
29390 
29391     virtual HRESULT STDMETHODCALLTYPE GetCategory(
29392         KF_CATEGORY *pCategory) = 0;
29393 
29394     virtual HRESULT STDMETHODCALLTYPE GetShellItem(
29395         DWORD dwFlags,
29396         REFIID riid,
29397         void **ppv) = 0;
29398 
29399     virtual HRESULT STDMETHODCALLTYPE GetPath(
29400         DWORD dwFlags,
29401         LPWSTR *ppszPath) = 0;
29402 
29403     virtual HRESULT STDMETHODCALLTYPE SetPath(
29404         DWORD dwFlags,
29405         LPCWSTR pszPath) = 0;
29406 
29407     virtual HRESULT STDMETHODCALLTYPE GetIDList(
29408         DWORD dwFlags,
29409         PIDLIST_ABSOLUTE *ppidl) = 0;
29410 
29411     virtual HRESULT STDMETHODCALLTYPE GetFolderType(
29412         FOLDERTYPEID *pftid) = 0;
29413 
29414     virtual HRESULT STDMETHODCALLTYPE GetRedirectionCapabilities(
29415         KF_REDIRECTION_CAPABILITIES *pCapabilities) = 0;
29416 
29417     virtual HRESULT STDMETHODCALLTYPE GetFolderDefinition(
29418         KNOWNFOLDER_DEFINITION *pKFD) = 0;
29419 
29420 };
29421 #ifdef __CRT_UUID_DECL
29422 __CRT_UUID_DECL(IKnownFolder, 0x3aa7af7e, 0x9b36, 0x420c, 0xa8,0xe3, 0xf7,0x7d,0x46,0x74,0xa4,0x88)
29423 #endif
29424 #else
29425 typedef struct IKnownFolderVtbl {
29426     BEGIN_INTERFACE
29427 
29428     /*** IUnknown methods ***/
29429     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
29430         IKnownFolder* This,
29431         REFIID riid,
29432         void **ppvObject);
29433 
29434     ULONG (STDMETHODCALLTYPE *AddRef)(
29435         IKnownFolder* This);
29436 
29437     ULONG (STDMETHODCALLTYPE *Release)(
29438         IKnownFolder* This);
29439 
29440     /*** IKnownFolder methods ***/
29441     HRESULT (STDMETHODCALLTYPE *GetId)(
29442         IKnownFolder* This,
29443         KNOWNFOLDERID *pkfid);
29444 
29445     HRESULT (STDMETHODCALLTYPE *GetCategory)(
29446         IKnownFolder* This,
29447         KF_CATEGORY *pCategory);
29448 
29449     HRESULT (STDMETHODCALLTYPE *GetShellItem)(
29450         IKnownFolder* This,
29451         DWORD dwFlags,
29452         REFIID riid,
29453         void **ppv);
29454 
29455     HRESULT (STDMETHODCALLTYPE *GetPath)(
29456         IKnownFolder* This,
29457         DWORD dwFlags,
29458         LPWSTR *ppszPath);
29459 
29460     HRESULT (STDMETHODCALLTYPE *SetPath)(
29461         IKnownFolder* This,
29462         DWORD dwFlags,
29463         LPCWSTR pszPath);
29464 
29465     HRESULT (STDMETHODCALLTYPE *GetIDList)(
29466         IKnownFolder* This,
29467         DWORD dwFlags,
29468         PIDLIST_ABSOLUTE *ppidl);
29469 
29470     HRESULT (STDMETHODCALLTYPE *GetFolderType)(
29471         IKnownFolder* This,
29472         FOLDERTYPEID *pftid);
29473 
29474     HRESULT (STDMETHODCALLTYPE *GetRedirectionCapabilities)(
29475         IKnownFolder* This,
29476         KF_REDIRECTION_CAPABILITIES *pCapabilities);
29477 
29478     HRESULT (STDMETHODCALLTYPE *GetFolderDefinition)(
29479         IKnownFolder* This,
29480         KNOWNFOLDER_DEFINITION *pKFD);
29481 
29482     END_INTERFACE
29483 } IKnownFolderVtbl;
29484 interface IKnownFolder {
29485     CONST_VTBL IKnownFolderVtbl* lpVtbl;
29486 };
29487 
29488 #ifdef COBJMACROS
29489 #ifndef WIDL_C_INLINE_WRAPPERS
29490 /*** IUnknown methods ***/
29491 #define IKnownFolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
29492 #define IKnownFolder_AddRef(This) (This)->lpVtbl->AddRef(This)
29493 #define IKnownFolder_Release(This) (This)->lpVtbl->Release(This)
29494 /*** IKnownFolder methods ***/
29495 #define IKnownFolder_GetId(This,pkfid) (This)->lpVtbl->GetId(This,pkfid)
29496 #define IKnownFolder_GetCategory(This,pCategory) (This)->lpVtbl->GetCategory(This,pCategory)
29497 #define IKnownFolder_GetShellItem(This,dwFlags,riid,ppv) (This)->lpVtbl->GetShellItem(This,dwFlags,riid,ppv)
29498 #define IKnownFolder_GetPath(This,dwFlags,ppszPath) (This)->lpVtbl->GetPath(This,dwFlags,ppszPath)
29499 #define IKnownFolder_SetPath(This,dwFlags,pszPath) (This)->lpVtbl->SetPath(This,dwFlags,pszPath)
29500 #define IKnownFolder_GetIDList(This,dwFlags,ppidl) (This)->lpVtbl->GetIDList(This,dwFlags,ppidl)
29501 #define IKnownFolder_GetFolderType(This,pftid) (This)->lpVtbl->GetFolderType(This,pftid)
29502 #define IKnownFolder_GetRedirectionCapabilities(This,pCapabilities) (This)->lpVtbl->GetRedirectionCapabilities(This,pCapabilities)
29503 #define IKnownFolder_GetFolderDefinition(This,pKFD) (This)->lpVtbl->GetFolderDefinition(This,pKFD)
29504 #else
29505 /*** IUnknown methods ***/
29506 static FORCEINLINE HRESULT IKnownFolder_QueryInterface(IKnownFolder* This,REFIID riid,void **ppvObject) {
29507     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
29508 }
29509 static FORCEINLINE ULONG IKnownFolder_AddRef(IKnownFolder* This) {
29510     return This->lpVtbl->AddRef(This);
29511 }
29512 static FORCEINLINE ULONG IKnownFolder_Release(IKnownFolder* This) {
29513     return This->lpVtbl->Release(This);
29514 }
29515 /*** IKnownFolder methods ***/
29516 static FORCEINLINE HRESULT IKnownFolder_GetId(IKnownFolder* This,KNOWNFOLDERID *pkfid) {
29517     return This->lpVtbl->GetId(This,pkfid);
29518 }
29519 static FORCEINLINE HRESULT IKnownFolder_GetCategory(IKnownFolder* This,KF_CATEGORY *pCategory) {
29520     return This->lpVtbl->GetCategory(This,pCategory);
29521 }
29522 static FORCEINLINE HRESULT IKnownFolder_GetShellItem(IKnownFolder* This,DWORD dwFlags,REFIID riid,void **ppv) {
29523     return This->lpVtbl->GetShellItem(This,dwFlags,riid,ppv);
29524 }
29525 static FORCEINLINE HRESULT IKnownFolder_GetPath(IKnownFolder* This,DWORD dwFlags,LPWSTR *ppszPath) {
29526     return This->lpVtbl->GetPath(This,dwFlags,ppszPath);
29527 }
29528 static FORCEINLINE HRESULT IKnownFolder_SetPath(IKnownFolder* This,DWORD dwFlags,LPCWSTR pszPath) {
29529     return This->lpVtbl->SetPath(This,dwFlags,pszPath);
29530 }
29531 static FORCEINLINE HRESULT IKnownFolder_GetIDList(IKnownFolder* This,DWORD dwFlags,PIDLIST_ABSOLUTE *ppidl) {
29532     return This->lpVtbl->GetIDList(This,dwFlags,ppidl);
29533 }
29534 static FORCEINLINE HRESULT IKnownFolder_GetFolderType(IKnownFolder* This,FOLDERTYPEID *pftid) {
29535     return This->lpVtbl->GetFolderType(This,pftid);
29536 }
29537 static FORCEINLINE HRESULT IKnownFolder_GetRedirectionCapabilities(IKnownFolder* This,KF_REDIRECTION_CAPABILITIES *pCapabilities) {
29538     return This->lpVtbl->GetRedirectionCapabilities(This,pCapabilities);
29539 }
29540 static FORCEINLINE HRESULT IKnownFolder_GetFolderDefinition(IKnownFolder* This,KNOWNFOLDER_DEFINITION *pKFD) {
29541     return This->lpVtbl->GetFolderDefinition(This,pKFD);
29542 }
29543 #endif
29544 #endif
29545 
29546 #endif
29547 
29548 HRESULT STDMETHODCALLTYPE IKnownFolder_GetId_Proxy(
29549     IKnownFolder* This,
29550     KNOWNFOLDERID *pkfid);
29551 void __RPC_STUB IKnownFolder_GetId_Stub(
29552     IRpcStubBuffer* This,
29553     IRpcChannelBuffer* pRpcChannelBuffer,
29554     PRPC_MESSAGE pRpcMessage,
29555     DWORD* pdwStubPhase);
29556 HRESULT STDMETHODCALLTYPE IKnownFolder_GetCategory_Proxy(
29557     IKnownFolder* This,
29558     KF_CATEGORY *pCategory);
29559 void __RPC_STUB IKnownFolder_GetCategory_Stub(
29560     IRpcStubBuffer* This,
29561     IRpcChannelBuffer* pRpcChannelBuffer,
29562     PRPC_MESSAGE pRpcMessage,
29563     DWORD* pdwStubPhase);
29564 HRESULT STDMETHODCALLTYPE IKnownFolder_GetShellItem_Proxy(
29565     IKnownFolder* This,
29566     DWORD dwFlags,
29567     REFIID riid,
29568     void **ppv);
29569 void __RPC_STUB IKnownFolder_GetShellItem_Stub(
29570     IRpcStubBuffer* This,
29571     IRpcChannelBuffer* pRpcChannelBuffer,
29572     PRPC_MESSAGE pRpcMessage,
29573     DWORD* pdwStubPhase);
29574 HRESULT STDMETHODCALLTYPE IKnownFolder_GetPath_Proxy(
29575     IKnownFolder* This,
29576     DWORD dwFlags,
29577     LPWSTR *ppszPath);
29578 void __RPC_STUB IKnownFolder_GetPath_Stub(
29579     IRpcStubBuffer* This,
29580     IRpcChannelBuffer* pRpcChannelBuffer,
29581     PRPC_MESSAGE pRpcMessage,
29582     DWORD* pdwStubPhase);
29583 HRESULT STDMETHODCALLTYPE IKnownFolder_SetPath_Proxy(
29584     IKnownFolder* This,
29585     DWORD dwFlags,
29586     LPCWSTR pszPath);
29587 void __RPC_STUB IKnownFolder_SetPath_Stub(
29588     IRpcStubBuffer* This,
29589     IRpcChannelBuffer* pRpcChannelBuffer,
29590     PRPC_MESSAGE pRpcMessage,
29591     DWORD* pdwStubPhase);
29592 HRESULT STDMETHODCALLTYPE IKnownFolder_GetIDList_Proxy(
29593     IKnownFolder* This,
29594     DWORD dwFlags,
29595     PIDLIST_ABSOLUTE *ppidl);
29596 void __RPC_STUB IKnownFolder_GetIDList_Stub(
29597     IRpcStubBuffer* This,
29598     IRpcChannelBuffer* pRpcChannelBuffer,
29599     PRPC_MESSAGE pRpcMessage,
29600     DWORD* pdwStubPhase);
29601 HRESULT STDMETHODCALLTYPE IKnownFolder_GetFolderType_Proxy(
29602     IKnownFolder* This,
29603     FOLDERTYPEID *pftid);
29604 void __RPC_STUB IKnownFolder_GetFolderType_Stub(
29605     IRpcStubBuffer* This,
29606     IRpcChannelBuffer* pRpcChannelBuffer,
29607     PRPC_MESSAGE pRpcMessage,
29608     DWORD* pdwStubPhase);
29609 HRESULT STDMETHODCALLTYPE IKnownFolder_GetRedirectionCapabilities_Proxy(
29610     IKnownFolder* This,
29611     KF_REDIRECTION_CAPABILITIES *pCapabilities);
29612 void __RPC_STUB IKnownFolder_GetRedirectionCapabilities_Stub(
29613     IRpcStubBuffer* This,
29614     IRpcChannelBuffer* pRpcChannelBuffer,
29615     PRPC_MESSAGE pRpcMessage,
29616     DWORD* pdwStubPhase);
29617 HRESULT STDMETHODCALLTYPE IKnownFolder_GetFolderDefinition_Proxy(
29618     IKnownFolder* This,
29619     KNOWNFOLDER_DEFINITION *pKFD);
29620 void __RPC_STUB IKnownFolder_GetFolderDefinition_Stub(
29621     IRpcStubBuffer* This,
29622     IRpcChannelBuffer* pRpcChannelBuffer,
29623     PRPC_MESSAGE pRpcMessage,
29624     DWORD* pdwStubPhase);
29625 
29626 #endif  /* __IKnownFolder_INTERFACE_DEFINED__ */
29627 
29628 
29629 /*****************************************************************************
29630  * IKnownFolderManager interface
29631  */
29632 #ifndef __IKnownFolderManager_INTERFACE_DEFINED__
29633 #define __IKnownFolderManager_INTERFACE_DEFINED__
29634 
29635 typedef enum FFFP_MODE {
29636     FFFP_EXACTMATCH = 0,
29637     FFFP_NEARESTPARENTMATCH = 1
29638 } FFFP_MODE;
29639 
29640 DEFINE_GUID(IID_IKnownFolderManager, 0x8be2d872, 0x86aa, 0x4d47, 0xb7,0x76, 0x32,0xcc,0xa4,0x0c,0x70,0x18);
29641 #if defined(__cplusplus) && !defined(CINTERFACE)
29642 MIDL_INTERFACE("8be2d872-86aa-4d47-b776-32cca40c7018")
29643 IKnownFolderManager : public IUnknown
29644 {
29645     virtual HRESULT STDMETHODCALLTYPE FolderIdFromCsidl(
29646         int nCsidl,
29647         KNOWNFOLDERID *pfid) = 0;
29648 
29649     virtual HRESULT STDMETHODCALLTYPE FolderIdToCsidl(
29650         REFKNOWNFOLDERID rfid,
29651         int *pnCsidl) = 0;
29652 
29653     virtual HRESULT STDMETHODCALLTYPE GetFolderIds(
29654         KNOWNFOLDERID **ppKFId,
29655         UINT *pCount) = 0;
29656 
29657     virtual HRESULT STDMETHODCALLTYPE GetFolder(
29658         REFKNOWNFOLDERID rfid,
29659         IKnownFolder **ppkf) = 0;
29660 
29661     virtual HRESULT STDMETHODCALLTYPE GetFolderByName(
29662         LPCWSTR pszCanonicalName,
29663         IKnownFolder **ppkf) = 0;
29664 
29665     virtual HRESULT STDMETHODCALLTYPE RegisterFolder(
29666         REFKNOWNFOLDERID rfid,
29667         const KNOWNFOLDER_DEFINITION *pKFD) = 0;
29668 
29669     virtual HRESULT STDMETHODCALLTYPE UnregisterFolder(
29670         REFKNOWNFOLDERID rfid) = 0;
29671 
29672     virtual HRESULT STDMETHODCALLTYPE FindFolderFromPath(
29673         LPCWSTR pszPath,
29674         FFFP_MODE mode,
29675         IKnownFolder **ppkf) = 0;
29676 
29677     virtual HRESULT STDMETHODCALLTYPE FindFolderFromIDList(
29678         PCIDLIST_ABSOLUTE pidl,
29679         IKnownFolder **ppkf) = 0;
29680 
29681     virtual HRESULT STDMETHODCALLTYPE Redirect(
29682         REFKNOWNFOLDERID rfid,
29683         HWND hwnd,
29684         KF_REDIRECT_FLAGS flags,
29685         LPCWSTR pszTargetPath,
29686         UINT cFolders,
29687         const KNOWNFOLDERID *pExclusion,
29688         LPWSTR *ppszError) = 0;
29689 
29690 };
29691 #ifdef __CRT_UUID_DECL
29692 __CRT_UUID_DECL(IKnownFolderManager, 0x8be2d872, 0x86aa, 0x4d47, 0xb7,0x76, 0x32,0xcc,0xa4,0x0c,0x70,0x18)
29693 #endif
29694 #else
29695 typedef struct IKnownFolderManagerVtbl {
29696     BEGIN_INTERFACE
29697 
29698     /*** IUnknown methods ***/
29699     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
29700         IKnownFolderManager* This,
29701         REFIID riid,
29702         void **ppvObject);
29703 
29704     ULONG (STDMETHODCALLTYPE *AddRef)(
29705         IKnownFolderManager* This);
29706 
29707     ULONG (STDMETHODCALLTYPE *Release)(
29708         IKnownFolderManager* This);
29709 
29710     /*** IKnownFolderManager methods ***/
29711     HRESULT (STDMETHODCALLTYPE *FolderIdFromCsidl)(
29712         IKnownFolderManager* This,
29713         int nCsidl,
29714         KNOWNFOLDERID *pfid);
29715 
29716     HRESULT (STDMETHODCALLTYPE *FolderIdToCsidl)(
29717         IKnownFolderManager* This,
29718         REFKNOWNFOLDERID rfid,
29719         int *pnCsidl);
29720 
29721     HRESULT (STDMETHODCALLTYPE *GetFolderIds)(
29722         IKnownFolderManager* This,
29723         KNOWNFOLDERID **ppKFId,
29724         UINT *pCount);
29725 
29726     HRESULT (STDMETHODCALLTYPE *GetFolder)(
29727         IKnownFolderManager* This,
29728         REFKNOWNFOLDERID rfid,
29729         IKnownFolder **ppkf);
29730 
29731     HRESULT (STDMETHODCALLTYPE *GetFolderByName)(
29732         IKnownFolderManager* This,
29733         LPCWSTR pszCanonicalName,
29734         IKnownFolder **ppkf);
29735 
29736     HRESULT (STDMETHODCALLTYPE *RegisterFolder)(
29737         IKnownFolderManager* This,
29738         REFKNOWNFOLDERID rfid,
29739         const KNOWNFOLDER_DEFINITION *pKFD);
29740 
29741     HRESULT (STDMETHODCALLTYPE *UnregisterFolder)(
29742         IKnownFolderManager* This,
29743         REFKNOWNFOLDERID rfid);
29744 
29745     HRESULT (STDMETHODCALLTYPE *FindFolderFromPath)(
29746         IKnownFolderManager* This,
29747         LPCWSTR pszPath,
29748         FFFP_MODE mode,
29749         IKnownFolder **ppkf);
29750 
29751     HRESULT (STDMETHODCALLTYPE *FindFolderFromIDList)(
29752         IKnownFolderManager* This,
29753         PCIDLIST_ABSOLUTE pidl,
29754         IKnownFolder **ppkf);
29755 
29756     HRESULT (STDMETHODCALLTYPE *Redirect)(
29757         IKnownFolderManager* This,
29758         REFKNOWNFOLDERID rfid,
29759         HWND hwnd,
29760         KF_REDIRECT_FLAGS flags,
29761         LPCWSTR pszTargetPath,
29762         UINT cFolders,
29763         const KNOWNFOLDERID *pExclusion,
29764         LPWSTR *ppszError);
29765 
29766     END_INTERFACE
29767 } IKnownFolderManagerVtbl;
29768 interface IKnownFolderManager {
29769     CONST_VTBL IKnownFolderManagerVtbl* lpVtbl;
29770 };
29771 
29772 #ifdef COBJMACROS
29773 #ifndef WIDL_C_INLINE_WRAPPERS
29774 /*** IUnknown methods ***/
29775 #define IKnownFolderManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
29776 #define IKnownFolderManager_AddRef(This) (This)->lpVtbl->AddRef(This)
29777 #define IKnownFolderManager_Release(This) (This)->lpVtbl->Release(This)
29778 /*** IKnownFolderManager methods ***/
29779 #define IKnownFolderManager_FolderIdFromCsidl(This,nCsidl,pfid) (This)->lpVtbl->FolderIdFromCsidl(This,nCsidl,pfid)
29780 #define IKnownFolderManager_FolderIdToCsidl(This,rfid,pnCsidl) (This)->lpVtbl->FolderIdToCsidl(This,rfid,pnCsidl)
29781 #define IKnownFolderManager_GetFolderIds(This,ppKFId,pCount) (This)->lpVtbl->GetFolderIds(This,ppKFId,pCount)
29782 #define IKnownFolderManager_GetFolder(This,rfid,ppkf) (This)->lpVtbl->GetFolder(This,rfid,ppkf)
29783 #define IKnownFolderManager_GetFolderByName(This,pszCanonicalName,ppkf) (This)->lpVtbl->GetFolderByName(This,pszCanonicalName,ppkf)
29784 #define IKnownFolderManager_RegisterFolder(This,rfid,pKFD) (This)->lpVtbl->RegisterFolder(This,rfid,pKFD)
29785 #define IKnownFolderManager_UnregisterFolder(This,rfid) (This)->lpVtbl->UnregisterFolder(This,rfid)
29786 #define IKnownFolderManager_FindFolderFromPath(This,pszPath,mode,ppkf) (This)->lpVtbl->FindFolderFromPath(This,pszPath,mode,ppkf)
29787 #define IKnownFolderManager_FindFolderFromIDList(This,pidl,ppkf) (This)->lpVtbl->FindFolderFromIDList(This,pidl,ppkf)
29788 #define IKnownFolderManager_Redirect(This,rfid,hwnd,flags,pszTargetPath,cFolders,pExclusion,ppszError) (This)->lpVtbl->Redirect(This,rfid,hwnd,flags,pszTargetPath,cFolders,pExclusion,ppszError)
29789 #else
29790 /*** IUnknown methods ***/
29791 static FORCEINLINE HRESULT IKnownFolderManager_QueryInterface(IKnownFolderManager* This,REFIID riid,void **ppvObject) {
29792     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
29793 }
29794 static FORCEINLINE ULONG IKnownFolderManager_AddRef(IKnownFolderManager* This) {
29795     return This->lpVtbl->AddRef(This);
29796 }
29797 static FORCEINLINE ULONG IKnownFolderManager_Release(IKnownFolderManager* This) {
29798     return This->lpVtbl->Release(This);
29799 }
29800 /*** IKnownFolderManager methods ***/
29801 static FORCEINLINE HRESULT IKnownFolderManager_FolderIdFromCsidl(IKnownFolderManager* This,int nCsidl,KNOWNFOLDERID *pfid) {
29802     return This->lpVtbl->FolderIdFromCsidl(This,nCsidl,pfid);
29803 }
29804 static FORCEINLINE HRESULT IKnownFolderManager_FolderIdToCsidl(IKnownFolderManager* This,REFKNOWNFOLDERID rfid,int *pnCsidl) {
29805     return This->lpVtbl->FolderIdToCsidl(This,rfid,pnCsidl);
29806 }
29807 static FORCEINLINE HRESULT IKnownFolderManager_GetFolderIds(IKnownFolderManager* This,KNOWNFOLDERID **ppKFId,UINT *pCount) {
29808     return This->lpVtbl->GetFolderIds(This,ppKFId,pCount);
29809 }
29810 static FORCEINLINE HRESULT IKnownFolderManager_GetFolder(IKnownFolderManager* This,REFKNOWNFOLDERID rfid,IKnownFolder **ppkf) {
29811     return This->lpVtbl->GetFolder(This,rfid,ppkf);
29812 }
29813 static FORCEINLINE HRESULT IKnownFolderManager_GetFolderByName(IKnownFolderManager* This,LPCWSTR pszCanonicalName,IKnownFolder **ppkf) {
29814     return This->lpVtbl->GetFolderByName(This,pszCanonicalName,ppkf);
29815 }
29816 static FORCEINLINE HRESULT IKnownFolderManager_RegisterFolder(IKnownFolderManager* This,REFKNOWNFOLDERID rfid,const KNOWNFOLDER_DEFINITION *pKFD) {
29817     return This->lpVtbl->RegisterFolder(This,rfid,pKFD);
29818 }
29819 static FORCEINLINE HRESULT IKnownFolderManager_UnregisterFolder(IKnownFolderManager* This,REFKNOWNFOLDERID rfid) {
29820     return This->lpVtbl->UnregisterFolder(This,rfid);
29821 }
29822 static FORCEINLINE HRESULT IKnownFolderManager_FindFolderFromPath(IKnownFolderManager* This,LPCWSTR pszPath,FFFP_MODE mode,IKnownFolder **ppkf) {
29823     return This->lpVtbl->FindFolderFromPath(This,pszPath,mode,ppkf);
29824 }
29825 static FORCEINLINE HRESULT IKnownFolderManager_FindFolderFromIDList(IKnownFolderManager* This,PCIDLIST_ABSOLUTE pidl,IKnownFolder **ppkf) {
29826     return This->lpVtbl->FindFolderFromIDList(This,pidl,ppkf);
29827 }
29828 static FORCEINLINE HRESULT IKnownFolderManager_Redirect(IKnownFolderManager* This,REFKNOWNFOLDERID rfid,HWND hwnd,KF_REDIRECT_FLAGS flags,LPCWSTR pszTargetPath,UINT cFolders,const KNOWNFOLDERID *pExclusion,LPWSTR *ppszError) {
29829     return This->lpVtbl->Redirect(This,rfid,hwnd,flags,pszTargetPath,cFolders,pExclusion,ppszError);
29830 }
29831 #endif
29832 #endif
29833 
29834 #endif
29835 
29836 HRESULT STDMETHODCALLTYPE IKnownFolderManager_FolderIdFromCsidl_Proxy(
29837     IKnownFolderManager* This,
29838     int nCsidl,
29839     KNOWNFOLDERID *pfid);
29840 void __RPC_STUB IKnownFolderManager_FolderIdFromCsidl_Stub(
29841     IRpcStubBuffer* This,
29842     IRpcChannelBuffer* pRpcChannelBuffer,
29843     PRPC_MESSAGE pRpcMessage,
29844     DWORD* pdwStubPhase);
29845 HRESULT STDMETHODCALLTYPE IKnownFolderManager_FolderIdToCsidl_Proxy(
29846     IKnownFolderManager* This,
29847     REFKNOWNFOLDERID rfid,
29848     int *pnCsidl);
29849 void __RPC_STUB IKnownFolderManager_FolderIdToCsidl_Stub(
29850     IRpcStubBuffer* This,
29851     IRpcChannelBuffer* pRpcChannelBuffer,
29852     PRPC_MESSAGE pRpcMessage,
29853     DWORD* pdwStubPhase);
29854 HRESULT STDMETHODCALLTYPE IKnownFolderManager_GetFolderIds_Proxy(
29855     IKnownFolderManager* This,
29856     KNOWNFOLDERID **ppKFId,
29857     UINT *pCount);
29858 void __RPC_STUB IKnownFolderManager_GetFolderIds_Stub(
29859     IRpcStubBuffer* This,
29860     IRpcChannelBuffer* pRpcChannelBuffer,
29861     PRPC_MESSAGE pRpcMessage,
29862     DWORD* pdwStubPhase);
29863 HRESULT STDMETHODCALLTYPE IKnownFolderManager_GetFolder_Proxy(
29864     IKnownFolderManager* This,
29865     REFKNOWNFOLDERID rfid,
29866     IKnownFolder **ppkf);
29867 void __RPC_STUB IKnownFolderManager_GetFolder_Stub(
29868     IRpcStubBuffer* This,
29869     IRpcChannelBuffer* pRpcChannelBuffer,
29870     PRPC_MESSAGE pRpcMessage,
29871     DWORD* pdwStubPhase);
29872 HRESULT STDMETHODCALLTYPE IKnownFolderManager_GetFolderByName_Proxy(
29873     IKnownFolderManager* This,
29874     LPCWSTR pszCanonicalName,
29875     IKnownFolder **ppkf);
29876 void __RPC_STUB IKnownFolderManager_GetFolderByName_Stub(
29877     IRpcStubBuffer* This,
29878     IRpcChannelBuffer* pRpcChannelBuffer,
29879     PRPC_MESSAGE pRpcMessage,
29880     DWORD* pdwStubPhase);
29881 HRESULT STDMETHODCALLTYPE IKnownFolderManager_RegisterFolder_Proxy(
29882     IKnownFolderManager* This,
29883     REFKNOWNFOLDERID rfid,
29884     const KNOWNFOLDER_DEFINITION *pKFD);
29885 void __RPC_STUB IKnownFolderManager_RegisterFolder_Stub(
29886     IRpcStubBuffer* This,
29887     IRpcChannelBuffer* pRpcChannelBuffer,
29888     PRPC_MESSAGE pRpcMessage,
29889     DWORD* pdwStubPhase);
29890 HRESULT STDMETHODCALLTYPE IKnownFolderManager_UnregisterFolder_Proxy(
29891     IKnownFolderManager* This,
29892     REFKNOWNFOLDERID rfid);
29893 void __RPC_STUB IKnownFolderManager_UnregisterFolder_Stub(
29894     IRpcStubBuffer* This,
29895     IRpcChannelBuffer* pRpcChannelBuffer,
29896     PRPC_MESSAGE pRpcMessage,
29897     DWORD* pdwStubPhase);
29898 HRESULT STDMETHODCALLTYPE IKnownFolderManager_FindFolderFromPath_Proxy(
29899     IKnownFolderManager* This,
29900     LPCWSTR pszPath,
29901     FFFP_MODE mode,
29902     IKnownFolder **ppkf);
29903 void __RPC_STUB IKnownFolderManager_FindFolderFromPath_Stub(
29904     IRpcStubBuffer* This,
29905     IRpcChannelBuffer* pRpcChannelBuffer,
29906     PRPC_MESSAGE pRpcMessage,
29907     DWORD* pdwStubPhase);
29908 HRESULT STDMETHODCALLTYPE IKnownFolderManager_FindFolderFromIDList_Proxy(
29909     IKnownFolderManager* This,
29910     PCIDLIST_ABSOLUTE pidl,
29911     IKnownFolder **ppkf);
29912 void __RPC_STUB IKnownFolderManager_FindFolderFromIDList_Stub(
29913     IRpcStubBuffer* This,
29914     IRpcChannelBuffer* pRpcChannelBuffer,
29915     PRPC_MESSAGE pRpcMessage,
29916     DWORD* pdwStubPhase);
29917 HRESULT STDMETHODCALLTYPE IKnownFolderManager_RemoteRedirect_Proxy(
29918     IKnownFolderManager* This,
29919     REFKNOWNFOLDERID rfid,
29920     HWND hwnd,
29921     KF_REDIRECT_FLAGS flags,
29922     LPCWSTR pszTargetPath,
29923     UINT cFolders,
29924     const GUID *pExclusion,
29925     LPWSTR *ppszError);
29926 void __RPC_STUB IKnownFolderManager_RemoteRedirect_Stub(
29927     IRpcStubBuffer* This,
29928     IRpcChannelBuffer* pRpcChannelBuffer,
29929     PRPC_MESSAGE pRpcMessage,
29930     DWORD* pdwStubPhase);
29931 HRESULT CALLBACK IKnownFolderManager_Redirect_Proxy(
29932     IKnownFolderManager* This,
29933     REFKNOWNFOLDERID rfid,
29934     HWND hwnd,
29935     KF_REDIRECT_FLAGS flags,
29936     LPCWSTR pszTargetPath,
29937     UINT cFolders,
29938     const KNOWNFOLDERID *pExclusion,
29939     LPWSTR *ppszError);
29940 HRESULT __RPC_STUB IKnownFolderManager_Redirect_Stub(
29941     IKnownFolderManager* This,
29942     REFKNOWNFOLDERID rfid,
29943     HWND hwnd,
29944     KF_REDIRECT_FLAGS flags,
29945     LPCWSTR pszTargetPath,
29946     UINT cFolders,
29947     const GUID *pExclusion,
29948     LPWSTR *ppszError);
29949 
29950 #endif  /* __IKnownFolderManager_INTERFACE_DEFINED__ */
29951 
29952 
FreeKnownFolderDefinitionFields(KNOWNFOLDER_DEFINITION * pKFD)29953   __forceinline void FreeKnownFolderDefinitionFields(KNOWNFOLDER_DEFINITION *pKFD) {
29954     CoTaskMemFree(pKFD->pszName);
29955     CoTaskMemFree(pKFD->pszDescription);
29956     CoTaskMemFree(pKFD->pszRelativePath);
29957     CoTaskMemFree(pKFD->pszParsingName);
29958     CoTaskMemFree(pKFD->pszTooltip);
29959     CoTaskMemFree(pKFD->pszLocalizedName);
29960     CoTaskMemFree(pKFD->pszIcon);
29961     CoTaskMemFree(pKFD->pszSecurity);
29962   }
29963 
29964 typedef enum SHARE_ROLE {
29965     SHARE_ROLE_INVALID = -1,
29966     SHARE_ROLE_READER = 0,
29967     SHARE_ROLE_CONTRIBUTOR = 1,
29968     SHARE_ROLE_CO_OWNER = 2,
29969     SHARE_ROLE_OWNER = 3,
29970     SHARE_ROLE_CUSTOM = 4,
29971     SHARE_ROLE_MIXED = 5
29972 } SHARE_ROLE;
29973 
29974 typedef enum DEF_SHARE_ID {
29975     DEFSHAREID_USERS = 1,
29976     DEFSHAREID_PUBLIC = 2
29977 } DEF_SHARE_ID;
29978 
29979 /*****************************************************************************
29980  * ISharingConfigurationManager interface
29981  */
29982 #ifndef __ISharingConfigurationManager_INTERFACE_DEFINED__
29983 #define __ISharingConfigurationManager_INTERFACE_DEFINED__
29984 
29985 DEFINE_GUID(IID_ISharingConfigurationManager, 0xb4cd448a, 0x9c86, 0x4466, 0x92,0x01, 0x2e,0x62,0x10,0x5b,0x87,0xae);
29986 #if defined(__cplusplus) && !defined(CINTERFACE)
29987 MIDL_INTERFACE("b4cd448a-9c86-4466-9201-2e62105b87ae")
29988 ISharingConfigurationManager : public IUnknown
29989 {
29990     virtual HRESULT STDMETHODCALLTYPE CreateShare(
29991         DEF_SHARE_ID dsid,
29992         SHARE_ROLE role) = 0;
29993 
29994     virtual HRESULT STDMETHODCALLTYPE DeleteShare(
29995         DEF_SHARE_ID dsid) = 0;
29996 
29997     virtual HRESULT STDMETHODCALLTYPE ShareExists(
29998         DEF_SHARE_ID dsid) = 0;
29999 
30000     virtual HRESULT STDMETHODCALLTYPE GetSharePermissions(
30001         DEF_SHARE_ID dsid,
30002         SHARE_ROLE *pRole) = 0;
30003 
30004     virtual HRESULT STDMETHODCALLTYPE SharePrinters(
30005         ) = 0;
30006 
30007     virtual HRESULT STDMETHODCALLTYPE StopSharingPrinters(
30008         ) = 0;
30009 
30010     virtual HRESULT STDMETHODCALLTYPE ArePrintersShared(
30011         ) = 0;
30012 
30013 };
30014 #ifdef __CRT_UUID_DECL
30015 __CRT_UUID_DECL(ISharingConfigurationManager, 0xb4cd448a, 0x9c86, 0x4466, 0x92,0x01, 0x2e,0x62,0x10,0x5b,0x87,0xae)
30016 #endif
30017 #else
30018 typedef struct ISharingConfigurationManagerVtbl {
30019     BEGIN_INTERFACE
30020 
30021     /*** IUnknown methods ***/
30022     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
30023         ISharingConfigurationManager* This,
30024         REFIID riid,
30025         void **ppvObject);
30026 
30027     ULONG (STDMETHODCALLTYPE *AddRef)(
30028         ISharingConfigurationManager* This);
30029 
30030     ULONG (STDMETHODCALLTYPE *Release)(
30031         ISharingConfigurationManager* This);
30032 
30033     /*** ISharingConfigurationManager methods ***/
30034     HRESULT (STDMETHODCALLTYPE *CreateShare)(
30035         ISharingConfigurationManager* This,
30036         DEF_SHARE_ID dsid,
30037         SHARE_ROLE role);
30038 
30039     HRESULT (STDMETHODCALLTYPE *DeleteShare)(
30040         ISharingConfigurationManager* This,
30041         DEF_SHARE_ID dsid);
30042 
30043     HRESULT (STDMETHODCALLTYPE *ShareExists)(
30044         ISharingConfigurationManager* This,
30045         DEF_SHARE_ID dsid);
30046 
30047     HRESULT (STDMETHODCALLTYPE *GetSharePermissions)(
30048         ISharingConfigurationManager* This,
30049         DEF_SHARE_ID dsid,
30050         SHARE_ROLE *pRole);
30051 
30052     HRESULT (STDMETHODCALLTYPE *SharePrinters)(
30053         ISharingConfigurationManager* This);
30054 
30055     HRESULT (STDMETHODCALLTYPE *StopSharingPrinters)(
30056         ISharingConfigurationManager* This);
30057 
30058     HRESULT (STDMETHODCALLTYPE *ArePrintersShared)(
30059         ISharingConfigurationManager* This);
30060 
30061     END_INTERFACE
30062 } ISharingConfigurationManagerVtbl;
30063 interface ISharingConfigurationManager {
30064     CONST_VTBL ISharingConfigurationManagerVtbl* lpVtbl;
30065 };
30066 
30067 #ifdef COBJMACROS
30068 #ifndef WIDL_C_INLINE_WRAPPERS
30069 /*** IUnknown methods ***/
30070 #define ISharingConfigurationManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
30071 #define ISharingConfigurationManager_AddRef(This) (This)->lpVtbl->AddRef(This)
30072 #define ISharingConfigurationManager_Release(This) (This)->lpVtbl->Release(This)
30073 /*** ISharingConfigurationManager methods ***/
30074 #define ISharingConfigurationManager_CreateShare(This,dsid,role) (This)->lpVtbl->CreateShare(This,dsid,role)
30075 #define ISharingConfigurationManager_DeleteShare(This,dsid) (This)->lpVtbl->DeleteShare(This,dsid)
30076 #define ISharingConfigurationManager_ShareExists(This,dsid) (This)->lpVtbl->ShareExists(This,dsid)
30077 #define ISharingConfigurationManager_GetSharePermissions(This,dsid,pRole) (This)->lpVtbl->GetSharePermissions(This,dsid,pRole)
30078 #define ISharingConfigurationManager_SharePrinters(This) (This)->lpVtbl->SharePrinters(This)
30079 #define ISharingConfigurationManager_StopSharingPrinters(This) (This)->lpVtbl->StopSharingPrinters(This)
30080 #define ISharingConfigurationManager_ArePrintersShared(This) (This)->lpVtbl->ArePrintersShared(This)
30081 #else
30082 /*** IUnknown methods ***/
30083 static FORCEINLINE HRESULT ISharingConfigurationManager_QueryInterface(ISharingConfigurationManager* This,REFIID riid,void **ppvObject) {
30084     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
30085 }
30086 static FORCEINLINE ULONG ISharingConfigurationManager_AddRef(ISharingConfigurationManager* This) {
30087     return This->lpVtbl->AddRef(This);
30088 }
30089 static FORCEINLINE ULONG ISharingConfigurationManager_Release(ISharingConfigurationManager* This) {
30090     return This->lpVtbl->Release(This);
30091 }
30092 /*** ISharingConfigurationManager methods ***/
30093 static FORCEINLINE HRESULT ISharingConfigurationManager_CreateShare(ISharingConfigurationManager* This,DEF_SHARE_ID dsid,SHARE_ROLE role) {
30094     return This->lpVtbl->CreateShare(This,dsid,role);
30095 }
30096 static FORCEINLINE HRESULT ISharingConfigurationManager_DeleteShare(ISharingConfigurationManager* This,DEF_SHARE_ID dsid) {
30097     return This->lpVtbl->DeleteShare(This,dsid);
30098 }
30099 static FORCEINLINE HRESULT ISharingConfigurationManager_ShareExists(ISharingConfigurationManager* This,DEF_SHARE_ID dsid) {
30100     return This->lpVtbl->ShareExists(This,dsid);
30101 }
30102 static FORCEINLINE HRESULT ISharingConfigurationManager_GetSharePermissions(ISharingConfigurationManager* This,DEF_SHARE_ID dsid,SHARE_ROLE *pRole) {
30103     return This->lpVtbl->GetSharePermissions(This,dsid,pRole);
30104 }
30105 static FORCEINLINE HRESULT ISharingConfigurationManager_SharePrinters(ISharingConfigurationManager* This) {
30106     return This->lpVtbl->SharePrinters(This);
30107 }
30108 static FORCEINLINE HRESULT ISharingConfigurationManager_StopSharingPrinters(ISharingConfigurationManager* This) {
30109     return This->lpVtbl->StopSharingPrinters(This);
30110 }
30111 static FORCEINLINE HRESULT ISharingConfigurationManager_ArePrintersShared(ISharingConfigurationManager* This) {
30112     return This->lpVtbl->ArePrintersShared(This);
30113 }
30114 #endif
30115 #endif
30116 
30117 #endif
30118 
30119 HRESULT STDMETHODCALLTYPE ISharingConfigurationManager_CreateShare_Proxy(
30120     ISharingConfigurationManager* This,
30121     DEF_SHARE_ID dsid,
30122     SHARE_ROLE role);
30123 void __RPC_STUB ISharingConfigurationManager_CreateShare_Stub(
30124     IRpcStubBuffer* This,
30125     IRpcChannelBuffer* pRpcChannelBuffer,
30126     PRPC_MESSAGE pRpcMessage,
30127     DWORD* pdwStubPhase);
30128 HRESULT STDMETHODCALLTYPE ISharingConfigurationManager_DeleteShare_Proxy(
30129     ISharingConfigurationManager* This,
30130     DEF_SHARE_ID dsid);
30131 void __RPC_STUB ISharingConfigurationManager_DeleteShare_Stub(
30132     IRpcStubBuffer* This,
30133     IRpcChannelBuffer* pRpcChannelBuffer,
30134     PRPC_MESSAGE pRpcMessage,
30135     DWORD* pdwStubPhase);
30136 HRESULT STDMETHODCALLTYPE ISharingConfigurationManager_ShareExists_Proxy(
30137     ISharingConfigurationManager* This,
30138     DEF_SHARE_ID dsid);
30139 void __RPC_STUB ISharingConfigurationManager_ShareExists_Stub(
30140     IRpcStubBuffer* This,
30141     IRpcChannelBuffer* pRpcChannelBuffer,
30142     PRPC_MESSAGE pRpcMessage,
30143     DWORD* pdwStubPhase);
30144 HRESULT STDMETHODCALLTYPE ISharingConfigurationManager_GetSharePermissions_Proxy(
30145     ISharingConfigurationManager* This,
30146     DEF_SHARE_ID dsid,
30147     SHARE_ROLE *pRole);
30148 void __RPC_STUB ISharingConfigurationManager_GetSharePermissions_Stub(
30149     IRpcStubBuffer* This,
30150     IRpcChannelBuffer* pRpcChannelBuffer,
30151     PRPC_MESSAGE pRpcMessage,
30152     DWORD* pdwStubPhase);
30153 HRESULT STDMETHODCALLTYPE ISharingConfigurationManager_SharePrinters_Proxy(
30154     ISharingConfigurationManager* This);
30155 void __RPC_STUB ISharingConfigurationManager_SharePrinters_Stub(
30156     IRpcStubBuffer* This,
30157     IRpcChannelBuffer* pRpcChannelBuffer,
30158     PRPC_MESSAGE pRpcMessage,
30159     DWORD* pdwStubPhase);
30160 HRESULT STDMETHODCALLTYPE ISharingConfigurationManager_StopSharingPrinters_Proxy(
30161     ISharingConfigurationManager* This);
30162 void __RPC_STUB ISharingConfigurationManager_StopSharingPrinters_Stub(
30163     IRpcStubBuffer* This,
30164     IRpcChannelBuffer* pRpcChannelBuffer,
30165     PRPC_MESSAGE pRpcMessage,
30166     DWORD* pdwStubPhase);
30167 HRESULT STDMETHODCALLTYPE ISharingConfigurationManager_ArePrintersShared_Proxy(
30168     ISharingConfigurationManager* This);
30169 void __RPC_STUB ISharingConfigurationManager_ArePrintersShared_Stub(
30170     IRpcStubBuffer* This,
30171     IRpcChannelBuffer* pRpcChannelBuffer,
30172     PRPC_MESSAGE pRpcMessage,
30173     DWORD* pdwStubPhase);
30174 
30175 #endif  /* __ISharingConfigurationManager_INTERFACE_DEFINED__ */
30176 
30177 #endif
30178 
30179 /*****************************************************************************
30180  * IPreviousVersionsInfo interface
30181  */
30182 #ifndef __IPreviousVersionsInfo_INTERFACE_DEFINED__
30183 #define __IPreviousVersionsInfo_INTERFACE_DEFINED__
30184 
30185 DEFINE_GUID(IID_IPreviousVersionsInfo, 0x76e54780, 0xad74, 0x48e3, 0xa6,0x95, 0x3b,0xa9,0xa0,0xaf,0xf1,0x0d);
30186 #if defined(__cplusplus) && !defined(CINTERFACE)
30187 MIDL_INTERFACE("76e54780-ad74-48e3-a695-3ba9a0aff10d")
30188 IPreviousVersionsInfo : public IUnknown
30189 {
30190     virtual HRESULT STDMETHODCALLTYPE AreSnapshotsAvailable(
30191         LPCWSTR pszPath,
30192         WINBOOL fOkToBeSlow,
30193         WINBOOL *pfAvailable) = 0;
30194 
30195 };
30196 #ifdef __CRT_UUID_DECL
30197 __CRT_UUID_DECL(IPreviousVersionsInfo, 0x76e54780, 0xad74, 0x48e3, 0xa6,0x95, 0x3b,0xa9,0xa0,0xaf,0xf1,0x0d)
30198 #endif
30199 #else
30200 typedef struct IPreviousVersionsInfoVtbl {
30201     BEGIN_INTERFACE
30202 
30203     /*** IUnknown methods ***/
30204     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
30205         IPreviousVersionsInfo* This,
30206         REFIID riid,
30207         void **ppvObject);
30208 
30209     ULONG (STDMETHODCALLTYPE *AddRef)(
30210         IPreviousVersionsInfo* This);
30211 
30212     ULONG (STDMETHODCALLTYPE *Release)(
30213         IPreviousVersionsInfo* This);
30214 
30215     /*** IPreviousVersionsInfo methods ***/
30216     HRESULT (STDMETHODCALLTYPE *AreSnapshotsAvailable)(
30217         IPreviousVersionsInfo* This,
30218         LPCWSTR pszPath,
30219         WINBOOL fOkToBeSlow,
30220         WINBOOL *pfAvailable);
30221 
30222     END_INTERFACE
30223 } IPreviousVersionsInfoVtbl;
30224 interface IPreviousVersionsInfo {
30225     CONST_VTBL IPreviousVersionsInfoVtbl* lpVtbl;
30226 };
30227 
30228 #ifdef COBJMACROS
30229 #ifndef WIDL_C_INLINE_WRAPPERS
30230 /*** IUnknown methods ***/
30231 #define IPreviousVersionsInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
30232 #define IPreviousVersionsInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
30233 #define IPreviousVersionsInfo_Release(This) (This)->lpVtbl->Release(This)
30234 /*** IPreviousVersionsInfo methods ***/
30235 #define IPreviousVersionsInfo_AreSnapshotsAvailable(This,pszPath,fOkToBeSlow,pfAvailable) (This)->lpVtbl->AreSnapshotsAvailable(This,pszPath,fOkToBeSlow,pfAvailable)
30236 #else
30237 /*** IUnknown methods ***/
30238 static FORCEINLINE HRESULT IPreviousVersionsInfo_QueryInterface(IPreviousVersionsInfo* This,REFIID riid,void **ppvObject) {
30239     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
30240 }
30241 static FORCEINLINE ULONG IPreviousVersionsInfo_AddRef(IPreviousVersionsInfo* This) {
30242     return This->lpVtbl->AddRef(This);
30243 }
30244 static FORCEINLINE ULONG IPreviousVersionsInfo_Release(IPreviousVersionsInfo* This) {
30245     return This->lpVtbl->Release(This);
30246 }
30247 /*** IPreviousVersionsInfo methods ***/
30248 static FORCEINLINE HRESULT IPreviousVersionsInfo_AreSnapshotsAvailable(IPreviousVersionsInfo* This,LPCWSTR pszPath,WINBOOL fOkToBeSlow,WINBOOL *pfAvailable) {
30249     return This->lpVtbl->AreSnapshotsAvailable(This,pszPath,fOkToBeSlow,pfAvailable);
30250 }
30251 #endif
30252 #endif
30253 
30254 #endif
30255 
30256 HRESULT STDMETHODCALLTYPE IPreviousVersionsInfo_AreSnapshotsAvailable_Proxy(
30257     IPreviousVersionsInfo* This,
30258     LPCWSTR pszPath,
30259     WINBOOL fOkToBeSlow,
30260     WINBOOL *pfAvailable);
30261 void __RPC_STUB IPreviousVersionsInfo_AreSnapshotsAvailable_Stub(
30262     IRpcStubBuffer* This,
30263     IRpcChannelBuffer* pRpcChannelBuffer,
30264     PRPC_MESSAGE pRpcMessage,
30265     DWORD* pdwStubPhase);
30266 
30267 #endif  /* __IPreviousVersionsInfo_INTERFACE_DEFINED__ */
30268 
30269 
30270 #if NTDDI_VERSION >= NTDDI_VISTA
30271 /*****************************************************************************
30272  * IRelatedItem interface
30273  */
30274 #ifndef __IRelatedItem_INTERFACE_DEFINED__
30275 #define __IRelatedItem_INTERFACE_DEFINED__
30276 
30277 DEFINE_GUID(IID_IRelatedItem, 0xa73ce67a, 0x8ab1, 0x44f1, 0x8d,0x43, 0xd2,0xfc,0xbf,0x6b,0x1c,0xd0);
30278 #if defined(__cplusplus) && !defined(CINTERFACE)
30279 MIDL_INTERFACE("a73ce67a-8ab1-44f1-8d43-d2fcbf6b1cd0")
30280 IRelatedItem : public IUnknown
30281 {
30282     virtual HRESULT STDMETHODCALLTYPE GetItemIDList(
30283         PIDLIST_ABSOLUTE *ppidl) = 0;
30284 
30285     virtual HRESULT STDMETHODCALLTYPE GetItem(
30286         IShellItem **ppsi) = 0;
30287 
30288 };
30289 #ifdef __CRT_UUID_DECL
30290 __CRT_UUID_DECL(IRelatedItem, 0xa73ce67a, 0x8ab1, 0x44f1, 0x8d,0x43, 0xd2,0xfc,0xbf,0x6b,0x1c,0xd0)
30291 #endif
30292 #else
30293 typedef struct IRelatedItemVtbl {
30294     BEGIN_INTERFACE
30295 
30296     /*** IUnknown methods ***/
30297     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
30298         IRelatedItem* This,
30299         REFIID riid,
30300         void **ppvObject);
30301 
30302     ULONG (STDMETHODCALLTYPE *AddRef)(
30303         IRelatedItem* This);
30304 
30305     ULONG (STDMETHODCALLTYPE *Release)(
30306         IRelatedItem* This);
30307 
30308     /*** IRelatedItem methods ***/
30309     HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
30310         IRelatedItem* This,
30311         PIDLIST_ABSOLUTE *ppidl);
30312 
30313     HRESULT (STDMETHODCALLTYPE *GetItem)(
30314         IRelatedItem* This,
30315         IShellItem **ppsi);
30316 
30317     END_INTERFACE
30318 } IRelatedItemVtbl;
30319 interface IRelatedItem {
30320     CONST_VTBL IRelatedItemVtbl* lpVtbl;
30321 };
30322 
30323 #ifdef COBJMACROS
30324 #ifndef WIDL_C_INLINE_WRAPPERS
30325 /*** IUnknown methods ***/
30326 #define IRelatedItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
30327 #define IRelatedItem_AddRef(This) (This)->lpVtbl->AddRef(This)
30328 #define IRelatedItem_Release(This) (This)->lpVtbl->Release(This)
30329 /*** IRelatedItem methods ***/
30330 #define IRelatedItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
30331 #define IRelatedItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
30332 #else
30333 /*** IUnknown methods ***/
30334 static FORCEINLINE HRESULT IRelatedItem_QueryInterface(IRelatedItem* This,REFIID riid,void **ppvObject) {
30335     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
30336 }
30337 static FORCEINLINE ULONG IRelatedItem_AddRef(IRelatedItem* This) {
30338     return This->lpVtbl->AddRef(This);
30339 }
30340 static FORCEINLINE ULONG IRelatedItem_Release(IRelatedItem* This) {
30341     return This->lpVtbl->Release(This);
30342 }
30343 /*** IRelatedItem methods ***/
30344 static FORCEINLINE HRESULT IRelatedItem_GetItemIDList(IRelatedItem* This,PIDLIST_ABSOLUTE *ppidl) {
30345     return This->lpVtbl->GetItemIDList(This,ppidl);
30346 }
30347 static FORCEINLINE HRESULT IRelatedItem_GetItem(IRelatedItem* This,IShellItem **ppsi) {
30348     return This->lpVtbl->GetItem(This,ppsi);
30349 }
30350 #endif
30351 #endif
30352 
30353 #endif
30354 
30355 HRESULT STDMETHODCALLTYPE IRelatedItem_GetItemIDList_Proxy(
30356     IRelatedItem* This,
30357     PIDLIST_ABSOLUTE *ppidl);
30358 void __RPC_STUB IRelatedItem_GetItemIDList_Stub(
30359     IRpcStubBuffer* This,
30360     IRpcChannelBuffer* pRpcChannelBuffer,
30361     PRPC_MESSAGE pRpcMessage,
30362     DWORD* pdwStubPhase);
30363 HRESULT STDMETHODCALLTYPE IRelatedItem_GetItem_Proxy(
30364     IRelatedItem* This,
30365     IShellItem **ppsi);
30366 void __RPC_STUB IRelatedItem_GetItem_Stub(
30367     IRpcStubBuffer* This,
30368     IRpcChannelBuffer* pRpcChannelBuffer,
30369     PRPC_MESSAGE pRpcMessage,
30370     DWORD* pdwStubPhase);
30371 
30372 #endif  /* __IRelatedItem_INTERFACE_DEFINED__ */
30373 
30374 
30375 /*****************************************************************************
30376  * IIdentityName interface
30377  */
30378 #ifndef __IIdentityName_INTERFACE_DEFINED__
30379 #define __IIdentityName_INTERFACE_DEFINED__
30380 
30381 DEFINE_GUID(IID_IIdentityName, 0x7d903fca, 0xd6f9, 0x4810, 0x83,0x32, 0x94,0x6c,0x01,0x77,0xe2,0x47);
30382 #if defined(__cplusplus) && !defined(CINTERFACE)
30383 MIDL_INTERFACE("7d903fca-d6f9-4810-8332-946c0177e247")
30384 IIdentityName : public IRelatedItem
30385 {
30386 };
30387 #ifdef __CRT_UUID_DECL
30388 __CRT_UUID_DECL(IIdentityName, 0x7d903fca, 0xd6f9, 0x4810, 0x83,0x32, 0x94,0x6c,0x01,0x77,0xe2,0x47)
30389 #endif
30390 #else
30391 typedef struct IIdentityNameVtbl {
30392     BEGIN_INTERFACE
30393 
30394     /*** IUnknown methods ***/
30395     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
30396         IIdentityName* This,
30397         REFIID riid,
30398         void **ppvObject);
30399 
30400     ULONG (STDMETHODCALLTYPE *AddRef)(
30401         IIdentityName* This);
30402 
30403     ULONG (STDMETHODCALLTYPE *Release)(
30404         IIdentityName* This);
30405 
30406     /*** IRelatedItem methods ***/
30407     HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
30408         IIdentityName* This,
30409         PIDLIST_ABSOLUTE *ppidl);
30410 
30411     HRESULT (STDMETHODCALLTYPE *GetItem)(
30412         IIdentityName* This,
30413         IShellItem **ppsi);
30414 
30415     END_INTERFACE
30416 } IIdentityNameVtbl;
30417 interface IIdentityName {
30418     CONST_VTBL IIdentityNameVtbl* lpVtbl;
30419 };
30420 
30421 #ifdef COBJMACROS
30422 #ifndef WIDL_C_INLINE_WRAPPERS
30423 /*** IUnknown methods ***/
30424 #define IIdentityName_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
30425 #define IIdentityName_AddRef(This) (This)->lpVtbl->AddRef(This)
30426 #define IIdentityName_Release(This) (This)->lpVtbl->Release(This)
30427 /*** IRelatedItem methods ***/
30428 #define IIdentityName_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
30429 #define IIdentityName_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
30430 #else
30431 /*** IUnknown methods ***/
30432 static FORCEINLINE HRESULT IIdentityName_QueryInterface(IIdentityName* This,REFIID riid,void **ppvObject) {
30433     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
30434 }
30435 static FORCEINLINE ULONG IIdentityName_AddRef(IIdentityName* This) {
30436     return This->lpVtbl->AddRef(This);
30437 }
30438 static FORCEINLINE ULONG IIdentityName_Release(IIdentityName* This) {
30439     return This->lpVtbl->Release(This);
30440 }
30441 /*** IRelatedItem methods ***/
30442 static FORCEINLINE HRESULT IIdentityName_GetItemIDList(IIdentityName* This,PIDLIST_ABSOLUTE *ppidl) {
30443     return This->lpVtbl->GetItemIDList(This,ppidl);
30444 }
30445 static FORCEINLINE HRESULT IIdentityName_GetItem(IIdentityName* This,IShellItem **ppsi) {
30446     return This->lpVtbl->GetItem(This,ppsi);
30447 }
30448 #endif
30449 #endif
30450 
30451 #endif
30452 
30453 
30454 #endif  /* __IIdentityName_INTERFACE_DEFINED__ */
30455 
30456 
30457 /*****************************************************************************
30458  * IDelegateItem interface
30459  */
30460 #ifndef __IDelegateItem_INTERFACE_DEFINED__
30461 #define __IDelegateItem_INTERFACE_DEFINED__
30462 
30463 DEFINE_GUID(IID_IDelegateItem, 0x3c5a1c94, 0xc951, 0x4cb7, 0xbb,0x6d, 0x3b,0x93,0xf3,0x0c,0xce,0x93);
30464 #if defined(__cplusplus) && !defined(CINTERFACE)
30465 MIDL_INTERFACE("3c5a1c94-c951-4cb7-bb6d-3b93f30cce93")
30466 IDelegateItem : public IRelatedItem
30467 {
30468 };
30469 #ifdef __CRT_UUID_DECL
30470 __CRT_UUID_DECL(IDelegateItem, 0x3c5a1c94, 0xc951, 0x4cb7, 0xbb,0x6d, 0x3b,0x93,0xf3,0x0c,0xce,0x93)
30471 #endif
30472 #else
30473 typedef struct IDelegateItemVtbl {
30474     BEGIN_INTERFACE
30475 
30476     /*** IUnknown methods ***/
30477     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
30478         IDelegateItem* This,
30479         REFIID riid,
30480         void **ppvObject);
30481 
30482     ULONG (STDMETHODCALLTYPE *AddRef)(
30483         IDelegateItem* This);
30484 
30485     ULONG (STDMETHODCALLTYPE *Release)(
30486         IDelegateItem* This);
30487 
30488     /*** IRelatedItem methods ***/
30489     HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
30490         IDelegateItem* This,
30491         PIDLIST_ABSOLUTE *ppidl);
30492 
30493     HRESULT (STDMETHODCALLTYPE *GetItem)(
30494         IDelegateItem* This,
30495         IShellItem **ppsi);
30496 
30497     END_INTERFACE
30498 } IDelegateItemVtbl;
30499 interface IDelegateItem {
30500     CONST_VTBL IDelegateItemVtbl* lpVtbl;
30501 };
30502 
30503 #ifdef COBJMACROS
30504 #ifndef WIDL_C_INLINE_WRAPPERS
30505 /*** IUnknown methods ***/
30506 #define IDelegateItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
30507 #define IDelegateItem_AddRef(This) (This)->lpVtbl->AddRef(This)
30508 #define IDelegateItem_Release(This) (This)->lpVtbl->Release(This)
30509 /*** IRelatedItem methods ***/
30510 #define IDelegateItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
30511 #define IDelegateItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
30512 #else
30513 /*** IUnknown methods ***/
30514 static FORCEINLINE HRESULT IDelegateItem_QueryInterface(IDelegateItem* This,REFIID riid,void **ppvObject) {
30515     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
30516 }
30517 static FORCEINLINE ULONG IDelegateItem_AddRef(IDelegateItem* This) {
30518     return This->lpVtbl->AddRef(This);
30519 }
30520 static FORCEINLINE ULONG IDelegateItem_Release(IDelegateItem* This) {
30521     return This->lpVtbl->Release(This);
30522 }
30523 /*** IRelatedItem methods ***/
30524 static FORCEINLINE HRESULT IDelegateItem_GetItemIDList(IDelegateItem* This,PIDLIST_ABSOLUTE *ppidl) {
30525     return This->lpVtbl->GetItemIDList(This,ppidl);
30526 }
30527 static FORCEINLINE HRESULT IDelegateItem_GetItem(IDelegateItem* This,IShellItem **ppsi) {
30528     return This->lpVtbl->GetItem(This,ppsi);
30529 }
30530 #endif
30531 #endif
30532 
30533 #endif
30534 
30535 
30536 #endif  /* __IDelegateItem_INTERFACE_DEFINED__ */
30537 
30538 
30539 /*****************************************************************************
30540  * ICurrentItem interface
30541  */
30542 #ifndef __ICurrentItem_INTERFACE_DEFINED__
30543 #define __ICurrentItem_INTERFACE_DEFINED__
30544 
30545 DEFINE_GUID(IID_ICurrentItem, 0x240a7174, 0xd653, 0x4a1d, 0xa6,0xd3, 0xd4,0x94,0x3c,0xfb,0xfe,0x3d);
30546 #if defined(__cplusplus) && !defined(CINTERFACE)
30547 MIDL_INTERFACE("240a7174-d653-4a1d-a6d3-d4943cfbfe3d")
30548 ICurrentItem : public IRelatedItem
30549 {
30550 };
30551 #ifdef __CRT_UUID_DECL
30552 __CRT_UUID_DECL(ICurrentItem, 0x240a7174, 0xd653, 0x4a1d, 0xa6,0xd3, 0xd4,0x94,0x3c,0xfb,0xfe,0x3d)
30553 #endif
30554 #else
30555 typedef struct ICurrentItemVtbl {
30556     BEGIN_INTERFACE
30557 
30558     /*** IUnknown methods ***/
30559     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
30560         ICurrentItem* This,
30561         REFIID riid,
30562         void **ppvObject);
30563 
30564     ULONG (STDMETHODCALLTYPE *AddRef)(
30565         ICurrentItem* This);
30566 
30567     ULONG (STDMETHODCALLTYPE *Release)(
30568         ICurrentItem* This);
30569 
30570     /*** IRelatedItem methods ***/
30571     HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
30572         ICurrentItem* This,
30573         PIDLIST_ABSOLUTE *ppidl);
30574 
30575     HRESULT (STDMETHODCALLTYPE *GetItem)(
30576         ICurrentItem* This,
30577         IShellItem **ppsi);
30578 
30579     END_INTERFACE
30580 } ICurrentItemVtbl;
30581 interface ICurrentItem {
30582     CONST_VTBL ICurrentItemVtbl* lpVtbl;
30583 };
30584 
30585 #ifdef COBJMACROS
30586 #ifndef WIDL_C_INLINE_WRAPPERS
30587 /*** IUnknown methods ***/
30588 #define ICurrentItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
30589 #define ICurrentItem_AddRef(This) (This)->lpVtbl->AddRef(This)
30590 #define ICurrentItem_Release(This) (This)->lpVtbl->Release(This)
30591 /*** IRelatedItem methods ***/
30592 #define ICurrentItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
30593 #define ICurrentItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
30594 #else
30595 /*** IUnknown methods ***/
30596 static FORCEINLINE HRESULT ICurrentItem_QueryInterface(ICurrentItem* This,REFIID riid,void **ppvObject) {
30597     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
30598 }
30599 static FORCEINLINE ULONG ICurrentItem_AddRef(ICurrentItem* This) {
30600     return This->lpVtbl->AddRef(This);
30601 }
30602 static FORCEINLINE ULONG ICurrentItem_Release(ICurrentItem* This) {
30603     return This->lpVtbl->Release(This);
30604 }
30605 /*** IRelatedItem methods ***/
30606 static FORCEINLINE HRESULT ICurrentItem_GetItemIDList(ICurrentItem* This,PIDLIST_ABSOLUTE *ppidl) {
30607     return This->lpVtbl->GetItemIDList(This,ppidl);
30608 }
30609 static FORCEINLINE HRESULT ICurrentItem_GetItem(ICurrentItem* This,IShellItem **ppsi) {
30610     return This->lpVtbl->GetItem(This,ppsi);
30611 }
30612 #endif
30613 #endif
30614 
30615 #endif
30616 
30617 
30618 #endif  /* __ICurrentItem_INTERFACE_DEFINED__ */
30619 
30620 
30621 /*****************************************************************************
30622  * ITransferMediumItem interface
30623  */
30624 #ifndef __ITransferMediumItem_INTERFACE_DEFINED__
30625 #define __ITransferMediumItem_INTERFACE_DEFINED__
30626 
30627 DEFINE_GUID(IID_ITransferMediumItem, 0x77f295d5, 0x2d6f, 0x4e19, 0xb8,0xae, 0x32,0x2f,0x3e,0x72,0x1a,0xb5);
30628 #if defined(__cplusplus) && !defined(CINTERFACE)
30629 MIDL_INTERFACE("77f295d5-2d6f-4e19-b8ae-322f3e721ab5")
30630 ITransferMediumItem : public IRelatedItem
30631 {
30632 };
30633 #ifdef __CRT_UUID_DECL
30634 __CRT_UUID_DECL(ITransferMediumItem, 0x77f295d5, 0x2d6f, 0x4e19, 0xb8,0xae, 0x32,0x2f,0x3e,0x72,0x1a,0xb5)
30635 #endif
30636 #else
30637 typedef struct ITransferMediumItemVtbl {
30638     BEGIN_INTERFACE
30639 
30640     /*** IUnknown methods ***/
30641     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
30642         ITransferMediumItem* This,
30643         REFIID riid,
30644         void **ppvObject);
30645 
30646     ULONG (STDMETHODCALLTYPE *AddRef)(
30647         ITransferMediumItem* This);
30648 
30649     ULONG (STDMETHODCALLTYPE *Release)(
30650         ITransferMediumItem* This);
30651 
30652     /*** IRelatedItem methods ***/
30653     HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
30654         ITransferMediumItem* This,
30655         PIDLIST_ABSOLUTE *ppidl);
30656 
30657     HRESULT (STDMETHODCALLTYPE *GetItem)(
30658         ITransferMediumItem* This,
30659         IShellItem **ppsi);
30660 
30661     END_INTERFACE
30662 } ITransferMediumItemVtbl;
30663 interface ITransferMediumItem {
30664     CONST_VTBL ITransferMediumItemVtbl* lpVtbl;
30665 };
30666 
30667 #ifdef COBJMACROS
30668 #ifndef WIDL_C_INLINE_WRAPPERS
30669 /*** IUnknown methods ***/
30670 #define ITransferMediumItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
30671 #define ITransferMediumItem_AddRef(This) (This)->lpVtbl->AddRef(This)
30672 #define ITransferMediumItem_Release(This) (This)->lpVtbl->Release(This)
30673 /*** IRelatedItem methods ***/
30674 #define ITransferMediumItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
30675 #define ITransferMediumItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
30676 #else
30677 /*** IUnknown methods ***/
30678 static FORCEINLINE HRESULT ITransferMediumItem_QueryInterface(ITransferMediumItem* This,REFIID riid,void **ppvObject) {
30679     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
30680 }
30681 static FORCEINLINE ULONG ITransferMediumItem_AddRef(ITransferMediumItem* This) {
30682     return This->lpVtbl->AddRef(This);
30683 }
30684 static FORCEINLINE ULONG ITransferMediumItem_Release(ITransferMediumItem* This) {
30685     return This->lpVtbl->Release(This);
30686 }
30687 /*** IRelatedItem methods ***/
30688 static FORCEINLINE HRESULT ITransferMediumItem_GetItemIDList(ITransferMediumItem* This,PIDLIST_ABSOLUTE *ppidl) {
30689     return This->lpVtbl->GetItemIDList(This,ppidl);
30690 }
30691 static FORCEINLINE HRESULT ITransferMediumItem_GetItem(ITransferMediumItem* This,IShellItem **ppsi) {
30692     return This->lpVtbl->GetItem(This,ppsi);
30693 }
30694 #endif
30695 #endif
30696 
30697 #endif
30698 
30699 
30700 #endif  /* __ITransferMediumItem_INTERFACE_DEFINED__ */
30701 
30702 
30703 /*****************************************************************************
30704  * IUseToBrowseItem interface
30705  */
30706 #ifndef __IUseToBrowseItem_INTERFACE_DEFINED__
30707 #define __IUseToBrowseItem_INTERFACE_DEFINED__
30708 
30709 DEFINE_GUID(IID_IUseToBrowseItem, 0x05edda5c, 0x98a3, 0x4717, 0x8a,0xdb, 0xc5,0xe7,0xda,0x99,0x1e,0xb1);
30710 #if defined(__cplusplus) && !defined(CINTERFACE)
30711 MIDL_INTERFACE("05edda5c-98a3-4717-8adb-c5e7da991eb1")
30712 IUseToBrowseItem : public IRelatedItem
30713 {
30714 };
30715 #ifdef __CRT_UUID_DECL
30716 __CRT_UUID_DECL(IUseToBrowseItem, 0x05edda5c, 0x98a3, 0x4717, 0x8a,0xdb, 0xc5,0xe7,0xda,0x99,0x1e,0xb1)
30717 #endif
30718 #else
30719 typedef struct IUseToBrowseItemVtbl {
30720     BEGIN_INTERFACE
30721 
30722     /*** IUnknown methods ***/
30723     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
30724         IUseToBrowseItem* This,
30725         REFIID riid,
30726         void **ppvObject);
30727 
30728     ULONG (STDMETHODCALLTYPE *AddRef)(
30729         IUseToBrowseItem* This);
30730 
30731     ULONG (STDMETHODCALLTYPE *Release)(
30732         IUseToBrowseItem* This);
30733 
30734     /*** IRelatedItem methods ***/
30735     HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
30736         IUseToBrowseItem* This,
30737         PIDLIST_ABSOLUTE *ppidl);
30738 
30739     HRESULT (STDMETHODCALLTYPE *GetItem)(
30740         IUseToBrowseItem* This,
30741         IShellItem **ppsi);
30742 
30743     END_INTERFACE
30744 } IUseToBrowseItemVtbl;
30745 interface IUseToBrowseItem {
30746     CONST_VTBL IUseToBrowseItemVtbl* lpVtbl;
30747 };
30748 
30749 #ifdef COBJMACROS
30750 #ifndef WIDL_C_INLINE_WRAPPERS
30751 /*** IUnknown methods ***/
30752 #define IUseToBrowseItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
30753 #define IUseToBrowseItem_AddRef(This) (This)->lpVtbl->AddRef(This)
30754 #define IUseToBrowseItem_Release(This) (This)->lpVtbl->Release(This)
30755 /*** IRelatedItem methods ***/
30756 #define IUseToBrowseItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
30757 #define IUseToBrowseItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
30758 #else
30759 /*** IUnknown methods ***/
30760 static FORCEINLINE HRESULT IUseToBrowseItem_QueryInterface(IUseToBrowseItem* This,REFIID riid,void **ppvObject) {
30761     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
30762 }
30763 static FORCEINLINE ULONG IUseToBrowseItem_AddRef(IUseToBrowseItem* This) {
30764     return This->lpVtbl->AddRef(This);
30765 }
30766 static FORCEINLINE ULONG IUseToBrowseItem_Release(IUseToBrowseItem* This) {
30767     return This->lpVtbl->Release(This);
30768 }
30769 /*** IRelatedItem methods ***/
30770 static FORCEINLINE HRESULT IUseToBrowseItem_GetItemIDList(IUseToBrowseItem* This,PIDLIST_ABSOLUTE *ppidl) {
30771     return This->lpVtbl->GetItemIDList(This,ppidl);
30772 }
30773 static FORCEINLINE HRESULT IUseToBrowseItem_GetItem(IUseToBrowseItem* This,IShellItem **ppsi) {
30774     return This->lpVtbl->GetItem(This,ppsi);
30775 }
30776 #endif
30777 #endif
30778 
30779 #endif
30780 
30781 
30782 #endif  /* __IUseToBrowseItem_INTERFACE_DEFINED__ */
30783 
30784 
30785 /*****************************************************************************
30786  * IDisplayItem interface
30787  */
30788 #ifndef __IDisplayItem_INTERFACE_DEFINED__
30789 #define __IDisplayItem_INTERFACE_DEFINED__
30790 
30791 DEFINE_GUID(IID_IDisplayItem, 0xc6fd5997, 0x9f6b, 0x4888, 0x87,0x03, 0x94,0xe8,0x0e,0x8c,0xde,0x3f);
30792 #if defined(__cplusplus) && !defined(CINTERFACE)
30793 MIDL_INTERFACE("c6fd5997-9f6b-4888-8703-94e80e8cde3f")
30794 IDisplayItem : public IRelatedItem
30795 {
30796 };
30797 #ifdef __CRT_UUID_DECL
30798 __CRT_UUID_DECL(IDisplayItem, 0xc6fd5997, 0x9f6b, 0x4888, 0x87,0x03, 0x94,0xe8,0x0e,0x8c,0xde,0x3f)
30799 #endif
30800 #else
30801 typedef struct IDisplayItemVtbl {
30802     BEGIN_INTERFACE
30803 
30804     /*** IUnknown methods ***/
30805     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
30806         IDisplayItem* This,
30807         REFIID riid,
30808         void **ppvObject);
30809 
30810     ULONG (STDMETHODCALLTYPE *AddRef)(
30811         IDisplayItem* This);
30812 
30813     ULONG (STDMETHODCALLTYPE *Release)(
30814         IDisplayItem* This);
30815 
30816     /*** IRelatedItem methods ***/
30817     HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
30818         IDisplayItem* This,
30819         PIDLIST_ABSOLUTE *ppidl);
30820 
30821     HRESULT (STDMETHODCALLTYPE *GetItem)(
30822         IDisplayItem* This,
30823         IShellItem **ppsi);
30824 
30825     END_INTERFACE
30826 } IDisplayItemVtbl;
30827 interface IDisplayItem {
30828     CONST_VTBL IDisplayItemVtbl* lpVtbl;
30829 };
30830 
30831 #ifdef COBJMACROS
30832 #ifndef WIDL_C_INLINE_WRAPPERS
30833 /*** IUnknown methods ***/
30834 #define IDisplayItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
30835 #define IDisplayItem_AddRef(This) (This)->lpVtbl->AddRef(This)
30836 #define IDisplayItem_Release(This) (This)->lpVtbl->Release(This)
30837 /*** IRelatedItem methods ***/
30838 #define IDisplayItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
30839 #define IDisplayItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
30840 #else
30841 /*** IUnknown methods ***/
30842 static FORCEINLINE HRESULT IDisplayItem_QueryInterface(IDisplayItem* This,REFIID riid,void **ppvObject) {
30843     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
30844 }
30845 static FORCEINLINE ULONG IDisplayItem_AddRef(IDisplayItem* This) {
30846     return This->lpVtbl->AddRef(This);
30847 }
30848 static FORCEINLINE ULONG IDisplayItem_Release(IDisplayItem* This) {
30849     return This->lpVtbl->Release(This);
30850 }
30851 /*** IRelatedItem methods ***/
30852 static FORCEINLINE HRESULT IDisplayItem_GetItemIDList(IDisplayItem* This,PIDLIST_ABSOLUTE *ppidl) {
30853     return This->lpVtbl->GetItemIDList(This,ppidl);
30854 }
30855 static FORCEINLINE HRESULT IDisplayItem_GetItem(IDisplayItem* This,IShellItem **ppsi) {
30856     return This->lpVtbl->GetItem(This,ppsi);
30857 }
30858 #endif
30859 #endif
30860 
30861 #endif
30862 
30863 
30864 #endif  /* __IDisplayItem_INTERFACE_DEFINED__ */
30865 
30866 
30867 /*****************************************************************************
30868  * IViewStateIdentityItem interface
30869  */
30870 #ifndef __IViewStateIdentityItem_INTERFACE_DEFINED__
30871 #define __IViewStateIdentityItem_INTERFACE_DEFINED__
30872 
30873 DEFINE_GUID(IID_IViewStateIdentityItem, 0x9d264146, 0xa94f, 0x4195, 0x9f,0x9f, 0x3b,0xb1,0x2c,0xe0,0xc9,0x55);
30874 #if defined(__cplusplus) && !defined(CINTERFACE)
30875 MIDL_INTERFACE("9d264146-a94f-4195-9f9f-3bb12ce0c955")
30876 IViewStateIdentityItem : public IRelatedItem
30877 {
30878 };
30879 #ifdef __CRT_UUID_DECL
30880 __CRT_UUID_DECL(IViewStateIdentityItem, 0x9d264146, 0xa94f, 0x4195, 0x9f,0x9f, 0x3b,0xb1,0x2c,0xe0,0xc9,0x55)
30881 #endif
30882 #else
30883 typedef struct IViewStateIdentityItemVtbl {
30884     BEGIN_INTERFACE
30885 
30886     /*** IUnknown methods ***/
30887     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
30888         IViewStateIdentityItem* This,
30889         REFIID riid,
30890         void **ppvObject);
30891 
30892     ULONG (STDMETHODCALLTYPE *AddRef)(
30893         IViewStateIdentityItem* This);
30894 
30895     ULONG (STDMETHODCALLTYPE *Release)(
30896         IViewStateIdentityItem* This);
30897 
30898     /*** IRelatedItem methods ***/
30899     HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
30900         IViewStateIdentityItem* This,
30901         PIDLIST_ABSOLUTE *ppidl);
30902 
30903     HRESULT (STDMETHODCALLTYPE *GetItem)(
30904         IViewStateIdentityItem* This,
30905         IShellItem **ppsi);
30906 
30907     END_INTERFACE
30908 } IViewStateIdentityItemVtbl;
30909 interface IViewStateIdentityItem {
30910     CONST_VTBL IViewStateIdentityItemVtbl* lpVtbl;
30911 };
30912 
30913 #ifdef COBJMACROS
30914 #ifndef WIDL_C_INLINE_WRAPPERS
30915 /*** IUnknown methods ***/
30916 #define IViewStateIdentityItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
30917 #define IViewStateIdentityItem_AddRef(This) (This)->lpVtbl->AddRef(This)
30918 #define IViewStateIdentityItem_Release(This) (This)->lpVtbl->Release(This)
30919 /*** IRelatedItem methods ***/
30920 #define IViewStateIdentityItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
30921 #define IViewStateIdentityItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
30922 #else
30923 /*** IUnknown methods ***/
30924 static FORCEINLINE HRESULT IViewStateIdentityItem_QueryInterface(IViewStateIdentityItem* This,REFIID riid,void **ppvObject) {
30925     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
30926 }
30927 static FORCEINLINE ULONG IViewStateIdentityItem_AddRef(IViewStateIdentityItem* This) {
30928     return This->lpVtbl->AddRef(This);
30929 }
30930 static FORCEINLINE ULONG IViewStateIdentityItem_Release(IViewStateIdentityItem* This) {
30931     return This->lpVtbl->Release(This);
30932 }
30933 /*** IRelatedItem methods ***/
30934 static FORCEINLINE HRESULT IViewStateIdentityItem_GetItemIDList(IViewStateIdentityItem* This,PIDLIST_ABSOLUTE *ppidl) {
30935     return This->lpVtbl->GetItemIDList(This,ppidl);
30936 }
30937 static FORCEINLINE HRESULT IViewStateIdentityItem_GetItem(IViewStateIdentityItem* This,IShellItem **ppsi) {
30938     return This->lpVtbl->GetItem(This,ppsi);
30939 }
30940 #endif
30941 #endif
30942 
30943 #endif
30944 
30945 
30946 #endif  /* __IViewStateIdentityItem_INTERFACE_DEFINED__ */
30947 
30948 
30949 /*****************************************************************************
30950  * IPreviewItem interface
30951  */
30952 #ifndef __IPreviewItem_INTERFACE_DEFINED__
30953 #define __IPreviewItem_INTERFACE_DEFINED__
30954 
30955 DEFINE_GUID(IID_IPreviewItem, 0x36149969, 0x0a8f, 0x49c8, 0x8b,0x00, 0x4a,0xec,0xb2,0x02,0x22,0xfb);
30956 #if defined(__cplusplus) && !defined(CINTERFACE)
30957 MIDL_INTERFACE("36149969-0a8f-49c8-8b00-4aecb20222fb")
30958 IPreviewItem : public IRelatedItem
30959 {
30960 };
30961 #ifdef __CRT_UUID_DECL
30962 __CRT_UUID_DECL(IPreviewItem, 0x36149969, 0x0a8f, 0x49c8, 0x8b,0x00, 0x4a,0xec,0xb2,0x02,0x22,0xfb)
30963 #endif
30964 #else
30965 typedef struct IPreviewItemVtbl {
30966     BEGIN_INTERFACE
30967 
30968     /*** IUnknown methods ***/
30969     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
30970         IPreviewItem* This,
30971         REFIID riid,
30972         void **ppvObject);
30973 
30974     ULONG (STDMETHODCALLTYPE *AddRef)(
30975         IPreviewItem* This);
30976 
30977     ULONG (STDMETHODCALLTYPE *Release)(
30978         IPreviewItem* This);
30979 
30980     /*** IRelatedItem methods ***/
30981     HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
30982         IPreviewItem* This,
30983         PIDLIST_ABSOLUTE *ppidl);
30984 
30985     HRESULT (STDMETHODCALLTYPE *GetItem)(
30986         IPreviewItem* This,
30987         IShellItem **ppsi);
30988 
30989     END_INTERFACE
30990 } IPreviewItemVtbl;
30991 interface IPreviewItem {
30992     CONST_VTBL IPreviewItemVtbl* lpVtbl;
30993 };
30994 
30995 #ifdef COBJMACROS
30996 #ifndef WIDL_C_INLINE_WRAPPERS
30997 /*** IUnknown methods ***/
30998 #define IPreviewItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
30999 #define IPreviewItem_AddRef(This) (This)->lpVtbl->AddRef(This)
31000 #define IPreviewItem_Release(This) (This)->lpVtbl->Release(This)
31001 /*** IRelatedItem methods ***/
31002 #define IPreviewItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
31003 #define IPreviewItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
31004 #else
31005 /*** IUnknown methods ***/
31006 static FORCEINLINE HRESULT IPreviewItem_QueryInterface(IPreviewItem* This,REFIID riid,void **ppvObject) {
31007     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
31008 }
31009 static FORCEINLINE ULONG IPreviewItem_AddRef(IPreviewItem* This) {
31010     return This->lpVtbl->AddRef(This);
31011 }
31012 static FORCEINLINE ULONG IPreviewItem_Release(IPreviewItem* This) {
31013     return This->lpVtbl->Release(This);
31014 }
31015 /*** IRelatedItem methods ***/
31016 static FORCEINLINE HRESULT IPreviewItem_GetItemIDList(IPreviewItem* This,PIDLIST_ABSOLUTE *ppidl) {
31017     return This->lpVtbl->GetItemIDList(This,ppidl);
31018 }
31019 static FORCEINLINE HRESULT IPreviewItem_GetItem(IPreviewItem* This,IShellItem **ppsi) {
31020     return This->lpVtbl->GetItem(This,ppsi);
31021 }
31022 #endif
31023 #endif
31024 
31025 #endif
31026 
31027 
31028 #endif  /* __IPreviewItem_INTERFACE_DEFINED__ */
31029 
31030 #endif
31031 
31032 /*****************************************************************************
31033  * IDestinationStreamFactory interface
31034  */
31035 #ifndef __IDestinationStreamFactory_INTERFACE_DEFINED__
31036 #define __IDestinationStreamFactory_INTERFACE_DEFINED__
31037 
31038 DEFINE_GUID(IID_IDestinationStreamFactory, 0x8a87781b, 0x39a7, 0x4a1f, 0xaa,0xb3, 0xa3,0x9b,0x9c,0x34,0xa7,0xd9);
31039 #if defined(__cplusplus) && !defined(CINTERFACE)
31040 MIDL_INTERFACE("8a87781b-39a7-4a1f-aab3-a39b9c34a7d9")
31041 IDestinationStreamFactory : public IUnknown
31042 {
31043     virtual HRESULT STDMETHODCALLTYPE GetDestinationStream(
31044         IStream **ppstm) = 0;
31045 
31046 };
31047 #ifdef __CRT_UUID_DECL
31048 __CRT_UUID_DECL(IDestinationStreamFactory, 0x8a87781b, 0x39a7, 0x4a1f, 0xaa,0xb3, 0xa3,0x9b,0x9c,0x34,0xa7,0xd9)
31049 #endif
31050 #else
31051 typedef struct IDestinationStreamFactoryVtbl {
31052     BEGIN_INTERFACE
31053 
31054     /*** IUnknown methods ***/
31055     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
31056         IDestinationStreamFactory* This,
31057         REFIID riid,
31058         void **ppvObject);
31059 
31060     ULONG (STDMETHODCALLTYPE *AddRef)(
31061         IDestinationStreamFactory* This);
31062 
31063     ULONG (STDMETHODCALLTYPE *Release)(
31064         IDestinationStreamFactory* This);
31065 
31066     /*** IDestinationStreamFactory methods ***/
31067     HRESULT (STDMETHODCALLTYPE *GetDestinationStream)(
31068         IDestinationStreamFactory* This,
31069         IStream **ppstm);
31070 
31071     END_INTERFACE
31072 } IDestinationStreamFactoryVtbl;
31073 interface IDestinationStreamFactory {
31074     CONST_VTBL IDestinationStreamFactoryVtbl* lpVtbl;
31075 };
31076 
31077 #ifdef COBJMACROS
31078 #ifndef WIDL_C_INLINE_WRAPPERS
31079 /*** IUnknown methods ***/
31080 #define IDestinationStreamFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
31081 #define IDestinationStreamFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
31082 #define IDestinationStreamFactory_Release(This) (This)->lpVtbl->Release(This)
31083 /*** IDestinationStreamFactory methods ***/
31084 #define IDestinationStreamFactory_GetDestinationStream(This,ppstm) (This)->lpVtbl->GetDestinationStream(This,ppstm)
31085 #else
31086 /*** IUnknown methods ***/
31087 static FORCEINLINE HRESULT IDestinationStreamFactory_QueryInterface(IDestinationStreamFactory* This,REFIID riid,void **ppvObject) {
31088     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
31089 }
31090 static FORCEINLINE ULONG IDestinationStreamFactory_AddRef(IDestinationStreamFactory* This) {
31091     return This->lpVtbl->AddRef(This);
31092 }
31093 static FORCEINLINE ULONG IDestinationStreamFactory_Release(IDestinationStreamFactory* This) {
31094     return This->lpVtbl->Release(This);
31095 }
31096 /*** IDestinationStreamFactory methods ***/
31097 static FORCEINLINE HRESULT IDestinationStreamFactory_GetDestinationStream(IDestinationStreamFactory* This,IStream **ppstm) {
31098     return This->lpVtbl->GetDestinationStream(This,ppstm);
31099 }
31100 #endif
31101 #endif
31102 
31103 #endif
31104 
31105 HRESULT STDMETHODCALLTYPE IDestinationStreamFactory_GetDestinationStream_Proxy(
31106     IDestinationStreamFactory* This,
31107     IStream **ppstm);
31108 void __RPC_STUB IDestinationStreamFactory_GetDestinationStream_Stub(
31109     IRpcStubBuffer* This,
31110     IRpcChannelBuffer* pRpcChannelBuffer,
31111     PRPC_MESSAGE pRpcMessage,
31112     DWORD* pdwStubPhase);
31113 
31114 #endif  /* __IDestinationStreamFactory_INTERFACE_DEFINED__ */
31115 
31116 
31117 enum _NMCII_FLAGS {
31118     NMCII_NONE = 0x0,
31119     NMCII_ITEMS = 0x1,
31120     NMCII_FOLDERS = 0x2
31121 };
31122 
31123 
31124 typedef int NMCII_FLAGS;
31125 
31126 enum _NMCSAEI_FLAGS {
31127     NMCSAEI_SELECT = 0x0,
31128     NMCSAEI_EDIT = 0x1
31129 };
31130 
31131 
31132 typedef int NMCSAEI_FLAGS;
31133 
31134 /*****************************************************************************
31135  * INewMenuClient interface
31136  */
31137 #ifndef __INewMenuClient_INTERFACE_DEFINED__
31138 #define __INewMenuClient_INTERFACE_DEFINED__
31139 
31140 DEFINE_GUID(IID_INewMenuClient, 0xdcb07fdc, 0x3bb5, 0x451c, 0x90,0xbe, 0x96,0x66,0x44,0xfe,0xd7,0xb0);
31141 #if defined(__cplusplus) && !defined(CINTERFACE)
31142 MIDL_INTERFACE("dcb07fdc-3bb5-451c-90be-966644fed7b0")
31143 INewMenuClient : public IUnknown
31144 {
31145     virtual HRESULT STDMETHODCALLTYPE IncludeItems(
31146         NMCII_FLAGS *pflags) = 0;
31147 
31148     virtual HRESULT STDMETHODCALLTYPE SelectAndEditItem(
31149         PCIDLIST_ABSOLUTE pidlItem,
31150         NMCSAEI_FLAGS flags) = 0;
31151 
31152 };
31153 #ifdef __CRT_UUID_DECL
31154 __CRT_UUID_DECL(INewMenuClient, 0xdcb07fdc, 0x3bb5, 0x451c, 0x90,0xbe, 0x96,0x66,0x44,0xfe,0xd7,0xb0)
31155 #endif
31156 #else
31157 typedef struct INewMenuClientVtbl {
31158     BEGIN_INTERFACE
31159 
31160     /*** IUnknown methods ***/
31161     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
31162         INewMenuClient* This,
31163         REFIID riid,
31164         void **ppvObject);
31165 
31166     ULONG (STDMETHODCALLTYPE *AddRef)(
31167         INewMenuClient* This);
31168 
31169     ULONG (STDMETHODCALLTYPE *Release)(
31170         INewMenuClient* This);
31171 
31172     /*** INewMenuClient methods ***/
31173     HRESULT (STDMETHODCALLTYPE *IncludeItems)(
31174         INewMenuClient* This,
31175         NMCII_FLAGS *pflags);
31176 
31177     HRESULT (STDMETHODCALLTYPE *SelectAndEditItem)(
31178         INewMenuClient* This,
31179         PCIDLIST_ABSOLUTE pidlItem,
31180         NMCSAEI_FLAGS flags);
31181 
31182     END_INTERFACE
31183 } INewMenuClientVtbl;
31184 interface INewMenuClient {
31185     CONST_VTBL INewMenuClientVtbl* lpVtbl;
31186 };
31187 
31188 #ifdef COBJMACROS
31189 #ifndef WIDL_C_INLINE_WRAPPERS
31190 /*** IUnknown methods ***/
31191 #define INewMenuClient_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
31192 #define INewMenuClient_AddRef(This) (This)->lpVtbl->AddRef(This)
31193 #define INewMenuClient_Release(This) (This)->lpVtbl->Release(This)
31194 /*** INewMenuClient methods ***/
31195 #define INewMenuClient_IncludeItems(This,pflags) (This)->lpVtbl->IncludeItems(This,pflags)
31196 #define INewMenuClient_SelectAndEditItem(This,pidlItem,flags) (This)->lpVtbl->SelectAndEditItem(This,pidlItem,flags)
31197 #else
31198 /*** IUnknown methods ***/
31199 static FORCEINLINE HRESULT INewMenuClient_QueryInterface(INewMenuClient* This,REFIID riid,void **ppvObject) {
31200     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
31201 }
31202 static FORCEINLINE ULONG INewMenuClient_AddRef(INewMenuClient* This) {
31203     return This->lpVtbl->AddRef(This);
31204 }
31205 static FORCEINLINE ULONG INewMenuClient_Release(INewMenuClient* This) {
31206     return This->lpVtbl->Release(This);
31207 }
31208 /*** INewMenuClient methods ***/
31209 static FORCEINLINE HRESULT INewMenuClient_IncludeItems(INewMenuClient* This,NMCII_FLAGS *pflags) {
31210     return This->lpVtbl->IncludeItems(This,pflags);
31211 }
31212 static FORCEINLINE HRESULT INewMenuClient_SelectAndEditItem(INewMenuClient* This,PCIDLIST_ABSOLUTE pidlItem,NMCSAEI_FLAGS flags) {
31213     return This->lpVtbl->SelectAndEditItem(This,pidlItem,flags);
31214 }
31215 #endif
31216 #endif
31217 
31218 #endif
31219 
31220 HRESULT STDMETHODCALLTYPE INewMenuClient_IncludeItems_Proxy(
31221     INewMenuClient* This,
31222     NMCII_FLAGS *pflags);
31223 void __RPC_STUB INewMenuClient_IncludeItems_Stub(
31224     IRpcStubBuffer* This,
31225     IRpcChannelBuffer* pRpcChannelBuffer,
31226     PRPC_MESSAGE pRpcMessage,
31227     DWORD* pdwStubPhase);
31228 HRESULT STDMETHODCALLTYPE INewMenuClient_SelectAndEditItem_Proxy(
31229     INewMenuClient* This,
31230     PCIDLIST_ABSOLUTE pidlItem,
31231     NMCSAEI_FLAGS flags);
31232 void __RPC_STUB INewMenuClient_SelectAndEditItem_Stub(
31233     IRpcStubBuffer* This,
31234     IRpcChannelBuffer* pRpcChannelBuffer,
31235     PRPC_MESSAGE pRpcMessage,
31236     DWORD* pdwStubPhase);
31237 
31238 #endif  /* __INewMenuClient_INTERFACE_DEFINED__ */
31239 
31240 
31241 #define SID_SNewMenuClient   IID_INewMenuClient
31242 
31243 DEFINE_GUID(SID_SCommandBarState, 0xB99EAA5C, 0x3850, 0x4400, 0xBC, 0x33, 0x2C, 0xE5, 0x34, 0x04, 0x8B, 0xF8);
31244 
31245 #if _WIN32_IE >= _WIN32_IE_IE70
31246 /*****************************************************************************
31247  * IInitializeWithBindCtx interface
31248  */
31249 #ifndef __IInitializeWithBindCtx_INTERFACE_DEFINED__
31250 #define __IInitializeWithBindCtx_INTERFACE_DEFINED__
31251 
31252 DEFINE_GUID(IID_IInitializeWithBindCtx, 0x71c0d2bc, 0x726d, 0x45cc, 0xa6,0xc0, 0x2e,0x31,0xc1,0xdb,0x21,0x59);
31253 #if defined(__cplusplus) && !defined(CINTERFACE)
31254 MIDL_INTERFACE("71c0d2bc-726d-45cc-a6c0-2e31c1db2159")
31255 IInitializeWithBindCtx : public IUnknown
31256 {
31257     virtual HRESULT STDMETHODCALLTYPE Initialize(
31258         IBindCtx *pbc) = 0;
31259 
31260 };
31261 #ifdef __CRT_UUID_DECL
31262 __CRT_UUID_DECL(IInitializeWithBindCtx, 0x71c0d2bc, 0x726d, 0x45cc, 0xa6,0xc0, 0x2e,0x31,0xc1,0xdb,0x21,0x59)
31263 #endif
31264 #else
31265 typedef struct IInitializeWithBindCtxVtbl {
31266     BEGIN_INTERFACE
31267 
31268     /*** IUnknown methods ***/
31269     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
31270         IInitializeWithBindCtx* This,
31271         REFIID riid,
31272         void **ppvObject);
31273 
31274     ULONG (STDMETHODCALLTYPE *AddRef)(
31275         IInitializeWithBindCtx* This);
31276 
31277     ULONG (STDMETHODCALLTYPE *Release)(
31278         IInitializeWithBindCtx* This);
31279 
31280     /*** IInitializeWithBindCtx methods ***/
31281     HRESULT (STDMETHODCALLTYPE *Initialize)(
31282         IInitializeWithBindCtx* This,
31283         IBindCtx *pbc);
31284 
31285     END_INTERFACE
31286 } IInitializeWithBindCtxVtbl;
31287 interface IInitializeWithBindCtx {
31288     CONST_VTBL IInitializeWithBindCtxVtbl* lpVtbl;
31289 };
31290 
31291 #ifdef COBJMACROS
31292 #ifndef WIDL_C_INLINE_WRAPPERS
31293 /*** IUnknown methods ***/
31294 #define IInitializeWithBindCtx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
31295 #define IInitializeWithBindCtx_AddRef(This) (This)->lpVtbl->AddRef(This)
31296 #define IInitializeWithBindCtx_Release(This) (This)->lpVtbl->Release(This)
31297 /*** IInitializeWithBindCtx methods ***/
31298 #define IInitializeWithBindCtx_Initialize(This,pbc) (This)->lpVtbl->Initialize(This,pbc)
31299 #else
31300 /*** IUnknown methods ***/
31301 static FORCEINLINE HRESULT IInitializeWithBindCtx_QueryInterface(IInitializeWithBindCtx* This,REFIID riid,void **ppvObject) {
31302     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
31303 }
31304 static FORCEINLINE ULONG IInitializeWithBindCtx_AddRef(IInitializeWithBindCtx* This) {
31305     return This->lpVtbl->AddRef(This);
31306 }
31307 static FORCEINLINE ULONG IInitializeWithBindCtx_Release(IInitializeWithBindCtx* This) {
31308     return This->lpVtbl->Release(This);
31309 }
31310 /*** IInitializeWithBindCtx methods ***/
31311 static FORCEINLINE HRESULT IInitializeWithBindCtx_Initialize(IInitializeWithBindCtx* This,IBindCtx *pbc) {
31312     return This->lpVtbl->Initialize(This,pbc);
31313 }
31314 #endif
31315 #endif
31316 
31317 #endif
31318 
31319 HRESULT STDMETHODCALLTYPE IInitializeWithBindCtx_Initialize_Proxy(
31320     IInitializeWithBindCtx* This,
31321     IBindCtx *pbc);
31322 void __RPC_STUB IInitializeWithBindCtx_Initialize_Stub(
31323     IRpcStubBuffer* This,
31324     IRpcChannelBuffer* pRpcChannelBuffer,
31325     PRPC_MESSAGE pRpcMessage,
31326     DWORD* pdwStubPhase);
31327 
31328 #endif  /* __IInitializeWithBindCtx_INTERFACE_DEFINED__ */
31329 
31330 
31331 /*****************************************************************************
31332  * IShellItemFilter interface
31333  */
31334 #ifndef __IShellItemFilter_INTERFACE_DEFINED__
31335 #define __IShellItemFilter_INTERFACE_DEFINED__
31336 
31337 DEFINE_GUID(IID_IShellItemFilter, 0x2659b475, 0xeeb8, 0x48b7, 0x8f,0x07, 0xb3,0x78,0x81,0x0f,0x48,0xcf);
31338 #if defined(__cplusplus) && !defined(CINTERFACE)
31339 MIDL_INTERFACE("2659b475-eeb8-48b7-8f07-b378810f48cf")
31340 IShellItemFilter : public IUnknown
31341 {
31342     virtual HRESULT STDMETHODCALLTYPE IncludeItem(
31343         IShellItem *psi) = 0;
31344 
31345     virtual HRESULT STDMETHODCALLTYPE GetEnumFlagsForItem(
31346         IShellItem *psi,
31347         SHCONTF *pgrfFlags) = 0;
31348 
31349 };
31350 #ifdef __CRT_UUID_DECL
31351 __CRT_UUID_DECL(IShellItemFilter, 0x2659b475, 0xeeb8, 0x48b7, 0x8f,0x07, 0xb3,0x78,0x81,0x0f,0x48,0xcf)
31352 #endif
31353 #else
31354 typedef struct IShellItemFilterVtbl {
31355     BEGIN_INTERFACE
31356 
31357     /*** IUnknown methods ***/
31358     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
31359         IShellItemFilter* This,
31360         REFIID riid,
31361         void **ppvObject);
31362 
31363     ULONG (STDMETHODCALLTYPE *AddRef)(
31364         IShellItemFilter* This);
31365 
31366     ULONG (STDMETHODCALLTYPE *Release)(
31367         IShellItemFilter* This);
31368 
31369     /*** IShellItemFilter methods ***/
31370     HRESULT (STDMETHODCALLTYPE *IncludeItem)(
31371         IShellItemFilter* This,
31372         IShellItem *psi);
31373 
31374     HRESULT (STDMETHODCALLTYPE *GetEnumFlagsForItem)(
31375         IShellItemFilter* This,
31376         IShellItem *psi,
31377         SHCONTF *pgrfFlags);
31378 
31379     END_INTERFACE
31380 } IShellItemFilterVtbl;
31381 interface IShellItemFilter {
31382     CONST_VTBL IShellItemFilterVtbl* lpVtbl;
31383 };
31384 
31385 #ifdef COBJMACROS
31386 #ifndef WIDL_C_INLINE_WRAPPERS
31387 /*** IUnknown methods ***/
31388 #define IShellItemFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
31389 #define IShellItemFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
31390 #define IShellItemFilter_Release(This) (This)->lpVtbl->Release(This)
31391 /*** IShellItemFilter methods ***/
31392 #define IShellItemFilter_IncludeItem(This,psi) (This)->lpVtbl->IncludeItem(This,psi)
31393 #define IShellItemFilter_GetEnumFlagsForItem(This,psi,pgrfFlags) (This)->lpVtbl->GetEnumFlagsForItem(This,psi,pgrfFlags)
31394 #else
31395 /*** IUnknown methods ***/
31396 static FORCEINLINE HRESULT IShellItemFilter_QueryInterface(IShellItemFilter* This,REFIID riid,void **ppvObject) {
31397     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
31398 }
31399 static FORCEINLINE ULONG IShellItemFilter_AddRef(IShellItemFilter* This) {
31400     return This->lpVtbl->AddRef(This);
31401 }
31402 static FORCEINLINE ULONG IShellItemFilter_Release(IShellItemFilter* This) {
31403     return This->lpVtbl->Release(This);
31404 }
31405 /*** IShellItemFilter methods ***/
31406 static FORCEINLINE HRESULT IShellItemFilter_IncludeItem(IShellItemFilter* This,IShellItem *psi) {
31407     return This->lpVtbl->IncludeItem(This,psi);
31408 }
31409 static FORCEINLINE HRESULT IShellItemFilter_GetEnumFlagsForItem(IShellItemFilter* This,IShellItem *psi,SHCONTF *pgrfFlags) {
31410     return This->lpVtbl->GetEnumFlagsForItem(This,psi,pgrfFlags);
31411 }
31412 #endif
31413 #endif
31414 
31415 #endif
31416 
31417 HRESULT STDMETHODCALLTYPE IShellItemFilter_IncludeItem_Proxy(
31418     IShellItemFilter* This,
31419     IShellItem *psi);
31420 void __RPC_STUB IShellItemFilter_IncludeItem_Stub(
31421     IRpcStubBuffer* This,
31422     IRpcChannelBuffer* pRpcChannelBuffer,
31423     PRPC_MESSAGE pRpcMessage,
31424     DWORD* pdwStubPhase);
31425 HRESULT STDMETHODCALLTYPE IShellItemFilter_GetEnumFlagsForItem_Proxy(
31426     IShellItemFilter* This,
31427     IShellItem *psi,
31428     SHCONTF *pgrfFlags);
31429 void __RPC_STUB IShellItemFilter_GetEnumFlagsForItem_Stub(
31430     IRpcStubBuffer* This,
31431     IRpcChannelBuffer* pRpcChannelBuffer,
31432     PRPC_MESSAGE pRpcMessage,
31433     DWORD* pdwStubPhase);
31434 
31435 #endif  /* __IShellItemFilter_INTERFACE_DEFINED__ */
31436 
31437 #endif
31438 
31439 /*****************************************************************************
31440  * INameSpaceTreeControl interface
31441  */
31442 #ifndef __INameSpaceTreeControl_INTERFACE_DEFINED__
31443 #define __INameSpaceTreeControl_INTERFACE_DEFINED__
31444 
31445 enum _NSTCSTYLE {
31446     NSTCS_HASEXPANDOS = 0x1,
31447     NSTCS_HASLINES = 0x2,
31448     NSTCS_SINGLECLICKEXPAND = 0x4,
31449     NSTCS_FULLROWSELECT = 0x8,
31450     NSTCS_SPRINGEXPAND = 0x10,
31451     NSTCS_HORIZONTALSCROLL = 0x20,
31452     NSTCS_ROOTHASEXPANDO = 0x40,
31453     NSTCS_SHOWSELECTIONALWAYS = 0x80,
31454     NSTCS_NOINFOTIP = 0x200,
31455     NSTCS_EVENHEIGHT = 0x400,
31456     NSTCS_NOREPLACEOPEN = 0x800,
31457     NSTCS_DISABLEDRAGDROP = 0x1000,
31458     NSTCS_NOORDERSTREAM = 0x2000,
31459     NSTCS_RICHTOOLTIP = 0x4000,
31460     NSTCS_BORDER = 0x8000,
31461     NSTCS_NOEDITLABELS = 0x10000,
31462     NSTCS_TABSTOP = 0x20000,
31463     NSTCS_FAVORITESMODE = 0x80000,
31464     NSTCS_AUTOHSCROLL = 0x100000,
31465     NSTCS_FADEINOUTEXPANDOS = 0x200000,
31466     NSTCS_EMPTYTEXT = 0x400000,
31467     NSTCS_CHECKBOXES = 0x800000,
31468     NSTCS_PARTIALCHECKBOXES = 0x1000000,
31469     NSTCS_EXCLUSIONCHECKBOXES = 0x2000000,
31470     NSTCS_DIMMEDCHECKBOXES = 0x4000000,
31471     NSTCS_NOINDENTCHECKS = 0x8000000,
31472     NSTCS_ALLOWJUNCTIONS = 0x10000000,
31473     NSTCS_SHOWTABSBUTTON = 0x20000000,
31474     NSTCS_SHOWDELETEBUTTON = 0x40000000,
31475     NSTCS_SHOWREFRESHBUTTON = (int)0x80000000
31476 };
31477 
31478 
31479 typedef DWORD NSTCSTYLE;
31480 
31481 enum _NSTCROOTSTYLE {
31482     NSTCRS_VISIBLE = 0x0,
31483     NSTCRS_HIDDEN = 0x1,
31484     NSTCRS_EXPANDED = 0x2
31485 };
31486 
31487 
31488 typedef DWORD NSTCROOTSTYLE;
31489 
31490 enum _NSTCITEMSTATE {
31491     NSTCIS_NONE = 0x0,
31492     NSTCIS_SELECTED = 0x1,
31493     NSTCIS_EXPANDED = 0x2,
31494     NSTCIS_BOLD = 0x4,
31495     NSTCIS_DISABLED = 0x8,
31496     NSTCIS_SELECTEDNOEXPAND = 0x10
31497 };
31498 
31499 
31500 typedef DWORD NSTCITEMSTATE;
31501 
31502 typedef enum NSTCGNI {
31503     NSTCGNI_NEXT = 0,
31504     NSTCGNI_NEXTVISIBLE = 1,
31505     NSTCGNI_PREV = 2,
31506     NSTCGNI_PREVVISIBLE = 3,
31507     NSTCGNI_PARENT = 4,
31508     NSTCGNI_CHILD = 5,
31509     NSTCGNI_FIRSTVISIBLE = 6,
31510     NSTCGNI_LASTVISIBLE = 7
31511 } NSTCGNI;
31512 
31513 DEFINE_GUID(IID_INameSpaceTreeControl, 0x028212a3, 0xb627, 0x47e9, 0x88,0x56, 0xc1,0x42,0x65,0x55,0x4e,0x4f);
31514 #if defined(__cplusplus) && !defined(CINTERFACE)
31515 MIDL_INTERFACE("028212a3-b627-47e9-8856-c14265554e4f")
31516 INameSpaceTreeControl : public IUnknown
31517 {
31518     virtual HRESULT STDMETHODCALLTYPE Initialize(
31519         HWND hwndParent,
31520         RECT *prc,
31521         NSTCSTYLE nsctsFlags) = 0;
31522 
31523     virtual HRESULT STDMETHODCALLTYPE TreeAdvise(
31524         IUnknown *punk,
31525         DWORD *pdwCookie) = 0;
31526 
31527     virtual HRESULT STDMETHODCALLTYPE TreeUnadvise(
31528         DWORD dwCookie) = 0;
31529 
31530     virtual HRESULT STDMETHODCALLTYPE AppendRoot(
31531         IShellItem *psiRoot,
31532         SHCONTF grfEnumFlags,
31533         NSTCROOTSTYLE grfRootStyle,
31534         IShellItemFilter *pif) = 0;
31535 
31536     virtual HRESULT STDMETHODCALLTYPE InsertRoot(
31537         int iIndex,
31538         IShellItem *psiRoot,
31539         SHCONTF grfEnumFlags,
31540         NSTCROOTSTYLE grfRootStyle,
31541         IShellItemFilter *pif) = 0;
31542 
31543     virtual HRESULT STDMETHODCALLTYPE RemoveRoot(
31544         IShellItem *psiRoot) = 0;
31545 
31546     virtual HRESULT STDMETHODCALLTYPE RemoveAllRoots(
31547         ) = 0;
31548 
31549     virtual HRESULT STDMETHODCALLTYPE GetRootItems(
31550         IShellItemArray **ppsiaRootItems) = 0;
31551 
31552     virtual HRESULT STDMETHODCALLTYPE SetItemState(
31553         IShellItem *psi,
31554         NSTCITEMSTATE nstcisMask,
31555         NSTCITEMSTATE nstcisFlags) = 0;
31556 
31557     virtual HRESULT STDMETHODCALLTYPE GetItemState(
31558         IShellItem *psi,
31559         NSTCITEMSTATE nstcisMask,
31560         NSTCITEMSTATE *pnstcisFlags) = 0;
31561 
31562     virtual HRESULT STDMETHODCALLTYPE GetSelectedItems(
31563         IShellItemArray **psiaItems) = 0;
31564 
31565     virtual HRESULT STDMETHODCALLTYPE GetItemCustomState(
31566         IShellItem *psi,
31567         int *piStateNumber) = 0;
31568 
31569     virtual HRESULT STDMETHODCALLTYPE SetItemCustomState(
31570         IShellItem *psi,
31571         int iStateNumber) = 0;
31572 
31573     virtual HRESULT STDMETHODCALLTYPE EnsureItemVisible(
31574         IShellItem *psi) = 0;
31575 
31576     virtual HRESULT STDMETHODCALLTYPE SetTheme(
31577         LPCWSTR pszTheme) = 0;
31578 
31579     virtual HRESULT STDMETHODCALLTYPE GetNextItem(
31580         IShellItem *psi,
31581         NSTCGNI nstcgi,
31582         IShellItem **ppsiNext) = 0;
31583 
31584     virtual HRESULT STDMETHODCALLTYPE HitTest(
31585         POINT *ppt,
31586         IShellItem **ppsiOut) = 0;
31587 
31588     virtual HRESULT STDMETHODCALLTYPE GetItemRect(
31589         IShellItem *psi,
31590         RECT *prect) = 0;
31591 
31592     virtual HRESULT STDMETHODCALLTYPE CollapseAll(
31593         ) = 0;
31594 
31595 };
31596 #ifdef __CRT_UUID_DECL
31597 __CRT_UUID_DECL(INameSpaceTreeControl, 0x028212a3, 0xb627, 0x47e9, 0x88,0x56, 0xc1,0x42,0x65,0x55,0x4e,0x4f)
31598 #endif
31599 #else
31600 typedef struct INameSpaceTreeControlVtbl {
31601     BEGIN_INTERFACE
31602 
31603     /*** IUnknown methods ***/
31604     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
31605         INameSpaceTreeControl* This,
31606         REFIID riid,
31607         void **ppvObject);
31608 
31609     ULONG (STDMETHODCALLTYPE *AddRef)(
31610         INameSpaceTreeControl* This);
31611 
31612     ULONG (STDMETHODCALLTYPE *Release)(
31613         INameSpaceTreeControl* This);
31614 
31615     /*** INameSpaceTreeControl methods ***/
31616     HRESULT (STDMETHODCALLTYPE *Initialize)(
31617         INameSpaceTreeControl* This,
31618         HWND hwndParent,
31619         RECT *prc,
31620         NSTCSTYLE nsctsFlags);
31621 
31622     HRESULT (STDMETHODCALLTYPE *TreeAdvise)(
31623         INameSpaceTreeControl* This,
31624         IUnknown *punk,
31625         DWORD *pdwCookie);
31626 
31627     HRESULT (STDMETHODCALLTYPE *TreeUnadvise)(
31628         INameSpaceTreeControl* This,
31629         DWORD dwCookie);
31630 
31631     HRESULT (STDMETHODCALLTYPE *AppendRoot)(
31632         INameSpaceTreeControl* This,
31633         IShellItem *psiRoot,
31634         SHCONTF grfEnumFlags,
31635         NSTCROOTSTYLE grfRootStyle,
31636         IShellItemFilter *pif);
31637 
31638     HRESULT (STDMETHODCALLTYPE *InsertRoot)(
31639         INameSpaceTreeControl* This,
31640         int iIndex,
31641         IShellItem *psiRoot,
31642         SHCONTF grfEnumFlags,
31643         NSTCROOTSTYLE grfRootStyle,
31644         IShellItemFilter *pif);
31645 
31646     HRESULT (STDMETHODCALLTYPE *RemoveRoot)(
31647         INameSpaceTreeControl* This,
31648         IShellItem *psiRoot);
31649 
31650     HRESULT (STDMETHODCALLTYPE *RemoveAllRoots)(
31651         INameSpaceTreeControl* This);
31652 
31653     HRESULT (STDMETHODCALLTYPE *GetRootItems)(
31654         INameSpaceTreeControl* This,
31655         IShellItemArray **ppsiaRootItems);
31656 
31657     HRESULT (STDMETHODCALLTYPE *SetItemState)(
31658         INameSpaceTreeControl* This,
31659         IShellItem *psi,
31660         NSTCITEMSTATE nstcisMask,
31661         NSTCITEMSTATE nstcisFlags);
31662 
31663     HRESULT (STDMETHODCALLTYPE *GetItemState)(
31664         INameSpaceTreeControl* This,
31665         IShellItem *psi,
31666         NSTCITEMSTATE nstcisMask,
31667         NSTCITEMSTATE *pnstcisFlags);
31668 
31669     HRESULT (STDMETHODCALLTYPE *GetSelectedItems)(
31670         INameSpaceTreeControl* This,
31671         IShellItemArray **psiaItems);
31672 
31673     HRESULT (STDMETHODCALLTYPE *GetItemCustomState)(
31674         INameSpaceTreeControl* This,
31675         IShellItem *psi,
31676         int *piStateNumber);
31677 
31678     HRESULT (STDMETHODCALLTYPE *SetItemCustomState)(
31679         INameSpaceTreeControl* This,
31680         IShellItem *psi,
31681         int iStateNumber);
31682 
31683     HRESULT (STDMETHODCALLTYPE *EnsureItemVisible)(
31684         INameSpaceTreeControl* This,
31685         IShellItem *psi);
31686 
31687     HRESULT (STDMETHODCALLTYPE *SetTheme)(
31688         INameSpaceTreeControl* This,
31689         LPCWSTR pszTheme);
31690 
31691     HRESULT (STDMETHODCALLTYPE *GetNextItem)(
31692         INameSpaceTreeControl* This,
31693         IShellItem *psi,
31694         NSTCGNI nstcgi,
31695         IShellItem **ppsiNext);
31696 
31697     HRESULT (STDMETHODCALLTYPE *HitTest)(
31698         INameSpaceTreeControl* This,
31699         POINT *ppt,
31700         IShellItem **ppsiOut);
31701 
31702     HRESULT (STDMETHODCALLTYPE *GetItemRect)(
31703         INameSpaceTreeControl* This,
31704         IShellItem *psi,
31705         RECT *prect);
31706 
31707     HRESULT (STDMETHODCALLTYPE *CollapseAll)(
31708         INameSpaceTreeControl* This);
31709 
31710     END_INTERFACE
31711 } INameSpaceTreeControlVtbl;
31712 interface INameSpaceTreeControl {
31713     CONST_VTBL INameSpaceTreeControlVtbl* lpVtbl;
31714 };
31715 
31716 #ifdef COBJMACROS
31717 #ifndef WIDL_C_INLINE_WRAPPERS
31718 /*** IUnknown methods ***/
31719 #define INameSpaceTreeControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
31720 #define INameSpaceTreeControl_AddRef(This) (This)->lpVtbl->AddRef(This)
31721 #define INameSpaceTreeControl_Release(This) (This)->lpVtbl->Release(This)
31722 /*** INameSpaceTreeControl methods ***/
31723 #define INameSpaceTreeControl_Initialize(This,hwndParent,prc,nsctsFlags) (This)->lpVtbl->Initialize(This,hwndParent,prc,nsctsFlags)
31724 #define INameSpaceTreeControl_TreeAdvise(This,punk,pdwCookie) (This)->lpVtbl->TreeAdvise(This,punk,pdwCookie)
31725 #define INameSpaceTreeControl_TreeUnadvise(This,dwCookie) (This)->lpVtbl->TreeUnadvise(This,dwCookie)
31726 #define INameSpaceTreeControl_AppendRoot(This,psiRoot,grfEnumFlags,grfRootStyle,pif) (This)->lpVtbl->AppendRoot(This,psiRoot,grfEnumFlags,grfRootStyle,pif)
31727 #define INameSpaceTreeControl_InsertRoot(This,iIndex,psiRoot,grfEnumFlags,grfRootStyle,pif) (This)->lpVtbl->InsertRoot(This,iIndex,psiRoot,grfEnumFlags,grfRootStyle,pif)
31728 #define INameSpaceTreeControl_RemoveRoot(This,psiRoot) (This)->lpVtbl->RemoveRoot(This,psiRoot)
31729 #define INameSpaceTreeControl_RemoveAllRoots(This) (This)->lpVtbl->RemoveAllRoots(This)
31730 #define INameSpaceTreeControl_GetRootItems(This,ppsiaRootItems) (This)->lpVtbl->GetRootItems(This,ppsiaRootItems)
31731 #define INameSpaceTreeControl_SetItemState(This,psi,nstcisMask,nstcisFlags) (This)->lpVtbl->SetItemState(This,psi,nstcisMask,nstcisFlags)
31732 #define INameSpaceTreeControl_GetItemState(This,psi,nstcisMask,pnstcisFlags) (This)->lpVtbl->GetItemState(This,psi,nstcisMask,pnstcisFlags)
31733 #define INameSpaceTreeControl_GetSelectedItems(This,psiaItems) (This)->lpVtbl->GetSelectedItems(This,psiaItems)
31734 #define INameSpaceTreeControl_GetItemCustomState(This,psi,piStateNumber) (This)->lpVtbl->GetItemCustomState(This,psi,piStateNumber)
31735 #define INameSpaceTreeControl_SetItemCustomState(This,psi,iStateNumber) (This)->lpVtbl->SetItemCustomState(This,psi,iStateNumber)
31736 #define INameSpaceTreeControl_EnsureItemVisible(This,psi) (This)->lpVtbl->EnsureItemVisible(This,psi)
31737 #define INameSpaceTreeControl_SetTheme(This,pszTheme) (This)->lpVtbl->SetTheme(This,pszTheme)
31738 #define INameSpaceTreeControl_GetNextItem(This,psi,nstcgi,ppsiNext) (This)->lpVtbl->GetNextItem(This,psi,nstcgi,ppsiNext)
31739 #define INameSpaceTreeControl_HitTest(This,ppt,ppsiOut) (This)->lpVtbl->HitTest(This,ppt,ppsiOut)
31740 #define INameSpaceTreeControl_GetItemRect(This,psi,prect) (This)->lpVtbl->GetItemRect(This,psi,prect)
31741 #define INameSpaceTreeControl_CollapseAll(This) (This)->lpVtbl->CollapseAll(This)
31742 #else
31743 /*** IUnknown methods ***/
31744 static FORCEINLINE HRESULT INameSpaceTreeControl_QueryInterface(INameSpaceTreeControl* This,REFIID riid,void **ppvObject) {
31745     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
31746 }
31747 static FORCEINLINE ULONG INameSpaceTreeControl_AddRef(INameSpaceTreeControl* This) {
31748     return This->lpVtbl->AddRef(This);
31749 }
31750 static FORCEINLINE ULONG INameSpaceTreeControl_Release(INameSpaceTreeControl* This) {
31751     return This->lpVtbl->Release(This);
31752 }
31753 /*** INameSpaceTreeControl methods ***/
31754 static FORCEINLINE HRESULT INameSpaceTreeControl_Initialize(INameSpaceTreeControl* This,HWND hwndParent,RECT *prc,NSTCSTYLE nsctsFlags) {
31755     return This->lpVtbl->Initialize(This,hwndParent,prc,nsctsFlags);
31756 }
31757 static FORCEINLINE HRESULT INameSpaceTreeControl_TreeAdvise(INameSpaceTreeControl* This,IUnknown *punk,DWORD *pdwCookie) {
31758     return This->lpVtbl->TreeAdvise(This,punk,pdwCookie);
31759 }
31760 static FORCEINLINE HRESULT INameSpaceTreeControl_TreeUnadvise(INameSpaceTreeControl* This,DWORD dwCookie) {
31761     return This->lpVtbl->TreeUnadvise(This,dwCookie);
31762 }
31763 static FORCEINLINE HRESULT INameSpaceTreeControl_AppendRoot(INameSpaceTreeControl* This,IShellItem *psiRoot,SHCONTF grfEnumFlags,NSTCROOTSTYLE grfRootStyle,IShellItemFilter *pif) {
31764     return This->lpVtbl->AppendRoot(This,psiRoot,grfEnumFlags,grfRootStyle,pif);
31765 }
31766 static FORCEINLINE HRESULT INameSpaceTreeControl_InsertRoot(INameSpaceTreeControl* This,int iIndex,IShellItem *psiRoot,SHCONTF grfEnumFlags,NSTCROOTSTYLE grfRootStyle,IShellItemFilter *pif) {
31767     return This->lpVtbl->InsertRoot(This,iIndex,psiRoot,grfEnumFlags,grfRootStyle,pif);
31768 }
31769 static FORCEINLINE HRESULT INameSpaceTreeControl_RemoveRoot(INameSpaceTreeControl* This,IShellItem *psiRoot) {
31770     return This->lpVtbl->RemoveRoot(This,psiRoot);
31771 }
31772 static FORCEINLINE HRESULT INameSpaceTreeControl_RemoveAllRoots(INameSpaceTreeControl* This) {
31773     return This->lpVtbl->RemoveAllRoots(This);
31774 }
31775 static FORCEINLINE HRESULT INameSpaceTreeControl_GetRootItems(INameSpaceTreeControl* This,IShellItemArray **ppsiaRootItems) {
31776     return This->lpVtbl->GetRootItems(This,ppsiaRootItems);
31777 }
31778 static FORCEINLINE HRESULT INameSpaceTreeControl_SetItemState(INameSpaceTreeControl* This,IShellItem *psi,NSTCITEMSTATE nstcisMask,NSTCITEMSTATE nstcisFlags) {
31779     return This->lpVtbl->SetItemState(This,psi,nstcisMask,nstcisFlags);
31780 }
31781 static FORCEINLINE HRESULT INameSpaceTreeControl_GetItemState(INameSpaceTreeControl* This,IShellItem *psi,NSTCITEMSTATE nstcisMask,NSTCITEMSTATE *pnstcisFlags) {
31782     return This->lpVtbl->GetItemState(This,psi,nstcisMask,pnstcisFlags);
31783 }
31784 static FORCEINLINE HRESULT INameSpaceTreeControl_GetSelectedItems(INameSpaceTreeControl* This,IShellItemArray **psiaItems) {
31785     return This->lpVtbl->GetSelectedItems(This,psiaItems);
31786 }
31787 static FORCEINLINE HRESULT INameSpaceTreeControl_GetItemCustomState(INameSpaceTreeControl* This,IShellItem *psi,int *piStateNumber) {
31788     return This->lpVtbl->GetItemCustomState(This,psi,piStateNumber);
31789 }
31790 static FORCEINLINE HRESULT INameSpaceTreeControl_SetItemCustomState(INameSpaceTreeControl* This,IShellItem *psi,int iStateNumber) {
31791     return This->lpVtbl->SetItemCustomState(This,psi,iStateNumber);
31792 }
31793 static FORCEINLINE HRESULT INameSpaceTreeControl_EnsureItemVisible(INameSpaceTreeControl* This,IShellItem *psi) {
31794     return This->lpVtbl->EnsureItemVisible(This,psi);
31795 }
31796 static FORCEINLINE HRESULT INameSpaceTreeControl_SetTheme(INameSpaceTreeControl* This,LPCWSTR pszTheme) {
31797     return This->lpVtbl->SetTheme(This,pszTheme);
31798 }
31799 static FORCEINLINE HRESULT INameSpaceTreeControl_GetNextItem(INameSpaceTreeControl* This,IShellItem *psi,NSTCGNI nstcgi,IShellItem **ppsiNext) {
31800     return This->lpVtbl->GetNextItem(This,psi,nstcgi,ppsiNext);
31801 }
31802 static FORCEINLINE HRESULT INameSpaceTreeControl_HitTest(INameSpaceTreeControl* This,POINT *ppt,IShellItem **ppsiOut) {
31803     return This->lpVtbl->HitTest(This,ppt,ppsiOut);
31804 }
31805 static FORCEINLINE HRESULT INameSpaceTreeControl_GetItemRect(INameSpaceTreeControl* This,IShellItem *psi,RECT *prect) {
31806     return This->lpVtbl->GetItemRect(This,psi,prect);
31807 }
31808 static FORCEINLINE HRESULT INameSpaceTreeControl_CollapseAll(INameSpaceTreeControl* This) {
31809     return This->lpVtbl->CollapseAll(This);
31810 }
31811 #endif
31812 #endif
31813 
31814 #endif
31815 
31816 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl_Initialize_Proxy(
31817     INameSpaceTreeControl* This,
31818     HWND hwndParent,
31819     RECT *prc,
31820     NSTCSTYLE nsctsFlags);
31821 void __RPC_STUB INameSpaceTreeControl_Initialize_Stub(
31822     IRpcStubBuffer* This,
31823     IRpcChannelBuffer* pRpcChannelBuffer,
31824     PRPC_MESSAGE pRpcMessage,
31825     DWORD* pdwStubPhase);
31826 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl_TreeAdvise_Proxy(
31827     INameSpaceTreeControl* This,
31828     IUnknown *punk,
31829     DWORD *pdwCookie);
31830 void __RPC_STUB INameSpaceTreeControl_TreeAdvise_Stub(
31831     IRpcStubBuffer* This,
31832     IRpcChannelBuffer* pRpcChannelBuffer,
31833     PRPC_MESSAGE pRpcMessage,
31834     DWORD* pdwStubPhase);
31835 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl_TreeUnadvise_Proxy(
31836     INameSpaceTreeControl* This,
31837     DWORD dwCookie);
31838 void __RPC_STUB INameSpaceTreeControl_TreeUnadvise_Stub(
31839     IRpcStubBuffer* This,
31840     IRpcChannelBuffer* pRpcChannelBuffer,
31841     PRPC_MESSAGE pRpcMessage,
31842     DWORD* pdwStubPhase);
31843 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl_AppendRoot_Proxy(
31844     INameSpaceTreeControl* This,
31845     IShellItem *psiRoot,
31846     SHCONTF grfEnumFlags,
31847     NSTCROOTSTYLE grfRootStyle,
31848     IShellItemFilter *pif);
31849 void __RPC_STUB INameSpaceTreeControl_AppendRoot_Stub(
31850     IRpcStubBuffer* This,
31851     IRpcChannelBuffer* pRpcChannelBuffer,
31852     PRPC_MESSAGE pRpcMessage,
31853     DWORD* pdwStubPhase);
31854 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl_InsertRoot_Proxy(
31855     INameSpaceTreeControl* This,
31856     int iIndex,
31857     IShellItem *psiRoot,
31858     SHCONTF grfEnumFlags,
31859     NSTCROOTSTYLE grfRootStyle,
31860     IShellItemFilter *pif);
31861 void __RPC_STUB INameSpaceTreeControl_InsertRoot_Stub(
31862     IRpcStubBuffer* This,
31863     IRpcChannelBuffer* pRpcChannelBuffer,
31864     PRPC_MESSAGE pRpcMessage,
31865     DWORD* pdwStubPhase);
31866 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl_RemoveRoot_Proxy(
31867     INameSpaceTreeControl* This,
31868     IShellItem *psiRoot);
31869 void __RPC_STUB INameSpaceTreeControl_RemoveRoot_Stub(
31870     IRpcStubBuffer* This,
31871     IRpcChannelBuffer* pRpcChannelBuffer,
31872     PRPC_MESSAGE pRpcMessage,
31873     DWORD* pdwStubPhase);
31874 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl_RemoveAllRoots_Proxy(
31875     INameSpaceTreeControl* This);
31876 void __RPC_STUB INameSpaceTreeControl_RemoveAllRoots_Stub(
31877     IRpcStubBuffer* This,
31878     IRpcChannelBuffer* pRpcChannelBuffer,
31879     PRPC_MESSAGE pRpcMessage,
31880     DWORD* pdwStubPhase);
31881 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl_GetRootItems_Proxy(
31882     INameSpaceTreeControl* This,
31883     IShellItemArray **ppsiaRootItems);
31884 void __RPC_STUB INameSpaceTreeControl_GetRootItems_Stub(
31885     IRpcStubBuffer* This,
31886     IRpcChannelBuffer* pRpcChannelBuffer,
31887     PRPC_MESSAGE pRpcMessage,
31888     DWORD* pdwStubPhase);
31889 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl_SetItemState_Proxy(
31890     INameSpaceTreeControl* This,
31891     IShellItem *psi,
31892     NSTCITEMSTATE nstcisMask,
31893     NSTCITEMSTATE nstcisFlags);
31894 void __RPC_STUB INameSpaceTreeControl_SetItemState_Stub(
31895     IRpcStubBuffer* This,
31896     IRpcChannelBuffer* pRpcChannelBuffer,
31897     PRPC_MESSAGE pRpcMessage,
31898     DWORD* pdwStubPhase);
31899 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl_GetItemState_Proxy(
31900     INameSpaceTreeControl* This,
31901     IShellItem *psi,
31902     NSTCITEMSTATE nstcisMask,
31903     NSTCITEMSTATE *pnstcisFlags);
31904 void __RPC_STUB INameSpaceTreeControl_GetItemState_Stub(
31905     IRpcStubBuffer* This,
31906     IRpcChannelBuffer* pRpcChannelBuffer,
31907     PRPC_MESSAGE pRpcMessage,
31908     DWORD* pdwStubPhase);
31909 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl_GetSelectedItems_Proxy(
31910     INameSpaceTreeControl* This,
31911     IShellItemArray **psiaItems);
31912 void __RPC_STUB INameSpaceTreeControl_GetSelectedItems_Stub(
31913     IRpcStubBuffer* This,
31914     IRpcChannelBuffer* pRpcChannelBuffer,
31915     PRPC_MESSAGE pRpcMessage,
31916     DWORD* pdwStubPhase);
31917 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl_GetItemCustomState_Proxy(
31918     INameSpaceTreeControl* This,
31919     IShellItem *psi,
31920     int *piStateNumber);
31921 void __RPC_STUB INameSpaceTreeControl_GetItemCustomState_Stub(
31922     IRpcStubBuffer* This,
31923     IRpcChannelBuffer* pRpcChannelBuffer,
31924     PRPC_MESSAGE pRpcMessage,
31925     DWORD* pdwStubPhase);
31926 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl_SetItemCustomState_Proxy(
31927     INameSpaceTreeControl* This,
31928     IShellItem *psi,
31929     int iStateNumber);
31930 void __RPC_STUB INameSpaceTreeControl_SetItemCustomState_Stub(
31931     IRpcStubBuffer* This,
31932     IRpcChannelBuffer* pRpcChannelBuffer,
31933     PRPC_MESSAGE pRpcMessage,
31934     DWORD* pdwStubPhase);
31935 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl_EnsureItemVisible_Proxy(
31936     INameSpaceTreeControl* This,
31937     IShellItem *psi);
31938 void __RPC_STUB INameSpaceTreeControl_EnsureItemVisible_Stub(
31939     IRpcStubBuffer* This,
31940     IRpcChannelBuffer* pRpcChannelBuffer,
31941     PRPC_MESSAGE pRpcMessage,
31942     DWORD* pdwStubPhase);
31943 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl_SetTheme_Proxy(
31944     INameSpaceTreeControl* This,
31945     LPCWSTR pszTheme);
31946 void __RPC_STUB INameSpaceTreeControl_SetTheme_Stub(
31947     IRpcStubBuffer* This,
31948     IRpcChannelBuffer* pRpcChannelBuffer,
31949     PRPC_MESSAGE pRpcMessage,
31950     DWORD* pdwStubPhase);
31951 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl_GetNextItem_Proxy(
31952     INameSpaceTreeControl* This,
31953     IShellItem *psi,
31954     NSTCGNI nstcgi,
31955     IShellItem **ppsiNext);
31956 void __RPC_STUB INameSpaceTreeControl_GetNextItem_Stub(
31957     IRpcStubBuffer* This,
31958     IRpcChannelBuffer* pRpcChannelBuffer,
31959     PRPC_MESSAGE pRpcMessage,
31960     DWORD* pdwStubPhase);
31961 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl_HitTest_Proxy(
31962     INameSpaceTreeControl* This,
31963     POINT *ppt,
31964     IShellItem **ppsiOut);
31965 void __RPC_STUB INameSpaceTreeControl_HitTest_Stub(
31966     IRpcStubBuffer* This,
31967     IRpcChannelBuffer* pRpcChannelBuffer,
31968     PRPC_MESSAGE pRpcMessage,
31969     DWORD* pdwStubPhase);
31970 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl_GetItemRect_Proxy(
31971     INameSpaceTreeControl* This,
31972     IShellItem *psi,
31973     RECT *prect);
31974 void __RPC_STUB INameSpaceTreeControl_GetItemRect_Stub(
31975     IRpcStubBuffer* This,
31976     IRpcChannelBuffer* pRpcChannelBuffer,
31977     PRPC_MESSAGE pRpcMessage,
31978     DWORD* pdwStubPhase);
31979 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl_CollapseAll_Proxy(
31980     INameSpaceTreeControl* This);
31981 void __RPC_STUB INameSpaceTreeControl_CollapseAll_Stub(
31982     IRpcStubBuffer* This,
31983     IRpcChannelBuffer* pRpcChannelBuffer,
31984     PRPC_MESSAGE pRpcMessage,
31985     DWORD* pdwStubPhase);
31986 
31987 #endif  /* __INameSpaceTreeControl_INTERFACE_DEFINED__ */
31988 
31989 
31990 /*****************************************************************************
31991  * INameSpaceTreeControl2 interface
31992  */
31993 #ifndef __INameSpaceTreeControl2_INTERFACE_DEFINED__
31994 #define __INameSpaceTreeControl2_INTERFACE_DEFINED__
31995 
31996 typedef enum NSTCSTYLE2 {
31997     NSTCS2_DEFAULT = 0x0,
31998     NSTCS2_INTERRUPTNOTIFICATIONS = 0x1,
31999     NSTCS2_SHOWNULLSPACEMENU = 0x2,
32000     NSTCS2_DISPLAYPADDING = 0x4,
32001     NSTCS2_DISPLAYPINNEDONLY = 0x8,
32002     NTSCS2_NOSINGLETONAUTOEXPAND = 0x10,
32003     NTSCS2_NEVERINSERTNONENUMERATED = 0x20
32004 } NSTCSTYLE2;
32005 
32006 DEFINE_ENUM_FLAG_OPERATORS(NSTCSTYLE2)
32007 
32008 DEFINE_GUID(IID_INameSpaceTreeControl2, 0x7cc7aed8, 0x290e, 0x49bc, 0x89,0x45, 0xc1,0x40,0x1c,0xc9,0x30,0x6c);
32009 #if defined(__cplusplus) && !defined(CINTERFACE)
32010 MIDL_INTERFACE("7cc7aed8-290e-49bc-8945-c1401cc9306c")
32011 INameSpaceTreeControl2 : public INameSpaceTreeControl
32012 {
32013     virtual HRESULT STDMETHODCALLTYPE SetControlStyle(
32014         NSTCSTYLE nstcsMask,
32015         NSTCSTYLE nstcsStyle) = 0;
32016 
32017     virtual HRESULT STDMETHODCALLTYPE GetControlStyle(
32018         NSTCSTYLE nstcsMask,
32019         NSTCSTYLE *pnstcsStyle) = 0;
32020 
32021     virtual HRESULT STDMETHODCALLTYPE SetControlStyle2(
32022         NSTCSTYLE2 nstcsMask,
32023         NSTCSTYLE2 nstcsStyle) = 0;
32024 
32025     virtual HRESULT STDMETHODCALLTYPE GetControlStyle2(
32026         NSTCSTYLE2 nstcsMask,
32027         NSTCSTYLE2 *pnstcsStyle) = 0;
32028 
32029 };
32030 #ifdef __CRT_UUID_DECL
32031 __CRT_UUID_DECL(INameSpaceTreeControl2, 0x7cc7aed8, 0x290e, 0x49bc, 0x89,0x45, 0xc1,0x40,0x1c,0xc9,0x30,0x6c)
32032 #endif
32033 #else
32034 typedef struct INameSpaceTreeControl2Vtbl {
32035     BEGIN_INTERFACE
32036 
32037     /*** IUnknown methods ***/
32038     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
32039         INameSpaceTreeControl2* This,
32040         REFIID riid,
32041         void **ppvObject);
32042 
32043     ULONG (STDMETHODCALLTYPE *AddRef)(
32044         INameSpaceTreeControl2* This);
32045 
32046     ULONG (STDMETHODCALLTYPE *Release)(
32047         INameSpaceTreeControl2* This);
32048 
32049     /*** INameSpaceTreeControl methods ***/
32050     HRESULT (STDMETHODCALLTYPE *Initialize)(
32051         INameSpaceTreeControl2* This,
32052         HWND hwndParent,
32053         RECT *prc,
32054         NSTCSTYLE nsctsFlags);
32055 
32056     HRESULT (STDMETHODCALLTYPE *TreeAdvise)(
32057         INameSpaceTreeControl2* This,
32058         IUnknown *punk,
32059         DWORD *pdwCookie);
32060 
32061     HRESULT (STDMETHODCALLTYPE *TreeUnadvise)(
32062         INameSpaceTreeControl2* This,
32063         DWORD dwCookie);
32064 
32065     HRESULT (STDMETHODCALLTYPE *AppendRoot)(
32066         INameSpaceTreeControl2* This,
32067         IShellItem *psiRoot,
32068         SHCONTF grfEnumFlags,
32069         NSTCROOTSTYLE grfRootStyle,
32070         IShellItemFilter *pif);
32071 
32072     HRESULT (STDMETHODCALLTYPE *InsertRoot)(
32073         INameSpaceTreeControl2* This,
32074         int iIndex,
32075         IShellItem *psiRoot,
32076         SHCONTF grfEnumFlags,
32077         NSTCROOTSTYLE grfRootStyle,
32078         IShellItemFilter *pif);
32079 
32080     HRESULT (STDMETHODCALLTYPE *RemoveRoot)(
32081         INameSpaceTreeControl2* This,
32082         IShellItem *psiRoot);
32083 
32084     HRESULT (STDMETHODCALLTYPE *RemoveAllRoots)(
32085         INameSpaceTreeControl2* This);
32086 
32087     HRESULT (STDMETHODCALLTYPE *GetRootItems)(
32088         INameSpaceTreeControl2* This,
32089         IShellItemArray **ppsiaRootItems);
32090 
32091     HRESULT (STDMETHODCALLTYPE *SetItemState)(
32092         INameSpaceTreeControl2* This,
32093         IShellItem *psi,
32094         NSTCITEMSTATE nstcisMask,
32095         NSTCITEMSTATE nstcisFlags);
32096 
32097     HRESULT (STDMETHODCALLTYPE *GetItemState)(
32098         INameSpaceTreeControl2* This,
32099         IShellItem *psi,
32100         NSTCITEMSTATE nstcisMask,
32101         NSTCITEMSTATE *pnstcisFlags);
32102 
32103     HRESULT (STDMETHODCALLTYPE *GetSelectedItems)(
32104         INameSpaceTreeControl2* This,
32105         IShellItemArray **psiaItems);
32106 
32107     HRESULT (STDMETHODCALLTYPE *GetItemCustomState)(
32108         INameSpaceTreeControl2* This,
32109         IShellItem *psi,
32110         int *piStateNumber);
32111 
32112     HRESULT (STDMETHODCALLTYPE *SetItemCustomState)(
32113         INameSpaceTreeControl2* This,
32114         IShellItem *psi,
32115         int iStateNumber);
32116 
32117     HRESULT (STDMETHODCALLTYPE *EnsureItemVisible)(
32118         INameSpaceTreeControl2* This,
32119         IShellItem *psi);
32120 
32121     HRESULT (STDMETHODCALLTYPE *SetTheme)(
32122         INameSpaceTreeControl2* This,
32123         LPCWSTR pszTheme);
32124 
32125     HRESULT (STDMETHODCALLTYPE *GetNextItem)(
32126         INameSpaceTreeControl2* This,
32127         IShellItem *psi,
32128         NSTCGNI nstcgi,
32129         IShellItem **ppsiNext);
32130 
32131     HRESULT (STDMETHODCALLTYPE *HitTest)(
32132         INameSpaceTreeControl2* This,
32133         POINT *ppt,
32134         IShellItem **ppsiOut);
32135 
32136     HRESULT (STDMETHODCALLTYPE *GetItemRect)(
32137         INameSpaceTreeControl2* This,
32138         IShellItem *psi,
32139         RECT *prect);
32140 
32141     HRESULT (STDMETHODCALLTYPE *CollapseAll)(
32142         INameSpaceTreeControl2* This);
32143 
32144     /*** INameSpaceTreeControl2 methods ***/
32145     HRESULT (STDMETHODCALLTYPE *SetControlStyle)(
32146         INameSpaceTreeControl2* This,
32147         NSTCSTYLE nstcsMask,
32148         NSTCSTYLE nstcsStyle);
32149 
32150     HRESULT (STDMETHODCALLTYPE *GetControlStyle)(
32151         INameSpaceTreeControl2* This,
32152         NSTCSTYLE nstcsMask,
32153         NSTCSTYLE *pnstcsStyle);
32154 
32155     HRESULT (STDMETHODCALLTYPE *SetControlStyle2)(
32156         INameSpaceTreeControl2* This,
32157         NSTCSTYLE2 nstcsMask,
32158         NSTCSTYLE2 nstcsStyle);
32159 
32160     HRESULT (STDMETHODCALLTYPE *GetControlStyle2)(
32161         INameSpaceTreeControl2* This,
32162         NSTCSTYLE2 nstcsMask,
32163         NSTCSTYLE2 *pnstcsStyle);
32164 
32165     END_INTERFACE
32166 } INameSpaceTreeControl2Vtbl;
32167 interface INameSpaceTreeControl2 {
32168     CONST_VTBL INameSpaceTreeControl2Vtbl* lpVtbl;
32169 };
32170 
32171 #ifdef COBJMACROS
32172 #ifndef WIDL_C_INLINE_WRAPPERS
32173 /*** IUnknown methods ***/
32174 #define INameSpaceTreeControl2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
32175 #define INameSpaceTreeControl2_AddRef(This) (This)->lpVtbl->AddRef(This)
32176 #define INameSpaceTreeControl2_Release(This) (This)->lpVtbl->Release(This)
32177 /*** INameSpaceTreeControl methods ***/
32178 #define INameSpaceTreeControl2_Initialize(This,hwndParent,prc,nsctsFlags) (This)->lpVtbl->Initialize(This,hwndParent,prc,nsctsFlags)
32179 #define INameSpaceTreeControl2_TreeAdvise(This,punk,pdwCookie) (This)->lpVtbl->TreeAdvise(This,punk,pdwCookie)
32180 #define INameSpaceTreeControl2_TreeUnadvise(This,dwCookie) (This)->lpVtbl->TreeUnadvise(This,dwCookie)
32181 #define INameSpaceTreeControl2_AppendRoot(This,psiRoot,grfEnumFlags,grfRootStyle,pif) (This)->lpVtbl->AppendRoot(This,psiRoot,grfEnumFlags,grfRootStyle,pif)
32182 #define INameSpaceTreeControl2_InsertRoot(This,iIndex,psiRoot,grfEnumFlags,grfRootStyle,pif) (This)->lpVtbl->InsertRoot(This,iIndex,psiRoot,grfEnumFlags,grfRootStyle,pif)
32183 #define INameSpaceTreeControl2_RemoveRoot(This,psiRoot) (This)->lpVtbl->RemoveRoot(This,psiRoot)
32184 #define INameSpaceTreeControl2_RemoveAllRoots(This) (This)->lpVtbl->RemoveAllRoots(This)
32185 #define INameSpaceTreeControl2_GetRootItems(This,ppsiaRootItems) (This)->lpVtbl->GetRootItems(This,ppsiaRootItems)
32186 #define INameSpaceTreeControl2_SetItemState(This,psi,nstcisMask,nstcisFlags) (This)->lpVtbl->SetItemState(This,psi,nstcisMask,nstcisFlags)
32187 #define INameSpaceTreeControl2_GetItemState(This,psi,nstcisMask,pnstcisFlags) (This)->lpVtbl->GetItemState(This,psi,nstcisMask,pnstcisFlags)
32188 #define INameSpaceTreeControl2_GetSelectedItems(This,psiaItems) (This)->lpVtbl->GetSelectedItems(This,psiaItems)
32189 #define INameSpaceTreeControl2_GetItemCustomState(This,psi,piStateNumber) (This)->lpVtbl->GetItemCustomState(This,psi,piStateNumber)
32190 #define INameSpaceTreeControl2_SetItemCustomState(This,psi,iStateNumber) (This)->lpVtbl->SetItemCustomState(This,psi,iStateNumber)
32191 #define INameSpaceTreeControl2_EnsureItemVisible(This,psi) (This)->lpVtbl->EnsureItemVisible(This,psi)
32192 #define INameSpaceTreeControl2_SetTheme(This,pszTheme) (This)->lpVtbl->SetTheme(This,pszTheme)
32193 #define INameSpaceTreeControl2_GetNextItem(This,psi,nstcgi,ppsiNext) (This)->lpVtbl->GetNextItem(This,psi,nstcgi,ppsiNext)
32194 #define INameSpaceTreeControl2_HitTest(This,ppt,ppsiOut) (This)->lpVtbl->HitTest(This,ppt,ppsiOut)
32195 #define INameSpaceTreeControl2_GetItemRect(This,psi,prect) (This)->lpVtbl->GetItemRect(This,psi,prect)
32196 #define INameSpaceTreeControl2_CollapseAll(This) (This)->lpVtbl->CollapseAll(This)
32197 /*** INameSpaceTreeControl2 methods ***/
32198 #define INameSpaceTreeControl2_SetControlStyle(This,nstcsMask,nstcsStyle) (This)->lpVtbl->SetControlStyle(This,nstcsMask,nstcsStyle)
32199 #define INameSpaceTreeControl2_GetControlStyle(This,nstcsMask,pnstcsStyle) (This)->lpVtbl->GetControlStyle(This,nstcsMask,pnstcsStyle)
32200 #define INameSpaceTreeControl2_SetControlStyle2(This,nstcsMask,nstcsStyle) (This)->lpVtbl->SetControlStyle2(This,nstcsMask,nstcsStyle)
32201 #define INameSpaceTreeControl2_GetControlStyle2(This,nstcsMask,pnstcsStyle) (This)->lpVtbl->GetControlStyle2(This,nstcsMask,pnstcsStyle)
32202 #else
32203 /*** IUnknown methods ***/
32204 static FORCEINLINE HRESULT INameSpaceTreeControl2_QueryInterface(INameSpaceTreeControl2* This,REFIID riid,void **ppvObject) {
32205     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
32206 }
32207 static FORCEINLINE ULONG INameSpaceTreeControl2_AddRef(INameSpaceTreeControl2* This) {
32208     return This->lpVtbl->AddRef(This);
32209 }
32210 static FORCEINLINE ULONG INameSpaceTreeControl2_Release(INameSpaceTreeControl2* This) {
32211     return This->lpVtbl->Release(This);
32212 }
32213 /*** INameSpaceTreeControl methods ***/
32214 static FORCEINLINE HRESULT INameSpaceTreeControl2_Initialize(INameSpaceTreeControl2* This,HWND hwndParent,RECT *prc,NSTCSTYLE nsctsFlags) {
32215     return This->lpVtbl->Initialize(This,hwndParent,prc,nsctsFlags);
32216 }
32217 static FORCEINLINE HRESULT INameSpaceTreeControl2_TreeAdvise(INameSpaceTreeControl2* This,IUnknown *punk,DWORD *pdwCookie) {
32218     return This->lpVtbl->TreeAdvise(This,punk,pdwCookie);
32219 }
32220 static FORCEINLINE HRESULT INameSpaceTreeControl2_TreeUnadvise(INameSpaceTreeControl2* This,DWORD dwCookie) {
32221     return This->lpVtbl->TreeUnadvise(This,dwCookie);
32222 }
32223 static FORCEINLINE HRESULT INameSpaceTreeControl2_AppendRoot(INameSpaceTreeControl2* This,IShellItem *psiRoot,SHCONTF grfEnumFlags,NSTCROOTSTYLE grfRootStyle,IShellItemFilter *pif) {
32224     return This->lpVtbl->AppendRoot(This,psiRoot,grfEnumFlags,grfRootStyle,pif);
32225 }
32226 static FORCEINLINE HRESULT INameSpaceTreeControl2_InsertRoot(INameSpaceTreeControl2* This,int iIndex,IShellItem *psiRoot,SHCONTF grfEnumFlags,NSTCROOTSTYLE grfRootStyle,IShellItemFilter *pif) {
32227     return This->lpVtbl->InsertRoot(This,iIndex,psiRoot,grfEnumFlags,grfRootStyle,pif);
32228 }
32229 static FORCEINLINE HRESULT INameSpaceTreeControl2_RemoveRoot(INameSpaceTreeControl2* This,IShellItem *psiRoot) {
32230     return This->lpVtbl->RemoveRoot(This,psiRoot);
32231 }
32232 static FORCEINLINE HRESULT INameSpaceTreeControl2_RemoveAllRoots(INameSpaceTreeControl2* This) {
32233     return This->lpVtbl->RemoveAllRoots(This);
32234 }
32235 static FORCEINLINE HRESULT INameSpaceTreeControl2_GetRootItems(INameSpaceTreeControl2* This,IShellItemArray **ppsiaRootItems) {
32236     return This->lpVtbl->GetRootItems(This,ppsiaRootItems);
32237 }
32238 static FORCEINLINE HRESULT INameSpaceTreeControl2_SetItemState(INameSpaceTreeControl2* This,IShellItem *psi,NSTCITEMSTATE nstcisMask,NSTCITEMSTATE nstcisFlags) {
32239     return This->lpVtbl->SetItemState(This,psi,nstcisMask,nstcisFlags);
32240 }
32241 static FORCEINLINE HRESULT INameSpaceTreeControl2_GetItemState(INameSpaceTreeControl2* This,IShellItem *psi,NSTCITEMSTATE nstcisMask,NSTCITEMSTATE *pnstcisFlags) {
32242     return This->lpVtbl->GetItemState(This,psi,nstcisMask,pnstcisFlags);
32243 }
32244 static FORCEINLINE HRESULT INameSpaceTreeControl2_GetSelectedItems(INameSpaceTreeControl2* This,IShellItemArray **psiaItems) {
32245     return This->lpVtbl->GetSelectedItems(This,psiaItems);
32246 }
32247 static FORCEINLINE HRESULT INameSpaceTreeControl2_GetItemCustomState(INameSpaceTreeControl2* This,IShellItem *psi,int *piStateNumber) {
32248     return This->lpVtbl->GetItemCustomState(This,psi,piStateNumber);
32249 }
32250 static FORCEINLINE HRESULT INameSpaceTreeControl2_SetItemCustomState(INameSpaceTreeControl2* This,IShellItem *psi,int iStateNumber) {
32251     return This->lpVtbl->SetItemCustomState(This,psi,iStateNumber);
32252 }
32253 static FORCEINLINE HRESULT INameSpaceTreeControl2_EnsureItemVisible(INameSpaceTreeControl2* This,IShellItem *psi) {
32254     return This->lpVtbl->EnsureItemVisible(This,psi);
32255 }
32256 static FORCEINLINE HRESULT INameSpaceTreeControl2_SetTheme(INameSpaceTreeControl2* This,LPCWSTR pszTheme) {
32257     return This->lpVtbl->SetTheme(This,pszTheme);
32258 }
32259 static FORCEINLINE HRESULT INameSpaceTreeControl2_GetNextItem(INameSpaceTreeControl2* This,IShellItem *psi,NSTCGNI nstcgi,IShellItem **ppsiNext) {
32260     return This->lpVtbl->GetNextItem(This,psi,nstcgi,ppsiNext);
32261 }
32262 static FORCEINLINE HRESULT INameSpaceTreeControl2_HitTest(INameSpaceTreeControl2* This,POINT *ppt,IShellItem **ppsiOut) {
32263     return This->lpVtbl->HitTest(This,ppt,ppsiOut);
32264 }
32265 static FORCEINLINE HRESULT INameSpaceTreeControl2_GetItemRect(INameSpaceTreeControl2* This,IShellItem *psi,RECT *prect) {
32266     return This->lpVtbl->GetItemRect(This,psi,prect);
32267 }
32268 static FORCEINLINE HRESULT INameSpaceTreeControl2_CollapseAll(INameSpaceTreeControl2* This) {
32269     return This->lpVtbl->CollapseAll(This);
32270 }
32271 /*** INameSpaceTreeControl2 methods ***/
32272 static FORCEINLINE HRESULT INameSpaceTreeControl2_SetControlStyle(INameSpaceTreeControl2* This,NSTCSTYLE nstcsMask,NSTCSTYLE nstcsStyle) {
32273     return This->lpVtbl->SetControlStyle(This,nstcsMask,nstcsStyle);
32274 }
32275 static FORCEINLINE HRESULT INameSpaceTreeControl2_GetControlStyle(INameSpaceTreeControl2* This,NSTCSTYLE nstcsMask,NSTCSTYLE *pnstcsStyle) {
32276     return This->lpVtbl->GetControlStyle(This,nstcsMask,pnstcsStyle);
32277 }
32278 static FORCEINLINE HRESULT INameSpaceTreeControl2_SetControlStyle2(INameSpaceTreeControl2* This,NSTCSTYLE2 nstcsMask,NSTCSTYLE2 nstcsStyle) {
32279     return This->lpVtbl->SetControlStyle2(This,nstcsMask,nstcsStyle);
32280 }
32281 static FORCEINLINE HRESULT INameSpaceTreeControl2_GetControlStyle2(INameSpaceTreeControl2* This,NSTCSTYLE2 nstcsMask,NSTCSTYLE2 *pnstcsStyle) {
32282     return This->lpVtbl->GetControlStyle2(This,nstcsMask,pnstcsStyle);
32283 }
32284 #endif
32285 #endif
32286 
32287 #endif
32288 
32289 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl2_SetControlStyle_Proxy(
32290     INameSpaceTreeControl2* This,
32291     NSTCSTYLE nstcsMask,
32292     NSTCSTYLE nstcsStyle);
32293 void __RPC_STUB INameSpaceTreeControl2_SetControlStyle_Stub(
32294     IRpcStubBuffer* This,
32295     IRpcChannelBuffer* pRpcChannelBuffer,
32296     PRPC_MESSAGE pRpcMessage,
32297     DWORD* pdwStubPhase);
32298 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl2_GetControlStyle_Proxy(
32299     INameSpaceTreeControl2* This,
32300     NSTCSTYLE nstcsMask,
32301     NSTCSTYLE *pnstcsStyle);
32302 void __RPC_STUB INameSpaceTreeControl2_GetControlStyle_Stub(
32303     IRpcStubBuffer* This,
32304     IRpcChannelBuffer* pRpcChannelBuffer,
32305     PRPC_MESSAGE pRpcMessage,
32306     DWORD* pdwStubPhase);
32307 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl2_SetControlStyle2_Proxy(
32308     INameSpaceTreeControl2* This,
32309     NSTCSTYLE2 nstcsMask,
32310     NSTCSTYLE2 nstcsStyle);
32311 void __RPC_STUB INameSpaceTreeControl2_SetControlStyle2_Stub(
32312     IRpcStubBuffer* This,
32313     IRpcChannelBuffer* pRpcChannelBuffer,
32314     PRPC_MESSAGE pRpcMessage,
32315     DWORD* pdwStubPhase);
32316 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl2_GetControlStyle2_Proxy(
32317     INameSpaceTreeControl2* This,
32318     NSTCSTYLE2 nstcsMask,
32319     NSTCSTYLE2 *pnstcsStyle);
32320 void __RPC_STUB INameSpaceTreeControl2_GetControlStyle2_Stub(
32321     IRpcStubBuffer* This,
32322     IRpcChannelBuffer* pRpcChannelBuffer,
32323     PRPC_MESSAGE pRpcMessage,
32324     DWORD* pdwStubPhase);
32325 
32326 #endif  /* __INameSpaceTreeControl2_INTERFACE_DEFINED__ */
32327 
32328 
32329 #define NSTCS2_ALLMASK (NSTCS2_INTERRUPTNOTIFICATIONS | NSTCS2_SHOWNULLSPACEMENU | NSTCS2_DISPLAYPADDING)
32330 #define SID_SNavigationPane IID_INameSpaceTreeControl
32331 
32332 #define ISLBUTTON(x) (NSTCECT_LBUTTON == ((x) & NSTCECT_BUTTON))
32333 #define ISMBUTTON(x) (NSTCECT_MBUTTON == ((x) & NSTCECT_BUTTON))
32334 #define ISRBUTTON(x) (NSTCECT_RBUTTON == ((x) & NSTCECT_BUTTON))
32335 #define ISDBLCLICK(x) (NSTCECT_DBLCLICK == ((x) & NSTCECT_DBLCLICK))
32336 
32337 /*****************************************************************************
32338  * INameSpaceTreeControlEvents interface
32339  */
32340 #ifndef __INameSpaceTreeControlEvents_INTERFACE_DEFINED__
32341 #define __INameSpaceTreeControlEvents_INTERFACE_DEFINED__
32342 
32343 enum _NSTCEHITTEST {
32344     NSTCEHT_NOWHERE = 0x1,
32345     NSTCEHT_ONITEMICON = 0x2,
32346     NSTCEHT_ONITEMLABEL = 0x4,
32347     NSTCEHT_ONITEMINDENT = 0x8,
32348     NSTCEHT_ONITEMBUTTON = 0x10,
32349     NSTCEHT_ONITEMRIGHT = 0x20,
32350     NSTCEHT_ONITEMSTATEICON = 0x40,
32351     NSTCEHT_ONITEM = 0x46,
32352     NSTCEHT_ONITEMTABBUTTON = 0x1000
32353 };
32354 
32355 
32356 typedef DWORD NSTCEHITTEST;
32357 
32358 enum _NSTCECLICKTYPE {
32359     NSTCECT_LBUTTON = 0x1,
32360     NSTCECT_MBUTTON = 0x2,
32361     NSTCECT_RBUTTON = 0x3,
32362     NSTCECT_BUTTON = 0x3,
32363     NSTCECT_DBLCLICK = 0x4
32364 };
32365 
32366 
32367 typedef DWORD NSTCECLICKTYPE;
32368 
32369 DEFINE_GUID(IID_INameSpaceTreeControlEvents, 0x93d77985, 0xb3d8, 0x4484, 0x83,0x18, 0x67,0x2c,0xdd,0xa0,0x02,0xce);
32370 #if defined(__cplusplus) && !defined(CINTERFACE)
32371 MIDL_INTERFACE("93d77985-b3d8-4484-8318-672cdda002ce")
32372 INameSpaceTreeControlEvents : public IUnknown
32373 {
32374     virtual HRESULT STDMETHODCALLTYPE OnItemClick(
32375         IShellItem *psi,
32376         NSTCEHITTEST nstceHitTest,
32377         NSTCECLICKTYPE nstceClickType) = 0;
32378 
32379     virtual HRESULT STDMETHODCALLTYPE OnPropertyItemCommit(
32380         IShellItem *psi) = 0;
32381 
32382     virtual HRESULT STDMETHODCALLTYPE OnItemStateChanging(
32383         IShellItem *psi,
32384         NSTCITEMSTATE nstcisMask,
32385         NSTCITEMSTATE nstcisState) = 0;
32386 
32387     virtual HRESULT STDMETHODCALLTYPE OnItemStateChanged(
32388         IShellItem *psi,
32389         NSTCITEMSTATE nstcisMask,
32390         NSTCITEMSTATE nstcisState) = 0;
32391 
32392     virtual HRESULT STDMETHODCALLTYPE OnSelectionChanged(
32393         IShellItemArray *psiaSelection) = 0;
32394 
32395     virtual HRESULT STDMETHODCALLTYPE OnKeyboardInput(
32396         UINT uMsg,
32397         WPARAM wParam,
32398         LPARAM lParam) = 0;
32399 
32400     virtual HRESULT STDMETHODCALLTYPE OnBeforeExpand(
32401         IShellItem *psi) = 0;
32402 
32403     virtual HRESULT STDMETHODCALLTYPE OnAfterExpand(
32404         IShellItem *psi) = 0;
32405 
32406     virtual HRESULT STDMETHODCALLTYPE OnBeginLabelEdit(
32407         IShellItem *psi) = 0;
32408 
32409     virtual HRESULT STDMETHODCALLTYPE OnEndLabelEdit(
32410         IShellItem *psi) = 0;
32411 
32412     virtual HRESULT STDMETHODCALLTYPE OnGetToolTip(
32413         IShellItem *psi,
32414         LPWSTR pszTip,
32415         int cchTip) = 0;
32416 
32417     virtual HRESULT STDMETHODCALLTYPE OnBeforeItemDelete(
32418         IShellItem *psi) = 0;
32419 
32420     virtual HRESULT STDMETHODCALLTYPE OnItemAdded(
32421         IShellItem *psi,
32422         WINBOOL fIsRoot) = 0;
32423 
32424     virtual HRESULT STDMETHODCALLTYPE OnItemDeleted(
32425         IShellItem *psi,
32426         WINBOOL fIsRoot) = 0;
32427 
32428     virtual HRESULT STDMETHODCALLTYPE OnBeforeContextMenu(
32429         IShellItem *psi,
32430         REFIID riid,
32431         void **ppv) = 0;
32432 
32433     virtual HRESULT STDMETHODCALLTYPE OnAfterContextMenu(
32434         IShellItem *psi,
32435         IContextMenu *pcmIn,
32436         REFIID riid,
32437         void **ppv) = 0;
32438 
32439     virtual HRESULT STDMETHODCALLTYPE OnBeforeStateImageChange(
32440         IShellItem *psi) = 0;
32441 
32442     virtual HRESULT STDMETHODCALLTYPE OnGetDefaultIconIndex(
32443         IShellItem *psi,
32444         int *piDefaultIcon,
32445         int *piOpenIcon) = 0;
32446 
32447 };
32448 #ifdef __CRT_UUID_DECL
32449 __CRT_UUID_DECL(INameSpaceTreeControlEvents, 0x93d77985, 0xb3d8, 0x4484, 0x83,0x18, 0x67,0x2c,0xdd,0xa0,0x02,0xce)
32450 #endif
32451 #else
32452 typedef struct INameSpaceTreeControlEventsVtbl {
32453     BEGIN_INTERFACE
32454 
32455     /*** IUnknown methods ***/
32456     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
32457         INameSpaceTreeControlEvents* This,
32458         REFIID riid,
32459         void **ppvObject);
32460 
32461     ULONG (STDMETHODCALLTYPE *AddRef)(
32462         INameSpaceTreeControlEvents* This);
32463 
32464     ULONG (STDMETHODCALLTYPE *Release)(
32465         INameSpaceTreeControlEvents* This);
32466 
32467     /*** INameSpaceTreeControlEvents methods ***/
32468     HRESULT (STDMETHODCALLTYPE *OnItemClick)(
32469         INameSpaceTreeControlEvents* This,
32470         IShellItem *psi,
32471         NSTCEHITTEST nstceHitTest,
32472         NSTCECLICKTYPE nstceClickType);
32473 
32474     HRESULT (STDMETHODCALLTYPE *OnPropertyItemCommit)(
32475         INameSpaceTreeControlEvents* This,
32476         IShellItem *psi);
32477 
32478     HRESULT (STDMETHODCALLTYPE *OnItemStateChanging)(
32479         INameSpaceTreeControlEvents* This,
32480         IShellItem *psi,
32481         NSTCITEMSTATE nstcisMask,
32482         NSTCITEMSTATE nstcisState);
32483 
32484     HRESULT (STDMETHODCALLTYPE *OnItemStateChanged)(
32485         INameSpaceTreeControlEvents* This,
32486         IShellItem *psi,
32487         NSTCITEMSTATE nstcisMask,
32488         NSTCITEMSTATE nstcisState);
32489 
32490     HRESULT (STDMETHODCALLTYPE *OnSelectionChanged)(
32491         INameSpaceTreeControlEvents* This,
32492         IShellItemArray *psiaSelection);
32493 
32494     HRESULT (STDMETHODCALLTYPE *OnKeyboardInput)(
32495         INameSpaceTreeControlEvents* This,
32496         UINT uMsg,
32497         WPARAM wParam,
32498         LPARAM lParam);
32499 
32500     HRESULT (STDMETHODCALLTYPE *OnBeforeExpand)(
32501         INameSpaceTreeControlEvents* This,
32502         IShellItem *psi);
32503 
32504     HRESULT (STDMETHODCALLTYPE *OnAfterExpand)(
32505         INameSpaceTreeControlEvents* This,
32506         IShellItem *psi);
32507 
32508     HRESULT (STDMETHODCALLTYPE *OnBeginLabelEdit)(
32509         INameSpaceTreeControlEvents* This,
32510         IShellItem *psi);
32511 
32512     HRESULT (STDMETHODCALLTYPE *OnEndLabelEdit)(
32513         INameSpaceTreeControlEvents* This,
32514         IShellItem *psi);
32515 
32516     HRESULT (STDMETHODCALLTYPE *OnGetToolTip)(
32517         INameSpaceTreeControlEvents* This,
32518         IShellItem *psi,
32519         LPWSTR pszTip,
32520         int cchTip);
32521 
32522     HRESULT (STDMETHODCALLTYPE *OnBeforeItemDelete)(
32523         INameSpaceTreeControlEvents* This,
32524         IShellItem *psi);
32525 
32526     HRESULT (STDMETHODCALLTYPE *OnItemAdded)(
32527         INameSpaceTreeControlEvents* This,
32528         IShellItem *psi,
32529         WINBOOL fIsRoot);
32530 
32531     HRESULT (STDMETHODCALLTYPE *OnItemDeleted)(
32532         INameSpaceTreeControlEvents* This,
32533         IShellItem *psi,
32534         WINBOOL fIsRoot);
32535 
32536     HRESULT (STDMETHODCALLTYPE *OnBeforeContextMenu)(
32537         INameSpaceTreeControlEvents* This,
32538         IShellItem *psi,
32539         REFIID riid,
32540         void **ppv);
32541 
32542     HRESULT (STDMETHODCALLTYPE *OnAfterContextMenu)(
32543         INameSpaceTreeControlEvents* This,
32544         IShellItem *psi,
32545         IContextMenu *pcmIn,
32546         REFIID riid,
32547         void **ppv);
32548 
32549     HRESULT (STDMETHODCALLTYPE *OnBeforeStateImageChange)(
32550         INameSpaceTreeControlEvents* This,
32551         IShellItem *psi);
32552 
32553     HRESULT (STDMETHODCALLTYPE *OnGetDefaultIconIndex)(
32554         INameSpaceTreeControlEvents* This,
32555         IShellItem *psi,
32556         int *piDefaultIcon,
32557         int *piOpenIcon);
32558 
32559     END_INTERFACE
32560 } INameSpaceTreeControlEventsVtbl;
32561 interface INameSpaceTreeControlEvents {
32562     CONST_VTBL INameSpaceTreeControlEventsVtbl* lpVtbl;
32563 };
32564 
32565 #ifdef COBJMACROS
32566 #ifndef WIDL_C_INLINE_WRAPPERS
32567 /*** IUnknown methods ***/
32568 #define INameSpaceTreeControlEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
32569 #define INameSpaceTreeControlEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
32570 #define INameSpaceTreeControlEvents_Release(This) (This)->lpVtbl->Release(This)
32571 /*** INameSpaceTreeControlEvents methods ***/
32572 #define INameSpaceTreeControlEvents_OnItemClick(This,psi,nstceHitTest,nstceClickType) (This)->lpVtbl->OnItemClick(This,psi,nstceHitTest,nstceClickType)
32573 #define INameSpaceTreeControlEvents_OnPropertyItemCommit(This,psi) (This)->lpVtbl->OnPropertyItemCommit(This,psi)
32574 #define INameSpaceTreeControlEvents_OnItemStateChanging(This,psi,nstcisMask,nstcisState) (This)->lpVtbl->OnItemStateChanging(This,psi,nstcisMask,nstcisState)
32575 #define INameSpaceTreeControlEvents_OnItemStateChanged(This,psi,nstcisMask,nstcisState) (This)->lpVtbl->OnItemStateChanged(This,psi,nstcisMask,nstcisState)
32576 #define INameSpaceTreeControlEvents_OnSelectionChanged(This,psiaSelection) (This)->lpVtbl->OnSelectionChanged(This,psiaSelection)
32577 #define INameSpaceTreeControlEvents_OnKeyboardInput(This,uMsg,wParam,lParam) (This)->lpVtbl->OnKeyboardInput(This,uMsg,wParam,lParam)
32578 #define INameSpaceTreeControlEvents_OnBeforeExpand(This,psi) (This)->lpVtbl->OnBeforeExpand(This,psi)
32579 #define INameSpaceTreeControlEvents_OnAfterExpand(This,psi) (This)->lpVtbl->OnAfterExpand(This,psi)
32580 #define INameSpaceTreeControlEvents_OnBeginLabelEdit(This,psi) (This)->lpVtbl->OnBeginLabelEdit(This,psi)
32581 #define INameSpaceTreeControlEvents_OnEndLabelEdit(This,psi) (This)->lpVtbl->OnEndLabelEdit(This,psi)
32582 #define INameSpaceTreeControlEvents_OnGetToolTip(This,psi,pszTip,cchTip) (This)->lpVtbl->OnGetToolTip(This,psi,pszTip,cchTip)
32583 #define INameSpaceTreeControlEvents_OnBeforeItemDelete(This,psi) (This)->lpVtbl->OnBeforeItemDelete(This,psi)
32584 #define INameSpaceTreeControlEvents_OnItemAdded(This,psi,fIsRoot) (This)->lpVtbl->OnItemAdded(This,psi,fIsRoot)
32585 #define INameSpaceTreeControlEvents_OnItemDeleted(This,psi,fIsRoot) (This)->lpVtbl->OnItemDeleted(This,psi,fIsRoot)
32586 #define INameSpaceTreeControlEvents_OnBeforeContextMenu(This,psi,riid,ppv) (This)->lpVtbl->OnBeforeContextMenu(This,psi,riid,ppv)
32587 #define INameSpaceTreeControlEvents_OnAfterContextMenu(This,psi,pcmIn,riid,ppv) (This)->lpVtbl->OnAfterContextMenu(This,psi,pcmIn,riid,ppv)
32588 #define INameSpaceTreeControlEvents_OnBeforeStateImageChange(This,psi) (This)->lpVtbl->OnBeforeStateImageChange(This,psi)
32589 #define INameSpaceTreeControlEvents_OnGetDefaultIconIndex(This,psi,piDefaultIcon,piOpenIcon) (This)->lpVtbl->OnGetDefaultIconIndex(This,psi,piDefaultIcon,piOpenIcon)
32590 #else
32591 /*** IUnknown methods ***/
32592 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_QueryInterface(INameSpaceTreeControlEvents* This,REFIID riid,void **ppvObject) {
32593     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
32594 }
32595 static FORCEINLINE ULONG INameSpaceTreeControlEvents_AddRef(INameSpaceTreeControlEvents* This) {
32596     return This->lpVtbl->AddRef(This);
32597 }
32598 static FORCEINLINE ULONG INameSpaceTreeControlEvents_Release(INameSpaceTreeControlEvents* This) {
32599     return This->lpVtbl->Release(This);
32600 }
32601 /*** INameSpaceTreeControlEvents methods ***/
32602 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnItemClick(INameSpaceTreeControlEvents* This,IShellItem *psi,NSTCEHITTEST nstceHitTest,NSTCECLICKTYPE nstceClickType) {
32603     return This->lpVtbl->OnItemClick(This,psi,nstceHitTest,nstceClickType);
32604 }
32605 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnPropertyItemCommit(INameSpaceTreeControlEvents* This,IShellItem *psi) {
32606     return This->lpVtbl->OnPropertyItemCommit(This,psi);
32607 }
32608 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnItemStateChanging(INameSpaceTreeControlEvents* This,IShellItem *psi,NSTCITEMSTATE nstcisMask,NSTCITEMSTATE nstcisState) {
32609     return This->lpVtbl->OnItemStateChanging(This,psi,nstcisMask,nstcisState);
32610 }
32611 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnItemStateChanged(INameSpaceTreeControlEvents* This,IShellItem *psi,NSTCITEMSTATE nstcisMask,NSTCITEMSTATE nstcisState) {
32612     return This->lpVtbl->OnItemStateChanged(This,psi,nstcisMask,nstcisState);
32613 }
32614 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnSelectionChanged(INameSpaceTreeControlEvents* This,IShellItemArray *psiaSelection) {
32615     return This->lpVtbl->OnSelectionChanged(This,psiaSelection);
32616 }
32617 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnKeyboardInput(INameSpaceTreeControlEvents* This,UINT uMsg,WPARAM wParam,LPARAM lParam) {
32618     return This->lpVtbl->OnKeyboardInput(This,uMsg,wParam,lParam);
32619 }
32620 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnBeforeExpand(INameSpaceTreeControlEvents* This,IShellItem *psi) {
32621     return This->lpVtbl->OnBeforeExpand(This,psi);
32622 }
32623 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnAfterExpand(INameSpaceTreeControlEvents* This,IShellItem *psi) {
32624     return This->lpVtbl->OnAfterExpand(This,psi);
32625 }
32626 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnBeginLabelEdit(INameSpaceTreeControlEvents* This,IShellItem *psi) {
32627     return This->lpVtbl->OnBeginLabelEdit(This,psi);
32628 }
32629 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnEndLabelEdit(INameSpaceTreeControlEvents* This,IShellItem *psi) {
32630     return This->lpVtbl->OnEndLabelEdit(This,psi);
32631 }
32632 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnGetToolTip(INameSpaceTreeControlEvents* This,IShellItem *psi,LPWSTR pszTip,int cchTip) {
32633     return This->lpVtbl->OnGetToolTip(This,psi,pszTip,cchTip);
32634 }
32635 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnBeforeItemDelete(INameSpaceTreeControlEvents* This,IShellItem *psi) {
32636     return This->lpVtbl->OnBeforeItemDelete(This,psi);
32637 }
32638 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnItemAdded(INameSpaceTreeControlEvents* This,IShellItem *psi,WINBOOL fIsRoot) {
32639     return This->lpVtbl->OnItemAdded(This,psi,fIsRoot);
32640 }
32641 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnItemDeleted(INameSpaceTreeControlEvents* This,IShellItem *psi,WINBOOL fIsRoot) {
32642     return This->lpVtbl->OnItemDeleted(This,psi,fIsRoot);
32643 }
32644 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnBeforeContextMenu(INameSpaceTreeControlEvents* This,IShellItem *psi,REFIID riid,void **ppv) {
32645     return This->lpVtbl->OnBeforeContextMenu(This,psi,riid,ppv);
32646 }
32647 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnAfterContextMenu(INameSpaceTreeControlEvents* This,IShellItem *psi,IContextMenu *pcmIn,REFIID riid,void **ppv) {
32648     return This->lpVtbl->OnAfterContextMenu(This,psi,pcmIn,riid,ppv);
32649 }
32650 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnBeforeStateImageChange(INameSpaceTreeControlEvents* This,IShellItem *psi) {
32651     return This->lpVtbl->OnBeforeStateImageChange(This,psi);
32652 }
32653 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnGetDefaultIconIndex(INameSpaceTreeControlEvents* This,IShellItem *psi,int *piDefaultIcon,int *piOpenIcon) {
32654     return This->lpVtbl->OnGetDefaultIconIndex(This,psi,piDefaultIcon,piOpenIcon);
32655 }
32656 #endif
32657 #endif
32658 
32659 #endif
32660 
32661 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlEvents_OnItemClick_Proxy(
32662     INameSpaceTreeControlEvents* This,
32663     IShellItem *psi,
32664     NSTCEHITTEST nstceHitTest,
32665     NSTCECLICKTYPE nstceClickType);
32666 void __RPC_STUB INameSpaceTreeControlEvents_OnItemClick_Stub(
32667     IRpcStubBuffer* This,
32668     IRpcChannelBuffer* pRpcChannelBuffer,
32669     PRPC_MESSAGE pRpcMessage,
32670     DWORD* pdwStubPhase);
32671 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlEvents_OnPropertyItemCommit_Proxy(
32672     INameSpaceTreeControlEvents* This,
32673     IShellItem *psi);
32674 void __RPC_STUB INameSpaceTreeControlEvents_OnPropertyItemCommit_Stub(
32675     IRpcStubBuffer* This,
32676     IRpcChannelBuffer* pRpcChannelBuffer,
32677     PRPC_MESSAGE pRpcMessage,
32678     DWORD* pdwStubPhase);
32679 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlEvents_OnItemStateChanging_Proxy(
32680     INameSpaceTreeControlEvents* This,
32681     IShellItem *psi,
32682     NSTCITEMSTATE nstcisMask,
32683     NSTCITEMSTATE nstcisState);
32684 void __RPC_STUB INameSpaceTreeControlEvents_OnItemStateChanging_Stub(
32685     IRpcStubBuffer* This,
32686     IRpcChannelBuffer* pRpcChannelBuffer,
32687     PRPC_MESSAGE pRpcMessage,
32688     DWORD* pdwStubPhase);
32689 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlEvents_OnItemStateChanged_Proxy(
32690     INameSpaceTreeControlEvents* This,
32691     IShellItem *psi,
32692     NSTCITEMSTATE nstcisMask,
32693     NSTCITEMSTATE nstcisState);
32694 void __RPC_STUB INameSpaceTreeControlEvents_OnItemStateChanged_Stub(
32695     IRpcStubBuffer* This,
32696     IRpcChannelBuffer* pRpcChannelBuffer,
32697     PRPC_MESSAGE pRpcMessage,
32698     DWORD* pdwStubPhase);
32699 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlEvents_OnSelectionChanged_Proxy(
32700     INameSpaceTreeControlEvents* This,
32701     IShellItemArray *psiaSelection);
32702 void __RPC_STUB INameSpaceTreeControlEvents_OnSelectionChanged_Stub(
32703     IRpcStubBuffer* This,
32704     IRpcChannelBuffer* pRpcChannelBuffer,
32705     PRPC_MESSAGE pRpcMessage,
32706     DWORD* pdwStubPhase);
32707 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlEvents_OnKeyboardInput_Proxy(
32708     INameSpaceTreeControlEvents* This,
32709     UINT uMsg,
32710     WPARAM wParam,
32711     LPARAM lParam);
32712 void __RPC_STUB INameSpaceTreeControlEvents_OnKeyboardInput_Stub(
32713     IRpcStubBuffer* This,
32714     IRpcChannelBuffer* pRpcChannelBuffer,
32715     PRPC_MESSAGE pRpcMessage,
32716     DWORD* pdwStubPhase);
32717 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlEvents_OnBeforeExpand_Proxy(
32718     INameSpaceTreeControlEvents* This,
32719     IShellItem *psi);
32720 void __RPC_STUB INameSpaceTreeControlEvents_OnBeforeExpand_Stub(
32721     IRpcStubBuffer* This,
32722     IRpcChannelBuffer* pRpcChannelBuffer,
32723     PRPC_MESSAGE pRpcMessage,
32724     DWORD* pdwStubPhase);
32725 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlEvents_OnAfterExpand_Proxy(
32726     INameSpaceTreeControlEvents* This,
32727     IShellItem *psi);
32728 void __RPC_STUB INameSpaceTreeControlEvents_OnAfterExpand_Stub(
32729     IRpcStubBuffer* This,
32730     IRpcChannelBuffer* pRpcChannelBuffer,
32731     PRPC_MESSAGE pRpcMessage,
32732     DWORD* pdwStubPhase);
32733 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlEvents_OnBeginLabelEdit_Proxy(
32734     INameSpaceTreeControlEvents* This,
32735     IShellItem *psi);
32736 void __RPC_STUB INameSpaceTreeControlEvents_OnBeginLabelEdit_Stub(
32737     IRpcStubBuffer* This,
32738     IRpcChannelBuffer* pRpcChannelBuffer,
32739     PRPC_MESSAGE pRpcMessage,
32740     DWORD* pdwStubPhase);
32741 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlEvents_OnEndLabelEdit_Proxy(
32742     INameSpaceTreeControlEvents* This,
32743     IShellItem *psi);
32744 void __RPC_STUB INameSpaceTreeControlEvents_OnEndLabelEdit_Stub(
32745     IRpcStubBuffer* This,
32746     IRpcChannelBuffer* pRpcChannelBuffer,
32747     PRPC_MESSAGE pRpcMessage,
32748     DWORD* pdwStubPhase);
32749 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlEvents_OnGetToolTip_Proxy(
32750     INameSpaceTreeControlEvents* This,
32751     IShellItem *psi,
32752     LPWSTR pszTip,
32753     int cchTip);
32754 void __RPC_STUB INameSpaceTreeControlEvents_OnGetToolTip_Stub(
32755     IRpcStubBuffer* This,
32756     IRpcChannelBuffer* pRpcChannelBuffer,
32757     PRPC_MESSAGE pRpcMessage,
32758     DWORD* pdwStubPhase);
32759 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlEvents_OnBeforeItemDelete_Proxy(
32760     INameSpaceTreeControlEvents* This,
32761     IShellItem *psi);
32762 void __RPC_STUB INameSpaceTreeControlEvents_OnBeforeItemDelete_Stub(
32763     IRpcStubBuffer* This,
32764     IRpcChannelBuffer* pRpcChannelBuffer,
32765     PRPC_MESSAGE pRpcMessage,
32766     DWORD* pdwStubPhase);
32767 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlEvents_OnItemAdded_Proxy(
32768     INameSpaceTreeControlEvents* This,
32769     IShellItem *psi,
32770     WINBOOL fIsRoot);
32771 void __RPC_STUB INameSpaceTreeControlEvents_OnItemAdded_Stub(
32772     IRpcStubBuffer* This,
32773     IRpcChannelBuffer* pRpcChannelBuffer,
32774     PRPC_MESSAGE pRpcMessage,
32775     DWORD* pdwStubPhase);
32776 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlEvents_OnItemDeleted_Proxy(
32777     INameSpaceTreeControlEvents* This,
32778     IShellItem *psi,
32779     WINBOOL fIsRoot);
32780 void __RPC_STUB INameSpaceTreeControlEvents_OnItemDeleted_Stub(
32781     IRpcStubBuffer* This,
32782     IRpcChannelBuffer* pRpcChannelBuffer,
32783     PRPC_MESSAGE pRpcMessage,
32784     DWORD* pdwStubPhase);
32785 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlEvents_OnBeforeContextMenu_Proxy(
32786     INameSpaceTreeControlEvents* This,
32787     IShellItem *psi,
32788     REFIID riid,
32789     void **ppv);
32790 void __RPC_STUB INameSpaceTreeControlEvents_OnBeforeContextMenu_Stub(
32791     IRpcStubBuffer* This,
32792     IRpcChannelBuffer* pRpcChannelBuffer,
32793     PRPC_MESSAGE pRpcMessage,
32794     DWORD* pdwStubPhase);
32795 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlEvents_OnAfterContextMenu_Proxy(
32796     INameSpaceTreeControlEvents* This,
32797     IShellItem *psi,
32798     IContextMenu *pcmIn,
32799     REFIID riid,
32800     void **ppv);
32801 void __RPC_STUB INameSpaceTreeControlEvents_OnAfterContextMenu_Stub(
32802     IRpcStubBuffer* This,
32803     IRpcChannelBuffer* pRpcChannelBuffer,
32804     PRPC_MESSAGE pRpcMessage,
32805     DWORD* pdwStubPhase);
32806 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlEvents_OnBeforeStateImageChange_Proxy(
32807     INameSpaceTreeControlEvents* This,
32808     IShellItem *psi);
32809 void __RPC_STUB INameSpaceTreeControlEvents_OnBeforeStateImageChange_Stub(
32810     IRpcStubBuffer* This,
32811     IRpcChannelBuffer* pRpcChannelBuffer,
32812     PRPC_MESSAGE pRpcMessage,
32813     DWORD* pdwStubPhase);
32814 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlEvents_OnGetDefaultIconIndex_Proxy(
32815     INameSpaceTreeControlEvents* This,
32816     IShellItem *psi,
32817     int *piDefaultIcon,
32818     int *piOpenIcon);
32819 void __RPC_STUB INameSpaceTreeControlEvents_OnGetDefaultIconIndex_Stub(
32820     IRpcStubBuffer* This,
32821     IRpcChannelBuffer* pRpcChannelBuffer,
32822     PRPC_MESSAGE pRpcMessage,
32823     DWORD* pdwStubPhase);
32824 
32825 #endif  /* __INameSpaceTreeControlEvents_INTERFACE_DEFINED__ */
32826 
32827 
32828 #define NSTCDHPOS_ONTOP  -1
32829 
32830 /*****************************************************************************
32831  * INameSpaceTreeControlDropHandler interface
32832  */
32833 #ifndef __INameSpaceTreeControlDropHandler_INTERFACE_DEFINED__
32834 #define __INameSpaceTreeControlDropHandler_INTERFACE_DEFINED__
32835 
32836 DEFINE_GUID(IID_INameSpaceTreeControlDropHandler, 0xf9c665d6, 0xc2f2, 0x4c19, 0xbf,0x33, 0x83,0x22,0xd7,0x35,0x2f,0x51);
32837 #if defined(__cplusplus) && !defined(CINTERFACE)
32838 MIDL_INTERFACE("f9c665d6-c2f2-4c19-bf33-8322d7352f51")
32839 INameSpaceTreeControlDropHandler : public IUnknown
32840 {
32841     virtual HRESULT STDMETHODCALLTYPE OnDragEnter(
32842         IShellItem *psiOver,
32843         IShellItemArray *psiaData,
32844         WINBOOL fOutsideSource,
32845         DWORD grfKeyState,
32846         DWORD *pdwEffect) = 0;
32847 
32848     virtual HRESULT STDMETHODCALLTYPE OnDragOver(
32849         IShellItem *psiOver,
32850         IShellItemArray *psiaData,
32851         DWORD grfKeyState,
32852         DWORD *pdwEffect) = 0;
32853 
32854     virtual HRESULT STDMETHODCALLTYPE OnDragPosition(
32855         IShellItem *psiOver,
32856         IShellItemArray *psiaData,
32857         int iNewPosition,
32858         int iOldPosition) = 0;
32859 
32860     virtual HRESULT STDMETHODCALLTYPE OnDrop(
32861         IShellItem *psiOver,
32862         IShellItemArray *psiaData,
32863         int iPosition,
32864         DWORD grfKeyState,
32865         DWORD *pdwEffect) = 0;
32866 
32867     virtual HRESULT STDMETHODCALLTYPE OnDropPosition(
32868         IShellItem *psiOver,
32869         IShellItemArray *psiaData,
32870         int iNewPosition,
32871         int iOldPosition) = 0;
32872 
32873     virtual HRESULT STDMETHODCALLTYPE OnDragLeave(
32874         IShellItem *psiOver) = 0;
32875 
32876 };
32877 #ifdef __CRT_UUID_DECL
32878 __CRT_UUID_DECL(INameSpaceTreeControlDropHandler, 0xf9c665d6, 0xc2f2, 0x4c19, 0xbf,0x33, 0x83,0x22,0xd7,0x35,0x2f,0x51)
32879 #endif
32880 #else
32881 typedef struct INameSpaceTreeControlDropHandlerVtbl {
32882     BEGIN_INTERFACE
32883 
32884     /*** IUnknown methods ***/
32885     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
32886         INameSpaceTreeControlDropHandler* This,
32887         REFIID riid,
32888         void **ppvObject);
32889 
32890     ULONG (STDMETHODCALLTYPE *AddRef)(
32891         INameSpaceTreeControlDropHandler* This);
32892 
32893     ULONG (STDMETHODCALLTYPE *Release)(
32894         INameSpaceTreeControlDropHandler* This);
32895 
32896     /*** INameSpaceTreeControlDropHandler methods ***/
32897     HRESULT (STDMETHODCALLTYPE *OnDragEnter)(
32898         INameSpaceTreeControlDropHandler* This,
32899         IShellItem *psiOver,
32900         IShellItemArray *psiaData,
32901         WINBOOL fOutsideSource,
32902         DWORD grfKeyState,
32903         DWORD *pdwEffect);
32904 
32905     HRESULT (STDMETHODCALLTYPE *OnDragOver)(
32906         INameSpaceTreeControlDropHandler* This,
32907         IShellItem *psiOver,
32908         IShellItemArray *psiaData,
32909         DWORD grfKeyState,
32910         DWORD *pdwEffect);
32911 
32912     HRESULT (STDMETHODCALLTYPE *OnDragPosition)(
32913         INameSpaceTreeControlDropHandler* This,
32914         IShellItem *psiOver,
32915         IShellItemArray *psiaData,
32916         int iNewPosition,
32917         int iOldPosition);
32918 
32919     HRESULT (STDMETHODCALLTYPE *OnDrop)(
32920         INameSpaceTreeControlDropHandler* This,
32921         IShellItem *psiOver,
32922         IShellItemArray *psiaData,
32923         int iPosition,
32924         DWORD grfKeyState,
32925         DWORD *pdwEffect);
32926 
32927     HRESULT (STDMETHODCALLTYPE *OnDropPosition)(
32928         INameSpaceTreeControlDropHandler* This,
32929         IShellItem *psiOver,
32930         IShellItemArray *psiaData,
32931         int iNewPosition,
32932         int iOldPosition);
32933 
32934     HRESULT (STDMETHODCALLTYPE *OnDragLeave)(
32935         INameSpaceTreeControlDropHandler* This,
32936         IShellItem *psiOver);
32937 
32938     END_INTERFACE
32939 } INameSpaceTreeControlDropHandlerVtbl;
32940 interface INameSpaceTreeControlDropHandler {
32941     CONST_VTBL INameSpaceTreeControlDropHandlerVtbl* lpVtbl;
32942 };
32943 
32944 #ifdef COBJMACROS
32945 #ifndef WIDL_C_INLINE_WRAPPERS
32946 /*** IUnknown methods ***/
32947 #define INameSpaceTreeControlDropHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
32948 #define INameSpaceTreeControlDropHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
32949 #define INameSpaceTreeControlDropHandler_Release(This) (This)->lpVtbl->Release(This)
32950 /*** INameSpaceTreeControlDropHandler methods ***/
32951 #define INameSpaceTreeControlDropHandler_OnDragEnter(This,psiOver,psiaData,fOutsideSource,grfKeyState,pdwEffect) (This)->lpVtbl->OnDragEnter(This,psiOver,psiaData,fOutsideSource,grfKeyState,pdwEffect)
32952 #define INameSpaceTreeControlDropHandler_OnDragOver(This,psiOver,psiaData,grfKeyState,pdwEffect) (This)->lpVtbl->OnDragOver(This,psiOver,psiaData,grfKeyState,pdwEffect)
32953 #define INameSpaceTreeControlDropHandler_OnDragPosition(This,psiOver,psiaData,iNewPosition,iOldPosition) (This)->lpVtbl->OnDragPosition(This,psiOver,psiaData,iNewPosition,iOldPosition)
32954 #define INameSpaceTreeControlDropHandler_OnDrop(This,psiOver,psiaData,iPosition,grfKeyState,pdwEffect) (This)->lpVtbl->OnDrop(This,psiOver,psiaData,iPosition,grfKeyState,pdwEffect)
32955 #define INameSpaceTreeControlDropHandler_OnDropPosition(This,psiOver,psiaData,iNewPosition,iOldPosition) (This)->lpVtbl->OnDropPosition(This,psiOver,psiaData,iNewPosition,iOldPosition)
32956 #define INameSpaceTreeControlDropHandler_OnDragLeave(This,psiOver) (This)->lpVtbl->OnDragLeave(This,psiOver)
32957 #else
32958 /*** IUnknown methods ***/
32959 static FORCEINLINE HRESULT INameSpaceTreeControlDropHandler_QueryInterface(INameSpaceTreeControlDropHandler* This,REFIID riid,void **ppvObject) {
32960     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
32961 }
32962 static FORCEINLINE ULONG INameSpaceTreeControlDropHandler_AddRef(INameSpaceTreeControlDropHandler* This) {
32963     return This->lpVtbl->AddRef(This);
32964 }
32965 static FORCEINLINE ULONG INameSpaceTreeControlDropHandler_Release(INameSpaceTreeControlDropHandler* This) {
32966     return This->lpVtbl->Release(This);
32967 }
32968 /*** INameSpaceTreeControlDropHandler methods ***/
32969 static FORCEINLINE HRESULT INameSpaceTreeControlDropHandler_OnDragEnter(INameSpaceTreeControlDropHandler* This,IShellItem *psiOver,IShellItemArray *psiaData,WINBOOL fOutsideSource,DWORD grfKeyState,DWORD *pdwEffect) {
32970     return This->lpVtbl->OnDragEnter(This,psiOver,psiaData,fOutsideSource,grfKeyState,pdwEffect);
32971 }
32972 static FORCEINLINE HRESULT INameSpaceTreeControlDropHandler_OnDragOver(INameSpaceTreeControlDropHandler* This,IShellItem *psiOver,IShellItemArray *psiaData,DWORD grfKeyState,DWORD *pdwEffect) {
32973     return This->lpVtbl->OnDragOver(This,psiOver,psiaData,grfKeyState,pdwEffect);
32974 }
32975 static FORCEINLINE HRESULT INameSpaceTreeControlDropHandler_OnDragPosition(INameSpaceTreeControlDropHandler* This,IShellItem *psiOver,IShellItemArray *psiaData,int iNewPosition,int iOldPosition) {
32976     return This->lpVtbl->OnDragPosition(This,psiOver,psiaData,iNewPosition,iOldPosition);
32977 }
32978 static FORCEINLINE HRESULT INameSpaceTreeControlDropHandler_OnDrop(INameSpaceTreeControlDropHandler* This,IShellItem *psiOver,IShellItemArray *psiaData,int iPosition,DWORD grfKeyState,DWORD *pdwEffect) {
32979     return This->lpVtbl->OnDrop(This,psiOver,psiaData,iPosition,grfKeyState,pdwEffect);
32980 }
32981 static FORCEINLINE HRESULT INameSpaceTreeControlDropHandler_OnDropPosition(INameSpaceTreeControlDropHandler* This,IShellItem *psiOver,IShellItemArray *psiaData,int iNewPosition,int iOldPosition) {
32982     return This->lpVtbl->OnDropPosition(This,psiOver,psiaData,iNewPosition,iOldPosition);
32983 }
32984 static FORCEINLINE HRESULT INameSpaceTreeControlDropHandler_OnDragLeave(INameSpaceTreeControlDropHandler* This,IShellItem *psiOver) {
32985     return This->lpVtbl->OnDragLeave(This,psiOver);
32986 }
32987 #endif
32988 #endif
32989 
32990 #endif
32991 
32992 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlDropHandler_OnDragEnter_Proxy(
32993     INameSpaceTreeControlDropHandler* This,
32994     IShellItem *psiOver,
32995     IShellItemArray *psiaData,
32996     WINBOOL fOutsideSource,
32997     DWORD grfKeyState,
32998     DWORD *pdwEffect);
32999 void __RPC_STUB INameSpaceTreeControlDropHandler_OnDragEnter_Stub(
33000     IRpcStubBuffer* This,
33001     IRpcChannelBuffer* pRpcChannelBuffer,
33002     PRPC_MESSAGE pRpcMessage,
33003     DWORD* pdwStubPhase);
33004 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlDropHandler_OnDragOver_Proxy(
33005     INameSpaceTreeControlDropHandler* This,
33006     IShellItem *psiOver,
33007     IShellItemArray *psiaData,
33008     DWORD grfKeyState,
33009     DWORD *pdwEffect);
33010 void __RPC_STUB INameSpaceTreeControlDropHandler_OnDragOver_Stub(
33011     IRpcStubBuffer* This,
33012     IRpcChannelBuffer* pRpcChannelBuffer,
33013     PRPC_MESSAGE pRpcMessage,
33014     DWORD* pdwStubPhase);
33015 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlDropHandler_OnDragPosition_Proxy(
33016     INameSpaceTreeControlDropHandler* This,
33017     IShellItem *psiOver,
33018     IShellItemArray *psiaData,
33019     int iNewPosition,
33020     int iOldPosition);
33021 void __RPC_STUB INameSpaceTreeControlDropHandler_OnDragPosition_Stub(
33022     IRpcStubBuffer* This,
33023     IRpcChannelBuffer* pRpcChannelBuffer,
33024     PRPC_MESSAGE pRpcMessage,
33025     DWORD* pdwStubPhase);
33026 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlDropHandler_OnDrop_Proxy(
33027     INameSpaceTreeControlDropHandler* This,
33028     IShellItem *psiOver,
33029     IShellItemArray *psiaData,
33030     int iPosition,
33031     DWORD grfKeyState,
33032     DWORD *pdwEffect);
33033 void __RPC_STUB INameSpaceTreeControlDropHandler_OnDrop_Stub(
33034     IRpcStubBuffer* This,
33035     IRpcChannelBuffer* pRpcChannelBuffer,
33036     PRPC_MESSAGE pRpcMessage,
33037     DWORD* pdwStubPhase);
33038 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlDropHandler_OnDropPosition_Proxy(
33039     INameSpaceTreeControlDropHandler* This,
33040     IShellItem *psiOver,
33041     IShellItemArray *psiaData,
33042     int iNewPosition,
33043     int iOldPosition);
33044 void __RPC_STUB INameSpaceTreeControlDropHandler_OnDropPosition_Stub(
33045     IRpcStubBuffer* This,
33046     IRpcChannelBuffer* pRpcChannelBuffer,
33047     PRPC_MESSAGE pRpcMessage,
33048     DWORD* pdwStubPhase);
33049 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlDropHandler_OnDragLeave_Proxy(
33050     INameSpaceTreeControlDropHandler* This,
33051     IShellItem *psiOver);
33052 void __RPC_STUB INameSpaceTreeControlDropHandler_OnDragLeave_Stub(
33053     IRpcStubBuffer* This,
33054     IRpcChannelBuffer* pRpcChannelBuffer,
33055     PRPC_MESSAGE pRpcMessage,
33056     DWORD* pdwStubPhase);
33057 
33058 #endif  /* __INameSpaceTreeControlDropHandler_INTERFACE_DEFINED__ */
33059 
33060 
33061 /*****************************************************************************
33062  * INameSpaceTreeAccessible interface
33063  */
33064 #ifndef __INameSpaceTreeAccessible_INTERFACE_DEFINED__
33065 #define __INameSpaceTreeAccessible_INTERFACE_DEFINED__
33066 
33067 DEFINE_GUID(IID_INameSpaceTreeAccessible, 0x71f312de, 0x43ed, 0x4190, 0x84,0x77, 0xe9,0x53,0x6b,0x82,0x35,0x0b);
33068 #if defined(__cplusplus) && !defined(CINTERFACE)
33069 MIDL_INTERFACE("71f312de-43ed-4190-8477-e9536b82350b")
33070 INameSpaceTreeAccessible : public IUnknown
33071 {
33072     virtual HRESULT STDMETHODCALLTYPE OnGetDefaultAccessibilityAction(
33073         IShellItem *psi,
33074         BSTR *pbstrDefaultAction) = 0;
33075 
33076     virtual HRESULT STDMETHODCALLTYPE OnDoDefaultAccessibilityAction(
33077         IShellItem *psi) = 0;
33078 
33079     virtual HRESULT STDMETHODCALLTYPE OnGetAccessibilityRole(
33080         IShellItem *psi,
33081         VARIANT *pvarRole) = 0;
33082 
33083 };
33084 #ifdef __CRT_UUID_DECL
33085 __CRT_UUID_DECL(INameSpaceTreeAccessible, 0x71f312de, 0x43ed, 0x4190, 0x84,0x77, 0xe9,0x53,0x6b,0x82,0x35,0x0b)
33086 #endif
33087 #else
33088 typedef struct INameSpaceTreeAccessibleVtbl {
33089     BEGIN_INTERFACE
33090 
33091     /*** IUnknown methods ***/
33092     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
33093         INameSpaceTreeAccessible* This,
33094         REFIID riid,
33095         void **ppvObject);
33096 
33097     ULONG (STDMETHODCALLTYPE *AddRef)(
33098         INameSpaceTreeAccessible* This);
33099 
33100     ULONG (STDMETHODCALLTYPE *Release)(
33101         INameSpaceTreeAccessible* This);
33102 
33103     /*** INameSpaceTreeAccessible methods ***/
33104     HRESULT (STDMETHODCALLTYPE *OnGetDefaultAccessibilityAction)(
33105         INameSpaceTreeAccessible* This,
33106         IShellItem *psi,
33107         BSTR *pbstrDefaultAction);
33108 
33109     HRESULT (STDMETHODCALLTYPE *OnDoDefaultAccessibilityAction)(
33110         INameSpaceTreeAccessible* This,
33111         IShellItem *psi);
33112 
33113     HRESULT (STDMETHODCALLTYPE *OnGetAccessibilityRole)(
33114         INameSpaceTreeAccessible* This,
33115         IShellItem *psi,
33116         VARIANT *pvarRole);
33117 
33118     END_INTERFACE
33119 } INameSpaceTreeAccessibleVtbl;
33120 interface INameSpaceTreeAccessible {
33121     CONST_VTBL INameSpaceTreeAccessibleVtbl* lpVtbl;
33122 };
33123 
33124 #ifdef COBJMACROS
33125 #ifndef WIDL_C_INLINE_WRAPPERS
33126 /*** IUnknown methods ***/
33127 #define INameSpaceTreeAccessible_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
33128 #define INameSpaceTreeAccessible_AddRef(This) (This)->lpVtbl->AddRef(This)
33129 #define INameSpaceTreeAccessible_Release(This) (This)->lpVtbl->Release(This)
33130 /*** INameSpaceTreeAccessible methods ***/
33131 #define INameSpaceTreeAccessible_OnGetDefaultAccessibilityAction(This,psi,pbstrDefaultAction) (This)->lpVtbl->OnGetDefaultAccessibilityAction(This,psi,pbstrDefaultAction)
33132 #define INameSpaceTreeAccessible_OnDoDefaultAccessibilityAction(This,psi) (This)->lpVtbl->OnDoDefaultAccessibilityAction(This,psi)
33133 #define INameSpaceTreeAccessible_OnGetAccessibilityRole(This,psi,pvarRole) (This)->lpVtbl->OnGetAccessibilityRole(This,psi,pvarRole)
33134 #else
33135 /*** IUnknown methods ***/
33136 static FORCEINLINE HRESULT INameSpaceTreeAccessible_QueryInterface(INameSpaceTreeAccessible* This,REFIID riid,void **ppvObject) {
33137     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
33138 }
33139 static FORCEINLINE ULONG INameSpaceTreeAccessible_AddRef(INameSpaceTreeAccessible* This) {
33140     return This->lpVtbl->AddRef(This);
33141 }
33142 static FORCEINLINE ULONG INameSpaceTreeAccessible_Release(INameSpaceTreeAccessible* This) {
33143     return This->lpVtbl->Release(This);
33144 }
33145 /*** INameSpaceTreeAccessible methods ***/
33146 static FORCEINLINE HRESULT INameSpaceTreeAccessible_OnGetDefaultAccessibilityAction(INameSpaceTreeAccessible* This,IShellItem *psi,BSTR *pbstrDefaultAction) {
33147     return This->lpVtbl->OnGetDefaultAccessibilityAction(This,psi,pbstrDefaultAction);
33148 }
33149 static FORCEINLINE HRESULT INameSpaceTreeAccessible_OnDoDefaultAccessibilityAction(INameSpaceTreeAccessible* This,IShellItem *psi) {
33150     return This->lpVtbl->OnDoDefaultAccessibilityAction(This,psi);
33151 }
33152 static FORCEINLINE HRESULT INameSpaceTreeAccessible_OnGetAccessibilityRole(INameSpaceTreeAccessible* This,IShellItem *psi,VARIANT *pvarRole) {
33153     return This->lpVtbl->OnGetAccessibilityRole(This,psi,pvarRole);
33154 }
33155 #endif
33156 #endif
33157 
33158 #endif
33159 
33160 HRESULT STDMETHODCALLTYPE INameSpaceTreeAccessible_OnGetDefaultAccessibilityAction_Proxy(
33161     INameSpaceTreeAccessible* This,
33162     IShellItem *psi,
33163     BSTR *pbstrDefaultAction);
33164 void __RPC_STUB INameSpaceTreeAccessible_OnGetDefaultAccessibilityAction_Stub(
33165     IRpcStubBuffer* This,
33166     IRpcChannelBuffer* pRpcChannelBuffer,
33167     PRPC_MESSAGE pRpcMessage,
33168     DWORD* pdwStubPhase);
33169 HRESULT STDMETHODCALLTYPE INameSpaceTreeAccessible_OnDoDefaultAccessibilityAction_Proxy(
33170     INameSpaceTreeAccessible* This,
33171     IShellItem *psi);
33172 void __RPC_STUB INameSpaceTreeAccessible_OnDoDefaultAccessibilityAction_Stub(
33173     IRpcStubBuffer* This,
33174     IRpcChannelBuffer* pRpcChannelBuffer,
33175     PRPC_MESSAGE pRpcMessage,
33176     DWORD* pdwStubPhase);
33177 HRESULT STDMETHODCALLTYPE INameSpaceTreeAccessible_OnGetAccessibilityRole_Proxy(
33178     INameSpaceTreeAccessible* This,
33179     IShellItem *psi,
33180     VARIANT *pvarRole);
33181 void __RPC_STUB INameSpaceTreeAccessible_OnGetAccessibilityRole_Stub(
33182     IRpcStubBuffer* This,
33183     IRpcChannelBuffer* pRpcChannelBuffer,
33184     PRPC_MESSAGE pRpcMessage,
33185     DWORD* pdwStubPhase);
33186 
33187 #endif  /* __INameSpaceTreeAccessible_INTERFACE_DEFINED__ */
33188 
33189 
33190 /*****************************************************************************
33191  * INameSpaceTreeControlCustomDraw interface
33192  */
33193 #ifndef __INameSpaceTreeControlCustomDraw_INTERFACE_DEFINED__
33194 #define __INameSpaceTreeControlCustomDraw_INTERFACE_DEFINED__
33195 
33196 typedef struct NSTCCUSTOMDRAW {
33197     IShellItem *psi;
33198     UINT uItemState;
33199     NSTCITEMSTATE nstcis;
33200     LPCWSTR pszText;
33201     int iImage;
33202     HIMAGELIST himl;
33203     int iLevel;
33204     int iIndent;
33205 } NSTCCUSTOMDRAW;
33206 
33207 DEFINE_GUID(IID_INameSpaceTreeControlCustomDraw, 0x2d3ba758, 0x33ee, 0x42d5, 0xbb,0x7b, 0x5f,0x34,0x31,0xd8,0x6c,0x78);
33208 #if defined(__cplusplus) && !defined(CINTERFACE)
33209 MIDL_INTERFACE("2d3ba758-33ee-42d5-bb7b-5f3431d86c78")
33210 INameSpaceTreeControlCustomDraw : public IUnknown
33211 {
33212     virtual HRESULT STDMETHODCALLTYPE PrePaint(
33213         HDC hdc,
33214         RECT *prc,
33215         LRESULT *plres) = 0;
33216 
33217     virtual HRESULT STDMETHODCALLTYPE PostPaint(
33218         HDC hdc,
33219         RECT *prc) = 0;
33220 
33221     virtual HRESULT STDMETHODCALLTYPE ItemPrePaint(
33222         HDC hdc,
33223         RECT *prc,
33224         NSTCCUSTOMDRAW *pnstccdItem,
33225         COLORREF *pclrText,
33226         COLORREF *pclrTextBk,
33227         LRESULT *plres) = 0;
33228 
33229     virtual HRESULT STDMETHODCALLTYPE ItemPostPaint(
33230         HDC hdc,
33231         RECT *prc,
33232         NSTCCUSTOMDRAW *pnstccdItem) = 0;
33233 
33234 };
33235 #ifdef __CRT_UUID_DECL
33236 __CRT_UUID_DECL(INameSpaceTreeControlCustomDraw, 0x2d3ba758, 0x33ee, 0x42d5, 0xbb,0x7b, 0x5f,0x34,0x31,0xd8,0x6c,0x78)
33237 #endif
33238 #else
33239 typedef struct INameSpaceTreeControlCustomDrawVtbl {
33240     BEGIN_INTERFACE
33241 
33242     /*** IUnknown methods ***/
33243     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
33244         INameSpaceTreeControlCustomDraw* This,
33245         REFIID riid,
33246         void **ppvObject);
33247 
33248     ULONG (STDMETHODCALLTYPE *AddRef)(
33249         INameSpaceTreeControlCustomDraw* This);
33250 
33251     ULONG (STDMETHODCALLTYPE *Release)(
33252         INameSpaceTreeControlCustomDraw* This);
33253 
33254     /*** INameSpaceTreeControlCustomDraw methods ***/
33255     HRESULT (STDMETHODCALLTYPE *PrePaint)(
33256         INameSpaceTreeControlCustomDraw* This,
33257         HDC hdc,
33258         RECT *prc,
33259         LRESULT *plres);
33260 
33261     HRESULT (STDMETHODCALLTYPE *PostPaint)(
33262         INameSpaceTreeControlCustomDraw* This,
33263         HDC hdc,
33264         RECT *prc);
33265 
33266     HRESULT (STDMETHODCALLTYPE *ItemPrePaint)(
33267         INameSpaceTreeControlCustomDraw* This,
33268         HDC hdc,
33269         RECT *prc,
33270         NSTCCUSTOMDRAW *pnstccdItem,
33271         COLORREF *pclrText,
33272         COLORREF *pclrTextBk,
33273         LRESULT *plres);
33274 
33275     HRESULT (STDMETHODCALLTYPE *ItemPostPaint)(
33276         INameSpaceTreeControlCustomDraw* This,
33277         HDC hdc,
33278         RECT *prc,
33279         NSTCCUSTOMDRAW *pnstccdItem);
33280 
33281     END_INTERFACE
33282 } INameSpaceTreeControlCustomDrawVtbl;
33283 interface INameSpaceTreeControlCustomDraw {
33284     CONST_VTBL INameSpaceTreeControlCustomDrawVtbl* lpVtbl;
33285 };
33286 
33287 #ifdef COBJMACROS
33288 #ifndef WIDL_C_INLINE_WRAPPERS
33289 /*** IUnknown methods ***/
33290 #define INameSpaceTreeControlCustomDraw_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
33291 #define INameSpaceTreeControlCustomDraw_AddRef(This) (This)->lpVtbl->AddRef(This)
33292 #define INameSpaceTreeControlCustomDraw_Release(This) (This)->lpVtbl->Release(This)
33293 /*** INameSpaceTreeControlCustomDraw methods ***/
33294 #define INameSpaceTreeControlCustomDraw_PrePaint(This,hdc,prc,plres) (This)->lpVtbl->PrePaint(This,hdc,prc,plres)
33295 #define INameSpaceTreeControlCustomDraw_PostPaint(This,hdc,prc) (This)->lpVtbl->PostPaint(This,hdc,prc)
33296 #define INameSpaceTreeControlCustomDraw_ItemPrePaint(This,hdc,prc,pnstccdItem,pclrText,pclrTextBk,plres) (This)->lpVtbl->ItemPrePaint(This,hdc,prc,pnstccdItem,pclrText,pclrTextBk,plres)
33297 #define INameSpaceTreeControlCustomDraw_ItemPostPaint(This,hdc,prc,pnstccdItem) (This)->lpVtbl->ItemPostPaint(This,hdc,prc,pnstccdItem)
33298 #else
33299 /*** IUnknown methods ***/
33300 static FORCEINLINE HRESULT INameSpaceTreeControlCustomDraw_QueryInterface(INameSpaceTreeControlCustomDraw* This,REFIID riid,void **ppvObject) {
33301     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
33302 }
33303 static FORCEINLINE ULONG INameSpaceTreeControlCustomDraw_AddRef(INameSpaceTreeControlCustomDraw* This) {
33304     return This->lpVtbl->AddRef(This);
33305 }
33306 static FORCEINLINE ULONG INameSpaceTreeControlCustomDraw_Release(INameSpaceTreeControlCustomDraw* This) {
33307     return This->lpVtbl->Release(This);
33308 }
33309 /*** INameSpaceTreeControlCustomDraw methods ***/
33310 static FORCEINLINE HRESULT INameSpaceTreeControlCustomDraw_PrePaint(INameSpaceTreeControlCustomDraw* This,HDC hdc,RECT *prc,LRESULT *plres) {
33311     return This->lpVtbl->PrePaint(This,hdc,prc,plres);
33312 }
33313 static FORCEINLINE HRESULT INameSpaceTreeControlCustomDraw_PostPaint(INameSpaceTreeControlCustomDraw* This,HDC hdc,RECT *prc) {
33314     return This->lpVtbl->PostPaint(This,hdc,prc);
33315 }
33316 static FORCEINLINE HRESULT INameSpaceTreeControlCustomDraw_ItemPrePaint(INameSpaceTreeControlCustomDraw* This,HDC hdc,RECT *prc,NSTCCUSTOMDRAW *pnstccdItem,COLORREF *pclrText,COLORREF *pclrTextBk,LRESULT *plres) {
33317     return This->lpVtbl->ItemPrePaint(This,hdc,prc,pnstccdItem,pclrText,pclrTextBk,plres);
33318 }
33319 static FORCEINLINE HRESULT INameSpaceTreeControlCustomDraw_ItemPostPaint(INameSpaceTreeControlCustomDraw* This,HDC hdc,RECT *prc,NSTCCUSTOMDRAW *pnstccdItem) {
33320     return This->lpVtbl->ItemPostPaint(This,hdc,prc,pnstccdItem);
33321 }
33322 #endif
33323 #endif
33324 
33325 #endif
33326 
33327 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlCustomDraw_PrePaint_Proxy(
33328     INameSpaceTreeControlCustomDraw* This,
33329     HDC hdc,
33330     RECT *prc,
33331     LRESULT *plres);
33332 void __RPC_STUB INameSpaceTreeControlCustomDraw_PrePaint_Stub(
33333     IRpcStubBuffer* This,
33334     IRpcChannelBuffer* pRpcChannelBuffer,
33335     PRPC_MESSAGE pRpcMessage,
33336     DWORD* pdwStubPhase);
33337 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlCustomDraw_PostPaint_Proxy(
33338     INameSpaceTreeControlCustomDraw* This,
33339     HDC hdc,
33340     RECT *prc);
33341 void __RPC_STUB INameSpaceTreeControlCustomDraw_PostPaint_Stub(
33342     IRpcStubBuffer* This,
33343     IRpcChannelBuffer* pRpcChannelBuffer,
33344     PRPC_MESSAGE pRpcMessage,
33345     DWORD* pdwStubPhase);
33346 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlCustomDraw_ItemPrePaint_Proxy(
33347     INameSpaceTreeControlCustomDraw* This,
33348     HDC hdc,
33349     RECT *prc,
33350     NSTCCUSTOMDRAW *pnstccdItem,
33351     COLORREF *pclrText,
33352     COLORREF *pclrTextBk,
33353     LRESULT *plres);
33354 void __RPC_STUB INameSpaceTreeControlCustomDraw_ItemPrePaint_Stub(
33355     IRpcStubBuffer* This,
33356     IRpcChannelBuffer* pRpcChannelBuffer,
33357     PRPC_MESSAGE pRpcMessage,
33358     DWORD* pdwStubPhase);
33359 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlCustomDraw_ItemPostPaint_Proxy(
33360     INameSpaceTreeControlCustomDraw* This,
33361     HDC hdc,
33362     RECT *prc,
33363     NSTCCUSTOMDRAW *pnstccdItem);
33364 void __RPC_STUB INameSpaceTreeControlCustomDraw_ItemPostPaint_Stub(
33365     IRpcStubBuffer* This,
33366     IRpcChannelBuffer* pRpcChannelBuffer,
33367     PRPC_MESSAGE pRpcMessage,
33368     DWORD* pdwStubPhase);
33369 
33370 #endif  /* __INameSpaceTreeControlCustomDraw_INTERFACE_DEFINED__ */
33371 
33372 
33373 #if NTDDI_VERSION >= NTDDI_VISTA
33374 /*****************************************************************************
33375  * INameSpaceTreeControlFolderCapabilities interface
33376  */
33377 #ifndef __INameSpaceTreeControlFolderCapabilities_INTERFACE_DEFINED__
33378 #define __INameSpaceTreeControlFolderCapabilities_INTERFACE_DEFINED__
33379 
33380 typedef enum NSTCFOLDERCAPABILITIES {
33381     NSTCFC_NONE = 0x0,
33382     NSTCFC_PINNEDITEMFILTERING = 0x1,
33383     NSTCFC_DELAY_REGISTER_NOTIFY = 0x2
33384 } NSTCFOLDERCAPABILITIES;
33385 
33386 DEFINE_ENUM_FLAG_OPERATORS(NSTCFOLDERCAPABILITIES)
33387 
33388 DEFINE_GUID(IID_INameSpaceTreeControlFolderCapabilities, 0xe9701183, 0xe6b3, 0x4ff2, 0x85,0x68, 0x81,0x36,0x15,0xfe,0xc7,0xbe);
33389 #if defined(__cplusplus) && !defined(CINTERFACE)
33390 MIDL_INTERFACE("e9701183-e6b3-4ff2-8568-813615fec7be")
33391 INameSpaceTreeControlFolderCapabilities : public IUnknown
33392 {
33393     virtual HRESULT STDMETHODCALLTYPE GetFolderCapabilities(
33394         NSTCFOLDERCAPABILITIES nfcMask,
33395         NSTCFOLDERCAPABILITIES *pnfcValue) = 0;
33396 
33397 };
33398 #ifdef __CRT_UUID_DECL
33399 __CRT_UUID_DECL(INameSpaceTreeControlFolderCapabilities, 0xe9701183, 0xe6b3, 0x4ff2, 0x85,0x68, 0x81,0x36,0x15,0xfe,0xc7,0xbe)
33400 #endif
33401 #else
33402 typedef struct INameSpaceTreeControlFolderCapabilitiesVtbl {
33403     BEGIN_INTERFACE
33404 
33405     /*** IUnknown methods ***/
33406     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
33407         INameSpaceTreeControlFolderCapabilities* This,
33408         REFIID riid,
33409         void **ppvObject);
33410 
33411     ULONG (STDMETHODCALLTYPE *AddRef)(
33412         INameSpaceTreeControlFolderCapabilities* This);
33413 
33414     ULONG (STDMETHODCALLTYPE *Release)(
33415         INameSpaceTreeControlFolderCapabilities* This);
33416 
33417     /*** INameSpaceTreeControlFolderCapabilities methods ***/
33418     HRESULT (STDMETHODCALLTYPE *GetFolderCapabilities)(
33419         INameSpaceTreeControlFolderCapabilities* This,
33420         NSTCFOLDERCAPABILITIES nfcMask,
33421         NSTCFOLDERCAPABILITIES *pnfcValue);
33422 
33423     END_INTERFACE
33424 } INameSpaceTreeControlFolderCapabilitiesVtbl;
33425 interface INameSpaceTreeControlFolderCapabilities {
33426     CONST_VTBL INameSpaceTreeControlFolderCapabilitiesVtbl* lpVtbl;
33427 };
33428 
33429 #ifdef COBJMACROS
33430 #ifndef WIDL_C_INLINE_WRAPPERS
33431 /*** IUnknown methods ***/
33432 #define INameSpaceTreeControlFolderCapabilities_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
33433 #define INameSpaceTreeControlFolderCapabilities_AddRef(This) (This)->lpVtbl->AddRef(This)
33434 #define INameSpaceTreeControlFolderCapabilities_Release(This) (This)->lpVtbl->Release(This)
33435 /*** INameSpaceTreeControlFolderCapabilities methods ***/
33436 #define INameSpaceTreeControlFolderCapabilities_GetFolderCapabilities(This,nfcMask,pnfcValue) (This)->lpVtbl->GetFolderCapabilities(This,nfcMask,pnfcValue)
33437 #else
33438 /*** IUnknown methods ***/
33439 static FORCEINLINE HRESULT INameSpaceTreeControlFolderCapabilities_QueryInterface(INameSpaceTreeControlFolderCapabilities* This,REFIID riid,void **ppvObject) {
33440     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
33441 }
33442 static FORCEINLINE ULONG INameSpaceTreeControlFolderCapabilities_AddRef(INameSpaceTreeControlFolderCapabilities* This) {
33443     return This->lpVtbl->AddRef(This);
33444 }
33445 static FORCEINLINE ULONG INameSpaceTreeControlFolderCapabilities_Release(INameSpaceTreeControlFolderCapabilities* This) {
33446     return This->lpVtbl->Release(This);
33447 }
33448 /*** INameSpaceTreeControlFolderCapabilities methods ***/
33449 static FORCEINLINE HRESULT INameSpaceTreeControlFolderCapabilities_GetFolderCapabilities(INameSpaceTreeControlFolderCapabilities* This,NSTCFOLDERCAPABILITIES nfcMask,NSTCFOLDERCAPABILITIES *pnfcValue) {
33450     return This->lpVtbl->GetFolderCapabilities(This,nfcMask,pnfcValue);
33451 }
33452 #endif
33453 #endif
33454 
33455 #endif
33456 
33457 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlFolderCapabilities_GetFolderCapabilities_Proxy(
33458     INameSpaceTreeControlFolderCapabilities* This,
33459     NSTCFOLDERCAPABILITIES nfcMask,
33460     NSTCFOLDERCAPABILITIES *pnfcValue);
33461 void __RPC_STUB INameSpaceTreeControlFolderCapabilities_GetFolderCapabilities_Stub(
33462     IRpcStubBuffer* This,
33463     IRpcChannelBuffer* pRpcChannelBuffer,
33464     PRPC_MESSAGE pRpcMessage,
33465     DWORD* pdwStubPhase);
33466 
33467 #endif  /* __INameSpaceTreeControlFolderCapabilities_INTERFACE_DEFINED__ */
33468 
33469 #endif
33470 
33471 #define E_PREVIEWHANDLER_DRM_FAIL _HRESULT_TYPEDEF_(0x86420001L)
33472 #define E_PREVIEWHANDLER_NOAUTH   _HRESULT_TYPEDEF_(0x86420002L)
33473 #define E_PREVIEWHANDLER_NOTFOUND _HRESULT_TYPEDEF_(0x86420003L)
33474 #define E_PREVIEWHANDLER_CORRUPT  _HRESULT_TYPEDEF_(0x86420004L)
33475 
33476 /*****************************************************************************
33477  * IPreviewHandler interface
33478  */
33479 #ifndef __IPreviewHandler_INTERFACE_DEFINED__
33480 #define __IPreviewHandler_INTERFACE_DEFINED__
33481 
33482 DEFINE_GUID(IID_IPreviewHandler, 0x8895b1c6, 0xb41f, 0x4c1c, 0xa5,0x62, 0x0d,0x56,0x42,0x50,0x83,0x6f);
33483 #if defined(__cplusplus) && !defined(CINTERFACE)
33484 MIDL_INTERFACE("8895b1c6-b41f-4c1c-a562-0d564250836f")
33485 IPreviewHandler : public IUnknown
33486 {
33487     virtual HRESULT STDMETHODCALLTYPE SetWindow(
33488         HWND hwnd,
33489         const RECT *prc) = 0;
33490 
33491     virtual HRESULT STDMETHODCALLTYPE SetRect(
33492         const RECT *prc) = 0;
33493 
33494     virtual HRESULT STDMETHODCALLTYPE DoPreview(
33495         ) = 0;
33496 
33497     virtual HRESULT STDMETHODCALLTYPE Unload(
33498         ) = 0;
33499 
33500     virtual HRESULT STDMETHODCALLTYPE SetFocus(
33501         ) = 0;
33502 
33503     virtual HRESULT STDMETHODCALLTYPE QueryFocus(
33504         HWND *phwnd) = 0;
33505 
33506     virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator(
33507         MSG *pmsg) = 0;
33508 
33509 };
33510 #ifdef __CRT_UUID_DECL
33511 __CRT_UUID_DECL(IPreviewHandler, 0x8895b1c6, 0xb41f, 0x4c1c, 0xa5,0x62, 0x0d,0x56,0x42,0x50,0x83,0x6f)
33512 #endif
33513 #else
33514 typedef struct IPreviewHandlerVtbl {
33515     BEGIN_INTERFACE
33516 
33517     /*** IUnknown methods ***/
33518     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
33519         IPreviewHandler* This,
33520         REFIID riid,
33521         void **ppvObject);
33522 
33523     ULONG (STDMETHODCALLTYPE *AddRef)(
33524         IPreviewHandler* This);
33525 
33526     ULONG (STDMETHODCALLTYPE *Release)(
33527         IPreviewHandler* This);
33528 
33529     /*** IPreviewHandler methods ***/
33530     HRESULT (STDMETHODCALLTYPE *SetWindow)(
33531         IPreviewHandler* This,
33532         HWND hwnd,
33533         const RECT *prc);
33534 
33535     HRESULT (STDMETHODCALLTYPE *SetRect)(
33536         IPreviewHandler* This,
33537         const RECT *prc);
33538 
33539     HRESULT (STDMETHODCALLTYPE *DoPreview)(
33540         IPreviewHandler* This);
33541 
33542     HRESULT (STDMETHODCALLTYPE *Unload)(
33543         IPreviewHandler* This);
33544 
33545     HRESULT (STDMETHODCALLTYPE *SetFocus)(
33546         IPreviewHandler* This);
33547 
33548     HRESULT (STDMETHODCALLTYPE *QueryFocus)(
33549         IPreviewHandler* This,
33550         HWND *phwnd);
33551 
33552     HRESULT (STDMETHODCALLTYPE *TranslateAccelerator)(
33553         IPreviewHandler* This,
33554         MSG *pmsg);
33555 
33556     END_INTERFACE
33557 } IPreviewHandlerVtbl;
33558 interface IPreviewHandler {
33559     CONST_VTBL IPreviewHandlerVtbl* lpVtbl;
33560 };
33561 
33562 #ifdef COBJMACROS
33563 #ifndef WIDL_C_INLINE_WRAPPERS
33564 /*** IUnknown methods ***/
33565 #define IPreviewHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
33566 #define IPreviewHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
33567 #define IPreviewHandler_Release(This) (This)->lpVtbl->Release(This)
33568 /*** IPreviewHandler methods ***/
33569 #define IPreviewHandler_SetWindow(This,hwnd,prc) (This)->lpVtbl->SetWindow(This,hwnd,prc)
33570 #define IPreviewHandler_SetRect(This,prc) (This)->lpVtbl->SetRect(This,prc)
33571 #define IPreviewHandler_DoPreview(This) (This)->lpVtbl->DoPreview(This)
33572 #define IPreviewHandler_Unload(This) (This)->lpVtbl->Unload(This)
33573 #define IPreviewHandler_SetFocus(This) (This)->lpVtbl->SetFocus(This)
33574 #define IPreviewHandler_QueryFocus(This,phwnd) (This)->lpVtbl->QueryFocus(This,phwnd)
33575 #define IPreviewHandler_TranslateAccelerator(This,pmsg) (This)->lpVtbl->TranslateAccelerator(This,pmsg)
33576 #else
33577 /*** IUnknown methods ***/
33578 static FORCEINLINE HRESULT IPreviewHandler_QueryInterface(IPreviewHandler* This,REFIID riid,void **ppvObject) {
33579     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
33580 }
33581 static FORCEINLINE ULONG IPreviewHandler_AddRef(IPreviewHandler* This) {
33582     return This->lpVtbl->AddRef(This);
33583 }
33584 static FORCEINLINE ULONG IPreviewHandler_Release(IPreviewHandler* This) {
33585     return This->lpVtbl->Release(This);
33586 }
33587 /*** IPreviewHandler methods ***/
33588 static FORCEINLINE HRESULT IPreviewHandler_SetWindow(IPreviewHandler* This,HWND hwnd,const RECT *prc) {
33589     return This->lpVtbl->SetWindow(This,hwnd,prc);
33590 }
33591 static FORCEINLINE HRESULT IPreviewHandler_SetRect(IPreviewHandler* This,const RECT *prc) {
33592     return This->lpVtbl->SetRect(This,prc);
33593 }
33594 static FORCEINLINE HRESULT IPreviewHandler_DoPreview(IPreviewHandler* This) {
33595     return This->lpVtbl->DoPreview(This);
33596 }
33597 static FORCEINLINE HRESULT IPreviewHandler_Unload(IPreviewHandler* This) {
33598     return This->lpVtbl->Unload(This);
33599 }
33600 static FORCEINLINE HRESULT IPreviewHandler_SetFocus(IPreviewHandler* This) {
33601     return This->lpVtbl->SetFocus(This);
33602 }
33603 static FORCEINLINE HRESULT IPreviewHandler_QueryFocus(IPreviewHandler* This,HWND *phwnd) {
33604     return This->lpVtbl->QueryFocus(This,phwnd);
33605 }
33606 static FORCEINLINE HRESULT IPreviewHandler_TranslateAccelerator(IPreviewHandler* This,MSG *pmsg) {
33607     return This->lpVtbl->TranslateAccelerator(This,pmsg);
33608 }
33609 #endif
33610 #endif
33611 
33612 #endif
33613 
33614 HRESULT STDMETHODCALLTYPE IPreviewHandler_SetWindow_Proxy(
33615     IPreviewHandler* This,
33616     HWND hwnd,
33617     const RECT *prc);
33618 void __RPC_STUB IPreviewHandler_SetWindow_Stub(
33619     IRpcStubBuffer* This,
33620     IRpcChannelBuffer* pRpcChannelBuffer,
33621     PRPC_MESSAGE pRpcMessage,
33622     DWORD* pdwStubPhase);
33623 HRESULT STDMETHODCALLTYPE IPreviewHandler_SetRect_Proxy(
33624     IPreviewHandler* This,
33625     const RECT *prc);
33626 void __RPC_STUB IPreviewHandler_SetRect_Stub(
33627     IRpcStubBuffer* This,
33628     IRpcChannelBuffer* pRpcChannelBuffer,
33629     PRPC_MESSAGE pRpcMessage,
33630     DWORD* pdwStubPhase);
33631 HRESULT STDMETHODCALLTYPE IPreviewHandler_DoPreview_Proxy(
33632     IPreviewHandler* This);
33633 void __RPC_STUB IPreviewHandler_DoPreview_Stub(
33634     IRpcStubBuffer* This,
33635     IRpcChannelBuffer* pRpcChannelBuffer,
33636     PRPC_MESSAGE pRpcMessage,
33637     DWORD* pdwStubPhase);
33638 HRESULT STDMETHODCALLTYPE IPreviewHandler_Unload_Proxy(
33639     IPreviewHandler* This);
33640 void __RPC_STUB IPreviewHandler_Unload_Stub(
33641     IRpcStubBuffer* This,
33642     IRpcChannelBuffer* pRpcChannelBuffer,
33643     PRPC_MESSAGE pRpcMessage,
33644     DWORD* pdwStubPhase);
33645 HRESULT STDMETHODCALLTYPE IPreviewHandler_SetFocus_Proxy(
33646     IPreviewHandler* This);
33647 void __RPC_STUB IPreviewHandler_SetFocus_Stub(
33648     IRpcStubBuffer* This,
33649     IRpcChannelBuffer* pRpcChannelBuffer,
33650     PRPC_MESSAGE pRpcMessage,
33651     DWORD* pdwStubPhase);
33652 HRESULT STDMETHODCALLTYPE IPreviewHandler_QueryFocus_Proxy(
33653     IPreviewHandler* This,
33654     HWND *phwnd);
33655 void __RPC_STUB IPreviewHandler_QueryFocus_Stub(
33656     IRpcStubBuffer* This,
33657     IRpcChannelBuffer* pRpcChannelBuffer,
33658     PRPC_MESSAGE pRpcMessage,
33659     DWORD* pdwStubPhase);
33660 HRESULT STDMETHODCALLTYPE IPreviewHandler_TranslateAccelerator_Proxy(
33661     IPreviewHandler* This,
33662     MSG *pmsg);
33663 void __RPC_STUB IPreviewHandler_TranslateAccelerator_Stub(
33664     IRpcStubBuffer* This,
33665     IRpcChannelBuffer* pRpcChannelBuffer,
33666     PRPC_MESSAGE pRpcMessage,
33667     DWORD* pdwStubPhase);
33668 
33669 #endif  /* __IPreviewHandler_INTERFACE_DEFINED__ */
33670 
33671 
33672 /*****************************************************************************
33673  * IPreviewHandlerFrame interface
33674  */
33675 #ifndef __IPreviewHandlerFrame_INTERFACE_DEFINED__
33676 #define __IPreviewHandlerFrame_INTERFACE_DEFINED__
33677 
33678 typedef struct PREVIEWHANDLERFRAMEINFO {
33679     HACCEL haccel;
33680     UINT cAccelEntries;
33681 } PREVIEWHANDLERFRAMEINFO;
33682 
33683 DEFINE_GUID(IID_IPreviewHandlerFrame, 0xfec87aaf, 0x35f9, 0x447a, 0xad,0xb7, 0x20,0x23,0x44,0x91,0x40,0x1a);
33684 #if defined(__cplusplus) && !defined(CINTERFACE)
33685 MIDL_INTERFACE("fec87aaf-35f9-447a-adb7-20234491401a")
33686 IPreviewHandlerFrame : public IUnknown
33687 {
33688     virtual HRESULT STDMETHODCALLTYPE GetWindowContext(
33689         PREVIEWHANDLERFRAMEINFO *pinfo) = 0;
33690 
33691     virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator(
33692         MSG *pmsg) = 0;
33693 
33694 };
33695 #ifdef __CRT_UUID_DECL
33696 __CRT_UUID_DECL(IPreviewHandlerFrame, 0xfec87aaf, 0x35f9, 0x447a, 0xad,0xb7, 0x20,0x23,0x44,0x91,0x40,0x1a)
33697 #endif
33698 #else
33699 typedef struct IPreviewHandlerFrameVtbl {
33700     BEGIN_INTERFACE
33701 
33702     /*** IUnknown methods ***/
33703     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
33704         IPreviewHandlerFrame* This,
33705         REFIID riid,
33706         void **ppvObject);
33707 
33708     ULONG (STDMETHODCALLTYPE *AddRef)(
33709         IPreviewHandlerFrame* This);
33710 
33711     ULONG (STDMETHODCALLTYPE *Release)(
33712         IPreviewHandlerFrame* This);
33713 
33714     /*** IPreviewHandlerFrame methods ***/
33715     HRESULT (STDMETHODCALLTYPE *GetWindowContext)(
33716         IPreviewHandlerFrame* This,
33717         PREVIEWHANDLERFRAMEINFO *pinfo);
33718 
33719     HRESULT (STDMETHODCALLTYPE *TranslateAccelerator)(
33720         IPreviewHandlerFrame* This,
33721         MSG *pmsg);
33722 
33723     END_INTERFACE
33724 } IPreviewHandlerFrameVtbl;
33725 interface IPreviewHandlerFrame {
33726     CONST_VTBL IPreviewHandlerFrameVtbl* lpVtbl;
33727 };
33728 
33729 #ifdef COBJMACROS
33730 #ifndef WIDL_C_INLINE_WRAPPERS
33731 /*** IUnknown methods ***/
33732 #define IPreviewHandlerFrame_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
33733 #define IPreviewHandlerFrame_AddRef(This) (This)->lpVtbl->AddRef(This)
33734 #define IPreviewHandlerFrame_Release(This) (This)->lpVtbl->Release(This)
33735 /*** IPreviewHandlerFrame methods ***/
33736 #define IPreviewHandlerFrame_GetWindowContext(This,pinfo) (This)->lpVtbl->GetWindowContext(This,pinfo)
33737 #define IPreviewHandlerFrame_TranslateAccelerator(This,pmsg) (This)->lpVtbl->TranslateAccelerator(This,pmsg)
33738 #else
33739 /*** IUnknown methods ***/
33740 static FORCEINLINE HRESULT IPreviewHandlerFrame_QueryInterface(IPreviewHandlerFrame* This,REFIID riid,void **ppvObject) {
33741     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
33742 }
33743 static FORCEINLINE ULONG IPreviewHandlerFrame_AddRef(IPreviewHandlerFrame* This) {
33744     return This->lpVtbl->AddRef(This);
33745 }
33746 static FORCEINLINE ULONG IPreviewHandlerFrame_Release(IPreviewHandlerFrame* This) {
33747     return This->lpVtbl->Release(This);
33748 }
33749 /*** IPreviewHandlerFrame methods ***/
33750 static FORCEINLINE HRESULT IPreviewHandlerFrame_GetWindowContext(IPreviewHandlerFrame* This,PREVIEWHANDLERFRAMEINFO *pinfo) {
33751     return This->lpVtbl->GetWindowContext(This,pinfo);
33752 }
33753 static FORCEINLINE HRESULT IPreviewHandlerFrame_TranslateAccelerator(IPreviewHandlerFrame* This,MSG *pmsg) {
33754     return This->lpVtbl->TranslateAccelerator(This,pmsg);
33755 }
33756 #endif
33757 #endif
33758 
33759 #endif
33760 
33761 HRESULT STDMETHODCALLTYPE IPreviewHandlerFrame_GetWindowContext_Proxy(
33762     IPreviewHandlerFrame* This,
33763     PREVIEWHANDLERFRAMEINFO *pinfo);
33764 void __RPC_STUB IPreviewHandlerFrame_GetWindowContext_Stub(
33765     IRpcStubBuffer* This,
33766     IRpcChannelBuffer* pRpcChannelBuffer,
33767     PRPC_MESSAGE pRpcMessage,
33768     DWORD* pdwStubPhase);
33769 HRESULT STDMETHODCALLTYPE IPreviewHandlerFrame_TranslateAccelerator_Proxy(
33770     IPreviewHandlerFrame* This,
33771     MSG *pmsg);
33772 void __RPC_STUB IPreviewHandlerFrame_TranslateAccelerator_Stub(
33773     IRpcStubBuffer* This,
33774     IRpcChannelBuffer* pRpcChannelBuffer,
33775     PRPC_MESSAGE pRpcMessage,
33776     DWORD* pdwStubPhase);
33777 
33778 #endif  /* __IPreviewHandlerFrame_INTERFACE_DEFINED__ */
33779 
33780 
33781 #if NTDDI_VERSION >= NTDDI_VISTA
33782 /*****************************************************************************
33783  * ITrayDeskBand interface
33784  */
33785 #ifndef __ITrayDeskBand_INTERFACE_DEFINED__
33786 #define __ITrayDeskBand_INTERFACE_DEFINED__
33787 
33788 DEFINE_GUID(IID_ITrayDeskBand, 0x6d67e846, 0x5b9c, 0x4db8, 0x9c,0xbc, 0xdd,0xe1,0x2f,0x42,0x54,0xf1);
33789 #if defined(__cplusplus) && !defined(CINTERFACE)
33790 MIDL_INTERFACE("6d67e846-5b9c-4db8-9cbc-dde12f4254f1")
33791 ITrayDeskBand : public IUnknown
33792 {
33793     virtual HRESULT STDMETHODCALLTYPE ShowDeskBand(
33794         REFCLSID clsid) = 0;
33795 
33796     virtual HRESULT STDMETHODCALLTYPE HideDeskBand(
33797         REFCLSID clsid) = 0;
33798 
33799     virtual HRESULT STDMETHODCALLTYPE IsDeskBandShown(
33800         REFCLSID clsid) = 0;
33801 
33802     virtual HRESULT STDMETHODCALLTYPE DeskBandRegistrationChanged(
33803         ) = 0;
33804 
33805 };
33806 #ifdef __CRT_UUID_DECL
33807 __CRT_UUID_DECL(ITrayDeskBand, 0x6d67e846, 0x5b9c, 0x4db8, 0x9c,0xbc, 0xdd,0xe1,0x2f,0x42,0x54,0xf1)
33808 #endif
33809 #else
33810 typedef struct ITrayDeskBandVtbl {
33811     BEGIN_INTERFACE
33812 
33813     /*** IUnknown methods ***/
33814     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
33815         ITrayDeskBand* This,
33816         REFIID riid,
33817         void **ppvObject);
33818 
33819     ULONG (STDMETHODCALLTYPE *AddRef)(
33820         ITrayDeskBand* This);
33821 
33822     ULONG (STDMETHODCALLTYPE *Release)(
33823         ITrayDeskBand* This);
33824 
33825     /*** ITrayDeskBand methods ***/
33826     HRESULT (STDMETHODCALLTYPE *ShowDeskBand)(
33827         ITrayDeskBand* This,
33828         REFCLSID clsid);
33829 
33830     HRESULT (STDMETHODCALLTYPE *HideDeskBand)(
33831         ITrayDeskBand* This,
33832         REFCLSID clsid);
33833 
33834     HRESULT (STDMETHODCALLTYPE *IsDeskBandShown)(
33835         ITrayDeskBand* This,
33836         REFCLSID clsid);
33837 
33838     HRESULT (STDMETHODCALLTYPE *DeskBandRegistrationChanged)(
33839         ITrayDeskBand* This);
33840 
33841     END_INTERFACE
33842 } ITrayDeskBandVtbl;
33843 interface ITrayDeskBand {
33844     CONST_VTBL ITrayDeskBandVtbl* lpVtbl;
33845 };
33846 
33847 #ifdef COBJMACROS
33848 #ifndef WIDL_C_INLINE_WRAPPERS
33849 /*** IUnknown methods ***/
33850 #define ITrayDeskBand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
33851 #define ITrayDeskBand_AddRef(This) (This)->lpVtbl->AddRef(This)
33852 #define ITrayDeskBand_Release(This) (This)->lpVtbl->Release(This)
33853 /*** ITrayDeskBand methods ***/
33854 #define ITrayDeskBand_ShowDeskBand(This,clsid) (This)->lpVtbl->ShowDeskBand(This,clsid)
33855 #define ITrayDeskBand_HideDeskBand(This,clsid) (This)->lpVtbl->HideDeskBand(This,clsid)
33856 #define ITrayDeskBand_IsDeskBandShown(This,clsid) (This)->lpVtbl->IsDeskBandShown(This,clsid)
33857 #define ITrayDeskBand_DeskBandRegistrationChanged(This) (This)->lpVtbl->DeskBandRegistrationChanged(This)
33858 #else
33859 /*** IUnknown methods ***/
33860 static FORCEINLINE HRESULT ITrayDeskBand_QueryInterface(ITrayDeskBand* This,REFIID riid,void **ppvObject) {
33861     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
33862 }
33863 static FORCEINLINE ULONG ITrayDeskBand_AddRef(ITrayDeskBand* This) {
33864     return This->lpVtbl->AddRef(This);
33865 }
33866 static FORCEINLINE ULONG ITrayDeskBand_Release(ITrayDeskBand* This) {
33867     return This->lpVtbl->Release(This);
33868 }
33869 /*** ITrayDeskBand methods ***/
33870 static FORCEINLINE HRESULT ITrayDeskBand_ShowDeskBand(ITrayDeskBand* This,REFCLSID clsid) {
33871     return This->lpVtbl->ShowDeskBand(This,clsid);
33872 }
33873 static FORCEINLINE HRESULT ITrayDeskBand_HideDeskBand(ITrayDeskBand* This,REFCLSID clsid) {
33874     return This->lpVtbl->HideDeskBand(This,clsid);
33875 }
33876 static FORCEINLINE HRESULT ITrayDeskBand_IsDeskBandShown(ITrayDeskBand* This,REFCLSID clsid) {
33877     return This->lpVtbl->IsDeskBandShown(This,clsid);
33878 }
33879 static FORCEINLINE HRESULT ITrayDeskBand_DeskBandRegistrationChanged(ITrayDeskBand* This) {
33880     return This->lpVtbl->DeskBandRegistrationChanged(This);
33881 }
33882 #endif
33883 #endif
33884 
33885 #endif
33886 
33887 HRESULT STDMETHODCALLTYPE ITrayDeskBand_ShowDeskBand_Proxy(
33888     ITrayDeskBand* This,
33889     REFCLSID clsid);
33890 void __RPC_STUB ITrayDeskBand_ShowDeskBand_Stub(
33891     IRpcStubBuffer* This,
33892     IRpcChannelBuffer* pRpcChannelBuffer,
33893     PRPC_MESSAGE pRpcMessage,
33894     DWORD* pdwStubPhase);
33895 HRESULT STDMETHODCALLTYPE ITrayDeskBand_HideDeskBand_Proxy(
33896     ITrayDeskBand* This,
33897     REFCLSID clsid);
33898 void __RPC_STUB ITrayDeskBand_HideDeskBand_Stub(
33899     IRpcStubBuffer* This,
33900     IRpcChannelBuffer* pRpcChannelBuffer,
33901     PRPC_MESSAGE pRpcMessage,
33902     DWORD* pdwStubPhase);
33903 HRESULT STDMETHODCALLTYPE ITrayDeskBand_IsDeskBandShown_Proxy(
33904     ITrayDeskBand* This,
33905     REFCLSID clsid);
33906 void __RPC_STUB ITrayDeskBand_IsDeskBandShown_Stub(
33907     IRpcStubBuffer* This,
33908     IRpcChannelBuffer* pRpcChannelBuffer,
33909     PRPC_MESSAGE pRpcMessage,
33910     DWORD* pdwStubPhase);
33911 HRESULT STDMETHODCALLTYPE ITrayDeskBand_DeskBandRegistrationChanged_Proxy(
33912     ITrayDeskBand* This);
33913 void __RPC_STUB ITrayDeskBand_DeskBandRegistrationChanged_Stub(
33914     IRpcStubBuffer* This,
33915     IRpcChannelBuffer* pRpcChannelBuffer,
33916     PRPC_MESSAGE pRpcMessage,
33917     DWORD* pdwStubPhase);
33918 
33919 #endif  /* __ITrayDeskBand_INTERFACE_DEFINED__ */
33920 
33921 
33922 /*****************************************************************************
33923  * IBandHost interface
33924  */
33925 #ifndef __IBandHost_INTERFACE_DEFINED__
33926 #define __IBandHost_INTERFACE_DEFINED__
33927 
33928 DEFINE_GUID(IID_IBandHost, 0xb9075c7c, 0xd48e, 0x403f, 0xab,0x99, 0xd6,0xc7,0x7a,0x10,0x84,0xac);
33929 #if defined(__cplusplus) && !defined(CINTERFACE)
33930 MIDL_INTERFACE("b9075c7c-d48e-403f-ab99-d6c77a1084ac")
33931 IBandHost : public IUnknown
33932 {
33933     virtual HRESULT STDMETHODCALLTYPE CreateBand(
33934         REFCLSID rclsidBand,
33935         WINBOOL fAvailable,
33936         WINBOOL fVisible,
33937         REFIID riid,
33938         void **ppv) = 0;
33939 
33940     virtual HRESULT STDMETHODCALLTYPE SetBandAvailability(
33941         REFCLSID rclsidBand,
33942         WINBOOL fAvailable) = 0;
33943 
33944     virtual HRESULT STDMETHODCALLTYPE DestroyBand(
33945         REFCLSID rclsidBand) = 0;
33946 
33947 };
33948 #ifdef __CRT_UUID_DECL
33949 __CRT_UUID_DECL(IBandHost, 0xb9075c7c, 0xd48e, 0x403f, 0xab,0x99, 0xd6,0xc7,0x7a,0x10,0x84,0xac)
33950 #endif
33951 #else
33952 typedef struct IBandHostVtbl {
33953     BEGIN_INTERFACE
33954 
33955     /*** IUnknown methods ***/
33956     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
33957         IBandHost* This,
33958         REFIID riid,
33959         void **ppvObject);
33960 
33961     ULONG (STDMETHODCALLTYPE *AddRef)(
33962         IBandHost* This);
33963 
33964     ULONG (STDMETHODCALLTYPE *Release)(
33965         IBandHost* This);
33966 
33967     /*** IBandHost methods ***/
33968     HRESULT (STDMETHODCALLTYPE *CreateBand)(
33969         IBandHost* This,
33970         REFCLSID rclsidBand,
33971         WINBOOL fAvailable,
33972         WINBOOL fVisible,
33973         REFIID riid,
33974         void **ppv);
33975 
33976     HRESULT (STDMETHODCALLTYPE *SetBandAvailability)(
33977         IBandHost* This,
33978         REFCLSID rclsidBand,
33979         WINBOOL fAvailable);
33980 
33981     HRESULT (STDMETHODCALLTYPE *DestroyBand)(
33982         IBandHost* This,
33983         REFCLSID rclsidBand);
33984 
33985     END_INTERFACE
33986 } IBandHostVtbl;
33987 interface IBandHost {
33988     CONST_VTBL IBandHostVtbl* lpVtbl;
33989 };
33990 
33991 #ifdef COBJMACROS
33992 #ifndef WIDL_C_INLINE_WRAPPERS
33993 /*** IUnknown methods ***/
33994 #define IBandHost_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
33995 #define IBandHost_AddRef(This) (This)->lpVtbl->AddRef(This)
33996 #define IBandHost_Release(This) (This)->lpVtbl->Release(This)
33997 /*** IBandHost methods ***/
33998 #define IBandHost_CreateBand(This,rclsidBand,fAvailable,fVisible,riid,ppv) (This)->lpVtbl->CreateBand(This,rclsidBand,fAvailable,fVisible,riid,ppv)
33999 #define IBandHost_SetBandAvailability(This,rclsidBand,fAvailable) (This)->lpVtbl->SetBandAvailability(This,rclsidBand,fAvailable)
34000 #define IBandHost_DestroyBand(This,rclsidBand) (This)->lpVtbl->DestroyBand(This,rclsidBand)
34001 #else
34002 /*** IUnknown methods ***/
34003 static FORCEINLINE HRESULT IBandHost_QueryInterface(IBandHost* This,REFIID riid,void **ppvObject) {
34004     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
34005 }
34006 static FORCEINLINE ULONG IBandHost_AddRef(IBandHost* This) {
34007     return This->lpVtbl->AddRef(This);
34008 }
34009 static FORCEINLINE ULONG IBandHost_Release(IBandHost* This) {
34010     return This->lpVtbl->Release(This);
34011 }
34012 /*** IBandHost methods ***/
34013 static FORCEINLINE HRESULT IBandHost_CreateBand(IBandHost* This,REFCLSID rclsidBand,WINBOOL fAvailable,WINBOOL fVisible,REFIID riid,void **ppv) {
34014     return This->lpVtbl->CreateBand(This,rclsidBand,fAvailable,fVisible,riid,ppv);
34015 }
34016 static FORCEINLINE HRESULT IBandHost_SetBandAvailability(IBandHost* This,REFCLSID rclsidBand,WINBOOL fAvailable) {
34017     return This->lpVtbl->SetBandAvailability(This,rclsidBand,fAvailable);
34018 }
34019 static FORCEINLINE HRESULT IBandHost_DestroyBand(IBandHost* This,REFCLSID rclsidBand) {
34020     return This->lpVtbl->DestroyBand(This,rclsidBand);
34021 }
34022 #endif
34023 #endif
34024 
34025 #endif
34026 
34027 HRESULT STDMETHODCALLTYPE IBandHost_CreateBand_Proxy(
34028     IBandHost* This,
34029     REFCLSID rclsidBand,
34030     WINBOOL fAvailable,
34031     WINBOOL fVisible,
34032     REFIID riid,
34033     void **ppv);
34034 void __RPC_STUB IBandHost_CreateBand_Stub(
34035     IRpcStubBuffer* This,
34036     IRpcChannelBuffer* pRpcChannelBuffer,
34037     PRPC_MESSAGE pRpcMessage,
34038     DWORD* pdwStubPhase);
34039 HRESULT STDMETHODCALLTYPE IBandHost_SetBandAvailability_Proxy(
34040     IBandHost* This,
34041     REFCLSID rclsidBand,
34042     WINBOOL fAvailable);
34043 void __RPC_STUB IBandHost_SetBandAvailability_Stub(
34044     IRpcStubBuffer* This,
34045     IRpcChannelBuffer* pRpcChannelBuffer,
34046     PRPC_MESSAGE pRpcMessage,
34047     DWORD* pdwStubPhase);
34048 HRESULT STDMETHODCALLTYPE IBandHost_DestroyBand_Proxy(
34049     IBandHost* This,
34050     REFCLSID rclsidBand);
34051 void __RPC_STUB IBandHost_DestroyBand_Stub(
34052     IRpcStubBuffer* This,
34053     IRpcChannelBuffer* pRpcChannelBuffer,
34054     PRPC_MESSAGE pRpcMessage,
34055     DWORD* pdwStubPhase);
34056 
34057 #endif  /* __IBandHost_INTERFACE_DEFINED__ */
34058 
34059 
34060 #define SID_SBandHost IID_IBandHost
34061 
34062 typedef GUID EXPLORERPANE;
34063 
34064 #if 0
34065 typedef EXPLORERPANE *REFEXPLORERPANE;
34066 #endif
34067 
34068 #ifdef __cplusplus
34069 #define REFEXPLORERPANE const EXPLORERPANE &
34070 #else
34071 #define REFEXPLORERPANE const EXPLORERPANE * __MIDL_CONST
34072 #endif
34073 
34074 /*****************************************************************************
34075  * IExplorerPaneVisibility interface
34076  */
34077 #ifndef __IExplorerPaneVisibility_INTERFACE_DEFINED__
34078 #define __IExplorerPaneVisibility_INTERFACE_DEFINED__
34079 
34080 enum _EXPLORERPANESTATE {
34081     EPS_DONTCARE = 0x0,
34082     EPS_DEFAULT_ON = 0x1,
34083     EPS_DEFAULT_OFF = 0x2,
34084     EPS_STATEMASK = 0xffff,
34085     EPS_INITIALSTATE = 0x10000,
34086     EPS_FORCE = 0x20000
34087 };
34088 
34089 
34090 typedef DWORD EXPLORERPANESTATE;
34091 
34092 DEFINE_GUID(IID_IExplorerPaneVisibility, 0xe07010ec, 0xbc17, 0x44c0, 0x97,0xb0, 0x46,0xc7,0xc9,0x5b,0x9e,0xdc);
34093 #if defined(__cplusplus) && !defined(CINTERFACE)
34094 MIDL_INTERFACE("e07010ec-bc17-44c0-97b0-46c7c95b9edc")
34095 IExplorerPaneVisibility : public IUnknown
34096 {
34097     virtual HRESULT STDMETHODCALLTYPE GetPaneState(
34098         REFEXPLORERPANE ep,
34099         EXPLORERPANESTATE *peps) = 0;
34100 
34101 };
34102 #ifdef __CRT_UUID_DECL
34103 __CRT_UUID_DECL(IExplorerPaneVisibility, 0xe07010ec, 0xbc17, 0x44c0, 0x97,0xb0, 0x46,0xc7,0xc9,0x5b,0x9e,0xdc)
34104 #endif
34105 #else
34106 typedef struct IExplorerPaneVisibilityVtbl {
34107     BEGIN_INTERFACE
34108 
34109     /*** IUnknown methods ***/
34110     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
34111         IExplorerPaneVisibility* This,
34112         REFIID riid,
34113         void **ppvObject);
34114 
34115     ULONG (STDMETHODCALLTYPE *AddRef)(
34116         IExplorerPaneVisibility* This);
34117 
34118     ULONG (STDMETHODCALLTYPE *Release)(
34119         IExplorerPaneVisibility* This);
34120 
34121     /*** IExplorerPaneVisibility methods ***/
34122     HRESULT (STDMETHODCALLTYPE *GetPaneState)(
34123         IExplorerPaneVisibility* This,
34124         REFEXPLORERPANE ep,
34125         EXPLORERPANESTATE *peps);
34126 
34127     END_INTERFACE
34128 } IExplorerPaneVisibilityVtbl;
34129 interface IExplorerPaneVisibility {
34130     CONST_VTBL IExplorerPaneVisibilityVtbl* lpVtbl;
34131 };
34132 
34133 #ifdef COBJMACROS
34134 #ifndef WIDL_C_INLINE_WRAPPERS
34135 /*** IUnknown methods ***/
34136 #define IExplorerPaneVisibility_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
34137 #define IExplorerPaneVisibility_AddRef(This) (This)->lpVtbl->AddRef(This)
34138 #define IExplorerPaneVisibility_Release(This) (This)->lpVtbl->Release(This)
34139 /*** IExplorerPaneVisibility methods ***/
34140 #define IExplorerPaneVisibility_GetPaneState(This,ep,peps) (This)->lpVtbl->GetPaneState(This,ep,peps)
34141 #else
34142 /*** IUnknown methods ***/
34143 static FORCEINLINE HRESULT IExplorerPaneVisibility_QueryInterface(IExplorerPaneVisibility* This,REFIID riid,void **ppvObject) {
34144     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
34145 }
34146 static FORCEINLINE ULONG IExplorerPaneVisibility_AddRef(IExplorerPaneVisibility* This) {
34147     return This->lpVtbl->AddRef(This);
34148 }
34149 static FORCEINLINE ULONG IExplorerPaneVisibility_Release(IExplorerPaneVisibility* This) {
34150     return This->lpVtbl->Release(This);
34151 }
34152 /*** IExplorerPaneVisibility methods ***/
34153 static FORCEINLINE HRESULT IExplorerPaneVisibility_GetPaneState(IExplorerPaneVisibility* This,REFEXPLORERPANE ep,EXPLORERPANESTATE *peps) {
34154     return This->lpVtbl->GetPaneState(This,ep,peps);
34155 }
34156 #endif
34157 #endif
34158 
34159 #endif
34160 
34161 HRESULT STDMETHODCALLTYPE IExplorerPaneVisibility_GetPaneState_Proxy(
34162     IExplorerPaneVisibility* This,
34163     REFEXPLORERPANE ep,
34164     EXPLORERPANESTATE *peps);
34165 void __RPC_STUB IExplorerPaneVisibility_GetPaneState_Stub(
34166     IRpcStubBuffer* This,
34167     IRpcChannelBuffer* pRpcChannelBuffer,
34168     PRPC_MESSAGE pRpcMessage,
34169     DWORD* pdwStubPhase);
34170 
34171 #endif  /* __IExplorerPaneVisibility_INTERFACE_DEFINED__ */
34172 
34173 
34174 #define SID_ExplorerPaneVisibility IID_IExplorerPaneVisibility
34175 
34176 /*****************************************************************************
34177  * IContextMenuCB interface
34178  */
34179 #ifndef __IContextMenuCB_INTERFACE_DEFINED__
34180 #define __IContextMenuCB_INTERFACE_DEFINED__
34181 
34182 DEFINE_GUID(IID_IContextMenuCB, 0x3409e930, 0x5a39, 0x11d1, 0x83,0xfa, 0x00,0xa0,0xc9,0x0d,0xc8,0x49);
34183 #if defined(__cplusplus) && !defined(CINTERFACE)
34184 MIDL_INTERFACE("3409e930-5a39-11d1-83fa-00a0c90dc849")
34185 IContextMenuCB : public IUnknown
34186 {
34187     virtual HRESULT STDMETHODCALLTYPE CallBack(
34188         IShellFolder *psf,
34189         HWND hwndOwner,
34190         IDataObject *pdtobj,
34191         UINT uMsg,
34192         WPARAM wParam,
34193         LPARAM lParam) = 0;
34194 
34195 };
34196 #ifdef __CRT_UUID_DECL
34197 __CRT_UUID_DECL(IContextMenuCB, 0x3409e930, 0x5a39, 0x11d1, 0x83,0xfa, 0x00,0xa0,0xc9,0x0d,0xc8,0x49)
34198 #endif
34199 #else
34200 typedef struct IContextMenuCBVtbl {
34201     BEGIN_INTERFACE
34202 
34203     /*** IUnknown methods ***/
34204     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
34205         IContextMenuCB* This,
34206         REFIID riid,
34207         void **ppvObject);
34208 
34209     ULONG (STDMETHODCALLTYPE *AddRef)(
34210         IContextMenuCB* This);
34211 
34212     ULONG (STDMETHODCALLTYPE *Release)(
34213         IContextMenuCB* This);
34214 
34215     /*** IContextMenuCB methods ***/
34216     HRESULT (STDMETHODCALLTYPE *CallBack)(
34217         IContextMenuCB* This,
34218         IShellFolder *psf,
34219         HWND hwndOwner,
34220         IDataObject *pdtobj,
34221         UINT uMsg,
34222         WPARAM wParam,
34223         LPARAM lParam);
34224 
34225     END_INTERFACE
34226 } IContextMenuCBVtbl;
34227 interface IContextMenuCB {
34228     CONST_VTBL IContextMenuCBVtbl* lpVtbl;
34229 };
34230 
34231 #ifdef COBJMACROS
34232 #ifndef WIDL_C_INLINE_WRAPPERS
34233 /*** IUnknown methods ***/
34234 #define IContextMenuCB_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
34235 #define IContextMenuCB_AddRef(This) (This)->lpVtbl->AddRef(This)
34236 #define IContextMenuCB_Release(This) (This)->lpVtbl->Release(This)
34237 /*** IContextMenuCB methods ***/
34238 #define IContextMenuCB_CallBack(This,psf,hwndOwner,pdtobj,uMsg,wParam,lParam) (This)->lpVtbl->CallBack(This,psf,hwndOwner,pdtobj,uMsg,wParam,lParam)
34239 #else
34240 /*** IUnknown methods ***/
34241 static FORCEINLINE HRESULT IContextMenuCB_QueryInterface(IContextMenuCB* This,REFIID riid,void **ppvObject) {
34242     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
34243 }
34244 static FORCEINLINE ULONG IContextMenuCB_AddRef(IContextMenuCB* This) {
34245     return This->lpVtbl->AddRef(This);
34246 }
34247 static FORCEINLINE ULONG IContextMenuCB_Release(IContextMenuCB* This) {
34248     return This->lpVtbl->Release(This);
34249 }
34250 /*** IContextMenuCB methods ***/
34251 static FORCEINLINE HRESULT IContextMenuCB_CallBack(IContextMenuCB* This,IShellFolder *psf,HWND hwndOwner,IDataObject *pdtobj,UINT uMsg,WPARAM wParam,LPARAM lParam) {
34252     return This->lpVtbl->CallBack(This,psf,hwndOwner,pdtobj,uMsg,wParam,lParam);
34253 }
34254 #endif
34255 #endif
34256 
34257 #endif
34258 
34259 HRESULT STDMETHODCALLTYPE IContextMenuCB_CallBack_Proxy(
34260     IContextMenuCB* This,
34261     IShellFolder *psf,
34262     HWND hwndOwner,
34263     IDataObject *pdtobj,
34264     UINT uMsg,
34265     WPARAM wParam,
34266     LPARAM lParam);
34267 void __RPC_STUB IContextMenuCB_CallBack_Stub(
34268     IRpcStubBuffer* This,
34269     IRpcChannelBuffer* pRpcChannelBuffer,
34270     PRPC_MESSAGE pRpcMessage,
34271     DWORD* pdwStubPhase);
34272 
34273 #endif  /* __IContextMenuCB_INTERFACE_DEFINED__ */
34274 
34275 #endif
34276 
34277 /*****************************************************************************
34278  * IDefaultExtractIconInit interface
34279  */
34280 #ifndef __IDefaultExtractIconInit_INTERFACE_DEFINED__
34281 #define __IDefaultExtractIconInit_INTERFACE_DEFINED__
34282 
34283 DEFINE_GUID(IID_IDefaultExtractIconInit, 0x41ded17d, 0xd6b3, 0x4261, 0x99,0x7d, 0x88,0xc6,0x0e,0x4b,0x1d,0x58);
34284 #if defined(__cplusplus) && !defined(CINTERFACE)
34285 MIDL_INTERFACE("41ded17d-d6b3-4261-997d-88c60e4b1d58")
34286 IDefaultExtractIconInit : public IUnknown
34287 {
34288     virtual HRESULT STDMETHODCALLTYPE SetFlags(
34289         UINT uFlags) = 0;
34290 
34291     virtual HRESULT STDMETHODCALLTYPE SetKey(
34292         HKEY hkey) = 0;
34293 
34294     virtual HRESULT STDMETHODCALLTYPE SetNormalIcon(
34295         LPCWSTR pszFile,
34296         int iIcon) = 0;
34297 
34298     virtual HRESULT STDMETHODCALLTYPE SetOpenIcon(
34299         LPCWSTR pszFile,
34300         int iIcon) = 0;
34301 
34302     virtual HRESULT STDMETHODCALLTYPE SetShortcutIcon(
34303         LPCWSTR pszFile,
34304         int iIcon) = 0;
34305 
34306     virtual HRESULT STDMETHODCALLTYPE SetDefaultIcon(
34307         LPCWSTR pszFile,
34308         int iIcon) = 0;
34309 
34310 };
34311 #ifdef __CRT_UUID_DECL
34312 __CRT_UUID_DECL(IDefaultExtractIconInit, 0x41ded17d, 0xd6b3, 0x4261, 0x99,0x7d, 0x88,0xc6,0x0e,0x4b,0x1d,0x58)
34313 #endif
34314 #else
34315 typedef struct IDefaultExtractIconInitVtbl {
34316     BEGIN_INTERFACE
34317 
34318     /*** IUnknown methods ***/
34319     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
34320         IDefaultExtractIconInit* This,
34321         REFIID riid,
34322         void **ppvObject);
34323 
34324     ULONG (STDMETHODCALLTYPE *AddRef)(
34325         IDefaultExtractIconInit* This);
34326 
34327     ULONG (STDMETHODCALLTYPE *Release)(
34328         IDefaultExtractIconInit* This);
34329 
34330     /*** IDefaultExtractIconInit methods ***/
34331     HRESULT (STDMETHODCALLTYPE *SetFlags)(
34332         IDefaultExtractIconInit* This,
34333         UINT uFlags);
34334 
34335     HRESULT (STDMETHODCALLTYPE *SetKey)(
34336         IDefaultExtractIconInit* This,
34337         HKEY hkey);
34338 
34339     HRESULT (STDMETHODCALLTYPE *SetNormalIcon)(
34340         IDefaultExtractIconInit* This,
34341         LPCWSTR pszFile,
34342         int iIcon);
34343 
34344     HRESULT (STDMETHODCALLTYPE *SetOpenIcon)(
34345         IDefaultExtractIconInit* This,
34346         LPCWSTR pszFile,
34347         int iIcon);
34348 
34349     HRESULT (STDMETHODCALLTYPE *SetShortcutIcon)(
34350         IDefaultExtractIconInit* This,
34351         LPCWSTR pszFile,
34352         int iIcon);
34353 
34354     HRESULT (STDMETHODCALLTYPE *SetDefaultIcon)(
34355         IDefaultExtractIconInit* This,
34356         LPCWSTR pszFile,
34357         int iIcon);
34358 
34359     END_INTERFACE
34360 } IDefaultExtractIconInitVtbl;
34361 interface IDefaultExtractIconInit {
34362     CONST_VTBL IDefaultExtractIconInitVtbl* lpVtbl;
34363 };
34364 
34365 #ifdef COBJMACROS
34366 #ifndef WIDL_C_INLINE_WRAPPERS
34367 /*** IUnknown methods ***/
34368 #define IDefaultExtractIconInit_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
34369 #define IDefaultExtractIconInit_AddRef(This) (This)->lpVtbl->AddRef(This)
34370 #define IDefaultExtractIconInit_Release(This) (This)->lpVtbl->Release(This)
34371 /*** IDefaultExtractIconInit methods ***/
34372 #define IDefaultExtractIconInit_SetFlags(This,uFlags) (This)->lpVtbl->SetFlags(This,uFlags)
34373 #define IDefaultExtractIconInit_SetKey(This,hkey) (This)->lpVtbl->SetKey(This,hkey)
34374 #define IDefaultExtractIconInit_SetNormalIcon(This,pszFile,iIcon) (This)->lpVtbl->SetNormalIcon(This,pszFile,iIcon)
34375 #define IDefaultExtractIconInit_SetOpenIcon(This,pszFile,iIcon) (This)->lpVtbl->SetOpenIcon(This,pszFile,iIcon)
34376 #define IDefaultExtractIconInit_SetShortcutIcon(This,pszFile,iIcon) (This)->lpVtbl->SetShortcutIcon(This,pszFile,iIcon)
34377 #define IDefaultExtractIconInit_SetDefaultIcon(This,pszFile,iIcon) (This)->lpVtbl->SetDefaultIcon(This,pszFile,iIcon)
34378 #else
34379 /*** IUnknown methods ***/
34380 static FORCEINLINE HRESULT IDefaultExtractIconInit_QueryInterface(IDefaultExtractIconInit* This,REFIID riid,void **ppvObject) {
34381     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
34382 }
34383 static FORCEINLINE ULONG IDefaultExtractIconInit_AddRef(IDefaultExtractIconInit* This) {
34384     return This->lpVtbl->AddRef(This);
34385 }
34386 static FORCEINLINE ULONG IDefaultExtractIconInit_Release(IDefaultExtractIconInit* This) {
34387     return This->lpVtbl->Release(This);
34388 }
34389 /*** IDefaultExtractIconInit methods ***/
34390 static FORCEINLINE HRESULT IDefaultExtractIconInit_SetFlags(IDefaultExtractIconInit* This,UINT uFlags) {
34391     return This->lpVtbl->SetFlags(This,uFlags);
34392 }
34393 static FORCEINLINE HRESULT IDefaultExtractIconInit_SetKey(IDefaultExtractIconInit* This,HKEY hkey) {
34394     return This->lpVtbl->SetKey(This,hkey);
34395 }
34396 static FORCEINLINE HRESULT IDefaultExtractIconInit_SetNormalIcon(IDefaultExtractIconInit* This,LPCWSTR pszFile,int iIcon) {
34397     return This->lpVtbl->SetNormalIcon(This,pszFile,iIcon);
34398 }
34399 static FORCEINLINE HRESULT IDefaultExtractIconInit_SetOpenIcon(IDefaultExtractIconInit* This,LPCWSTR pszFile,int iIcon) {
34400     return This->lpVtbl->SetOpenIcon(This,pszFile,iIcon);
34401 }
34402 static FORCEINLINE HRESULT IDefaultExtractIconInit_SetShortcutIcon(IDefaultExtractIconInit* This,LPCWSTR pszFile,int iIcon) {
34403     return This->lpVtbl->SetShortcutIcon(This,pszFile,iIcon);
34404 }
34405 static FORCEINLINE HRESULT IDefaultExtractIconInit_SetDefaultIcon(IDefaultExtractIconInit* This,LPCWSTR pszFile,int iIcon) {
34406     return This->lpVtbl->SetDefaultIcon(This,pszFile,iIcon);
34407 }
34408 #endif
34409 #endif
34410 
34411 #endif
34412 
34413 HRESULT STDMETHODCALLTYPE IDefaultExtractIconInit_SetFlags_Proxy(
34414     IDefaultExtractIconInit* This,
34415     UINT uFlags);
34416 void __RPC_STUB IDefaultExtractIconInit_SetFlags_Stub(
34417     IRpcStubBuffer* This,
34418     IRpcChannelBuffer* pRpcChannelBuffer,
34419     PRPC_MESSAGE pRpcMessage,
34420     DWORD* pdwStubPhase);
34421 HRESULT STDMETHODCALLTYPE IDefaultExtractIconInit_SetKey_Proxy(
34422     IDefaultExtractIconInit* This,
34423     HKEY hkey);
34424 void __RPC_STUB IDefaultExtractIconInit_SetKey_Stub(
34425     IRpcStubBuffer* This,
34426     IRpcChannelBuffer* pRpcChannelBuffer,
34427     PRPC_MESSAGE pRpcMessage,
34428     DWORD* pdwStubPhase);
34429 HRESULT STDMETHODCALLTYPE IDefaultExtractIconInit_SetNormalIcon_Proxy(
34430     IDefaultExtractIconInit* This,
34431     LPCWSTR pszFile,
34432     int iIcon);
34433 void __RPC_STUB IDefaultExtractIconInit_SetNormalIcon_Stub(
34434     IRpcStubBuffer* This,
34435     IRpcChannelBuffer* pRpcChannelBuffer,
34436     PRPC_MESSAGE pRpcMessage,
34437     DWORD* pdwStubPhase);
34438 HRESULT STDMETHODCALLTYPE IDefaultExtractIconInit_SetOpenIcon_Proxy(
34439     IDefaultExtractIconInit* This,
34440     LPCWSTR pszFile,
34441     int iIcon);
34442 void __RPC_STUB IDefaultExtractIconInit_SetOpenIcon_Stub(
34443     IRpcStubBuffer* This,
34444     IRpcChannelBuffer* pRpcChannelBuffer,
34445     PRPC_MESSAGE pRpcMessage,
34446     DWORD* pdwStubPhase);
34447 HRESULT STDMETHODCALLTYPE IDefaultExtractIconInit_SetShortcutIcon_Proxy(
34448     IDefaultExtractIconInit* This,
34449     LPCWSTR pszFile,
34450     int iIcon);
34451 void __RPC_STUB IDefaultExtractIconInit_SetShortcutIcon_Stub(
34452     IRpcStubBuffer* This,
34453     IRpcChannelBuffer* pRpcChannelBuffer,
34454     PRPC_MESSAGE pRpcMessage,
34455     DWORD* pdwStubPhase);
34456 HRESULT STDMETHODCALLTYPE IDefaultExtractIconInit_SetDefaultIcon_Proxy(
34457     IDefaultExtractIconInit* This,
34458     LPCWSTR pszFile,
34459     int iIcon);
34460 void __RPC_STUB IDefaultExtractIconInit_SetDefaultIcon_Stub(
34461     IRpcStubBuffer* This,
34462     IRpcChannelBuffer* pRpcChannelBuffer,
34463     PRPC_MESSAGE pRpcMessage,
34464     DWORD* pdwStubPhase);
34465 
34466 #endif  /* __IDefaultExtractIconInit_INTERFACE_DEFINED__ */
34467 
34468 
34469 STDAPI SHCreateDefaultExtractIcon(REFIID riid, void **ppv);
34470 
34471 #ifndef __IEnumExplorerCommand_FWD_DEFINED__
34472 #define __IEnumExplorerCommand_FWD_DEFINED__
34473 typedef interface IEnumExplorerCommand IEnumExplorerCommand;
34474 #endif
34475 
34476 
34477 /*****************************************************************************
34478  * IExplorerCommand interface
34479  */
34480 #ifndef __IExplorerCommand_INTERFACE_DEFINED__
34481 #define __IExplorerCommand_INTERFACE_DEFINED__
34482 
34483 enum _EXPCMDSTATE {
34484     ECS_ENABLED = 0x0,
34485     ECS_DISABLED = 0x1,
34486     ECS_HIDDEN = 0x2,
34487     ECS_CHECKBOX = 0x4,
34488     ECS_CHECKED = 0x8,
34489     ECS_RADIOCHECK = 0x10
34490 };
34491 
34492 
34493 typedef DWORD EXPCMDSTATE;
34494 
34495 enum _EXPCMDFLAGS {
34496     ECF_DEFAULT = 0x0,
34497     ECF_HASSUBCOMMANDS = 0x1,
34498     ECF_HASSPLITBUTTON = 0x2,
34499     ECF_HIDELABEL = 0x4,
34500     ECF_ISSEPARATOR = 0x8,
34501     ECF_HASLUASHIELD = 0x10,
34502     ECF_SEPARATORBEFORE = 0x20,
34503     ECF_SEPARATORAFTER = 0x40,
34504     ECF_ISDROPDOWN = 0x80,
34505     ECF_TOGGLEABLE = 0x100,
34506     ECF_AUTOMENUICONS = 0x200
34507 };
34508 
34509 
34510 typedef DWORD EXPCMDFLAGS;
34511 
34512 DEFINE_GUID(IID_IExplorerCommand, 0xa08ce4d0, 0xfa25, 0x44ab, 0xb5,0x7c, 0xc7,0xb1,0xc3,0x23,0xe0,0xb9);
34513 #if defined(__cplusplus) && !defined(CINTERFACE)
34514 MIDL_INTERFACE("a08ce4d0-fa25-44ab-b57c-c7b1c323e0b9")
34515 IExplorerCommand : public IUnknown
34516 {
34517     virtual HRESULT STDMETHODCALLTYPE GetTitle(
34518         IShellItemArray *psiItemArray,
34519         LPWSTR *ppszName) = 0;
34520 
34521     virtual HRESULT STDMETHODCALLTYPE GetIcon(
34522         IShellItemArray *psiItemArray,
34523         LPWSTR *ppszIcon) = 0;
34524 
34525     virtual HRESULT STDMETHODCALLTYPE GetToolTip(
34526         IShellItemArray *psiItemArray,
34527         LPWSTR *ppszInfotip) = 0;
34528 
34529     virtual HRESULT STDMETHODCALLTYPE GetCanonicalName(
34530         GUID *pguidCommandName) = 0;
34531 
34532     virtual HRESULT STDMETHODCALLTYPE GetState(
34533         IShellItemArray *psiItemArray,
34534         WINBOOL fOkToBeSlow,
34535         EXPCMDSTATE *pCmdState) = 0;
34536 
34537     virtual HRESULT STDMETHODCALLTYPE Invoke(
34538         IShellItemArray *psiItemArray,
34539         IBindCtx *pbc) = 0;
34540 
34541     virtual HRESULT STDMETHODCALLTYPE GetFlags(
34542         EXPCMDFLAGS *pFlags) = 0;
34543 
34544     virtual HRESULT STDMETHODCALLTYPE EnumSubCommands(
34545         IEnumExplorerCommand **ppEnum) = 0;
34546 
34547 };
34548 #ifdef __CRT_UUID_DECL
34549 __CRT_UUID_DECL(IExplorerCommand, 0xa08ce4d0, 0xfa25, 0x44ab, 0xb5,0x7c, 0xc7,0xb1,0xc3,0x23,0xe0,0xb9)
34550 #endif
34551 #else
34552 typedef struct IExplorerCommandVtbl {
34553     BEGIN_INTERFACE
34554 
34555     /*** IUnknown methods ***/
34556     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
34557         IExplorerCommand* This,
34558         REFIID riid,
34559         void **ppvObject);
34560 
34561     ULONG (STDMETHODCALLTYPE *AddRef)(
34562         IExplorerCommand* This);
34563 
34564     ULONG (STDMETHODCALLTYPE *Release)(
34565         IExplorerCommand* This);
34566 
34567     /*** IExplorerCommand methods ***/
34568     HRESULT (STDMETHODCALLTYPE *GetTitle)(
34569         IExplorerCommand* This,
34570         IShellItemArray *psiItemArray,
34571         LPWSTR *ppszName);
34572 
34573     HRESULT (STDMETHODCALLTYPE *GetIcon)(
34574         IExplorerCommand* This,
34575         IShellItemArray *psiItemArray,
34576         LPWSTR *ppszIcon);
34577 
34578     HRESULT (STDMETHODCALLTYPE *GetToolTip)(
34579         IExplorerCommand* This,
34580         IShellItemArray *psiItemArray,
34581         LPWSTR *ppszInfotip);
34582 
34583     HRESULT (STDMETHODCALLTYPE *GetCanonicalName)(
34584         IExplorerCommand* This,
34585         GUID *pguidCommandName);
34586 
34587     HRESULT (STDMETHODCALLTYPE *GetState)(
34588         IExplorerCommand* This,
34589         IShellItemArray *psiItemArray,
34590         WINBOOL fOkToBeSlow,
34591         EXPCMDSTATE *pCmdState);
34592 
34593     HRESULT (STDMETHODCALLTYPE *Invoke)(
34594         IExplorerCommand* This,
34595         IShellItemArray *psiItemArray,
34596         IBindCtx *pbc);
34597 
34598     HRESULT (STDMETHODCALLTYPE *GetFlags)(
34599         IExplorerCommand* This,
34600         EXPCMDFLAGS *pFlags);
34601 
34602     HRESULT (STDMETHODCALLTYPE *EnumSubCommands)(
34603         IExplorerCommand* This,
34604         IEnumExplorerCommand **ppEnum);
34605 
34606     END_INTERFACE
34607 } IExplorerCommandVtbl;
34608 interface IExplorerCommand {
34609     CONST_VTBL IExplorerCommandVtbl* lpVtbl;
34610 };
34611 
34612 #ifdef COBJMACROS
34613 #ifndef WIDL_C_INLINE_WRAPPERS
34614 /*** IUnknown methods ***/
34615 #define IExplorerCommand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
34616 #define IExplorerCommand_AddRef(This) (This)->lpVtbl->AddRef(This)
34617 #define IExplorerCommand_Release(This) (This)->lpVtbl->Release(This)
34618 /*** IExplorerCommand methods ***/
34619 #define IExplorerCommand_GetTitle(This,psiItemArray,ppszName) (This)->lpVtbl->GetTitle(This,psiItemArray,ppszName)
34620 #define IExplorerCommand_GetIcon(This,psiItemArray,ppszIcon) (This)->lpVtbl->GetIcon(This,psiItemArray,ppszIcon)
34621 #define IExplorerCommand_GetToolTip(This,psiItemArray,ppszInfotip) (This)->lpVtbl->GetToolTip(This,psiItemArray,ppszInfotip)
34622 #define IExplorerCommand_GetCanonicalName(This,pguidCommandName) (This)->lpVtbl->GetCanonicalName(This,pguidCommandName)
34623 #define IExplorerCommand_GetState(This,psiItemArray,fOkToBeSlow,pCmdState) (This)->lpVtbl->GetState(This,psiItemArray,fOkToBeSlow,pCmdState)
34624 #define IExplorerCommand_Invoke(This,psiItemArray,pbc) (This)->lpVtbl->Invoke(This,psiItemArray,pbc)
34625 #define IExplorerCommand_GetFlags(This,pFlags) (This)->lpVtbl->GetFlags(This,pFlags)
34626 #define IExplorerCommand_EnumSubCommands(This,ppEnum) (This)->lpVtbl->EnumSubCommands(This,ppEnum)
34627 #else
34628 /*** IUnknown methods ***/
34629 static FORCEINLINE HRESULT IExplorerCommand_QueryInterface(IExplorerCommand* This,REFIID riid,void **ppvObject) {
34630     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
34631 }
34632 static FORCEINLINE ULONG IExplorerCommand_AddRef(IExplorerCommand* This) {
34633     return This->lpVtbl->AddRef(This);
34634 }
34635 static FORCEINLINE ULONG IExplorerCommand_Release(IExplorerCommand* This) {
34636     return This->lpVtbl->Release(This);
34637 }
34638 /*** IExplorerCommand methods ***/
34639 static FORCEINLINE HRESULT IExplorerCommand_GetTitle(IExplorerCommand* This,IShellItemArray *psiItemArray,LPWSTR *ppszName) {
34640     return This->lpVtbl->GetTitle(This,psiItemArray,ppszName);
34641 }
34642 static FORCEINLINE HRESULT IExplorerCommand_GetIcon(IExplorerCommand* This,IShellItemArray *psiItemArray,LPWSTR *ppszIcon) {
34643     return This->lpVtbl->GetIcon(This,psiItemArray,ppszIcon);
34644 }
34645 static FORCEINLINE HRESULT IExplorerCommand_GetToolTip(IExplorerCommand* This,IShellItemArray *psiItemArray,LPWSTR *ppszInfotip) {
34646     return This->lpVtbl->GetToolTip(This,psiItemArray,ppszInfotip);
34647 }
34648 static FORCEINLINE HRESULT IExplorerCommand_GetCanonicalName(IExplorerCommand* This,GUID *pguidCommandName) {
34649     return This->lpVtbl->GetCanonicalName(This,pguidCommandName);
34650 }
34651 static FORCEINLINE HRESULT IExplorerCommand_GetState(IExplorerCommand* This,IShellItemArray *psiItemArray,WINBOOL fOkToBeSlow,EXPCMDSTATE *pCmdState) {
34652     return This->lpVtbl->GetState(This,psiItemArray,fOkToBeSlow,pCmdState);
34653 }
34654 static FORCEINLINE HRESULT IExplorerCommand_Invoke(IExplorerCommand* This,IShellItemArray *psiItemArray,IBindCtx *pbc) {
34655     return This->lpVtbl->Invoke(This,psiItemArray,pbc);
34656 }
34657 static FORCEINLINE HRESULT IExplorerCommand_GetFlags(IExplorerCommand* This,EXPCMDFLAGS *pFlags) {
34658     return This->lpVtbl->GetFlags(This,pFlags);
34659 }
34660 static FORCEINLINE HRESULT IExplorerCommand_EnumSubCommands(IExplorerCommand* This,IEnumExplorerCommand **ppEnum) {
34661     return This->lpVtbl->EnumSubCommands(This,ppEnum);
34662 }
34663 #endif
34664 #endif
34665 
34666 #endif
34667 
34668 HRESULT STDMETHODCALLTYPE IExplorerCommand_GetTitle_Proxy(
34669     IExplorerCommand* This,
34670     IShellItemArray *psiItemArray,
34671     LPWSTR *ppszName);
34672 void __RPC_STUB IExplorerCommand_GetTitle_Stub(
34673     IRpcStubBuffer* This,
34674     IRpcChannelBuffer* pRpcChannelBuffer,
34675     PRPC_MESSAGE pRpcMessage,
34676     DWORD* pdwStubPhase);
34677 HRESULT STDMETHODCALLTYPE IExplorerCommand_GetIcon_Proxy(
34678     IExplorerCommand* This,
34679     IShellItemArray *psiItemArray,
34680     LPWSTR *ppszIcon);
34681 void __RPC_STUB IExplorerCommand_GetIcon_Stub(
34682     IRpcStubBuffer* This,
34683     IRpcChannelBuffer* pRpcChannelBuffer,
34684     PRPC_MESSAGE pRpcMessage,
34685     DWORD* pdwStubPhase);
34686 HRESULT STDMETHODCALLTYPE IExplorerCommand_GetToolTip_Proxy(
34687     IExplorerCommand* This,
34688     IShellItemArray *psiItemArray,
34689     LPWSTR *ppszInfotip);
34690 void __RPC_STUB IExplorerCommand_GetToolTip_Stub(
34691     IRpcStubBuffer* This,
34692     IRpcChannelBuffer* pRpcChannelBuffer,
34693     PRPC_MESSAGE pRpcMessage,
34694     DWORD* pdwStubPhase);
34695 HRESULT STDMETHODCALLTYPE IExplorerCommand_GetCanonicalName_Proxy(
34696     IExplorerCommand* This,
34697     GUID *pguidCommandName);
34698 void __RPC_STUB IExplorerCommand_GetCanonicalName_Stub(
34699     IRpcStubBuffer* This,
34700     IRpcChannelBuffer* pRpcChannelBuffer,
34701     PRPC_MESSAGE pRpcMessage,
34702     DWORD* pdwStubPhase);
34703 HRESULT STDMETHODCALLTYPE IExplorerCommand_GetState_Proxy(
34704     IExplorerCommand* This,
34705     IShellItemArray *psiItemArray,
34706     WINBOOL fOkToBeSlow,
34707     EXPCMDSTATE *pCmdState);
34708 void __RPC_STUB IExplorerCommand_GetState_Stub(
34709     IRpcStubBuffer* This,
34710     IRpcChannelBuffer* pRpcChannelBuffer,
34711     PRPC_MESSAGE pRpcMessage,
34712     DWORD* pdwStubPhase);
34713 HRESULT STDMETHODCALLTYPE IExplorerCommand_Invoke_Proxy(
34714     IExplorerCommand* This,
34715     IShellItemArray *psiItemArray,
34716     IBindCtx *pbc);
34717 void __RPC_STUB IExplorerCommand_Invoke_Stub(
34718     IRpcStubBuffer* This,
34719     IRpcChannelBuffer* pRpcChannelBuffer,
34720     PRPC_MESSAGE pRpcMessage,
34721     DWORD* pdwStubPhase);
34722 HRESULT STDMETHODCALLTYPE IExplorerCommand_GetFlags_Proxy(
34723     IExplorerCommand* This,
34724     EXPCMDFLAGS *pFlags);
34725 void __RPC_STUB IExplorerCommand_GetFlags_Stub(
34726     IRpcStubBuffer* This,
34727     IRpcChannelBuffer* pRpcChannelBuffer,
34728     PRPC_MESSAGE pRpcMessage,
34729     DWORD* pdwStubPhase);
34730 HRESULT STDMETHODCALLTYPE IExplorerCommand_EnumSubCommands_Proxy(
34731     IExplorerCommand* This,
34732     IEnumExplorerCommand **ppEnum);
34733 void __RPC_STUB IExplorerCommand_EnumSubCommands_Stub(
34734     IRpcStubBuffer* This,
34735     IRpcChannelBuffer* pRpcChannelBuffer,
34736     PRPC_MESSAGE pRpcMessage,
34737     DWORD* pdwStubPhase);
34738 
34739 #endif  /* __IExplorerCommand_INTERFACE_DEFINED__ */
34740 
34741 
34742 /*****************************************************************************
34743  * IExplorerCommandState interface
34744  */
34745 #ifndef __IExplorerCommandState_INTERFACE_DEFINED__
34746 #define __IExplorerCommandState_INTERFACE_DEFINED__
34747 
34748 DEFINE_GUID(IID_IExplorerCommandState, 0xbddacb60, 0x7657, 0x47ae, 0x84,0x45, 0xd2,0x3e,0x1a,0xcf,0x82,0xae);
34749 #if defined(__cplusplus) && !defined(CINTERFACE)
34750 MIDL_INTERFACE("bddacb60-7657-47ae-8445-d23e1acf82ae")
34751 IExplorerCommandState : public IUnknown
34752 {
34753     virtual HRESULT STDMETHODCALLTYPE GetState(
34754         IShellItemArray *psiItemArray,
34755         WINBOOL fOkToBeSlow,
34756         EXPCMDSTATE *pCmdState) = 0;
34757 
34758 };
34759 #ifdef __CRT_UUID_DECL
34760 __CRT_UUID_DECL(IExplorerCommandState, 0xbddacb60, 0x7657, 0x47ae, 0x84,0x45, 0xd2,0x3e,0x1a,0xcf,0x82,0xae)
34761 #endif
34762 #else
34763 typedef struct IExplorerCommandStateVtbl {
34764     BEGIN_INTERFACE
34765 
34766     /*** IUnknown methods ***/
34767     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
34768         IExplorerCommandState* This,
34769         REFIID riid,
34770         void **ppvObject);
34771 
34772     ULONG (STDMETHODCALLTYPE *AddRef)(
34773         IExplorerCommandState* This);
34774 
34775     ULONG (STDMETHODCALLTYPE *Release)(
34776         IExplorerCommandState* This);
34777 
34778     /*** IExplorerCommandState methods ***/
34779     HRESULT (STDMETHODCALLTYPE *GetState)(
34780         IExplorerCommandState* This,
34781         IShellItemArray *psiItemArray,
34782         WINBOOL fOkToBeSlow,
34783         EXPCMDSTATE *pCmdState);
34784 
34785     END_INTERFACE
34786 } IExplorerCommandStateVtbl;
34787 interface IExplorerCommandState {
34788     CONST_VTBL IExplorerCommandStateVtbl* lpVtbl;
34789 };
34790 
34791 #ifdef COBJMACROS
34792 #ifndef WIDL_C_INLINE_WRAPPERS
34793 /*** IUnknown methods ***/
34794 #define IExplorerCommandState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
34795 #define IExplorerCommandState_AddRef(This) (This)->lpVtbl->AddRef(This)
34796 #define IExplorerCommandState_Release(This) (This)->lpVtbl->Release(This)
34797 /*** IExplorerCommandState methods ***/
34798 #define IExplorerCommandState_GetState(This,psiItemArray,fOkToBeSlow,pCmdState) (This)->lpVtbl->GetState(This,psiItemArray,fOkToBeSlow,pCmdState)
34799 #else
34800 /*** IUnknown methods ***/
34801 static FORCEINLINE HRESULT IExplorerCommandState_QueryInterface(IExplorerCommandState* This,REFIID riid,void **ppvObject) {
34802     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
34803 }
34804 static FORCEINLINE ULONG IExplorerCommandState_AddRef(IExplorerCommandState* This) {
34805     return This->lpVtbl->AddRef(This);
34806 }
34807 static FORCEINLINE ULONG IExplorerCommandState_Release(IExplorerCommandState* This) {
34808     return This->lpVtbl->Release(This);
34809 }
34810 /*** IExplorerCommandState methods ***/
34811 static FORCEINLINE HRESULT IExplorerCommandState_GetState(IExplorerCommandState* This,IShellItemArray *psiItemArray,WINBOOL fOkToBeSlow,EXPCMDSTATE *pCmdState) {
34812     return This->lpVtbl->GetState(This,psiItemArray,fOkToBeSlow,pCmdState);
34813 }
34814 #endif
34815 #endif
34816 
34817 #endif
34818 
34819 HRESULT STDMETHODCALLTYPE IExplorerCommandState_GetState_Proxy(
34820     IExplorerCommandState* This,
34821     IShellItemArray *psiItemArray,
34822     WINBOOL fOkToBeSlow,
34823     EXPCMDSTATE *pCmdState);
34824 void __RPC_STUB IExplorerCommandState_GetState_Stub(
34825     IRpcStubBuffer* This,
34826     IRpcChannelBuffer* pRpcChannelBuffer,
34827     PRPC_MESSAGE pRpcMessage,
34828     DWORD* pdwStubPhase);
34829 
34830 #endif  /* __IExplorerCommandState_INTERFACE_DEFINED__ */
34831 
34832 
34833 /*****************************************************************************
34834  * IInitializeCommand interface
34835  */
34836 #ifndef __IInitializeCommand_INTERFACE_DEFINED__
34837 #define __IInitializeCommand_INTERFACE_DEFINED__
34838 
34839 DEFINE_GUID(IID_IInitializeCommand, 0x85075acf, 0x231f, 0x40ea, 0x96,0x10, 0xd2,0x6b,0x7b,0x58,0xf6,0x38);
34840 #if defined(__cplusplus) && !defined(CINTERFACE)
34841 MIDL_INTERFACE("85075acf-231f-40ea-9610-d26b7b58f638")
34842 IInitializeCommand : public IUnknown
34843 {
34844     virtual HRESULT STDMETHODCALLTYPE Initialize(
34845         LPCWSTR pszCommandName,
34846         IPropertyBag *ppb) = 0;
34847 
34848 };
34849 #ifdef __CRT_UUID_DECL
34850 __CRT_UUID_DECL(IInitializeCommand, 0x85075acf, 0x231f, 0x40ea, 0x96,0x10, 0xd2,0x6b,0x7b,0x58,0xf6,0x38)
34851 #endif
34852 #else
34853 typedef struct IInitializeCommandVtbl {
34854     BEGIN_INTERFACE
34855 
34856     /*** IUnknown methods ***/
34857     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
34858         IInitializeCommand* This,
34859         REFIID riid,
34860         void **ppvObject);
34861 
34862     ULONG (STDMETHODCALLTYPE *AddRef)(
34863         IInitializeCommand* This);
34864 
34865     ULONG (STDMETHODCALLTYPE *Release)(
34866         IInitializeCommand* This);
34867 
34868     /*** IInitializeCommand methods ***/
34869     HRESULT (STDMETHODCALLTYPE *Initialize)(
34870         IInitializeCommand* This,
34871         LPCWSTR pszCommandName,
34872         IPropertyBag *ppb);
34873 
34874     END_INTERFACE
34875 } IInitializeCommandVtbl;
34876 interface IInitializeCommand {
34877     CONST_VTBL IInitializeCommandVtbl* lpVtbl;
34878 };
34879 
34880 #ifdef COBJMACROS
34881 #ifndef WIDL_C_INLINE_WRAPPERS
34882 /*** IUnknown methods ***/
34883 #define IInitializeCommand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
34884 #define IInitializeCommand_AddRef(This) (This)->lpVtbl->AddRef(This)
34885 #define IInitializeCommand_Release(This) (This)->lpVtbl->Release(This)
34886 /*** IInitializeCommand methods ***/
34887 #define IInitializeCommand_Initialize(This,pszCommandName,ppb) (This)->lpVtbl->Initialize(This,pszCommandName,ppb)
34888 #else
34889 /*** IUnknown methods ***/
34890 static FORCEINLINE HRESULT IInitializeCommand_QueryInterface(IInitializeCommand* This,REFIID riid,void **ppvObject) {
34891     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
34892 }
34893 static FORCEINLINE ULONG IInitializeCommand_AddRef(IInitializeCommand* This) {
34894     return This->lpVtbl->AddRef(This);
34895 }
34896 static FORCEINLINE ULONG IInitializeCommand_Release(IInitializeCommand* This) {
34897     return This->lpVtbl->Release(This);
34898 }
34899 /*** IInitializeCommand methods ***/
34900 static FORCEINLINE HRESULT IInitializeCommand_Initialize(IInitializeCommand* This,LPCWSTR pszCommandName,IPropertyBag *ppb) {
34901     return This->lpVtbl->Initialize(This,pszCommandName,ppb);
34902 }
34903 #endif
34904 #endif
34905 
34906 #endif
34907 
34908 HRESULT STDMETHODCALLTYPE IInitializeCommand_Initialize_Proxy(
34909     IInitializeCommand* This,
34910     LPCWSTR pszCommandName,
34911     IPropertyBag *ppb);
34912 void __RPC_STUB IInitializeCommand_Initialize_Stub(
34913     IRpcStubBuffer* This,
34914     IRpcChannelBuffer* pRpcChannelBuffer,
34915     PRPC_MESSAGE pRpcMessage,
34916     DWORD* pdwStubPhase);
34917 
34918 #endif  /* __IInitializeCommand_INTERFACE_DEFINED__ */
34919 
34920 
34921 /*****************************************************************************
34922  * IEnumExplorerCommand interface
34923  */
34924 #ifndef __IEnumExplorerCommand_INTERFACE_DEFINED__
34925 #define __IEnumExplorerCommand_INTERFACE_DEFINED__
34926 
34927 DEFINE_GUID(IID_IEnumExplorerCommand, 0xa88826f8, 0x186f, 0x4987, 0xaa,0xde, 0xea,0x0c,0xef,0x8f,0xbf,0xe8);
34928 #if defined(__cplusplus) && !defined(CINTERFACE)
34929 MIDL_INTERFACE("a88826f8-186f-4987-aade-ea0cef8fbfe8")
34930 IEnumExplorerCommand : public IUnknown
34931 {
34932     virtual HRESULT STDMETHODCALLTYPE Next(
34933         ULONG celt,
34934         IExplorerCommand **pUICommand,
34935         ULONG *pceltFetched) = 0;
34936 
34937     virtual HRESULT STDMETHODCALLTYPE Skip(
34938         ULONG celt) = 0;
34939 
34940     virtual HRESULT STDMETHODCALLTYPE Reset(
34941         ) = 0;
34942 
34943     virtual HRESULT STDMETHODCALLTYPE Clone(
34944         IEnumExplorerCommand **ppenum) = 0;
34945 
34946 };
34947 #ifdef __CRT_UUID_DECL
34948 __CRT_UUID_DECL(IEnumExplorerCommand, 0xa88826f8, 0x186f, 0x4987, 0xaa,0xde, 0xea,0x0c,0xef,0x8f,0xbf,0xe8)
34949 #endif
34950 #else
34951 typedef struct IEnumExplorerCommandVtbl {
34952     BEGIN_INTERFACE
34953 
34954     /*** IUnknown methods ***/
34955     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
34956         IEnumExplorerCommand* This,
34957         REFIID riid,
34958         void **ppvObject);
34959 
34960     ULONG (STDMETHODCALLTYPE *AddRef)(
34961         IEnumExplorerCommand* This);
34962 
34963     ULONG (STDMETHODCALLTYPE *Release)(
34964         IEnumExplorerCommand* This);
34965 
34966     /*** IEnumExplorerCommand methods ***/
34967     HRESULT (STDMETHODCALLTYPE *Next)(
34968         IEnumExplorerCommand* This,
34969         ULONG celt,
34970         IExplorerCommand **pUICommand,
34971         ULONG *pceltFetched);
34972 
34973     HRESULT (STDMETHODCALLTYPE *Skip)(
34974         IEnumExplorerCommand* This,
34975         ULONG celt);
34976 
34977     HRESULT (STDMETHODCALLTYPE *Reset)(
34978         IEnumExplorerCommand* This);
34979 
34980     HRESULT (STDMETHODCALLTYPE *Clone)(
34981         IEnumExplorerCommand* This,
34982         IEnumExplorerCommand **ppenum);
34983 
34984     END_INTERFACE
34985 } IEnumExplorerCommandVtbl;
34986 interface IEnumExplorerCommand {
34987     CONST_VTBL IEnumExplorerCommandVtbl* lpVtbl;
34988 };
34989 
34990 #ifdef COBJMACROS
34991 #ifndef WIDL_C_INLINE_WRAPPERS
34992 /*** IUnknown methods ***/
34993 #define IEnumExplorerCommand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
34994 #define IEnumExplorerCommand_AddRef(This) (This)->lpVtbl->AddRef(This)
34995 #define IEnumExplorerCommand_Release(This) (This)->lpVtbl->Release(This)
34996 /*** IEnumExplorerCommand methods ***/
34997 #define IEnumExplorerCommand_Next(This,celt,pUICommand,pceltFetched) (This)->lpVtbl->Next(This,celt,pUICommand,pceltFetched)
34998 #define IEnumExplorerCommand_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
34999 #define IEnumExplorerCommand_Reset(This) (This)->lpVtbl->Reset(This)
35000 #define IEnumExplorerCommand_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
35001 #else
35002 /*** IUnknown methods ***/
35003 static FORCEINLINE HRESULT IEnumExplorerCommand_QueryInterface(IEnumExplorerCommand* This,REFIID riid,void **ppvObject) {
35004     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
35005 }
35006 static FORCEINLINE ULONG IEnumExplorerCommand_AddRef(IEnumExplorerCommand* This) {
35007     return This->lpVtbl->AddRef(This);
35008 }
35009 static FORCEINLINE ULONG IEnumExplorerCommand_Release(IEnumExplorerCommand* This) {
35010     return This->lpVtbl->Release(This);
35011 }
35012 /*** IEnumExplorerCommand methods ***/
35013 static FORCEINLINE HRESULT IEnumExplorerCommand_Next(IEnumExplorerCommand* This,ULONG celt,IExplorerCommand **pUICommand,ULONG *pceltFetched) {
35014     return This->lpVtbl->Next(This,celt,pUICommand,pceltFetched);
35015 }
35016 static FORCEINLINE HRESULT IEnumExplorerCommand_Skip(IEnumExplorerCommand* This,ULONG celt) {
35017     return This->lpVtbl->Skip(This,celt);
35018 }
35019 static FORCEINLINE HRESULT IEnumExplorerCommand_Reset(IEnumExplorerCommand* This) {
35020     return This->lpVtbl->Reset(This);
35021 }
35022 static FORCEINLINE HRESULT IEnumExplorerCommand_Clone(IEnumExplorerCommand* This,IEnumExplorerCommand **ppenum) {
35023     return This->lpVtbl->Clone(This,ppenum);
35024 }
35025 #endif
35026 #endif
35027 
35028 #endif
35029 
35030 HRESULT STDMETHODCALLTYPE IEnumExplorerCommand_RemoteNext_Proxy(
35031     IEnumExplorerCommand* This,
35032     ULONG celt,
35033     IExplorerCommand **pUICommand,
35034     ULONG *pceltFetched);
35035 void __RPC_STUB IEnumExplorerCommand_RemoteNext_Stub(
35036     IRpcStubBuffer* This,
35037     IRpcChannelBuffer* pRpcChannelBuffer,
35038     PRPC_MESSAGE pRpcMessage,
35039     DWORD* pdwStubPhase);
35040 HRESULT STDMETHODCALLTYPE IEnumExplorerCommand_Skip_Proxy(
35041     IEnumExplorerCommand* This,
35042     ULONG celt);
35043 void __RPC_STUB IEnumExplorerCommand_Skip_Stub(
35044     IRpcStubBuffer* This,
35045     IRpcChannelBuffer* pRpcChannelBuffer,
35046     PRPC_MESSAGE pRpcMessage,
35047     DWORD* pdwStubPhase);
35048 HRESULT STDMETHODCALLTYPE IEnumExplorerCommand_Reset_Proxy(
35049     IEnumExplorerCommand* This);
35050 void __RPC_STUB IEnumExplorerCommand_Reset_Stub(
35051     IRpcStubBuffer* This,
35052     IRpcChannelBuffer* pRpcChannelBuffer,
35053     PRPC_MESSAGE pRpcMessage,
35054     DWORD* pdwStubPhase);
35055 HRESULT STDMETHODCALLTYPE IEnumExplorerCommand_Clone_Proxy(
35056     IEnumExplorerCommand* This,
35057     IEnumExplorerCommand **ppenum);
35058 void __RPC_STUB IEnumExplorerCommand_Clone_Stub(
35059     IRpcStubBuffer* This,
35060     IRpcChannelBuffer* pRpcChannelBuffer,
35061     PRPC_MESSAGE pRpcMessage,
35062     DWORD* pdwStubPhase);
35063 HRESULT CALLBACK IEnumExplorerCommand_Next_Proxy(
35064     IEnumExplorerCommand* This,
35065     ULONG celt,
35066     IExplorerCommand **pUICommand,
35067     ULONG *pceltFetched);
35068 HRESULT __RPC_STUB IEnumExplorerCommand_Next_Stub(
35069     IEnumExplorerCommand* This,
35070     ULONG celt,
35071     IExplorerCommand **pUICommand,
35072     ULONG *pceltFetched);
35073 
35074 #endif  /* __IEnumExplorerCommand_INTERFACE_DEFINED__ */
35075 
35076 
35077 /*****************************************************************************
35078  * IExplorerCommandProvider interface
35079  */
35080 #ifndef __IExplorerCommandProvider_INTERFACE_DEFINED__
35081 #define __IExplorerCommandProvider_INTERFACE_DEFINED__
35082 
35083 DEFINE_GUID(IID_IExplorerCommandProvider, 0x64961751, 0x0835, 0x43c0, 0x8f,0xfe, 0xd5,0x76,0x86,0x53,0x0e,0x64);
35084 #if defined(__cplusplus) && !defined(CINTERFACE)
35085 MIDL_INTERFACE("64961751-0835-43c0-8ffe-d57686530e64")
35086 IExplorerCommandProvider : public IUnknown
35087 {
35088     virtual HRESULT STDMETHODCALLTYPE GetCommands(
35089         IUnknown *punkSite,
35090         REFIID riid,
35091         void **ppv) = 0;
35092 
35093     virtual HRESULT STDMETHODCALLTYPE GetCommand(
35094         REFGUID rguidCommandId,
35095         REFIID riid,
35096         void **ppv) = 0;
35097 
35098 };
35099 #ifdef __CRT_UUID_DECL
35100 __CRT_UUID_DECL(IExplorerCommandProvider, 0x64961751, 0x0835, 0x43c0, 0x8f,0xfe, 0xd5,0x76,0x86,0x53,0x0e,0x64)
35101 #endif
35102 #else
35103 typedef struct IExplorerCommandProviderVtbl {
35104     BEGIN_INTERFACE
35105 
35106     /*** IUnknown methods ***/
35107     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
35108         IExplorerCommandProvider* This,
35109         REFIID riid,
35110         void **ppvObject);
35111 
35112     ULONG (STDMETHODCALLTYPE *AddRef)(
35113         IExplorerCommandProvider* This);
35114 
35115     ULONG (STDMETHODCALLTYPE *Release)(
35116         IExplorerCommandProvider* This);
35117 
35118     /*** IExplorerCommandProvider methods ***/
35119     HRESULT (STDMETHODCALLTYPE *GetCommands)(
35120         IExplorerCommandProvider* This,
35121         IUnknown *punkSite,
35122         REFIID riid,
35123         void **ppv);
35124 
35125     HRESULT (STDMETHODCALLTYPE *GetCommand)(
35126         IExplorerCommandProvider* This,
35127         REFGUID rguidCommandId,
35128         REFIID riid,
35129         void **ppv);
35130 
35131     END_INTERFACE
35132 } IExplorerCommandProviderVtbl;
35133 interface IExplorerCommandProvider {
35134     CONST_VTBL IExplorerCommandProviderVtbl* lpVtbl;
35135 };
35136 
35137 #ifdef COBJMACROS
35138 #ifndef WIDL_C_INLINE_WRAPPERS
35139 /*** IUnknown methods ***/
35140 #define IExplorerCommandProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
35141 #define IExplorerCommandProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
35142 #define IExplorerCommandProvider_Release(This) (This)->lpVtbl->Release(This)
35143 /*** IExplorerCommandProvider methods ***/
35144 #define IExplorerCommandProvider_GetCommands(This,punkSite,riid,ppv) (This)->lpVtbl->GetCommands(This,punkSite,riid,ppv)
35145 #define IExplorerCommandProvider_GetCommand(This,rguidCommandId,riid,ppv) (This)->lpVtbl->GetCommand(This,rguidCommandId,riid,ppv)
35146 #else
35147 /*** IUnknown methods ***/
35148 static FORCEINLINE HRESULT IExplorerCommandProvider_QueryInterface(IExplorerCommandProvider* This,REFIID riid,void **ppvObject) {
35149     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
35150 }
35151 static FORCEINLINE ULONG IExplorerCommandProvider_AddRef(IExplorerCommandProvider* This) {
35152     return This->lpVtbl->AddRef(This);
35153 }
35154 static FORCEINLINE ULONG IExplorerCommandProvider_Release(IExplorerCommandProvider* This) {
35155     return This->lpVtbl->Release(This);
35156 }
35157 /*** IExplorerCommandProvider methods ***/
35158 static FORCEINLINE HRESULT IExplorerCommandProvider_GetCommands(IExplorerCommandProvider* This,IUnknown *punkSite,REFIID riid,void **ppv) {
35159     return This->lpVtbl->GetCommands(This,punkSite,riid,ppv);
35160 }
35161 static FORCEINLINE HRESULT IExplorerCommandProvider_GetCommand(IExplorerCommandProvider* This,REFGUID rguidCommandId,REFIID riid,void **ppv) {
35162     return This->lpVtbl->GetCommand(This,rguidCommandId,riid,ppv);
35163 }
35164 #endif
35165 #endif
35166 
35167 #endif
35168 
35169 HRESULT STDMETHODCALLTYPE IExplorerCommandProvider_GetCommands_Proxy(
35170     IExplorerCommandProvider* This,
35171     IUnknown *punkSite,
35172     REFIID riid,
35173     void **ppv);
35174 void __RPC_STUB IExplorerCommandProvider_GetCommands_Stub(
35175     IRpcStubBuffer* This,
35176     IRpcChannelBuffer* pRpcChannelBuffer,
35177     PRPC_MESSAGE pRpcMessage,
35178     DWORD* pdwStubPhase);
35179 HRESULT STDMETHODCALLTYPE IExplorerCommandProvider_GetCommand_Proxy(
35180     IExplorerCommandProvider* This,
35181     REFGUID rguidCommandId,
35182     REFIID riid,
35183     void **ppv);
35184 void __RPC_STUB IExplorerCommandProvider_GetCommand_Stub(
35185     IRpcStubBuffer* This,
35186     IRpcChannelBuffer* pRpcChannelBuffer,
35187     PRPC_MESSAGE pRpcMessage,
35188     DWORD* pdwStubPhase);
35189 
35190 #endif  /* __IExplorerCommandProvider_INTERFACE_DEFINED__ */
35191 
35192 
35193 typedef HANDLE HTHEME;
35194 
35195 /*****************************************************************************
35196  * IInitializeNetworkFolder interface
35197  */
35198 #ifndef __IInitializeNetworkFolder_INTERFACE_DEFINED__
35199 #define __IInitializeNetworkFolder_INTERFACE_DEFINED__
35200 
35201 DEFINE_GUID(IID_IInitializeNetworkFolder, 0x6e0f9881, 0x42a8, 0x4f2a, 0x97,0xf8, 0x8a,0xf4,0xe0,0x26,0xd9,0x2d);
35202 #if defined(__cplusplus) && !defined(CINTERFACE)
35203 MIDL_INTERFACE("6e0f9881-42a8-4f2a-97f8-8af4e026d92d")
35204 IInitializeNetworkFolder : public IUnknown
35205 {
35206     virtual HRESULT STDMETHODCALLTYPE Initialize(
35207         PCIDLIST_ABSOLUTE pidl,
35208         PCIDLIST_ABSOLUTE pidlTarget,
35209         UINT uDisplayType,
35210         LPCWSTR pszResName,
35211         LPCWSTR pszProvider) = 0;
35212 
35213 };
35214 #ifdef __CRT_UUID_DECL
35215 __CRT_UUID_DECL(IInitializeNetworkFolder, 0x6e0f9881, 0x42a8, 0x4f2a, 0x97,0xf8, 0x8a,0xf4,0xe0,0x26,0xd9,0x2d)
35216 #endif
35217 #else
35218 typedef struct IInitializeNetworkFolderVtbl {
35219     BEGIN_INTERFACE
35220 
35221     /*** IUnknown methods ***/
35222     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
35223         IInitializeNetworkFolder* This,
35224         REFIID riid,
35225         void **ppvObject);
35226 
35227     ULONG (STDMETHODCALLTYPE *AddRef)(
35228         IInitializeNetworkFolder* This);
35229 
35230     ULONG (STDMETHODCALLTYPE *Release)(
35231         IInitializeNetworkFolder* This);
35232 
35233     /*** IInitializeNetworkFolder methods ***/
35234     HRESULT (STDMETHODCALLTYPE *Initialize)(
35235         IInitializeNetworkFolder* This,
35236         PCIDLIST_ABSOLUTE pidl,
35237         PCIDLIST_ABSOLUTE pidlTarget,
35238         UINT uDisplayType,
35239         LPCWSTR pszResName,
35240         LPCWSTR pszProvider);
35241 
35242     END_INTERFACE
35243 } IInitializeNetworkFolderVtbl;
35244 interface IInitializeNetworkFolder {
35245     CONST_VTBL IInitializeNetworkFolderVtbl* lpVtbl;
35246 };
35247 
35248 #ifdef COBJMACROS
35249 #ifndef WIDL_C_INLINE_WRAPPERS
35250 /*** IUnknown methods ***/
35251 #define IInitializeNetworkFolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
35252 #define IInitializeNetworkFolder_AddRef(This) (This)->lpVtbl->AddRef(This)
35253 #define IInitializeNetworkFolder_Release(This) (This)->lpVtbl->Release(This)
35254 /*** IInitializeNetworkFolder methods ***/
35255 #define IInitializeNetworkFolder_Initialize(This,pidl,pidlTarget,uDisplayType,pszResName,pszProvider) (This)->lpVtbl->Initialize(This,pidl,pidlTarget,uDisplayType,pszResName,pszProvider)
35256 #else
35257 /*** IUnknown methods ***/
35258 static FORCEINLINE HRESULT IInitializeNetworkFolder_QueryInterface(IInitializeNetworkFolder* This,REFIID riid,void **ppvObject) {
35259     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
35260 }
35261 static FORCEINLINE ULONG IInitializeNetworkFolder_AddRef(IInitializeNetworkFolder* This) {
35262     return This->lpVtbl->AddRef(This);
35263 }
35264 static FORCEINLINE ULONG IInitializeNetworkFolder_Release(IInitializeNetworkFolder* This) {
35265     return This->lpVtbl->Release(This);
35266 }
35267 /*** IInitializeNetworkFolder methods ***/
35268 static FORCEINLINE HRESULT IInitializeNetworkFolder_Initialize(IInitializeNetworkFolder* This,PCIDLIST_ABSOLUTE pidl,PCIDLIST_ABSOLUTE pidlTarget,UINT uDisplayType,LPCWSTR pszResName,LPCWSTR pszProvider) {
35269     return This->lpVtbl->Initialize(This,pidl,pidlTarget,uDisplayType,pszResName,pszProvider);
35270 }
35271 #endif
35272 #endif
35273 
35274 #endif
35275 
35276 HRESULT STDMETHODCALLTYPE IInitializeNetworkFolder_Initialize_Proxy(
35277     IInitializeNetworkFolder* This,
35278     PCIDLIST_ABSOLUTE pidl,
35279     PCIDLIST_ABSOLUTE pidlTarget,
35280     UINT uDisplayType,
35281     LPCWSTR pszResName,
35282     LPCWSTR pszProvider);
35283 void __RPC_STUB IInitializeNetworkFolder_Initialize_Stub(
35284     IRpcStubBuffer* This,
35285     IRpcChannelBuffer* pRpcChannelBuffer,
35286     PRPC_MESSAGE pRpcMessage,
35287     DWORD* pdwStubPhase);
35288 
35289 #endif  /* __IInitializeNetworkFolder_INTERFACE_DEFINED__ */
35290 
35291 
35292 typedef enum CPVIEW {
35293     CPVIEW_CLASSIC = 0,
35294     CPVIEW_ALLITEMS = CPVIEW_CLASSIC,
35295     CPVIEW_CATEGORY = 1,
35296     CPVIEW_HOME = CPVIEW_CATEGORY
35297 } CPVIEW;
35298 
35299 /*****************************************************************************
35300  * IOpenControlPanel interface
35301  */
35302 #ifndef __IOpenControlPanel_INTERFACE_DEFINED__
35303 #define __IOpenControlPanel_INTERFACE_DEFINED__
35304 
35305 DEFINE_GUID(IID_IOpenControlPanel, 0xd11ad862, 0x66de, 0x4df4, 0xbf,0x6c, 0x1f,0x56,0x21,0x99,0x6a,0xf1);
35306 #if defined(__cplusplus) && !defined(CINTERFACE)
35307 MIDL_INTERFACE("d11ad862-66de-4df4-bf6c-1f5621996af1")
35308 IOpenControlPanel : public IUnknown
35309 {
35310     virtual HRESULT STDMETHODCALLTYPE Open(
35311         LPCWSTR pszName,
35312         LPCWSTR pszPage,
35313         IUnknown *punkSite) = 0;
35314 
35315     virtual HRESULT STDMETHODCALLTYPE GetPath(
35316         LPCWSTR pszName,
35317         LPWSTR pszPath,
35318         UINT cchPath) = 0;
35319 
35320     virtual HRESULT STDMETHODCALLTYPE GetCurrentView(
35321         CPVIEW *pView) = 0;
35322 
35323 };
35324 #ifdef __CRT_UUID_DECL
35325 __CRT_UUID_DECL(IOpenControlPanel, 0xd11ad862, 0x66de, 0x4df4, 0xbf,0x6c, 0x1f,0x56,0x21,0x99,0x6a,0xf1)
35326 #endif
35327 #else
35328 typedef struct IOpenControlPanelVtbl {
35329     BEGIN_INTERFACE
35330 
35331     /*** IUnknown methods ***/
35332     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
35333         IOpenControlPanel* This,
35334         REFIID riid,
35335         void **ppvObject);
35336 
35337     ULONG (STDMETHODCALLTYPE *AddRef)(
35338         IOpenControlPanel* This);
35339 
35340     ULONG (STDMETHODCALLTYPE *Release)(
35341         IOpenControlPanel* This);
35342 
35343     /*** IOpenControlPanel methods ***/
35344     HRESULT (STDMETHODCALLTYPE *Open)(
35345         IOpenControlPanel* This,
35346         LPCWSTR pszName,
35347         LPCWSTR pszPage,
35348         IUnknown *punkSite);
35349 
35350     HRESULT (STDMETHODCALLTYPE *GetPath)(
35351         IOpenControlPanel* This,
35352         LPCWSTR pszName,
35353         LPWSTR pszPath,
35354         UINT cchPath);
35355 
35356     HRESULT (STDMETHODCALLTYPE *GetCurrentView)(
35357         IOpenControlPanel* This,
35358         CPVIEW *pView);
35359 
35360     END_INTERFACE
35361 } IOpenControlPanelVtbl;
35362 interface IOpenControlPanel {
35363     CONST_VTBL IOpenControlPanelVtbl* lpVtbl;
35364 };
35365 
35366 #ifdef COBJMACROS
35367 #ifndef WIDL_C_INLINE_WRAPPERS
35368 /*** IUnknown methods ***/
35369 #define IOpenControlPanel_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
35370 #define IOpenControlPanel_AddRef(This) (This)->lpVtbl->AddRef(This)
35371 #define IOpenControlPanel_Release(This) (This)->lpVtbl->Release(This)
35372 /*** IOpenControlPanel methods ***/
35373 #define IOpenControlPanel_Open(This,pszName,pszPage,punkSite) (This)->lpVtbl->Open(This,pszName,pszPage,punkSite)
35374 #define IOpenControlPanel_GetPath(This,pszName,pszPath,cchPath) (This)->lpVtbl->GetPath(This,pszName,pszPath,cchPath)
35375 #define IOpenControlPanel_GetCurrentView(This,pView) (This)->lpVtbl->GetCurrentView(This,pView)
35376 #else
35377 /*** IUnknown methods ***/
35378 static FORCEINLINE HRESULT IOpenControlPanel_QueryInterface(IOpenControlPanel* This,REFIID riid,void **ppvObject) {
35379     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
35380 }
35381 static FORCEINLINE ULONG IOpenControlPanel_AddRef(IOpenControlPanel* This) {
35382     return This->lpVtbl->AddRef(This);
35383 }
35384 static FORCEINLINE ULONG IOpenControlPanel_Release(IOpenControlPanel* This) {
35385     return This->lpVtbl->Release(This);
35386 }
35387 /*** IOpenControlPanel methods ***/
35388 static FORCEINLINE HRESULT IOpenControlPanel_Open(IOpenControlPanel* This,LPCWSTR pszName,LPCWSTR pszPage,IUnknown *punkSite) {
35389     return This->lpVtbl->Open(This,pszName,pszPage,punkSite);
35390 }
35391 static FORCEINLINE HRESULT IOpenControlPanel_GetPath(IOpenControlPanel* This,LPCWSTR pszName,LPWSTR pszPath,UINT cchPath) {
35392     return This->lpVtbl->GetPath(This,pszName,pszPath,cchPath);
35393 }
35394 static FORCEINLINE HRESULT IOpenControlPanel_GetCurrentView(IOpenControlPanel* This,CPVIEW *pView) {
35395     return This->lpVtbl->GetCurrentView(This,pView);
35396 }
35397 #endif
35398 #endif
35399 
35400 #endif
35401 
35402 HRESULT STDMETHODCALLTYPE IOpenControlPanel_Open_Proxy(
35403     IOpenControlPanel* This,
35404     LPCWSTR pszName,
35405     LPCWSTR pszPage,
35406     IUnknown *punkSite);
35407 void __RPC_STUB IOpenControlPanel_Open_Stub(
35408     IRpcStubBuffer* This,
35409     IRpcChannelBuffer* pRpcChannelBuffer,
35410     PRPC_MESSAGE pRpcMessage,
35411     DWORD* pdwStubPhase);
35412 HRESULT STDMETHODCALLTYPE IOpenControlPanel_GetPath_Proxy(
35413     IOpenControlPanel* This,
35414     LPCWSTR pszName,
35415     LPWSTR pszPath,
35416     UINT cchPath);
35417 void __RPC_STUB IOpenControlPanel_GetPath_Stub(
35418     IRpcStubBuffer* This,
35419     IRpcChannelBuffer* pRpcChannelBuffer,
35420     PRPC_MESSAGE pRpcMessage,
35421     DWORD* pdwStubPhase);
35422 HRESULT STDMETHODCALLTYPE IOpenControlPanel_GetCurrentView_Proxy(
35423     IOpenControlPanel* This,
35424     CPVIEW *pView);
35425 void __RPC_STUB IOpenControlPanel_GetCurrentView_Stub(
35426     IRpcStubBuffer* This,
35427     IRpcChannelBuffer* pRpcChannelBuffer,
35428     PRPC_MESSAGE pRpcMessage,
35429     DWORD* pdwStubPhase);
35430 
35431 #endif  /* __IOpenControlPanel_INTERFACE_DEFINED__ */
35432 
35433 
35434 /*****************************************************************************
35435  * IComputerInfoChangeNotify interface
35436  */
35437 #ifndef __IComputerInfoChangeNotify_INTERFACE_DEFINED__
35438 #define __IComputerInfoChangeNotify_INTERFACE_DEFINED__
35439 
35440 DEFINE_GUID(IID_IComputerInfoChangeNotify, 0x0df60d92, 0x6818, 0x46d6, 0xb3,0x58, 0xd6,0x61,0x70,0xdd,0xe4,0x66);
35441 #if defined(__cplusplus) && !defined(CINTERFACE)
35442 MIDL_INTERFACE("0df60d92-6818-46d6-b358-d66170dde466")
35443 IComputerInfoChangeNotify : public IUnknown
35444 {
35445     virtual HRESULT STDMETHODCALLTYPE ComputerInfoChanged(
35446         ) = 0;
35447 
35448 };
35449 #ifdef __CRT_UUID_DECL
35450 __CRT_UUID_DECL(IComputerInfoChangeNotify, 0x0df60d92, 0x6818, 0x46d6, 0xb3,0x58, 0xd6,0x61,0x70,0xdd,0xe4,0x66)
35451 #endif
35452 #else
35453 typedef struct IComputerInfoChangeNotifyVtbl {
35454     BEGIN_INTERFACE
35455 
35456     /*** IUnknown methods ***/
35457     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
35458         IComputerInfoChangeNotify* This,
35459         REFIID riid,
35460         void **ppvObject);
35461 
35462     ULONG (STDMETHODCALLTYPE *AddRef)(
35463         IComputerInfoChangeNotify* This);
35464 
35465     ULONG (STDMETHODCALLTYPE *Release)(
35466         IComputerInfoChangeNotify* This);
35467 
35468     /*** IComputerInfoChangeNotify methods ***/
35469     HRESULT (STDMETHODCALLTYPE *ComputerInfoChanged)(
35470         IComputerInfoChangeNotify* This);
35471 
35472     END_INTERFACE
35473 } IComputerInfoChangeNotifyVtbl;
35474 interface IComputerInfoChangeNotify {
35475     CONST_VTBL IComputerInfoChangeNotifyVtbl* lpVtbl;
35476 };
35477 
35478 #ifdef COBJMACROS
35479 #ifndef WIDL_C_INLINE_WRAPPERS
35480 /*** IUnknown methods ***/
35481 #define IComputerInfoChangeNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
35482 #define IComputerInfoChangeNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
35483 #define IComputerInfoChangeNotify_Release(This) (This)->lpVtbl->Release(This)
35484 /*** IComputerInfoChangeNotify methods ***/
35485 #define IComputerInfoChangeNotify_ComputerInfoChanged(This) (This)->lpVtbl->ComputerInfoChanged(This)
35486 #else
35487 /*** IUnknown methods ***/
35488 static FORCEINLINE HRESULT IComputerInfoChangeNotify_QueryInterface(IComputerInfoChangeNotify* This,REFIID riid,void **ppvObject) {
35489     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
35490 }
35491 static FORCEINLINE ULONG IComputerInfoChangeNotify_AddRef(IComputerInfoChangeNotify* This) {
35492     return This->lpVtbl->AddRef(This);
35493 }
35494 static FORCEINLINE ULONG IComputerInfoChangeNotify_Release(IComputerInfoChangeNotify* This) {
35495     return This->lpVtbl->Release(This);
35496 }
35497 /*** IComputerInfoChangeNotify methods ***/
35498 static FORCEINLINE HRESULT IComputerInfoChangeNotify_ComputerInfoChanged(IComputerInfoChangeNotify* This) {
35499     return This->lpVtbl->ComputerInfoChanged(This);
35500 }
35501 #endif
35502 #endif
35503 
35504 #endif
35505 
35506 HRESULT STDMETHODCALLTYPE IComputerInfoChangeNotify_ComputerInfoChanged_Proxy(
35507     IComputerInfoChangeNotify* This);
35508 void __RPC_STUB IComputerInfoChangeNotify_ComputerInfoChanged_Stub(
35509     IRpcStubBuffer* This,
35510     IRpcChannelBuffer* pRpcChannelBuffer,
35511     PRPC_MESSAGE pRpcMessage,
35512     DWORD* pdwStubPhase);
35513 
35514 #endif  /* __IComputerInfoChangeNotify_INTERFACE_DEFINED__ */
35515 
35516 
35517 #define STR_FILE_SYS_BIND_DATA L"File System Bind Data"
35518 
35519 /*****************************************************************************
35520  * IFileSystemBindData interface
35521  */
35522 #ifndef __IFileSystemBindData_INTERFACE_DEFINED__
35523 #define __IFileSystemBindData_INTERFACE_DEFINED__
35524 
35525 DEFINE_GUID(IID_IFileSystemBindData, 0x01e18d10, 0x4d8b, 0x11d2, 0x85,0x5d, 0x00,0x60,0x08,0x05,0x93,0x67);
35526 #if defined(__cplusplus) && !defined(CINTERFACE)
35527 MIDL_INTERFACE("01e18d10-4d8b-11d2-855d-006008059367")
35528 IFileSystemBindData : public IUnknown
35529 {
35530     virtual HRESULT STDMETHODCALLTYPE SetFindData(
35531         const WIN32_FIND_DATAW *pfd) = 0;
35532 
35533     virtual HRESULT STDMETHODCALLTYPE GetFindData(
35534         WIN32_FIND_DATAW *pfd) = 0;
35535 
35536 };
35537 #ifdef __CRT_UUID_DECL
35538 __CRT_UUID_DECL(IFileSystemBindData, 0x01e18d10, 0x4d8b, 0x11d2, 0x85,0x5d, 0x00,0x60,0x08,0x05,0x93,0x67)
35539 #endif
35540 #else
35541 typedef struct IFileSystemBindDataVtbl {
35542     BEGIN_INTERFACE
35543 
35544     /*** IUnknown methods ***/
35545     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
35546         IFileSystemBindData* This,
35547         REFIID riid,
35548         void **ppvObject);
35549 
35550     ULONG (STDMETHODCALLTYPE *AddRef)(
35551         IFileSystemBindData* This);
35552 
35553     ULONG (STDMETHODCALLTYPE *Release)(
35554         IFileSystemBindData* This);
35555 
35556     /*** IFileSystemBindData methods ***/
35557     HRESULT (STDMETHODCALLTYPE *SetFindData)(
35558         IFileSystemBindData* This,
35559         const WIN32_FIND_DATAW *pfd);
35560 
35561     HRESULT (STDMETHODCALLTYPE *GetFindData)(
35562         IFileSystemBindData* This,
35563         WIN32_FIND_DATAW *pfd);
35564 
35565     END_INTERFACE
35566 } IFileSystemBindDataVtbl;
35567 interface IFileSystemBindData {
35568     CONST_VTBL IFileSystemBindDataVtbl* lpVtbl;
35569 };
35570 
35571 #ifdef COBJMACROS
35572 #ifndef WIDL_C_INLINE_WRAPPERS
35573 /*** IUnknown methods ***/
35574 #define IFileSystemBindData_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
35575 #define IFileSystemBindData_AddRef(This) (This)->lpVtbl->AddRef(This)
35576 #define IFileSystemBindData_Release(This) (This)->lpVtbl->Release(This)
35577 /*** IFileSystemBindData methods ***/
35578 #define IFileSystemBindData_SetFindData(This,pfd) (This)->lpVtbl->SetFindData(This,pfd)
35579 #define IFileSystemBindData_GetFindData(This,pfd) (This)->lpVtbl->GetFindData(This,pfd)
35580 #else
35581 /*** IUnknown methods ***/
35582 static FORCEINLINE HRESULT IFileSystemBindData_QueryInterface(IFileSystemBindData* This,REFIID riid,void **ppvObject) {
35583     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
35584 }
35585 static FORCEINLINE ULONG IFileSystemBindData_AddRef(IFileSystemBindData* This) {
35586     return This->lpVtbl->AddRef(This);
35587 }
35588 static FORCEINLINE ULONG IFileSystemBindData_Release(IFileSystemBindData* This) {
35589     return This->lpVtbl->Release(This);
35590 }
35591 /*** IFileSystemBindData methods ***/
35592 static FORCEINLINE HRESULT IFileSystemBindData_SetFindData(IFileSystemBindData* This,const WIN32_FIND_DATAW *pfd) {
35593     return This->lpVtbl->SetFindData(This,pfd);
35594 }
35595 static FORCEINLINE HRESULT IFileSystemBindData_GetFindData(IFileSystemBindData* This,WIN32_FIND_DATAW *pfd) {
35596     return This->lpVtbl->GetFindData(This,pfd);
35597 }
35598 #endif
35599 #endif
35600 
35601 #endif
35602 
35603 HRESULT STDMETHODCALLTYPE IFileSystemBindData_SetFindData_Proxy(
35604     IFileSystemBindData* This,
35605     const WIN32_FIND_DATAW *pfd);
35606 void __RPC_STUB IFileSystemBindData_SetFindData_Stub(
35607     IRpcStubBuffer* This,
35608     IRpcChannelBuffer* pRpcChannelBuffer,
35609     PRPC_MESSAGE pRpcMessage,
35610     DWORD* pdwStubPhase);
35611 HRESULT STDMETHODCALLTYPE IFileSystemBindData_GetFindData_Proxy(
35612     IFileSystemBindData* This,
35613     WIN32_FIND_DATAW *pfd);
35614 void __RPC_STUB IFileSystemBindData_GetFindData_Stub(
35615     IRpcStubBuffer* This,
35616     IRpcChannelBuffer* pRpcChannelBuffer,
35617     PRPC_MESSAGE pRpcMessage,
35618     DWORD* pdwStubPhase);
35619 
35620 #endif  /* __IFileSystemBindData_INTERFACE_DEFINED__ */
35621 
35622 
35623 /*****************************************************************************
35624  * IFileSystemBindData2 interface
35625  */
35626 #ifndef __IFileSystemBindData2_INTERFACE_DEFINED__
35627 #define __IFileSystemBindData2_INTERFACE_DEFINED__
35628 
35629 DEFINE_GUID(IID_IFileSystemBindData2, 0x3acf075f, 0x71db, 0x4afa, 0x81,0xf0, 0x3f,0xc4,0xfd,0xf2,0xa5,0xb8);
35630 #if defined(__cplusplus) && !defined(CINTERFACE)
35631 MIDL_INTERFACE("3acf075f-71db-4afa-81f0-3fc4fdf2a5b8")
35632 IFileSystemBindData2 : public IFileSystemBindData
35633 {
35634     virtual HRESULT STDMETHODCALLTYPE SetFileID(
35635         LARGE_INTEGER liFileID) = 0;
35636 
35637     virtual HRESULT STDMETHODCALLTYPE GetFileID(
35638         LARGE_INTEGER *pliFileID) = 0;
35639 
35640     virtual HRESULT STDMETHODCALLTYPE SetJunctionCLSID(
35641         REFCLSID clsid) = 0;
35642 
35643     virtual HRESULT STDMETHODCALLTYPE GetJunctionCLSID(
35644         CLSID *pclsid) = 0;
35645 
35646 };
35647 #ifdef __CRT_UUID_DECL
35648 __CRT_UUID_DECL(IFileSystemBindData2, 0x3acf075f, 0x71db, 0x4afa, 0x81,0xf0, 0x3f,0xc4,0xfd,0xf2,0xa5,0xb8)
35649 #endif
35650 #else
35651 typedef struct IFileSystemBindData2Vtbl {
35652     BEGIN_INTERFACE
35653 
35654     /*** IUnknown methods ***/
35655     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
35656         IFileSystemBindData2* This,
35657         REFIID riid,
35658         void **ppvObject);
35659 
35660     ULONG (STDMETHODCALLTYPE *AddRef)(
35661         IFileSystemBindData2* This);
35662 
35663     ULONG (STDMETHODCALLTYPE *Release)(
35664         IFileSystemBindData2* This);
35665 
35666     /*** IFileSystemBindData methods ***/
35667     HRESULT (STDMETHODCALLTYPE *SetFindData)(
35668         IFileSystemBindData2* This,
35669         const WIN32_FIND_DATAW *pfd);
35670 
35671     HRESULT (STDMETHODCALLTYPE *GetFindData)(
35672         IFileSystemBindData2* This,
35673         WIN32_FIND_DATAW *pfd);
35674 
35675     /*** IFileSystemBindData2 methods ***/
35676     HRESULT (STDMETHODCALLTYPE *SetFileID)(
35677         IFileSystemBindData2* This,
35678         LARGE_INTEGER liFileID);
35679 
35680     HRESULT (STDMETHODCALLTYPE *GetFileID)(
35681         IFileSystemBindData2* This,
35682         LARGE_INTEGER *pliFileID);
35683 
35684     HRESULT (STDMETHODCALLTYPE *SetJunctionCLSID)(
35685         IFileSystemBindData2* This,
35686         REFCLSID clsid);
35687 
35688     HRESULT (STDMETHODCALLTYPE *GetJunctionCLSID)(
35689         IFileSystemBindData2* This,
35690         CLSID *pclsid);
35691 
35692     END_INTERFACE
35693 } IFileSystemBindData2Vtbl;
35694 interface IFileSystemBindData2 {
35695     CONST_VTBL IFileSystemBindData2Vtbl* lpVtbl;
35696 };
35697 
35698 #ifdef COBJMACROS
35699 #ifndef WIDL_C_INLINE_WRAPPERS
35700 /*** IUnknown methods ***/
35701 #define IFileSystemBindData2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
35702 #define IFileSystemBindData2_AddRef(This) (This)->lpVtbl->AddRef(This)
35703 #define IFileSystemBindData2_Release(This) (This)->lpVtbl->Release(This)
35704 /*** IFileSystemBindData methods ***/
35705 #define IFileSystemBindData2_SetFindData(This,pfd) (This)->lpVtbl->SetFindData(This,pfd)
35706 #define IFileSystemBindData2_GetFindData(This,pfd) (This)->lpVtbl->GetFindData(This,pfd)
35707 /*** IFileSystemBindData2 methods ***/
35708 #define IFileSystemBindData2_SetFileID(This,liFileID) (This)->lpVtbl->SetFileID(This,liFileID)
35709 #define IFileSystemBindData2_GetFileID(This,pliFileID) (This)->lpVtbl->GetFileID(This,pliFileID)
35710 #define IFileSystemBindData2_SetJunctionCLSID(This,clsid) (This)->lpVtbl->SetJunctionCLSID(This,clsid)
35711 #define IFileSystemBindData2_GetJunctionCLSID(This,pclsid) (This)->lpVtbl->GetJunctionCLSID(This,pclsid)
35712 #else
35713 /*** IUnknown methods ***/
35714 static FORCEINLINE HRESULT IFileSystemBindData2_QueryInterface(IFileSystemBindData2* This,REFIID riid,void **ppvObject) {
35715     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
35716 }
35717 static FORCEINLINE ULONG IFileSystemBindData2_AddRef(IFileSystemBindData2* This) {
35718     return This->lpVtbl->AddRef(This);
35719 }
35720 static FORCEINLINE ULONG IFileSystemBindData2_Release(IFileSystemBindData2* This) {
35721     return This->lpVtbl->Release(This);
35722 }
35723 /*** IFileSystemBindData methods ***/
35724 static FORCEINLINE HRESULT IFileSystemBindData2_SetFindData(IFileSystemBindData2* This,const WIN32_FIND_DATAW *pfd) {
35725     return This->lpVtbl->SetFindData(This,pfd);
35726 }
35727 static FORCEINLINE HRESULT IFileSystemBindData2_GetFindData(IFileSystemBindData2* This,WIN32_FIND_DATAW *pfd) {
35728     return This->lpVtbl->GetFindData(This,pfd);
35729 }
35730 /*** IFileSystemBindData2 methods ***/
35731 static FORCEINLINE HRESULT IFileSystemBindData2_SetFileID(IFileSystemBindData2* This,LARGE_INTEGER liFileID) {
35732     return This->lpVtbl->SetFileID(This,liFileID);
35733 }
35734 static FORCEINLINE HRESULT IFileSystemBindData2_GetFileID(IFileSystemBindData2* This,LARGE_INTEGER *pliFileID) {
35735     return This->lpVtbl->GetFileID(This,pliFileID);
35736 }
35737 static FORCEINLINE HRESULT IFileSystemBindData2_SetJunctionCLSID(IFileSystemBindData2* This,REFCLSID clsid) {
35738     return This->lpVtbl->SetJunctionCLSID(This,clsid);
35739 }
35740 static FORCEINLINE HRESULT IFileSystemBindData2_GetJunctionCLSID(IFileSystemBindData2* This,CLSID *pclsid) {
35741     return This->lpVtbl->GetJunctionCLSID(This,pclsid);
35742 }
35743 #endif
35744 #endif
35745 
35746 #endif
35747 
35748 HRESULT STDMETHODCALLTYPE IFileSystemBindData2_SetFileID_Proxy(
35749     IFileSystemBindData2* This,
35750     LARGE_INTEGER liFileID);
35751 void __RPC_STUB IFileSystemBindData2_SetFileID_Stub(
35752     IRpcStubBuffer* This,
35753     IRpcChannelBuffer* pRpcChannelBuffer,
35754     PRPC_MESSAGE pRpcMessage,
35755     DWORD* pdwStubPhase);
35756 HRESULT STDMETHODCALLTYPE IFileSystemBindData2_GetFileID_Proxy(
35757     IFileSystemBindData2* This,
35758     LARGE_INTEGER *pliFileID);
35759 void __RPC_STUB IFileSystemBindData2_GetFileID_Stub(
35760     IRpcStubBuffer* This,
35761     IRpcChannelBuffer* pRpcChannelBuffer,
35762     PRPC_MESSAGE pRpcMessage,
35763     DWORD* pdwStubPhase);
35764 HRESULT STDMETHODCALLTYPE IFileSystemBindData2_SetJunctionCLSID_Proxy(
35765     IFileSystemBindData2* This,
35766     REFCLSID clsid);
35767 void __RPC_STUB IFileSystemBindData2_SetJunctionCLSID_Stub(
35768     IRpcStubBuffer* This,
35769     IRpcChannelBuffer* pRpcChannelBuffer,
35770     PRPC_MESSAGE pRpcMessage,
35771     DWORD* pdwStubPhase);
35772 HRESULT STDMETHODCALLTYPE IFileSystemBindData2_GetJunctionCLSID_Proxy(
35773     IFileSystemBindData2* This,
35774     CLSID *pclsid);
35775 void __RPC_STUB IFileSystemBindData2_GetJunctionCLSID_Stub(
35776     IRpcStubBuffer* This,
35777     IRpcChannelBuffer* pRpcChannelBuffer,
35778     PRPC_MESSAGE pRpcMessage,
35779     DWORD* pdwStubPhase);
35780 
35781 #endif  /* __IFileSystemBindData2_INTERFACE_DEFINED__ */
35782 
35783 
35784 #if NTDDI_VERSION >= NTDDI_WIN7
35785 /*****************************************************************************
35786  * ICustomDestinationList interface
35787  */
35788 #ifndef __ICustomDestinationList_INTERFACE_DEFINED__
35789 #define __ICustomDestinationList_INTERFACE_DEFINED__
35790 
35791 typedef enum KNOWNDESTCATEGORY {
35792     KDC_FREQUENT = 1,
35793     KDC_RECENT = 2
35794 } KNOWNDESTCATEGORY;
35795 
35796 DEFINE_GUID(IID_ICustomDestinationList, 0x6332debf, 0x87b5, 0x4670, 0x90,0xc0, 0x5e,0x57,0xb4,0x08,0xa4,0x9e);
35797 #if defined(__cplusplus) && !defined(CINTERFACE)
35798 MIDL_INTERFACE("6332debf-87b5-4670-90c0-5e57b408a49e")
35799 ICustomDestinationList : public IUnknown
35800 {
35801     virtual HRESULT STDMETHODCALLTYPE SetAppID(
35802         LPCWSTR pszAppID) = 0;
35803 
35804     virtual HRESULT STDMETHODCALLTYPE BeginList(
35805         UINT *pcMinSlots,
35806         REFIID riid,
35807         void **ppv) = 0;
35808 
35809     virtual HRESULT STDMETHODCALLTYPE AppendCategory(
35810         LPCWSTR pszCategory,
35811         IObjectArray *poa) = 0;
35812 
35813     virtual HRESULT STDMETHODCALLTYPE AppendKnownCategory(
35814         KNOWNDESTCATEGORY category) = 0;
35815 
35816     virtual HRESULT STDMETHODCALLTYPE AddUserTasks(
35817         IObjectArray *poa) = 0;
35818 
35819     virtual HRESULT STDMETHODCALLTYPE CommitList(
35820         ) = 0;
35821 
35822     virtual HRESULT STDMETHODCALLTYPE GetRemovedDestinations(
35823         REFIID riid,
35824         void **ppv) = 0;
35825 
35826     virtual HRESULT STDMETHODCALLTYPE DeleteList(
35827         LPCWSTR pszAppID) = 0;
35828 
35829     virtual HRESULT STDMETHODCALLTYPE AbortList(
35830         ) = 0;
35831 
35832 };
35833 #ifdef __CRT_UUID_DECL
35834 __CRT_UUID_DECL(ICustomDestinationList, 0x6332debf, 0x87b5, 0x4670, 0x90,0xc0, 0x5e,0x57,0xb4,0x08,0xa4,0x9e)
35835 #endif
35836 #else
35837 typedef struct ICustomDestinationListVtbl {
35838     BEGIN_INTERFACE
35839 
35840     /*** IUnknown methods ***/
35841     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
35842         ICustomDestinationList* This,
35843         REFIID riid,
35844         void **ppvObject);
35845 
35846     ULONG (STDMETHODCALLTYPE *AddRef)(
35847         ICustomDestinationList* This);
35848 
35849     ULONG (STDMETHODCALLTYPE *Release)(
35850         ICustomDestinationList* This);
35851 
35852     /*** ICustomDestinationList methods ***/
35853     HRESULT (STDMETHODCALLTYPE *SetAppID)(
35854         ICustomDestinationList* This,
35855         LPCWSTR pszAppID);
35856 
35857     HRESULT (STDMETHODCALLTYPE *BeginList)(
35858         ICustomDestinationList* This,
35859         UINT *pcMinSlots,
35860         REFIID riid,
35861         void **ppv);
35862 
35863     HRESULT (STDMETHODCALLTYPE *AppendCategory)(
35864         ICustomDestinationList* This,
35865         LPCWSTR pszCategory,
35866         IObjectArray *poa);
35867 
35868     HRESULT (STDMETHODCALLTYPE *AppendKnownCategory)(
35869         ICustomDestinationList* This,
35870         KNOWNDESTCATEGORY category);
35871 
35872     HRESULT (STDMETHODCALLTYPE *AddUserTasks)(
35873         ICustomDestinationList* This,
35874         IObjectArray *poa);
35875 
35876     HRESULT (STDMETHODCALLTYPE *CommitList)(
35877         ICustomDestinationList* This);
35878 
35879     HRESULT (STDMETHODCALLTYPE *GetRemovedDestinations)(
35880         ICustomDestinationList* This,
35881         REFIID riid,
35882         void **ppv);
35883 
35884     HRESULT (STDMETHODCALLTYPE *DeleteList)(
35885         ICustomDestinationList* This,
35886         LPCWSTR pszAppID);
35887 
35888     HRESULT (STDMETHODCALLTYPE *AbortList)(
35889         ICustomDestinationList* This);
35890 
35891     END_INTERFACE
35892 } ICustomDestinationListVtbl;
35893 interface ICustomDestinationList {
35894     CONST_VTBL ICustomDestinationListVtbl* lpVtbl;
35895 };
35896 
35897 #ifdef COBJMACROS
35898 #ifndef WIDL_C_INLINE_WRAPPERS
35899 /*** IUnknown methods ***/
35900 #define ICustomDestinationList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
35901 #define ICustomDestinationList_AddRef(This) (This)->lpVtbl->AddRef(This)
35902 #define ICustomDestinationList_Release(This) (This)->lpVtbl->Release(This)
35903 /*** ICustomDestinationList methods ***/
35904 #define ICustomDestinationList_SetAppID(This,pszAppID) (This)->lpVtbl->SetAppID(This,pszAppID)
35905 #define ICustomDestinationList_BeginList(This,pcMinSlots,riid,ppv) (This)->lpVtbl->BeginList(This,pcMinSlots,riid,ppv)
35906 #define ICustomDestinationList_AppendCategory(This,pszCategory,poa) (This)->lpVtbl->AppendCategory(This,pszCategory,poa)
35907 #define ICustomDestinationList_AppendKnownCategory(This,category) (This)->lpVtbl->AppendKnownCategory(This,category)
35908 #define ICustomDestinationList_AddUserTasks(This,poa) (This)->lpVtbl->AddUserTasks(This,poa)
35909 #define ICustomDestinationList_CommitList(This) (This)->lpVtbl->CommitList(This)
35910 #define ICustomDestinationList_GetRemovedDestinations(This,riid,ppv) (This)->lpVtbl->GetRemovedDestinations(This,riid,ppv)
35911 #define ICustomDestinationList_DeleteList(This,pszAppID) (This)->lpVtbl->DeleteList(This,pszAppID)
35912 #define ICustomDestinationList_AbortList(This) (This)->lpVtbl->AbortList(This)
35913 #else
35914 /*** IUnknown methods ***/
35915 static FORCEINLINE HRESULT ICustomDestinationList_QueryInterface(ICustomDestinationList* This,REFIID riid,void **ppvObject) {
35916     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
35917 }
35918 static FORCEINLINE ULONG ICustomDestinationList_AddRef(ICustomDestinationList* This) {
35919     return This->lpVtbl->AddRef(This);
35920 }
35921 static FORCEINLINE ULONG ICustomDestinationList_Release(ICustomDestinationList* This) {
35922     return This->lpVtbl->Release(This);
35923 }
35924 /*** ICustomDestinationList methods ***/
35925 static FORCEINLINE HRESULT ICustomDestinationList_SetAppID(ICustomDestinationList* This,LPCWSTR pszAppID) {
35926     return This->lpVtbl->SetAppID(This,pszAppID);
35927 }
35928 static FORCEINLINE HRESULT ICustomDestinationList_BeginList(ICustomDestinationList* This,UINT *pcMinSlots,REFIID riid,void **ppv) {
35929     return This->lpVtbl->BeginList(This,pcMinSlots,riid,ppv);
35930 }
35931 static FORCEINLINE HRESULT ICustomDestinationList_AppendCategory(ICustomDestinationList* This,LPCWSTR pszCategory,IObjectArray *poa) {
35932     return This->lpVtbl->AppendCategory(This,pszCategory,poa);
35933 }
35934 static FORCEINLINE HRESULT ICustomDestinationList_AppendKnownCategory(ICustomDestinationList* This,KNOWNDESTCATEGORY category) {
35935     return This->lpVtbl->AppendKnownCategory(This,category);
35936 }
35937 static FORCEINLINE HRESULT ICustomDestinationList_AddUserTasks(ICustomDestinationList* This,IObjectArray *poa) {
35938     return This->lpVtbl->AddUserTasks(This,poa);
35939 }
35940 static FORCEINLINE HRESULT ICustomDestinationList_CommitList(ICustomDestinationList* This) {
35941     return This->lpVtbl->CommitList(This);
35942 }
35943 static FORCEINLINE HRESULT ICustomDestinationList_GetRemovedDestinations(ICustomDestinationList* This,REFIID riid,void **ppv) {
35944     return This->lpVtbl->GetRemovedDestinations(This,riid,ppv);
35945 }
35946 static FORCEINLINE HRESULT ICustomDestinationList_DeleteList(ICustomDestinationList* This,LPCWSTR pszAppID) {
35947     return This->lpVtbl->DeleteList(This,pszAppID);
35948 }
35949 static FORCEINLINE HRESULT ICustomDestinationList_AbortList(ICustomDestinationList* This) {
35950     return This->lpVtbl->AbortList(This);
35951 }
35952 #endif
35953 #endif
35954 
35955 #endif
35956 
35957 HRESULT STDMETHODCALLTYPE ICustomDestinationList_SetAppID_Proxy(
35958     ICustomDestinationList* This,
35959     LPCWSTR pszAppID);
35960 void __RPC_STUB ICustomDestinationList_SetAppID_Stub(
35961     IRpcStubBuffer* This,
35962     IRpcChannelBuffer* pRpcChannelBuffer,
35963     PRPC_MESSAGE pRpcMessage,
35964     DWORD* pdwStubPhase);
35965 HRESULT STDMETHODCALLTYPE ICustomDestinationList_BeginList_Proxy(
35966     ICustomDestinationList* This,
35967     UINT *pcMinSlots,
35968     REFIID riid,
35969     void **ppv);
35970 void __RPC_STUB ICustomDestinationList_BeginList_Stub(
35971     IRpcStubBuffer* This,
35972     IRpcChannelBuffer* pRpcChannelBuffer,
35973     PRPC_MESSAGE pRpcMessage,
35974     DWORD* pdwStubPhase);
35975 HRESULT STDMETHODCALLTYPE ICustomDestinationList_AppendCategory_Proxy(
35976     ICustomDestinationList* This,
35977     LPCWSTR pszCategory,
35978     IObjectArray *poa);
35979 void __RPC_STUB ICustomDestinationList_AppendCategory_Stub(
35980     IRpcStubBuffer* This,
35981     IRpcChannelBuffer* pRpcChannelBuffer,
35982     PRPC_MESSAGE pRpcMessage,
35983     DWORD* pdwStubPhase);
35984 HRESULT STDMETHODCALLTYPE ICustomDestinationList_AppendKnownCategory_Proxy(
35985     ICustomDestinationList* This,
35986     KNOWNDESTCATEGORY category);
35987 void __RPC_STUB ICustomDestinationList_AppendKnownCategory_Stub(
35988     IRpcStubBuffer* This,
35989     IRpcChannelBuffer* pRpcChannelBuffer,
35990     PRPC_MESSAGE pRpcMessage,
35991     DWORD* pdwStubPhase);
35992 HRESULT STDMETHODCALLTYPE ICustomDestinationList_AddUserTasks_Proxy(
35993     ICustomDestinationList* This,
35994     IObjectArray *poa);
35995 void __RPC_STUB ICustomDestinationList_AddUserTasks_Stub(
35996     IRpcStubBuffer* This,
35997     IRpcChannelBuffer* pRpcChannelBuffer,
35998     PRPC_MESSAGE pRpcMessage,
35999     DWORD* pdwStubPhase);
36000 HRESULT STDMETHODCALLTYPE ICustomDestinationList_CommitList_Proxy(
36001     ICustomDestinationList* This);
36002 void __RPC_STUB ICustomDestinationList_CommitList_Stub(
36003     IRpcStubBuffer* This,
36004     IRpcChannelBuffer* pRpcChannelBuffer,
36005     PRPC_MESSAGE pRpcMessage,
36006     DWORD* pdwStubPhase);
36007 HRESULT STDMETHODCALLTYPE ICustomDestinationList_GetRemovedDestinations_Proxy(
36008     ICustomDestinationList* This,
36009     REFIID riid,
36010     void **ppv);
36011 void __RPC_STUB ICustomDestinationList_GetRemovedDestinations_Stub(
36012     IRpcStubBuffer* This,
36013     IRpcChannelBuffer* pRpcChannelBuffer,
36014     PRPC_MESSAGE pRpcMessage,
36015     DWORD* pdwStubPhase);
36016 HRESULT STDMETHODCALLTYPE ICustomDestinationList_DeleteList_Proxy(
36017     ICustomDestinationList* This,
36018     LPCWSTR pszAppID);
36019 void __RPC_STUB ICustomDestinationList_DeleteList_Stub(
36020     IRpcStubBuffer* This,
36021     IRpcChannelBuffer* pRpcChannelBuffer,
36022     PRPC_MESSAGE pRpcMessage,
36023     DWORD* pdwStubPhase);
36024 HRESULT STDMETHODCALLTYPE ICustomDestinationList_AbortList_Proxy(
36025     ICustomDestinationList* This);
36026 void __RPC_STUB ICustomDestinationList_AbortList_Stub(
36027     IRpcStubBuffer* This,
36028     IRpcChannelBuffer* pRpcChannelBuffer,
36029     PRPC_MESSAGE pRpcMessage,
36030     DWORD* pdwStubPhase);
36031 
36032 #endif  /* __ICustomDestinationList_INTERFACE_DEFINED__ */
36033 
36034 
36035 /*****************************************************************************
36036  * IApplicationDestinations interface
36037  */
36038 #ifndef __IApplicationDestinations_INTERFACE_DEFINED__
36039 #define __IApplicationDestinations_INTERFACE_DEFINED__
36040 
36041 DEFINE_GUID(IID_IApplicationDestinations, 0x12337d35, 0x94c6, 0x48a0, 0xbc,0xe7, 0x6a,0x9c,0x69,0xd4,0xd6,0x00);
36042 #if defined(__cplusplus) && !defined(CINTERFACE)
36043 MIDL_INTERFACE("12337d35-94c6-48a0-bce7-6a9c69d4d600")
36044 IApplicationDestinations : public IUnknown
36045 {
36046     virtual HRESULT STDMETHODCALLTYPE SetAppID(
36047         LPCWSTR pszAppID) = 0;
36048 
36049     virtual HRESULT STDMETHODCALLTYPE RemoveDestination(
36050         IUnknown *punk) = 0;
36051 
36052     virtual HRESULT STDMETHODCALLTYPE RemoveAllDestinations(
36053         ) = 0;
36054 
36055 };
36056 #ifdef __CRT_UUID_DECL
36057 __CRT_UUID_DECL(IApplicationDestinations, 0x12337d35, 0x94c6, 0x48a0, 0xbc,0xe7, 0x6a,0x9c,0x69,0xd4,0xd6,0x00)
36058 #endif
36059 #else
36060 typedef struct IApplicationDestinationsVtbl {
36061     BEGIN_INTERFACE
36062 
36063     /*** IUnknown methods ***/
36064     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
36065         IApplicationDestinations* This,
36066         REFIID riid,
36067         void **ppvObject);
36068 
36069     ULONG (STDMETHODCALLTYPE *AddRef)(
36070         IApplicationDestinations* This);
36071 
36072     ULONG (STDMETHODCALLTYPE *Release)(
36073         IApplicationDestinations* This);
36074 
36075     /*** IApplicationDestinations methods ***/
36076     HRESULT (STDMETHODCALLTYPE *SetAppID)(
36077         IApplicationDestinations* This,
36078         LPCWSTR pszAppID);
36079 
36080     HRESULT (STDMETHODCALLTYPE *RemoveDestination)(
36081         IApplicationDestinations* This,
36082         IUnknown *punk);
36083 
36084     HRESULT (STDMETHODCALLTYPE *RemoveAllDestinations)(
36085         IApplicationDestinations* This);
36086 
36087     END_INTERFACE
36088 } IApplicationDestinationsVtbl;
36089 interface IApplicationDestinations {
36090     CONST_VTBL IApplicationDestinationsVtbl* lpVtbl;
36091 };
36092 
36093 #ifdef COBJMACROS
36094 #ifndef WIDL_C_INLINE_WRAPPERS
36095 /*** IUnknown methods ***/
36096 #define IApplicationDestinations_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
36097 #define IApplicationDestinations_AddRef(This) (This)->lpVtbl->AddRef(This)
36098 #define IApplicationDestinations_Release(This) (This)->lpVtbl->Release(This)
36099 /*** IApplicationDestinations methods ***/
36100 #define IApplicationDestinations_SetAppID(This,pszAppID) (This)->lpVtbl->SetAppID(This,pszAppID)
36101 #define IApplicationDestinations_RemoveDestination(This,punk) (This)->lpVtbl->RemoveDestination(This,punk)
36102 #define IApplicationDestinations_RemoveAllDestinations(This) (This)->lpVtbl->RemoveAllDestinations(This)
36103 #else
36104 /*** IUnknown methods ***/
36105 static FORCEINLINE HRESULT IApplicationDestinations_QueryInterface(IApplicationDestinations* This,REFIID riid,void **ppvObject) {
36106     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
36107 }
36108 static FORCEINLINE ULONG IApplicationDestinations_AddRef(IApplicationDestinations* This) {
36109     return This->lpVtbl->AddRef(This);
36110 }
36111 static FORCEINLINE ULONG IApplicationDestinations_Release(IApplicationDestinations* This) {
36112     return This->lpVtbl->Release(This);
36113 }
36114 /*** IApplicationDestinations methods ***/
36115 static FORCEINLINE HRESULT IApplicationDestinations_SetAppID(IApplicationDestinations* This,LPCWSTR pszAppID) {
36116     return This->lpVtbl->SetAppID(This,pszAppID);
36117 }
36118 static FORCEINLINE HRESULT IApplicationDestinations_RemoveDestination(IApplicationDestinations* This,IUnknown *punk) {
36119     return This->lpVtbl->RemoveDestination(This,punk);
36120 }
36121 static FORCEINLINE HRESULT IApplicationDestinations_RemoveAllDestinations(IApplicationDestinations* This) {
36122     return This->lpVtbl->RemoveAllDestinations(This);
36123 }
36124 #endif
36125 #endif
36126 
36127 #endif
36128 
36129 HRESULT STDMETHODCALLTYPE IApplicationDestinations_SetAppID_Proxy(
36130     IApplicationDestinations* This,
36131     LPCWSTR pszAppID);
36132 void __RPC_STUB IApplicationDestinations_SetAppID_Stub(
36133     IRpcStubBuffer* This,
36134     IRpcChannelBuffer* pRpcChannelBuffer,
36135     PRPC_MESSAGE pRpcMessage,
36136     DWORD* pdwStubPhase);
36137 HRESULT STDMETHODCALLTYPE IApplicationDestinations_RemoveDestination_Proxy(
36138     IApplicationDestinations* This,
36139     IUnknown *punk);
36140 void __RPC_STUB IApplicationDestinations_RemoveDestination_Stub(
36141     IRpcStubBuffer* This,
36142     IRpcChannelBuffer* pRpcChannelBuffer,
36143     PRPC_MESSAGE pRpcMessage,
36144     DWORD* pdwStubPhase);
36145 HRESULT STDMETHODCALLTYPE IApplicationDestinations_RemoveAllDestinations_Proxy(
36146     IApplicationDestinations* This);
36147 void __RPC_STUB IApplicationDestinations_RemoveAllDestinations_Stub(
36148     IRpcStubBuffer* This,
36149     IRpcChannelBuffer* pRpcChannelBuffer,
36150     PRPC_MESSAGE pRpcMessage,
36151     DWORD* pdwStubPhase);
36152 
36153 #endif  /* __IApplicationDestinations_INTERFACE_DEFINED__ */
36154 
36155 
36156 /*****************************************************************************
36157  * IApplicationDocumentLists interface
36158  */
36159 #ifndef __IApplicationDocumentLists_INTERFACE_DEFINED__
36160 #define __IApplicationDocumentLists_INTERFACE_DEFINED__
36161 
36162 typedef enum APPDOCLISTTYPE {
36163     ADLT_RECENT = 0,
36164     ADLT_FREQUENT = 1
36165 } APPDOCLISTTYPE;
36166 
36167 DEFINE_GUID(IID_IApplicationDocumentLists, 0x3c594f9f, 0x9f30, 0x47a1, 0x97,0x9a, 0xc9,0xe8,0x3d,0x3d,0x0a,0x06);
36168 #if defined(__cplusplus) && !defined(CINTERFACE)
36169 MIDL_INTERFACE("3c594f9f-9f30-47a1-979a-c9e83d3d0a06")
36170 IApplicationDocumentLists : public IUnknown
36171 {
36172     virtual HRESULT STDMETHODCALLTYPE SetAppID(
36173         LPCWSTR pszAppID) = 0;
36174 
36175     virtual HRESULT STDMETHODCALLTYPE GetList(
36176         APPDOCLISTTYPE listtype,
36177         UINT cItemsDesired,
36178         REFIID riid,
36179         void **ppv) = 0;
36180 
36181 };
36182 #ifdef __CRT_UUID_DECL
36183 __CRT_UUID_DECL(IApplicationDocumentLists, 0x3c594f9f, 0x9f30, 0x47a1, 0x97,0x9a, 0xc9,0xe8,0x3d,0x3d,0x0a,0x06)
36184 #endif
36185 #else
36186 typedef struct IApplicationDocumentListsVtbl {
36187     BEGIN_INTERFACE
36188 
36189     /*** IUnknown methods ***/
36190     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
36191         IApplicationDocumentLists* This,
36192         REFIID riid,
36193         void **ppvObject);
36194 
36195     ULONG (STDMETHODCALLTYPE *AddRef)(
36196         IApplicationDocumentLists* This);
36197 
36198     ULONG (STDMETHODCALLTYPE *Release)(
36199         IApplicationDocumentLists* This);
36200 
36201     /*** IApplicationDocumentLists methods ***/
36202     HRESULT (STDMETHODCALLTYPE *SetAppID)(
36203         IApplicationDocumentLists* This,
36204         LPCWSTR pszAppID);
36205 
36206     HRESULT (STDMETHODCALLTYPE *GetList)(
36207         IApplicationDocumentLists* This,
36208         APPDOCLISTTYPE listtype,
36209         UINT cItemsDesired,
36210         REFIID riid,
36211         void **ppv);
36212 
36213     END_INTERFACE
36214 } IApplicationDocumentListsVtbl;
36215 interface IApplicationDocumentLists {
36216     CONST_VTBL IApplicationDocumentListsVtbl* lpVtbl;
36217 };
36218 
36219 #ifdef COBJMACROS
36220 #ifndef WIDL_C_INLINE_WRAPPERS
36221 /*** IUnknown methods ***/
36222 #define IApplicationDocumentLists_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
36223 #define IApplicationDocumentLists_AddRef(This) (This)->lpVtbl->AddRef(This)
36224 #define IApplicationDocumentLists_Release(This) (This)->lpVtbl->Release(This)
36225 /*** IApplicationDocumentLists methods ***/
36226 #define IApplicationDocumentLists_SetAppID(This,pszAppID) (This)->lpVtbl->SetAppID(This,pszAppID)
36227 #define IApplicationDocumentLists_GetList(This,listtype,cItemsDesired,riid,ppv) (This)->lpVtbl->GetList(This,listtype,cItemsDesired,riid,ppv)
36228 #else
36229 /*** IUnknown methods ***/
36230 static FORCEINLINE HRESULT IApplicationDocumentLists_QueryInterface(IApplicationDocumentLists* This,REFIID riid,void **ppvObject) {
36231     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
36232 }
36233 static FORCEINLINE ULONG IApplicationDocumentLists_AddRef(IApplicationDocumentLists* This) {
36234     return This->lpVtbl->AddRef(This);
36235 }
36236 static FORCEINLINE ULONG IApplicationDocumentLists_Release(IApplicationDocumentLists* This) {
36237     return This->lpVtbl->Release(This);
36238 }
36239 /*** IApplicationDocumentLists methods ***/
36240 static FORCEINLINE HRESULT IApplicationDocumentLists_SetAppID(IApplicationDocumentLists* This,LPCWSTR pszAppID) {
36241     return This->lpVtbl->SetAppID(This,pszAppID);
36242 }
36243 static FORCEINLINE HRESULT IApplicationDocumentLists_GetList(IApplicationDocumentLists* This,APPDOCLISTTYPE listtype,UINT cItemsDesired,REFIID riid,void **ppv) {
36244     return This->lpVtbl->GetList(This,listtype,cItemsDesired,riid,ppv);
36245 }
36246 #endif
36247 #endif
36248 
36249 #endif
36250 
36251 HRESULT STDMETHODCALLTYPE IApplicationDocumentLists_SetAppID_Proxy(
36252     IApplicationDocumentLists* This,
36253     LPCWSTR pszAppID);
36254 void __RPC_STUB IApplicationDocumentLists_SetAppID_Stub(
36255     IRpcStubBuffer* This,
36256     IRpcChannelBuffer* pRpcChannelBuffer,
36257     PRPC_MESSAGE pRpcMessage,
36258     DWORD* pdwStubPhase);
36259 HRESULT STDMETHODCALLTYPE IApplicationDocumentLists_GetList_Proxy(
36260     IApplicationDocumentLists* This,
36261     APPDOCLISTTYPE listtype,
36262     UINT cItemsDesired,
36263     REFIID riid,
36264     void **ppv);
36265 void __RPC_STUB IApplicationDocumentLists_GetList_Stub(
36266     IRpcStubBuffer* This,
36267     IRpcChannelBuffer* pRpcChannelBuffer,
36268     PRPC_MESSAGE pRpcMessage,
36269     DWORD* pdwStubPhase);
36270 
36271 #endif  /* __IApplicationDocumentLists_INTERFACE_DEFINED__ */
36272 
36273 
36274 /*****************************************************************************
36275  * IObjectWithAppUserModelID interface
36276  */
36277 #ifndef __IObjectWithAppUserModelID_INTERFACE_DEFINED__
36278 #define __IObjectWithAppUserModelID_INTERFACE_DEFINED__
36279 
36280 DEFINE_GUID(IID_IObjectWithAppUserModelID, 0x36db0196, 0x9665, 0x46d1, 0x9b,0xa7, 0xd3,0x70,0x9e,0xec,0xf9,0xed);
36281 #if defined(__cplusplus) && !defined(CINTERFACE)
36282 MIDL_INTERFACE("36db0196-9665-46d1-9ba7-d3709eecf9ed")
36283 IObjectWithAppUserModelID : public IUnknown
36284 {
36285     virtual HRESULT STDMETHODCALLTYPE SetAppID(
36286         LPCWSTR pszAppID) = 0;
36287 
36288     virtual HRESULT STDMETHODCALLTYPE GetAppID(
36289         LPWSTR *ppszAppID) = 0;
36290 
36291 };
36292 #ifdef __CRT_UUID_DECL
36293 __CRT_UUID_DECL(IObjectWithAppUserModelID, 0x36db0196, 0x9665, 0x46d1, 0x9b,0xa7, 0xd3,0x70,0x9e,0xec,0xf9,0xed)
36294 #endif
36295 #else
36296 typedef struct IObjectWithAppUserModelIDVtbl {
36297     BEGIN_INTERFACE
36298 
36299     /*** IUnknown methods ***/
36300     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
36301         IObjectWithAppUserModelID* This,
36302         REFIID riid,
36303         void **ppvObject);
36304 
36305     ULONG (STDMETHODCALLTYPE *AddRef)(
36306         IObjectWithAppUserModelID* This);
36307 
36308     ULONG (STDMETHODCALLTYPE *Release)(
36309         IObjectWithAppUserModelID* This);
36310 
36311     /*** IObjectWithAppUserModelID methods ***/
36312     HRESULT (STDMETHODCALLTYPE *SetAppID)(
36313         IObjectWithAppUserModelID* This,
36314         LPCWSTR pszAppID);
36315 
36316     HRESULT (STDMETHODCALLTYPE *GetAppID)(
36317         IObjectWithAppUserModelID* This,
36318         LPWSTR *ppszAppID);
36319 
36320     END_INTERFACE
36321 } IObjectWithAppUserModelIDVtbl;
36322 interface IObjectWithAppUserModelID {
36323     CONST_VTBL IObjectWithAppUserModelIDVtbl* lpVtbl;
36324 };
36325 
36326 #ifdef COBJMACROS
36327 #ifndef WIDL_C_INLINE_WRAPPERS
36328 /*** IUnknown methods ***/
36329 #define IObjectWithAppUserModelID_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
36330 #define IObjectWithAppUserModelID_AddRef(This) (This)->lpVtbl->AddRef(This)
36331 #define IObjectWithAppUserModelID_Release(This) (This)->lpVtbl->Release(This)
36332 /*** IObjectWithAppUserModelID methods ***/
36333 #define IObjectWithAppUserModelID_SetAppID(This,pszAppID) (This)->lpVtbl->SetAppID(This,pszAppID)
36334 #define IObjectWithAppUserModelID_GetAppID(This,ppszAppID) (This)->lpVtbl->GetAppID(This,ppszAppID)
36335 #else
36336 /*** IUnknown methods ***/
36337 static FORCEINLINE HRESULT IObjectWithAppUserModelID_QueryInterface(IObjectWithAppUserModelID* This,REFIID riid,void **ppvObject) {
36338     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
36339 }
36340 static FORCEINLINE ULONG IObjectWithAppUserModelID_AddRef(IObjectWithAppUserModelID* This) {
36341     return This->lpVtbl->AddRef(This);
36342 }
36343 static FORCEINLINE ULONG IObjectWithAppUserModelID_Release(IObjectWithAppUserModelID* This) {
36344     return This->lpVtbl->Release(This);
36345 }
36346 /*** IObjectWithAppUserModelID methods ***/
36347 static FORCEINLINE HRESULT IObjectWithAppUserModelID_SetAppID(IObjectWithAppUserModelID* This,LPCWSTR pszAppID) {
36348     return This->lpVtbl->SetAppID(This,pszAppID);
36349 }
36350 static FORCEINLINE HRESULT IObjectWithAppUserModelID_GetAppID(IObjectWithAppUserModelID* This,LPWSTR *ppszAppID) {
36351     return This->lpVtbl->GetAppID(This,ppszAppID);
36352 }
36353 #endif
36354 #endif
36355 
36356 #endif
36357 
36358 HRESULT STDMETHODCALLTYPE IObjectWithAppUserModelID_SetAppID_Proxy(
36359     IObjectWithAppUserModelID* This,
36360     LPCWSTR pszAppID);
36361 void __RPC_STUB IObjectWithAppUserModelID_SetAppID_Stub(
36362     IRpcStubBuffer* This,
36363     IRpcChannelBuffer* pRpcChannelBuffer,
36364     PRPC_MESSAGE pRpcMessage,
36365     DWORD* pdwStubPhase);
36366 HRESULT STDMETHODCALLTYPE IObjectWithAppUserModelID_GetAppID_Proxy(
36367     IObjectWithAppUserModelID* This,
36368     LPWSTR *ppszAppID);
36369 void __RPC_STUB IObjectWithAppUserModelID_GetAppID_Stub(
36370     IRpcStubBuffer* This,
36371     IRpcChannelBuffer* pRpcChannelBuffer,
36372     PRPC_MESSAGE pRpcMessage,
36373     DWORD* pdwStubPhase);
36374 
36375 #endif  /* __IObjectWithAppUserModelID_INTERFACE_DEFINED__ */
36376 
36377 
36378 /*****************************************************************************
36379  * IObjectWithProgID interface
36380  */
36381 #ifndef __IObjectWithProgID_INTERFACE_DEFINED__
36382 #define __IObjectWithProgID_INTERFACE_DEFINED__
36383 
36384 DEFINE_GUID(IID_IObjectWithProgID, 0x71e806fb, 0x8dee, 0x46fc, 0xbf,0x8c, 0x77,0x48,0xa8,0xa1,0xae,0x13);
36385 #if defined(__cplusplus) && !defined(CINTERFACE)
36386 MIDL_INTERFACE("71e806fb-8dee-46fc-bf8c-7748a8a1ae13")
36387 IObjectWithProgID : public IUnknown
36388 {
36389     virtual HRESULT STDMETHODCALLTYPE SetProgID(
36390         LPCWSTR pszProgID) = 0;
36391 
36392     virtual HRESULT STDMETHODCALLTYPE GetProgID(
36393         LPWSTR *ppszProgID) = 0;
36394 
36395 };
36396 #ifdef __CRT_UUID_DECL
36397 __CRT_UUID_DECL(IObjectWithProgID, 0x71e806fb, 0x8dee, 0x46fc, 0xbf,0x8c, 0x77,0x48,0xa8,0xa1,0xae,0x13)
36398 #endif
36399 #else
36400 typedef struct IObjectWithProgIDVtbl {
36401     BEGIN_INTERFACE
36402 
36403     /*** IUnknown methods ***/
36404     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
36405         IObjectWithProgID* This,
36406         REFIID riid,
36407         void **ppvObject);
36408 
36409     ULONG (STDMETHODCALLTYPE *AddRef)(
36410         IObjectWithProgID* This);
36411 
36412     ULONG (STDMETHODCALLTYPE *Release)(
36413         IObjectWithProgID* This);
36414 
36415     /*** IObjectWithProgID methods ***/
36416     HRESULT (STDMETHODCALLTYPE *SetProgID)(
36417         IObjectWithProgID* This,
36418         LPCWSTR pszProgID);
36419 
36420     HRESULT (STDMETHODCALLTYPE *GetProgID)(
36421         IObjectWithProgID* This,
36422         LPWSTR *ppszProgID);
36423 
36424     END_INTERFACE
36425 } IObjectWithProgIDVtbl;
36426 interface IObjectWithProgID {
36427     CONST_VTBL IObjectWithProgIDVtbl* lpVtbl;
36428 };
36429 
36430 #ifdef COBJMACROS
36431 #ifndef WIDL_C_INLINE_WRAPPERS
36432 /*** IUnknown methods ***/
36433 #define IObjectWithProgID_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
36434 #define IObjectWithProgID_AddRef(This) (This)->lpVtbl->AddRef(This)
36435 #define IObjectWithProgID_Release(This) (This)->lpVtbl->Release(This)
36436 /*** IObjectWithProgID methods ***/
36437 #define IObjectWithProgID_SetProgID(This,pszProgID) (This)->lpVtbl->SetProgID(This,pszProgID)
36438 #define IObjectWithProgID_GetProgID(This,ppszProgID) (This)->lpVtbl->GetProgID(This,ppszProgID)
36439 #else
36440 /*** IUnknown methods ***/
36441 static FORCEINLINE HRESULT IObjectWithProgID_QueryInterface(IObjectWithProgID* This,REFIID riid,void **ppvObject) {
36442     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
36443 }
36444 static FORCEINLINE ULONG IObjectWithProgID_AddRef(IObjectWithProgID* This) {
36445     return This->lpVtbl->AddRef(This);
36446 }
36447 static FORCEINLINE ULONG IObjectWithProgID_Release(IObjectWithProgID* This) {
36448     return This->lpVtbl->Release(This);
36449 }
36450 /*** IObjectWithProgID methods ***/
36451 static FORCEINLINE HRESULT IObjectWithProgID_SetProgID(IObjectWithProgID* This,LPCWSTR pszProgID) {
36452     return This->lpVtbl->SetProgID(This,pszProgID);
36453 }
36454 static FORCEINLINE HRESULT IObjectWithProgID_GetProgID(IObjectWithProgID* This,LPWSTR *ppszProgID) {
36455     return This->lpVtbl->GetProgID(This,ppszProgID);
36456 }
36457 #endif
36458 #endif
36459 
36460 #endif
36461 
36462 HRESULT STDMETHODCALLTYPE IObjectWithProgID_SetProgID_Proxy(
36463     IObjectWithProgID* This,
36464     LPCWSTR pszProgID);
36465 void __RPC_STUB IObjectWithProgID_SetProgID_Stub(
36466     IRpcStubBuffer* This,
36467     IRpcChannelBuffer* pRpcChannelBuffer,
36468     PRPC_MESSAGE pRpcMessage,
36469     DWORD* pdwStubPhase);
36470 HRESULT STDMETHODCALLTYPE IObjectWithProgID_GetProgID_Proxy(
36471     IObjectWithProgID* This,
36472     LPWSTR *ppszProgID);
36473 void __RPC_STUB IObjectWithProgID_GetProgID_Stub(
36474     IRpcStubBuffer* This,
36475     IRpcChannelBuffer* pRpcChannelBuffer,
36476     PRPC_MESSAGE pRpcMessage,
36477     DWORD* pdwStubPhase);
36478 
36479 #endif  /* __IObjectWithProgID_INTERFACE_DEFINED__ */
36480 
36481 
36482 /*****************************************************************************
36483  * IUpdateIDList interface
36484  */
36485 #ifndef __IUpdateIDList_INTERFACE_DEFINED__
36486 #define __IUpdateIDList_INTERFACE_DEFINED__
36487 
36488 DEFINE_GUID(IID_IUpdateIDList, 0x6589b6d2, 0x5f8d, 0x4b9e, 0xb7,0xe0, 0x23,0xcd,0xd9,0x71,0x7d,0x8c);
36489 #if defined(__cplusplus) && !defined(CINTERFACE)
36490 MIDL_INTERFACE("6589b6d2-5f8d-4b9e-b7e0-23cdd9717d8c")
36491 IUpdateIDList : public IUnknown
36492 {
36493     virtual HRESULT STDMETHODCALLTYPE Update(
36494         IBindCtx *pbc,
36495         PCUITEMID_CHILD pidlIn,
36496         PITEMID_CHILD *ppidlOut) = 0;
36497 
36498 };
36499 #ifdef __CRT_UUID_DECL
36500 __CRT_UUID_DECL(IUpdateIDList, 0x6589b6d2, 0x5f8d, 0x4b9e, 0xb7,0xe0, 0x23,0xcd,0xd9,0x71,0x7d,0x8c)
36501 #endif
36502 #else
36503 typedef struct IUpdateIDListVtbl {
36504     BEGIN_INTERFACE
36505 
36506     /*** IUnknown methods ***/
36507     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
36508         IUpdateIDList* This,
36509         REFIID riid,
36510         void **ppvObject);
36511 
36512     ULONG (STDMETHODCALLTYPE *AddRef)(
36513         IUpdateIDList* This);
36514 
36515     ULONG (STDMETHODCALLTYPE *Release)(
36516         IUpdateIDList* This);
36517 
36518     /*** IUpdateIDList methods ***/
36519     HRESULT (STDMETHODCALLTYPE *Update)(
36520         IUpdateIDList* This,
36521         IBindCtx *pbc,
36522         PCUITEMID_CHILD pidlIn,
36523         PITEMID_CHILD *ppidlOut);
36524 
36525     END_INTERFACE
36526 } IUpdateIDListVtbl;
36527 interface IUpdateIDList {
36528     CONST_VTBL IUpdateIDListVtbl* lpVtbl;
36529 };
36530 
36531 #ifdef COBJMACROS
36532 #ifndef WIDL_C_INLINE_WRAPPERS
36533 /*** IUnknown methods ***/
36534 #define IUpdateIDList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
36535 #define IUpdateIDList_AddRef(This) (This)->lpVtbl->AddRef(This)
36536 #define IUpdateIDList_Release(This) (This)->lpVtbl->Release(This)
36537 /*** IUpdateIDList methods ***/
36538 #define IUpdateIDList_Update(This,pbc,pidlIn,ppidlOut) (This)->lpVtbl->Update(This,pbc,pidlIn,ppidlOut)
36539 #else
36540 /*** IUnknown methods ***/
36541 static FORCEINLINE HRESULT IUpdateIDList_QueryInterface(IUpdateIDList* This,REFIID riid,void **ppvObject) {
36542     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
36543 }
36544 static FORCEINLINE ULONG IUpdateIDList_AddRef(IUpdateIDList* This) {
36545     return This->lpVtbl->AddRef(This);
36546 }
36547 static FORCEINLINE ULONG IUpdateIDList_Release(IUpdateIDList* This) {
36548     return This->lpVtbl->Release(This);
36549 }
36550 /*** IUpdateIDList methods ***/
36551 static FORCEINLINE HRESULT IUpdateIDList_Update(IUpdateIDList* This,IBindCtx *pbc,PCUITEMID_CHILD pidlIn,PITEMID_CHILD *ppidlOut) {
36552     return This->lpVtbl->Update(This,pbc,pidlIn,ppidlOut);
36553 }
36554 #endif
36555 #endif
36556 
36557 #endif
36558 
36559 HRESULT STDMETHODCALLTYPE IUpdateIDList_Update_Proxy(
36560     IUpdateIDList* This,
36561     IBindCtx *pbc,
36562     PCUITEMID_CHILD pidlIn,
36563     PITEMID_CHILD *ppidlOut);
36564 void __RPC_STUB IUpdateIDList_Update_Stub(
36565     IRpcStubBuffer* This,
36566     IRpcChannelBuffer* pRpcChannelBuffer,
36567     PRPC_MESSAGE pRpcMessage,
36568     DWORD* pdwStubPhase);
36569 
36570 #endif  /* __IUpdateIDList_INTERFACE_DEFINED__ */
36571 
36572 
36573 SHSTDAPI SetCurrentProcessExplicitAppUserModelID(PCWSTR AppID);
36574 SHSTDAPI GetCurrentProcessExplicitAppUserModelID(PWSTR *AppID);
36575 #endif
36576 
36577 /*****************************************************************************
36578  * IDesktopGadget interface
36579  */
36580 #ifndef __IDesktopGadget_INTERFACE_DEFINED__
36581 #define __IDesktopGadget_INTERFACE_DEFINED__
36582 
36583 DEFINE_GUID(IID_IDesktopGadget, 0xc1646bc4, 0xf298, 0x4f91, 0xa2,0x04, 0xeb,0x2d,0xd1,0x70,0x9d,0x1a);
36584 #if defined(__cplusplus) && !defined(CINTERFACE)
36585 MIDL_INTERFACE("c1646bc4-f298-4f91-a204-eb2dd1709d1a")
36586 IDesktopGadget : public IUnknown
36587 {
36588     virtual HRESULT STDMETHODCALLTYPE RunGadget(
36589         LPCWSTR gadgetPath) = 0;
36590 
36591 };
36592 #ifdef __CRT_UUID_DECL
36593 __CRT_UUID_DECL(IDesktopGadget, 0xc1646bc4, 0xf298, 0x4f91, 0xa2,0x04, 0xeb,0x2d,0xd1,0x70,0x9d,0x1a)
36594 #endif
36595 #else
36596 typedef struct IDesktopGadgetVtbl {
36597     BEGIN_INTERFACE
36598 
36599     /*** IUnknown methods ***/
36600     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
36601         IDesktopGadget* This,
36602         REFIID riid,
36603         void **ppvObject);
36604 
36605     ULONG (STDMETHODCALLTYPE *AddRef)(
36606         IDesktopGadget* This);
36607 
36608     ULONG (STDMETHODCALLTYPE *Release)(
36609         IDesktopGadget* This);
36610 
36611     /*** IDesktopGadget methods ***/
36612     HRESULT (STDMETHODCALLTYPE *RunGadget)(
36613         IDesktopGadget* This,
36614         LPCWSTR gadgetPath);
36615 
36616     END_INTERFACE
36617 } IDesktopGadgetVtbl;
36618 interface IDesktopGadget {
36619     CONST_VTBL IDesktopGadgetVtbl* lpVtbl;
36620 };
36621 
36622 #ifdef COBJMACROS
36623 #ifndef WIDL_C_INLINE_WRAPPERS
36624 /*** IUnknown methods ***/
36625 #define IDesktopGadget_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
36626 #define IDesktopGadget_AddRef(This) (This)->lpVtbl->AddRef(This)
36627 #define IDesktopGadget_Release(This) (This)->lpVtbl->Release(This)
36628 /*** IDesktopGadget methods ***/
36629 #define IDesktopGadget_RunGadget(This,gadgetPath) (This)->lpVtbl->RunGadget(This,gadgetPath)
36630 #else
36631 /*** IUnknown methods ***/
36632 static FORCEINLINE HRESULT IDesktopGadget_QueryInterface(IDesktopGadget* This,REFIID riid,void **ppvObject) {
36633     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
36634 }
36635 static FORCEINLINE ULONG IDesktopGadget_AddRef(IDesktopGadget* This) {
36636     return This->lpVtbl->AddRef(This);
36637 }
36638 static FORCEINLINE ULONG IDesktopGadget_Release(IDesktopGadget* This) {
36639     return This->lpVtbl->Release(This);
36640 }
36641 /*** IDesktopGadget methods ***/
36642 static FORCEINLINE HRESULT IDesktopGadget_RunGadget(IDesktopGadget* This,LPCWSTR gadgetPath) {
36643     return This->lpVtbl->RunGadget(This,gadgetPath);
36644 }
36645 #endif
36646 #endif
36647 
36648 #endif
36649 
36650 HRESULT STDMETHODCALLTYPE IDesktopGadget_RunGadget_Proxy(
36651     IDesktopGadget* This,
36652     LPCWSTR gadgetPath);
36653 void __RPC_STUB IDesktopGadget_RunGadget_Stub(
36654     IRpcStubBuffer* This,
36655     IRpcChannelBuffer* pRpcChannelBuffer,
36656     PRPC_MESSAGE pRpcMessage,
36657     DWORD* pdwStubPhase);
36658 
36659 #endif  /* __IDesktopGadget_INTERFACE_DEFINED__ */
36660 
36661 
36662 #if NTDDI_VERSION >= NTDDI_WIN8
36663 /*****************************************************************************
36664  * IDesktopWallpaper interface
36665  */
36666 #ifndef __IDesktopWallpaper_INTERFACE_DEFINED__
36667 #define __IDesktopWallpaper_INTERFACE_DEFINED__
36668 
36669 typedef enum DESKTOP_SLIDESHOW_OPTIONS {
36670     DSO_SHUFFLEIMAGES = 0x1
36671 } DESKTOP_SLIDESHOW_OPTIONS;
36672 
36673 DEFINE_ENUM_FLAG_OPERATORS(DESKTOP_SLIDESHOW_OPTIONS);
36674 
36675 typedef enum DESKTOP_SLIDESHOW_STATE {
36676     DSS_ENABLED = 0x1,
36677     DSS_SLIDESHOW = 0x2,
36678     DSS_DISABLED_BY_REMOTE_SESSION = 0x4
36679 } DESKTOP_SLIDESHOW_STATE;
36680 
36681 DEFINE_ENUM_FLAG_OPERATORS(DESKTOP_SLIDESHOW_STATE);
36682 
36683 typedef enum DESKTOP_SLIDESHOW_DIRECTION {
36684     DSD_FORWARD = 0,
36685     DSD_BACKWARD = 1
36686 } DESKTOP_SLIDESHOW_DIRECTION;
36687 
36688 typedef enum DESKTOP_WALLPAPER_POSITION {
36689     DWPOS_CENTER = 0,
36690     DWPOS_TILE = 1,
36691     DWPOS_STRETCH = 2,
36692     DWPOS_FIT = 3,
36693     DWPOS_FILL = 4,
36694     DWPOS_SPAN = 5
36695 } DESKTOP_WALLPAPER_POSITION;
36696 
36697 DEFINE_GUID(IID_IDesktopWallpaper, 0xb92b56a9, 0x8b55, 0x4e14, 0x9a,0x89, 0x01,0x99,0xbb,0xb6,0xf9,0x3b);
36698 #if defined(__cplusplus) && !defined(CINTERFACE)
36699 MIDL_INTERFACE("b92b56a9-8b55-4e14-9a89-0199bbb6f93b")
36700 IDesktopWallpaper : public IUnknown
36701 {
36702     virtual HRESULT STDMETHODCALLTYPE SetWallpaper(
36703         LPCWSTR monitorID,
36704         LPCWSTR wallpaper) = 0;
36705 
36706     virtual HRESULT STDMETHODCALLTYPE GetWallpaper(
36707         LPCWSTR monitorID,
36708         LPWSTR *wallpaper) = 0;
36709 
36710     virtual HRESULT STDMETHODCALLTYPE GetMonitorDevicePathAt(
36711         UINT monitorIndex,
36712         LPWSTR *monitorID) = 0;
36713 
36714     virtual HRESULT STDMETHODCALLTYPE GetMonitorDevicePathCount(
36715         UINT *count) = 0;
36716 
36717     virtual HRESULT STDMETHODCALLTYPE GetMonitorRECT(
36718         LPCWSTR monitorID,
36719         RECT *displayRect) = 0;
36720 
36721     virtual HRESULT STDMETHODCALLTYPE SetBackgroundColor(
36722         COLORREF color) = 0;
36723 
36724     virtual HRESULT STDMETHODCALLTYPE GetBackgroundColor(
36725         COLORREF *color) = 0;
36726 
36727     virtual HRESULT STDMETHODCALLTYPE SetPosition(
36728         DESKTOP_WALLPAPER_POSITION position) = 0;
36729 
36730     virtual HRESULT STDMETHODCALLTYPE GetPosition(
36731         DESKTOP_WALLPAPER_POSITION *position) = 0;
36732 
36733     virtual HRESULT STDMETHODCALLTYPE SetSlideshow(
36734         IShellItemArray *items) = 0;
36735 
36736     virtual HRESULT STDMETHODCALLTYPE GetSlideshow(
36737         IShellItemArray **items) = 0;
36738 
36739     virtual HRESULT STDMETHODCALLTYPE SetSlideshowOptions(
36740         DESKTOP_SLIDESHOW_OPTIONS options,
36741         UINT slideshowTick) = 0;
36742 
36743     virtual HRESULT STDMETHODCALLTYPE GetSlideshowOptions(
36744         DESKTOP_SLIDESHOW_OPTIONS *options,
36745         UINT *slideshowTick) = 0;
36746 
36747     virtual HRESULT STDMETHODCALLTYPE AdvanceSlideshow(
36748         LPCWSTR monitorID,
36749         DESKTOP_SLIDESHOW_DIRECTION direction) = 0;
36750 
36751     virtual HRESULT STDMETHODCALLTYPE GetStatus(
36752         DESKTOP_SLIDESHOW_STATE *state) = 0;
36753 
36754     virtual HRESULT STDMETHODCALLTYPE Enable(
36755         WINBOOL enable) = 0;
36756 
36757 };
36758 #ifdef __CRT_UUID_DECL
36759 __CRT_UUID_DECL(IDesktopWallpaper, 0xb92b56a9, 0x8b55, 0x4e14, 0x9a,0x89, 0x01,0x99,0xbb,0xb6,0xf9,0x3b)
36760 #endif
36761 #else
36762 typedef struct IDesktopWallpaperVtbl {
36763     BEGIN_INTERFACE
36764 
36765     /*** IUnknown methods ***/
36766     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
36767         IDesktopWallpaper* This,
36768         REFIID riid,
36769         void **ppvObject);
36770 
36771     ULONG (STDMETHODCALLTYPE *AddRef)(
36772         IDesktopWallpaper* This);
36773 
36774     ULONG (STDMETHODCALLTYPE *Release)(
36775         IDesktopWallpaper* This);
36776 
36777     /*** IDesktopWallpaper methods ***/
36778     HRESULT (STDMETHODCALLTYPE *SetWallpaper)(
36779         IDesktopWallpaper* This,
36780         LPCWSTR monitorID,
36781         LPCWSTR wallpaper);
36782 
36783     HRESULT (STDMETHODCALLTYPE *GetWallpaper)(
36784         IDesktopWallpaper* This,
36785         LPCWSTR monitorID,
36786         LPWSTR *wallpaper);
36787 
36788     HRESULT (STDMETHODCALLTYPE *GetMonitorDevicePathAt)(
36789         IDesktopWallpaper* This,
36790         UINT monitorIndex,
36791         LPWSTR *monitorID);
36792 
36793     HRESULT (STDMETHODCALLTYPE *GetMonitorDevicePathCount)(
36794         IDesktopWallpaper* This,
36795         UINT *count);
36796 
36797     HRESULT (STDMETHODCALLTYPE *GetMonitorRECT)(
36798         IDesktopWallpaper* This,
36799         LPCWSTR monitorID,
36800         RECT *displayRect);
36801 
36802     HRESULT (STDMETHODCALLTYPE *SetBackgroundColor)(
36803         IDesktopWallpaper* This,
36804         COLORREF color);
36805 
36806     HRESULT (STDMETHODCALLTYPE *GetBackgroundColor)(
36807         IDesktopWallpaper* This,
36808         COLORREF *color);
36809 
36810     HRESULT (STDMETHODCALLTYPE *SetPosition)(
36811         IDesktopWallpaper* This,
36812         DESKTOP_WALLPAPER_POSITION position);
36813 
36814     HRESULT (STDMETHODCALLTYPE *GetPosition)(
36815         IDesktopWallpaper* This,
36816         DESKTOP_WALLPAPER_POSITION *position);
36817 
36818     HRESULT (STDMETHODCALLTYPE *SetSlideshow)(
36819         IDesktopWallpaper* This,
36820         IShellItemArray *items);
36821 
36822     HRESULT (STDMETHODCALLTYPE *GetSlideshow)(
36823         IDesktopWallpaper* This,
36824         IShellItemArray **items);
36825 
36826     HRESULT (STDMETHODCALLTYPE *SetSlideshowOptions)(
36827         IDesktopWallpaper* This,
36828         DESKTOP_SLIDESHOW_OPTIONS options,
36829         UINT slideshowTick);
36830 
36831     HRESULT (STDMETHODCALLTYPE *GetSlideshowOptions)(
36832         IDesktopWallpaper* This,
36833         DESKTOP_SLIDESHOW_OPTIONS *options,
36834         UINT *slideshowTick);
36835 
36836     HRESULT (STDMETHODCALLTYPE *AdvanceSlideshow)(
36837         IDesktopWallpaper* This,
36838         LPCWSTR monitorID,
36839         DESKTOP_SLIDESHOW_DIRECTION direction);
36840 
36841     HRESULT (STDMETHODCALLTYPE *GetStatus)(
36842         IDesktopWallpaper* This,
36843         DESKTOP_SLIDESHOW_STATE *state);
36844 
36845     HRESULT (STDMETHODCALLTYPE *Enable)(
36846         IDesktopWallpaper* This,
36847         WINBOOL enable);
36848 
36849     END_INTERFACE
36850 } IDesktopWallpaperVtbl;
36851 interface IDesktopWallpaper {
36852     CONST_VTBL IDesktopWallpaperVtbl* lpVtbl;
36853 };
36854 
36855 #ifdef COBJMACROS
36856 #ifndef WIDL_C_INLINE_WRAPPERS
36857 /*** IUnknown methods ***/
36858 #define IDesktopWallpaper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
36859 #define IDesktopWallpaper_AddRef(This) (This)->lpVtbl->AddRef(This)
36860 #define IDesktopWallpaper_Release(This) (This)->lpVtbl->Release(This)
36861 /*** IDesktopWallpaper methods ***/
36862 #define IDesktopWallpaper_SetWallpaper(This,monitorID,wallpaper) (This)->lpVtbl->SetWallpaper(This,monitorID,wallpaper)
36863 #define IDesktopWallpaper_GetWallpaper(This,monitorID,wallpaper) (This)->lpVtbl->GetWallpaper(This,monitorID,wallpaper)
36864 #define IDesktopWallpaper_GetMonitorDevicePathAt(This,monitorIndex,monitorID) (This)->lpVtbl->GetMonitorDevicePathAt(This,monitorIndex,monitorID)
36865 #define IDesktopWallpaper_GetMonitorDevicePathCount(This,count) (This)->lpVtbl->GetMonitorDevicePathCount(This,count)
36866 #define IDesktopWallpaper_GetMonitorRECT(This,monitorID,displayRect) (This)->lpVtbl->GetMonitorRECT(This,monitorID,displayRect)
36867 #define IDesktopWallpaper_SetBackgroundColor(This,color) (This)->lpVtbl->SetBackgroundColor(This,color)
36868 #define IDesktopWallpaper_GetBackgroundColor(This,color) (This)->lpVtbl->GetBackgroundColor(This,color)
36869 #define IDesktopWallpaper_SetPosition(This,position) (This)->lpVtbl->SetPosition(This,position)
36870 #define IDesktopWallpaper_GetPosition(This,position) (This)->lpVtbl->GetPosition(This,position)
36871 #define IDesktopWallpaper_SetSlideshow(This,items) (This)->lpVtbl->SetSlideshow(This,items)
36872 #define IDesktopWallpaper_GetSlideshow(This,items) (This)->lpVtbl->GetSlideshow(This,items)
36873 #define IDesktopWallpaper_SetSlideshowOptions(This,options,slideshowTick) (This)->lpVtbl->SetSlideshowOptions(This,options,slideshowTick)
36874 #define IDesktopWallpaper_GetSlideshowOptions(This,options,slideshowTick) (This)->lpVtbl->GetSlideshowOptions(This,options,slideshowTick)
36875 #define IDesktopWallpaper_AdvanceSlideshow(This,monitorID,direction) (This)->lpVtbl->AdvanceSlideshow(This,monitorID,direction)
36876 #define IDesktopWallpaper_GetStatus(This,state) (This)->lpVtbl->GetStatus(This,state)
36877 #define IDesktopWallpaper_Enable(This,enable) (This)->lpVtbl->Enable(This,enable)
36878 #else
36879 /*** IUnknown methods ***/
36880 static FORCEINLINE HRESULT IDesktopWallpaper_QueryInterface(IDesktopWallpaper* This,REFIID riid,void **ppvObject) {
36881     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
36882 }
36883 static FORCEINLINE ULONG IDesktopWallpaper_AddRef(IDesktopWallpaper* This) {
36884     return This->lpVtbl->AddRef(This);
36885 }
36886 static FORCEINLINE ULONG IDesktopWallpaper_Release(IDesktopWallpaper* This) {
36887     return This->lpVtbl->Release(This);
36888 }
36889 /*** IDesktopWallpaper methods ***/
36890 static FORCEINLINE HRESULT IDesktopWallpaper_SetWallpaper(IDesktopWallpaper* This,LPCWSTR monitorID,LPCWSTR wallpaper) {
36891     return This->lpVtbl->SetWallpaper(This,monitorID,wallpaper);
36892 }
36893 static FORCEINLINE HRESULT IDesktopWallpaper_GetWallpaper(IDesktopWallpaper* This,LPCWSTR monitorID,LPWSTR *wallpaper) {
36894     return This->lpVtbl->GetWallpaper(This,monitorID,wallpaper);
36895 }
36896 static FORCEINLINE HRESULT IDesktopWallpaper_GetMonitorDevicePathAt(IDesktopWallpaper* This,UINT monitorIndex,LPWSTR *monitorID) {
36897     return This->lpVtbl->GetMonitorDevicePathAt(This,monitorIndex,monitorID);
36898 }
36899 static FORCEINLINE HRESULT IDesktopWallpaper_GetMonitorDevicePathCount(IDesktopWallpaper* This,UINT *count) {
36900     return This->lpVtbl->GetMonitorDevicePathCount(This,count);
36901 }
36902 static FORCEINLINE HRESULT IDesktopWallpaper_GetMonitorRECT(IDesktopWallpaper* This,LPCWSTR monitorID,RECT *displayRect) {
36903     return This->lpVtbl->GetMonitorRECT(This,monitorID,displayRect);
36904 }
36905 static FORCEINLINE HRESULT IDesktopWallpaper_SetBackgroundColor(IDesktopWallpaper* This,COLORREF color) {
36906     return This->lpVtbl->SetBackgroundColor(This,color);
36907 }
36908 static FORCEINLINE HRESULT IDesktopWallpaper_GetBackgroundColor(IDesktopWallpaper* This,COLORREF *color) {
36909     return This->lpVtbl->GetBackgroundColor(This,color);
36910 }
36911 static FORCEINLINE HRESULT IDesktopWallpaper_SetPosition(IDesktopWallpaper* This,DESKTOP_WALLPAPER_POSITION position) {
36912     return This->lpVtbl->SetPosition(This,position);
36913 }
36914 static FORCEINLINE HRESULT IDesktopWallpaper_GetPosition(IDesktopWallpaper* This,DESKTOP_WALLPAPER_POSITION *position) {
36915     return This->lpVtbl->GetPosition(This,position);
36916 }
36917 static FORCEINLINE HRESULT IDesktopWallpaper_SetSlideshow(IDesktopWallpaper* This,IShellItemArray *items) {
36918     return This->lpVtbl->SetSlideshow(This,items);
36919 }
36920 static FORCEINLINE HRESULT IDesktopWallpaper_GetSlideshow(IDesktopWallpaper* This,IShellItemArray **items) {
36921     return This->lpVtbl->GetSlideshow(This,items);
36922 }
36923 static FORCEINLINE HRESULT IDesktopWallpaper_SetSlideshowOptions(IDesktopWallpaper* This,DESKTOP_SLIDESHOW_OPTIONS options,UINT slideshowTick) {
36924     return This->lpVtbl->SetSlideshowOptions(This,options,slideshowTick);
36925 }
36926 static FORCEINLINE HRESULT IDesktopWallpaper_GetSlideshowOptions(IDesktopWallpaper* This,DESKTOP_SLIDESHOW_OPTIONS *options,UINT *slideshowTick) {
36927     return This->lpVtbl->GetSlideshowOptions(This,options,slideshowTick);
36928 }
36929 static FORCEINLINE HRESULT IDesktopWallpaper_AdvanceSlideshow(IDesktopWallpaper* This,LPCWSTR monitorID,DESKTOP_SLIDESHOW_DIRECTION direction) {
36930     return This->lpVtbl->AdvanceSlideshow(This,monitorID,direction);
36931 }
36932 static FORCEINLINE HRESULT IDesktopWallpaper_GetStatus(IDesktopWallpaper* This,DESKTOP_SLIDESHOW_STATE *state) {
36933     return This->lpVtbl->GetStatus(This,state);
36934 }
36935 static FORCEINLINE HRESULT IDesktopWallpaper_Enable(IDesktopWallpaper* This,WINBOOL enable) {
36936     return This->lpVtbl->Enable(This,enable);
36937 }
36938 #endif
36939 #endif
36940 
36941 #endif
36942 
36943 HRESULT STDMETHODCALLTYPE IDesktopWallpaper_SetWallpaper_Proxy(
36944     IDesktopWallpaper* This,
36945     LPCWSTR monitorID,
36946     LPCWSTR wallpaper);
36947 void __RPC_STUB IDesktopWallpaper_SetWallpaper_Stub(
36948     IRpcStubBuffer* This,
36949     IRpcChannelBuffer* pRpcChannelBuffer,
36950     PRPC_MESSAGE pRpcMessage,
36951     DWORD* pdwStubPhase);
36952 HRESULT STDMETHODCALLTYPE IDesktopWallpaper_GetWallpaper_Proxy(
36953     IDesktopWallpaper* This,
36954     LPCWSTR monitorID,
36955     LPWSTR *wallpaper);
36956 void __RPC_STUB IDesktopWallpaper_GetWallpaper_Stub(
36957     IRpcStubBuffer* This,
36958     IRpcChannelBuffer* pRpcChannelBuffer,
36959     PRPC_MESSAGE pRpcMessage,
36960     DWORD* pdwStubPhase);
36961 HRESULT STDMETHODCALLTYPE IDesktopWallpaper_GetMonitorDevicePathAt_Proxy(
36962     IDesktopWallpaper* This,
36963     UINT monitorIndex,
36964     LPWSTR *monitorID);
36965 void __RPC_STUB IDesktopWallpaper_GetMonitorDevicePathAt_Stub(
36966     IRpcStubBuffer* This,
36967     IRpcChannelBuffer* pRpcChannelBuffer,
36968     PRPC_MESSAGE pRpcMessage,
36969     DWORD* pdwStubPhase);
36970 HRESULT STDMETHODCALLTYPE IDesktopWallpaper_GetMonitorDevicePathCount_Proxy(
36971     IDesktopWallpaper* This,
36972     UINT *count);
36973 void __RPC_STUB IDesktopWallpaper_GetMonitorDevicePathCount_Stub(
36974     IRpcStubBuffer* This,
36975     IRpcChannelBuffer* pRpcChannelBuffer,
36976     PRPC_MESSAGE pRpcMessage,
36977     DWORD* pdwStubPhase);
36978 HRESULT STDMETHODCALLTYPE IDesktopWallpaper_GetMonitorRECT_Proxy(
36979     IDesktopWallpaper* This,
36980     LPCWSTR monitorID,
36981     RECT *displayRect);
36982 void __RPC_STUB IDesktopWallpaper_GetMonitorRECT_Stub(
36983     IRpcStubBuffer* This,
36984     IRpcChannelBuffer* pRpcChannelBuffer,
36985     PRPC_MESSAGE pRpcMessage,
36986     DWORD* pdwStubPhase);
36987 HRESULT STDMETHODCALLTYPE IDesktopWallpaper_SetBackgroundColor_Proxy(
36988     IDesktopWallpaper* This,
36989     COLORREF color);
36990 void __RPC_STUB IDesktopWallpaper_SetBackgroundColor_Stub(
36991     IRpcStubBuffer* This,
36992     IRpcChannelBuffer* pRpcChannelBuffer,
36993     PRPC_MESSAGE pRpcMessage,
36994     DWORD* pdwStubPhase);
36995 HRESULT STDMETHODCALLTYPE IDesktopWallpaper_GetBackgroundColor_Proxy(
36996     IDesktopWallpaper* This,
36997     COLORREF *color);
36998 void __RPC_STUB IDesktopWallpaper_GetBackgroundColor_Stub(
36999     IRpcStubBuffer* This,
37000     IRpcChannelBuffer* pRpcChannelBuffer,
37001     PRPC_MESSAGE pRpcMessage,
37002     DWORD* pdwStubPhase);
37003 HRESULT STDMETHODCALLTYPE IDesktopWallpaper_SetPosition_Proxy(
37004     IDesktopWallpaper* This,
37005     DESKTOP_WALLPAPER_POSITION position);
37006 void __RPC_STUB IDesktopWallpaper_SetPosition_Stub(
37007     IRpcStubBuffer* This,
37008     IRpcChannelBuffer* pRpcChannelBuffer,
37009     PRPC_MESSAGE pRpcMessage,
37010     DWORD* pdwStubPhase);
37011 HRESULT STDMETHODCALLTYPE IDesktopWallpaper_GetPosition_Proxy(
37012     IDesktopWallpaper* This,
37013     DESKTOP_WALLPAPER_POSITION *position);
37014 void __RPC_STUB IDesktopWallpaper_GetPosition_Stub(
37015     IRpcStubBuffer* This,
37016     IRpcChannelBuffer* pRpcChannelBuffer,
37017     PRPC_MESSAGE pRpcMessage,
37018     DWORD* pdwStubPhase);
37019 HRESULT STDMETHODCALLTYPE IDesktopWallpaper_SetSlideshow_Proxy(
37020     IDesktopWallpaper* This,
37021     IShellItemArray *items);
37022 void __RPC_STUB IDesktopWallpaper_SetSlideshow_Stub(
37023     IRpcStubBuffer* This,
37024     IRpcChannelBuffer* pRpcChannelBuffer,
37025     PRPC_MESSAGE pRpcMessage,
37026     DWORD* pdwStubPhase);
37027 HRESULT STDMETHODCALLTYPE IDesktopWallpaper_GetSlideshow_Proxy(
37028     IDesktopWallpaper* This,
37029     IShellItemArray **items);
37030 void __RPC_STUB IDesktopWallpaper_GetSlideshow_Stub(
37031     IRpcStubBuffer* This,
37032     IRpcChannelBuffer* pRpcChannelBuffer,
37033     PRPC_MESSAGE pRpcMessage,
37034     DWORD* pdwStubPhase);
37035 HRESULT STDMETHODCALLTYPE IDesktopWallpaper_SetSlideshowOptions_Proxy(
37036     IDesktopWallpaper* This,
37037     DESKTOP_SLIDESHOW_OPTIONS options,
37038     UINT slideshowTick);
37039 void __RPC_STUB IDesktopWallpaper_SetSlideshowOptions_Stub(
37040     IRpcStubBuffer* This,
37041     IRpcChannelBuffer* pRpcChannelBuffer,
37042     PRPC_MESSAGE pRpcMessage,
37043     DWORD* pdwStubPhase);
37044 HRESULT STDMETHODCALLTYPE IDesktopWallpaper_GetSlideshowOptions_Proxy(
37045     IDesktopWallpaper* This,
37046     DESKTOP_SLIDESHOW_OPTIONS *options,
37047     UINT *slideshowTick);
37048 void __RPC_STUB IDesktopWallpaper_GetSlideshowOptions_Stub(
37049     IRpcStubBuffer* This,
37050     IRpcChannelBuffer* pRpcChannelBuffer,
37051     PRPC_MESSAGE pRpcMessage,
37052     DWORD* pdwStubPhase);
37053 HRESULT STDMETHODCALLTYPE IDesktopWallpaper_AdvanceSlideshow_Proxy(
37054     IDesktopWallpaper* This,
37055     LPCWSTR monitorID,
37056     DESKTOP_SLIDESHOW_DIRECTION direction);
37057 void __RPC_STUB IDesktopWallpaper_AdvanceSlideshow_Stub(
37058     IRpcStubBuffer* This,
37059     IRpcChannelBuffer* pRpcChannelBuffer,
37060     PRPC_MESSAGE pRpcMessage,
37061     DWORD* pdwStubPhase);
37062 HRESULT STDMETHODCALLTYPE IDesktopWallpaper_GetStatus_Proxy(
37063     IDesktopWallpaper* This,
37064     DESKTOP_SLIDESHOW_STATE *state);
37065 void __RPC_STUB IDesktopWallpaper_GetStatus_Stub(
37066     IRpcStubBuffer* This,
37067     IRpcChannelBuffer* pRpcChannelBuffer,
37068     PRPC_MESSAGE pRpcMessage,
37069     DWORD* pdwStubPhase);
37070 HRESULT STDMETHODCALLTYPE IDesktopWallpaper_Enable_Proxy(
37071     IDesktopWallpaper* This,
37072     WINBOOL enable);
37073 void __RPC_STUB IDesktopWallpaper_Enable_Stub(
37074     IRpcStubBuffer* This,
37075     IRpcChannelBuffer* pRpcChannelBuffer,
37076     PRPC_MESSAGE pRpcMessage,
37077     DWORD* pdwStubPhase);
37078 
37079 #endif  /* __IDesktopWallpaper_INTERFACE_DEFINED__ */
37080 
37081 #endif
37082 
37083 #define HOMEGROUP_SECURITY_GROUP_MULTI L"HUG"
37084 #define HOMEGROUP_SECURITY_GROUP L"HomeUsers"
37085 
37086 /*****************************************************************************
37087  * IHomeGroup interface
37088  */
37089 #ifndef __IHomeGroup_INTERFACE_DEFINED__
37090 #define __IHomeGroup_INTERFACE_DEFINED__
37091 
37092 typedef enum HOMEGROUPSHARINGCHOICES {
37093     HGSC_NONE = 0x0,
37094     HGSC_MUSICLIBRARY = 0x1,
37095     HGSC_PICTURESLIBRARY = 0x2,
37096     HGSC_VIDEOSLIBRARY = 0x4,
37097     HGSC_DOCUMENTSLIBRARY = 0x8,
37098     HGSC_PRINTERS = 0x10
37099 } HOMEGROUPSHARINGCHOICES;
37100 
37101 DEFINE_ENUM_FLAG_OPERATORS(HOMEGROUPSHARINGCHOICES)
37102 
37103 DEFINE_GUID(IID_IHomeGroup, 0x7a3bd1d9, 0x35a9, 0x4fb3, 0xa4,0x67, 0xf4,0x8c,0xac,0x35,0xe2,0xd0);
37104 #if defined(__cplusplus) && !defined(CINTERFACE)
37105 MIDL_INTERFACE("7a3bd1d9-35a9-4fb3-a467-f48cac35e2d0")
37106 IHomeGroup : public IUnknown
37107 {
37108     virtual HRESULT STDMETHODCALLTYPE IsMember(
37109         WINBOOL *member) = 0;
37110 
37111     virtual HRESULT STDMETHODCALLTYPE ShowSharingWizard(
37112         HWND owner,
37113         HOMEGROUPSHARINGCHOICES *sharingchoices) = 0;
37114 
37115 };
37116 #ifdef __CRT_UUID_DECL
37117 __CRT_UUID_DECL(IHomeGroup, 0x7a3bd1d9, 0x35a9, 0x4fb3, 0xa4,0x67, 0xf4,0x8c,0xac,0x35,0xe2,0xd0)
37118 #endif
37119 #else
37120 typedef struct IHomeGroupVtbl {
37121     BEGIN_INTERFACE
37122 
37123     /*** IUnknown methods ***/
37124     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
37125         IHomeGroup* This,
37126         REFIID riid,
37127         void **ppvObject);
37128 
37129     ULONG (STDMETHODCALLTYPE *AddRef)(
37130         IHomeGroup* This);
37131 
37132     ULONG (STDMETHODCALLTYPE *Release)(
37133         IHomeGroup* This);
37134 
37135     /*** IHomeGroup methods ***/
37136     HRESULT (STDMETHODCALLTYPE *IsMember)(
37137         IHomeGroup* This,
37138         WINBOOL *member);
37139 
37140     HRESULT (STDMETHODCALLTYPE *ShowSharingWizard)(
37141         IHomeGroup* This,
37142         HWND owner,
37143         HOMEGROUPSHARINGCHOICES *sharingchoices);
37144 
37145     END_INTERFACE
37146 } IHomeGroupVtbl;
37147 interface IHomeGroup {
37148     CONST_VTBL IHomeGroupVtbl* lpVtbl;
37149 };
37150 
37151 #ifdef COBJMACROS
37152 #ifndef WIDL_C_INLINE_WRAPPERS
37153 /*** IUnknown methods ***/
37154 #define IHomeGroup_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
37155 #define IHomeGroup_AddRef(This) (This)->lpVtbl->AddRef(This)
37156 #define IHomeGroup_Release(This) (This)->lpVtbl->Release(This)
37157 /*** IHomeGroup methods ***/
37158 #define IHomeGroup_IsMember(This,member) (This)->lpVtbl->IsMember(This,member)
37159 #define IHomeGroup_ShowSharingWizard(This,owner,sharingchoices) (This)->lpVtbl->ShowSharingWizard(This,owner,sharingchoices)
37160 #else
37161 /*** IUnknown methods ***/
37162 static FORCEINLINE HRESULT IHomeGroup_QueryInterface(IHomeGroup* This,REFIID riid,void **ppvObject) {
37163     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
37164 }
37165 static FORCEINLINE ULONG IHomeGroup_AddRef(IHomeGroup* This) {
37166     return This->lpVtbl->AddRef(This);
37167 }
37168 static FORCEINLINE ULONG IHomeGroup_Release(IHomeGroup* This) {
37169     return This->lpVtbl->Release(This);
37170 }
37171 /*** IHomeGroup methods ***/
37172 static FORCEINLINE HRESULT IHomeGroup_IsMember(IHomeGroup* This,WINBOOL *member) {
37173     return This->lpVtbl->IsMember(This,member);
37174 }
37175 static FORCEINLINE HRESULT IHomeGroup_ShowSharingWizard(IHomeGroup* This,HWND owner,HOMEGROUPSHARINGCHOICES *sharingchoices) {
37176     return This->lpVtbl->ShowSharingWizard(This,owner,sharingchoices);
37177 }
37178 #endif
37179 #endif
37180 
37181 #endif
37182 
37183 HRESULT STDMETHODCALLTYPE IHomeGroup_IsMember_Proxy(
37184     IHomeGroup* This,
37185     WINBOOL *member);
37186 void __RPC_STUB IHomeGroup_IsMember_Stub(
37187     IRpcStubBuffer* This,
37188     IRpcChannelBuffer* pRpcChannelBuffer,
37189     PRPC_MESSAGE pRpcMessage,
37190     DWORD* pdwStubPhase);
37191 HRESULT STDMETHODCALLTYPE IHomeGroup_ShowSharingWizard_Proxy(
37192     IHomeGroup* This,
37193     HWND owner,
37194     HOMEGROUPSHARINGCHOICES *sharingchoices);
37195 void __RPC_STUB IHomeGroup_ShowSharingWizard_Stub(
37196     IRpcStubBuffer* This,
37197     IRpcChannelBuffer* pRpcChannelBuffer,
37198     PRPC_MESSAGE pRpcMessage,
37199     DWORD* pdwStubPhase);
37200 
37201 #endif  /* __IHomeGroup_INTERFACE_DEFINED__ */
37202 
37203 
37204 /*****************************************************************************
37205  * IInitializeWithPropertyStore interface
37206  */
37207 #ifndef __IInitializeWithPropertyStore_INTERFACE_DEFINED__
37208 #define __IInitializeWithPropertyStore_INTERFACE_DEFINED__
37209 
37210 DEFINE_GUID(IID_IInitializeWithPropertyStore, 0xc3e12eb5, 0x7d8d, 0x44f8, 0xb6,0xdd, 0x0e,0x77,0xb3,0x4d,0x6d,0xe4);
37211 #if defined(__cplusplus) && !defined(CINTERFACE)
37212 MIDL_INTERFACE("c3e12eb5-7d8d-44f8-b6dd-0e77b34d6de4")
37213 IInitializeWithPropertyStore : public IUnknown
37214 {
37215     virtual HRESULT STDMETHODCALLTYPE Initialize(
37216         IPropertyStore *pps) = 0;
37217 
37218 };
37219 #ifdef __CRT_UUID_DECL
37220 __CRT_UUID_DECL(IInitializeWithPropertyStore, 0xc3e12eb5, 0x7d8d, 0x44f8, 0xb6,0xdd, 0x0e,0x77,0xb3,0x4d,0x6d,0xe4)
37221 #endif
37222 #else
37223 typedef struct IInitializeWithPropertyStoreVtbl {
37224     BEGIN_INTERFACE
37225 
37226     /*** IUnknown methods ***/
37227     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
37228         IInitializeWithPropertyStore* This,
37229         REFIID riid,
37230         void **ppvObject);
37231 
37232     ULONG (STDMETHODCALLTYPE *AddRef)(
37233         IInitializeWithPropertyStore* This);
37234 
37235     ULONG (STDMETHODCALLTYPE *Release)(
37236         IInitializeWithPropertyStore* This);
37237 
37238     /*** IInitializeWithPropertyStore methods ***/
37239     HRESULT (STDMETHODCALLTYPE *Initialize)(
37240         IInitializeWithPropertyStore* This,
37241         IPropertyStore *pps);
37242 
37243     END_INTERFACE
37244 } IInitializeWithPropertyStoreVtbl;
37245 interface IInitializeWithPropertyStore {
37246     CONST_VTBL IInitializeWithPropertyStoreVtbl* lpVtbl;
37247 };
37248 
37249 #ifdef COBJMACROS
37250 #ifndef WIDL_C_INLINE_WRAPPERS
37251 /*** IUnknown methods ***/
37252 #define IInitializeWithPropertyStore_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
37253 #define IInitializeWithPropertyStore_AddRef(This) (This)->lpVtbl->AddRef(This)
37254 #define IInitializeWithPropertyStore_Release(This) (This)->lpVtbl->Release(This)
37255 /*** IInitializeWithPropertyStore methods ***/
37256 #define IInitializeWithPropertyStore_Initialize(This,pps) (This)->lpVtbl->Initialize(This,pps)
37257 #else
37258 /*** IUnknown methods ***/
37259 static FORCEINLINE HRESULT IInitializeWithPropertyStore_QueryInterface(IInitializeWithPropertyStore* This,REFIID riid,void **ppvObject) {
37260     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
37261 }
37262 static FORCEINLINE ULONG IInitializeWithPropertyStore_AddRef(IInitializeWithPropertyStore* This) {
37263     return This->lpVtbl->AddRef(This);
37264 }
37265 static FORCEINLINE ULONG IInitializeWithPropertyStore_Release(IInitializeWithPropertyStore* This) {
37266     return This->lpVtbl->Release(This);
37267 }
37268 /*** IInitializeWithPropertyStore methods ***/
37269 static FORCEINLINE HRESULT IInitializeWithPropertyStore_Initialize(IInitializeWithPropertyStore* This,IPropertyStore *pps) {
37270     return This->lpVtbl->Initialize(This,pps);
37271 }
37272 #endif
37273 #endif
37274 
37275 #endif
37276 
37277 HRESULT STDMETHODCALLTYPE IInitializeWithPropertyStore_Initialize_Proxy(
37278     IInitializeWithPropertyStore* This,
37279     IPropertyStore *pps);
37280 void __RPC_STUB IInitializeWithPropertyStore_Initialize_Stub(
37281     IRpcStubBuffer* This,
37282     IRpcChannelBuffer* pRpcChannelBuffer,
37283     PRPC_MESSAGE pRpcMessage,
37284     DWORD* pdwStubPhase);
37285 
37286 #endif  /* __IInitializeWithPropertyStore_INTERFACE_DEFINED__ */
37287 
37288 
37289 /*****************************************************************************
37290  * IOpenSearchSource interface
37291  */
37292 #ifndef __IOpenSearchSource_INTERFACE_DEFINED__
37293 #define __IOpenSearchSource_INTERFACE_DEFINED__
37294 
37295 DEFINE_GUID(IID_IOpenSearchSource, 0xf0ee7333, 0xe6fc, 0x479b, 0x9f,0x25, 0xa8,0x60,0xc2,0x34,0xa3,0x8e);
37296 #if defined(__cplusplus) && !defined(CINTERFACE)
37297 MIDL_INTERFACE("f0ee7333-e6fc-479b-9f25-a860c234a38e")
37298 IOpenSearchSource : public IUnknown
37299 {
37300     virtual HRESULT STDMETHODCALLTYPE GetResults(
37301         HWND hwnd,
37302         LPCWSTR pszQuery,
37303         DWORD dwStartIndex,
37304         DWORD dwCount,
37305         REFIID riid,
37306         void **ppv) = 0;
37307 
37308 };
37309 #ifdef __CRT_UUID_DECL
37310 __CRT_UUID_DECL(IOpenSearchSource, 0xf0ee7333, 0xe6fc, 0x479b, 0x9f,0x25, 0xa8,0x60,0xc2,0x34,0xa3,0x8e)
37311 #endif
37312 #else
37313 typedef struct IOpenSearchSourceVtbl {
37314     BEGIN_INTERFACE
37315 
37316     /*** IUnknown methods ***/
37317     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
37318         IOpenSearchSource* This,
37319         REFIID riid,
37320         void **ppvObject);
37321 
37322     ULONG (STDMETHODCALLTYPE *AddRef)(
37323         IOpenSearchSource* This);
37324 
37325     ULONG (STDMETHODCALLTYPE *Release)(
37326         IOpenSearchSource* This);
37327 
37328     /*** IOpenSearchSource methods ***/
37329     HRESULT (STDMETHODCALLTYPE *GetResults)(
37330         IOpenSearchSource* This,
37331         HWND hwnd,
37332         LPCWSTR pszQuery,
37333         DWORD dwStartIndex,
37334         DWORD dwCount,
37335         REFIID riid,
37336         void **ppv);
37337 
37338     END_INTERFACE
37339 } IOpenSearchSourceVtbl;
37340 interface IOpenSearchSource {
37341     CONST_VTBL IOpenSearchSourceVtbl* lpVtbl;
37342 };
37343 
37344 #ifdef COBJMACROS
37345 #ifndef WIDL_C_INLINE_WRAPPERS
37346 /*** IUnknown methods ***/
37347 #define IOpenSearchSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
37348 #define IOpenSearchSource_AddRef(This) (This)->lpVtbl->AddRef(This)
37349 #define IOpenSearchSource_Release(This) (This)->lpVtbl->Release(This)
37350 /*** IOpenSearchSource methods ***/
37351 #define IOpenSearchSource_GetResults(This,hwnd,pszQuery,dwStartIndex,dwCount,riid,ppv) (This)->lpVtbl->GetResults(This,hwnd,pszQuery,dwStartIndex,dwCount,riid,ppv)
37352 #else
37353 /*** IUnknown methods ***/
37354 static FORCEINLINE HRESULT IOpenSearchSource_QueryInterface(IOpenSearchSource* This,REFIID riid,void **ppvObject) {
37355     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
37356 }
37357 static FORCEINLINE ULONG IOpenSearchSource_AddRef(IOpenSearchSource* This) {
37358     return This->lpVtbl->AddRef(This);
37359 }
37360 static FORCEINLINE ULONG IOpenSearchSource_Release(IOpenSearchSource* This) {
37361     return This->lpVtbl->Release(This);
37362 }
37363 /*** IOpenSearchSource methods ***/
37364 static FORCEINLINE HRESULT IOpenSearchSource_GetResults(IOpenSearchSource* This,HWND hwnd,LPCWSTR pszQuery,DWORD dwStartIndex,DWORD dwCount,REFIID riid,void **ppv) {
37365     return This->lpVtbl->GetResults(This,hwnd,pszQuery,dwStartIndex,dwCount,riid,ppv);
37366 }
37367 #endif
37368 #endif
37369 
37370 #endif
37371 
37372 HRESULT STDMETHODCALLTYPE IOpenSearchSource_GetResults_Proxy(
37373     IOpenSearchSource* This,
37374     HWND hwnd,
37375     LPCWSTR pszQuery,
37376     DWORD dwStartIndex,
37377     DWORD dwCount,
37378     REFIID riid,
37379     void **ppv);
37380 void __RPC_STUB IOpenSearchSource_GetResults_Stub(
37381     IRpcStubBuffer* This,
37382     IRpcChannelBuffer* pRpcChannelBuffer,
37383     PRPC_MESSAGE pRpcMessage,
37384     DWORD* pdwStubPhase);
37385 
37386 #endif  /* __IOpenSearchSource_INTERFACE_DEFINED__ */
37387 
37388 
37389 /*****************************************************************************
37390  * IShellLibrary interface
37391  */
37392 #ifndef __IShellLibrary_INTERFACE_DEFINED__
37393 #define __IShellLibrary_INTERFACE_DEFINED__
37394 
37395 typedef enum LIBRARYFOLDERFILTER {
37396     LFF_FORCEFILESYSTEM = 1,
37397     LFF_STORAGEITEMS = 2,
37398     LFF_ALLITEMS = 3
37399 } LIBRARYFOLDERFILTER;
37400 
37401 typedef enum LIBRARYOPTIONFLAGS {
37402     LOF_DEFAULT = 0x0,
37403     LOF_PINNEDTONAVPANE = 0x1,
37404     LOF_MASK_ALL = 0x1
37405 } LIBRARYOPTIONFLAGS;
37406 
37407 DEFINE_ENUM_FLAG_OPERATORS(LIBRARYOPTIONFLAGS)
37408 
37409 typedef enum DEFAULTSAVEFOLDERTYPE {
37410     DSFT_DETECT = 1,
37411     DSFT_PRIVATE = 2,
37412     DSFT_PUBLIC = 3
37413 } DEFAULTSAVEFOLDERTYPE;
37414 
37415 typedef enum LIBRARYSAVEFLAGS {
37416     LSF_FAILIFTHERE = 0x0,
37417     LSF_OVERRIDEEXISTING = 0x1,
37418     LSF_MAKEUNIQUENAME = 0x2
37419 } LIBRARYSAVEFLAGS;
37420 
37421 DEFINE_ENUM_FLAG_OPERATORS(LIBRARYSAVEFLAGS)
37422 
37423 DEFINE_GUID(IID_IShellLibrary, 0x11a66efa, 0x382e, 0x451a, 0x92,0x34, 0x1e,0x0e,0x12,0xef,0x30,0x85);
37424 #if defined(__cplusplus) && !defined(CINTERFACE)
37425 MIDL_INTERFACE("11a66efa-382e-451a-9234-1e0e12ef3085")
37426 IShellLibrary : public IUnknown
37427 {
37428     virtual HRESULT STDMETHODCALLTYPE LoadLibraryFromItem(
37429         IShellItem *psiLibrary,
37430         DWORD grfMode) = 0;
37431 
37432     virtual HRESULT STDMETHODCALLTYPE LoadLibraryFromKnownFolder(
37433         REFKNOWNFOLDERID kfidLibrary,
37434         DWORD grfMode) = 0;
37435 
37436     virtual HRESULT STDMETHODCALLTYPE AddFolder(
37437         IShellItem *psiLocation) = 0;
37438 
37439     virtual HRESULT STDMETHODCALLTYPE RemoveFolder(
37440         IShellItem *psiLocation) = 0;
37441 
37442     virtual HRESULT STDMETHODCALLTYPE GetFolders(
37443         LIBRARYFOLDERFILTER lff,
37444         REFIID riid,
37445         void **ppv) = 0;
37446 
37447     virtual HRESULT STDMETHODCALLTYPE ResolveFolder(
37448         IShellItem *psiFolderToResolve,
37449         DWORD dwTimeout,
37450         REFIID riid,
37451         void **ppv) = 0;
37452 
37453     virtual HRESULT STDMETHODCALLTYPE GetDefaultSaveFolder(
37454         DEFAULTSAVEFOLDERTYPE dsft,
37455         REFIID riid,
37456         void **ppv) = 0;
37457 
37458     virtual HRESULT STDMETHODCALLTYPE SetDefaultSaveFolder(
37459         DEFAULTSAVEFOLDERTYPE dsft,
37460         IShellItem *psi) = 0;
37461 
37462     virtual HRESULT STDMETHODCALLTYPE GetOptions(
37463         LIBRARYOPTIONFLAGS *plofOptions) = 0;
37464 
37465     virtual HRESULT STDMETHODCALLTYPE SetOptions(
37466         LIBRARYOPTIONFLAGS lofMask,
37467         LIBRARYOPTIONFLAGS lofOptions) = 0;
37468 
37469     virtual HRESULT STDMETHODCALLTYPE GetFolderType(
37470         FOLDERTYPEID *pftid) = 0;
37471 
37472     virtual HRESULT STDMETHODCALLTYPE SetFolderType(
37473         REFFOLDERTYPEID ftid) = 0;
37474 
37475     virtual HRESULT STDMETHODCALLTYPE GetIcon(
37476         LPWSTR *ppszIcon) = 0;
37477 
37478     virtual HRESULT STDMETHODCALLTYPE SetIcon(
37479         LPCWSTR pszIcon) = 0;
37480 
37481     virtual HRESULT STDMETHODCALLTYPE Commit(
37482         ) = 0;
37483 
37484     virtual HRESULT STDMETHODCALLTYPE Save(
37485         IShellItem *psiFolderToSaveIn,
37486         LPCWSTR pszLibraryName,
37487         LIBRARYSAVEFLAGS lsf,
37488         IShellItem **ppsiSavedTo) = 0;
37489 
37490     virtual HRESULT STDMETHODCALLTYPE SaveInKnownFolder(
37491         REFKNOWNFOLDERID kfidToSaveIn,
37492         LPCWSTR pszLibraryName,
37493         LIBRARYSAVEFLAGS lsf,
37494         IShellItem **ppsiSavedTo) = 0;
37495 
37496 };
37497 #ifdef __CRT_UUID_DECL
37498 __CRT_UUID_DECL(IShellLibrary, 0x11a66efa, 0x382e, 0x451a, 0x92,0x34, 0x1e,0x0e,0x12,0xef,0x30,0x85)
37499 #endif
37500 #else
37501 typedef struct IShellLibraryVtbl {
37502     BEGIN_INTERFACE
37503 
37504     /*** IUnknown methods ***/
37505     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
37506         IShellLibrary* This,
37507         REFIID riid,
37508         void **ppvObject);
37509 
37510     ULONG (STDMETHODCALLTYPE *AddRef)(
37511         IShellLibrary* This);
37512 
37513     ULONG (STDMETHODCALLTYPE *Release)(
37514         IShellLibrary* This);
37515 
37516     /*** IShellLibrary methods ***/
37517     HRESULT (STDMETHODCALLTYPE *LoadLibraryFromItem)(
37518         IShellLibrary* This,
37519         IShellItem *psiLibrary,
37520         DWORD grfMode);
37521 
37522     HRESULT (STDMETHODCALLTYPE *LoadLibraryFromKnownFolder)(
37523         IShellLibrary* This,
37524         REFKNOWNFOLDERID kfidLibrary,
37525         DWORD grfMode);
37526 
37527     HRESULT (STDMETHODCALLTYPE *AddFolder)(
37528         IShellLibrary* This,
37529         IShellItem *psiLocation);
37530 
37531     HRESULT (STDMETHODCALLTYPE *RemoveFolder)(
37532         IShellLibrary* This,
37533         IShellItem *psiLocation);
37534 
37535     HRESULT (STDMETHODCALLTYPE *GetFolders)(
37536         IShellLibrary* This,
37537         LIBRARYFOLDERFILTER lff,
37538         REFIID riid,
37539         void **ppv);
37540 
37541     HRESULT (STDMETHODCALLTYPE *ResolveFolder)(
37542         IShellLibrary* This,
37543         IShellItem *psiFolderToResolve,
37544         DWORD dwTimeout,
37545         REFIID riid,
37546         void **ppv);
37547 
37548     HRESULT (STDMETHODCALLTYPE *GetDefaultSaveFolder)(
37549         IShellLibrary* This,
37550         DEFAULTSAVEFOLDERTYPE dsft,
37551         REFIID riid,
37552         void **ppv);
37553 
37554     HRESULT (STDMETHODCALLTYPE *SetDefaultSaveFolder)(
37555         IShellLibrary* This,
37556         DEFAULTSAVEFOLDERTYPE dsft,
37557         IShellItem *psi);
37558 
37559     HRESULT (STDMETHODCALLTYPE *GetOptions)(
37560         IShellLibrary* This,
37561         LIBRARYOPTIONFLAGS *plofOptions);
37562 
37563     HRESULT (STDMETHODCALLTYPE *SetOptions)(
37564         IShellLibrary* This,
37565         LIBRARYOPTIONFLAGS lofMask,
37566         LIBRARYOPTIONFLAGS lofOptions);
37567 
37568     HRESULT (STDMETHODCALLTYPE *GetFolderType)(
37569         IShellLibrary* This,
37570         FOLDERTYPEID *pftid);
37571 
37572     HRESULT (STDMETHODCALLTYPE *SetFolderType)(
37573         IShellLibrary* This,
37574         REFFOLDERTYPEID ftid);
37575 
37576     HRESULT (STDMETHODCALLTYPE *GetIcon)(
37577         IShellLibrary* This,
37578         LPWSTR *ppszIcon);
37579 
37580     HRESULT (STDMETHODCALLTYPE *SetIcon)(
37581         IShellLibrary* This,
37582         LPCWSTR pszIcon);
37583 
37584     HRESULT (STDMETHODCALLTYPE *Commit)(
37585         IShellLibrary* This);
37586 
37587     HRESULT (STDMETHODCALLTYPE *Save)(
37588         IShellLibrary* This,
37589         IShellItem *psiFolderToSaveIn,
37590         LPCWSTR pszLibraryName,
37591         LIBRARYSAVEFLAGS lsf,
37592         IShellItem **ppsiSavedTo);
37593 
37594     HRESULT (STDMETHODCALLTYPE *SaveInKnownFolder)(
37595         IShellLibrary* This,
37596         REFKNOWNFOLDERID kfidToSaveIn,
37597         LPCWSTR pszLibraryName,
37598         LIBRARYSAVEFLAGS lsf,
37599         IShellItem **ppsiSavedTo);
37600 
37601     END_INTERFACE
37602 } IShellLibraryVtbl;
37603 interface IShellLibrary {
37604     CONST_VTBL IShellLibraryVtbl* lpVtbl;
37605 };
37606 
37607 #ifdef COBJMACROS
37608 #ifndef WIDL_C_INLINE_WRAPPERS
37609 /*** IUnknown methods ***/
37610 #define IShellLibrary_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
37611 #define IShellLibrary_AddRef(This) (This)->lpVtbl->AddRef(This)
37612 #define IShellLibrary_Release(This) (This)->lpVtbl->Release(This)
37613 /*** IShellLibrary methods ***/
37614 #define IShellLibrary_LoadLibraryFromItem(This,psiLibrary,grfMode) (This)->lpVtbl->LoadLibraryFromItem(This,psiLibrary,grfMode)
37615 #define IShellLibrary_LoadLibraryFromKnownFolder(This,kfidLibrary,grfMode) (This)->lpVtbl->LoadLibraryFromKnownFolder(This,kfidLibrary,grfMode)
37616 #define IShellLibrary_AddFolder(This,psiLocation) (This)->lpVtbl->AddFolder(This,psiLocation)
37617 #define IShellLibrary_RemoveFolder(This,psiLocation) (This)->lpVtbl->RemoveFolder(This,psiLocation)
37618 #define IShellLibrary_GetFolders(This,lff,riid,ppv) (This)->lpVtbl->GetFolders(This,lff,riid,ppv)
37619 #define IShellLibrary_ResolveFolder(This,psiFolderToResolve,dwTimeout,riid,ppv) (This)->lpVtbl->ResolveFolder(This,psiFolderToResolve,dwTimeout,riid,ppv)
37620 #define IShellLibrary_GetDefaultSaveFolder(This,dsft,riid,ppv) (This)->lpVtbl->GetDefaultSaveFolder(This,dsft,riid,ppv)
37621 #define IShellLibrary_SetDefaultSaveFolder(This,dsft,psi) (This)->lpVtbl->SetDefaultSaveFolder(This,dsft,psi)
37622 #define IShellLibrary_GetOptions(This,plofOptions) (This)->lpVtbl->GetOptions(This,plofOptions)
37623 #define IShellLibrary_SetOptions(This,lofMask,lofOptions) (This)->lpVtbl->SetOptions(This,lofMask,lofOptions)
37624 #define IShellLibrary_GetFolderType(This,pftid) (This)->lpVtbl->GetFolderType(This,pftid)
37625 #define IShellLibrary_SetFolderType(This,ftid) (This)->lpVtbl->SetFolderType(This,ftid)
37626 #define IShellLibrary_GetIcon(This,ppszIcon) (This)->lpVtbl->GetIcon(This,ppszIcon)
37627 #define IShellLibrary_SetIcon(This,pszIcon) (This)->lpVtbl->SetIcon(This,pszIcon)
37628 #define IShellLibrary_Commit(This) (This)->lpVtbl->Commit(This)
37629 #define IShellLibrary_Save(This,psiFolderToSaveIn,pszLibraryName,lsf,ppsiSavedTo) (This)->lpVtbl->Save(This,psiFolderToSaveIn,pszLibraryName,lsf,ppsiSavedTo)
37630 #define IShellLibrary_SaveInKnownFolder(This,kfidToSaveIn,pszLibraryName,lsf,ppsiSavedTo) (This)->lpVtbl->SaveInKnownFolder(This,kfidToSaveIn,pszLibraryName,lsf,ppsiSavedTo)
37631 #else
37632 /*** IUnknown methods ***/
37633 static FORCEINLINE HRESULT IShellLibrary_QueryInterface(IShellLibrary* This,REFIID riid,void **ppvObject) {
37634     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
37635 }
37636 static FORCEINLINE ULONG IShellLibrary_AddRef(IShellLibrary* This) {
37637     return This->lpVtbl->AddRef(This);
37638 }
37639 static FORCEINLINE ULONG IShellLibrary_Release(IShellLibrary* This) {
37640     return This->lpVtbl->Release(This);
37641 }
37642 /*** IShellLibrary methods ***/
37643 static FORCEINLINE HRESULT IShellLibrary_LoadLibraryFromItem(IShellLibrary* This,IShellItem *psiLibrary,DWORD grfMode) {
37644     return This->lpVtbl->LoadLibraryFromItem(This,psiLibrary,grfMode);
37645 }
37646 static FORCEINLINE HRESULT IShellLibrary_LoadLibraryFromKnownFolder(IShellLibrary* This,REFKNOWNFOLDERID kfidLibrary,DWORD grfMode) {
37647     return This->lpVtbl->LoadLibraryFromKnownFolder(This,kfidLibrary,grfMode);
37648 }
37649 static FORCEINLINE HRESULT IShellLibrary_AddFolder(IShellLibrary* This,IShellItem *psiLocation) {
37650     return This->lpVtbl->AddFolder(This,psiLocation);
37651 }
37652 static FORCEINLINE HRESULT IShellLibrary_RemoveFolder(IShellLibrary* This,IShellItem *psiLocation) {
37653     return This->lpVtbl->RemoveFolder(This,psiLocation);
37654 }
37655 static FORCEINLINE HRESULT IShellLibrary_GetFolders(IShellLibrary* This,LIBRARYFOLDERFILTER lff,REFIID riid,void **ppv) {
37656     return This->lpVtbl->GetFolders(This,lff,riid,ppv);
37657 }
37658 static FORCEINLINE HRESULT IShellLibrary_ResolveFolder(IShellLibrary* This,IShellItem *psiFolderToResolve,DWORD dwTimeout,REFIID riid,void **ppv) {
37659     return This->lpVtbl->ResolveFolder(This,psiFolderToResolve,dwTimeout,riid,ppv);
37660 }
37661 static FORCEINLINE HRESULT IShellLibrary_GetDefaultSaveFolder(IShellLibrary* This,DEFAULTSAVEFOLDERTYPE dsft,REFIID riid,void **ppv) {
37662     return This->lpVtbl->GetDefaultSaveFolder(This,dsft,riid,ppv);
37663 }
37664 static FORCEINLINE HRESULT IShellLibrary_SetDefaultSaveFolder(IShellLibrary* This,DEFAULTSAVEFOLDERTYPE dsft,IShellItem *psi) {
37665     return This->lpVtbl->SetDefaultSaveFolder(This,dsft,psi);
37666 }
37667 static FORCEINLINE HRESULT IShellLibrary_GetOptions(IShellLibrary* This,LIBRARYOPTIONFLAGS *plofOptions) {
37668     return This->lpVtbl->GetOptions(This,plofOptions);
37669 }
37670 static FORCEINLINE HRESULT IShellLibrary_SetOptions(IShellLibrary* This,LIBRARYOPTIONFLAGS lofMask,LIBRARYOPTIONFLAGS lofOptions) {
37671     return This->lpVtbl->SetOptions(This,lofMask,lofOptions);
37672 }
37673 static FORCEINLINE HRESULT IShellLibrary_GetFolderType(IShellLibrary* This,FOLDERTYPEID *pftid) {
37674     return This->lpVtbl->GetFolderType(This,pftid);
37675 }
37676 static FORCEINLINE HRESULT IShellLibrary_SetFolderType(IShellLibrary* This,REFFOLDERTYPEID ftid) {
37677     return This->lpVtbl->SetFolderType(This,ftid);
37678 }
37679 static FORCEINLINE HRESULT IShellLibrary_GetIcon(IShellLibrary* This,LPWSTR *ppszIcon) {
37680     return This->lpVtbl->GetIcon(This,ppszIcon);
37681 }
37682 static FORCEINLINE HRESULT IShellLibrary_SetIcon(IShellLibrary* This,LPCWSTR pszIcon) {
37683     return This->lpVtbl->SetIcon(This,pszIcon);
37684 }
37685 static FORCEINLINE HRESULT IShellLibrary_Commit(IShellLibrary* This) {
37686     return This->lpVtbl->Commit(This);
37687 }
37688 static FORCEINLINE HRESULT IShellLibrary_Save(IShellLibrary* This,IShellItem *psiFolderToSaveIn,LPCWSTR pszLibraryName,LIBRARYSAVEFLAGS lsf,IShellItem **ppsiSavedTo) {
37689     return This->lpVtbl->Save(This,psiFolderToSaveIn,pszLibraryName,lsf,ppsiSavedTo);
37690 }
37691 static FORCEINLINE HRESULT IShellLibrary_SaveInKnownFolder(IShellLibrary* This,REFKNOWNFOLDERID kfidToSaveIn,LPCWSTR pszLibraryName,LIBRARYSAVEFLAGS lsf,IShellItem **ppsiSavedTo) {
37692     return This->lpVtbl->SaveInKnownFolder(This,kfidToSaveIn,pszLibraryName,lsf,ppsiSavedTo);
37693 }
37694 #endif
37695 #endif
37696 
37697 #endif
37698 
37699 HRESULT STDMETHODCALLTYPE IShellLibrary_LoadLibraryFromItem_Proxy(
37700     IShellLibrary* This,
37701     IShellItem *psiLibrary,
37702     DWORD grfMode);
37703 void __RPC_STUB IShellLibrary_LoadLibraryFromItem_Stub(
37704     IRpcStubBuffer* This,
37705     IRpcChannelBuffer* pRpcChannelBuffer,
37706     PRPC_MESSAGE pRpcMessage,
37707     DWORD* pdwStubPhase);
37708 HRESULT STDMETHODCALLTYPE IShellLibrary_LoadLibraryFromKnownFolder_Proxy(
37709     IShellLibrary* This,
37710     REFKNOWNFOLDERID kfidLibrary,
37711     DWORD grfMode);
37712 void __RPC_STUB IShellLibrary_LoadLibraryFromKnownFolder_Stub(
37713     IRpcStubBuffer* This,
37714     IRpcChannelBuffer* pRpcChannelBuffer,
37715     PRPC_MESSAGE pRpcMessage,
37716     DWORD* pdwStubPhase);
37717 HRESULT STDMETHODCALLTYPE IShellLibrary_AddFolder_Proxy(
37718     IShellLibrary* This,
37719     IShellItem *psiLocation);
37720 void __RPC_STUB IShellLibrary_AddFolder_Stub(
37721     IRpcStubBuffer* This,
37722     IRpcChannelBuffer* pRpcChannelBuffer,
37723     PRPC_MESSAGE pRpcMessage,
37724     DWORD* pdwStubPhase);
37725 HRESULT STDMETHODCALLTYPE IShellLibrary_RemoveFolder_Proxy(
37726     IShellLibrary* This,
37727     IShellItem *psiLocation);
37728 void __RPC_STUB IShellLibrary_RemoveFolder_Stub(
37729     IRpcStubBuffer* This,
37730     IRpcChannelBuffer* pRpcChannelBuffer,
37731     PRPC_MESSAGE pRpcMessage,
37732     DWORD* pdwStubPhase);
37733 HRESULT STDMETHODCALLTYPE IShellLibrary_GetFolders_Proxy(
37734     IShellLibrary* This,
37735     LIBRARYFOLDERFILTER lff,
37736     REFIID riid,
37737     void **ppv);
37738 void __RPC_STUB IShellLibrary_GetFolders_Stub(
37739     IRpcStubBuffer* This,
37740     IRpcChannelBuffer* pRpcChannelBuffer,
37741     PRPC_MESSAGE pRpcMessage,
37742     DWORD* pdwStubPhase);
37743 HRESULT STDMETHODCALLTYPE IShellLibrary_ResolveFolder_Proxy(
37744     IShellLibrary* This,
37745     IShellItem *psiFolderToResolve,
37746     DWORD dwTimeout,
37747     REFIID riid,
37748     void **ppv);
37749 void __RPC_STUB IShellLibrary_ResolveFolder_Stub(
37750     IRpcStubBuffer* This,
37751     IRpcChannelBuffer* pRpcChannelBuffer,
37752     PRPC_MESSAGE pRpcMessage,
37753     DWORD* pdwStubPhase);
37754 HRESULT STDMETHODCALLTYPE IShellLibrary_GetDefaultSaveFolder_Proxy(
37755     IShellLibrary* This,
37756     DEFAULTSAVEFOLDERTYPE dsft,
37757     REFIID riid,
37758     void **ppv);
37759 void __RPC_STUB IShellLibrary_GetDefaultSaveFolder_Stub(
37760     IRpcStubBuffer* This,
37761     IRpcChannelBuffer* pRpcChannelBuffer,
37762     PRPC_MESSAGE pRpcMessage,
37763     DWORD* pdwStubPhase);
37764 HRESULT STDMETHODCALLTYPE IShellLibrary_SetDefaultSaveFolder_Proxy(
37765     IShellLibrary* This,
37766     DEFAULTSAVEFOLDERTYPE dsft,
37767     IShellItem *psi);
37768 void __RPC_STUB IShellLibrary_SetDefaultSaveFolder_Stub(
37769     IRpcStubBuffer* This,
37770     IRpcChannelBuffer* pRpcChannelBuffer,
37771     PRPC_MESSAGE pRpcMessage,
37772     DWORD* pdwStubPhase);
37773 HRESULT STDMETHODCALLTYPE IShellLibrary_GetOptions_Proxy(
37774     IShellLibrary* This,
37775     LIBRARYOPTIONFLAGS *plofOptions);
37776 void __RPC_STUB IShellLibrary_GetOptions_Stub(
37777     IRpcStubBuffer* This,
37778     IRpcChannelBuffer* pRpcChannelBuffer,
37779     PRPC_MESSAGE pRpcMessage,
37780     DWORD* pdwStubPhase);
37781 HRESULT STDMETHODCALLTYPE IShellLibrary_SetOptions_Proxy(
37782     IShellLibrary* This,
37783     LIBRARYOPTIONFLAGS lofMask,
37784     LIBRARYOPTIONFLAGS lofOptions);
37785 void __RPC_STUB IShellLibrary_SetOptions_Stub(
37786     IRpcStubBuffer* This,
37787     IRpcChannelBuffer* pRpcChannelBuffer,
37788     PRPC_MESSAGE pRpcMessage,
37789     DWORD* pdwStubPhase);
37790 HRESULT STDMETHODCALLTYPE IShellLibrary_GetFolderType_Proxy(
37791     IShellLibrary* This,
37792     FOLDERTYPEID *pftid);
37793 void __RPC_STUB IShellLibrary_GetFolderType_Stub(
37794     IRpcStubBuffer* This,
37795     IRpcChannelBuffer* pRpcChannelBuffer,
37796     PRPC_MESSAGE pRpcMessage,
37797     DWORD* pdwStubPhase);
37798 HRESULT STDMETHODCALLTYPE IShellLibrary_SetFolderType_Proxy(
37799     IShellLibrary* This,
37800     REFFOLDERTYPEID ftid);
37801 void __RPC_STUB IShellLibrary_SetFolderType_Stub(
37802     IRpcStubBuffer* This,
37803     IRpcChannelBuffer* pRpcChannelBuffer,
37804     PRPC_MESSAGE pRpcMessage,
37805     DWORD* pdwStubPhase);
37806 HRESULT STDMETHODCALLTYPE IShellLibrary_GetIcon_Proxy(
37807     IShellLibrary* This,
37808     LPWSTR *ppszIcon);
37809 void __RPC_STUB IShellLibrary_GetIcon_Stub(
37810     IRpcStubBuffer* This,
37811     IRpcChannelBuffer* pRpcChannelBuffer,
37812     PRPC_MESSAGE pRpcMessage,
37813     DWORD* pdwStubPhase);
37814 HRESULT STDMETHODCALLTYPE IShellLibrary_SetIcon_Proxy(
37815     IShellLibrary* This,
37816     LPCWSTR pszIcon);
37817 void __RPC_STUB IShellLibrary_SetIcon_Stub(
37818     IRpcStubBuffer* This,
37819     IRpcChannelBuffer* pRpcChannelBuffer,
37820     PRPC_MESSAGE pRpcMessage,
37821     DWORD* pdwStubPhase);
37822 HRESULT STDMETHODCALLTYPE IShellLibrary_Commit_Proxy(
37823     IShellLibrary* This);
37824 void __RPC_STUB IShellLibrary_Commit_Stub(
37825     IRpcStubBuffer* This,
37826     IRpcChannelBuffer* pRpcChannelBuffer,
37827     PRPC_MESSAGE pRpcMessage,
37828     DWORD* pdwStubPhase);
37829 HRESULT STDMETHODCALLTYPE IShellLibrary_Save_Proxy(
37830     IShellLibrary* This,
37831     IShellItem *psiFolderToSaveIn,
37832     LPCWSTR pszLibraryName,
37833     LIBRARYSAVEFLAGS lsf,
37834     IShellItem **ppsiSavedTo);
37835 void __RPC_STUB IShellLibrary_Save_Stub(
37836     IRpcStubBuffer* This,
37837     IRpcChannelBuffer* pRpcChannelBuffer,
37838     PRPC_MESSAGE pRpcMessage,
37839     DWORD* pdwStubPhase);
37840 HRESULT STDMETHODCALLTYPE IShellLibrary_SaveInKnownFolder_Proxy(
37841     IShellLibrary* This,
37842     REFKNOWNFOLDERID kfidToSaveIn,
37843     LPCWSTR pszLibraryName,
37844     LIBRARYSAVEFLAGS lsf,
37845     IShellItem **ppsiSavedTo);
37846 void __RPC_STUB IShellLibrary_SaveInKnownFolder_Stub(
37847     IRpcStubBuffer* This,
37848     IRpcChannelBuffer* pRpcChannelBuffer,
37849     PRPC_MESSAGE pRpcMessage,
37850     DWORD* pdwStubPhase);
37851 
37852 #endif  /* __IShellLibrary_INTERFACE_DEFINED__ */
37853 
37854 
37855 typedef enum PBM_EVENT {
37856     PE_DUCKSESSION = 1,
37857     PE_UNDUCKSESSION = 2
37858 } PBM_EVENT;
37859 
37860 /*****************************************************************************
37861  * IPlaybackManagerEvents interface
37862  */
37863 #ifndef __IPlaybackManagerEvents_INTERFACE_DEFINED__
37864 #define __IPlaybackManagerEvents_INTERFACE_DEFINED__
37865 
37866 DEFINE_GUID(IID_IPlaybackManagerEvents, 0x385cfb7d, 0x4e0c, 0x4106, 0x91,0x2e, 0x8c,0xfb,0x4c,0x19,0x1f,0x45);
37867 #if defined(__cplusplus) && !defined(CINTERFACE)
37868 MIDL_INTERFACE("385cfb7d-4e0c-4106-912e-8cfb4c191f45")
37869 IPlaybackManagerEvents : public IUnknown
37870 {
37871     virtual HRESULT STDMETHODCALLTYPE OnPlaybackManagerEvent(
37872         DWORD dwSessionId,
37873         PBM_EVENT mediaEvent) = 0;
37874 
37875 };
37876 #ifdef __CRT_UUID_DECL
37877 __CRT_UUID_DECL(IPlaybackManagerEvents, 0x385cfb7d, 0x4e0c, 0x4106, 0x91,0x2e, 0x8c,0xfb,0x4c,0x19,0x1f,0x45)
37878 #endif
37879 #else
37880 typedef struct IPlaybackManagerEventsVtbl {
37881     BEGIN_INTERFACE
37882 
37883     /*** IUnknown methods ***/
37884     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
37885         IPlaybackManagerEvents* This,
37886         REFIID riid,
37887         void **ppvObject);
37888 
37889     ULONG (STDMETHODCALLTYPE *AddRef)(
37890         IPlaybackManagerEvents* This);
37891 
37892     ULONG (STDMETHODCALLTYPE *Release)(
37893         IPlaybackManagerEvents* This);
37894 
37895     /*** IPlaybackManagerEvents methods ***/
37896     HRESULT (STDMETHODCALLTYPE *OnPlaybackManagerEvent)(
37897         IPlaybackManagerEvents* This,
37898         DWORD dwSessionId,
37899         PBM_EVENT mediaEvent);
37900 
37901     END_INTERFACE
37902 } IPlaybackManagerEventsVtbl;
37903 interface IPlaybackManagerEvents {
37904     CONST_VTBL IPlaybackManagerEventsVtbl* lpVtbl;
37905 };
37906 
37907 #ifdef COBJMACROS
37908 #ifndef WIDL_C_INLINE_WRAPPERS
37909 /*** IUnknown methods ***/
37910 #define IPlaybackManagerEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
37911 #define IPlaybackManagerEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
37912 #define IPlaybackManagerEvents_Release(This) (This)->lpVtbl->Release(This)
37913 /*** IPlaybackManagerEvents methods ***/
37914 #define IPlaybackManagerEvents_OnPlaybackManagerEvent(This,dwSessionId,mediaEvent) (This)->lpVtbl->OnPlaybackManagerEvent(This,dwSessionId,mediaEvent)
37915 #else
37916 /*** IUnknown methods ***/
37917 static FORCEINLINE HRESULT IPlaybackManagerEvents_QueryInterface(IPlaybackManagerEvents* This,REFIID riid,void **ppvObject) {
37918     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
37919 }
37920 static FORCEINLINE ULONG IPlaybackManagerEvents_AddRef(IPlaybackManagerEvents* This) {
37921     return This->lpVtbl->AddRef(This);
37922 }
37923 static FORCEINLINE ULONG IPlaybackManagerEvents_Release(IPlaybackManagerEvents* This) {
37924     return This->lpVtbl->Release(This);
37925 }
37926 /*** IPlaybackManagerEvents methods ***/
37927 static FORCEINLINE HRESULT IPlaybackManagerEvents_OnPlaybackManagerEvent(IPlaybackManagerEvents* This,DWORD dwSessionId,PBM_EVENT mediaEvent) {
37928     return This->lpVtbl->OnPlaybackManagerEvent(This,dwSessionId,mediaEvent);
37929 }
37930 #endif
37931 #endif
37932 
37933 #endif
37934 
37935 HRESULT STDMETHODCALLTYPE IPlaybackManagerEvents_OnPlaybackManagerEvent_Proxy(
37936     IPlaybackManagerEvents* This,
37937     DWORD dwSessionId,
37938     PBM_EVENT mediaEvent);
37939 void __RPC_STUB IPlaybackManagerEvents_OnPlaybackManagerEvent_Stub(
37940     IRpcStubBuffer* This,
37941     IRpcChannelBuffer* pRpcChannelBuffer,
37942     PRPC_MESSAGE pRpcMessage,
37943     DWORD* pdwStubPhase);
37944 
37945 #endif  /* __IPlaybackManagerEvents_INTERFACE_DEFINED__ */
37946 
37947 
37948 typedef enum PBM_SESSION_TYPE {
37949     ST_COMMUNICATION = 1,
37950     ST_MEDIA = 2
37951 } PBM_SESSION_TYPE;
37952 
37953 typedef enum PBM_PLAY_STATE {
37954     PS_PLAYING = 1,
37955     PS_PAUSED = 2,
37956     PS_STOPPED = 3
37957 } PBM_PLAY_STATE;
37958 
37959 typedef enum PBM_MUTE_STATE {
37960     MS_MUTED = 1,
37961     MS_UNMUTED = 2
37962 } PBM_MUTE_STATE;
37963 
37964 /*****************************************************************************
37965  * IPlaybackManager interface
37966  */
37967 #ifndef __IPlaybackManager_INTERFACE_DEFINED__
37968 #define __IPlaybackManager_INTERFACE_DEFINED__
37969 
37970 DEFINE_GUID(IID_IPlaybackManager, 0x0f3c1b01, 0x8199, 0x4173, 0xba,0x78, 0x98,0x58,0x82,0x26,0x6f,0x7a);
37971 #if defined(__cplusplus) && !defined(CINTERFACE)
37972 MIDL_INTERFACE("0f3c1b01-8199-4173-ba78-985882266f7a")
37973 IPlaybackManager : public IUnknown
37974 {
37975     virtual HRESULT STDMETHODCALLTYPE Advise(
37976         PBM_SESSION_TYPE type,
37977         IPlaybackManagerEvents *pEvents,
37978         DWORD *pdwSessionId) = 0;
37979 
37980     virtual HRESULT STDMETHODCALLTYPE Unadvise(
37981         DWORD dwSessionId) = 0;
37982 
37983     virtual HRESULT STDMETHODCALLTYPE ChangeSessionState(
37984         DWORD dwSessionId,
37985         PBM_PLAY_STATE state,
37986         PBM_MUTE_STATE mute) = 0;
37987 
37988 };
37989 #ifdef __CRT_UUID_DECL
37990 __CRT_UUID_DECL(IPlaybackManager, 0x0f3c1b01, 0x8199, 0x4173, 0xba,0x78, 0x98,0x58,0x82,0x26,0x6f,0x7a)
37991 #endif
37992 #else
37993 typedef struct IPlaybackManagerVtbl {
37994     BEGIN_INTERFACE
37995 
37996     /*** IUnknown methods ***/
37997     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
37998         IPlaybackManager* This,
37999         REFIID riid,
38000         void **ppvObject);
38001 
38002     ULONG (STDMETHODCALLTYPE *AddRef)(
38003         IPlaybackManager* This);
38004 
38005     ULONG (STDMETHODCALLTYPE *Release)(
38006         IPlaybackManager* This);
38007 
38008     /*** IPlaybackManager methods ***/
38009     HRESULT (STDMETHODCALLTYPE *Advise)(
38010         IPlaybackManager* This,
38011         PBM_SESSION_TYPE type,
38012         IPlaybackManagerEvents *pEvents,
38013         DWORD *pdwSessionId);
38014 
38015     HRESULT (STDMETHODCALLTYPE *Unadvise)(
38016         IPlaybackManager* This,
38017         DWORD dwSessionId);
38018 
38019     HRESULT (STDMETHODCALLTYPE *ChangeSessionState)(
38020         IPlaybackManager* This,
38021         DWORD dwSessionId,
38022         PBM_PLAY_STATE state,
38023         PBM_MUTE_STATE mute);
38024 
38025     END_INTERFACE
38026 } IPlaybackManagerVtbl;
38027 interface IPlaybackManager {
38028     CONST_VTBL IPlaybackManagerVtbl* lpVtbl;
38029 };
38030 
38031 #ifdef COBJMACROS
38032 #ifndef WIDL_C_INLINE_WRAPPERS
38033 /*** IUnknown methods ***/
38034 #define IPlaybackManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
38035 #define IPlaybackManager_AddRef(This) (This)->lpVtbl->AddRef(This)
38036 #define IPlaybackManager_Release(This) (This)->lpVtbl->Release(This)
38037 /*** IPlaybackManager methods ***/
38038 #define IPlaybackManager_Advise(This,type,pEvents,pdwSessionId) (This)->lpVtbl->Advise(This,type,pEvents,pdwSessionId)
38039 #define IPlaybackManager_Unadvise(This,dwSessionId) (This)->lpVtbl->Unadvise(This,dwSessionId)
38040 #define IPlaybackManager_ChangeSessionState(This,dwSessionId,state,mute) (This)->lpVtbl->ChangeSessionState(This,dwSessionId,state,mute)
38041 #else
38042 /*** IUnknown methods ***/
38043 static FORCEINLINE HRESULT IPlaybackManager_QueryInterface(IPlaybackManager* This,REFIID riid,void **ppvObject) {
38044     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
38045 }
38046 static FORCEINLINE ULONG IPlaybackManager_AddRef(IPlaybackManager* This) {
38047     return This->lpVtbl->AddRef(This);
38048 }
38049 static FORCEINLINE ULONG IPlaybackManager_Release(IPlaybackManager* This) {
38050     return This->lpVtbl->Release(This);
38051 }
38052 /*** IPlaybackManager methods ***/
38053 static FORCEINLINE HRESULT IPlaybackManager_Advise(IPlaybackManager* This,PBM_SESSION_TYPE type,IPlaybackManagerEvents *pEvents,DWORD *pdwSessionId) {
38054     return This->lpVtbl->Advise(This,type,pEvents,pdwSessionId);
38055 }
38056 static FORCEINLINE HRESULT IPlaybackManager_Unadvise(IPlaybackManager* This,DWORD dwSessionId) {
38057     return This->lpVtbl->Unadvise(This,dwSessionId);
38058 }
38059 static FORCEINLINE HRESULT IPlaybackManager_ChangeSessionState(IPlaybackManager* This,DWORD dwSessionId,PBM_PLAY_STATE state,PBM_MUTE_STATE mute) {
38060     return This->lpVtbl->ChangeSessionState(This,dwSessionId,state,mute);
38061 }
38062 #endif
38063 #endif
38064 
38065 #endif
38066 
38067 HRESULT STDMETHODCALLTYPE IPlaybackManager_Advise_Proxy(
38068     IPlaybackManager* This,
38069     PBM_SESSION_TYPE type,
38070     IPlaybackManagerEvents *pEvents,
38071     DWORD *pdwSessionId);
38072 void __RPC_STUB IPlaybackManager_Advise_Stub(
38073     IRpcStubBuffer* This,
38074     IRpcChannelBuffer* pRpcChannelBuffer,
38075     PRPC_MESSAGE pRpcMessage,
38076     DWORD* pdwStubPhase);
38077 HRESULT STDMETHODCALLTYPE IPlaybackManager_Unadvise_Proxy(
38078     IPlaybackManager* This,
38079     DWORD dwSessionId);
38080 void __RPC_STUB IPlaybackManager_Unadvise_Stub(
38081     IRpcStubBuffer* This,
38082     IRpcChannelBuffer* pRpcChannelBuffer,
38083     PRPC_MESSAGE pRpcMessage,
38084     DWORD* pdwStubPhase);
38085 HRESULT STDMETHODCALLTYPE IPlaybackManager_ChangeSessionState_Proxy(
38086     IPlaybackManager* This,
38087     DWORD dwSessionId,
38088     PBM_PLAY_STATE state,
38089     PBM_MUTE_STATE mute);
38090 void __RPC_STUB IPlaybackManager_ChangeSessionState_Stub(
38091     IRpcStubBuffer* This,
38092     IRpcChannelBuffer* pRpcChannelBuffer,
38093     PRPC_MESSAGE pRpcMessage,
38094     DWORD* pdwStubPhase);
38095 
38096 #endif  /* __IPlaybackManager_INTERFACE_DEFINED__ */
38097 
38098 
38099 typedef enum DEFAULT_FOLDER_MENU_RESTRICTIONS {
38100     DFMR_DEFAULT = 0x0,
38101     DFMR_NO_STATIC_VERBS = 0x8,
38102     DFMR_STATIC_VERBS_ONLY = 0x10,
38103     DFMR_NO_RESOURCE_VERBS = 0x20,
38104     DFMR_OPTIN_HANDLERS_ONLY = 0x40,
38105     DFMR_RESOURCE_AND_FOLDER_VERBS_ONLY = 0x80,
38106     DFMR_USE_SPECIFIED_HANDLERS = 0x100,
38107     DFMR_USE_SPECIFIED_VERBS = 0x200,
38108     DFMR_NO_ASYNC_VERBS = 0x400
38109 } DEFAULT_FOLDER_MENU_RESTRICTIONS;
38110 
38111 DEFINE_ENUM_FLAG_OPERATORS(DEFAULT_FOLDER_MENU_RESTRICTIONS)
38112 
38113 /*****************************************************************************
38114  * IDefaultFolderMenuInitialize interface
38115  */
38116 #ifndef __IDefaultFolderMenuInitialize_INTERFACE_DEFINED__
38117 #define __IDefaultFolderMenuInitialize_INTERFACE_DEFINED__
38118 
38119 DEFINE_GUID(IID_IDefaultFolderMenuInitialize, 0x7690aa79, 0xf8fc, 0x4615, 0xa3,0x27, 0x36,0xf7,0xd1,0x8f,0x5d,0x91);
38120 #if defined(__cplusplus) && !defined(CINTERFACE)
38121 MIDL_INTERFACE("7690aa79-f8fc-4615-a327-36f7d18f5d91")
38122 IDefaultFolderMenuInitialize : public IUnknown
38123 {
38124     virtual HRESULT STDMETHODCALLTYPE Initialize(
38125         HWND hwnd,
38126         IContextMenuCB *pcmcb,
38127         PCIDLIST_ABSOLUTE pidlFolder,
38128         IShellFolder *psf,
38129         UINT cidl,
38130         PCUITEMID_CHILD_ARRAY apidl,
38131         IUnknown *punkAssociation,
38132         UINT cKeys,
38133         const HKEY *aKeys) = 0;
38134 
38135     virtual HRESULT STDMETHODCALLTYPE SetMenuRestrictions(
38136         DEFAULT_FOLDER_MENU_RESTRICTIONS dfmrValues) = 0;
38137 
38138     virtual HRESULT STDMETHODCALLTYPE GetMenuRestrictions(
38139         DEFAULT_FOLDER_MENU_RESTRICTIONS dfmrMask,
38140         DEFAULT_FOLDER_MENU_RESTRICTIONS *pdfmrValues) = 0;
38141 
38142     virtual HRESULT STDMETHODCALLTYPE SetHandlerClsid(
38143         REFCLSID rclsid) = 0;
38144 
38145 };
38146 #ifdef __CRT_UUID_DECL
38147 __CRT_UUID_DECL(IDefaultFolderMenuInitialize, 0x7690aa79, 0xf8fc, 0x4615, 0xa3,0x27, 0x36,0xf7,0xd1,0x8f,0x5d,0x91)
38148 #endif
38149 #else
38150 typedef struct IDefaultFolderMenuInitializeVtbl {
38151     BEGIN_INTERFACE
38152 
38153     /*** IUnknown methods ***/
38154     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
38155         IDefaultFolderMenuInitialize* This,
38156         REFIID riid,
38157         void **ppvObject);
38158 
38159     ULONG (STDMETHODCALLTYPE *AddRef)(
38160         IDefaultFolderMenuInitialize* This);
38161 
38162     ULONG (STDMETHODCALLTYPE *Release)(
38163         IDefaultFolderMenuInitialize* This);
38164 
38165     /*** IDefaultFolderMenuInitialize methods ***/
38166     HRESULT (STDMETHODCALLTYPE *Initialize)(
38167         IDefaultFolderMenuInitialize* This,
38168         HWND hwnd,
38169         IContextMenuCB *pcmcb,
38170         PCIDLIST_ABSOLUTE pidlFolder,
38171         IShellFolder *psf,
38172         UINT cidl,
38173         PCUITEMID_CHILD_ARRAY apidl,
38174         IUnknown *punkAssociation,
38175         UINT cKeys,
38176         const HKEY *aKeys);
38177 
38178     HRESULT (STDMETHODCALLTYPE *SetMenuRestrictions)(
38179         IDefaultFolderMenuInitialize* This,
38180         DEFAULT_FOLDER_MENU_RESTRICTIONS dfmrValues);
38181 
38182     HRESULT (STDMETHODCALLTYPE *GetMenuRestrictions)(
38183         IDefaultFolderMenuInitialize* This,
38184         DEFAULT_FOLDER_MENU_RESTRICTIONS dfmrMask,
38185         DEFAULT_FOLDER_MENU_RESTRICTIONS *pdfmrValues);
38186 
38187     HRESULT (STDMETHODCALLTYPE *SetHandlerClsid)(
38188         IDefaultFolderMenuInitialize* This,
38189         REFCLSID rclsid);
38190 
38191     END_INTERFACE
38192 } IDefaultFolderMenuInitializeVtbl;
38193 interface IDefaultFolderMenuInitialize {
38194     CONST_VTBL IDefaultFolderMenuInitializeVtbl* lpVtbl;
38195 };
38196 
38197 #ifdef COBJMACROS
38198 #ifndef WIDL_C_INLINE_WRAPPERS
38199 /*** IUnknown methods ***/
38200 #define IDefaultFolderMenuInitialize_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
38201 #define IDefaultFolderMenuInitialize_AddRef(This) (This)->lpVtbl->AddRef(This)
38202 #define IDefaultFolderMenuInitialize_Release(This) (This)->lpVtbl->Release(This)
38203 /*** IDefaultFolderMenuInitialize methods ***/
38204 #define IDefaultFolderMenuInitialize_Initialize(This,hwnd,pcmcb,pidlFolder,psf,cidl,apidl,punkAssociation,cKeys,aKeys) (This)->lpVtbl->Initialize(This,hwnd,pcmcb,pidlFolder,psf,cidl,apidl,punkAssociation,cKeys,aKeys)
38205 #define IDefaultFolderMenuInitialize_SetMenuRestrictions(This,dfmrValues) (This)->lpVtbl->SetMenuRestrictions(This,dfmrValues)
38206 #define IDefaultFolderMenuInitialize_GetMenuRestrictions(This,dfmrMask,pdfmrValues) (This)->lpVtbl->GetMenuRestrictions(This,dfmrMask,pdfmrValues)
38207 #define IDefaultFolderMenuInitialize_SetHandlerClsid(This,rclsid) (This)->lpVtbl->SetHandlerClsid(This,rclsid)
38208 #else
38209 /*** IUnknown methods ***/
38210 static FORCEINLINE HRESULT IDefaultFolderMenuInitialize_QueryInterface(IDefaultFolderMenuInitialize* This,REFIID riid,void **ppvObject) {
38211     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
38212 }
38213 static FORCEINLINE ULONG IDefaultFolderMenuInitialize_AddRef(IDefaultFolderMenuInitialize* This) {
38214     return This->lpVtbl->AddRef(This);
38215 }
38216 static FORCEINLINE ULONG IDefaultFolderMenuInitialize_Release(IDefaultFolderMenuInitialize* This) {
38217     return This->lpVtbl->Release(This);
38218 }
38219 /*** IDefaultFolderMenuInitialize methods ***/
38220 static FORCEINLINE HRESULT IDefaultFolderMenuInitialize_Initialize(IDefaultFolderMenuInitialize* This,HWND hwnd,IContextMenuCB *pcmcb,PCIDLIST_ABSOLUTE pidlFolder,IShellFolder *psf,UINT cidl,PCUITEMID_CHILD_ARRAY apidl,IUnknown *punkAssociation,UINT cKeys,const HKEY *aKeys) {
38221     return This->lpVtbl->Initialize(This,hwnd,pcmcb,pidlFolder,psf,cidl,apidl,punkAssociation,cKeys,aKeys);
38222 }
38223 static FORCEINLINE HRESULT IDefaultFolderMenuInitialize_SetMenuRestrictions(IDefaultFolderMenuInitialize* This,DEFAULT_FOLDER_MENU_RESTRICTIONS dfmrValues) {
38224     return This->lpVtbl->SetMenuRestrictions(This,dfmrValues);
38225 }
38226 static FORCEINLINE HRESULT IDefaultFolderMenuInitialize_GetMenuRestrictions(IDefaultFolderMenuInitialize* This,DEFAULT_FOLDER_MENU_RESTRICTIONS dfmrMask,DEFAULT_FOLDER_MENU_RESTRICTIONS *pdfmrValues) {
38227     return This->lpVtbl->GetMenuRestrictions(This,dfmrMask,pdfmrValues);
38228 }
38229 static FORCEINLINE HRESULT IDefaultFolderMenuInitialize_SetHandlerClsid(IDefaultFolderMenuInitialize* This,REFCLSID rclsid) {
38230     return This->lpVtbl->SetHandlerClsid(This,rclsid);
38231 }
38232 #endif
38233 #endif
38234 
38235 #endif
38236 
38237 HRESULT STDMETHODCALLTYPE IDefaultFolderMenuInitialize_Initialize_Proxy(
38238     IDefaultFolderMenuInitialize* This,
38239     HWND hwnd,
38240     IContextMenuCB *pcmcb,
38241     PCIDLIST_ABSOLUTE pidlFolder,
38242     IShellFolder *psf,
38243     UINT cidl,
38244     PCUITEMID_CHILD_ARRAY apidl,
38245     IUnknown *punkAssociation,
38246     UINT cKeys,
38247     const HKEY *aKeys);
38248 void __RPC_STUB IDefaultFolderMenuInitialize_Initialize_Stub(
38249     IRpcStubBuffer* This,
38250     IRpcChannelBuffer* pRpcChannelBuffer,
38251     PRPC_MESSAGE pRpcMessage,
38252     DWORD* pdwStubPhase);
38253 HRESULT STDMETHODCALLTYPE IDefaultFolderMenuInitialize_SetMenuRestrictions_Proxy(
38254     IDefaultFolderMenuInitialize* This,
38255     DEFAULT_FOLDER_MENU_RESTRICTIONS dfmrValues);
38256 void __RPC_STUB IDefaultFolderMenuInitialize_SetMenuRestrictions_Stub(
38257     IRpcStubBuffer* This,
38258     IRpcChannelBuffer* pRpcChannelBuffer,
38259     PRPC_MESSAGE pRpcMessage,
38260     DWORD* pdwStubPhase);
38261 HRESULT STDMETHODCALLTYPE IDefaultFolderMenuInitialize_GetMenuRestrictions_Proxy(
38262     IDefaultFolderMenuInitialize* This,
38263     DEFAULT_FOLDER_MENU_RESTRICTIONS dfmrMask,
38264     DEFAULT_FOLDER_MENU_RESTRICTIONS *pdfmrValues);
38265 void __RPC_STUB IDefaultFolderMenuInitialize_GetMenuRestrictions_Stub(
38266     IRpcStubBuffer* This,
38267     IRpcChannelBuffer* pRpcChannelBuffer,
38268     PRPC_MESSAGE pRpcMessage,
38269     DWORD* pdwStubPhase);
38270 HRESULT STDMETHODCALLTYPE IDefaultFolderMenuInitialize_SetHandlerClsid_Proxy(
38271     IDefaultFolderMenuInitialize* This,
38272     REFCLSID rclsid);
38273 void __RPC_STUB IDefaultFolderMenuInitialize_SetHandlerClsid_Stub(
38274     IRpcStubBuffer* This,
38275     IRpcChannelBuffer* pRpcChannelBuffer,
38276     PRPC_MESSAGE pRpcMessage,
38277     DWORD* pdwStubPhase);
38278 
38279 #endif  /* __IDefaultFolderMenuInitialize_INTERFACE_DEFINED__ */
38280 
38281 
38282 #if NTDDI_VERSION >= NTDDI_WIN8
38283 typedef enum ACTIVATEOPTIONS {
38284     AO_NONE = 0x0,
38285     AO_DESIGNMODE = 0x1,
38286     AO_NOERRORUI = 0x2,
38287     AO_NOSPLASHSCREEN = 0x4
38288 } ACTIVATEOPTIONS;
38289 
38290 DEFINE_ENUM_FLAG_OPERATORS(ACTIVATEOPTIONS)
38291 
38292 /*****************************************************************************
38293  * IApplicationActivationManager interface
38294  */
38295 #ifndef __IApplicationActivationManager_INTERFACE_DEFINED__
38296 #define __IApplicationActivationManager_INTERFACE_DEFINED__
38297 
38298 DEFINE_GUID(IID_IApplicationActivationManager, 0x2e941141, 0x7f97, 0x4756, 0xba,0x1d, 0x9d,0xec,0xde,0x89,0x4a,0x3d);
38299 #if defined(__cplusplus) && !defined(CINTERFACE)
38300 MIDL_INTERFACE("2e941141-7f97-4756-ba1d-9decde894a3d")
38301 IApplicationActivationManager : public IUnknown
38302 {
38303     virtual HRESULT STDMETHODCALLTYPE ActivateApplication(
38304         LPCWSTR appUserModelId,
38305         LPCWSTR arguments,
38306         ACTIVATEOPTIONS options,
38307         DWORD *processId) = 0;
38308 
38309     virtual HRESULT STDMETHODCALLTYPE ActivateForFile(
38310         LPCWSTR appUserModelId,
38311         IShellItemArray *itemArray,
38312         LPCWSTR verb,
38313         DWORD *processId) = 0;
38314 
38315     virtual HRESULT STDMETHODCALLTYPE ActivateForProtocol(
38316         LPCWSTR appUserModelId,
38317         IShellItemArray *itemArray,
38318         DWORD *processId) = 0;
38319 
38320 };
38321 #ifdef __CRT_UUID_DECL
38322 __CRT_UUID_DECL(IApplicationActivationManager, 0x2e941141, 0x7f97, 0x4756, 0xba,0x1d, 0x9d,0xec,0xde,0x89,0x4a,0x3d)
38323 #endif
38324 #else
38325 typedef struct IApplicationActivationManagerVtbl {
38326     BEGIN_INTERFACE
38327 
38328     /*** IUnknown methods ***/
38329     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
38330         IApplicationActivationManager* This,
38331         REFIID riid,
38332         void **ppvObject);
38333 
38334     ULONG (STDMETHODCALLTYPE *AddRef)(
38335         IApplicationActivationManager* This);
38336 
38337     ULONG (STDMETHODCALLTYPE *Release)(
38338         IApplicationActivationManager* This);
38339 
38340     /*** IApplicationActivationManager methods ***/
38341     HRESULT (STDMETHODCALLTYPE *ActivateApplication)(
38342         IApplicationActivationManager* This,
38343         LPCWSTR appUserModelId,
38344         LPCWSTR arguments,
38345         ACTIVATEOPTIONS options,
38346         DWORD *processId);
38347 
38348     HRESULT (STDMETHODCALLTYPE *ActivateForFile)(
38349         IApplicationActivationManager* This,
38350         LPCWSTR appUserModelId,
38351         IShellItemArray *itemArray,
38352         LPCWSTR verb,
38353         DWORD *processId);
38354 
38355     HRESULT (STDMETHODCALLTYPE *ActivateForProtocol)(
38356         IApplicationActivationManager* This,
38357         LPCWSTR appUserModelId,
38358         IShellItemArray *itemArray,
38359         DWORD *processId);
38360 
38361     END_INTERFACE
38362 } IApplicationActivationManagerVtbl;
38363 interface IApplicationActivationManager {
38364     CONST_VTBL IApplicationActivationManagerVtbl* lpVtbl;
38365 };
38366 
38367 #ifdef COBJMACROS
38368 #ifndef WIDL_C_INLINE_WRAPPERS
38369 /*** IUnknown methods ***/
38370 #define IApplicationActivationManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
38371 #define IApplicationActivationManager_AddRef(This) (This)->lpVtbl->AddRef(This)
38372 #define IApplicationActivationManager_Release(This) (This)->lpVtbl->Release(This)
38373 /*** IApplicationActivationManager methods ***/
38374 #define IApplicationActivationManager_ActivateApplication(This,appUserModelId,arguments,options,processId) (This)->lpVtbl->ActivateApplication(This,appUserModelId,arguments,options,processId)
38375 #define IApplicationActivationManager_ActivateForFile(This,appUserModelId,itemArray,verb,processId) (This)->lpVtbl->ActivateForFile(This,appUserModelId,itemArray,verb,processId)
38376 #define IApplicationActivationManager_ActivateForProtocol(This,appUserModelId,itemArray,processId) (This)->lpVtbl->ActivateForProtocol(This,appUserModelId,itemArray,processId)
38377 #else
38378 /*** IUnknown methods ***/
38379 static FORCEINLINE HRESULT IApplicationActivationManager_QueryInterface(IApplicationActivationManager* This,REFIID riid,void **ppvObject) {
38380     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
38381 }
38382 static FORCEINLINE ULONG IApplicationActivationManager_AddRef(IApplicationActivationManager* This) {
38383     return This->lpVtbl->AddRef(This);
38384 }
38385 static FORCEINLINE ULONG IApplicationActivationManager_Release(IApplicationActivationManager* This) {
38386     return This->lpVtbl->Release(This);
38387 }
38388 /*** IApplicationActivationManager methods ***/
38389 static FORCEINLINE HRESULT IApplicationActivationManager_ActivateApplication(IApplicationActivationManager* This,LPCWSTR appUserModelId,LPCWSTR arguments,ACTIVATEOPTIONS options,DWORD *processId) {
38390     return This->lpVtbl->ActivateApplication(This,appUserModelId,arguments,options,processId);
38391 }
38392 static FORCEINLINE HRESULT IApplicationActivationManager_ActivateForFile(IApplicationActivationManager* This,LPCWSTR appUserModelId,IShellItemArray *itemArray,LPCWSTR verb,DWORD *processId) {
38393     return This->lpVtbl->ActivateForFile(This,appUserModelId,itemArray,verb,processId);
38394 }
38395 static FORCEINLINE HRESULT IApplicationActivationManager_ActivateForProtocol(IApplicationActivationManager* This,LPCWSTR appUserModelId,IShellItemArray *itemArray,DWORD *processId) {
38396     return This->lpVtbl->ActivateForProtocol(This,appUserModelId,itemArray,processId);
38397 }
38398 #endif
38399 #endif
38400 
38401 #endif
38402 
38403 HRESULT STDMETHODCALLTYPE IApplicationActivationManager_ActivateApplication_Proxy(
38404     IApplicationActivationManager* This,
38405     LPCWSTR appUserModelId,
38406     LPCWSTR arguments,
38407     ACTIVATEOPTIONS options,
38408     DWORD *processId);
38409 void __RPC_STUB IApplicationActivationManager_ActivateApplication_Stub(
38410     IRpcStubBuffer* This,
38411     IRpcChannelBuffer* pRpcChannelBuffer,
38412     PRPC_MESSAGE pRpcMessage,
38413     DWORD* pdwStubPhase);
38414 HRESULT STDMETHODCALLTYPE IApplicationActivationManager_ActivateForFile_Proxy(
38415     IApplicationActivationManager* This,
38416     LPCWSTR appUserModelId,
38417     IShellItemArray *itemArray,
38418     LPCWSTR verb,
38419     DWORD *processId);
38420 void __RPC_STUB IApplicationActivationManager_ActivateForFile_Stub(
38421     IRpcStubBuffer* This,
38422     IRpcChannelBuffer* pRpcChannelBuffer,
38423     PRPC_MESSAGE pRpcMessage,
38424     DWORD* pdwStubPhase);
38425 HRESULT STDMETHODCALLTYPE IApplicationActivationManager_ActivateForProtocol_Proxy(
38426     IApplicationActivationManager* This,
38427     LPCWSTR appUserModelId,
38428     IShellItemArray *itemArray,
38429     DWORD *processId);
38430 void __RPC_STUB IApplicationActivationManager_ActivateForProtocol_Stub(
38431     IRpcStubBuffer* This,
38432     IRpcChannelBuffer* pRpcChannelBuffer,
38433     PRPC_MESSAGE pRpcMessage,
38434     DWORD* pdwStubPhase);
38435 
38436 #endif  /* __IApplicationActivationManager_INTERFACE_DEFINED__ */
38437 
38438 #endif
38439 
38440 
38441 DEFINE_GUID(LIBID_ShellObjects, 0x50a7e9b1, 0x70ef, 0x11d1, 0xb7,0x5a, 0x00,0xa0,0xc9,0x05,0x64,0xfe);
38442 
38443 /*****************************************************************************
38444  * DesktopWallpaper coclass
38445  */
38446 
38447 DEFINE_GUID(CLSID_DesktopWallpaper, 0xc2cf3110, 0x460e, 0x4fc1, 0xb9,0xd0, 0x8a,0x1c,0x0c,0x9c,0xc4,0xbd);
38448 
38449 #ifdef __cplusplus
38450 class DECLSPEC_UUID("c2cf3110-460e-4fc1-b9d0-8a1c0c9cc4bd") DesktopWallpaper;
38451 #ifdef __CRT_UUID_DECL
38452 __CRT_UUID_DECL(DesktopWallpaper, 0xc2cf3110, 0x460e, 0x4fc1, 0xb9,0xd0, 0x8a,0x1c,0x0c,0x9c,0xc4,0xbd)
38453 #endif
38454 #endif
38455 
38456 /*****************************************************************************
38457  * ShellDesktop coclass
38458  */
38459 
38460 DEFINE_GUID(CLSID_ShellDesktop, 0x00021400, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
38461 
38462 #ifdef __cplusplus
38463 class DECLSPEC_UUID("00021400-0000-0000-c000-000000000046") ShellDesktop;
38464 #ifdef __CRT_UUID_DECL
38465 __CRT_UUID_DECL(ShellDesktop, 0x00021400, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
38466 #endif
38467 #endif
38468 
38469 /*****************************************************************************
38470  * ShellFSFolder coclass
38471  */
38472 
38473 DEFINE_GUID(CLSID_ShellFSFolder, 0xf3364ba0, 0x65b9, 0x11ce, 0xa9,0xba, 0x00,0xaa,0x00,0x4a,0xe8,0x37);
38474 
38475 #ifdef __cplusplus
38476 class DECLSPEC_UUID("f3364ba0-65b9-11ce-a9ba-00aa004ae837") ShellFSFolder;
38477 #ifdef __CRT_UUID_DECL
38478 __CRT_UUID_DECL(ShellFSFolder, 0xf3364ba0, 0x65b9, 0x11ce, 0xa9,0xba, 0x00,0xaa,0x00,0x4a,0xe8,0x37)
38479 #endif
38480 #endif
38481 
38482 /*****************************************************************************
38483  * NetworkPlaces coclass
38484  */
38485 
38486 DEFINE_GUID(CLSID_NetworkPlaces, 0x208d2c60, 0x3aea, 0x1069, 0xa2,0xd7, 0x08,0x00,0x2b,0x30,0x30,0x9d);
38487 
38488 #ifdef __cplusplus
38489 class DECLSPEC_UUID("208d2c60-3aea-1069-a2d7-08002b30309d") NetworkPlaces;
38490 #ifdef __CRT_UUID_DECL
38491 __CRT_UUID_DECL(NetworkPlaces, 0x208d2c60, 0x3aea, 0x1069, 0xa2,0xd7, 0x08,0x00,0x2b,0x30,0x30,0x9d)
38492 #endif
38493 #endif
38494 
38495 /*****************************************************************************
38496  * ShellLink coclass
38497  */
38498 
38499 DEFINE_GUID(CLSID_ShellLink, 0x00021401, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
38500 
38501 #ifdef __cplusplus
38502 class DECLSPEC_UUID("00021401-0000-0000-c000-000000000046") ShellLink;
38503 #ifdef __CRT_UUID_DECL
38504 __CRT_UUID_DECL(ShellLink, 0x00021401, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
38505 #endif
38506 #endif
38507 
38508 /*****************************************************************************
38509  * QueryCancelAutoPlay coclass
38510  */
38511 
38512 DEFINE_GUID(CLSID_QueryCancelAutoPlay, 0x331f1768, 0x05a9, 0x4ddd, 0xb8,0x6e, 0xda,0xe3,0x4d,0xdc,0x99,0x8a);
38513 
38514 #ifdef __cplusplus
38515 class DECLSPEC_UUID("331f1768-05a9-4ddd-b86e-dae34ddc998a") QueryCancelAutoPlay;
38516 #ifdef __CRT_UUID_DECL
38517 __CRT_UUID_DECL(QueryCancelAutoPlay, 0x331f1768, 0x05a9, 0x4ddd, 0xb8,0x6e, 0xda,0xe3,0x4d,0xdc,0x99,0x8a)
38518 #endif
38519 #endif
38520 
38521 /*****************************************************************************
38522  * DriveSizeCategorizer coclass
38523  */
38524 
38525 DEFINE_GUID(CLSID_DriveSizeCategorizer, 0x94357b53, 0xca29, 0x4b78, 0x83,0xae, 0xe8,0xfe,0x74,0x09,0x13,0x4f);
38526 
38527 #ifdef __cplusplus
38528 class DECLSPEC_UUID("94357b53-ca29-4b78-83ae-e8fe7409134f") DriveSizeCategorizer;
38529 #ifdef __CRT_UUID_DECL
38530 __CRT_UUID_DECL(DriveSizeCategorizer, 0x94357b53, 0xca29, 0x4b78, 0x83,0xae, 0xe8,0xfe,0x74,0x09,0x13,0x4f)
38531 #endif
38532 #endif
38533 
38534 /*****************************************************************************
38535  * DriveTypeCategorizer coclass
38536  */
38537 
38538 DEFINE_GUID(CLSID_DriveTypeCategorizer, 0xb0a8f3cf, 0x4333, 0x4bab, 0x88,0x73, 0x1c,0xcb,0x1c,0xad,0xa4,0x8b);
38539 
38540 #ifdef __cplusplus
38541 class DECLSPEC_UUID("b0a8f3cf-4333-4bab-8873-1ccb1cada48b") DriveTypeCategorizer;
38542 #ifdef __CRT_UUID_DECL
38543 __CRT_UUID_DECL(DriveTypeCategorizer, 0xb0a8f3cf, 0x4333, 0x4bab, 0x88,0x73, 0x1c,0xcb,0x1c,0xad,0xa4,0x8b)
38544 #endif
38545 #endif
38546 
38547 /*****************************************************************************
38548  * FreeSpaceCategorizer coclass
38549  */
38550 
38551 DEFINE_GUID(CLSID_FreeSpaceCategorizer, 0xb5607793, 0x24ac, 0x44c7, 0x82,0xe2, 0x83,0x17,0x26,0xaa,0x6c,0xb7);
38552 
38553 #ifdef __cplusplus
38554 class DECLSPEC_UUID("b5607793-24ac-44c7-82e2-831726aa6cb7") FreeSpaceCategorizer;
38555 #ifdef __CRT_UUID_DECL
38556 __CRT_UUID_DECL(FreeSpaceCategorizer, 0xb5607793, 0x24ac, 0x44c7, 0x82,0xe2, 0x83,0x17,0x26,0xaa,0x6c,0xb7)
38557 #endif
38558 #endif
38559 
38560 /*****************************************************************************
38561  * TimeCategorizer coclass
38562  */
38563 
38564 DEFINE_GUID(CLSID_TimeCategorizer, 0x3bb4118f, 0xddfd, 0x4d30, 0xa3,0x48, 0x9f,0xb5,0xd6,0xbf,0x1a,0xfe);
38565 
38566 #ifdef __cplusplus
38567 class DECLSPEC_UUID("3bb4118f-ddfd-4d30-a348-9fb5d6bf1afe") TimeCategorizer;
38568 #ifdef __CRT_UUID_DECL
38569 __CRT_UUID_DECL(TimeCategorizer, 0x3bb4118f, 0xddfd, 0x4d30, 0xa3,0x48, 0x9f,0xb5,0xd6,0xbf,0x1a,0xfe)
38570 #endif
38571 #endif
38572 
38573 /*****************************************************************************
38574  * SizeCategorizer coclass
38575  */
38576 
38577 DEFINE_GUID(CLSID_SizeCategorizer, 0x55d7b852, 0xf6d1, 0x42f2, 0xaa,0x75, 0x87,0x28,0xa1,0xb2,0xd2,0x64);
38578 
38579 #ifdef __cplusplus
38580 class DECLSPEC_UUID("55d7b852-f6d1-42f2-aa75-8728a1b2d264") SizeCategorizer;
38581 #ifdef __CRT_UUID_DECL
38582 __CRT_UUID_DECL(SizeCategorizer, 0x55d7b852, 0xf6d1, 0x42f2, 0xaa,0x75, 0x87,0x28,0xa1,0xb2,0xd2,0x64)
38583 #endif
38584 #endif
38585 
38586 /*****************************************************************************
38587  * AlphabeticalCategorizer coclass
38588  */
38589 
38590 DEFINE_GUID(CLSID_AlphabeticalCategorizer, 0x3c2654c6, 0x7372, 0x4f6b, 0xb3,0x10, 0x55,0xd6,0x12,0x8f,0x49,0xd2);
38591 
38592 #ifdef __cplusplus
38593 class DECLSPEC_UUID("3c2654c6-7372-4f6b-b310-55d6128f49d2") AlphabeticalCategorizer;
38594 #ifdef __CRT_UUID_DECL
38595 __CRT_UUID_DECL(AlphabeticalCategorizer, 0x3c2654c6, 0x7372, 0x4f6b, 0xb3,0x10, 0x55,0xd6,0x12,0x8f,0x49,0xd2)
38596 #endif
38597 #endif
38598 
38599 /*****************************************************************************
38600  * MergedCategorizer coclass
38601  */
38602 
38603 DEFINE_GUID(CLSID_MergedCategorizer, 0x8e827c11, 0x33e7, 0x4bc1, 0xb2,0x42, 0x8c,0xd9,0xa1,0xc2,0xb3,0x04);
38604 
38605 #ifdef __cplusplus
38606 class DECLSPEC_UUID("8e827c11-33e7-4bc1-b242-8cd9a1c2b304") MergedCategorizer;
38607 #ifdef __CRT_UUID_DECL
38608 __CRT_UUID_DECL(MergedCategorizer, 0x8e827c11, 0x33e7, 0x4bc1, 0xb2,0x42, 0x8c,0xd9,0xa1,0xc2,0xb3,0x04)
38609 #endif
38610 #endif
38611 
38612 /*****************************************************************************
38613  * ImageProperties coclass
38614  */
38615 
38616 DEFINE_GUID(CLSID_ImageProperties, 0x7ab770c7, 0x0e23, 0x4d7a, 0x8a,0xa2, 0x19,0xbf,0xad,0x47,0x98,0x29);
38617 
38618 #ifdef __cplusplus
38619 class DECLSPEC_UUID("7ab770c7-0e23-4d7a-8aa2-19bfad479829") ImageProperties;
38620 #ifdef __CRT_UUID_DECL
38621 __CRT_UUID_DECL(ImageProperties, 0x7ab770c7, 0x0e23, 0x4d7a, 0x8a,0xa2, 0x19,0xbf,0xad,0x47,0x98,0x29)
38622 #endif
38623 #endif
38624 
38625 /*****************************************************************************
38626  * PropertiesUI coclass
38627  */
38628 
38629 DEFINE_GUID(CLSID_PropertiesUI, 0xd912f8cf, 0x0396, 0x4915, 0x88,0x4e, 0xfb,0x42,0x5d,0x32,0x94,0x3b);
38630 
38631 #ifdef __cplusplus
38632 class DECLSPEC_UUID("d912f8cf-0396-4915-884e-fb425d32943b") PropertiesUI;
38633 #ifdef __CRT_UUID_DECL
38634 __CRT_UUID_DECL(PropertiesUI, 0xd912f8cf, 0x0396, 0x4915, 0x88,0x4e, 0xfb,0x42,0x5d,0x32,0x94,0x3b)
38635 #endif
38636 #endif
38637 
38638 /*****************************************************************************
38639  * UserNotification coclass
38640  */
38641 
38642 DEFINE_GUID(CLSID_UserNotification, 0x0010890e, 0x8789, 0x413c, 0xad,0xbc, 0x48,0xf5,0xb5,0x11,0xb3,0xaf);
38643 
38644 #ifdef __cplusplus
38645 class DECLSPEC_UUID("0010890e-8789-413c-adbc-48f5b511b3af") UserNotification;
38646 #ifdef __CRT_UUID_DECL
38647 __CRT_UUID_DECL(UserNotification, 0x0010890e, 0x8789, 0x413c, 0xad,0xbc, 0x48,0xf5,0xb5,0x11,0xb3,0xaf)
38648 #endif
38649 #endif
38650 
38651 /*****************************************************************************
38652  * CDBurn coclass
38653  */
38654 
38655 DEFINE_GUID(CLSID_CDBurn, 0xfbeb8a05, 0xbeee, 0x4442, 0x80,0x4e, 0x40,0x9d,0x6c,0x45,0x15,0xe9);
38656 
38657 #ifdef __cplusplus
38658 class DECLSPEC_UUID("fbeb8a05-beee-4442-804e-409d6c4515e9") CDBurn;
38659 #ifdef __CRT_UUID_DECL
38660 __CRT_UUID_DECL(CDBurn, 0xfbeb8a05, 0xbeee, 0x4442, 0x80,0x4e, 0x40,0x9d,0x6c,0x45,0x15,0xe9)
38661 #endif
38662 #endif
38663 
38664 /*****************************************************************************
38665  * TaskbarList coclass
38666  */
38667 
38668 DEFINE_GUID(CLSID_TaskbarList, 0x56fdf344, 0xfd6d, 0x11d0, 0x95,0x8a, 0x00,0x60,0x97,0xc9,0xa0,0x90);
38669 
38670 #ifdef __cplusplus
38671 class DECLSPEC_UUID("56fdf344-fd6d-11d0-958a-006097c9a090") TaskbarList;
38672 #ifdef __CRT_UUID_DECL
38673 __CRT_UUID_DECL(TaskbarList, 0x56fdf344, 0xfd6d, 0x11d0, 0x95,0x8a, 0x00,0x60,0x97,0xc9,0xa0,0x90)
38674 #endif
38675 #endif
38676 
38677 /*****************************************************************************
38678  * StartMenuPin coclass
38679  */
38680 
38681 DEFINE_GUID(CLSID_StartMenuPin, 0xa2a9545d, 0xa0c2, 0x42b4, 0x97,0x08, 0xa0,0xb2,0xba,0xdd,0x77,0xc8);
38682 
38683 #ifdef __cplusplus
38684 class DECLSPEC_UUID("a2a9545d-a0c2-42b4-9708-a0b2badd77c8") StartMenuPin;
38685 #ifdef __CRT_UUID_DECL
38686 __CRT_UUID_DECL(StartMenuPin, 0xa2a9545d, 0xa0c2, 0x42b4, 0x97,0x08, 0xa0,0xb2,0xba,0xdd,0x77,0xc8)
38687 #endif
38688 #endif
38689 
38690 /*****************************************************************************
38691  * WebWizardHost coclass
38692  */
38693 
38694 DEFINE_GUID(CLSID_WebWizardHost, 0xc827f149, 0x55c1, 0x4d28, 0x93,0x5e, 0x57,0xe4,0x7c,0xae,0xd9,0x73);
38695 
38696 #ifdef __cplusplus
38697 class DECLSPEC_UUID("c827f149-55c1-4d28-935e-57e47caed973") WebWizardHost;
38698 #ifdef __CRT_UUID_DECL
38699 __CRT_UUID_DECL(WebWizardHost, 0xc827f149, 0x55c1, 0x4d28, 0x93,0x5e, 0x57,0xe4,0x7c,0xae,0xd9,0x73)
38700 #endif
38701 #endif
38702 
38703 /*****************************************************************************
38704  * PublishDropTarget coclass
38705  */
38706 
38707 DEFINE_GUID(CLSID_PublishDropTarget, 0xcc6eeffb, 0x43f6, 0x46c5, 0x96,0x19, 0x51,0xd5,0x71,0x96,0x7f,0x7d);
38708 
38709 #ifdef __cplusplus
38710 class DECLSPEC_UUID("cc6eeffb-43f6-46c5-9619-51d571967f7d") PublishDropTarget;
38711 #ifdef __CRT_UUID_DECL
38712 __CRT_UUID_DECL(PublishDropTarget, 0xcc6eeffb, 0x43f6, 0x46c5, 0x96,0x19, 0x51,0xd5,0x71,0x96,0x7f,0x7d)
38713 #endif
38714 #endif
38715 
38716 /*****************************************************************************
38717  * PublishingWizard coclass
38718  */
38719 
38720 DEFINE_GUID(CLSID_PublishingWizard, 0x6b33163c, 0x76a5, 0x4b6c, 0xbf,0x21, 0x45,0xde,0x9c,0xd5,0x03,0xa1);
38721 
38722 #ifdef __cplusplus
38723 class DECLSPEC_UUID("6b33163c-76a5-4b6c-bf21-45de9cd503a1") PublishingWizard;
38724 #ifdef __CRT_UUID_DECL
38725 __CRT_UUID_DECL(PublishingWizard, 0x6b33163c, 0x76a5, 0x4b6c, 0xbf,0x21, 0x45,0xde,0x9c,0xd5,0x03,0xa1)
38726 #endif
38727 #endif
38728 
38729 #define SID_PublishingWizard CLSID_PublishingWizard
38730 /*****************************************************************************
38731  * InternetPrintOrdering coclass
38732  */
38733 
38734 DEFINE_GUID(CLSID_InternetPrintOrdering, 0xadd36aa8, 0x751a, 0x4579, 0xa2,0x66, 0xd6,0x6f,0x52,0x02,0xcc,0xbb);
38735 
38736 #ifdef __cplusplus
38737 class DECLSPEC_UUID("add36aa8-751a-4579-a266-d66f5202ccbb") InternetPrintOrdering;
38738 #ifdef __CRT_UUID_DECL
38739 __CRT_UUID_DECL(InternetPrintOrdering, 0xadd36aa8, 0x751a, 0x4579, 0xa2,0x66, 0xd6,0x6f,0x52,0x02,0xcc,0xbb)
38740 #endif
38741 #endif
38742 
38743 /*****************************************************************************
38744  * FolderViewHost coclass
38745  */
38746 
38747 DEFINE_GUID(CLSID_FolderViewHost, 0x20b1cb23, 0x6968, 0x4eb9, 0xb7,0xd4, 0xa6,0x6d,0x00,0xd0,0x7c,0xee);
38748 
38749 #ifdef __cplusplus
38750 class DECLSPEC_UUID("20b1cb23-6968-4eb9-b7d4-a66d00d07cee") FolderViewHost;
38751 #ifdef __CRT_UUID_DECL
38752 __CRT_UUID_DECL(FolderViewHost, 0x20b1cb23, 0x6968, 0x4eb9, 0xb7,0xd4, 0xa6,0x6d,0x00,0xd0,0x7c,0xee)
38753 #endif
38754 #endif
38755 
38756 /*****************************************************************************
38757  * ExplorerBrowser coclass
38758  */
38759 
38760 DEFINE_GUID(CLSID_ExplorerBrowser, 0x71f96385, 0xddd6, 0x48d3, 0xa0,0xc1, 0xae,0x06,0xe8,0xb0,0x55,0xfb);
38761 
38762 #ifdef __cplusplus
38763 class DECLSPEC_UUID("71f96385-ddd6-48d3-a0c1-ae06e8b055fb") ExplorerBrowser;
38764 #ifdef __CRT_UUID_DECL
38765 __CRT_UUID_DECL(ExplorerBrowser, 0x71f96385, 0xddd6, 0x48d3, 0xa0,0xc1, 0xae,0x06,0xe8,0xb0,0x55,0xfb)
38766 #endif
38767 #endif
38768 
38769 /*****************************************************************************
38770  * ImageRecompress coclass
38771  */
38772 
38773 DEFINE_GUID(CLSID_ImageRecompress, 0x6e33091c, 0xd2f8, 0x4740, 0xb5,0x5e, 0x2e,0x11,0xd1,0x47,0x7a,0x2c);
38774 
38775 #ifdef __cplusplus
38776 class DECLSPEC_UUID("6e33091c-d2f8-4740-b55e-2e11d1477a2c") ImageRecompress;
38777 #ifdef __CRT_UUID_DECL
38778 __CRT_UUID_DECL(ImageRecompress, 0x6e33091c, 0xd2f8, 0x4740, 0xb5,0x5e, 0x2e,0x11,0xd1,0x47,0x7a,0x2c)
38779 #endif
38780 #endif
38781 
38782 /*****************************************************************************
38783  * TrayBandSiteService coclass
38784  */
38785 
38786 DEFINE_GUID(CLSID_TrayBandSiteService, 0xf60ad0a0, 0xe5e1, 0x45cb, 0xb5,0x1a, 0xe1,0x5b,0x9f,0x8b,0x29,0x34);
38787 
38788 #ifdef __cplusplus
38789 class DECLSPEC_UUID("f60ad0a0-e5e1-45cb-b51a-e15b9f8b2934") TrayBandSiteService;
38790 #ifdef __CRT_UUID_DECL
38791 __CRT_UUID_DECL(TrayBandSiteService, 0xf60ad0a0, 0xe5e1, 0x45cb, 0xb5,0x1a, 0xe1,0x5b,0x9f,0x8b,0x29,0x34)
38792 #endif
38793 #endif
38794 
38795 /*****************************************************************************
38796  * TrayDeskBand coclass
38797  */
38798 
38799 DEFINE_GUID(CLSID_TrayDeskBand, 0xe6442437, 0x6c68, 0x4f52, 0x94,0xdd, 0x2c,0xfe,0xd2,0x67,0xef,0xb9);
38800 
38801 #ifdef __cplusplus
38802 class DECLSPEC_UUID("e6442437-6c68-4f52-94dd-2cfed267efb9") TrayDeskBand;
38803 #ifdef __CRT_UUID_DECL
38804 __CRT_UUID_DECL(TrayDeskBand, 0xe6442437, 0x6c68, 0x4f52, 0x94,0xdd, 0x2c,0xfe,0xd2,0x67,0xef,0xb9)
38805 #endif
38806 #endif
38807 
38808 /*****************************************************************************
38809  * AttachmentServices coclass
38810  */
38811 
38812 DEFINE_GUID(CLSID_AttachmentServices, 0x4125dd96, 0xe03a, 0x4103, 0x8f,0x70, 0xe0,0x59,0x7d,0x80,0x3b,0x9c);
38813 
38814 #ifdef __cplusplus
38815 class DECLSPEC_UUID("4125dd96-e03a-4103-8f70-e0597d803b9c") AttachmentServices;
38816 #ifdef __CRT_UUID_DECL
38817 __CRT_UUID_DECL(AttachmentServices, 0x4125dd96, 0xe03a, 0x4103, 0x8f,0x70, 0xe0,0x59,0x7d,0x80,0x3b,0x9c)
38818 #endif
38819 #endif
38820 
38821 /*****************************************************************************
38822  * DocPropShellExtension coclass
38823  */
38824 
38825 DEFINE_GUID(CLSID_DocPropShellExtension, 0x883373c3, 0xbf89, 0x11d1, 0xbe,0x35, 0x08,0x00,0x36,0xb1,0x1a,0x03);
38826 
38827 #ifdef __cplusplus
38828 class DECLSPEC_UUID("883373c3-bf89-11d1-be35-080036b11a03") DocPropShellExtension;
38829 #ifdef __CRT_UUID_DECL
38830 __CRT_UUID_DECL(DocPropShellExtension, 0x883373c3, 0xbf89, 0x11d1, 0xbe,0x35, 0x08,0x00,0x36,0xb1,0x1a,0x03)
38831 #endif
38832 #endif
38833 
38834 /*****************************************************************************
38835  * ShellItem coclass
38836  */
38837 
38838 DEFINE_GUID(CLSID_ShellItem, 0x9ac9fbe1, 0xe0a2, 0x4ad6, 0xb4,0xee, 0xe2,0x12,0x01,0x3e,0xa9,0x17);
38839 
38840 #ifdef __cplusplus
38841 class DECLSPEC_UUID("9ac9fbe1-e0a2-4ad6-b4ee-e212013ea917") ShellItem;
38842 #ifdef __CRT_UUID_DECL
38843 __CRT_UUID_DECL(ShellItem, 0x9ac9fbe1, 0xe0a2, 0x4ad6, 0xb4,0xee, 0xe2,0x12,0x01,0x3e,0xa9,0x17)
38844 #endif
38845 #endif
38846 
38847 /*****************************************************************************
38848  * NamespaceWalker coclass
38849  */
38850 
38851 DEFINE_GUID(CLSID_NamespaceWalker, 0x72eb61e0, 0x8672, 0x4303, 0x91,0x75, 0xf2,0xe4,0xc6,0x8b,0x2e,0x7c);
38852 
38853 #ifdef __cplusplus
38854 class DECLSPEC_UUID("72eb61e0-8672-4303-9175-f2e4c68b2e7c") NamespaceWalker;
38855 #ifdef __CRT_UUID_DECL
38856 __CRT_UUID_DECL(NamespaceWalker, 0x72eb61e0, 0x8672, 0x4303, 0x91,0x75, 0xf2,0xe4,0xc6,0x8b,0x2e,0x7c)
38857 #endif
38858 #endif
38859 
38860 /*****************************************************************************
38861  * FileOperation coclass
38862  */
38863 
38864 DEFINE_GUID(CLSID_FileOperation, 0x3ad05575, 0x8857, 0x4850, 0x92,0x77, 0x11,0xb8,0x5b,0xdb,0x8e,0x09);
38865 
38866 #ifdef __cplusplus
38867 class DECLSPEC_UUID("3ad05575-8857-4850-9277-11b85bdb8e09") FileOperation;
38868 #ifdef __CRT_UUID_DECL
38869 __CRT_UUID_DECL(FileOperation, 0x3ad05575, 0x8857, 0x4850, 0x92,0x77, 0x11,0xb8,0x5b,0xdb,0x8e,0x09)
38870 #endif
38871 #endif
38872 
38873 /*****************************************************************************
38874  * FileOpenDialog coclass
38875  */
38876 
38877 DEFINE_GUID(CLSID_FileOpenDialog, 0xdc1c5a9c, 0xe88a, 0x4dde, 0xa5,0xa1, 0x60,0xf8,0x2a,0x20,0xae,0xf7);
38878 
38879 #ifdef __cplusplus
38880 class DECLSPEC_UUID("dc1c5a9c-e88a-4dde-a5a1-60f82a20aef7") FileOpenDialog;
38881 #ifdef __CRT_UUID_DECL
38882 __CRT_UUID_DECL(FileOpenDialog, 0xdc1c5a9c, 0xe88a, 0x4dde, 0xa5,0xa1, 0x60,0xf8,0x2a,0x20,0xae,0xf7)
38883 #endif
38884 #endif
38885 
38886 /*****************************************************************************
38887  * FileSaveDialog coclass
38888  */
38889 
38890 DEFINE_GUID(CLSID_FileSaveDialog, 0xc0b4e2f3, 0xba21, 0x4773, 0x8d,0xba, 0x33,0x5e,0xc9,0x46,0xeb,0x8b);
38891 
38892 #ifdef __cplusplus
38893 class DECLSPEC_UUID("c0b4e2f3-ba21-4773-8dba-335ec946eb8b") FileSaveDialog;
38894 #ifdef __CRT_UUID_DECL
38895 __CRT_UUID_DECL(FileSaveDialog, 0xc0b4e2f3, 0xba21, 0x4773, 0x8d,0xba, 0x33,0x5e,0xc9,0x46,0xeb,0x8b)
38896 #endif
38897 #endif
38898 
38899 /*****************************************************************************
38900  * KnownFolderManager coclass
38901  */
38902 
38903 DEFINE_GUID(CLSID_KnownFolderManager, 0x4df0c730, 0xdf9d, 0x4ae3, 0x91,0x53, 0xaa,0x6b,0x82,0xe9,0x79,0x5a);
38904 
38905 #ifdef __cplusplus
38906 class DECLSPEC_UUID("4df0c730-df9d-4ae3-9153-aa6b82e9795a") KnownFolderManager;
38907 #ifdef __CRT_UUID_DECL
38908 __CRT_UUID_DECL(KnownFolderManager, 0x4df0c730, 0xdf9d, 0x4ae3, 0x91,0x53, 0xaa,0x6b,0x82,0xe9,0x79,0x5a)
38909 #endif
38910 #endif
38911 
38912 /*****************************************************************************
38913  * FSCopyHandler coclass
38914  */
38915 
38916 DEFINE_GUID(CLSID_FSCopyHandler, 0xd197380a, 0x0a79, 0x4dc8, 0xa0,0x33, 0xed,0x88,0x2c,0x2f,0xa1,0x4b);
38917 
38918 #ifdef __cplusplus
38919 class DECLSPEC_UUID("d197380a-0a79-4dc8-a033-ed882c2fa14b") FSCopyHandler;
38920 #ifdef __CRT_UUID_DECL
38921 __CRT_UUID_DECL(FSCopyHandler, 0xd197380a, 0x0a79, 0x4dc8, 0xa0,0x33, 0xed,0x88,0x2c,0x2f,0xa1,0x4b)
38922 #endif
38923 #endif
38924 
38925 /*****************************************************************************
38926  * SharingConfigurationManager coclass
38927  */
38928 
38929 DEFINE_GUID(CLSID_SharingConfigurationManager, 0x49f371e1, 0x8c5c, 0x4d9c, 0x9a,0x3b, 0x54,0xa6,0x82,0x7f,0x51,0x3c);
38930 
38931 #ifdef __cplusplus
38932 class DECLSPEC_UUID("49f371e1-8c5c-4d9c-9a3b-54a6827f513c") SharingConfigurationManager;
38933 #ifdef __CRT_UUID_DECL
38934 __CRT_UUID_DECL(SharingConfigurationManager, 0x49f371e1, 0x8c5c, 0x4d9c, 0x9a,0x3b, 0x54,0xa6,0x82,0x7f,0x51,0x3c)
38935 #endif
38936 #endif
38937 
38938 /*****************************************************************************
38939  * PreviousVersions coclass
38940  */
38941 
38942 DEFINE_GUID(CLSID_PreviousVersions, 0x596ab062, 0xb4d2, 0x4215, 0x9f,0x74, 0xe9,0x10,0x9b,0x0a,0x81,0x53);
38943 
38944 #ifdef __cplusplus
38945 class DECLSPEC_UUID("596ab062-b4d2-4215-9f74-e9109b0a8153") PreviousVersions;
38946 #ifdef __CRT_UUID_DECL
38947 __CRT_UUID_DECL(PreviousVersions, 0x596ab062, 0xb4d2, 0x4215, 0x9f,0x74, 0xe9,0x10,0x9b,0x0a,0x81,0x53)
38948 #endif
38949 #endif
38950 
38951 /*****************************************************************************
38952  * NetworkConnections coclass
38953  */
38954 
38955 DEFINE_GUID(CLSID_NetworkConnections, 0x7007acc7, 0x3202, 0x11d1, 0xaa,0xd2, 0x00,0x80,0x5f,0xc1,0x27,0x0e);
38956 
38957 #ifdef __cplusplus
38958 class DECLSPEC_UUID("7007acc7-3202-11d1-aad2-00805fc1270e") NetworkConnections;
38959 #ifdef __CRT_UUID_DECL
38960 __CRT_UUID_DECL(NetworkConnections, 0x7007acc7, 0x3202, 0x11d1, 0xaa,0xd2, 0x00,0x80,0x5f,0xc1,0x27,0x0e)
38961 #endif
38962 #endif
38963 
38964 /*****************************************************************************
38965  * NamespaceTreeControl coclass
38966  */
38967 
38968 DEFINE_GUID(CLSID_NamespaceTreeControl, 0xae054212, 0x3535, 0x4430, 0x83,0xed, 0xd5,0x01,0xaa,0x66,0x80,0xe6);
38969 
38970 #ifdef __cplusplus
38971 class DECLSPEC_UUID("ae054212-3535-4430-83ed-d501aa6680e6") NamespaceTreeControl;
38972 #ifdef __CRT_UUID_DECL
38973 __CRT_UUID_DECL(NamespaceTreeControl, 0xae054212, 0x3535, 0x4430, 0x83,0xed, 0xd5,0x01,0xaa,0x66,0x80,0xe6)
38974 #endif
38975 #endif
38976 
38977 /*****************************************************************************
38978  * IENamespaceTreeControl coclass
38979  */
38980 
38981 DEFINE_GUID(CLSID_IENamespaceTreeControl, 0xace52d03, 0xe5cd, 0x4b20, 0x82,0xff, 0xe7,0x1b,0x11,0xbe,0xae,0x1d);
38982 
38983 #ifdef __cplusplus
38984 class DECLSPEC_UUID("ace52d03-e5cd-4b20-82ff-e71b11beae1d") IENamespaceTreeControl;
38985 #ifdef __CRT_UUID_DECL
38986 __CRT_UUID_DECL(IENamespaceTreeControl, 0xace52d03, 0xe5cd, 0x4b20, 0x82,0xff, 0xe7,0x1b,0x11,0xbe,0xae,0x1d)
38987 #endif
38988 #endif
38989 
38990 /*****************************************************************************
38991  * ScheduledTasks coclass
38992  */
38993 
38994 DEFINE_GUID(CLSID_ScheduledTasks, 0xd6277990, 0x4c6a, 0x11cf, 0x8d,0x87, 0x00,0xaa,0x00,0x60,0xf5,0xbf);
38995 
38996 #ifdef __cplusplus
38997 class DECLSPEC_UUID("d6277990-4c6a-11cf-8d87-00aa0060f5bf") ScheduledTasks;
38998 #ifdef __CRT_UUID_DECL
38999 __CRT_UUID_DECL(ScheduledTasks, 0xd6277990, 0x4c6a, 0x11cf, 0x8d,0x87, 0x00,0xaa,0x00,0x60,0xf5,0xbf)
39000 #endif
39001 #endif
39002 
39003 /*****************************************************************************
39004  * ApplicationAssociationRegistration coclass
39005  */
39006 
39007 DEFINE_GUID(CLSID_ApplicationAssociationRegistration, 0x591209c7, 0x767b, 0x42b2, 0x9f,0xba, 0x44,0xee,0x46,0x15,0xf2,0xc7);
39008 
39009 #ifdef __cplusplus
39010 class DECLSPEC_UUID("591209c7-767b-42b2-9fba-44ee4615f2c7") ApplicationAssociationRegistration;
39011 #ifdef __CRT_UUID_DECL
39012 __CRT_UUID_DECL(ApplicationAssociationRegistration, 0x591209c7, 0x767b, 0x42b2, 0x9f,0xba, 0x44,0xee,0x46,0x15,0xf2,0xc7)
39013 #endif
39014 #endif
39015 
39016 /*****************************************************************************
39017  * ApplicationAssociationRegistrationUI coclass
39018  */
39019 
39020 DEFINE_GUID(CLSID_ApplicationAssociationRegistrationUI, 0x1968106d, 0xf3b5, 0x44cf, 0x89,0x0e, 0x11,0x6f,0xcb,0x9e,0xce,0xf1);
39021 
39022 #ifdef __cplusplus
39023 class DECLSPEC_UUID("1968106d-f3b5-44cf-890e-116fcb9ecef1") ApplicationAssociationRegistrationUI;
39024 #ifdef __CRT_UUID_DECL
39025 __CRT_UUID_DECL(ApplicationAssociationRegistrationUI, 0x1968106d, 0xf3b5, 0x44cf, 0x89,0x0e, 0x11,0x6f,0xcb,0x9e,0xce,0xf1)
39026 #endif
39027 #endif
39028 
39029 /*****************************************************************************
39030  * SearchFolderItemFactory coclass
39031  */
39032 
39033 DEFINE_GUID(CLSID_SearchFolderItemFactory, 0x14010e02, 0xbbbd, 0x41f0, 0x88,0xe3, 0xed,0xa3,0x71,0x21,0x65,0x84);
39034 
39035 #ifdef __cplusplus
39036 class DECLSPEC_UUID("14010e02-bbbd-41f0-88e3-eda371216584") SearchFolderItemFactory;
39037 #ifdef __CRT_UUID_DECL
39038 __CRT_UUID_DECL(SearchFolderItemFactory, 0x14010e02, 0xbbbd, 0x41f0, 0x88,0xe3, 0xed,0xa3,0x71,0x21,0x65,0x84)
39039 #endif
39040 #endif
39041 
39042 /*****************************************************************************
39043  * OpenControlPanel coclass
39044  */
39045 
39046 DEFINE_GUID(CLSID_OpenControlPanel, 0x06622d85, 0x6856, 0x4460, 0x8d,0xe1, 0xa8,0x19,0x21,0xb4,0x1c,0x4b);
39047 
39048 #ifdef __cplusplus
39049 class DECLSPEC_UUID("06622d85-6856-4460-8de1-a81921b41c4b") OpenControlPanel;
39050 #ifdef __CRT_UUID_DECL
39051 __CRT_UUID_DECL(OpenControlPanel, 0x06622d85, 0x6856, 0x4460, 0x8d,0xe1, 0xa8,0x19,0x21,0xb4,0x1c,0x4b)
39052 #endif
39053 #endif
39054 
39055 /*****************************************************************************
39056  * MailRecipient coclass
39057  */
39058 
39059 DEFINE_GUID(CLSID_MailRecipient, 0x9e56be60, 0xc50f, 0x11cf, 0x9a,0x2c, 0x00,0xa0,0xc9,0x0a,0x90,0xce);
39060 
39061 #ifdef __cplusplus
39062 class DECLSPEC_UUID("9e56be60-c50f-11cf-9a2c-00a0c90a90ce") MailRecipient;
39063 #ifdef __CRT_UUID_DECL
39064 __CRT_UUID_DECL(MailRecipient, 0x9e56be60, 0xc50f, 0x11cf, 0x9a,0x2c, 0x00,0xa0,0xc9,0x0a,0x90,0xce)
39065 #endif
39066 #endif
39067 
39068 /*****************************************************************************
39069  * NetworkExplorerFolder coclass
39070  */
39071 
39072 DEFINE_GUID(CLSID_NetworkExplorerFolder, 0xf02c1a0d, 0xbe21, 0x4350, 0x88,0xb0, 0x73,0x67,0xfc,0x96,0xef,0x3c);
39073 
39074 #ifdef __cplusplus
39075 class DECLSPEC_UUID("f02c1a0d-be21-4350-88b0-7367fc96ef3c") NetworkExplorerFolder;
39076 #ifdef __CRT_UUID_DECL
39077 __CRT_UUID_DECL(NetworkExplorerFolder, 0xf02c1a0d, 0xbe21, 0x4350, 0x88,0xb0, 0x73,0x67,0xfc,0x96,0xef,0x3c)
39078 #endif
39079 #endif
39080 
39081 /*****************************************************************************
39082  * DestinationList coclass
39083  */
39084 
39085 DEFINE_GUID(CLSID_DestinationList, 0x77f10cf0, 0x3db5, 0x4966, 0xb5,0x20, 0xb7,0xc5,0x4f,0xd3,0x5e,0xd6);
39086 
39087 #ifdef __cplusplus
39088 class DECLSPEC_UUID("77f10cf0-3db5-4966-b520-b7c54fd35ed6") DestinationList;
39089 #ifdef __CRT_UUID_DECL
39090 __CRT_UUID_DECL(DestinationList, 0x77f10cf0, 0x3db5, 0x4966, 0xb5,0x20, 0xb7,0xc5,0x4f,0xd3,0x5e,0xd6)
39091 #endif
39092 #endif
39093 
39094 /*****************************************************************************
39095  * ApplicationDestinations coclass
39096  */
39097 
39098 DEFINE_GUID(CLSID_ApplicationDestinations, 0x86c14003, 0x4d6b, 0x4ef3, 0xa7,0xb4, 0x05,0x06,0x66,0x3b,0x2e,0x68);
39099 
39100 #ifdef __cplusplus
39101 class DECLSPEC_UUID("86c14003-4d6b-4ef3-a7b4-0506663b2e68") ApplicationDestinations;
39102 #ifdef __CRT_UUID_DECL
39103 __CRT_UUID_DECL(ApplicationDestinations, 0x86c14003, 0x4d6b, 0x4ef3, 0xa7,0xb4, 0x05,0x06,0x66,0x3b,0x2e,0x68)
39104 #endif
39105 #endif
39106 
39107 /*****************************************************************************
39108  * ApplicationDocumentLists coclass
39109  */
39110 
39111 DEFINE_GUID(CLSID_ApplicationDocumentLists, 0x86bec222, 0x30f2, 0x47e0, 0x9f,0x25, 0x60,0xd1,0x1c,0xd7,0x5c,0x28);
39112 
39113 #ifdef __cplusplus
39114 class DECLSPEC_UUID("86bec222-30f2-47e0-9f25-60d11cd75c28") ApplicationDocumentLists;
39115 #ifdef __CRT_UUID_DECL
39116 __CRT_UUID_DECL(ApplicationDocumentLists, 0x86bec222, 0x30f2, 0x47e0, 0x9f,0x25, 0x60,0xd1,0x1c,0xd7,0x5c,0x28)
39117 #endif
39118 #endif
39119 
39120 /*****************************************************************************
39121  * HomeGroup coclass
39122  */
39123 
39124 DEFINE_GUID(CLSID_HomeGroup, 0xde77ba04, 0x3c92, 0x4d11, 0xa1,0xa5, 0x42,0x35,0x2a,0x53,0xe0,0xe3);
39125 
39126 #ifdef __cplusplus
39127 class DECLSPEC_UUID("de77ba04-3c92-4d11-a1a5-42352a53e0e3") HomeGroup;
39128 #ifdef __CRT_UUID_DECL
39129 __CRT_UUID_DECL(HomeGroup, 0xde77ba04, 0x3c92, 0x4d11, 0xa1,0xa5, 0x42,0x35,0x2a,0x53,0xe0,0xe3)
39130 #endif
39131 #endif
39132 
39133 /*****************************************************************************
39134  * ShellLibrary coclass
39135  */
39136 
39137 DEFINE_GUID(CLSID_ShellLibrary, 0xd9b3211d, 0xe57f, 0x4426, 0xaa,0xef, 0x30,0xa8,0x06,0xad,0xd3,0x97);
39138 
39139 #ifdef __cplusplus
39140 class DECLSPEC_UUID("d9b3211d-e57f-4426-aaef-30a806add397") ShellLibrary;
39141 #ifdef __CRT_UUID_DECL
39142 __CRT_UUID_DECL(ShellLibrary, 0xd9b3211d, 0xe57f, 0x4426, 0xaa,0xef, 0x30,0xa8,0x06,0xad,0xd3,0x97)
39143 #endif
39144 #endif
39145 
39146 /*****************************************************************************
39147  * AppStartupLink coclass
39148  */
39149 
39150 DEFINE_GUID(CLSID_AppStartupLink, 0x273eb5e7, 0x88b0, 0x4843, 0xbf,0xef, 0xe2,0xc8,0x1d,0x43,0xaa,0xe5);
39151 
39152 #ifdef __cplusplus
39153 class DECLSPEC_UUID("273eb5e7-88b0-4843-bfef-e2c81d43aae5") AppStartupLink;
39154 #ifdef __CRT_UUID_DECL
39155 __CRT_UUID_DECL(AppStartupLink, 0x273eb5e7, 0x88b0, 0x4843, 0xbf,0xef, 0xe2,0xc8,0x1d,0x43,0xaa,0xe5)
39156 #endif
39157 #endif
39158 
39159 /*****************************************************************************
39160  * EnumerableObjectCollection coclass
39161  */
39162 
39163 DEFINE_GUID(CLSID_EnumerableObjectCollection, 0x2d3468c1, 0x36a7, 0x43b6, 0xac,0x24, 0xd3,0xf0,0x2f,0xd9,0x60,0x7a);
39164 
39165 #ifdef __cplusplus
39166 class DECLSPEC_UUID("2d3468c1-36a7-43b6-ac24-d3f02fd9607a") EnumerableObjectCollection;
39167 #ifdef __CRT_UUID_DECL
39168 __CRT_UUID_DECL(EnumerableObjectCollection, 0x2d3468c1, 0x36a7, 0x43b6, 0xac,0x24, 0xd3,0xf0,0x2f,0xd9,0x60,0x7a)
39169 #endif
39170 #endif
39171 
39172 /*****************************************************************************
39173  * DesktopGadget coclass
39174  */
39175 
39176 DEFINE_GUID(CLSID_DesktopGadget, 0x924ccc1b, 0x6562, 0x4c85, 0x86,0x57, 0xd1,0x77,0x92,0x52,0x22,0xb6);
39177 
39178 #ifdef __cplusplus
39179 class DECLSPEC_UUID("924ccc1b-6562-4c85-8657-d177925222b6") DesktopGadget;
39180 #ifdef __CRT_UUID_DECL
39181 __CRT_UUID_DECL(DesktopGadget, 0x924ccc1b, 0x6562, 0x4c85, 0x86,0x57, 0xd1,0x77,0x92,0x52,0x22,0xb6)
39182 #endif
39183 #endif
39184 
39185 /*****************************************************************************
39186  * PlaybackManager coclass
39187  */
39188 
39189 DEFINE_GUID(CLSID_PlaybackManager, 0x29dfa654, 0xa97f, 0x47f0, 0xbf,0x26, 0x9e,0x41,0xfb,0x94,0x88,0xd9);
39190 
39191 #ifdef __cplusplus
39192 class DECLSPEC_UUID("29dfa654-a97f-47f0-bf26-9e41fb9488d9") PlaybackManager;
39193 #ifdef __CRT_UUID_DECL
39194 __CRT_UUID_DECL(PlaybackManager, 0x29dfa654, 0xa97f, 0x47f0, 0xbf,0x26, 0x9e,0x41,0xfb,0x94,0x88,0xd9)
39195 #endif
39196 #endif
39197 
39198 /*****************************************************************************
39199  * AccessibilityDockingService coclass
39200  */
39201 
39202 DEFINE_GUID(CLSID_AccessibilityDockingService, 0x29ce1d46, 0xb481, 0x4aa0, 0xa0,0x8a, 0xd3,0xeb,0xc8,0xac,0xa4,0x02);
39203 
39204 #ifdef __cplusplus
39205 class DECLSPEC_UUID("29ce1d46-b481-4aa0-a08a-d3ebc8aca402") AccessibilityDockingService;
39206 #ifdef __CRT_UUID_DECL
39207 __CRT_UUID_DECL(AccessibilityDockingService, 0x29ce1d46, 0xb481, 0x4aa0, 0xa0,0x8a, 0xd3,0xeb,0xc8,0xac,0xa4,0x02)
39208 #endif
39209 #endif
39210 
39211 /*****************************************************************************
39212  * FrameworkInputPane coclass
39213  */
39214 
39215 DEFINE_GUID(CLSID_FrameworkInputPane, 0xd5120aa3, 0x46ba, 0x44c5, 0x82,0x2d, 0xca,0x80,0x92,0xc1,0xfc,0x72);
39216 
39217 #ifdef __cplusplus
39218 class DECLSPEC_UUID("d5120aa3-46ba-44c5-822d-ca8092c1fc72") FrameworkInputPane;
39219 #ifdef __CRT_UUID_DECL
39220 __CRT_UUID_DECL(FrameworkInputPane, 0xd5120aa3, 0x46ba, 0x44c5, 0x82,0x2d, 0xca,0x80,0x92,0xc1,0xfc,0x72)
39221 #endif
39222 #endif
39223 
39224 /*****************************************************************************
39225  * DefFolderMenu coclass
39226  */
39227 
39228 DEFINE_GUID(CLSID_DefFolderMenu, 0xc63382be, 0x7933, 0x48d0, 0x9a,0xc8, 0x85,0xfb,0x46,0xbe,0x2f,0xdd);
39229 
39230 #ifdef __cplusplus
39231 class DECLSPEC_UUID("c63382be-7933-48d0-9ac8-85fb46be2fdd") DefFolderMenu;
39232 #ifdef __CRT_UUID_DECL
39233 __CRT_UUID_DECL(DefFolderMenu, 0xc63382be, 0x7933, 0x48d0, 0x9a,0xc8, 0x85,0xfb,0x46,0xbe,0x2f,0xdd)
39234 #endif
39235 #endif
39236 
39237 /*****************************************************************************
39238  * AppVisibility coclass
39239  */
39240 
39241 DEFINE_GUID(CLSID_AppVisibility, 0x7e5fe3d9, 0x985f, 0x4908, 0x91,0xf9, 0xee,0x19,0xf9,0xfd,0x15,0x14);
39242 
39243 #ifdef __cplusplus
39244 class DECLSPEC_UUID("7e5fe3d9-985f-4908-91f9-ee19f9fd1514") AppVisibility;
39245 #ifdef __CRT_UUID_DECL
39246 __CRT_UUID_DECL(AppVisibility, 0x7e5fe3d9, 0x985f, 0x4908, 0x91,0xf9, 0xee,0x19,0xf9,0xfd,0x15,0x14)
39247 #endif
39248 #endif
39249 
39250 /*****************************************************************************
39251  * AppShellVerbHandler coclass
39252  */
39253 
39254 DEFINE_GUID(CLSID_AppShellVerbHandler, 0x4ed3a719, 0xcea8, 0x4bd9, 0x91,0x0d, 0xe2,0x52,0xf9,0x97,0xaf,0xc2);
39255 
39256 #ifdef __cplusplus
39257 class DECLSPEC_UUID("4ed3a719-cea8-4bd9-910d-e252f997afc2") AppShellVerbHandler;
39258 #ifdef __CRT_UUID_DECL
39259 __CRT_UUID_DECL(AppShellVerbHandler, 0x4ed3a719, 0xcea8, 0x4bd9, 0x91,0x0d, 0xe2,0x52,0xf9,0x97,0xaf,0xc2)
39260 #endif
39261 #endif
39262 
39263 /*****************************************************************************
39264  * ExecuteUnknown coclass
39265  */
39266 
39267 DEFINE_GUID(CLSID_ExecuteUnknown, 0xe44e9428, 0xbdbc, 0x4987, 0xa0,0x99, 0x40,0xdc,0x8f,0xd2,0x55,0xe7);
39268 
39269 #ifdef __cplusplus
39270 class DECLSPEC_UUID("e44e9428-bdbc-4987-a099-40dc8fd255e7") ExecuteUnknown;
39271 #ifdef __CRT_UUID_DECL
39272 __CRT_UUID_DECL(ExecuteUnknown, 0xe44e9428, 0xbdbc, 0x4987, 0xa0,0x99, 0x40,0xdc,0x8f,0xd2,0x55,0xe7)
39273 #endif
39274 #endif
39275 
39276 /*****************************************************************************
39277  * PackageDebugSettings coclass
39278  */
39279 
39280 DEFINE_GUID(CLSID_PackageDebugSettings, 0xb1aec16f, 0x2383, 0x4852, 0xb0,0xe9, 0x8f,0x0b,0x1d,0xc6,0x6b,0x4d);
39281 
39282 #ifdef __cplusplus
39283 class DECLSPEC_UUID("b1aec16f-2383-4852-b0e9-8f0b1dc66b4d") PackageDebugSettings;
39284 #ifdef __CRT_UUID_DECL
39285 __CRT_UUID_DECL(PackageDebugSettings, 0xb1aec16f, 0x2383, 0x4852, 0xb0,0xe9, 0x8f,0x0b,0x1d,0xc6,0x6b,0x4d)
39286 #endif
39287 #endif
39288 
39289 /*****************************************************************************
39290  * ApplicationActivationManager coclass
39291  */
39292 
39293 DEFINE_GUID(CLSID_ApplicationActivationManager, 0x45ba127d, 0x10a8, 0x46ea, 0x8a,0xb7, 0x56,0xea,0x90,0x78,0x94,0x3c);
39294 
39295 #ifdef __cplusplus
39296 class DECLSPEC_UUID("45ba127d-10a8-46ea-8ab7-56ea9078943c") ApplicationActivationManager;
39297 #ifdef __CRT_UUID_DECL
39298 __CRT_UUID_DECL(ApplicationActivationManager, 0x45ba127d, 0x10a8, 0x46ea, 0x8a,0xb7, 0x56,0xea,0x90,0x78,0x94,0x3c)
39299 #endif
39300 #endif
39301 
39302 /*****************************************************************************
39303  * ApplicationDesignModeSettings coclass
39304  */
39305 
39306 DEFINE_GUID(CLSID_ApplicationDesignModeSettings, 0x958a6fb5, 0xdcb2, 0x4faf, 0xaa,0xfd, 0x7f,0xb0,0x54,0xad,0x1a,0x3b);
39307 
39308 #ifdef __cplusplus
39309 class DECLSPEC_UUID("958a6fb5-dcb2-4faf-aafd-7fb054ad1a3b") ApplicationDesignModeSettings;
39310 #ifdef __CRT_UUID_DECL
39311 __CRT_UUID_DECL(ApplicationDesignModeSettings, 0x958a6fb5, 0xdcb2, 0x4faf, 0xaa,0xfd, 0x7f,0xb0,0x54,0xad,0x1a,0x3b)
39312 #endif
39313 #endif
39314 
39315 /*****************************************************************************
39316  * ExecuteFolder coclass
39317  */
39318 
39319 DEFINE_GUID(CLSID_ExecuteFolder, 0x11dbb47c, 0xa525, 0x400b, 0x9e,0x80, 0xa5,0x46,0x15,0xa0,0x90,0xc0);
39320 
39321 #ifdef __cplusplus
39322 class DECLSPEC_UUID("11dbb47c-a525-400b-9e80-a54615a090c0") ExecuteFolder;
39323 #ifdef __CRT_UUID_DECL
39324 __CRT_UUID_DECL(ExecuteFolder, 0x11dbb47c, 0xa525, 0x400b, 0x9e,0x80, 0xa5,0x46,0x15,0xa0,0x90,0xc0)
39325 #endif
39326 #endif
39327 
39328 
39329 #if NTDDI_VERSION >= NTDDI_VISTA
39330   SHSTDAPI SHGetTemporaryPropertyForItem(IShellItem *psi, REFPROPERTYKEY propkey, PROPVARIANT *ppropvar);
39331   SHSTDAPI SHSetTemporaryPropertyForItem(IShellItem *psi, REFPROPERTYKEY propkey, REFPROPVARIANT propvar);
39332 #endif
39333 
39334 #if NTDDI_VERSION >= NTDDI_WIN7
39335 #if _WIN32_IE >= _WIN32_IE_IE70
39336 typedef enum LIBRARYMANAGEDIALOGOPTIONS {
39337     LMD_DEFAULT = 0x0,
39338     LMD_ALLOWUNINDEXABLENETWORKLOCATIONS = 0x1
39339 } LIBRARYMANAGEDIALOGOPTIONS;
39340 
39341 DEFINE_ENUM_FLAG_OPERATORS(LIBRARYMANAGEDIALOGOPTIONS)
39342 
39343   SHSTDAPI SHShowManageLibraryUI(IShellItem *psiLibrary, HWND hwndOwner, LPCWSTR pszTitle, LPCWSTR pszInstruction, LIBRARYMANAGEDIALOGOPTIONS lmdOptions);
39344   SHSTDAPI SHResolveLibrary(IShellItem *psiLibrary);
39345 #if defined(__cplusplus) && !defined(CINTERFACE)
SHCreateLibrary(REFIID riid,void ** ppv)39346   __forceinline HRESULT SHCreateLibrary(REFIID riid, void **ppv) {
39347     return CoCreateInstance(CLSID_ShellLibrary, NULL, CLSCTX_INPROC_SERVER, riid, ppv);
39348   }
39349 
SHLoadLibraryFromItem(IShellItem * psiLibrary,DWORD grfMode,REFIID riid,void ** ppv)39350   __forceinline HRESULT SHLoadLibraryFromItem(IShellItem *psiLibrary, DWORD grfMode, REFIID riid, void **ppv) {
39351     IShellLibrary *plib;
39352     HRESULT hr;
39353 
39354     *ppv = NULL;
39355     hr = CoCreateInstance(CLSID_ShellLibrary, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&plib));
39356     if (SUCCEEDED(hr)) {
39357       hr = plib->LoadLibraryFromItem(psiLibrary, grfMode);
39358       if (SUCCEEDED(hr))
39359         hr = plib->QueryInterface(riid, ppv);
39360       plib->Release();
39361     }
39362     return hr;
39363   }
39364 
SHLoadLibraryFromKnownFolder(REFKNOWNFOLDERID kfidLibrary,DWORD grfMode,REFIID riid,void ** ppv)39365   __forceinline HRESULT SHLoadLibraryFromKnownFolder(REFKNOWNFOLDERID kfidLibrary, DWORD grfMode, REFIID riid, void **ppv) {
39366     IShellLibrary *plib;
39367     HRESULT hr;
39368 
39369     *ppv = NULL;
39370     hr = CoCreateInstance(CLSID_ShellLibrary, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&plib));
39371     if (SUCCEEDED(hr)) {
39372       hr = plib->LoadLibraryFromKnownFolder(kfidLibrary, grfMode);
39373       if (SUCCEEDED(hr))
39374         hr = plib->QueryInterface(riid, ppv);
39375       plib->Release();
39376     }
39377     return hr;
39378   }
39379 
SHLoadLibraryFromParsingName(PCWSTR pszParsingName,DWORD grfMode,REFIID riid,void ** ppv)39380   __forceinline HRESULT SHLoadLibraryFromParsingName(PCWSTR pszParsingName, DWORD grfMode, REFIID riid, void **ppv) {
39381     IShellItem *psiLibrary;
39382     HRESULT hr;
39383 
39384     *ppv = NULL;
39385     hr = SHCreateItemFromParsingName(pszParsingName, NULL, IID_PPV_ARGS(&psiLibrary));
39386     if (SUCCEEDED(hr)) {
39387       hr = SHLoadLibraryFromItem(psiLibrary, grfMode, riid, ppv);
39388       psiLibrary->Release();
39389     }
39390     return hr;
39391   }
39392 
SHAddFolderPathToLibrary(IShellLibrary * plib,PCWSTR pszFolderPath)39393    __forceinline HRESULT SHAddFolderPathToLibrary(IShellLibrary *plib, PCWSTR pszFolderPath) {
39394     IShellItem *psiFolder;
39395     HRESULT hr = SHCreateItemFromParsingName(pszFolderPath, NULL, IID_PPV_ARGS(&psiFolder));
39396 
39397     if (SUCCEEDED(hr)) {
39398       hr = plib->AddFolder(psiFolder);
39399       psiFolder->Release();
39400     }
39401     return hr;
39402   }
39403 
SHRemoveFolderPathFromLibrary(IShellLibrary * plib,PCWSTR pszFolderPath)39404   __forceinline HRESULT SHRemoveFolderPathFromLibrary(IShellLibrary *plib, PCWSTR pszFolderPath) {
39405     PIDLIST_ABSOLUTE pidlFolder = SHSimpleIDListFromPath(pszFolderPath);
39406     HRESULT hr = pidlFolder ? S_OK : E_INVALIDARG;
39407 
39408     if (SUCCEEDED(hr)) {
39409       IShellItem *psiFolder;
39410 
39411       hr = SHCreateItemFromIDList(pidlFolder, IID_PPV_ARGS(&psiFolder));
39412       if (SUCCEEDED(hr)) {
39413         hr = plib->RemoveFolder(psiFolder);
39414         psiFolder->Release();
39415       }
39416       CoTaskMemFree(pidlFolder);
39417     }
39418     return hr;
39419   }
39420 
SHResolveFolderPathInLibrary(IShellLibrary * plib,PCWSTR pszFolderPath,DWORD dwTimeout,PWSTR * ppszResolvedPath)39421   __forceinline HRESULT SHResolveFolderPathInLibrary(IShellLibrary *plib, PCWSTR pszFolderPath, DWORD dwTimeout, PWSTR *ppszResolvedPath) {
39422     *ppszResolvedPath = NULL;
39423     PIDLIST_ABSOLUTE pidlFolder = SHSimpleIDListFromPath(pszFolderPath);
39424     HRESULT hr = pidlFolder ? S_OK : E_INVALIDARG;
39425     if (SUCCEEDED(hr)) {
39426       IShellItem *psiFolder;
39427 
39428       hr = SHCreateItemFromIDList(pidlFolder, IID_PPV_ARGS(&psiFolder));
39429       if (SUCCEEDED(hr)) {
39430         IShellItem *psiResolved;
39431 
39432         hr = plib->ResolveFolder(psiFolder, dwTimeout, IID_PPV_ARGS(&psiResolved));
39433         if (SUCCEEDED(hr)) {
39434           hr = psiResolved->GetDisplayName(SIGDN_DESKTOPABSOLUTEPARSING, ppszResolvedPath);
39435           psiResolved->Release();
39436         }
39437         psiFolder->Release();
39438       }
39439       CoTaskMemFree(pidlFolder);
39440     }
39441     return hr;
39442   }
39443 
SHSaveLibraryInFolderPath(IShellLibrary * plib,PCWSTR pszFolderPath,PCWSTR pszLibraryName,LIBRARYSAVEFLAGS lsf,PWSTR * ppszSavedToPath)39444   __forceinline HRESULT SHSaveLibraryInFolderPath(IShellLibrary *plib, PCWSTR pszFolderPath, PCWSTR pszLibraryName, LIBRARYSAVEFLAGS lsf, PWSTR *ppszSavedToPath) {
39445     IShellItem *psiFolder;
39446     HRESULT hr;
39447 
39448     if (ppszSavedToPath)
39449       *ppszSavedToPath = NULL;
39450     hr = SHCreateItemFromParsingName(pszFolderPath, NULL, IID_PPV_ARGS(&psiFolder));
39451     if (SUCCEEDED(hr)) {
39452       IShellItem *psiSavedTo;
39453 
39454       hr = plib->Save(psiFolder, pszLibraryName, lsf, &psiSavedTo);
39455       if (SUCCEEDED(hr)) {
39456         if (ppszSavedToPath)
39457           hr = psiSavedTo->GetDisplayName(SIGDN_DESKTOPABSOLUTEPARSING, ppszSavedToPath);
39458         psiSavedTo->Release();
39459       }
39460       psiFolder->Release();
39461     }
39462     return hr;
39463   }
39464 #endif
39465 #endif
39466 #endif
39467 
39468 #if NTDDI_VERSION >= NTDDI_VISTA
39469 /*****************************************************************************
39470  * IAssocHandlerInvoker interface
39471  */
39472 #ifndef __IAssocHandlerInvoker_INTERFACE_DEFINED__
39473 #define __IAssocHandlerInvoker_INTERFACE_DEFINED__
39474 
39475 DEFINE_GUID(IID_IAssocHandlerInvoker, 0x92218cab, 0xecaa, 0x4335, 0x81,0x33, 0x80,0x7f,0xd2,0x34,0xc2,0xee);
39476 #if defined(__cplusplus) && !defined(CINTERFACE)
39477 MIDL_INTERFACE("92218cab-ecaa-4335-8133-807fd234c2ee")
39478 IAssocHandlerInvoker : public IUnknown
39479 {
39480     virtual HRESULT STDMETHODCALLTYPE SupportsSelection(
39481         ) = 0;
39482 
39483     virtual HRESULT STDMETHODCALLTYPE Invoke(
39484         ) = 0;
39485 
39486 };
39487 #ifdef __CRT_UUID_DECL
39488 __CRT_UUID_DECL(IAssocHandlerInvoker, 0x92218cab, 0xecaa, 0x4335, 0x81,0x33, 0x80,0x7f,0xd2,0x34,0xc2,0xee)
39489 #endif
39490 #else
39491 typedef struct IAssocHandlerInvokerVtbl {
39492     BEGIN_INTERFACE
39493 
39494     /*** IUnknown methods ***/
39495     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
39496         IAssocHandlerInvoker* This,
39497         REFIID riid,
39498         void **ppvObject);
39499 
39500     ULONG (STDMETHODCALLTYPE *AddRef)(
39501         IAssocHandlerInvoker* This);
39502 
39503     ULONG (STDMETHODCALLTYPE *Release)(
39504         IAssocHandlerInvoker* This);
39505 
39506     /*** IAssocHandlerInvoker methods ***/
39507     HRESULT (STDMETHODCALLTYPE *SupportsSelection)(
39508         IAssocHandlerInvoker* This);
39509 
39510     HRESULT (STDMETHODCALLTYPE *Invoke)(
39511         IAssocHandlerInvoker* This);
39512 
39513     END_INTERFACE
39514 } IAssocHandlerInvokerVtbl;
39515 interface IAssocHandlerInvoker {
39516     CONST_VTBL IAssocHandlerInvokerVtbl* lpVtbl;
39517 };
39518 
39519 #ifdef COBJMACROS
39520 #ifndef WIDL_C_INLINE_WRAPPERS
39521 /*** IUnknown methods ***/
39522 #define IAssocHandlerInvoker_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
39523 #define IAssocHandlerInvoker_AddRef(This) (This)->lpVtbl->AddRef(This)
39524 #define IAssocHandlerInvoker_Release(This) (This)->lpVtbl->Release(This)
39525 /*** IAssocHandlerInvoker methods ***/
39526 #define IAssocHandlerInvoker_SupportsSelection(This) (This)->lpVtbl->SupportsSelection(This)
39527 #define IAssocHandlerInvoker_Invoke(This) (This)->lpVtbl->Invoke(This)
39528 #else
39529 /*** IUnknown methods ***/
39530 static FORCEINLINE HRESULT IAssocHandlerInvoker_QueryInterface(IAssocHandlerInvoker* This,REFIID riid,void **ppvObject) {
39531     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
39532 }
39533 static FORCEINLINE ULONG IAssocHandlerInvoker_AddRef(IAssocHandlerInvoker* This) {
39534     return This->lpVtbl->AddRef(This);
39535 }
39536 static FORCEINLINE ULONG IAssocHandlerInvoker_Release(IAssocHandlerInvoker* This) {
39537     return This->lpVtbl->Release(This);
39538 }
39539 /*** IAssocHandlerInvoker methods ***/
39540 static FORCEINLINE HRESULT IAssocHandlerInvoker_SupportsSelection(IAssocHandlerInvoker* This) {
39541     return This->lpVtbl->SupportsSelection(This);
39542 }
39543 static FORCEINLINE HRESULT IAssocHandlerInvoker_Invoke(IAssocHandlerInvoker* This) {
39544     return This->lpVtbl->Invoke(This);
39545 }
39546 #endif
39547 #endif
39548 
39549 #endif
39550 
39551 HRESULT STDMETHODCALLTYPE IAssocHandlerInvoker_SupportsSelection_Proxy(
39552     IAssocHandlerInvoker* This);
39553 void __RPC_STUB IAssocHandlerInvoker_SupportsSelection_Stub(
39554     IRpcStubBuffer* This,
39555     IRpcChannelBuffer* pRpcChannelBuffer,
39556     PRPC_MESSAGE pRpcMessage,
39557     DWORD* pdwStubPhase);
39558 HRESULT STDMETHODCALLTYPE IAssocHandlerInvoker_Invoke_Proxy(
39559     IAssocHandlerInvoker* This);
39560 void __RPC_STUB IAssocHandlerInvoker_Invoke_Stub(
39561     IRpcStubBuffer* This,
39562     IRpcChannelBuffer* pRpcChannelBuffer,
39563     PRPC_MESSAGE pRpcMessage,
39564     DWORD* pdwStubPhase);
39565 
39566 #endif  /* __IAssocHandlerInvoker_INTERFACE_DEFINED__ */
39567 
39568 
39569 /*****************************************************************************
39570  * IAssocHandler interface
39571  */
39572 #ifndef __IAssocHandler_INTERFACE_DEFINED__
39573 #define __IAssocHandler_INTERFACE_DEFINED__
39574 
39575 DEFINE_GUID(IID_IAssocHandler, 0xf04061ac, 0x1659, 0x4a3f, 0xa9,0x54, 0x77,0x5a,0xa5,0x7f,0xc0,0x83);
39576 #if defined(__cplusplus) && !defined(CINTERFACE)
39577 MIDL_INTERFACE("f04061ac-1659-4a3f-a954-775aa57fc083")
39578 IAssocHandler : public IUnknown
39579 {
39580     virtual HRESULT STDMETHODCALLTYPE GetName(
39581         LPWSTR *ppsz) = 0;
39582 
39583     virtual HRESULT STDMETHODCALLTYPE GetUIName(
39584         LPWSTR *ppsz) = 0;
39585 
39586     virtual HRESULT STDMETHODCALLTYPE GetIconLocation(
39587         LPWSTR *ppszPath,
39588         int *pIndex) = 0;
39589 
39590     virtual HRESULT STDMETHODCALLTYPE IsRecommended(
39591         ) = 0;
39592 
39593     virtual HRESULT STDMETHODCALLTYPE MakeDefault(
39594         LPCWSTR pszDescription) = 0;
39595 
39596     virtual HRESULT STDMETHODCALLTYPE Invoke(
39597         IDataObject *pdo) = 0;
39598 
39599     virtual HRESULT STDMETHODCALLTYPE CreateInvoker(
39600         IDataObject *pdo,
39601         IAssocHandlerInvoker **ppInvoker) = 0;
39602 
39603 };
39604 #ifdef __CRT_UUID_DECL
39605 __CRT_UUID_DECL(IAssocHandler, 0xf04061ac, 0x1659, 0x4a3f, 0xa9,0x54, 0x77,0x5a,0xa5,0x7f,0xc0,0x83)
39606 #endif
39607 #else
39608 typedef struct IAssocHandlerVtbl {
39609     BEGIN_INTERFACE
39610 
39611     /*** IUnknown methods ***/
39612     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
39613         IAssocHandler* This,
39614         REFIID riid,
39615         void **ppvObject);
39616 
39617     ULONG (STDMETHODCALLTYPE *AddRef)(
39618         IAssocHandler* This);
39619 
39620     ULONG (STDMETHODCALLTYPE *Release)(
39621         IAssocHandler* This);
39622 
39623     /*** IAssocHandler methods ***/
39624     HRESULT (STDMETHODCALLTYPE *GetName)(
39625         IAssocHandler* This,
39626         LPWSTR *ppsz);
39627 
39628     HRESULT (STDMETHODCALLTYPE *GetUIName)(
39629         IAssocHandler* This,
39630         LPWSTR *ppsz);
39631 
39632     HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
39633         IAssocHandler* This,
39634         LPWSTR *ppszPath,
39635         int *pIndex);
39636 
39637     HRESULT (STDMETHODCALLTYPE *IsRecommended)(
39638         IAssocHandler* This);
39639 
39640     HRESULT (STDMETHODCALLTYPE *MakeDefault)(
39641         IAssocHandler* This,
39642         LPCWSTR pszDescription);
39643 
39644     HRESULT (STDMETHODCALLTYPE *Invoke)(
39645         IAssocHandler* This,
39646         IDataObject *pdo);
39647 
39648     HRESULT (STDMETHODCALLTYPE *CreateInvoker)(
39649         IAssocHandler* This,
39650         IDataObject *pdo,
39651         IAssocHandlerInvoker **ppInvoker);
39652 
39653     END_INTERFACE
39654 } IAssocHandlerVtbl;
39655 interface IAssocHandler {
39656     CONST_VTBL IAssocHandlerVtbl* lpVtbl;
39657 };
39658 
39659 #ifdef COBJMACROS
39660 #ifndef WIDL_C_INLINE_WRAPPERS
39661 /*** IUnknown methods ***/
39662 #define IAssocHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
39663 #define IAssocHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
39664 #define IAssocHandler_Release(This) (This)->lpVtbl->Release(This)
39665 /*** IAssocHandler methods ***/
39666 #define IAssocHandler_GetName(This,ppsz) (This)->lpVtbl->GetName(This,ppsz)
39667 #define IAssocHandler_GetUIName(This,ppsz) (This)->lpVtbl->GetUIName(This,ppsz)
39668 #define IAssocHandler_GetIconLocation(This,ppszPath,pIndex) (This)->lpVtbl->GetIconLocation(This,ppszPath,pIndex)
39669 #define IAssocHandler_IsRecommended(This) (This)->lpVtbl->IsRecommended(This)
39670 #define IAssocHandler_MakeDefault(This,pszDescription) (This)->lpVtbl->MakeDefault(This,pszDescription)
39671 #define IAssocHandler_Invoke(This,pdo) (This)->lpVtbl->Invoke(This,pdo)
39672 #define IAssocHandler_CreateInvoker(This,pdo,ppInvoker) (This)->lpVtbl->CreateInvoker(This,pdo,ppInvoker)
39673 #else
39674 /*** IUnknown methods ***/
39675 static FORCEINLINE HRESULT IAssocHandler_QueryInterface(IAssocHandler* This,REFIID riid,void **ppvObject) {
39676     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
39677 }
39678 static FORCEINLINE ULONG IAssocHandler_AddRef(IAssocHandler* This) {
39679     return This->lpVtbl->AddRef(This);
39680 }
39681 static FORCEINLINE ULONG IAssocHandler_Release(IAssocHandler* This) {
39682     return This->lpVtbl->Release(This);
39683 }
39684 /*** IAssocHandler methods ***/
39685 static FORCEINLINE HRESULT IAssocHandler_GetName(IAssocHandler* This,LPWSTR *ppsz) {
39686     return This->lpVtbl->GetName(This,ppsz);
39687 }
39688 static FORCEINLINE HRESULT IAssocHandler_GetUIName(IAssocHandler* This,LPWSTR *ppsz) {
39689     return This->lpVtbl->GetUIName(This,ppsz);
39690 }
39691 static FORCEINLINE HRESULT IAssocHandler_GetIconLocation(IAssocHandler* This,LPWSTR *ppszPath,int *pIndex) {
39692     return This->lpVtbl->GetIconLocation(This,ppszPath,pIndex);
39693 }
39694 static FORCEINLINE HRESULT IAssocHandler_IsRecommended(IAssocHandler* This) {
39695     return This->lpVtbl->IsRecommended(This);
39696 }
39697 static FORCEINLINE HRESULT IAssocHandler_MakeDefault(IAssocHandler* This,LPCWSTR pszDescription) {
39698     return This->lpVtbl->MakeDefault(This,pszDescription);
39699 }
39700 static FORCEINLINE HRESULT IAssocHandler_Invoke(IAssocHandler* This,IDataObject *pdo) {
39701     return This->lpVtbl->Invoke(This,pdo);
39702 }
39703 static FORCEINLINE HRESULT IAssocHandler_CreateInvoker(IAssocHandler* This,IDataObject *pdo,IAssocHandlerInvoker **ppInvoker) {
39704     return This->lpVtbl->CreateInvoker(This,pdo,ppInvoker);
39705 }
39706 #endif
39707 #endif
39708 
39709 #endif
39710 
39711 HRESULT STDMETHODCALLTYPE IAssocHandler_GetName_Proxy(
39712     IAssocHandler* This,
39713     LPWSTR *ppsz);
39714 void __RPC_STUB IAssocHandler_GetName_Stub(
39715     IRpcStubBuffer* This,
39716     IRpcChannelBuffer* pRpcChannelBuffer,
39717     PRPC_MESSAGE pRpcMessage,
39718     DWORD* pdwStubPhase);
39719 HRESULT STDMETHODCALLTYPE IAssocHandler_GetUIName_Proxy(
39720     IAssocHandler* This,
39721     LPWSTR *ppsz);
39722 void __RPC_STUB IAssocHandler_GetUIName_Stub(
39723     IRpcStubBuffer* This,
39724     IRpcChannelBuffer* pRpcChannelBuffer,
39725     PRPC_MESSAGE pRpcMessage,
39726     DWORD* pdwStubPhase);
39727 HRESULT STDMETHODCALLTYPE IAssocHandler_GetIconLocation_Proxy(
39728     IAssocHandler* This,
39729     LPWSTR *ppszPath,
39730     int *pIndex);
39731 void __RPC_STUB IAssocHandler_GetIconLocation_Stub(
39732     IRpcStubBuffer* This,
39733     IRpcChannelBuffer* pRpcChannelBuffer,
39734     PRPC_MESSAGE pRpcMessage,
39735     DWORD* pdwStubPhase);
39736 HRESULT STDMETHODCALLTYPE IAssocHandler_IsRecommended_Proxy(
39737     IAssocHandler* This);
39738 void __RPC_STUB IAssocHandler_IsRecommended_Stub(
39739     IRpcStubBuffer* This,
39740     IRpcChannelBuffer* pRpcChannelBuffer,
39741     PRPC_MESSAGE pRpcMessage,
39742     DWORD* pdwStubPhase);
39743 HRESULT STDMETHODCALLTYPE IAssocHandler_MakeDefault_Proxy(
39744     IAssocHandler* This,
39745     LPCWSTR pszDescription);
39746 void __RPC_STUB IAssocHandler_MakeDefault_Stub(
39747     IRpcStubBuffer* This,
39748     IRpcChannelBuffer* pRpcChannelBuffer,
39749     PRPC_MESSAGE pRpcMessage,
39750     DWORD* pdwStubPhase);
39751 HRESULT STDMETHODCALLTYPE IAssocHandler_Invoke_Proxy(
39752     IAssocHandler* This,
39753     IDataObject *pdo);
39754 void __RPC_STUB IAssocHandler_Invoke_Stub(
39755     IRpcStubBuffer* This,
39756     IRpcChannelBuffer* pRpcChannelBuffer,
39757     PRPC_MESSAGE pRpcMessage,
39758     DWORD* pdwStubPhase);
39759 HRESULT STDMETHODCALLTYPE IAssocHandler_CreateInvoker_Proxy(
39760     IAssocHandler* This,
39761     IDataObject *pdo,
39762     IAssocHandlerInvoker **ppInvoker);
39763 void __RPC_STUB IAssocHandler_CreateInvoker_Stub(
39764     IRpcStubBuffer* This,
39765     IRpcChannelBuffer* pRpcChannelBuffer,
39766     PRPC_MESSAGE pRpcMessage,
39767     DWORD* pdwStubPhase);
39768 
39769 #endif  /* __IAssocHandler_INTERFACE_DEFINED__ */
39770 
39771 
39772 /*****************************************************************************
39773  * IEnumAssocHandlers interface
39774  */
39775 #ifndef __IEnumAssocHandlers_INTERFACE_DEFINED__
39776 #define __IEnumAssocHandlers_INTERFACE_DEFINED__
39777 
39778 DEFINE_GUID(IID_IEnumAssocHandlers, 0x973810ae, 0x9599, 0x4b88, 0x9e,0x4d, 0x6e,0xe9,0x8c,0x95,0x52,0xda);
39779 #if defined(__cplusplus) && !defined(CINTERFACE)
39780 MIDL_INTERFACE("973810ae-9599-4b88-9e4d-6ee98c9552da")
39781 IEnumAssocHandlers : public IUnknown
39782 {
39783     virtual HRESULT STDMETHODCALLTYPE Next(
39784         ULONG celt,
39785         IAssocHandler **rgelt,
39786         ULONG *pceltFetched) = 0;
39787 
39788 };
39789 #ifdef __CRT_UUID_DECL
39790 __CRT_UUID_DECL(IEnumAssocHandlers, 0x973810ae, 0x9599, 0x4b88, 0x9e,0x4d, 0x6e,0xe9,0x8c,0x95,0x52,0xda)
39791 #endif
39792 #else
39793 typedef struct IEnumAssocHandlersVtbl {
39794     BEGIN_INTERFACE
39795 
39796     /*** IUnknown methods ***/
39797     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
39798         IEnumAssocHandlers* This,
39799         REFIID riid,
39800         void **ppvObject);
39801 
39802     ULONG (STDMETHODCALLTYPE *AddRef)(
39803         IEnumAssocHandlers* This);
39804 
39805     ULONG (STDMETHODCALLTYPE *Release)(
39806         IEnumAssocHandlers* This);
39807 
39808     /*** IEnumAssocHandlers methods ***/
39809     HRESULT (STDMETHODCALLTYPE *Next)(
39810         IEnumAssocHandlers* This,
39811         ULONG celt,
39812         IAssocHandler **rgelt,
39813         ULONG *pceltFetched);
39814 
39815     END_INTERFACE
39816 } IEnumAssocHandlersVtbl;
39817 interface IEnumAssocHandlers {
39818     CONST_VTBL IEnumAssocHandlersVtbl* lpVtbl;
39819 };
39820 
39821 #ifdef COBJMACROS
39822 #ifndef WIDL_C_INLINE_WRAPPERS
39823 /*** IUnknown methods ***/
39824 #define IEnumAssocHandlers_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
39825 #define IEnumAssocHandlers_AddRef(This) (This)->lpVtbl->AddRef(This)
39826 #define IEnumAssocHandlers_Release(This) (This)->lpVtbl->Release(This)
39827 /*** IEnumAssocHandlers methods ***/
39828 #define IEnumAssocHandlers_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
39829 #else
39830 /*** IUnknown methods ***/
39831 static FORCEINLINE HRESULT IEnumAssocHandlers_QueryInterface(IEnumAssocHandlers* This,REFIID riid,void **ppvObject) {
39832     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
39833 }
39834 static FORCEINLINE ULONG IEnumAssocHandlers_AddRef(IEnumAssocHandlers* This) {
39835     return This->lpVtbl->AddRef(This);
39836 }
39837 static FORCEINLINE ULONG IEnumAssocHandlers_Release(IEnumAssocHandlers* This) {
39838     return This->lpVtbl->Release(This);
39839 }
39840 /*** IEnumAssocHandlers methods ***/
39841 static FORCEINLINE HRESULT IEnumAssocHandlers_Next(IEnumAssocHandlers* This,ULONG celt,IAssocHandler **rgelt,ULONG *pceltFetched) {
39842     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
39843 }
39844 #endif
39845 #endif
39846 
39847 #endif
39848 
39849 HRESULT STDMETHODCALLTYPE IEnumAssocHandlers_Next_Proxy(
39850     IEnumAssocHandlers* This,
39851     ULONG celt,
39852     IAssocHandler **rgelt,
39853     ULONG *pceltFetched);
39854 void __RPC_STUB IEnumAssocHandlers_Next_Stub(
39855     IRpcStubBuffer* This,
39856     IRpcChannelBuffer* pRpcChannelBuffer,
39857     PRPC_MESSAGE pRpcMessage,
39858     DWORD* pdwStubPhase);
39859 
39860 #endif  /* __IEnumAssocHandlers_INTERFACE_DEFINED__ */
39861 
39862 
39863 typedef enum ASSOC_FILTER {
39864     ASSOC_FILTER_NONE = 0x0,
39865     ASSOC_FILTER_RECOMMENDED = 0x1
39866 } ASSOC_FILTER;
39867 
39868 DEFINE_ENUM_FLAG_OPERATORS(ASSOC_FILTER)
39869 
39870   SHSTDAPI SHAssocEnumHandlers(PCWSTR pszExtra, ASSOC_FILTER afFilter, IEnumAssocHandlers **ppEnumHandler);
39871 #endif
39872 
39873 #if NTDDI_VERSION >= NTDDI_WIN7
39874 SHSTDAPI SHAssocEnumHandlersForProtocolByApplication(PCWSTR protocol, REFIID riid, void **enumHandlers);
39875 #endif
39876 
39877 #if NTDDI_VERSION >= NTDDI_WIN8
39878 /*****************************************************************************
39879  * IDataObjectProvider interface
39880  */
39881 #ifndef __IDataObjectProvider_INTERFACE_DEFINED__
39882 #define __IDataObjectProvider_INTERFACE_DEFINED__
39883 
39884 DEFINE_GUID(IID_IDataObjectProvider, 0x3d25f6d6, 0x4b2a, 0x433c, 0x91,0x84, 0x7c,0x33,0xad,0x35,0xd0,0x01);
39885 #if defined(__cplusplus) && !defined(CINTERFACE)
39886 MIDL_INTERFACE("3d25f6d6-4b2a-433c-9184-7c33ad35d001")
39887 IDataObjectProvider : public IUnknown
39888 {
39889     virtual HRESULT STDMETHODCALLTYPE GetDataObject(
39890         IDataObject **dataObject) = 0;
39891 
39892     virtual HRESULT STDMETHODCALLTYPE SetDataObject(
39893         IDataObject *dataObject) = 0;
39894 
39895 };
39896 #ifdef __CRT_UUID_DECL
39897 __CRT_UUID_DECL(IDataObjectProvider, 0x3d25f6d6, 0x4b2a, 0x433c, 0x91,0x84, 0x7c,0x33,0xad,0x35,0xd0,0x01)
39898 #endif
39899 #else
39900 typedef struct IDataObjectProviderVtbl {
39901     BEGIN_INTERFACE
39902 
39903     /*** IUnknown methods ***/
39904     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
39905         IDataObjectProvider* This,
39906         REFIID riid,
39907         void **ppvObject);
39908 
39909     ULONG (STDMETHODCALLTYPE *AddRef)(
39910         IDataObjectProvider* This);
39911 
39912     ULONG (STDMETHODCALLTYPE *Release)(
39913         IDataObjectProvider* This);
39914 
39915     /*** IDataObjectProvider methods ***/
39916     HRESULT (STDMETHODCALLTYPE *GetDataObject)(
39917         IDataObjectProvider* This,
39918         IDataObject **dataObject);
39919 
39920     HRESULT (STDMETHODCALLTYPE *SetDataObject)(
39921         IDataObjectProvider* This,
39922         IDataObject *dataObject);
39923 
39924     END_INTERFACE
39925 } IDataObjectProviderVtbl;
39926 interface IDataObjectProvider {
39927     CONST_VTBL IDataObjectProviderVtbl* lpVtbl;
39928 };
39929 
39930 #ifdef COBJMACROS
39931 #ifndef WIDL_C_INLINE_WRAPPERS
39932 /*** IUnknown methods ***/
39933 #define IDataObjectProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
39934 #define IDataObjectProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
39935 #define IDataObjectProvider_Release(This) (This)->lpVtbl->Release(This)
39936 /*** IDataObjectProvider methods ***/
39937 #define IDataObjectProvider_GetDataObject(This,dataObject) (This)->lpVtbl->GetDataObject(This,dataObject)
39938 #define IDataObjectProvider_SetDataObject(This,dataObject) (This)->lpVtbl->SetDataObject(This,dataObject)
39939 #else
39940 /*** IUnknown methods ***/
39941 static FORCEINLINE HRESULT IDataObjectProvider_QueryInterface(IDataObjectProvider* This,REFIID riid,void **ppvObject) {
39942     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
39943 }
39944 static FORCEINLINE ULONG IDataObjectProvider_AddRef(IDataObjectProvider* This) {
39945     return This->lpVtbl->AddRef(This);
39946 }
39947 static FORCEINLINE ULONG IDataObjectProvider_Release(IDataObjectProvider* This) {
39948     return This->lpVtbl->Release(This);
39949 }
39950 /*** IDataObjectProvider methods ***/
39951 static FORCEINLINE HRESULT IDataObjectProvider_GetDataObject(IDataObjectProvider* This,IDataObject **dataObject) {
39952     return This->lpVtbl->GetDataObject(This,dataObject);
39953 }
39954 static FORCEINLINE HRESULT IDataObjectProvider_SetDataObject(IDataObjectProvider* This,IDataObject *dataObject) {
39955     return This->lpVtbl->SetDataObject(This,dataObject);
39956 }
39957 #endif
39958 #endif
39959 
39960 #endif
39961 
39962 HRESULT STDMETHODCALLTYPE IDataObjectProvider_GetDataObject_Proxy(
39963     IDataObjectProvider* This,
39964     IDataObject **dataObject);
39965 void __RPC_STUB IDataObjectProvider_GetDataObject_Stub(
39966     IRpcStubBuffer* This,
39967     IRpcChannelBuffer* pRpcChannelBuffer,
39968     PRPC_MESSAGE pRpcMessage,
39969     DWORD* pdwStubPhase);
39970 
39971 #endif  /* __IDataObjectProvider_INTERFACE_DEFINED__ */
39972 
39973 
39974 /*****************************************************************************
39975  * IDataTransferManagerInterop interface
39976  */
39977 #ifndef __IDataTransferManagerInterop_INTERFACE_DEFINED__
39978 #define __IDataTransferManagerInterop_INTERFACE_DEFINED__
39979 
39980 DEFINE_GUID(IID_IDataTransferManagerInterop, 0x3a3dcd6c, 0x3eab, 0x43dc, 0xbc,0xde, 0x45,0x67,0x1c,0xe8,0x00,0xc8);
39981 #if defined(__cplusplus) && !defined(CINTERFACE)
39982 MIDL_INTERFACE("3a3dcd6c-3eab-43dc-bcde-45671ce800c8")
39983 IDataTransferManagerInterop : public IUnknown
39984 {
39985     virtual HRESULT STDMETHODCALLTYPE GetForWindow(
39986         HWND appWindow,
39987         REFIID riid,
39988         void **dataTransferManager) = 0;
39989 
39990     virtual HRESULT STDMETHODCALLTYPE ShowShareUIForWindow(
39991         HWND appWindow) = 0;
39992 
39993 };
39994 #ifdef __CRT_UUID_DECL
39995 __CRT_UUID_DECL(IDataTransferManagerInterop, 0x3a3dcd6c, 0x3eab, 0x43dc, 0xbc,0xde, 0x45,0x67,0x1c,0xe8,0x00,0xc8)
39996 #endif
39997 #else
39998 typedef struct IDataTransferManagerInteropVtbl {
39999     BEGIN_INTERFACE
40000 
40001     /*** IUnknown methods ***/
40002     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
40003         IDataTransferManagerInterop* This,
40004         REFIID riid,
40005         void **ppvObject);
40006 
40007     ULONG (STDMETHODCALLTYPE *AddRef)(
40008         IDataTransferManagerInterop* This);
40009 
40010     ULONG (STDMETHODCALLTYPE *Release)(
40011         IDataTransferManagerInterop* This);
40012 
40013     /*** IDataTransferManagerInterop methods ***/
40014     HRESULT (STDMETHODCALLTYPE *GetForWindow)(
40015         IDataTransferManagerInterop* This,
40016         HWND appWindow,
40017         REFIID riid,
40018         void **dataTransferManager);
40019 
40020     HRESULT (STDMETHODCALLTYPE *ShowShareUIForWindow)(
40021         IDataTransferManagerInterop* This,
40022         HWND appWindow);
40023 
40024     END_INTERFACE
40025 } IDataTransferManagerInteropVtbl;
40026 interface IDataTransferManagerInterop {
40027     CONST_VTBL IDataTransferManagerInteropVtbl* lpVtbl;
40028 };
40029 
40030 #ifdef COBJMACROS
40031 #ifndef WIDL_C_INLINE_WRAPPERS
40032 /*** IUnknown methods ***/
40033 #define IDataTransferManagerInterop_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
40034 #define IDataTransferManagerInterop_AddRef(This) (This)->lpVtbl->AddRef(This)
40035 #define IDataTransferManagerInterop_Release(This) (This)->lpVtbl->Release(This)
40036 /*** IDataTransferManagerInterop methods ***/
40037 #define IDataTransferManagerInterop_GetForWindow(This,appWindow,riid,dataTransferManager) (This)->lpVtbl->GetForWindow(This,appWindow,riid,dataTransferManager)
40038 #define IDataTransferManagerInterop_ShowShareUIForWindow(This,appWindow) (This)->lpVtbl->ShowShareUIForWindow(This,appWindow)
40039 #else
40040 /*** IUnknown methods ***/
40041 static FORCEINLINE HRESULT IDataTransferManagerInterop_QueryInterface(IDataTransferManagerInterop* This,REFIID riid,void **ppvObject) {
40042     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
40043 }
40044 static FORCEINLINE ULONG IDataTransferManagerInterop_AddRef(IDataTransferManagerInterop* This) {
40045     return This->lpVtbl->AddRef(This);
40046 }
40047 static FORCEINLINE ULONG IDataTransferManagerInterop_Release(IDataTransferManagerInterop* This) {
40048     return This->lpVtbl->Release(This);
40049 }
40050 /*** IDataTransferManagerInterop methods ***/
40051 static FORCEINLINE HRESULT IDataTransferManagerInterop_GetForWindow(IDataTransferManagerInterop* This,HWND appWindow,REFIID riid,void **dataTransferManager) {
40052     return This->lpVtbl->GetForWindow(This,appWindow,riid,dataTransferManager);
40053 }
40054 static FORCEINLINE HRESULT IDataTransferManagerInterop_ShowShareUIForWindow(IDataTransferManagerInterop* This,HWND appWindow) {
40055     return This->lpVtbl->ShowShareUIForWindow(This,appWindow);
40056 }
40057 #endif
40058 #endif
40059 
40060 #endif
40061 
40062 HRESULT STDMETHODCALLTYPE IDataTransferManagerInterop_GetForWindow_Proxy(
40063     IDataTransferManagerInterop* This,
40064     HWND appWindow,
40065     REFIID riid,
40066     void **dataTransferManager);
40067 void __RPC_STUB IDataTransferManagerInterop_GetForWindow_Stub(
40068     IRpcStubBuffer* This,
40069     IRpcChannelBuffer* pRpcChannelBuffer,
40070     PRPC_MESSAGE pRpcMessage,
40071     DWORD* pdwStubPhase);
40072 HRESULT STDMETHODCALLTYPE IDataTransferManagerInterop_ShowShareUIForWindow_Proxy(
40073     IDataTransferManagerInterop* This,
40074     HWND appWindow);
40075 void __RPC_STUB IDataTransferManagerInterop_ShowShareUIForWindow_Stub(
40076     IRpcStubBuffer* This,
40077     IRpcChannelBuffer* pRpcChannelBuffer,
40078     PRPC_MESSAGE pRpcMessage,
40079     DWORD* pdwStubPhase);
40080 
40081 #endif  /* __IDataTransferManagerInterop_INTERFACE_DEFINED__ */
40082 
40083 
40084 /*****************************************************************************
40085  * IFrameworkInputPaneHandler interface
40086  */
40087 #ifndef __IFrameworkInputPaneHandler_INTERFACE_DEFINED__
40088 #define __IFrameworkInputPaneHandler_INTERFACE_DEFINED__
40089 
40090 DEFINE_GUID(IID_IFrameworkInputPaneHandler, 0x226c537b, 0x1e76, 0x4d9e, 0xa7,0x60, 0x33,0xdb,0x29,0x92,0x2f,0x18);
40091 #if defined(__cplusplus) && !defined(CINTERFACE)
40092 MIDL_INTERFACE("226c537b-1e76-4d9e-a760-33db29922f18")
40093 IFrameworkInputPaneHandler : public IUnknown
40094 {
40095     virtual HRESULT STDMETHODCALLTYPE Showing(
40096         RECT *prcInputPaneScreenLocation,
40097         WINBOOL fEnsureFocusedElementInView) = 0;
40098 
40099     virtual HRESULT STDMETHODCALLTYPE Hiding(
40100         WINBOOL fEnsureFocusedElementInView) = 0;
40101 
40102 };
40103 #ifdef __CRT_UUID_DECL
40104 __CRT_UUID_DECL(IFrameworkInputPaneHandler, 0x226c537b, 0x1e76, 0x4d9e, 0xa7,0x60, 0x33,0xdb,0x29,0x92,0x2f,0x18)
40105 #endif
40106 #else
40107 typedef struct IFrameworkInputPaneHandlerVtbl {
40108     BEGIN_INTERFACE
40109 
40110     /*** IUnknown methods ***/
40111     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
40112         IFrameworkInputPaneHandler* This,
40113         REFIID riid,
40114         void **ppvObject);
40115 
40116     ULONG (STDMETHODCALLTYPE *AddRef)(
40117         IFrameworkInputPaneHandler* This);
40118 
40119     ULONG (STDMETHODCALLTYPE *Release)(
40120         IFrameworkInputPaneHandler* This);
40121 
40122     /*** IFrameworkInputPaneHandler methods ***/
40123     HRESULT (STDMETHODCALLTYPE *Showing)(
40124         IFrameworkInputPaneHandler* This,
40125         RECT *prcInputPaneScreenLocation,
40126         WINBOOL fEnsureFocusedElementInView);
40127 
40128     HRESULT (STDMETHODCALLTYPE *Hiding)(
40129         IFrameworkInputPaneHandler* This,
40130         WINBOOL fEnsureFocusedElementInView);
40131 
40132     END_INTERFACE
40133 } IFrameworkInputPaneHandlerVtbl;
40134 interface IFrameworkInputPaneHandler {
40135     CONST_VTBL IFrameworkInputPaneHandlerVtbl* lpVtbl;
40136 };
40137 
40138 #ifdef COBJMACROS
40139 #ifndef WIDL_C_INLINE_WRAPPERS
40140 /*** IUnknown methods ***/
40141 #define IFrameworkInputPaneHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
40142 #define IFrameworkInputPaneHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
40143 #define IFrameworkInputPaneHandler_Release(This) (This)->lpVtbl->Release(This)
40144 /*** IFrameworkInputPaneHandler methods ***/
40145 #define IFrameworkInputPaneHandler_Showing(This,prcInputPaneScreenLocation,fEnsureFocusedElementInView) (This)->lpVtbl->Showing(This,prcInputPaneScreenLocation,fEnsureFocusedElementInView)
40146 #define IFrameworkInputPaneHandler_Hiding(This,fEnsureFocusedElementInView) (This)->lpVtbl->Hiding(This,fEnsureFocusedElementInView)
40147 #else
40148 /*** IUnknown methods ***/
40149 static FORCEINLINE HRESULT IFrameworkInputPaneHandler_QueryInterface(IFrameworkInputPaneHandler* This,REFIID riid,void **ppvObject) {
40150     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
40151 }
40152 static FORCEINLINE ULONG IFrameworkInputPaneHandler_AddRef(IFrameworkInputPaneHandler* This) {
40153     return This->lpVtbl->AddRef(This);
40154 }
40155 static FORCEINLINE ULONG IFrameworkInputPaneHandler_Release(IFrameworkInputPaneHandler* This) {
40156     return This->lpVtbl->Release(This);
40157 }
40158 /*** IFrameworkInputPaneHandler methods ***/
40159 static FORCEINLINE HRESULT IFrameworkInputPaneHandler_Showing(IFrameworkInputPaneHandler* This,RECT *prcInputPaneScreenLocation,WINBOOL fEnsureFocusedElementInView) {
40160     return This->lpVtbl->Showing(This,prcInputPaneScreenLocation,fEnsureFocusedElementInView);
40161 }
40162 static FORCEINLINE HRESULT IFrameworkInputPaneHandler_Hiding(IFrameworkInputPaneHandler* This,WINBOOL fEnsureFocusedElementInView) {
40163     return This->lpVtbl->Hiding(This,fEnsureFocusedElementInView);
40164 }
40165 #endif
40166 #endif
40167 
40168 #endif
40169 
40170 HRESULT STDMETHODCALLTYPE IFrameworkInputPaneHandler_Showing_Proxy(
40171     IFrameworkInputPaneHandler* This,
40172     RECT *prcInputPaneScreenLocation,
40173     WINBOOL fEnsureFocusedElementInView);
40174 void __RPC_STUB IFrameworkInputPaneHandler_Showing_Stub(
40175     IRpcStubBuffer* This,
40176     IRpcChannelBuffer* pRpcChannelBuffer,
40177     PRPC_MESSAGE pRpcMessage,
40178     DWORD* pdwStubPhase);
40179 HRESULT STDMETHODCALLTYPE IFrameworkInputPaneHandler_Hiding_Proxy(
40180     IFrameworkInputPaneHandler* This,
40181     WINBOOL fEnsureFocusedElementInView);
40182 void __RPC_STUB IFrameworkInputPaneHandler_Hiding_Stub(
40183     IRpcStubBuffer* This,
40184     IRpcChannelBuffer* pRpcChannelBuffer,
40185     PRPC_MESSAGE pRpcMessage,
40186     DWORD* pdwStubPhase);
40187 
40188 #endif  /* __IFrameworkInputPaneHandler_INTERFACE_DEFINED__ */
40189 
40190 
40191 /*****************************************************************************
40192  * IFrameworkInputPane interface
40193  */
40194 #ifndef __IFrameworkInputPane_INTERFACE_DEFINED__
40195 #define __IFrameworkInputPane_INTERFACE_DEFINED__
40196 
40197 DEFINE_GUID(IID_IFrameworkInputPane, 0x5752238b, 0x24f0, 0x495a, 0x82,0xf1, 0x2f,0xd5,0x93,0x05,0x67,0x96);
40198 #if defined(__cplusplus) && !defined(CINTERFACE)
40199 MIDL_INTERFACE("5752238b-24f0-495a-82f1-2fd593056796")
40200 IFrameworkInputPane : public IUnknown
40201 {
40202     virtual HRESULT STDMETHODCALLTYPE Advise(
40203         IUnknown *pWindow,
40204         IFrameworkInputPaneHandler *pHandler,
40205         DWORD *pdwCookie) = 0;
40206 
40207     virtual HRESULT STDMETHODCALLTYPE AdviseWithHWND(
40208         HWND hwnd,
40209         IFrameworkInputPaneHandler *pHandler,
40210         DWORD *pdwCookie) = 0;
40211 
40212     virtual HRESULT STDMETHODCALLTYPE Unadvise(
40213         DWORD dwCookie) = 0;
40214 
40215     virtual HRESULT STDMETHODCALLTYPE Location(
40216         RECT *prcInputPaneScreenLocation) = 0;
40217 
40218 };
40219 #ifdef __CRT_UUID_DECL
40220 __CRT_UUID_DECL(IFrameworkInputPane, 0x5752238b, 0x24f0, 0x495a, 0x82,0xf1, 0x2f,0xd5,0x93,0x05,0x67,0x96)
40221 #endif
40222 #else
40223 typedef struct IFrameworkInputPaneVtbl {
40224     BEGIN_INTERFACE
40225 
40226     /*** IUnknown methods ***/
40227     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
40228         IFrameworkInputPane* This,
40229         REFIID riid,
40230         void **ppvObject);
40231 
40232     ULONG (STDMETHODCALLTYPE *AddRef)(
40233         IFrameworkInputPane* This);
40234 
40235     ULONG (STDMETHODCALLTYPE *Release)(
40236         IFrameworkInputPane* This);
40237 
40238     /*** IFrameworkInputPane methods ***/
40239     HRESULT (STDMETHODCALLTYPE *Advise)(
40240         IFrameworkInputPane* This,
40241         IUnknown *pWindow,
40242         IFrameworkInputPaneHandler *pHandler,
40243         DWORD *pdwCookie);
40244 
40245     HRESULT (STDMETHODCALLTYPE *AdviseWithHWND)(
40246         IFrameworkInputPane* This,
40247         HWND hwnd,
40248         IFrameworkInputPaneHandler *pHandler,
40249         DWORD *pdwCookie);
40250 
40251     HRESULT (STDMETHODCALLTYPE *Unadvise)(
40252         IFrameworkInputPane* This,
40253         DWORD dwCookie);
40254 
40255     HRESULT (STDMETHODCALLTYPE *Location)(
40256         IFrameworkInputPane* This,
40257         RECT *prcInputPaneScreenLocation);
40258 
40259     END_INTERFACE
40260 } IFrameworkInputPaneVtbl;
40261 interface IFrameworkInputPane {
40262     CONST_VTBL IFrameworkInputPaneVtbl* lpVtbl;
40263 };
40264 
40265 #ifdef COBJMACROS
40266 #ifndef WIDL_C_INLINE_WRAPPERS
40267 /*** IUnknown methods ***/
40268 #define IFrameworkInputPane_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
40269 #define IFrameworkInputPane_AddRef(This) (This)->lpVtbl->AddRef(This)
40270 #define IFrameworkInputPane_Release(This) (This)->lpVtbl->Release(This)
40271 /*** IFrameworkInputPane methods ***/
40272 #define IFrameworkInputPane_Advise(This,pWindow,pHandler,pdwCookie) (This)->lpVtbl->Advise(This,pWindow,pHandler,pdwCookie)
40273 #define IFrameworkInputPane_AdviseWithHWND(This,hwnd,pHandler,pdwCookie) (This)->lpVtbl->AdviseWithHWND(This,hwnd,pHandler,pdwCookie)
40274 #define IFrameworkInputPane_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
40275 #define IFrameworkInputPane_Location(This,prcInputPaneScreenLocation) (This)->lpVtbl->Location(This,prcInputPaneScreenLocation)
40276 #else
40277 /*** IUnknown methods ***/
40278 static FORCEINLINE HRESULT IFrameworkInputPane_QueryInterface(IFrameworkInputPane* This,REFIID riid,void **ppvObject) {
40279     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
40280 }
40281 static FORCEINLINE ULONG IFrameworkInputPane_AddRef(IFrameworkInputPane* This) {
40282     return This->lpVtbl->AddRef(This);
40283 }
40284 static FORCEINLINE ULONG IFrameworkInputPane_Release(IFrameworkInputPane* This) {
40285     return This->lpVtbl->Release(This);
40286 }
40287 /*** IFrameworkInputPane methods ***/
40288 static FORCEINLINE HRESULT IFrameworkInputPane_Advise(IFrameworkInputPane* This,IUnknown *pWindow,IFrameworkInputPaneHandler *pHandler,DWORD *pdwCookie) {
40289     return This->lpVtbl->Advise(This,pWindow,pHandler,pdwCookie);
40290 }
40291 static FORCEINLINE HRESULT IFrameworkInputPane_AdviseWithHWND(IFrameworkInputPane* This,HWND hwnd,IFrameworkInputPaneHandler *pHandler,DWORD *pdwCookie) {
40292     return This->lpVtbl->AdviseWithHWND(This,hwnd,pHandler,pdwCookie);
40293 }
40294 static FORCEINLINE HRESULT IFrameworkInputPane_Unadvise(IFrameworkInputPane* This,DWORD dwCookie) {
40295     return This->lpVtbl->Unadvise(This,dwCookie);
40296 }
40297 static FORCEINLINE HRESULT IFrameworkInputPane_Location(IFrameworkInputPane* This,RECT *prcInputPaneScreenLocation) {
40298     return This->lpVtbl->Location(This,prcInputPaneScreenLocation);
40299 }
40300 #endif
40301 #endif
40302 
40303 #endif
40304 
40305 HRESULT STDMETHODCALLTYPE IFrameworkInputPane_Advise_Proxy(
40306     IFrameworkInputPane* This,
40307     IUnknown *pWindow,
40308     IFrameworkInputPaneHandler *pHandler,
40309     DWORD *pdwCookie);
40310 void __RPC_STUB IFrameworkInputPane_Advise_Stub(
40311     IRpcStubBuffer* This,
40312     IRpcChannelBuffer* pRpcChannelBuffer,
40313     PRPC_MESSAGE pRpcMessage,
40314     DWORD* pdwStubPhase);
40315 HRESULT STDMETHODCALLTYPE IFrameworkInputPane_AdviseWithHWND_Proxy(
40316     IFrameworkInputPane* This,
40317     HWND hwnd,
40318     IFrameworkInputPaneHandler *pHandler,
40319     DWORD *pdwCookie);
40320 void __RPC_STUB IFrameworkInputPane_AdviseWithHWND_Stub(
40321     IRpcStubBuffer* This,
40322     IRpcChannelBuffer* pRpcChannelBuffer,
40323     PRPC_MESSAGE pRpcMessage,
40324     DWORD* pdwStubPhase);
40325 HRESULT STDMETHODCALLTYPE IFrameworkInputPane_Unadvise_Proxy(
40326     IFrameworkInputPane* This,
40327     DWORD dwCookie);
40328 void __RPC_STUB IFrameworkInputPane_Unadvise_Stub(
40329     IRpcStubBuffer* This,
40330     IRpcChannelBuffer* pRpcChannelBuffer,
40331     PRPC_MESSAGE pRpcMessage,
40332     DWORD* pdwStubPhase);
40333 HRESULT STDMETHODCALLTYPE IFrameworkInputPane_Location_Proxy(
40334     IFrameworkInputPane* This,
40335     RECT *prcInputPaneScreenLocation);
40336 void __RPC_STUB IFrameworkInputPane_Location_Stub(
40337     IRpcStubBuffer* This,
40338     IRpcChannelBuffer* pRpcChannelBuffer,
40339     PRPC_MESSAGE pRpcMessage,
40340     DWORD* pdwStubPhase);
40341 
40342 #endif  /* __IFrameworkInputPane_INTERFACE_DEFINED__ */
40343 
40344 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
40345 
40346 #ifndef PROP_CONTRACT_DELEGATE
40347 #define PROP_CONTRACT_DELEGATE L"ContractDelegate"
40348 #endif
40349 
SetContractDelegateWindow(HWND hwndSource,HWND hwndDelegate)40350   __forceinline void SetContractDelegateWindow(HWND hwndSource, HWND hwndDelegate) {
40351     if (hwndDelegate != NULL)
40352       SetPropW (hwndSource, PROP_CONTRACT_DELEGATE, (HANDLE)hwndDelegate);
40353     else
40354       RemovePropW(hwndSource, PROP_CONTRACT_DELEGATE);
40355   }
40356 
40357 #ifndef PROP_CONTRACT_DELEGATE
40358 #define PROP_CONTRACT_DELEGATE L"ContractDelegate"
40359 #endif
40360 
GetContractDelegateWindow(HWND hwndSource)40361   __forceinline HWND GetContractDelegateWindow(HWND hwndSource) { return (HWND)GetPropW(hwndSource, PROP_CONTRACT_DELEGATE); }
40362 #endif
40363 #endif
40364 
40365 #if NTDDI_VERSION >= NTDDI_WIN8
40366 /*****************************************************************************
40367  * ISearchableApplication interface
40368  */
40369 #ifndef __ISearchableApplication_INTERFACE_DEFINED__
40370 #define __ISearchableApplication_INTERFACE_DEFINED__
40371 
40372 DEFINE_GUID(IID_ISearchableApplication, 0x08922f8d, 0x243a, 0x49e3, 0xa4,0x95, 0xbd,0x4f,0x9c,0xf8,0xab,0x9e);
40373 #if defined(__cplusplus) && !defined(CINTERFACE)
40374 MIDL_INTERFACE("08922f8d-243a-49e3-a495-bd4f9cf8ab9e")
40375 ISearchableApplication : public IUnknown
40376 {
40377     virtual HRESULT STDMETHODCALLTYPE GetSearchWindow(
40378         HWND *hwnd) = 0;
40379 
40380 };
40381 #ifdef __CRT_UUID_DECL
40382 __CRT_UUID_DECL(ISearchableApplication, 0x08922f8d, 0x243a, 0x49e3, 0xa4,0x95, 0xbd,0x4f,0x9c,0xf8,0xab,0x9e)
40383 #endif
40384 #else
40385 typedef struct ISearchableApplicationVtbl {
40386     BEGIN_INTERFACE
40387 
40388     /*** IUnknown methods ***/
40389     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
40390         ISearchableApplication* This,
40391         REFIID riid,
40392         void **ppvObject);
40393 
40394     ULONG (STDMETHODCALLTYPE *AddRef)(
40395         ISearchableApplication* This);
40396 
40397     ULONG (STDMETHODCALLTYPE *Release)(
40398         ISearchableApplication* This);
40399 
40400     /*** ISearchableApplication methods ***/
40401     HRESULT (STDMETHODCALLTYPE *GetSearchWindow)(
40402         ISearchableApplication* This,
40403         HWND *hwnd);
40404 
40405     END_INTERFACE
40406 } ISearchableApplicationVtbl;
40407 interface ISearchableApplication {
40408     CONST_VTBL ISearchableApplicationVtbl* lpVtbl;
40409 };
40410 
40411 #ifdef COBJMACROS
40412 #ifndef WIDL_C_INLINE_WRAPPERS
40413 /*** IUnknown methods ***/
40414 #define ISearchableApplication_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
40415 #define ISearchableApplication_AddRef(This) (This)->lpVtbl->AddRef(This)
40416 #define ISearchableApplication_Release(This) (This)->lpVtbl->Release(This)
40417 /*** ISearchableApplication methods ***/
40418 #define ISearchableApplication_GetSearchWindow(This,hwnd) (This)->lpVtbl->GetSearchWindow(This,hwnd)
40419 #else
40420 /*** IUnknown methods ***/
40421 static FORCEINLINE HRESULT ISearchableApplication_QueryInterface(ISearchableApplication* This,REFIID riid,void **ppvObject) {
40422     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
40423 }
40424 static FORCEINLINE ULONG ISearchableApplication_AddRef(ISearchableApplication* This) {
40425     return This->lpVtbl->AddRef(This);
40426 }
40427 static FORCEINLINE ULONG ISearchableApplication_Release(ISearchableApplication* This) {
40428     return This->lpVtbl->Release(This);
40429 }
40430 /*** ISearchableApplication methods ***/
40431 static FORCEINLINE HRESULT ISearchableApplication_GetSearchWindow(ISearchableApplication* This,HWND *hwnd) {
40432     return This->lpVtbl->GetSearchWindow(This,hwnd);
40433 }
40434 #endif
40435 #endif
40436 
40437 #endif
40438 
40439 HRESULT STDMETHODCALLTYPE ISearchableApplication_GetSearchWindow_Proxy(
40440     ISearchableApplication* This,
40441     HWND *hwnd);
40442 void __RPC_STUB ISearchableApplication_GetSearchWindow_Stub(
40443     IRpcStubBuffer* This,
40444     IRpcChannelBuffer* pRpcChannelBuffer,
40445     PRPC_MESSAGE pRpcMessage,
40446     DWORD* pdwStubPhase);
40447 
40448 #endif  /* __ISearchableApplication_INTERFACE_DEFINED__ */
40449 
40450 
40451 typedef enum UNDOCK_REASON {
40452     UR_RESOLUTION_CHANGE = 0,
40453     UR_MONITOR_DISCONNECT = 1
40454 } UNDOCK_REASON;
40455 
40456 /*****************************************************************************
40457  * IAccessibilityDockingServiceCallback interface
40458  */
40459 #ifndef __IAccessibilityDockingServiceCallback_INTERFACE_DEFINED__
40460 #define __IAccessibilityDockingServiceCallback_INTERFACE_DEFINED__
40461 
40462 DEFINE_GUID(IID_IAccessibilityDockingServiceCallback, 0x157733fd, 0xa592, 0x42e5, 0xb5,0x94, 0x24,0x84,0x68,0xc5,0xa8,0x1b);
40463 #if defined(__cplusplus) && !defined(CINTERFACE)
40464 MIDL_INTERFACE("157733fd-a592-42e5-b594-248468c5a81b")
40465 IAccessibilityDockingServiceCallback : public IUnknown
40466 {
40467     virtual HRESULT STDMETHODCALLTYPE Undocked(
40468         UNDOCK_REASON undockReason) = 0;
40469 
40470 };
40471 #ifdef __CRT_UUID_DECL
40472 __CRT_UUID_DECL(IAccessibilityDockingServiceCallback, 0x157733fd, 0xa592, 0x42e5, 0xb5,0x94, 0x24,0x84,0x68,0xc5,0xa8,0x1b)
40473 #endif
40474 #else
40475 typedef struct IAccessibilityDockingServiceCallbackVtbl {
40476     BEGIN_INTERFACE
40477 
40478     /*** IUnknown methods ***/
40479     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
40480         IAccessibilityDockingServiceCallback* This,
40481         REFIID riid,
40482         void **ppvObject);
40483 
40484     ULONG (STDMETHODCALLTYPE *AddRef)(
40485         IAccessibilityDockingServiceCallback* This);
40486 
40487     ULONG (STDMETHODCALLTYPE *Release)(
40488         IAccessibilityDockingServiceCallback* This);
40489 
40490     /*** IAccessibilityDockingServiceCallback methods ***/
40491     HRESULT (STDMETHODCALLTYPE *Undocked)(
40492         IAccessibilityDockingServiceCallback* This,
40493         UNDOCK_REASON undockReason);
40494 
40495     END_INTERFACE
40496 } IAccessibilityDockingServiceCallbackVtbl;
40497 interface IAccessibilityDockingServiceCallback {
40498     CONST_VTBL IAccessibilityDockingServiceCallbackVtbl* lpVtbl;
40499 };
40500 
40501 #ifdef COBJMACROS
40502 #ifndef WIDL_C_INLINE_WRAPPERS
40503 /*** IUnknown methods ***/
40504 #define IAccessibilityDockingServiceCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
40505 #define IAccessibilityDockingServiceCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
40506 #define IAccessibilityDockingServiceCallback_Release(This) (This)->lpVtbl->Release(This)
40507 /*** IAccessibilityDockingServiceCallback methods ***/
40508 #define IAccessibilityDockingServiceCallback_Undocked(This,undockReason) (This)->lpVtbl->Undocked(This,undockReason)
40509 #else
40510 /*** IUnknown methods ***/
40511 static FORCEINLINE HRESULT IAccessibilityDockingServiceCallback_QueryInterface(IAccessibilityDockingServiceCallback* This,REFIID riid,void **ppvObject) {
40512     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
40513 }
40514 static FORCEINLINE ULONG IAccessibilityDockingServiceCallback_AddRef(IAccessibilityDockingServiceCallback* This) {
40515     return This->lpVtbl->AddRef(This);
40516 }
40517 static FORCEINLINE ULONG IAccessibilityDockingServiceCallback_Release(IAccessibilityDockingServiceCallback* This) {
40518     return This->lpVtbl->Release(This);
40519 }
40520 /*** IAccessibilityDockingServiceCallback methods ***/
40521 static FORCEINLINE HRESULT IAccessibilityDockingServiceCallback_Undocked(IAccessibilityDockingServiceCallback* This,UNDOCK_REASON undockReason) {
40522     return This->lpVtbl->Undocked(This,undockReason);
40523 }
40524 #endif
40525 #endif
40526 
40527 #endif
40528 
40529 HRESULT STDMETHODCALLTYPE IAccessibilityDockingServiceCallback_Undocked_Proxy(
40530     IAccessibilityDockingServiceCallback* This,
40531     UNDOCK_REASON undockReason);
40532 void __RPC_STUB IAccessibilityDockingServiceCallback_Undocked_Stub(
40533     IRpcStubBuffer* This,
40534     IRpcChannelBuffer* pRpcChannelBuffer,
40535     PRPC_MESSAGE pRpcMessage,
40536     DWORD* pdwStubPhase);
40537 
40538 #endif  /* __IAccessibilityDockingServiceCallback_INTERFACE_DEFINED__ */
40539 
40540 
40541 /*****************************************************************************
40542  * IAccessibilityDockingService interface
40543  */
40544 #ifndef __IAccessibilityDockingService_INTERFACE_DEFINED__
40545 #define __IAccessibilityDockingService_INTERFACE_DEFINED__
40546 
40547 DEFINE_GUID(IID_IAccessibilityDockingService, 0x8849dc22, 0xcedf, 0x4c95, 0x99,0x8d, 0x05,0x14,0x19,0xdd,0x3f,0x76);
40548 #if defined(__cplusplus) && !defined(CINTERFACE)
40549 MIDL_INTERFACE("8849dc22-cedf-4c95-998d-051419dd3f76")
40550 IAccessibilityDockingService : public IUnknown
40551 {
40552     virtual HRESULT STDMETHODCALLTYPE GetAvailableSize(
40553         HMONITOR hMonitor,
40554         UINT *pcxFixed,
40555         UINT *pcyMax) = 0;
40556 
40557     virtual HRESULT STDMETHODCALLTYPE DockWindow(
40558         HWND hwnd,
40559         HMONITOR hMonitor,
40560         UINT cyRequested,
40561         IAccessibilityDockingServiceCallback *pCallback) = 0;
40562 
40563     virtual HRESULT STDMETHODCALLTYPE UndockWindow(
40564         HWND hwnd) = 0;
40565 
40566 };
40567 #ifdef __CRT_UUID_DECL
40568 __CRT_UUID_DECL(IAccessibilityDockingService, 0x8849dc22, 0xcedf, 0x4c95, 0x99,0x8d, 0x05,0x14,0x19,0xdd,0x3f,0x76)
40569 #endif
40570 #else
40571 typedef struct IAccessibilityDockingServiceVtbl {
40572     BEGIN_INTERFACE
40573 
40574     /*** IUnknown methods ***/
40575     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
40576         IAccessibilityDockingService* This,
40577         REFIID riid,
40578         void **ppvObject);
40579 
40580     ULONG (STDMETHODCALLTYPE *AddRef)(
40581         IAccessibilityDockingService* This);
40582 
40583     ULONG (STDMETHODCALLTYPE *Release)(
40584         IAccessibilityDockingService* This);
40585 
40586     /*** IAccessibilityDockingService methods ***/
40587     HRESULT (STDMETHODCALLTYPE *GetAvailableSize)(
40588         IAccessibilityDockingService* This,
40589         HMONITOR hMonitor,
40590         UINT *pcxFixed,
40591         UINT *pcyMax);
40592 
40593     HRESULT (STDMETHODCALLTYPE *DockWindow)(
40594         IAccessibilityDockingService* This,
40595         HWND hwnd,
40596         HMONITOR hMonitor,
40597         UINT cyRequested,
40598         IAccessibilityDockingServiceCallback *pCallback);
40599 
40600     HRESULT (STDMETHODCALLTYPE *UndockWindow)(
40601         IAccessibilityDockingService* This,
40602         HWND hwnd);
40603 
40604     END_INTERFACE
40605 } IAccessibilityDockingServiceVtbl;
40606 interface IAccessibilityDockingService {
40607     CONST_VTBL IAccessibilityDockingServiceVtbl* lpVtbl;
40608 };
40609 
40610 #ifdef COBJMACROS
40611 #ifndef WIDL_C_INLINE_WRAPPERS
40612 /*** IUnknown methods ***/
40613 #define IAccessibilityDockingService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
40614 #define IAccessibilityDockingService_AddRef(This) (This)->lpVtbl->AddRef(This)
40615 #define IAccessibilityDockingService_Release(This) (This)->lpVtbl->Release(This)
40616 /*** IAccessibilityDockingService methods ***/
40617 #define IAccessibilityDockingService_GetAvailableSize(This,hMonitor,pcxFixed,pcyMax) (This)->lpVtbl->GetAvailableSize(This,hMonitor,pcxFixed,pcyMax)
40618 #define IAccessibilityDockingService_DockWindow(This,hwnd,hMonitor,cyRequested,pCallback) (This)->lpVtbl->DockWindow(This,hwnd,hMonitor,cyRequested,pCallback)
40619 #define IAccessibilityDockingService_UndockWindow(This,hwnd) (This)->lpVtbl->UndockWindow(This,hwnd)
40620 #else
40621 /*** IUnknown methods ***/
40622 static FORCEINLINE HRESULT IAccessibilityDockingService_QueryInterface(IAccessibilityDockingService* This,REFIID riid,void **ppvObject) {
40623     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
40624 }
40625 static FORCEINLINE ULONG IAccessibilityDockingService_AddRef(IAccessibilityDockingService* This) {
40626     return This->lpVtbl->AddRef(This);
40627 }
40628 static FORCEINLINE ULONG IAccessibilityDockingService_Release(IAccessibilityDockingService* This) {
40629     return This->lpVtbl->Release(This);
40630 }
40631 /*** IAccessibilityDockingService methods ***/
40632 static FORCEINLINE HRESULT IAccessibilityDockingService_GetAvailableSize(IAccessibilityDockingService* This,HMONITOR hMonitor,UINT *pcxFixed,UINT *pcyMax) {
40633     return This->lpVtbl->GetAvailableSize(This,hMonitor,pcxFixed,pcyMax);
40634 }
40635 static FORCEINLINE HRESULT IAccessibilityDockingService_DockWindow(IAccessibilityDockingService* This,HWND hwnd,HMONITOR hMonitor,UINT cyRequested,IAccessibilityDockingServiceCallback *pCallback) {
40636     return This->lpVtbl->DockWindow(This,hwnd,hMonitor,cyRequested,pCallback);
40637 }
40638 static FORCEINLINE HRESULT IAccessibilityDockingService_UndockWindow(IAccessibilityDockingService* This,HWND hwnd) {
40639     return This->lpVtbl->UndockWindow(This,hwnd);
40640 }
40641 #endif
40642 #endif
40643 
40644 #endif
40645 
40646 HRESULT STDMETHODCALLTYPE IAccessibilityDockingService_GetAvailableSize_Proxy(
40647     IAccessibilityDockingService* This,
40648     HMONITOR hMonitor,
40649     UINT *pcxFixed,
40650     UINT *pcyMax);
40651 void __RPC_STUB IAccessibilityDockingService_GetAvailableSize_Stub(
40652     IRpcStubBuffer* This,
40653     IRpcChannelBuffer* pRpcChannelBuffer,
40654     PRPC_MESSAGE pRpcMessage,
40655     DWORD* pdwStubPhase);
40656 HRESULT STDMETHODCALLTYPE IAccessibilityDockingService_DockWindow_Proxy(
40657     IAccessibilityDockingService* This,
40658     HWND hwnd,
40659     HMONITOR hMonitor,
40660     UINT cyRequested,
40661     IAccessibilityDockingServiceCallback *pCallback);
40662 void __RPC_STUB IAccessibilityDockingService_DockWindow_Stub(
40663     IRpcStubBuffer* This,
40664     IRpcChannelBuffer* pRpcChannelBuffer,
40665     PRPC_MESSAGE pRpcMessage,
40666     DWORD* pdwStubPhase);
40667 HRESULT STDMETHODCALLTYPE IAccessibilityDockingService_UndockWindow_Proxy(
40668     IAccessibilityDockingService* This,
40669     HWND hwnd);
40670 void __RPC_STUB IAccessibilityDockingService_UndockWindow_Stub(
40671     IRpcStubBuffer* This,
40672     IRpcChannelBuffer* pRpcChannelBuffer,
40673     PRPC_MESSAGE pRpcMessage,
40674     DWORD* pdwStubPhase);
40675 
40676 #endif  /* __IAccessibilityDockingService_INTERFACE_DEFINED__ */
40677 
40678 
40679 typedef enum MONITOR_APP_VISIBILITY {
40680     MAV_UNKNOWN = 0,
40681     MAV_NO_APP_VISIBLE = 1,
40682     MAV_APP_VISIBLE = 2
40683 } MONITOR_APP_VISIBILITY;
40684 
40685 /*****************************************************************************
40686  * IAppVisibilityEvents interface
40687  */
40688 #ifndef __IAppVisibilityEvents_INTERFACE_DEFINED__
40689 #define __IAppVisibilityEvents_INTERFACE_DEFINED__
40690 
40691 DEFINE_GUID(IID_IAppVisibilityEvents, 0x6584ce6b, 0x7d82, 0x49c2, 0x89,0xc9, 0xc6,0xbc,0x02,0xba,0x8c,0x38);
40692 #if defined(__cplusplus) && !defined(CINTERFACE)
40693 MIDL_INTERFACE("6584ce6b-7d82-49c2-89c9-c6bc02ba8c38")
40694 IAppVisibilityEvents : public IUnknown
40695 {
40696     virtual HRESULT STDMETHODCALLTYPE AppVisibilityOnMonitorChanged(
40697         HMONITOR hMonitor,
40698         MONITOR_APP_VISIBILITY previousMode,
40699         MONITOR_APP_VISIBILITY currentMode) = 0;
40700 
40701     virtual HRESULT STDMETHODCALLTYPE LauncherVisibilityChange(
40702         WINBOOL currentVisibleState) = 0;
40703 
40704 };
40705 #ifdef __CRT_UUID_DECL
40706 __CRT_UUID_DECL(IAppVisibilityEvents, 0x6584ce6b, 0x7d82, 0x49c2, 0x89,0xc9, 0xc6,0xbc,0x02,0xba,0x8c,0x38)
40707 #endif
40708 #else
40709 typedef struct IAppVisibilityEventsVtbl {
40710     BEGIN_INTERFACE
40711 
40712     /*** IUnknown methods ***/
40713     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
40714         IAppVisibilityEvents* This,
40715         REFIID riid,
40716         void **ppvObject);
40717 
40718     ULONG (STDMETHODCALLTYPE *AddRef)(
40719         IAppVisibilityEvents* This);
40720 
40721     ULONG (STDMETHODCALLTYPE *Release)(
40722         IAppVisibilityEvents* This);
40723 
40724     /*** IAppVisibilityEvents methods ***/
40725     HRESULT (STDMETHODCALLTYPE *AppVisibilityOnMonitorChanged)(
40726         IAppVisibilityEvents* This,
40727         HMONITOR hMonitor,
40728         MONITOR_APP_VISIBILITY previousMode,
40729         MONITOR_APP_VISIBILITY currentMode);
40730 
40731     HRESULT (STDMETHODCALLTYPE *LauncherVisibilityChange)(
40732         IAppVisibilityEvents* This,
40733         WINBOOL currentVisibleState);
40734 
40735     END_INTERFACE
40736 } IAppVisibilityEventsVtbl;
40737 interface IAppVisibilityEvents {
40738     CONST_VTBL IAppVisibilityEventsVtbl* lpVtbl;
40739 };
40740 
40741 #ifdef COBJMACROS
40742 #ifndef WIDL_C_INLINE_WRAPPERS
40743 /*** IUnknown methods ***/
40744 #define IAppVisibilityEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
40745 #define IAppVisibilityEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
40746 #define IAppVisibilityEvents_Release(This) (This)->lpVtbl->Release(This)
40747 /*** IAppVisibilityEvents methods ***/
40748 #define IAppVisibilityEvents_AppVisibilityOnMonitorChanged(This,hMonitor,previousMode,currentMode) (This)->lpVtbl->AppVisibilityOnMonitorChanged(This,hMonitor,previousMode,currentMode)
40749 #define IAppVisibilityEvents_LauncherVisibilityChange(This,currentVisibleState) (This)->lpVtbl->LauncherVisibilityChange(This,currentVisibleState)
40750 #else
40751 /*** IUnknown methods ***/
40752 static FORCEINLINE HRESULT IAppVisibilityEvents_QueryInterface(IAppVisibilityEvents* This,REFIID riid,void **ppvObject) {
40753     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
40754 }
40755 static FORCEINLINE ULONG IAppVisibilityEvents_AddRef(IAppVisibilityEvents* This) {
40756     return This->lpVtbl->AddRef(This);
40757 }
40758 static FORCEINLINE ULONG IAppVisibilityEvents_Release(IAppVisibilityEvents* This) {
40759     return This->lpVtbl->Release(This);
40760 }
40761 /*** IAppVisibilityEvents methods ***/
40762 static FORCEINLINE HRESULT IAppVisibilityEvents_AppVisibilityOnMonitorChanged(IAppVisibilityEvents* This,HMONITOR hMonitor,MONITOR_APP_VISIBILITY previousMode,MONITOR_APP_VISIBILITY currentMode) {
40763     return This->lpVtbl->AppVisibilityOnMonitorChanged(This,hMonitor,previousMode,currentMode);
40764 }
40765 static FORCEINLINE HRESULT IAppVisibilityEvents_LauncherVisibilityChange(IAppVisibilityEvents* This,WINBOOL currentVisibleState) {
40766     return This->lpVtbl->LauncherVisibilityChange(This,currentVisibleState);
40767 }
40768 #endif
40769 #endif
40770 
40771 #endif
40772 
40773 HRESULT STDMETHODCALLTYPE IAppVisibilityEvents_AppVisibilityOnMonitorChanged_Proxy(
40774     IAppVisibilityEvents* This,
40775     HMONITOR hMonitor,
40776     MONITOR_APP_VISIBILITY previousMode,
40777     MONITOR_APP_VISIBILITY currentMode);
40778 void __RPC_STUB IAppVisibilityEvents_AppVisibilityOnMonitorChanged_Stub(
40779     IRpcStubBuffer* This,
40780     IRpcChannelBuffer* pRpcChannelBuffer,
40781     PRPC_MESSAGE pRpcMessage,
40782     DWORD* pdwStubPhase);
40783 HRESULT STDMETHODCALLTYPE IAppVisibilityEvents_LauncherVisibilityChange_Proxy(
40784     IAppVisibilityEvents* This,
40785     WINBOOL currentVisibleState);
40786 void __RPC_STUB IAppVisibilityEvents_LauncherVisibilityChange_Stub(
40787     IRpcStubBuffer* This,
40788     IRpcChannelBuffer* pRpcChannelBuffer,
40789     PRPC_MESSAGE pRpcMessage,
40790     DWORD* pdwStubPhase);
40791 
40792 #endif  /* __IAppVisibilityEvents_INTERFACE_DEFINED__ */
40793 
40794 
40795 /*****************************************************************************
40796  * IAppVisibility interface
40797  */
40798 #ifndef __IAppVisibility_INTERFACE_DEFINED__
40799 #define __IAppVisibility_INTERFACE_DEFINED__
40800 
40801 DEFINE_GUID(IID_IAppVisibility, 0x2246ea2d, 0xcaea, 0x4444, 0xa3,0xc4, 0x6d,0xe8,0x27,0xe4,0x43,0x13);
40802 #if defined(__cplusplus) && !defined(CINTERFACE)
40803 MIDL_INTERFACE("2246ea2d-caea-4444-a3c4-6de827e44313")
40804 IAppVisibility : public IUnknown
40805 {
40806     virtual HRESULT STDMETHODCALLTYPE GetAppVisibilityOnMonitor(
40807         HMONITOR hMonitor,
40808         MONITOR_APP_VISIBILITY *pMode) = 0;
40809 
40810     virtual HRESULT STDMETHODCALLTYPE IsLauncherVisible(
40811         WINBOOL *pfVisible) = 0;
40812 
40813     virtual HRESULT STDMETHODCALLTYPE Advise(
40814         IAppVisibilityEvents *pCallback,
40815         DWORD *pdwCookie) = 0;
40816 
40817     virtual HRESULT STDMETHODCALLTYPE Unadvise(
40818         DWORD dwCookie) = 0;
40819 
40820 };
40821 #ifdef __CRT_UUID_DECL
40822 __CRT_UUID_DECL(IAppVisibility, 0x2246ea2d, 0xcaea, 0x4444, 0xa3,0xc4, 0x6d,0xe8,0x27,0xe4,0x43,0x13)
40823 #endif
40824 #else
40825 typedef struct IAppVisibilityVtbl {
40826     BEGIN_INTERFACE
40827 
40828     /*** IUnknown methods ***/
40829     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
40830         IAppVisibility* This,
40831         REFIID riid,
40832         void **ppvObject);
40833 
40834     ULONG (STDMETHODCALLTYPE *AddRef)(
40835         IAppVisibility* This);
40836 
40837     ULONG (STDMETHODCALLTYPE *Release)(
40838         IAppVisibility* This);
40839 
40840     /*** IAppVisibility methods ***/
40841     HRESULT (STDMETHODCALLTYPE *GetAppVisibilityOnMonitor)(
40842         IAppVisibility* This,
40843         HMONITOR hMonitor,
40844         MONITOR_APP_VISIBILITY *pMode);
40845 
40846     HRESULT (STDMETHODCALLTYPE *IsLauncherVisible)(
40847         IAppVisibility* This,
40848         WINBOOL *pfVisible);
40849 
40850     HRESULT (STDMETHODCALLTYPE *Advise)(
40851         IAppVisibility* This,
40852         IAppVisibilityEvents *pCallback,
40853         DWORD *pdwCookie);
40854 
40855     HRESULT (STDMETHODCALLTYPE *Unadvise)(
40856         IAppVisibility* This,
40857         DWORD dwCookie);
40858 
40859     END_INTERFACE
40860 } IAppVisibilityVtbl;
40861 interface IAppVisibility {
40862     CONST_VTBL IAppVisibilityVtbl* lpVtbl;
40863 };
40864 
40865 #ifdef COBJMACROS
40866 #ifndef WIDL_C_INLINE_WRAPPERS
40867 /*** IUnknown methods ***/
40868 #define IAppVisibility_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
40869 #define IAppVisibility_AddRef(This) (This)->lpVtbl->AddRef(This)
40870 #define IAppVisibility_Release(This) (This)->lpVtbl->Release(This)
40871 /*** IAppVisibility methods ***/
40872 #define IAppVisibility_GetAppVisibilityOnMonitor(This,hMonitor,pMode) (This)->lpVtbl->GetAppVisibilityOnMonitor(This,hMonitor,pMode)
40873 #define IAppVisibility_IsLauncherVisible(This,pfVisible) (This)->lpVtbl->IsLauncherVisible(This,pfVisible)
40874 #define IAppVisibility_Advise(This,pCallback,pdwCookie) (This)->lpVtbl->Advise(This,pCallback,pdwCookie)
40875 #define IAppVisibility_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
40876 #else
40877 /*** IUnknown methods ***/
40878 static FORCEINLINE HRESULT IAppVisibility_QueryInterface(IAppVisibility* This,REFIID riid,void **ppvObject) {
40879     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
40880 }
40881 static FORCEINLINE ULONG IAppVisibility_AddRef(IAppVisibility* This) {
40882     return This->lpVtbl->AddRef(This);
40883 }
40884 static FORCEINLINE ULONG IAppVisibility_Release(IAppVisibility* This) {
40885     return This->lpVtbl->Release(This);
40886 }
40887 /*** IAppVisibility methods ***/
40888 static FORCEINLINE HRESULT IAppVisibility_GetAppVisibilityOnMonitor(IAppVisibility* This,HMONITOR hMonitor,MONITOR_APP_VISIBILITY *pMode) {
40889     return This->lpVtbl->GetAppVisibilityOnMonitor(This,hMonitor,pMode);
40890 }
40891 static FORCEINLINE HRESULT IAppVisibility_IsLauncherVisible(IAppVisibility* This,WINBOOL *pfVisible) {
40892     return This->lpVtbl->IsLauncherVisible(This,pfVisible);
40893 }
40894 static FORCEINLINE HRESULT IAppVisibility_Advise(IAppVisibility* This,IAppVisibilityEvents *pCallback,DWORD *pdwCookie) {
40895     return This->lpVtbl->Advise(This,pCallback,pdwCookie);
40896 }
40897 static FORCEINLINE HRESULT IAppVisibility_Unadvise(IAppVisibility* This,DWORD dwCookie) {
40898     return This->lpVtbl->Unadvise(This,dwCookie);
40899 }
40900 #endif
40901 #endif
40902 
40903 #endif
40904 
40905 HRESULT STDMETHODCALLTYPE IAppVisibility_GetAppVisibilityOnMonitor_Proxy(
40906     IAppVisibility* This,
40907     HMONITOR hMonitor,
40908     MONITOR_APP_VISIBILITY *pMode);
40909 void __RPC_STUB IAppVisibility_GetAppVisibilityOnMonitor_Stub(
40910     IRpcStubBuffer* This,
40911     IRpcChannelBuffer* pRpcChannelBuffer,
40912     PRPC_MESSAGE pRpcMessage,
40913     DWORD* pdwStubPhase);
40914 HRESULT STDMETHODCALLTYPE IAppVisibility_IsLauncherVisible_Proxy(
40915     IAppVisibility* This,
40916     WINBOOL *pfVisible);
40917 void __RPC_STUB IAppVisibility_IsLauncherVisible_Stub(
40918     IRpcStubBuffer* This,
40919     IRpcChannelBuffer* pRpcChannelBuffer,
40920     PRPC_MESSAGE pRpcMessage,
40921     DWORD* pdwStubPhase);
40922 HRESULT STDMETHODCALLTYPE IAppVisibility_Advise_Proxy(
40923     IAppVisibility* This,
40924     IAppVisibilityEvents *pCallback,
40925     DWORD *pdwCookie);
40926 void __RPC_STUB IAppVisibility_Advise_Stub(
40927     IRpcStubBuffer* This,
40928     IRpcChannelBuffer* pRpcChannelBuffer,
40929     PRPC_MESSAGE pRpcMessage,
40930     DWORD* pdwStubPhase);
40931 HRESULT STDMETHODCALLTYPE IAppVisibility_Unadvise_Proxy(
40932     IAppVisibility* This,
40933     DWORD dwCookie);
40934 void __RPC_STUB IAppVisibility_Unadvise_Stub(
40935     IRpcStubBuffer* This,
40936     IRpcChannelBuffer* pRpcChannelBuffer,
40937     PRPC_MESSAGE pRpcMessage,
40938     DWORD* pdwStubPhase);
40939 
40940 #endif  /* __IAppVisibility_INTERFACE_DEFINED__ */
40941 
40942 
40943 #if 0
40944 typedef WCHAR *PZZWSTR;
40945 #endif
40946 
40947 typedef enum PACKAGE_EXECUTION_STATE {
40948     PES_UNKNOWN = 0,
40949     PES_RUNNING = 1,
40950     PES_SUSPENDING = 2,
40951     PES_SUSPENDED = 3,
40952     PES_TERMINATED = 4
40953 } PACKAGE_EXECUTION_STATE;
40954 
40955 /*****************************************************************************
40956  * IPackageExecutionStateChangeNotification interface
40957  */
40958 #ifndef __IPackageExecutionStateChangeNotification_INTERFACE_DEFINED__
40959 #define __IPackageExecutionStateChangeNotification_INTERFACE_DEFINED__
40960 
40961 DEFINE_GUID(IID_IPackageExecutionStateChangeNotification, 0x1bb12a62, 0x2ad8, 0x432b, 0x8c,0xcf, 0x0c,0x2c,0x52,0xaf,0xcd,0x5b);
40962 #if defined(__cplusplus) && !defined(CINTERFACE)
40963 MIDL_INTERFACE("1bb12a62-2ad8-432b-8ccf-0c2c52afcd5b")
40964 IPackageExecutionStateChangeNotification : public IUnknown
40965 {
40966     virtual HRESULT STDMETHODCALLTYPE OnStateChanged(
40967         LPCWSTR pszPackageFullName,
40968         PACKAGE_EXECUTION_STATE pesNewState) = 0;
40969 
40970 };
40971 #ifdef __CRT_UUID_DECL
40972 __CRT_UUID_DECL(IPackageExecutionStateChangeNotification, 0x1bb12a62, 0x2ad8, 0x432b, 0x8c,0xcf, 0x0c,0x2c,0x52,0xaf,0xcd,0x5b)
40973 #endif
40974 #else
40975 typedef struct IPackageExecutionStateChangeNotificationVtbl {
40976     BEGIN_INTERFACE
40977 
40978     /*** IUnknown methods ***/
40979     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
40980         IPackageExecutionStateChangeNotification* This,
40981         REFIID riid,
40982         void **ppvObject);
40983 
40984     ULONG (STDMETHODCALLTYPE *AddRef)(
40985         IPackageExecutionStateChangeNotification* This);
40986 
40987     ULONG (STDMETHODCALLTYPE *Release)(
40988         IPackageExecutionStateChangeNotification* This);
40989 
40990     /*** IPackageExecutionStateChangeNotification methods ***/
40991     HRESULT (STDMETHODCALLTYPE *OnStateChanged)(
40992         IPackageExecutionStateChangeNotification* This,
40993         LPCWSTR pszPackageFullName,
40994         PACKAGE_EXECUTION_STATE pesNewState);
40995 
40996     END_INTERFACE
40997 } IPackageExecutionStateChangeNotificationVtbl;
40998 interface IPackageExecutionStateChangeNotification {
40999     CONST_VTBL IPackageExecutionStateChangeNotificationVtbl* lpVtbl;
41000 };
41001 
41002 #ifdef COBJMACROS
41003 #ifndef WIDL_C_INLINE_WRAPPERS
41004 /*** IUnknown methods ***/
41005 #define IPackageExecutionStateChangeNotification_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
41006 #define IPackageExecutionStateChangeNotification_AddRef(This) (This)->lpVtbl->AddRef(This)
41007 #define IPackageExecutionStateChangeNotification_Release(This) (This)->lpVtbl->Release(This)
41008 /*** IPackageExecutionStateChangeNotification methods ***/
41009 #define IPackageExecutionStateChangeNotification_OnStateChanged(This,pszPackageFullName,pesNewState) (This)->lpVtbl->OnStateChanged(This,pszPackageFullName,pesNewState)
41010 #else
41011 /*** IUnknown methods ***/
41012 static FORCEINLINE HRESULT IPackageExecutionStateChangeNotification_QueryInterface(IPackageExecutionStateChangeNotification* This,REFIID riid,void **ppvObject) {
41013     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
41014 }
41015 static FORCEINLINE ULONG IPackageExecutionStateChangeNotification_AddRef(IPackageExecutionStateChangeNotification* This) {
41016     return This->lpVtbl->AddRef(This);
41017 }
41018 static FORCEINLINE ULONG IPackageExecutionStateChangeNotification_Release(IPackageExecutionStateChangeNotification* This) {
41019     return This->lpVtbl->Release(This);
41020 }
41021 /*** IPackageExecutionStateChangeNotification methods ***/
41022 static FORCEINLINE HRESULT IPackageExecutionStateChangeNotification_OnStateChanged(IPackageExecutionStateChangeNotification* This,LPCWSTR pszPackageFullName,PACKAGE_EXECUTION_STATE pesNewState) {
41023     return This->lpVtbl->OnStateChanged(This,pszPackageFullName,pesNewState);
41024 }
41025 #endif
41026 #endif
41027 
41028 #endif
41029 
41030 HRESULT STDMETHODCALLTYPE IPackageExecutionStateChangeNotification_OnStateChanged_Proxy(
41031     IPackageExecutionStateChangeNotification* This,
41032     LPCWSTR pszPackageFullName,
41033     PACKAGE_EXECUTION_STATE pesNewState);
41034 void __RPC_STUB IPackageExecutionStateChangeNotification_OnStateChanged_Stub(
41035     IRpcStubBuffer* This,
41036     IRpcChannelBuffer* pRpcChannelBuffer,
41037     PRPC_MESSAGE pRpcMessage,
41038     DWORD* pdwStubPhase);
41039 
41040 #endif  /* __IPackageExecutionStateChangeNotification_INTERFACE_DEFINED__ */
41041 
41042 
41043 /*****************************************************************************
41044  * IPackageDebugSettings interface
41045  */
41046 #ifndef __IPackageDebugSettings_INTERFACE_DEFINED__
41047 #define __IPackageDebugSettings_INTERFACE_DEFINED__
41048 
41049 DEFINE_GUID(IID_IPackageDebugSettings, 0xf27c3930, 0x8029, 0x4ad1, 0x94,0xe3, 0x3d,0xba,0x41,0x78,0x10,0xc1);
41050 #if defined(__cplusplus) && !defined(CINTERFACE)
41051 MIDL_INTERFACE("f27c3930-8029-4ad1-94e3-3dba417810c1")
41052 IPackageDebugSettings : public IUnknown
41053 {
41054     virtual HRESULT STDMETHODCALLTYPE EnableDebugging(
41055         LPCWSTR packageFullName,
41056         LPCWSTR debuggerCommandLine,
41057         PZZWSTR environment) = 0;
41058 
41059     virtual HRESULT STDMETHODCALLTYPE DisableDebugging(
41060         LPCWSTR packageFullName) = 0;
41061 
41062     virtual HRESULT STDMETHODCALLTYPE Suspend(
41063         LPCWSTR packageFullName) = 0;
41064 
41065     virtual HRESULT STDMETHODCALLTYPE Resume(
41066         LPCWSTR packageFullName) = 0;
41067 
41068     virtual HRESULT STDMETHODCALLTYPE TerminateAllProcesses(
41069         LPCWSTR packageFullName) = 0;
41070 
41071     virtual HRESULT STDMETHODCALLTYPE SetTargetSessionId(
41072         ULONG sessionId) = 0;
41073 
41074     virtual HRESULT STDMETHODCALLTYPE EnumerateBackgroundTasks(
41075         LPCWSTR packageFullName,
41076         ULONG *taskCount,
41077         LPCGUID *taskIds,
41078         LPCWSTR **taskNames) = 0;
41079 
41080     virtual HRESULT STDMETHODCALLTYPE ActivateBackgroundTask(
41081         LPCGUID taskId) = 0;
41082 
41083     virtual HRESULT STDMETHODCALLTYPE StartServicing(
41084         LPCWSTR packageFullName) = 0;
41085 
41086     virtual HRESULT STDMETHODCALLTYPE StopServicing(
41087         LPCWSTR packageFullName) = 0;
41088 
41089     virtual HRESULT STDMETHODCALLTYPE StartSessionRedirection(
41090         LPCWSTR packageFullName,
41091         ULONG sessionId) = 0;
41092 
41093     virtual HRESULT STDMETHODCALLTYPE StopSessionRedirection(
41094         LPCWSTR packageFullName) = 0;
41095 
41096     virtual HRESULT STDMETHODCALLTYPE GetPackageExecutionState(
41097         LPCWSTR packageFullName,
41098         PACKAGE_EXECUTION_STATE *packageExecutionState) = 0;
41099 
41100     virtual HRESULT STDMETHODCALLTYPE RegisterForPackageStateChanges(
41101         LPCWSTR packageFullName,
41102         IPackageExecutionStateChangeNotification *pPackageExecutionStateChangeNotification,
41103         DWORD *pdwCookie) = 0;
41104 
41105     virtual HRESULT STDMETHODCALLTYPE UnregisterForPackageStateChanges(
41106         DWORD dwCookie) = 0;
41107 
41108 };
41109 #ifdef __CRT_UUID_DECL
41110 __CRT_UUID_DECL(IPackageDebugSettings, 0xf27c3930, 0x8029, 0x4ad1, 0x94,0xe3, 0x3d,0xba,0x41,0x78,0x10,0xc1)
41111 #endif
41112 #else
41113 typedef struct IPackageDebugSettingsVtbl {
41114     BEGIN_INTERFACE
41115 
41116     /*** IUnknown methods ***/
41117     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
41118         IPackageDebugSettings* This,
41119         REFIID riid,
41120         void **ppvObject);
41121 
41122     ULONG (STDMETHODCALLTYPE *AddRef)(
41123         IPackageDebugSettings* This);
41124 
41125     ULONG (STDMETHODCALLTYPE *Release)(
41126         IPackageDebugSettings* This);
41127 
41128     /*** IPackageDebugSettings methods ***/
41129     HRESULT (STDMETHODCALLTYPE *EnableDebugging)(
41130         IPackageDebugSettings* This,
41131         LPCWSTR packageFullName,
41132         LPCWSTR debuggerCommandLine,
41133         PZZWSTR environment);
41134 
41135     HRESULT (STDMETHODCALLTYPE *DisableDebugging)(
41136         IPackageDebugSettings* This,
41137         LPCWSTR packageFullName);
41138 
41139     HRESULT (STDMETHODCALLTYPE *Suspend)(
41140         IPackageDebugSettings* This,
41141         LPCWSTR packageFullName);
41142 
41143     HRESULT (STDMETHODCALLTYPE *Resume)(
41144         IPackageDebugSettings* This,
41145         LPCWSTR packageFullName);
41146 
41147     HRESULT (STDMETHODCALLTYPE *TerminateAllProcesses)(
41148         IPackageDebugSettings* This,
41149         LPCWSTR packageFullName);
41150 
41151     HRESULT (STDMETHODCALLTYPE *SetTargetSessionId)(
41152         IPackageDebugSettings* This,
41153         ULONG sessionId);
41154 
41155     HRESULT (STDMETHODCALLTYPE *EnumerateBackgroundTasks)(
41156         IPackageDebugSettings* This,
41157         LPCWSTR packageFullName,
41158         ULONG *taskCount,
41159         LPCGUID *taskIds,
41160         LPCWSTR **taskNames);
41161 
41162     HRESULT (STDMETHODCALLTYPE *ActivateBackgroundTask)(
41163         IPackageDebugSettings* This,
41164         LPCGUID taskId);
41165 
41166     HRESULT (STDMETHODCALLTYPE *StartServicing)(
41167         IPackageDebugSettings* This,
41168         LPCWSTR packageFullName);
41169 
41170     HRESULT (STDMETHODCALLTYPE *StopServicing)(
41171         IPackageDebugSettings* This,
41172         LPCWSTR packageFullName);
41173 
41174     HRESULT (STDMETHODCALLTYPE *StartSessionRedirection)(
41175         IPackageDebugSettings* This,
41176         LPCWSTR packageFullName,
41177         ULONG sessionId);
41178 
41179     HRESULT (STDMETHODCALLTYPE *StopSessionRedirection)(
41180         IPackageDebugSettings* This,
41181         LPCWSTR packageFullName);
41182 
41183     HRESULT (STDMETHODCALLTYPE *GetPackageExecutionState)(
41184         IPackageDebugSettings* This,
41185         LPCWSTR packageFullName,
41186         PACKAGE_EXECUTION_STATE *packageExecutionState);
41187 
41188     HRESULT (STDMETHODCALLTYPE *RegisterForPackageStateChanges)(
41189         IPackageDebugSettings* This,
41190         LPCWSTR packageFullName,
41191         IPackageExecutionStateChangeNotification *pPackageExecutionStateChangeNotification,
41192         DWORD *pdwCookie);
41193 
41194     HRESULT (STDMETHODCALLTYPE *UnregisterForPackageStateChanges)(
41195         IPackageDebugSettings* This,
41196         DWORD dwCookie);
41197 
41198     END_INTERFACE
41199 } IPackageDebugSettingsVtbl;
41200 interface IPackageDebugSettings {
41201     CONST_VTBL IPackageDebugSettingsVtbl* lpVtbl;
41202 };
41203 
41204 #ifdef COBJMACROS
41205 #ifndef WIDL_C_INLINE_WRAPPERS
41206 /*** IUnknown methods ***/
41207 #define IPackageDebugSettings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
41208 #define IPackageDebugSettings_AddRef(This) (This)->lpVtbl->AddRef(This)
41209 #define IPackageDebugSettings_Release(This) (This)->lpVtbl->Release(This)
41210 /*** IPackageDebugSettings methods ***/
41211 #define IPackageDebugSettings_EnableDebugging(This,packageFullName,debuggerCommandLine,environment) (This)->lpVtbl->EnableDebugging(This,packageFullName,debuggerCommandLine,environment)
41212 #define IPackageDebugSettings_DisableDebugging(This,packageFullName) (This)->lpVtbl->DisableDebugging(This,packageFullName)
41213 #define IPackageDebugSettings_Suspend(This,packageFullName) (This)->lpVtbl->Suspend(This,packageFullName)
41214 #define IPackageDebugSettings_Resume(This,packageFullName) (This)->lpVtbl->Resume(This,packageFullName)
41215 #define IPackageDebugSettings_TerminateAllProcesses(This,packageFullName) (This)->lpVtbl->TerminateAllProcesses(This,packageFullName)
41216 #define IPackageDebugSettings_SetTargetSessionId(This,sessionId) (This)->lpVtbl->SetTargetSessionId(This,sessionId)
41217 #define IPackageDebugSettings_EnumerateBackgroundTasks(This,packageFullName,taskCount,taskIds,taskNames) (This)->lpVtbl->EnumerateBackgroundTasks(This,packageFullName,taskCount,taskIds,taskNames)
41218 #define IPackageDebugSettings_ActivateBackgroundTask(This,taskId) (This)->lpVtbl->ActivateBackgroundTask(This,taskId)
41219 #define IPackageDebugSettings_StartServicing(This,packageFullName) (This)->lpVtbl->StartServicing(This,packageFullName)
41220 #define IPackageDebugSettings_StopServicing(This,packageFullName) (This)->lpVtbl->StopServicing(This,packageFullName)
41221 #define IPackageDebugSettings_StartSessionRedirection(This,packageFullName,sessionId) (This)->lpVtbl->StartSessionRedirection(This,packageFullName,sessionId)
41222 #define IPackageDebugSettings_StopSessionRedirection(This,packageFullName) (This)->lpVtbl->StopSessionRedirection(This,packageFullName)
41223 #define IPackageDebugSettings_GetPackageExecutionState(This,packageFullName,packageExecutionState) (This)->lpVtbl->GetPackageExecutionState(This,packageFullName,packageExecutionState)
41224 #define IPackageDebugSettings_RegisterForPackageStateChanges(This,packageFullName,pPackageExecutionStateChangeNotification,pdwCookie) (This)->lpVtbl->RegisterForPackageStateChanges(This,packageFullName,pPackageExecutionStateChangeNotification,pdwCookie)
41225 #define IPackageDebugSettings_UnregisterForPackageStateChanges(This,dwCookie) (This)->lpVtbl->UnregisterForPackageStateChanges(This,dwCookie)
41226 #else
41227 /*** IUnknown methods ***/
41228 static FORCEINLINE HRESULT IPackageDebugSettings_QueryInterface(IPackageDebugSettings* This,REFIID riid,void **ppvObject) {
41229     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
41230 }
41231 static FORCEINLINE ULONG IPackageDebugSettings_AddRef(IPackageDebugSettings* This) {
41232     return This->lpVtbl->AddRef(This);
41233 }
41234 static FORCEINLINE ULONG IPackageDebugSettings_Release(IPackageDebugSettings* This) {
41235     return This->lpVtbl->Release(This);
41236 }
41237 /*** IPackageDebugSettings methods ***/
41238 static FORCEINLINE HRESULT IPackageDebugSettings_EnableDebugging(IPackageDebugSettings* This,LPCWSTR packageFullName,LPCWSTR debuggerCommandLine,PZZWSTR environment) {
41239     return This->lpVtbl->EnableDebugging(This,packageFullName,debuggerCommandLine,environment);
41240 }
41241 static FORCEINLINE HRESULT IPackageDebugSettings_DisableDebugging(IPackageDebugSettings* This,LPCWSTR packageFullName) {
41242     return This->lpVtbl->DisableDebugging(This,packageFullName);
41243 }
41244 static FORCEINLINE HRESULT IPackageDebugSettings_Suspend(IPackageDebugSettings* This,LPCWSTR packageFullName) {
41245     return This->lpVtbl->Suspend(This,packageFullName);
41246 }
41247 static FORCEINLINE HRESULT IPackageDebugSettings_Resume(IPackageDebugSettings* This,LPCWSTR packageFullName) {
41248     return This->lpVtbl->Resume(This,packageFullName);
41249 }
41250 static FORCEINLINE HRESULT IPackageDebugSettings_TerminateAllProcesses(IPackageDebugSettings* This,LPCWSTR packageFullName) {
41251     return This->lpVtbl->TerminateAllProcesses(This,packageFullName);
41252 }
41253 static FORCEINLINE HRESULT IPackageDebugSettings_SetTargetSessionId(IPackageDebugSettings* This,ULONG sessionId) {
41254     return This->lpVtbl->SetTargetSessionId(This,sessionId);
41255 }
41256 static FORCEINLINE HRESULT IPackageDebugSettings_EnumerateBackgroundTasks(IPackageDebugSettings* This,LPCWSTR packageFullName,ULONG *taskCount,LPCGUID *taskIds,LPCWSTR **taskNames) {
41257     return This->lpVtbl->EnumerateBackgroundTasks(This,packageFullName,taskCount,taskIds,taskNames);
41258 }
41259 static FORCEINLINE HRESULT IPackageDebugSettings_ActivateBackgroundTask(IPackageDebugSettings* This,LPCGUID taskId) {
41260     return This->lpVtbl->ActivateBackgroundTask(This,taskId);
41261 }
41262 static FORCEINLINE HRESULT IPackageDebugSettings_StartServicing(IPackageDebugSettings* This,LPCWSTR packageFullName) {
41263     return This->lpVtbl->StartServicing(This,packageFullName);
41264 }
41265 static FORCEINLINE HRESULT IPackageDebugSettings_StopServicing(IPackageDebugSettings* This,LPCWSTR packageFullName) {
41266     return This->lpVtbl->StopServicing(This,packageFullName);
41267 }
41268 static FORCEINLINE HRESULT IPackageDebugSettings_StartSessionRedirection(IPackageDebugSettings* This,LPCWSTR packageFullName,ULONG sessionId) {
41269     return This->lpVtbl->StartSessionRedirection(This,packageFullName,sessionId);
41270 }
41271 static FORCEINLINE HRESULT IPackageDebugSettings_StopSessionRedirection(IPackageDebugSettings* This,LPCWSTR packageFullName) {
41272     return This->lpVtbl->StopSessionRedirection(This,packageFullName);
41273 }
41274 static FORCEINLINE HRESULT IPackageDebugSettings_GetPackageExecutionState(IPackageDebugSettings* This,LPCWSTR packageFullName,PACKAGE_EXECUTION_STATE *packageExecutionState) {
41275     return This->lpVtbl->GetPackageExecutionState(This,packageFullName,packageExecutionState);
41276 }
41277 static FORCEINLINE HRESULT IPackageDebugSettings_RegisterForPackageStateChanges(IPackageDebugSettings* This,LPCWSTR packageFullName,IPackageExecutionStateChangeNotification *pPackageExecutionStateChangeNotification,DWORD *pdwCookie) {
41278     return This->lpVtbl->RegisterForPackageStateChanges(This,packageFullName,pPackageExecutionStateChangeNotification,pdwCookie);
41279 }
41280 static FORCEINLINE HRESULT IPackageDebugSettings_UnregisterForPackageStateChanges(IPackageDebugSettings* This,DWORD dwCookie) {
41281     return This->lpVtbl->UnregisterForPackageStateChanges(This,dwCookie);
41282 }
41283 #endif
41284 #endif
41285 
41286 #endif
41287 
41288 HRESULT STDMETHODCALLTYPE IPackageDebugSettings_EnableDebugging_Proxy(
41289     IPackageDebugSettings* This,
41290     LPCWSTR packageFullName,
41291     LPCWSTR debuggerCommandLine,
41292     PZZWSTR environment);
41293 void __RPC_STUB IPackageDebugSettings_EnableDebugging_Stub(
41294     IRpcStubBuffer* This,
41295     IRpcChannelBuffer* pRpcChannelBuffer,
41296     PRPC_MESSAGE pRpcMessage,
41297     DWORD* pdwStubPhase);
41298 HRESULT STDMETHODCALLTYPE IPackageDebugSettings_DisableDebugging_Proxy(
41299     IPackageDebugSettings* This,
41300     LPCWSTR packageFullName);
41301 void __RPC_STUB IPackageDebugSettings_DisableDebugging_Stub(
41302     IRpcStubBuffer* This,
41303     IRpcChannelBuffer* pRpcChannelBuffer,
41304     PRPC_MESSAGE pRpcMessage,
41305     DWORD* pdwStubPhase);
41306 HRESULT STDMETHODCALLTYPE IPackageDebugSettings_Suspend_Proxy(
41307     IPackageDebugSettings* This,
41308     LPCWSTR packageFullName);
41309 void __RPC_STUB IPackageDebugSettings_Suspend_Stub(
41310     IRpcStubBuffer* This,
41311     IRpcChannelBuffer* pRpcChannelBuffer,
41312     PRPC_MESSAGE pRpcMessage,
41313     DWORD* pdwStubPhase);
41314 HRESULT STDMETHODCALLTYPE IPackageDebugSettings_Resume_Proxy(
41315     IPackageDebugSettings* This,
41316     LPCWSTR packageFullName);
41317 void __RPC_STUB IPackageDebugSettings_Resume_Stub(
41318     IRpcStubBuffer* This,
41319     IRpcChannelBuffer* pRpcChannelBuffer,
41320     PRPC_MESSAGE pRpcMessage,
41321     DWORD* pdwStubPhase);
41322 HRESULT STDMETHODCALLTYPE IPackageDebugSettings_TerminateAllProcesses_Proxy(
41323     IPackageDebugSettings* This,
41324     LPCWSTR packageFullName);
41325 void __RPC_STUB IPackageDebugSettings_TerminateAllProcesses_Stub(
41326     IRpcStubBuffer* This,
41327     IRpcChannelBuffer* pRpcChannelBuffer,
41328     PRPC_MESSAGE pRpcMessage,
41329     DWORD* pdwStubPhase);
41330 HRESULT STDMETHODCALLTYPE IPackageDebugSettings_SetTargetSessionId_Proxy(
41331     IPackageDebugSettings* This,
41332     ULONG sessionId);
41333 void __RPC_STUB IPackageDebugSettings_SetTargetSessionId_Stub(
41334     IRpcStubBuffer* This,
41335     IRpcChannelBuffer* pRpcChannelBuffer,
41336     PRPC_MESSAGE pRpcMessage,
41337     DWORD* pdwStubPhase);
41338 HRESULT STDMETHODCALLTYPE IPackageDebugSettings_EnumerateBackgroundTasks_Proxy(
41339     IPackageDebugSettings* This,
41340     LPCWSTR packageFullName,
41341     ULONG *taskCount,
41342     LPCGUID *taskIds,
41343     LPCWSTR **taskNames);
41344 void __RPC_STUB IPackageDebugSettings_EnumerateBackgroundTasks_Stub(
41345     IRpcStubBuffer* This,
41346     IRpcChannelBuffer* pRpcChannelBuffer,
41347     PRPC_MESSAGE pRpcMessage,
41348     DWORD* pdwStubPhase);
41349 HRESULT STDMETHODCALLTYPE IPackageDebugSettings_ActivateBackgroundTask_Proxy(
41350     IPackageDebugSettings* This,
41351     LPCGUID taskId);
41352 void __RPC_STUB IPackageDebugSettings_ActivateBackgroundTask_Stub(
41353     IRpcStubBuffer* This,
41354     IRpcChannelBuffer* pRpcChannelBuffer,
41355     PRPC_MESSAGE pRpcMessage,
41356     DWORD* pdwStubPhase);
41357 HRESULT STDMETHODCALLTYPE IPackageDebugSettings_StartServicing_Proxy(
41358     IPackageDebugSettings* This,
41359     LPCWSTR packageFullName);
41360 void __RPC_STUB IPackageDebugSettings_StartServicing_Stub(
41361     IRpcStubBuffer* This,
41362     IRpcChannelBuffer* pRpcChannelBuffer,
41363     PRPC_MESSAGE pRpcMessage,
41364     DWORD* pdwStubPhase);
41365 HRESULT STDMETHODCALLTYPE IPackageDebugSettings_StopServicing_Proxy(
41366     IPackageDebugSettings* This,
41367     LPCWSTR packageFullName);
41368 void __RPC_STUB IPackageDebugSettings_StopServicing_Stub(
41369     IRpcStubBuffer* This,
41370     IRpcChannelBuffer* pRpcChannelBuffer,
41371     PRPC_MESSAGE pRpcMessage,
41372     DWORD* pdwStubPhase);
41373 HRESULT STDMETHODCALLTYPE IPackageDebugSettings_StartSessionRedirection_Proxy(
41374     IPackageDebugSettings* This,
41375     LPCWSTR packageFullName,
41376     ULONG sessionId);
41377 void __RPC_STUB IPackageDebugSettings_StartSessionRedirection_Stub(
41378     IRpcStubBuffer* This,
41379     IRpcChannelBuffer* pRpcChannelBuffer,
41380     PRPC_MESSAGE pRpcMessage,
41381     DWORD* pdwStubPhase);
41382 HRESULT STDMETHODCALLTYPE IPackageDebugSettings_StopSessionRedirection_Proxy(
41383     IPackageDebugSettings* This,
41384     LPCWSTR packageFullName);
41385 void __RPC_STUB IPackageDebugSettings_StopSessionRedirection_Stub(
41386     IRpcStubBuffer* This,
41387     IRpcChannelBuffer* pRpcChannelBuffer,
41388     PRPC_MESSAGE pRpcMessage,
41389     DWORD* pdwStubPhase);
41390 HRESULT STDMETHODCALLTYPE IPackageDebugSettings_GetPackageExecutionState_Proxy(
41391     IPackageDebugSettings* This,
41392     LPCWSTR packageFullName,
41393     PACKAGE_EXECUTION_STATE *packageExecutionState);
41394 void __RPC_STUB IPackageDebugSettings_GetPackageExecutionState_Stub(
41395     IRpcStubBuffer* This,
41396     IRpcChannelBuffer* pRpcChannelBuffer,
41397     PRPC_MESSAGE pRpcMessage,
41398     DWORD* pdwStubPhase);
41399 HRESULT STDMETHODCALLTYPE IPackageDebugSettings_RegisterForPackageStateChanges_Proxy(
41400     IPackageDebugSettings* This,
41401     LPCWSTR packageFullName,
41402     IPackageExecutionStateChangeNotification *pPackageExecutionStateChangeNotification,
41403     DWORD *pdwCookie);
41404 void __RPC_STUB IPackageDebugSettings_RegisterForPackageStateChanges_Stub(
41405     IRpcStubBuffer* This,
41406     IRpcChannelBuffer* pRpcChannelBuffer,
41407     PRPC_MESSAGE pRpcMessage,
41408     DWORD* pdwStubPhase);
41409 HRESULT STDMETHODCALLTYPE IPackageDebugSettings_UnregisterForPackageStateChanges_Proxy(
41410     IPackageDebugSettings* This,
41411     DWORD dwCookie);
41412 void __RPC_STUB IPackageDebugSettings_UnregisterForPackageStateChanges_Stub(
41413     IRpcStubBuffer* This,
41414     IRpcChannelBuffer* pRpcChannelBuffer,
41415     PRPC_MESSAGE pRpcMessage,
41416     DWORD* pdwStubPhase);
41417 
41418 #endif  /* __IPackageDebugSettings_INTERFACE_DEFINED__ */
41419 
41420 
41421 typedef enum AHE_TYPE {
41422     AHE_DESKTOP = 0,
41423     AHE_IMMERSIVE = 1
41424 } AHE_TYPE;
41425 
41426 /*****************************************************************************
41427  * IExecuteCommandApplicationHostEnvironment interface
41428  */
41429 #ifndef __IExecuteCommandApplicationHostEnvironment_INTERFACE_DEFINED__
41430 #define __IExecuteCommandApplicationHostEnvironment_INTERFACE_DEFINED__
41431 
41432 DEFINE_GUID(IID_IExecuteCommandApplicationHostEnvironment, 0x18b21aa9, 0xe184, 0x4ff0, 0x9f,0x5e, 0xf8,0x82,0xd0,0x37,0x71,0xb3);
41433 #if defined(__cplusplus) && !defined(CINTERFACE)
41434 MIDL_INTERFACE("18b21aa9-e184-4ff0-9f5e-f882d03771b3")
41435 IExecuteCommandApplicationHostEnvironment : public IUnknown
41436 {
41437     virtual HRESULT STDMETHODCALLTYPE GetValue(
41438         AHE_TYPE *pahe) = 0;
41439 
41440 };
41441 #ifdef __CRT_UUID_DECL
41442 __CRT_UUID_DECL(IExecuteCommandApplicationHostEnvironment, 0x18b21aa9, 0xe184, 0x4ff0, 0x9f,0x5e, 0xf8,0x82,0xd0,0x37,0x71,0xb3)
41443 #endif
41444 #else
41445 typedef struct IExecuteCommandApplicationHostEnvironmentVtbl {
41446     BEGIN_INTERFACE
41447 
41448     /*** IUnknown methods ***/
41449     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
41450         IExecuteCommandApplicationHostEnvironment* This,
41451         REFIID riid,
41452         void **ppvObject);
41453 
41454     ULONG (STDMETHODCALLTYPE *AddRef)(
41455         IExecuteCommandApplicationHostEnvironment* This);
41456 
41457     ULONG (STDMETHODCALLTYPE *Release)(
41458         IExecuteCommandApplicationHostEnvironment* This);
41459 
41460     /*** IExecuteCommandApplicationHostEnvironment methods ***/
41461     HRESULT (STDMETHODCALLTYPE *GetValue)(
41462         IExecuteCommandApplicationHostEnvironment* This,
41463         AHE_TYPE *pahe);
41464 
41465     END_INTERFACE
41466 } IExecuteCommandApplicationHostEnvironmentVtbl;
41467 interface IExecuteCommandApplicationHostEnvironment {
41468     CONST_VTBL IExecuteCommandApplicationHostEnvironmentVtbl* lpVtbl;
41469 };
41470 
41471 #ifdef COBJMACROS
41472 #ifndef WIDL_C_INLINE_WRAPPERS
41473 /*** IUnknown methods ***/
41474 #define IExecuteCommandApplicationHostEnvironment_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
41475 #define IExecuteCommandApplicationHostEnvironment_AddRef(This) (This)->lpVtbl->AddRef(This)
41476 #define IExecuteCommandApplicationHostEnvironment_Release(This) (This)->lpVtbl->Release(This)
41477 /*** IExecuteCommandApplicationHostEnvironment methods ***/
41478 #define IExecuteCommandApplicationHostEnvironment_GetValue(This,pahe) (This)->lpVtbl->GetValue(This,pahe)
41479 #else
41480 /*** IUnknown methods ***/
41481 static FORCEINLINE HRESULT IExecuteCommandApplicationHostEnvironment_QueryInterface(IExecuteCommandApplicationHostEnvironment* This,REFIID riid,void **ppvObject) {
41482     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
41483 }
41484 static FORCEINLINE ULONG IExecuteCommandApplicationHostEnvironment_AddRef(IExecuteCommandApplicationHostEnvironment* This) {
41485     return This->lpVtbl->AddRef(This);
41486 }
41487 static FORCEINLINE ULONG IExecuteCommandApplicationHostEnvironment_Release(IExecuteCommandApplicationHostEnvironment* This) {
41488     return This->lpVtbl->Release(This);
41489 }
41490 /*** IExecuteCommandApplicationHostEnvironment methods ***/
41491 static FORCEINLINE HRESULT IExecuteCommandApplicationHostEnvironment_GetValue(IExecuteCommandApplicationHostEnvironment* This,AHE_TYPE *pahe) {
41492     return This->lpVtbl->GetValue(This,pahe);
41493 }
41494 #endif
41495 #endif
41496 
41497 #endif
41498 
41499 HRESULT STDMETHODCALLTYPE IExecuteCommandApplicationHostEnvironment_GetValue_Proxy(
41500     IExecuteCommandApplicationHostEnvironment* This,
41501     AHE_TYPE *pahe);
41502 void __RPC_STUB IExecuteCommandApplicationHostEnvironment_GetValue_Stub(
41503     IRpcStubBuffer* This,
41504     IRpcChannelBuffer* pRpcChannelBuffer,
41505     PRPC_MESSAGE pRpcMessage,
41506     DWORD* pdwStubPhase);
41507 
41508 #endif  /* __IExecuteCommandApplicationHostEnvironment_INTERFACE_DEFINED__ */
41509 
41510 
41511 typedef enum EC_HOST_UI_MODE {
41512     ECHUIM_DESKTOP = 0,
41513     ECHUIM_IMMERSIVE = 1,
41514     ECHUIM_SYSTEM_LAUNCHER = 2
41515 } EC_HOST_UI_MODE;
41516 
41517 /*****************************************************************************
41518  * IExecuteCommandHost interface
41519  */
41520 #ifndef __IExecuteCommandHost_INTERFACE_DEFINED__
41521 #define __IExecuteCommandHost_INTERFACE_DEFINED__
41522 
41523 DEFINE_GUID(IID_IExecuteCommandHost, 0x4b6832a2, 0x5f04, 0x4c9d, 0xb8,0x9d, 0x72,0x7a,0x15,0xd1,0x03,0xe7);
41524 #if defined(__cplusplus) && !defined(CINTERFACE)
41525 MIDL_INTERFACE("4b6832a2-5f04-4c9d-b89d-727a15d103e7")
41526 IExecuteCommandHost : public IUnknown
41527 {
41528     virtual HRESULT STDMETHODCALLTYPE GetUIMode(
41529         EC_HOST_UI_MODE *pUIMode) = 0;
41530 
41531 };
41532 #ifdef __CRT_UUID_DECL
41533 __CRT_UUID_DECL(IExecuteCommandHost, 0x4b6832a2, 0x5f04, 0x4c9d, 0xb8,0x9d, 0x72,0x7a,0x15,0xd1,0x03,0xe7)
41534 #endif
41535 #else
41536 typedef struct IExecuteCommandHostVtbl {
41537     BEGIN_INTERFACE
41538 
41539     /*** IUnknown methods ***/
41540     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
41541         IExecuteCommandHost* This,
41542         REFIID riid,
41543         void **ppvObject);
41544 
41545     ULONG (STDMETHODCALLTYPE *AddRef)(
41546         IExecuteCommandHost* This);
41547 
41548     ULONG (STDMETHODCALLTYPE *Release)(
41549         IExecuteCommandHost* This);
41550 
41551     /*** IExecuteCommandHost methods ***/
41552     HRESULT (STDMETHODCALLTYPE *GetUIMode)(
41553         IExecuteCommandHost* This,
41554         EC_HOST_UI_MODE *pUIMode);
41555 
41556     END_INTERFACE
41557 } IExecuteCommandHostVtbl;
41558 interface IExecuteCommandHost {
41559     CONST_VTBL IExecuteCommandHostVtbl* lpVtbl;
41560 };
41561 
41562 #ifdef COBJMACROS
41563 #ifndef WIDL_C_INLINE_WRAPPERS
41564 /*** IUnknown methods ***/
41565 #define IExecuteCommandHost_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
41566 #define IExecuteCommandHost_AddRef(This) (This)->lpVtbl->AddRef(This)
41567 #define IExecuteCommandHost_Release(This) (This)->lpVtbl->Release(This)
41568 /*** IExecuteCommandHost methods ***/
41569 #define IExecuteCommandHost_GetUIMode(This,pUIMode) (This)->lpVtbl->GetUIMode(This,pUIMode)
41570 #else
41571 /*** IUnknown methods ***/
41572 static FORCEINLINE HRESULT IExecuteCommandHost_QueryInterface(IExecuteCommandHost* This,REFIID riid,void **ppvObject) {
41573     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
41574 }
41575 static FORCEINLINE ULONG IExecuteCommandHost_AddRef(IExecuteCommandHost* This) {
41576     return This->lpVtbl->AddRef(This);
41577 }
41578 static FORCEINLINE ULONG IExecuteCommandHost_Release(IExecuteCommandHost* This) {
41579     return This->lpVtbl->Release(This);
41580 }
41581 /*** IExecuteCommandHost methods ***/
41582 static FORCEINLINE HRESULT IExecuteCommandHost_GetUIMode(IExecuteCommandHost* This,EC_HOST_UI_MODE *pUIMode) {
41583     return This->lpVtbl->GetUIMode(This,pUIMode);
41584 }
41585 #endif
41586 #endif
41587 
41588 #endif
41589 
41590 HRESULT STDMETHODCALLTYPE IExecuteCommandHost_GetUIMode_Proxy(
41591     IExecuteCommandHost* This,
41592     EC_HOST_UI_MODE *pUIMode);
41593 void __RPC_STUB IExecuteCommandHost_GetUIMode_Stub(
41594     IRpcStubBuffer* This,
41595     IRpcChannelBuffer* pRpcChannelBuffer,
41596     PRPC_MESSAGE pRpcMessage,
41597     DWORD* pdwStubPhase);
41598 
41599 #endif  /* __IExecuteCommandHost_INTERFACE_DEFINED__ */
41600 
41601 
41602 #define SID_ExecuteCommandHost IID_IExecuteCommandHost
41603 
41604 typedef enum APPLICATION_VIEW_STATE {
41605     AVS_FULLSCREEN_LANDSCAPE = 0,
41606     AVS_FILLED = 1,
41607     AVS_SNAPPED = 2,
41608     AVS_FULLSCREEN_PORTRAIT = 3
41609 } APPLICATION_VIEW_STATE;
41610 
41611 typedef enum EDGE_GESTURE_KIND {
41612     EGK_TOUCH = 0,
41613     EGK_KEYBOARD = 1,
41614     EGK_MOUSE = 2
41615 } EDGE_GESTURE_KIND;
41616 
41617 /*****************************************************************************
41618  * IApplicationDesignModeSettings interface
41619  */
41620 #ifndef __IApplicationDesignModeSettings_INTERFACE_DEFINED__
41621 #define __IApplicationDesignModeSettings_INTERFACE_DEFINED__
41622 
41623 DEFINE_GUID(IID_IApplicationDesignModeSettings, 0x2a3dee9a, 0xe31d, 0x46d6, 0x85,0x08, 0xbc,0xc5,0x97,0xdb,0x35,0x57);
41624 #if defined(__cplusplus) && !defined(CINTERFACE)
41625 MIDL_INTERFACE("2a3dee9a-e31d-46d6-8508-bcc597db3557")
41626 IApplicationDesignModeSettings : public IUnknown
41627 {
41628     virtual HRESULT STDMETHODCALLTYPE SetNativeDisplaySize(
41629         SIZE sizeNativeDisplay) = 0;
41630 
41631     virtual HRESULT STDMETHODCALLTYPE SetScaleFactor(
41632         DEVICE_SCALE_FACTOR scaleFactor) = 0;
41633 
41634     virtual HRESULT STDMETHODCALLTYPE SetApplicationViewState(
41635         APPLICATION_VIEW_STATE viewState) = 0;
41636 
41637     virtual HRESULT STDMETHODCALLTYPE ComputeApplicationSize(
41638         SIZE *psizeApplication) = 0;
41639 
41640     virtual HRESULT STDMETHODCALLTYPE IsApplicationViewStateSupported(
41641         APPLICATION_VIEW_STATE viewState,
41642         SIZE sizeNativeDisplay,
41643         DEVICE_SCALE_FACTOR scaleFactor,
41644         WINBOOL *pfSupported) = 0;
41645 
41646     virtual HRESULT STDMETHODCALLTYPE TriggerEdgeGesture(
41647         EDGE_GESTURE_KIND edgeGestureKind) = 0;
41648 
41649 };
41650 #ifdef __CRT_UUID_DECL
41651 __CRT_UUID_DECL(IApplicationDesignModeSettings, 0x2a3dee9a, 0xe31d, 0x46d6, 0x85,0x08, 0xbc,0xc5,0x97,0xdb,0x35,0x57)
41652 #endif
41653 #else
41654 typedef struct IApplicationDesignModeSettingsVtbl {
41655     BEGIN_INTERFACE
41656 
41657     /*** IUnknown methods ***/
41658     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
41659         IApplicationDesignModeSettings* This,
41660         REFIID riid,
41661         void **ppvObject);
41662 
41663     ULONG (STDMETHODCALLTYPE *AddRef)(
41664         IApplicationDesignModeSettings* This);
41665 
41666     ULONG (STDMETHODCALLTYPE *Release)(
41667         IApplicationDesignModeSettings* This);
41668 
41669     /*** IApplicationDesignModeSettings methods ***/
41670     HRESULT (STDMETHODCALLTYPE *SetNativeDisplaySize)(
41671         IApplicationDesignModeSettings* This,
41672         SIZE sizeNativeDisplay);
41673 
41674     HRESULT (STDMETHODCALLTYPE *SetScaleFactor)(
41675         IApplicationDesignModeSettings* This,
41676         DEVICE_SCALE_FACTOR scaleFactor);
41677 
41678     HRESULT (STDMETHODCALLTYPE *SetApplicationViewState)(
41679         IApplicationDesignModeSettings* This,
41680         APPLICATION_VIEW_STATE viewState);
41681 
41682     HRESULT (STDMETHODCALLTYPE *ComputeApplicationSize)(
41683         IApplicationDesignModeSettings* This,
41684         SIZE *psizeApplication);
41685 
41686     HRESULT (STDMETHODCALLTYPE *IsApplicationViewStateSupported)(
41687         IApplicationDesignModeSettings* This,
41688         APPLICATION_VIEW_STATE viewState,
41689         SIZE sizeNativeDisplay,
41690         DEVICE_SCALE_FACTOR scaleFactor,
41691         WINBOOL *pfSupported);
41692 
41693     HRESULT (STDMETHODCALLTYPE *TriggerEdgeGesture)(
41694         IApplicationDesignModeSettings* This,
41695         EDGE_GESTURE_KIND edgeGestureKind);
41696 
41697     END_INTERFACE
41698 } IApplicationDesignModeSettingsVtbl;
41699 interface IApplicationDesignModeSettings {
41700     CONST_VTBL IApplicationDesignModeSettingsVtbl* lpVtbl;
41701 };
41702 
41703 #ifdef COBJMACROS
41704 #ifndef WIDL_C_INLINE_WRAPPERS
41705 /*** IUnknown methods ***/
41706 #define IApplicationDesignModeSettings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
41707 #define IApplicationDesignModeSettings_AddRef(This) (This)->lpVtbl->AddRef(This)
41708 #define IApplicationDesignModeSettings_Release(This) (This)->lpVtbl->Release(This)
41709 /*** IApplicationDesignModeSettings methods ***/
41710 #define IApplicationDesignModeSettings_SetNativeDisplaySize(This,sizeNativeDisplay) (This)->lpVtbl->SetNativeDisplaySize(This,sizeNativeDisplay)
41711 #define IApplicationDesignModeSettings_SetScaleFactor(This,scaleFactor) (This)->lpVtbl->SetScaleFactor(This,scaleFactor)
41712 #define IApplicationDesignModeSettings_SetApplicationViewState(This,viewState) (This)->lpVtbl->SetApplicationViewState(This,viewState)
41713 #define IApplicationDesignModeSettings_ComputeApplicationSize(This,psizeApplication) (This)->lpVtbl->ComputeApplicationSize(This,psizeApplication)
41714 #define IApplicationDesignModeSettings_IsApplicationViewStateSupported(This,viewState,sizeNativeDisplay,scaleFactor,pfSupported) (This)->lpVtbl->IsApplicationViewStateSupported(This,viewState,sizeNativeDisplay,scaleFactor,pfSupported)
41715 #define IApplicationDesignModeSettings_TriggerEdgeGesture(This,edgeGestureKind) (This)->lpVtbl->TriggerEdgeGesture(This,edgeGestureKind)
41716 #else
41717 /*** IUnknown methods ***/
41718 static FORCEINLINE HRESULT IApplicationDesignModeSettings_QueryInterface(IApplicationDesignModeSettings* This,REFIID riid,void **ppvObject) {
41719     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
41720 }
41721 static FORCEINLINE ULONG IApplicationDesignModeSettings_AddRef(IApplicationDesignModeSettings* This) {
41722     return This->lpVtbl->AddRef(This);
41723 }
41724 static FORCEINLINE ULONG IApplicationDesignModeSettings_Release(IApplicationDesignModeSettings* This) {
41725     return This->lpVtbl->Release(This);
41726 }
41727 /*** IApplicationDesignModeSettings methods ***/
41728 static FORCEINLINE HRESULT IApplicationDesignModeSettings_SetNativeDisplaySize(IApplicationDesignModeSettings* This,SIZE sizeNativeDisplay) {
41729     return This->lpVtbl->SetNativeDisplaySize(This,sizeNativeDisplay);
41730 }
41731 static FORCEINLINE HRESULT IApplicationDesignModeSettings_SetScaleFactor(IApplicationDesignModeSettings* This,DEVICE_SCALE_FACTOR scaleFactor) {
41732     return This->lpVtbl->SetScaleFactor(This,scaleFactor);
41733 }
41734 static FORCEINLINE HRESULT IApplicationDesignModeSettings_SetApplicationViewState(IApplicationDesignModeSettings* This,APPLICATION_VIEW_STATE viewState) {
41735     return This->lpVtbl->SetApplicationViewState(This,viewState);
41736 }
41737 static FORCEINLINE HRESULT IApplicationDesignModeSettings_ComputeApplicationSize(IApplicationDesignModeSettings* This,SIZE *psizeApplication) {
41738     return This->lpVtbl->ComputeApplicationSize(This,psizeApplication);
41739 }
41740 static FORCEINLINE HRESULT IApplicationDesignModeSettings_IsApplicationViewStateSupported(IApplicationDesignModeSettings* This,APPLICATION_VIEW_STATE viewState,SIZE sizeNativeDisplay,DEVICE_SCALE_FACTOR scaleFactor,WINBOOL *pfSupported) {
41741     return This->lpVtbl->IsApplicationViewStateSupported(This,viewState,sizeNativeDisplay,scaleFactor,pfSupported);
41742 }
41743 static FORCEINLINE HRESULT IApplicationDesignModeSettings_TriggerEdgeGesture(IApplicationDesignModeSettings* This,EDGE_GESTURE_KIND edgeGestureKind) {
41744     return This->lpVtbl->TriggerEdgeGesture(This,edgeGestureKind);
41745 }
41746 #endif
41747 #endif
41748 
41749 #endif
41750 
41751 HRESULT STDMETHODCALLTYPE IApplicationDesignModeSettings_SetNativeDisplaySize_Proxy(
41752     IApplicationDesignModeSettings* This,
41753     SIZE sizeNativeDisplay);
41754 void __RPC_STUB IApplicationDesignModeSettings_SetNativeDisplaySize_Stub(
41755     IRpcStubBuffer* This,
41756     IRpcChannelBuffer* pRpcChannelBuffer,
41757     PRPC_MESSAGE pRpcMessage,
41758     DWORD* pdwStubPhase);
41759 HRESULT STDMETHODCALLTYPE IApplicationDesignModeSettings_SetScaleFactor_Proxy(
41760     IApplicationDesignModeSettings* This,
41761     DEVICE_SCALE_FACTOR scaleFactor);
41762 void __RPC_STUB IApplicationDesignModeSettings_SetScaleFactor_Stub(
41763     IRpcStubBuffer* This,
41764     IRpcChannelBuffer* pRpcChannelBuffer,
41765     PRPC_MESSAGE pRpcMessage,
41766     DWORD* pdwStubPhase);
41767 HRESULT STDMETHODCALLTYPE IApplicationDesignModeSettings_SetApplicationViewState_Proxy(
41768     IApplicationDesignModeSettings* This,
41769     APPLICATION_VIEW_STATE viewState);
41770 void __RPC_STUB IApplicationDesignModeSettings_SetApplicationViewState_Stub(
41771     IRpcStubBuffer* This,
41772     IRpcChannelBuffer* pRpcChannelBuffer,
41773     PRPC_MESSAGE pRpcMessage,
41774     DWORD* pdwStubPhase);
41775 HRESULT STDMETHODCALLTYPE IApplicationDesignModeSettings_ComputeApplicationSize_Proxy(
41776     IApplicationDesignModeSettings* This,
41777     SIZE *psizeApplication);
41778 void __RPC_STUB IApplicationDesignModeSettings_ComputeApplicationSize_Stub(
41779     IRpcStubBuffer* This,
41780     IRpcChannelBuffer* pRpcChannelBuffer,
41781     PRPC_MESSAGE pRpcMessage,
41782     DWORD* pdwStubPhase);
41783 HRESULT STDMETHODCALLTYPE IApplicationDesignModeSettings_IsApplicationViewStateSupported_Proxy(
41784     IApplicationDesignModeSettings* This,
41785     APPLICATION_VIEW_STATE viewState,
41786     SIZE sizeNativeDisplay,
41787     DEVICE_SCALE_FACTOR scaleFactor,
41788     WINBOOL *pfSupported);
41789 void __RPC_STUB IApplicationDesignModeSettings_IsApplicationViewStateSupported_Stub(
41790     IRpcStubBuffer* This,
41791     IRpcChannelBuffer* pRpcChannelBuffer,
41792     PRPC_MESSAGE pRpcMessage,
41793     DWORD* pdwStubPhase);
41794 HRESULT STDMETHODCALLTYPE IApplicationDesignModeSettings_TriggerEdgeGesture_Proxy(
41795     IApplicationDesignModeSettings* This,
41796     EDGE_GESTURE_KIND edgeGestureKind);
41797 void __RPC_STUB IApplicationDesignModeSettings_TriggerEdgeGesture_Stub(
41798     IRpcStubBuffer* This,
41799     IRpcChannelBuffer* pRpcChannelBuffer,
41800     PRPC_MESSAGE pRpcMessage,
41801     DWORD* pdwStubPhase);
41802 
41803 #endif  /* __IApplicationDesignModeSettings_INTERFACE_DEFINED__ */
41804 
41805 
41806 /*****************************************************************************
41807  * IInitializeWithWindow interface
41808  */
41809 #ifndef __IInitializeWithWindow_INTERFACE_DEFINED__
41810 #define __IInitializeWithWindow_INTERFACE_DEFINED__
41811 
41812 DEFINE_GUID(IID_IInitializeWithWindow, 0x3e68d4bd, 0x7135, 0x4d10, 0x80,0x18, 0x9f,0xb6,0xd9,0xf3,0x3f,0xa1);
41813 #if defined(__cplusplus) && !defined(CINTERFACE)
41814 MIDL_INTERFACE("3e68d4bd-7135-4d10-8018-9fb6d9f33fa1")
41815 IInitializeWithWindow : public IUnknown
41816 {
41817     virtual HRESULT STDMETHODCALLTYPE Initialize(
41818         HWND hwnd) = 0;
41819 
41820 };
41821 #ifdef __CRT_UUID_DECL
41822 __CRT_UUID_DECL(IInitializeWithWindow, 0x3e68d4bd, 0x7135, 0x4d10, 0x80,0x18, 0x9f,0xb6,0xd9,0xf3,0x3f,0xa1)
41823 #endif
41824 #else
41825 typedef struct IInitializeWithWindowVtbl {
41826     BEGIN_INTERFACE
41827 
41828     /*** IUnknown methods ***/
41829     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
41830         IInitializeWithWindow* This,
41831         REFIID riid,
41832         void **ppvObject);
41833 
41834     ULONG (STDMETHODCALLTYPE *AddRef)(
41835         IInitializeWithWindow* This);
41836 
41837     ULONG (STDMETHODCALLTYPE *Release)(
41838         IInitializeWithWindow* This);
41839 
41840     /*** IInitializeWithWindow methods ***/
41841     HRESULT (STDMETHODCALLTYPE *Initialize)(
41842         IInitializeWithWindow* This,
41843         HWND hwnd);
41844 
41845     END_INTERFACE
41846 } IInitializeWithWindowVtbl;
41847 interface IInitializeWithWindow {
41848     CONST_VTBL IInitializeWithWindowVtbl* lpVtbl;
41849 };
41850 
41851 #ifdef COBJMACROS
41852 #ifndef WIDL_C_INLINE_WRAPPERS
41853 /*** IUnknown methods ***/
41854 #define IInitializeWithWindow_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
41855 #define IInitializeWithWindow_AddRef(This) (This)->lpVtbl->AddRef(This)
41856 #define IInitializeWithWindow_Release(This) (This)->lpVtbl->Release(This)
41857 /*** IInitializeWithWindow methods ***/
41858 #define IInitializeWithWindow_Initialize(This,hwnd) (This)->lpVtbl->Initialize(This,hwnd)
41859 #else
41860 /*** IUnknown methods ***/
41861 static FORCEINLINE HRESULT IInitializeWithWindow_QueryInterface(IInitializeWithWindow* This,REFIID riid,void **ppvObject) {
41862     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
41863 }
41864 static FORCEINLINE ULONG IInitializeWithWindow_AddRef(IInitializeWithWindow* This) {
41865     return This->lpVtbl->AddRef(This);
41866 }
41867 static FORCEINLINE ULONG IInitializeWithWindow_Release(IInitializeWithWindow* This) {
41868     return This->lpVtbl->Release(This);
41869 }
41870 /*** IInitializeWithWindow methods ***/
41871 static FORCEINLINE HRESULT IInitializeWithWindow_Initialize(IInitializeWithWindow* This,HWND hwnd) {
41872     return This->lpVtbl->Initialize(This,hwnd);
41873 }
41874 #endif
41875 #endif
41876 
41877 #endif
41878 
41879 HRESULT STDMETHODCALLTYPE IInitializeWithWindow_Initialize_Proxy(
41880     IInitializeWithWindow* This,
41881     HWND hwnd);
41882 void __RPC_STUB IInitializeWithWindow_Initialize_Stub(
41883     IRpcStubBuffer* This,
41884     IRpcChannelBuffer* pRpcChannelBuffer,
41885     PRPC_MESSAGE pRpcMessage,
41886     DWORD* pdwStubPhase);
41887 
41888 #endif  /* __IInitializeWithWindow_INTERFACE_DEFINED__ */
41889 
41890 
41891 /*****************************************************************************
41892  * IHandlerInfo interface
41893  */
41894 #ifndef __IHandlerInfo_INTERFACE_DEFINED__
41895 #define __IHandlerInfo_INTERFACE_DEFINED__
41896 
41897 DEFINE_GUID(IID_IHandlerInfo, 0x997706ef, 0xf880, 0x453b, 0x81,0x18, 0x39,0xe1,0xa2,0xd2,0x65,0x5a);
41898 #if defined(__cplusplus) && !defined(CINTERFACE)
41899 MIDL_INTERFACE("997706ef-f880-453b-8118-39e1a2d2655a")
41900 IHandlerInfo : public IUnknown
41901 {
41902     virtual HRESULT STDMETHODCALLTYPE GetApplicationDisplayName(
41903         LPWSTR *value) = 0;
41904 
41905     virtual HRESULT STDMETHODCALLTYPE GetApplicationPublisher(
41906         LPWSTR *value) = 0;
41907 
41908     virtual HRESULT STDMETHODCALLTYPE GetApplicationIconReference(
41909         LPWSTR *value) = 0;
41910 
41911 };
41912 #ifdef __CRT_UUID_DECL
41913 __CRT_UUID_DECL(IHandlerInfo, 0x997706ef, 0xf880, 0x453b, 0x81,0x18, 0x39,0xe1,0xa2,0xd2,0x65,0x5a)
41914 #endif
41915 #else
41916 typedef struct IHandlerInfoVtbl {
41917     BEGIN_INTERFACE
41918 
41919     /*** IUnknown methods ***/
41920     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
41921         IHandlerInfo* This,
41922         REFIID riid,
41923         void **ppvObject);
41924 
41925     ULONG (STDMETHODCALLTYPE *AddRef)(
41926         IHandlerInfo* This);
41927 
41928     ULONG (STDMETHODCALLTYPE *Release)(
41929         IHandlerInfo* This);
41930 
41931     /*** IHandlerInfo methods ***/
41932     HRESULT (STDMETHODCALLTYPE *GetApplicationDisplayName)(
41933         IHandlerInfo* This,
41934         LPWSTR *value);
41935 
41936     HRESULT (STDMETHODCALLTYPE *GetApplicationPublisher)(
41937         IHandlerInfo* This,
41938         LPWSTR *value);
41939 
41940     HRESULT (STDMETHODCALLTYPE *GetApplicationIconReference)(
41941         IHandlerInfo* This,
41942         LPWSTR *value);
41943 
41944     END_INTERFACE
41945 } IHandlerInfoVtbl;
41946 interface IHandlerInfo {
41947     CONST_VTBL IHandlerInfoVtbl* lpVtbl;
41948 };
41949 
41950 #ifdef COBJMACROS
41951 #ifndef WIDL_C_INLINE_WRAPPERS
41952 /*** IUnknown methods ***/
41953 #define IHandlerInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
41954 #define IHandlerInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
41955 #define IHandlerInfo_Release(This) (This)->lpVtbl->Release(This)
41956 /*** IHandlerInfo methods ***/
41957 #define IHandlerInfo_GetApplicationDisplayName(This,value) (This)->lpVtbl->GetApplicationDisplayName(This,value)
41958 #define IHandlerInfo_GetApplicationPublisher(This,value) (This)->lpVtbl->GetApplicationPublisher(This,value)
41959 #define IHandlerInfo_GetApplicationIconReference(This,value) (This)->lpVtbl->GetApplicationIconReference(This,value)
41960 #else
41961 /*** IUnknown methods ***/
41962 static FORCEINLINE HRESULT IHandlerInfo_QueryInterface(IHandlerInfo* This,REFIID riid,void **ppvObject) {
41963     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
41964 }
41965 static FORCEINLINE ULONG IHandlerInfo_AddRef(IHandlerInfo* This) {
41966     return This->lpVtbl->AddRef(This);
41967 }
41968 static FORCEINLINE ULONG IHandlerInfo_Release(IHandlerInfo* This) {
41969     return This->lpVtbl->Release(This);
41970 }
41971 /*** IHandlerInfo methods ***/
41972 static FORCEINLINE HRESULT IHandlerInfo_GetApplicationDisplayName(IHandlerInfo* This,LPWSTR *value) {
41973     return This->lpVtbl->GetApplicationDisplayName(This,value);
41974 }
41975 static FORCEINLINE HRESULT IHandlerInfo_GetApplicationPublisher(IHandlerInfo* This,LPWSTR *value) {
41976     return This->lpVtbl->GetApplicationPublisher(This,value);
41977 }
41978 static FORCEINLINE HRESULT IHandlerInfo_GetApplicationIconReference(IHandlerInfo* This,LPWSTR *value) {
41979     return This->lpVtbl->GetApplicationIconReference(This,value);
41980 }
41981 #endif
41982 #endif
41983 
41984 #endif
41985 
41986 HRESULT STDMETHODCALLTYPE IHandlerInfo_GetApplicationDisplayName_Proxy(
41987     IHandlerInfo* This,
41988     LPWSTR *value);
41989 void __RPC_STUB IHandlerInfo_GetApplicationDisplayName_Stub(
41990     IRpcStubBuffer* This,
41991     IRpcChannelBuffer* pRpcChannelBuffer,
41992     PRPC_MESSAGE pRpcMessage,
41993     DWORD* pdwStubPhase);
41994 HRESULT STDMETHODCALLTYPE IHandlerInfo_GetApplicationPublisher_Proxy(
41995     IHandlerInfo* This,
41996     LPWSTR *value);
41997 void __RPC_STUB IHandlerInfo_GetApplicationPublisher_Stub(
41998     IRpcStubBuffer* This,
41999     IRpcChannelBuffer* pRpcChannelBuffer,
42000     PRPC_MESSAGE pRpcMessage,
42001     DWORD* pdwStubPhase);
42002 HRESULT STDMETHODCALLTYPE IHandlerInfo_GetApplicationIconReference_Proxy(
42003     IHandlerInfo* This,
42004     LPWSTR *value);
42005 void __RPC_STUB IHandlerInfo_GetApplicationIconReference_Stub(
42006     IRpcStubBuffer* This,
42007     IRpcChannelBuffer* pRpcChannelBuffer,
42008     PRPC_MESSAGE pRpcMessage,
42009     DWORD* pdwStubPhase);
42010 
42011 #endif  /* __IHandlerInfo_INTERFACE_DEFINED__ */
42012 
42013 
42014 /*****************************************************************************
42015  * IHandlerActivationHost interface
42016  */
42017 #ifndef __IHandlerActivationHost_INTERFACE_DEFINED__
42018 #define __IHandlerActivationHost_INTERFACE_DEFINED__
42019 
42020 DEFINE_GUID(IID_IHandlerActivationHost, 0x35094a87, 0x8bb1, 0x4237, 0x96,0xc6, 0xc4,0x17,0xee,0xbd,0xb0,0x78);
42021 #if defined(__cplusplus) && !defined(CINTERFACE)
42022 MIDL_INTERFACE("35094a87-8bb1-4237-96c6-c417eebdb078")
42023 IHandlerActivationHost : public IUnknown
42024 {
42025     virtual HRESULT STDMETHODCALLTYPE BeforeCoCreateInstance(
42026         REFCLSID clsidHandler,
42027         IShellItemArray *itemsBeingActivated,
42028         IHandlerInfo *handlerInfo) = 0;
42029 
42030     virtual HRESULT STDMETHODCALLTYPE BeforeCreateProcess(
42031         LPCWSTR applicationPath,
42032         LPCWSTR commandLine,
42033         IHandlerInfo *handlerInfo) = 0;
42034 
42035 };
42036 #ifdef __CRT_UUID_DECL
42037 __CRT_UUID_DECL(IHandlerActivationHost, 0x35094a87, 0x8bb1, 0x4237, 0x96,0xc6, 0xc4,0x17,0xee,0xbd,0xb0,0x78)
42038 #endif
42039 #else
42040 typedef struct IHandlerActivationHostVtbl {
42041     BEGIN_INTERFACE
42042 
42043     /*** IUnknown methods ***/
42044     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
42045         IHandlerActivationHost* This,
42046         REFIID riid,
42047         void **ppvObject);
42048 
42049     ULONG (STDMETHODCALLTYPE *AddRef)(
42050         IHandlerActivationHost* This);
42051 
42052     ULONG (STDMETHODCALLTYPE *Release)(
42053         IHandlerActivationHost* This);
42054 
42055     /*** IHandlerActivationHost methods ***/
42056     HRESULT (STDMETHODCALLTYPE *BeforeCoCreateInstance)(
42057         IHandlerActivationHost* This,
42058         REFCLSID clsidHandler,
42059         IShellItemArray *itemsBeingActivated,
42060         IHandlerInfo *handlerInfo);
42061 
42062     HRESULT (STDMETHODCALLTYPE *BeforeCreateProcess)(
42063         IHandlerActivationHost* This,
42064         LPCWSTR applicationPath,
42065         LPCWSTR commandLine,
42066         IHandlerInfo *handlerInfo);
42067 
42068     END_INTERFACE
42069 } IHandlerActivationHostVtbl;
42070 interface IHandlerActivationHost {
42071     CONST_VTBL IHandlerActivationHostVtbl* lpVtbl;
42072 };
42073 
42074 #ifdef COBJMACROS
42075 #ifndef WIDL_C_INLINE_WRAPPERS
42076 /*** IUnknown methods ***/
42077 #define IHandlerActivationHost_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
42078 #define IHandlerActivationHost_AddRef(This) (This)->lpVtbl->AddRef(This)
42079 #define IHandlerActivationHost_Release(This) (This)->lpVtbl->Release(This)
42080 /*** IHandlerActivationHost methods ***/
42081 #define IHandlerActivationHost_BeforeCoCreateInstance(This,clsidHandler,itemsBeingActivated,handlerInfo) (This)->lpVtbl->BeforeCoCreateInstance(This,clsidHandler,itemsBeingActivated,handlerInfo)
42082 #define IHandlerActivationHost_BeforeCreateProcess(This,applicationPath,commandLine,handlerInfo) (This)->lpVtbl->BeforeCreateProcess(This,applicationPath,commandLine,handlerInfo)
42083 #else
42084 /*** IUnknown methods ***/
42085 static FORCEINLINE HRESULT IHandlerActivationHost_QueryInterface(IHandlerActivationHost* This,REFIID riid,void **ppvObject) {
42086     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
42087 }
42088 static FORCEINLINE ULONG IHandlerActivationHost_AddRef(IHandlerActivationHost* This) {
42089     return This->lpVtbl->AddRef(This);
42090 }
42091 static FORCEINLINE ULONG IHandlerActivationHost_Release(IHandlerActivationHost* This) {
42092     return This->lpVtbl->Release(This);
42093 }
42094 /*** IHandlerActivationHost methods ***/
42095 static FORCEINLINE HRESULT IHandlerActivationHost_BeforeCoCreateInstance(IHandlerActivationHost* This,REFCLSID clsidHandler,IShellItemArray *itemsBeingActivated,IHandlerInfo *handlerInfo) {
42096     return This->lpVtbl->BeforeCoCreateInstance(This,clsidHandler,itemsBeingActivated,handlerInfo);
42097 }
42098 static FORCEINLINE HRESULT IHandlerActivationHost_BeforeCreateProcess(IHandlerActivationHost* This,LPCWSTR applicationPath,LPCWSTR commandLine,IHandlerInfo *handlerInfo) {
42099     return This->lpVtbl->BeforeCreateProcess(This,applicationPath,commandLine,handlerInfo);
42100 }
42101 #endif
42102 #endif
42103 
42104 #endif
42105 
42106 HRESULT STDMETHODCALLTYPE IHandlerActivationHost_BeforeCoCreateInstance_Proxy(
42107     IHandlerActivationHost* This,
42108     REFCLSID clsidHandler,
42109     IShellItemArray *itemsBeingActivated,
42110     IHandlerInfo *handlerInfo);
42111 void __RPC_STUB IHandlerActivationHost_BeforeCoCreateInstance_Stub(
42112     IRpcStubBuffer* This,
42113     IRpcChannelBuffer* pRpcChannelBuffer,
42114     PRPC_MESSAGE pRpcMessage,
42115     DWORD* pdwStubPhase);
42116 HRESULT STDMETHODCALLTYPE IHandlerActivationHost_BeforeCreateProcess_Proxy(
42117     IHandlerActivationHost* This,
42118     LPCWSTR applicationPath,
42119     LPCWSTR commandLine,
42120     IHandlerInfo *handlerInfo);
42121 void __RPC_STUB IHandlerActivationHost_BeforeCreateProcess_Stub(
42122     IRpcStubBuffer* This,
42123     IRpcChannelBuffer* pRpcChannelBuffer,
42124     PRPC_MESSAGE pRpcMessage,
42125     DWORD* pdwStubPhase);
42126 
42127 #endif  /* __IHandlerActivationHost_INTERFACE_DEFINED__ */
42128 
42129 
42130 #define SID_SHandlerActivationHost IID_IHandlerActivationHost
42131 
42132 DEFINE_GUID(SID_ShellExecuteNamedPropertyStore, 0xeb84ada2, 0x00ff, 0x4992, 0x83, 0x24, 0xed, 0x5c, 0xe0, 0x61, 0xcb, 0x29);
42133 #endif
42134 
42135 #endif
42136 /* Begin additional prototypes for all interfaces */
42137 
42138 ULONG           __RPC_USER PCIDLIST_ABSOLUTE_UserSize     (ULONG *, ULONG, PCIDLIST_ABSOLUTE *);
42139 unsigned char * __RPC_USER PCIDLIST_ABSOLUTE_UserMarshal  (ULONG *, unsigned char *, PCIDLIST_ABSOLUTE *);
42140 unsigned char * __RPC_USER PCIDLIST_ABSOLUTE_UserUnmarshal(ULONG *, unsigned char *, PCIDLIST_ABSOLUTE *);
42141 void            __RPC_USER PCIDLIST_ABSOLUTE_UserFree     (ULONG *, PCIDLIST_ABSOLUTE *);
42142 ULONG           __RPC_USER PIDLIST_ABSOLUTE_UserSize     (ULONG *, ULONG, PIDLIST_ABSOLUTE *);
42143 unsigned char * __RPC_USER PIDLIST_ABSOLUTE_UserMarshal  (ULONG *, unsigned char *, PIDLIST_ABSOLUTE *);
42144 unsigned char * __RPC_USER PIDLIST_ABSOLUTE_UserUnmarshal(ULONG *, unsigned char *, PIDLIST_ABSOLUTE *);
42145 void            __RPC_USER PIDLIST_ABSOLUTE_UserFree     (ULONG *, PIDLIST_ABSOLUTE *);
42146 ULONG           __RPC_USER PITEMID_CHILD_UserSize     (ULONG *, ULONG, PITEMID_CHILD *);
42147 unsigned char * __RPC_USER PITEMID_CHILD_UserMarshal  (ULONG *, unsigned char *, PITEMID_CHILD *);
42148 unsigned char * __RPC_USER PITEMID_CHILD_UserUnmarshal(ULONG *, unsigned char *, PITEMID_CHILD *);
42149 void            __RPC_USER PITEMID_CHILD_UserFree     (ULONG *, PITEMID_CHILD *);
42150 ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
42151 unsigned char * __RPC_USER HWND_UserMarshal  (ULONG *, unsigned char *, HWND *);
42152 unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *);
42153 void            __RPC_USER HWND_UserFree     (ULONG *, HWND *);
42154 ULONG           __RPC_USER PIDLIST_RELATIVE_UserSize     (ULONG *, ULONG, PIDLIST_RELATIVE *);
42155 unsigned char * __RPC_USER PIDLIST_RELATIVE_UserMarshal  (ULONG *, unsigned char *, PIDLIST_RELATIVE *);
42156 unsigned char * __RPC_USER PIDLIST_RELATIVE_UserUnmarshal(ULONG *, unsigned char *, PIDLIST_RELATIVE *);
42157 void            __RPC_USER PIDLIST_RELATIVE_UserFree     (ULONG *, PIDLIST_RELATIVE *);
42158 ULONG           __RPC_USER PCUIDLIST_RELATIVE_UserSize     (ULONG *, ULONG, PCUIDLIST_RELATIVE *);
42159 unsigned char * __RPC_USER PCUIDLIST_RELATIVE_UserMarshal  (ULONG *, unsigned char *, PCUIDLIST_RELATIVE *);
42160 unsigned char * __RPC_USER PCUIDLIST_RELATIVE_UserUnmarshal(ULONG *, unsigned char *, PCUIDLIST_RELATIVE *);
42161 void            __RPC_USER PCUIDLIST_RELATIVE_UserFree     (ULONG *, PCUIDLIST_RELATIVE *);
42162 ULONG           __RPC_USER PCUITEMID_CHILD_UserSize     (ULONG *, ULONG, PCUITEMID_CHILD *);
42163 unsigned char * __RPC_USER PCUITEMID_CHILD_UserMarshal  (ULONG *, unsigned char *, PCUITEMID_CHILD *);
42164 unsigned char * __RPC_USER PCUITEMID_CHILD_UserUnmarshal(ULONG *, unsigned char *, PCUITEMID_CHILD *);
42165 void            __RPC_USER PCUITEMID_CHILD_UserFree     (ULONG *, PCUITEMID_CHILD *);
42166 ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
42167 unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
42168 unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
42169 void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
42170 ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
42171 unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
42172 unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
42173 void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
42174 ULONG           __RPC_USER LPSAFEARRAY_UserSize     (ULONG *, ULONG, LPSAFEARRAY *);
42175 unsigned char * __RPC_USER LPSAFEARRAY_UserMarshal  (ULONG *, unsigned char *, LPSAFEARRAY *);
42176 unsigned char * __RPC_USER LPSAFEARRAY_UserUnmarshal(ULONG *, unsigned char *, LPSAFEARRAY *);
42177 void            __RPC_USER LPSAFEARRAY_UserFree     (ULONG *, LPSAFEARRAY *);
42178 ULONG           __RPC_USER HBITMAP_UserSize     (ULONG *, ULONG, HBITMAP *);
42179 unsigned char * __RPC_USER HBITMAP_UserMarshal  (ULONG *, unsigned char *, HBITMAP *);
42180 unsigned char * __RPC_USER HBITMAP_UserUnmarshal(ULONG *, unsigned char *, HBITMAP *);
42181 void            __RPC_USER HBITMAP_UserFree     (ULONG *, HBITMAP *);
42182 ULONG           __RPC_USER HMENU_UserSize     (ULONG *, ULONG, HMENU *);
42183 unsigned char * __RPC_USER HMENU_UserMarshal  (ULONG *, unsigned char *, HMENU *);
42184 unsigned char * __RPC_USER HMENU_UserUnmarshal(ULONG *, unsigned char *, HMENU *);
42185 void            __RPC_USER HMENU_UserFree     (ULONG *, HMENU *);
42186 ULONG           __RPC_USER HGLOBAL_UserSize     (ULONG *, ULONG, HGLOBAL *);
42187 unsigned char * __RPC_USER HGLOBAL_UserMarshal  (ULONG *, unsigned char *, HGLOBAL *);
42188 unsigned char * __RPC_USER HGLOBAL_UserUnmarshal(ULONG *, unsigned char *, HGLOBAL *);
42189 void            __RPC_USER HGLOBAL_UserFree     (ULONG *, HGLOBAL *);
42190 ULONG           __RPC_USER HICON_UserSize     (ULONG *, ULONG, HICON *);
42191 unsigned char * __RPC_USER HICON_UserMarshal  (ULONG *, unsigned char *, HICON *);
42192 unsigned char * __RPC_USER HICON_UserUnmarshal(ULONG *, unsigned char *, HICON *);
42193 void            __RPC_USER HICON_UserFree     (ULONG *, HICON *);
42194 ULONG           __RPC_USER HACCEL_UserSize     (ULONG *, ULONG, HACCEL *);
42195 unsigned char * __RPC_USER HACCEL_UserMarshal  (ULONG *, unsigned char *, HACCEL *);
42196 unsigned char * __RPC_USER HACCEL_UserUnmarshal(ULONG *, unsigned char *, HACCEL *);
42197 void            __RPC_USER HACCEL_UserFree     (ULONG *, HACCEL *);
42198 ULONG           __RPC_USER HMONITOR_UserSize     (ULONG *, ULONG, HMONITOR *);
42199 unsigned char * __RPC_USER HMONITOR_UserMarshal  (ULONG *, unsigned char *, HMONITOR *);
42200 unsigned char * __RPC_USER HMONITOR_UserUnmarshal(ULONG *, unsigned char *, HMONITOR *);
42201 void            __RPC_USER HMONITOR_UserFree     (ULONG *, HMONITOR *);
42202 
42203 /* End additional prototypes */
42204 
42205 #ifdef __cplusplus
42206 }
42207 #endif
42208 
42209 #endif /* __shobjidl_h__ */
42210