1 /*** Autogenerated by WIDL 6.4 from include/shobjidl.idl - Do not edit ***/
2 
3 #ifdef _WIN32
4 #ifndef __REQUIRED_RPCNDR_H_VERSION__
5 #define __REQUIRED_RPCNDR_H_VERSION__ 475
6 #endif
7 #include <rpc.h>
8 #include <rpcndr.h>
9 #endif
10 
11 #ifndef COM_NO_WINDOWS_H
12 #include <windows.h>
13 #include <ole2.h>
14 #endif
15 
16 #ifndef __shobjidl_h__
17 #define __shobjidl_h__
18 
19 /* Forward declarations */
20 
21 #ifndef __IContextMenu_FWD_DEFINED__
22 #define __IContextMenu_FWD_DEFINED__
23 typedef interface IContextMenu IContextMenu;
24 #ifdef __cplusplus
25 interface IContextMenu;
26 #endif /* __cplusplus */
27 #endif
28 
29 #ifndef __IContextMenu2_FWD_DEFINED__
30 #define __IContextMenu2_FWD_DEFINED__
31 typedef interface IContextMenu2 IContextMenu2;
32 #ifdef __cplusplus
33 interface IContextMenu2;
34 #endif /* __cplusplus */
35 #endif
36 
37 #ifndef __IContextMenu3_FWD_DEFINED__
38 #define __IContextMenu3_FWD_DEFINED__
39 typedef interface IContextMenu3 IContextMenu3;
40 #ifdef __cplusplus
41 interface IContextMenu3;
42 #endif /* __cplusplus */
43 #endif
44 
45 #ifndef __IExecuteCommand_FWD_DEFINED__
46 #define __IExecuteCommand_FWD_DEFINED__
47 typedef interface IExecuteCommand IExecuteCommand;
48 #ifdef __cplusplus
49 interface IExecuteCommand;
50 #endif /* __cplusplus */
51 #endif
52 
53 #ifndef __IPersistFolder_FWD_DEFINED__
54 #define __IPersistFolder_FWD_DEFINED__
55 typedef interface IPersistFolder IPersistFolder;
56 #ifdef __cplusplus
57 interface IPersistFolder;
58 #endif /* __cplusplus */
59 #endif
60 
61 #ifndef __IRunnableTask_FWD_DEFINED__
62 #define __IRunnableTask_FWD_DEFINED__
63 typedef interface IRunnableTask IRunnableTask;
64 #ifdef __cplusplus
65 interface IRunnableTask;
66 #endif /* __cplusplus */
67 #endif
68 
69 #ifndef __IShellTaskScheduler_FWD_DEFINED__
70 #define __IShellTaskScheduler_FWD_DEFINED__
71 typedef interface IShellTaskScheduler IShellTaskScheduler;
72 #ifdef __cplusplus
73 interface IShellTaskScheduler;
74 #endif /* __cplusplus */
75 #endif
76 
77 #ifndef __IQueryCodePage_FWD_DEFINED__
78 #define __IQueryCodePage_FWD_DEFINED__
79 typedef interface IQueryCodePage IQueryCodePage;
80 #ifdef __cplusplus
81 interface IQueryCodePage;
82 #endif /* __cplusplus */
83 #endif
84 
85 #ifndef __IPersistFolder2_FWD_DEFINED__
86 #define __IPersistFolder2_FWD_DEFINED__
87 typedef interface IPersistFolder2 IPersistFolder2;
88 #ifdef __cplusplus
89 interface IPersistFolder2;
90 #endif /* __cplusplus */
91 #endif
92 
93 #ifndef __IPersistFolder3_FWD_DEFINED__
94 #define __IPersistFolder3_FWD_DEFINED__
95 typedef interface IPersistFolder3 IPersistFolder3;
96 #ifdef __cplusplus
97 interface IPersistFolder3;
98 #endif /* __cplusplus */
99 #endif
100 
101 #ifndef __IPersistIDList_FWD_DEFINED__
102 #define __IPersistIDList_FWD_DEFINED__
103 typedef interface IPersistIDList IPersistIDList;
104 #ifdef __cplusplus
105 interface IPersistIDList;
106 #endif /* __cplusplus */
107 #endif
108 
109 #ifndef __IEnumIDList_FWD_DEFINED__
110 #define __IEnumIDList_FWD_DEFINED__
111 typedef interface IEnumIDList IEnumIDList;
112 #ifdef __cplusplus
113 interface IEnumIDList;
114 #endif /* __cplusplus */
115 #endif
116 
117 #ifndef __IEnumFullIDList_FWD_DEFINED__
118 #define __IEnumFullIDList_FWD_DEFINED__
119 typedef interface IEnumFullIDList IEnumFullIDList;
120 #ifdef __cplusplus
121 interface IEnumFullIDList;
122 #endif /* __cplusplus */
123 #endif
124 
125 #ifndef __IObjectWithFolderEnumMode_FWD_DEFINED__
126 #define __IObjectWithFolderEnumMode_FWD_DEFINED__
127 typedef interface IObjectWithFolderEnumMode IObjectWithFolderEnumMode;
128 #ifdef __cplusplus
129 interface IObjectWithFolderEnumMode;
130 #endif /* __cplusplus */
131 #endif
132 
133 #ifndef __IParseAndCreateItem_FWD_DEFINED__
134 #define __IParseAndCreateItem_FWD_DEFINED__
135 typedef interface IParseAndCreateItem IParseAndCreateItem;
136 #ifdef __cplusplus
137 interface IParseAndCreateItem;
138 #endif /* __cplusplus */
139 #endif
140 
141 #ifndef __IShellFolder_FWD_DEFINED__
142 #define __IShellFolder_FWD_DEFINED__
143 typedef interface IShellFolder IShellFolder;
144 #ifdef __cplusplus
145 interface IShellFolder;
146 #endif /* __cplusplus */
147 #endif
148 
149 #ifndef __IEnumExtraSearch_FWD_DEFINED__
150 #define __IEnumExtraSearch_FWD_DEFINED__
151 typedef interface IEnumExtraSearch IEnumExtraSearch;
152 #ifdef __cplusplus
153 interface IEnumExtraSearch;
154 #endif /* __cplusplus */
155 #endif
156 
157 #ifndef __IShellFolder2_FWD_DEFINED__
158 #define __IShellFolder2_FWD_DEFINED__
159 typedef interface IShellFolder2 IShellFolder2;
160 #ifdef __cplusplus
161 interface IShellFolder2;
162 #endif /* __cplusplus */
163 #endif
164 
165 #ifndef __IFolderViewOptions_FWD_DEFINED__
166 #define __IFolderViewOptions_FWD_DEFINED__
167 typedef interface IFolderViewOptions IFolderViewOptions;
168 #ifdef __cplusplus
169 interface IFolderViewOptions;
170 #endif /* __cplusplus */
171 #endif
172 
173 #ifndef __IShellView_FWD_DEFINED__
174 #define __IShellView_FWD_DEFINED__
175 typedef interface IShellView IShellView;
176 #ifdef __cplusplus
177 interface IShellView;
178 #endif /* __cplusplus */
179 #endif
180 
181 #ifndef __IShellView2_FWD_DEFINED__
182 #define __IShellView2_FWD_DEFINED__
183 typedef interface IShellView2 IShellView2;
184 #ifdef __cplusplus
185 interface IShellView2;
186 #endif /* __cplusplus */
187 #endif
188 
189 #ifndef __IShellView3_FWD_DEFINED__
190 #define __IShellView3_FWD_DEFINED__
191 typedef interface IShellView3 IShellView3;
192 #ifdef __cplusplus
193 interface IShellView3;
194 #endif /* __cplusplus */
195 #endif
196 
197 #ifndef __IFolderView_FWD_DEFINED__
198 #define __IFolderView_FWD_DEFINED__
199 typedef interface IFolderView IFolderView;
200 #ifdef __cplusplus
201 interface IFolderView;
202 #endif /* __cplusplus */
203 #endif
204 
205 #ifndef __ISearchBoxInfo_FWD_DEFINED__
206 #define __ISearchBoxInfo_FWD_DEFINED__
207 typedef interface ISearchBoxInfo ISearchBoxInfo;
208 #ifdef __cplusplus
209 interface ISearchBoxInfo;
210 #endif /* __cplusplus */
211 #endif
212 
213 #ifndef __IFolderView2_FWD_DEFINED__
214 #define __IFolderView2_FWD_DEFINED__
215 typedef interface IFolderView2 IFolderView2;
216 #ifdef __cplusplus
217 interface IFolderView2;
218 #endif /* __cplusplus */
219 #endif
220 
221 #ifndef __IFolderViewSettings_FWD_DEFINED__
222 #define __IFolderViewSettings_FWD_DEFINED__
223 typedef interface IFolderViewSettings IFolderViewSettings;
224 #ifdef __cplusplus
225 interface IFolderViewSettings;
226 #endif /* __cplusplus */
227 #endif
228 
229 #ifndef __IPreviewHandlerVisuals_FWD_DEFINED__
230 #define __IPreviewHandlerVisuals_FWD_DEFINED__
231 typedef interface IPreviewHandlerVisuals IPreviewHandlerVisuals;
232 #ifdef __cplusplus
233 interface IPreviewHandlerVisuals;
234 #endif /* __cplusplus */
235 #endif
236 
237 #ifndef __IVisualProperties_FWD_DEFINED__
238 #define __IVisualProperties_FWD_DEFINED__
239 typedef interface IVisualProperties IVisualProperties;
240 #ifdef __cplusplus
241 interface IVisualProperties;
242 #endif /* __cplusplus */
243 #endif
244 
245 #ifndef __ICommDlgBrowser_FWD_DEFINED__
246 #define __ICommDlgBrowser_FWD_DEFINED__
247 typedef interface ICommDlgBrowser ICommDlgBrowser;
248 #ifdef __cplusplus
249 interface ICommDlgBrowser;
250 #endif /* __cplusplus */
251 #endif
252 
253 #ifndef __ICommDlgBrowser2_FWD_DEFINED__
254 #define __ICommDlgBrowser2_FWD_DEFINED__
255 typedef interface ICommDlgBrowser2 ICommDlgBrowser2;
256 #ifdef __cplusplus
257 interface ICommDlgBrowser2;
258 #endif /* __cplusplus */
259 #endif
260 
261 #ifndef __ICommDlgBrowser3_FWD_DEFINED__
262 #define __ICommDlgBrowser3_FWD_DEFINED__
263 typedef interface ICommDlgBrowser3 ICommDlgBrowser3;
264 #ifdef __cplusplus
265 interface ICommDlgBrowser3;
266 #endif /* __cplusplus */
267 #endif
268 
269 #ifndef __IColumnManager_FWD_DEFINED__
270 #define __IColumnManager_FWD_DEFINED__
271 typedef interface IColumnManager IColumnManager;
272 #ifdef __cplusplus
273 interface IColumnManager;
274 #endif /* __cplusplus */
275 #endif
276 
277 #ifndef __IFolderFilterSite_FWD_DEFINED__
278 #define __IFolderFilterSite_FWD_DEFINED__
279 typedef interface IFolderFilterSite IFolderFilterSite;
280 #ifdef __cplusplus
281 interface IFolderFilterSite;
282 #endif /* __cplusplus */
283 #endif
284 
285 #ifndef __IFolderFilter_FWD_DEFINED__
286 #define __IFolderFilter_FWD_DEFINED__
287 typedef interface IFolderFilter IFolderFilter;
288 #ifdef __cplusplus
289 interface IFolderFilter;
290 #endif /* __cplusplus */
291 #endif
292 
293 #ifndef __IInputObjectSite_FWD_DEFINED__
294 #define __IInputObjectSite_FWD_DEFINED__
295 typedef interface IInputObjectSite IInputObjectSite;
296 #ifdef __cplusplus
297 interface IInputObjectSite;
298 #endif /* __cplusplus */
299 #endif
300 
301 #ifndef __IInputObject_FWD_DEFINED__
302 #define __IInputObject_FWD_DEFINED__
303 typedef interface IInputObject IInputObject;
304 #ifdef __cplusplus
305 interface IInputObject;
306 #endif /* __cplusplus */
307 #endif
308 
309 #ifndef __IInputObject2_FWD_DEFINED__
310 #define __IInputObject2_FWD_DEFINED__
311 typedef interface IInputObject2 IInputObject2;
312 #ifdef __cplusplus
313 interface IInputObject2;
314 #endif /* __cplusplus */
315 #endif
316 
317 #ifndef __IShellIcon_FWD_DEFINED__
318 #define __IShellIcon_FWD_DEFINED__
319 typedef interface IShellIcon IShellIcon;
320 #ifdef __cplusplus
321 interface IShellIcon;
322 #endif /* __cplusplus */
323 #endif
324 
325 #ifndef __IShellBrowser_FWD_DEFINED__
326 #define __IShellBrowser_FWD_DEFINED__
327 typedef interface IShellBrowser IShellBrowser;
328 #ifdef __cplusplus
329 interface IShellBrowser;
330 #endif /* __cplusplus */
331 #endif
332 
333 #ifndef __IProfferService_FWD_DEFINED__
334 #define __IProfferService_FWD_DEFINED__
335 typedef interface IProfferService IProfferService;
336 #ifdef __cplusplus
337 interface IProfferService;
338 #endif /* __cplusplus */
339 #endif
340 
341 #ifndef __IShellItem_FWD_DEFINED__
342 #define __IShellItem_FWD_DEFINED__
343 typedef interface IShellItem IShellItem;
344 #ifdef __cplusplus
345 interface IShellItem;
346 #endif /* __cplusplus */
347 #endif
348 
349 #ifndef __IShellItem2_FWD_DEFINED__
350 #define __IShellItem2_FWD_DEFINED__
351 typedef interface IShellItem2 IShellItem2;
352 #ifdef __cplusplus
353 interface IShellItem2;
354 #endif /* __cplusplus */
355 #endif
356 
357 #ifndef __IShellItemImageFactory_FWD_DEFINED__
358 #define __IShellItemImageFactory_FWD_DEFINED__
359 typedef interface IShellItemImageFactory IShellItemImageFactory;
360 #ifdef __cplusplus
361 interface IShellItemImageFactory;
362 #endif /* __cplusplus */
363 #endif
364 
365 #ifndef __IUserAccountChangeCallback_FWD_DEFINED__
366 #define __IUserAccountChangeCallback_FWD_DEFINED__
367 typedef interface IUserAccountChangeCallback IUserAccountChangeCallback;
368 #ifdef __cplusplus
369 interface IUserAccountChangeCallback;
370 #endif /* __cplusplus */
371 #endif
372 
373 #ifndef __IEnumShellItems_FWD_DEFINED__
374 #define __IEnumShellItems_FWD_DEFINED__
375 typedef interface IEnumShellItems IEnumShellItems;
376 #ifdef __cplusplus
377 interface IEnumShellItems;
378 #endif /* __cplusplus */
379 #endif
380 
381 #ifndef __ITransferAdviseSink_FWD_DEFINED__
382 #define __ITransferAdviseSink_FWD_DEFINED__
383 typedef interface ITransferAdviseSink ITransferAdviseSink;
384 #ifdef __cplusplus
385 interface ITransferAdviseSink;
386 #endif /* __cplusplus */
387 #endif
388 
389 #ifndef __ITransferSource_FWD_DEFINED__
390 #define __ITransferSource_FWD_DEFINED__
391 typedef interface ITransferSource ITransferSource;
392 #ifdef __cplusplus
393 interface ITransferSource;
394 #endif /* __cplusplus */
395 #endif
396 
397 #ifndef __IEnumResources_FWD_DEFINED__
398 #define __IEnumResources_FWD_DEFINED__
399 typedef interface IEnumResources IEnumResources;
400 #ifdef __cplusplus
401 interface IEnumResources;
402 #endif /* __cplusplus */
403 #endif
404 
405 #ifndef __IShellItemResources_FWD_DEFINED__
406 #define __IShellItemResources_FWD_DEFINED__
407 typedef interface IShellItemResources IShellItemResources;
408 #ifdef __cplusplus
409 interface IShellItemResources;
410 #endif /* __cplusplus */
411 #endif
412 
413 #ifndef __ITransferDestination_FWD_DEFINED__
414 #define __ITransferDestination_FWD_DEFINED__
415 typedef interface ITransferDestination ITransferDestination;
416 #ifdef __cplusplus
417 interface ITransferDestination;
418 #endif /* __cplusplus */
419 #endif
420 
421 #ifndef __IStreamAsync_FWD_DEFINED__
422 #define __IStreamAsync_FWD_DEFINED__
423 typedef interface IStreamAsync IStreamAsync;
424 #ifdef __cplusplus
425 interface IStreamAsync;
426 #endif /* __cplusplus */
427 #endif
428 
429 #ifndef __IStreamUnbufferedInfo_FWD_DEFINED__
430 #define __IStreamUnbufferedInfo_FWD_DEFINED__
431 typedef interface IStreamUnbufferedInfo IStreamUnbufferedInfo;
432 #ifdef __cplusplus
433 interface IStreamUnbufferedInfo;
434 #endif /* __cplusplus */
435 #endif
436 
437 #ifndef __IFileOperationProgressSink_FWD_DEFINED__
438 #define __IFileOperationProgressSink_FWD_DEFINED__
439 typedef interface IFileOperationProgressSink IFileOperationProgressSink;
440 #ifdef __cplusplus
441 interface IFileOperationProgressSink;
442 #endif /* __cplusplus */
443 #endif
444 
445 #ifndef __IShellItemArray_FWD_DEFINED__
446 #define __IShellItemArray_FWD_DEFINED__
447 typedef interface IShellItemArray IShellItemArray;
448 #ifdef __cplusplus
449 interface IShellItemArray;
450 #endif /* __cplusplus */
451 #endif
452 
453 #ifndef __IInitializeWithItem_FWD_DEFINED__
454 #define __IInitializeWithItem_FWD_DEFINED__
455 typedef interface IInitializeWithItem IInitializeWithItem;
456 #ifdef __cplusplus
457 interface IInitializeWithItem;
458 #endif /* __cplusplus */
459 #endif
460 
461 #ifndef __IObjectWithSelection_FWD_DEFINED__
462 #define __IObjectWithSelection_FWD_DEFINED__
463 typedef interface IObjectWithSelection IObjectWithSelection;
464 #ifdef __cplusplus
465 interface IObjectWithSelection;
466 #endif /* __cplusplus */
467 #endif
468 
469 #ifndef __IObjectWithBackReferences_FWD_DEFINED__
470 #define __IObjectWithBackReferences_FWD_DEFINED__
471 typedef interface IObjectWithBackReferences IObjectWithBackReferences;
472 #ifdef __cplusplus
473 interface IObjectWithBackReferences;
474 #endif /* __cplusplus */
475 #endif
476 
477 #ifndef __IPropertyUI_FWD_DEFINED__
478 #define __IPropertyUI_FWD_DEFINED__
479 typedef interface IPropertyUI IPropertyUI;
480 #ifdef __cplusplus
481 interface IPropertyUI;
482 #endif /* __cplusplus */
483 #endif
484 
485 #ifndef __ICategoryProvider_FWD_DEFINED__
486 #define __ICategoryProvider_FWD_DEFINED__
487 typedef interface ICategoryProvider ICategoryProvider;
488 #ifdef __cplusplus
489 interface ICategoryProvider;
490 #endif /* __cplusplus */
491 #endif
492 
493 #ifndef __ICategorizer_FWD_DEFINED__
494 #define __ICategorizer_FWD_DEFINED__
495 typedef interface ICategorizer ICategorizer;
496 #ifdef __cplusplus
497 interface ICategorizer;
498 #endif /* __cplusplus */
499 #endif
500 
501 #ifndef __IDropTargetHelper_FWD_DEFINED__
502 #define __IDropTargetHelper_FWD_DEFINED__
503 typedef interface IDropTargetHelper IDropTargetHelper;
504 #ifdef __cplusplus
505 interface IDropTargetHelper;
506 #endif /* __cplusplus */
507 #endif
508 
509 #ifndef __IDragSourceHelper_FWD_DEFINED__
510 #define __IDragSourceHelper_FWD_DEFINED__
511 typedef interface IDragSourceHelper IDragSourceHelper;
512 #ifdef __cplusplus
513 interface IDragSourceHelper;
514 #endif /* __cplusplus */
515 #endif
516 
517 #ifndef __IDragSourceHelper2_FWD_DEFINED__
518 #define __IDragSourceHelper2_FWD_DEFINED__
519 typedef interface IDragSourceHelper2 IDragSourceHelper2;
520 #ifdef __cplusplus
521 interface IDragSourceHelper2;
522 #endif /* __cplusplus */
523 #endif
524 
525 #ifndef __IShellLinkA_FWD_DEFINED__
526 #define __IShellLinkA_FWD_DEFINED__
527 typedef interface IShellLinkA IShellLinkA;
528 #ifdef __cplusplus
529 interface IShellLinkA;
530 #endif /* __cplusplus */
531 #endif
532 
533 #ifndef __IShellLinkW_FWD_DEFINED__
534 #define __IShellLinkW_FWD_DEFINED__
535 typedef interface IShellLinkW IShellLinkW;
536 #ifdef __cplusplus
537 interface IShellLinkW;
538 #endif /* __cplusplus */
539 #endif
540 
541 #ifndef __IShellLinkDataList_FWD_DEFINED__
542 #define __IShellLinkDataList_FWD_DEFINED__
543 typedef interface IShellLinkDataList IShellLinkDataList;
544 #ifdef __cplusplus
545 interface IShellLinkDataList;
546 #endif /* __cplusplus */
547 #endif
548 
549 #ifndef __IResolveShellLink_FWD_DEFINED__
550 #define __IResolveShellLink_FWD_DEFINED__
551 typedef interface IResolveShellLink IResolveShellLink;
552 #ifdef __cplusplus
553 interface IResolveShellLink;
554 #endif /* __cplusplus */
555 #endif
556 
557 #ifndef __IActionProgressDialog_FWD_DEFINED__
558 #define __IActionProgressDialog_FWD_DEFINED__
559 typedef interface IActionProgressDialog IActionProgressDialog;
560 #ifdef __cplusplus
561 interface IActionProgressDialog;
562 #endif /* __cplusplus */
563 #endif
564 
565 #ifndef __IHWEventHandler_FWD_DEFINED__
566 #define __IHWEventHandler_FWD_DEFINED__
567 typedef interface IHWEventHandler IHWEventHandler;
568 #ifdef __cplusplus
569 interface IHWEventHandler;
570 #endif /* __cplusplus */
571 #endif
572 
573 #ifndef __IHWEventHandler2_FWD_DEFINED__
574 #define __IHWEventHandler2_FWD_DEFINED__
575 typedef interface IHWEventHandler2 IHWEventHandler2;
576 #ifdef __cplusplus
577 interface IHWEventHandler2;
578 #endif /* __cplusplus */
579 #endif
580 
581 #ifndef __IQueryCancelAutoPlay_FWD_DEFINED__
582 #define __IQueryCancelAutoPlay_FWD_DEFINED__
583 typedef interface IQueryCancelAutoPlay IQueryCancelAutoPlay;
584 #ifdef __cplusplus
585 interface IQueryCancelAutoPlay;
586 #endif /* __cplusplus */
587 #endif
588 
589 #ifndef __IDynamicHWHandler_FWD_DEFINED__
590 #define __IDynamicHWHandler_FWD_DEFINED__
591 typedef interface IDynamicHWHandler IDynamicHWHandler;
592 #ifdef __cplusplus
593 interface IDynamicHWHandler;
594 #endif /* __cplusplus */
595 #endif
596 
597 #ifndef __IActionProgress_FWD_DEFINED__
598 #define __IActionProgress_FWD_DEFINED__
599 typedef interface IActionProgress IActionProgress;
600 #ifdef __cplusplus
601 interface IActionProgress;
602 #endif /* __cplusplus */
603 #endif
604 
605 #ifndef __IShellExtInit_FWD_DEFINED__
606 #define __IShellExtInit_FWD_DEFINED__
607 typedef interface IShellExtInit IShellExtInit;
608 #ifdef __cplusplus
609 interface IShellExtInit;
610 #endif /* __cplusplus */
611 #endif
612 
613 #ifndef __IShellPropSheetExt_FWD_DEFINED__
614 #define __IShellPropSheetExt_FWD_DEFINED__
615 typedef interface IShellPropSheetExt IShellPropSheetExt;
616 #ifdef __cplusplus
617 interface IShellPropSheetExt;
618 #endif /* __cplusplus */
619 #endif
620 
621 #ifndef __IRemoteComputer_FWD_DEFINED__
622 #define __IRemoteComputer_FWD_DEFINED__
623 typedef interface IRemoteComputer IRemoteComputer;
624 #ifdef __cplusplus
625 interface IRemoteComputer;
626 #endif /* __cplusplus */
627 #endif
628 
629 #ifndef __IQueryContinue_FWD_DEFINED__
630 #define __IQueryContinue_FWD_DEFINED__
631 typedef interface IQueryContinue IQueryContinue;
632 #ifdef __cplusplus
633 interface IQueryContinue;
634 #endif /* __cplusplus */
635 #endif
636 
637 #ifndef __IObjectWithCancelEvent_FWD_DEFINED__
638 #define __IObjectWithCancelEvent_FWD_DEFINED__
639 typedef interface IObjectWithCancelEvent IObjectWithCancelEvent;
640 #ifdef __cplusplus
641 interface IObjectWithCancelEvent;
642 #endif /* __cplusplus */
643 #endif
644 
645 #ifndef __IUserNotification_FWD_DEFINED__
646 #define __IUserNotification_FWD_DEFINED__
647 typedef interface IUserNotification IUserNotification;
648 #ifdef __cplusplus
649 interface IUserNotification;
650 #endif /* __cplusplus */
651 #endif
652 
653 #ifndef __IUserNotificationCallback_FWD_DEFINED__
654 #define __IUserNotificationCallback_FWD_DEFINED__
655 typedef interface IUserNotificationCallback IUserNotificationCallback;
656 #ifdef __cplusplus
657 interface IUserNotificationCallback;
658 #endif /* __cplusplus */
659 #endif
660 
661 #ifndef __IUserNotification2_FWD_DEFINED__
662 #define __IUserNotification2_FWD_DEFINED__
663 typedef interface IUserNotification2 IUserNotification2;
664 #ifdef __cplusplus
665 interface IUserNotification2;
666 #endif /* __cplusplus */
667 #endif
668 
669 #ifndef __IItemNameLimits_FWD_DEFINED__
670 #define __IItemNameLimits_FWD_DEFINED__
671 typedef interface IItemNameLimits IItemNameLimits;
672 #ifdef __cplusplus
673 interface IItemNameLimits;
674 #endif /* __cplusplus */
675 #endif
676 
677 #ifndef __ISearchFolderItemFactory_FWD_DEFINED__
678 #define __ISearchFolderItemFactory_FWD_DEFINED__
679 typedef interface ISearchFolderItemFactory ISearchFolderItemFactory;
680 #ifdef __cplusplus
681 interface ISearchFolderItemFactory;
682 #endif /* __cplusplus */
683 #endif
684 
685 #ifndef __IExtractImage_FWD_DEFINED__
686 #define __IExtractImage_FWD_DEFINED__
687 typedef interface IExtractImage IExtractImage;
688 #ifdef __cplusplus
689 interface IExtractImage;
690 #endif /* __cplusplus */
691 #endif
692 
693 #ifndef __IExtractImage2_FWD_DEFINED__
694 #define __IExtractImage2_FWD_DEFINED__
695 typedef interface IExtractImage2 IExtractImage2;
696 #ifdef __cplusplus
697 interface IExtractImage2;
698 #endif /* __cplusplus */
699 #endif
700 
701 #ifndef __IThumbnailHandlerFactory_FWD_DEFINED__
702 #define __IThumbnailHandlerFactory_FWD_DEFINED__
703 typedef interface IThumbnailHandlerFactory IThumbnailHandlerFactory;
704 #ifdef __cplusplus
705 interface IThumbnailHandlerFactory;
706 #endif /* __cplusplus */
707 #endif
708 
709 #ifndef __IParentAndItem_FWD_DEFINED__
710 #define __IParentAndItem_FWD_DEFINED__
711 typedef interface IParentAndItem IParentAndItem;
712 #ifdef __cplusplus
713 interface IParentAndItem;
714 #endif /* __cplusplus */
715 #endif
716 
717 #ifndef __IDockingWindow_FWD_DEFINED__
718 #define __IDockingWindow_FWD_DEFINED__
719 typedef interface IDockingWindow IDockingWindow;
720 #ifdef __cplusplus
721 interface IDockingWindow;
722 #endif /* __cplusplus */
723 #endif
724 
725 #ifndef __IDeskBand_FWD_DEFINED__
726 #define __IDeskBand_FWD_DEFINED__
727 typedef interface IDeskBand IDeskBand;
728 #ifdef __cplusplus
729 interface IDeskBand;
730 #endif /* __cplusplus */
731 #endif
732 
733 #ifndef __IDeskBandInfo_FWD_DEFINED__
734 #define __IDeskBandInfo_FWD_DEFINED__
735 typedef interface IDeskBandInfo IDeskBandInfo;
736 #ifdef __cplusplus
737 interface IDeskBandInfo;
738 #endif /* __cplusplus */
739 #endif
740 
741 #ifndef __IDeskBand2_FWD_DEFINED__
742 #define __IDeskBand2_FWD_DEFINED__
743 typedef interface IDeskBand2 IDeskBand2;
744 #ifdef __cplusplus
745 interface IDeskBand2;
746 #endif /* __cplusplus */
747 #endif
748 
749 #ifndef __ITaskbarList_FWD_DEFINED__
750 #define __ITaskbarList_FWD_DEFINED__
751 typedef interface ITaskbarList ITaskbarList;
752 #ifdef __cplusplus
753 interface ITaskbarList;
754 #endif /* __cplusplus */
755 #endif
756 
757 #ifndef __ITaskbarList2_FWD_DEFINED__
758 #define __ITaskbarList2_FWD_DEFINED__
759 typedef interface ITaskbarList2 ITaskbarList2;
760 #ifdef __cplusplus
761 interface ITaskbarList2;
762 #endif /* __cplusplus */
763 #endif
764 
765 #ifndef __ITaskbarList3_FWD_DEFINED__
766 #define __ITaskbarList3_FWD_DEFINED__
767 typedef interface ITaskbarList3 ITaskbarList3;
768 #ifdef __cplusplus
769 interface ITaskbarList3;
770 #endif /* __cplusplus */
771 #endif
772 
773 #ifndef __ITaskbarList4_FWD_DEFINED__
774 #define __ITaskbarList4_FWD_DEFINED__
775 typedef interface ITaskbarList4 ITaskbarList4;
776 #ifdef __cplusplus
777 interface ITaskbarList4;
778 #endif /* __cplusplus */
779 #endif
780 
781 #ifndef __IStartMenuPinnedList_FWD_DEFINED__
782 #define __IStartMenuPinnedList_FWD_DEFINED__
783 typedef interface IStartMenuPinnedList IStartMenuPinnedList;
784 #ifdef __cplusplus
785 interface IStartMenuPinnedList;
786 #endif /* __cplusplus */
787 #endif
788 
789 #ifndef __ICDBurn_FWD_DEFINED__
790 #define __ICDBurn_FWD_DEFINED__
791 typedef interface ICDBurn ICDBurn;
792 #ifdef __cplusplus
793 interface ICDBurn;
794 #endif /* __cplusplus */
795 #endif
796 
797 #ifndef __IWizardSite_FWD_DEFINED__
798 #define __IWizardSite_FWD_DEFINED__
799 typedef interface IWizardSite IWizardSite;
800 #ifdef __cplusplus
801 interface IWizardSite;
802 #endif /* __cplusplus */
803 #endif
804 
805 #ifndef __IWizardExtension_FWD_DEFINED__
806 #define __IWizardExtension_FWD_DEFINED__
807 typedef interface IWizardExtension IWizardExtension;
808 #ifdef __cplusplus
809 interface IWizardExtension;
810 #endif /* __cplusplus */
811 #endif
812 
813 #ifndef __IWebWizardExtension_FWD_DEFINED__
814 #define __IWebWizardExtension_FWD_DEFINED__
815 typedef interface IWebWizardExtension IWebWizardExtension;
816 #ifdef __cplusplus
817 interface IWebWizardExtension;
818 #endif /* __cplusplus */
819 #endif
820 
821 #ifndef __IPublishingWizard_FWD_DEFINED__
822 #define __IPublishingWizard_FWD_DEFINED__
823 typedef interface IPublishingWizard IPublishingWizard;
824 #ifdef __cplusplus
825 interface IPublishingWizard;
826 #endif /* __cplusplus */
827 #endif
828 
829 #ifndef __IFolderViewHost_FWD_DEFINED__
830 #define __IFolderViewHost_FWD_DEFINED__
831 typedef interface IFolderViewHost IFolderViewHost;
832 #ifdef __cplusplus
833 interface IFolderViewHost;
834 #endif /* __cplusplus */
835 #endif
836 
837 #ifndef __IExplorerBrowserEvents_FWD_DEFINED__
838 #define __IExplorerBrowserEvents_FWD_DEFINED__
839 typedef interface IExplorerBrowserEvents IExplorerBrowserEvents;
840 #ifdef __cplusplus
841 interface IExplorerBrowserEvents;
842 #endif /* __cplusplus */
843 #endif
844 
845 #ifndef __IExplorerBrowser_FWD_DEFINED__
846 #define __IExplorerBrowser_FWD_DEFINED__
847 typedef interface IExplorerBrowser IExplorerBrowser;
848 #ifdef __cplusplus
849 interface IExplorerBrowser;
850 #endif /* __cplusplus */
851 #endif
852 
853 #ifndef __IAccessibleObject_FWD_DEFINED__
854 #define __IAccessibleObject_FWD_DEFINED__
855 typedef interface IAccessibleObject IAccessibleObject;
856 #ifdef __cplusplus
857 interface IAccessibleObject;
858 #endif /* __cplusplus */
859 #endif
860 
861 #ifndef __IResultsFolder_FWD_DEFINED__
862 #define __IResultsFolder_FWD_DEFINED__
863 typedef interface IResultsFolder IResultsFolder;
864 #ifdef __cplusplus
865 interface IResultsFolder;
866 #endif /* __cplusplus */
867 #endif
868 
869 #ifndef __IEnumObjects_FWD_DEFINED__
870 #define __IEnumObjects_FWD_DEFINED__
871 typedef interface IEnumObjects IEnumObjects;
872 #ifdef __cplusplus
873 interface IEnumObjects;
874 #endif /* __cplusplus */
875 #endif
876 
877 #ifndef __IOperationsProgressDialog_FWD_DEFINED__
878 #define __IOperationsProgressDialog_FWD_DEFINED__
879 typedef interface IOperationsProgressDialog IOperationsProgressDialog;
880 #ifdef __cplusplus
881 interface IOperationsProgressDialog;
882 #endif /* __cplusplus */
883 #endif
884 
885 #ifndef __IIOCancelInformation_FWD_DEFINED__
886 #define __IIOCancelInformation_FWD_DEFINED__
887 typedef interface IIOCancelInformation IIOCancelInformation;
888 #ifdef __cplusplus
889 interface IIOCancelInformation;
890 #endif /* __cplusplus */
891 #endif
892 
893 #ifndef __IFileOperation_FWD_DEFINED__
894 #define __IFileOperation_FWD_DEFINED__
895 typedef interface IFileOperation IFileOperation;
896 #ifdef __cplusplus
897 interface IFileOperation;
898 #endif /* __cplusplus */
899 #endif
900 
901 #ifndef __IObjectProvider_FWD_DEFINED__
902 #define __IObjectProvider_FWD_DEFINED__
903 typedef interface IObjectProvider IObjectProvider;
904 #ifdef __cplusplus
905 interface IObjectProvider;
906 #endif /* __cplusplus */
907 #endif
908 
909 #ifndef __INamespaceWalkCB_FWD_DEFINED__
910 #define __INamespaceWalkCB_FWD_DEFINED__
911 typedef interface INamespaceWalkCB INamespaceWalkCB;
912 #ifdef __cplusplus
913 interface INamespaceWalkCB;
914 #endif /* __cplusplus */
915 #endif
916 
917 #ifndef __INamespaceWalkCB2_FWD_DEFINED__
918 #define __INamespaceWalkCB2_FWD_DEFINED__
919 typedef interface INamespaceWalkCB2 INamespaceWalkCB2;
920 #ifdef __cplusplus
921 interface INamespaceWalkCB2;
922 #endif /* __cplusplus */
923 #endif
924 
925 #ifndef __INamespaceWalk_FWD_DEFINED__
926 #define __INamespaceWalk_FWD_DEFINED__
927 typedef interface INamespaceWalk INamespaceWalk;
928 #ifdef __cplusplus
929 interface INamespaceWalk;
930 #endif /* __cplusplus */
931 #endif
932 
933 #ifndef __IAutoCompleteDropDown_FWD_DEFINED__
934 #define __IAutoCompleteDropDown_FWD_DEFINED__
935 typedef interface IAutoCompleteDropDown IAutoCompleteDropDown;
936 #ifdef __cplusplus
937 interface IAutoCompleteDropDown;
938 #endif /* __cplusplus */
939 #endif
940 
941 #ifndef __IBandSite_FWD_DEFINED__
942 #define __IBandSite_FWD_DEFINED__
943 typedef interface IBandSite IBandSite;
944 #ifdef __cplusplus
945 interface IBandSite;
946 #endif /* __cplusplus */
947 #endif
948 
949 #ifndef __IModalWindow_FWD_DEFINED__
950 #define __IModalWindow_FWD_DEFINED__
951 typedef interface IModalWindow IModalWindow;
952 #ifdef __cplusplus
953 interface IModalWindow;
954 #endif /* __cplusplus */
955 #endif
956 
957 #ifndef __ICDBurnExt_FWD_DEFINED__
958 #define __ICDBurnExt_FWD_DEFINED__
959 typedef interface ICDBurnExt ICDBurnExt;
960 #ifdef __cplusplus
961 interface ICDBurnExt;
962 #endif /* __cplusplus */
963 #endif
964 
965 #ifndef __IContextMenuSite_FWD_DEFINED__
966 #define __IContextMenuSite_FWD_DEFINED__
967 typedef interface IContextMenuSite IContextMenuSite;
968 #ifdef __cplusplus
969 interface IContextMenuSite;
970 #endif /* __cplusplus */
971 #endif
972 
973 #ifndef __IEnumReadyCallback_FWD_DEFINED__
974 #define __IEnumReadyCallback_FWD_DEFINED__
975 typedef interface IEnumReadyCallback IEnumReadyCallback;
976 #ifdef __cplusplus
977 interface IEnumReadyCallback;
978 #endif /* __cplusplus */
979 #endif
980 
981 #ifndef __IEnumerableView_FWD_DEFINED__
982 #define __IEnumerableView_FWD_DEFINED__
983 typedef interface IEnumerableView IEnumerableView;
984 #ifdef __cplusplus
985 interface IEnumerableView;
986 #endif /* __cplusplus */
987 #endif
988 
989 #ifndef __IInsertItem_FWD_DEFINED__
990 #define __IInsertItem_FWD_DEFINED__
991 typedef interface IInsertItem IInsertItem;
992 #ifdef __cplusplus
993 interface IInsertItem;
994 #endif /* __cplusplus */
995 #endif
996 
997 #ifndef __IMenuBand_FWD_DEFINED__
998 #define __IMenuBand_FWD_DEFINED__
999 typedef interface IMenuBand IMenuBand;
1000 #ifdef __cplusplus
1001 interface IMenuBand;
1002 #endif /* __cplusplus */
1003 #endif
1004 
1005 #ifndef __IFolderBandPriv_FWD_DEFINED__
1006 #define __IFolderBandPriv_FWD_DEFINED__
1007 typedef interface IFolderBandPriv IFolderBandPriv;
1008 #ifdef __cplusplus
1009 interface IFolderBandPriv;
1010 #endif /* __cplusplus */
1011 #endif
1012 
1013 #ifndef __IRegTreeItem_FWD_DEFINED__
1014 #define __IRegTreeItem_FWD_DEFINED__
1015 typedef interface IRegTreeItem IRegTreeItem;
1016 #ifdef __cplusplus
1017 interface IRegTreeItem;
1018 #endif /* __cplusplus */
1019 #endif
1020 
1021 #ifndef __IImageRecompress_FWD_DEFINED__
1022 #define __IImageRecompress_FWD_DEFINED__
1023 typedef interface IImageRecompress IImageRecompress;
1024 #ifdef __cplusplus
1025 interface IImageRecompress;
1026 #endif /* __cplusplus */
1027 #endif
1028 
1029 #ifndef __IDeskBar_FWD_DEFINED__
1030 #define __IDeskBar_FWD_DEFINED__
1031 typedef interface IDeskBar IDeskBar;
1032 #ifdef __cplusplus
1033 interface IDeskBar;
1034 #endif /* __cplusplus */
1035 #endif
1036 
1037 #ifndef __IMenuPopup_FWD_DEFINED__
1038 #define __IMenuPopup_FWD_DEFINED__
1039 typedef interface IMenuPopup IMenuPopup;
1040 #ifdef __cplusplus
1041 interface IMenuPopup;
1042 #endif /* __cplusplus */
1043 #endif
1044 
1045 #ifndef __IFileIsInUse_FWD_DEFINED__
1046 #define __IFileIsInUse_FWD_DEFINED__
1047 typedef interface IFileIsInUse IFileIsInUse;
1048 #ifdef __cplusplus
1049 interface IFileIsInUse;
1050 #endif /* __cplusplus */
1051 #endif
1052 
1053 #ifndef __IFileDialogEvents_FWD_DEFINED__
1054 #define __IFileDialogEvents_FWD_DEFINED__
1055 typedef interface IFileDialogEvents IFileDialogEvents;
1056 #ifdef __cplusplus
1057 interface IFileDialogEvents;
1058 #endif /* __cplusplus */
1059 #endif
1060 
1061 #ifndef __IFileDialog_FWD_DEFINED__
1062 #define __IFileDialog_FWD_DEFINED__
1063 typedef interface IFileDialog IFileDialog;
1064 #ifdef __cplusplus
1065 interface IFileDialog;
1066 #endif /* __cplusplus */
1067 #endif
1068 
1069 #ifndef __IFileSaveDialog_FWD_DEFINED__
1070 #define __IFileSaveDialog_FWD_DEFINED__
1071 typedef interface IFileSaveDialog IFileSaveDialog;
1072 #ifdef __cplusplus
1073 interface IFileSaveDialog;
1074 #endif /* __cplusplus */
1075 #endif
1076 
1077 #ifndef __IFileOpenDialog_FWD_DEFINED__
1078 #define __IFileOpenDialog_FWD_DEFINED__
1079 typedef interface IFileOpenDialog IFileOpenDialog;
1080 #ifdef __cplusplus
1081 interface IFileOpenDialog;
1082 #endif /* __cplusplus */
1083 #endif
1084 
1085 #ifndef __IFileDialogCustomize_FWD_DEFINED__
1086 #define __IFileDialogCustomize_FWD_DEFINED__
1087 typedef interface IFileDialogCustomize IFileDialogCustomize;
1088 #ifdef __cplusplus
1089 interface IFileDialogCustomize;
1090 #endif /* __cplusplus */
1091 #endif
1092 
1093 #ifndef __IFileDialogControlEvents_FWD_DEFINED__
1094 #define __IFileDialogControlEvents_FWD_DEFINED__
1095 typedef interface IFileDialogControlEvents IFileDialogControlEvents;
1096 #ifdef __cplusplus
1097 interface IFileDialogControlEvents;
1098 #endif /* __cplusplus */
1099 #endif
1100 
1101 #ifndef __IFileDialog2_FWD_DEFINED__
1102 #define __IFileDialog2_FWD_DEFINED__
1103 typedef interface IFileDialog2 IFileDialog2;
1104 #ifdef __cplusplus
1105 interface IFileDialog2;
1106 #endif /* __cplusplus */
1107 #endif
1108 
1109 #ifndef __IApplicationAssociationRegistration_FWD_DEFINED__
1110 #define __IApplicationAssociationRegistration_FWD_DEFINED__
1111 typedef interface IApplicationAssociationRegistration IApplicationAssociationRegistration;
1112 #ifdef __cplusplus
1113 interface IApplicationAssociationRegistration;
1114 #endif /* __cplusplus */
1115 #endif
1116 
1117 #ifndef __IApplicationAssociationRegistrationUI_FWD_DEFINED__
1118 #define __IApplicationAssociationRegistrationUI_FWD_DEFINED__
1119 typedef interface IApplicationAssociationRegistrationUI IApplicationAssociationRegistrationUI;
1120 #ifdef __cplusplus
1121 interface IApplicationAssociationRegistrationUI;
1122 #endif /* __cplusplus */
1123 #endif
1124 
1125 #ifndef __IDelegateFolder_FWD_DEFINED__
1126 #define __IDelegateFolder_FWD_DEFINED__
1127 typedef interface IDelegateFolder IDelegateFolder;
1128 #ifdef __cplusplus
1129 interface IDelegateFolder;
1130 #endif /* __cplusplus */
1131 #endif
1132 
1133 #ifndef __IBrowserFrameOptions_FWD_DEFINED__
1134 #define __IBrowserFrameOptions_FWD_DEFINED__
1135 typedef interface IBrowserFrameOptions IBrowserFrameOptions;
1136 #ifdef __cplusplus
1137 interface IBrowserFrameOptions;
1138 #endif /* __cplusplus */
1139 #endif
1140 
1141 #ifndef __INewWindowManager_FWD_DEFINED__
1142 #define __INewWindowManager_FWD_DEFINED__
1143 typedef interface INewWindowManager INewWindowManager;
1144 #ifdef __cplusplus
1145 interface INewWindowManager;
1146 #endif /* __cplusplus */
1147 #endif
1148 
1149 #ifndef __IAttachmentExecute_FWD_DEFINED__
1150 #define __IAttachmentExecute_FWD_DEFINED__
1151 typedef interface IAttachmentExecute IAttachmentExecute;
1152 #ifdef __cplusplus
1153 interface IAttachmentExecute;
1154 #endif /* __cplusplus */
1155 #endif
1156 
1157 #ifndef __IShellMenuCallback_FWD_DEFINED__
1158 #define __IShellMenuCallback_FWD_DEFINED__
1159 typedef interface IShellMenuCallback IShellMenuCallback;
1160 #ifdef __cplusplus
1161 interface IShellMenuCallback;
1162 #endif /* __cplusplus */
1163 #endif
1164 
1165 #ifndef __IShellMenu_FWD_DEFINED__
1166 #define __IShellMenu_FWD_DEFINED__
1167 typedef interface IShellMenu IShellMenu;
1168 #ifdef __cplusplus
1169 interface IShellMenu;
1170 #endif /* __cplusplus */
1171 #endif
1172 
1173 #ifndef __IShellRunDll_FWD_DEFINED__
1174 #define __IShellRunDll_FWD_DEFINED__
1175 typedef interface IShellRunDll IShellRunDll;
1176 #ifdef __cplusplus
1177 interface IShellRunDll;
1178 #endif /* __cplusplus */
1179 #endif
1180 
1181 #ifndef __IKnownFolder_FWD_DEFINED__
1182 #define __IKnownFolder_FWD_DEFINED__
1183 typedef interface IKnownFolder IKnownFolder;
1184 #ifdef __cplusplus
1185 interface IKnownFolder;
1186 #endif /* __cplusplus */
1187 #endif
1188 
1189 #ifndef __IKnownFolderManager_FWD_DEFINED__
1190 #define __IKnownFolderManager_FWD_DEFINED__
1191 typedef interface IKnownFolderManager IKnownFolderManager;
1192 #ifdef __cplusplus
1193 interface IKnownFolderManager;
1194 #endif /* __cplusplus */
1195 #endif
1196 
1197 #ifndef __ISharingConfigurationManager_FWD_DEFINED__
1198 #define __ISharingConfigurationManager_FWD_DEFINED__
1199 typedef interface ISharingConfigurationManager ISharingConfigurationManager;
1200 #ifdef __cplusplus
1201 interface ISharingConfigurationManager;
1202 #endif /* __cplusplus */
1203 #endif
1204 
1205 #ifndef __IPreviousVersionsInfo_FWD_DEFINED__
1206 #define __IPreviousVersionsInfo_FWD_DEFINED__
1207 typedef interface IPreviousVersionsInfo IPreviousVersionsInfo;
1208 #ifdef __cplusplus
1209 interface IPreviousVersionsInfo;
1210 #endif /* __cplusplus */
1211 #endif
1212 
1213 #ifndef __IRelatedItem_FWD_DEFINED__
1214 #define __IRelatedItem_FWD_DEFINED__
1215 typedef interface IRelatedItem IRelatedItem;
1216 #ifdef __cplusplus
1217 interface IRelatedItem;
1218 #endif /* __cplusplus */
1219 #endif
1220 
1221 #ifndef __IIdentityName_FWD_DEFINED__
1222 #define __IIdentityName_FWD_DEFINED__
1223 typedef interface IIdentityName IIdentityName;
1224 #ifdef __cplusplus
1225 interface IIdentityName;
1226 #endif /* __cplusplus */
1227 #endif
1228 
1229 #ifndef __IDelegateItem_FWD_DEFINED__
1230 #define __IDelegateItem_FWD_DEFINED__
1231 typedef interface IDelegateItem IDelegateItem;
1232 #ifdef __cplusplus
1233 interface IDelegateItem;
1234 #endif /* __cplusplus */
1235 #endif
1236 
1237 #ifndef __ICurrentItem_FWD_DEFINED__
1238 #define __ICurrentItem_FWD_DEFINED__
1239 typedef interface ICurrentItem ICurrentItem;
1240 #ifdef __cplusplus
1241 interface ICurrentItem;
1242 #endif /* __cplusplus */
1243 #endif
1244 
1245 #ifndef __ITransferMediumItem_FWD_DEFINED__
1246 #define __ITransferMediumItem_FWD_DEFINED__
1247 typedef interface ITransferMediumItem ITransferMediumItem;
1248 #ifdef __cplusplus
1249 interface ITransferMediumItem;
1250 #endif /* __cplusplus */
1251 #endif
1252 
1253 #ifndef __IUseToBrowseItem_FWD_DEFINED__
1254 #define __IUseToBrowseItem_FWD_DEFINED__
1255 typedef interface IUseToBrowseItem IUseToBrowseItem;
1256 #ifdef __cplusplus
1257 interface IUseToBrowseItem;
1258 #endif /* __cplusplus */
1259 #endif
1260 
1261 #ifndef __IDisplayItem_FWD_DEFINED__
1262 #define __IDisplayItem_FWD_DEFINED__
1263 typedef interface IDisplayItem IDisplayItem;
1264 #ifdef __cplusplus
1265 interface IDisplayItem;
1266 #endif /* __cplusplus */
1267 #endif
1268 
1269 #ifndef __IViewStateIdentityItem_FWD_DEFINED__
1270 #define __IViewStateIdentityItem_FWD_DEFINED__
1271 typedef interface IViewStateIdentityItem IViewStateIdentityItem;
1272 #ifdef __cplusplus
1273 interface IViewStateIdentityItem;
1274 #endif /* __cplusplus */
1275 #endif
1276 
1277 #ifndef __IPreviewItem_FWD_DEFINED__
1278 #define __IPreviewItem_FWD_DEFINED__
1279 typedef interface IPreviewItem IPreviewItem;
1280 #ifdef __cplusplus
1281 interface IPreviewItem;
1282 #endif /* __cplusplus */
1283 #endif
1284 
1285 #ifndef __IDestinationStreamFactory_FWD_DEFINED__
1286 #define __IDestinationStreamFactory_FWD_DEFINED__
1287 typedef interface IDestinationStreamFactory IDestinationStreamFactory;
1288 #ifdef __cplusplus
1289 interface IDestinationStreamFactory;
1290 #endif /* __cplusplus */
1291 #endif
1292 
1293 #ifndef __INewMenuClient_FWD_DEFINED__
1294 #define __INewMenuClient_FWD_DEFINED__
1295 typedef interface INewMenuClient INewMenuClient;
1296 #ifdef __cplusplus
1297 interface INewMenuClient;
1298 #endif /* __cplusplus */
1299 #endif
1300 
1301 #ifndef __IInitializeWithBindCtx_FWD_DEFINED__
1302 #define __IInitializeWithBindCtx_FWD_DEFINED__
1303 typedef interface IInitializeWithBindCtx IInitializeWithBindCtx;
1304 #ifdef __cplusplus
1305 interface IInitializeWithBindCtx;
1306 #endif /* __cplusplus */
1307 #endif
1308 
1309 #ifndef __IShellItemFilter_FWD_DEFINED__
1310 #define __IShellItemFilter_FWD_DEFINED__
1311 typedef interface IShellItemFilter IShellItemFilter;
1312 #ifdef __cplusplus
1313 interface IShellItemFilter;
1314 #endif /* __cplusplus */
1315 #endif
1316 
1317 #ifndef __INameSpaceTreeControl_FWD_DEFINED__
1318 #define __INameSpaceTreeControl_FWD_DEFINED__
1319 typedef interface INameSpaceTreeControl INameSpaceTreeControl;
1320 #ifdef __cplusplus
1321 interface INameSpaceTreeControl;
1322 #endif /* __cplusplus */
1323 #endif
1324 
1325 #ifndef __INameSpaceTreeControl2_FWD_DEFINED__
1326 #define __INameSpaceTreeControl2_FWD_DEFINED__
1327 typedef interface INameSpaceTreeControl2 INameSpaceTreeControl2;
1328 #ifdef __cplusplus
1329 interface INameSpaceTreeControl2;
1330 #endif /* __cplusplus */
1331 #endif
1332 
1333 #ifndef __INameSpaceTreeControlEvents_FWD_DEFINED__
1334 #define __INameSpaceTreeControlEvents_FWD_DEFINED__
1335 typedef interface INameSpaceTreeControlEvents INameSpaceTreeControlEvents;
1336 #ifdef __cplusplus
1337 interface INameSpaceTreeControlEvents;
1338 #endif /* __cplusplus */
1339 #endif
1340 
1341 #ifndef __INameSpaceTreeControlDropHandler_FWD_DEFINED__
1342 #define __INameSpaceTreeControlDropHandler_FWD_DEFINED__
1343 typedef interface INameSpaceTreeControlDropHandler INameSpaceTreeControlDropHandler;
1344 #ifdef __cplusplus
1345 interface INameSpaceTreeControlDropHandler;
1346 #endif /* __cplusplus */
1347 #endif
1348 
1349 #ifndef __INameSpaceTreeAccessible_FWD_DEFINED__
1350 #define __INameSpaceTreeAccessible_FWD_DEFINED__
1351 typedef interface INameSpaceTreeAccessible INameSpaceTreeAccessible;
1352 #ifdef __cplusplus
1353 interface INameSpaceTreeAccessible;
1354 #endif /* __cplusplus */
1355 #endif
1356 
1357 #ifndef __INameSpaceTreeControlCustomDraw_FWD_DEFINED__
1358 #define __INameSpaceTreeControlCustomDraw_FWD_DEFINED__
1359 typedef interface INameSpaceTreeControlCustomDraw INameSpaceTreeControlCustomDraw;
1360 #ifdef __cplusplus
1361 interface INameSpaceTreeControlCustomDraw;
1362 #endif /* __cplusplus */
1363 #endif
1364 
1365 #ifndef __INameSpaceTreeControlFolderCapabilities_FWD_DEFINED__
1366 #define __INameSpaceTreeControlFolderCapabilities_FWD_DEFINED__
1367 typedef interface INameSpaceTreeControlFolderCapabilities INameSpaceTreeControlFolderCapabilities;
1368 #ifdef __cplusplus
1369 interface INameSpaceTreeControlFolderCapabilities;
1370 #endif /* __cplusplus */
1371 #endif
1372 
1373 #ifndef __IPreviewHandler_FWD_DEFINED__
1374 #define __IPreviewHandler_FWD_DEFINED__
1375 typedef interface IPreviewHandler IPreviewHandler;
1376 #ifdef __cplusplus
1377 interface IPreviewHandler;
1378 #endif /* __cplusplus */
1379 #endif
1380 
1381 #ifndef __IPreviewHandlerFrame_FWD_DEFINED__
1382 #define __IPreviewHandlerFrame_FWD_DEFINED__
1383 typedef interface IPreviewHandlerFrame IPreviewHandlerFrame;
1384 #ifdef __cplusplus
1385 interface IPreviewHandlerFrame;
1386 #endif /* __cplusplus */
1387 #endif
1388 
1389 #ifndef __ITrayDeskBand_FWD_DEFINED__
1390 #define __ITrayDeskBand_FWD_DEFINED__
1391 typedef interface ITrayDeskBand ITrayDeskBand;
1392 #ifdef __cplusplus
1393 interface ITrayDeskBand;
1394 #endif /* __cplusplus */
1395 #endif
1396 
1397 #ifndef __IBandHost_FWD_DEFINED__
1398 #define __IBandHost_FWD_DEFINED__
1399 typedef interface IBandHost IBandHost;
1400 #ifdef __cplusplus
1401 interface IBandHost;
1402 #endif /* __cplusplus */
1403 #endif
1404 
1405 #ifndef __IExplorerPaneVisibility_FWD_DEFINED__
1406 #define __IExplorerPaneVisibility_FWD_DEFINED__
1407 typedef interface IExplorerPaneVisibility IExplorerPaneVisibility;
1408 #ifdef __cplusplus
1409 interface IExplorerPaneVisibility;
1410 #endif /* __cplusplus */
1411 #endif
1412 
1413 #ifndef __IContextMenuCB_FWD_DEFINED__
1414 #define __IContextMenuCB_FWD_DEFINED__
1415 typedef interface IContextMenuCB IContextMenuCB;
1416 #ifdef __cplusplus
1417 interface IContextMenuCB;
1418 #endif /* __cplusplus */
1419 #endif
1420 
1421 #ifndef __IDefaultExtractIconInit_FWD_DEFINED__
1422 #define __IDefaultExtractIconInit_FWD_DEFINED__
1423 typedef interface IDefaultExtractIconInit IDefaultExtractIconInit;
1424 #ifdef __cplusplus
1425 interface IDefaultExtractIconInit;
1426 #endif /* __cplusplus */
1427 #endif
1428 
1429 #ifndef __IExplorerCommand_FWD_DEFINED__
1430 #define __IExplorerCommand_FWD_DEFINED__
1431 typedef interface IExplorerCommand IExplorerCommand;
1432 #ifdef __cplusplus
1433 interface IExplorerCommand;
1434 #endif /* __cplusplus */
1435 #endif
1436 
1437 #ifndef __IExplorerCommandState_FWD_DEFINED__
1438 #define __IExplorerCommandState_FWD_DEFINED__
1439 typedef interface IExplorerCommandState IExplorerCommandState;
1440 #ifdef __cplusplus
1441 interface IExplorerCommandState;
1442 #endif /* __cplusplus */
1443 #endif
1444 
1445 #ifndef __IInitializeCommand_FWD_DEFINED__
1446 #define __IInitializeCommand_FWD_DEFINED__
1447 typedef interface IInitializeCommand IInitializeCommand;
1448 #ifdef __cplusplus
1449 interface IInitializeCommand;
1450 #endif /* __cplusplus */
1451 #endif
1452 
1453 #ifndef __IEnumExplorerCommand_FWD_DEFINED__
1454 #define __IEnumExplorerCommand_FWD_DEFINED__
1455 typedef interface IEnumExplorerCommand IEnumExplorerCommand;
1456 #ifdef __cplusplus
1457 interface IEnumExplorerCommand;
1458 #endif /* __cplusplus */
1459 #endif
1460 
1461 #ifndef __IExplorerCommandProvider_FWD_DEFINED__
1462 #define __IExplorerCommandProvider_FWD_DEFINED__
1463 typedef interface IExplorerCommandProvider IExplorerCommandProvider;
1464 #ifdef __cplusplus
1465 interface IExplorerCommandProvider;
1466 #endif /* __cplusplus */
1467 #endif
1468 
1469 #ifndef __IInitializeNetworkFolder_FWD_DEFINED__
1470 #define __IInitializeNetworkFolder_FWD_DEFINED__
1471 typedef interface IInitializeNetworkFolder IInitializeNetworkFolder;
1472 #ifdef __cplusplus
1473 interface IInitializeNetworkFolder;
1474 #endif /* __cplusplus */
1475 #endif
1476 
1477 #ifndef __IOpenControlPanel_FWD_DEFINED__
1478 #define __IOpenControlPanel_FWD_DEFINED__
1479 typedef interface IOpenControlPanel IOpenControlPanel;
1480 #ifdef __cplusplus
1481 interface IOpenControlPanel;
1482 #endif /* __cplusplus */
1483 #endif
1484 
1485 #ifndef __IComputerInfoChangeNotify_FWD_DEFINED__
1486 #define __IComputerInfoChangeNotify_FWD_DEFINED__
1487 typedef interface IComputerInfoChangeNotify IComputerInfoChangeNotify;
1488 #ifdef __cplusplus
1489 interface IComputerInfoChangeNotify;
1490 #endif /* __cplusplus */
1491 #endif
1492 
1493 #ifndef __IFileSystemBindData_FWD_DEFINED__
1494 #define __IFileSystemBindData_FWD_DEFINED__
1495 typedef interface IFileSystemBindData IFileSystemBindData;
1496 #ifdef __cplusplus
1497 interface IFileSystemBindData;
1498 #endif /* __cplusplus */
1499 #endif
1500 
1501 #ifndef __IFileSystemBindData2_FWD_DEFINED__
1502 #define __IFileSystemBindData2_FWD_DEFINED__
1503 typedef interface IFileSystemBindData2 IFileSystemBindData2;
1504 #ifdef __cplusplus
1505 interface IFileSystemBindData2;
1506 #endif /* __cplusplus */
1507 #endif
1508 
1509 #ifndef __ICustomDestinationList_FWD_DEFINED__
1510 #define __ICustomDestinationList_FWD_DEFINED__
1511 typedef interface ICustomDestinationList ICustomDestinationList;
1512 #ifdef __cplusplus
1513 interface ICustomDestinationList;
1514 #endif /* __cplusplus */
1515 #endif
1516 
1517 #ifndef __IApplicationDestinations_FWD_DEFINED__
1518 #define __IApplicationDestinations_FWD_DEFINED__
1519 typedef interface IApplicationDestinations IApplicationDestinations;
1520 #ifdef __cplusplus
1521 interface IApplicationDestinations;
1522 #endif /* __cplusplus */
1523 #endif
1524 
1525 #ifndef __IApplicationDocumentLists_FWD_DEFINED__
1526 #define __IApplicationDocumentLists_FWD_DEFINED__
1527 typedef interface IApplicationDocumentLists IApplicationDocumentLists;
1528 #ifdef __cplusplus
1529 interface IApplicationDocumentLists;
1530 #endif /* __cplusplus */
1531 #endif
1532 
1533 #ifndef __IObjectWithAppUserModelID_FWD_DEFINED__
1534 #define __IObjectWithAppUserModelID_FWD_DEFINED__
1535 typedef interface IObjectWithAppUserModelID IObjectWithAppUserModelID;
1536 #ifdef __cplusplus
1537 interface IObjectWithAppUserModelID;
1538 #endif /* __cplusplus */
1539 #endif
1540 
1541 #ifndef __IObjectWithProgID_FWD_DEFINED__
1542 #define __IObjectWithProgID_FWD_DEFINED__
1543 typedef interface IObjectWithProgID IObjectWithProgID;
1544 #ifdef __cplusplus
1545 interface IObjectWithProgID;
1546 #endif /* __cplusplus */
1547 #endif
1548 
1549 #ifndef __IUpdateIDList_FWD_DEFINED__
1550 #define __IUpdateIDList_FWD_DEFINED__
1551 typedef interface IUpdateIDList IUpdateIDList;
1552 #ifdef __cplusplus
1553 interface IUpdateIDList;
1554 #endif /* __cplusplus */
1555 #endif
1556 
1557 #ifndef __IDesktopGadget_FWD_DEFINED__
1558 #define __IDesktopGadget_FWD_DEFINED__
1559 typedef interface IDesktopGadget IDesktopGadget;
1560 #ifdef __cplusplus
1561 interface IDesktopGadget;
1562 #endif /* __cplusplus */
1563 #endif
1564 
1565 #ifndef __IDesktopWallpaper_FWD_DEFINED__
1566 #define __IDesktopWallpaper_FWD_DEFINED__
1567 typedef interface IDesktopWallpaper IDesktopWallpaper;
1568 #ifdef __cplusplus
1569 interface IDesktopWallpaper;
1570 #endif /* __cplusplus */
1571 #endif
1572 
1573 #ifndef __IHomeGroup_FWD_DEFINED__
1574 #define __IHomeGroup_FWD_DEFINED__
1575 typedef interface IHomeGroup IHomeGroup;
1576 #ifdef __cplusplus
1577 interface IHomeGroup;
1578 #endif /* __cplusplus */
1579 #endif
1580 
1581 #ifndef __IInitializeWithPropertyStore_FWD_DEFINED__
1582 #define __IInitializeWithPropertyStore_FWD_DEFINED__
1583 typedef interface IInitializeWithPropertyStore IInitializeWithPropertyStore;
1584 #ifdef __cplusplus
1585 interface IInitializeWithPropertyStore;
1586 #endif /* __cplusplus */
1587 #endif
1588 
1589 #ifndef __IOpenSearchSource_FWD_DEFINED__
1590 #define __IOpenSearchSource_FWD_DEFINED__
1591 typedef interface IOpenSearchSource IOpenSearchSource;
1592 #ifdef __cplusplus
1593 interface IOpenSearchSource;
1594 #endif /* __cplusplus */
1595 #endif
1596 
1597 #ifndef __IShellLibrary_FWD_DEFINED__
1598 #define __IShellLibrary_FWD_DEFINED__
1599 typedef interface IShellLibrary IShellLibrary;
1600 #ifdef __cplusplus
1601 interface IShellLibrary;
1602 #endif /* __cplusplus */
1603 #endif
1604 
1605 #ifndef __IPlaybackManagerEvents_FWD_DEFINED__
1606 #define __IPlaybackManagerEvents_FWD_DEFINED__
1607 typedef interface IPlaybackManagerEvents IPlaybackManagerEvents;
1608 #ifdef __cplusplus
1609 interface IPlaybackManagerEvents;
1610 #endif /* __cplusplus */
1611 #endif
1612 
1613 #ifndef __IPlaybackManager_FWD_DEFINED__
1614 #define __IPlaybackManager_FWD_DEFINED__
1615 typedef interface IPlaybackManager IPlaybackManager;
1616 #ifdef __cplusplus
1617 interface IPlaybackManager;
1618 #endif /* __cplusplus */
1619 #endif
1620 
1621 #ifndef __IDefaultFolderMenuInitialize_FWD_DEFINED__
1622 #define __IDefaultFolderMenuInitialize_FWD_DEFINED__
1623 typedef interface IDefaultFolderMenuInitialize IDefaultFolderMenuInitialize;
1624 #ifdef __cplusplus
1625 interface IDefaultFolderMenuInitialize;
1626 #endif /* __cplusplus */
1627 #endif
1628 
1629 #ifndef __IApplicationActivationManager_FWD_DEFINED__
1630 #define __IApplicationActivationManager_FWD_DEFINED__
1631 typedef interface IApplicationActivationManager IApplicationActivationManager;
1632 #ifdef __cplusplus
1633 interface IApplicationActivationManager;
1634 #endif /* __cplusplus */
1635 #endif
1636 
1637 #ifndef __DesktopWallpaper_FWD_DEFINED__
1638 #define __DesktopWallpaper_FWD_DEFINED__
1639 #ifdef __cplusplus
1640 typedef class DesktopWallpaper DesktopWallpaper;
1641 #else
1642 typedef struct DesktopWallpaper DesktopWallpaper;
1643 #endif /* defined __cplusplus */
1644 #endif /* defined __DesktopWallpaper_FWD_DEFINED__ */
1645 
1646 #ifndef __ShellDesktop_FWD_DEFINED__
1647 #define __ShellDesktop_FWD_DEFINED__
1648 #ifdef __cplusplus
1649 typedef class ShellDesktop ShellDesktop;
1650 #else
1651 typedef struct ShellDesktop ShellDesktop;
1652 #endif /* defined __cplusplus */
1653 #endif /* defined __ShellDesktop_FWD_DEFINED__ */
1654 
1655 #ifndef __ShellFSFolder_FWD_DEFINED__
1656 #define __ShellFSFolder_FWD_DEFINED__
1657 #ifdef __cplusplus
1658 typedef class ShellFSFolder ShellFSFolder;
1659 #else
1660 typedef struct ShellFSFolder ShellFSFolder;
1661 #endif /* defined __cplusplus */
1662 #endif /* defined __ShellFSFolder_FWD_DEFINED__ */
1663 
1664 #ifndef __NetworkPlaces_FWD_DEFINED__
1665 #define __NetworkPlaces_FWD_DEFINED__
1666 #ifdef __cplusplus
1667 typedef class NetworkPlaces NetworkPlaces;
1668 #else
1669 typedef struct NetworkPlaces NetworkPlaces;
1670 #endif /* defined __cplusplus */
1671 #endif /* defined __NetworkPlaces_FWD_DEFINED__ */
1672 
1673 #ifndef __ShellLink_FWD_DEFINED__
1674 #define __ShellLink_FWD_DEFINED__
1675 #ifdef __cplusplus
1676 typedef class ShellLink ShellLink;
1677 #else
1678 typedef struct ShellLink ShellLink;
1679 #endif /* defined __cplusplus */
1680 #endif /* defined __ShellLink_FWD_DEFINED__ */
1681 
1682 #ifndef __QueryCancelAutoPlay_FWD_DEFINED__
1683 #define __QueryCancelAutoPlay_FWD_DEFINED__
1684 #ifdef __cplusplus
1685 typedef class QueryCancelAutoPlay QueryCancelAutoPlay;
1686 #else
1687 typedef struct QueryCancelAutoPlay QueryCancelAutoPlay;
1688 #endif /* defined __cplusplus */
1689 #endif /* defined __QueryCancelAutoPlay_FWD_DEFINED__ */
1690 
1691 #ifndef __DriveSizeCategorizer_FWD_DEFINED__
1692 #define __DriveSizeCategorizer_FWD_DEFINED__
1693 #ifdef __cplusplus
1694 typedef class DriveSizeCategorizer DriveSizeCategorizer;
1695 #else
1696 typedef struct DriveSizeCategorizer DriveSizeCategorizer;
1697 #endif /* defined __cplusplus */
1698 #endif /* defined __DriveSizeCategorizer_FWD_DEFINED__ */
1699 
1700 #ifndef __DriveTypeCategorizer_FWD_DEFINED__
1701 #define __DriveTypeCategorizer_FWD_DEFINED__
1702 #ifdef __cplusplus
1703 typedef class DriveTypeCategorizer DriveTypeCategorizer;
1704 #else
1705 typedef struct DriveTypeCategorizer DriveTypeCategorizer;
1706 #endif /* defined __cplusplus */
1707 #endif /* defined __DriveTypeCategorizer_FWD_DEFINED__ */
1708 
1709 #ifndef __FreeSpaceCategorizer_FWD_DEFINED__
1710 #define __FreeSpaceCategorizer_FWD_DEFINED__
1711 #ifdef __cplusplus
1712 typedef class FreeSpaceCategorizer FreeSpaceCategorizer;
1713 #else
1714 typedef struct FreeSpaceCategorizer FreeSpaceCategorizer;
1715 #endif /* defined __cplusplus */
1716 #endif /* defined __FreeSpaceCategorizer_FWD_DEFINED__ */
1717 
1718 #ifndef __TimeCategorizer_FWD_DEFINED__
1719 #define __TimeCategorizer_FWD_DEFINED__
1720 #ifdef __cplusplus
1721 typedef class TimeCategorizer TimeCategorizer;
1722 #else
1723 typedef struct TimeCategorizer TimeCategorizer;
1724 #endif /* defined __cplusplus */
1725 #endif /* defined __TimeCategorizer_FWD_DEFINED__ */
1726 
1727 #ifndef __SizeCategorizer_FWD_DEFINED__
1728 #define __SizeCategorizer_FWD_DEFINED__
1729 #ifdef __cplusplus
1730 typedef class SizeCategorizer SizeCategorizer;
1731 #else
1732 typedef struct SizeCategorizer SizeCategorizer;
1733 #endif /* defined __cplusplus */
1734 #endif /* defined __SizeCategorizer_FWD_DEFINED__ */
1735 
1736 #ifndef __AlphabeticalCategorizer_FWD_DEFINED__
1737 #define __AlphabeticalCategorizer_FWD_DEFINED__
1738 #ifdef __cplusplus
1739 typedef class AlphabeticalCategorizer AlphabeticalCategorizer;
1740 #else
1741 typedef struct AlphabeticalCategorizer AlphabeticalCategorizer;
1742 #endif /* defined __cplusplus */
1743 #endif /* defined __AlphabeticalCategorizer_FWD_DEFINED__ */
1744 
1745 #ifndef __MergedCategorizer_FWD_DEFINED__
1746 #define __MergedCategorizer_FWD_DEFINED__
1747 #ifdef __cplusplus
1748 typedef class MergedCategorizer MergedCategorizer;
1749 #else
1750 typedef struct MergedCategorizer MergedCategorizer;
1751 #endif /* defined __cplusplus */
1752 #endif /* defined __MergedCategorizer_FWD_DEFINED__ */
1753 
1754 #ifndef __ImageProperties_FWD_DEFINED__
1755 #define __ImageProperties_FWD_DEFINED__
1756 #ifdef __cplusplus
1757 typedef class ImageProperties ImageProperties;
1758 #else
1759 typedef struct ImageProperties ImageProperties;
1760 #endif /* defined __cplusplus */
1761 #endif /* defined __ImageProperties_FWD_DEFINED__ */
1762 
1763 #ifndef __PropertiesUI_FWD_DEFINED__
1764 #define __PropertiesUI_FWD_DEFINED__
1765 #ifdef __cplusplus
1766 typedef class PropertiesUI PropertiesUI;
1767 #else
1768 typedef struct PropertiesUI PropertiesUI;
1769 #endif /* defined __cplusplus */
1770 #endif /* defined __PropertiesUI_FWD_DEFINED__ */
1771 
1772 #ifndef __UserNotification_FWD_DEFINED__
1773 #define __UserNotification_FWD_DEFINED__
1774 #ifdef __cplusplus
1775 typedef class UserNotification UserNotification;
1776 #else
1777 typedef struct UserNotification UserNotification;
1778 #endif /* defined __cplusplus */
1779 #endif /* defined __UserNotification_FWD_DEFINED__ */
1780 
1781 #ifndef __CDBurn_FWD_DEFINED__
1782 #define __CDBurn_FWD_DEFINED__
1783 #ifdef __cplusplus
1784 typedef class CDBurn CDBurn;
1785 #else
1786 typedef struct CDBurn CDBurn;
1787 #endif /* defined __cplusplus */
1788 #endif /* defined __CDBurn_FWD_DEFINED__ */
1789 
1790 #ifndef __TaskbarList_FWD_DEFINED__
1791 #define __TaskbarList_FWD_DEFINED__
1792 #ifdef __cplusplus
1793 typedef class TaskbarList TaskbarList;
1794 #else
1795 typedef struct TaskbarList TaskbarList;
1796 #endif /* defined __cplusplus */
1797 #endif /* defined __TaskbarList_FWD_DEFINED__ */
1798 
1799 #ifndef __StartMenuPin_FWD_DEFINED__
1800 #define __StartMenuPin_FWD_DEFINED__
1801 #ifdef __cplusplus
1802 typedef class StartMenuPin StartMenuPin;
1803 #else
1804 typedef struct StartMenuPin StartMenuPin;
1805 #endif /* defined __cplusplus */
1806 #endif /* defined __StartMenuPin_FWD_DEFINED__ */
1807 
1808 #ifndef __WebWizardHost_FWD_DEFINED__
1809 #define __WebWizardHost_FWD_DEFINED__
1810 #ifdef __cplusplus
1811 typedef class WebWizardHost WebWizardHost;
1812 #else
1813 typedef struct WebWizardHost WebWizardHost;
1814 #endif /* defined __cplusplus */
1815 #endif /* defined __WebWizardHost_FWD_DEFINED__ */
1816 
1817 #ifndef __PublishDropTarget_FWD_DEFINED__
1818 #define __PublishDropTarget_FWD_DEFINED__
1819 #ifdef __cplusplus
1820 typedef class PublishDropTarget PublishDropTarget;
1821 #else
1822 typedef struct PublishDropTarget PublishDropTarget;
1823 #endif /* defined __cplusplus */
1824 #endif /* defined __PublishDropTarget_FWD_DEFINED__ */
1825 
1826 #ifndef __PublishingWizard_FWD_DEFINED__
1827 #define __PublishingWizard_FWD_DEFINED__
1828 #ifdef __cplusplus
1829 typedef class PublishingWizard PublishingWizard;
1830 #else
1831 typedef struct PublishingWizard PublishingWizard;
1832 #endif /* defined __cplusplus */
1833 #endif /* defined __PublishingWizard_FWD_DEFINED__ */
1834 
1835 #ifndef __InternetPrintOrdering_FWD_DEFINED__
1836 #define __InternetPrintOrdering_FWD_DEFINED__
1837 #ifdef __cplusplus
1838 typedef class InternetPrintOrdering InternetPrintOrdering;
1839 #else
1840 typedef struct InternetPrintOrdering InternetPrintOrdering;
1841 #endif /* defined __cplusplus */
1842 #endif /* defined __InternetPrintOrdering_FWD_DEFINED__ */
1843 
1844 #ifndef __FolderViewHost_FWD_DEFINED__
1845 #define __FolderViewHost_FWD_DEFINED__
1846 #ifdef __cplusplus
1847 typedef class FolderViewHost FolderViewHost;
1848 #else
1849 typedef struct FolderViewHost FolderViewHost;
1850 #endif /* defined __cplusplus */
1851 #endif /* defined __FolderViewHost_FWD_DEFINED__ */
1852 
1853 #ifndef __ExplorerBrowser_FWD_DEFINED__
1854 #define __ExplorerBrowser_FWD_DEFINED__
1855 #ifdef __cplusplus
1856 typedef class ExplorerBrowser ExplorerBrowser;
1857 #else
1858 typedef struct ExplorerBrowser ExplorerBrowser;
1859 #endif /* defined __cplusplus */
1860 #endif /* defined __ExplorerBrowser_FWD_DEFINED__ */
1861 
1862 #ifndef __ImageRecompress_FWD_DEFINED__
1863 #define __ImageRecompress_FWD_DEFINED__
1864 #ifdef __cplusplus
1865 typedef class ImageRecompress ImageRecompress;
1866 #else
1867 typedef struct ImageRecompress ImageRecompress;
1868 #endif /* defined __cplusplus */
1869 #endif /* defined __ImageRecompress_FWD_DEFINED__ */
1870 
1871 #ifndef __TrayBandSiteService_FWD_DEFINED__
1872 #define __TrayBandSiteService_FWD_DEFINED__
1873 #ifdef __cplusplus
1874 typedef class TrayBandSiteService TrayBandSiteService;
1875 #else
1876 typedef struct TrayBandSiteService TrayBandSiteService;
1877 #endif /* defined __cplusplus */
1878 #endif /* defined __TrayBandSiteService_FWD_DEFINED__ */
1879 
1880 #ifndef __TrayDeskBand_FWD_DEFINED__
1881 #define __TrayDeskBand_FWD_DEFINED__
1882 #ifdef __cplusplus
1883 typedef class TrayDeskBand TrayDeskBand;
1884 #else
1885 typedef struct TrayDeskBand TrayDeskBand;
1886 #endif /* defined __cplusplus */
1887 #endif /* defined __TrayDeskBand_FWD_DEFINED__ */
1888 
1889 #ifndef __AttachmentServices_FWD_DEFINED__
1890 #define __AttachmentServices_FWD_DEFINED__
1891 #ifdef __cplusplus
1892 typedef class AttachmentServices AttachmentServices;
1893 #else
1894 typedef struct AttachmentServices AttachmentServices;
1895 #endif /* defined __cplusplus */
1896 #endif /* defined __AttachmentServices_FWD_DEFINED__ */
1897 
1898 #ifndef __DocPropShellExtension_FWD_DEFINED__
1899 #define __DocPropShellExtension_FWD_DEFINED__
1900 #ifdef __cplusplus
1901 typedef class DocPropShellExtension DocPropShellExtension;
1902 #else
1903 typedef struct DocPropShellExtension DocPropShellExtension;
1904 #endif /* defined __cplusplus */
1905 #endif /* defined __DocPropShellExtension_FWD_DEFINED__ */
1906 
1907 #ifndef __ShellItem_FWD_DEFINED__
1908 #define __ShellItem_FWD_DEFINED__
1909 #ifdef __cplusplus
1910 typedef class ShellItem ShellItem;
1911 #else
1912 typedef struct ShellItem ShellItem;
1913 #endif /* defined __cplusplus */
1914 #endif /* defined __ShellItem_FWD_DEFINED__ */
1915 
1916 #ifndef __NamespaceWalker_FWD_DEFINED__
1917 #define __NamespaceWalker_FWD_DEFINED__
1918 #ifdef __cplusplus
1919 typedef class NamespaceWalker NamespaceWalker;
1920 #else
1921 typedef struct NamespaceWalker NamespaceWalker;
1922 #endif /* defined __cplusplus */
1923 #endif /* defined __NamespaceWalker_FWD_DEFINED__ */
1924 
1925 #ifndef __FileOperation_FWD_DEFINED__
1926 #define __FileOperation_FWD_DEFINED__
1927 #ifdef __cplusplus
1928 typedef class FileOperation FileOperation;
1929 #else
1930 typedef struct FileOperation FileOperation;
1931 #endif /* defined __cplusplus */
1932 #endif /* defined __FileOperation_FWD_DEFINED__ */
1933 
1934 #ifndef __FileOpenDialog_FWD_DEFINED__
1935 #define __FileOpenDialog_FWD_DEFINED__
1936 #ifdef __cplusplus
1937 typedef class FileOpenDialog FileOpenDialog;
1938 #else
1939 typedef struct FileOpenDialog FileOpenDialog;
1940 #endif /* defined __cplusplus */
1941 #endif /* defined __FileOpenDialog_FWD_DEFINED__ */
1942 
1943 #ifndef __FileSaveDialog_FWD_DEFINED__
1944 #define __FileSaveDialog_FWD_DEFINED__
1945 #ifdef __cplusplus
1946 typedef class FileSaveDialog FileSaveDialog;
1947 #else
1948 typedef struct FileSaveDialog FileSaveDialog;
1949 #endif /* defined __cplusplus */
1950 #endif /* defined __FileSaveDialog_FWD_DEFINED__ */
1951 
1952 #ifndef __KnownFolderManager_FWD_DEFINED__
1953 #define __KnownFolderManager_FWD_DEFINED__
1954 #ifdef __cplusplus
1955 typedef class KnownFolderManager KnownFolderManager;
1956 #else
1957 typedef struct KnownFolderManager KnownFolderManager;
1958 #endif /* defined __cplusplus */
1959 #endif /* defined __KnownFolderManager_FWD_DEFINED__ */
1960 
1961 #ifndef __FSCopyHandler_FWD_DEFINED__
1962 #define __FSCopyHandler_FWD_DEFINED__
1963 #ifdef __cplusplus
1964 typedef class FSCopyHandler FSCopyHandler;
1965 #else
1966 typedef struct FSCopyHandler FSCopyHandler;
1967 #endif /* defined __cplusplus */
1968 #endif /* defined __FSCopyHandler_FWD_DEFINED__ */
1969 
1970 #ifndef __SharingConfigurationManager_FWD_DEFINED__
1971 #define __SharingConfigurationManager_FWD_DEFINED__
1972 #ifdef __cplusplus
1973 typedef class SharingConfigurationManager SharingConfigurationManager;
1974 #else
1975 typedef struct SharingConfigurationManager SharingConfigurationManager;
1976 #endif /* defined __cplusplus */
1977 #endif /* defined __SharingConfigurationManager_FWD_DEFINED__ */
1978 
1979 #ifndef __PreviousVersions_FWD_DEFINED__
1980 #define __PreviousVersions_FWD_DEFINED__
1981 #ifdef __cplusplus
1982 typedef class PreviousVersions PreviousVersions;
1983 #else
1984 typedef struct PreviousVersions PreviousVersions;
1985 #endif /* defined __cplusplus */
1986 #endif /* defined __PreviousVersions_FWD_DEFINED__ */
1987 
1988 #ifndef __NetworkConnections_FWD_DEFINED__
1989 #define __NetworkConnections_FWD_DEFINED__
1990 #ifdef __cplusplus
1991 typedef class NetworkConnections NetworkConnections;
1992 #else
1993 typedef struct NetworkConnections NetworkConnections;
1994 #endif /* defined __cplusplus */
1995 #endif /* defined __NetworkConnections_FWD_DEFINED__ */
1996 
1997 #ifndef __NamespaceTreeControl_FWD_DEFINED__
1998 #define __NamespaceTreeControl_FWD_DEFINED__
1999 #ifdef __cplusplus
2000 typedef class NamespaceTreeControl NamespaceTreeControl;
2001 #else
2002 typedef struct NamespaceTreeControl NamespaceTreeControl;
2003 #endif /* defined __cplusplus */
2004 #endif /* defined __NamespaceTreeControl_FWD_DEFINED__ */
2005 
2006 #ifndef __IENamespaceTreeControl_FWD_DEFINED__
2007 #define __IENamespaceTreeControl_FWD_DEFINED__
2008 #ifdef __cplusplus
2009 typedef class IENamespaceTreeControl IENamespaceTreeControl;
2010 #else
2011 typedef struct IENamespaceTreeControl IENamespaceTreeControl;
2012 #endif /* defined __cplusplus */
2013 #endif /* defined __IENamespaceTreeControl_FWD_DEFINED__ */
2014 
2015 #ifndef __ScheduledTasks_FWD_DEFINED__
2016 #define __ScheduledTasks_FWD_DEFINED__
2017 #ifdef __cplusplus
2018 typedef class ScheduledTasks ScheduledTasks;
2019 #else
2020 typedef struct ScheduledTasks ScheduledTasks;
2021 #endif /* defined __cplusplus */
2022 #endif /* defined __ScheduledTasks_FWD_DEFINED__ */
2023 
2024 #ifndef __ApplicationAssociationRegistration_FWD_DEFINED__
2025 #define __ApplicationAssociationRegistration_FWD_DEFINED__
2026 #ifdef __cplusplus
2027 typedef class ApplicationAssociationRegistration ApplicationAssociationRegistration;
2028 #else
2029 typedef struct ApplicationAssociationRegistration ApplicationAssociationRegistration;
2030 #endif /* defined __cplusplus */
2031 #endif /* defined __ApplicationAssociationRegistration_FWD_DEFINED__ */
2032 
2033 #ifndef __ApplicationAssociationRegistrationUI_FWD_DEFINED__
2034 #define __ApplicationAssociationRegistrationUI_FWD_DEFINED__
2035 #ifdef __cplusplus
2036 typedef class ApplicationAssociationRegistrationUI ApplicationAssociationRegistrationUI;
2037 #else
2038 typedef struct ApplicationAssociationRegistrationUI ApplicationAssociationRegistrationUI;
2039 #endif /* defined __cplusplus */
2040 #endif /* defined __ApplicationAssociationRegistrationUI_FWD_DEFINED__ */
2041 
2042 #ifndef __SearchFolderItemFactory_FWD_DEFINED__
2043 #define __SearchFolderItemFactory_FWD_DEFINED__
2044 #ifdef __cplusplus
2045 typedef class SearchFolderItemFactory SearchFolderItemFactory;
2046 #else
2047 typedef struct SearchFolderItemFactory SearchFolderItemFactory;
2048 #endif /* defined __cplusplus */
2049 #endif /* defined __SearchFolderItemFactory_FWD_DEFINED__ */
2050 
2051 #ifndef __OpenControlPanel_FWD_DEFINED__
2052 #define __OpenControlPanel_FWD_DEFINED__
2053 #ifdef __cplusplus
2054 typedef class OpenControlPanel OpenControlPanel;
2055 #else
2056 typedef struct OpenControlPanel OpenControlPanel;
2057 #endif /* defined __cplusplus */
2058 #endif /* defined __OpenControlPanel_FWD_DEFINED__ */
2059 
2060 #ifndef __MailRecipient_FWD_DEFINED__
2061 #define __MailRecipient_FWD_DEFINED__
2062 #ifdef __cplusplus
2063 typedef class MailRecipient MailRecipient;
2064 #else
2065 typedef struct MailRecipient MailRecipient;
2066 #endif /* defined __cplusplus */
2067 #endif /* defined __MailRecipient_FWD_DEFINED__ */
2068 
2069 #ifndef __NetworkExplorerFolder_FWD_DEFINED__
2070 #define __NetworkExplorerFolder_FWD_DEFINED__
2071 #ifdef __cplusplus
2072 typedef class NetworkExplorerFolder NetworkExplorerFolder;
2073 #else
2074 typedef struct NetworkExplorerFolder NetworkExplorerFolder;
2075 #endif /* defined __cplusplus */
2076 #endif /* defined __NetworkExplorerFolder_FWD_DEFINED__ */
2077 
2078 #ifndef __DestinationList_FWD_DEFINED__
2079 #define __DestinationList_FWD_DEFINED__
2080 #ifdef __cplusplus
2081 typedef class DestinationList DestinationList;
2082 #else
2083 typedef struct DestinationList DestinationList;
2084 #endif /* defined __cplusplus */
2085 #endif /* defined __DestinationList_FWD_DEFINED__ */
2086 
2087 #ifndef __ApplicationDestinations_FWD_DEFINED__
2088 #define __ApplicationDestinations_FWD_DEFINED__
2089 #ifdef __cplusplus
2090 typedef class ApplicationDestinations ApplicationDestinations;
2091 #else
2092 typedef struct ApplicationDestinations ApplicationDestinations;
2093 #endif /* defined __cplusplus */
2094 #endif /* defined __ApplicationDestinations_FWD_DEFINED__ */
2095 
2096 #ifndef __ApplicationDocumentLists_FWD_DEFINED__
2097 #define __ApplicationDocumentLists_FWD_DEFINED__
2098 #ifdef __cplusplus
2099 typedef class ApplicationDocumentLists ApplicationDocumentLists;
2100 #else
2101 typedef struct ApplicationDocumentLists ApplicationDocumentLists;
2102 #endif /* defined __cplusplus */
2103 #endif /* defined __ApplicationDocumentLists_FWD_DEFINED__ */
2104 
2105 #ifndef __HomeGroup_FWD_DEFINED__
2106 #define __HomeGroup_FWD_DEFINED__
2107 #ifdef __cplusplus
2108 typedef class HomeGroup HomeGroup;
2109 #else
2110 typedef struct HomeGroup HomeGroup;
2111 #endif /* defined __cplusplus */
2112 #endif /* defined __HomeGroup_FWD_DEFINED__ */
2113 
2114 #ifndef __ShellLibrary_FWD_DEFINED__
2115 #define __ShellLibrary_FWD_DEFINED__
2116 #ifdef __cplusplus
2117 typedef class ShellLibrary ShellLibrary;
2118 #else
2119 typedef struct ShellLibrary ShellLibrary;
2120 #endif /* defined __cplusplus */
2121 #endif /* defined __ShellLibrary_FWD_DEFINED__ */
2122 
2123 #ifndef __AppStartupLink_FWD_DEFINED__
2124 #define __AppStartupLink_FWD_DEFINED__
2125 #ifdef __cplusplus
2126 typedef class AppStartupLink AppStartupLink;
2127 #else
2128 typedef struct AppStartupLink AppStartupLink;
2129 #endif /* defined __cplusplus */
2130 #endif /* defined __AppStartupLink_FWD_DEFINED__ */
2131 
2132 #ifndef __EnumerableObjectCollection_FWD_DEFINED__
2133 #define __EnumerableObjectCollection_FWD_DEFINED__
2134 #ifdef __cplusplus
2135 typedef class EnumerableObjectCollection EnumerableObjectCollection;
2136 #else
2137 typedef struct EnumerableObjectCollection EnumerableObjectCollection;
2138 #endif /* defined __cplusplus */
2139 #endif /* defined __EnumerableObjectCollection_FWD_DEFINED__ */
2140 
2141 #ifndef __DesktopGadget_FWD_DEFINED__
2142 #define __DesktopGadget_FWD_DEFINED__
2143 #ifdef __cplusplus
2144 typedef class DesktopGadget DesktopGadget;
2145 #else
2146 typedef struct DesktopGadget DesktopGadget;
2147 #endif /* defined __cplusplus */
2148 #endif /* defined __DesktopGadget_FWD_DEFINED__ */
2149 
2150 #ifndef __PlaybackManager_FWD_DEFINED__
2151 #define __PlaybackManager_FWD_DEFINED__
2152 #ifdef __cplusplus
2153 typedef class PlaybackManager PlaybackManager;
2154 #else
2155 typedef struct PlaybackManager PlaybackManager;
2156 #endif /* defined __cplusplus */
2157 #endif /* defined __PlaybackManager_FWD_DEFINED__ */
2158 
2159 #ifndef __AccessibilityDockingService_FWD_DEFINED__
2160 #define __AccessibilityDockingService_FWD_DEFINED__
2161 #ifdef __cplusplus
2162 typedef class AccessibilityDockingService AccessibilityDockingService;
2163 #else
2164 typedef struct AccessibilityDockingService AccessibilityDockingService;
2165 #endif /* defined __cplusplus */
2166 #endif /* defined __AccessibilityDockingService_FWD_DEFINED__ */
2167 
2168 #ifndef __FrameworkInputPane_FWD_DEFINED__
2169 #define __FrameworkInputPane_FWD_DEFINED__
2170 #ifdef __cplusplus
2171 typedef class FrameworkInputPane FrameworkInputPane;
2172 #else
2173 typedef struct FrameworkInputPane FrameworkInputPane;
2174 #endif /* defined __cplusplus */
2175 #endif /* defined __FrameworkInputPane_FWD_DEFINED__ */
2176 
2177 #ifndef __DefFolderMenu_FWD_DEFINED__
2178 #define __DefFolderMenu_FWD_DEFINED__
2179 #ifdef __cplusplus
2180 typedef class DefFolderMenu DefFolderMenu;
2181 #else
2182 typedef struct DefFolderMenu DefFolderMenu;
2183 #endif /* defined __cplusplus */
2184 #endif /* defined __DefFolderMenu_FWD_DEFINED__ */
2185 
2186 #ifndef __AppVisibility_FWD_DEFINED__
2187 #define __AppVisibility_FWD_DEFINED__
2188 #ifdef __cplusplus
2189 typedef class AppVisibility AppVisibility;
2190 #else
2191 typedef struct AppVisibility AppVisibility;
2192 #endif /* defined __cplusplus */
2193 #endif /* defined __AppVisibility_FWD_DEFINED__ */
2194 
2195 #ifndef __AppShellVerbHandler_FWD_DEFINED__
2196 #define __AppShellVerbHandler_FWD_DEFINED__
2197 #ifdef __cplusplus
2198 typedef class AppShellVerbHandler AppShellVerbHandler;
2199 #else
2200 typedef struct AppShellVerbHandler AppShellVerbHandler;
2201 #endif /* defined __cplusplus */
2202 #endif /* defined __AppShellVerbHandler_FWD_DEFINED__ */
2203 
2204 #ifndef __ExecuteUnknown_FWD_DEFINED__
2205 #define __ExecuteUnknown_FWD_DEFINED__
2206 #ifdef __cplusplus
2207 typedef class ExecuteUnknown ExecuteUnknown;
2208 #else
2209 typedef struct ExecuteUnknown ExecuteUnknown;
2210 #endif /* defined __cplusplus */
2211 #endif /* defined __ExecuteUnknown_FWD_DEFINED__ */
2212 
2213 #ifndef __PackageDebugSettings_FWD_DEFINED__
2214 #define __PackageDebugSettings_FWD_DEFINED__
2215 #ifdef __cplusplus
2216 typedef class PackageDebugSettings PackageDebugSettings;
2217 #else
2218 typedef struct PackageDebugSettings PackageDebugSettings;
2219 #endif /* defined __cplusplus */
2220 #endif /* defined __PackageDebugSettings_FWD_DEFINED__ */
2221 
2222 #ifndef __ApplicationActivationManager_FWD_DEFINED__
2223 #define __ApplicationActivationManager_FWD_DEFINED__
2224 #ifdef __cplusplus
2225 typedef class ApplicationActivationManager ApplicationActivationManager;
2226 #else
2227 typedef struct ApplicationActivationManager ApplicationActivationManager;
2228 #endif /* defined __cplusplus */
2229 #endif /* defined __ApplicationActivationManager_FWD_DEFINED__ */
2230 
2231 #ifndef __ApplicationDesignModeSettings_FWD_DEFINED__
2232 #define __ApplicationDesignModeSettings_FWD_DEFINED__
2233 #ifdef __cplusplus
2234 typedef class ApplicationDesignModeSettings ApplicationDesignModeSettings;
2235 #else
2236 typedef struct ApplicationDesignModeSettings ApplicationDesignModeSettings;
2237 #endif /* defined __cplusplus */
2238 #endif /* defined __ApplicationDesignModeSettings_FWD_DEFINED__ */
2239 
2240 #ifndef __ExecuteFolder_FWD_DEFINED__
2241 #define __ExecuteFolder_FWD_DEFINED__
2242 #ifdef __cplusplus
2243 typedef class ExecuteFolder ExecuteFolder;
2244 #else
2245 typedef struct ExecuteFolder ExecuteFolder;
2246 #endif /* defined __cplusplus */
2247 #endif /* defined __ExecuteFolder_FWD_DEFINED__ */
2248 
2249 #ifndef __IAssocHandlerInvoker_FWD_DEFINED__
2250 #define __IAssocHandlerInvoker_FWD_DEFINED__
2251 typedef interface IAssocHandlerInvoker IAssocHandlerInvoker;
2252 #ifdef __cplusplus
2253 interface IAssocHandlerInvoker;
2254 #endif /* __cplusplus */
2255 #endif
2256 
2257 #ifndef __IAssocHandler_FWD_DEFINED__
2258 #define __IAssocHandler_FWD_DEFINED__
2259 typedef interface IAssocHandler IAssocHandler;
2260 #ifdef __cplusplus
2261 interface IAssocHandler;
2262 #endif /* __cplusplus */
2263 #endif
2264 
2265 #ifndef __IEnumAssocHandlers_FWD_DEFINED__
2266 #define __IEnumAssocHandlers_FWD_DEFINED__
2267 typedef interface IEnumAssocHandlers IEnumAssocHandlers;
2268 #ifdef __cplusplus
2269 interface IEnumAssocHandlers;
2270 #endif /* __cplusplus */
2271 #endif
2272 
2273 #ifndef __IDataObjectProvider_FWD_DEFINED__
2274 #define __IDataObjectProvider_FWD_DEFINED__
2275 typedef interface IDataObjectProvider IDataObjectProvider;
2276 #ifdef __cplusplus
2277 interface IDataObjectProvider;
2278 #endif /* __cplusplus */
2279 #endif
2280 
2281 #ifndef __IDataTransferManagerInterop_FWD_DEFINED__
2282 #define __IDataTransferManagerInterop_FWD_DEFINED__
2283 typedef interface IDataTransferManagerInterop IDataTransferManagerInterop;
2284 #ifdef __cplusplus
2285 interface IDataTransferManagerInterop;
2286 #endif /* __cplusplus */
2287 #endif
2288 
2289 #ifndef __IFrameworkInputPaneHandler_FWD_DEFINED__
2290 #define __IFrameworkInputPaneHandler_FWD_DEFINED__
2291 typedef interface IFrameworkInputPaneHandler IFrameworkInputPaneHandler;
2292 #ifdef __cplusplus
2293 interface IFrameworkInputPaneHandler;
2294 #endif /* __cplusplus */
2295 #endif
2296 
2297 #ifndef __IFrameworkInputPane_FWD_DEFINED__
2298 #define __IFrameworkInputPane_FWD_DEFINED__
2299 typedef interface IFrameworkInputPane IFrameworkInputPane;
2300 #ifdef __cplusplus
2301 interface IFrameworkInputPane;
2302 #endif /* __cplusplus */
2303 #endif
2304 
2305 #ifndef __ISearchableApplication_FWD_DEFINED__
2306 #define __ISearchableApplication_FWD_DEFINED__
2307 typedef interface ISearchableApplication ISearchableApplication;
2308 #ifdef __cplusplus
2309 interface ISearchableApplication;
2310 #endif /* __cplusplus */
2311 #endif
2312 
2313 #ifndef __IAccessibilityDockingServiceCallback_FWD_DEFINED__
2314 #define __IAccessibilityDockingServiceCallback_FWD_DEFINED__
2315 typedef interface IAccessibilityDockingServiceCallback IAccessibilityDockingServiceCallback;
2316 #ifdef __cplusplus
2317 interface IAccessibilityDockingServiceCallback;
2318 #endif /* __cplusplus */
2319 #endif
2320 
2321 #ifndef __IAccessibilityDockingService_FWD_DEFINED__
2322 #define __IAccessibilityDockingService_FWD_DEFINED__
2323 typedef interface IAccessibilityDockingService IAccessibilityDockingService;
2324 #ifdef __cplusplus
2325 interface IAccessibilityDockingService;
2326 #endif /* __cplusplus */
2327 #endif
2328 
2329 #ifndef __IAppVisibilityEvents_FWD_DEFINED__
2330 #define __IAppVisibilityEvents_FWD_DEFINED__
2331 typedef interface IAppVisibilityEvents IAppVisibilityEvents;
2332 #ifdef __cplusplus
2333 interface IAppVisibilityEvents;
2334 #endif /* __cplusplus */
2335 #endif
2336 
2337 #ifndef __IAppVisibility_FWD_DEFINED__
2338 #define __IAppVisibility_FWD_DEFINED__
2339 typedef interface IAppVisibility IAppVisibility;
2340 #ifdef __cplusplus
2341 interface IAppVisibility;
2342 #endif /* __cplusplus */
2343 #endif
2344 
2345 #ifndef __IPackageExecutionStateChangeNotification_FWD_DEFINED__
2346 #define __IPackageExecutionStateChangeNotification_FWD_DEFINED__
2347 typedef interface IPackageExecutionStateChangeNotification IPackageExecutionStateChangeNotification;
2348 #ifdef __cplusplus
2349 interface IPackageExecutionStateChangeNotification;
2350 #endif /* __cplusplus */
2351 #endif
2352 
2353 #ifndef __IPackageDebugSettings_FWD_DEFINED__
2354 #define __IPackageDebugSettings_FWD_DEFINED__
2355 typedef interface IPackageDebugSettings IPackageDebugSettings;
2356 #ifdef __cplusplus
2357 interface IPackageDebugSettings;
2358 #endif /* __cplusplus */
2359 #endif
2360 
2361 #ifndef __IExecuteCommandApplicationHostEnvironment_FWD_DEFINED__
2362 #define __IExecuteCommandApplicationHostEnvironment_FWD_DEFINED__
2363 typedef interface IExecuteCommandApplicationHostEnvironment IExecuteCommandApplicationHostEnvironment;
2364 #ifdef __cplusplus
2365 interface IExecuteCommandApplicationHostEnvironment;
2366 #endif /* __cplusplus */
2367 #endif
2368 
2369 #ifndef __IExecuteCommandHost_FWD_DEFINED__
2370 #define __IExecuteCommandHost_FWD_DEFINED__
2371 typedef interface IExecuteCommandHost IExecuteCommandHost;
2372 #ifdef __cplusplus
2373 interface IExecuteCommandHost;
2374 #endif /* __cplusplus */
2375 #endif
2376 
2377 #ifndef __IApplicationDesignModeSettings_FWD_DEFINED__
2378 #define __IApplicationDesignModeSettings_FWD_DEFINED__
2379 typedef interface IApplicationDesignModeSettings IApplicationDesignModeSettings;
2380 #ifdef __cplusplus
2381 interface IApplicationDesignModeSettings;
2382 #endif /* __cplusplus */
2383 #endif
2384 
2385 #ifndef __IInitializeWithWindow_FWD_DEFINED__
2386 #define __IInitializeWithWindow_FWD_DEFINED__
2387 typedef interface IInitializeWithWindow IInitializeWithWindow;
2388 #ifdef __cplusplus
2389 interface IInitializeWithWindow;
2390 #endif /* __cplusplus */
2391 #endif
2392 
2393 #ifndef __IHandlerInfo_FWD_DEFINED__
2394 #define __IHandlerInfo_FWD_DEFINED__
2395 typedef interface IHandlerInfo IHandlerInfo;
2396 #ifdef __cplusplus
2397 interface IHandlerInfo;
2398 #endif /* __cplusplus */
2399 #endif
2400 
2401 #ifndef __IHandlerActivationHost_FWD_DEFINED__
2402 #define __IHandlerActivationHost_FWD_DEFINED__
2403 typedef interface IHandlerActivationHost IHandlerActivationHost;
2404 #ifdef __cplusplus
2405 interface IHandlerActivationHost;
2406 #endif /* __cplusplus */
2407 #endif
2408 
2409 /* Headers for imported files */
2410 
2411 #include <objidl.h>
2412 #include <oleidl.h>
2413 #include <oaidl.h>
2414 #include <docobj.h>
2415 #include <shtypes.h>
2416 #include <servprov.h>
2417 #include <comcat.h>
2418 #include <propidl.h>
2419 #include <prsht.h>
2420 #include <msxml.h>
2421 #include <wtypes.h>
2422 #include <propsys.h>
2423 #include <objectarray.h>
2424 #include <structuredquerycondition.h>
2425 
2426 #ifdef __cplusplus
2427 extern "C" {
2428 #endif
2429 
2430 /**
2431  * This file is part of the mingw-w64 runtime package.
2432  * No warranty is given; refer to the file DISCLAIMER within this package.
2433  */
2434 
2435 #include <winapifamily.h>
2436 
2437 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
2438 
2439 #include <_mingw_unicode.h>
2440 
2441 
2442 #include <sherrors.h>
2443 
2444 #ifndef SHSTDAPI
2445 #ifdef _SHELL32_
2446 #define SHSTDAPI STDAPI
2447 #define SHSTDAPI_(type) STDAPI_(type)
2448 #else
2449 #define SHSTDAPI EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE
2450 #define SHSTDAPI_(type) EXTERN_C DECLSPEC_IMPORT type STDAPICALLTYPE
2451 #endif
2452 #endif
2453 
2454 #define CMF_NORMAL 0x0
2455 #define CMF_DEFAULTONLY 0x1
2456 #define CMF_VERBSONLY 0x2
2457 #define CMF_EXPLORE 0x4
2458 #define CMF_NOVERBS 0x8
2459 #define CMF_CANRENAME 0x10
2460 #define CMF_NODEFAULT 0x20
2461 #if NTDDI_VERSION < NTDDI_VISTA
2462 #define CMF_INCLUDESTATIC 0x40
2463 #endif
2464 #if NTDDI_VERSION >= NTDDI_VISTA
2465 #define CMF_ITEMMENU 0x80
2466 #endif
2467 #define CMF_EXTENDEDVERBS 0x100
2468 #if NTDDI_VERSION >= NTDDI_VISTA
2469 #define CMF_DISABLEDVERBS 0x200
2470 #endif
2471 #define CMF_ASYNCVERBSTATE 0x400
2472 #define CMF_OPTIMIZEFORINVOKE 0x800
2473 #define CMF_SYNCCASCADEMENU 0x1000
2474 #define CMF_DONOTPICKDEFAULT 0x2000
2475 #define CMF_RESERVED 0xffff0000
2476 
2477 #define GCS_VERBA 0x0
2478 #define GCS_HELPTEXTA 0x1
2479 #define GCS_VALIDATEA 0x2
2480 #define GCS_VERBW 0x4
2481 #define GCS_HELPTEXTW 0x5
2482 #define GCS_VALIDATEW 0x6
2483 #define GCS_VERBICONW 0x14
2484 #define GCS_UNICODE 0x4
2485 
2486 #define GCS_VERB __MINGW_NAME_AW(GCS_VERB)
2487 #define GCS_HELPTEXT __MINGW_NAME_AW(GCS_HELPTEXT)
2488 #define GCS_VALIDATE __MINGW_NAME_AW(GCS_VALIDATE)
2489 
2490 #define CMDSTR_NEWFOLDERA "NewFolder"
2491 #define CMDSTR_VIEWLISTA "ViewList"
2492 #define CMDSTR_VIEWDETAILSA "ViewDetails"
2493 #define CMDSTR_NEWFOLDERW L"NewFolder"
2494 #define CMDSTR_VIEWLISTW L"ViewList"
2495 #define CMDSTR_VIEWDETAILSW L"ViewDetails"
2496 
2497 #define CMDSTR_NEWFOLDER __MINGW_NAME_AW(CMDSTR_NEWFOLDER)
2498 #define CMDSTR_VIEWLIST __MINGW_NAME_AW(CMDSTR_VIEWLIST)
2499 #define CMDSTR_VIEWDETAILS __MINGW_NAME_AW(CMDSTR_VIEWDETAILS)
2500 
2501 #define CMIC_MASK_HOTKEY SEE_MASK_HOTKEY
2502 #define CMIC_MASK_ICON SEE_MASK_ICON
2503 #define CMIC_MASK_FLAG_NO_UI SEE_MASK_FLAG_NO_UI
2504 #define CMIC_MASK_UNICODE SEE_MASK_UNICODE
2505 #define CMIC_MASK_NO_CONSOLE SEE_MASK_NO_CONSOLE
2506 #if NTDDI_VERSION < NTDDI_VISTA
2507 #define CMIC_MASK_HASLINKNAME SEE_MASK_HASLINKNAME
2508 #define CMIC_MASK_HASTITLE SEE_MASK_HASTITLE
2509 #endif
2510 #define CMIC_MASK_FLAG_SEP_VDM SEE_MASK_FLAG_SEPVDM
2511 #define CMIC_MASK_ASYNCOK SEE_MASK_ASYNCOK
2512 #if NTDDI_VERSION >= NTDDI_VISTA
2513 #define CMIC_MASK_NOASYNC SEE_MASK_NOASYNC
2514 #endif
2515 #define CMIC_MASK_SHIFT_DOWN 0x10000000
2516 #define CMIC_MASK_CONTROL_DOWN 0x40000000
2517 #define CMIC_MASK_FLAG_LOG_USAGE SEE_MASK_FLAG_LOG_USAGE
2518 #define CMIC_MASK_NOZONECHECKS SEE_MASK_NOZONECHECKS
2519 #define CMIC_MASK_PTINVOKE 0x20000000
2520 
2521 #include <pshpack8.h>
2522 typedef struct _CMINVOKECOMMANDINFO {
2523     DWORD cbSize;
2524     DWORD fMask;
2525     HWND hwnd;
2526     LPCSTR lpVerb;
2527     LPCSTR lpParameters;
2528     LPCSTR lpDirectory;
2529     int nShow;
2530     DWORD dwHotKey;
2531     HANDLE hIcon;
2532 } CMINVOKECOMMANDINFO;
2533 
2534 typedef CMINVOKECOMMANDINFO *LPCMINVOKECOMMANDINFO;
2535 typedef const CMINVOKECOMMANDINFO *PCCMINVOKECOMMANDINFO;
2536 
2537 typedef struct _CMINVOKECOMMANDINFOEX {
2538     DWORD cbSize;
2539     DWORD fMask;
2540     HWND hwnd;
2541     LPCSTR lpVerb;
2542     LPCSTR lpParameters;
2543     LPCSTR lpDirectory;
2544     int nShow;
2545     DWORD dwHotKey;
2546     HANDLE hIcon;
2547     LPCSTR lpTitle;
2548     LPCWSTR lpVerbW;
2549     LPCWSTR lpParametersW;
2550     LPCWSTR lpDirectoryW;
2551     LPCWSTR lpTitleW;
2552     POINT ptInvoke;
2553 } CMINVOKECOMMANDINFOEX;
2554 
2555 typedef CMINVOKECOMMANDINFOEX *LPCMINVOKECOMMANDINFOEX;
2556 typedef const CMINVOKECOMMANDINFOEX *PCCMINVOKECOMMANDINFOEX;
2557 #include <poppack.h>
2558 
2559 /*****************************************************************************
2560  * IContextMenu interface
2561  */
2562 #ifndef __IContextMenu_INTERFACE_DEFINED__
2563 #define __IContextMenu_INTERFACE_DEFINED__
2564 
2565 DEFINE_GUID(IID_IContextMenu, 0x000214e4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2566 #if defined(__cplusplus) && !defined(CINTERFACE)
2567 MIDL_INTERFACE("000214e4-0000-0000-c000-000000000046")
2568 IContextMenu : public IUnknown
2569 {
2570     virtual HRESULT STDMETHODCALLTYPE QueryContextMenu(
2571         HMENU hmenu,
2572         UINT indexMenu,
2573         UINT idCmdFirst,
2574         UINT idCmdLast,
2575         UINT uFlags) = 0;
2576 
2577     virtual HRESULT STDMETHODCALLTYPE InvokeCommand(
2578         CMINVOKECOMMANDINFO *pici) = 0;
2579 
2580     virtual HRESULT STDMETHODCALLTYPE GetCommandString(
2581         UINT_PTR idCmd,
2582         UINT uType,
2583         UINT *pReserved,
2584         CHAR *pszName,
2585         UINT cchMax) = 0;
2586 
2587 };
2588 #ifdef __CRT_UUID_DECL
2589 __CRT_UUID_DECL(IContextMenu, 0x000214e4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
2590 #endif
2591 #else
2592 typedef struct IContextMenuVtbl {
2593     BEGIN_INTERFACE
2594 
2595     /*** IUnknown methods ***/
2596     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2597         IContextMenu *This,
2598         REFIID riid,
2599         void **ppvObject);
2600 
2601     ULONG (STDMETHODCALLTYPE *AddRef)(
2602         IContextMenu *This);
2603 
2604     ULONG (STDMETHODCALLTYPE *Release)(
2605         IContextMenu *This);
2606 
2607     /*** IContextMenu methods ***/
2608     HRESULT (STDMETHODCALLTYPE *QueryContextMenu)(
2609         IContextMenu *This,
2610         HMENU hmenu,
2611         UINT indexMenu,
2612         UINT idCmdFirst,
2613         UINT idCmdLast,
2614         UINT uFlags);
2615 
2616     HRESULT (STDMETHODCALLTYPE *InvokeCommand)(
2617         IContextMenu *This,
2618         CMINVOKECOMMANDINFO *pici);
2619 
2620     HRESULT (STDMETHODCALLTYPE *GetCommandString)(
2621         IContextMenu *This,
2622         UINT_PTR idCmd,
2623         UINT uType,
2624         UINT *pReserved,
2625         CHAR *pszName,
2626         UINT cchMax);
2627 
2628     END_INTERFACE
2629 } IContextMenuVtbl;
2630 
2631 interface IContextMenu {
2632     CONST_VTBL IContextMenuVtbl* lpVtbl;
2633 };
2634 
2635 #ifdef COBJMACROS
2636 #ifndef WIDL_C_INLINE_WRAPPERS
2637 /*** IUnknown methods ***/
2638 #define IContextMenu_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2639 #define IContextMenu_AddRef(This) (This)->lpVtbl->AddRef(This)
2640 #define IContextMenu_Release(This) (This)->lpVtbl->Release(This)
2641 /*** IContextMenu methods ***/
2642 #define IContextMenu_QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags) (This)->lpVtbl->QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags)
2643 #define IContextMenu_InvokeCommand(This,pici) (This)->lpVtbl->InvokeCommand(This,pici)
2644 #define IContextMenu_GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax) (This)->lpVtbl->GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax)
2645 #else
2646 /*** IUnknown methods ***/
2647 static FORCEINLINE HRESULT IContextMenu_QueryInterface(IContextMenu* This,REFIID riid,void **ppvObject) {
2648     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2649 }
2650 static FORCEINLINE ULONG IContextMenu_AddRef(IContextMenu* This) {
2651     return This->lpVtbl->AddRef(This);
2652 }
2653 static FORCEINLINE ULONG IContextMenu_Release(IContextMenu* This) {
2654     return This->lpVtbl->Release(This);
2655 }
2656 /*** IContextMenu methods ***/
2657 static FORCEINLINE HRESULT IContextMenu_QueryContextMenu(IContextMenu* This,HMENU hmenu,UINT indexMenu,UINT idCmdFirst,UINT idCmdLast,UINT uFlags) {
2658     return This->lpVtbl->QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags);
2659 }
2660 static FORCEINLINE HRESULT IContextMenu_InvokeCommand(IContextMenu* This,CMINVOKECOMMANDINFO *pici) {
2661     return This->lpVtbl->InvokeCommand(This,pici);
2662 }
2663 static FORCEINLINE HRESULT IContextMenu_GetCommandString(IContextMenu* This,UINT_PTR idCmd,UINT uType,UINT *pReserved,CHAR *pszName,UINT cchMax) {
2664     return This->lpVtbl->GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax);
2665 }
2666 #endif
2667 #endif
2668 
2669 #endif
2670 
2671 
2672 #endif  /* __IContextMenu_INTERFACE_DEFINED__ */
2673 
2674 typedef IContextMenu *LPCONTEXTMENU;
2675 
2676 /*****************************************************************************
2677  * IContextMenu2 interface
2678  */
2679 #ifndef __IContextMenu2_INTERFACE_DEFINED__
2680 #define __IContextMenu2_INTERFACE_DEFINED__
2681 
2682 DEFINE_GUID(IID_IContextMenu2, 0x000214f4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2683 #if defined(__cplusplus) && !defined(CINTERFACE)
2684 MIDL_INTERFACE("000214f4-0000-0000-c000-000000000046")
2685 IContextMenu2 : public IContextMenu
2686 {
2687     virtual HRESULT STDMETHODCALLTYPE HandleMenuMsg(
2688         UINT uMsg,
2689         WPARAM wParam,
2690         LPARAM lParam) = 0;
2691 
2692 };
2693 #ifdef __CRT_UUID_DECL
2694 __CRT_UUID_DECL(IContextMenu2, 0x000214f4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
2695 #endif
2696 #else
2697 typedef struct IContextMenu2Vtbl {
2698     BEGIN_INTERFACE
2699 
2700     /*** IUnknown methods ***/
2701     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2702         IContextMenu2 *This,
2703         REFIID riid,
2704         void **ppvObject);
2705 
2706     ULONG (STDMETHODCALLTYPE *AddRef)(
2707         IContextMenu2 *This);
2708 
2709     ULONG (STDMETHODCALLTYPE *Release)(
2710         IContextMenu2 *This);
2711 
2712     /*** IContextMenu methods ***/
2713     HRESULT (STDMETHODCALLTYPE *QueryContextMenu)(
2714         IContextMenu2 *This,
2715         HMENU hmenu,
2716         UINT indexMenu,
2717         UINT idCmdFirst,
2718         UINT idCmdLast,
2719         UINT uFlags);
2720 
2721     HRESULT (STDMETHODCALLTYPE *InvokeCommand)(
2722         IContextMenu2 *This,
2723         CMINVOKECOMMANDINFO *pici);
2724 
2725     HRESULT (STDMETHODCALLTYPE *GetCommandString)(
2726         IContextMenu2 *This,
2727         UINT_PTR idCmd,
2728         UINT uType,
2729         UINT *pReserved,
2730         CHAR *pszName,
2731         UINT cchMax);
2732 
2733     /*** IContextMenu2 methods ***/
2734     HRESULT (STDMETHODCALLTYPE *HandleMenuMsg)(
2735         IContextMenu2 *This,
2736         UINT uMsg,
2737         WPARAM wParam,
2738         LPARAM lParam);
2739 
2740     END_INTERFACE
2741 } IContextMenu2Vtbl;
2742 
2743 interface IContextMenu2 {
2744     CONST_VTBL IContextMenu2Vtbl* lpVtbl;
2745 };
2746 
2747 #ifdef COBJMACROS
2748 #ifndef WIDL_C_INLINE_WRAPPERS
2749 /*** IUnknown methods ***/
2750 #define IContextMenu2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2751 #define IContextMenu2_AddRef(This) (This)->lpVtbl->AddRef(This)
2752 #define IContextMenu2_Release(This) (This)->lpVtbl->Release(This)
2753 /*** IContextMenu methods ***/
2754 #define IContextMenu2_QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags) (This)->lpVtbl->QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags)
2755 #define IContextMenu2_InvokeCommand(This,pici) (This)->lpVtbl->InvokeCommand(This,pici)
2756 #define IContextMenu2_GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax) (This)->lpVtbl->GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax)
2757 /*** IContextMenu2 methods ***/
2758 #define IContextMenu2_HandleMenuMsg(This,uMsg,wParam,lParam) (This)->lpVtbl->HandleMenuMsg(This,uMsg,wParam,lParam)
2759 #else
2760 /*** IUnknown methods ***/
2761 static FORCEINLINE HRESULT IContextMenu2_QueryInterface(IContextMenu2* This,REFIID riid,void **ppvObject) {
2762     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2763 }
2764 static FORCEINLINE ULONG IContextMenu2_AddRef(IContextMenu2* This) {
2765     return This->lpVtbl->AddRef(This);
2766 }
2767 static FORCEINLINE ULONG IContextMenu2_Release(IContextMenu2* This) {
2768     return This->lpVtbl->Release(This);
2769 }
2770 /*** IContextMenu methods ***/
2771 static FORCEINLINE HRESULT IContextMenu2_QueryContextMenu(IContextMenu2* This,HMENU hmenu,UINT indexMenu,UINT idCmdFirst,UINT idCmdLast,UINT uFlags) {
2772     return This->lpVtbl->QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags);
2773 }
2774 static FORCEINLINE HRESULT IContextMenu2_InvokeCommand(IContextMenu2* This,CMINVOKECOMMANDINFO *pici) {
2775     return This->lpVtbl->InvokeCommand(This,pici);
2776 }
2777 static FORCEINLINE HRESULT IContextMenu2_GetCommandString(IContextMenu2* This,UINT_PTR idCmd,UINT uType,UINT *pReserved,CHAR *pszName,UINT cchMax) {
2778     return This->lpVtbl->GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax);
2779 }
2780 /*** IContextMenu2 methods ***/
2781 static FORCEINLINE HRESULT IContextMenu2_HandleMenuMsg(IContextMenu2* This,UINT uMsg,WPARAM wParam,LPARAM lParam) {
2782     return This->lpVtbl->HandleMenuMsg(This,uMsg,wParam,lParam);
2783 }
2784 #endif
2785 #endif
2786 
2787 #endif
2788 
2789 
2790 #endif  /* __IContextMenu2_INTERFACE_DEFINED__ */
2791 
2792 typedef IContextMenu2 *LPCONTEXTMENU2;
2793 
2794 /*****************************************************************************
2795  * IContextMenu3 interface
2796  */
2797 #ifndef __IContextMenu3_INTERFACE_DEFINED__
2798 #define __IContextMenu3_INTERFACE_DEFINED__
2799 
2800 DEFINE_GUID(IID_IContextMenu3, 0xbcfce0a0, 0xec17, 0x11d0, 0x8d,0x10, 0x00,0xa0,0xc9,0x0f,0x27,0x19);
2801 #if defined(__cplusplus) && !defined(CINTERFACE)
2802 MIDL_INTERFACE("bcfce0a0-ec17-11d0-8d10-00a0c90f2719")
2803 IContextMenu3 : public IContextMenu2
2804 {
2805     virtual HRESULT STDMETHODCALLTYPE HandleMenuMsg2(
2806         UINT uMsg,
2807         WPARAM wParam,
2808         LPARAM lParam,
2809         LRESULT *plResult) = 0;
2810 
2811 };
2812 #ifdef __CRT_UUID_DECL
2813 __CRT_UUID_DECL(IContextMenu3, 0xbcfce0a0, 0xec17, 0x11d0, 0x8d,0x10, 0x00,0xa0,0xc9,0x0f,0x27,0x19)
2814 #endif
2815 #else
2816 typedef struct IContextMenu3Vtbl {
2817     BEGIN_INTERFACE
2818 
2819     /*** IUnknown methods ***/
2820     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2821         IContextMenu3 *This,
2822         REFIID riid,
2823         void **ppvObject);
2824 
2825     ULONG (STDMETHODCALLTYPE *AddRef)(
2826         IContextMenu3 *This);
2827 
2828     ULONG (STDMETHODCALLTYPE *Release)(
2829         IContextMenu3 *This);
2830 
2831     /*** IContextMenu methods ***/
2832     HRESULT (STDMETHODCALLTYPE *QueryContextMenu)(
2833         IContextMenu3 *This,
2834         HMENU hmenu,
2835         UINT indexMenu,
2836         UINT idCmdFirst,
2837         UINT idCmdLast,
2838         UINT uFlags);
2839 
2840     HRESULT (STDMETHODCALLTYPE *InvokeCommand)(
2841         IContextMenu3 *This,
2842         CMINVOKECOMMANDINFO *pici);
2843 
2844     HRESULT (STDMETHODCALLTYPE *GetCommandString)(
2845         IContextMenu3 *This,
2846         UINT_PTR idCmd,
2847         UINT uType,
2848         UINT *pReserved,
2849         CHAR *pszName,
2850         UINT cchMax);
2851 
2852     /*** IContextMenu2 methods ***/
2853     HRESULT (STDMETHODCALLTYPE *HandleMenuMsg)(
2854         IContextMenu3 *This,
2855         UINT uMsg,
2856         WPARAM wParam,
2857         LPARAM lParam);
2858 
2859     /*** IContextMenu3 methods ***/
2860     HRESULT (STDMETHODCALLTYPE *HandleMenuMsg2)(
2861         IContextMenu3 *This,
2862         UINT uMsg,
2863         WPARAM wParam,
2864         LPARAM lParam,
2865         LRESULT *plResult);
2866 
2867     END_INTERFACE
2868 } IContextMenu3Vtbl;
2869 
2870 interface IContextMenu3 {
2871     CONST_VTBL IContextMenu3Vtbl* lpVtbl;
2872 };
2873 
2874 #ifdef COBJMACROS
2875 #ifndef WIDL_C_INLINE_WRAPPERS
2876 /*** IUnknown methods ***/
2877 #define IContextMenu3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2878 #define IContextMenu3_AddRef(This) (This)->lpVtbl->AddRef(This)
2879 #define IContextMenu3_Release(This) (This)->lpVtbl->Release(This)
2880 /*** IContextMenu methods ***/
2881 #define IContextMenu3_QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags) (This)->lpVtbl->QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags)
2882 #define IContextMenu3_InvokeCommand(This,pici) (This)->lpVtbl->InvokeCommand(This,pici)
2883 #define IContextMenu3_GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax) (This)->lpVtbl->GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax)
2884 /*** IContextMenu2 methods ***/
2885 #define IContextMenu3_HandleMenuMsg(This,uMsg,wParam,lParam) (This)->lpVtbl->HandleMenuMsg(This,uMsg,wParam,lParam)
2886 /*** IContextMenu3 methods ***/
2887 #define IContextMenu3_HandleMenuMsg2(This,uMsg,wParam,lParam,plResult) (This)->lpVtbl->HandleMenuMsg2(This,uMsg,wParam,lParam,plResult)
2888 #else
2889 /*** IUnknown methods ***/
2890 static FORCEINLINE HRESULT IContextMenu3_QueryInterface(IContextMenu3* This,REFIID riid,void **ppvObject) {
2891     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2892 }
2893 static FORCEINLINE ULONG IContextMenu3_AddRef(IContextMenu3* This) {
2894     return This->lpVtbl->AddRef(This);
2895 }
2896 static FORCEINLINE ULONG IContextMenu3_Release(IContextMenu3* This) {
2897     return This->lpVtbl->Release(This);
2898 }
2899 /*** IContextMenu methods ***/
2900 static FORCEINLINE HRESULT IContextMenu3_QueryContextMenu(IContextMenu3* This,HMENU hmenu,UINT indexMenu,UINT idCmdFirst,UINT idCmdLast,UINT uFlags) {
2901     return This->lpVtbl->QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags);
2902 }
2903 static FORCEINLINE HRESULT IContextMenu3_InvokeCommand(IContextMenu3* This,CMINVOKECOMMANDINFO *pici) {
2904     return This->lpVtbl->InvokeCommand(This,pici);
2905 }
2906 static FORCEINLINE HRESULT IContextMenu3_GetCommandString(IContextMenu3* This,UINT_PTR idCmd,UINT uType,UINT *pReserved,CHAR *pszName,UINT cchMax) {
2907     return This->lpVtbl->GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax);
2908 }
2909 /*** IContextMenu2 methods ***/
2910 static FORCEINLINE HRESULT IContextMenu3_HandleMenuMsg(IContextMenu3* This,UINT uMsg,WPARAM wParam,LPARAM lParam) {
2911     return This->lpVtbl->HandleMenuMsg(This,uMsg,wParam,lParam);
2912 }
2913 /*** IContextMenu3 methods ***/
2914 static FORCEINLINE HRESULT IContextMenu3_HandleMenuMsg2(IContextMenu3* This,UINT uMsg,WPARAM wParam,LPARAM lParam,LRESULT *plResult) {
2915     return This->lpVtbl->HandleMenuMsg2(This,uMsg,wParam,lParam,plResult);
2916 }
2917 #endif
2918 #endif
2919 
2920 #endif
2921 
2922 
2923 #endif  /* __IContextMenu3_INTERFACE_DEFINED__ */
2924 
2925 typedef IContextMenu3 *LPCONTEXTMENU3;
2926 
2927 /*****************************************************************************
2928  * IExecuteCommand interface
2929  */
2930 #ifndef __IExecuteCommand_INTERFACE_DEFINED__
2931 #define __IExecuteCommand_INTERFACE_DEFINED__
2932 
2933 DEFINE_GUID(IID_IExecuteCommand, 0x7f9185b0, 0xcb92, 0x43c5, 0x80,0xa9, 0x92,0x27,0x7a,0x4f,0x7b,0x54);
2934 #if defined(__cplusplus) && !defined(CINTERFACE)
2935 MIDL_INTERFACE("7f9185b0-cb92-43c5-80a9-92277a4f7b54")
2936 IExecuteCommand : public IUnknown
2937 {
2938     virtual HRESULT STDMETHODCALLTYPE SetKeyState(
2939         DWORD grfKeyState) = 0;
2940 
2941     virtual HRESULT STDMETHODCALLTYPE SetParameters(
2942         LPCWSTR pszParameters) = 0;
2943 
2944     virtual HRESULT STDMETHODCALLTYPE SetPosition(
2945         POINT pt) = 0;
2946 
2947     virtual HRESULT STDMETHODCALLTYPE SetShowWindow(
2948         int nShow) = 0;
2949 
2950     virtual HRESULT STDMETHODCALLTYPE SetNoShowUI(
2951         WINBOOL fNoShowUI) = 0;
2952 
2953     virtual HRESULT STDMETHODCALLTYPE SetDirectory(
2954         LPCWSTR pszDirectory) = 0;
2955 
2956     virtual HRESULT STDMETHODCALLTYPE Execute(
2957         ) = 0;
2958 
2959 };
2960 #ifdef __CRT_UUID_DECL
2961 __CRT_UUID_DECL(IExecuteCommand, 0x7f9185b0, 0xcb92, 0x43c5, 0x80,0xa9, 0x92,0x27,0x7a,0x4f,0x7b,0x54)
2962 #endif
2963 #else
2964 typedef struct IExecuteCommandVtbl {
2965     BEGIN_INTERFACE
2966 
2967     /*** IUnknown methods ***/
2968     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2969         IExecuteCommand *This,
2970         REFIID riid,
2971         void **ppvObject);
2972 
2973     ULONG (STDMETHODCALLTYPE *AddRef)(
2974         IExecuteCommand *This);
2975 
2976     ULONG (STDMETHODCALLTYPE *Release)(
2977         IExecuteCommand *This);
2978 
2979     /*** IExecuteCommand methods ***/
2980     HRESULT (STDMETHODCALLTYPE *SetKeyState)(
2981         IExecuteCommand *This,
2982         DWORD grfKeyState);
2983 
2984     HRESULT (STDMETHODCALLTYPE *SetParameters)(
2985         IExecuteCommand *This,
2986         LPCWSTR pszParameters);
2987 
2988     HRESULT (STDMETHODCALLTYPE *SetPosition)(
2989         IExecuteCommand *This,
2990         POINT pt);
2991 
2992     HRESULT (STDMETHODCALLTYPE *SetShowWindow)(
2993         IExecuteCommand *This,
2994         int nShow);
2995 
2996     HRESULT (STDMETHODCALLTYPE *SetNoShowUI)(
2997         IExecuteCommand *This,
2998         WINBOOL fNoShowUI);
2999 
3000     HRESULT (STDMETHODCALLTYPE *SetDirectory)(
3001         IExecuteCommand *This,
3002         LPCWSTR pszDirectory);
3003 
3004     HRESULT (STDMETHODCALLTYPE *Execute)(
3005         IExecuteCommand *This);
3006 
3007     END_INTERFACE
3008 } IExecuteCommandVtbl;
3009 
3010 interface IExecuteCommand {
3011     CONST_VTBL IExecuteCommandVtbl* lpVtbl;
3012 };
3013 
3014 #ifdef COBJMACROS
3015 #ifndef WIDL_C_INLINE_WRAPPERS
3016 /*** IUnknown methods ***/
3017 #define IExecuteCommand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3018 #define IExecuteCommand_AddRef(This) (This)->lpVtbl->AddRef(This)
3019 #define IExecuteCommand_Release(This) (This)->lpVtbl->Release(This)
3020 /*** IExecuteCommand methods ***/
3021 #define IExecuteCommand_SetKeyState(This,grfKeyState) (This)->lpVtbl->SetKeyState(This,grfKeyState)
3022 #define IExecuteCommand_SetParameters(This,pszParameters) (This)->lpVtbl->SetParameters(This,pszParameters)
3023 #define IExecuteCommand_SetPosition(This,pt) (This)->lpVtbl->SetPosition(This,pt)
3024 #define IExecuteCommand_SetShowWindow(This,nShow) (This)->lpVtbl->SetShowWindow(This,nShow)
3025 #define IExecuteCommand_SetNoShowUI(This,fNoShowUI) (This)->lpVtbl->SetNoShowUI(This,fNoShowUI)
3026 #define IExecuteCommand_SetDirectory(This,pszDirectory) (This)->lpVtbl->SetDirectory(This,pszDirectory)
3027 #define IExecuteCommand_Execute(This) (This)->lpVtbl->Execute(This)
3028 #else
3029 /*** IUnknown methods ***/
3030 static FORCEINLINE HRESULT IExecuteCommand_QueryInterface(IExecuteCommand* This,REFIID riid,void **ppvObject) {
3031     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3032 }
3033 static FORCEINLINE ULONG IExecuteCommand_AddRef(IExecuteCommand* This) {
3034     return This->lpVtbl->AddRef(This);
3035 }
3036 static FORCEINLINE ULONG IExecuteCommand_Release(IExecuteCommand* This) {
3037     return This->lpVtbl->Release(This);
3038 }
3039 /*** IExecuteCommand methods ***/
3040 static FORCEINLINE HRESULT IExecuteCommand_SetKeyState(IExecuteCommand* This,DWORD grfKeyState) {
3041     return This->lpVtbl->SetKeyState(This,grfKeyState);
3042 }
3043 static FORCEINLINE HRESULT IExecuteCommand_SetParameters(IExecuteCommand* This,LPCWSTR pszParameters) {
3044     return This->lpVtbl->SetParameters(This,pszParameters);
3045 }
3046 static FORCEINLINE HRESULT IExecuteCommand_SetPosition(IExecuteCommand* This,POINT pt) {
3047     return This->lpVtbl->SetPosition(This,pt);
3048 }
3049 static FORCEINLINE HRESULT IExecuteCommand_SetShowWindow(IExecuteCommand* This,int nShow) {
3050     return This->lpVtbl->SetShowWindow(This,nShow);
3051 }
3052 static FORCEINLINE HRESULT IExecuteCommand_SetNoShowUI(IExecuteCommand* This,WINBOOL fNoShowUI) {
3053     return This->lpVtbl->SetNoShowUI(This,fNoShowUI);
3054 }
3055 static FORCEINLINE HRESULT IExecuteCommand_SetDirectory(IExecuteCommand* This,LPCWSTR pszDirectory) {
3056     return This->lpVtbl->SetDirectory(This,pszDirectory);
3057 }
3058 static FORCEINLINE HRESULT IExecuteCommand_Execute(IExecuteCommand* This) {
3059     return This->lpVtbl->Execute(This);
3060 }
3061 #endif
3062 #endif
3063 
3064 #endif
3065 
3066 
3067 #endif  /* __IExecuteCommand_INTERFACE_DEFINED__ */
3068 
3069 
3070 /*****************************************************************************
3071  * IPersistFolder interface
3072  */
3073 #ifndef __IPersistFolder_INTERFACE_DEFINED__
3074 #define __IPersistFolder_INTERFACE_DEFINED__
3075 
3076 DEFINE_GUID(IID_IPersistFolder, 0x000214ea, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3077 #if defined(__cplusplus) && !defined(CINTERFACE)
3078 MIDL_INTERFACE("000214ea-0000-0000-c000-000000000046")
3079 IPersistFolder : public IPersist
3080 {
3081     virtual HRESULT STDMETHODCALLTYPE Initialize(
3082         PCIDLIST_ABSOLUTE pidl) = 0;
3083 
3084 };
3085 #ifdef __CRT_UUID_DECL
3086 __CRT_UUID_DECL(IPersistFolder, 0x000214ea, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
3087 #endif
3088 #else
3089 typedef struct IPersistFolderVtbl {
3090     BEGIN_INTERFACE
3091 
3092     /*** IUnknown methods ***/
3093     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3094         IPersistFolder *This,
3095         REFIID riid,
3096         void **ppvObject);
3097 
3098     ULONG (STDMETHODCALLTYPE *AddRef)(
3099         IPersistFolder *This);
3100 
3101     ULONG (STDMETHODCALLTYPE *Release)(
3102         IPersistFolder *This);
3103 
3104     /*** IPersist methods ***/
3105     HRESULT (STDMETHODCALLTYPE *GetClassID)(
3106         IPersistFolder *This,
3107         CLSID *pClassID);
3108 
3109     /*** IPersistFolder methods ***/
3110     HRESULT (STDMETHODCALLTYPE *Initialize)(
3111         IPersistFolder *This,
3112         PCIDLIST_ABSOLUTE pidl);
3113 
3114     END_INTERFACE
3115 } IPersistFolderVtbl;
3116 
3117 interface IPersistFolder {
3118     CONST_VTBL IPersistFolderVtbl* lpVtbl;
3119 };
3120 
3121 #ifdef COBJMACROS
3122 #ifndef WIDL_C_INLINE_WRAPPERS
3123 /*** IUnknown methods ***/
3124 #define IPersistFolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3125 #define IPersistFolder_AddRef(This) (This)->lpVtbl->AddRef(This)
3126 #define IPersistFolder_Release(This) (This)->lpVtbl->Release(This)
3127 /*** IPersist methods ***/
3128 #define IPersistFolder_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
3129 /*** IPersistFolder methods ***/
3130 #define IPersistFolder_Initialize(This,pidl) (This)->lpVtbl->Initialize(This,pidl)
3131 #else
3132 /*** IUnknown methods ***/
3133 static FORCEINLINE HRESULT IPersistFolder_QueryInterface(IPersistFolder* This,REFIID riid,void **ppvObject) {
3134     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3135 }
3136 static FORCEINLINE ULONG IPersistFolder_AddRef(IPersistFolder* This) {
3137     return This->lpVtbl->AddRef(This);
3138 }
3139 static FORCEINLINE ULONG IPersistFolder_Release(IPersistFolder* This) {
3140     return This->lpVtbl->Release(This);
3141 }
3142 /*** IPersist methods ***/
3143 static FORCEINLINE HRESULT IPersistFolder_GetClassID(IPersistFolder* This,CLSID *pClassID) {
3144     return This->lpVtbl->GetClassID(This,pClassID);
3145 }
3146 /*** IPersistFolder methods ***/
3147 static FORCEINLINE HRESULT IPersistFolder_Initialize(IPersistFolder* This,PCIDLIST_ABSOLUTE pidl) {
3148     return This->lpVtbl->Initialize(This,pidl);
3149 }
3150 #endif
3151 #endif
3152 
3153 #endif
3154 
3155 
3156 #endif  /* __IPersistFolder_INTERFACE_DEFINED__ */
3157 
3158 typedef IPersistFolder *LPPERSISTFOLDER;
3159 
3160 #define IRTIR_TASK_NOT_RUNNING   0
3161 #define IRTIR_TASK_RUNNING       1
3162 #define IRTIR_TASK_SUSPENDED     2
3163 #define IRTIR_TASK_PENDING       3
3164 #define IRTIR_TASK_FINISHED      4
3165 
3166 /*****************************************************************************
3167  * IRunnableTask interface
3168  */
3169 #ifndef __IRunnableTask_INTERFACE_DEFINED__
3170 #define __IRunnableTask_INTERFACE_DEFINED__
3171 
3172 DEFINE_GUID(IID_IRunnableTask, 0x85788d00, 0x6807, 0x11d0, 0xb8,0x10, 0x00,0xc0,0x4f,0xd7,0x06,0xec);
3173 #if defined(__cplusplus) && !defined(CINTERFACE)
3174 MIDL_INTERFACE("85788d00-6807-11d0-b810-00c04fd706ec")
3175 IRunnableTask : public IUnknown
3176 {
3177     virtual HRESULT STDMETHODCALLTYPE Run(
3178         ) = 0;
3179 
3180     virtual HRESULT STDMETHODCALLTYPE Kill(
3181         WINBOOL bWait) = 0;
3182 
3183     virtual HRESULT STDMETHODCALLTYPE Suspend(
3184         ) = 0;
3185 
3186     virtual HRESULT STDMETHODCALLTYPE Resume(
3187         ) = 0;
3188 
3189     virtual ULONG STDMETHODCALLTYPE IsRunning(
3190         ) = 0;
3191 
3192 };
3193 #ifdef __CRT_UUID_DECL
3194 __CRT_UUID_DECL(IRunnableTask, 0x85788d00, 0x6807, 0x11d0, 0xb8,0x10, 0x00,0xc0,0x4f,0xd7,0x06,0xec)
3195 #endif
3196 #else
3197 typedef struct IRunnableTaskVtbl {
3198     BEGIN_INTERFACE
3199 
3200     /*** IUnknown methods ***/
3201     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3202         IRunnableTask *This,
3203         REFIID riid,
3204         void **ppvObject);
3205 
3206     ULONG (STDMETHODCALLTYPE *AddRef)(
3207         IRunnableTask *This);
3208 
3209     ULONG (STDMETHODCALLTYPE *Release)(
3210         IRunnableTask *This);
3211 
3212     /*** IRunnableTask methods ***/
3213     HRESULT (STDMETHODCALLTYPE *Run)(
3214         IRunnableTask *This);
3215 
3216     HRESULT (STDMETHODCALLTYPE *Kill)(
3217         IRunnableTask *This,
3218         WINBOOL bWait);
3219 
3220     HRESULT (STDMETHODCALLTYPE *Suspend)(
3221         IRunnableTask *This);
3222 
3223     HRESULT (STDMETHODCALLTYPE *Resume)(
3224         IRunnableTask *This);
3225 
3226     ULONG (STDMETHODCALLTYPE *IsRunning)(
3227         IRunnableTask *This);
3228 
3229     END_INTERFACE
3230 } IRunnableTaskVtbl;
3231 
3232 interface IRunnableTask {
3233     CONST_VTBL IRunnableTaskVtbl* lpVtbl;
3234 };
3235 
3236 #ifdef COBJMACROS
3237 #ifndef WIDL_C_INLINE_WRAPPERS
3238 /*** IUnknown methods ***/
3239 #define IRunnableTask_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3240 #define IRunnableTask_AddRef(This) (This)->lpVtbl->AddRef(This)
3241 #define IRunnableTask_Release(This) (This)->lpVtbl->Release(This)
3242 /*** IRunnableTask methods ***/
3243 #define IRunnableTask_Run(This) (This)->lpVtbl->Run(This)
3244 #define IRunnableTask_Kill(This,bWait) (This)->lpVtbl->Kill(This,bWait)
3245 #define IRunnableTask_Suspend(This) (This)->lpVtbl->Suspend(This)
3246 #define IRunnableTask_Resume(This) (This)->lpVtbl->Resume(This)
3247 #define IRunnableTask_IsRunning(This) (This)->lpVtbl->IsRunning(This)
3248 #else
3249 /*** IUnknown methods ***/
3250 static FORCEINLINE HRESULT IRunnableTask_QueryInterface(IRunnableTask* This,REFIID riid,void **ppvObject) {
3251     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3252 }
3253 static FORCEINLINE ULONG IRunnableTask_AddRef(IRunnableTask* This) {
3254     return This->lpVtbl->AddRef(This);
3255 }
3256 static FORCEINLINE ULONG IRunnableTask_Release(IRunnableTask* This) {
3257     return This->lpVtbl->Release(This);
3258 }
3259 /*** IRunnableTask methods ***/
3260 static FORCEINLINE HRESULT IRunnableTask_Run(IRunnableTask* This) {
3261     return This->lpVtbl->Run(This);
3262 }
3263 static FORCEINLINE HRESULT IRunnableTask_Kill(IRunnableTask* This,WINBOOL bWait) {
3264     return This->lpVtbl->Kill(This,bWait);
3265 }
3266 static FORCEINLINE HRESULT IRunnableTask_Suspend(IRunnableTask* This) {
3267     return This->lpVtbl->Suspend(This);
3268 }
3269 static FORCEINLINE HRESULT IRunnableTask_Resume(IRunnableTask* This) {
3270     return This->lpVtbl->Resume(This);
3271 }
3272 static FORCEINLINE ULONG IRunnableTask_IsRunning(IRunnableTask* This) {
3273     return This->lpVtbl->IsRunning(This);
3274 }
3275 #endif
3276 #endif
3277 
3278 #endif
3279 
3280 
3281 #endif  /* __IRunnableTask_INTERFACE_DEFINED__ */
3282 
3283 
3284 #define TOID_NULL GUID_NULL
3285 #define ITSAT_DEFAULT_LPARAM ((DWORD_PTR)-1)
3286 
3287 #define ITSAT_DEFAULT_PRIORITY 0x10000000
3288 #define ITSAT_MAX_PRIORITY 0x7fffffff
3289 #define ITSAT_MIN_PRIORITY 0x00000000
3290 
3291 #define ITSSFLAG_COMPLETE_ON_DESTROY 0x0
3292 #define ITSSFLAG_KILL_ON_DESTROY 0x1
3293 
3294 #define ITSSFLAG_FLAGS_MASK 0x3
3295 
3296 #define ITSS_THREAD_DESTROY_DEFAULT_TIMEOUT (10 * 1000)
3297 #define ITSS_THREAD_TERMINATE_TIMEOUT (INFINITE)
3298 #define ITSS_THREAD_TIMEOUT_NO_CHANGE (INFINITE - 1)
3299 
3300 /*****************************************************************************
3301  * IShellTaskScheduler interface
3302  */
3303 #ifndef __IShellTaskScheduler_INTERFACE_DEFINED__
3304 #define __IShellTaskScheduler_INTERFACE_DEFINED__
3305 
3306 DEFINE_GUID(IID_IShellTaskScheduler, 0x6ccb7be0, 0x6807, 0x11d0, 0xb8,0x10, 0x00,0xc0,0x4f,0xd7,0x06,0xec);
3307 #if defined(__cplusplus) && !defined(CINTERFACE)
3308 MIDL_INTERFACE("6ccb7be0-6807-11d0-b810-00c04fd706ec")
3309 IShellTaskScheduler : public IUnknown
3310 {
3311     virtual HRESULT STDMETHODCALLTYPE AddTask(
3312         IRunnableTask *prt,
3313         REFTASKOWNERID rtoid,
3314         DWORD_PTR lParam,
3315         DWORD dwPriority) = 0;
3316 
3317     virtual HRESULT STDMETHODCALLTYPE RemoveTasks(
3318         REFTASKOWNERID rtoid,
3319         DWORD_PTR lParam,
3320         WINBOOL bWaitIfRunning) = 0;
3321 
3322     virtual UINT STDMETHODCALLTYPE CountTasks(
3323         REFTASKOWNERID rtoid) = 0;
3324 
3325     virtual HRESULT STDMETHODCALLTYPE Status(
3326         DWORD dwReleaseStatus,
3327         DWORD dwThreadTimeout) = 0;
3328 
3329 };
3330 #ifdef __CRT_UUID_DECL
3331 __CRT_UUID_DECL(IShellTaskScheduler, 0x6ccb7be0, 0x6807, 0x11d0, 0xb8,0x10, 0x00,0xc0,0x4f,0xd7,0x06,0xec)
3332 #endif
3333 #else
3334 typedef struct IShellTaskSchedulerVtbl {
3335     BEGIN_INTERFACE
3336 
3337     /*** IUnknown methods ***/
3338     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3339         IShellTaskScheduler *This,
3340         REFIID riid,
3341         void **ppvObject);
3342 
3343     ULONG (STDMETHODCALLTYPE *AddRef)(
3344         IShellTaskScheduler *This);
3345 
3346     ULONG (STDMETHODCALLTYPE *Release)(
3347         IShellTaskScheduler *This);
3348 
3349     /*** IShellTaskScheduler methods ***/
3350     HRESULT (STDMETHODCALLTYPE *AddTask)(
3351         IShellTaskScheduler *This,
3352         IRunnableTask *prt,
3353         REFTASKOWNERID rtoid,
3354         DWORD_PTR lParam,
3355         DWORD dwPriority);
3356 
3357     HRESULT (STDMETHODCALLTYPE *RemoveTasks)(
3358         IShellTaskScheduler *This,
3359         REFTASKOWNERID rtoid,
3360         DWORD_PTR lParam,
3361         WINBOOL bWaitIfRunning);
3362 
3363     UINT (STDMETHODCALLTYPE *CountTasks)(
3364         IShellTaskScheduler *This,
3365         REFTASKOWNERID rtoid);
3366 
3367     HRESULT (STDMETHODCALLTYPE *Status)(
3368         IShellTaskScheduler *This,
3369         DWORD dwReleaseStatus,
3370         DWORD dwThreadTimeout);
3371 
3372     END_INTERFACE
3373 } IShellTaskSchedulerVtbl;
3374 
3375 interface IShellTaskScheduler {
3376     CONST_VTBL IShellTaskSchedulerVtbl* lpVtbl;
3377 };
3378 
3379 #ifdef COBJMACROS
3380 #ifndef WIDL_C_INLINE_WRAPPERS
3381 /*** IUnknown methods ***/
3382 #define IShellTaskScheduler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3383 #define IShellTaskScheduler_AddRef(This) (This)->lpVtbl->AddRef(This)
3384 #define IShellTaskScheduler_Release(This) (This)->lpVtbl->Release(This)
3385 /*** IShellTaskScheduler methods ***/
3386 #define IShellTaskScheduler_AddTask(This,prt,rtoid,lParam,dwPriority) (This)->lpVtbl->AddTask(This,prt,rtoid,lParam,dwPriority)
3387 #define IShellTaskScheduler_RemoveTasks(This,rtoid,lParam,bWaitIfRunning) (This)->lpVtbl->RemoveTasks(This,rtoid,lParam,bWaitIfRunning)
3388 #define IShellTaskScheduler_CountTasks(This,rtoid) (This)->lpVtbl->CountTasks(This,rtoid)
3389 #define IShellTaskScheduler_Status(This,dwReleaseStatus,dwThreadTimeout) (This)->lpVtbl->Status(This,dwReleaseStatus,dwThreadTimeout)
3390 #else
3391 /*** IUnknown methods ***/
3392 static FORCEINLINE HRESULT IShellTaskScheduler_QueryInterface(IShellTaskScheduler* This,REFIID riid,void **ppvObject) {
3393     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3394 }
3395 static FORCEINLINE ULONG IShellTaskScheduler_AddRef(IShellTaskScheduler* This) {
3396     return This->lpVtbl->AddRef(This);
3397 }
3398 static FORCEINLINE ULONG IShellTaskScheduler_Release(IShellTaskScheduler* This) {
3399     return This->lpVtbl->Release(This);
3400 }
3401 /*** IShellTaskScheduler methods ***/
3402 static FORCEINLINE HRESULT IShellTaskScheduler_AddTask(IShellTaskScheduler* This,IRunnableTask *prt,REFTASKOWNERID rtoid,DWORD_PTR lParam,DWORD dwPriority) {
3403     return This->lpVtbl->AddTask(This,prt,rtoid,lParam,dwPriority);
3404 }
3405 static FORCEINLINE HRESULT IShellTaskScheduler_RemoveTasks(IShellTaskScheduler* This,REFTASKOWNERID rtoid,DWORD_PTR lParam,WINBOOL bWaitIfRunning) {
3406     return This->lpVtbl->RemoveTasks(This,rtoid,lParam,bWaitIfRunning);
3407 }
3408 static FORCEINLINE UINT IShellTaskScheduler_CountTasks(IShellTaskScheduler* This,REFTASKOWNERID rtoid) {
3409     return This->lpVtbl->CountTasks(This,rtoid);
3410 }
3411 static FORCEINLINE HRESULT IShellTaskScheduler_Status(IShellTaskScheduler* This,DWORD dwReleaseStatus,DWORD dwThreadTimeout) {
3412     return This->lpVtbl->Status(This,dwReleaseStatus,dwThreadTimeout);
3413 }
3414 #endif
3415 #endif
3416 
3417 #endif
3418 
3419 
3420 #endif  /* __IShellTaskScheduler_INTERFACE_DEFINED__ */
3421 
3422 
3423 #define SID_ShellTaskScheduler IID_IShellTaskScheduler
3424 
3425 /*****************************************************************************
3426  * IQueryCodePage interface
3427  */
3428 #ifndef __IQueryCodePage_INTERFACE_DEFINED__
3429 #define __IQueryCodePage_INTERFACE_DEFINED__
3430 
3431 DEFINE_GUID(IID_IQueryCodePage, 0xc7b236ce, 0xee80, 0x11d0, 0x98,0x5f, 0x00,0x60,0x08,0x05,0x93,0x82);
3432 #if defined(__cplusplus) && !defined(CINTERFACE)
3433 MIDL_INTERFACE("c7b236ce-ee80-11d0-985f-006008059382")
3434 IQueryCodePage : public IUnknown
3435 {
3436     virtual HRESULT STDMETHODCALLTYPE GetCodePage(
3437         UINT *puiCodePage) = 0;
3438 
3439     virtual HRESULT STDMETHODCALLTYPE SetCodePage(
3440         UINT uiCodePage) = 0;
3441 
3442 };
3443 #ifdef __CRT_UUID_DECL
3444 __CRT_UUID_DECL(IQueryCodePage, 0xc7b236ce, 0xee80, 0x11d0, 0x98,0x5f, 0x00,0x60,0x08,0x05,0x93,0x82)
3445 #endif
3446 #else
3447 typedef struct IQueryCodePageVtbl {
3448     BEGIN_INTERFACE
3449 
3450     /*** IUnknown methods ***/
3451     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3452         IQueryCodePage *This,
3453         REFIID riid,
3454         void **ppvObject);
3455 
3456     ULONG (STDMETHODCALLTYPE *AddRef)(
3457         IQueryCodePage *This);
3458 
3459     ULONG (STDMETHODCALLTYPE *Release)(
3460         IQueryCodePage *This);
3461 
3462     /*** IQueryCodePage methods ***/
3463     HRESULT (STDMETHODCALLTYPE *GetCodePage)(
3464         IQueryCodePage *This,
3465         UINT *puiCodePage);
3466 
3467     HRESULT (STDMETHODCALLTYPE *SetCodePage)(
3468         IQueryCodePage *This,
3469         UINT uiCodePage);
3470 
3471     END_INTERFACE
3472 } IQueryCodePageVtbl;
3473 
3474 interface IQueryCodePage {
3475     CONST_VTBL IQueryCodePageVtbl* lpVtbl;
3476 };
3477 
3478 #ifdef COBJMACROS
3479 #ifndef WIDL_C_INLINE_WRAPPERS
3480 /*** IUnknown methods ***/
3481 #define IQueryCodePage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3482 #define IQueryCodePage_AddRef(This) (This)->lpVtbl->AddRef(This)
3483 #define IQueryCodePage_Release(This) (This)->lpVtbl->Release(This)
3484 /*** IQueryCodePage methods ***/
3485 #define IQueryCodePage_GetCodePage(This,puiCodePage) (This)->lpVtbl->GetCodePage(This,puiCodePage)
3486 #define IQueryCodePage_SetCodePage(This,uiCodePage) (This)->lpVtbl->SetCodePage(This,uiCodePage)
3487 #else
3488 /*** IUnknown methods ***/
3489 static FORCEINLINE HRESULT IQueryCodePage_QueryInterface(IQueryCodePage* This,REFIID riid,void **ppvObject) {
3490     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3491 }
3492 static FORCEINLINE ULONG IQueryCodePage_AddRef(IQueryCodePage* This) {
3493     return This->lpVtbl->AddRef(This);
3494 }
3495 static FORCEINLINE ULONG IQueryCodePage_Release(IQueryCodePage* This) {
3496     return This->lpVtbl->Release(This);
3497 }
3498 /*** IQueryCodePage methods ***/
3499 static FORCEINLINE HRESULT IQueryCodePage_GetCodePage(IQueryCodePage* This,UINT *puiCodePage) {
3500     return This->lpVtbl->GetCodePage(This,puiCodePage);
3501 }
3502 static FORCEINLINE HRESULT IQueryCodePage_SetCodePage(IQueryCodePage* This,UINT uiCodePage) {
3503     return This->lpVtbl->SetCodePage(This,uiCodePage);
3504 }
3505 #endif
3506 #endif
3507 
3508 #endif
3509 
3510 
3511 #endif  /* __IQueryCodePage_INTERFACE_DEFINED__ */
3512 
3513 
3514 /*****************************************************************************
3515  * IPersistFolder2 interface
3516  */
3517 #ifndef __IPersistFolder2_INTERFACE_DEFINED__
3518 #define __IPersistFolder2_INTERFACE_DEFINED__
3519 
3520 DEFINE_GUID(IID_IPersistFolder2, 0x1ac3d9f0, 0x175c, 0x11d1, 0x95,0xbe, 0x00,0x60,0x97,0x97,0xea,0x4f);
3521 #if defined(__cplusplus) && !defined(CINTERFACE)
3522 MIDL_INTERFACE("1ac3d9f0-175c-11d1-95be-00609797ea4f")
3523 IPersistFolder2 : public IPersistFolder
3524 {
3525     virtual HRESULT STDMETHODCALLTYPE GetCurFolder(
3526         PIDLIST_ABSOLUTE *ppidl) = 0;
3527 
3528 };
3529 #ifdef __CRT_UUID_DECL
3530 __CRT_UUID_DECL(IPersistFolder2, 0x1ac3d9f0, 0x175c, 0x11d1, 0x95,0xbe, 0x00,0x60,0x97,0x97,0xea,0x4f)
3531 #endif
3532 #else
3533 typedef struct IPersistFolder2Vtbl {
3534     BEGIN_INTERFACE
3535 
3536     /*** IUnknown methods ***/
3537     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3538         IPersistFolder2 *This,
3539         REFIID riid,
3540         void **ppvObject);
3541 
3542     ULONG (STDMETHODCALLTYPE *AddRef)(
3543         IPersistFolder2 *This);
3544 
3545     ULONG (STDMETHODCALLTYPE *Release)(
3546         IPersistFolder2 *This);
3547 
3548     /*** IPersist methods ***/
3549     HRESULT (STDMETHODCALLTYPE *GetClassID)(
3550         IPersistFolder2 *This,
3551         CLSID *pClassID);
3552 
3553     /*** IPersistFolder methods ***/
3554     HRESULT (STDMETHODCALLTYPE *Initialize)(
3555         IPersistFolder2 *This,
3556         PCIDLIST_ABSOLUTE pidl);
3557 
3558     /*** IPersistFolder2 methods ***/
3559     HRESULT (STDMETHODCALLTYPE *GetCurFolder)(
3560         IPersistFolder2 *This,
3561         PIDLIST_ABSOLUTE *ppidl);
3562 
3563     END_INTERFACE
3564 } IPersistFolder2Vtbl;
3565 
3566 interface IPersistFolder2 {
3567     CONST_VTBL IPersistFolder2Vtbl* lpVtbl;
3568 };
3569 
3570 #ifdef COBJMACROS
3571 #ifndef WIDL_C_INLINE_WRAPPERS
3572 /*** IUnknown methods ***/
3573 #define IPersistFolder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3574 #define IPersistFolder2_AddRef(This) (This)->lpVtbl->AddRef(This)
3575 #define IPersistFolder2_Release(This) (This)->lpVtbl->Release(This)
3576 /*** IPersist methods ***/
3577 #define IPersistFolder2_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
3578 /*** IPersistFolder methods ***/
3579 #define IPersistFolder2_Initialize(This,pidl) (This)->lpVtbl->Initialize(This,pidl)
3580 /*** IPersistFolder2 methods ***/
3581 #define IPersistFolder2_GetCurFolder(This,ppidl) (This)->lpVtbl->GetCurFolder(This,ppidl)
3582 #else
3583 /*** IUnknown methods ***/
3584 static FORCEINLINE HRESULT IPersistFolder2_QueryInterface(IPersistFolder2* This,REFIID riid,void **ppvObject) {
3585     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3586 }
3587 static FORCEINLINE ULONG IPersistFolder2_AddRef(IPersistFolder2* This) {
3588     return This->lpVtbl->AddRef(This);
3589 }
3590 static FORCEINLINE ULONG IPersistFolder2_Release(IPersistFolder2* This) {
3591     return This->lpVtbl->Release(This);
3592 }
3593 /*** IPersist methods ***/
3594 static FORCEINLINE HRESULT IPersistFolder2_GetClassID(IPersistFolder2* This,CLSID *pClassID) {
3595     return This->lpVtbl->GetClassID(This,pClassID);
3596 }
3597 /*** IPersistFolder methods ***/
3598 static FORCEINLINE HRESULT IPersistFolder2_Initialize(IPersistFolder2* This,PCIDLIST_ABSOLUTE pidl) {
3599     return This->lpVtbl->Initialize(This,pidl);
3600 }
3601 /*** IPersistFolder2 methods ***/
3602 static FORCEINLINE HRESULT IPersistFolder2_GetCurFolder(IPersistFolder2* This,PIDLIST_ABSOLUTE *ppidl) {
3603     return This->lpVtbl->GetCurFolder(This,ppidl);
3604 }
3605 #endif
3606 #endif
3607 
3608 #endif
3609 
3610 
3611 #endif  /* __IPersistFolder2_INTERFACE_DEFINED__ */
3612 
3613 
3614 #define CSIDL_FLAG_PFTI_TRACKTARGET CSIDL_FLAG_DONT_VERIFY
3615 
3616 #include <pshpack8.h>
3617 typedef struct _PERSIST_FOLDER_TARGET_INFO {
3618     PIDLIST_ABSOLUTE pidlTargetFolder;
3619     WCHAR szTargetParsingName[260];
3620     WCHAR szNetworkProvider[260];
3621     DWORD dwAttributes;
3622     int csidl;
3623 } PERSIST_FOLDER_TARGET_INFO;
3624 #include <poppack.h>
3625 
3626 /*****************************************************************************
3627  * IPersistFolder3 interface
3628  */
3629 #ifndef __IPersistFolder3_INTERFACE_DEFINED__
3630 #define __IPersistFolder3_INTERFACE_DEFINED__
3631 
3632 DEFINE_GUID(IID_IPersistFolder3, 0xcef04fdf, 0xfe72, 0x11d2, 0x87,0xa5, 0x00,0xc0,0x4f,0x68,0x37,0xcf);
3633 #if defined(__cplusplus) && !defined(CINTERFACE)
3634 MIDL_INTERFACE("cef04fdf-fe72-11d2-87a5-00c04f6837cf")
3635 IPersistFolder3 : public IPersistFolder2
3636 {
3637     virtual HRESULT STDMETHODCALLTYPE InitializeEx(
3638         IBindCtx *pbc,
3639         PCIDLIST_ABSOLUTE pidlRoot,
3640         const PERSIST_FOLDER_TARGET_INFO *ppfti) = 0;
3641 
3642     virtual HRESULT STDMETHODCALLTYPE GetFolderTargetInfo(
3643         PERSIST_FOLDER_TARGET_INFO *ppfti) = 0;
3644 
3645 };
3646 #ifdef __CRT_UUID_DECL
3647 __CRT_UUID_DECL(IPersistFolder3, 0xcef04fdf, 0xfe72, 0x11d2, 0x87,0xa5, 0x00,0xc0,0x4f,0x68,0x37,0xcf)
3648 #endif
3649 #else
3650 typedef struct IPersistFolder3Vtbl {
3651     BEGIN_INTERFACE
3652 
3653     /*** IUnknown methods ***/
3654     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3655         IPersistFolder3 *This,
3656         REFIID riid,
3657         void **ppvObject);
3658 
3659     ULONG (STDMETHODCALLTYPE *AddRef)(
3660         IPersistFolder3 *This);
3661 
3662     ULONG (STDMETHODCALLTYPE *Release)(
3663         IPersistFolder3 *This);
3664 
3665     /*** IPersist methods ***/
3666     HRESULT (STDMETHODCALLTYPE *GetClassID)(
3667         IPersistFolder3 *This,
3668         CLSID *pClassID);
3669 
3670     /*** IPersistFolder methods ***/
3671     HRESULT (STDMETHODCALLTYPE *Initialize)(
3672         IPersistFolder3 *This,
3673         PCIDLIST_ABSOLUTE pidl);
3674 
3675     /*** IPersistFolder2 methods ***/
3676     HRESULT (STDMETHODCALLTYPE *GetCurFolder)(
3677         IPersistFolder3 *This,
3678         PIDLIST_ABSOLUTE *ppidl);
3679 
3680     /*** IPersistFolder3 methods ***/
3681     HRESULT (STDMETHODCALLTYPE *InitializeEx)(
3682         IPersistFolder3 *This,
3683         IBindCtx *pbc,
3684         PCIDLIST_ABSOLUTE pidlRoot,
3685         const PERSIST_FOLDER_TARGET_INFO *ppfti);
3686 
3687     HRESULT (STDMETHODCALLTYPE *GetFolderTargetInfo)(
3688         IPersistFolder3 *This,
3689         PERSIST_FOLDER_TARGET_INFO *ppfti);
3690 
3691     END_INTERFACE
3692 } IPersistFolder3Vtbl;
3693 
3694 interface IPersistFolder3 {
3695     CONST_VTBL IPersistFolder3Vtbl* lpVtbl;
3696 };
3697 
3698 #ifdef COBJMACROS
3699 #ifndef WIDL_C_INLINE_WRAPPERS
3700 /*** IUnknown methods ***/
3701 #define IPersistFolder3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3702 #define IPersistFolder3_AddRef(This) (This)->lpVtbl->AddRef(This)
3703 #define IPersistFolder3_Release(This) (This)->lpVtbl->Release(This)
3704 /*** IPersist methods ***/
3705 #define IPersistFolder3_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
3706 /*** IPersistFolder methods ***/
3707 #define IPersistFolder3_Initialize(This,pidl) (This)->lpVtbl->Initialize(This,pidl)
3708 /*** IPersistFolder2 methods ***/
3709 #define IPersistFolder3_GetCurFolder(This,ppidl) (This)->lpVtbl->GetCurFolder(This,ppidl)
3710 /*** IPersistFolder3 methods ***/
3711 #define IPersistFolder3_InitializeEx(This,pbc,pidlRoot,ppfti) (This)->lpVtbl->InitializeEx(This,pbc,pidlRoot,ppfti)
3712 #define IPersistFolder3_GetFolderTargetInfo(This,ppfti) (This)->lpVtbl->GetFolderTargetInfo(This,ppfti)
3713 #else
3714 /*** IUnknown methods ***/
3715 static FORCEINLINE HRESULT IPersistFolder3_QueryInterface(IPersistFolder3* This,REFIID riid,void **ppvObject) {
3716     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3717 }
3718 static FORCEINLINE ULONG IPersistFolder3_AddRef(IPersistFolder3* This) {
3719     return This->lpVtbl->AddRef(This);
3720 }
3721 static FORCEINLINE ULONG IPersistFolder3_Release(IPersistFolder3* This) {
3722     return This->lpVtbl->Release(This);
3723 }
3724 /*** IPersist methods ***/
3725 static FORCEINLINE HRESULT IPersistFolder3_GetClassID(IPersistFolder3* This,CLSID *pClassID) {
3726     return This->lpVtbl->GetClassID(This,pClassID);
3727 }
3728 /*** IPersistFolder methods ***/
3729 static FORCEINLINE HRESULT IPersistFolder3_Initialize(IPersistFolder3* This,PCIDLIST_ABSOLUTE pidl) {
3730     return This->lpVtbl->Initialize(This,pidl);
3731 }
3732 /*** IPersistFolder2 methods ***/
3733 static FORCEINLINE HRESULT IPersistFolder3_GetCurFolder(IPersistFolder3* This,PIDLIST_ABSOLUTE *ppidl) {
3734     return This->lpVtbl->GetCurFolder(This,ppidl);
3735 }
3736 /*** IPersistFolder3 methods ***/
3737 static FORCEINLINE HRESULT IPersistFolder3_InitializeEx(IPersistFolder3* This,IBindCtx *pbc,PCIDLIST_ABSOLUTE pidlRoot,const PERSIST_FOLDER_TARGET_INFO *ppfti) {
3738     return This->lpVtbl->InitializeEx(This,pbc,pidlRoot,ppfti);
3739 }
3740 static FORCEINLINE HRESULT IPersistFolder3_GetFolderTargetInfo(IPersistFolder3* This,PERSIST_FOLDER_TARGET_INFO *ppfti) {
3741     return This->lpVtbl->GetFolderTargetInfo(This,ppfti);
3742 }
3743 #endif
3744 #endif
3745 
3746 #endif
3747 
3748 
3749 #endif  /* __IPersistFolder3_INTERFACE_DEFINED__ */
3750 
3751 
3752 /*****************************************************************************
3753  * IPersistIDList interface
3754  */
3755 #ifndef __IPersistIDList_INTERFACE_DEFINED__
3756 #define __IPersistIDList_INTERFACE_DEFINED__
3757 
3758 DEFINE_GUID(IID_IPersistIDList, 0x1079acfc, 0x29bd, 0x11d3, 0x8e,0x0d, 0x00,0xc0,0x4f,0x68,0x37,0xd5);
3759 #if defined(__cplusplus) && !defined(CINTERFACE)
3760 MIDL_INTERFACE("1079acfc-29bd-11d3-8e0d-00c04f6837d5")
3761 IPersistIDList : public IPersist
3762 {
3763     virtual HRESULT STDMETHODCALLTYPE SetIDList(
3764         PCIDLIST_ABSOLUTE pidl) = 0;
3765 
3766     virtual HRESULT STDMETHODCALLTYPE GetIDList(
3767         PIDLIST_ABSOLUTE *ppidl) = 0;
3768 
3769 };
3770 #ifdef __CRT_UUID_DECL
3771 __CRT_UUID_DECL(IPersistIDList, 0x1079acfc, 0x29bd, 0x11d3, 0x8e,0x0d, 0x00,0xc0,0x4f,0x68,0x37,0xd5)
3772 #endif
3773 #else
3774 typedef struct IPersistIDListVtbl {
3775     BEGIN_INTERFACE
3776 
3777     /*** IUnknown methods ***/
3778     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3779         IPersistIDList *This,
3780         REFIID riid,
3781         void **ppvObject);
3782 
3783     ULONG (STDMETHODCALLTYPE *AddRef)(
3784         IPersistIDList *This);
3785 
3786     ULONG (STDMETHODCALLTYPE *Release)(
3787         IPersistIDList *This);
3788 
3789     /*** IPersist methods ***/
3790     HRESULT (STDMETHODCALLTYPE *GetClassID)(
3791         IPersistIDList *This,
3792         CLSID *pClassID);
3793 
3794     /*** IPersistIDList methods ***/
3795     HRESULT (STDMETHODCALLTYPE *SetIDList)(
3796         IPersistIDList *This,
3797         PCIDLIST_ABSOLUTE pidl);
3798 
3799     HRESULT (STDMETHODCALLTYPE *GetIDList)(
3800         IPersistIDList *This,
3801         PIDLIST_ABSOLUTE *ppidl);
3802 
3803     END_INTERFACE
3804 } IPersistIDListVtbl;
3805 
3806 interface IPersistIDList {
3807     CONST_VTBL IPersistIDListVtbl* lpVtbl;
3808 };
3809 
3810 #ifdef COBJMACROS
3811 #ifndef WIDL_C_INLINE_WRAPPERS
3812 /*** IUnknown methods ***/
3813 #define IPersistIDList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3814 #define IPersistIDList_AddRef(This) (This)->lpVtbl->AddRef(This)
3815 #define IPersistIDList_Release(This) (This)->lpVtbl->Release(This)
3816 /*** IPersist methods ***/
3817 #define IPersistIDList_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
3818 /*** IPersistIDList methods ***/
3819 #define IPersistIDList_SetIDList(This,pidl) (This)->lpVtbl->SetIDList(This,pidl)
3820 #define IPersistIDList_GetIDList(This,ppidl) (This)->lpVtbl->GetIDList(This,ppidl)
3821 #else
3822 /*** IUnknown methods ***/
3823 static FORCEINLINE HRESULT IPersistIDList_QueryInterface(IPersistIDList* This,REFIID riid,void **ppvObject) {
3824     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3825 }
3826 static FORCEINLINE ULONG IPersistIDList_AddRef(IPersistIDList* This) {
3827     return This->lpVtbl->AddRef(This);
3828 }
3829 static FORCEINLINE ULONG IPersistIDList_Release(IPersistIDList* This) {
3830     return This->lpVtbl->Release(This);
3831 }
3832 /*** IPersist methods ***/
3833 static FORCEINLINE HRESULT IPersistIDList_GetClassID(IPersistIDList* This,CLSID *pClassID) {
3834     return This->lpVtbl->GetClassID(This,pClassID);
3835 }
3836 /*** IPersistIDList methods ***/
3837 static FORCEINLINE HRESULT IPersistIDList_SetIDList(IPersistIDList* This,PCIDLIST_ABSOLUTE pidl) {
3838     return This->lpVtbl->SetIDList(This,pidl);
3839 }
3840 static FORCEINLINE HRESULT IPersistIDList_GetIDList(IPersistIDList* This,PIDLIST_ABSOLUTE *ppidl) {
3841     return This->lpVtbl->GetIDList(This,ppidl);
3842 }
3843 #endif
3844 #endif
3845 
3846 #endif
3847 
3848 
3849 #endif  /* __IPersistIDList_INTERFACE_DEFINED__ */
3850 
3851 
3852 /*****************************************************************************
3853  * IEnumIDList interface
3854  */
3855 #ifndef __IEnumIDList_INTERFACE_DEFINED__
3856 #define __IEnumIDList_INTERFACE_DEFINED__
3857 
3858 DEFINE_GUID(IID_IEnumIDList, 0x000214f2, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3859 #if defined(__cplusplus) && !defined(CINTERFACE)
3860 MIDL_INTERFACE("000214f2-0000-0000-c000-000000000046")
3861 IEnumIDList : public IUnknown
3862 {
3863     virtual HRESULT STDMETHODCALLTYPE Next(
3864         ULONG celt,
3865         PITEMID_CHILD *rgelt,
3866         ULONG *pceltFetched) = 0;
3867 
3868     virtual HRESULT STDMETHODCALLTYPE Skip(
3869         ULONG celt) = 0;
3870 
3871     virtual HRESULT STDMETHODCALLTYPE Reset(
3872         ) = 0;
3873 
3874     virtual HRESULT STDMETHODCALLTYPE Clone(
3875         IEnumIDList **ppenum) = 0;
3876 
3877 };
3878 #ifdef __CRT_UUID_DECL
3879 __CRT_UUID_DECL(IEnumIDList, 0x000214f2, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
3880 #endif
3881 #else
3882 typedef struct IEnumIDListVtbl {
3883     BEGIN_INTERFACE
3884 
3885     /*** IUnknown methods ***/
3886     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3887         IEnumIDList *This,
3888         REFIID riid,
3889         void **ppvObject);
3890 
3891     ULONG (STDMETHODCALLTYPE *AddRef)(
3892         IEnumIDList *This);
3893 
3894     ULONG (STDMETHODCALLTYPE *Release)(
3895         IEnumIDList *This);
3896 
3897     /*** IEnumIDList methods ***/
3898     HRESULT (STDMETHODCALLTYPE *Next)(
3899         IEnumIDList *This,
3900         ULONG celt,
3901         PITEMID_CHILD *rgelt,
3902         ULONG *pceltFetched);
3903 
3904     HRESULT (STDMETHODCALLTYPE *Skip)(
3905         IEnumIDList *This,
3906         ULONG celt);
3907 
3908     HRESULT (STDMETHODCALLTYPE *Reset)(
3909         IEnumIDList *This);
3910 
3911     HRESULT (STDMETHODCALLTYPE *Clone)(
3912         IEnumIDList *This,
3913         IEnumIDList **ppenum);
3914 
3915     END_INTERFACE
3916 } IEnumIDListVtbl;
3917 
3918 interface IEnumIDList {
3919     CONST_VTBL IEnumIDListVtbl* lpVtbl;
3920 };
3921 
3922 #ifdef COBJMACROS
3923 #ifndef WIDL_C_INLINE_WRAPPERS
3924 /*** IUnknown methods ***/
3925 #define IEnumIDList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3926 #define IEnumIDList_AddRef(This) (This)->lpVtbl->AddRef(This)
3927 #define IEnumIDList_Release(This) (This)->lpVtbl->Release(This)
3928 /*** IEnumIDList methods ***/
3929 #define IEnumIDList_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
3930 #define IEnumIDList_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
3931 #define IEnumIDList_Reset(This) (This)->lpVtbl->Reset(This)
3932 #define IEnumIDList_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
3933 #else
3934 /*** IUnknown methods ***/
3935 static FORCEINLINE HRESULT IEnumIDList_QueryInterface(IEnumIDList* This,REFIID riid,void **ppvObject) {
3936     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3937 }
3938 static FORCEINLINE ULONG IEnumIDList_AddRef(IEnumIDList* This) {
3939     return This->lpVtbl->AddRef(This);
3940 }
3941 static FORCEINLINE ULONG IEnumIDList_Release(IEnumIDList* This) {
3942     return This->lpVtbl->Release(This);
3943 }
3944 /*** IEnumIDList methods ***/
3945 static FORCEINLINE HRESULT IEnumIDList_Next(IEnumIDList* This,ULONG celt,PITEMID_CHILD *rgelt,ULONG *pceltFetched) {
3946     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
3947 }
3948 static FORCEINLINE HRESULT IEnumIDList_Skip(IEnumIDList* This,ULONG celt) {
3949     return This->lpVtbl->Skip(This,celt);
3950 }
3951 static FORCEINLINE HRESULT IEnumIDList_Reset(IEnumIDList* This) {
3952     return This->lpVtbl->Reset(This);
3953 }
3954 static FORCEINLINE HRESULT IEnumIDList_Clone(IEnumIDList* This,IEnumIDList **ppenum) {
3955     return This->lpVtbl->Clone(This,ppenum);
3956 }
3957 #endif
3958 #endif
3959 
3960 #endif
3961 
3962 HRESULT STDMETHODCALLTYPE IEnumIDList_RemoteNext_Proxy(
3963     IEnumIDList* This,
3964     ULONG celt,
3965     PITEMID_CHILD *rgelt,
3966     ULONG *pceltFetched);
3967 void __RPC_STUB IEnumIDList_RemoteNext_Stub(
3968     IRpcStubBuffer* This,
3969     IRpcChannelBuffer* pRpcChannelBuffer,
3970     PRPC_MESSAGE pRpcMessage,
3971     DWORD* pdwStubPhase);
3972 HRESULT CALLBACK IEnumIDList_Next_Proxy(
3973     IEnumIDList* This,
3974     ULONG celt,
3975     PITEMID_CHILD *rgelt,
3976     ULONG *pceltFetched);
3977 HRESULT __RPC_STUB IEnumIDList_Next_Stub(
3978     IEnumIDList* This,
3979     ULONG celt,
3980     PITEMID_CHILD *rgelt,
3981     ULONG *pceltFetched);
3982 
3983 #endif  /* __IEnumIDList_INTERFACE_DEFINED__ */
3984 
3985 typedef IEnumIDList *LPENUMIDLIST;
3986 
3987 /*****************************************************************************
3988  * IEnumFullIDList interface
3989  */
3990 #ifndef __IEnumFullIDList_INTERFACE_DEFINED__
3991 #define __IEnumFullIDList_INTERFACE_DEFINED__
3992 
3993 DEFINE_GUID(IID_IEnumFullIDList, 0xd0191542, 0x7954, 0x4908, 0xbc,0x06, 0xb2,0x36,0x0b,0xbe,0x45,0xba);
3994 #if defined(__cplusplus) && !defined(CINTERFACE)
3995 MIDL_INTERFACE("d0191542-7954-4908-bc06-b2360bbe45ba")
3996 IEnumFullIDList : public IUnknown
3997 {
3998     virtual HRESULT STDMETHODCALLTYPE Next(
3999         ULONG celt,
4000         PIDLIST_ABSOLUTE *rgelt,
4001         ULONG *pceltFetched) = 0;
4002 
4003     virtual HRESULT STDMETHODCALLTYPE Skip(
4004         ULONG celt) = 0;
4005 
4006     virtual HRESULT STDMETHODCALLTYPE Reset(
4007         ) = 0;
4008 
4009     virtual HRESULT STDMETHODCALLTYPE Clone(
4010         IEnumFullIDList **ppenum) = 0;
4011 
4012 };
4013 #ifdef __CRT_UUID_DECL
4014 __CRT_UUID_DECL(IEnumFullIDList, 0xd0191542, 0x7954, 0x4908, 0xbc,0x06, 0xb2,0x36,0x0b,0xbe,0x45,0xba)
4015 #endif
4016 #else
4017 typedef struct IEnumFullIDListVtbl {
4018     BEGIN_INTERFACE
4019 
4020     /*** IUnknown methods ***/
4021     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4022         IEnumFullIDList *This,
4023         REFIID riid,
4024         void **ppvObject);
4025 
4026     ULONG (STDMETHODCALLTYPE *AddRef)(
4027         IEnumFullIDList *This);
4028 
4029     ULONG (STDMETHODCALLTYPE *Release)(
4030         IEnumFullIDList *This);
4031 
4032     /*** IEnumFullIDList methods ***/
4033     HRESULT (STDMETHODCALLTYPE *Next)(
4034         IEnumFullIDList *This,
4035         ULONG celt,
4036         PIDLIST_ABSOLUTE *rgelt,
4037         ULONG *pceltFetched);
4038 
4039     HRESULT (STDMETHODCALLTYPE *Skip)(
4040         IEnumFullIDList *This,
4041         ULONG celt);
4042 
4043     HRESULT (STDMETHODCALLTYPE *Reset)(
4044         IEnumFullIDList *This);
4045 
4046     HRESULT (STDMETHODCALLTYPE *Clone)(
4047         IEnumFullIDList *This,
4048         IEnumFullIDList **ppenum);
4049 
4050     END_INTERFACE
4051 } IEnumFullIDListVtbl;
4052 
4053 interface IEnumFullIDList {
4054     CONST_VTBL IEnumFullIDListVtbl* lpVtbl;
4055 };
4056 
4057 #ifdef COBJMACROS
4058 #ifndef WIDL_C_INLINE_WRAPPERS
4059 /*** IUnknown methods ***/
4060 #define IEnumFullIDList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4061 #define IEnumFullIDList_AddRef(This) (This)->lpVtbl->AddRef(This)
4062 #define IEnumFullIDList_Release(This) (This)->lpVtbl->Release(This)
4063 /*** IEnumFullIDList methods ***/
4064 #define IEnumFullIDList_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
4065 #define IEnumFullIDList_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
4066 #define IEnumFullIDList_Reset(This) (This)->lpVtbl->Reset(This)
4067 #define IEnumFullIDList_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
4068 #else
4069 /*** IUnknown methods ***/
4070 static FORCEINLINE HRESULT IEnumFullIDList_QueryInterface(IEnumFullIDList* This,REFIID riid,void **ppvObject) {
4071     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4072 }
4073 static FORCEINLINE ULONG IEnumFullIDList_AddRef(IEnumFullIDList* This) {
4074     return This->lpVtbl->AddRef(This);
4075 }
4076 static FORCEINLINE ULONG IEnumFullIDList_Release(IEnumFullIDList* This) {
4077     return This->lpVtbl->Release(This);
4078 }
4079 /*** IEnumFullIDList methods ***/
4080 static FORCEINLINE HRESULT IEnumFullIDList_Next(IEnumFullIDList* This,ULONG celt,PIDLIST_ABSOLUTE *rgelt,ULONG *pceltFetched) {
4081     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
4082 }
4083 static FORCEINLINE HRESULT IEnumFullIDList_Skip(IEnumFullIDList* This,ULONG celt) {
4084     return This->lpVtbl->Skip(This,celt);
4085 }
4086 static FORCEINLINE HRESULT IEnumFullIDList_Reset(IEnumFullIDList* This) {
4087     return This->lpVtbl->Reset(This);
4088 }
4089 static FORCEINLINE HRESULT IEnumFullIDList_Clone(IEnumFullIDList* This,IEnumFullIDList **ppenum) {
4090     return This->lpVtbl->Clone(This,ppenum);
4091 }
4092 #endif
4093 #endif
4094 
4095 #endif
4096 
4097 HRESULT STDMETHODCALLTYPE IEnumFullIDList_RemoteNext_Proxy(
4098     IEnumFullIDList* This,
4099     ULONG celt,
4100     PIDLIST_ABSOLUTE *rgelt,
4101     ULONG *pceltFetched);
4102 void __RPC_STUB IEnumFullIDList_RemoteNext_Stub(
4103     IRpcStubBuffer* This,
4104     IRpcChannelBuffer* pRpcChannelBuffer,
4105     PRPC_MESSAGE pRpcMessage,
4106     DWORD* pdwStubPhase);
4107 HRESULT CALLBACK IEnumFullIDList_Next_Proxy(
4108     IEnumFullIDList* This,
4109     ULONG celt,
4110     PIDLIST_ABSOLUTE *rgelt,
4111     ULONG *pceltFetched);
4112 HRESULT __RPC_STUB IEnumFullIDList_Next_Stub(
4113     IEnumFullIDList* This,
4114     ULONG celt,
4115     PIDLIST_ABSOLUTE *rgelt,
4116     ULONG *pceltFetched);
4117 
4118 #endif  /* __IEnumFullIDList_INTERFACE_DEFINED__ */
4119 
4120 
4121 enum _SHGDNF {
4122     SHGDN_NORMAL = 0x0,
4123     SHGDN_INFOLDER = 0x1,
4124     SHGDN_FOREDITING = 0x1000,
4125     SHGDN_FORADDRESSBAR = 0x4000,
4126     SHGDN_FORPARSING = 0x8000
4127 };
4128 
4129 typedef DWORD SHGDNF;
4130 
4131 enum _SHCONTF {
4132     SHCONTF_CHECKING_FOR_CHILDREN = 0x10,
4133     SHCONTF_FOLDERS = 0x20,
4134     SHCONTF_NONFOLDERS = 0x40,
4135     SHCONTF_INCLUDEHIDDEN = 0x80,
4136     SHCONTF_INIT_ON_FIRST_NEXT = 0x100,
4137     SHCONTF_NETPRINTERSRCH = 0x200,
4138     SHCONTF_SHAREABLE = 0x400,
4139     SHCONTF_STORAGE = 0x800,
4140     SHCONTF_NAVIGATION_ENUM = 0x1000,
4141     SHCONTF_FASTITEMS = 0x2000,
4142     SHCONTF_FLATLIST = 0x4000,
4143     SHCONTF_ENABLE_ASYNC = 0x8000,
4144     SHCONTF_INCLUDESUPERHIDDEN = 0x10000
4145 };
4146 
4147 typedef DWORD SHCONTF;
4148 
4149 #define SHCIDS_ALLFIELDS __MSABI_LONG(0x80000000)
4150 #define SHCIDS_CANONICALONLY __MSABI_LONG(0x10000000)
4151 #define SHCIDS_BITMASK __MSABI_LONG(0xffff0000)
4152 #define SHCIDS_COLUMNMASK __MSABI_LONG(0x0000ffff)
4153 
4154 #define SFGAO_CANCOPY DROPEFFECT_COPY
4155 #define SFGAO_CANMOVE DROPEFFECT_MOVE
4156 #define SFGAO_CANLINK DROPEFFECT_LINK
4157 #define SFGAO_STORAGE __MSABI_LONG(0x8)
4158 #define SFGAO_CANRENAME __MSABI_LONG(0x10)
4159 #define SFGAO_CANDELETE __MSABI_LONG(0x20)
4160 #define SFGAO_HASPROPSHEET __MSABI_LONG(0x40)
4161 #define SFGAO_DROPTARGET __MSABI_LONG(0x100)
4162 
4163 #define SFGAO_CAPABILITYMASK __MSABI_LONG(0x177)
4164 
4165 #define SFGAO_SYSTEM __MSABI_LONG(0x1000)
4166 #define SFGAO_ENCRYPTED __MSABI_LONG(0x2000)
4167 #define SFGAO_ISSLOW __MSABI_LONG(0x4000)
4168 #define SFGAO_GHOSTED __MSABI_LONG(0x8000)
4169 #define SFGAO_LINK __MSABI_LONG(0x10000)
4170 #define SFGAO_SHARE __MSABI_LONG(0x20000)
4171 #define SFGAO_READONLY __MSABI_LONG(0x40000)
4172 #define SFGAO_HIDDEN __MSABI_LONG(0x80000)
4173 
4174 #define SFGAO_DISPLAYATTRMASK __MSABI_LONG(0xfc000)
4175 
4176 #define SFGAO_FILESYSANCESTOR __MSABI_LONG(0x10000000)
4177 #define SFGAO_FOLDER __MSABI_LONG(0x20000000)
4178 #define SFGAO_FILESYSTEM __MSABI_LONG(0x40000000)
4179 #define SFGAO_HASSUBFOLDER __MSABI_LONG(0x80000000)
4180 
4181 #define SFGAO_CONTENTSMASK __MSABI_LONG(0x80000000)
4182 
4183 #define SFGAO_VALIDATE __MSABI_LONG(0x1000000)
4184 #define SFGAO_REMOVABLE __MSABI_LONG(0x2000000)
4185 #define SFGAO_COMPRESSED __MSABI_LONG(0x4000000)
4186 #define SFGAO_BROWSABLE __MSABI_LONG(0x8000000)
4187 #define SFGAO_NONENUMERATED __MSABI_LONG(0x100000)
4188 #define SFGAO_NEWCONTENT __MSABI_LONG(0x200000)
4189 #define SFGAO_CANMONIKER __MSABI_LONG(0x400000)
4190 #define SFGAO_HASSTORAGE __MSABI_LONG(0x400000)
4191 #define SFGAO_STREAM __MSABI_LONG(0x400000)
4192 #define SFGAO_STORAGEANCESTOR __MSABI_LONG(0x00800000)
4193 
4194 #define SFGAO_STORAGECAPMASK __MSABI_LONG(0x70c50008)
4195 #define SFGAO_PKEYSFGAOMASK __MSABI_LONG(0x81044000)
4196 
4197 typedef ULONG SFGAOF;
4198 
4199 #define STR_BIND_FORCE_FOLDER_SHORTCUT_RESOLVE L"Force Folder Shortcut Resolve"
4200 #define STR_AVOID_DRIVE_RESTRICTION_POLICY L"Avoid Drive Restriction Policy"
4201 #define STR_AVOID_DRIVE_RESTRICTION_POLICY L"Avoid Drive Restriction Policy"
4202 #define STR_SKIP_BINDING_CLSID L"Skip Binding CLSID"
4203 #define STR_PARSE_PREFER_FOLDER_BROWSING L"Parse Prefer Folder Browsing"
4204 #define STR_DONT_PARSE_RELATIVE L"Don't Parse Relative"
4205 #define STR_PARSE_TRANSLATE_ALIASES L"Parse Translate Aliases"
4206 #define STR_PARSE_SKIP_NET_CACHE L"Skip Net Resource Cache"
4207 #define STR_PARSE_SHELL_PROTOCOL_TO_FILE_OBJECTS L"Parse Shell Protocol To File Objects"
4208 #if _WIN32_IE >= 0x0700
4209 #define STR_TRACK_CLSID L"Track the CLSID"
4210 #define STR_INTERNAL_NAVIGATE L"Internal Navigation"
4211 #define STR_PARSE_PROPERTYSTORE L"DelegateNamedProperties"
4212 #define STR_NO_VALIDATE_FILENAME_CHARS L"NoValidateFilenameChars"
4213 #define STR_BIND_DELEGATE_CREATE_OBJECT L"Delegate Object Creation"
4214 #define STR_PARSE_ALLOW_INTERNET_SHELL_FOLDERS L"Allow binding to Internet shell folder handlers and negate STR_PARSE_PREFER_WEB_BROWSING"
4215 #define STR_PARSE_PREFER_WEB_BROWSING L"Do not bind to Internet shell folder handlers"
4216 #define STR_PARSE_SHOW_NET_DIAGNOSTICS_UI L"Show network diagnostics UI"
4217 #define STR_PARSE_DONT_REQUIRE_VALIDATED_URLS L"Do not require validated URLs"
4218 #define STR_INTERNETFOLDER_PARSE_ONLY_URLMON_BINDABLE L"Validate URL"
4219 #endif
4220 
4221 #if NTDDI_VERSION >= NTDDI_WIN8
4222 #define BIND_INTERRUPTABLE 0xffffffff
4223 #endif
4224 
4225 #if NTDDI_VERSION >= NTDDI_WIN7
4226 #define STR_BIND_FOLDERS_READ_ONLY L"Folders As Read Only"
4227 #define STR_BIND_FOLDER_ENUM_MODE L"Folder Enum Mode"
4228 
4229 typedef enum FOLDER_ENUM_MODE {
4230     FEM_VIEWRESULT = 0,
4231     FEM_NAVIGATION = 1
4232 } FOLDER_ENUM_MODE;
4233 
4234 /*****************************************************************************
4235  * IObjectWithFolderEnumMode interface
4236  */
4237 #ifndef __IObjectWithFolderEnumMode_INTERFACE_DEFINED__
4238 #define __IObjectWithFolderEnumMode_INTERFACE_DEFINED__
4239 
4240 DEFINE_GUID(IID_IObjectWithFolderEnumMode, 0x6a9d9026, 0x0e6e, 0x464c, 0xb0,0x00, 0x42,0xec,0xc0,0x7d,0xe6,0x73);
4241 #if defined(__cplusplus) && !defined(CINTERFACE)
4242 MIDL_INTERFACE("6a9d9026-0e6e-464c-b000-42ecc07de673")
4243 IObjectWithFolderEnumMode : public IUnknown
4244 {
4245     virtual HRESULT STDMETHODCALLTYPE SetMode(
4246         FOLDER_ENUM_MODE feMode) = 0;
4247 
4248     virtual HRESULT STDMETHODCALLTYPE GetMode(
4249         FOLDER_ENUM_MODE *pfeMode) = 0;
4250 
4251 };
4252 #ifdef __CRT_UUID_DECL
4253 __CRT_UUID_DECL(IObjectWithFolderEnumMode, 0x6a9d9026, 0x0e6e, 0x464c, 0xb0,0x00, 0x42,0xec,0xc0,0x7d,0xe6,0x73)
4254 #endif
4255 #else
4256 typedef struct IObjectWithFolderEnumModeVtbl {
4257     BEGIN_INTERFACE
4258 
4259     /*** IUnknown methods ***/
4260     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4261         IObjectWithFolderEnumMode *This,
4262         REFIID riid,
4263         void **ppvObject);
4264 
4265     ULONG (STDMETHODCALLTYPE *AddRef)(
4266         IObjectWithFolderEnumMode *This);
4267 
4268     ULONG (STDMETHODCALLTYPE *Release)(
4269         IObjectWithFolderEnumMode *This);
4270 
4271     /*** IObjectWithFolderEnumMode methods ***/
4272     HRESULT (STDMETHODCALLTYPE *SetMode)(
4273         IObjectWithFolderEnumMode *This,
4274         FOLDER_ENUM_MODE feMode);
4275 
4276     HRESULT (STDMETHODCALLTYPE *GetMode)(
4277         IObjectWithFolderEnumMode *This,
4278         FOLDER_ENUM_MODE *pfeMode);
4279 
4280     END_INTERFACE
4281 } IObjectWithFolderEnumModeVtbl;
4282 
4283 interface IObjectWithFolderEnumMode {
4284     CONST_VTBL IObjectWithFolderEnumModeVtbl* lpVtbl;
4285 };
4286 
4287 #ifdef COBJMACROS
4288 #ifndef WIDL_C_INLINE_WRAPPERS
4289 /*** IUnknown methods ***/
4290 #define IObjectWithFolderEnumMode_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4291 #define IObjectWithFolderEnumMode_AddRef(This) (This)->lpVtbl->AddRef(This)
4292 #define IObjectWithFolderEnumMode_Release(This) (This)->lpVtbl->Release(This)
4293 /*** IObjectWithFolderEnumMode methods ***/
4294 #define IObjectWithFolderEnumMode_SetMode(This,feMode) (This)->lpVtbl->SetMode(This,feMode)
4295 #define IObjectWithFolderEnumMode_GetMode(This,pfeMode) (This)->lpVtbl->GetMode(This,pfeMode)
4296 #else
4297 /*** IUnknown methods ***/
4298 static FORCEINLINE HRESULT IObjectWithFolderEnumMode_QueryInterface(IObjectWithFolderEnumMode* This,REFIID riid,void **ppvObject) {
4299     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4300 }
4301 static FORCEINLINE ULONG IObjectWithFolderEnumMode_AddRef(IObjectWithFolderEnumMode* This) {
4302     return This->lpVtbl->AddRef(This);
4303 }
4304 static FORCEINLINE ULONG IObjectWithFolderEnumMode_Release(IObjectWithFolderEnumMode* This) {
4305     return This->lpVtbl->Release(This);
4306 }
4307 /*** IObjectWithFolderEnumMode methods ***/
4308 static FORCEINLINE HRESULT IObjectWithFolderEnumMode_SetMode(IObjectWithFolderEnumMode* This,FOLDER_ENUM_MODE feMode) {
4309     return This->lpVtbl->SetMode(This,feMode);
4310 }
4311 static FORCEINLINE HRESULT IObjectWithFolderEnumMode_GetMode(IObjectWithFolderEnumMode* This,FOLDER_ENUM_MODE *pfeMode) {
4312     return This->lpVtbl->GetMode(This,pfeMode);
4313 }
4314 #endif
4315 #endif
4316 
4317 #endif
4318 
4319 
4320 #endif  /* __IObjectWithFolderEnumMode_INTERFACE_DEFINED__ */
4321 
4322 
4323 #define STR_PARSE_WITH_EXPLICIT_PROGID L"ExplicitProgid"
4324 #define STR_PARSE_WITH_EXPLICIT_ASSOCAPP L"ExplicitAssociationApp"
4325 #define STR_PARSE_EXPLICIT_ASSOCIATION_SUCCESSFUL L"ExplicitAssociationSuccessful"
4326 #define STR_PARSE_AND_CREATE_ITEM L"ParseAndCreateItem"
4327 #define STR_PROPERTYBAG_PARAM L"SHBindCtxPropertyBag"
4328 #define STR_ENUM_ITEMS_FLAGS L"SHCONTF"
4329 
4330 #ifndef __IShellItem_FWD_DEFINED__
4331 #define __IShellItem_FWD_DEFINED__
4332 typedef interface IShellItem IShellItem;
4333 #ifdef __cplusplus
4334 interface IShellItem;
4335 #endif /* __cplusplus */
4336 #endif
4337 
4338 
4339 /*****************************************************************************
4340  * IParseAndCreateItem interface
4341  */
4342 #ifndef __IParseAndCreateItem_INTERFACE_DEFINED__
4343 #define __IParseAndCreateItem_INTERFACE_DEFINED__
4344 
4345 DEFINE_GUID(IID_IParseAndCreateItem, 0x67efed0e, 0xe827, 0x4408, 0xb4,0x93, 0x78,0xf3,0x98,0x2b,0x68,0x5c);
4346 #if defined(__cplusplus) && !defined(CINTERFACE)
4347 MIDL_INTERFACE("67efed0e-e827-4408-b493-78f3982b685c")
4348 IParseAndCreateItem : public IUnknown
4349 {
4350     virtual HRESULT STDMETHODCALLTYPE SetItem(
4351         IShellItem *psi) = 0;
4352 
4353     virtual HRESULT STDMETHODCALLTYPE GetItem(
4354         REFIID riid,
4355         void **ppv) = 0;
4356 
4357 };
4358 #ifdef __CRT_UUID_DECL
4359 __CRT_UUID_DECL(IParseAndCreateItem, 0x67efed0e, 0xe827, 0x4408, 0xb4,0x93, 0x78,0xf3,0x98,0x2b,0x68,0x5c)
4360 #endif
4361 #else
4362 typedef struct IParseAndCreateItemVtbl {
4363     BEGIN_INTERFACE
4364 
4365     /*** IUnknown methods ***/
4366     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4367         IParseAndCreateItem *This,
4368         REFIID riid,
4369         void **ppvObject);
4370 
4371     ULONG (STDMETHODCALLTYPE *AddRef)(
4372         IParseAndCreateItem *This);
4373 
4374     ULONG (STDMETHODCALLTYPE *Release)(
4375         IParseAndCreateItem *This);
4376 
4377     /*** IParseAndCreateItem methods ***/
4378     HRESULT (STDMETHODCALLTYPE *SetItem)(
4379         IParseAndCreateItem *This,
4380         IShellItem *psi);
4381 
4382     HRESULT (STDMETHODCALLTYPE *GetItem)(
4383         IParseAndCreateItem *This,
4384         REFIID riid,
4385         void **ppv);
4386 
4387     END_INTERFACE
4388 } IParseAndCreateItemVtbl;
4389 
4390 interface IParseAndCreateItem {
4391     CONST_VTBL IParseAndCreateItemVtbl* lpVtbl;
4392 };
4393 
4394 #ifdef COBJMACROS
4395 #ifndef WIDL_C_INLINE_WRAPPERS
4396 /*** IUnknown methods ***/
4397 #define IParseAndCreateItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4398 #define IParseAndCreateItem_AddRef(This) (This)->lpVtbl->AddRef(This)
4399 #define IParseAndCreateItem_Release(This) (This)->lpVtbl->Release(This)
4400 /*** IParseAndCreateItem methods ***/
4401 #define IParseAndCreateItem_SetItem(This,psi) (This)->lpVtbl->SetItem(This,psi)
4402 #define IParseAndCreateItem_GetItem(This,riid,ppv) (This)->lpVtbl->GetItem(This,riid,ppv)
4403 #else
4404 /*** IUnknown methods ***/
4405 static FORCEINLINE HRESULT IParseAndCreateItem_QueryInterface(IParseAndCreateItem* This,REFIID riid,void **ppvObject) {
4406     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4407 }
4408 static FORCEINLINE ULONG IParseAndCreateItem_AddRef(IParseAndCreateItem* This) {
4409     return This->lpVtbl->AddRef(This);
4410 }
4411 static FORCEINLINE ULONG IParseAndCreateItem_Release(IParseAndCreateItem* This) {
4412     return This->lpVtbl->Release(This);
4413 }
4414 /*** IParseAndCreateItem methods ***/
4415 static FORCEINLINE HRESULT IParseAndCreateItem_SetItem(IParseAndCreateItem* This,IShellItem *psi) {
4416     return This->lpVtbl->SetItem(This,psi);
4417 }
4418 static FORCEINLINE HRESULT IParseAndCreateItem_GetItem(IParseAndCreateItem* This,REFIID riid,void **ppv) {
4419     return This->lpVtbl->GetItem(This,riid,ppv);
4420 }
4421 #endif
4422 #endif
4423 
4424 #endif
4425 
4426 
4427 #endif  /* __IParseAndCreateItem_INTERFACE_DEFINED__ */
4428 
4429 
4430 #define STR_ITEM_CACHE_CONTEXT L"ItemCacheContext"
4431 #endif
4432 
4433 #ifndef __IShellFolder_FWD_DEFINED__
4434 #define __IShellFolder_FWD_DEFINED__
4435 typedef interface IShellFolder IShellFolder;
4436 #ifdef __cplusplus
4437 interface IShellFolder;
4438 #endif /* __cplusplus */
4439 #endif
4440 
4441 
4442 /*****************************************************************************
4443  * IShellFolder interface
4444  */
4445 #ifndef __IShellFolder_INTERFACE_DEFINED__
4446 #define __IShellFolder_INTERFACE_DEFINED__
4447 
4448 DEFINE_GUID(IID_IShellFolder, 0x000214e6, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4449 #if defined(__cplusplus) && !defined(CINTERFACE)
4450 MIDL_INTERFACE("000214e6-0000-0000-c000-000000000046")
4451 IShellFolder : public IUnknown
4452 {
4453     virtual HRESULT STDMETHODCALLTYPE ParseDisplayName(
4454         HWND hwnd,
4455         IBindCtx *pbc,
4456         LPWSTR pszDisplayName,
4457         ULONG *pchEaten,
4458         PIDLIST_RELATIVE *ppidl,
4459         ULONG *pdwAttributes) = 0;
4460 
4461     virtual HRESULT STDMETHODCALLTYPE EnumObjects(
4462         HWND hwnd,
4463         SHCONTF grfFlags,
4464         IEnumIDList **ppenumIDList) = 0;
4465 
4466     virtual HRESULT STDMETHODCALLTYPE BindToObject(
4467         PCUIDLIST_RELATIVE pidl,
4468         IBindCtx *pbc,
4469         REFIID riid,
4470         void **ppv) = 0;
4471 
4472     virtual HRESULT STDMETHODCALLTYPE BindToStorage(
4473         PCUIDLIST_RELATIVE pidl,
4474         IBindCtx *pbc,
4475         REFIID riid,
4476         void **ppv) = 0;
4477 
4478     virtual HRESULT STDMETHODCALLTYPE CompareIDs(
4479         LPARAM lParam,
4480         PCUIDLIST_RELATIVE pidl1,
4481         PCUIDLIST_RELATIVE pidl2) = 0;
4482 
4483     virtual HRESULT STDMETHODCALLTYPE CreateViewObject(
4484         HWND hwndOwner,
4485         REFIID riid,
4486         void **ppv) = 0;
4487 
4488     virtual HRESULT STDMETHODCALLTYPE GetAttributesOf(
4489         UINT cidl,
4490         PCUITEMID_CHILD_ARRAY apidl,
4491         SFGAOF *rgfInOut) = 0;
4492 
4493     virtual HRESULT STDMETHODCALLTYPE GetUIObjectOf(
4494         HWND hwndOwner,
4495         UINT cidl,
4496         PCUITEMID_CHILD_ARRAY apidl,
4497         REFIID riid,
4498         UINT *rgfReserved,
4499         void **ppv) = 0;
4500 
4501     virtual HRESULT STDMETHODCALLTYPE GetDisplayNameOf(
4502         PCUITEMID_CHILD pidl,
4503         SHGDNF uFlags,
4504         STRRET *pName) = 0;
4505 
4506     virtual HRESULT STDMETHODCALLTYPE SetNameOf(
4507         HWND hwnd,
4508         PCUITEMID_CHILD pidl,
4509         LPCWSTR pszName,
4510         SHGDNF uFlags,
4511         PITEMID_CHILD *ppidlOut) = 0;
4512 
4513 };
4514 #ifdef __CRT_UUID_DECL
4515 __CRT_UUID_DECL(IShellFolder, 0x000214e6, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
4516 #endif
4517 #else
4518 typedef struct IShellFolderVtbl {
4519     BEGIN_INTERFACE
4520 
4521     /*** IUnknown methods ***/
4522     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4523         IShellFolder *This,
4524         REFIID riid,
4525         void **ppvObject);
4526 
4527     ULONG (STDMETHODCALLTYPE *AddRef)(
4528         IShellFolder *This);
4529 
4530     ULONG (STDMETHODCALLTYPE *Release)(
4531         IShellFolder *This);
4532 
4533     /*** IShellFolder methods ***/
4534     HRESULT (STDMETHODCALLTYPE *ParseDisplayName)(
4535         IShellFolder *This,
4536         HWND hwnd,
4537         IBindCtx *pbc,
4538         LPWSTR pszDisplayName,
4539         ULONG *pchEaten,
4540         PIDLIST_RELATIVE *ppidl,
4541         ULONG *pdwAttributes);
4542 
4543     HRESULT (STDMETHODCALLTYPE *EnumObjects)(
4544         IShellFolder *This,
4545         HWND hwnd,
4546         SHCONTF grfFlags,
4547         IEnumIDList **ppenumIDList);
4548 
4549     HRESULT (STDMETHODCALLTYPE *BindToObject)(
4550         IShellFolder *This,
4551         PCUIDLIST_RELATIVE pidl,
4552         IBindCtx *pbc,
4553         REFIID riid,
4554         void **ppv);
4555 
4556     HRESULT (STDMETHODCALLTYPE *BindToStorage)(
4557         IShellFolder *This,
4558         PCUIDLIST_RELATIVE pidl,
4559         IBindCtx *pbc,
4560         REFIID riid,
4561         void **ppv);
4562 
4563     HRESULT (STDMETHODCALLTYPE *CompareIDs)(
4564         IShellFolder *This,
4565         LPARAM lParam,
4566         PCUIDLIST_RELATIVE pidl1,
4567         PCUIDLIST_RELATIVE pidl2);
4568 
4569     HRESULT (STDMETHODCALLTYPE *CreateViewObject)(
4570         IShellFolder *This,
4571         HWND hwndOwner,
4572         REFIID riid,
4573         void **ppv);
4574 
4575     HRESULT (STDMETHODCALLTYPE *GetAttributesOf)(
4576         IShellFolder *This,
4577         UINT cidl,
4578         PCUITEMID_CHILD_ARRAY apidl,
4579         SFGAOF *rgfInOut);
4580 
4581     HRESULT (STDMETHODCALLTYPE *GetUIObjectOf)(
4582         IShellFolder *This,
4583         HWND hwndOwner,
4584         UINT cidl,
4585         PCUITEMID_CHILD_ARRAY apidl,
4586         REFIID riid,
4587         UINT *rgfReserved,
4588         void **ppv);
4589 
4590     HRESULT (STDMETHODCALLTYPE *GetDisplayNameOf)(
4591         IShellFolder *This,
4592         PCUITEMID_CHILD pidl,
4593         SHGDNF uFlags,
4594         STRRET *pName);
4595 
4596     HRESULT (STDMETHODCALLTYPE *SetNameOf)(
4597         IShellFolder *This,
4598         HWND hwnd,
4599         PCUITEMID_CHILD pidl,
4600         LPCWSTR pszName,
4601         SHGDNF uFlags,
4602         PITEMID_CHILD *ppidlOut);
4603 
4604     END_INTERFACE
4605 } IShellFolderVtbl;
4606 
4607 interface IShellFolder {
4608     CONST_VTBL IShellFolderVtbl* lpVtbl;
4609 };
4610 
4611 #ifdef COBJMACROS
4612 #ifndef WIDL_C_INLINE_WRAPPERS
4613 /*** IUnknown methods ***/
4614 #define IShellFolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4615 #define IShellFolder_AddRef(This) (This)->lpVtbl->AddRef(This)
4616 #define IShellFolder_Release(This) (This)->lpVtbl->Release(This)
4617 /*** IShellFolder methods ***/
4618 #define IShellFolder_ParseDisplayName(This,hwnd,pbc,pszDisplayName,pchEaten,ppidl,pdwAttributes) (This)->lpVtbl->ParseDisplayName(This,hwnd,pbc,pszDisplayName,pchEaten,ppidl,pdwAttributes)
4619 #define IShellFolder_EnumObjects(This,hwnd,grfFlags,ppenumIDList) (This)->lpVtbl->EnumObjects(This,hwnd,grfFlags,ppenumIDList)
4620 #define IShellFolder_BindToObject(This,pidl,pbc,riid,ppv) (This)->lpVtbl->BindToObject(This,pidl,pbc,riid,ppv)
4621 #define IShellFolder_BindToStorage(This,pidl,pbc,riid,ppv) (This)->lpVtbl->BindToStorage(This,pidl,pbc,riid,ppv)
4622 #define IShellFolder_CompareIDs(This,lParam,pidl1,pidl2) (This)->lpVtbl->CompareIDs(This,lParam,pidl1,pidl2)
4623 #define IShellFolder_CreateViewObject(This,hwndOwner,riid,ppv) (This)->lpVtbl->CreateViewObject(This,hwndOwner,riid,ppv)
4624 #define IShellFolder_GetAttributesOf(This,cidl,apidl,rgfInOut) (This)->lpVtbl->GetAttributesOf(This,cidl,apidl,rgfInOut)
4625 #define IShellFolder_GetUIObjectOf(This,hwndOwner,cidl,apidl,riid,rgfReserved,ppv) (This)->lpVtbl->GetUIObjectOf(This,hwndOwner,cidl,apidl,riid,rgfReserved,ppv)
4626 #define IShellFolder_GetDisplayNameOf(This,pidl,uFlags,pName) (This)->lpVtbl->GetDisplayNameOf(This,pidl,uFlags,pName)
4627 #define IShellFolder_SetNameOf(This,hwnd,pidl,pszName,uFlags,ppidlOut) (This)->lpVtbl->SetNameOf(This,hwnd,pidl,pszName,uFlags,ppidlOut)
4628 #else
4629 /*** IUnknown methods ***/
4630 static FORCEINLINE HRESULT IShellFolder_QueryInterface(IShellFolder* This,REFIID riid,void **ppvObject) {
4631     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4632 }
4633 static FORCEINLINE ULONG IShellFolder_AddRef(IShellFolder* This) {
4634     return This->lpVtbl->AddRef(This);
4635 }
4636 static FORCEINLINE ULONG IShellFolder_Release(IShellFolder* This) {
4637     return This->lpVtbl->Release(This);
4638 }
4639 /*** IShellFolder methods ***/
4640 static FORCEINLINE HRESULT IShellFolder_ParseDisplayName(IShellFolder* This,HWND hwnd,IBindCtx *pbc,LPWSTR pszDisplayName,ULONG *pchEaten,PIDLIST_RELATIVE *ppidl,ULONG *pdwAttributes) {
4641     return This->lpVtbl->ParseDisplayName(This,hwnd,pbc,pszDisplayName,pchEaten,ppidl,pdwAttributes);
4642 }
4643 static FORCEINLINE HRESULT IShellFolder_EnumObjects(IShellFolder* This,HWND hwnd,SHCONTF grfFlags,IEnumIDList **ppenumIDList) {
4644     return This->lpVtbl->EnumObjects(This,hwnd,grfFlags,ppenumIDList);
4645 }
4646 static FORCEINLINE HRESULT IShellFolder_BindToObject(IShellFolder* This,PCUIDLIST_RELATIVE pidl,IBindCtx *pbc,REFIID riid,void **ppv) {
4647     return This->lpVtbl->BindToObject(This,pidl,pbc,riid,ppv);
4648 }
4649 static FORCEINLINE HRESULT IShellFolder_BindToStorage(IShellFolder* This,PCUIDLIST_RELATIVE pidl,IBindCtx *pbc,REFIID riid,void **ppv) {
4650     return This->lpVtbl->BindToStorage(This,pidl,pbc,riid,ppv);
4651 }
4652 static FORCEINLINE HRESULT IShellFolder_CompareIDs(IShellFolder* This,LPARAM lParam,PCUIDLIST_RELATIVE pidl1,PCUIDLIST_RELATIVE pidl2) {
4653     return This->lpVtbl->CompareIDs(This,lParam,pidl1,pidl2);
4654 }
4655 static FORCEINLINE HRESULT IShellFolder_CreateViewObject(IShellFolder* This,HWND hwndOwner,REFIID riid,void **ppv) {
4656     return This->lpVtbl->CreateViewObject(This,hwndOwner,riid,ppv);
4657 }
4658 static FORCEINLINE HRESULT IShellFolder_GetAttributesOf(IShellFolder* This,UINT cidl,PCUITEMID_CHILD_ARRAY apidl,SFGAOF *rgfInOut) {
4659     return This->lpVtbl->GetAttributesOf(This,cidl,apidl,rgfInOut);
4660 }
4661 static FORCEINLINE HRESULT IShellFolder_GetUIObjectOf(IShellFolder* This,HWND hwndOwner,UINT cidl,PCUITEMID_CHILD_ARRAY apidl,REFIID riid,UINT *rgfReserved,void **ppv) {
4662     return This->lpVtbl->GetUIObjectOf(This,hwndOwner,cidl,apidl,riid,rgfReserved,ppv);
4663 }
4664 static FORCEINLINE HRESULT IShellFolder_GetDisplayNameOf(IShellFolder* This,PCUITEMID_CHILD pidl,SHGDNF uFlags,STRRET *pName) {
4665     return This->lpVtbl->GetDisplayNameOf(This,pidl,uFlags,pName);
4666 }
4667 static FORCEINLINE HRESULT IShellFolder_SetNameOf(IShellFolder* This,HWND hwnd,PCUITEMID_CHILD pidl,LPCWSTR pszName,SHGDNF uFlags,PITEMID_CHILD *ppidlOut) {
4668     return This->lpVtbl->SetNameOf(This,hwnd,pidl,pszName,uFlags,ppidlOut);
4669 }
4670 #endif
4671 #endif
4672 
4673 #endif
4674 
4675 HRESULT STDMETHODCALLTYPE IShellFolder_RemoteSetNameOf_Proxy(
4676     IShellFolder* This,
4677     HWND hwnd,
4678     PCUITEMID_CHILD pidl,
4679     LPCWSTR pszName,
4680     SHGDNF uFlags,
4681     PITEMID_CHILD *ppidlOut);
4682 void __RPC_STUB IShellFolder_RemoteSetNameOf_Stub(
4683     IRpcStubBuffer* This,
4684     IRpcChannelBuffer* pRpcChannelBuffer,
4685     PRPC_MESSAGE pRpcMessage,
4686     DWORD* pdwStubPhase);
4687 HRESULT CALLBACK IShellFolder_SetNameOf_Proxy(
4688     IShellFolder* This,
4689     HWND hwnd,
4690     PCUITEMID_CHILD pidl,
4691     LPCWSTR pszName,
4692     SHGDNF uFlags,
4693     PITEMID_CHILD *ppidlOut);
4694 HRESULT __RPC_STUB IShellFolder_SetNameOf_Stub(
4695     IShellFolder* This,
4696     HWND hwnd,
4697     PCUITEMID_CHILD pidl,
4698     LPCWSTR pszName,
4699     SHGDNF uFlags,
4700     PITEMID_CHILD *ppidlOut);
4701 
4702 #endif  /* __IShellFolder_INTERFACE_DEFINED__ */
4703 
4704 typedef IShellFolder *LPSHELLFOLDER;
4705 
4706 typedef struct EXTRASEARCH {
4707     GUID guidSearch;
4708     WCHAR wszFriendlyName[80];
4709     WCHAR wszUrl[2084];
4710 } EXTRASEARCH;
4711 typedef struct EXTRASEARCH *LPEXTRASEARCH;
4712 
4713 /*****************************************************************************
4714  * IEnumExtraSearch interface
4715  */
4716 #ifndef __IEnumExtraSearch_INTERFACE_DEFINED__
4717 #define __IEnumExtraSearch_INTERFACE_DEFINED__
4718 
4719 DEFINE_GUID(IID_IEnumExtraSearch, 0x0e700be1, 0x9db6, 0x11d1, 0xa1,0xce, 0x00,0xc0,0x4f,0xd7,0x5d,0x13);
4720 #if defined(__cplusplus) && !defined(CINTERFACE)
4721 MIDL_INTERFACE("0e700be1-9db6-11d1-a1ce-00c04fd75d13")
4722 IEnumExtraSearch : public IUnknown
4723 {
4724     virtual HRESULT STDMETHODCALLTYPE Next(
4725         ULONG celt,
4726         EXTRASEARCH *rgelt,
4727         ULONG *pceltFetched) = 0;
4728 
4729     virtual HRESULT STDMETHODCALLTYPE Skip(
4730         ULONG celt) = 0;
4731 
4732     virtual HRESULT STDMETHODCALLTYPE Reset(
4733         ) = 0;
4734 
4735     virtual HRESULT STDMETHODCALLTYPE Clone(
4736         IEnumExtraSearch **ppenum) = 0;
4737 
4738 };
4739 #ifdef __CRT_UUID_DECL
4740 __CRT_UUID_DECL(IEnumExtraSearch, 0x0e700be1, 0x9db6, 0x11d1, 0xa1,0xce, 0x00,0xc0,0x4f,0xd7,0x5d,0x13)
4741 #endif
4742 #else
4743 typedef struct IEnumExtraSearchVtbl {
4744     BEGIN_INTERFACE
4745 
4746     /*** IUnknown methods ***/
4747     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4748         IEnumExtraSearch *This,
4749         REFIID riid,
4750         void **ppvObject);
4751 
4752     ULONG (STDMETHODCALLTYPE *AddRef)(
4753         IEnumExtraSearch *This);
4754 
4755     ULONG (STDMETHODCALLTYPE *Release)(
4756         IEnumExtraSearch *This);
4757 
4758     /*** IEnumExtraSearch methods ***/
4759     HRESULT (STDMETHODCALLTYPE *Next)(
4760         IEnumExtraSearch *This,
4761         ULONG celt,
4762         EXTRASEARCH *rgelt,
4763         ULONG *pceltFetched);
4764 
4765     HRESULT (STDMETHODCALLTYPE *Skip)(
4766         IEnumExtraSearch *This,
4767         ULONG celt);
4768 
4769     HRESULT (STDMETHODCALLTYPE *Reset)(
4770         IEnumExtraSearch *This);
4771 
4772     HRESULT (STDMETHODCALLTYPE *Clone)(
4773         IEnumExtraSearch *This,
4774         IEnumExtraSearch **ppenum);
4775 
4776     END_INTERFACE
4777 } IEnumExtraSearchVtbl;
4778 
4779 interface IEnumExtraSearch {
4780     CONST_VTBL IEnumExtraSearchVtbl* lpVtbl;
4781 };
4782 
4783 #ifdef COBJMACROS
4784 #ifndef WIDL_C_INLINE_WRAPPERS
4785 /*** IUnknown methods ***/
4786 #define IEnumExtraSearch_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4787 #define IEnumExtraSearch_AddRef(This) (This)->lpVtbl->AddRef(This)
4788 #define IEnumExtraSearch_Release(This) (This)->lpVtbl->Release(This)
4789 /*** IEnumExtraSearch methods ***/
4790 #define IEnumExtraSearch_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
4791 #define IEnumExtraSearch_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
4792 #define IEnumExtraSearch_Reset(This) (This)->lpVtbl->Reset(This)
4793 #define IEnumExtraSearch_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
4794 #else
4795 /*** IUnknown methods ***/
4796 static FORCEINLINE HRESULT IEnumExtraSearch_QueryInterface(IEnumExtraSearch* This,REFIID riid,void **ppvObject) {
4797     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4798 }
4799 static FORCEINLINE ULONG IEnumExtraSearch_AddRef(IEnumExtraSearch* This) {
4800     return This->lpVtbl->AddRef(This);
4801 }
4802 static FORCEINLINE ULONG IEnumExtraSearch_Release(IEnumExtraSearch* This) {
4803     return This->lpVtbl->Release(This);
4804 }
4805 /*** IEnumExtraSearch methods ***/
4806 static FORCEINLINE HRESULT IEnumExtraSearch_Next(IEnumExtraSearch* This,ULONG celt,EXTRASEARCH *rgelt,ULONG *pceltFetched) {
4807     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
4808 }
4809 static FORCEINLINE HRESULT IEnumExtraSearch_Skip(IEnumExtraSearch* This,ULONG celt) {
4810     return This->lpVtbl->Skip(This,celt);
4811 }
4812 static FORCEINLINE HRESULT IEnumExtraSearch_Reset(IEnumExtraSearch* This) {
4813     return This->lpVtbl->Reset(This);
4814 }
4815 static FORCEINLINE HRESULT IEnumExtraSearch_Clone(IEnumExtraSearch* This,IEnumExtraSearch **ppenum) {
4816     return This->lpVtbl->Clone(This,ppenum);
4817 }
4818 #endif
4819 #endif
4820 
4821 #endif
4822 
4823 
4824 #endif  /* __IEnumExtraSearch_INTERFACE_DEFINED__ */
4825 
4826 typedef IEnumExtraSearch *LPENUMEXTRASEARCH;
4827 
4828 /*****************************************************************************
4829  * IShellFolder2 interface
4830  */
4831 #ifndef __IShellFolder2_INTERFACE_DEFINED__
4832 #define __IShellFolder2_INTERFACE_DEFINED__
4833 
4834 DEFINE_GUID(IID_IShellFolder2, 0x93f2f68c, 0x1d1b, 0x11d3, 0xa3,0x0e, 0x00,0xc0,0x4f,0x79,0xab,0xd1);
4835 #if defined(__cplusplus) && !defined(CINTERFACE)
4836 MIDL_INTERFACE("93f2f68c-1d1b-11d3-a30e-00c04f79abd1")
4837 IShellFolder2 : public IShellFolder
4838 {
4839     virtual HRESULT STDMETHODCALLTYPE GetDefaultSearchGUID(
4840         GUID *pguid) = 0;
4841 
4842     virtual HRESULT STDMETHODCALLTYPE EnumSearches(
4843         IEnumExtraSearch **ppenum) = 0;
4844 
4845     virtual HRESULT STDMETHODCALLTYPE GetDefaultColumn(
4846         DWORD dwRes,
4847         ULONG *pSort,
4848         ULONG *pDisplay) = 0;
4849 
4850     virtual HRESULT STDMETHODCALLTYPE GetDefaultColumnState(
4851         UINT iColumn,
4852         SHCOLSTATEF *pcsFlags) = 0;
4853 
4854     virtual HRESULT STDMETHODCALLTYPE GetDetailsEx(
4855         PCUITEMID_CHILD pidl,
4856         const SHCOLUMNID *pscid,
4857         VARIANT *pv) = 0;
4858 
4859     virtual HRESULT STDMETHODCALLTYPE GetDetailsOf(
4860         PCUITEMID_CHILD pidl,
4861         UINT iColumn,
4862         SHELLDETAILS *psd) = 0;
4863 
4864     virtual HRESULT STDMETHODCALLTYPE MapColumnToSCID(
4865         UINT iColumn,
4866         SHCOLUMNID *pscid) = 0;
4867 
4868 };
4869 #ifdef __CRT_UUID_DECL
4870 __CRT_UUID_DECL(IShellFolder2, 0x93f2f68c, 0x1d1b, 0x11d3, 0xa3,0x0e, 0x00,0xc0,0x4f,0x79,0xab,0xd1)
4871 #endif
4872 #else
4873 typedef struct IShellFolder2Vtbl {
4874     BEGIN_INTERFACE
4875 
4876     /*** IUnknown methods ***/
4877     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4878         IShellFolder2 *This,
4879         REFIID riid,
4880         void **ppvObject);
4881 
4882     ULONG (STDMETHODCALLTYPE *AddRef)(
4883         IShellFolder2 *This);
4884 
4885     ULONG (STDMETHODCALLTYPE *Release)(
4886         IShellFolder2 *This);
4887 
4888     /*** IShellFolder methods ***/
4889     HRESULT (STDMETHODCALLTYPE *ParseDisplayName)(
4890         IShellFolder2 *This,
4891         HWND hwnd,
4892         IBindCtx *pbc,
4893         LPWSTR pszDisplayName,
4894         ULONG *pchEaten,
4895         PIDLIST_RELATIVE *ppidl,
4896         ULONG *pdwAttributes);
4897 
4898     HRESULT (STDMETHODCALLTYPE *EnumObjects)(
4899         IShellFolder2 *This,
4900         HWND hwnd,
4901         SHCONTF grfFlags,
4902         IEnumIDList **ppenumIDList);
4903 
4904     HRESULT (STDMETHODCALLTYPE *BindToObject)(
4905         IShellFolder2 *This,
4906         PCUIDLIST_RELATIVE pidl,
4907         IBindCtx *pbc,
4908         REFIID riid,
4909         void **ppv);
4910 
4911     HRESULT (STDMETHODCALLTYPE *BindToStorage)(
4912         IShellFolder2 *This,
4913         PCUIDLIST_RELATIVE pidl,
4914         IBindCtx *pbc,
4915         REFIID riid,
4916         void **ppv);
4917 
4918     HRESULT (STDMETHODCALLTYPE *CompareIDs)(
4919         IShellFolder2 *This,
4920         LPARAM lParam,
4921         PCUIDLIST_RELATIVE pidl1,
4922         PCUIDLIST_RELATIVE pidl2);
4923 
4924     HRESULT (STDMETHODCALLTYPE *CreateViewObject)(
4925         IShellFolder2 *This,
4926         HWND hwndOwner,
4927         REFIID riid,
4928         void **ppv);
4929 
4930     HRESULT (STDMETHODCALLTYPE *GetAttributesOf)(
4931         IShellFolder2 *This,
4932         UINT cidl,
4933         PCUITEMID_CHILD_ARRAY apidl,
4934         SFGAOF *rgfInOut);
4935 
4936     HRESULT (STDMETHODCALLTYPE *GetUIObjectOf)(
4937         IShellFolder2 *This,
4938         HWND hwndOwner,
4939         UINT cidl,
4940         PCUITEMID_CHILD_ARRAY apidl,
4941         REFIID riid,
4942         UINT *rgfReserved,
4943         void **ppv);
4944 
4945     HRESULT (STDMETHODCALLTYPE *GetDisplayNameOf)(
4946         IShellFolder2 *This,
4947         PCUITEMID_CHILD pidl,
4948         SHGDNF uFlags,
4949         STRRET *pName);
4950 
4951     HRESULT (STDMETHODCALLTYPE *SetNameOf)(
4952         IShellFolder2 *This,
4953         HWND hwnd,
4954         PCUITEMID_CHILD pidl,
4955         LPCWSTR pszName,
4956         SHGDNF uFlags,
4957         PITEMID_CHILD *ppidlOut);
4958 
4959     /*** IShellFolder2 methods ***/
4960     HRESULT (STDMETHODCALLTYPE *GetDefaultSearchGUID)(
4961         IShellFolder2 *This,
4962         GUID *pguid);
4963 
4964     HRESULT (STDMETHODCALLTYPE *EnumSearches)(
4965         IShellFolder2 *This,
4966         IEnumExtraSearch **ppenum);
4967 
4968     HRESULT (STDMETHODCALLTYPE *GetDefaultColumn)(
4969         IShellFolder2 *This,
4970         DWORD dwRes,
4971         ULONG *pSort,
4972         ULONG *pDisplay);
4973 
4974     HRESULT (STDMETHODCALLTYPE *GetDefaultColumnState)(
4975         IShellFolder2 *This,
4976         UINT iColumn,
4977         SHCOLSTATEF *pcsFlags);
4978 
4979     HRESULT (STDMETHODCALLTYPE *GetDetailsEx)(
4980         IShellFolder2 *This,
4981         PCUITEMID_CHILD pidl,
4982         const SHCOLUMNID *pscid,
4983         VARIANT *pv);
4984 
4985     HRESULT (STDMETHODCALLTYPE *GetDetailsOf)(
4986         IShellFolder2 *This,
4987         PCUITEMID_CHILD pidl,
4988         UINT iColumn,
4989         SHELLDETAILS *psd);
4990 
4991     HRESULT (STDMETHODCALLTYPE *MapColumnToSCID)(
4992         IShellFolder2 *This,
4993         UINT iColumn,
4994         SHCOLUMNID *pscid);
4995 
4996     END_INTERFACE
4997 } IShellFolder2Vtbl;
4998 
4999 interface IShellFolder2 {
5000     CONST_VTBL IShellFolder2Vtbl* lpVtbl;
5001 };
5002 
5003 #ifdef COBJMACROS
5004 #ifndef WIDL_C_INLINE_WRAPPERS
5005 /*** IUnknown methods ***/
5006 #define IShellFolder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5007 #define IShellFolder2_AddRef(This) (This)->lpVtbl->AddRef(This)
5008 #define IShellFolder2_Release(This) (This)->lpVtbl->Release(This)
5009 /*** IShellFolder methods ***/
5010 #define IShellFolder2_ParseDisplayName(This,hwnd,pbc,pszDisplayName,pchEaten,ppidl,pdwAttributes) (This)->lpVtbl->ParseDisplayName(This,hwnd,pbc,pszDisplayName,pchEaten,ppidl,pdwAttributes)
5011 #define IShellFolder2_EnumObjects(This,hwnd,grfFlags,ppenumIDList) (This)->lpVtbl->EnumObjects(This,hwnd,grfFlags,ppenumIDList)
5012 #define IShellFolder2_BindToObject(This,pidl,pbc,riid,ppv) (This)->lpVtbl->BindToObject(This,pidl,pbc,riid,ppv)
5013 #define IShellFolder2_BindToStorage(This,pidl,pbc,riid,ppv) (This)->lpVtbl->BindToStorage(This,pidl,pbc,riid,ppv)
5014 #define IShellFolder2_CompareIDs(This,lParam,pidl1,pidl2) (This)->lpVtbl->CompareIDs(This,lParam,pidl1,pidl2)
5015 #define IShellFolder2_CreateViewObject(This,hwndOwner,riid,ppv) (This)->lpVtbl->CreateViewObject(This,hwndOwner,riid,ppv)
5016 #define IShellFolder2_GetAttributesOf(This,cidl,apidl,rgfInOut) (This)->lpVtbl->GetAttributesOf(This,cidl,apidl,rgfInOut)
5017 #define IShellFolder2_GetUIObjectOf(This,hwndOwner,cidl,apidl,riid,rgfReserved,ppv) (This)->lpVtbl->GetUIObjectOf(This,hwndOwner,cidl,apidl,riid,rgfReserved,ppv)
5018 #define IShellFolder2_GetDisplayNameOf(This,pidl,uFlags,pName) (This)->lpVtbl->GetDisplayNameOf(This,pidl,uFlags,pName)
5019 #define IShellFolder2_SetNameOf(This,hwnd,pidl,pszName,uFlags,ppidlOut) (This)->lpVtbl->SetNameOf(This,hwnd,pidl,pszName,uFlags,ppidlOut)
5020 /*** IShellFolder2 methods ***/
5021 #define IShellFolder2_GetDefaultSearchGUID(This,pguid) (This)->lpVtbl->GetDefaultSearchGUID(This,pguid)
5022 #define IShellFolder2_EnumSearches(This,ppenum) (This)->lpVtbl->EnumSearches(This,ppenum)
5023 #define IShellFolder2_GetDefaultColumn(This,dwRes,pSort,pDisplay) (This)->lpVtbl->GetDefaultColumn(This,dwRes,pSort,pDisplay)
5024 #define IShellFolder2_GetDefaultColumnState(This,iColumn,pcsFlags) (This)->lpVtbl->GetDefaultColumnState(This,iColumn,pcsFlags)
5025 #define IShellFolder2_GetDetailsEx(This,pidl,pscid,pv) (This)->lpVtbl->GetDetailsEx(This,pidl,pscid,pv)
5026 #define IShellFolder2_GetDetailsOf(This,pidl,iColumn,psd) (This)->lpVtbl->GetDetailsOf(This,pidl,iColumn,psd)
5027 #define IShellFolder2_MapColumnToSCID(This,iColumn,pscid) (This)->lpVtbl->MapColumnToSCID(This,iColumn,pscid)
5028 #else
5029 /*** IUnknown methods ***/
5030 static FORCEINLINE HRESULT IShellFolder2_QueryInterface(IShellFolder2* This,REFIID riid,void **ppvObject) {
5031     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5032 }
5033 static FORCEINLINE ULONG IShellFolder2_AddRef(IShellFolder2* This) {
5034     return This->lpVtbl->AddRef(This);
5035 }
5036 static FORCEINLINE ULONG IShellFolder2_Release(IShellFolder2* This) {
5037     return This->lpVtbl->Release(This);
5038 }
5039 /*** IShellFolder methods ***/
5040 static FORCEINLINE HRESULT IShellFolder2_ParseDisplayName(IShellFolder2* This,HWND hwnd,IBindCtx *pbc,LPWSTR pszDisplayName,ULONG *pchEaten,PIDLIST_RELATIVE *ppidl,ULONG *pdwAttributes) {
5041     return This->lpVtbl->ParseDisplayName(This,hwnd,pbc,pszDisplayName,pchEaten,ppidl,pdwAttributes);
5042 }
5043 static FORCEINLINE HRESULT IShellFolder2_EnumObjects(IShellFolder2* This,HWND hwnd,SHCONTF grfFlags,IEnumIDList **ppenumIDList) {
5044     return This->lpVtbl->EnumObjects(This,hwnd,grfFlags,ppenumIDList);
5045 }
5046 static FORCEINLINE HRESULT IShellFolder2_BindToObject(IShellFolder2* This,PCUIDLIST_RELATIVE pidl,IBindCtx *pbc,REFIID riid,void **ppv) {
5047     return This->lpVtbl->BindToObject(This,pidl,pbc,riid,ppv);
5048 }
5049 static FORCEINLINE HRESULT IShellFolder2_BindToStorage(IShellFolder2* This,PCUIDLIST_RELATIVE pidl,IBindCtx *pbc,REFIID riid,void **ppv) {
5050     return This->lpVtbl->BindToStorage(This,pidl,pbc,riid,ppv);
5051 }
5052 static FORCEINLINE HRESULT IShellFolder2_CompareIDs(IShellFolder2* This,LPARAM lParam,PCUIDLIST_RELATIVE pidl1,PCUIDLIST_RELATIVE pidl2) {
5053     return This->lpVtbl->CompareIDs(This,lParam,pidl1,pidl2);
5054 }
5055 static FORCEINLINE HRESULT IShellFolder2_CreateViewObject(IShellFolder2* This,HWND hwndOwner,REFIID riid,void **ppv) {
5056     return This->lpVtbl->CreateViewObject(This,hwndOwner,riid,ppv);
5057 }
5058 static FORCEINLINE HRESULT IShellFolder2_GetAttributesOf(IShellFolder2* This,UINT cidl,PCUITEMID_CHILD_ARRAY apidl,SFGAOF *rgfInOut) {
5059     return This->lpVtbl->GetAttributesOf(This,cidl,apidl,rgfInOut);
5060 }
5061 static FORCEINLINE HRESULT IShellFolder2_GetUIObjectOf(IShellFolder2* This,HWND hwndOwner,UINT cidl,PCUITEMID_CHILD_ARRAY apidl,REFIID riid,UINT *rgfReserved,void **ppv) {
5062     return This->lpVtbl->GetUIObjectOf(This,hwndOwner,cidl,apidl,riid,rgfReserved,ppv);
5063 }
5064 static FORCEINLINE HRESULT IShellFolder2_GetDisplayNameOf(IShellFolder2* This,PCUITEMID_CHILD pidl,SHGDNF uFlags,STRRET *pName) {
5065     return This->lpVtbl->GetDisplayNameOf(This,pidl,uFlags,pName);
5066 }
5067 static FORCEINLINE HRESULT IShellFolder2_SetNameOf(IShellFolder2* This,HWND hwnd,PCUITEMID_CHILD pidl,LPCWSTR pszName,SHGDNF uFlags,PITEMID_CHILD *ppidlOut) {
5068     return This->lpVtbl->SetNameOf(This,hwnd,pidl,pszName,uFlags,ppidlOut);
5069 }
5070 /*** IShellFolder2 methods ***/
5071 static FORCEINLINE HRESULT IShellFolder2_GetDefaultSearchGUID(IShellFolder2* This,GUID *pguid) {
5072     return This->lpVtbl->GetDefaultSearchGUID(This,pguid);
5073 }
5074 static FORCEINLINE HRESULT IShellFolder2_EnumSearches(IShellFolder2* This,IEnumExtraSearch **ppenum) {
5075     return This->lpVtbl->EnumSearches(This,ppenum);
5076 }
5077 static FORCEINLINE HRESULT IShellFolder2_GetDefaultColumn(IShellFolder2* This,DWORD dwRes,ULONG *pSort,ULONG *pDisplay) {
5078     return This->lpVtbl->GetDefaultColumn(This,dwRes,pSort,pDisplay);
5079 }
5080 static FORCEINLINE HRESULT IShellFolder2_GetDefaultColumnState(IShellFolder2* This,UINT iColumn,SHCOLSTATEF *pcsFlags) {
5081     return This->lpVtbl->GetDefaultColumnState(This,iColumn,pcsFlags);
5082 }
5083 static FORCEINLINE HRESULT IShellFolder2_GetDetailsEx(IShellFolder2* This,PCUITEMID_CHILD pidl,const SHCOLUMNID *pscid,VARIANT *pv) {
5084     return This->lpVtbl->GetDetailsEx(This,pidl,pscid,pv);
5085 }
5086 static FORCEINLINE HRESULT IShellFolder2_GetDetailsOf(IShellFolder2* This,PCUITEMID_CHILD pidl,UINT iColumn,SHELLDETAILS *psd) {
5087     return This->lpVtbl->GetDetailsOf(This,pidl,iColumn,psd);
5088 }
5089 static FORCEINLINE HRESULT IShellFolder2_MapColumnToSCID(IShellFolder2* This,UINT iColumn,SHCOLUMNID *pscid) {
5090     return This->lpVtbl->MapColumnToSCID(This,iColumn,pscid);
5091 }
5092 #endif
5093 #endif
5094 
5095 #endif
5096 
5097 
5098 #endif  /* __IShellFolder2_INTERFACE_DEFINED__ */
5099 
5100 typedef char *LPVIEWSETTINGS;
5101 
5102 typedef enum FOLDERFLAGS {
5103     FWF_NONE = 0x0,
5104     FWF_AUTOARRANGE = 0x1,
5105     FWF_ABBREVIATEDNAMES = 0x2,
5106     FWF_SNAPTOGRID = 0x4,
5107     FWF_OWNERDATA = 0x8,
5108     FWF_BESTFITWINDOW = 0x10,
5109     FWF_DESKTOP = 0x20,
5110     FWF_SINGLESEL = 0x40,
5111     FWF_NOSUBFOLDERS = 0x80,
5112     FWF_TRANSPARENT = 0x100,
5113     FWF_NOCLIENTEDGE = 0x200,
5114     FWF_NOSCROLL = 0x400,
5115     FWF_ALIGNLEFT = 0x800,
5116     FWF_NOICONS = 0x1000,
5117     FWF_SHOWSELALWAYS = 0x2000,
5118     FWF_NOVISIBLE = 0x4000,
5119     FWF_SINGLECLICKACTIVATE = 0x8000,
5120     FWF_NOWEBVIEW = 0x10000,
5121     FWF_HIDEFILENAMES = 0x20000,
5122     FWF_CHECKSELECT = 0x40000,
5123     FWF_NOENUMREFRESH = 0x80000,
5124     FWF_NOGROUPING = 0x100000,
5125     FWF_FULLROWSELECT = 0x200000,
5126     FWF_NOFILTERS = 0x400000,
5127     FWF_NOCOLUMNHEADER = 0x800000,
5128     FWF_NOHEADERINALLVIEWS = 0x1000000,
5129     FWF_EXTENDEDTILES = 0x2000000,
5130     FWF_TRICHECKSELECT = 0x4000000,
5131     FWF_AUTOCHECKSELECT = 0x8000000,
5132     FWF_NOBROWSERVIEWSTATE = 0x10000000,
5133     FWF_SUBSETGROUPS = 0x20000000,
5134     FWF_USESEARCHFOLDER = 0x40000000,
5135     FWF_ALLOWRTLREADING = 0x80000000
5136 } FOLDERFLAGS;
5137 
5138 DEFINE_ENUM_FLAG_OPERATORS(FOLDERFLAGS)
5139 
5140 typedef enum FOLDERVIEWMODE {
5141     FVM_AUTO = -1,
5142     FVM_FIRST = 1,
5143     FVM_ICON = 1,
5144     FVM_SMALLICON = 2,
5145     FVM_LIST = 3,
5146     FVM_DETAILS = 4,
5147     FVM_THUMBNAIL = 5,
5148     FVM_TILE = 6,
5149     FVM_THUMBSTRIP = 7,
5150     FVM_CONTENT = 8,
5151     FVM_LAST = 8
5152 } FOLDERVIEWMODE;
5153 
5154 #if NTDDI_VERSION >= NTDDI_VISTA
5155 typedef enum FOLDERLOGICALVIEWMODE {
5156     FLVM_UNSPECIFIED = -1,
5157     FLVM_FIRST = 1,
5158     FLVM_DETAILS = 1,
5159     FLVM_TILES = 2,
5160     FLVM_ICONS = 3,
5161     FLVM_LIST = 4,
5162     FLVM_CONTENT = 5,
5163     FLVM_LAST = 5
5164 } FOLDERLOGICALVIEWMODE;
5165 #endif
5166 typedef struct FOLDERSETTINGS {
5167     UINT ViewMode;
5168     UINT fFlags;
5169 } FOLDERSETTINGS;
5170 
5171 typedef FOLDERSETTINGS *LPFOLDERSETTINGS;
5172 typedef const FOLDERSETTINGS *LPCFOLDERSETTINGS;
5173 typedef FOLDERSETTINGS *PFOLDERSETTINGS;
5174 
5175 /*****************************************************************************
5176  * IFolderViewOptions interface
5177  */
5178 #ifndef __IFolderViewOptions_INTERFACE_DEFINED__
5179 #define __IFolderViewOptions_INTERFACE_DEFINED__
5180 
5181 typedef enum FOLDERVIEWOPTIONS {
5182     FVO_DEFAULT = 0x0,
5183     FVO_VISTALAYOUT = 0x1,
5184     FVO_CUSTOMPOSITION = 0x2,
5185     FVO_CUSTOMORDERING = 0x4,
5186     FVO_SUPPORTHYPERLINKS = 0x8,
5187     FVO_NOANIMATIONS = 0x10,
5188     FVO_NOSCROLLTIPS = 0x20
5189 } FOLDERVIEWOPTIONS;
5190 
5191 DEFINE_ENUM_FLAG_OPERATORS(FOLDERVIEWOPTIONS)
5192 
5193 DEFINE_GUID(IID_IFolderViewOptions, 0x3cc974d2, 0xb302, 0x4d36, 0xad,0x3e, 0x06,0xd9,0x3f,0x69,0x5d,0x3f);
5194 #if defined(__cplusplus) && !defined(CINTERFACE)
5195 MIDL_INTERFACE("3cc974d2-b302-4d36-ad3e-06d93f695d3f")
5196 IFolderViewOptions : public IUnknown
5197 {
5198     virtual HRESULT STDMETHODCALLTYPE SetFolderViewOptions(
5199         FOLDERVIEWOPTIONS fvoMask,
5200         FOLDERVIEWOPTIONS fvoFlags) = 0;
5201 
5202     virtual HRESULT STDMETHODCALLTYPE GetFolderViewOptions(
5203         FOLDERVIEWOPTIONS *pfvoFlags) = 0;
5204 
5205 };
5206 #ifdef __CRT_UUID_DECL
5207 __CRT_UUID_DECL(IFolderViewOptions, 0x3cc974d2, 0xb302, 0x4d36, 0xad,0x3e, 0x06,0xd9,0x3f,0x69,0x5d,0x3f)
5208 #endif
5209 #else
5210 typedef struct IFolderViewOptionsVtbl {
5211     BEGIN_INTERFACE
5212 
5213     /*** IUnknown methods ***/
5214     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5215         IFolderViewOptions *This,
5216         REFIID riid,
5217         void **ppvObject);
5218 
5219     ULONG (STDMETHODCALLTYPE *AddRef)(
5220         IFolderViewOptions *This);
5221 
5222     ULONG (STDMETHODCALLTYPE *Release)(
5223         IFolderViewOptions *This);
5224 
5225     /*** IFolderViewOptions methods ***/
5226     HRESULT (STDMETHODCALLTYPE *SetFolderViewOptions)(
5227         IFolderViewOptions *This,
5228         FOLDERVIEWOPTIONS fvoMask,
5229         FOLDERVIEWOPTIONS fvoFlags);
5230 
5231     HRESULT (STDMETHODCALLTYPE *GetFolderViewOptions)(
5232         IFolderViewOptions *This,
5233         FOLDERVIEWOPTIONS *pfvoFlags);
5234 
5235     END_INTERFACE
5236 } IFolderViewOptionsVtbl;
5237 
5238 interface IFolderViewOptions {
5239     CONST_VTBL IFolderViewOptionsVtbl* lpVtbl;
5240 };
5241 
5242 #ifdef COBJMACROS
5243 #ifndef WIDL_C_INLINE_WRAPPERS
5244 /*** IUnknown methods ***/
5245 #define IFolderViewOptions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5246 #define IFolderViewOptions_AddRef(This) (This)->lpVtbl->AddRef(This)
5247 #define IFolderViewOptions_Release(This) (This)->lpVtbl->Release(This)
5248 /*** IFolderViewOptions methods ***/
5249 #define IFolderViewOptions_SetFolderViewOptions(This,fvoMask,fvoFlags) (This)->lpVtbl->SetFolderViewOptions(This,fvoMask,fvoFlags)
5250 #define IFolderViewOptions_GetFolderViewOptions(This,pfvoFlags) (This)->lpVtbl->GetFolderViewOptions(This,pfvoFlags)
5251 #else
5252 /*** IUnknown methods ***/
5253 static FORCEINLINE HRESULT IFolderViewOptions_QueryInterface(IFolderViewOptions* This,REFIID riid,void **ppvObject) {
5254     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5255 }
5256 static FORCEINLINE ULONG IFolderViewOptions_AddRef(IFolderViewOptions* This) {
5257     return This->lpVtbl->AddRef(This);
5258 }
5259 static FORCEINLINE ULONG IFolderViewOptions_Release(IFolderViewOptions* This) {
5260     return This->lpVtbl->Release(This);
5261 }
5262 /*** IFolderViewOptions methods ***/
5263 static FORCEINLINE HRESULT IFolderViewOptions_SetFolderViewOptions(IFolderViewOptions* This,FOLDERVIEWOPTIONS fvoMask,FOLDERVIEWOPTIONS fvoFlags) {
5264     return This->lpVtbl->SetFolderViewOptions(This,fvoMask,fvoFlags);
5265 }
5266 static FORCEINLINE HRESULT IFolderViewOptions_GetFolderViewOptions(IFolderViewOptions* This,FOLDERVIEWOPTIONS *pfvoFlags) {
5267     return This->lpVtbl->GetFolderViewOptions(This,pfvoFlags);
5268 }
5269 #endif
5270 #endif
5271 
5272 #endif
5273 
5274 
5275 #endif  /* __IFolderViewOptions_INTERFACE_DEFINED__ */
5276 
5277 typedef enum _SVSIF {
5278     SVSI_DESELECT = 0x0,
5279     SVSI_SELECT = 0x1,
5280     SVSI_EDIT = 0x3,
5281     SVSI_DESELECTOTHERS = 0x4,
5282     SVSI_ENSUREVISIBLE = 0x8,
5283     SVSI_FOCUSED = 0x10,
5284     SVSI_TRANSLATEPT = 0x20,
5285     SVSI_SELECTIONMARK = 0x40,
5286     SVSI_POSITIONITEM = 0x80,
5287     SVSI_CHECK = 0x100,
5288     SVSI_CHECK2 = 0x200,
5289     SVSI_KEYBOARDSELECT = 0x401,
5290     SVSI_NOTAKEFOCUS = 0x40000000
5291 } _SVSIF;
5292 
5293 #define SVSI_NOSTATECHANGE   ((UINT)0x80000000)
5294 
5295 typedef UINT SVSIF;
5296 
5297 typedef enum _SVGIO {
5298     SVGIO_BACKGROUND = 0x0,
5299     SVGIO_SELECTION = 0x1,
5300     SVGIO_ALLVIEW = 0x2,
5301     SVGIO_CHECKED = 0x3,
5302     SVGIO_TYPE_MASK = 0xf,
5303     SVGIO_FLAG_VIEWORDER = 0x80000000
5304 } _SVGIO;
5305 
5306 DEFINE_ENUM_FLAG_OPERATORS(_SVGIO)
5307 
5308 typedef int SVGIO;
5309 
5310 typedef enum SVUIA_STATUS {
5311     SVUIA_DEACTIVATE = 0,
5312     SVUIA_ACTIVATE_NOFOCUS = 1,
5313     SVUIA_ACTIVATE_FOCUS = 2,
5314     SVUIA_INPLACEACTIVATE = 3
5315 } SVUIA_STATUS;
5316 
5317 #ifdef _FIX_ENABLEMODELESS_CONFLICT
5318 #define EnableModeless EnableModelessSV
5319 #endif
5320 
5321 #if 0
5322 typedef LPARAM LPFNSVADDPROPSHEETPAGE;
5323 #else
5324 #include <prsht.h>
5325 typedef LPFNADDPROPSHEETPAGE LPFNSVADDPROPSHEETPAGE;
5326 #endif
5327 
5328 #ifndef __IShellBrowser_FWD_DEFINED__
5329 #define __IShellBrowser_FWD_DEFINED__
5330 typedef interface IShellBrowser IShellBrowser;
5331 #ifdef __cplusplus
5332 interface IShellBrowser;
5333 #endif /* __cplusplus */
5334 #endif
5335 
5336 
5337 /*****************************************************************************
5338  * IShellView interface
5339  */
5340 #ifndef __IShellView_INTERFACE_DEFINED__
5341 #define __IShellView_INTERFACE_DEFINED__
5342 
5343 DEFINE_GUID(IID_IShellView, 0x000214e3, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5344 #if defined(__cplusplus) && !defined(CINTERFACE)
5345 MIDL_INTERFACE("000214e3-0000-0000-c000-000000000046")
5346 IShellView : public IOleWindow
5347 {
5348     virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator(
5349         MSG *pmsg) = 0;
5350 
5351     virtual HRESULT STDMETHODCALLTYPE EnableModeless(
5352         WINBOOL fEnable) = 0;
5353 
5354     virtual HRESULT STDMETHODCALLTYPE UIActivate(
5355         UINT uState) = 0;
5356 
5357     virtual HRESULT STDMETHODCALLTYPE Refresh(
5358         ) = 0;
5359 
5360     virtual HRESULT STDMETHODCALLTYPE CreateViewWindow(
5361         IShellView *psvPrevious,
5362         LPCFOLDERSETTINGS pfs,
5363         IShellBrowser *psb,
5364         RECT *prcView,
5365         HWND *phWnd) = 0;
5366 
5367     virtual HRESULT STDMETHODCALLTYPE DestroyViewWindow(
5368         ) = 0;
5369 
5370     virtual HRESULT STDMETHODCALLTYPE GetCurrentInfo(
5371         LPFOLDERSETTINGS pfs) = 0;
5372 
5373     virtual HRESULT STDMETHODCALLTYPE AddPropertySheetPages(
5374         DWORD dwReserved,
5375         LPFNSVADDPROPSHEETPAGE pfn,
5376         LPARAM lparam) = 0;
5377 
5378     virtual HRESULT STDMETHODCALLTYPE SaveViewState(
5379         ) = 0;
5380 
5381     virtual HRESULT STDMETHODCALLTYPE SelectItem(
5382         PCUITEMID_CHILD pidlItem,
5383         SVSIF uFlags) = 0;
5384 
5385     virtual HRESULT STDMETHODCALLTYPE GetItemObject(
5386         UINT uItem,
5387         REFIID riid,
5388         void **ppv) = 0;
5389 
5390 };
5391 #ifdef __CRT_UUID_DECL
5392 __CRT_UUID_DECL(IShellView, 0x000214e3, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
5393 #endif
5394 #else
5395 typedef struct IShellViewVtbl {
5396     BEGIN_INTERFACE
5397 
5398     /*** IUnknown methods ***/
5399     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5400         IShellView *This,
5401         REFIID riid,
5402         void **ppvObject);
5403 
5404     ULONG (STDMETHODCALLTYPE *AddRef)(
5405         IShellView *This);
5406 
5407     ULONG (STDMETHODCALLTYPE *Release)(
5408         IShellView *This);
5409 
5410     /*** IOleWindow methods ***/
5411     HRESULT (STDMETHODCALLTYPE *GetWindow)(
5412         IShellView *This,
5413         HWND *phwnd);
5414 
5415     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
5416         IShellView *This,
5417         WINBOOL fEnterMode);
5418 
5419     /*** IShellView methods ***/
5420     HRESULT (STDMETHODCALLTYPE *TranslateAccelerator)(
5421         IShellView *This,
5422         MSG *pmsg);
5423 
5424     HRESULT (STDMETHODCALLTYPE *EnableModeless)(
5425         IShellView *This,
5426         WINBOOL fEnable);
5427 
5428     HRESULT (STDMETHODCALLTYPE *UIActivate)(
5429         IShellView *This,
5430         UINT uState);
5431 
5432     HRESULT (STDMETHODCALLTYPE *Refresh)(
5433         IShellView *This);
5434 
5435     HRESULT (STDMETHODCALLTYPE *CreateViewWindow)(
5436         IShellView *This,
5437         IShellView *psvPrevious,
5438         LPCFOLDERSETTINGS pfs,
5439         IShellBrowser *psb,
5440         RECT *prcView,
5441         HWND *phWnd);
5442 
5443     HRESULT (STDMETHODCALLTYPE *DestroyViewWindow)(
5444         IShellView *This);
5445 
5446     HRESULT (STDMETHODCALLTYPE *GetCurrentInfo)(
5447         IShellView *This,
5448         LPFOLDERSETTINGS pfs);
5449 
5450     HRESULT (STDMETHODCALLTYPE *AddPropertySheetPages)(
5451         IShellView *This,
5452         DWORD dwReserved,
5453         LPFNSVADDPROPSHEETPAGE pfn,
5454         LPARAM lparam);
5455 
5456     HRESULT (STDMETHODCALLTYPE *SaveViewState)(
5457         IShellView *This);
5458 
5459     HRESULT (STDMETHODCALLTYPE *SelectItem)(
5460         IShellView *This,
5461         PCUITEMID_CHILD pidlItem,
5462         SVSIF uFlags);
5463 
5464     HRESULT (STDMETHODCALLTYPE *GetItemObject)(
5465         IShellView *This,
5466         UINT uItem,
5467         REFIID riid,
5468         void **ppv);
5469 
5470     END_INTERFACE
5471 } IShellViewVtbl;
5472 
5473 interface IShellView {
5474     CONST_VTBL IShellViewVtbl* lpVtbl;
5475 };
5476 
5477 #ifdef COBJMACROS
5478 #ifndef WIDL_C_INLINE_WRAPPERS
5479 /*** IUnknown methods ***/
5480 #define IShellView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5481 #define IShellView_AddRef(This) (This)->lpVtbl->AddRef(This)
5482 #define IShellView_Release(This) (This)->lpVtbl->Release(This)
5483 /*** IOleWindow methods ***/
5484 #define IShellView_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
5485 #define IShellView_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
5486 /*** IShellView methods ***/
5487 #define IShellView_TranslateAccelerator(This,pmsg) (This)->lpVtbl->TranslateAccelerator(This,pmsg)
5488 #define IShellView_EnableModeless(This,fEnable) (This)->lpVtbl->EnableModeless(This,fEnable)
5489 #define IShellView_UIActivate(This,uState) (This)->lpVtbl->UIActivate(This,uState)
5490 #define IShellView_Refresh(This) (This)->lpVtbl->Refresh(This)
5491 #define IShellView_CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd) (This)->lpVtbl->CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd)
5492 #define IShellView_DestroyViewWindow(This) (This)->lpVtbl->DestroyViewWindow(This)
5493 #define IShellView_GetCurrentInfo(This,pfs) (This)->lpVtbl->GetCurrentInfo(This,pfs)
5494 #define IShellView_AddPropertySheetPages(This,dwReserved,pfn,lparam) (This)->lpVtbl->AddPropertySheetPages(This,dwReserved,pfn,lparam)
5495 #define IShellView_SaveViewState(This) (This)->lpVtbl->SaveViewState(This)
5496 #define IShellView_SelectItem(This,pidlItem,uFlags) (This)->lpVtbl->SelectItem(This,pidlItem,uFlags)
5497 #define IShellView_GetItemObject(This,uItem,riid,ppv) (This)->lpVtbl->GetItemObject(This,uItem,riid,ppv)
5498 #else
5499 /*** IUnknown methods ***/
5500 static FORCEINLINE HRESULT IShellView_QueryInterface(IShellView* This,REFIID riid,void **ppvObject) {
5501     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5502 }
5503 static FORCEINLINE ULONG IShellView_AddRef(IShellView* This) {
5504     return This->lpVtbl->AddRef(This);
5505 }
5506 static FORCEINLINE ULONG IShellView_Release(IShellView* This) {
5507     return This->lpVtbl->Release(This);
5508 }
5509 /*** IOleWindow methods ***/
5510 static FORCEINLINE HRESULT IShellView_GetWindow(IShellView* This,HWND *phwnd) {
5511     return This->lpVtbl->GetWindow(This,phwnd);
5512 }
5513 static FORCEINLINE HRESULT IShellView_ContextSensitiveHelp(IShellView* This,WINBOOL fEnterMode) {
5514     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
5515 }
5516 /*** IShellView methods ***/
5517 static FORCEINLINE HRESULT IShellView_TranslateAccelerator(IShellView* This,MSG *pmsg) {
5518     return This->lpVtbl->TranslateAccelerator(This,pmsg);
5519 }
5520 static FORCEINLINE HRESULT IShellView_EnableModeless(IShellView* This,WINBOOL fEnable) {
5521     return This->lpVtbl->EnableModeless(This,fEnable);
5522 }
5523 static FORCEINLINE HRESULT IShellView_UIActivate(IShellView* This,UINT uState) {
5524     return This->lpVtbl->UIActivate(This,uState);
5525 }
5526 static FORCEINLINE HRESULT IShellView_Refresh(IShellView* This) {
5527     return This->lpVtbl->Refresh(This);
5528 }
5529 static FORCEINLINE HRESULT IShellView_CreateViewWindow(IShellView* This,IShellView *psvPrevious,LPCFOLDERSETTINGS pfs,IShellBrowser *psb,RECT *prcView,HWND *phWnd) {
5530     return This->lpVtbl->CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd);
5531 }
5532 static FORCEINLINE HRESULT IShellView_DestroyViewWindow(IShellView* This) {
5533     return This->lpVtbl->DestroyViewWindow(This);
5534 }
5535 static FORCEINLINE HRESULT IShellView_GetCurrentInfo(IShellView* This,LPFOLDERSETTINGS pfs) {
5536     return This->lpVtbl->GetCurrentInfo(This,pfs);
5537 }
5538 static FORCEINLINE HRESULT IShellView_AddPropertySheetPages(IShellView* This,DWORD dwReserved,LPFNSVADDPROPSHEETPAGE pfn,LPARAM lparam) {
5539     return This->lpVtbl->AddPropertySheetPages(This,dwReserved,pfn,lparam);
5540 }
5541 static FORCEINLINE HRESULT IShellView_SaveViewState(IShellView* This) {
5542     return This->lpVtbl->SaveViewState(This);
5543 }
5544 static FORCEINLINE HRESULT IShellView_SelectItem(IShellView* This,PCUITEMID_CHILD pidlItem,SVSIF uFlags) {
5545     return This->lpVtbl->SelectItem(This,pidlItem,uFlags);
5546 }
5547 static FORCEINLINE HRESULT IShellView_GetItemObject(IShellView* This,UINT uItem,REFIID riid,void **ppv) {
5548     return This->lpVtbl->GetItemObject(This,uItem,riid,ppv);
5549 }
5550 #endif
5551 #endif
5552 
5553 #endif
5554 
5555 
5556 #endif  /* __IShellView_INTERFACE_DEFINED__ */
5557 
5558 typedef IShellView *LPSHELLVIEW;
5559 
5560 /*****************************************************************************
5561  * IShellView2 interface
5562  */
5563 #ifndef __IShellView2_INTERFACE_DEFINED__
5564 #define __IShellView2_INTERFACE_DEFINED__
5565 
5566 typedef GUID SHELLVIEWID;
5567 
5568 #define SV2GV_CURRENTVIEW ((UINT)-1)
5569 #define SV2GV_DEFAULTVIEW ((UINT)-2)
5570 
5571 #include <pshpack8.h>
5572 typedef struct _SV2CVW2_PARAMS {
5573     DWORD cbSize;
5574     IShellView *psvPrev;
5575     LPCFOLDERSETTINGS pfs;
5576     IShellBrowser *psbOwner;
5577     RECT *prcView;
5578     const SHELLVIEWID *pvid;
5579     HWND hwndView;
5580 } SV2CVW2_PARAMS;
5581 typedef struct _SV2CVW2_PARAMS *LPSV2CVW2_PARAMS;
5582 #include <poppack.h>
5583 
5584 DEFINE_GUID(IID_IShellView2, 0x88e39e80, 0x3578, 0x11cf, 0xae,0x69, 0x08,0x00,0x2b,0x2e,0x12,0x62);
5585 #if defined(__cplusplus) && !defined(CINTERFACE)
5586 MIDL_INTERFACE("88e39e80-3578-11cf-ae69-08002b2e1262")
5587 IShellView2 : public IShellView
5588 {
5589     virtual HRESULT STDMETHODCALLTYPE GetView(
5590         SHELLVIEWID *pvid,
5591         ULONG uView) = 0;
5592 
5593     virtual HRESULT STDMETHODCALLTYPE CreateViewWindow2(
5594         LPSV2CVW2_PARAMS lpParams) = 0;
5595 
5596     virtual HRESULT STDMETHODCALLTYPE HandleRename(
5597         PCUITEMID_CHILD pidlNew) = 0;
5598 
5599     virtual HRESULT STDMETHODCALLTYPE SelectAndPositionItem(
5600         PCUITEMID_CHILD pidlItem,
5601         UINT uFlags,
5602         POINT *ppt) = 0;
5603 
5604 };
5605 #ifdef __CRT_UUID_DECL
5606 __CRT_UUID_DECL(IShellView2, 0x88e39e80, 0x3578, 0x11cf, 0xae,0x69, 0x08,0x00,0x2b,0x2e,0x12,0x62)
5607 #endif
5608 #else
5609 typedef struct IShellView2Vtbl {
5610     BEGIN_INTERFACE
5611 
5612     /*** IUnknown methods ***/
5613     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5614         IShellView2 *This,
5615         REFIID riid,
5616         void **ppvObject);
5617 
5618     ULONG (STDMETHODCALLTYPE *AddRef)(
5619         IShellView2 *This);
5620 
5621     ULONG (STDMETHODCALLTYPE *Release)(
5622         IShellView2 *This);
5623 
5624     /*** IOleWindow methods ***/
5625     HRESULT (STDMETHODCALLTYPE *GetWindow)(
5626         IShellView2 *This,
5627         HWND *phwnd);
5628 
5629     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
5630         IShellView2 *This,
5631         WINBOOL fEnterMode);
5632 
5633     /*** IShellView methods ***/
5634     HRESULT (STDMETHODCALLTYPE *TranslateAccelerator)(
5635         IShellView2 *This,
5636         MSG *pmsg);
5637 
5638     HRESULT (STDMETHODCALLTYPE *EnableModeless)(
5639         IShellView2 *This,
5640         WINBOOL fEnable);
5641 
5642     HRESULT (STDMETHODCALLTYPE *UIActivate)(
5643         IShellView2 *This,
5644         UINT uState);
5645 
5646     HRESULT (STDMETHODCALLTYPE *Refresh)(
5647         IShellView2 *This);
5648 
5649     HRESULT (STDMETHODCALLTYPE *CreateViewWindow)(
5650         IShellView2 *This,
5651         IShellView *psvPrevious,
5652         LPCFOLDERSETTINGS pfs,
5653         IShellBrowser *psb,
5654         RECT *prcView,
5655         HWND *phWnd);
5656 
5657     HRESULT (STDMETHODCALLTYPE *DestroyViewWindow)(
5658         IShellView2 *This);
5659 
5660     HRESULT (STDMETHODCALLTYPE *GetCurrentInfo)(
5661         IShellView2 *This,
5662         LPFOLDERSETTINGS pfs);
5663 
5664     HRESULT (STDMETHODCALLTYPE *AddPropertySheetPages)(
5665         IShellView2 *This,
5666         DWORD dwReserved,
5667         LPFNSVADDPROPSHEETPAGE pfn,
5668         LPARAM lparam);
5669 
5670     HRESULT (STDMETHODCALLTYPE *SaveViewState)(
5671         IShellView2 *This);
5672 
5673     HRESULT (STDMETHODCALLTYPE *SelectItem)(
5674         IShellView2 *This,
5675         PCUITEMID_CHILD pidlItem,
5676         SVSIF uFlags);
5677 
5678     HRESULT (STDMETHODCALLTYPE *GetItemObject)(
5679         IShellView2 *This,
5680         UINT uItem,
5681         REFIID riid,
5682         void **ppv);
5683 
5684     /*** IShellView2 methods ***/
5685     HRESULT (STDMETHODCALLTYPE *GetView)(
5686         IShellView2 *This,
5687         SHELLVIEWID *pvid,
5688         ULONG uView);
5689 
5690     HRESULT (STDMETHODCALLTYPE *CreateViewWindow2)(
5691         IShellView2 *This,
5692         LPSV2CVW2_PARAMS lpParams);
5693 
5694     HRESULT (STDMETHODCALLTYPE *HandleRename)(
5695         IShellView2 *This,
5696         PCUITEMID_CHILD pidlNew);
5697 
5698     HRESULT (STDMETHODCALLTYPE *SelectAndPositionItem)(
5699         IShellView2 *This,
5700         PCUITEMID_CHILD pidlItem,
5701         UINT uFlags,
5702         POINT *ppt);
5703 
5704     END_INTERFACE
5705 } IShellView2Vtbl;
5706 
5707 interface IShellView2 {
5708     CONST_VTBL IShellView2Vtbl* lpVtbl;
5709 };
5710 
5711 #ifdef COBJMACROS
5712 #ifndef WIDL_C_INLINE_WRAPPERS
5713 /*** IUnknown methods ***/
5714 #define IShellView2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5715 #define IShellView2_AddRef(This) (This)->lpVtbl->AddRef(This)
5716 #define IShellView2_Release(This) (This)->lpVtbl->Release(This)
5717 /*** IOleWindow methods ***/
5718 #define IShellView2_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
5719 #define IShellView2_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
5720 /*** IShellView methods ***/
5721 #define IShellView2_TranslateAccelerator(This,pmsg) (This)->lpVtbl->TranslateAccelerator(This,pmsg)
5722 #define IShellView2_EnableModeless(This,fEnable) (This)->lpVtbl->EnableModeless(This,fEnable)
5723 #define IShellView2_UIActivate(This,uState) (This)->lpVtbl->UIActivate(This,uState)
5724 #define IShellView2_Refresh(This) (This)->lpVtbl->Refresh(This)
5725 #define IShellView2_CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd) (This)->lpVtbl->CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd)
5726 #define IShellView2_DestroyViewWindow(This) (This)->lpVtbl->DestroyViewWindow(This)
5727 #define IShellView2_GetCurrentInfo(This,pfs) (This)->lpVtbl->GetCurrentInfo(This,pfs)
5728 #define IShellView2_AddPropertySheetPages(This,dwReserved,pfn,lparam) (This)->lpVtbl->AddPropertySheetPages(This,dwReserved,pfn,lparam)
5729 #define IShellView2_SaveViewState(This) (This)->lpVtbl->SaveViewState(This)
5730 #define IShellView2_SelectItem(This,pidlItem,uFlags) (This)->lpVtbl->SelectItem(This,pidlItem,uFlags)
5731 #define IShellView2_GetItemObject(This,uItem,riid,ppv) (This)->lpVtbl->GetItemObject(This,uItem,riid,ppv)
5732 /*** IShellView2 methods ***/
5733 #define IShellView2_GetView(This,pvid,uView) (This)->lpVtbl->GetView(This,pvid,uView)
5734 #define IShellView2_CreateViewWindow2(This,lpParams) (This)->lpVtbl->CreateViewWindow2(This,lpParams)
5735 #define IShellView2_HandleRename(This,pidlNew) (This)->lpVtbl->HandleRename(This,pidlNew)
5736 #define IShellView2_SelectAndPositionItem(This,pidlItem,uFlags,ppt) (This)->lpVtbl->SelectAndPositionItem(This,pidlItem,uFlags,ppt)
5737 #else
5738 /*** IUnknown methods ***/
5739 static FORCEINLINE HRESULT IShellView2_QueryInterface(IShellView2* This,REFIID riid,void **ppvObject) {
5740     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5741 }
5742 static FORCEINLINE ULONG IShellView2_AddRef(IShellView2* This) {
5743     return This->lpVtbl->AddRef(This);
5744 }
5745 static FORCEINLINE ULONG IShellView2_Release(IShellView2* This) {
5746     return This->lpVtbl->Release(This);
5747 }
5748 /*** IOleWindow methods ***/
5749 static FORCEINLINE HRESULT IShellView2_GetWindow(IShellView2* This,HWND *phwnd) {
5750     return This->lpVtbl->GetWindow(This,phwnd);
5751 }
5752 static FORCEINLINE HRESULT IShellView2_ContextSensitiveHelp(IShellView2* This,WINBOOL fEnterMode) {
5753     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
5754 }
5755 /*** IShellView methods ***/
5756 static FORCEINLINE HRESULT IShellView2_TranslateAccelerator(IShellView2* This,MSG *pmsg) {
5757     return This->lpVtbl->TranslateAccelerator(This,pmsg);
5758 }
5759 static FORCEINLINE HRESULT IShellView2_EnableModeless(IShellView2* This,WINBOOL fEnable) {
5760     return This->lpVtbl->EnableModeless(This,fEnable);
5761 }
5762 static FORCEINLINE HRESULT IShellView2_UIActivate(IShellView2* This,UINT uState) {
5763     return This->lpVtbl->UIActivate(This,uState);
5764 }
5765 static FORCEINLINE HRESULT IShellView2_Refresh(IShellView2* This) {
5766     return This->lpVtbl->Refresh(This);
5767 }
5768 static FORCEINLINE HRESULT IShellView2_CreateViewWindow(IShellView2* This,IShellView *psvPrevious,LPCFOLDERSETTINGS pfs,IShellBrowser *psb,RECT *prcView,HWND *phWnd) {
5769     return This->lpVtbl->CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd);
5770 }
5771 static FORCEINLINE HRESULT IShellView2_DestroyViewWindow(IShellView2* This) {
5772     return This->lpVtbl->DestroyViewWindow(This);
5773 }
5774 static FORCEINLINE HRESULT IShellView2_GetCurrentInfo(IShellView2* This,LPFOLDERSETTINGS pfs) {
5775     return This->lpVtbl->GetCurrentInfo(This,pfs);
5776 }
5777 static FORCEINLINE HRESULT IShellView2_AddPropertySheetPages(IShellView2* This,DWORD dwReserved,LPFNSVADDPROPSHEETPAGE pfn,LPARAM lparam) {
5778     return This->lpVtbl->AddPropertySheetPages(This,dwReserved,pfn,lparam);
5779 }
5780 static FORCEINLINE HRESULT IShellView2_SaveViewState(IShellView2* This) {
5781     return This->lpVtbl->SaveViewState(This);
5782 }
5783 static FORCEINLINE HRESULT IShellView2_SelectItem(IShellView2* This,PCUITEMID_CHILD pidlItem,SVSIF uFlags) {
5784     return This->lpVtbl->SelectItem(This,pidlItem,uFlags);
5785 }
5786 static FORCEINLINE HRESULT IShellView2_GetItemObject(IShellView2* This,UINT uItem,REFIID riid,void **ppv) {
5787     return This->lpVtbl->GetItemObject(This,uItem,riid,ppv);
5788 }
5789 /*** IShellView2 methods ***/
5790 static FORCEINLINE HRESULT IShellView2_GetView(IShellView2* This,SHELLVIEWID *pvid,ULONG uView) {
5791     return This->lpVtbl->GetView(This,pvid,uView);
5792 }
5793 static FORCEINLINE HRESULT IShellView2_CreateViewWindow2(IShellView2* This,LPSV2CVW2_PARAMS lpParams) {
5794     return This->lpVtbl->CreateViewWindow2(This,lpParams);
5795 }
5796 static FORCEINLINE HRESULT IShellView2_HandleRename(IShellView2* This,PCUITEMID_CHILD pidlNew) {
5797     return This->lpVtbl->HandleRename(This,pidlNew);
5798 }
5799 static FORCEINLINE HRESULT IShellView2_SelectAndPositionItem(IShellView2* This,PCUITEMID_CHILD pidlItem,UINT uFlags,POINT *ppt) {
5800     return This->lpVtbl->SelectAndPositionItem(This,pidlItem,uFlags,ppt);
5801 }
5802 #endif
5803 #endif
5804 
5805 #endif
5806 
5807 
5808 #endif  /* __IShellView2_INTERFACE_DEFINED__ */
5809 
5810 
5811 #if NTDDI_VERSION >= NTDDI_VISTA
5812 /*****************************************************************************
5813  * IShellView3 interface
5814  */
5815 #ifndef __IShellView3_INTERFACE_DEFINED__
5816 #define __IShellView3_INTERFACE_DEFINED__
5817 
5818 enum _SV3CVW3_FLAGS {
5819     SV3CVW3_DEFAULT = 0x0,
5820     SV3CVW3_NONINTERACTIVE = 0x1,
5821     SV3CVW3_FORCEVIEWMODE = 0x2,
5822     SV3CVW3_FORCEFOLDERFLAGS = 0x4
5823 };
5824 
5825 typedef DWORD SV3CVW3_FLAGS;
5826 
5827 DEFINE_GUID(IID_IShellView3, 0xec39fa88, 0xf8af, 0x41c5, 0x84,0x21, 0x38,0xbe,0xd2,0x8f,0x46,0x73);
5828 #if defined(__cplusplus) && !defined(CINTERFACE)
5829 MIDL_INTERFACE("ec39fa88-f8af-41c5-8421-38bed28f4673")
5830 IShellView3 : public IShellView2
5831 {
5832     virtual HRESULT STDMETHODCALLTYPE CreateViewWindow3(
5833         IShellBrowser *psbOwner,
5834         IShellView *psvPrev,
5835         SV3CVW3_FLAGS dwViewFlags,
5836         FOLDERFLAGS dwMask,
5837         FOLDERFLAGS dwFlags,
5838         FOLDERVIEWMODE fvMode,
5839         const SHELLVIEWID *pvid,
5840         const RECT *prcView,
5841         HWND *phwndView) = 0;
5842 
5843 };
5844 #ifdef __CRT_UUID_DECL
5845 __CRT_UUID_DECL(IShellView3, 0xec39fa88, 0xf8af, 0x41c5, 0x84,0x21, 0x38,0xbe,0xd2,0x8f,0x46,0x73)
5846 #endif
5847 #else
5848 typedef struct IShellView3Vtbl {
5849     BEGIN_INTERFACE
5850 
5851     /*** IUnknown methods ***/
5852     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5853         IShellView3 *This,
5854         REFIID riid,
5855         void **ppvObject);
5856 
5857     ULONG (STDMETHODCALLTYPE *AddRef)(
5858         IShellView3 *This);
5859 
5860     ULONG (STDMETHODCALLTYPE *Release)(
5861         IShellView3 *This);
5862 
5863     /*** IOleWindow methods ***/
5864     HRESULT (STDMETHODCALLTYPE *GetWindow)(
5865         IShellView3 *This,
5866         HWND *phwnd);
5867 
5868     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
5869         IShellView3 *This,
5870         WINBOOL fEnterMode);
5871 
5872     /*** IShellView methods ***/
5873     HRESULT (STDMETHODCALLTYPE *TranslateAccelerator)(
5874         IShellView3 *This,
5875         MSG *pmsg);
5876 
5877     HRESULT (STDMETHODCALLTYPE *EnableModeless)(
5878         IShellView3 *This,
5879         WINBOOL fEnable);
5880 
5881     HRESULT (STDMETHODCALLTYPE *UIActivate)(
5882         IShellView3 *This,
5883         UINT uState);
5884 
5885     HRESULT (STDMETHODCALLTYPE *Refresh)(
5886         IShellView3 *This);
5887 
5888     HRESULT (STDMETHODCALLTYPE *CreateViewWindow)(
5889         IShellView3 *This,
5890         IShellView *psvPrevious,
5891         LPCFOLDERSETTINGS pfs,
5892         IShellBrowser *psb,
5893         RECT *prcView,
5894         HWND *phWnd);
5895 
5896     HRESULT (STDMETHODCALLTYPE *DestroyViewWindow)(
5897         IShellView3 *This);
5898 
5899     HRESULT (STDMETHODCALLTYPE *GetCurrentInfo)(
5900         IShellView3 *This,
5901         LPFOLDERSETTINGS pfs);
5902 
5903     HRESULT (STDMETHODCALLTYPE *AddPropertySheetPages)(
5904         IShellView3 *This,
5905         DWORD dwReserved,
5906         LPFNSVADDPROPSHEETPAGE pfn,
5907         LPARAM lparam);
5908 
5909     HRESULT (STDMETHODCALLTYPE *SaveViewState)(
5910         IShellView3 *This);
5911 
5912     HRESULT (STDMETHODCALLTYPE *SelectItem)(
5913         IShellView3 *This,
5914         PCUITEMID_CHILD pidlItem,
5915         SVSIF uFlags);
5916 
5917     HRESULT (STDMETHODCALLTYPE *GetItemObject)(
5918         IShellView3 *This,
5919         UINT uItem,
5920         REFIID riid,
5921         void **ppv);
5922 
5923     /*** IShellView2 methods ***/
5924     HRESULT (STDMETHODCALLTYPE *GetView)(
5925         IShellView3 *This,
5926         SHELLVIEWID *pvid,
5927         ULONG uView);
5928 
5929     HRESULT (STDMETHODCALLTYPE *CreateViewWindow2)(
5930         IShellView3 *This,
5931         LPSV2CVW2_PARAMS lpParams);
5932 
5933     HRESULT (STDMETHODCALLTYPE *HandleRename)(
5934         IShellView3 *This,
5935         PCUITEMID_CHILD pidlNew);
5936 
5937     HRESULT (STDMETHODCALLTYPE *SelectAndPositionItem)(
5938         IShellView3 *This,
5939         PCUITEMID_CHILD pidlItem,
5940         UINT uFlags,
5941         POINT *ppt);
5942 
5943     /*** IShellView3 methods ***/
5944     HRESULT (STDMETHODCALLTYPE *CreateViewWindow3)(
5945         IShellView3 *This,
5946         IShellBrowser *psbOwner,
5947         IShellView *psvPrev,
5948         SV3CVW3_FLAGS dwViewFlags,
5949         FOLDERFLAGS dwMask,
5950         FOLDERFLAGS dwFlags,
5951         FOLDERVIEWMODE fvMode,
5952         const SHELLVIEWID *pvid,
5953         const RECT *prcView,
5954         HWND *phwndView);
5955 
5956     END_INTERFACE
5957 } IShellView3Vtbl;
5958 
5959 interface IShellView3 {
5960     CONST_VTBL IShellView3Vtbl* lpVtbl;
5961 };
5962 
5963 #ifdef COBJMACROS
5964 #ifndef WIDL_C_INLINE_WRAPPERS
5965 /*** IUnknown methods ***/
5966 #define IShellView3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5967 #define IShellView3_AddRef(This) (This)->lpVtbl->AddRef(This)
5968 #define IShellView3_Release(This) (This)->lpVtbl->Release(This)
5969 /*** IOleWindow methods ***/
5970 #define IShellView3_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
5971 #define IShellView3_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
5972 /*** IShellView methods ***/
5973 #define IShellView3_TranslateAccelerator(This,pmsg) (This)->lpVtbl->TranslateAccelerator(This,pmsg)
5974 #define IShellView3_EnableModeless(This,fEnable) (This)->lpVtbl->EnableModeless(This,fEnable)
5975 #define IShellView3_UIActivate(This,uState) (This)->lpVtbl->UIActivate(This,uState)
5976 #define IShellView3_Refresh(This) (This)->lpVtbl->Refresh(This)
5977 #define IShellView3_CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd) (This)->lpVtbl->CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd)
5978 #define IShellView3_DestroyViewWindow(This) (This)->lpVtbl->DestroyViewWindow(This)
5979 #define IShellView3_GetCurrentInfo(This,pfs) (This)->lpVtbl->GetCurrentInfo(This,pfs)
5980 #define IShellView3_AddPropertySheetPages(This,dwReserved,pfn,lparam) (This)->lpVtbl->AddPropertySheetPages(This,dwReserved,pfn,lparam)
5981 #define IShellView3_SaveViewState(This) (This)->lpVtbl->SaveViewState(This)
5982 #define IShellView3_SelectItem(This,pidlItem,uFlags) (This)->lpVtbl->SelectItem(This,pidlItem,uFlags)
5983 #define IShellView3_GetItemObject(This,uItem,riid,ppv) (This)->lpVtbl->GetItemObject(This,uItem,riid,ppv)
5984 /*** IShellView2 methods ***/
5985 #define IShellView3_GetView(This,pvid,uView) (This)->lpVtbl->GetView(This,pvid,uView)
5986 #define IShellView3_CreateViewWindow2(This,lpParams) (This)->lpVtbl->CreateViewWindow2(This,lpParams)
5987 #define IShellView3_HandleRename(This,pidlNew) (This)->lpVtbl->HandleRename(This,pidlNew)
5988 #define IShellView3_SelectAndPositionItem(This,pidlItem,uFlags,ppt) (This)->lpVtbl->SelectAndPositionItem(This,pidlItem,uFlags,ppt)
5989 /*** IShellView3 methods ***/
5990 #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)
5991 #else
5992 /*** IUnknown methods ***/
5993 static FORCEINLINE HRESULT IShellView3_QueryInterface(IShellView3* This,REFIID riid,void **ppvObject) {
5994     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5995 }
5996 static FORCEINLINE ULONG IShellView3_AddRef(IShellView3* This) {
5997     return This->lpVtbl->AddRef(This);
5998 }
5999 static FORCEINLINE ULONG IShellView3_Release(IShellView3* This) {
6000     return This->lpVtbl->Release(This);
6001 }
6002 /*** IOleWindow methods ***/
6003 static FORCEINLINE HRESULT IShellView3_GetWindow(IShellView3* This,HWND *phwnd) {
6004     return This->lpVtbl->GetWindow(This,phwnd);
6005 }
6006 static FORCEINLINE HRESULT IShellView3_ContextSensitiveHelp(IShellView3* This,WINBOOL fEnterMode) {
6007     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
6008 }
6009 /*** IShellView methods ***/
6010 static FORCEINLINE HRESULT IShellView3_TranslateAccelerator(IShellView3* This,MSG *pmsg) {
6011     return This->lpVtbl->TranslateAccelerator(This,pmsg);
6012 }
6013 static FORCEINLINE HRESULT IShellView3_EnableModeless(IShellView3* This,WINBOOL fEnable) {
6014     return This->lpVtbl->EnableModeless(This,fEnable);
6015 }
6016 static FORCEINLINE HRESULT IShellView3_UIActivate(IShellView3* This,UINT uState) {
6017     return This->lpVtbl->UIActivate(This,uState);
6018 }
6019 static FORCEINLINE HRESULT IShellView3_Refresh(IShellView3* This) {
6020     return This->lpVtbl->Refresh(This);
6021 }
6022 static FORCEINLINE HRESULT IShellView3_CreateViewWindow(IShellView3* This,IShellView *psvPrevious,LPCFOLDERSETTINGS pfs,IShellBrowser *psb,RECT *prcView,HWND *phWnd) {
6023     return This->lpVtbl->CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd);
6024 }
6025 static FORCEINLINE HRESULT IShellView3_DestroyViewWindow(IShellView3* This) {
6026     return This->lpVtbl->DestroyViewWindow(This);
6027 }
6028 static FORCEINLINE HRESULT IShellView3_GetCurrentInfo(IShellView3* This,LPFOLDERSETTINGS pfs) {
6029     return This->lpVtbl->GetCurrentInfo(This,pfs);
6030 }
6031 static FORCEINLINE HRESULT IShellView3_AddPropertySheetPages(IShellView3* This,DWORD dwReserved,LPFNSVADDPROPSHEETPAGE pfn,LPARAM lparam) {
6032     return This->lpVtbl->AddPropertySheetPages(This,dwReserved,pfn,lparam);
6033 }
6034 static FORCEINLINE HRESULT IShellView3_SaveViewState(IShellView3* This) {
6035     return This->lpVtbl->SaveViewState(This);
6036 }
6037 static FORCEINLINE HRESULT IShellView3_SelectItem(IShellView3* This,PCUITEMID_CHILD pidlItem,SVSIF uFlags) {
6038     return This->lpVtbl->SelectItem(This,pidlItem,uFlags);
6039 }
6040 static FORCEINLINE HRESULT IShellView3_GetItemObject(IShellView3* This,UINT uItem,REFIID riid,void **ppv) {
6041     return This->lpVtbl->GetItemObject(This,uItem,riid,ppv);
6042 }
6043 /*** IShellView2 methods ***/
6044 static FORCEINLINE HRESULT IShellView3_GetView(IShellView3* This,SHELLVIEWID *pvid,ULONG uView) {
6045     return This->lpVtbl->GetView(This,pvid,uView);
6046 }
6047 static FORCEINLINE HRESULT IShellView3_CreateViewWindow2(IShellView3* This,LPSV2CVW2_PARAMS lpParams) {
6048     return This->lpVtbl->CreateViewWindow2(This,lpParams);
6049 }
6050 static FORCEINLINE HRESULT IShellView3_HandleRename(IShellView3* This,PCUITEMID_CHILD pidlNew) {
6051     return This->lpVtbl->HandleRename(This,pidlNew);
6052 }
6053 static FORCEINLINE HRESULT IShellView3_SelectAndPositionItem(IShellView3* This,PCUITEMID_CHILD pidlItem,UINT uFlags,POINT *ppt) {
6054     return This->lpVtbl->SelectAndPositionItem(This,pidlItem,uFlags,ppt);
6055 }
6056 /*** IShellView3 methods ***/
6057 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) {
6058     return This->lpVtbl->CreateViewWindow3(This,psbOwner,psvPrev,dwViewFlags,dwMask,dwFlags,fvMode,pvid,prcView,phwndView);
6059 }
6060 #endif
6061 #endif
6062 
6063 #endif
6064 
6065 
6066 #endif  /* __IShellView3_INTERFACE_DEFINED__ */
6067 
6068 #endif
6069 #ifdef _FIX_ENABLEMODELESS_CONFLICT
6070 #undef EnableModeless
6071 #endif
6072 
6073 /*****************************************************************************
6074  * IFolderView interface
6075  */
6076 #ifndef __IFolderView_INTERFACE_DEFINED__
6077 #define __IFolderView_INTERFACE_DEFINED__
6078 
6079 DEFINE_GUID(IID_IFolderView, 0xcde725b0, 0xccc9, 0x4519, 0x91,0x7e, 0x32,0x5d,0x72,0xfa,0xb4,0xce);
6080 #if defined(__cplusplus) && !defined(CINTERFACE)
6081 MIDL_INTERFACE("cde725b0-ccc9-4519-917e-325d72fab4ce")
6082 IFolderView : public IUnknown
6083 {
6084     virtual HRESULT STDMETHODCALLTYPE GetCurrentViewMode(
6085         UINT *pViewMode) = 0;
6086 
6087     virtual HRESULT STDMETHODCALLTYPE SetCurrentViewMode(
6088         UINT ViewMode) = 0;
6089 
6090     virtual HRESULT STDMETHODCALLTYPE GetFolder(
6091         REFIID riid,
6092         void **ppv) = 0;
6093 
6094     virtual HRESULT STDMETHODCALLTYPE Item(
6095         int iItemIndex,
6096         PITEMID_CHILD *ppidl) = 0;
6097 
6098     virtual HRESULT STDMETHODCALLTYPE ItemCount(
6099         UINT uFlags,
6100         int *pcItems) = 0;
6101 
6102     virtual HRESULT STDMETHODCALLTYPE Items(
6103         UINT uFlags,
6104         REFIID riid,
6105         void **ppv) = 0;
6106 
6107     virtual HRESULT STDMETHODCALLTYPE GetSelectionMarkedItem(
6108         int *piItem) = 0;
6109 
6110     virtual HRESULT STDMETHODCALLTYPE GetFocusedItem(
6111         int *piItem) = 0;
6112 
6113     virtual HRESULT STDMETHODCALLTYPE GetItemPosition(
6114         PCUITEMID_CHILD pidl,
6115         POINT *ppt) = 0;
6116 
6117     virtual HRESULT STDMETHODCALLTYPE GetSpacing(
6118         POINT *ppt) = 0;
6119 
6120     virtual HRESULT STDMETHODCALLTYPE GetDefaultSpacing(
6121         POINT *ppt) = 0;
6122 
6123     virtual HRESULT STDMETHODCALLTYPE GetAutoArrange(
6124         ) = 0;
6125 
6126     virtual HRESULT STDMETHODCALLTYPE SelectItem(
6127         int iItem,
6128         DWORD dwFlags) = 0;
6129 
6130     virtual HRESULT STDMETHODCALLTYPE SelectAndPositionItems(
6131         UINT cidl,
6132         PCUITEMID_CHILD_ARRAY apidl,
6133         POINT *apt,
6134         DWORD dwFlags) = 0;
6135 
6136 };
6137 #ifdef __CRT_UUID_DECL
6138 __CRT_UUID_DECL(IFolderView, 0xcde725b0, 0xccc9, 0x4519, 0x91,0x7e, 0x32,0x5d,0x72,0xfa,0xb4,0xce)
6139 #endif
6140 #else
6141 typedef struct IFolderViewVtbl {
6142     BEGIN_INTERFACE
6143 
6144     /*** IUnknown methods ***/
6145     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6146         IFolderView *This,
6147         REFIID riid,
6148         void **ppvObject);
6149 
6150     ULONG (STDMETHODCALLTYPE *AddRef)(
6151         IFolderView *This);
6152 
6153     ULONG (STDMETHODCALLTYPE *Release)(
6154         IFolderView *This);
6155 
6156     /*** IFolderView methods ***/
6157     HRESULT (STDMETHODCALLTYPE *GetCurrentViewMode)(
6158         IFolderView *This,
6159         UINT *pViewMode);
6160 
6161     HRESULT (STDMETHODCALLTYPE *SetCurrentViewMode)(
6162         IFolderView *This,
6163         UINT ViewMode);
6164 
6165     HRESULT (STDMETHODCALLTYPE *GetFolder)(
6166         IFolderView *This,
6167         REFIID riid,
6168         void **ppv);
6169 
6170     HRESULT (STDMETHODCALLTYPE *Item)(
6171         IFolderView *This,
6172         int iItemIndex,
6173         PITEMID_CHILD *ppidl);
6174 
6175     HRESULT (STDMETHODCALLTYPE *ItemCount)(
6176         IFolderView *This,
6177         UINT uFlags,
6178         int *pcItems);
6179 
6180     HRESULT (STDMETHODCALLTYPE *Items)(
6181         IFolderView *This,
6182         UINT uFlags,
6183         REFIID riid,
6184         void **ppv);
6185 
6186     HRESULT (STDMETHODCALLTYPE *GetSelectionMarkedItem)(
6187         IFolderView *This,
6188         int *piItem);
6189 
6190     HRESULT (STDMETHODCALLTYPE *GetFocusedItem)(
6191         IFolderView *This,
6192         int *piItem);
6193 
6194     HRESULT (STDMETHODCALLTYPE *GetItemPosition)(
6195         IFolderView *This,
6196         PCUITEMID_CHILD pidl,
6197         POINT *ppt);
6198 
6199     HRESULT (STDMETHODCALLTYPE *GetSpacing)(
6200         IFolderView *This,
6201         POINT *ppt);
6202 
6203     HRESULT (STDMETHODCALLTYPE *GetDefaultSpacing)(
6204         IFolderView *This,
6205         POINT *ppt);
6206 
6207     HRESULT (STDMETHODCALLTYPE *GetAutoArrange)(
6208         IFolderView *This);
6209 
6210     HRESULT (STDMETHODCALLTYPE *SelectItem)(
6211         IFolderView *This,
6212         int iItem,
6213         DWORD dwFlags);
6214 
6215     HRESULT (STDMETHODCALLTYPE *SelectAndPositionItems)(
6216         IFolderView *This,
6217         UINT cidl,
6218         PCUITEMID_CHILD_ARRAY apidl,
6219         POINT *apt,
6220         DWORD dwFlags);
6221 
6222     END_INTERFACE
6223 } IFolderViewVtbl;
6224 
6225 interface IFolderView {
6226     CONST_VTBL IFolderViewVtbl* lpVtbl;
6227 };
6228 
6229 #ifdef COBJMACROS
6230 #ifndef WIDL_C_INLINE_WRAPPERS
6231 /*** IUnknown methods ***/
6232 #define IFolderView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6233 #define IFolderView_AddRef(This) (This)->lpVtbl->AddRef(This)
6234 #define IFolderView_Release(This) (This)->lpVtbl->Release(This)
6235 /*** IFolderView methods ***/
6236 #define IFolderView_GetCurrentViewMode(This,pViewMode) (This)->lpVtbl->GetCurrentViewMode(This,pViewMode)
6237 #define IFolderView_SetCurrentViewMode(This,ViewMode) (This)->lpVtbl->SetCurrentViewMode(This,ViewMode)
6238 #define IFolderView_GetFolder(This,riid,ppv) (This)->lpVtbl->GetFolder(This,riid,ppv)
6239 #define IFolderView_Item(This,iItemIndex,ppidl) (This)->lpVtbl->Item(This,iItemIndex,ppidl)
6240 #define IFolderView_ItemCount(This,uFlags,pcItems) (This)->lpVtbl->ItemCount(This,uFlags,pcItems)
6241 #define IFolderView_Items(This,uFlags,riid,ppv) (This)->lpVtbl->Items(This,uFlags,riid,ppv)
6242 #define IFolderView_GetSelectionMarkedItem(This,piItem) (This)->lpVtbl->GetSelectionMarkedItem(This,piItem)
6243 #define IFolderView_GetFocusedItem(This,piItem) (This)->lpVtbl->GetFocusedItem(This,piItem)
6244 #define IFolderView_GetItemPosition(This,pidl,ppt) (This)->lpVtbl->GetItemPosition(This,pidl,ppt)
6245 #define IFolderView_GetSpacing(This,ppt) (This)->lpVtbl->GetSpacing(This,ppt)
6246 #define IFolderView_GetDefaultSpacing(This,ppt) (This)->lpVtbl->GetDefaultSpacing(This,ppt)
6247 #define IFolderView_GetAutoArrange(This) (This)->lpVtbl->GetAutoArrange(This)
6248 #define IFolderView_SelectItem(This,iItem,dwFlags) (This)->lpVtbl->SelectItem(This,iItem,dwFlags)
6249 #define IFolderView_SelectAndPositionItems(This,cidl,apidl,apt,dwFlags) (This)->lpVtbl->SelectAndPositionItems(This,cidl,apidl,apt,dwFlags)
6250 #else
6251 /*** IUnknown methods ***/
6252 static FORCEINLINE HRESULT IFolderView_QueryInterface(IFolderView* This,REFIID riid,void **ppvObject) {
6253     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6254 }
6255 static FORCEINLINE ULONG IFolderView_AddRef(IFolderView* This) {
6256     return This->lpVtbl->AddRef(This);
6257 }
6258 static FORCEINLINE ULONG IFolderView_Release(IFolderView* This) {
6259     return This->lpVtbl->Release(This);
6260 }
6261 /*** IFolderView methods ***/
6262 static FORCEINLINE HRESULT IFolderView_GetCurrentViewMode(IFolderView* This,UINT *pViewMode) {
6263     return This->lpVtbl->GetCurrentViewMode(This,pViewMode);
6264 }
6265 static FORCEINLINE HRESULT IFolderView_SetCurrentViewMode(IFolderView* This,UINT ViewMode) {
6266     return This->lpVtbl->SetCurrentViewMode(This,ViewMode);
6267 }
6268 static FORCEINLINE HRESULT IFolderView_GetFolder(IFolderView* This,REFIID riid,void **ppv) {
6269     return This->lpVtbl->GetFolder(This,riid,ppv);
6270 }
6271 static FORCEINLINE HRESULT IFolderView_Item(IFolderView* This,int iItemIndex,PITEMID_CHILD *ppidl) {
6272     return This->lpVtbl->Item(This,iItemIndex,ppidl);
6273 }
6274 static FORCEINLINE HRESULT IFolderView_ItemCount(IFolderView* This,UINT uFlags,int *pcItems) {
6275     return This->lpVtbl->ItemCount(This,uFlags,pcItems);
6276 }
6277 static FORCEINLINE HRESULT IFolderView_Items(IFolderView* This,UINT uFlags,REFIID riid,void **ppv) {
6278     return This->lpVtbl->Items(This,uFlags,riid,ppv);
6279 }
6280 static FORCEINLINE HRESULT IFolderView_GetSelectionMarkedItem(IFolderView* This,int *piItem) {
6281     return This->lpVtbl->GetSelectionMarkedItem(This,piItem);
6282 }
6283 static FORCEINLINE HRESULT IFolderView_GetFocusedItem(IFolderView* This,int *piItem) {
6284     return This->lpVtbl->GetFocusedItem(This,piItem);
6285 }
6286 static FORCEINLINE HRESULT IFolderView_GetItemPosition(IFolderView* This,PCUITEMID_CHILD pidl,POINT *ppt) {
6287     return This->lpVtbl->GetItemPosition(This,pidl,ppt);
6288 }
6289 static FORCEINLINE HRESULT IFolderView_GetSpacing(IFolderView* This,POINT *ppt) {
6290     return This->lpVtbl->GetSpacing(This,ppt);
6291 }
6292 static FORCEINLINE HRESULT IFolderView_GetDefaultSpacing(IFolderView* This,POINT *ppt) {
6293     return This->lpVtbl->GetDefaultSpacing(This,ppt);
6294 }
6295 static FORCEINLINE HRESULT IFolderView_GetAutoArrange(IFolderView* This) {
6296     return This->lpVtbl->GetAutoArrange(This);
6297 }
6298 static FORCEINLINE HRESULT IFolderView_SelectItem(IFolderView* This,int iItem,DWORD dwFlags) {
6299     return This->lpVtbl->SelectItem(This,iItem,dwFlags);
6300 }
6301 static FORCEINLINE HRESULT IFolderView_SelectAndPositionItems(IFolderView* This,UINT cidl,PCUITEMID_CHILD_ARRAY apidl,POINT *apt,DWORD dwFlags) {
6302     return This->lpVtbl->SelectAndPositionItems(This,cidl,apidl,apt,dwFlags);
6303 }
6304 #endif
6305 #endif
6306 
6307 #endif
6308 
6309 
6310 #endif  /* __IFolderView_INTERFACE_DEFINED__ */
6311 
6312 
6313 #define SID_SFolderView IID_IFolderView
6314 
6315 #if NTDDI_VERSION >= NTDDI_WIN7
6316 /*****************************************************************************
6317  * ISearchBoxInfo interface
6318  */
6319 #ifndef __ISearchBoxInfo_INTERFACE_DEFINED__
6320 #define __ISearchBoxInfo_INTERFACE_DEFINED__
6321 
6322 DEFINE_GUID(IID_ISearchBoxInfo, 0x6af6e03f, 0xd664, 0x4ef4, 0x96,0x26, 0xf7,0xe0,0xed,0x36,0x75,0x5e);
6323 #if defined(__cplusplus) && !defined(CINTERFACE)
6324 MIDL_INTERFACE("6af6e03f-d664-4ef4-9626-f7e0ed36755e")
6325 ISearchBoxInfo : public IUnknown
6326 {
6327     virtual HRESULT STDMETHODCALLTYPE GetCondition(
6328         REFIID riid,
6329         void **ppv) = 0;
6330 
6331     virtual HRESULT STDMETHODCALLTYPE GetText(
6332         LPWSTR *ppsz) = 0;
6333 
6334 };
6335 #ifdef __CRT_UUID_DECL
6336 __CRT_UUID_DECL(ISearchBoxInfo, 0x6af6e03f, 0xd664, 0x4ef4, 0x96,0x26, 0xf7,0xe0,0xed,0x36,0x75,0x5e)
6337 #endif
6338 #else
6339 typedef struct ISearchBoxInfoVtbl {
6340     BEGIN_INTERFACE
6341 
6342     /*** IUnknown methods ***/
6343     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6344         ISearchBoxInfo *This,
6345         REFIID riid,
6346         void **ppvObject);
6347 
6348     ULONG (STDMETHODCALLTYPE *AddRef)(
6349         ISearchBoxInfo *This);
6350 
6351     ULONG (STDMETHODCALLTYPE *Release)(
6352         ISearchBoxInfo *This);
6353 
6354     /*** ISearchBoxInfo methods ***/
6355     HRESULT (STDMETHODCALLTYPE *GetCondition)(
6356         ISearchBoxInfo *This,
6357         REFIID riid,
6358         void **ppv);
6359 
6360     HRESULT (STDMETHODCALLTYPE *GetText)(
6361         ISearchBoxInfo *This,
6362         LPWSTR *ppsz);
6363 
6364     END_INTERFACE
6365 } ISearchBoxInfoVtbl;
6366 
6367 interface ISearchBoxInfo {
6368     CONST_VTBL ISearchBoxInfoVtbl* lpVtbl;
6369 };
6370 
6371 #ifdef COBJMACROS
6372 #ifndef WIDL_C_INLINE_WRAPPERS
6373 /*** IUnknown methods ***/
6374 #define ISearchBoxInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6375 #define ISearchBoxInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
6376 #define ISearchBoxInfo_Release(This) (This)->lpVtbl->Release(This)
6377 /*** ISearchBoxInfo methods ***/
6378 #define ISearchBoxInfo_GetCondition(This,riid,ppv) (This)->lpVtbl->GetCondition(This,riid,ppv)
6379 #define ISearchBoxInfo_GetText(This,ppsz) (This)->lpVtbl->GetText(This,ppsz)
6380 #else
6381 /*** IUnknown methods ***/
6382 static FORCEINLINE HRESULT ISearchBoxInfo_QueryInterface(ISearchBoxInfo* This,REFIID riid,void **ppvObject) {
6383     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6384 }
6385 static FORCEINLINE ULONG ISearchBoxInfo_AddRef(ISearchBoxInfo* This) {
6386     return This->lpVtbl->AddRef(This);
6387 }
6388 static FORCEINLINE ULONG ISearchBoxInfo_Release(ISearchBoxInfo* This) {
6389     return This->lpVtbl->Release(This);
6390 }
6391 /*** ISearchBoxInfo methods ***/
6392 static FORCEINLINE HRESULT ISearchBoxInfo_GetCondition(ISearchBoxInfo* This,REFIID riid,void **ppv) {
6393     return This->lpVtbl->GetCondition(This,riid,ppv);
6394 }
6395 static FORCEINLINE HRESULT ISearchBoxInfo_GetText(ISearchBoxInfo* This,LPWSTR *ppsz) {
6396     return This->lpVtbl->GetText(This,ppsz);
6397 }
6398 #endif
6399 #endif
6400 
6401 #endif
6402 
6403 
6404 #endif  /* __ISearchBoxInfo_INTERFACE_DEFINED__ */
6405 
6406 #endif
6407 
6408 #if NTDDI_VERSION >= NTDDI_VISTA || _WIN32_IE >= _WIN32_IE_IE70
6409 #ifndef NO_SHOBJIDL_SORTDIRECTION
6410 enum tagSORTDIRECTION {
6411     SORT_DESCENDING = -1,
6412     SORT_ASCENDING = 1
6413 };
6414 #endif
6415 
6416 typedef int SORTDIRECTION;
6417 
6418 typedef struct SORTCOLUMN {
6419     PROPERTYKEY propkey;
6420     SORTDIRECTION direction;
6421 } SORTCOLUMN;
6422 
6423 typedef enum FVTEXTTYPE {
6424     FVST_EMPTYTEXT = 0
6425 } FVTEXTTYPE;
6426 
6427 #ifndef __IShellItemArray_FWD_DEFINED__
6428 #define __IShellItemArray_FWD_DEFINED__
6429 typedef interface IShellItemArray IShellItemArray;
6430 #ifdef __cplusplus
6431 interface IShellItemArray;
6432 #endif /* __cplusplus */
6433 #endif
6434 
6435 
6436 typedef HRESULT DEPRECATED_HRESULT;
6437 
6438 #ifdef __cplusplus
6439 #define DEPRECATED_HRESULT HRESULT
6440 #endif
6441 
6442 /*****************************************************************************
6443  * IFolderView2 interface
6444  */
6445 #ifndef __IFolderView2_INTERFACE_DEFINED__
6446 #define __IFolderView2_INTERFACE_DEFINED__
6447 
6448 DEFINE_GUID(IID_IFolderView2, 0x1af3a467, 0x214f, 0x4298, 0x90,0x8e, 0x06,0xb0,0x3e,0x0b,0x39,0xf9);
6449 #if defined(__cplusplus) && !defined(CINTERFACE)
6450 MIDL_INTERFACE("1af3a467-214f-4298-908e-06b03e0b39f9")
6451 IFolderView2 : public IFolderView
6452 {
6453     virtual HRESULT STDMETHODCALLTYPE SetGroupBy(
6454         REFPROPERTYKEY key,
6455         WINBOOL fAscending) = 0;
6456 
6457     virtual HRESULT STDMETHODCALLTYPE GetGroupBy(
6458         PROPERTYKEY *pkey,
6459         WINBOOL *pfAscending) = 0;
6460 
6461     virtual HRESULT STDMETHODCALLTYPE SetViewProperty(
6462         PCUITEMID_CHILD pidl,
6463         REFPROPERTYKEY propkey,
6464         REFPROPVARIANT propvar) = 0;
6465 
6466     virtual HRESULT STDMETHODCALLTYPE GetViewProperty(
6467         PCUITEMID_CHILD pidl,
6468         REFPROPERTYKEY propkey,
6469         PROPVARIANT *ppropvar) = 0;
6470 
6471     virtual HRESULT STDMETHODCALLTYPE SetTileViewProperties(
6472         PCUITEMID_CHILD pidl,
6473         LPCWSTR pszPropList) = 0;
6474 
6475     virtual HRESULT STDMETHODCALLTYPE SetExtendedTileViewProperties(
6476         PCUITEMID_CHILD pidl,
6477         LPCWSTR pszPropList) = 0;
6478 
6479     virtual HRESULT STDMETHODCALLTYPE SetText(
6480         FVTEXTTYPE iType,
6481         LPCWSTR pwszText) = 0;
6482 
6483     virtual HRESULT STDMETHODCALLTYPE SetCurrentFolderFlags(
6484         DWORD dwMask,
6485         DWORD dwFlags) = 0;
6486 
6487     virtual HRESULT STDMETHODCALLTYPE GetCurrentFolderFlags(
6488         DWORD *pdwFlags) = 0;
6489 
6490     virtual HRESULT STDMETHODCALLTYPE GetSortColumnCount(
6491         int *pcColumns) = 0;
6492 
6493     virtual HRESULT STDMETHODCALLTYPE SetSortColumns(
6494         const SORTCOLUMN *rgSortColumns,
6495         int cColumns) = 0;
6496 
6497     virtual HRESULT STDMETHODCALLTYPE GetSortColumns(
6498         SORTCOLUMN *rgSortColumns,
6499         int cColumns) = 0;
6500 
6501     virtual HRESULT STDMETHODCALLTYPE GetItem(
6502         int iItem,
6503         REFIID riid,
6504         void **ppv) = 0;
6505 
6506     virtual HRESULT STDMETHODCALLTYPE GetVisibleItem(
6507         int iStart,
6508         WINBOOL fPrevious,
6509         int *piItem) = 0;
6510 
6511     virtual HRESULT STDMETHODCALLTYPE GetSelectedItem(
6512         int iStart,
6513         int *piItem) = 0;
6514 
6515     virtual HRESULT STDMETHODCALLTYPE GetSelection(
6516         WINBOOL fNoneImpliesFolder,
6517         IShellItemArray **ppsia) = 0;
6518 
6519     virtual HRESULT STDMETHODCALLTYPE GetSelectionState(
6520         PCUITEMID_CHILD pidl,
6521         DWORD *pdwFlags) = 0;
6522 
6523     virtual HRESULT STDMETHODCALLTYPE InvokeVerbOnSelection(
6524         LPCSTR pszVerb) = 0;
6525 
6526     virtual HRESULT STDMETHODCALLTYPE SetViewModeAndIconSize(
6527         FOLDERVIEWMODE uViewMode,
6528         int iImageSize) = 0;
6529 
6530     virtual HRESULT STDMETHODCALLTYPE GetViewModeAndIconSize(
6531         FOLDERVIEWMODE *puViewMode,
6532         int *piImageSize) = 0;
6533 
6534     virtual HRESULT STDMETHODCALLTYPE SetGroupSubsetCount(
6535         UINT cVisibleRows) = 0;
6536 
6537     virtual HRESULT STDMETHODCALLTYPE GetGroupSubsetCount(
6538         UINT *pcVisibleRows) = 0;
6539 
6540     virtual HRESULT STDMETHODCALLTYPE SetRedraw(
6541         WINBOOL fRedrawOn) = 0;
6542 
6543     virtual HRESULT STDMETHODCALLTYPE IsMoveInSameFolder(
6544         ) = 0;
6545 
6546     virtual HRESULT STDMETHODCALLTYPE DoRename(
6547         ) = 0;
6548 
6549 };
6550 #ifdef __CRT_UUID_DECL
6551 __CRT_UUID_DECL(IFolderView2, 0x1af3a467, 0x214f, 0x4298, 0x90,0x8e, 0x06,0xb0,0x3e,0x0b,0x39,0xf9)
6552 #endif
6553 #else
6554 typedef struct IFolderView2Vtbl {
6555     BEGIN_INTERFACE
6556 
6557     /*** IUnknown methods ***/
6558     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6559         IFolderView2 *This,
6560         REFIID riid,
6561         void **ppvObject);
6562 
6563     ULONG (STDMETHODCALLTYPE *AddRef)(
6564         IFolderView2 *This);
6565 
6566     ULONG (STDMETHODCALLTYPE *Release)(
6567         IFolderView2 *This);
6568 
6569     /*** IFolderView methods ***/
6570     HRESULT (STDMETHODCALLTYPE *GetCurrentViewMode)(
6571         IFolderView2 *This,
6572         UINT *pViewMode);
6573 
6574     HRESULT (STDMETHODCALLTYPE *SetCurrentViewMode)(
6575         IFolderView2 *This,
6576         UINT ViewMode);
6577 
6578     HRESULT (STDMETHODCALLTYPE *GetFolder)(
6579         IFolderView2 *This,
6580         REFIID riid,
6581         void **ppv);
6582 
6583     HRESULT (STDMETHODCALLTYPE *Item)(
6584         IFolderView2 *This,
6585         int iItemIndex,
6586         PITEMID_CHILD *ppidl);
6587 
6588     HRESULT (STDMETHODCALLTYPE *ItemCount)(
6589         IFolderView2 *This,
6590         UINT uFlags,
6591         int *pcItems);
6592 
6593     HRESULT (STDMETHODCALLTYPE *Items)(
6594         IFolderView2 *This,
6595         UINT uFlags,
6596         REFIID riid,
6597         void **ppv);
6598 
6599     HRESULT (STDMETHODCALLTYPE *GetSelectionMarkedItem)(
6600         IFolderView2 *This,
6601         int *piItem);
6602 
6603     HRESULT (STDMETHODCALLTYPE *GetFocusedItem)(
6604         IFolderView2 *This,
6605         int *piItem);
6606 
6607     HRESULT (STDMETHODCALLTYPE *GetItemPosition)(
6608         IFolderView2 *This,
6609         PCUITEMID_CHILD pidl,
6610         POINT *ppt);
6611 
6612     HRESULT (STDMETHODCALLTYPE *GetSpacing)(
6613         IFolderView2 *This,
6614         POINT *ppt);
6615 
6616     HRESULT (STDMETHODCALLTYPE *GetDefaultSpacing)(
6617         IFolderView2 *This,
6618         POINT *ppt);
6619 
6620     HRESULT (STDMETHODCALLTYPE *GetAutoArrange)(
6621         IFolderView2 *This);
6622 
6623     HRESULT (STDMETHODCALLTYPE *SelectItem)(
6624         IFolderView2 *This,
6625         int iItem,
6626         DWORD dwFlags);
6627 
6628     HRESULT (STDMETHODCALLTYPE *SelectAndPositionItems)(
6629         IFolderView2 *This,
6630         UINT cidl,
6631         PCUITEMID_CHILD_ARRAY apidl,
6632         POINT *apt,
6633         DWORD dwFlags);
6634 
6635     /*** IFolderView2 methods ***/
6636     HRESULT (STDMETHODCALLTYPE *SetGroupBy)(
6637         IFolderView2 *This,
6638         REFPROPERTYKEY key,
6639         WINBOOL fAscending);
6640 
6641     HRESULT (STDMETHODCALLTYPE *GetGroupBy)(
6642         IFolderView2 *This,
6643         PROPERTYKEY *pkey,
6644         WINBOOL *pfAscending);
6645 
6646     HRESULT (STDMETHODCALLTYPE *SetViewProperty)(
6647         IFolderView2 *This,
6648         PCUITEMID_CHILD pidl,
6649         REFPROPERTYKEY propkey,
6650         REFPROPVARIANT propvar);
6651 
6652     HRESULT (STDMETHODCALLTYPE *GetViewProperty)(
6653         IFolderView2 *This,
6654         PCUITEMID_CHILD pidl,
6655         REFPROPERTYKEY propkey,
6656         PROPVARIANT *ppropvar);
6657 
6658     HRESULT (STDMETHODCALLTYPE *SetTileViewProperties)(
6659         IFolderView2 *This,
6660         PCUITEMID_CHILD pidl,
6661         LPCWSTR pszPropList);
6662 
6663     HRESULT (STDMETHODCALLTYPE *SetExtendedTileViewProperties)(
6664         IFolderView2 *This,
6665         PCUITEMID_CHILD pidl,
6666         LPCWSTR pszPropList);
6667 
6668     HRESULT (STDMETHODCALLTYPE *SetText)(
6669         IFolderView2 *This,
6670         FVTEXTTYPE iType,
6671         LPCWSTR pwszText);
6672 
6673     HRESULT (STDMETHODCALLTYPE *SetCurrentFolderFlags)(
6674         IFolderView2 *This,
6675         DWORD dwMask,
6676         DWORD dwFlags);
6677 
6678     HRESULT (STDMETHODCALLTYPE *GetCurrentFolderFlags)(
6679         IFolderView2 *This,
6680         DWORD *pdwFlags);
6681 
6682     HRESULT (STDMETHODCALLTYPE *GetSortColumnCount)(
6683         IFolderView2 *This,
6684         int *pcColumns);
6685 
6686     HRESULT (STDMETHODCALLTYPE *SetSortColumns)(
6687         IFolderView2 *This,
6688         const SORTCOLUMN *rgSortColumns,
6689         int cColumns);
6690 
6691     HRESULT (STDMETHODCALLTYPE *GetSortColumns)(
6692         IFolderView2 *This,
6693         SORTCOLUMN *rgSortColumns,
6694         int cColumns);
6695 
6696     HRESULT (STDMETHODCALLTYPE *GetItem)(
6697         IFolderView2 *This,
6698         int iItem,
6699         REFIID riid,
6700         void **ppv);
6701 
6702     HRESULT (STDMETHODCALLTYPE *GetVisibleItem)(
6703         IFolderView2 *This,
6704         int iStart,
6705         WINBOOL fPrevious,
6706         int *piItem);
6707 
6708     HRESULT (STDMETHODCALLTYPE *GetSelectedItem)(
6709         IFolderView2 *This,
6710         int iStart,
6711         int *piItem);
6712 
6713     HRESULT (STDMETHODCALLTYPE *GetSelection)(
6714         IFolderView2 *This,
6715         WINBOOL fNoneImpliesFolder,
6716         IShellItemArray **ppsia);
6717 
6718     HRESULT (STDMETHODCALLTYPE *GetSelectionState)(
6719         IFolderView2 *This,
6720         PCUITEMID_CHILD pidl,
6721         DWORD *pdwFlags);
6722 
6723     HRESULT (STDMETHODCALLTYPE *InvokeVerbOnSelection)(
6724         IFolderView2 *This,
6725         LPCSTR pszVerb);
6726 
6727     HRESULT (STDMETHODCALLTYPE *SetViewModeAndIconSize)(
6728         IFolderView2 *This,
6729         FOLDERVIEWMODE uViewMode,
6730         int iImageSize);
6731 
6732     HRESULT (STDMETHODCALLTYPE *GetViewModeAndIconSize)(
6733         IFolderView2 *This,
6734         FOLDERVIEWMODE *puViewMode,
6735         int *piImageSize);
6736 
6737     HRESULT (STDMETHODCALLTYPE *SetGroupSubsetCount)(
6738         IFolderView2 *This,
6739         UINT cVisibleRows);
6740 
6741     HRESULT (STDMETHODCALLTYPE *GetGroupSubsetCount)(
6742         IFolderView2 *This,
6743         UINT *pcVisibleRows);
6744 
6745     HRESULT (STDMETHODCALLTYPE *SetRedraw)(
6746         IFolderView2 *This,
6747         WINBOOL fRedrawOn);
6748 
6749     HRESULT (STDMETHODCALLTYPE *IsMoveInSameFolder)(
6750         IFolderView2 *This);
6751 
6752     HRESULT (STDMETHODCALLTYPE *DoRename)(
6753         IFolderView2 *This);
6754 
6755     END_INTERFACE
6756 } IFolderView2Vtbl;
6757 
6758 interface IFolderView2 {
6759     CONST_VTBL IFolderView2Vtbl* lpVtbl;
6760 };
6761 
6762 #ifdef COBJMACROS
6763 #ifndef WIDL_C_INLINE_WRAPPERS
6764 /*** IUnknown methods ***/
6765 #define IFolderView2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6766 #define IFolderView2_AddRef(This) (This)->lpVtbl->AddRef(This)
6767 #define IFolderView2_Release(This) (This)->lpVtbl->Release(This)
6768 /*** IFolderView methods ***/
6769 #define IFolderView2_GetCurrentViewMode(This,pViewMode) (This)->lpVtbl->GetCurrentViewMode(This,pViewMode)
6770 #define IFolderView2_SetCurrentViewMode(This,ViewMode) (This)->lpVtbl->SetCurrentViewMode(This,ViewMode)
6771 #define IFolderView2_GetFolder(This,riid,ppv) (This)->lpVtbl->GetFolder(This,riid,ppv)
6772 #define IFolderView2_Item(This,iItemIndex,ppidl) (This)->lpVtbl->Item(This,iItemIndex,ppidl)
6773 #define IFolderView2_ItemCount(This,uFlags,pcItems) (This)->lpVtbl->ItemCount(This,uFlags,pcItems)
6774 #define IFolderView2_Items(This,uFlags,riid,ppv) (This)->lpVtbl->Items(This,uFlags,riid,ppv)
6775 #define IFolderView2_GetSelectionMarkedItem(This,piItem) (This)->lpVtbl->GetSelectionMarkedItem(This,piItem)
6776 #define IFolderView2_GetFocusedItem(This,piItem) (This)->lpVtbl->GetFocusedItem(This,piItem)
6777 #define IFolderView2_GetItemPosition(This,pidl,ppt) (This)->lpVtbl->GetItemPosition(This,pidl,ppt)
6778 #define IFolderView2_GetSpacing(This,ppt) (This)->lpVtbl->GetSpacing(This,ppt)
6779 #define IFolderView2_GetDefaultSpacing(This,ppt) (This)->lpVtbl->GetDefaultSpacing(This,ppt)
6780 #define IFolderView2_GetAutoArrange(This) (This)->lpVtbl->GetAutoArrange(This)
6781 #define IFolderView2_SelectItem(This,iItem,dwFlags) (This)->lpVtbl->SelectItem(This,iItem,dwFlags)
6782 #define IFolderView2_SelectAndPositionItems(This,cidl,apidl,apt,dwFlags) (This)->lpVtbl->SelectAndPositionItems(This,cidl,apidl,apt,dwFlags)
6783 /*** IFolderView2 methods ***/
6784 #define IFolderView2_SetGroupBy(This,key,fAscending) (This)->lpVtbl->SetGroupBy(This,key,fAscending)
6785 #define IFolderView2_GetGroupBy(This,pkey,pfAscending) (This)->lpVtbl->GetGroupBy(This,pkey,pfAscending)
6786 #define IFolderView2_SetViewProperty(This,pidl,propkey,propvar) (This)->lpVtbl->SetViewProperty(This,pidl,propkey,propvar)
6787 #define IFolderView2_GetViewProperty(This,pidl,propkey,ppropvar) (This)->lpVtbl->GetViewProperty(This,pidl,propkey,ppropvar)
6788 #define IFolderView2_SetTileViewProperties(This,pidl,pszPropList) (This)->lpVtbl->SetTileViewProperties(This,pidl,pszPropList)
6789 #define IFolderView2_SetExtendedTileViewProperties(This,pidl,pszPropList) (This)->lpVtbl->SetExtendedTileViewProperties(This,pidl,pszPropList)
6790 #define IFolderView2_SetText(This,iType,pwszText) (This)->lpVtbl->SetText(This,iType,pwszText)
6791 #define IFolderView2_SetCurrentFolderFlags(This,dwMask,dwFlags) (This)->lpVtbl->SetCurrentFolderFlags(This,dwMask,dwFlags)
6792 #define IFolderView2_GetCurrentFolderFlags(This,pdwFlags) (This)->lpVtbl->GetCurrentFolderFlags(This,pdwFlags)
6793 #define IFolderView2_GetSortColumnCount(This,pcColumns) (This)->lpVtbl->GetSortColumnCount(This,pcColumns)
6794 #define IFolderView2_SetSortColumns(This,rgSortColumns,cColumns) (This)->lpVtbl->SetSortColumns(This,rgSortColumns,cColumns)
6795 #define IFolderView2_GetSortColumns(This,rgSortColumns,cColumns) (This)->lpVtbl->GetSortColumns(This,rgSortColumns,cColumns)
6796 #define IFolderView2_GetItem(This,iItem,riid,ppv) (This)->lpVtbl->GetItem(This,iItem,riid,ppv)
6797 #define IFolderView2_GetVisibleItem(This,iStart,fPrevious,piItem) (This)->lpVtbl->GetVisibleItem(This,iStart,fPrevious,piItem)
6798 #define IFolderView2_GetSelectedItem(This,iStart,piItem) (This)->lpVtbl->GetSelectedItem(This,iStart,piItem)
6799 #define IFolderView2_GetSelection(This,fNoneImpliesFolder,ppsia) (This)->lpVtbl->GetSelection(This,fNoneImpliesFolder,ppsia)
6800 #define IFolderView2_GetSelectionState(This,pidl,pdwFlags) (This)->lpVtbl->GetSelectionState(This,pidl,pdwFlags)
6801 #define IFolderView2_InvokeVerbOnSelection(This,pszVerb) (This)->lpVtbl->InvokeVerbOnSelection(This,pszVerb)
6802 #define IFolderView2_SetViewModeAndIconSize(This,uViewMode,iImageSize) (This)->lpVtbl->SetViewModeAndIconSize(This,uViewMode,iImageSize)
6803 #define IFolderView2_GetViewModeAndIconSize(This,puViewMode,piImageSize) (This)->lpVtbl->GetViewModeAndIconSize(This,puViewMode,piImageSize)
6804 #define IFolderView2_SetGroupSubsetCount(This,cVisibleRows) (This)->lpVtbl->SetGroupSubsetCount(This,cVisibleRows)
6805 #define IFolderView2_GetGroupSubsetCount(This,pcVisibleRows) (This)->lpVtbl->GetGroupSubsetCount(This,pcVisibleRows)
6806 #define IFolderView2_SetRedraw(This,fRedrawOn) (This)->lpVtbl->SetRedraw(This,fRedrawOn)
6807 #define IFolderView2_IsMoveInSameFolder(This) (This)->lpVtbl->IsMoveInSameFolder(This)
6808 #define IFolderView2_DoRename(This) (This)->lpVtbl->DoRename(This)
6809 #else
6810 /*** IUnknown methods ***/
6811 static FORCEINLINE HRESULT IFolderView2_QueryInterface(IFolderView2* This,REFIID riid,void **ppvObject) {
6812     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6813 }
6814 static FORCEINLINE ULONG IFolderView2_AddRef(IFolderView2* This) {
6815     return This->lpVtbl->AddRef(This);
6816 }
6817 static FORCEINLINE ULONG IFolderView2_Release(IFolderView2* This) {
6818     return This->lpVtbl->Release(This);
6819 }
6820 /*** IFolderView methods ***/
6821 static FORCEINLINE HRESULT IFolderView2_GetCurrentViewMode(IFolderView2* This,UINT *pViewMode) {
6822     return This->lpVtbl->GetCurrentViewMode(This,pViewMode);
6823 }
6824 static FORCEINLINE HRESULT IFolderView2_SetCurrentViewMode(IFolderView2* This,UINT ViewMode) {
6825     return This->lpVtbl->SetCurrentViewMode(This,ViewMode);
6826 }
6827 static FORCEINLINE HRESULT IFolderView2_GetFolder(IFolderView2* This,REFIID riid,void **ppv) {
6828     return This->lpVtbl->GetFolder(This,riid,ppv);
6829 }
6830 static FORCEINLINE HRESULT IFolderView2_Item(IFolderView2* This,int iItemIndex,PITEMID_CHILD *ppidl) {
6831     return This->lpVtbl->Item(This,iItemIndex,ppidl);
6832 }
6833 static FORCEINLINE HRESULT IFolderView2_ItemCount(IFolderView2* This,UINT uFlags,int *pcItems) {
6834     return This->lpVtbl->ItemCount(This,uFlags,pcItems);
6835 }
6836 static FORCEINLINE HRESULT IFolderView2_Items(IFolderView2* This,UINT uFlags,REFIID riid,void **ppv) {
6837     return This->lpVtbl->Items(This,uFlags,riid,ppv);
6838 }
6839 static FORCEINLINE HRESULT IFolderView2_GetSelectionMarkedItem(IFolderView2* This,int *piItem) {
6840     return This->lpVtbl->GetSelectionMarkedItem(This,piItem);
6841 }
6842 static FORCEINLINE HRESULT IFolderView2_GetFocusedItem(IFolderView2* This,int *piItem) {
6843     return This->lpVtbl->GetFocusedItem(This,piItem);
6844 }
6845 static FORCEINLINE HRESULT IFolderView2_GetItemPosition(IFolderView2* This,PCUITEMID_CHILD pidl,POINT *ppt) {
6846     return This->lpVtbl->GetItemPosition(This,pidl,ppt);
6847 }
6848 static FORCEINLINE HRESULT IFolderView2_GetSpacing(IFolderView2* This,POINT *ppt) {
6849     return This->lpVtbl->GetSpacing(This,ppt);
6850 }
6851 static FORCEINLINE HRESULT IFolderView2_GetDefaultSpacing(IFolderView2* This,POINT *ppt) {
6852     return This->lpVtbl->GetDefaultSpacing(This,ppt);
6853 }
6854 static FORCEINLINE HRESULT IFolderView2_GetAutoArrange(IFolderView2* This) {
6855     return This->lpVtbl->GetAutoArrange(This);
6856 }
6857 static FORCEINLINE HRESULT IFolderView2_SelectItem(IFolderView2* This,int iItem,DWORD dwFlags) {
6858     return This->lpVtbl->SelectItem(This,iItem,dwFlags);
6859 }
6860 static FORCEINLINE HRESULT IFolderView2_SelectAndPositionItems(IFolderView2* This,UINT cidl,PCUITEMID_CHILD_ARRAY apidl,POINT *apt,DWORD dwFlags) {
6861     return This->lpVtbl->SelectAndPositionItems(This,cidl,apidl,apt,dwFlags);
6862 }
6863 /*** IFolderView2 methods ***/
6864 static FORCEINLINE HRESULT IFolderView2_SetGroupBy(IFolderView2* This,REFPROPERTYKEY key,WINBOOL fAscending) {
6865     return This->lpVtbl->SetGroupBy(This,key,fAscending);
6866 }
6867 static FORCEINLINE HRESULT IFolderView2_GetGroupBy(IFolderView2* This,PROPERTYKEY *pkey,WINBOOL *pfAscending) {
6868     return This->lpVtbl->GetGroupBy(This,pkey,pfAscending);
6869 }
6870 static FORCEINLINE HRESULT IFolderView2_SetViewProperty(IFolderView2* This,PCUITEMID_CHILD pidl,REFPROPERTYKEY propkey,REFPROPVARIANT propvar) {
6871     return This->lpVtbl->SetViewProperty(This,pidl,propkey,propvar);
6872 }
6873 static FORCEINLINE HRESULT IFolderView2_GetViewProperty(IFolderView2* This,PCUITEMID_CHILD pidl,REFPROPERTYKEY propkey,PROPVARIANT *ppropvar) {
6874     return This->lpVtbl->GetViewProperty(This,pidl,propkey,ppropvar);
6875 }
6876 static FORCEINLINE HRESULT IFolderView2_SetTileViewProperties(IFolderView2* This,PCUITEMID_CHILD pidl,LPCWSTR pszPropList) {
6877     return This->lpVtbl->SetTileViewProperties(This,pidl,pszPropList);
6878 }
6879 static FORCEINLINE HRESULT IFolderView2_SetExtendedTileViewProperties(IFolderView2* This,PCUITEMID_CHILD pidl,LPCWSTR pszPropList) {
6880     return This->lpVtbl->SetExtendedTileViewProperties(This,pidl,pszPropList);
6881 }
6882 static FORCEINLINE HRESULT IFolderView2_SetText(IFolderView2* This,FVTEXTTYPE iType,LPCWSTR pwszText) {
6883     return This->lpVtbl->SetText(This,iType,pwszText);
6884 }
6885 static FORCEINLINE HRESULT IFolderView2_SetCurrentFolderFlags(IFolderView2* This,DWORD dwMask,DWORD dwFlags) {
6886     return This->lpVtbl->SetCurrentFolderFlags(This,dwMask,dwFlags);
6887 }
6888 static FORCEINLINE HRESULT IFolderView2_GetCurrentFolderFlags(IFolderView2* This,DWORD *pdwFlags) {
6889     return This->lpVtbl->GetCurrentFolderFlags(This,pdwFlags);
6890 }
6891 static FORCEINLINE HRESULT IFolderView2_GetSortColumnCount(IFolderView2* This,int *pcColumns) {
6892     return This->lpVtbl->GetSortColumnCount(This,pcColumns);
6893 }
6894 static FORCEINLINE HRESULT IFolderView2_SetSortColumns(IFolderView2* This,const SORTCOLUMN *rgSortColumns,int cColumns) {
6895     return This->lpVtbl->SetSortColumns(This,rgSortColumns,cColumns);
6896 }
6897 static FORCEINLINE HRESULT IFolderView2_GetSortColumns(IFolderView2* This,SORTCOLUMN *rgSortColumns,int cColumns) {
6898     return This->lpVtbl->GetSortColumns(This,rgSortColumns,cColumns);
6899 }
6900 static FORCEINLINE HRESULT IFolderView2_GetItem(IFolderView2* This,int iItem,REFIID riid,void **ppv) {
6901     return This->lpVtbl->GetItem(This,iItem,riid,ppv);
6902 }
6903 static FORCEINLINE HRESULT IFolderView2_GetVisibleItem(IFolderView2* This,int iStart,WINBOOL fPrevious,int *piItem) {
6904     return This->lpVtbl->GetVisibleItem(This,iStart,fPrevious,piItem);
6905 }
6906 static FORCEINLINE HRESULT IFolderView2_GetSelectedItem(IFolderView2* This,int iStart,int *piItem) {
6907     return This->lpVtbl->GetSelectedItem(This,iStart,piItem);
6908 }
6909 static FORCEINLINE HRESULT IFolderView2_GetSelection(IFolderView2* This,WINBOOL fNoneImpliesFolder,IShellItemArray **ppsia) {
6910     return This->lpVtbl->GetSelection(This,fNoneImpliesFolder,ppsia);
6911 }
6912 static FORCEINLINE HRESULT IFolderView2_GetSelectionState(IFolderView2* This,PCUITEMID_CHILD pidl,DWORD *pdwFlags) {
6913     return This->lpVtbl->GetSelectionState(This,pidl,pdwFlags);
6914 }
6915 static FORCEINLINE HRESULT IFolderView2_InvokeVerbOnSelection(IFolderView2* This,LPCSTR pszVerb) {
6916     return This->lpVtbl->InvokeVerbOnSelection(This,pszVerb);
6917 }
6918 static FORCEINLINE HRESULT IFolderView2_SetViewModeAndIconSize(IFolderView2* This,FOLDERVIEWMODE uViewMode,int iImageSize) {
6919     return This->lpVtbl->SetViewModeAndIconSize(This,uViewMode,iImageSize);
6920 }
6921 static FORCEINLINE HRESULT IFolderView2_GetViewModeAndIconSize(IFolderView2* This,FOLDERVIEWMODE *puViewMode,int *piImageSize) {
6922     return This->lpVtbl->GetViewModeAndIconSize(This,puViewMode,piImageSize);
6923 }
6924 static FORCEINLINE HRESULT IFolderView2_SetGroupSubsetCount(IFolderView2* This,UINT cVisibleRows) {
6925     return This->lpVtbl->SetGroupSubsetCount(This,cVisibleRows);
6926 }
6927 static FORCEINLINE HRESULT IFolderView2_GetGroupSubsetCount(IFolderView2* This,UINT *pcVisibleRows) {
6928     return This->lpVtbl->GetGroupSubsetCount(This,pcVisibleRows);
6929 }
6930 static FORCEINLINE HRESULT IFolderView2_SetRedraw(IFolderView2* This,WINBOOL fRedrawOn) {
6931     return This->lpVtbl->SetRedraw(This,fRedrawOn);
6932 }
6933 static FORCEINLINE HRESULT IFolderView2_IsMoveInSameFolder(IFolderView2* This) {
6934     return This->lpVtbl->IsMoveInSameFolder(This);
6935 }
6936 static FORCEINLINE HRESULT IFolderView2_DoRename(IFolderView2* This) {
6937     return This->lpVtbl->DoRename(This);
6938 }
6939 #endif
6940 #endif
6941 
6942 #endif
6943 
6944 HRESULT STDMETHODCALLTYPE IFolderView2_RemoteGetGroupBy_Proxy(
6945     IFolderView2* This,
6946     PROPERTYKEY *pkey,
6947     WINBOOL *pfAscending);
6948 void __RPC_STUB IFolderView2_RemoteGetGroupBy_Stub(
6949     IRpcStubBuffer* This,
6950     IRpcChannelBuffer* pRpcChannelBuffer,
6951     PRPC_MESSAGE pRpcMessage,
6952     DWORD* pdwStubPhase);
6953 HRESULT CALLBACK IFolderView2_GetGroupBy_Proxy(
6954     IFolderView2* This,
6955     PROPERTYKEY *pkey,
6956     WINBOOL *pfAscending);
6957 HRESULT __RPC_STUB IFolderView2_GetGroupBy_Stub(
6958     IFolderView2* This,
6959     PROPERTYKEY *pkey,
6960     WINBOOL *pfAscending);
6961 
6962 #endif  /* __IFolderView2_INTERFACE_DEFINED__ */
6963 
6964 
6965 #if NTDDI_VERSION >= NTDDI_VISTA
6966 /*****************************************************************************
6967  * IFolderViewSettings interface
6968  */
6969 #ifndef __IFolderViewSettings_INTERFACE_DEFINED__
6970 #define __IFolderViewSettings_INTERFACE_DEFINED__
6971 
6972 DEFINE_GUID(IID_IFolderViewSettings, 0xae8c987d, 0x8797, 0x4ed3, 0xbe,0x72, 0x2a,0x47,0xdd,0x93,0x8d,0xb0);
6973 #if defined(__cplusplus) && !defined(CINTERFACE)
6974 MIDL_INTERFACE("ae8c987d-8797-4ed3-be72-2a47dd938db0")
6975 IFolderViewSettings : public IUnknown
6976 {
6977     virtual HRESULT STDMETHODCALLTYPE GetColumnPropertyList(
6978         REFIID riid,
6979         void **ppv) = 0;
6980 
6981     virtual HRESULT STDMETHODCALLTYPE GetGroupByProperty(
6982         PROPERTYKEY *pkey,
6983         WINBOOL *pfGroupAscending) = 0;
6984 
6985     virtual HRESULT STDMETHODCALLTYPE GetViewMode(
6986         FOLDERLOGICALVIEWMODE *plvm) = 0;
6987 
6988     virtual HRESULT STDMETHODCALLTYPE GetIconSize(
6989         UINT *puIconSize) = 0;
6990 
6991     virtual HRESULT STDMETHODCALLTYPE GetFolderFlags(
6992         FOLDERFLAGS *pfolderMask,
6993         FOLDERFLAGS *pfolderFlags) = 0;
6994 
6995     virtual HRESULT STDMETHODCALLTYPE GetSortColumns(
6996         SORTCOLUMN *rgSortColumns,
6997         UINT cColumnsIn,
6998         UINT *pcColumnsOut) = 0;
6999 
7000     virtual HRESULT STDMETHODCALLTYPE GetGroupSubsetCount(
7001         UINT *pcVisibleRows) = 0;
7002 
7003 };
7004 #ifdef __CRT_UUID_DECL
7005 __CRT_UUID_DECL(IFolderViewSettings, 0xae8c987d, 0x8797, 0x4ed3, 0xbe,0x72, 0x2a,0x47,0xdd,0x93,0x8d,0xb0)
7006 #endif
7007 #else
7008 typedef struct IFolderViewSettingsVtbl {
7009     BEGIN_INTERFACE
7010 
7011     /*** IUnknown methods ***/
7012     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7013         IFolderViewSettings *This,
7014         REFIID riid,
7015         void **ppvObject);
7016 
7017     ULONG (STDMETHODCALLTYPE *AddRef)(
7018         IFolderViewSettings *This);
7019 
7020     ULONG (STDMETHODCALLTYPE *Release)(
7021         IFolderViewSettings *This);
7022 
7023     /*** IFolderViewSettings methods ***/
7024     HRESULT (STDMETHODCALLTYPE *GetColumnPropertyList)(
7025         IFolderViewSettings *This,
7026         REFIID riid,
7027         void **ppv);
7028 
7029     HRESULT (STDMETHODCALLTYPE *GetGroupByProperty)(
7030         IFolderViewSettings *This,
7031         PROPERTYKEY *pkey,
7032         WINBOOL *pfGroupAscending);
7033 
7034     HRESULT (STDMETHODCALLTYPE *GetViewMode)(
7035         IFolderViewSettings *This,
7036         FOLDERLOGICALVIEWMODE *plvm);
7037 
7038     HRESULT (STDMETHODCALLTYPE *GetIconSize)(
7039         IFolderViewSettings *This,
7040         UINT *puIconSize);
7041 
7042     HRESULT (STDMETHODCALLTYPE *GetFolderFlags)(
7043         IFolderViewSettings *This,
7044         FOLDERFLAGS *pfolderMask,
7045         FOLDERFLAGS *pfolderFlags);
7046 
7047     HRESULT (STDMETHODCALLTYPE *GetSortColumns)(
7048         IFolderViewSettings *This,
7049         SORTCOLUMN *rgSortColumns,
7050         UINT cColumnsIn,
7051         UINT *pcColumnsOut);
7052 
7053     HRESULT (STDMETHODCALLTYPE *GetGroupSubsetCount)(
7054         IFolderViewSettings *This,
7055         UINT *pcVisibleRows);
7056 
7057     END_INTERFACE
7058 } IFolderViewSettingsVtbl;
7059 
7060 interface IFolderViewSettings {
7061     CONST_VTBL IFolderViewSettingsVtbl* lpVtbl;
7062 };
7063 
7064 #ifdef COBJMACROS
7065 #ifndef WIDL_C_INLINE_WRAPPERS
7066 /*** IUnknown methods ***/
7067 #define IFolderViewSettings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7068 #define IFolderViewSettings_AddRef(This) (This)->lpVtbl->AddRef(This)
7069 #define IFolderViewSettings_Release(This) (This)->lpVtbl->Release(This)
7070 /*** IFolderViewSettings methods ***/
7071 #define IFolderViewSettings_GetColumnPropertyList(This,riid,ppv) (This)->lpVtbl->GetColumnPropertyList(This,riid,ppv)
7072 #define IFolderViewSettings_GetGroupByProperty(This,pkey,pfGroupAscending) (This)->lpVtbl->GetGroupByProperty(This,pkey,pfGroupAscending)
7073 #define IFolderViewSettings_GetViewMode(This,plvm) (This)->lpVtbl->GetViewMode(This,plvm)
7074 #define IFolderViewSettings_GetIconSize(This,puIconSize) (This)->lpVtbl->GetIconSize(This,puIconSize)
7075 #define IFolderViewSettings_GetFolderFlags(This,pfolderMask,pfolderFlags) (This)->lpVtbl->GetFolderFlags(This,pfolderMask,pfolderFlags)
7076 #define IFolderViewSettings_GetSortColumns(This,rgSortColumns,cColumnsIn,pcColumnsOut) (This)->lpVtbl->GetSortColumns(This,rgSortColumns,cColumnsIn,pcColumnsOut)
7077 #define IFolderViewSettings_GetGroupSubsetCount(This,pcVisibleRows) (This)->lpVtbl->GetGroupSubsetCount(This,pcVisibleRows)
7078 #else
7079 /*** IUnknown methods ***/
7080 static FORCEINLINE HRESULT IFolderViewSettings_QueryInterface(IFolderViewSettings* This,REFIID riid,void **ppvObject) {
7081     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7082 }
7083 static FORCEINLINE ULONG IFolderViewSettings_AddRef(IFolderViewSettings* This) {
7084     return This->lpVtbl->AddRef(This);
7085 }
7086 static FORCEINLINE ULONG IFolderViewSettings_Release(IFolderViewSettings* This) {
7087     return This->lpVtbl->Release(This);
7088 }
7089 /*** IFolderViewSettings methods ***/
7090 static FORCEINLINE HRESULT IFolderViewSettings_GetColumnPropertyList(IFolderViewSettings* This,REFIID riid,void **ppv) {
7091     return This->lpVtbl->GetColumnPropertyList(This,riid,ppv);
7092 }
7093 static FORCEINLINE HRESULT IFolderViewSettings_GetGroupByProperty(IFolderViewSettings* This,PROPERTYKEY *pkey,WINBOOL *pfGroupAscending) {
7094     return This->lpVtbl->GetGroupByProperty(This,pkey,pfGroupAscending);
7095 }
7096 static FORCEINLINE HRESULT IFolderViewSettings_GetViewMode(IFolderViewSettings* This,FOLDERLOGICALVIEWMODE *plvm) {
7097     return This->lpVtbl->GetViewMode(This,plvm);
7098 }
7099 static FORCEINLINE HRESULT IFolderViewSettings_GetIconSize(IFolderViewSettings* This,UINT *puIconSize) {
7100     return This->lpVtbl->GetIconSize(This,puIconSize);
7101 }
7102 static FORCEINLINE HRESULT IFolderViewSettings_GetFolderFlags(IFolderViewSettings* This,FOLDERFLAGS *pfolderMask,FOLDERFLAGS *pfolderFlags) {
7103     return This->lpVtbl->GetFolderFlags(This,pfolderMask,pfolderFlags);
7104 }
7105 static FORCEINLINE HRESULT IFolderViewSettings_GetSortColumns(IFolderViewSettings* This,SORTCOLUMN *rgSortColumns,UINT cColumnsIn,UINT *pcColumnsOut) {
7106     return This->lpVtbl->GetSortColumns(This,rgSortColumns,cColumnsIn,pcColumnsOut);
7107 }
7108 static FORCEINLINE HRESULT IFolderViewSettings_GetGroupSubsetCount(IFolderViewSettings* This,UINT *pcVisibleRows) {
7109     return This->lpVtbl->GetGroupSubsetCount(This,pcVisibleRows);
7110 }
7111 #endif
7112 #endif
7113 
7114 #endif
7115 
7116 
7117 #endif  /* __IFolderViewSettings_INTERFACE_DEFINED__ */
7118 
7119 #endif
7120 #endif
7121 
7122 #if _WIN32_IE >= _WIN32_IE_IE70
7123 /*****************************************************************************
7124  * IPreviewHandlerVisuals interface
7125  */
7126 #ifndef __IPreviewHandlerVisuals_INTERFACE_DEFINED__
7127 #define __IPreviewHandlerVisuals_INTERFACE_DEFINED__
7128 
7129 DEFINE_GUID(IID_IPreviewHandlerVisuals, 0x196bf9a5, 0xb346, 0x4ef0, 0xaa,0x1e, 0x5d,0xcd,0xb7,0x67,0x68,0xb1);
7130 #if defined(__cplusplus) && !defined(CINTERFACE)
7131 MIDL_INTERFACE("196bf9a5-b346-4ef0-aa1e-5dcdb76768b1")
7132 IPreviewHandlerVisuals : public IUnknown
7133 {
7134     virtual HRESULT STDMETHODCALLTYPE SetBackgroundColor(
7135         COLORREF color) = 0;
7136 
7137     virtual HRESULT STDMETHODCALLTYPE SetFont(
7138         const LOGFONTW *plf) = 0;
7139 
7140     virtual HRESULT STDMETHODCALLTYPE SetTextColor(
7141         COLORREF color) = 0;
7142 
7143 };
7144 #ifdef __CRT_UUID_DECL
7145 __CRT_UUID_DECL(IPreviewHandlerVisuals, 0x196bf9a5, 0xb346, 0x4ef0, 0xaa,0x1e, 0x5d,0xcd,0xb7,0x67,0x68,0xb1)
7146 #endif
7147 #else
7148 typedef struct IPreviewHandlerVisualsVtbl {
7149     BEGIN_INTERFACE
7150 
7151     /*** IUnknown methods ***/
7152     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7153         IPreviewHandlerVisuals *This,
7154         REFIID riid,
7155         void **ppvObject);
7156 
7157     ULONG (STDMETHODCALLTYPE *AddRef)(
7158         IPreviewHandlerVisuals *This);
7159 
7160     ULONG (STDMETHODCALLTYPE *Release)(
7161         IPreviewHandlerVisuals *This);
7162 
7163     /*** IPreviewHandlerVisuals methods ***/
7164     HRESULT (STDMETHODCALLTYPE *SetBackgroundColor)(
7165         IPreviewHandlerVisuals *This,
7166         COLORREF color);
7167 
7168     HRESULT (STDMETHODCALLTYPE *SetFont)(
7169         IPreviewHandlerVisuals *This,
7170         const LOGFONTW *plf);
7171 
7172     HRESULT (STDMETHODCALLTYPE *SetTextColor)(
7173         IPreviewHandlerVisuals *This,
7174         COLORREF color);
7175 
7176     END_INTERFACE
7177 } IPreviewHandlerVisualsVtbl;
7178 
7179 interface IPreviewHandlerVisuals {
7180     CONST_VTBL IPreviewHandlerVisualsVtbl* lpVtbl;
7181 };
7182 
7183 #ifdef COBJMACROS
7184 #ifndef WIDL_C_INLINE_WRAPPERS
7185 /*** IUnknown methods ***/
7186 #define IPreviewHandlerVisuals_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7187 #define IPreviewHandlerVisuals_AddRef(This) (This)->lpVtbl->AddRef(This)
7188 #define IPreviewHandlerVisuals_Release(This) (This)->lpVtbl->Release(This)
7189 /*** IPreviewHandlerVisuals methods ***/
7190 #define IPreviewHandlerVisuals_SetBackgroundColor(This,color) (This)->lpVtbl->SetBackgroundColor(This,color)
7191 #define IPreviewHandlerVisuals_SetFont(This,plf) (This)->lpVtbl->SetFont(This,plf)
7192 #define IPreviewHandlerVisuals_SetTextColor(This,color) (This)->lpVtbl->SetTextColor(This,color)
7193 #else
7194 /*** IUnknown methods ***/
7195 static FORCEINLINE HRESULT IPreviewHandlerVisuals_QueryInterface(IPreviewHandlerVisuals* This,REFIID riid,void **ppvObject) {
7196     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7197 }
7198 static FORCEINLINE ULONG IPreviewHandlerVisuals_AddRef(IPreviewHandlerVisuals* This) {
7199     return This->lpVtbl->AddRef(This);
7200 }
7201 static FORCEINLINE ULONG IPreviewHandlerVisuals_Release(IPreviewHandlerVisuals* This) {
7202     return This->lpVtbl->Release(This);
7203 }
7204 /*** IPreviewHandlerVisuals methods ***/
7205 static FORCEINLINE HRESULT IPreviewHandlerVisuals_SetBackgroundColor(IPreviewHandlerVisuals* This,COLORREF color) {
7206     return This->lpVtbl->SetBackgroundColor(This,color);
7207 }
7208 static FORCEINLINE HRESULT IPreviewHandlerVisuals_SetFont(IPreviewHandlerVisuals* This,const LOGFONTW *plf) {
7209     return This->lpVtbl->SetFont(This,plf);
7210 }
7211 static FORCEINLINE HRESULT IPreviewHandlerVisuals_SetTextColor(IPreviewHandlerVisuals* This,COLORREF color) {
7212     return This->lpVtbl->SetTextColor(This,color);
7213 }
7214 #endif
7215 #endif
7216 
7217 #endif
7218 
7219 
7220 #endif  /* __IPreviewHandlerVisuals_INTERFACE_DEFINED__ */
7221 
7222 
7223 /*****************************************************************************
7224  * IVisualProperties interface
7225  */
7226 #ifndef __IVisualProperties_INTERFACE_DEFINED__
7227 #define __IVisualProperties_INTERFACE_DEFINED__
7228 
7229 typedef enum VPWATERMARKFLAGS {
7230     VPWF_DEFAULT = 0x0,
7231     VPWF_ALPHABLEND = 0x1
7232 } VPWATERMARKFLAGS;
7233 
7234 typedef enum VPCOLORFLAGS {
7235     VPCF_TEXT = 1,
7236     VPCF_BACKGROUND = 2,
7237     VPCF_SORTCOLUMN = 3,
7238     VPCF_SUBTEXT = 4,
7239     VPCF_TEXTBACKGROUND = 5
7240 } VPCOLORFLAGS;
7241 
7242 DEFINE_ENUM_FLAG_OPERATORS(VPWATERMARKFLAGS)
7243 
7244 DEFINE_GUID(IID_IVisualProperties, 0xe693cf68, 0xd967, 0x4112, 0x87,0x63, 0x99,0x17,0x2a,0xee,0x5e,0x5a);
7245 #if defined(__cplusplus) && !defined(CINTERFACE)
7246 MIDL_INTERFACE("e693cf68-d967-4112-8763-99172aee5e5a")
7247 IVisualProperties : public IUnknown
7248 {
7249     virtual HRESULT STDMETHODCALLTYPE SetWatermark(
7250         HBITMAP hbmp,
7251         VPWATERMARKFLAGS vpwf) = 0;
7252 
7253     virtual HRESULT STDMETHODCALLTYPE SetColor(
7254         VPCOLORFLAGS vpcf,
7255         COLORREF cr) = 0;
7256 
7257     virtual HRESULT STDMETHODCALLTYPE GetColor(
7258         VPCOLORFLAGS vpcf,
7259         COLORREF *pcr) = 0;
7260 
7261     virtual HRESULT STDMETHODCALLTYPE SetItemHeight(
7262         int cyItemInPixels) = 0;
7263 
7264     virtual HRESULT STDMETHODCALLTYPE GetItemHeight(
7265         int *cyItemInPixels) = 0;
7266 
7267     virtual HRESULT STDMETHODCALLTYPE SetFont(
7268         const LOGFONTW *plf,
7269         WINBOOL bRedraw) = 0;
7270 
7271     virtual HRESULT STDMETHODCALLTYPE GetFont(
7272         LOGFONTW *plf) = 0;
7273 
7274     virtual HRESULT STDMETHODCALLTYPE SetTheme(
7275         LPCWSTR pszSubAppName,
7276         LPCWSTR pszSubIdList) = 0;
7277 
7278 };
7279 #ifdef __CRT_UUID_DECL
7280 __CRT_UUID_DECL(IVisualProperties, 0xe693cf68, 0xd967, 0x4112, 0x87,0x63, 0x99,0x17,0x2a,0xee,0x5e,0x5a)
7281 #endif
7282 #else
7283 typedef struct IVisualPropertiesVtbl {
7284     BEGIN_INTERFACE
7285 
7286     /*** IUnknown methods ***/
7287     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7288         IVisualProperties *This,
7289         REFIID riid,
7290         void **ppvObject);
7291 
7292     ULONG (STDMETHODCALLTYPE *AddRef)(
7293         IVisualProperties *This);
7294 
7295     ULONG (STDMETHODCALLTYPE *Release)(
7296         IVisualProperties *This);
7297 
7298     /*** IVisualProperties methods ***/
7299     HRESULT (STDMETHODCALLTYPE *SetWatermark)(
7300         IVisualProperties *This,
7301         HBITMAP hbmp,
7302         VPWATERMARKFLAGS vpwf);
7303 
7304     HRESULT (STDMETHODCALLTYPE *SetColor)(
7305         IVisualProperties *This,
7306         VPCOLORFLAGS vpcf,
7307         COLORREF cr);
7308 
7309     HRESULT (STDMETHODCALLTYPE *GetColor)(
7310         IVisualProperties *This,
7311         VPCOLORFLAGS vpcf,
7312         COLORREF *pcr);
7313 
7314     HRESULT (STDMETHODCALLTYPE *SetItemHeight)(
7315         IVisualProperties *This,
7316         int cyItemInPixels);
7317 
7318     HRESULT (STDMETHODCALLTYPE *GetItemHeight)(
7319         IVisualProperties *This,
7320         int *cyItemInPixels);
7321 
7322     HRESULT (STDMETHODCALLTYPE *SetFont)(
7323         IVisualProperties *This,
7324         const LOGFONTW *plf,
7325         WINBOOL bRedraw);
7326 
7327     HRESULT (STDMETHODCALLTYPE *GetFont)(
7328         IVisualProperties *This,
7329         LOGFONTW *plf);
7330 
7331     HRESULT (STDMETHODCALLTYPE *SetTheme)(
7332         IVisualProperties *This,
7333         LPCWSTR pszSubAppName,
7334         LPCWSTR pszSubIdList);
7335 
7336     END_INTERFACE
7337 } IVisualPropertiesVtbl;
7338 
7339 interface IVisualProperties {
7340     CONST_VTBL IVisualPropertiesVtbl* lpVtbl;
7341 };
7342 
7343 #ifdef COBJMACROS
7344 #ifndef WIDL_C_INLINE_WRAPPERS
7345 /*** IUnknown methods ***/
7346 #define IVisualProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7347 #define IVisualProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
7348 #define IVisualProperties_Release(This) (This)->lpVtbl->Release(This)
7349 /*** IVisualProperties methods ***/
7350 #define IVisualProperties_SetWatermark(This,hbmp,vpwf) (This)->lpVtbl->SetWatermark(This,hbmp,vpwf)
7351 #define IVisualProperties_SetColor(This,vpcf,cr) (This)->lpVtbl->SetColor(This,vpcf,cr)
7352 #define IVisualProperties_GetColor(This,vpcf,pcr) (This)->lpVtbl->GetColor(This,vpcf,pcr)
7353 #define IVisualProperties_SetItemHeight(This,cyItemInPixels) (This)->lpVtbl->SetItemHeight(This,cyItemInPixels)
7354 #define IVisualProperties_GetItemHeight(This,cyItemInPixels) (This)->lpVtbl->GetItemHeight(This,cyItemInPixels)
7355 #define IVisualProperties_SetFont(This,plf,bRedraw) (This)->lpVtbl->SetFont(This,plf,bRedraw)
7356 #define IVisualProperties_GetFont(This,plf) (This)->lpVtbl->GetFont(This,plf)
7357 #define IVisualProperties_SetTheme(This,pszSubAppName,pszSubIdList) (This)->lpVtbl->SetTheme(This,pszSubAppName,pszSubIdList)
7358 #else
7359 /*** IUnknown methods ***/
7360 static FORCEINLINE HRESULT IVisualProperties_QueryInterface(IVisualProperties* This,REFIID riid,void **ppvObject) {
7361     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7362 }
7363 static FORCEINLINE ULONG IVisualProperties_AddRef(IVisualProperties* This) {
7364     return This->lpVtbl->AddRef(This);
7365 }
7366 static FORCEINLINE ULONG IVisualProperties_Release(IVisualProperties* This) {
7367     return This->lpVtbl->Release(This);
7368 }
7369 /*** IVisualProperties methods ***/
7370 static FORCEINLINE HRESULT IVisualProperties_SetWatermark(IVisualProperties* This,HBITMAP hbmp,VPWATERMARKFLAGS vpwf) {
7371     return This->lpVtbl->SetWatermark(This,hbmp,vpwf);
7372 }
7373 static FORCEINLINE HRESULT IVisualProperties_SetColor(IVisualProperties* This,VPCOLORFLAGS vpcf,COLORREF cr) {
7374     return This->lpVtbl->SetColor(This,vpcf,cr);
7375 }
7376 static FORCEINLINE HRESULT IVisualProperties_GetColor(IVisualProperties* This,VPCOLORFLAGS vpcf,COLORREF *pcr) {
7377     return This->lpVtbl->GetColor(This,vpcf,pcr);
7378 }
7379 static FORCEINLINE HRESULT IVisualProperties_SetItemHeight(IVisualProperties* This,int cyItemInPixels) {
7380     return This->lpVtbl->SetItemHeight(This,cyItemInPixels);
7381 }
7382 static FORCEINLINE HRESULT IVisualProperties_GetItemHeight(IVisualProperties* This,int *cyItemInPixels) {
7383     return This->lpVtbl->GetItemHeight(This,cyItemInPixels);
7384 }
7385 static FORCEINLINE HRESULT IVisualProperties_SetFont(IVisualProperties* This,const LOGFONTW *plf,WINBOOL bRedraw) {
7386     return This->lpVtbl->SetFont(This,plf,bRedraw);
7387 }
7388 static FORCEINLINE HRESULT IVisualProperties_GetFont(IVisualProperties* This,LOGFONTW *plf) {
7389     return This->lpVtbl->GetFont(This,plf);
7390 }
7391 static FORCEINLINE HRESULT IVisualProperties_SetTheme(IVisualProperties* This,LPCWSTR pszSubAppName,LPCWSTR pszSubIdList) {
7392     return This->lpVtbl->SetTheme(This,pszSubAppName,pszSubIdList);
7393 }
7394 #endif
7395 #endif
7396 
7397 #endif
7398 
7399 
7400 #endif  /* __IVisualProperties_INTERFACE_DEFINED__ */
7401 
7402 #endif
7403 
7404 #define CDBOSC_SETFOCUS 0x00000000
7405 #define CDBOSC_KILLFOCUS 0x00000001
7406 #define CDBOSC_SELCHANGE 0x00000002
7407 #define CDBOSC_RENAME 0x00000003
7408 #define CDBOSC_STATECHANGE 0x00000004
7409 
7410 /*****************************************************************************
7411  * ICommDlgBrowser interface
7412  */
7413 #ifndef __ICommDlgBrowser_INTERFACE_DEFINED__
7414 #define __ICommDlgBrowser_INTERFACE_DEFINED__
7415 
7416 DEFINE_GUID(IID_ICommDlgBrowser, 0x000214f1, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
7417 #if defined(__cplusplus) && !defined(CINTERFACE)
7418 MIDL_INTERFACE("000214f1-0000-0000-c000-000000000046")
7419 ICommDlgBrowser : public IUnknown
7420 {
7421     virtual HRESULT STDMETHODCALLTYPE OnDefaultCommand(
7422         IShellView *ppshv) = 0;
7423 
7424     virtual HRESULT STDMETHODCALLTYPE OnStateChange(
7425         IShellView *ppshv,
7426         ULONG uChange) = 0;
7427 
7428     virtual HRESULT STDMETHODCALLTYPE IncludeObject(
7429         IShellView *ppshv,
7430         PCUITEMID_CHILD pidl) = 0;
7431 
7432 };
7433 #ifdef __CRT_UUID_DECL
7434 __CRT_UUID_DECL(ICommDlgBrowser, 0x000214f1, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
7435 #endif
7436 #else
7437 typedef struct ICommDlgBrowserVtbl {
7438     BEGIN_INTERFACE
7439 
7440     /*** IUnknown methods ***/
7441     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7442         ICommDlgBrowser *This,
7443         REFIID riid,
7444         void **ppvObject);
7445 
7446     ULONG (STDMETHODCALLTYPE *AddRef)(
7447         ICommDlgBrowser *This);
7448 
7449     ULONG (STDMETHODCALLTYPE *Release)(
7450         ICommDlgBrowser *This);
7451 
7452     /*** ICommDlgBrowser methods ***/
7453     HRESULT (STDMETHODCALLTYPE *OnDefaultCommand)(
7454         ICommDlgBrowser *This,
7455         IShellView *ppshv);
7456 
7457     HRESULT (STDMETHODCALLTYPE *OnStateChange)(
7458         ICommDlgBrowser *This,
7459         IShellView *ppshv,
7460         ULONG uChange);
7461 
7462     HRESULT (STDMETHODCALLTYPE *IncludeObject)(
7463         ICommDlgBrowser *This,
7464         IShellView *ppshv,
7465         PCUITEMID_CHILD pidl);
7466 
7467     END_INTERFACE
7468 } ICommDlgBrowserVtbl;
7469 
7470 interface ICommDlgBrowser {
7471     CONST_VTBL ICommDlgBrowserVtbl* lpVtbl;
7472 };
7473 
7474 #ifdef COBJMACROS
7475 #ifndef WIDL_C_INLINE_WRAPPERS
7476 /*** IUnknown methods ***/
7477 #define ICommDlgBrowser_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7478 #define ICommDlgBrowser_AddRef(This) (This)->lpVtbl->AddRef(This)
7479 #define ICommDlgBrowser_Release(This) (This)->lpVtbl->Release(This)
7480 /*** ICommDlgBrowser methods ***/
7481 #define ICommDlgBrowser_OnDefaultCommand(This,ppshv) (This)->lpVtbl->OnDefaultCommand(This,ppshv)
7482 #define ICommDlgBrowser_OnStateChange(This,ppshv,uChange) (This)->lpVtbl->OnStateChange(This,ppshv,uChange)
7483 #define ICommDlgBrowser_IncludeObject(This,ppshv,pidl) (This)->lpVtbl->IncludeObject(This,ppshv,pidl)
7484 #else
7485 /*** IUnknown methods ***/
7486 static FORCEINLINE HRESULT ICommDlgBrowser_QueryInterface(ICommDlgBrowser* This,REFIID riid,void **ppvObject) {
7487     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7488 }
7489 static FORCEINLINE ULONG ICommDlgBrowser_AddRef(ICommDlgBrowser* This) {
7490     return This->lpVtbl->AddRef(This);
7491 }
7492 static FORCEINLINE ULONG ICommDlgBrowser_Release(ICommDlgBrowser* This) {
7493     return This->lpVtbl->Release(This);
7494 }
7495 /*** ICommDlgBrowser methods ***/
7496 static FORCEINLINE HRESULT ICommDlgBrowser_OnDefaultCommand(ICommDlgBrowser* This,IShellView *ppshv) {
7497     return This->lpVtbl->OnDefaultCommand(This,ppshv);
7498 }
7499 static FORCEINLINE HRESULT ICommDlgBrowser_OnStateChange(ICommDlgBrowser* This,IShellView *ppshv,ULONG uChange) {
7500     return This->lpVtbl->OnStateChange(This,ppshv,uChange);
7501 }
7502 static FORCEINLINE HRESULT ICommDlgBrowser_IncludeObject(ICommDlgBrowser* This,IShellView *ppshv,PCUITEMID_CHILD pidl) {
7503     return This->lpVtbl->IncludeObject(This,ppshv,pidl);
7504 }
7505 #endif
7506 #endif
7507 
7508 #endif
7509 
7510 
7511 #endif  /* __ICommDlgBrowser_INTERFACE_DEFINED__ */
7512 
7513 typedef ICommDlgBrowser *LPCOMMDLGBROWSER;
7514 
7515 #define SID_SExplorerBrowserFrame IID_ICommDlgBrowser
7516 
7517 #define CDB2N_CONTEXTMENU_DONE 0x00000001
7518 #define CDB2N_CONTEXTMENU_START 0x00000002
7519 
7520 #define CDB2GVF_SHOWALLFILES 0x1
7521 #if NTDDI_VERSION >= NTDDI_VISTA
7522 #define CDB2GVF_ISFILESAVE 0x2
7523 #define CDB2GVF_ALLOWPREVIEWPANE 0x4
7524 #define CDB2GVF_NOSELECTVERB 0x8
7525 #define CDB2GVF_NOINCLUDEITEM 0x10
7526 #define CDB2GVF_ISFOLDERPICKER 0x20
7527 #define CDB2GVF_ADDSHIELD 0x40
7528 #endif
7529 
7530 /*****************************************************************************
7531  * ICommDlgBrowser2 interface
7532  */
7533 #ifndef __ICommDlgBrowser2_INTERFACE_DEFINED__
7534 #define __ICommDlgBrowser2_INTERFACE_DEFINED__
7535 
7536 DEFINE_GUID(IID_ICommDlgBrowser2, 0x10339516, 0x2894, 0x11d2, 0x90,0x39, 0x00,0xc0,0x4f,0x8e,0xeb,0x3e);
7537 #if defined(__cplusplus) && !defined(CINTERFACE)
7538 MIDL_INTERFACE("10339516-2894-11d2-9039-00c04f8eeb3e")
7539 ICommDlgBrowser2 : public ICommDlgBrowser
7540 {
7541     virtual HRESULT STDMETHODCALLTYPE Notify(
7542         IShellView *ppshv,
7543         DWORD dwNotifyType) = 0;
7544 
7545     virtual HRESULT STDMETHODCALLTYPE GetDefaultMenuText(
7546         IShellView *ppshv,
7547         LPWSTR pszText,
7548         int cchMax) = 0;
7549 
7550     virtual HRESULT STDMETHODCALLTYPE GetViewFlags(
7551         DWORD *pdwFlags) = 0;
7552 
7553 };
7554 #ifdef __CRT_UUID_DECL
7555 __CRT_UUID_DECL(ICommDlgBrowser2, 0x10339516, 0x2894, 0x11d2, 0x90,0x39, 0x00,0xc0,0x4f,0x8e,0xeb,0x3e)
7556 #endif
7557 #else
7558 typedef struct ICommDlgBrowser2Vtbl {
7559     BEGIN_INTERFACE
7560 
7561     /*** IUnknown methods ***/
7562     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7563         ICommDlgBrowser2 *This,
7564         REFIID riid,
7565         void **ppvObject);
7566 
7567     ULONG (STDMETHODCALLTYPE *AddRef)(
7568         ICommDlgBrowser2 *This);
7569 
7570     ULONG (STDMETHODCALLTYPE *Release)(
7571         ICommDlgBrowser2 *This);
7572 
7573     /*** ICommDlgBrowser methods ***/
7574     HRESULT (STDMETHODCALLTYPE *OnDefaultCommand)(
7575         ICommDlgBrowser2 *This,
7576         IShellView *ppshv);
7577 
7578     HRESULT (STDMETHODCALLTYPE *OnStateChange)(
7579         ICommDlgBrowser2 *This,
7580         IShellView *ppshv,
7581         ULONG uChange);
7582 
7583     HRESULT (STDMETHODCALLTYPE *IncludeObject)(
7584         ICommDlgBrowser2 *This,
7585         IShellView *ppshv,
7586         PCUITEMID_CHILD pidl);
7587 
7588     /*** ICommDlgBrowser2 methods ***/
7589     HRESULT (STDMETHODCALLTYPE *Notify)(
7590         ICommDlgBrowser2 *This,
7591         IShellView *ppshv,
7592         DWORD dwNotifyType);
7593 
7594     HRESULT (STDMETHODCALLTYPE *GetDefaultMenuText)(
7595         ICommDlgBrowser2 *This,
7596         IShellView *ppshv,
7597         LPWSTR pszText,
7598         int cchMax);
7599 
7600     HRESULT (STDMETHODCALLTYPE *GetViewFlags)(
7601         ICommDlgBrowser2 *This,
7602         DWORD *pdwFlags);
7603 
7604     END_INTERFACE
7605 } ICommDlgBrowser2Vtbl;
7606 
7607 interface ICommDlgBrowser2 {
7608     CONST_VTBL ICommDlgBrowser2Vtbl* lpVtbl;
7609 };
7610 
7611 #ifdef COBJMACROS
7612 #ifndef WIDL_C_INLINE_WRAPPERS
7613 /*** IUnknown methods ***/
7614 #define ICommDlgBrowser2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7615 #define ICommDlgBrowser2_AddRef(This) (This)->lpVtbl->AddRef(This)
7616 #define ICommDlgBrowser2_Release(This) (This)->lpVtbl->Release(This)
7617 /*** ICommDlgBrowser methods ***/
7618 #define ICommDlgBrowser2_OnDefaultCommand(This,ppshv) (This)->lpVtbl->OnDefaultCommand(This,ppshv)
7619 #define ICommDlgBrowser2_OnStateChange(This,ppshv,uChange) (This)->lpVtbl->OnStateChange(This,ppshv,uChange)
7620 #define ICommDlgBrowser2_IncludeObject(This,ppshv,pidl) (This)->lpVtbl->IncludeObject(This,ppshv,pidl)
7621 /*** ICommDlgBrowser2 methods ***/
7622 #define ICommDlgBrowser2_Notify(This,ppshv,dwNotifyType) (This)->lpVtbl->Notify(This,ppshv,dwNotifyType)
7623 #define ICommDlgBrowser2_GetDefaultMenuText(This,ppshv,pszText,cchMax) (This)->lpVtbl->GetDefaultMenuText(This,ppshv,pszText,cchMax)
7624 #define ICommDlgBrowser2_GetViewFlags(This,pdwFlags) (This)->lpVtbl->GetViewFlags(This,pdwFlags)
7625 #else
7626 /*** IUnknown methods ***/
7627 static FORCEINLINE HRESULT ICommDlgBrowser2_QueryInterface(ICommDlgBrowser2* This,REFIID riid,void **ppvObject) {
7628     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7629 }
7630 static FORCEINLINE ULONG ICommDlgBrowser2_AddRef(ICommDlgBrowser2* This) {
7631     return This->lpVtbl->AddRef(This);
7632 }
7633 static FORCEINLINE ULONG ICommDlgBrowser2_Release(ICommDlgBrowser2* This) {
7634     return This->lpVtbl->Release(This);
7635 }
7636 /*** ICommDlgBrowser methods ***/
7637 static FORCEINLINE HRESULT ICommDlgBrowser2_OnDefaultCommand(ICommDlgBrowser2* This,IShellView *ppshv) {
7638     return This->lpVtbl->OnDefaultCommand(This,ppshv);
7639 }
7640 static FORCEINLINE HRESULT ICommDlgBrowser2_OnStateChange(ICommDlgBrowser2* This,IShellView *ppshv,ULONG uChange) {
7641     return This->lpVtbl->OnStateChange(This,ppshv,uChange);
7642 }
7643 static FORCEINLINE HRESULT ICommDlgBrowser2_IncludeObject(ICommDlgBrowser2* This,IShellView *ppshv,PCUITEMID_CHILD pidl) {
7644     return This->lpVtbl->IncludeObject(This,ppshv,pidl);
7645 }
7646 /*** ICommDlgBrowser2 methods ***/
7647 static FORCEINLINE HRESULT ICommDlgBrowser2_Notify(ICommDlgBrowser2* This,IShellView *ppshv,DWORD dwNotifyType) {
7648     return This->lpVtbl->Notify(This,ppshv,dwNotifyType);
7649 }
7650 static FORCEINLINE HRESULT ICommDlgBrowser2_GetDefaultMenuText(ICommDlgBrowser2* This,IShellView *ppshv,LPWSTR pszText,int cchMax) {
7651     return This->lpVtbl->GetDefaultMenuText(This,ppshv,pszText,cchMax);
7652 }
7653 static FORCEINLINE HRESULT ICommDlgBrowser2_GetViewFlags(ICommDlgBrowser2* This,DWORD *pdwFlags) {
7654     return This->lpVtbl->GetViewFlags(This,pdwFlags);
7655 }
7656 #endif
7657 #endif
7658 
7659 #endif
7660 
7661 
7662 #endif  /* __ICommDlgBrowser2_INTERFACE_DEFINED__ */
7663 
7664 typedef ICommDlgBrowser2 *LPCOMMDLGBROWSER2;
7665 
7666 #if _WIN32_IE >= _WIN32_IE_IE70
7667 /*****************************************************************************
7668  * ICommDlgBrowser3 interface
7669  */
7670 #ifndef __ICommDlgBrowser3_INTERFACE_DEFINED__
7671 #define __ICommDlgBrowser3_INTERFACE_DEFINED__
7672 
7673 DEFINE_GUID(IID_ICommDlgBrowser3, 0xc8ad25a1, 0x3294, 0x41ee, 0x81,0x65, 0x71,0x17,0x4b,0xd0,0x1c,0x57);
7674 #if defined(__cplusplus) && !defined(CINTERFACE)
7675 MIDL_INTERFACE("c8ad25a1-3294-41ee-8165-71174bd01c57")
7676 ICommDlgBrowser3 : public ICommDlgBrowser2
7677 {
7678     virtual HRESULT STDMETHODCALLTYPE OnColumnClicked(
7679         IShellView *ppshv,
7680         int iColumn) = 0;
7681 
7682     virtual HRESULT STDMETHODCALLTYPE GetCurrentFilter(
7683         LPWSTR pszFileSpec,
7684         int cchFileSpec) = 0;
7685 
7686     virtual HRESULT STDMETHODCALLTYPE OnPreViewCreated(
7687         IShellView *ppshv) = 0;
7688 
7689 };
7690 #ifdef __CRT_UUID_DECL
7691 __CRT_UUID_DECL(ICommDlgBrowser3, 0xc8ad25a1, 0x3294, 0x41ee, 0x81,0x65, 0x71,0x17,0x4b,0xd0,0x1c,0x57)
7692 #endif
7693 #else
7694 typedef struct ICommDlgBrowser3Vtbl {
7695     BEGIN_INTERFACE
7696 
7697     /*** IUnknown methods ***/
7698     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7699         ICommDlgBrowser3 *This,
7700         REFIID riid,
7701         void **ppvObject);
7702 
7703     ULONG (STDMETHODCALLTYPE *AddRef)(
7704         ICommDlgBrowser3 *This);
7705 
7706     ULONG (STDMETHODCALLTYPE *Release)(
7707         ICommDlgBrowser3 *This);
7708 
7709     /*** ICommDlgBrowser methods ***/
7710     HRESULT (STDMETHODCALLTYPE *OnDefaultCommand)(
7711         ICommDlgBrowser3 *This,
7712         IShellView *ppshv);
7713 
7714     HRESULT (STDMETHODCALLTYPE *OnStateChange)(
7715         ICommDlgBrowser3 *This,
7716         IShellView *ppshv,
7717         ULONG uChange);
7718 
7719     HRESULT (STDMETHODCALLTYPE *IncludeObject)(
7720         ICommDlgBrowser3 *This,
7721         IShellView *ppshv,
7722         PCUITEMID_CHILD pidl);
7723 
7724     /*** ICommDlgBrowser2 methods ***/
7725     HRESULT (STDMETHODCALLTYPE *Notify)(
7726         ICommDlgBrowser3 *This,
7727         IShellView *ppshv,
7728         DWORD dwNotifyType);
7729 
7730     HRESULT (STDMETHODCALLTYPE *GetDefaultMenuText)(
7731         ICommDlgBrowser3 *This,
7732         IShellView *ppshv,
7733         LPWSTR pszText,
7734         int cchMax);
7735 
7736     HRESULT (STDMETHODCALLTYPE *GetViewFlags)(
7737         ICommDlgBrowser3 *This,
7738         DWORD *pdwFlags);
7739 
7740     /*** ICommDlgBrowser3 methods ***/
7741     HRESULT (STDMETHODCALLTYPE *OnColumnClicked)(
7742         ICommDlgBrowser3 *This,
7743         IShellView *ppshv,
7744         int iColumn);
7745 
7746     HRESULT (STDMETHODCALLTYPE *GetCurrentFilter)(
7747         ICommDlgBrowser3 *This,
7748         LPWSTR pszFileSpec,
7749         int cchFileSpec);
7750 
7751     HRESULT (STDMETHODCALLTYPE *OnPreViewCreated)(
7752         ICommDlgBrowser3 *This,
7753         IShellView *ppshv);
7754 
7755     END_INTERFACE
7756 } ICommDlgBrowser3Vtbl;
7757 
7758 interface ICommDlgBrowser3 {
7759     CONST_VTBL ICommDlgBrowser3Vtbl* lpVtbl;
7760 };
7761 
7762 #ifdef COBJMACROS
7763 #ifndef WIDL_C_INLINE_WRAPPERS
7764 /*** IUnknown methods ***/
7765 #define ICommDlgBrowser3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7766 #define ICommDlgBrowser3_AddRef(This) (This)->lpVtbl->AddRef(This)
7767 #define ICommDlgBrowser3_Release(This) (This)->lpVtbl->Release(This)
7768 /*** ICommDlgBrowser methods ***/
7769 #define ICommDlgBrowser3_OnDefaultCommand(This,ppshv) (This)->lpVtbl->OnDefaultCommand(This,ppshv)
7770 #define ICommDlgBrowser3_OnStateChange(This,ppshv,uChange) (This)->lpVtbl->OnStateChange(This,ppshv,uChange)
7771 #define ICommDlgBrowser3_IncludeObject(This,ppshv,pidl) (This)->lpVtbl->IncludeObject(This,ppshv,pidl)
7772 /*** ICommDlgBrowser2 methods ***/
7773 #define ICommDlgBrowser3_Notify(This,ppshv,dwNotifyType) (This)->lpVtbl->Notify(This,ppshv,dwNotifyType)
7774 #define ICommDlgBrowser3_GetDefaultMenuText(This,ppshv,pszText,cchMax) (This)->lpVtbl->GetDefaultMenuText(This,ppshv,pszText,cchMax)
7775 #define ICommDlgBrowser3_GetViewFlags(This,pdwFlags) (This)->lpVtbl->GetViewFlags(This,pdwFlags)
7776 /*** ICommDlgBrowser3 methods ***/
7777 #define ICommDlgBrowser3_OnColumnClicked(This,ppshv,iColumn) (This)->lpVtbl->OnColumnClicked(This,ppshv,iColumn)
7778 #define ICommDlgBrowser3_GetCurrentFilter(This,pszFileSpec,cchFileSpec) (This)->lpVtbl->GetCurrentFilter(This,pszFileSpec,cchFileSpec)
7779 #define ICommDlgBrowser3_OnPreViewCreated(This,ppshv) (This)->lpVtbl->OnPreViewCreated(This,ppshv)
7780 #else
7781 /*** IUnknown methods ***/
7782 static FORCEINLINE HRESULT ICommDlgBrowser3_QueryInterface(ICommDlgBrowser3* This,REFIID riid,void **ppvObject) {
7783     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7784 }
7785 static FORCEINLINE ULONG ICommDlgBrowser3_AddRef(ICommDlgBrowser3* This) {
7786     return This->lpVtbl->AddRef(This);
7787 }
7788 static FORCEINLINE ULONG ICommDlgBrowser3_Release(ICommDlgBrowser3* This) {
7789     return This->lpVtbl->Release(This);
7790 }
7791 /*** ICommDlgBrowser methods ***/
7792 static FORCEINLINE HRESULT ICommDlgBrowser3_OnDefaultCommand(ICommDlgBrowser3* This,IShellView *ppshv) {
7793     return This->lpVtbl->OnDefaultCommand(This,ppshv);
7794 }
7795 static FORCEINLINE HRESULT ICommDlgBrowser3_OnStateChange(ICommDlgBrowser3* This,IShellView *ppshv,ULONG uChange) {
7796     return This->lpVtbl->OnStateChange(This,ppshv,uChange);
7797 }
7798 static FORCEINLINE HRESULT ICommDlgBrowser3_IncludeObject(ICommDlgBrowser3* This,IShellView *ppshv,PCUITEMID_CHILD pidl) {
7799     return This->lpVtbl->IncludeObject(This,ppshv,pidl);
7800 }
7801 /*** ICommDlgBrowser2 methods ***/
7802 static FORCEINLINE HRESULT ICommDlgBrowser3_Notify(ICommDlgBrowser3* This,IShellView *ppshv,DWORD dwNotifyType) {
7803     return This->lpVtbl->Notify(This,ppshv,dwNotifyType);
7804 }
7805 static FORCEINLINE HRESULT ICommDlgBrowser3_GetDefaultMenuText(ICommDlgBrowser3* This,IShellView *ppshv,LPWSTR pszText,int cchMax) {
7806     return This->lpVtbl->GetDefaultMenuText(This,ppshv,pszText,cchMax);
7807 }
7808 static FORCEINLINE HRESULT ICommDlgBrowser3_GetViewFlags(ICommDlgBrowser3* This,DWORD *pdwFlags) {
7809     return This->lpVtbl->GetViewFlags(This,pdwFlags);
7810 }
7811 /*** ICommDlgBrowser3 methods ***/
7812 static FORCEINLINE HRESULT ICommDlgBrowser3_OnColumnClicked(ICommDlgBrowser3* This,IShellView *ppshv,int iColumn) {
7813     return This->lpVtbl->OnColumnClicked(This,ppshv,iColumn);
7814 }
7815 static FORCEINLINE HRESULT ICommDlgBrowser3_GetCurrentFilter(ICommDlgBrowser3* This,LPWSTR pszFileSpec,int cchFileSpec) {
7816     return This->lpVtbl->GetCurrentFilter(This,pszFileSpec,cchFileSpec);
7817 }
7818 static FORCEINLINE HRESULT ICommDlgBrowser3_OnPreViewCreated(ICommDlgBrowser3* This,IShellView *ppshv) {
7819     return This->lpVtbl->OnPreViewCreated(This,ppshv);
7820 }
7821 #endif
7822 #endif
7823 
7824 #endif
7825 
7826 
7827 #endif  /* __ICommDlgBrowser3_INTERFACE_DEFINED__ */
7828 
7829 
7830 typedef enum CM_MASK {
7831     CM_MASK_WIDTH = 0x1,
7832     CM_MASK_DEFAULTWIDTH = 0x2,
7833     CM_MASK_IDEALWIDTH = 0x4,
7834     CM_MASK_NAME = 0x8,
7835     CM_MASK_STATE = 0x10
7836 } CM_MASK;
7837 
7838 DEFINE_ENUM_FLAG_OPERATORS(CM_MASK)
7839 
7840 typedef enum CM_STATE {
7841     CM_STATE_NONE = 0x0,
7842     CM_STATE_VISIBLE = 0x1,
7843     CM_STATE_FIXEDWIDTH = 0x2,
7844     CM_STATE_NOSORTBYFOLDERNESS = 0x4,
7845     CM_STATE_ALWAYSVISIBLE = 0x8
7846 } CM_STATE;
7847 
7848 DEFINE_ENUM_FLAG_OPERATORS(CM_STATE)
7849 
7850 typedef enum CM_ENUM_FLAGS {
7851     CM_ENUM_ALL = 0x1,
7852     CM_ENUM_VISIBLE = 0x2
7853 } CM_ENUM_FLAGS;
7854 
7855 DEFINE_ENUM_FLAG_OPERATORS(CM_ENUM_FLAGS)
7856 
7857 typedef enum CM_SET_WIDTH_VALUE {
7858     CM_WIDTH_USEDEFAULT = -1,
7859     CM_WIDTH_AUTOSIZE = -2
7860 } CM_SET_WIDTH_VALUE;
7861 
7862 typedef struct CM_COLUMNINFO {
7863     DWORD cbSize;
7864     DWORD dwMask;
7865     DWORD dwState;
7866     UINT uWidth;
7867     UINT uDefaultWidth;
7868     UINT uIdealWidth;
7869     WCHAR wszName[80];
7870 } CM_COLUMNINFO;
7871 
7872 /*****************************************************************************
7873  * IColumnManager interface
7874  */
7875 #ifndef __IColumnManager_INTERFACE_DEFINED__
7876 #define __IColumnManager_INTERFACE_DEFINED__
7877 
7878 DEFINE_GUID(IID_IColumnManager, 0xd8ec27bb, 0x3f3b, 0x4042, 0xb1,0x0a, 0x4a,0xcf,0xd9,0x24,0xd4,0x53);
7879 #if defined(__cplusplus) && !defined(CINTERFACE)
7880 MIDL_INTERFACE("d8ec27bb-3f3b-4042-b10a-4acfd924d453")
7881 IColumnManager : public IUnknown
7882 {
7883     virtual HRESULT STDMETHODCALLTYPE SetColumnInfo(
7884         REFPROPERTYKEY propkey,
7885         const CM_COLUMNINFO *pcmci) = 0;
7886 
7887     virtual HRESULT STDMETHODCALLTYPE GetColumnInfo(
7888         REFPROPERTYKEY propkey,
7889         CM_COLUMNINFO *pcmci) = 0;
7890 
7891     virtual HRESULT STDMETHODCALLTYPE GetColumnCount(
7892         CM_ENUM_FLAGS dwFlags,
7893         UINT *puCount) = 0;
7894 
7895     virtual HRESULT STDMETHODCALLTYPE GetColumns(
7896         CM_ENUM_FLAGS dwFlags,
7897         PROPERTYKEY *rgkeyOrder,
7898         UINT cColumns) = 0;
7899 
7900     virtual HRESULT STDMETHODCALLTYPE SetColumns(
7901         const PROPERTYKEY *rgkeyOrder,
7902         UINT cVisible) = 0;
7903 
7904 };
7905 #ifdef __CRT_UUID_DECL
7906 __CRT_UUID_DECL(IColumnManager, 0xd8ec27bb, 0x3f3b, 0x4042, 0xb1,0x0a, 0x4a,0xcf,0xd9,0x24,0xd4,0x53)
7907 #endif
7908 #else
7909 typedef struct IColumnManagerVtbl {
7910     BEGIN_INTERFACE
7911 
7912     /*** IUnknown methods ***/
7913     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7914         IColumnManager *This,
7915         REFIID riid,
7916         void **ppvObject);
7917 
7918     ULONG (STDMETHODCALLTYPE *AddRef)(
7919         IColumnManager *This);
7920 
7921     ULONG (STDMETHODCALLTYPE *Release)(
7922         IColumnManager *This);
7923 
7924     /*** IColumnManager methods ***/
7925     HRESULT (STDMETHODCALLTYPE *SetColumnInfo)(
7926         IColumnManager *This,
7927         REFPROPERTYKEY propkey,
7928         const CM_COLUMNINFO *pcmci);
7929 
7930     HRESULT (STDMETHODCALLTYPE *GetColumnInfo)(
7931         IColumnManager *This,
7932         REFPROPERTYKEY propkey,
7933         CM_COLUMNINFO *pcmci);
7934 
7935     HRESULT (STDMETHODCALLTYPE *GetColumnCount)(
7936         IColumnManager *This,
7937         CM_ENUM_FLAGS dwFlags,
7938         UINT *puCount);
7939 
7940     HRESULT (STDMETHODCALLTYPE *GetColumns)(
7941         IColumnManager *This,
7942         CM_ENUM_FLAGS dwFlags,
7943         PROPERTYKEY *rgkeyOrder,
7944         UINT cColumns);
7945 
7946     HRESULT (STDMETHODCALLTYPE *SetColumns)(
7947         IColumnManager *This,
7948         const PROPERTYKEY *rgkeyOrder,
7949         UINT cVisible);
7950 
7951     END_INTERFACE
7952 } IColumnManagerVtbl;
7953 
7954 interface IColumnManager {
7955     CONST_VTBL IColumnManagerVtbl* lpVtbl;
7956 };
7957 
7958 #ifdef COBJMACROS
7959 #ifndef WIDL_C_INLINE_WRAPPERS
7960 /*** IUnknown methods ***/
7961 #define IColumnManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7962 #define IColumnManager_AddRef(This) (This)->lpVtbl->AddRef(This)
7963 #define IColumnManager_Release(This) (This)->lpVtbl->Release(This)
7964 /*** IColumnManager methods ***/
7965 #define IColumnManager_SetColumnInfo(This,propkey,pcmci) (This)->lpVtbl->SetColumnInfo(This,propkey,pcmci)
7966 #define IColumnManager_GetColumnInfo(This,propkey,pcmci) (This)->lpVtbl->GetColumnInfo(This,propkey,pcmci)
7967 #define IColumnManager_GetColumnCount(This,dwFlags,puCount) (This)->lpVtbl->GetColumnCount(This,dwFlags,puCount)
7968 #define IColumnManager_GetColumns(This,dwFlags,rgkeyOrder,cColumns) (This)->lpVtbl->GetColumns(This,dwFlags,rgkeyOrder,cColumns)
7969 #define IColumnManager_SetColumns(This,rgkeyOrder,cVisible) (This)->lpVtbl->SetColumns(This,rgkeyOrder,cVisible)
7970 #else
7971 /*** IUnknown methods ***/
7972 static FORCEINLINE HRESULT IColumnManager_QueryInterface(IColumnManager* This,REFIID riid,void **ppvObject) {
7973     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7974 }
7975 static FORCEINLINE ULONG IColumnManager_AddRef(IColumnManager* This) {
7976     return This->lpVtbl->AddRef(This);
7977 }
7978 static FORCEINLINE ULONG IColumnManager_Release(IColumnManager* This) {
7979     return This->lpVtbl->Release(This);
7980 }
7981 /*** IColumnManager methods ***/
7982 static FORCEINLINE HRESULT IColumnManager_SetColumnInfo(IColumnManager* This,REFPROPERTYKEY propkey,const CM_COLUMNINFO *pcmci) {
7983     return This->lpVtbl->SetColumnInfo(This,propkey,pcmci);
7984 }
7985 static FORCEINLINE HRESULT IColumnManager_GetColumnInfo(IColumnManager* This,REFPROPERTYKEY propkey,CM_COLUMNINFO *pcmci) {
7986     return This->lpVtbl->GetColumnInfo(This,propkey,pcmci);
7987 }
7988 static FORCEINLINE HRESULT IColumnManager_GetColumnCount(IColumnManager* This,CM_ENUM_FLAGS dwFlags,UINT *puCount) {
7989     return This->lpVtbl->GetColumnCount(This,dwFlags,puCount);
7990 }
7991 static FORCEINLINE HRESULT IColumnManager_GetColumns(IColumnManager* This,CM_ENUM_FLAGS dwFlags,PROPERTYKEY *rgkeyOrder,UINT cColumns) {
7992     return This->lpVtbl->GetColumns(This,dwFlags,rgkeyOrder,cColumns);
7993 }
7994 static FORCEINLINE HRESULT IColumnManager_SetColumns(IColumnManager* This,const PROPERTYKEY *rgkeyOrder,UINT cVisible) {
7995     return This->lpVtbl->SetColumns(This,rgkeyOrder,cVisible);
7996 }
7997 #endif
7998 #endif
7999 
8000 #endif
8001 
8002 
8003 #endif  /* __IColumnManager_INTERFACE_DEFINED__ */
8004 
8005 #endif
8006 
8007 /*****************************************************************************
8008  * IFolderFilterSite interface
8009  */
8010 #ifndef __IFolderFilterSite_INTERFACE_DEFINED__
8011 #define __IFolderFilterSite_INTERFACE_DEFINED__
8012 
8013 DEFINE_GUID(IID_IFolderFilterSite, 0xc0a651f5, 0xb48b, 0x11d2, 0xb5,0xed, 0x00,0x60,0x97,0xc6,0x86,0xf6);
8014 #if defined(__cplusplus) && !defined(CINTERFACE)
8015 MIDL_INTERFACE("c0a651f5-b48b-11d2-b5ed-006097c686f6")
8016 IFolderFilterSite : public IUnknown
8017 {
8018     virtual HRESULT STDMETHODCALLTYPE SetFilter(
8019         IUnknown *punk) = 0;
8020 
8021 };
8022 #ifdef __CRT_UUID_DECL
8023 __CRT_UUID_DECL(IFolderFilterSite, 0xc0a651f5, 0xb48b, 0x11d2, 0xb5,0xed, 0x00,0x60,0x97,0xc6,0x86,0xf6)
8024 #endif
8025 #else
8026 typedef struct IFolderFilterSiteVtbl {
8027     BEGIN_INTERFACE
8028 
8029     /*** IUnknown methods ***/
8030     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8031         IFolderFilterSite *This,
8032         REFIID riid,
8033         void **ppvObject);
8034 
8035     ULONG (STDMETHODCALLTYPE *AddRef)(
8036         IFolderFilterSite *This);
8037 
8038     ULONG (STDMETHODCALLTYPE *Release)(
8039         IFolderFilterSite *This);
8040 
8041     /*** IFolderFilterSite methods ***/
8042     HRESULT (STDMETHODCALLTYPE *SetFilter)(
8043         IFolderFilterSite *This,
8044         IUnknown *punk);
8045 
8046     END_INTERFACE
8047 } IFolderFilterSiteVtbl;
8048 
8049 interface IFolderFilterSite {
8050     CONST_VTBL IFolderFilterSiteVtbl* lpVtbl;
8051 };
8052 
8053 #ifdef COBJMACROS
8054 #ifndef WIDL_C_INLINE_WRAPPERS
8055 /*** IUnknown methods ***/
8056 #define IFolderFilterSite_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8057 #define IFolderFilterSite_AddRef(This) (This)->lpVtbl->AddRef(This)
8058 #define IFolderFilterSite_Release(This) (This)->lpVtbl->Release(This)
8059 /*** IFolderFilterSite methods ***/
8060 #define IFolderFilterSite_SetFilter(This,punk) (This)->lpVtbl->SetFilter(This,punk)
8061 #else
8062 /*** IUnknown methods ***/
8063 static FORCEINLINE HRESULT IFolderFilterSite_QueryInterface(IFolderFilterSite* This,REFIID riid,void **ppvObject) {
8064     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8065 }
8066 static FORCEINLINE ULONG IFolderFilterSite_AddRef(IFolderFilterSite* This) {
8067     return This->lpVtbl->AddRef(This);
8068 }
8069 static FORCEINLINE ULONG IFolderFilterSite_Release(IFolderFilterSite* This) {
8070     return This->lpVtbl->Release(This);
8071 }
8072 /*** IFolderFilterSite methods ***/
8073 static FORCEINLINE HRESULT IFolderFilterSite_SetFilter(IFolderFilterSite* This,IUnknown *punk) {
8074     return This->lpVtbl->SetFilter(This,punk);
8075 }
8076 #endif
8077 #endif
8078 
8079 #endif
8080 
8081 
8082 #endif  /* __IFolderFilterSite_INTERFACE_DEFINED__ */
8083 
8084 
8085 /*****************************************************************************
8086  * IFolderFilter interface
8087  */
8088 #ifndef __IFolderFilter_INTERFACE_DEFINED__
8089 #define __IFolderFilter_INTERFACE_DEFINED__
8090 
8091 DEFINE_GUID(IID_IFolderFilter, 0x9cc22886, 0xdc8e, 0x11d2, 0xb1,0xd0, 0x00,0xc0,0x4f,0x8e,0xeb,0x3e);
8092 #if defined(__cplusplus) && !defined(CINTERFACE)
8093 MIDL_INTERFACE("9cc22886-dc8e-11d2-b1d0-00c04f8eeb3e")
8094 IFolderFilter : public IUnknown
8095 {
8096     virtual HRESULT STDMETHODCALLTYPE ShouldShow(
8097         IShellFolder *psf,
8098         PCIDLIST_ABSOLUTE pidlFolder,
8099         PCUITEMID_CHILD pidlItem) = 0;
8100 
8101     virtual HRESULT STDMETHODCALLTYPE GetEnumFlags(
8102         IShellFolder *psf,
8103         PCIDLIST_ABSOLUTE pidlFolder,
8104         HWND *phwnd,
8105         DWORD *pgrfFlags) = 0;
8106 
8107 };
8108 #ifdef __CRT_UUID_DECL
8109 __CRT_UUID_DECL(IFolderFilter, 0x9cc22886, 0xdc8e, 0x11d2, 0xb1,0xd0, 0x00,0xc0,0x4f,0x8e,0xeb,0x3e)
8110 #endif
8111 #else
8112 typedef struct IFolderFilterVtbl {
8113     BEGIN_INTERFACE
8114 
8115     /*** IUnknown methods ***/
8116     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8117         IFolderFilter *This,
8118         REFIID riid,
8119         void **ppvObject);
8120 
8121     ULONG (STDMETHODCALLTYPE *AddRef)(
8122         IFolderFilter *This);
8123 
8124     ULONG (STDMETHODCALLTYPE *Release)(
8125         IFolderFilter *This);
8126 
8127     /*** IFolderFilter methods ***/
8128     HRESULT (STDMETHODCALLTYPE *ShouldShow)(
8129         IFolderFilter *This,
8130         IShellFolder *psf,
8131         PCIDLIST_ABSOLUTE pidlFolder,
8132         PCUITEMID_CHILD pidlItem);
8133 
8134     HRESULT (STDMETHODCALLTYPE *GetEnumFlags)(
8135         IFolderFilter *This,
8136         IShellFolder *psf,
8137         PCIDLIST_ABSOLUTE pidlFolder,
8138         HWND *phwnd,
8139         DWORD *pgrfFlags);
8140 
8141     END_INTERFACE
8142 } IFolderFilterVtbl;
8143 
8144 interface IFolderFilter {
8145     CONST_VTBL IFolderFilterVtbl* lpVtbl;
8146 };
8147 
8148 #ifdef COBJMACROS
8149 #ifndef WIDL_C_INLINE_WRAPPERS
8150 /*** IUnknown methods ***/
8151 #define IFolderFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8152 #define IFolderFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
8153 #define IFolderFilter_Release(This) (This)->lpVtbl->Release(This)
8154 /*** IFolderFilter methods ***/
8155 #define IFolderFilter_ShouldShow(This,psf,pidlFolder,pidlItem) (This)->lpVtbl->ShouldShow(This,psf,pidlFolder,pidlItem)
8156 #define IFolderFilter_GetEnumFlags(This,psf,pidlFolder,phwnd,pgrfFlags) (This)->lpVtbl->GetEnumFlags(This,psf,pidlFolder,phwnd,pgrfFlags)
8157 #else
8158 /*** IUnknown methods ***/
8159 static FORCEINLINE HRESULT IFolderFilter_QueryInterface(IFolderFilter* This,REFIID riid,void **ppvObject) {
8160     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8161 }
8162 static FORCEINLINE ULONG IFolderFilter_AddRef(IFolderFilter* This) {
8163     return This->lpVtbl->AddRef(This);
8164 }
8165 static FORCEINLINE ULONG IFolderFilter_Release(IFolderFilter* This) {
8166     return This->lpVtbl->Release(This);
8167 }
8168 /*** IFolderFilter methods ***/
8169 static FORCEINLINE HRESULT IFolderFilter_ShouldShow(IFolderFilter* This,IShellFolder *psf,PCIDLIST_ABSOLUTE pidlFolder,PCUITEMID_CHILD pidlItem) {
8170     return This->lpVtbl->ShouldShow(This,psf,pidlFolder,pidlItem);
8171 }
8172 static FORCEINLINE HRESULT IFolderFilter_GetEnumFlags(IFolderFilter* This,IShellFolder *psf,PCIDLIST_ABSOLUTE pidlFolder,HWND *phwnd,DWORD *pgrfFlags) {
8173     return This->lpVtbl->GetEnumFlags(This,psf,pidlFolder,phwnd,pgrfFlags);
8174 }
8175 #endif
8176 #endif
8177 
8178 #endif
8179 
8180 
8181 #endif  /* __IFolderFilter_INTERFACE_DEFINED__ */
8182 
8183 
8184 /*****************************************************************************
8185  * IInputObjectSite interface
8186  */
8187 #ifndef __IInputObjectSite_INTERFACE_DEFINED__
8188 #define __IInputObjectSite_INTERFACE_DEFINED__
8189 
8190 DEFINE_GUID(IID_IInputObjectSite, 0xf1db8392, 0x7331, 0x11d0, 0x8c,0x99, 0x00,0xa0,0xc9,0x2d,0xbf,0xe8);
8191 #if defined(__cplusplus) && !defined(CINTERFACE)
8192 MIDL_INTERFACE("f1db8392-7331-11d0-8c99-00a0c92dbfe8")
8193 IInputObjectSite : public IUnknown
8194 {
8195     virtual HRESULT STDMETHODCALLTYPE OnFocusChangeIS(
8196         IUnknown *punkObj,
8197         WINBOOL fSetFocus) = 0;
8198 
8199 };
8200 #ifdef __CRT_UUID_DECL
8201 __CRT_UUID_DECL(IInputObjectSite, 0xf1db8392, 0x7331, 0x11d0, 0x8c,0x99, 0x00,0xa0,0xc9,0x2d,0xbf,0xe8)
8202 #endif
8203 #else
8204 typedef struct IInputObjectSiteVtbl {
8205     BEGIN_INTERFACE
8206 
8207     /*** IUnknown methods ***/
8208     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8209         IInputObjectSite *This,
8210         REFIID riid,
8211         void **ppvObject);
8212 
8213     ULONG (STDMETHODCALLTYPE *AddRef)(
8214         IInputObjectSite *This);
8215 
8216     ULONG (STDMETHODCALLTYPE *Release)(
8217         IInputObjectSite *This);
8218 
8219     /*** IInputObjectSite methods ***/
8220     HRESULT (STDMETHODCALLTYPE *OnFocusChangeIS)(
8221         IInputObjectSite *This,
8222         IUnknown *punkObj,
8223         WINBOOL fSetFocus);
8224 
8225     END_INTERFACE
8226 } IInputObjectSiteVtbl;
8227 
8228 interface IInputObjectSite {
8229     CONST_VTBL IInputObjectSiteVtbl* lpVtbl;
8230 };
8231 
8232 #ifdef COBJMACROS
8233 #ifndef WIDL_C_INLINE_WRAPPERS
8234 /*** IUnknown methods ***/
8235 #define IInputObjectSite_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8236 #define IInputObjectSite_AddRef(This) (This)->lpVtbl->AddRef(This)
8237 #define IInputObjectSite_Release(This) (This)->lpVtbl->Release(This)
8238 /*** IInputObjectSite methods ***/
8239 #define IInputObjectSite_OnFocusChangeIS(This,punkObj,fSetFocus) (This)->lpVtbl->OnFocusChangeIS(This,punkObj,fSetFocus)
8240 #else
8241 /*** IUnknown methods ***/
8242 static FORCEINLINE HRESULT IInputObjectSite_QueryInterface(IInputObjectSite* This,REFIID riid,void **ppvObject) {
8243     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8244 }
8245 static FORCEINLINE ULONG IInputObjectSite_AddRef(IInputObjectSite* This) {
8246     return This->lpVtbl->AddRef(This);
8247 }
8248 static FORCEINLINE ULONG IInputObjectSite_Release(IInputObjectSite* This) {
8249     return This->lpVtbl->Release(This);
8250 }
8251 /*** IInputObjectSite methods ***/
8252 static FORCEINLINE HRESULT IInputObjectSite_OnFocusChangeIS(IInputObjectSite* This,IUnknown *punkObj,WINBOOL fSetFocus) {
8253     return This->lpVtbl->OnFocusChangeIS(This,punkObj,fSetFocus);
8254 }
8255 #endif
8256 #endif
8257 
8258 #endif
8259 
8260 
8261 #endif  /* __IInputObjectSite_INTERFACE_DEFINED__ */
8262 
8263 
8264 /*****************************************************************************
8265  * IInputObject interface
8266  */
8267 #ifndef __IInputObject_INTERFACE_DEFINED__
8268 #define __IInputObject_INTERFACE_DEFINED__
8269 
8270 DEFINE_GUID(IID_IInputObject, 0x68284faa, 0x6a48, 0x11d0, 0x8c,0x78, 0x00,0xc0,0x4f,0xd9,0x18,0xb4);
8271 #if defined(__cplusplus) && !defined(CINTERFACE)
8272 MIDL_INTERFACE("68284faa-6a48-11d0-8c78-00c04fd918b4")
8273 IInputObject : public IUnknown
8274 {
8275     virtual HRESULT STDMETHODCALLTYPE UIActivateIO(
8276         WINBOOL fActivate,
8277         MSG *pMsg) = 0;
8278 
8279     virtual HRESULT STDMETHODCALLTYPE HasFocusIO(
8280         ) = 0;
8281 
8282     virtual HRESULT STDMETHODCALLTYPE TranslateAcceleratorIO(
8283         MSG *pMsg) = 0;
8284 
8285 };
8286 #ifdef __CRT_UUID_DECL
8287 __CRT_UUID_DECL(IInputObject, 0x68284faa, 0x6a48, 0x11d0, 0x8c,0x78, 0x00,0xc0,0x4f,0xd9,0x18,0xb4)
8288 #endif
8289 #else
8290 typedef struct IInputObjectVtbl {
8291     BEGIN_INTERFACE
8292 
8293     /*** IUnknown methods ***/
8294     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8295         IInputObject *This,
8296         REFIID riid,
8297         void **ppvObject);
8298 
8299     ULONG (STDMETHODCALLTYPE *AddRef)(
8300         IInputObject *This);
8301 
8302     ULONG (STDMETHODCALLTYPE *Release)(
8303         IInputObject *This);
8304 
8305     /*** IInputObject methods ***/
8306     HRESULT (STDMETHODCALLTYPE *UIActivateIO)(
8307         IInputObject *This,
8308         WINBOOL fActivate,
8309         MSG *pMsg);
8310 
8311     HRESULT (STDMETHODCALLTYPE *HasFocusIO)(
8312         IInputObject *This);
8313 
8314     HRESULT (STDMETHODCALLTYPE *TranslateAcceleratorIO)(
8315         IInputObject *This,
8316         MSG *pMsg);
8317 
8318     END_INTERFACE
8319 } IInputObjectVtbl;
8320 
8321 interface IInputObject {
8322     CONST_VTBL IInputObjectVtbl* lpVtbl;
8323 };
8324 
8325 #ifdef COBJMACROS
8326 #ifndef WIDL_C_INLINE_WRAPPERS
8327 /*** IUnknown methods ***/
8328 #define IInputObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8329 #define IInputObject_AddRef(This) (This)->lpVtbl->AddRef(This)
8330 #define IInputObject_Release(This) (This)->lpVtbl->Release(This)
8331 /*** IInputObject methods ***/
8332 #define IInputObject_UIActivateIO(This,fActivate,pMsg) (This)->lpVtbl->UIActivateIO(This,fActivate,pMsg)
8333 #define IInputObject_HasFocusIO(This) (This)->lpVtbl->HasFocusIO(This)
8334 #define IInputObject_TranslateAcceleratorIO(This,pMsg) (This)->lpVtbl->TranslateAcceleratorIO(This,pMsg)
8335 #else
8336 /*** IUnknown methods ***/
8337 static FORCEINLINE HRESULT IInputObject_QueryInterface(IInputObject* This,REFIID riid,void **ppvObject) {
8338     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8339 }
8340 static FORCEINLINE ULONG IInputObject_AddRef(IInputObject* This) {
8341     return This->lpVtbl->AddRef(This);
8342 }
8343 static FORCEINLINE ULONG IInputObject_Release(IInputObject* This) {
8344     return This->lpVtbl->Release(This);
8345 }
8346 /*** IInputObject methods ***/
8347 static FORCEINLINE HRESULT IInputObject_UIActivateIO(IInputObject* This,WINBOOL fActivate,MSG *pMsg) {
8348     return This->lpVtbl->UIActivateIO(This,fActivate,pMsg);
8349 }
8350 static FORCEINLINE HRESULT IInputObject_HasFocusIO(IInputObject* This) {
8351     return This->lpVtbl->HasFocusIO(This);
8352 }
8353 static FORCEINLINE HRESULT IInputObject_TranslateAcceleratorIO(IInputObject* This,MSG *pMsg) {
8354     return This->lpVtbl->TranslateAcceleratorIO(This,pMsg);
8355 }
8356 #endif
8357 #endif
8358 
8359 #endif
8360 
8361 
8362 #endif  /* __IInputObject_INTERFACE_DEFINED__ */
8363 
8364 
8365 /*****************************************************************************
8366  * IInputObject2 interface
8367  */
8368 #ifndef __IInputObject2_INTERFACE_DEFINED__
8369 #define __IInputObject2_INTERFACE_DEFINED__
8370 
8371 DEFINE_GUID(IID_IInputObject2, 0x6915c085, 0x510b, 0x44cd, 0x94,0xaf, 0x28,0xdf,0xa5,0x6c,0xf9,0x2b);
8372 #if defined(__cplusplus) && !defined(CINTERFACE)
8373 MIDL_INTERFACE("6915c085-510b-44cd-94af-28dfa56cf92b")
8374 IInputObject2 : public IInputObject
8375 {
8376     virtual HRESULT STDMETHODCALLTYPE TranslateAcceleratorGlobal(
8377         MSG *pMsg) = 0;
8378 
8379 };
8380 #ifdef __CRT_UUID_DECL
8381 __CRT_UUID_DECL(IInputObject2, 0x6915c085, 0x510b, 0x44cd, 0x94,0xaf, 0x28,0xdf,0xa5,0x6c,0xf9,0x2b)
8382 #endif
8383 #else
8384 typedef struct IInputObject2Vtbl {
8385     BEGIN_INTERFACE
8386 
8387     /*** IUnknown methods ***/
8388     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8389         IInputObject2 *This,
8390         REFIID riid,
8391         void **ppvObject);
8392 
8393     ULONG (STDMETHODCALLTYPE *AddRef)(
8394         IInputObject2 *This);
8395 
8396     ULONG (STDMETHODCALLTYPE *Release)(
8397         IInputObject2 *This);
8398 
8399     /*** IInputObject methods ***/
8400     HRESULT (STDMETHODCALLTYPE *UIActivateIO)(
8401         IInputObject2 *This,
8402         WINBOOL fActivate,
8403         MSG *pMsg);
8404 
8405     HRESULT (STDMETHODCALLTYPE *HasFocusIO)(
8406         IInputObject2 *This);
8407 
8408     HRESULT (STDMETHODCALLTYPE *TranslateAcceleratorIO)(
8409         IInputObject2 *This,
8410         MSG *pMsg);
8411 
8412     /*** IInputObject2 methods ***/
8413     HRESULT (STDMETHODCALLTYPE *TranslateAcceleratorGlobal)(
8414         IInputObject2 *This,
8415         MSG *pMsg);
8416 
8417     END_INTERFACE
8418 } IInputObject2Vtbl;
8419 
8420 interface IInputObject2 {
8421     CONST_VTBL IInputObject2Vtbl* lpVtbl;
8422 };
8423 
8424 #ifdef COBJMACROS
8425 #ifndef WIDL_C_INLINE_WRAPPERS
8426 /*** IUnknown methods ***/
8427 #define IInputObject2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8428 #define IInputObject2_AddRef(This) (This)->lpVtbl->AddRef(This)
8429 #define IInputObject2_Release(This) (This)->lpVtbl->Release(This)
8430 /*** IInputObject methods ***/
8431 #define IInputObject2_UIActivateIO(This,fActivate,pMsg) (This)->lpVtbl->UIActivateIO(This,fActivate,pMsg)
8432 #define IInputObject2_HasFocusIO(This) (This)->lpVtbl->HasFocusIO(This)
8433 #define IInputObject2_TranslateAcceleratorIO(This,pMsg) (This)->lpVtbl->TranslateAcceleratorIO(This,pMsg)
8434 /*** IInputObject2 methods ***/
8435 #define IInputObject2_TranslateAcceleratorGlobal(This,pMsg) (This)->lpVtbl->TranslateAcceleratorGlobal(This,pMsg)
8436 #else
8437 /*** IUnknown methods ***/
8438 static FORCEINLINE HRESULT IInputObject2_QueryInterface(IInputObject2* This,REFIID riid,void **ppvObject) {
8439     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8440 }
8441 static FORCEINLINE ULONG IInputObject2_AddRef(IInputObject2* This) {
8442     return This->lpVtbl->AddRef(This);
8443 }
8444 static FORCEINLINE ULONG IInputObject2_Release(IInputObject2* This) {
8445     return This->lpVtbl->Release(This);
8446 }
8447 /*** IInputObject methods ***/
8448 static FORCEINLINE HRESULT IInputObject2_UIActivateIO(IInputObject2* This,WINBOOL fActivate,MSG *pMsg) {
8449     return This->lpVtbl->UIActivateIO(This,fActivate,pMsg);
8450 }
8451 static FORCEINLINE HRESULT IInputObject2_HasFocusIO(IInputObject2* This) {
8452     return This->lpVtbl->HasFocusIO(This);
8453 }
8454 static FORCEINLINE HRESULT IInputObject2_TranslateAcceleratorIO(IInputObject2* This,MSG *pMsg) {
8455     return This->lpVtbl->TranslateAcceleratorIO(This,pMsg);
8456 }
8457 /*** IInputObject2 methods ***/
8458 static FORCEINLINE HRESULT IInputObject2_TranslateAcceleratorGlobal(IInputObject2* This,MSG *pMsg) {
8459     return This->lpVtbl->TranslateAcceleratorGlobal(This,pMsg);
8460 }
8461 #endif
8462 #endif
8463 
8464 #endif
8465 
8466 
8467 #endif  /* __IInputObject2_INTERFACE_DEFINED__ */
8468 
8469 
8470 /*****************************************************************************
8471  * IShellIcon interface
8472  */
8473 #ifndef __IShellIcon_INTERFACE_DEFINED__
8474 #define __IShellIcon_INTERFACE_DEFINED__
8475 
8476 DEFINE_GUID(IID_IShellIcon, 0x000214e5, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8477 #if defined(__cplusplus) && !defined(CINTERFACE)
8478 MIDL_INTERFACE("000214e5-0000-0000-c000-000000000046")
8479 IShellIcon : public IUnknown
8480 {
8481     virtual HRESULT STDMETHODCALLTYPE GetIconOf(
8482         PCUITEMID_CHILD pidl,
8483         UINT flags,
8484         int *pIconIndex) = 0;
8485 
8486 };
8487 #ifdef __CRT_UUID_DECL
8488 __CRT_UUID_DECL(IShellIcon, 0x000214e5, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
8489 #endif
8490 #else
8491 typedef struct IShellIconVtbl {
8492     BEGIN_INTERFACE
8493 
8494     /*** IUnknown methods ***/
8495     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8496         IShellIcon *This,
8497         REFIID riid,
8498         void **ppvObject);
8499 
8500     ULONG (STDMETHODCALLTYPE *AddRef)(
8501         IShellIcon *This);
8502 
8503     ULONG (STDMETHODCALLTYPE *Release)(
8504         IShellIcon *This);
8505 
8506     /*** IShellIcon methods ***/
8507     HRESULT (STDMETHODCALLTYPE *GetIconOf)(
8508         IShellIcon *This,
8509         PCUITEMID_CHILD pidl,
8510         UINT flags,
8511         int *pIconIndex);
8512 
8513     END_INTERFACE
8514 } IShellIconVtbl;
8515 
8516 interface IShellIcon {
8517     CONST_VTBL IShellIconVtbl* lpVtbl;
8518 };
8519 
8520 #ifdef COBJMACROS
8521 #ifndef WIDL_C_INLINE_WRAPPERS
8522 /*** IUnknown methods ***/
8523 #define IShellIcon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8524 #define IShellIcon_AddRef(This) (This)->lpVtbl->AddRef(This)
8525 #define IShellIcon_Release(This) (This)->lpVtbl->Release(This)
8526 /*** IShellIcon methods ***/
8527 #define IShellIcon_GetIconOf(This,pidl,flags,pIconIndex) (This)->lpVtbl->GetIconOf(This,pidl,flags,pIconIndex)
8528 #else
8529 /*** IUnknown methods ***/
8530 static FORCEINLINE HRESULT IShellIcon_QueryInterface(IShellIcon* This,REFIID riid,void **ppvObject) {
8531     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8532 }
8533 static FORCEINLINE ULONG IShellIcon_AddRef(IShellIcon* This) {
8534     return This->lpVtbl->AddRef(This);
8535 }
8536 static FORCEINLINE ULONG IShellIcon_Release(IShellIcon* This) {
8537     return This->lpVtbl->Release(This);
8538 }
8539 /*** IShellIcon methods ***/
8540 static FORCEINLINE HRESULT IShellIcon_GetIconOf(IShellIcon* This,PCUITEMID_CHILD pidl,UINT flags,int *pIconIndex) {
8541     return This->lpVtbl->GetIconOf(This,pidl,flags,pIconIndex);
8542 }
8543 #endif
8544 #endif
8545 
8546 #endif
8547 
8548 
8549 #endif  /* __IShellIcon_INTERFACE_DEFINED__ */
8550 
8551 
8552 #define SBSP_DEFBROWSER 0x0000
8553 #define SBSP_SAMEBROWSER 0x0001
8554 #define SBSP_NEWBROWSER 0x0002
8555 
8556 #define SBSP_DEFMODE 0x0000
8557 #define SBSP_OPENMODE 0x0010
8558 #define SBSP_EXPLOREMODE 0x0020
8559 #define SBSP_HELPMODE 0x0040
8560 #define SBSP_NOTRANSFERHIST 0x0080
8561 
8562 #define SBSP_ABSOLUTE 0x0000
8563 #define SBSP_RELATIVE 0x1000
8564 #define SBSP_PARENT 0x2000
8565 #define SBSP_NAVIGATEBACK 0x4000
8566 #define SBSP_NAVIGATEFORWARD 0x8000
8567 #define SBSP_ALLOW_AUTONAVIGATE 0x00010000
8568 #if NTDDI_VERSION >= NTDDI_VISTA
8569 #define SBSP_KEEPSAMETEMPLATE 0x00020000
8570 #define SBSP_KEEPWORDWHEELTEXT 0x00040000
8571 #define SBSP_ACTIVATE_NOFOCUS 0x00080000
8572 #define SBSP_CREATENOHISTORY 0x00100000
8573 #define SBSP_PLAYNOSOUND 0x00200000
8574 #endif
8575 #if _WIN32_IE >= _WIN32_IE_IE60SP2
8576 #define SBSP_CALLERUNTRUSTED 0x00800000
8577 #define SBSP_TRUSTFIRSTDOWNLOAD 0x01000000
8578 #define SBSP_UNTRUSTEDFORDOWNLOAD 0x02000000
8579 #endif
8580 #define SBSP_NOAUTOSELECT 0x04000000
8581 #define SBSP_WRITENOHISTORY 0x08000000
8582 #if _WIN32_IE >= _WIN32_IE_IE60SP2
8583 #define SBSP_TRUSTEDFORACTIVEX 0x10000000
8584 #endif
8585 #if _WIN32_IE >= _WIN32_IE_IE70
8586 #define SBSP_FEEDNAVIGATION 0x20000000
8587 #endif
8588 #define SBSP_REDIRECT 0x40000000
8589 #define SBSP_INITIATEDBYHLINKFRAME 0x80000000
8590 
8591 #define FCW_STATUS 0x0001
8592 #define FCW_TOOLBAR 0x0002
8593 #define FCW_TREE 0x0003
8594 #define FCW_INTERNETBAR 0x0006
8595 #define FCW_PROGRESS 0x0008
8596 
8597 #define FCT_MERGE 0x0001
8598 #define FCT_CONFIGABLE 0x0002
8599 #define FCT_ADDTOEND 0x0004
8600 
8601 #if 0
8602 typedef LPARAM LPTBBUTTONSB;
8603 #else
8604 #include <commctrl.h>
8605 
8606 typedef LPTBBUTTON LPTBBUTTONSB;
8607 #endif
8608 
8609 /*****************************************************************************
8610  * IShellBrowser interface
8611  */
8612 #ifndef __IShellBrowser_INTERFACE_DEFINED__
8613 #define __IShellBrowser_INTERFACE_DEFINED__
8614 
8615 DEFINE_GUID(IID_IShellBrowser, 0x000214e2, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8616 #if defined(__cplusplus) && !defined(CINTERFACE)
8617 MIDL_INTERFACE("000214e2-0000-0000-c000-000000000046")
8618 IShellBrowser : public IOleWindow
8619 {
8620     virtual HRESULT STDMETHODCALLTYPE InsertMenusSB(
8621         HMENU hmenuShared,
8622         LPOLEMENUGROUPWIDTHS lpMenuWidths) = 0;
8623 
8624     virtual HRESULT STDMETHODCALLTYPE SetMenuSB(
8625         HMENU hmenuShared,
8626         HOLEMENU holemenuRes,
8627         HWND hwndActiveObject) = 0;
8628 
8629     virtual HRESULT STDMETHODCALLTYPE RemoveMenusSB(
8630         HMENU hmenuShared) = 0;
8631 
8632     virtual HRESULT STDMETHODCALLTYPE SetStatusTextSB(
8633         LPCWSTR pszStatusText) = 0;
8634 
8635     virtual HRESULT STDMETHODCALLTYPE EnableModelessSB(
8636         WINBOOL fEnable) = 0;
8637 
8638     virtual HRESULT STDMETHODCALLTYPE TranslateAcceleratorSB(
8639         MSG *pmsg,
8640         WORD wID) = 0;
8641 
8642     virtual HRESULT STDMETHODCALLTYPE BrowseObject(
8643         PCUIDLIST_RELATIVE pidl,
8644         UINT wFlags) = 0;
8645 
8646     virtual HRESULT STDMETHODCALLTYPE GetViewStateStream(
8647         DWORD grfMode,
8648         IStream **ppStrm) = 0;
8649 
8650     virtual HRESULT STDMETHODCALLTYPE GetControlWindow(
8651         UINT id,
8652         HWND *phwnd) = 0;
8653 
8654     virtual HRESULT STDMETHODCALLTYPE SendControlMsg(
8655         UINT id,
8656         UINT uMsg,
8657         WPARAM wParam,
8658         LPARAM lParam,
8659         LRESULT *pret) = 0;
8660 
8661     virtual HRESULT STDMETHODCALLTYPE QueryActiveShellView(
8662         IShellView **ppshv) = 0;
8663 
8664     virtual HRESULT STDMETHODCALLTYPE OnViewWindowActive(
8665         IShellView *pshv) = 0;
8666 
8667     virtual HRESULT STDMETHODCALLTYPE SetToolbarItems(
8668         LPTBBUTTONSB lpButtons,
8669         UINT nButtons,
8670         UINT uFlags) = 0;
8671 
8672 };
8673 #ifdef __CRT_UUID_DECL
8674 __CRT_UUID_DECL(IShellBrowser, 0x000214e2, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
8675 #endif
8676 #else
8677 typedef struct IShellBrowserVtbl {
8678     BEGIN_INTERFACE
8679 
8680     /*** IUnknown methods ***/
8681     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8682         IShellBrowser *This,
8683         REFIID riid,
8684         void **ppvObject);
8685 
8686     ULONG (STDMETHODCALLTYPE *AddRef)(
8687         IShellBrowser *This);
8688 
8689     ULONG (STDMETHODCALLTYPE *Release)(
8690         IShellBrowser *This);
8691 
8692     /*** IOleWindow methods ***/
8693     HRESULT (STDMETHODCALLTYPE *GetWindow)(
8694         IShellBrowser *This,
8695         HWND *phwnd);
8696 
8697     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
8698         IShellBrowser *This,
8699         WINBOOL fEnterMode);
8700 
8701     /*** IShellBrowser methods ***/
8702     HRESULT (STDMETHODCALLTYPE *InsertMenusSB)(
8703         IShellBrowser *This,
8704         HMENU hmenuShared,
8705         LPOLEMENUGROUPWIDTHS lpMenuWidths);
8706 
8707     HRESULT (STDMETHODCALLTYPE *SetMenuSB)(
8708         IShellBrowser *This,
8709         HMENU hmenuShared,
8710         HOLEMENU holemenuRes,
8711         HWND hwndActiveObject);
8712 
8713     HRESULT (STDMETHODCALLTYPE *RemoveMenusSB)(
8714         IShellBrowser *This,
8715         HMENU hmenuShared);
8716 
8717     HRESULT (STDMETHODCALLTYPE *SetStatusTextSB)(
8718         IShellBrowser *This,
8719         LPCWSTR pszStatusText);
8720 
8721     HRESULT (STDMETHODCALLTYPE *EnableModelessSB)(
8722         IShellBrowser *This,
8723         WINBOOL fEnable);
8724 
8725     HRESULT (STDMETHODCALLTYPE *TranslateAcceleratorSB)(
8726         IShellBrowser *This,
8727         MSG *pmsg,
8728         WORD wID);
8729 
8730     HRESULT (STDMETHODCALLTYPE *BrowseObject)(
8731         IShellBrowser *This,
8732         PCUIDLIST_RELATIVE pidl,
8733         UINT wFlags);
8734 
8735     HRESULT (STDMETHODCALLTYPE *GetViewStateStream)(
8736         IShellBrowser *This,
8737         DWORD grfMode,
8738         IStream **ppStrm);
8739 
8740     HRESULT (STDMETHODCALLTYPE *GetControlWindow)(
8741         IShellBrowser *This,
8742         UINT id,
8743         HWND *phwnd);
8744 
8745     HRESULT (STDMETHODCALLTYPE *SendControlMsg)(
8746         IShellBrowser *This,
8747         UINT id,
8748         UINT uMsg,
8749         WPARAM wParam,
8750         LPARAM lParam,
8751         LRESULT *pret);
8752 
8753     HRESULT (STDMETHODCALLTYPE *QueryActiveShellView)(
8754         IShellBrowser *This,
8755         IShellView **ppshv);
8756 
8757     HRESULT (STDMETHODCALLTYPE *OnViewWindowActive)(
8758         IShellBrowser *This,
8759         IShellView *pshv);
8760 
8761     HRESULT (STDMETHODCALLTYPE *SetToolbarItems)(
8762         IShellBrowser *This,
8763         LPTBBUTTONSB lpButtons,
8764         UINT nButtons,
8765         UINT uFlags);
8766 
8767     END_INTERFACE
8768 } IShellBrowserVtbl;
8769 
8770 interface IShellBrowser {
8771     CONST_VTBL IShellBrowserVtbl* lpVtbl;
8772 };
8773 
8774 #ifdef COBJMACROS
8775 #ifndef WIDL_C_INLINE_WRAPPERS
8776 /*** IUnknown methods ***/
8777 #define IShellBrowser_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8778 #define IShellBrowser_AddRef(This) (This)->lpVtbl->AddRef(This)
8779 #define IShellBrowser_Release(This) (This)->lpVtbl->Release(This)
8780 /*** IOleWindow methods ***/
8781 #define IShellBrowser_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
8782 #define IShellBrowser_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
8783 /*** IShellBrowser methods ***/
8784 #define IShellBrowser_InsertMenusSB(This,hmenuShared,lpMenuWidths) (This)->lpVtbl->InsertMenusSB(This,hmenuShared,lpMenuWidths)
8785 #define IShellBrowser_SetMenuSB(This,hmenuShared,holemenuRes,hwndActiveObject) (This)->lpVtbl->SetMenuSB(This,hmenuShared,holemenuRes,hwndActiveObject)
8786 #define IShellBrowser_RemoveMenusSB(This,hmenuShared) (This)->lpVtbl->RemoveMenusSB(This,hmenuShared)
8787 #define IShellBrowser_SetStatusTextSB(This,pszStatusText) (This)->lpVtbl->SetStatusTextSB(This,pszStatusText)
8788 #define IShellBrowser_EnableModelessSB(This,fEnable) (This)->lpVtbl->EnableModelessSB(This,fEnable)
8789 #define IShellBrowser_TranslateAcceleratorSB(This,pmsg,wID) (This)->lpVtbl->TranslateAcceleratorSB(This,pmsg,wID)
8790 #define IShellBrowser_BrowseObject(This,pidl,wFlags) (This)->lpVtbl->BrowseObject(This,pidl,wFlags)
8791 #define IShellBrowser_GetViewStateStream(This,grfMode,ppStrm) (This)->lpVtbl->GetViewStateStream(This,grfMode,ppStrm)
8792 #define IShellBrowser_GetControlWindow(This,id,phwnd) (This)->lpVtbl->GetControlWindow(This,id,phwnd)
8793 #define IShellBrowser_SendControlMsg(This,id,uMsg,wParam,lParam,pret) (This)->lpVtbl->SendControlMsg(This,id,uMsg,wParam,lParam,pret)
8794 #define IShellBrowser_QueryActiveShellView(This,ppshv) (This)->lpVtbl->QueryActiveShellView(This,ppshv)
8795 #define IShellBrowser_OnViewWindowActive(This,pshv) (This)->lpVtbl->OnViewWindowActive(This,pshv)
8796 #define IShellBrowser_SetToolbarItems(This,lpButtons,nButtons,uFlags) (This)->lpVtbl->SetToolbarItems(This,lpButtons,nButtons,uFlags)
8797 #else
8798 /*** IUnknown methods ***/
8799 static FORCEINLINE HRESULT IShellBrowser_QueryInterface(IShellBrowser* This,REFIID riid,void **ppvObject) {
8800     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8801 }
8802 static FORCEINLINE ULONG IShellBrowser_AddRef(IShellBrowser* This) {
8803     return This->lpVtbl->AddRef(This);
8804 }
8805 static FORCEINLINE ULONG IShellBrowser_Release(IShellBrowser* This) {
8806     return This->lpVtbl->Release(This);
8807 }
8808 /*** IOleWindow methods ***/
8809 static FORCEINLINE HRESULT IShellBrowser_GetWindow(IShellBrowser* This,HWND *phwnd) {
8810     return This->lpVtbl->GetWindow(This,phwnd);
8811 }
8812 static FORCEINLINE HRESULT IShellBrowser_ContextSensitiveHelp(IShellBrowser* This,WINBOOL fEnterMode) {
8813     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
8814 }
8815 /*** IShellBrowser methods ***/
8816 static FORCEINLINE HRESULT IShellBrowser_InsertMenusSB(IShellBrowser* This,HMENU hmenuShared,LPOLEMENUGROUPWIDTHS lpMenuWidths) {
8817     return This->lpVtbl->InsertMenusSB(This,hmenuShared,lpMenuWidths);
8818 }
8819 static FORCEINLINE HRESULT IShellBrowser_SetMenuSB(IShellBrowser* This,HMENU hmenuShared,HOLEMENU holemenuRes,HWND hwndActiveObject) {
8820     return This->lpVtbl->SetMenuSB(This,hmenuShared,holemenuRes,hwndActiveObject);
8821 }
8822 static FORCEINLINE HRESULT IShellBrowser_RemoveMenusSB(IShellBrowser* This,HMENU hmenuShared) {
8823     return This->lpVtbl->RemoveMenusSB(This,hmenuShared);
8824 }
8825 static FORCEINLINE HRESULT IShellBrowser_SetStatusTextSB(IShellBrowser* This,LPCWSTR pszStatusText) {
8826     return This->lpVtbl->SetStatusTextSB(This,pszStatusText);
8827 }
8828 static FORCEINLINE HRESULT IShellBrowser_EnableModelessSB(IShellBrowser* This,WINBOOL fEnable) {
8829     return This->lpVtbl->EnableModelessSB(This,fEnable);
8830 }
8831 static FORCEINLINE HRESULT IShellBrowser_TranslateAcceleratorSB(IShellBrowser* This,MSG *pmsg,WORD wID) {
8832     return This->lpVtbl->TranslateAcceleratorSB(This,pmsg,wID);
8833 }
8834 static FORCEINLINE HRESULT IShellBrowser_BrowseObject(IShellBrowser* This,PCUIDLIST_RELATIVE pidl,UINT wFlags) {
8835     return This->lpVtbl->BrowseObject(This,pidl,wFlags);
8836 }
8837 static FORCEINLINE HRESULT IShellBrowser_GetViewStateStream(IShellBrowser* This,DWORD grfMode,IStream **ppStrm) {
8838     return This->lpVtbl->GetViewStateStream(This,grfMode,ppStrm);
8839 }
8840 static FORCEINLINE HRESULT IShellBrowser_GetControlWindow(IShellBrowser* This,UINT id,HWND *phwnd) {
8841     return This->lpVtbl->GetControlWindow(This,id,phwnd);
8842 }
8843 static FORCEINLINE HRESULT IShellBrowser_SendControlMsg(IShellBrowser* This,UINT id,UINT uMsg,WPARAM wParam,LPARAM lParam,LRESULT *pret) {
8844     return This->lpVtbl->SendControlMsg(This,id,uMsg,wParam,lParam,pret);
8845 }
8846 static FORCEINLINE HRESULT IShellBrowser_QueryActiveShellView(IShellBrowser* This,IShellView **ppshv) {
8847     return This->lpVtbl->QueryActiveShellView(This,ppshv);
8848 }
8849 static FORCEINLINE HRESULT IShellBrowser_OnViewWindowActive(IShellBrowser* This,IShellView *pshv) {
8850     return This->lpVtbl->OnViewWindowActive(This,pshv);
8851 }
8852 static FORCEINLINE HRESULT IShellBrowser_SetToolbarItems(IShellBrowser* This,LPTBBUTTONSB lpButtons,UINT nButtons,UINT uFlags) {
8853     return This->lpVtbl->SetToolbarItems(This,lpButtons,nButtons,uFlags);
8854 }
8855 #endif
8856 #endif
8857 
8858 #endif
8859 
8860 
8861 #endif  /* __IShellBrowser_INTERFACE_DEFINED__ */
8862 
8863 
8864 typedef IShellBrowser *LPSHELLBROWSER;
8865 
8866 /*****************************************************************************
8867  * IProfferService interface
8868  */
8869 #ifndef __IProfferService_INTERFACE_DEFINED__
8870 #define __IProfferService_INTERFACE_DEFINED__
8871 
8872 DEFINE_GUID(IID_IProfferService, 0xcb728b20, 0xf786, 0x11ce, 0x92,0xad, 0x00,0xaa,0x00,0xa7,0x4c,0xd0);
8873 #if defined(__cplusplus) && !defined(CINTERFACE)
8874 MIDL_INTERFACE("cb728b20-f786-11ce-92ad-00aa00a74cd0")
8875 IProfferService : public IUnknown
8876 {
8877     virtual HRESULT STDMETHODCALLTYPE ProfferService(
8878         REFGUID guidService,
8879         IServiceProvider *psp,
8880         DWORD *pdwCookie) = 0;
8881 
8882     virtual HRESULT STDMETHODCALLTYPE RevokeService(
8883         DWORD dwCookie) = 0;
8884 
8885 };
8886 #ifdef __CRT_UUID_DECL
8887 __CRT_UUID_DECL(IProfferService, 0xcb728b20, 0xf786, 0x11ce, 0x92,0xad, 0x00,0xaa,0x00,0xa7,0x4c,0xd0)
8888 #endif
8889 #else
8890 typedef struct IProfferServiceVtbl {
8891     BEGIN_INTERFACE
8892 
8893     /*** IUnknown methods ***/
8894     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8895         IProfferService *This,
8896         REFIID riid,
8897         void **ppvObject);
8898 
8899     ULONG (STDMETHODCALLTYPE *AddRef)(
8900         IProfferService *This);
8901 
8902     ULONG (STDMETHODCALLTYPE *Release)(
8903         IProfferService *This);
8904 
8905     /*** IProfferService methods ***/
8906     HRESULT (STDMETHODCALLTYPE *ProfferService)(
8907         IProfferService *This,
8908         REFGUID guidService,
8909         IServiceProvider *psp,
8910         DWORD *pdwCookie);
8911 
8912     HRESULT (STDMETHODCALLTYPE *RevokeService)(
8913         IProfferService *This,
8914         DWORD dwCookie);
8915 
8916     END_INTERFACE
8917 } IProfferServiceVtbl;
8918 
8919 interface IProfferService {
8920     CONST_VTBL IProfferServiceVtbl* lpVtbl;
8921 };
8922 
8923 #ifdef COBJMACROS
8924 #ifndef WIDL_C_INLINE_WRAPPERS
8925 /*** IUnknown methods ***/
8926 #define IProfferService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8927 #define IProfferService_AddRef(This) (This)->lpVtbl->AddRef(This)
8928 #define IProfferService_Release(This) (This)->lpVtbl->Release(This)
8929 /*** IProfferService methods ***/
8930 #define IProfferService_ProfferService(This,guidService,psp,pdwCookie) (This)->lpVtbl->ProfferService(This,guidService,psp,pdwCookie)
8931 #define IProfferService_RevokeService(This,dwCookie) (This)->lpVtbl->RevokeService(This,dwCookie)
8932 #else
8933 /*** IUnknown methods ***/
8934 static FORCEINLINE HRESULT IProfferService_QueryInterface(IProfferService* This,REFIID riid,void **ppvObject) {
8935     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8936 }
8937 static FORCEINLINE ULONG IProfferService_AddRef(IProfferService* This) {
8938     return This->lpVtbl->AddRef(This);
8939 }
8940 static FORCEINLINE ULONG IProfferService_Release(IProfferService* This) {
8941     return This->lpVtbl->Release(This);
8942 }
8943 /*** IProfferService methods ***/
8944 static FORCEINLINE HRESULT IProfferService_ProfferService(IProfferService* This,REFGUID guidService,IServiceProvider *psp,DWORD *pdwCookie) {
8945     return This->lpVtbl->ProfferService(This,guidService,psp,pdwCookie);
8946 }
8947 static FORCEINLINE HRESULT IProfferService_RevokeService(IProfferService* This,DWORD dwCookie) {
8948     return This->lpVtbl->RevokeService(This,dwCookie);
8949 }
8950 #endif
8951 #endif
8952 
8953 #endif
8954 
8955 
8956 #endif  /* __IProfferService_INTERFACE_DEFINED__ */
8957 
8958 
8959 #define SID_SProfferService IID_IProfferService
8960 #define STR_DONT_RESOLVE_LINK L"Don't Resolve Link"
8961 #define STR_GET_ASYNC_HANDLER L"GetAsyncHandler"
8962 
8963 /*****************************************************************************
8964  * IShellItem interface
8965  */
8966 #ifndef __IShellItem_INTERFACE_DEFINED__
8967 #define __IShellItem_INTERFACE_DEFINED__
8968 
8969 typedef enum _SIGDN {
8970     SIGDN_NORMALDISPLAY = 0x0,
8971     SIGDN_PARENTRELATIVEPARSING = (int)0x80018001,
8972     SIGDN_DESKTOPABSOLUTEPARSING = (int)0x80028000,
8973     SIGDN_PARENTRELATIVEEDITING = (int)0x80031001,
8974     SIGDN_DESKTOPABSOLUTEEDITING = (int)0x8004c000,
8975     SIGDN_FILESYSPATH = (int)0x80058000,
8976     SIGDN_URL = (int)0x80068000,
8977     SIGDN_PARENTRELATIVEFORADDRESSBAR = (int)0x8007c001,
8978     SIGDN_PARENTRELATIVE = (int)0x80080001,
8979     SIGDN_PARENTRELATIVEFORUI = (int)0x80094001
8980 } SIGDN;
8981 
8982 enum _SICHINTF {
8983     SICHINT_DISPLAY = 0x0,
8984     SICHINT_ALLFIELDS = (int)0x80000000,
8985     SICHINT_CANONICAL = 0x10000000,
8986     SICHINT_TEST_FILESYSPATH_IF_NOT_EQUAL = 0x20000000
8987 };
8988 
8989 typedef DWORD SICHINTF;
8990 
8991 DEFINE_GUID(IID_IShellItem, 0x43826d1e, 0xe718, 0x42ee, 0xbc,0x55, 0xa1,0xe2,0x61,0xc3,0x7b,0xfe);
8992 #if defined(__cplusplus) && !defined(CINTERFACE)
8993 MIDL_INTERFACE("43826d1e-e718-42ee-bc55-a1e261c37bfe")
8994 IShellItem : public IUnknown
8995 {
8996     virtual HRESULT STDMETHODCALLTYPE BindToHandler(
8997         IBindCtx *pbc,
8998         REFGUID bhid,
8999         REFIID riid,
9000         void **ppv) = 0;
9001 
9002     virtual HRESULT STDMETHODCALLTYPE GetParent(
9003         IShellItem **ppsi) = 0;
9004 
9005     virtual HRESULT STDMETHODCALLTYPE GetDisplayName(
9006         SIGDN sigdnName,
9007         LPWSTR *ppszName) = 0;
9008 
9009     virtual HRESULT STDMETHODCALLTYPE GetAttributes(
9010         SFGAOF sfgaoMask,
9011         SFGAOF *psfgaoAttribs) = 0;
9012 
9013     virtual HRESULT STDMETHODCALLTYPE Compare(
9014         IShellItem *psi,
9015         SICHINTF hint,
9016         int *piOrder) = 0;
9017 
9018 };
9019 #ifdef __CRT_UUID_DECL
9020 __CRT_UUID_DECL(IShellItem, 0x43826d1e, 0xe718, 0x42ee, 0xbc,0x55, 0xa1,0xe2,0x61,0xc3,0x7b,0xfe)
9021 #endif
9022 #else
9023 typedef struct IShellItemVtbl {
9024     BEGIN_INTERFACE
9025 
9026     /*** IUnknown methods ***/
9027     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9028         IShellItem *This,
9029         REFIID riid,
9030         void **ppvObject);
9031 
9032     ULONG (STDMETHODCALLTYPE *AddRef)(
9033         IShellItem *This);
9034 
9035     ULONG (STDMETHODCALLTYPE *Release)(
9036         IShellItem *This);
9037 
9038     /*** IShellItem methods ***/
9039     HRESULT (STDMETHODCALLTYPE *BindToHandler)(
9040         IShellItem *This,
9041         IBindCtx *pbc,
9042         REFGUID bhid,
9043         REFIID riid,
9044         void **ppv);
9045 
9046     HRESULT (STDMETHODCALLTYPE *GetParent)(
9047         IShellItem *This,
9048         IShellItem **ppsi);
9049 
9050     HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
9051         IShellItem *This,
9052         SIGDN sigdnName,
9053         LPWSTR *ppszName);
9054 
9055     HRESULT (STDMETHODCALLTYPE *GetAttributes)(
9056         IShellItem *This,
9057         SFGAOF sfgaoMask,
9058         SFGAOF *psfgaoAttribs);
9059 
9060     HRESULT (STDMETHODCALLTYPE *Compare)(
9061         IShellItem *This,
9062         IShellItem *psi,
9063         SICHINTF hint,
9064         int *piOrder);
9065 
9066     END_INTERFACE
9067 } IShellItemVtbl;
9068 
9069 interface IShellItem {
9070     CONST_VTBL IShellItemVtbl* lpVtbl;
9071 };
9072 
9073 #ifdef COBJMACROS
9074 #ifndef WIDL_C_INLINE_WRAPPERS
9075 /*** IUnknown methods ***/
9076 #define IShellItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9077 #define IShellItem_AddRef(This) (This)->lpVtbl->AddRef(This)
9078 #define IShellItem_Release(This) (This)->lpVtbl->Release(This)
9079 /*** IShellItem methods ***/
9080 #define IShellItem_BindToHandler(This,pbc,bhid,riid,ppv) (This)->lpVtbl->BindToHandler(This,pbc,bhid,riid,ppv)
9081 #define IShellItem_GetParent(This,ppsi) (This)->lpVtbl->GetParent(This,ppsi)
9082 #define IShellItem_GetDisplayName(This,sigdnName,ppszName) (This)->lpVtbl->GetDisplayName(This,sigdnName,ppszName)
9083 #define IShellItem_GetAttributes(This,sfgaoMask,psfgaoAttribs) (This)->lpVtbl->GetAttributes(This,sfgaoMask,psfgaoAttribs)
9084 #define IShellItem_Compare(This,psi,hint,piOrder) (This)->lpVtbl->Compare(This,psi,hint,piOrder)
9085 #else
9086 /*** IUnknown methods ***/
9087 static FORCEINLINE HRESULT IShellItem_QueryInterface(IShellItem* This,REFIID riid,void **ppvObject) {
9088     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9089 }
9090 static FORCEINLINE ULONG IShellItem_AddRef(IShellItem* This) {
9091     return This->lpVtbl->AddRef(This);
9092 }
9093 static FORCEINLINE ULONG IShellItem_Release(IShellItem* This) {
9094     return This->lpVtbl->Release(This);
9095 }
9096 /*** IShellItem methods ***/
9097 static FORCEINLINE HRESULT IShellItem_BindToHandler(IShellItem* This,IBindCtx *pbc,REFGUID bhid,REFIID riid,void **ppv) {
9098     return This->lpVtbl->BindToHandler(This,pbc,bhid,riid,ppv);
9099 }
9100 static FORCEINLINE HRESULT IShellItem_GetParent(IShellItem* This,IShellItem **ppsi) {
9101     return This->lpVtbl->GetParent(This,ppsi);
9102 }
9103 static FORCEINLINE HRESULT IShellItem_GetDisplayName(IShellItem* This,SIGDN sigdnName,LPWSTR *ppszName) {
9104     return This->lpVtbl->GetDisplayName(This,sigdnName,ppszName);
9105 }
9106 static FORCEINLINE HRESULT IShellItem_GetAttributes(IShellItem* This,SFGAOF sfgaoMask,SFGAOF *psfgaoAttribs) {
9107     return This->lpVtbl->GetAttributes(This,sfgaoMask,psfgaoAttribs);
9108 }
9109 static FORCEINLINE HRESULT IShellItem_Compare(IShellItem* This,IShellItem *psi,SICHINTF hint,int *piOrder) {
9110     return This->lpVtbl->Compare(This,psi,hint,piOrder);
9111 }
9112 #endif
9113 #endif
9114 
9115 #endif
9116 
9117 
9118 #endif  /* __IShellItem_INTERFACE_DEFINED__ */
9119 
9120 
9121 SHSTDAPI_(PIDLIST_ABSOLUTE) SHSimpleIDListFromPath(PCWSTR pszPath);
9122 
9123 #if _WIN32_IE >= _WIN32_IE_IE70
9124   SHSTDAPI SHCreateItemFromIDList(PCIDLIST_ABSOLUTE pidl, REFIID riid, void **ppv);
9125   SHSTDAPI SHCreateItemFromParsingName(PCWSTR pszPath, IBindCtx *pbc, REFIID riid, void **ppv);
9126   SHSTDAPI SHCreateItemWithParent(PCIDLIST_ABSOLUTE pidlParent, IShellFolder *psfParent, PCUITEMID_CHILD pidl, REFIID riid, void **ppvItem);
9127   SHSTDAPI SHCreateItemFromRelativeName(IShellItem *psiParent, PCWSTR pszName, IBindCtx *pbc, REFIID riid, void **ppv);
9128 #endif
9129 #if NTDDI_VERSION >= NTDDI_VISTA
9130   SHSTDAPI SHCreateItemInKnownFolder(REFKNOWNFOLDERID kfid, DWORD dwKFFlags, PCWSTR pszItem, REFIID riid, void **ppv);
9131   SHSTDAPI SHGetIDListFromObject(IUnknown *punk, PIDLIST_ABSOLUTE *ppidl);
9132   SHSTDAPI SHGetItemFromObject(IUnknown *punk, REFIID riid, void **ppv);
9133   SHSTDAPI SHGetPropertyStoreFromIDList(PCIDLIST_ABSOLUTE pidl, GETPROPERTYSTOREFLAGS flags, REFIID riid, void **ppv);
9134   SHSTDAPI SHGetPropertyStoreFromParsingName(PCWSTR pszPath, IBindCtx *pbc, GETPROPERTYSTOREFLAGS flags, REFIID riid, void **ppv);
9135   SHSTDAPI SHGetNameFromIDList(PCIDLIST_ABSOLUTE pidl, SIGDN sigdnName, PWSTR *ppszName);
9136 #endif
9137 #if NTDDI_VERSION >= NTDDI_WIN7
9138 typedef enum DATAOBJ_GET_ITEM_FLAGS {
9139     DOGIF_DEFAULT = 0x0,
9140     DOGIF_TRAVERSE_LINK = 0x1,
9141     DOGIF_NO_HDROP = 0x2,
9142     DOGIF_NO_URL = 0x4,
9143     DOGIF_ONLY_IF_ONE = 0x8
9144 } DATAOBJ_GET_ITEM_FLAGS;
9145 
9146 DEFINE_ENUM_FLAG_OPERATORS(DATAOBJ_GET_ITEM_FLAGS)
9147 
9148   STDAPI SHGetItemFromDataObject(IDataObject *pdtobj, DATAOBJ_GET_ITEM_FLAGS dwFlags, REFIID riid, void **ppv);
9149 #endif
9150 
9151 #define STR_GPS_HANDLERPROPERTIESONLY L"GPS_HANDLERPROPERTIESONLY"
9152 #define STR_GPS_FASTPROPERTIESONLY L"GPS_FASTPROPERTIESONLY"
9153 #define STR_GPS_OPENSLOWITEM L"GPS_OPENSLOWITEM"
9154 #define STR_GPS_DELAYCREATION L"GPS_DELAYCREATION"
9155 #define STR_GPS_BESTEFFORT L"GPS_BESTEFFORT"
9156 #define STR_GPS_NO_OPLOCK L"GPS_NO_OPLOCK"
9157 
9158 /*****************************************************************************
9159  * IShellItem2 interface
9160  */
9161 #ifndef __IShellItem2_INTERFACE_DEFINED__
9162 #define __IShellItem2_INTERFACE_DEFINED__
9163 
9164 DEFINE_GUID(IID_IShellItem2, 0x7e9fb0d3, 0x919f, 0x4307, 0xab,0x2e, 0x9b,0x18,0x60,0x31,0x0c,0x93);
9165 #if defined(__cplusplus) && !defined(CINTERFACE)
9166 MIDL_INTERFACE("7e9fb0d3-919f-4307-ab2e-9b1860310c93")
9167 IShellItem2 : public IShellItem
9168 {
9169     virtual HRESULT STDMETHODCALLTYPE GetPropertyStore(
9170         GETPROPERTYSTOREFLAGS flags,
9171         REFIID riid,
9172         void **ppv) = 0;
9173 
9174     virtual HRESULT STDMETHODCALLTYPE GetPropertyStoreWithCreateObject(
9175         GETPROPERTYSTOREFLAGS flags,
9176         IUnknown *punkCreateObject,
9177         REFIID riid,
9178         void **ppv) = 0;
9179 
9180     virtual HRESULT STDMETHODCALLTYPE GetPropertyStoreForKeys(
9181         const PROPERTYKEY *rgKeys,
9182         UINT cKeys,
9183         GETPROPERTYSTOREFLAGS flags,
9184         REFIID riid,
9185         void **ppv) = 0;
9186 
9187     virtual HRESULT STDMETHODCALLTYPE GetPropertyDescriptionList(
9188         REFPROPERTYKEY keyType,
9189         REFIID riid,
9190         void **ppv) = 0;
9191 
9192     virtual HRESULT STDMETHODCALLTYPE Update(
9193         IBindCtx *pbc) = 0;
9194 
9195     virtual HRESULT STDMETHODCALLTYPE GetProperty(
9196         REFPROPERTYKEY key,
9197         PROPVARIANT *ppropvar) = 0;
9198 
9199     virtual HRESULT STDMETHODCALLTYPE GetCLSID(
9200         REFPROPERTYKEY key,
9201         CLSID *pclsid) = 0;
9202 
9203     virtual HRESULT STDMETHODCALLTYPE GetFileTime(
9204         REFPROPERTYKEY key,
9205         FILETIME *pft) = 0;
9206 
9207     virtual HRESULT STDMETHODCALLTYPE GetInt32(
9208         REFPROPERTYKEY key,
9209         int *pi) = 0;
9210 
9211     virtual HRESULT STDMETHODCALLTYPE GetString(
9212         REFPROPERTYKEY key,
9213         LPWSTR *ppsz) = 0;
9214 
9215     virtual HRESULT STDMETHODCALLTYPE GetUInt32(
9216         REFPROPERTYKEY key,
9217         ULONG *pui) = 0;
9218 
9219     virtual HRESULT STDMETHODCALLTYPE GetUInt64(
9220         REFPROPERTYKEY key,
9221         ULONGLONG *pull) = 0;
9222 
9223     virtual HRESULT STDMETHODCALLTYPE GetBool(
9224         REFPROPERTYKEY key,
9225         WINBOOL *pf) = 0;
9226 
9227 };
9228 #ifdef __CRT_UUID_DECL
9229 __CRT_UUID_DECL(IShellItem2, 0x7e9fb0d3, 0x919f, 0x4307, 0xab,0x2e, 0x9b,0x18,0x60,0x31,0x0c,0x93)
9230 #endif
9231 #else
9232 typedef struct IShellItem2Vtbl {
9233     BEGIN_INTERFACE
9234 
9235     /*** IUnknown methods ***/
9236     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9237         IShellItem2 *This,
9238         REFIID riid,
9239         void **ppvObject);
9240 
9241     ULONG (STDMETHODCALLTYPE *AddRef)(
9242         IShellItem2 *This);
9243 
9244     ULONG (STDMETHODCALLTYPE *Release)(
9245         IShellItem2 *This);
9246 
9247     /*** IShellItem methods ***/
9248     HRESULT (STDMETHODCALLTYPE *BindToHandler)(
9249         IShellItem2 *This,
9250         IBindCtx *pbc,
9251         REFGUID bhid,
9252         REFIID riid,
9253         void **ppv);
9254 
9255     HRESULT (STDMETHODCALLTYPE *GetParent)(
9256         IShellItem2 *This,
9257         IShellItem **ppsi);
9258 
9259     HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
9260         IShellItem2 *This,
9261         SIGDN sigdnName,
9262         LPWSTR *ppszName);
9263 
9264     HRESULT (STDMETHODCALLTYPE *GetAttributes)(
9265         IShellItem2 *This,
9266         SFGAOF sfgaoMask,
9267         SFGAOF *psfgaoAttribs);
9268 
9269     HRESULT (STDMETHODCALLTYPE *Compare)(
9270         IShellItem2 *This,
9271         IShellItem *psi,
9272         SICHINTF hint,
9273         int *piOrder);
9274 
9275     /*** IShellItem2 methods ***/
9276     HRESULT (STDMETHODCALLTYPE *GetPropertyStore)(
9277         IShellItem2 *This,
9278         GETPROPERTYSTOREFLAGS flags,
9279         REFIID riid,
9280         void **ppv);
9281 
9282     HRESULT (STDMETHODCALLTYPE *GetPropertyStoreWithCreateObject)(
9283         IShellItem2 *This,
9284         GETPROPERTYSTOREFLAGS flags,
9285         IUnknown *punkCreateObject,
9286         REFIID riid,
9287         void **ppv);
9288 
9289     HRESULT (STDMETHODCALLTYPE *GetPropertyStoreForKeys)(
9290         IShellItem2 *This,
9291         const PROPERTYKEY *rgKeys,
9292         UINT cKeys,
9293         GETPROPERTYSTOREFLAGS flags,
9294         REFIID riid,
9295         void **ppv);
9296 
9297     HRESULT (STDMETHODCALLTYPE *GetPropertyDescriptionList)(
9298         IShellItem2 *This,
9299         REFPROPERTYKEY keyType,
9300         REFIID riid,
9301         void **ppv);
9302 
9303     HRESULT (STDMETHODCALLTYPE *Update)(
9304         IShellItem2 *This,
9305         IBindCtx *pbc);
9306 
9307     HRESULT (STDMETHODCALLTYPE *GetProperty)(
9308         IShellItem2 *This,
9309         REFPROPERTYKEY key,
9310         PROPVARIANT *ppropvar);
9311 
9312     HRESULT (STDMETHODCALLTYPE *GetCLSID)(
9313         IShellItem2 *This,
9314         REFPROPERTYKEY key,
9315         CLSID *pclsid);
9316 
9317     HRESULT (STDMETHODCALLTYPE *GetFileTime)(
9318         IShellItem2 *This,
9319         REFPROPERTYKEY key,
9320         FILETIME *pft);
9321 
9322     HRESULT (STDMETHODCALLTYPE *GetInt32)(
9323         IShellItem2 *This,
9324         REFPROPERTYKEY key,
9325         int *pi);
9326 
9327     HRESULT (STDMETHODCALLTYPE *GetString)(
9328         IShellItem2 *This,
9329         REFPROPERTYKEY key,
9330         LPWSTR *ppsz);
9331 
9332     HRESULT (STDMETHODCALLTYPE *GetUInt32)(
9333         IShellItem2 *This,
9334         REFPROPERTYKEY key,
9335         ULONG *pui);
9336 
9337     HRESULT (STDMETHODCALLTYPE *GetUInt64)(
9338         IShellItem2 *This,
9339         REFPROPERTYKEY key,
9340         ULONGLONG *pull);
9341 
9342     HRESULT (STDMETHODCALLTYPE *GetBool)(
9343         IShellItem2 *This,
9344         REFPROPERTYKEY key,
9345         WINBOOL *pf);
9346 
9347     END_INTERFACE
9348 } IShellItem2Vtbl;
9349 
9350 interface IShellItem2 {
9351     CONST_VTBL IShellItem2Vtbl* lpVtbl;
9352 };
9353 
9354 #ifdef COBJMACROS
9355 #ifndef WIDL_C_INLINE_WRAPPERS
9356 /*** IUnknown methods ***/
9357 #define IShellItem2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9358 #define IShellItem2_AddRef(This) (This)->lpVtbl->AddRef(This)
9359 #define IShellItem2_Release(This) (This)->lpVtbl->Release(This)
9360 /*** IShellItem methods ***/
9361 #define IShellItem2_BindToHandler(This,pbc,bhid,riid,ppv) (This)->lpVtbl->BindToHandler(This,pbc,bhid,riid,ppv)
9362 #define IShellItem2_GetParent(This,ppsi) (This)->lpVtbl->GetParent(This,ppsi)
9363 #define IShellItem2_GetDisplayName(This,sigdnName,ppszName) (This)->lpVtbl->GetDisplayName(This,sigdnName,ppszName)
9364 #define IShellItem2_GetAttributes(This,sfgaoMask,psfgaoAttribs) (This)->lpVtbl->GetAttributes(This,sfgaoMask,psfgaoAttribs)
9365 #define IShellItem2_Compare(This,psi,hint,piOrder) (This)->lpVtbl->Compare(This,psi,hint,piOrder)
9366 /*** IShellItem2 methods ***/
9367 #define IShellItem2_GetPropertyStore(This,flags,riid,ppv) (This)->lpVtbl->GetPropertyStore(This,flags,riid,ppv)
9368 #define IShellItem2_GetPropertyStoreWithCreateObject(This,flags,punkCreateObject,riid,ppv) (This)->lpVtbl->GetPropertyStoreWithCreateObject(This,flags,punkCreateObject,riid,ppv)
9369 #define IShellItem2_GetPropertyStoreForKeys(This,rgKeys,cKeys,flags,riid,ppv) (This)->lpVtbl->GetPropertyStoreForKeys(This,rgKeys,cKeys,flags,riid,ppv)
9370 #define IShellItem2_GetPropertyDescriptionList(This,keyType,riid,ppv) (This)->lpVtbl->GetPropertyDescriptionList(This,keyType,riid,ppv)
9371 #define IShellItem2_Update(This,pbc) (This)->lpVtbl->Update(This,pbc)
9372 #define IShellItem2_GetProperty(This,key,ppropvar) (This)->lpVtbl->GetProperty(This,key,ppropvar)
9373 #define IShellItem2_GetCLSID(This,key,pclsid) (This)->lpVtbl->GetCLSID(This,key,pclsid)
9374 #define IShellItem2_GetFileTime(This,key,pft) (This)->lpVtbl->GetFileTime(This,key,pft)
9375 #define IShellItem2_GetInt32(This,key,pi) (This)->lpVtbl->GetInt32(This,key,pi)
9376 #define IShellItem2_GetString(This,key,ppsz) (This)->lpVtbl->GetString(This,key,ppsz)
9377 #define IShellItem2_GetUInt32(This,key,pui) (This)->lpVtbl->GetUInt32(This,key,pui)
9378 #define IShellItem2_GetUInt64(This,key,pull) (This)->lpVtbl->GetUInt64(This,key,pull)
9379 #define IShellItem2_GetBool(This,key,pf) (This)->lpVtbl->GetBool(This,key,pf)
9380 #else
9381 /*** IUnknown methods ***/
9382 static FORCEINLINE HRESULT IShellItem2_QueryInterface(IShellItem2* This,REFIID riid,void **ppvObject) {
9383     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9384 }
9385 static FORCEINLINE ULONG IShellItem2_AddRef(IShellItem2* This) {
9386     return This->lpVtbl->AddRef(This);
9387 }
9388 static FORCEINLINE ULONG IShellItem2_Release(IShellItem2* This) {
9389     return This->lpVtbl->Release(This);
9390 }
9391 /*** IShellItem methods ***/
9392 static FORCEINLINE HRESULT IShellItem2_BindToHandler(IShellItem2* This,IBindCtx *pbc,REFGUID bhid,REFIID riid,void **ppv) {
9393     return This->lpVtbl->BindToHandler(This,pbc,bhid,riid,ppv);
9394 }
9395 static FORCEINLINE HRESULT IShellItem2_GetParent(IShellItem2* This,IShellItem **ppsi) {
9396     return This->lpVtbl->GetParent(This,ppsi);
9397 }
9398 static FORCEINLINE HRESULT IShellItem2_GetDisplayName(IShellItem2* This,SIGDN sigdnName,LPWSTR *ppszName) {
9399     return This->lpVtbl->GetDisplayName(This,sigdnName,ppszName);
9400 }
9401 static FORCEINLINE HRESULT IShellItem2_GetAttributes(IShellItem2* This,SFGAOF sfgaoMask,SFGAOF *psfgaoAttribs) {
9402     return This->lpVtbl->GetAttributes(This,sfgaoMask,psfgaoAttribs);
9403 }
9404 static FORCEINLINE HRESULT IShellItem2_Compare(IShellItem2* This,IShellItem *psi,SICHINTF hint,int *piOrder) {
9405     return This->lpVtbl->Compare(This,psi,hint,piOrder);
9406 }
9407 /*** IShellItem2 methods ***/
9408 static FORCEINLINE HRESULT IShellItem2_GetPropertyStore(IShellItem2* This,GETPROPERTYSTOREFLAGS flags,REFIID riid,void **ppv) {
9409     return This->lpVtbl->GetPropertyStore(This,flags,riid,ppv);
9410 }
9411 static FORCEINLINE HRESULT IShellItem2_GetPropertyStoreWithCreateObject(IShellItem2* This,GETPROPERTYSTOREFLAGS flags,IUnknown *punkCreateObject,REFIID riid,void **ppv) {
9412     return This->lpVtbl->GetPropertyStoreWithCreateObject(This,flags,punkCreateObject,riid,ppv);
9413 }
9414 static FORCEINLINE HRESULT IShellItem2_GetPropertyStoreForKeys(IShellItem2* This,const PROPERTYKEY *rgKeys,UINT cKeys,GETPROPERTYSTOREFLAGS flags,REFIID riid,void **ppv) {
9415     return This->lpVtbl->GetPropertyStoreForKeys(This,rgKeys,cKeys,flags,riid,ppv);
9416 }
9417 static FORCEINLINE HRESULT IShellItem2_GetPropertyDescriptionList(IShellItem2* This,REFPROPERTYKEY keyType,REFIID riid,void **ppv) {
9418     return This->lpVtbl->GetPropertyDescriptionList(This,keyType,riid,ppv);
9419 }
9420 static FORCEINLINE HRESULT IShellItem2_Update(IShellItem2* This,IBindCtx *pbc) {
9421     return This->lpVtbl->Update(This,pbc);
9422 }
9423 static FORCEINLINE HRESULT IShellItem2_GetProperty(IShellItem2* This,REFPROPERTYKEY key,PROPVARIANT *ppropvar) {
9424     return This->lpVtbl->GetProperty(This,key,ppropvar);
9425 }
9426 static FORCEINLINE HRESULT IShellItem2_GetCLSID(IShellItem2* This,REFPROPERTYKEY key,CLSID *pclsid) {
9427     return This->lpVtbl->GetCLSID(This,key,pclsid);
9428 }
9429 static FORCEINLINE HRESULT IShellItem2_GetFileTime(IShellItem2* This,REFPROPERTYKEY key,FILETIME *pft) {
9430     return This->lpVtbl->GetFileTime(This,key,pft);
9431 }
9432 static FORCEINLINE HRESULT IShellItem2_GetInt32(IShellItem2* This,REFPROPERTYKEY key,int *pi) {
9433     return This->lpVtbl->GetInt32(This,key,pi);
9434 }
9435 static FORCEINLINE HRESULT IShellItem2_GetString(IShellItem2* This,REFPROPERTYKEY key,LPWSTR *ppsz) {
9436     return This->lpVtbl->GetString(This,key,ppsz);
9437 }
9438 static FORCEINLINE HRESULT IShellItem2_GetUInt32(IShellItem2* This,REFPROPERTYKEY key,ULONG *pui) {
9439     return This->lpVtbl->GetUInt32(This,key,pui);
9440 }
9441 static FORCEINLINE HRESULT IShellItem2_GetUInt64(IShellItem2* This,REFPROPERTYKEY key,ULONGLONG *pull) {
9442     return This->lpVtbl->GetUInt64(This,key,pull);
9443 }
9444 static FORCEINLINE HRESULT IShellItem2_GetBool(IShellItem2* This,REFPROPERTYKEY key,WINBOOL *pf) {
9445     return This->lpVtbl->GetBool(This,key,pf);
9446 }
9447 #endif
9448 #endif
9449 
9450 #endif
9451 
9452 
9453 #endif  /* __IShellItem2_INTERFACE_DEFINED__ */
9454 
9455 
9456 enum _SIIGBF {
9457     SIIGBF_RESIZETOFIT = 0x0,
9458     SIIGBF_BIGGERSIZEOK = 0x1,
9459     SIIGBF_MEMORYONLY = 0x2,
9460     SIIGBF_ICONONLY = 0x4,
9461     SIIGBF_THUMBNAILONLY = 0x8,
9462     SIIGBF_INCACHEONLY = 0x10,
9463     SIIGBF_CROPTOSQUARE = 0x20,
9464     SIIGBF_WIDETHUMBNAILS = 0x40,
9465     SIIGBF_ICONBACKGROUND = 0x80,
9466     SIIGBF_SCALEUP = 0x100
9467 };
9468 
9469 typedef int SIIGBF;
9470 
9471 /*****************************************************************************
9472  * IShellItemImageFactory interface
9473  */
9474 #ifndef __IShellItemImageFactory_INTERFACE_DEFINED__
9475 #define __IShellItemImageFactory_INTERFACE_DEFINED__
9476 
9477 DEFINE_GUID(IID_IShellItemImageFactory, 0xbcc18b79, 0xba16, 0x442f, 0x80,0xc4, 0x8a,0x59,0xc3,0x0c,0x46,0x3b);
9478 #if defined(__cplusplus) && !defined(CINTERFACE)
9479 MIDL_INTERFACE("bcc18b79-ba16-442f-80c4-8a59c30c463b")
9480 IShellItemImageFactory : public IUnknown
9481 {
9482     virtual HRESULT STDMETHODCALLTYPE GetImage(
9483         SIZE size,
9484         SIIGBF flags,
9485         HBITMAP *phbm) = 0;
9486 
9487 };
9488 #ifdef __CRT_UUID_DECL
9489 __CRT_UUID_DECL(IShellItemImageFactory, 0xbcc18b79, 0xba16, 0x442f, 0x80,0xc4, 0x8a,0x59,0xc3,0x0c,0x46,0x3b)
9490 #endif
9491 #else
9492 typedef struct IShellItemImageFactoryVtbl {
9493     BEGIN_INTERFACE
9494 
9495     /*** IUnknown methods ***/
9496     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9497         IShellItemImageFactory *This,
9498         REFIID riid,
9499         void **ppvObject);
9500 
9501     ULONG (STDMETHODCALLTYPE *AddRef)(
9502         IShellItemImageFactory *This);
9503 
9504     ULONG (STDMETHODCALLTYPE *Release)(
9505         IShellItemImageFactory *This);
9506 
9507     /*** IShellItemImageFactory methods ***/
9508     HRESULT (STDMETHODCALLTYPE *GetImage)(
9509         IShellItemImageFactory *This,
9510         SIZE size,
9511         SIIGBF flags,
9512         HBITMAP *phbm);
9513 
9514     END_INTERFACE
9515 } IShellItemImageFactoryVtbl;
9516 
9517 interface IShellItemImageFactory {
9518     CONST_VTBL IShellItemImageFactoryVtbl* lpVtbl;
9519 };
9520 
9521 #ifdef COBJMACROS
9522 #ifndef WIDL_C_INLINE_WRAPPERS
9523 /*** IUnknown methods ***/
9524 #define IShellItemImageFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9525 #define IShellItemImageFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
9526 #define IShellItemImageFactory_Release(This) (This)->lpVtbl->Release(This)
9527 /*** IShellItemImageFactory methods ***/
9528 #define IShellItemImageFactory_GetImage(This,size,flags,phbm) (This)->lpVtbl->GetImage(This,size,flags,phbm)
9529 #else
9530 /*** IUnknown methods ***/
9531 static FORCEINLINE HRESULT IShellItemImageFactory_QueryInterface(IShellItemImageFactory* This,REFIID riid,void **ppvObject) {
9532     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9533 }
9534 static FORCEINLINE ULONG IShellItemImageFactory_AddRef(IShellItemImageFactory* This) {
9535     return This->lpVtbl->AddRef(This);
9536 }
9537 static FORCEINLINE ULONG IShellItemImageFactory_Release(IShellItemImageFactory* This) {
9538     return This->lpVtbl->Release(This);
9539 }
9540 /*** IShellItemImageFactory methods ***/
9541 static FORCEINLINE HRESULT IShellItemImageFactory_GetImage(IShellItemImageFactory* This,SIZE size,SIIGBF flags,HBITMAP *phbm) {
9542     return This->lpVtbl->GetImage(This,size,flags,phbm);
9543 }
9544 #endif
9545 #endif
9546 
9547 #endif
9548 
9549 
9550 #endif  /* __IShellItemImageFactory_INTERFACE_DEFINED__ */
9551 
9552 
9553 /*****************************************************************************
9554  * IUserAccountChangeCallback interface
9555  */
9556 #ifndef __IUserAccountChangeCallback_INTERFACE_DEFINED__
9557 #define __IUserAccountChangeCallback_INTERFACE_DEFINED__
9558 
9559 DEFINE_GUID(IID_IUserAccountChangeCallback, 0xa561e69a, 0xb4b8, 0x4113, 0x91,0xa5, 0x64,0xc6,0xbc,0xca,0x34,0x30);
9560 #if defined(__cplusplus) && !defined(CINTERFACE)
9561 MIDL_INTERFACE("a561e69a-b4b8-4113-91a5-64c6bcca3430")
9562 IUserAccountChangeCallback : public IUnknown
9563 {
9564     virtual HRESULT STDMETHODCALLTYPE OnPictureChange(
9565         LPCWSTR pszUserName) = 0;
9566 
9567 };
9568 #ifdef __CRT_UUID_DECL
9569 __CRT_UUID_DECL(IUserAccountChangeCallback, 0xa561e69a, 0xb4b8, 0x4113, 0x91,0xa5, 0x64,0xc6,0xbc,0xca,0x34,0x30)
9570 #endif
9571 #else
9572 typedef struct IUserAccountChangeCallbackVtbl {
9573     BEGIN_INTERFACE
9574 
9575     /*** IUnknown methods ***/
9576     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9577         IUserAccountChangeCallback *This,
9578         REFIID riid,
9579         void **ppvObject);
9580 
9581     ULONG (STDMETHODCALLTYPE *AddRef)(
9582         IUserAccountChangeCallback *This);
9583 
9584     ULONG (STDMETHODCALLTYPE *Release)(
9585         IUserAccountChangeCallback *This);
9586 
9587     /*** IUserAccountChangeCallback methods ***/
9588     HRESULT (STDMETHODCALLTYPE *OnPictureChange)(
9589         IUserAccountChangeCallback *This,
9590         LPCWSTR pszUserName);
9591 
9592     END_INTERFACE
9593 } IUserAccountChangeCallbackVtbl;
9594 
9595 interface IUserAccountChangeCallback {
9596     CONST_VTBL IUserAccountChangeCallbackVtbl* lpVtbl;
9597 };
9598 
9599 #ifdef COBJMACROS
9600 #ifndef WIDL_C_INLINE_WRAPPERS
9601 /*** IUnknown methods ***/
9602 #define IUserAccountChangeCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9603 #define IUserAccountChangeCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
9604 #define IUserAccountChangeCallback_Release(This) (This)->lpVtbl->Release(This)
9605 /*** IUserAccountChangeCallback methods ***/
9606 #define IUserAccountChangeCallback_OnPictureChange(This,pszUserName) (This)->lpVtbl->OnPictureChange(This,pszUserName)
9607 #else
9608 /*** IUnknown methods ***/
9609 static FORCEINLINE HRESULT IUserAccountChangeCallback_QueryInterface(IUserAccountChangeCallback* This,REFIID riid,void **ppvObject) {
9610     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9611 }
9612 static FORCEINLINE ULONG IUserAccountChangeCallback_AddRef(IUserAccountChangeCallback* This) {
9613     return This->lpVtbl->AddRef(This);
9614 }
9615 static FORCEINLINE ULONG IUserAccountChangeCallback_Release(IUserAccountChangeCallback* This) {
9616     return This->lpVtbl->Release(This);
9617 }
9618 /*** IUserAccountChangeCallback methods ***/
9619 static FORCEINLINE HRESULT IUserAccountChangeCallback_OnPictureChange(IUserAccountChangeCallback* This,LPCWSTR pszUserName) {
9620     return This->lpVtbl->OnPictureChange(This,pszUserName);
9621 }
9622 #endif
9623 #endif
9624 
9625 #endif
9626 
9627 
9628 #endif  /* __IUserAccountChangeCallback_INTERFACE_DEFINED__ */
9629 
9630 
9631 /*****************************************************************************
9632  * IEnumShellItems interface
9633  */
9634 #ifndef __IEnumShellItems_INTERFACE_DEFINED__
9635 #define __IEnumShellItems_INTERFACE_DEFINED__
9636 
9637 DEFINE_GUID(IID_IEnumShellItems, 0x70629033, 0xe363, 0x4a28, 0xa5,0x67, 0x0d,0xb7,0x80,0x06,0xe6,0xd7);
9638 #if defined(__cplusplus) && !defined(CINTERFACE)
9639 MIDL_INTERFACE("70629033-e363-4a28-a567-0db78006e6d7")
9640 IEnumShellItems : public IUnknown
9641 {
9642     virtual HRESULT STDMETHODCALLTYPE Next(
9643         ULONG celt,
9644         IShellItem **rgelt,
9645         ULONG *pceltFetched) = 0;
9646 
9647     virtual HRESULT STDMETHODCALLTYPE Skip(
9648         ULONG celt) = 0;
9649 
9650     virtual HRESULT STDMETHODCALLTYPE Reset(
9651         ) = 0;
9652 
9653     virtual HRESULT STDMETHODCALLTYPE Clone(
9654         IEnumShellItems **ppenum) = 0;
9655 
9656 };
9657 #ifdef __CRT_UUID_DECL
9658 __CRT_UUID_DECL(IEnumShellItems, 0x70629033, 0xe363, 0x4a28, 0xa5,0x67, 0x0d,0xb7,0x80,0x06,0xe6,0xd7)
9659 #endif
9660 #else
9661 typedef struct IEnumShellItemsVtbl {
9662     BEGIN_INTERFACE
9663 
9664     /*** IUnknown methods ***/
9665     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9666         IEnumShellItems *This,
9667         REFIID riid,
9668         void **ppvObject);
9669 
9670     ULONG (STDMETHODCALLTYPE *AddRef)(
9671         IEnumShellItems *This);
9672 
9673     ULONG (STDMETHODCALLTYPE *Release)(
9674         IEnumShellItems *This);
9675 
9676     /*** IEnumShellItems methods ***/
9677     HRESULT (STDMETHODCALLTYPE *Next)(
9678         IEnumShellItems *This,
9679         ULONG celt,
9680         IShellItem **rgelt,
9681         ULONG *pceltFetched);
9682 
9683     HRESULT (STDMETHODCALLTYPE *Skip)(
9684         IEnumShellItems *This,
9685         ULONG celt);
9686 
9687     HRESULT (STDMETHODCALLTYPE *Reset)(
9688         IEnumShellItems *This);
9689 
9690     HRESULT (STDMETHODCALLTYPE *Clone)(
9691         IEnumShellItems *This,
9692         IEnumShellItems **ppenum);
9693 
9694     END_INTERFACE
9695 } IEnumShellItemsVtbl;
9696 
9697 interface IEnumShellItems {
9698     CONST_VTBL IEnumShellItemsVtbl* lpVtbl;
9699 };
9700 
9701 #ifdef COBJMACROS
9702 #ifndef WIDL_C_INLINE_WRAPPERS
9703 /*** IUnknown methods ***/
9704 #define IEnumShellItems_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9705 #define IEnumShellItems_AddRef(This) (This)->lpVtbl->AddRef(This)
9706 #define IEnumShellItems_Release(This) (This)->lpVtbl->Release(This)
9707 /*** IEnumShellItems methods ***/
9708 #define IEnumShellItems_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
9709 #define IEnumShellItems_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
9710 #define IEnumShellItems_Reset(This) (This)->lpVtbl->Reset(This)
9711 #define IEnumShellItems_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
9712 #else
9713 /*** IUnknown methods ***/
9714 static FORCEINLINE HRESULT IEnumShellItems_QueryInterface(IEnumShellItems* This,REFIID riid,void **ppvObject) {
9715     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9716 }
9717 static FORCEINLINE ULONG IEnumShellItems_AddRef(IEnumShellItems* This) {
9718     return This->lpVtbl->AddRef(This);
9719 }
9720 static FORCEINLINE ULONG IEnumShellItems_Release(IEnumShellItems* This) {
9721     return This->lpVtbl->Release(This);
9722 }
9723 /*** IEnumShellItems methods ***/
9724 static FORCEINLINE HRESULT IEnumShellItems_Next(IEnumShellItems* This,ULONG celt,IShellItem **rgelt,ULONG *pceltFetched) {
9725     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
9726 }
9727 static FORCEINLINE HRESULT IEnumShellItems_Skip(IEnumShellItems* This,ULONG celt) {
9728     return This->lpVtbl->Skip(This,celt);
9729 }
9730 static FORCEINLINE HRESULT IEnumShellItems_Reset(IEnumShellItems* This) {
9731     return This->lpVtbl->Reset(This);
9732 }
9733 static FORCEINLINE HRESULT IEnumShellItems_Clone(IEnumShellItems* This,IEnumShellItems **ppenum) {
9734     return This->lpVtbl->Clone(This,ppenum);
9735 }
9736 #endif
9737 #endif
9738 
9739 #endif
9740 
9741 HRESULT STDMETHODCALLTYPE IEnumShellItems_RemoteNext_Proxy(
9742     IEnumShellItems* This,
9743     ULONG celt,
9744     IShellItem **rgelt,
9745     ULONG *pceltFetched);
9746 void __RPC_STUB IEnumShellItems_RemoteNext_Stub(
9747     IRpcStubBuffer* This,
9748     IRpcChannelBuffer* pRpcChannelBuffer,
9749     PRPC_MESSAGE pRpcMessage,
9750     DWORD* pdwStubPhase);
9751 HRESULT CALLBACK IEnumShellItems_Next_Proxy(
9752     IEnumShellItems* This,
9753     ULONG celt,
9754     IShellItem **rgelt,
9755     ULONG *pceltFetched);
9756 HRESULT __RPC_STUB IEnumShellItems_Next_Stub(
9757     IEnumShellItems* This,
9758     ULONG celt,
9759     IShellItem **rgelt,
9760     ULONG *pceltFetched);
9761 
9762 #endif  /* __IEnumShellItems_INTERFACE_DEFINED__ */
9763 
9764 
9765 typedef GUID STGTRANSCONFIRMATION;
9766 typedef GUID *LPSTGTRANSCONFIRMATION;
9767 
9768 typedef enum STGOP {
9769     STGOP_MOVE = 1,
9770     STGOP_COPY = 2,
9771     STGOP_SYNC = 3,
9772     STGOP_REMOVE = 5,
9773     STGOP_RENAME = 6,
9774     STGOP_APPLYPROPERTIES = 8,
9775     STGOP_NEW = 10
9776 } STGOP;
9777 
9778 enum _TRANSFER_SOURCE_FLAGS {
9779     TSF_NORMAL = 0x0,
9780     TSF_FAIL_EXIST = 0x0,
9781     TSF_RENAME_EXIST = 0x1,
9782     TSF_OVERWRITE_EXIST = 0x2,
9783     TSF_ALLOW_DECRYPTION = 0x4,
9784     TSF_NO_SECURITY = 0x8,
9785     TSF_COPY_CREATION_TIME = 0x10,
9786     TSF_COPY_WRITE_TIME = 0x20,
9787     TSF_USE_FULL_ACCESS = 0x40,
9788     TSF_DELETE_RECYCLE_IF_POSSIBLE = 0x80,
9789     TSF_COPY_HARD_LINK = 0x100,
9790     TSF_COPY_LOCALIZED_NAME = 0x200,
9791     TSF_MOVE_AS_COPY_DELETE = 0x400,
9792     TSF_SUSPEND_SHELLEVENTS = 0x800
9793 };
9794 
9795 typedef DWORD TRANSFER_SOURCE_FLAGS;
9796 
9797 #if _WIN32_IE >= _WIN32_IE_IE70
9798 /*****************************************************************************
9799  * ITransferAdviseSink interface
9800  */
9801 #ifndef __ITransferAdviseSink_INTERFACE_DEFINED__
9802 #define __ITransferAdviseSink_INTERFACE_DEFINED__
9803 
9804 enum _TRANSFER_ADVISE_STATE {
9805     TS_NONE = 0x0,
9806     TS_PERFORMING = 0x1,
9807     TS_PREPARING = 0x2,
9808     TS_INDETERMINATE = 0x4
9809 };
9810 
9811 typedef DWORD TRANSFER_ADVISE_STATE;
9812 
9813 DEFINE_GUID(IID_ITransferAdviseSink, 0xd594d0d8, 0x8da7, 0x457b, 0xb3,0xb4, 0xce,0x5d,0xba,0xac,0x0b,0x88);
9814 #if defined(__cplusplus) && !defined(CINTERFACE)
9815 MIDL_INTERFACE("d594d0d8-8da7-457b-b3b4-ce5dbaac0b88")
9816 ITransferAdviseSink : public IUnknown
9817 {
9818     virtual HRESULT STDMETHODCALLTYPE UpdateProgress(
9819         ULONGLONG ullSizeCurrent,
9820         ULONGLONG ullSizeTotal,
9821         int nFilesCurrent,
9822         int nFilesTotal,
9823         int nFoldersCurrent,
9824         int nFoldersTotal) = 0;
9825 
9826     virtual HRESULT STDMETHODCALLTYPE UpdateTransferState(
9827         TRANSFER_ADVISE_STATE ts) = 0;
9828 
9829     virtual HRESULT STDMETHODCALLTYPE ConfirmOverwrite(
9830         IShellItem *psiSource,
9831         IShellItem *psiDestParent,
9832         LPCWSTR pszName) = 0;
9833 
9834     virtual HRESULT STDMETHODCALLTYPE ConfirmEncryptionLoss(
9835         IShellItem *psiSource) = 0;
9836 
9837     virtual HRESULT STDMETHODCALLTYPE FileFailure(
9838         IShellItem *psi,
9839         LPCWSTR pszItem,
9840         HRESULT hrError,
9841         LPWSTR pszRename,
9842         ULONG cchRename) = 0;
9843 
9844     virtual HRESULT STDMETHODCALLTYPE SubStreamFailure(
9845         IShellItem *psi,
9846         LPCWSTR pszStreamName,
9847         HRESULT hrError) = 0;
9848 
9849     virtual HRESULT STDMETHODCALLTYPE PropertyFailure(
9850         IShellItem *psi,
9851         const PROPERTYKEY *pkey,
9852         HRESULT hrError) = 0;
9853 
9854 };
9855 #ifdef __CRT_UUID_DECL
9856 __CRT_UUID_DECL(ITransferAdviseSink, 0xd594d0d8, 0x8da7, 0x457b, 0xb3,0xb4, 0xce,0x5d,0xba,0xac,0x0b,0x88)
9857 #endif
9858 #else
9859 typedef struct ITransferAdviseSinkVtbl {
9860     BEGIN_INTERFACE
9861 
9862     /*** IUnknown methods ***/
9863     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9864         ITransferAdviseSink *This,
9865         REFIID riid,
9866         void **ppvObject);
9867 
9868     ULONG (STDMETHODCALLTYPE *AddRef)(
9869         ITransferAdviseSink *This);
9870 
9871     ULONG (STDMETHODCALLTYPE *Release)(
9872         ITransferAdviseSink *This);
9873 
9874     /*** ITransferAdviseSink methods ***/
9875     HRESULT (STDMETHODCALLTYPE *UpdateProgress)(
9876         ITransferAdviseSink *This,
9877         ULONGLONG ullSizeCurrent,
9878         ULONGLONG ullSizeTotal,
9879         int nFilesCurrent,
9880         int nFilesTotal,
9881         int nFoldersCurrent,
9882         int nFoldersTotal);
9883 
9884     HRESULT (STDMETHODCALLTYPE *UpdateTransferState)(
9885         ITransferAdviseSink *This,
9886         TRANSFER_ADVISE_STATE ts);
9887 
9888     HRESULT (STDMETHODCALLTYPE *ConfirmOverwrite)(
9889         ITransferAdviseSink *This,
9890         IShellItem *psiSource,
9891         IShellItem *psiDestParent,
9892         LPCWSTR pszName);
9893 
9894     HRESULT (STDMETHODCALLTYPE *ConfirmEncryptionLoss)(
9895         ITransferAdviseSink *This,
9896         IShellItem *psiSource);
9897 
9898     HRESULT (STDMETHODCALLTYPE *FileFailure)(
9899         ITransferAdviseSink *This,
9900         IShellItem *psi,
9901         LPCWSTR pszItem,
9902         HRESULT hrError,
9903         LPWSTR pszRename,
9904         ULONG cchRename);
9905 
9906     HRESULT (STDMETHODCALLTYPE *SubStreamFailure)(
9907         ITransferAdviseSink *This,
9908         IShellItem *psi,
9909         LPCWSTR pszStreamName,
9910         HRESULT hrError);
9911 
9912     HRESULT (STDMETHODCALLTYPE *PropertyFailure)(
9913         ITransferAdviseSink *This,
9914         IShellItem *psi,
9915         const PROPERTYKEY *pkey,
9916         HRESULT hrError);
9917 
9918     END_INTERFACE
9919 } ITransferAdviseSinkVtbl;
9920 
9921 interface ITransferAdviseSink {
9922     CONST_VTBL ITransferAdviseSinkVtbl* lpVtbl;
9923 };
9924 
9925 #ifdef COBJMACROS
9926 #ifndef WIDL_C_INLINE_WRAPPERS
9927 /*** IUnknown methods ***/
9928 #define ITransferAdviseSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9929 #define ITransferAdviseSink_AddRef(This) (This)->lpVtbl->AddRef(This)
9930 #define ITransferAdviseSink_Release(This) (This)->lpVtbl->Release(This)
9931 /*** ITransferAdviseSink methods ***/
9932 #define ITransferAdviseSink_UpdateProgress(This,ullSizeCurrent,ullSizeTotal,nFilesCurrent,nFilesTotal,nFoldersCurrent,nFoldersTotal) (This)->lpVtbl->UpdateProgress(This,ullSizeCurrent,ullSizeTotal,nFilesCurrent,nFilesTotal,nFoldersCurrent,nFoldersTotal)
9933 #define ITransferAdviseSink_UpdateTransferState(This,ts) (This)->lpVtbl->UpdateTransferState(This,ts)
9934 #define ITransferAdviseSink_ConfirmOverwrite(This,psiSource,psiDestParent,pszName) (This)->lpVtbl->ConfirmOverwrite(This,psiSource,psiDestParent,pszName)
9935 #define ITransferAdviseSink_ConfirmEncryptionLoss(This,psiSource) (This)->lpVtbl->ConfirmEncryptionLoss(This,psiSource)
9936 #define ITransferAdviseSink_FileFailure(This,psi,pszItem,hrError,pszRename,cchRename) (This)->lpVtbl->FileFailure(This,psi,pszItem,hrError,pszRename,cchRename)
9937 #define ITransferAdviseSink_SubStreamFailure(This,psi,pszStreamName,hrError) (This)->lpVtbl->SubStreamFailure(This,psi,pszStreamName,hrError)
9938 #define ITransferAdviseSink_PropertyFailure(This,psi,pkey,hrError) (This)->lpVtbl->PropertyFailure(This,psi,pkey,hrError)
9939 #else
9940 /*** IUnknown methods ***/
9941 static FORCEINLINE HRESULT ITransferAdviseSink_QueryInterface(ITransferAdviseSink* This,REFIID riid,void **ppvObject) {
9942     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9943 }
9944 static FORCEINLINE ULONG ITransferAdviseSink_AddRef(ITransferAdviseSink* This) {
9945     return This->lpVtbl->AddRef(This);
9946 }
9947 static FORCEINLINE ULONG ITransferAdviseSink_Release(ITransferAdviseSink* This) {
9948     return This->lpVtbl->Release(This);
9949 }
9950 /*** ITransferAdviseSink methods ***/
9951 static FORCEINLINE HRESULT ITransferAdviseSink_UpdateProgress(ITransferAdviseSink* This,ULONGLONG ullSizeCurrent,ULONGLONG ullSizeTotal,int nFilesCurrent,int nFilesTotal,int nFoldersCurrent,int nFoldersTotal) {
9952     return This->lpVtbl->UpdateProgress(This,ullSizeCurrent,ullSizeTotal,nFilesCurrent,nFilesTotal,nFoldersCurrent,nFoldersTotal);
9953 }
9954 static FORCEINLINE HRESULT ITransferAdviseSink_UpdateTransferState(ITransferAdviseSink* This,TRANSFER_ADVISE_STATE ts) {
9955     return This->lpVtbl->UpdateTransferState(This,ts);
9956 }
9957 static FORCEINLINE HRESULT ITransferAdviseSink_ConfirmOverwrite(ITransferAdviseSink* This,IShellItem *psiSource,IShellItem *psiDestParent,LPCWSTR pszName) {
9958     return This->lpVtbl->ConfirmOverwrite(This,psiSource,psiDestParent,pszName);
9959 }
9960 static FORCEINLINE HRESULT ITransferAdviseSink_ConfirmEncryptionLoss(ITransferAdviseSink* This,IShellItem *psiSource) {
9961     return This->lpVtbl->ConfirmEncryptionLoss(This,psiSource);
9962 }
9963 static FORCEINLINE HRESULT ITransferAdviseSink_FileFailure(ITransferAdviseSink* This,IShellItem *psi,LPCWSTR pszItem,HRESULT hrError,LPWSTR pszRename,ULONG cchRename) {
9964     return This->lpVtbl->FileFailure(This,psi,pszItem,hrError,pszRename,cchRename);
9965 }
9966 static FORCEINLINE HRESULT ITransferAdviseSink_SubStreamFailure(ITransferAdviseSink* This,IShellItem *psi,LPCWSTR pszStreamName,HRESULT hrError) {
9967     return This->lpVtbl->SubStreamFailure(This,psi,pszStreamName,hrError);
9968 }
9969 static FORCEINLINE HRESULT ITransferAdviseSink_PropertyFailure(ITransferAdviseSink* This,IShellItem *psi,const PROPERTYKEY *pkey,HRESULT hrError) {
9970     return This->lpVtbl->PropertyFailure(This,psi,pkey,hrError);
9971 }
9972 #endif
9973 #endif
9974 
9975 #endif
9976 
9977 
9978 #endif  /* __ITransferAdviseSink_INTERFACE_DEFINED__ */
9979 
9980 #endif
9981 
9982 #if NTDDI_VERSION >= NTDDI_VISTA
9983 /*****************************************************************************
9984  * ITransferSource interface
9985  */
9986 #ifndef __ITransferSource_INTERFACE_DEFINED__
9987 #define __ITransferSource_INTERFACE_DEFINED__
9988 
9989 DEFINE_GUID(IID_ITransferSource, 0x00adb003, 0xbde9, 0x45c6, 0x8e,0x29, 0xd0,0x9f,0x93,0x53,0xe1,0x08);
9990 #if defined(__cplusplus) && !defined(CINTERFACE)
9991 MIDL_INTERFACE("00adb003-bde9-45c6-8e29-d09f9353e108")
9992 ITransferSource : public IUnknown
9993 {
9994     virtual HRESULT STDMETHODCALLTYPE Advise(
9995         ITransferAdviseSink *psink,
9996         DWORD *pdwCookie) = 0;
9997 
9998     virtual HRESULT STDMETHODCALLTYPE Unadvise(
9999         DWORD dwCookie) = 0;
10000 
10001     virtual HRESULT STDMETHODCALLTYPE SetProperties(
10002         IPropertyChangeArray *pproparray) = 0;
10003 
10004     virtual HRESULT STDMETHODCALLTYPE OpenItem(
10005         IShellItem *psi,
10006         TRANSFER_SOURCE_FLAGS flags,
10007         REFIID riid,
10008         void **ppv) = 0;
10009 
10010     virtual HRESULT STDMETHODCALLTYPE MoveItem(
10011         IShellItem *psi,
10012         IShellItem *psiParentDst,
10013         LPCWSTR pszNameDst,
10014         TRANSFER_SOURCE_FLAGS flags,
10015         IShellItem **ppsiNew) = 0;
10016 
10017     virtual HRESULT STDMETHODCALLTYPE RecycleItem(
10018         IShellItem *psiSource,
10019         IShellItem *psiParentDest,
10020         TRANSFER_SOURCE_FLAGS flags,
10021         IShellItem **ppsiNewDest) = 0;
10022 
10023     virtual HRESULT STDMETHODCALLTYPE RemoveItem(
10024         IShellItem *psiSource,
10025         TRANSFER_SOURCE_FLAGS flags) = 0;
10026 
10027     virtual HRESULT STDMETHODCALLTYPE RenameItem(
10028         IShellItem *psiSource,
10029         LPCWSTR pszNewName,
10030         TRANSFER_SOURCE_FLAGS flags,
10031         IShellItem **ppsiNewDest) = 0;
10032 
10033     virtual HRESULT STDMETHODCALLTYPE LinkItem(
10034         IShellItem *psiSource,
10035         IShellItem *psiParentDest,
10036         LPCWSTR pszNewName,
10037         TRANSFER_SOURCE_FLAGS flags,
10038         IShellItem **ppsiNewDest) = 0;
10039 
10040     virtual HRESULT STDMETHODCALLTYPE ApplyPropertiesToItem(
10041         IShellItem *psiSource,
10042         IShellItem **ppsiNew) = 0;
10043 
10044     virtual HRESULT STDMETHODCALLTYPE GetDefaultDestinationName(
10045         IShellItem *psiSource,
10046         IShellItem *psiParentDest,
10047         LPWSTR *ppszDestinationName) = 0;
10048 
10049     virtual HRESULT STDMETHODCALLTYPE EnterFolder(
10050         IShellItem *psiChildFolderDest) = 0;
10051 
10052     virtual HRESULT STDMETHODCALLTYPE LeaveFolder(
10053         IShellItem *psiChildFolderDest) = 0;
10054 
10055 };
10056 #ifdef __CRT_UUID_DECL
10057 __CRT_UUID_DECL(ITransferSource, 0x00adb003, 0xbde9, 0x45c6, 0x8e,0x29, 0xd0,0x9f,0x93,0x53,0xe1,0x08)
10058 #endif
10059 #else
10060 typedef struct ITransferSourceVtbl {
10061     BEGIN_INTERFACE
10062 
10063     /*** IUnknown methods ***/
10064     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10065         ITransferSource *This,
10066         REFIID riid,
10067         void **ppvObject);
10068 
10069     ULONG (STDMETHODCALLTYPE *AddRef)(
10070         ITransferSource *This);
10071 
10072     ULONG (STDMETHODCALLTYPE *Release)(
10073         ITransferSource *This);
10074 
10075     /*** ITransferSource methods ***/
10076     HRESULT (STDMETHODCALLTYPE *Advise)(
10077         ITransferSource *This,
10078         ITransferAdviseSink *psink,
10079         DWORD *pdwCookie);
10080 
10081     HRESULT (STDMETHODCALLTYPE *Unadvise)(
10082         ITransferSource *This,
10083         DWORD dwCookie);
10084 
10085     HRESULT (STDMETHODCALLTYPE *SetProperties)(
10086         ITransferSource *This,
10087         IPropertyChangeArray *pproparray);
10088 
10089     HRESULT (STDMETHODCALLTYPE *OpenItem)(
10090         ITransferSource *This,
10091         IShellItem *psi,
10092         TRANSFER_SOURCE_FLAGS flags,
10093         REFIID riid,
10094         void **ppv);
10095 
10096     HRESULT (STDMETHODCALLTYPE *MoveItem)(
10097         ITransferSource *This,
10098         IShellItem *psi,
10099         IShellItem *psiParentDst,
10100         LPCWSTR pszNameDst,
10101         TRANSFER_SOURCE_FLAGS flags,
10102         IShellItem **ppsiNew);
10103 
10104     HRESULT (STDMETHODCALLTYPE *RecycleItem)(
10105         ITransferSource *This,
10106         IShellItem *psiSource,
10107         IShellItem *psiParentDest,
10108         TRANSFER_SOURCE_FLAGS flags,
10109         IShellItem **ppsiNewDest);
10110 
10111     HRESULT (STDMETHODCALLTYPE *RemoveItem)(
10112         ITransferSource *This,
10113         IShellItem *psiSource,
10114         TRANSFER_SOURCE_FLAGS flags);
10115 
10116     HRESULT (STDMETHODCALLTYPE *RenameItem)(
10117         ITransferSource *This,
10118         IShellItem *psiSource,
10119         LPCWSTR pszNewName,
10120         TRANSFER_SOURCE_FLAGS flags,
10121         IShellItem **ppsiNewDest);
10122 
10123     HRESULT (STDMETHODCALLTYPE *LinkItem)(
10124         ITransferSource *This,
10125         IShellItem *psiSource,
10126         IShellItem *psiParentDest,
10127         LPCWSTR pszNewName,
10128         TRANSFER_SOURCE_FLAGS flags,
10129         IShellItem **ppsiNewDest);
10130 
10131     HRESULT (STDMETHODCALLTYPE *ApplyPropertiesToItem)(
10132         ITransferSource *This,
10133         IShellItem *psiSource,
10134         IShellItem **ppsiNew);
10135 
10136     HRESULT (STDMETHODCALLTYPE *GetDefaultDestinationName)(
10137         ITransferSource *This,
10138         IShellItem *psiSource,
10139         IShellItem *psiParentDest,
10140         LPWSTR *ppszDestinationName);
10141 
10142     HRESULT (STDMETHODCALLTYPE *EnterFolder)(
10143         ITransferSource *This,
10144         IShellItem *psiChildFolderDest);
10145 
10146     HRESULT (STDMETHODCALLTYPE *LeaveFolder)(
10147         ITransferSource *This,
10148         IShellItem *psiChildFolderDest);
10149 
10150     END_INTERFACE
10151 } ITransferSourceVtbl;
10152 
10153 interface ITransferSource {
10154     CONST_VTBL ITransferSourceVtbl* lpVtbl;
10155 };
10156 
10157 #ifdef COBJMACROS
10158 #ifndef WIDL_C_INLINE_WRAPPERS
10159 /*** IUnknown methods ***/
10160 #define ITransferSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10161 #define ITransferSource_AddRef(This) (This)->lpVtbl->AddRef(This)
10162 #define ITransferSource_Release(This) (This)->lpVtbl->Release(This)
10163 /*** ITransferSource methods ***/
10164 #define ITransferSource_Advise(This,psink,pdwCookie) (This)->lpVtbl->Advise(This,psink,pdwCookie)
10165 #define ITransferSource_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
10166 #define ITransferSource_SetProperties(This,pproparray) (This)->lpVtbl->SetProperties(This,pproparray)
10167 #define ITransferSource_OpenItem(This,psi,flags,riid,ppv) (This)->lpVtbl->OpenItem(This,psi,flags,riid,ppv)
10168 #define ITransferSource_MoveItem(This,psi,psiParentDst,pszNameDst,flags,ppsiNew) (This)->lpVtbl->MoveItem(This,psi,psiParentDst,pszNameDst,flags,ppsiNew)
10169 #define ITransferSource_RecycleItem(This,psiSource,psiParentDest,flags,ppsiNewDest) (This)->lpVtbl->RecycleItem(This,psiSource,psiParentDest,flags,ppsiNewDest)
10170 #define ITransferSource_RemoveItem(This,psiSource,flags) (This)->lpVtbl->RemoveItem(This,psiSource,flags)
10171 #define ITransferSource_RenameItem(This,psiSource,pszNewName,flags,ppsiNewDest) (This)->lpVtbl->RenameItem(This,psiSource,pszNewName,flags,ppsiNewDest)
10172 #define ITransferSource_LinkItem(This,psiSource,psiParentDest,pszNewName,flags,ppsiNewDest) (This)->lpVtbl->LinkItem(This,psiSource,psiParentDest,pszNewName,flags,ppsiNewDest)
10173 #define ITransferSource_ApplyPropertiesToItem(This,psiSource,ppsiNew) (This)->lpVtbl->ApplyPropertiesToItem(This,psiSource,ppsiNew)
10174 #define ITransferSource_GetDefaultDestinationName(This,psiSource,psiParentDest,ppszDestinationName) (This)->lpVtbl->GetDefaultDestinationName(This,psiSource,psiParentDest,ppszDestinationName)
10175 #define ITransferSource_EnterFolder(This,psiChildFolderDest) (This)->lpVtbl->EnterFolder(This,psiChildFolderDest)
10176 #define ITransferSource_LeaveFolder(This,psiChildFolderDest) (This)->lpVtbl->LeaveFolder(This,psiChildFolderDest)
10177 #else
10178 /*** IUnknown methods ***/
10179 static FORCEINLINE HRESULT ITransferSource_QueryInterface(ITransferSource* This,REFIID riid,void **ppvObject) {
10180     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10181 }
10182 static FORCEINLINE ULONG ITransferSource_AddRef(ITransferSource* This) {
10183     return This->lpVtbl->AddRef(This);
10184 }
10185 static FORCEINLINE ULONG ITransferSource_Release(ITransferSource* This) {
10186     return This->lpVtbl->Release(This);
10187 }
10188 /*** ITransferSource methods ***/
10189 static FORCEINLINE HRESULT ITransferSource_Advise(ITransferSource* This,ITransferAdviseSink *psink,DWORD *pdwCookie) {
10190     return This->lpVtbl->Advise(This,psink,pdwCookie);
10191 }
10192 static FORCEINLINE HRESULT ITransferSource_Unadvise(ITransferSource* This,DWORD dwCookie) {
10193     return This->lpVtbl->Unadvise(This,dwCookie);
10194 }
10195 static FORCEINLINE HRESULT ITransferSource_SetProperties(ITransferSource* This,IPropertyChangeArray *pproparray) {
10196     return This->lpVtbl->SetProperties(This,pproparray);
10197 }
10198 static FORCEINLINE HRESULT ITransferSource_OpenItem(ITransferSource* This,IShellItem *psi,TRANSFER_SOURCE_FLAGS flags,REFIID riid,void **ppv) {
10199     return This->lpVtbl->OpenItem(This,psi,flags,riid,ppv);
10200 }
10201 static FORCEINLINE HRESULT ITransferSource_MoveItem(ITransferSource* This,IShellItem *psi,IShellItem *psiParentDst,LPCWSTR pszNameDst,TRANSFER_SOURCE_FLAGS flags,IShellItem **ppsiNew) {
10202     return This->lpVtbl->MoveItem(This,psi,psiParentDst,pszNameDst,flags,ppsiNew);
10203 }
10204 static FORCEINLINE HRESULT ITransferSource_RecycleItem(ITransferSource* This,IShellItem *psiSource,IShellItem *psiParentDest,TRANSFER_SOURCE_FLAGS flags,IShellItem **ppsiNewDest) {
10205     return This->lpVtbl->RecycleItem(This,psiSource,psiParentDest,flags,ppsiNewDest);
10206 }
10207 static FORCEINLINE HRESULT ITransferSource_RemoveItem(ITransferSource* This,IShellItem *psiSource,TRANSFER_SOURCE_FLAGS flags) {
10208     return This->lpVtbl->RemoveItem(This,psiSource,flags);
10209 }
10210 static FORCEINLINE HRESULT ITransferSource_RenameItem(ITransferSource* This,IShellItem *psiSource,LPCWSTR pszNewName,TRANSFER_SOURCE_FLAGS flags,IShellItem **ppsiNewDest) {
10211     return This->lpVtbl->RenameItem(This,psiSource,pszNewName,flags,ppsiNewDest);
10212 }
10213 static FORCEINLINE HRESULT ITransferSource_LinkItem(ITransferSource* This,IShellItem *psiSource,IShellItem *psiParentDest,LPCWSTR pszNewName,TRANSFER_SOURCE_FLAGS flags,IShellItem **ppsiNewDest) {
10214     return This->lpVtbl->LinkItem(This,psiSource,psiParentDest,pszNewName,flags,ppsiNewDest);
10215 }
10216 static FORCEINLINE HRESULT ITransferSource_ApplyPropertiesToItem(ITransferSource* This,IShellItem *psiSource,IShellItem **ppsiNew) {
10217     return This->lpVtbl->ApplyPropertiesToItem(This,psiSource,ppsiNew);
10218 }
10219 static FORCEINLINE HRESULT ITransferSource_GetDefaultDestinationName(ITransferSource* This,IShellItem *psiSource,IShellItem *psiParentDest,LPWSTR *ppszDestinationName) {
10220     return This->lpVtbl->GetDefaultDestinationName(This,psiSource,psiParentDest,ppszDestinationName);
10221 }
10222 static FORCEINLINE HRESULT ITransferSource_EnterFolder(ITransferSource* This,IShellItem *psiChildFolderDest) {
10223     return This->lpVtbl->EnterFolder(This,psiChildFolderDest);
10224 }
10225 static FORCEINLINE HRESULT ITransferSource_LeaveFolder(ITransferSource* This,IShellItem *psiChildFolderDest) {
10226     return This->lpVtbl->LeaveFolder(This,psiChildFolderDest);
10227 }
10228 #endif
10229 #endif
10230 
10231 #endif
10232 
10233 
10234 #endif  /* __ITransferSource_INTERFACE_DEFINED__ */
10235 
10236 #endif
10237 
10238 typedef struct SHELL_ITEM_RESOURCE {
10239     GUID guidType;
10240     WCHAR szName[260];
10241 } SHELL_ITEM_RESOURCE;
10242 
10243 /*****************************************************************************
10244  * IEnumResources interface
10245  */
10246 #ifndef __IEnumResources_INTERFACE_DEFINED__
10247 #define __IEnumResources_INTERFACE_DEFINED__
10248 
10249 DEFINE_GUID(IID_IEnumResources, 0x2dd81fe3, 0xa83c, 0x4da9, 0xa3,0x30, 0x47,0x24,0x9d,0x34,0x5b,0xa1);
10250 #if defined(__cplusplus) && !defined(CINTERFACE)
10251 MIDL_INTERFACE("2dd81fe3-a83c-4da9-a330-47249d345ba1")
10252 IEnumResources : public IUnknown
10253 {
10254     virtual HRESULT STDMETHODCALLTYPE Next(
10255         ULONG celt,
10256         SHELL_ITEM_RESOURCE *psir,
10257         ULONG *pceltFetched) = 0;
10258 
10259     virtual HRESULT STDMETHODCALLTYPE Skip(
10260         ULONG celt) = 0;
10261 
10262     virtual HRESULT STDMETHODCALLTYPE Reset(
10263         ) = 0;
10264 
10265     virtual HRESULT STDMETHODCALLTYPE Clone(
10266         IEnumResources **ppenumr) = 0;
10267 
10268 };
10269 #ifdef __CRT_UUID_DECL
10270 __CRT_UUID_DECL(IEnumResources, 0x2dd81fe3, 0xa83c, 0x4da9, 0xa3,0x30, 0x47,0x24,0x9d,0x34,0x5b,0xa1)
10271 #endif
10272 #else
10273 typedef struct IEnumResourcesVtbl {
10274     BEGIN_INTERFACE
10275 
10276     /*** IUnknown methods ***/
10277     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10278         IEnumResources *This,
10279         REFIID riid,
10280         void **ppvObject);
10281 
10282     ULONG (STDMETHODCALLTYPE *AddRef)(
10283         IEnumResources *This);
10284 
10285     ULONG (STDMETHODCALLTYPE *Release)(
10286         IEnumResources *This);
10287 
10288     /*** IEnumResources methods ***/
10289     HRESULT (STDMETHODCALLTYPE *Next)(
10290         IEnumResources *This,
10291         ULONG celt,
10292         SHELL_ITEM_RESOURCE *psir,
10293         ULONG *pceltFetched);
10294 
10295     HRESULT (STDMETHODCALLTYPE *Skip)(
10296         IEnumResources *This,
10297         ULONG celt);
10298 
10299     HRESULT (STDMETHODCALLTYPE *Reset)(
10300         IEnumResources *This);
10301 
10302     HRESULT (STDMETHODCALLTYPE *Clone)(
10303         IEnumResources *This,
10304         IEnumResources **ppenumr);
10305 
10306     END_INTERFACE
10307 } IEnumResourcesVtbl;
10308 
10309 interface IEnumResources {
10310     CONST_VTBL IEnumResourcesVtbl* lpVtbl;
10311 };
10312 
10313 #ifdef COBJMACROS
10314 #ifndef WIDL_C_INLINE_WRAPPERS
10315 /*** IUnknown methods ***/
10316 #define IEnumResources_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10317 #define IEnumResources_AddRef(This) (This)->lpVtbl->AddRef(This)
10318 #define IEnumResources_Release(This) (This)->lpVtbl->Release(This)
10319 /*** IEnumResources methods ***/
10320 #define IEnumResources_Next(This,celt,psir,pceltFetched) (This)->lpVtbl->Next(This,celt,psir,pceltFetched)
10321 #define IEnumResources_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
10322 #define IEnumResources_Reset(This) (This)->lpVtbl->Reset(This)
10323 #define IEnumResources_Clone(This,ppenumr) (This)->lpVtbl->Clone(This,ppenumr)
10324 #else
10325 /*** IUnknown methods ***/
10326 static FORCEINLINE HRESULT IEnumResources_QueryInterface(IEnumResources* This,REFIID riid,void **ppvObject) {
10327     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10328 }
10329 static FORCEINLINE ULONG IEnumResources_AddRef(IEnumResources* This) {
10330     return This->lpVtbl->AddRef(This);
10331 }
10332 static FORCEINLINE ULONG IEnumResources_Release(IEnumResources* This) {
10333     return This->lpVtbl->Release(This);
10334 }
10335 /*** IEnumResources methods ***/
10336 static FORCEINLINE HRESULT IEnumResources_Next(IEnumResources* This,ULONG celt,SHELL_ITEM_RESOURCE *psir,ULONG *pceltFetched) {
10337     return This->lpVtbl->Next(This,celt,psir,pceltFetched);
10338 }
10339 static FORCEINLINE HRESULT IEnumResources_Skip(IEnumResources* This,ULONG celt) {
10340     return This->lpVtbl->Skip(This,celt);
10341 }
10342 static FORCEINLINE HRESULT IEnumResources_Reset(IEnumResources* This) {
10343     return This->lpVtbl->Reset(This);
10344 }
10345 static FORCEINLINE HRESULT IEnumResources_Clone(IEnumResources* This,IEnumResources **ppenumr) {
10346     return This->lpVtbl->Clone(This,ppenumr);
10347 }
10348 #endif
10349 #endif
10350 
10351 #endif
10352 
10353 
10354 #endif  /* __IEnumResources_INTERFACE_DEFINED__ */
10355 
10356 
10357 /*****************************************************************************
10358  * IShellItemResources interface
10359  */
10360 #ifndef __IShellItemResources_INTERFACE_DEFINED__
10361 #define __IShellItemResources_INTERFACE_DEFINED__
10362 
10363 DEFINE_GUID(IID_IShellItemResources, 0xff5693be, 0x2ce0, 0x4d48, 0xb5,0xc5, 0x40,0x81,0x7d,0x1a,0xcd,0xb9);
10364 #if defined(__cplusplus) && !defined(CINTERFACE)
10365 MIDL_INTERFACE("ff5693be-2ce0-4d48-b5c5-40817d1acdb9")
10366 IShellItemResources : public IUnknown
10367 {
10368     virtual HRESULT STDMETHODCALLTYPE GetAttributes(
10369         DWORD *pdwAttributes) = 0;
10370 
10371     virtual HRESULT STDMETHODCALLTYPE GetSize(
10372         ULONGLONG *pullSize) = 0;
10373 
10374     virtual HRESULT STDMETHODCALLTYPE GetTimes(
10375         FILETIME *pftCreation,
10376         FILETIME *pftWrite,
10377         FILETIME *pftAccess) = 0;
10378 
10379     virtual HRESULT STDMETHODCALLTYPE SetTimes(
10380         const FILETIME *pftCreation,
10381         const FILETIME *pftWrite,
10382         const FILETIME *pftAccess) = 0;
10383 
10384     virtual HRESULT STDMETHODCALLTYPE GetResourceDescription(
10385         const SHELL_ITEM_RESOURCE *pcsir,
10386         LPWSTR *ppszDescription) = 0;
10387 
10388     virtual HRESULT STDMETHODCALLTYPE EnumResources(
10389         IEnumResources **ppenumr) = 0;
10390 
10391     virtual HRESULT STDMETHODCALLTYPE SupportsResource(
10392         const SHELL_ITEM_RESOURCE *pcsir) = 0;
10393 
10394     virtual HRESULT STDMETHODCALLTYPE OpenResource(
10395         const SHELL_ITEM_RESOURCE *pcsir,
10396         REFIID riid,
10397         void **ppv) = 0;
10398 
10399     virtual HRESULT STDMETHODCALLTYPE CreateResource(
10400         const SHELL_ITEM_RESOURCE *pcsir,
10401         REFIID riid,
10402         void **ppv) = 0;
10403 
10404     virtual HRESULT STDMETHODCALLTYPE MarkForDelete(
10405         ) = 0;
10406 
10407 };
10408 #ifdef __CRT_UUID_DECL
10409 __CRT_UUID_DECL(IShellItemResources, 0xff5693be, 0x2ce0, 0x4d48, 0xb5,0xc5, 0x40,0x81,0x7d,0x1a,0xcd,0xb9)
10410 #endif
10411 #else
10412 typedef struct IShellItemResourcesVtbl {
10413     BEGIN_INTERFACE
10414 
10415     /*** IUnknown methods ***/
10416     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10417         IShellItemResources *This,
10418         REFIID riid,
10419         void **ppvObject);
10420 
10421     ULONG (STDMETHODCALLTYPE *AddRef)(
10422         IShellItemResources *This);
10423 
10424     ULONG (STDMETHODCALLTYPE *Release)(
10425         IShellItemResources *This);
10426 
10427     /*** IShellItemResources methods ***/
10428     HRESULT (STDMETHODCALLTYPE *GetAttributes)(
10429         IShellItemResources *This,
10430         DWORD *pdwAttributes);
10431 
10432     HRESULT (STDMETHODCALLTYPE *GetSize)(
10433         IShellItemResources *This,
10434         ULONGLONG *pullSize);
10435 
10436     HRESULT (STDMETHODCALLTYPE *GetTimes)(
10437         IShellItemResources *This,
10438         FILETIME *pftCreation,
10439         FILETIME *pftWrite,
10440         FILETIME *pftAccess);
10441 
10442     HRESULT (STDMETHODCALLTYPE *SetTimes)(
10443         IShellItemResources *This,
10444         const FILETIME *pftCreation,
10445         const FILETIME *pftWrite,
10446         const FILETIME *pftAccess);
10447 
10448     HRESULT (STDMETHODCALLTYPE *GetResourceDescription)(
10449         IShellItemResources *This,
10450         const SHELL_ITEM_RESOURCE *pcsir,
10451         LPWSTR *ppszDescription);
10452 
10453     HRESULT (STDMETHODCALLTYPE *EnumResources)(
10454         IShellItemResources *This,
10455         IEnumResources **ppenumr);
10456 
10457     HRESULT (STDMETHODCALLTYPE *SupportsResource)(
10458         IShellItemResources *This,
10459         const SHELL_ITEM_RESOURCE *pcsir);
10460 
10461     HRESULT (STDMETHODCALLTYPE *OpenResource)(
10462         IShellItemResources *This,
10463         const SHELL_ITEM_RESOURCE *pcsir,
10464         REFIID riid,
10465         void **ppv);
10466 
10467     HRESULT (STDMETHODCALLTYPE *CreateResource)(
10468         IShellItemResources *This,
10469         const SHELL_ITEM_RESOURCE *pcsir,
10470         REFIID riid,
10471         void **ppv);
10472 
10473     HRESULT (STDMETHODCALLTYPE *MarkForDelete)(
10474         IShellItemResources *This);
10475 
10476     END_INTERFACE
10477 } IShellItemResourcesVtbl;
10478 
10479 interface IShellItemResources {
10480     CONST_VTBL IShellItemResourcesVtbl* lpVtbl;
10481 };
10482 
10483 #ifdef COBJMACROS
10484 #ifndef WIDL_C_INLINE_WRAPPERS
10485 /*** IUnknown methods ***/
10486 #define IShellItemResources_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10487 #define IShellItemResources_AddRef(This) (This)->lpVtbl->AddRef(This)
10488 #define IShellItemResources_Release(This) (This)->lpVtbl->Release(This)
10489 /*** IShellItemResources methods ***/
10490 #define IShellItemResources_GetAttributes(This,pdwAttributes) (This)->lpVtbl->GetAttributes(This,pdwAttributes)
10491 #define IShellItemResources_GetSize(This,pullSize) (This)->lpVtbl->GetSize(This,pullSize)
10492 #define IShellItemResources_GetTimes(This,pftCreation,pftWrite,pftAccess) (This)->lpVtbl->GetTimes(This,pftCreation,pftWrite,pftAccess)
10493 #define IShellItemResources_SetTimes(This,pftCreation,pftWrite,pftAccess) (This)->lpVtbl->SetTimes(This,pftCreation,pftWrite,pftAccess)
10494 #define IShellItemResources_GetResourceDescription(This,pcsir,ppszDescription) (This)->lpVtbl->GetResourceDescription(This,pcsir,ppszDescription)
10495 #define IShellItemResources_EnumResources(This,ppenumr) (This)->lpVtbl->EnumResources(This,ppenumr)
10496 #define IShellItemResources_SupportsResource(This,pcsir) (This)->lpVtbl->SupportsResource(This,pcsir)
10497 #define IShellItemResources_OpenResource(This,pcsir,riid,ppv) (This)->lpVtbl->OpenResource(This,pcsir,riid,ppv)
10498 #define IShellItemResources_CreateResource(This,pcsir,riid,ppv) (This)->lpVtbl->CreateResource(This,pcsir,riid,ppv)
10499 #define IShellItemResources_MarkForDelete(This) (This)->lpVtbl->MarkForDelete(This)
10500 #else
10501 /*** IUnknown methods ***/
10502 static FORCEINLINE HRESULT IShellItemResources_QueryInterface(IShellItemResources* This,REFIID riid,void **ppvObject) {
10503     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10504 }
10505 static FORCEINLINE ULONG IShellItemResources_AddRef(IShellItemResources* This) {
10506     return This->lpVtbl->AddRef(This);
10507 }
10508 static FORCEINLINE ULONG IShellItemResources_Release(IShellItemResources* This) {
10509     return This->lpVtbl->Release(This);
10510 }
10511 /*** IShellItemResources methods ***/
10512 static FORCEINLINE HRESULT IShellItemResources_GetAttributes(IShellItemResources* This,DWORD *pdwAttributes) {
10513     return This->lpVtbl->GetAttributes(This,pdwAttributes);
10514 }
10515 static FORCEINLINE HRESULT IShellItemResources_GetSize(IShellItemResources* This,ULONGLONG *pullSize) {
10516     return This->lpVtbl->GetSize(This,pullSize);
10517 }
10518 static FORCEINLINE HRESULT IShellItemResources_GetTimes(IShellItemResources* This,FILETIME *pftCreation,FILETIME *pftWrite,FILETIME *pftAccess) {
10519     return This->lpVtbl->GetTimes(This,pftCreation,pftWrite,pftAccess);
10520 }
10521 static FORCEINLINE HRESULT IShellItemResources_SetTimes(IShellItemResources* This,const FILETIME *pftCreation,const FILETIME *pftWrite,const FILETIME *pftAccess) {
10522     return This->lpVtbl->SetTimes(This,pftCreation,pftWrite,pftAccess);
10523 }
10524 static FORCEINLINE HRESULT IShellItemResources_GetResourceDescription(IShellItemResources* This,const SHELL_ITEM_RESOURCE *pcsir,LPWSTR *ppszDescription) {
10525     return This->lpVtbl->GetResourceDescription(This,pcsir,ppszDescription);
10526 }
10527 static FORCEINLINE HRESULT IShellItemResources_EnumResources(IShellItemResources* This,IEnumResources **ppenumr) {
10528     return This->lpVtbl->EnumResources(This,ppenumr);
10529 }
10530 static FORCEINLINE HRESULT IShellItemResources_SupportsResource(IShellItemResources* This,const SHELL_ITEM_RESOURCE *pcsir) {
10531     return This->lpVtbl->SupportsResource(This,pcsir);
10532 }
10533 static FORCEINLINE HRESULT IShellItemResources_OpenResource(IShellItemResources* This,const SHELL_ITEM_RESOURCE *pcsir,REFIID riid,void **ppv) {
10534     return This->lpVtbl->OpenResource(This,pcsir,riid,ppv);
10535 }
10536 static FORCEINLINE HRESULT IShellItemResources_CreateResource(IShellItemResources* This,const SHELL_ITEM_RESOURCE *pcsir,REFIID riid,void **ppv) {
10537     return This->lpVtbl->CreateResource(This,pcsir,riid,ppv);
10538 }
10539 static FORCEINLINE HRESULT IShellItemResources_MarkForDelete(IShellItemResources* This) {
10540     return This->lpVtbl->MarkForDelete(This);
10541 }
10542 #endif
10543 #endif
10544 
10545 #endif
10546 
10547 
10548 #endif  /* __IShellItemResources_INTERFACE_DEFINED__ */
10549 
10550 
10551 /*****************************************************************************
10552  * ITransferDestination interface
10553  */
10554 #ifndef __ITransferDestination_INTERFACE_DEFINED__
10555 #define __ITransferDestination_INTERFACE_DEFINED__
10556 
10557 DEFINE_GUID(IID_ITransferDestination, 0x48addd32, 0x3ca5, 0x4124, 0xab,0xe3, 0xb5,0xa7,0x25,0x31,0xb2,0x07);
10558 #if defined(__cplusplus) && !defined(CINTERFACE)
10559 MIDL_INTERFACE("48addd32-3ca5-4124-abe3-b5a72531b207")
10560 ITransferDestination : public IUnknown
10561 {
10562     virtual HRESULT STDMETHODCALLTYPE Advise(
10563         ITransferAdviseSink *psink,
10564         DWORD *pdwCookie) = 0;
10565 
10566     virtual HRESULT STDMETHODCALLTYPE Unadvise(
10567         DWORD dwCookie) = 0;
10568 
10569     virtual HRESULT STDMETHODCALLTYPE CreateItem(
10570         LPCWSTR pszName,
10571         DWORD dwAttributes,
10572         ULONGLONG ullSize,
10573         TRANSFER_SOURCE_FLAGS flags,
10574         REFIID riidItem,
10575         void **ppvItem,
10576         REFIID riidResources,
10577         void **ppvResources) = 0;
10578 
10579 };
10580 #ifdef __CRT_UUID_DECL
10581 __CRT_UUID_DECL(ITransferDestination, 0x48addd32, 0x3ca5, 0x4124, 0xab,0xe3, 0xb5,0xa7,0x25,0x31,0xb2,0x07)
10582 #endif
10583 #else
10584 typedef struct ITransferDestinationVtbl {
10585     BEGIN_INTERFACE
10586 
10587     /*** IUnknown methods ***/
10588     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10589         ITransferDestination *This,
10590         REFIID riid,
10591         void **ppvObject);
10592 
10593     ULONG (STDMETHODCALLTYPE *AddRef)(
10594         ITransferDestination *This);
10595 
10596     ULONG (STDMETHODCALLTYPE *Release)(
10597         ITransferDestination *This);
10598 
10599     /*** ITransferDestination methods ***/
10600     HRESULT (STDMETHODCALLTYPE *Advise)(
10601         ITransferDestination *This,
10602         ITransferAdviseSink *psink,
10603         DWORD *pdwCookie);
10604 
10605     HRESULT (STDMETHODCALLTYPE *Unadvise)(
10606         ITransferDestination *This,
10607         DWORD dwCookie);
10608 
10609     HRESULT (STDMETHODCALLTYPE *CreateItem)(
10610         ITransferDestination *This,
10611         LPCWSTR pszName,
10612         DWORD dwAttributes,
10613         ULONGLONG ullSize,
10614         TRANSFER_SOURCE_FLAGS flags,
10615         REFIID riidItem,
10616         void **ppvItem,
10617         REFIID riidResources,
10618         void **ppvResources);
10619 
10620     END_INTERFACE
10621 } ITransferDestinationVtbl;
10622 
10623 interface ITransferDestination {
10624     CONST_VTBL ITransferDestinationVtbl* lpVtbl;
10625 };
10626 
10627 #ifdef COBJMACROS
10628 #ifndef WIDL_C_INLINE_WRAPPERS
10629 /*** IUnknown methods ***/
10630 #define ITransferDestination_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10631 #define ITransferDestination_AddRef(This) (This)->lpVtbl->AddRef(This)
10632 #define ITransferDestination_Release(This) (This)->lpVtbl->Release(This)
10633 /*** ITransferDestination methods ***/
10634 #define ITransferDestination_Advise(This,psink,pdwCookie) (This)->lpVtbl->Advise(This,psink,pdwCookie)
10635 #define ITransferDestination_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
10636 #define ITransferDestination_CreateItem(This,pszName,dwAttributes,ullSize,flags,riidItem,ppvItem,riidResources,ppvResources) (This)->lpVtbl->CreateItem(This,pszName,dwAttributes,ullSize,flags,riidItem,ppvItem,riidResources,ppvResources)
10637 #else
10638 /*** IUnknown methods ***/
10639 static FORCEINLINE HRESULT ITransferDestination_QueryInterface(ITransferDestination* This,REFIID riid,void **ppvObject) {
10640     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10641 }
10642 static FORCEINLINE ULONG ITransferDestination_AddRef(ITransferDestination* This) {
10643     return This->lpVtbl->AddRef(This);
10644 }
10645 static FORCEINLINE ULONG ITransferDestination_Release(ITransferDestination* This) {
10646     return This->lpVtbl->Release(This);
10647 }
10648 /*** ITransferDestination methods ***/
10649 static FORCEINLINE HRESULT ITransferDestination_Advise(ITransferDestination* This,ITransferAdviseSink *psink,DWORD *pdwCookie) {
10650     return This->lpVtbl->Advise(This,psink,pdwCookie);
10651 }
10652 static FORCEINLINE HRESULT ITransferDestination_Unadvise(ITransferDestination* This,DWORD dwCookie) {
10653     return This->lpVtbl->Unadvise(This,dwCookie);
10654 }
10655 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) {
10656     return This->lpVtbl->CreateItem(This,pszName,dwAttributes,ullSize,flags,riidItem,ppvItem,riidResources,ppvResources);
10657 }
10658 #endif
10659 #endif
10660 
10661 #endif
10662 
10663 
10664 #endif  /* __ITransferDestination_INTERFACE_DEFINED__ */
10665 
10666 #if 0
10667 typedef struct _OVERLAPPED {
10668     ULONG_PTR Internal;
10669     ULONG_PTR InternalHigh;
10670     __C89_NAMELESS union {
10671         __C89_NAMELESS struct {
10672             DWORD Offset;
10673             DWORD OffsetHigh;
10674         } __C89_NAMELESSSTRUCTNAME;
10675         PVOID Pointer;
10676     } __C89_NAMELESSUNIONNAME;
10677     HANDLE hEvent;
10678 } OVERLAPPED;
10679 typedef struct _OVERLAPPED *LPOVERLAPPED;
10680 #endif
10681 
10682 /*****************************************************************************
10683  * IStreamAsync interface
10684  */
10685 #ifndef __IStreamAsync_INTERFACE_DEFINED__
10686 #define __IStreamAsync_INTERFACE_DEFINED__
10687 
10688 DEFINE_GUID(IID_IStreamAsync, 0xfe0b6665, 0xe0ca, 0x49b9, 0xa1,0x78, 0x2b,0x5c,0xb4,0x8d,0x92,0xa5);
10689 #if defined(__cplusplus) && !defined(CINTERFACE)
10690 MIDL_INTERFACE("fe0b6665-e0ca-49b9-a178-2b5cb48d92a5")
10691 IStreamAsync : public IStream
10692 {
10693     virtual HRESULT STDMETHODCALLTYPE ReadAsync(
10694         void *pv,
10695         DWORD cb,
10696         LPDWORD pcbRead,
10697         LPOVERLAPPED lpOverlapped) = 0;
10698 
10699     virtual HRESULT STDMETHODCALLTYPE WriteAsync(
10700         const void *lpBuffer,
10701         DWORD cb,
10702         LPDWORD pcbWritten,
10703         LPOVERLAPPED lpOverlapped) = 0;
10704 
10705     virtual HRESULT STDMETHODCALLTYPE OverlappedResult(
10706         LPOVERLAPPED lpOverlapped,
10707         LPDWORD lpNumberOfBytesTransferred,
10708         WINBOOL bWait) = 0;
10709 
10710     virtual HRESULT STDMETHODCALLTYPE CancelIo(
10711         ) = 0;
10712 
10713 };
10714 #ifdef __CRT_UUID_DECL
10715 __CRT_UUID_DECL(IStreamAsync, 0xfe0b6665, 0xe0ca, 0x49b9, 0xa1,0x78, 0x2b,0x5c,0xb4,0x8d,0x92,0xa5)
10716 #endif
10717 #else
10718 typedef struct IStreamAsyncVtbl {
10719     BEGIN_INTERFACE
10720 
10721     /*** IUnknown methods ***/
10722     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10723         IStreamAsync *This,
10724         REFIID riid,
10725         void **ppvObject);
10726 
10727     ULONG (STDMETHODCALLTYPE *AddRef)(
10728         IStreamAsync *This);
10729 
10730     ULONG (STDMETHODCALLTYPE *Release)(
10731         IStreamAsync *This);
10732 
10733     /*** ISequentialStream methods ***/
10734     HRESULT (STDMETHODCALLTYPE *Read)(
10735         IStreamAsync *This,
10736         void *pv,
10737         ULONG cb,
10738         ULONG *pcbRead);
10739 
10740     HRESULT (STDMETHODCALLTYPE *Write)(
10741         IStreamAsync *This,
10742         const void *pv,
10743         ULONG cb,
10744         ULONG *pcbWritten);
10745 
10746     /*** IStream methods ***/
10747     HRESULT (STDMETHODCALLTYPE *Seek)(
10748         IStreamAsync *This,
10749         LARGE_INTEGER dlibMove,
10750         DWORD dwOrigin,
10751         ULARGE_INTEGER *plibNewPosition);
10752 
10753     HRESULT (STDMETHODCALLTYPE *SetSize)(
10754         IStreamAsync *This,
10755         ULARGE_INTEGER libNewSize);
10756 
10757     HRESULT (STDMETHODCALLTYPE *CopyTo)(
10758         IStreamAsync *This,
10759         IStream *pstm,
10760         ULARGE_INTEGER cb,
10761         ULARGE_INTEGER *pcbRead,
10762         ULARGE_INTEGER *pcbWritten);
10763 
10764     HRESULT (STDMETHODCALLTYPE *Commit)(
10765         IStreamAsync *This,
10766         DWORD grfCommitFlags);
10767 
10768     HRESULT (STDMETHODCALLTYPE *Revert)(
10769         IStreamAsync *This);
10770 
10771     HRESULT (STDMETHODCALLTYPE *LockRegion)(
10772         IStreamAsync *This,
10773         ULARGE_INTEGER libOffset,
10774         ULARGE_INTEGER cb,
10775         DWORD dwLockType);
10776 
10777     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
10778         IStreamAsync *This,
10779         ULARGE_INTEGER libOffset,
10780         ULARGE_INTEGER cb,
10781         DWORD dwLockType);
10782 
10783     HRESULT (STDMETHODCALLTYPE *Stat)(
10784         IStreamAsync *This,
10785         STATSTG *pstatstg,
10786         DWORD grfStatFlag);
10787 
10788     HRESULT (STDMETHODCALLTYPE *Clone)(
10789         IStreamAsync *This,
10790         IStream **ppstm);
10791 
10792     /*** IStreamAsync methods ***/
10793     HRESULT (STDMETHODCALLTYPE *ReadAsync)(
10794         IStreamAsync *This,
10795         void *pv,
10796         DWORD cb,
10797         LPDWORD pcbRead,
10798         LPOVERLAPPED lpOverlapped);
10799 
10800     HRESULT (STDMETHODCALLTYPE *WriteAsync)(
10801         IStreamAsync *This,
10802         const void *lpBuffer,
10803         DWORD cb,
10804         LPDWORD pcbWritten,
10805         LPOVERLAPPED lpOverlapped);
10806 
10807     HRESULT (STDMETHODCALLTYPE *OverlappedResult)(
10808         IStreamAsync *This,
10809         LPOVERLAPPED lpOverlapped,
10810         LPDWORD lpNumberOfBytesTransferred,
10811         WINBOOL bWait);
10812 
10813     HRESULT (STDMETHODCALLTYPE *CancelIo)(
10814         IStreamAsync *This);
10815 
10816     END_INTERFACE
10817 } IStreamAsyncVtbl;
10818 
10819 interface IStreamAsync {
10820     CONST_VTBL IStreamAsyncVtbl* lpVtbl;
10821 };
10822 
10823 #ifdef COBJMACROS
10824 #ifndef WIDL_C_INLINE_WRAPPERS
10825 /*** IUnknown methods ***/
10826 #define IStreamAsync_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10827 #define IStreamAsync_AddRef(This) (This)->lpVtbl->AddRef(This)
10828 #define IStreamAsync_Release(This) (This)->lpVtbl->Release(This)
10829 /*** ISequentialStream methods ***/
10830 #define IStreamAsync_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
10831 #define IStreamAsync_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
10832 /*** IStream methods ***/
10833 #define IStreamAsync_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
10834 #define IStreamAsync_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
10835 #define IStreamAsync_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
10836 #define IStreamAsync_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
10837 #define IStreamAsync_Revert(This) (This)->lpVtbl->Revert(This)
10838 #define IStreamAsync_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
10839 #define IStreamAsync_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
10840 #define IStreamAsync_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
10841 #define IStreamAsync_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
10842 /*** IStreamAsync methods ***/
10843 #define IStreamAsync_ReadAsync(This,pv,cb,pcbRead,lpOverlapped) (This)->lpVtbl->ReadAsync(This,pv,cb,pcbRead,lpOverlapped)
10844 #define IStreamAsync_WriteAsync(This,lpBuffer,cb,pcbWritten,lpOverlapped) (This)->lpVtbl->WriteAsync(This,lpBuffer,cb,pcbWritten,lpOverlapped)
10845 #define IStreamAsync_OverlappedResult(This,lpOverlapped,lpNumberOfBytesTransferred,bWait) (This)->lpVtbl->OverlappedResult(This,lpOverlapped,lpNumberOfBytesTransferred,bWait)
10846 #define IStreamAsync_CancelIo(This) (This)->lpVtbl->CancelIo(This)
10847 #else
10848 /*** IUnknown methods ***/
10849 static FORCEINLINE HRESULT IStreamAsync_QueryInterface(IStreamAsync* This,REFIID riid,void **ppvObject) {
10850     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10851 }
10852 static FORCEINLINE ULONG IStreamAsync_AddRef(IStreamAsync* This) {
10853     return This->lpVtbl->AddRef(This);
10854 }
10855 static FORCEINLINE ULONG IStreamAsync_Release(IStreamAsync* This) {
10856     return This->lpVtbl->Release(This);
10857 }
10858 /*** ISequentialStream methods ***/
10859 static FORCEINLINE HRESULT IStreamAsync_Read(IStreamAsync* This,void *pv,ULONG cb,ULONG *pcbRead) {
10860     return This->lpVtbl->Read(This,pv,cb,pcbRead);
10861 }
10862 static FORCEINLINE HRESULT IStreamAsync_Write(IStreamAsync* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
10863     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
10864 }
10865 /*** IStream methods ***/
10866 static FORCEINLINE HRESULT IStreamAsync_Seek(IStreamAsync* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
10867     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
10868 }
10869 static FORCEINLINE HRESULT IStreamAsync_SetSize(IStreamAsync* This,ULARGE_INTEGER libNewSize) {
10870     return This->lpVtbl->SetSize(This,libNewSize);
10871 }
10872 static FORCEINLINE HRESULT IStreamAsync_CopyTo(IStreamAsync* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
10873     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
10874 }
10875 static FORCEINLINE HRESULT IStreamAsync_Commit(IStreamAsync* This,DWORD grfCommitFlags) {
10876     return This->lpVtbl->Commit(This,grfCommitFlags);
10877 }
10878 static FORCEINLINE HRESULT IStreamAsync_Revert(IStreamAsync* This) {
10879     return This->lpVtbl->Revert(This);
10880 }
10881 static FORCEINLINE HRESULT IStreamAsync_LockRegion(IStreamAsync* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
10882     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
10883 }
10884 static FORCEINLINE HRESULT IStreamAsync_UnlockRegion(IStreamAsync* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
10885     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
10886 }
10887 static FORCEINLINE HRESULT IStreamAsync_Stat(IStreamAsync* This,STATSTG *pstatstg,DWORD grfStatFlag) {
10888     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
10889 }
10890 static FORCEINLINE HRESULT IStreamAsync_Clone(IStreamAsync* This,IStream **ppstm) {
10891     return This->lpVtbl->Clone(This,ppstm);
10892 }
10893 /*** IStreamAsync methods ***/
10894 static FORCEINLINE HRESULT IStreamAsync_ReadAsync(IStreamAsync* This,void *pv,DWORD cb,LPDWORD pcbRead,LPOVERLAPPED lpOverlapped) {
10895     return This->lpVtbl->ReadAsync(This,pv,cb,pcbRead,lpOverlapped);
10896 }
10897 static FORCEINLINE HRESULT IStreamAsync_WriteAsync(IStreamAsync* This,const void *lpBuffer,DWORD cb,LPDWORD pcbWritten,LPOVERLAPPED lpOverlapped) {
10898     return This->lpVtbl->WriteAsync(This,lpBuffer,cb,pcbWritten,lpOverlapped);
10899 }
10900 static FORCEINLINE HRESULT IStreamAsync_OverlappedResult(IStreamAsync* This,LPOVERLAPPED lpOverlapped,LPDWORD lpNumberOfBytesTransferred,WINBOOL bWait) {
10901     return This->lpVtbl->OverlappedResult(This,lpOverlapped,lpNumberOfBytesTransferred,bWait);
10902 }
10903 static FORCEINLINE HRESULT IStreamAsync_CancelIo(IStreamAsync* This) {
10904     return This->lpVtbl->CancelIo(This);
10905 }
10906 #endif
10907 #endif
10908 
10909 #endif
10910 
10911 
10912 #endif  /* __IStreamAsync_INTERFACE_DEFINED__ */
10913 
10914 
10915 /*****************************************************************************
10916  * IStreamUnbufferedInfo interface
10917  */
10918 #ifndef __IStreamUnbufferedInfo_INTERFACE_DEFINED__
10919 #define __IStreamUnbufferedInfo_INTERFACE_DEFINED__
10920 
10921 DEFINE_GUID(IID_IStreamUnbufferedInfo, 0x8a68fdda, 0x1fdc, 0x4c20, 0x8c,0xeb, 0x41,0x66,0x43,0xb5,0xa6,0x25);
10922 #if defined(__cplusplus) && !defined(CINTERFACE)
10923 MIDL_INTERFACE("8a68fdda-1fdc-4c20-8ceb-416643b5a625")
10924 IStreamUnbufferedInfo : public IUnknown
10925 {
10926     virtual HRESULT STDMETHODCALLTYPE GetSectorSize(
10927         ULONG *pcbSectorSize) = 0;
10928 
10929 };
10930 #ifdef __CRT_UUID_DECL
10931 __CRT_UUID_DECL(IStreamUnbufferedInfo, 0x8a68fdda, 0x1fdc, 0x4c20, 0x8c,0xeb, 0x41,0x66,0x43,0xb5,0xa6,0x25)
10932 #endif
10933 #else
10934 typedef struct IStreamUnbufferedInfoVtbl {
10935     BEGIN_INTERFACE
10936 
10937     /*** IUnknown methods ***/
10938     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10939         IStreamUnbufferedInfo *This,
10940         REFIID riid,
10941         void **ppvObject);
10942 
10943     ULONG (STDMETHODCALLTYPE *AddRef)(
10944         IStreamUnbufferedInfo *This);
10945 
10946     ULONG (STDMETHODCALLTYPE *Release)(
10947         IStreamUnbufferedInfo *This);
10948 
10949     /*** IStreamUnbufferedInfo methods ***/
10950     HRESULT (STDMETHODCALLTYPE *GetSectorSize)(
10951         IStreamUnbufferedInfo *This,
10952         ULONG *pcbSectorSize);
10953 
10954     END_INTERFACE
10955 } IStreamUnbufferedInfoVtbl;
10956 
10957 interface IStreamUnbufferedInfo {
10958     CONST_VTBL IStreamUnbufferedInfoVtbl* lpVtbl;
10959 };
10960 
10961 #ifdef COBJMACROS
10962 #ifndef WIDL_C_INLINE_WRAPPERS
10963 /*** IUnknown methods ***/
10964 #define IStreamUnbufferedInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10965 #define IStreamUnbufferedInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
10966 #define IStreamUnbufferedInfo_Release(This) (This)->lpVtbl->Release(This)
10967 /*** IStreamUnbufferedInfo methods ***/
10968 #define IStreamUnbufferedInfo_GetSectorSize(This,pcbSectorSize) (This)->lpVtbl->GetSectorSize(This,pcbSectorSize)
10969 #else
10970 /*** IUnknown methods ***/
10971 static FORCEINLINE HRESULT IStreamUnbufferedInfo_QueryInterface(IStreamUnbufferedInfo* This,REFIID riid,void **ppvObject) {
10972     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10973 }
10974 static FORCEINLINE ULONG IStreamUnbufferedInfo_AddRef(IStreamUnbufferedInfo* This) {
10975     return This->lpVtbl->AddRef(This);
10976 }
10977 static FORCEINLINE ULONG IStreamUnbufferedInfo_Release(IStreamUnbufferedInfo* This) {
10978     return This->lpVtbl->Release(This);
10979 }
10980 /*** IStreamUnbufferedInfo methods ***/
10981 static FORCEINLINE HRESULT IStreamUnbufferedInfo_GetSectorSize(IStreamUnbufferedInfo* This,ULONG *pcbSectorSize) {
10982     return This->lpVtbl->GetSectorSize(This,pcbSectorSize);
10983 }
10984 #endif
10985 #endif
10986 
10987 #endif
10988 
10989 
10990 #endif  /* __IStreamUnbufferedInfo_INTERFACE_DEFINED__ */
10991 
10992 
10993 #if _WIN32_IE >= _WIN32_IE_IE70
10994 /*****************************************************************************
10995  * IFileOperationProgressSink interface
10996  */
10997 #ifndef __IFileOperationProgressSink_INTERFACE_DEFINED__
10998 #define __IFileOperationProgressSink_INTERFACE_DEFINED__
10999 
11000 DEFINE_GUID(IID_IFileOperationProgressSink, 0x04b0f1a7, 0x9490, 0x44bc, 0x96,0xe1, 0x42,0x96,0xa3,0x12,0x52,0xe2);
11001 #if defined(__cplusplus) && !defined(CINTERFACE)
11002 MIDL_INTERFACE("04b0f1a7-9490-44bc-96e1-4296a31252e2")
11003 IFileOperationProgressSink : public IUnknown
11004 {
11005     virtual HRESULT STDMETHODCALLTYPE StartOperations(
11006         ) = 0;
11007 
11008     virtual HRESULT STDMETHODCALLTYPE FinishOperations(
11009         HRESULT hrResult) = 0;
11010 
11011     virtual HRESULT STDMETHODCALLTYPE PreRenameItem(
11012         DWORD dwFlags,
11013         IShellItem *psiItem,
11014         LPCWSTR pszNewName) = 0;
11015 
11016     virtual HRESULT STDMETHODCALLTYPE PostRenameItem(
11017         DWORD dwFlags,
11018         IShellItem *psiItem,
11019         LPCWSTR pszNewName,
11020         HRESULT hrRename,
11021         IShellItem *psiNewlyCreated) = 0;
11022 
11023     virtual HRESULT STDMETHODCALLTYPE PreMoveItem(
11024         DWORD dwFlags,
11025         IShellItem *psiItem,
11026         IShellItem *psiDestinationFolder,
11027         LPCWSTR pszNewName) = 0;
11028 
11029     virtual HRESULT STDMETHODCALLTYPE PostMoveItem(
11030         DWORD dwFlags,
11031         IShellItem *psiItem,
11032         IShellItem *psiDestinationFolder,
11033         LPCWSTR pszNewName,
11034         HRESULT hrMove,
11035         IShellItem *psiNewlyCreated) = 0;
11036 
11037     virtual HRESULT STDMETHODCALLTYPE PreCopyItem(
11038         DWORD dwFlags,
11039         IShellItem *psiItem,
11040         IShellItem *psiDestinationFolder,
11041         LPCWSTR pszNewName) = 0;
11042 
11043     virtual HRESULT STDMETHODCALLTYPE PostCopyItem(
11044         DWORD dwFlags,
11045         IShellItem *psiItem,
11046         IShellItem *psiDestinationFolder,
11047         LPCWSTR pszNewName,
11048         HRESULT hrCopy,
11049         IShellItem *psiNewlyCreated) = 0;
11050 
11051     virtual HRESULT STDMETHODCALLTYPE PreDeleteItem(
11052         DWORD dwFlags,
11053         IShellItem *psiItem) = 0;
11054 
11055     virtual HRESULT STDMETHODCALLTYPE PostDeleteItem(
11056         DWORD dwFlags,
11057         IShellItem *psiItem,
11058         HRESULT hrDelete,
11059         IShellItem *psiNewlyCreated) = 0;
11060 
11061     virtual HRESULT STDMETHODCALLTYPE PreNewItem(
11062         DWORD dwFlags,
11063         IShellItem *psiDestinationFolder,
11064         LPCWSTR pszNewName) = 0;
11065 
11066     virtual HRESULT STDMETHODCALLTYPE PostNewItem(
11067         DWORD dwFlags,
11068         IShellItem *psiDestinationFolder,
11069         LPCWSTR pszNewName,
11070         LPCWSTR pszTemplateName,
11071         DWORD dwFileAttributes,
11072         HRESULT hrNew,
11073         IShellItem *psiNewItem) = 0;
11074 
11075     virtual HRESULT STDMETHODCALLTYPE UpdateProgress(
11076         UINT iWorkTotal,
11077         UINT iWorkSoFar) = 0;
11078 
11079     virtual HRESULT STDMETHODCALLTYPE ResetTimer(
11080         ) = 0;
11081 
11082     virtual HRESULT STDMETHODCALLTYPE PauseTimer(
11083         ) = 0;
11084 
11085     virtual HRESULT STDMETHODCALLTYPE ResumeTimer(
11086         ) = 0;
11087 
11088 };
11089 #ifdef __CRT_UUID_DECL
11090 __CRT_UUID_DECL(IFileOperationProgressSink, 0x04b0f1a7, 0x9490, 0x44bc, 0x96,0xe1, 0x42,0x96,0xa3,0x12,0x52,0xe2)
11091 #endif
11092 #else
11093 typedef struct IFileOperationProgressSinkVtbl {
11094     BEGIN_INTERFACE
11095 
11096     /*** IUnknown methods ***/
11097     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11098         IFileOperationProgressSink *This,
11099         REFIID riid,
11100         void **ppvObject);
11101 
11102     ULONG (STDMETHODCALLTYPE *AddRef)(
11103         IFileOperationProgressSink *This);
11104 
11105     ULONG (STDMETHODCALLTYPE *Release)(
11106         IFileOperationProgressSink *This);
11107 
11108     /*** IFileOperationProgressSink methods ***/
11109     HRESULT (STDMETHODCALLTYPE *StartOperations)(
11110         IFileOperationProgressSink *This);
11111 
11112     HRESULT (STDMETHODCALLTYPE *FinishOperations)(
11113         IFileOperationProgressSink *This,
11114         HRESULT hrResult);
11115 
11116     HRESULT (STDMETHODCALLTYPE *PreRenameItem)(
11117         IFileOperationProgressSink *This,
11118         DWORD dwFlags,
11119         IShellItem *psiItem,
11120         LPCWSTR pszNewName);
11121 
11122     HRESULT (STDMETHODCALLTYPE *PostRenameItem)(
11123         IFileOperationProgressSink *This,
11124         DWORD dwFlags,
11125         IShellItem *psiItem,
11126         LPCWSTR pszNewName,
11127         HRESULT hrRename,
11128         IShellItem *psiNewlyCreated);
11129 
11130     HRESULT (STDMETHODCALLTYPE *PreMoveItem)(
11131         IFileOperationProgressSink *This,
11132         DWORD dwFlags,
11133         IShellItem *psiItem,
11134         IShellItem *psiDestinationFolder,
11135         LPCWSTR pszNewName);
11136 
11137     HRESULT (STDMETHODCALLTYPE *PostMoveItem)(
11138         IFileOperationProgressSink *This,
11139         DWORD dwFlags,
11140         IShellItem *psiItem,
11141         IShellItem *psiDestinationFolder,
11142         LPCWSTR pszNewName,
11143         HRESULT hrMove,
11144         IShellItem *psiNewlyCreated);
11145 
11146     HRESULT (STDMETHODCALLTYPE *PreCopyItem)(
11147         IFileOperationProgressSink *This,
11148         DWORD dwFlags,
11149         IShellItem *psiItem,
11150         IShellItem *psiDestinationFolder,
11151         LPCWSTR pszNewName);
11152 
11153     HRESULT (STDMETHODCALLTYPE *PostCopyItem)(
11154         IFileOperationProgressSink *This,
11155         DWORD dwFlags,
11156         IShellItem *psiItem,
11157         IShellItem *psiDestinationFolder,
11158         LPCWSTR pszNewName,
11159         HRESULT hrCopy,
11160         IShellItem *psiNewlyCreated);
11161 
11162     HRESULT (STDMETHODCALLTYPE *PreDeleteItem)(
11163         IFileOperationProgressSink *This,
11164         DWORD dwFlags,
11165         IShellItem *psiItem);
11166 
11167     HRESULT (STDMETHODCALLTYPE *PostDeleteItem)(
11168         IFileOperationProgressSink *This,
11169         DWORD dwFlags,
11170         IShellItem *psiItem,
11171         HRESULT hrDelete,
11172         IShellItem *psiNewlyCreated);
11173 
11174     HRESULT (STDMETHODCALLTYPE *PreNewItem)(
11175         IFileOperationProgressSink *This,
11176         DWORD dwFlags,
11177         IShellItem *psiDestinationFolder,
11178         LPCWSTR pszNewName);
11179 
11180     HRESULT (STDMETHODCALLTYPE *PostNewItem)(
11181         IFileOperationProgressSink *This,
11182         DWORD dwFlags,
11183         IShellItem *psiDestinationFolder,
11184         LPCWSTR pszNewName,
11185         LPCWSTR pszTemplateName,
11186         DWORD dwFileAttributes,
11187         HRESULT hrNew,
11188         IShellItem *psiNewItem);
11189 
11190     HRESULT (STDMETHODCALLTYPE *UpdateProgress)(
11191         IFileOperationProgressSink *This,
11192         UINT iWorkTotal,
11193         UINT iWorkSoFar);
11194 
11195     HRESULT (STDMETHODCALLTYPE *ResetTimer)(
11196         IFileOperationProgressSink *This);
11197 
11198     HRESULT (STDMETHODCALLTYPE *PauseTimer)(
11199         IFileOperationProgressSink *This);
11200 
11201     HRESULT (STDMETHODCALLTYPE *ResumeTimer)(
11202         IFileOperationProgressSink *This);
11203 
11204     END_INTERFACE
11205 } IFileOperationProgressSinkVtbl;
11206 
11207 interface IFileOperationProgressSink {
11208     CONST_VTBL IFileOperationProgressSinkVtbl* lpVtbl;
11209 };
11210 
11211 #ifdef COBJMACROS
11212 #ifndef WIDL_C_INLINE_WRAPPERS
11213 /*** IUnknown methods ***/
11214 #define IFileOperationProgressSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11215 #define IFileOperationProgressSink_AddRef(This) (This)->lpVtbl->AddRef(This)
11216 #define IFileOperationProgressSink_Release(This) (This)->lpVtbl->Release(This)
11217 /*** IFileOperationProgressSink methods ***/
11218 #define IFileOperationProgressSink_StartOperations(This) (This)->lpVtbl->StartOperations(This)
11219 #define IFileOperationProgressSink_FinishOperations(This,hrResult) (This)->lpVtbl->FinishOperations(This,hrResult)
11220 #define IFileOperationProgressSink_PreRenameItem(This,dwFlags,psiItem,pszNewName) (This)->lpVtbl->PreRenameItem(This,dwFlags,psiItem,pszNewName)
11221 #define IFileOperationProgressSink_PostRenameItem(This,dwFlags,psiItem,pszNewName,hrRename,psiNewlyCreated) (This)->lpVtbl->PostRenameItem(This,dwFlags,psiItem,pszNewName,hrRename,psiNewlyCreated)
11222 #define IFileOperationProgressSink_PreMoveItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName) (This)->lpVtbl->PreMoveItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName)
11223 #define IFileOperationProgressSink_PostMoveItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName,hrMove,psiNewlyCreated) (This)->lpVtbl->PostMoveItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName,hrMove,psiNewlyCreated)
11224 #define IFileOperationProgressSink_PreCopyItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName) (This)->lpVtbl->PreCopyItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName)
11225 #define IFileOperationProgressSink_PostCopyItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName,hrCopy,psiNewlyCreated) (This)->lpVtbl->PostCopyItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName,hrCopy,psiNewlyCreated)
11226 #define IFileOperationProgressSink_PreDeleteItem(This,dwFlags,psiItem) (This)->lpVtbl->PreDeleteItem(This,dwFlags,psiItem)
11227 #define IFileOperationProgressSink_PostDeleteItem(This,dwFlags,psiItem,hrDelete,psiNewlyCreated) (This)->lpVtbl->PostDeleteItem(This,dwFlags,psiItem,hrDelete,psiNewlyCreated)
11228 #define IFileOperationProgressSink_PreNewItem(This,dwFlags,psiDestinationFolder,pszNewName) (This)->lpVtbl->PreNewItem(This,dwFlags,psiDestinationFolder,pszNewName)
11229 #define IFileOperationProgressSink_PostNewItem(This,dwFlags,psiDestinationFolder,pszNewName,pszTemplateName,dwFileAttributes,hrNew,psiNewItem) (This)->lpVtbl->PostNewItem(This,dwFlags,psiDestinationFolder,pszNewName,pszTemplateName,dwFileAttributes,hrNew,psiNewItem)
11230 #define IFileOperationProgressSink_UpdateProgress(This,iWorkTotal,iWorkSoFar) (This)->lpVtbl->UpdateProgress(This,iWorkTotal,iWorkSoFar)
11231 #define IFileOperationProgressSink_ResetTimer(This) (This)->lpVtbl->ResetTimer(This)
11232 #define IFileOperationProgressSink_PauseTimer(This) (This)->lpVtbl->PauseTimer(This)
11233 #define IFileOperationProgressSink_ResumeTimer(This) (This)->lpVtbl->ResumeTimer(This)
11234 #else
11235 /*** IUnknown methods ***/
11236 static FORCEINLINE HRESULT IFileOperationProgressSink_QueryInterface(IFileOperationProgressSink* This,REFIID riid,void **ppvObject) {
11237     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11238 }
11239 static FORCEINLINE ULONG IFileOperationProgressSink_AddRef(IFileOperationProgressSink* This) {
11240     return This->lpVtbl->AddRef(This);
11241 }
11242 static FORCEINLINE ULONG IFileOperationProgressSink_Release(IFileOperationProgressSink* This) {
11243     return This->lpVtbl->Release(This);
11244 }
11245 /*** IFileOperationProgressSink methods ***/
11246 static FORCEINLINE HRESULT IFileOperationProgressSink_StartOperations(IFileOperationProgressSink* This) {
11247     return This->lpVtbl->StartOperations(This);
11248 }
11249 static FORCEINLINE HRESULT IFileOperationProgressSink_FinishOperations(IFileOperationProgressSink* This,HRESULT hrResult) {
11250     return This->lpVtbl->FinishOperations(This,hrResult);
11251 }
11252 static FORCEINLINE HRESULT IFileOperationProgressSink_PreRenameItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem,LPCWSTR pszNewName) {
11253     return This->lpVtbl->PreRenameItem(This,dwFlags,psiItem,pszNewName);
11254 }
11255 static FORCEINLINE HRESULT IFileOperationProgressSink_PostRenameItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem,LPCWSTR pszNewName,HRESULT hrRename,IShellItem *psiNewlyCreated) {
11256     return This->lpVtbl->PostRenameItem(This,dwFlags,psiItem,pszNewName,hrRename,psiNewlyCreated);
11257 }
11258 static FORCEINLINE HRESULT IFileOperationProgressSink_PreMoveItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem,IShellItem *psiDestinationFolder,LPCWSTR pszNewName) {
11259     return This->lpVtbl->PreMoveItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName);
11260 }
11261 static FORCEINLINE HRESULT IFileOperationProgressSink_PostMoveItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem,IShellItem *psiDestinationFolder,LPCWSTR pszNewName,HRESULT hrMove,IShellItem *psiNewlyCreated) {
11262     return This->lpVtbl->PostMoveItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName,hrMove,psiNewlyCreated);
11263 }
11264 static FORCEINLINE HRESULT IFileOperationProgressSink_PreCopyItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem,IShellItem *psiDestinationFolder,LPCWSTR pszNewName) {
11265     return This->lpVtbl->PreCopyItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName);
11266 }
11267 static FORCEINLINE HRESULT IFileOperationProgressSink_PostCopyItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem,IShellItem *psiDestinationFolder,LPCWSTR pszNewName,HRESULT hrCopy,IShellItem *psiNewlyCreated) {
11268     return This->lpVtbl->PostCopyItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName,hrCopy,psiNewlyCreated);
11269 }
11270 static FORCEINLINE HRESULT IFileOperationProgressSink_PreDeleteItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem) {
11271     return This->lpVtbl->PreDeleteItem(This,dwFlags,psiItem);
11272 }
11273 static FORCEINLINE HRESULT IFileOperationProgressSink_PostDeleteItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem,HRESULT hrDelete,IShellItem *psiNewlyCreated) {
11274     return This->lpVtbl->PostDeleteItem(This,dwFlags,psiItem,hrDelete,psiNewlyCreated);
11275 }
11276 static FORCEINLINE HRESULT IFileOperationProgressSink_PreNewItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiDestinationFolder,LPCWSTR pszNewName) {
11277     return This->lpVtbl->PreNewItem(This,dwFlags,psiDestinationFolder,pszNewName);
11278 }
11279 static FORCEINLINE HRESULT IFileOperationProgressSink_PostNewItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiDestinationFolder,LPCWSTR pszNewName,LPCWSTR pszTemplateName,DWORD dwFileAttributes,HRESULT hrNew,IShellItem *psiNewItem) {
11280     return This->lpVtbl->PostNewItem(This,dwFlags,psiDestinationFolder,pszNewName,pszTemplateName,dwFileAttributes,hrNew,psiNewItem);
11281 }
11282 static FORCEINLINE HRESULT IFileOperationProgressSink_UpdateProgress(IFileOperationProgressSink* This,UINT iWorkTotal,UINT iWorkSoFar) {
11283     return This->lpVtbl->UpdateProgress(This,iWorkTotal,iWorkSoFar);
11284 }
11285 static FORCEINLINE HRESULT IFileOperationProgressSink_ResetTimer(IFileOperationProgressSink* This) {
11286     return This->lpVtbl->ResetTimer(This);
11287 }
11288 static FORCEINLINE HRESULT IFileOperationProgressSink_PauseTimer(IFileOperationProgressSink* This) {
11289     return This->lpVtbl->PauseTimer(This);
11290 }
11291 static FORCEINLINE HRESULT IFileOperationProgressSink_ResumeTimer(IFileOperationProgressSink* This) {
11292     return This->lpVtbl->ResumeTimer(This);
11293 }
11294 #endif
11295 #endif
11296 
11297 #endif
11298 
11299 
11300 #endif  /* __IFileOperationProgressSink_INTERFACE_DEFINED__ */
11301 
11302 #endif
11303 
11304 /*****************************************************************************
11305  * IShellItemArray interface
11306  */
11307 #ifndef __IShellItemArray_INTERFACE_DEFINED__
11308 #define __IShellItemArray_INTERFACE_DEFINED__
11309 
11310 typedef enum SIATTRIBFLAGS {
11311     SIATTRIBFLAGS_AND = 0x1,
11312     SIATTRIBFLAGS_OR = 0x2,
11313     SIATTRIBFLAGS_APPCOMPAT = 0x3,
11314     SIATTRIBFLAGS_MASK = 0x3,
11315     SIATTRIBFLAGS_ALLITEMS = 0x4000
11316 } SIATTRIBFLAGS;
11317 
11318 DEFINE_ENUM_FLAG_OPERATORS(SIATTRIBFLAGS)
11319 
11320 DEFINE_GUID(IID_IShellItemArray, 0xb63ea76d, 0x1f85, 0x456f, 0xa1,0x9c, 0x48,0x15,0x9e,0xfa,0x85,0x8b);
11321 #if defined(__cplusplus) && !defined(CINTERFACE)
11322 MIDL_INTERFACE("b63ea76d-1f85-456f-a19c-48159efa858b")
11323 IShellItemArray : public IUnknown
11324 {
11325     virtual HRESULT STDMETHODCALLTYPE BindToHandler(
11326         IBindCtx *pbc,
11327         REFGUID bhid,
11328         REFIID riid,
11329         void **ppvOut) = 0;
11330 
11331     virtual HRESULT STDMETHODCALLTYPE GetPropertyStore(
11332         GETPROPERTYSTOREFLAGS flags,
11333         REFIID riid,
11334         void **ppv) = 0;
11335 
11336     virtual HRESULT STDMETHODCALLTYPE GetPropertyDescriptionList(
11337         REFPROPERTYKEY keyType,
11338         REFIID riid,
11339         void **ppv) = 0;
11340 
11341     virtual HRESULT STDMETHODCALLTYPE GetAttributes(
11342         SIATTRIBFLAGS AttribFlags,
11343         SFGAOF sfgaoMask,
11344         SFGAOF *psfgaoAttribs) = 0;
11345 
11346     virtual HRESULT STDMETHODCALLTYPE GetCount(
11347         DWORD *pdwNumItems) = 0;
11348 
11349     virtual HRESULT STDMETHODCALLTYPE GetItemAt(
11350         DWORD dwIndex,
11351         IShellItem **ppsi) = 0;
11352 
11353     virtual HRESULT STDMETHODCALLTYPE EnumItems(
11354         IEnumShellItems **ppenumShellItems) = 0;
11355 
11356 };
11357 #ifdef __CRT_UUID_DECL
11358 __CRT_UUID_DECL(IShellItemArray, 0xb63ea76d, 0x1f85, 0x456f, 0xa1,0x9c, 0x48,0x15,0x9e,0xfa,0x85,0x8b)
11359 #endif
11360 #else
11361 typedef struct IShellItemArrayVtbl {
11362     BEGIN_INTERFACE
11363 
11364     /*** IUnknown methods ***/
11365     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11366         IShellItemArray *This,
11367         REFIID riid,
11368         void **ppvObject);
11369 
11370     ULONG (STDMETHODCALLTYPE *AddRef)(
11371         IShellItemArray *This);
11372 
11373     ULONG (STDMETHODCALLTYPE *Release)(
11374         IShellItemArray *This);
11375 
11376     /*** IShellItemArray methods ***/
11377     HRESULT (STDMETHODCALLTYPE *BindToHandler)(
11378         IShellItemArray *This,
11379         IBindCtx *pbc,
11380         REFGUID bhid,
11381         REFIID riid,
11382         void **ppvOut);
11383 
11384     HRESULT (STDMETHODCALLTYPE *GetPropertyStore)(
11385         IShellItemArray *This,
11386         GETPROPERTYSTOREFLAGS flags,
11387         REFIID riid,
11388         void **ppv);
11389 
11390     HRESULT (STDMETHODCALLTYPE *GetPropertyDescriptionList)(
11391         IShellItemArray *This,
11392         REFPROPERTYKEY keyType,
11393         REFIID riid,
11394         void **ppv);
11395 
11396     HRESULT (STDMETHODCALLTYPE *GetAttributes)(
11397         IShellItemArray *This,
11398         SIATTRIBFLAGS AttribFlags,
11399         SFGAOF sfgaoMask,
11400         SFGAOF *psfgaoAttribs);
11401 
11402     HRESULT (STDMETHODCALLTYPE *GetCount)(
11403         IShellItemArray *This,
11404         DWORD *pdwNumItems);
11405 
11406     HRESULT (STDMETHODCALLTYPE *GetItemAt)(
11407         IShellItemArray *This,
11408         DWORD dwIndex,
11409         IShellItem **ppsi);
11410 
11411     HRESULT (STDMETHODCALLTYPE *EnumItems)(
11412         IShellItemArray *This,
11413         IEnumShellItems **ppenumShellItems);
11414 
11415     END_INTERFACE
11416 } IShellItemArrayVtbl;
11417 
11418 interface IShellItemArray {
11419     CONST_VTBL IShellItemArrayVtbl* lpVtbl;
11420 };
11421 
11422 #ifdef COBJMACROS
11423 #ifndef WIDL_C_INLINE_WRAPPERS
11424 /*** IUnknown methods ***/
11425 #define IShellItemArray_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11426 #define IShellItemArray_AddRef(This) (This)->lpVtbl->AddRef(This)
11427 #define IShellItemArray_Release(This) (This)->lpVtbl->Release(This)
11428 /*** IShellItemArray methods ***/
11429 #define IShellItemArray_BindToHandler(This,pbc,bhid,riid,ppvOut) (This)->lpVtbl->BindToHandler(This,pbc,bhid,riid,ppvOut)
11430 #define IShellItemArray_GetPropertyStore(This,flags,riid,ppv) (This)->lpVtbl->GetPropertyStore(This,flags,riid,ppv)
11431 #define IShellItemArray_GetPropertyDescriptionList(This,keyType,riid,ppv) (This)->lpVtbl->GetPropertyDescriptionList(This,keyType,riid,ppv)
11432 #define IShellItemArray_GetAttributes(This,AttribFlags,sfgaoMask,psfgaoAttribs) (This)->lpVtbl->GetAttributes(This,AttribFlags,sfgaoMask,psfgaoAttribs)
11433 #define IShellItemArray_GetCount(This,pdwNumItems) (This)->lpVtbl->GetCount(This,pdwNumItems)
11434 #define IShellItemArray_GetItemAt(This,dwIndex,ppsi) (This)->lpVtbl->GetItemAt(This,dwIndex,ppsi)
11435 #define IShellItemArray_EnumItems(This,ppenumShellItems) (This)->lpVtbl->EnumItems(This,ppenumShellItems)
11436 #else
11437 /*** IUnknown methods ***/
11438 static FORCEINLINE HRESULT IShellItemArray_QueryInterface(IShellItemArray* This,REFIID riid,void **ppvObject) {
11439     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11440 }
11441 static FORCEINLINE ULONG IShellItemArray_AddRef(IShellItemArray* This) {
11442     return This->lpVtbl->AddRef(This);
11443 }
11444 static FORCEINLINE ULONG IShellItemArray_Release(IShellItemArray* This) {
11445     return This->lpVtbl->Release(This);
11446 }
11447 /*** IShellItemArray methods ***/
11448 static FORCEINLINE HRESULT IShellItemArray_BindToHandler(IShellItemArray* This,IBindCtx *pbc,REFGUID bhid,REFIID riid,void **ppvOut) {
11449     return This->lpVtbl->BindToHandler(This,pbc,bhid,riid,ppvOut);
11450 }
11451 static FORCEINLINE HRESULT IShellItemArray_GetPropertyStore(IShellItemArray* This,GETPROPERTYSTOREFLAGS flags,REFIID riid,void **ppv) {
11452     return This->lpVtbl->GetPropertyStore(This,flags,riid,ppv);
11453 }
11454 static FORCEINLINE HRESULT IShellItemArray_GetPropertyDescriptionList(IShellItemArray* This,REFPROPERTYKEY keyType,REFIID riid,void **ppv) {
11455     return This->lpVtbl->GetPropertyDescriptionList(This,keyType,riid,ppv);
11456 }
11457 static FORCEINLINE HRESULT IShellItemArray_GetAttributes(IShellItemArray* This,SIATTRIBFLAGS AttribFlags,SFGAOF sfgaoMask,SFGAOF *psfgaoAttribs) {
11458     return This->lpVtbl->GetAttributes(This,AttribFlags,sfgaoMask,psfgaoAttribs);
11459 }
11460 static FORCEINLINE HRESULT IShellItemArray_GetCount(IShellItemArray* This,DWORD *pdwNumItems) {
11461     return This->lpVtbl->GetCount(This,pdwNumItems);
11462 }
11463 static FORCEINLINE HRESULT IShellItemArray_GetItemAt(IShellItemArray* This,DWORD dwIndex,IShellItem **ppsi) {
11464     return This->lpVtbl->GetItemAt(This,dwIndex,ppsi);
11465 }
11466 static FORCEINLINE HRESULT IShellItemArray_EnumItems(IShellItemArray* This,IEnumShellItems **ppenumShellItems) {
11467     return This->lpVtbl->EnumItems(This,ppenumShellItems);
11468 }
11469 #endif
11470 #endif
11471 
11472 #endif
11473 
11474 
11475 #endif  /* __IShellItemArray_INTERFACE_DEFINED__ */
11476 
11477 
11478 #if _WIN32_IE >= _WIN32_IE_IE70
11479   SHSTDAPI SHCreateShellItemArray(PCIDLIST_ABSOLUTE pidlParent, IShellFolder *psf, UINT cidl, PCUITEMID_CHILD_ARRAY ppidl, IShellItemArray **ppsiItemArray);
11480   SHSTDAPI SHCreateShellItemArrayFromDataObject(IDataObject *pdo, REFIID riid, void **ppv);
11481   SHSTDAPI SHCreateShellItemArrayFromIDLists(UINT cidl, PCIDLIST_ABSOLUTE_ARRAY rgpidl, IShellItemArray **ppsiItemArray);
11482   SHSTDAPI SHCreateShellItemArrayFromShellItem(IShellItem *psi, REFIID riid, void **ppv);
11483 #endif
11484 
11485 /*****************************************************************************
11486  * IInitializeWithItem interface
11487  */
11488 #ifndef __IInitializeWithItem_INTERFACE_DEFINED__
11489 #define __IInitializeWithItem_INTERFACE_DEFINED__
11490 
11491 DEFINE_GUID(IID_IInitializeWithItem, 0x7f73be3f, 0xfb79, 0x493c, 0xa6,0xc7, 0x7e,0xe1,0x4e,0x24,0x58,0x41);
11492 #if defined(__cplusplus) && !defined(CINTERFACE)
11493 MIDL_INTERFACE("7f73be3f-fb79-493c-a6c7-7ee14e245841")
11494 IInitializeWithItem : public IUnknown
11495 {
11496     virtual HRESULT STDMETHODCALLTYPE Initialize(
11497         IShellItem *psi,
11498         DWORD grfMode) = 0;
11499 
11500 };
11501 #ifdef __CRT_UUID_DECL
11502 __CRT_UUID_DECL(IInitializeWithItem, 0x7f73be3f, 0xfb79, 0x493c, 0xa6,0xc7, 0x7e,0xe1,0x4e,0x24,0x58,0x41)
11503 #endif
11504 #else
11505 typedef struct IInitializeWithItemVtbl {
11506     BEGIN_INTERFACE
11507 
11508     /*** IUnknown methods ***/
11509     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11510         IInitializeWithItem *This,
11511         REFIID riid,
11512         void **ppvObject);
11513 
11514     ULONG (STDMETHODCALLTYPE *AddRef)(
11515         IInitializeWithItem *This);
11516 
11517     ULONG (STDMETHODCALLTYPE *Release)(
11518         IInitializeWithItem *This);
11519 
11520     /*** IInitializeWithItem methods ***/
11521     HRESULT (STDMETHODCALLTYPE *Initialize)(
11522         IInitializeWithItem *This,
11523         IShellItem *psi,
11524         DWORD grfMode);
11525 
11526     END_INTERFACE
11527 } IInitializeWithItemVtbl;
11528 
11529 interface IInitializeWithItem {
11530     CONST_VTBL IInitializeWithItemVtbl* lpVtbl;
11531 };
11532 
11533 #ifdef COBJMACROS
11534 #ifndef WIDL_C_INLINE_WRAPPERS
11535 /*** IUnknown methods ***/
11536 #define IInitializeWithItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11537 #define IInitializeWithItem_AddRef(This) (This)->lpVtbl->AddRef(This)
11538 #define IInitializeWithItem_Release(This) (This)->lpVtbl->Release(This)
11539 /*** IInitializeWithItem methods ***/
11540 #define IInitializeWithItem_Initialize(This,psi,grfMode) (This)->lpVtbl->Initialize(This,psi,grfMode)
11541 #else
11542 /*** IUnknown methods ***/
11543 static FORCEINLINE HRESULT IInitializeWithItem_QueryInterface(IInitializeWithItem* This,REFIID riid,void **ppvObject) {
11544     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11545 }
11546 static FORCEINLINE ULONG IInitializeWithItem_AddRef(IInitializeWithItem* This) {
11547     return This->lpVtbl->AddRef(This);
11548 }
11549 static FORCEINLINE ULONG IInitializeWithItem_Release(IInitializeWithItem* This) {
11550     return This->lpVtbl->Release(This);
11551 }
11552 /*** IInitializeWithItem methods ***/
11553 static FORCEINLINE HRESULT IInitializeWithItem_Initialize(IInitializeWithItem* This,IShellItem *psi,DWORD grfMode) {
11554     return This->lpVtbl->Initialize(This,psi,grfMode);
11555 }
11556 #endif
11557 #endif
11558 
11559 #endif
11560 
11561 
11562 #endif  /* __IInitializeWithItem_INTERFACE_DEFINED__ */
11563 
11564 
11565 /*****************************************************************************
11566  * IObjectWithSelection interface
11567  */
11568 #ifndef __IObjectWithSelection_INTERFACE_DEFINED__
11569 #define __IObjectWithSelection_INTERFACE_DEFINED__
11570 
11571 DEFINE_GUID(IID_IObjectWithSelection, 0x1c9cd5bb, 0x98e9, 0x4491, 0xa6,0x0f, 0x31,0xaa,0xcc,0x72,0xb8,0x3c);
11572 #if defined(__cplusplus) && !defined(CINTERFACE)
11573 MIDL_INTERFACE("1c9cd5bb-98e9-4491-a60f-31aacc72b83c")
11574 IObjectWithSelection : public IUnknown
11575 {
11576     virtual HRESULT STDMETHODCALLTYPE SetSelection(
11577         IShellItemArray *psia) = 0;
11578 
11579     virtual HRESULT STDMETHODCALLTYPE GetSelection(
11580         REFIID riid,
11581         void **ppv) = 0;
11582 
11583 };
11584 #ifdef __CRT_UUID_DECL
11585 __CRT_UUID_DECL(IObjectWithSelection, 0x1c9cd5bb, 0x98e9, 0x4491, 0xa6,0x0f, 0x31,0xaa,0xcc,0x72,0xb8,0x3c)
11586 #endif
11587 #else
11588 typedef struct IObjectWithSelectionVtbl {
11589     BEGIN_INTERFACE
11590 
11591     /*** IUnknown methods ***/
11592     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11593         IObjectWithSelection *This,
11594         REFIID riid,
11595         void **ppvObject);
11596 
11597     ULONG (STDMETHODCALLTYPE *AddRef)(
11598         IObjectWithSelection *This);
11599 
11600     ULONG (STDMETHODCALLTYPE *Release)(
11601         IObjectWithSelection *This);
11602 
11603     /*** IObjectWithSelection methods ***/
11604     HRESULT (STDMETHODCALLTYPE *SetSelection)(
11605         IObjectWithSelection *This,
11606         IShellItemArray *psia);
11607 
11608     HRESULT (STDMETHODCALLTYPE *GetSelection)(
11609         IObjectWithSelection *This,
11610         REFIID riid,
11611         void **ppv);
11612 
11613     END_INTERFACE
11614 } IObjectWithSelectionVtbl;
11615 
11616 interface IObjectWithSelection {
11617     CONST_VTBL IObjectWithSelectionVtbl* lpVtbl;
11618 };
11619 
11620 #ifdef COBJMACROS
11621 #ifndef WIDL_C_INLINE_WRAPPERS
11622 /*** IUnknown methods ***/
11623 #define IObjectWithSelection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11624 #define IObjectWithSelection_AddRef(This) (This)->lpVtbl->AddRef(This)
11625 #define IObjectWithSelection_Release(This) (This)->lpVtbl->Release(This)
11626 /*** IObjectWithSelection methods ***/
11627 #define IObjectWithSelection_SetSelection(This,psia) (This)->lpVtbl->SetSelection(This,psia)
11628 #define IObjectWithSelection_GetSelection(This,riid,ppv) (This)->lpVtbl->GetSelection(This,riid,ppv)
11629 #else
11630 /*** IUnknown methods ***/
11631 static FORCEINLINE HRESULT IObjectWithSelection_QueryInterface(IObjectWithSelection* This,REFIID riid,void **ppvObject) {
11632     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11633 }
11634 static FORCEINLINE ULONG IObjectWithSelection_AddRef(IObjectWithSelection* This) {
11635     return This->lpVtbl->AddRef(This);
11636 }
11637 static FORCEINLINE ULONG IObjectWithSelection_Release(IObjectWithSelection* This) {
11638     return This->lpVtbl->Release(This);
11639 }
11640 /*** IObjectWithSelection methods ***/
11641 static FORCEINLINE HRESULT IObjectWithSelection_SetSelection(IObjectWithSelection* This,IShellItemArray *psia) {
11642     return This->lpVtbl->SetSelection(This,psia);
11643 }
11644 static FORCEINLINE HRESULT IObjectWithSelection_GetSelection(IObjectWithSelection* This,REFIID riid,void **ppv) {
11645     return This->lpVtbl->GetSelection(This,riid,ppv);
11646 }
11647 #endif
11648 #endif
11649 
11650 #endif
11651 
11652 
11653 #endif  /* __IObjectWithSelection_INTERFACE_DEFINED__ */
11654 
11655 
11656 /*****************************************************************************
11657  * IObjectWithBackReferences interface
11658  */
11659 #ifndef __IObjectWithBackReferences_INTERFACE_DEFINED__
11660 #define __IObjectWithBackReferences_INTERFACE_DEFINED__
11661 
11662 DEFINE_GUID(IID_IObjectWithBackReferences, 0x321a6a6a, 0xd61f, 0x4bf3, 0x97,0xae, 0x14,0xbe,0x29,0x86,0xbb,0x36);
11663 #if defined(__cplusplus) && !defined(CINTERFACE)
11664 MIDL_INTERFACE("321a6a6a-d61f-4bf3-97ae-14be2986bb36")
11665 IObjectWithBackReferences : public IUnknown
11666 {
11667     virtual HRESULT STDMETHODCALLTYPE RemoveBackReferences(
11668         ) = 0;
11669 
11670 };
11671 #ifdef __CRT_UUID_DECL
11672 __CRT_UUID_DECL(IObjectWithBackReferences, 0x321a6a6a, 0xd61f, 0x4bf3, 0x97,0xae, 0x14,0xbe,0x29,0x86,0xbb,0x36)
11673 #endif
11674 #else
11675 typedef struct IObjectWithBackReferencesVtbl {
11676     BEGIN_INTERFACE
11677 
11678     /*** IUnknown methods ***/
11679     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11680         IObjectWithBackReferences *This,
11681         REFIID riid,
11682         void **ppvObject);
11683 
11684     ULONG (STDMETHODCALLTYPE *AddRef)(
11685         IObjectWithBackReferences *This);
11686 
11687     ULONG (STDMETHODCALLTYPE *Release)(
11688         IObjectWithBackReferences *This);
11689 
11690     /*** IObjectWithBackReferences methods ***/
11691     HRESULT (STDMETHODCALLTYPE *RemoveBackReferences)(
11692         IObjectWithBackReferences *This);
11693 
11694     END_INTERFACE
11695 } IObjectWithBackReferencesVtbl;
11696 
11697 interface IObjectWithBackReferences {
11698     CONST_VTBL IObjectWithBackReferencesVtbl* lpVtbl;
11699 };
11700 
11701 #ifdef COBJMACROS
11702 #ifndef WIDL_C_INLINE_WRAPPERS
11703 /*** IUnknown methods ***/
11704 #define IObjectWithBackReferences_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11705 #define IObjectWithBackReferences_AddRef(This) (This)->lpVtbl->AddRef(This)
11706 #define IObjectWithBackReferences_Release(This) (This)->lpVtbl->Release(This)
11707 /*** IObjectWithBackReferences methods ***/
11708 #define IObjectWithBackReferences_RemoveBackReferences(This) (This)->lpVtbl->RemoveBackReferences(This)
11709 #else
11710 /*** IUnknown methods ***/
11711 static FORCEINLINE HRESULT IObjectWithBackReferences_QueryInterface(IObjectWithBackReferences* This,REFIID riid,void **ppvObject) {
11712     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11713 }
11714 static FORCEINLINE ULONG IObjectWithBackReferences_AddRef(IObjectWithBackReferences* This) {
11715     return This->lpVtbl->AddRef(This);
11716 }
11717 static FORCEINLINE ULONG IObjectWithBackReferences_Release(IObjectWithBackReferences* This) {
11718     return This->lpVtbl->Release(This);
11719 }
11720 /*** IObjectWithBackReferences methods ***/
11721 static FORCEINLINE HRESULT IObjectWithBackReferences_RemoveBackReferences(IObjectWithBackReferences* This) {
11722     return This->lpVtbl->RemoveBackReferences(This);
11723 }
11724 #endif
11725 #endif
11726 
11727 #endif
11728 
11729 
11730 #endif  /* __IObjectWithBackReferences_INTERFACE_DEFINED__ */
11731 
11732 
11733 enum _PROPERTYUI_NAME_FLAGS {
11734     PUIFNF_DEFAULT = 0x0,
11735     PUIFNF_MNEMONIC = 0x1
11736 };
11737 
11738 typedef DWORD PROPERTYUI_NAME_FLAGS;
11739 
11740 enum _PROPERTYUI_FLAGS {
11741     PUIF_DEFAULT = 0x0,
11742     PUIF_RIGHTALIGN = 0x1,
11743     PUIF_NOLABELININFOTIP = 0x2
11744 };
11745 
11746 typedef DWORD PROPERTYUI_FLAGS;
11747 
11748 enum _PROPERTYUI_FORMAT_FLAGS {
11749     PUIFFDF_DEFAULT = 0x0,
11750     PUIFFDF_RIGHTTOLEFT = 0x1,
11751     PUIFFDF_SHORTFORMAT = 0x2,
11752     PUIFFDF_NOTIME = 0x4,
11753     PUIFFDF_FRIENDLYDATE = 0x8
11754 };
11755 
11756 typedef DWORD PROPERTYUI_FORMAT_FLAGS;
11757 
11758 /*****************************************************************************
11759  * IPropertyUI interface
11760  */
11761 #ifndef __IPropertyUI_INTERFACE_DEFINED__
11762 #define __IPropertyUI_INTERFACE_DEFINED__
11763 
11764 DEFINE_GUID(IID_IPropertyUI, 0x757a7d9f, 0x919a, 0x4118, 0x99,0xd7, 0xdb,0xb2,0x08,0xc8,0xcc,0x66);
11765 #if defined(__cplusplus) && !defined(CINTERFACE)
11766 MIDL_INTERFACE("757a7d9f-919a-4118-99d7-dbb208c8cc66")
11767 IPropertyUI : public IUnknown
11768 {
11769     virtual HRESULT STDMETHODCALLTYPE ParsePropertyName(
11770         LPCWSTR pszName,
11771         FMTID *pfmtid,
11772         PROPID *ppid,
11773         ULONG *pchEaten) = 0;
11774 
11775     virtual HRESULT STDMETHODCALLTYPE GetCannonicalName(
11776         REFFMTID fmtid,
11777         PROPID pid,
11778         LPWSTR pwszText,
11779         DWORD cchText) = 0;
11780 
11781     virtual HRESULT STDMETHODCALLTYPE GetDisplayName(
11782         REFFMTID fmtid,
11783         PROPID pid,
11784         PROPERTYUI_NAME_FLAGS flags,
11785         LPWSTR pwszText,
11786         DWORD cchText) = 0;
11787 
11788     virtual HRESULT STDMETHODCALLTYPE GetPropertyDescription(
11789         REFFMTID fmtid,
11790         PROPID pid,
11791         LPWSTR pwszText,
11792         DWORD cchText) = 0;
11793 
11794     virtual HRESULT STDMETHODCALLTYPE GetDefaultWidth(
11795         REFFMTID fmtid,
11796         PROPID pid,
11797         ULONG *pcxChars) = 0;
11798 
11799     virtual HRESULT STDMETHODCALLTYPE GetFlags(
11800         REFFMTID fmtid,
11801         PROPID pid,
11802         PROPERTYUI_FLAGS *pflags) = 0;
11803 
11804     virtual HRESULT STDMETHODCALLTYPE FormatForDisplay(
11805         REFFMTID fmtid,
11806         PROPID pid,
11807         const PROPVARIANT *ppropvar,
11808         PROPERTYUI_FORMAT_FLAGS puiff,
11809         LPWSTR pwszText,
11810         DWORD cchText) = 0;
11811 
11812     virtual HRESULT STDMETHODCALLTYPE GetHelpInfo(
11813         REFFMTID fmtid,
11814         PROPID pid,
11815         LPWSTR pwszHelpFile,
11816         DWORD cch,
11817         UINT *puHelpID) = 0;
11818 
11819 };
11820 #ifdef __CRT_UUID_DECL
11821 __CRT_UUID_DECL(IPropertyUI, 0x757a7d9f, 0x919a, 0x4118, 0x99,0xd7, 0xdb,0xb2,0x08,0xc8,0xcc,0x66)
11822 #endif
11823 #else
11824 typedef struct IPropertyUIVtbl {
11825     BEGIN_INTERFACE
11826 
11827     /*** IUnknown methods ***/
11828     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11829         IPropertyUI *This,
11830         REFIID riid,
11831         void **ppvObject);
11832 
11833     ULONG (STDMETHODCALLTYPE *AddRef)(
11834         IPropertyUI *This);
11835 
11836     ULONG (STDMETHODCALLTYPE *Release)(
11837         IPropertyUI *This);
11838 
11839     /*** IPropertyUI methods ***/
11840     HRESULT (STDMETHODCALLTYPE *ParsePropertyName)(
11841         IPropertyUI *This,
11842         LPCWSTR pszName,
11843         FMTID *pfmtid,
11844         PROPID *ppid,
11845         ULONG *pchEaten);
11846 
11847     HRESULT (STDMETHODCALLTYPE *GetCannonicalName)(
11848         IPropertyUI *This,
11849         REFFMTID fmtid,
11850         PROPID pid,
11851         LPWSTR pwszText,
11852         DWORD cchText);
11853 
11854     HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
11855         IPropertyUI *This,
11856         REFFMTID fmtid,
11857         PROPID pid,
11858         PROPERTYUI_NAME_FLAGS flags,
11859         LPWSTR pwszText,
11860         DWORD cchText);
11861 
11862     HRESULT (STDMETHODCALLTYPE *GetPropertyDescription)(
11863         IPropertyUI *This,
11864         REFFMTID fmtid,
11865         PROPID pid,
11866         LPWSTR pwszText,
11867         DWORD cchText);
11868 
11869     HRESULT (STDMETHODCALLTYPE *GetDefaultWidth)(
11870         IPropertyUI *This,
11871         REFFMTID fmtid,
11872         PROPID pid,
11873         ULONG *pcxChars);
11874 
11875     HRESULT (STDMETHODCALLTYPE *GetFlags)(
11876         IPropertyUI *This,
11877         REFFMTID fmtid,
11878         PROPID pid,
11879         PROPERTYUI_FLAGS *pflags);
11880 
11881     HRESULT (STDMETHODCALLTYPE *FormatForDisplay)(
11882         IPropertyUI *This,
11883         REFFMTID fmtid,
11884         PROPID pid,
11885         const PROPVARIANT *ppropvar,
11886         PROPERTYUI_FORMAT_FLAGS puiff,
11887         LPWSTR pwszText,
11888         DWORD cchText);
11889 
11890     HRESULT (STDMETHODCALLTYPE *GetHelpInfo)(
11891         IPropertyUI *This,
11892         REFFMTID fmtid,
11893         PROPID pid,
11894         LPWSTR pwszHelpFile,
11895         DWORD cch,
11896         UINT *puHelpID);
11897 
11898     END_INTERFACE
11899 } IPropertyUIVtbl;
11900 
11901 interface IPropertyUI {
11902     CONST_VTBL IPropertyUIVtbl* lpVtbl;
11903 };
11904 
11905 #ifdef COBJMACROS
11906 #ifndef WIDL_C_INLINE_WRAPPERS
11907 /*** IUnknown methods ***/
11908 #define IPropertyUI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11909 #define IPropertyUI_AddRef(This) (This)->lpVtbl->AddRef(This)
11910 #define IPropertyUI_Release(This) (This)->lpVtbl->Release(This)
11911 /*** IPropertyUI methods ***/
11912 #define IPropertyUI_ParsePropertyName(This,pszName,pfmtid,ppid,pchEaten) (This)->lpVtbl->ParsePropertyName(This,pszName,pfmtid,ppid,pchEaten)
11913 #define IPropertyUI_GetCannonicalName(This,fmtid,pid,pwszText,cchText) (This)->lpVtbl->GetCannonicalName(This,fmtid,pid,pwszText,cchText)
11914 #define IPropertyUI_GetDisplayName(This,fmtid,pid,flags,pwszText,cchText) (This)->lpVtbl->GetDisplayName(This,fmtid,pid,flags,pwszText,cchText)
11915 #define IPropertyUI_GetPropertyDescription(This,fmtid,pid,pwszText,cchText) (This)->lpVtbl->GetPropertyDescription(This,fmtid,pid,pwszText,cchText)
11916 #define IPropertyUI_GetDefaultWidth(This,fmtid,pid,pcxChars) (This)->lpVtbl->GetDefaultWidth(This,fmtid,pid,pcxChars)
11917 #define IPropertyUI_GetFlags(This,fmtid,pid,pflags) (This)->lpVtbl->GetFlags(This,fmtid,pid,pflags)
11918 #define IPropertyUI_FormatForDisplay(This,fmtid,pid,ppropvar,puiff,pwszText,cchText) (This)->lpVtbl->FormatForDisplay(This,fmtid,pid,ppropvar,puiff,pwszText,cchText)
11919 #define IPropertyUI_GetHelpInfo(This,fmtid,pid,pwszHelpFile,cch,puHelpID) (This)->lpVtbl->GetHelpInfo(This,fmtid,pid,pwszHelpFile,cch,puHelpID)
11920 #else
11921 /*** IUnknown methods ***/
11922 static FORCEINLINE HRESULT IPropertyUI_QueryInterface(IPropertyUI* This,REFIID riid,void **ppvObject) {
11923     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11924 }
11925 static FORCEINLINE ULONG IPropertyUI_AddRef(IPropertyUI* This) {
11926     return This->lpVtbl->AddRef(This);
11927 }
11928 static FORCEINLINE ULONG IPropertyUI_Release(IPropertyUI* This) {
11929     return This->lpVtbl->Release(This);
11930 }
11931 /*** IPropertyUI methods ***/
11932 static FORCEINLINE HRESULT IPropertyUI_ParsePropertyName(IPropertyUI* This,LPCWSTR pszName,FMTID *pfmtid,PROPID *ppid,ULONG *pchEaten) {
11933     return This->lpVtbl->ParsePropertyName(This,pszName,pfmtid,ppid,pchEaten);
11934 }
11935 static FORCEINLINE HRESULT IPropertyUI_GetCannonicalName(IPropertyUI* This,REFFMTID fmtid,PROPID pid,LPWSTR pwszText,DWORD cchText) {
11936     return This->lpVtbl->GetCannonicalName(This,fmtid,pid,pwszText,cchText);
11937 }
11938 static FORCEINLINE HRESULT IPropertyUI_GetDisplayName(IPropertyUI* This,REFFMTID fmtid,PROPID pid,PROPERTYUI_NAME_FLAGS flags,LPWSTR pwszText,DWORD cchText) {
11939     return This->lpVtbl->GetDisplayName(This,fmtid,pid,flags,pwszText,cchText);
11940 }
11941 static FORCEINLINE HRESULT IPropertyUI_GetPropertyDescription(IPropertyUI* This,REFFMTID fmtid,PROPID pid,LPWSTR pwszText,DWORD cchText) {
11942     return This->lpVtbl->GetPropertyDescription(This,fmtid,pid,pwszText,cchText);
11943 }
11944 static FORCEINLINE HRESULT IPropertyUI_GetDefaultWidth(IPropertyUI* This,REFFMTID fmtid,PROPID pid,ULONG *pcxChars) {
11945     return This->lpVtbl->GetDefaultWidth(This,fmtid,pid,pcxChars);
11946 }
11947 static FORCEINLINE HRESULT IPropertyUI_GetFlags(IPropertyUI* This,REFFMTID fmtid,PROPID pid,PROPERTYUI_FLAGS *pflags) {
11948     return This->lpVtbl->GetFlags(This,fmtid,pid,pflags);
11949 }
11950 static FORCEINLINE HRESULT IPropertyUI_FormatForDisplay(IPropertyUI* This,REFFMTID fmtid,PROPID pid,const PROPVARIANT *ppropvar,PROPERTYUI_FORMAT_FLAGS puiff,LPWSTR pwszText,DWORD cchText) {
11951     return This->lpVtbl->FormatForDisplay(This,fmtid,pid,ppropvar,puiff,pwszText,cchText);
11952 }
11953 static FORCEINLINE HRESULT IPropertyUI_GetHelpInfo(IPropertyUI* This,REFFMTID fmtid,PROPID pid,LPWSTR pwszHelpFile,DWORD cch,UINT *puHelpID) {
11954     return This->lpVtbl->GetHelpInfo(This,fmtid,pid,pwszHelpFile,cch,puHelpID);
11955 }
11956 #endif
11957 #endif
11958 
11959 #endif
11960 
11961 
11962 #endif  /* __IPropertyUI_INTERFACE_DEFINED__ */
11963 
11964 
11965 #if _WIN32_IE >= _WIN32_IE_IE70
11966   SHSTDAPI SHRemovePersonalPropertyValues(IShellItemArray *psia);
11967   SHSTDAPI SHAddDefaultPropertiesByExt(PCWSTR pszExt, IPropertyStore *pPropStore);
11968   SHSTDAPI SHCreateDefaultPropertiesOp(IShellItem *psi, IFileOperation **ppFileOp);
11969   SHSTDAPI SHSetDefaultProperties(HWND hwnd, IShellItem *psi, DWORD dwFileOpFlags, IFileOperationProgressSink *pfops);
11970 #endif
11971 
11972 /*****************************************************************************
11973  * ICategoryProvider interface
11974  */
11975 #ifndef __ICategoryProvider_INTERFACE_DEFINED__
11976 #define __ICategoryProvider_INTERFACE_DEFINED__
11977 
11978 DEFINE_GUID(IID_ICategoryProvider, 0x9af64809, 0x5864, 0x4c26, 0xa7,0x20, 0xc1,0xf7,0x8c,0x08,0x6e,0xe3);
11979 #if defined(__cplusplus) && !defined(CINTERFACE)
11980 MIDL_INTERFACE("9af64809-5864-4c26-a720-c1f78c086ee3")
11981 ICategoryProvider : public IUnknown
11982 {
11983     virtual HRESULT STDMETHODCALLTYPE CanCategorizeOnSCID(
11984         const SHCOLUMNID *pscid) = 0;
11985 
11986     virtual HRESULT STDMETHODCALLTYPE GetDefaultCategory(
11987         GUID *pguid,
11988         SHCOLUMNID *pscid) = 0;
11989 
11990     virtual HRESULT STDMETHODCALLTYPE GetCategoryForSCID(
11991         const SHCOLUMNID *pscid,
11992         GUID *pguid) = 0;
11993 
11994     virtual HRESULT STDMETHODCALLTYPE EnumCategories(
11995         IEnumGUID **penum) = 0;
11996 
11997     virtual HRESULT STDMETHODCALLTYPE GetCategoryName(
11998         const GUID *pguid,
11999         LPWSTR pszName,
12000         UINT cch) = 0;
12001 
12002     virtual HRESULT STDMETHODCALLTYPE CreateCategory(
12003         const GUID *pguid,
12004         REFIID riid,
12005         void **ppv) = 0;
12006 
12007 };
12008 #ifdef __CRT_UUID_DECL
12009 __CRT_UUID_DECL(ICategoryProvider, 0x9af64809, 0x5864, 0x4c26, 0xa7,0x20, 0xc1,0xf7,0x8c,0x08,0x6e,0xe3)
12010 #endif
12011 #else
12012 typedef struct ICategoryProviderVtbl {
12013     BEGIN_INTERFACE
12014 
12015     /*** IUnknown methods ***/
12016     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12017         ICategoryProvider *This,
12018         REFIID riid,
12019         void **ppvObject);
12020 
12021     ULONG (STDMETHODCALLTYPE *AddRef)(
12022         ICategoryProvider *This);
12023 
12024     ULONG (STDMETHODCALLTYPE *Release)(
12025         ICategoryProvider *This);
12026 
12027     /*** ICategoryProvider methods ***/
12028     HRESULT (STDMETHODCALLTYPE *CanCategorizeOnSCID)(
12029         ICategoryProvider *This,
12030         const SHCOLUMNID *pscid);
12031 
12032     HRESULT (STDMETHODCALLTYPE *GetDefaultCategory)(
12033         ICategoryProvider *This,
12034         GUID *pguid,
12035         SHCOLUMNID *pscid);
12036 
12037     HRESULT (STDMETHODCALLTYPE *GetCategoryForSCID)(
12038         ICategoryProvider *This,
12039         const SHCOLUMNID *pscid,
12040         GUID *pguid);
12041 
12042     HRESULT (STDMETHODCALLTYPE *EnumCategories)(
12043         ICategoryProvider *This,
12044         IEnumGUID **penum);
12045 
12046     HRESULT (STDMETHODCALLTYPE *GetCategoryName)(
12047         ICategoryProvider *This,
12048         const GUID *pguid,
12049         LPWSTR pszName,
12050         UINT cch);
12051 
12052     HRESULT (STDMETHODCALLTYPE *CreateCategory)(
12053         ICategoryProvider *This,
12054         const GUID *pguid,
12055         REFIID riid,
12056         void **ppv);
12057 
12058     END_INTERFACE
12059 } ICategoryProviderVtbl;
12060 
12061 interface ICategoryProvider {
12062     CONST_VTBL ICategoryProviderVtbl* lpVtbl;
12063 };
12064 
12065 #ifdef COBJMACROS
12066 #ifndef WIDL_C_INLINE_WRAPPERS
12067 /*** IUnknown methods ***/
12068 #define ICategoryProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12069 #define ICategoryProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
12070 #define ICategoryProvider_Release(This) (This)->lpVtbl->Release(This)
12071 /*** ICategoryProvider methods ***/
12072 #define ICategoryProvider_CanCategorizeOnSCID(This,pscid) (This)->lpVtbl->CanCategorizeOnSCID(This,pscid)
12073 #define ICategoryProvider_GetDefaultCategory(This,pguid,pscid) (This)->lpVtbl->GetDefaultCategory(This,pguid,pscid)
12074 #define ICategoryProvider_GetCategoryForSCID(This,pscid,pguid) (This)->lpVtbl->GetCategoryForSCID(This,pscid,pguid)
12075 #define ICategoryProvider_EnumCategories(This,penum) (This)->lpVtbl->EnumCategories(This,penum)
12076 #define ICategoryProvider_GetCategoryName(This,pguid,pszName,cch) (This)->lpVtbl->GetCategoryName(This,pguid,pszName,cch)
12077 #define ICategoryProvider_CreateCategory(This,pguid,riid,ppv) (This)->lpVtbl->CreateCategory(This,pguid,riid,ppv)
12078 #else
12079 /*** IUnknown methods ***/
12080 static FORCEINLINE HRESULT ICategoryProvider_QueryInterface(ICategoryProvider* This,REFIID riid,void **ppvObject) {
12081     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12082 }
12083 static FORCEINLINE ULONG ICategoryProvider_AddRef(ICategoryProvider* This) {
12084     return This->lpVtbl->AddRef(This);
12085 }
12086 static FORCEINLINE ULONG ICategoryProvider_Release(ICategoryProvider* This) {
12087     return This->lpVtbl->Release(This);
12088 }
12089 /*** ICategoryProvider methods ***/
12090 static FORCEINLINE HRESULT ICategoryProvider_CanCategorizeOnSCID(ICategoryProvider* This,const SHCOLUMNID *pscid) {
12091     return This->lpVtbl->CanCategorizeOnSCID(This,pscid);
12092 }
12093 static FORCEINLINE HRESULT ICategoryProvider_GetDefaultCategory(ICategoryProvider* This,GUID *pguid,SHCOLUMNID *pscid) {
12094     return This->lpVtbl->GetDefaultCategory(This,pguid,pscid);
12095 }
12096 static FORCEINLINE HRESULT ICategoryProvider_GetCategoryForSCID(ICategoryProvider* This,const SHCOLUMNID *pscid,GUID *pguid) {
12097     return This->lpVtbl->GetCategoryForSCID(This,pscid,pguid);
12098 }
12099 static FORCEINLINE HRESULT ICategoryProvider_EnumCategories(ICategoryProvider* This,IEnumGUID **penum) {
12100     return This->lpVtbl->EnumCategories(This,penum);
12101 }
12102 static FORCEINLINE HRESULT ICategoryProvider_GetCategoryName(ICategoryProvider* This,const GUID *pguid,LPWSTR pszName,UINT cch) {
12103     return This->lpVtbl->GetCategoryName(This,pguid,pszName,cch);
12104 }
12105 static FORCEINLINE HRESULT ICategoryProvider_CreateCategory(ICategoryProvider* This,const GUID *pguid,REFIID riid,void **ppv) {
12106     return This->lpVtbl->CreateCategory(This,pguid,riid,ppv);
12107 }
12108 #endif
12109 #endif
12110 
12111 #endif
12112 
12113 
12114 #endif  /* __ICategoryProvider_INTERFACE_DEFINED__ */
12115 
12116 
12117 typedef enum CATEGORYINFO_FLAGS {
12118     CATINFO_NORMAL = 0x0,
12119     CATINFO_COLLAPSED = 0x1,
12120     CATINFO_HIDDEN = 0x2,
12121     CATINFO_EXPANDED = 0x4,
12122     CATINFO_NOHEADER = 0x8,
12123     CATINFO_NOTCOLLAPSIBLE = 0x10,
12124     CATINFO_NOHEADERCOUNT = 0x20,
12125     CATINFO_SUBSETTED = 0x40
12126 } CATEGORYINFO_FLAGS;
12127 
12128 DEFINE_ENUM_FLAG_OPERATORS(CATEGORYINFO_FLAGS)
12129 
12130 typedef enum CATSORT_FLAGS {
12131     CATSORT_DEFAULT = 0x0,
12132     CATSORT_NAME = 0x1
12133 } CATSORT_FLAGS;
12134 
12135 DEFINE_ENUM_FLAG_OPERATORS(CATSORT_FLAGS)
12136 
12137 typedef struct CATEGORY_INFO {
12138     CATEGORYINFO_FLAGS cif;
12139     WCHAR wszName[260];
12140 } CATEGORY_INFO;
12141 
12142 /*****************************************************************************
12143  * ICategorizer interface
12144  */
12145 #ifndef __ICategorizer_INTERFACE_DEFINED__
12146 #define __ICategorizer_INTERFACE_DEFINED__
12147 
12148 DEFINE_GUID(IID_ICategorizer, 0xa3b14589, 0x9174, 0x49a8, 0x89,0xa3, 0x06,0xa1,0xae,0x2b,0x9b,0xa7);
12149 #if defined(__cplusplus) && !defined(CINTERFACE)
12150 MIDL_INTERFACE("a3b14589-9174-49a8-89a3-06a1ae2b9ba7")
12151 ICategorizer : public IUnknown
12152 {
12153     virtual HRESULT STDMETHODCALLTYPE GetDescription(
12154         LPWSTR pszDesc,
12155         UINT cch) = 0;
12156 
12157     virtual HRESULT STDMETHODCALLTYPE GetCategory(
12158         UINT cidl,
12159         PCUITEMID_CHILD_ARRAY apidl,
12160         DWORD *rgCategoryIds) = 0;
12161 
12162     virtual HRESULT STDMETHODCALLTYPE GetCategoryInfo(
12163         DWORD dwCategoryId,
12164         CATEGORY_INFO *pci) = 0;
12165 
12166     virtual HRESULT STDMETHODCALLTYPE CompareCategory(
12167         CATSORT_FLAGS csfFlags,
12168         DWORD dwCategoryId1,
12169         DWORD dwCategoryId2) = 0;
12170 
12171 };
12172 #ifdef __CRT_UUID_DECL
12173 __CRT_UUID_DECL(ICategorizer, 0xa3b14589, 0x9174, 0x49a8, 0x89,0xa3, 0x06,0xa1,0xae,0x2b,0x9b,0xa7)
12174 #endif
12175 #else
12176 typedef struct ICategorizerVtbl {
12177     BEGIN_INTERFACE
12178 
12179     /*** IUnknown methods ***/
12180     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12181         ICategorizer *This,
12182         REFIID riid,
12183         void **ppvObject);
12184 
12185     ULONG (STDMETHODCALLTYPE *AddRef)(
12186         ICategorizer *This);
12187 
12188     ULONG (STDMETHODCALLTYPE *Release)(
12189         ICategorizer *This);
12190 
12191     /*** ICategorizer methods ***/
12192     HRESULT (STDMETHODCALLTYPE *GetDescription)(
12193         ICategorizer *This,
12194         LPWSTR pszDesc,
12195         UINT cch);
12196 
12197     HRESULT (STDMETHODCALLTYPE *GetCategory)(
12198         ICategorizer *This,
12199         UINT cidl,
12200         PCUITEMID_CHILD_ARRAY apidl,
12201         DWORD *rgCategoryIds);
12202 
12203     HRESULT (STDMETHODCALLTYPE *GetCategoryInfo)(
12204         ICategorizer *This,
12205         DWORD dwCategoryId,
12206         CATEGORY_INFO *pci);
12207 
12208     HRESULT (STDMETHODCALLTYPE *CompareCategory)(
12209         ICategorizer *This,
12210         CATSORT_FLAGS csfFlags,
12211         DWORD dwCategoryId1,
12212         DWORD dwCategoryId2);
12213 
12214     END_INTERFACE
12215 } ICategorizerVtbl;
12216 
12217 interface ICategorizer {
12218     CONST_VTBL ICategorizerVtbl* lpVtbl;
12219 };
12220 
12221 #ifdef COBJMACROS
12222 #ifndef WIDL_C_INLINE_WRAPPERS
12223 /*** IUnknown methods ***/
12224 #define ICategorizer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12225 #define ICategorizer_AddRef(This) (This)->lpVtbl->AddRef(This)
12226 #define ICategorizer_Release(This) (This)->lpVtbl->Release(This)
12227 /*** ICategorizer methods ***/
12228 #define ICategorizer_GetDescription(This,pszDesc,cch) (This)->lpVtbl->GetDescription(This,pszDesc,cch)
12229 #define ICategorizer_GetCategory(This,cidl,apidl,rgCategoryIds) (This)->lpVtbl->GetCategory(This,cidl,apidl,rgCategoryIds)
12230 #define ICategorizer_GetCategoryInfo(This,dwCategoryId,pci) (This)->lpVtbl->GetCategoryInfo(This,dwCategoryId,pci)
12231 #define ICategorizer_CompareCategory(This,csfFlags,dwCategoryId1,dwCategoryId2) (This)->lpVtbl->CompareCategory(This,csfFlags,dwCategoryId1,dwCategoryId2)
12232 #else
12233 /*** IUnknown methods ***/
12234 static FORCEINLINE HRESULT ICategorizer_QueryInterface(ICategorizer* This,REFIID riid,void **ppvObject) {
12235     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12236 }
12237 static FORCEINLINE ULONG ICategorizer_AddRef(ICategorizer* This) {
12238     return This->lpVtbl->AddRef(This);
12239 }
12240 static FORCEINLINE ULONG ICategorizer_Release(ICategorizer* This) {
12241     return This->lpVtbl->Release(This);
12242 }
12243 /*** ICategorizer methods ***/
12244 static FORCEINLINE HRESULT ICategorizer_GetDescription(ICategorizer* This,LPWSTR pszDesc,UINT cch) {
12245     return This->lpVtbl->GetDescription(This,pszDesc,cch);
12246 }
12247 static FORCEINLINE HRESULT ICategorizer_GetCategory(ICategorizer* This,UINT cidl,PCUITEMID_CHILD_ARRAY apidl,DWORD *rgCategoryIds) {
12248     return This->lpVtbl->GetCategory(This,cidl,apidl,rgCategoryIds);
12249 }
12250 static FORCEINLINE HRESULT ICategorizer_GetCategoryInfo(ICategorizer* This,DWORD dwCategoryId,CATEGORY_INFO *pci) {
12251     return This->lpVtbl->GetCategoryInfo(This,dwCategoryId,pci);
12252 }
12253 static FORCEINLINE HRESULT ICategorizer_CompareCategory(ICategorizer* This,CATSORT_FLAGS csfFlags,DWORD dwCategoryId1,DWORD dwCategoryId2) {
12254     return This->lpVtbl->CompareCategory(This,csfFlags,dwCategoryId1,dwCategoryId2);
12255 }
12256 #endif
12257 #endif
12258 
12259 #endif
12260 
12261 
12262 #endif  /* __ICategorizer_INTERFACE_DEFINED__ */
12263 
12264 
12265 #include <pshpack8.h>
12266 typedef struct SHDRAGIMAGE {
12267     SIZE sizeDragImage;
12268     POINT ptOffset;
12269     HBITMAP hbmpDragImage;
12270     COLORREF crColorKey;
12271 } SHDRAGIMAGE;
12272 typedef struct SHDRAGIMAGE *LPSHDRAGIMAGE;
12273 #include <poppack.h>
12274 
12275 #define DI_GETDRAGIMAGE     TEXT("ShellGetDragImage")
12276 
12277 /*****************************************************************************
12278  * IDropTargetHelper interface
12279  */
12280 #ifndef __IDropTargetHelper_INTERFACE_DEFINED__
12281 #define __IDropTargetHelper_INTERFACE_DEFINED__
12282 
12283 DEFINE_GUID(IID_IDropTargetHelper, 0x4657278b, 0x411b, 0x11d2, 0x83,0x9a, 0x00,0xc0,0x4f,0xd9,0x18,0xd0);
12284 #if defined(__cplusplus) && !defined(CINTERFACE)
12285 MIDL_INTERFACE("4657278b-411b-11d2-839a-00c04fd918d0")
12286 IDropTargetHelper : public IUnknown
12287 {
12288     virtual HRESULT STDMETHODCALLTYPE DragEnter(
12289         HWND hwndTarget,
12290         IDataObject *pDataObject,
12291         POINT *ppt,
12292         DWORD dwEffect) = 0;
12293 
12294     virtual HRESULT STDMETHODCALLTYPE DragLeave(
12295         ) = 0;
12296 
12297     virtual HRESULT STDMETHODCALLTYPE DragOver(
12298         POINT *ppt,
12299         DWORD dwEffect) = 0;
12300 
12301     virtual HRESULT STDMETHODCALLTYPE Drop(
12302         IDataObject *pDataObject,
12303         POINT *ppt,
12304         DWORD dwEffect) = 0;
12305 
12306     virtual HRESULT STDMETHODCALLTYPE Show(
12307         WINBOOL fShow) = 0;
12308 
12309 };
12310 #ifdef __CRT_UUID_DECL
12311 __CRT_UUID_DECL(IDropTargetHelper, 0x4657278b, 0x411b, 0x11d2, 0x83,0x9a, 0x00,0xc0,0x4f,0xd9,0x18,0xd0)
12312 #endif
12313 #else
12314 typedef struct IDropTargetHelperVtbl {
12315     BEGIN_INTERFACE
12316 
12317     /*** IUnknown methods ***/
12318     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12319         IDropTargetHelper *This,
12320         REFIID riid,
12321         void **ppvObject);
12322 
12323     ULONG (STDMETHODCALLTYPE *AddRef)(
12324         IDropTargetHelper *This);
12325 
12326     ULONG (STDMETHODCALLTYPE *Release)(
12327         IDropTargetHelper *This);
12328 
12329     /*** IDropTargetHelper methods ***/
12330     HRESULT (STDMETHODCALLTYPE *DragEnter)(
12331         IDropTargetHelper *This,
12332         HWND hwndTarget,
12333         IDataObject *pDataObject,
12334         POINT *ppt,
12335         DWORD dwEffect);
12336 
12337     HRESULT (STDMETHODCALLTYPE *DragLeave)(
12338         IDropTargetHelper *This);
12339 
12340     HRESULT (STDMETHODCALLTYPE *DragOver)(
12341         IDropTargetHelper *This,
12342         POINT *ppt,
12343         DWORD dwEffect);
12344 
12345     HRESULT (STDMETHODCALLTYPE *Drop)(
12346         IDropTargetHelper *This,
12347         IDataObject *pDataObject,
12348         POINT *ppt,
12349         DWORD dwEffect);
12350 
12351     HRESULT (STDMETHODCALLTYPE *Show)(
12352         IDropTargetHelper *This,
12353         WINBOOL fShow);
12354 
12355     END_INTERFACE
12356 } IDropTargetHelperVtbl;
12357 
12358 interface IDropTargetHelper {
12359     CONST_VTBL IDropTargetHelperVtbl* lpVtbl;
12360 };
12361 
12362 #ifdef COBJMACROS
12363 #ifndef WIDL_C_INLINE_WRAPPERS
12364 /*** IUnknown methods ***/
12365 #define IDropTargetHelper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12366 #define IDropTargetHelper_AddRef(This) (This)->lpVtbl->AddRef(This)
12367 #define IDropTargetHelper_Release(This) (This)->lpVtbl->Release(This)
12368 /*** IDropTargetHelper methods ***/
12369 #define IDropTargetHelper_DragEnter(This,hwndTarget,pDataObject,ppt,dwEffect) (This)->lpVtbl->DragEnter(This,hwndTarget,pDataObject,ppt,dwEffect)
12370 #define IDropTargetHelper_DragLeave(This) (This)->lpVtbl->DragLeave(This)
12371 #define IDropTargetHelper_DragOver(This,ppt,dwEffect) (This)->lpVtbl->DragOver(This,ppt,dwEffect)
12372 #define IDropTargetHelper_Drop(This,pDataObject,ppt,dwEffect) (This)->lpVtbl->Drop(This,pDataObject,ppt,dwEffect)
12373 #define IDropTargetHelper_Show(This,fShow) (This)->lpVtbl->Show(This,fShow)
12374 #else
12375 /*** IUnknown methods ***/
12376 static FORCEINLINE HRESULT IDropTargetHelper_QueryInterface(IDropTargetHelper* This,REFIID riid,void **ppvObject) {
12377     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12378 }
12379 static FORCEINLINE ULONG IDropTargetHelper_AddRef(IDropTargetHelper* This) {
12380     return This->lpVtbl->AddRef(This);
12381 }
12382 static FORCEINLINE ULONG IDropTargetHelper_Release(IDropTargetHelper* This) {
12383     return This->lpVtbl->Release(This);
12384 }
12385 /*** IDropTargetHelper methods ***/
12386 static FORCEINLINE HRESULT IDropTargetHelper_DragEnter(IDropTargetHelper* This,HWND hwndTarget,IDataObject *pDataObject,POINT *ppt,DWORD dwEffect) {
12387     return This->lpVtbl->DragEnter(This,hwndTarget,pDataObject,ppt,dwEffect);
12388 }
12389 static FORCEINLINE HRESULT IDropTargetHelper_DragLeave(IDropTargetHelper* This) {
12390     return This->lpVtbl->DragLeave(This);
12391 }
12392 static FORCEINLINE HRESULT IDropTargetHelper_DragOver(IDropTargetHelper* This,POINT *ppt,DWORD dwEffect) {
12393     return This->lpVtbl->DragOver(This,ppt,dwEffect);
12394 }
12395 static FORCEINLINE HRESULT IDropTargetHelper_Drop(IDropTargetHelper* This,IDataObject *pDataObject,POINT *ppt,DWORD dwEffect) {
12396     return This->lpVtbl->Drop(This,pDataObject,ppt,dwEffect);
12397 }
12398 static FORCEINLINE HRESULT IDropTargetHelper_Show(IDropTargetHelper* This,WINBOOL fShow) {
12399     return This->lpVtbl->Show(This,fShow);
12400 }
12401 #endif
12402 #endif
12403 
12404 #endif
12405 
12406 
12407 #endif  /* __IDropTargetHelper_INTERFACE_DEFINED__ */
12408 
12409 
12410 /*****************************************************************************
12411  * IDragSourceHelper interface
12412  */
12413 #ifndef __IDragSourceHelper_INTERFACE_DEFINED__
12414 #define __IDragSourceHelper_INTERFACE_DEFINED__
12415 
12416 DEFINE_GUID(IID_IDragSourceHelper, 0xde5bf786, 0x477a, 0x11d2, 0x83,0x9d, 0x00,0xc0,0x4f,0xd9,0x18,0xd0);
12417 #if defined(__cplusplus) && !defined(CINTERFACE)
12418 MIDL_INTERFACE("de5bf786-477a-11d2-839d-00c04fd918d0")
12419 IDragSourceHelper : public IUnknown
12420 {
12421     virtual HRESULT STDMETHODCALLTYPE InitializeFromBitmap(
12422         LPSHDRAGIMAGE pshdi,
12423         IDataObject *pDataObject) = 0;
12424 
12425     virtual HRESULT STDMETHODCALLTYPE InitializeFromWindow(
12426         HWND hwnd,
12427         POINT *ppt,
12428         IDataObject *pDataObject) = 0;
12429 
12430 };
12431 #ifdef __CRT_UUID_DECL
12432 __CRT_UUID_DECL(IDragSourceHelper, 0xde5bf786, 0x477a, 0x11d2, 0x83,0x9d, 0x00,0xc0,0x4f,0xd9,0x18,0xd0)
12433 #endif
12434 #else
12435 typedef struct IDragSourceHelperVtbl {
12436     BEGIN_INTERFACE
12437 
12438     /*** IUnknown methods ***/
12439     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12440         IDragSourceHelper *This,
12441         REFIID riid,
12442         void **ppvObject);
12443 
12444     ULONG (STDMETHODCALLTYPE *AddRef)(
12445         IDragSourceHelper *This);
12446 
12447     ULONG (STDMETHODCALLTYPE *Release)(
12448         IDragSourceHelper *This);
12449 
12450     /*** IDragSourceHelper methods ***/
12451     HRESULT (STDMETHODCALLTYPE *InitializeFromBitmap)(
12452         IDragSourceHelper *This,
12453         LPSHDRAGIMAGE pshdi,
12454         IDataObject *pDataObject);
12455 
12456     HRESULT (STDMETHODCALLTYPE *InitializeFromWindow)(
12457         IDragSourceHelper *This,
12458         HWND hwnd,
12459         POINT *ppt,
12460         IDataObject *pDataObject);
12461 
12462     END_INTERFACE
12463 } IDragSourceHelperVtbl;
12464 
12465 interface IDragSourceHelper {
12466     CONST_VTBL IDragSourceHelperVtbl* lpVtbl;
12467 };
12468 
12469 #ifdef COBJMACROS
12470 #ifndef WIDL_C_INLINE_WRAPPERS
12471 /*** IUnknown methods ***/
12472 #define IDragSourceHelper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12473 #define IDragSourceHelper_AddRef(This) (This)->lpVtbl->AddRef(This)
12474 #define IDragSourceHelper_Release(This) (This)->lpVtbl->Release(This)
12475 /*** IDragSourceHelper methods ***/
12476 #define IDragSourceHelper_InitializeFromBitmap(This,pshdi,pDataObject) (This)->lpVtbl->InitializeFromBitmap(This,pshdi,pDataObject)
12477 #define IDragSourceHelper_InitializeFromWindow(This,hwnd,ppt,pDataObject) (This)->lpVtbl->InitializeFromWindow(This,hwnd,ppt,pDataObject)
12478 #else
12479 /*** IUnknown methods ***/
12480 static FORCEINLINE HRESULT IDragSourceHelper_QueryInterface(IDragSourceHelper* This,REFIID riid,void **ppvObject) {
12481     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12482 }
12483 static FORCEINLINE ULONG IDragSourceHelper_AddRef(IDragSourceHelper* This) {
12484     return This->lpVtbl->AddRef(This);
12485 }
12486 static FORCEINLINE ULONG IDragSourceHelper_Release(IDragSourceHelper* This) {
12487     return This->lpVtbl->Release(This);
12488 }
12489 /*** IDragSourceHelper methods ***/
12490 static FORCEINLINE HRESULT IDragSourceHelper_InitializeFromBitmap(IDragSourceHelper* This,LPSHDRAGIMAGE pshdi,IDataObject *pDataObject) {
12491     return This->lpVtbl->InitializeFromBitmap(This,pshdi,pDataObject);
12492 }
12493 static FORCEINLINE HRESULT IDragSourceHelper_InitializeFromWindow(IDragSourceHelper* This,HWND hwnd,POINT *ppt,IDataObject *pDataObject) {
12494     return This->lpVtbl->InitializeFromWindow(This,hwnd,ppt,pDataObject);
12495 }
12496 #endif
12497 #endif
12498 
12499 #endif
12500 
12501 
12502 #endif  /* __IDragSourceHelper_INTERFACE_DEFINED__ */
12503 
12504 
12505 #if NTDDI_VERSION >= NTDDI_VISTA
12506 typedef enum DSH_FLAGS {
12507     DSH_ALLOWDROPDESCRIPTIONTEXT = 0x1
12508 } DSH_FLAGS;
12509 
12510 DEFINE_ENUM_FLAG_OPERATORS(DSH_FLAGS)
12511 
12512 /*****************************************************************************
12513  * IDragSourceHelper2 interface
12514  */
12515 #ifndef __IDragSourceHelper2_INTERFACE_DEFINED__
12516 #define __IDragSourceHelper2_INTERFACE_DEFINED__
12517 
12518 DEFINE_GUID(IID_IDragSourceHelper2, 0x83e07d0d, 0x0c5f, 0x4163, 0xbf,0x1a, 0x60,0xb2,0x74,0x05,0x1e,0x40);
12519 #if defined(__cplusplus) && !defined(CINTERFACE)
12520 MIDL_INTERFACE("83e07d0d-0c5f-4163-bf1a-60b274051e40")
12521 IDragSourceHelper2 : public IDragSourceHelper
12522 {
12523     virtual HRESULT STDMETHODCALLTYPE SetFlags(
12524         DWORD dwFlags) = 0;
12525 
12526 };
12527 #ifdef __CRT_UUID_DECL
12528 __CRT_UUID_DECL(IDragSourceHelper2, 0x83e07d0d, 0x0c5f, 0x4163, 0xbf,0x1a, 0x60,0xb2,0x74,0x05,0x1e,0x40)
12529 #endif
12530 #else
12531 typedef struct IDragSourceHelper2Vtbl {
12532     BEGIN_INTERFACE
12533 
12534     /*** IUnknown methods ***/
12535     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12536         IDragSourceHelper2 *This,
12537         REFIID riid,
12538         void **ppvObject);
12539 
12540     ULONG (STDMETHODCALLTYPE *AddRef)(
12541         IDragSourceHelper2 *This);
12542 
12543     ULONG (STDMETHODCALLTYPE *Release)(
12544         IDragSourceHelper2 *This);
12545 
12546     /*** IDragSourceHelper methods ***/
12547     HRESULT (STDMETHODCALLTYPE *InitializeFromBitmap)(
12548         IDragSourceHelper2 *This,
12549         LPSHDRAGIMAGE pshdi,
12550         IDataObject *pDataObject);
12551 
12552     HRESULT (STDMETHODCALLTYPE *InitializeFromWindow)(
12553         IDragSourceHelper2 *This,
12554         HWND hwnd,
12555         POINT *ppt,
12556         IDataObject *pDataObject);
12557 
12558     /*** IDragSourceHelper2 methods ***/
12559     HRESULT (STDMETHODCALLTYPE *SetFlags)(
12560         IDragSourceHelper2 *This,
12561         DWORD dwFlags);
12562 
12563     END_INTERFACE
12564 } IDragSourceHelper2Vtbl;
12565 
12566 interface IDragSourceHelper2 {
12567     CONST_VTBL IDragSourceHelper2Vtbl* lpVtbl;
12568 };
12569 
12570 #ifdef COBJMACROS
12571 #ifndef WIDL_C_INLINE_WRAPPERS
12572 /*** IUnknown methods ***/
12573 #define IDragSourceHelper2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12574 #define IDragSourceHelper2_AddRef(This) (This)->lpVtbl->AddRef(This)
12575 #define IDragSourceHelper2_Release(This) (This)->lpVtbl->Release(This)
12576 /*** IDragSourceHelper methods ***/
12577 #define IDragSourceHelper2_InitializeFromBitmap(This,pshdi,pDataObject) (This)->lpVtbl->InitializeFromBitmap(This,pshdi,pDataObject)
12578 #define IDragSourceHelper2_InitializeFromWindow(This,hwnd,ppt,pDataObject) (This)->lpVtbl->InitializeFromWindow(This,hwnd,ppt,pDataObject)
12579 /*** IDragSourceHelper2 methods ***/
12580 #define IDragSourceHelper2_SetFlags(This,dwFlags) (This)->lpVtbl->SetFlags(This,dwFlags)
12581 #else
12582 /*** IUnknown methods ***/
12583 static FORCEINLINE HRESULT IDragSourceHelper2_QueryInterface(IDragSourceHelper2* This,REFIID riid,void **ppvObject) {
12584     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12585 }
12586 static FORCEINLINE ULONG IDragSourceHelper2_AddRef(IDragSourceHelper2* This) {
12587     return This->lpVtbl->AddRef(This);
12588 }
12589 static FORCEINLINE ULONG IDragSourceHelper2_Release(IDragSourceHelper2* This) {
12590     return This->lpVtbl->Release(This);
12591 }
12592 /*** IDragSourceHelper methods ***/
12593 static FORCEINLINE HRESULT IDragSourceHelper2_InitializeFromBitmap(IDragSourceHelper2* This,LPSHDRAGIMAGE pshdi,IDataObject *pDataObject) {
12594     return This->lpVtbl->InitializeFromBitmap(This,pshdi,pDataObject);
12595 }
12596 static FORCEINLINE HRESULT IDragSourceHelper2_InitializeFromWindow(IDragSourceHelper2* This,HWND hwnd,POINT *ppt,IDataObject *pDataObject) {
12597     return This->lpVtbl->InitializeFromWindow(This,hwnd,ppt,pDataObject);
12598 }
12599 /*** IDragSourceHelper2 methods ***/
12600 static FORCEINLINE HRESULT IDragSourceHelper2_SetFlags(IDragSourceHelper2* This,DWORD dwFlags) {
12601     return This->lpVtbl->SetFlags(This,dwFlags);
12602 }
12603 #endif
12604 #endif
12605 
12606 #endif
12607 
12608 
12609 #endif  /* __IDragSourceHelper2_INTERFACE_DEFINED__ */
12610 
12611 #endif
12612 
12613 #define IShellLink __MINGW_NAME_AW(IShellLink)
12614 
12615 typedef enum SLR_FLAGS {
12616     SLR_NO_UI = 0x1,
12617     SLR_ANY_MATCH = 0x2,
12618     SLR_UPDATE = 0x4,
12619     SLR_NOUPDATE = 0x8,
12620     SLR_NOSEARCH = 0x10,
12621     SLR_NOTRACK = 0x20,
12622     SLR_NOLINKINFO = 0x40,
12623     SLR_INVOKE_MSI = 0x80,
12624     SLR_NO_UI_WITH_MSG_PUMP = 0x101,
12625     SLR_OFFER_DELETE_WITHOUT_FILE = 0x200,
12626     SLR_KNOWNFOLDER = 0x400,
12627     SLR_MACHINE_IN_LOCAL_TARGET = 0x800,
12628     SLR_UPDATE_MACHINE_AND_SID = 0x1000
12629 } SLR_FLAGS;
12630 
12631 DEFINE_ENUM_FLAG_OPERATORS(SLR_FLAGS)
12632 
12633 typedef enum SLGP_FLAGS {
12634     SLGP_SHORTPATH = 0x1,
12635     SLGP_UNCPRIORITY = 0x2,
12636     SLGP_RAWPATH = 0x4,
12637     SLGP_RELATIVEPRIORITY = 0x8
12638 } SLGP_FLAGS;
12639 
12640 DEFINE_ENUM_FLAG_OPERATORS(SLGP_FLAGS)
12641 
12642 /*****************************************************************************
12643  * IShellLinkA interface
12644  */
12645 #ifndef __IShellLinkA_INTERFACE_DEFINED__
12646 #define __IShellLinkA_INTERFACE_DEFINED__
12647 
12648 DEFINE_GUID(IID_IShellLinkA, 0x000214ee, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
12649 #if defined(__cplusplus) && !defined(CINTERFACE)
12650 MIDL_INTERFACE("000214ee-0000-0000-c000-000000000046")
12651 IShellLinkA : public IUnknown
12652 {
12653     virtual HRESULT STDMETHODCALLTYPE GetPath(
12654         LPSTR pszFile,
12655         int cch,
12656         WIN32_FIND_DATAA *pfd,
12657         DWORD fFlags) = 0;
12658 
12659     virtual HRESULT STDMETHODCALLTYPE GetIDList(
12660         PIDLIST_ABSOLUTE *ppidl) = 0;
12661 
12662     virtual HRESULT STDMETHODCALLTYPE SetIDList(
12663         PCIDLIST_ABSOLUTE pidl) = 0;
12664 
12665     virtual HRESULT STDMETHODCALLTYPE GetDescription(
12666         LPSTR pszName,
12667         int cch) = 0;
12668 
12669     virtual HRESULT STDMETHODCALLTYPE SetDescription(
12670         LPCSTR pszName) = 0;
12671 
12672     virtual HRESULT STDMETHODCALLTYPE GetWorkingDirectory(
12673         LPSTR pszDir,
12674         int cch) = 0;
12675 
12676     virtual HRESULT STDMETHODCALLTYPE SetWorkingDirectory(
12677         LPCSTR pszDir) = 0;
12678 
12679     virtual HRESULT STDMETHODCALLTYPE GetArguments(
12680         LPSTR pszArgs,
12681         int cch) = 0;
12682 
12683     virtual HRESULT STDMETHODCALLTYPE SetArguments(
12684         LPCSTR pszArgs) = 0;
12685 
12686     virtual HRESULT STDMETHODCALLTYPE GetHotkey(
12687         WORD *pwHotkey) = 0;
12688 
12689     virtual HRESULT STDMETHODCALLTYPE SetHotkey(
12690         WORD wHotkey) = 0;
12691 
12692     virtual HRESULT STDMETHODCALLTYPE GetShowCmd(
12693         int *piShowCmd) = 0;
12694 
12695     virtual HRESULT STDMETHODCALLTYPE SetShowCmd(
12696         int iShowCmd) = 0;
12697 
12698     virtual HRESULT STDMETHODCALLTYPE GetIconLocation(
12699         LPSTR pszIconPath,
12700         int cch,
12701         int *piIcon) = 0;
12702 
12703     virtual HRESULT STDMETHODCALLTYPE SetIconLocation(
12704         LPCSTR pszIconPath,
12705         int iIcon) = 0;
12706 
12707     virtual HRESULT STDMETHODCALLTYPE SetRelativePath(
12708         LPCSTR pszPathRel,
12709         DWORD dwReserved) = 0;
12710 
12711     virtual HRESULT STDMETHODCALLTYPE Resolve(
12712         HWND hwnd,
12713         DWORD fFlags) = 0;
12714 
12715     virtual HRESULT STDMETHODCALLTYPE SetPath(
12716         LPCSTR pszFile) = 0;
12717 
12718 };
12719 #ifdef __CRT_UUID_DECL
12720 __CRT_UUID_DECL(IShellLinkA, 0x000214ee, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
12721 #endif
12722 #else
12723 typedef struct IShellLinkAVtbl {
12724     BEGIN_INTERFACE
12725 
12726     /*** IUnknown methods ***/
12727     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12728         IShellLinkA *This,
12729         REFIID riid,
12730         void **ppvObject);
12731 
12732     ULONG (STDMETHODCALLTYPE *AddRef)(
12733         IShellLinkA *This);
12734 
12735     ULONG (STDMETHODCALLTYPE *Release)(
12736         IShellLinkA *This);
12737 
12738     /*** IShellLinkA methods ***/
12739     HRESULT (STDMETHODCALLTYPE *GetPath)(
12740         IShellLinkA *This,
12741         LPSTR pszFile,
12742         int cch,
12743         WIN32_FIND_DATAA *pfd,
12744         DWORD fFlags);
12745 
12746     HRESULT (STDMETHODCALLTYPE *GetIDList)(
12747         IShellLinkA *This,
12748         PIDLIST_ABSOLUTE *ppidl);
12749 
12750     HRESULT (STDMETHODCALLTYPE *SetIDList)(
12751         IShellLinkA *This,
12752         PCIDLIST_ABSOLUTE pidl);
12753 
12754     HRESULT (STDMETHODCALLTYPE *GetDescription)(
12755         IShellLinkA *This,
12756         LPSTR pszName,
12757         int cch);
12758 
12759     HRESULT (STDMETHODCALLTYPE *SetDescription)(
12760         IShellLinkA *This,
12761         LPCSTR pszName);
12762 
12763     HRESULT (STDMETHODCALLTYPE *GetWorkingDirectory)(
12764         IShellLinkA *This,
12765         LPSTR pszDir,
12766         int cch);
12767 
12768     HRESULT (STDMETHODCALLTYPE *SetWorkingDirectory)(
12769         IShellLinkA *This,
12770         LPCSTR pszDir);
12771 
12772     HRESULT (STDMETHODCALLTYPE *GetArguments)(
12773         IShellLinkA *This,
12774         LPSTR pszArgs,
12775         int cch);
12776 
12777     HRESULT (STDMETHODCALLTYPE *SetArguments)(
12778         IShellLinkA *This,
12779         LPCSTR pszArgs);
12780 
12781     HRESULT (STDMETHODCALLTYPE *GetHotkey)(
12782         IShellLinkA *This,
12783         WORD *pwHotkey);
12784 
12785     HRESULT (STDMETHODCALLTYPE *SetHotkey)(
12786         IShellLinkA *This,
12787         WORD wHotkey);
12788 
12789     HRESULT (STDMETHODCALLTYPE *GetShowCmd)(
12790         IShellLinkA *This,
12791         int *piShowCmd);
12792 
12793     HRESULT (STDMETHODCALLTYPE *SetShowCmd)(
12794         IShellLinkA *This,
12795         int iShowCmd);
12796 
12797     HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
12798         IShellLinkA *This,
12799         LPSTR pszIconPath,
12800         int cch,
12801         int *piIcon);
12802 
12803     HRESULT (STDMETHODCALLTYPE *SetIconLocation)(
12804         IShellLinkA *This,
12805         LPCSTR pszIconPath,
12806         int iIcon);
12807 
12808     HRESULT (STDMETHODCALLTYPE *SetRelativePath)(
12809         IShellLinkA *This,
12810         LPCSTR pszPathRel,
12811         DWORD dwReserved);
12812 
12813     HRESULT (STDMETHODCALLTYPE *Resolve)(
12814         IShellLinkA *This,
12815         HWND hwnd,
12816         DWORD fFlags);
12817 
12818     HRESULT (STDMETHODCALLTYPE *SetPath)(
12819         IShellLinkA *This,
12820         LPCSTR pszFile);
12821 
12822     END_INTERFACE
12823 } IShellLinkAVtbl;
12824 
12825 interface IShellLinkA {
12826     CONST_VTBL IShellLinkAVtbl* lpVtbl;
12827 };
12828 
12829 #ifdef COBJMACROS
12830 #ifndef WIDL_C_INLINE_WRAPPERS
12831 /*** IUnknown methods ***/
12832 #define IShellLinkA_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12833 #define IShellLinkA_AddRef(This) (This)->lpVtbl->AddRef(This)
12834 #define IShellLinkA_Release(This) (This)->lpVtbl->Release(This)
12835 /*** IShellLinkA methods ***/
12836 #define IShellLinkA_GetPath(This,pszFile,cch,pfd,fFlags) (This)->lpVtbl->GetPath(This,pszFile,cch,pfd,fFlags)
12837 #define IShellLinkA_GetIDList(This,ppidl) (This)->lpVtbl->GetIDList(This,ppidl)
12838 #define IShellLinkA_SetIDList(This,pidl) (This)->lpVtbl->SetIDList(This,pidl)
12839 #define IShellLinkA_GetDescription(This,pszName,cch) (This)->lpVtbl->GetDescription(This,pszName,cch)
12840 #define IShellLinkA_SetDescription(This,pszName) (This)->lpVtbl->SetDescription(This,pszName)
12841 #define IShellLinkA_GetWorkingDirectory(This,pszDir,cch) (This)->lpVtbl->GetWorkingDirectory(This,pszDir,cch)
12842 #define IShellLinkA_SetWorkingDirectory(This,pszDir) (This)->lpVtbl->SetWorkingDirectory(This,pszDir)
12843 #define IShellLinkA_GetArguments(This,pszArgs,cch) (This)->lpVtbl->GetArguments(This,pszArgs,cch)
12844 #define IShellLinkA_SetArguments(This,pszArgs) (This)->lpVtbl->SetArguments(This,pszArgs)
12845 #define IShellLinkA_GetHotkey(This,pwHotkey) (This)->lpVtbl->GetHotkey(This,pwHotkey)
12846 #define IShellLinkA_SetHotkey(This,wHotkey) (This)->lpVtbl->SetHotkey(This,wHotkey)
12847 #define IShellLinkA_GetShowCmd(This,piShowCmd) (This)->lpVtbl->GetShowCmd(This,piShowCmd)
12848 #define IShellLinkA_SetShowCmd(This,iShowCmd) (This)->lpVtbl->SetShowCmd(This,iShowCmd)
12849 #define IShellLinkA_GetIconLocation(This,pszIconPath,cch,piIcon) (This)->lpVtbl->GetIconLocation(This,pszIconPath,cch,piIcon)
12850 #define IShellLinkA_SetIconLocation(This,pszIconPath,iIcon) (This)->lpVtbl->SetIconLocation(This,pszIconPath,iIcon)
12851 #define IShellLinkA_SetRelativePath(This,pszPathRel,dwReserved) (This)->lpVtbl->SetRelativePath(This,pszPathRel,dwReserved)
12852 #define IShellLinkA_Resolve(This,hwnd,fFlags) (This)->lpVtbl->Resolve(This,hwnd,fFlags)
12853 #define IShellLinkA_SetPath(This,pszFile) (This)->lpVtbl->SetPath(This,pszFile)
12854 #else
12855 /*** IUnknown methods ***/
12856 static FORCEINLINE HRESULT IShellLinkA_QueryInterface(IShellLinkA* This,REFIID riid,void **ppvObject) {
12857     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12858 }
12859 static FORCEINLINE ULONG IShellLinkA_AddRef(IShellLinkA* This) {
12860     return This->lpVtbl->AddRef(This);
12861 }
12862 static FORCEINLINE ULONG IShellLinkA_Release(IShellLinkA* This) {
12863     return This->lpVtbl->Release(This);
12864 }
12865 /*** IShellLinkA methods ***/
12866 static FORCEINLINE HRESULT IShellLinkA_GetPath(IShellLinkA* This,LPSTR pszFile,int cch,WIN32_FIND_DATAA *pfd,DWORD fFlags) {
12867     return This->lpVtbl->GetPath(This,pszFile,cch,pfd,fFlags);
12868 }
12869 static FORCEINLINE HRESULT IShellLinkA_GetIDList(IShellLinkA* This,PIDLIST_ABSOLUTE *ppidl) {
12870     return This->lpVtbl->GetIDList(This,ppidl);
12871 }
12872 static FORCEINLINE HRESULT IShellLinkA_SetIDList(IShellLinkA* This,PCIDLIST_ABSOLUTE pidl) {
12873     return This->lpVtbl->SetIDList(This,pidl);
12874 }
12875 static FORCEINLINE HRESULT IShellLinkA_GetDescription(IShellLinkA* This,LPSTR pszName,int cch) {
12876     return This->lpVtbl->GetDescription(This,pszName,cch);
12877 }
12878 static FORCEINLINE HRESULT IShellLinkA_SetDescription(IShellLinkA* This,LPCSTR pszName) {
12879     return This->lpVtbl->SetDescription(This,pszName);
12880 }
12881 static FORCEINLINE HRESULT IShellLinkA_GetWorkingDirectory(IShellLinkA* This,LPSTR pszDir,int cch) {
12882     return This->lpVtbl->GetWorkingDirectory(This,pszDir,cch);
12883 }
12884 static FORCEINLINE HRESULT IShellLinkA_SetWorkingDirectory(IShellLinkA* This,LPCSTR pszDir) {
12885     return This->lpVtbl->SetWorkingDirectory(This,pszDir);
12886 }
12887 static FORCEINLINE HRESULT IShellLinkA_GetArguments(IShellLinkA* This,LPSTR pszArgs,int cch) {
12888     return This->lpVtbl->GetArguments(This,pszArgs,cch);
12889 }
12890 static FORCEINLINE HRESULT IShellLinkA_SetArguments(IShellLinkA* This,LPCSTR pszArgs) {
12891     return This->lpVtbl->SetArguments(This,pszArgs);
12892 }
12893 static FORCEINLINE HRESULT IShellLinkA_GetHotkey(IShellLinkA* This,WORD *pwHotkey) {
12894     return This->lpVtbl->GetHotkey(This,pwHotkey);
12895 }
12896 static FORCEINLINE HRESULT IShellLinkA_SetHotkey(IShellLinkA* This,WORD wHotkey) {
12897     return This->lpVtbl->SetHotkey(This,wHotkey);
12898 }
12899 static FORCEINLINE HRESULT IShellLinkA_GetShowCmd(IShellLinkA* This,int *piShowCmd) {
12900     return This->lpVtbl->GetShowCmd(This,piShowCmd);
12901 }
12902 static FORCEINLINE HRESULT IShellLinkA_SetShowCmd(IShellLinkA* This,int iShowCmd) {
12903     return This->lpVtbl->SetShowCmd(This,iShowCmd);
12904 }
12905 static FORCEINLINE HRESULT IShellLinkA_GetIconLocation(IShellLinkA* This,LPSTR pszIconPath,int cch,int *piIcon) {
12906     return This->lpVtbl->GetIconLocation(This,pszIconPath,cch,piIcon);
12907 }
12908 static FORCEINLINE HRESULT IShellLinkA_SetIconLocation(IShellLinkA* This,LPCSTR pszIconPath,int iIcon) {
12909     return This->lpVtbl->SetIconLocation(This,pszIconPath,iIcon);
12910 }
12911 static FORCEINLINE HRESULT IShellLinkA_SetRelativePath(IShellLinkA* This,LPCSTR pszPathRel,DWORD dwReserved) {
12912     return This->lpVtbl->SetRelativePath(This,pszPathRel,dwReserved);
12913 }
12914 static FORCEINLINE HRESULT IShellLinkA_Resolve(IShellLinkA* This,HWND hwnd,DWORD fFlags) {
12915     return This->lpVtbl->Resolve(This,hwnd,fFlags);
12916 }
12917 static FORCEINLINE HRESULT IShellLinkA_SetPath(IShellLinkA* This,LPCSTR pszFile) {
12918     return This->lpVtbl->SetPath(This,pszFile);
12919 }
12920 #endif
12921 #endif
12922 
12923 #endif
12924 
12925 
12926 #endif  /* __IShellLinkA_INTERFACE_DEFINED__ */
12927 
12928 
12929 /*****************************************************************************
12930  * IShellLinkW interface
12931  */
12932 #ifndef __IShellLinkW_INTERFACE_DEFINED__
12933 #define __IShellLinkW_INTERFACE_DEFINED__
12934 
12935 DEFINE_GUID(IID_IShellLinkW, 0x000214f9, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
12936 #if defined(__cplusplus) && !defined(CINTERFACE)
12937 MIDL_INTERFACE("000214f9-0000-0000-c000-000000000046")
12938 IShellLinkW : public IUnknown
12939 {
12940     virtual HRESULT STDMETHODCALLTYPE GetPath(
12941         LPWSTR pszFile,
12942         int cch,
12943         WIN32_FIND_DATAW *pfd,
12944         DWORD fFlags) = 0;
12945 
12946     virtual HRESULT STDMETHODCALLTYPE GetIDList(
12947         PIDLIST_ABSOLUTE *ppidl) = 0;
12948 
12949     virtual HRESULT STDMETHODCALLTYPE SetIDList(
12950         PCIDLIST_ABSOLUTE pidl) = 0;
12951 
12952     virtual HRESULT STDMETHODCALLTYPE GetDescription(
12953         LPWSTR pszName,
12954         int cch) = 0;
12955 
12956     virtual HRESULT STDMETHODCALLTYPE SetDescription(
12957         LPCWSTR pszName) = 0;
12958 
12959     virtual HRESULT STDMETHODCALLTYPE GetWorkingDirectory(
12960         LPWSTR pszDir,
12961         int cch) = 0;
12962 
12963     virtual HRESULT STDMETHODCALLTYPE SetWorkingDirectory(
12964         LPCWSTR pszDir) = 0;
12965 
12966     virtual HRESULT STDMETHODCALLTYPE GetArguments(
12967         LPWSTR pszArgs,
12968         int cch) = 0;
12969 
12970     virtual HRESULT STDMETHODCALLTYPE SetArguments(
12971         LPCWSTR pszArgs) = 0;
12972 
12973     virtual HRESULT STDMETHODCALLTYPE GetHotkey(
12974         WORD *pwHotkey) = 0;
12975 
12976     virtual HRESULT STDMETHODCALLTYPE SetHotkey(
12977         WORD wHotkey) = 0;
12978 
12979     virtual HRESULT STDMETHODCALLTYPE GetShowCmd(
12980         int *piShowCmd) = 0;
12981 
12982     virtual HRESULT STDMETHODCALLTYPE SetShowCmd(
12983         int iShowCmd) = 0;
12984 
12985     virtual HRESULT STDMETHODCALLTYPE GetIconLocation(
12986         LPWSTR pszIconPath,
12987         int cch,
12988         int *piIcon) = 0;
12989 
12990     virtual HRESULT STDMETHODCALLTYPE SetIconLocation(
12991         LPCWSTR pszIconPath,
12992         int iIcon) = 0;
12993 
12994     virtual HRESULT STDMETHODCALLTYPE SetRelativePath(
12995         LPCWSTR pszPathRel,
12996         DWORD dwReserved) = 0;
12997 
12998     virtual HRESULT STDMETHODCALLTYPE Resolve(
12999         HWND hwnd,
13000         DWORD fFlags) = 0;
13001 
13002     virtual HRESULT STDMETHODCALLTYPE SetPath(
13003         LPCWSTR pszFile) = 0;
13004 
13005 };
13006 #ifdef __CRT_UUID_DECL
13007 __CRT_UUID_DECL(IShellLinkW, 0x000214f9, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
13008 #endif
13009 #else
13010 typedef struct IShellLinkWVtbl {
13011     BEGIN_INTERFACE
13012 
13013     /*** IUnknown methods ***/
13014     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13015         IShellLinkW *This,
13016         REFIID riid,
13017         void **ppvObject);
13018 
13019     ULONG (STDMETHODCALLTYPE *AddRef)(
13020         IShellLinkW *This);
13021 
13022     ULONG (STDMETHODCALLTYPE *Release)(
13023         IShellLinkW *This);
13024 
13025     /*** IShellLinkW methods ***/
13026     HRESULT (STDMETHODCALLTYPE *GetPath)(
13027         IShellLinkW *This,
13028         LPWSTR pszFile,
13029         int cch,
13030         WIN32_FIND_DATAW *pfd,
13031         DWORD fFlags);
13032 
13033     HRESULT (STDMETHODCALLTYPE *GetIDList)(
13034         IShellLinkW *This,
13035         PIDLIST_ABSOLUTE *ppidl);
13036 
13037     HRESULT (STDMETHODCALLTYPE *SetIDList)(
13038         IShellLinkW *This,
13039         PCIDLIST_ABSOLUTE pidl);
13040 
13041     HRESULT (STDMETHODCALLTYPE *GetDescription)(
13042         IShellLinkW *This,
13043         LPWSTR pszName,
13044         int cch);
13045 
13046     HRESULT (STDMETHODCALLTYPE *SetDescription)(
13047         IShellLinkW *This,
13048         LPCWSTR pszName);
13049 
13050     HRESULT (STDMETHODCALLTYPE *GetWorkingDirectory)(
13051         IShellLinkW *This,
13052         LPWSTR pszDir,
13053         int cch);
13054 
13055     HRESULT (STDMETHODCALLTYPE *SetWorkingDirectory)(
13056         IShellLinkW *This,
13057         LPCWSTR pszDir);
13058 
13059     HRESULT (STDMETHODCALLTYPE *GetArguments)(
13060         IShellLinkW *This,
13061         LPWSTR pszArgs,
13062         int cch);
13063 
13064     HRESULT (STDMETHODCALLTYPE *SetArguments)(
13065         IShellLinkW *This,
13066         LPCWSTR pszArgs);
13067 
13068     HRESULT (STDMETHODCALLTYPE *GetHotkey)(
13069         IShellLinkW *This,
13070         WORD *pwHotkey);
13071 
13072     HRESULT (STDMETHODCALLTYPE *SetHotkey)(
13073         IShellLinkW *This,
13074         WORD wHotkey);
13075 
13076     HRESULT (STDMETHODCALLTYPE *GetShowCmd)(
13077         IShellLinkW *This,
13078         int *piShowCmd);
13079 
13080     HRESULT (STDMETHODCALLTYPE *SetShowCmd)(
13081         IShellLinkW *This,
13082         int iShowCmd);
13083 
13084     HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
13085         IShellLinkW *This,
13086         LPWSTR pszIconPath,
13087         int cch,
13088         int *piIcon);
13089 
13090     HRESULT (STDMETHODCALLTYPE *SetIconLocation)(
13091         IShellLinkW *This,
13092         LPCWSTR pszIconPath,
13093         int iIcon);
13094 
13095     HRESULT (STDMETHODCALLTYPE *SetRelativePath)(
13096         IShellLinkW *This,
13097         LPCWSTR pszPathRel,
13098         DWORD dwReserved);
13099 
13100     HRESULT (STDMETHODCALLTYPE *Resolve)(
13101         IShellLinkW *This,
13102         HWND hwnd,
13103         DWORD fFlags);
13104 
13105     HRESULT (STDMETHODCALLTYPE *SetPath)(
13106         IShellLinkW *This,
13107         LPCWSTR pszFile);
13108 
13109     END_INTERFACE
13110 } IShellLinkWVtbl;
13111 
13112 interface IShellLinkW {
13113     CONST_VTBL IShellLinkWVtbl* lpVtbl;
13114 };
13115 
13116 #ifdef COBJMACROS
13117 #ifndef WIDL_C_INLINE_WRAPPERS
13118 /*** IUnknown methods ***/
13119 #define IShellLinkW_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13120 #define IShellLinkW_AddRef(This) (This)->lpVtbl->AddRef(This)
13121 #define IShellLinkW_Release(This) (This)->lpVtbl->Release(This)
13122 /*** IShellLinkW methods ***/
13123 #define IShellLinkW_GetPath(This,pszFile,cch,pfd,fFlags) (This)->lpVtbl->GetPath(This,pszFile,cch,pfd,fFlags)
13124 #define IShellLinkW_GetIDList(This,ppidl) (This)->lpVtbl->GetIDList(This,ppidl)
13125 #define IShellLinkW_SetIDList(This,pidl) (This)->lpVtbl->SetIDList(This,pidl)
13126 #define IShellLinkW_GetDescription(This,pszName,cch) (This)->lpVtbl->GetDescription(This,pszName,cch)
13127 #define IShellLinkW_SetDescription(This,pszName) (This)->lpVtbl->SetDescription(This,pszName)
13128 #define IShellLinkW_GetWorkingDirectory(This,pszDir,cch) (This)->lpVtbl->GetWorkingDirectory(This,pszDir,cch)
13129 #define IShellLinkW_SetWorkingDirectory(This,pszDir) (This)->lpVtbl->SetWorkingDirectory(This,pszDir)
13130 #define IShellLinkW_GetArguments(This,pszArgs,cch) (This)->lpVtbl->GetArguments(This,pszArgs,cch)
13131 #define IShellLinkW_SetArguments(This,pszArgs) (This)->lpVtbl->SetArguments(This,pszArgs)
13132 #define IShellLinkW_GetHotkey(This,pwHotkey) (This)->lpVtbl->GetHotkey(This,pwHotkey)
13133 #define IShellLinkW_SetHotkey(This,wHotkey) (This)->lpVtbl->SetHotkey(This,wHotkey)
13134 #define IShellLinkW_GetShowCmd(This,piShowCmd) (This)->lpVtbl->GetShowCmd(This,piShowCmd)
13135 #define IShellLinkW_SetShowCmd(This,iShowCmd) (This)->lpVtbl->SetShowCmd(This,iShowCmd)
13136 #define IShellLinkW_GetIconLocation(This,pszIconPath,cch,piIcon) (This)->lpVtbl->GetIconLocation(This,pszIconPath,cch,piIcon)
13137 #define IShellLinkW_SetIconLocation(This,pszIconPath,iIcon) (This)->lpVtbl->SetIconLocation(This,pszIconPath,iIcon)
13138 #define IShellLinkW_SetRelativePath(This,pszPathRel,dwReserved) (This)->lpVtbl->SetRelativePath(This,pszPathRel,dwReserved)
13139 #define IShellLinkW_Resolve(This,hwnd,fFlags) (This)->lpVtbl->Resolve(This,hwnd,fFlags)
13140 #define IShellLinkW_SetPath(This,pszFile) (This)->lpVtbl->SetPath(This,pszFile)
13141 #else
13142 /*** IUnknown methods ***/
13143 static FORCEINLINE HRESULT IShellLinkW_QueryInterface(IShellLinkW* This,REFIID riid,void **ppvObject) {
13144     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13145 }
13146 static FORCEINLINE ULONG IShellLinkW_AddRef(IShellLinkW* This) {
13147     return This->lpVtbl->AddRef(This);
13148 }
13149 static FORCEINLINE ULONG IShellLinkW_Release(IShellLinkW* This) {
13150     return This->lpVtbl->Release(This);
13151 }
13152 /*** IShellLinkW methods ***/
13153 static FORCEINLINE HRESULT IShellLinkW_GetPath(IShellLinkW* This,LPWSTR pszFile,int cch,WIN32_FIND_DATAW *pfd,DWORD fFlags) {
13154     return This->lpVtbl->GetPath(This,pszFile,cch,pfd,fFlags);
13155 }
13156 static FORCEINLINE HRESULT IShellLinkW_GetIDList(IShellLinkW* This,PIDLIST_ABSOLUTE *ppidl) {
13157     return This->lpVtbl->GetIDList(This,ppidl);
13158 }
13159 static FORCEINLINE HRESULT IShellLinkW_SetIDList(IShellLinkW* This,PCIDLIST_ABSOLUTE pidl) {
13160     return This->lpVtbl->SetIDList(This,pidl);
13161 }
13162 static FORCEINLINE HRESULT IShellLinkW_GetDescription(IShellLinkW* This,LPWSTR pszName,int cch) {
13163     return This->lpVtbl->GetDescription(This,pszName,cch);
13164 }
13165 static FORCEINLINE HRESULT IShellLinkW_SetDescription(IShellLinkW* This,LPCWSTR pszName) {
13166     return This->lpVtbl->SetDescription(This,pszName);
13167 }
13168 static FORCEINLINE HRESULT IShellLinkW_GetWorkingDirectory(IShellLinkW* This,LPWSTR pszDir,int cch) {
13169     return This->lpVtbl->GetWorkingDirectory(This,pszDir,cch);
13170 }
13171 static FORCEINLINE HRESULT IShellLinkW_SetWorkingDirectory(IShellLinkW* This,LPCWSTR pszDir) {
13172     return This->lpVtbl->SetWorkingDirectory(This,pszDir);
13173 }
13174 static FORCEINLINE HRESULT IShellLinkW_GetArguments(IShellLinkW* This,LPWSTR pszArgs,int cch) {
13175     return This->lpVtbl->GetArguments(This,pszArgs,cch);
13176 }
13177 static FORCEINLINE HRESULT IShellLinkW_SetArguments(IShellLinkW* This,LPCWSTR pszArgs) {
13178     return This->lpVtbl->SetArguments(This,pszArgs);
13179 }
13180 static FORCEINLINE HRESULT IShellLinkW_GetHotkey(IShellLinkW* This,WORD *pwHotkey) {
13181     return This->lpVtbl->GetHotkey(This,pwHotkey);
13182 }
13183 static FORCEINLINE HRESULT IShellLinkW_SetHotkey(IShellLinkW* This,WORD wHotkey) {
13184     return This->lpVtbl->SetHotkey(This,wHotkey);
13185 }
13186 static FORCEINLINE HRESULT IShellLinkW_GetShowCmd(IShellLinkW* This,int *piShowCmd) {
13187     return This->lpVtbl->GetShowCmd(This,piShowCmd);
13188 }
13189 static FORCEINLINE HRESULT IShellLinkW_SetShowCmd(IShellLinkW* This,int iShowCmd) {
13190     return This->lpVtbl->SetShowCmd(This,iShowCmd);
13191 }
13192 static FORCEINLINE HRESULT IShellLinkW_GetIconLocation(IShellLinkW* This,LPWSTR pszIconPath,int cch,int *piIcon) {
13193     return This->lpVtbl->GetIconLocation(This,pszIconPath,cch,piIcon);
13194 }
13195 static FORCEINLINE HRESULT IShellLinkW_SetIconLocation(IShellLinkW* This,LPCWSTR pszIconPath,int iIcon) {
13196     return This->lpVtbl->SetIconLocation(This,pszIconPath,iIcon);
13197 }
13198 static FORCEINLINE HRESULT IShellLinkW_SetRelativePath(IShellLinkW* This,LPCWSTR pszPathRel,DWORD dwReserved) {
13199     return This->lpVtbl->SetRelativePath(This,pszPathRel,dwReserved);
13200 }
13201 static FORCEINLINE HRESULT IShellLinkW_Resolve(IShellLinkW* This,HWND hwnd,DWORD fFlags) {
13202     return This->lpVtbl->Resolve(This,hwnd,fFlags);
13203 }
13204 static FORCEINLINE HRESULT IShellLinkW_SetPath(IShellLinkW* This,LPCWSTR pszFile) {
13205     return This->lpVtbl->SetPath(This,pszFile);
13206 }
13207 #endif
13208 #endif
13209 
13210 #endif
13211 
13212 
13213 #endif  /* __IShellLinkW_INTERFACE_DEFINED__ */
13214 
13215 
13216 /*****************************************************************************
13217  * IShellLinkDataList interface
13218  */
13219 #ifndef __IShellLinkDataList_INTERFACE_DEFINED__
13220 #define __IShellLinkDataList_INTERFACE_DEFINED__
13221 
13222 DEFINE_GUID(IID_IShellLinkDataList, 0x45e2b4ae, 0xb1c3, 0x11d0, 0xb9,0x2f, 0x00,0xa0,0xc9,0x03,0x12,0xe1);
13223 #if defined(__cplusplus) && !defined(CINTERFACE)
13224 MIDL_INTERFACE("45e2b4ae-b1c3-11d0-b92f-00a0c90312e1")
13225 IShellLinkDataList : public IUnknown
13226 {
13227     virtual HRESULT STDMETHODCALLTYPE AddDataBlock(
13228         void *pDataBlock) = 0;
13229 
13230     virtual HRESULT STDMETHODCALLTYPE CopyDataBlock(
13231         DWORD dwSig,
13232         void **ppDataBlock) = 0;
13233 
13234     virtual HRESULT STDMETHODCALLTYPE RemoveDataBlock(
13235         DWORD dwSig) = 0;
13236 
13237     virtual HRESULT STDMETHODCALLTYPE GetFlags(
13238         DWORD *pdwFlags) = 0;
13239 
13240     virtual HRESULT STDMETHODCALLTYPE SetFlags(
13241         DWORD dwFlags) = 0;
13242 
13243 };
13244 #ifdef __CRT_UUID_DECL
13245 __CRT_UUID_DECL(IShellLinkDataList, 0x45e2b4ae, 0xb1c3, 0x11d0, 0xb9,0x2f, 0x00,0xa0,0xc9,0x03,0x12,0xe1)
13246 #endif
13247 #else
13248 typedef struct IShellLinkDataListVtbl {
13249     BEGIN_INTERFACE
13250 
13251     /*** IUnknown methods ***/
13252     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13253         IShellLinkDataList *This,
13254         REFIID riid,
13255         void **ppvObject);
13256 
13257     ULONG (STDMETHODCALLTYPE *AddRef)(
13258         IShellLinkDataList *This);
13259 
13260     ULONG (STDMETHODCALLTYPE *Release)(
13261         IShellLinkDataList *This);
13262 
13263     /*** IShellLinkDataList methods ***/
13264     HRESULT (STDMETHODCALLTYPE *AddDataBlock)(
13265         IShellLinkDataList *This,
13266         void *pDataBlock);
13267 
13268     HRESULT (STDMETHODCALLTYPE *CopyDataBlock)(
13269         IShellLinkDataList *This,
13270         DWORD dwSig,
13271         void **ppDataBlock);
13272 
13273     HRESULT (STDMETHODCALLTYPE *RemoveDataBlock)(
13274         IShellLinkDataList *This,
13275         DWORD dwSig);
13276 
13277     HRESULT (STDMETHODCALLTYPE *GetFlags)(
13278         IShellLinkDataList *This,
13279         DWORD *pdwFlags);
13280 
13281     HRESULT (STDMETHODCALLTYPE *SetFlags)(
13282         IShellLinkDataList *This,
13283         DWORD dwFlags);
13284 
13285     END_INTERFACE
13286 } IShellLinkDataListVtbl;
13287 
13288 interface IShellLinkDataList {
13289     CONST_VTBL IShellLinkDataListVtbl* lpVtbl;
13290 };
13291 
13292 #ifdef COBJMACROS
13293 #ifndef WIDL_C_INLINE_WRAPPERS
13294 /*** IUnknown methods ***/
13295 #define IShellLinkDataList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13296 #define IShellLinkDataList_AddRef(This) (This)->lpVtbl->AddRef(This)
13297 #define IShellLinkDataList_Release(This) (This)->lpVtbl->Release(This)
13298 /*** IShellLinkDataList methods ***/
13299 #define IShellLinkDataList_AddDataBlock(This,pDataBlock) (This)->lpVtbl->AddDataBlock(This,pDataBlock)
13300 #define IShellLinkDataList_CopyDataBlock(This,dwSig,ppDataBlock) (This)->lpVtbl->CopyDataBlock(This,dwSig,ppDataBlock)
13301 #define IShellLinkDataList_RemoveDataBlock(This,dwSig) (This)->lpVtbl->RemoveDataBlock(This,dwSig)
13302 #define IShellLinkDataList_GetFlags(This,pdwFlags) (This)->lpVtbl->GetFlags(This,pdwFlags)
13303 #define IShellLinkDataList_SetFlags(This,dwFlags) (This)->lpVtbl->SetFlags(This,dwFlags)
13304 #else
13305 /*** IUnknown methods ***/
13306 static FORCEINLINE HRESULT IShellLinkDataList_QueryInterface(IShellLinkDataList* This,REFIID riid,void **ppvObject) {
13307     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13308 }
13309 static FORCEINLINE ULONG IShellLinkDataList_AddRef(IShellLinkDataList* This) {
13310     return This->lpVtbl->AddRef(This);
13311 }
13312 static FORCEINLINE ULONG IShellLinkDataList_Release(IShellLinkDataList* This) {
13313     return This->lpVtbl->Release(This);
13314 }
13315 /*** IShellLinkDataList methods ***/
13316 static FORCEINLINE HRESULT IShellLinkDataList_AddDataBlock(IShellLinkDataList* This,void *pDataBlock) {
13317     return This->lpVtbl->AddDataBlock(This,pDataBlock);
13318 }
13319 static FORCEINLINE HRESULT IShellLinkDataList_CopyDataBlock(IShellLinkDataList* This,DWORD dwSig,void **ppDataBlock) {
13320     return This->lpVtbl->CopyDataBlock(This,dwSig,ppDataBlock);
13321 }
13322 static FORCEINLINE HRESULT IShellLinkDataList_RemoveDataBlock(IShellLinkDataList* This,DWORD dwSig) {
13323     return This->lpVtbl->RemoveDataBlock(This,dwSig);
13324 }
13325 static FORCEINLINE HRESULT IShellLinkDataList_GetFlags(IShellLinkDataList* This,DWORD *pdwFlags) {
13326     return This->lpVtbl->GetFlags(This,pdwFlags);
13327 }
13328 static FORCEINLINE HRESULT IShellLinkDataList_SetFlags(IShellLinkDataList* This,DWORD dwFlags) {
13329     return This->lpVtbl->SetFlags(This,dwFlags);
13330 }
13331 #endif
13332 #endif
13333 
13334 #endif
13335 
13336 
13337 #endif  /* __IShellLinkDataList_INTERFACE_DEFINED__ */
13338 
13339 
13340 /*****************************************************************************
13341  * IResolveShellLink interface
13342  */
13343 #ifndef __IResolveShellLink_INTERFACE_DEFINED__
13344 #define __IResolveShellLink_INTERFACE_DEFINED__
13345 
13346 DEFINE_GUID(IID_IResolveShellLink, 0x5cd52983, 0x9449, 0x11d2, 0x96,0x3a, 0x00,0xc0,0x4f,0x79,0xad,0xf0);
13347 #if defined(__cplusplus) && !defined(CINTERFACE)
13348 MIDL_INTERFACE("5cd52983-9449-11d2-963a-00c04f79adf0")
13349 IResolveShellLink : public IUnknown
13350 {
13351     virtual HRESULT STDMETHODCALLTYPE ResolveShellLink(
13352         IUnknown *punkLink,
13353         HWND hwnd,
13354         DWORD fFlags) = 0;
13355 
13356 };
13357 #ifdef __CRT_UUID_DECL
13358 __CRT_UUID_DECL(IResolveShellLink, 0x5cd52983, 0x9449, 0x11d2, 0x96,0x3a, 0x00,0xc0,0x4f,0x79,0xad,0xf0)
13359 #endif
13360 #else
13361 typedef struct IResolveShellLinkVtbl {
13362     BEGIN_INTERFACE
13363 
13364     /*** IUnknown methods ***/
13365     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13366         IResolveShellLink *This,
13367         REFIID riid,
13368         void **ppvObject);
13369 
13370     ULONG (STDMETHODCALLTYPE *AddRef)(
13371         IResolveShellLink *This);
13372 
13373     ULONG (STDMETHODCALLTYPE *Release)(
13374         IResolveShellLink *This);
13375 
13376     /*** IResolveShellLink methods ***/
13377     HRESULT (STDMETHODCALLTYPE *ResolveShellLink)(
13378         IResolveShellLink *This,
13379         IUnknown *punkLink,
13380         HWND hwnd,
13381         DWORD fFlags);
13382 
13383     END_INTERFACE
13384 } IResolveShellLinkVtbl;
13385 
13386 interface IResolveShellLink {
13387     CONST_VTBL IResolveShellLinkVtbl* lpVtbl;
13388 };
13389 
13390 #ifdef COBJMACROS
13391 #ifndef WIDL_C_INLINE_WRAPPERS
13392 /*** IUnknown methods ***/
13393 #define IResolveShellLink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13394 #define IResolveShellLink_AddRef(This) (This)->lpVtbl->AddRef(This)
13395 #define IResolveShellLink_Release(This) (This)->lpVtbl->Release(This)
13396 /*** IResolveShellLink methods ***/
13397 #define IResolveShellLink_ResolveShellLink(This,punkLink,hwnd,fFlags) (This)->lpVtbl->ResolveShellLink(This,punkLink,hwnd,fFlags)
13398 #else
13399 /*** IUnknown methods ***/
13400 static FORCEINLINE HRESULT IResolveShellLink_QueryInterface(IResolveShellLink* This,REFIID riid,void **ppvObject) {
13401     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13402 }
13403 static FORCEINLINE ULONG IResolveShellLink_AddRef(IResolveShellLink* This) {
13404     return This->lpVtbl->AddRef(This);
13405 }
13406 static FORCEINLINE ULONG IResolveShellLink_Release(IResolveShellLink* This) {
13407     return This->lpVtbl->Release(This);
13408 }
13409 /*** IResolveShellLink methods ***/
13410 static FORCEINLINE HRESULT IResolveShellLink_ResolveShellLink(IResolveShellLink* This,IUnknown *punkLink,HWND hwnd,DWORD fFlags) {
13411     return This->lpVtbl->ResolveShellLink(This,punkLink,hwnd,fFlags);
13412 }
13413 #endif
13414 #endif
13415 
13416 #endif
13417 
13418 
13419 #endif  /* __IResolveShellLink_INTERFACE_DEFINED__ */
13420 
13421 
13422 /*****************************************************************************
13423  * IActionProgressDialog interface
13424  */
13425 #ifndef __IActionProgressDialog_INTERFACE_DEFINED__
13426 #define __IActionProgressDialog_INTERFACE_DEFINED__
13427 
13428 enum _SPINITF {
13429     SPINITF_NORMAL = 0x0,
13430     SPINITF_MODAL = 0x1,
13431     SPINITF_NOMINIMIZE = 0x8
13432 };
13433 
13434 typedef DWORD SPINITF;
13435 
13436 DEFINE_GUID(IID_IActionProgressDialog, 0x49ff1172, 0xeadc, 0x446d, 0x92,0x85, 0x15,0x64,0x53,0xa6,0x43,0x1c);
13437 #if defined(__cplusplus) && !defined(CINTERFACE)
13438 MIDL_INTERFACE("49ff1172-eadc-446d-9285-156453a6431c")
13439 IActionProgressDialog : public IUnknown
13440 {
13441     virtual HRESULT STDMETHODCALLTYPE Initialize(
13442         SPINITF flags,
13443         LPCWSTR pszTitle,
13444         LPCWSTR pszCancel) = 0;
13445 
13446     virtual HRESULT STDMETHODCALLTYPE Stop(
13447         ) = 0;
13448 
13449 };
13450 #ifdef __CRT_UUID_DECL
13451 __CRT_UUID_DECL(IActionProgressDialog, 0x49ff1172, 0xeadc, 0x446d, 0x92,0x85, 0x15,0x64,0x53,0xa6,0x43,0x1c)
13452 #endif
13453 #else
13454 typedef struct IActionProgressDialogVtbl {
13455     BEGIN_INTERFACE
13456 
13457     /*** IUnknown methods ***/
13458     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13459         IActionProgressDialog *This,
13460         REFIID riid,
13461         void **ppvObject);
13462 
13463     ULONG (STDMETHODCALLTYPE *AddRef)(
13464         IActionProgressDialog *This);
13465 
13466     ULONG (STDMETHODCALLTYPE *Release)(
13467         IActionProgressDialog *This);
13468 
13469     /*** IActionProgressDialog methods ***/
13470     HRESULT (STDMETHODCALLTYPE *Initialize)(
13471         IActionProgressDialog *This,
13472         SPINITF flags,
13473         LPCWSTR pszTitle,
13474         LPCWSTR pszCancel);
13475 
13476     HRESULT (STDMETHODCALLTYPE *Stop)(
13477         IActionProgressDialog *This);
13478 
13479     END_INTERFACE
13480 } IActionProgressDialogVtbl;
13481 
13482 interface IActionProgressDialog {
13483     CONST_VTBL IActionProgressDialogVtbl* lpVtbl;
13484 };
13485 
13486 #ifdef COBJMACROS
13487 #ifndef WIDL_C_INLINE_WRAPPERS
13488 /*** IUnknown methods ***/
13489 #define IActionProgressDialog_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13490 #define IActionProgressDialog_AddRef(This) (This)->lpVtbl->AddRef(This)
13491 #define IActionProgressDialog_Release(This) (This)->lpVtbl->Release(This)
13492 /*** IActionProgressDialog methods ***/
13493 #define IActionProgressDialog_Initialize(This,flags,pszTitle,pszCancel) (This)->lpVtbl->Initialize(This,flags,pszTitle,pszCancel)
13494 #define IActionProgressDialog_Stop(This) (This)->lpVtbl->Stop(This)
13495 #else
13496 /*** IUnknown methods ***/
13497 static FORCEINLINE HRESULT IActionProgressDialog_QueryInterface(IActionProgressDialog* This,REFIID riid,void **ppvObject) {
13498     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13499 }
13500 static FORCEINLINE ULONG IActionProgressDialog_AddRef(IActionProgressDialog* This) {
13501     return This->lpVtbl->AddRef(This);
13502 }
13503 static FORCEINLINE ULONG IActionProgressDialog_Release(IActionProgressDialog* This) {
13504     return This->lpVtbl->Release(This);
13505 }
13506 /*** IActionProgressDialog methods ***/
13507 static FORCEINLINE HRESULT IActionProgressDialog_Initialize(IActionProgressDialog* This,SPINITF flags,LPCWSTR pszTitle,LPCWSTR pszCancel) {
13508     return This->lpVtbl->Initialize(This,flags,pszTitle,pszCancel);
13509 }
13510 static FORCEINLINE HRESULT IActionProgressDialog_Stop(IActionProgressDialog* This) {
13511     return This->lpVtbl->Stop(This);
13512 }
13513 #endif
13514 #endif
13515 
13516 #endif
13517 
13518 
13519 #endif  /* __IActionProgressDialog_INTERFACE_DEFINED__ */
13520 
13521 
13522 /*****************************************************************************
13523  * IHWEventHandler interface
13524  */
13525 #ifndef __IHWEventHandler_INTERFACE_DEFINED__
13526 #define __IHWEventHandler_INTERFACE_DEFINED__
13527 
13528 DEFINE_GUID(IID_IHWEventHandler, 0xc1fb73d0, 0xec3a, 0x4ba2, 0xb5,0x12, 0x8c,0xdb,0x91,0x87,0xb6,0xd1);
13529 #if defined(__cplusplus) && !defined(CINTERFACE)
13530 MIDL_INTERFACE("c1fb73d0-ec3a-4ba2-b512-8cdb9187b6d1")
13531 IHWEventHandler : public IUnknown
13532 {
13533     virtual HRESULT STDMETHODCALLTYPE Initialize(
13534         LPCWSTR pszParams) = 0;
13535 
13536     virtual HRESULT STDMETHODCALLTYPE HandleEvent(
13537         LPCWSTR pszDeviceID,
13538         LPCWSTR pszAltDeviceID,
13539         LPCWSTR pszEventType) = 0;
13540 
13541     virtual HRESULT STDMETHODCALLTYPE HandleEventWithContent(
13542         LPCWSTR pszDeviceID,
13543         LPCWSTR pszAltDeviceID,
13544         LPCWSTR pszEventType,
13545         LPCWSTR pszContentTypeHandler,
13546         IDataObject *pdataobject) = 0;
13547 
13548 };
13549 #ifdef __CRT_UUID_DECL
13550 __CRT_UUID_DECL(IHWEventHandler, 0xc1fb73d0, 0xec3a, 0x4ba2, 0xb5,0x12, 0x8c,0xdb,0x91,0x87,0xb6,0xd1)
13551 #endif
13552 #else
13553 typedef struct IHWEventHandlerVtbl {
13554     BEGIN_INTERFACE
13555 
13556     /*** IUnknown methods ***/
13557     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13558         IHWEventHandler *This,
13559         REFIID riid,
13560         void **ppvObject);
13561 
13562     ULONG (STDMETHODCALLTYPE *AddRef)(
13563         IHWEventHandler *This);
13564 
13565     ULONG (STDMETHODCALLTYPE *Release)(
13566         IHWEventHandler *This);
13567 
13568     /*** IHWEventHandler methods ***/
13569     HRESULT (STDMETHODCALLTYPE *Initialize)(
13570         IHWEventHandler *This,
13571         LPCWSTR pszParams);
13572 
13573     HRESULT (STDMETHODCALLTYPE *HandleEvent)(
13574         IHWEventHandler *This,
13575         LPCWSTR pszDeviceID,
13576         LPCWSTR pszAltDeviceID,
13577         LPCWSTR pszEventType);
13578 
13579     HRESULT (STDMETHODCALLTYPE *HandleEventWithContent)(
13580         IHWEventHandler *This,
13581         LPCWSTR pszDeviceID,
13582         LPCWSTR pszAltDeviceID,
13583         LPCWSTR pszEventType,
13584         LPCWSTR pszContentTypeHandler,
13585         IDataObject *pdataobject);
13586 
13587     END_INTERFACE
13588 } IHWEventHandlerVtbl;
13589 
13590 interface IHWEventHandler {
13591     CONST_VTBL IHWEventHandlerVtbl* lpVtbl;
13592 };
13593 
13594 #ifdef COBJMACROS
13595 #ifndef WIDL_C_INLINE_WRAPPERS
13596 /*** IUnknown methods ***/
13597 #define IHWEventHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13598 #define IHWEventHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
13599 #define IHWEventHandler_Release(This) (This)->lpVtbl->Release(This)
13600 /*** IHWEventHandler methods ***/
13601 #define IHWEventHandler_Initialize(This,pszParams) (This)->lpVtbl->Initialize(This,pszParams)
13602 #define IHWEventHandler_HandleEvent(This,pszDeviceID,pszAltDeviceID,pszEventType) (This)->lpVtbl->HandleEvent(This,pszDeviceID,pszAltDeviceID,pszEventType)
13603 #define IHWEventHandler_HandleEventWithContent(This,pszDeviceID,pszAltDeviceID,pszEventType,pszContentTypeHandler,pdataobject) (This)->lpVtbl->HandleEventWithContent(This,pszDeviceID,pszAltDeviceID,pszEventType,pszContentTypeHandler,pdataobject)
13604 #else
13605 /*** IUnknown methods ***/
13606 static FORCEINLINE HRESULT IHWEventHandler_QueryInterface(IHWEventHandler* This,REFIID riid,void **ppvObject) {
13607     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13608 }
13609 static FORCEINLINE ULONG IHWEventHandler_AddRef(IHWEventHandler* This) {
13610     return This->lpVtbl->AddRef(This);
13611 }
13612 static FORCEINLINE ULONG IHWEventHandler_Release(IHWEventHandler* This) {
13613     return This->lpVtbl->Release(This);
13614 }
13615 /*** IHWEventHandler methods ***/
13616 static FORCEINLINE HRESULT IHWEventHandler_Initialize(IHWEventHandler* This,LPCWSTR pszParams) {
13617     return This->lpVtbl->Initialize(This,pszParams);
13618 }
13619 static FORCEINLINE HRESULT IHWEventHandler_HandleEvent(IHWEventHandler* This,LPCWSTR pszDeviceID,LPCWSTR pszAltDeviceID,LPCWSTR pszEventType) {
13620     return This->lpVtbl->HandleEvent(This,pszDeviceID,pszAltDeviceID,pszEventType);
13621 }
13622 static FORCEINLINE HRESULT IHWEventHandler_HandleEventWithContent(IHWEventHandler* This,LPCWSTR pszDeviceID,LPCWSTR pszAltDeviceID,LPCWSTR pszEventType,LPCWSTR pszContentTypeHandler,IDataObject *pdataobject) {
13623     return This->lpVtbl->HandleEventWithContent(This,pszDeviceID,pszAltDeviceID,pszEventType,pszContentTypeHandler,pdataobject);
13624 }
13625 #endif
13626 #endif
13627 
13628 #endif
13629 
13630 
13631 #endif  /* __IHWEventHandler_INTERFACE_DEFINED__ */
13632 
13633 
13634 /*****************************************************************************
13635  * IHWEventHandler2 interface
13636  */
13637 #ifndef __IHWEventHandler2_INTERFACE_DEFINED__
13638 #define __IHWEventHandler2_INTERFACE_DEFINED__
13639 
13640 DEFINE_GUID(IID_IHWEventHandler2, 0xcfcc809f, 0x295d, 0x42e8, 0x9f,0xfc, 0x42,0x4b,0x33,0xc4,0x87,0xe6);
13641 #if defined(__cplusplus) && !defined(CINTERFACE)
13642 MIDL_INTERFACE("cfcc809f-295d-42e8-9ffc-424b33c487e6")
13643 IHWEventHandler2 : public IHWEventHandler
13644 {
13645     virtual HRESULT STDMETHODCALLTYPE HandleEventWithHWND(
13646         LPCWSTR pszDeviceID,
13647         LPCWSTR pszAltDeviceID,
13648         LPCWSTR pszEventType,
13649         HWND hwndOwner) = 0;
13650 
13651 };
13652 #ifdef __CRT_UUID_DECL
13653 __CRT_UUID_DECL(IHWEventHandler2, 0xcfcc809f, 0x295d, 0x42e8, 0x9f,0xfc, 0x42,0x4b,0x33,0xc4,0x87,0xe6)
13654 #endif
13655 #else
13656 typedef struct IHWEventHandler2Vtbl {
13657     BEGIN_INTERFACE
13658 
13659     /*** IUnknown methods ***/
13660     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13661         IHWEventHandler2 *This,
13662         REFIID riid,
13663         void **ppvObject);
13664 
13665     ULONG (STDMETHODCALLTYPE *AddRef)(
13666         IHWEventHandler2 *This);
13667 
13668     ULONG (STDMETHODCALLTYPE *Release)(
13669         IHWEventHandler2 *This);
13670 
13671     /*** IHWEventHandler methods ***/
13672     HRESULT (STDMETHODCALLTYPE *Initialize)(
13673         IHWEventHandler2 *This,
13674         LPCWSTR pszParams);
13675 
13676     HRESULT (STDMETHODCALLTYPE *HandleEvent)(
13677         IHWEventHandler2 *This,
13678         LPCWSTR pszDeviceID,
13679         LPCWSTR pszAltDeviceID,
13680         LPCWSTR pszEventType);
13681 
13682     HRESULT (STDMETHODCALLTYPE *HandleEventWithContent)(
13683         IHWEventHandler2 *This,
13684         LPCWSTR pszDeviceID,
13685         LPCWSTR pszAltDeviceID,
13686         LPCWSTR pszEventType,
13687         LPCWSTR pszContentTypeHandler,
13688         IDataObject *pdataobject);
13689 
13690     /*** IHWEventHandler2 methods ***/
13691     HRESULT (STDMETHODCALLTYPE *HandleEventWithHWND)(
13692         IHWEventHandler2 *This,
13693         LPCWSTR pszDeviceID,
13694         LPCWSTR pszAltDeviceID,
13695         LPCWSTR pszEventType,
13696         HWND hwndOwner);
13697 
13698     END_INTERFACE
13699 } IHWEventHandler2Vtbl;
13700 
13701 interface IHWEventHandler2 {
13702     CONST_VTBL IHWEventHandler2Vtbl* lpVtbl;
13703 };
13704 
13705 #ifdef COBJMACROS
13706 #ifndef WIDL_C_INLINE_WRAPPERS
13707 /*** IUnknown methods ***/
13708 #define IHWEventHandler2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13709 #define IHWEventHandler2_AddRef(This) (This)->lpVtbl->AddRef(This)
13710 #define IHWEventHandler2_Release(This) (This)->lpVtbl->Release(This)
13711 /*** IHWEventHandler methods ***/
13712 #define IHWEventHandler2_Initialize(This,pszParams) (This)->lpVtbl->Initialize(This,pszParams)
13713 #define IHWEventHandler2_HandleEvent(This,pszDeviceID,pszAltDeviceID,pszEventType) (This)->lpVtbl->HandleEvent(This,pszDeviceID,pszAltDeviceID,pszEventType)
13714 #define IHWEventHandler2_HandleEventWithContent(This,pszDeviceID,pszAltDeviceID,pszEventType,pszContentTypeHandler,pdataobject) (This)->lpVtbl->HandleEventWithContent(This,pszDeviceID,pszAltDeviceID,pszEventType,pszContentTypeHandler,pdataobject)
13715 /*** IHWEventHandler2 methods ***/
13716 #define IHWEventHandler2_HandleEventWithHWND(This,pszDeviceID,pszAltDeviceID,pszEventType,hwndOwner) (This)->lpVtbl->HandleEventWithHWND(This,pszDeviceID,pszAltDeviceID,pszEventType,hwndOwner)
13717 #else
13718 /*** IUnknown methods ***/
13719 static FORCEINLINE HRESULT IHWEventHandler2_QueryInterface(IHWEventHandler2* This,REFIID riid,void **ppvObject) {
13720     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13721 }
13722 static FORCEINLINE ULONG IHWEventHandler2_AddRef(IHWEventHandler2* This) {
13723     return This->lpVtbl->AddRef(This);
13724 }
13725 static FORCEINLINE ULONG IHWEventHandler2_Release(IHWEventHandler2* This) {
13726     return This->lpVtbl->Release(This);
13727 }
13728 /*** IHWEventHandler methods ***/
13729 static FORCEINLINE HRESULT IHWEventHandler2_Initialize(IHWEventHandler2* This,LPCWSTR pszParams) {
13730     return This->lpVtbl->Initialize(This,pszParams);
13731 }
13732 static FORCEINLINE HRESULT IHWEventHandler2_HandleEvent(IHWEventHandler2* This,LPCWSTR pszDeviceID,LPCWSTR pszAltDeviceID,LPCWSTR pszEventType) {
13733     return This->lpVtbl->HandleEvent(This,pszDeviceID,pszAltDeviceID,pszEventType);
13734 }
13735 static FORCEINLINE HRESULT IHWEventHandler2_HandleEventWithContent(IHWEventHandler2* This,LPCWSTR pszDeviceID,LPCWSTR pszAltDeviceID,LPCWSTR pszEventType,LPCWSTR pszContentTypeHandler,IDataObject *pdataobject) {
13736     return This->lpVtbl->HandleEventWithContent(This,pszDeviceID,pszAltDeviceID,pszEventType,pszContentTypeHandler,pdataobject);
13737 }
13738 /*** IHWEventHandler2 methods ***/
13739 static FORCEINLINE HRESULT IHWEventHandler2_HandleEventWithHWND(IHWEventHandler2* This,LPCWSTR pszDeviceID,LPCWSTR pszAltDeviceID,LPCWSTR pszEventType,HWND hwndOwner) {
13740     return This->lpVtbl->HandleEventWithHWND(This,pszDeviceID,pszAltDeviceID,pszEventType,hwndOwner);
13741 }
13742 #endif
13743 #endif
13744 
13745 #endif
13746 
13747 
13748 #endif  /* __IHWEventHandler2_INTERFACE_DEFINED__ */
13749 
13750 
13751 #define ARCONTENT_AUTORUNINF 0x00000002
13752 #define ARCONTENT_AUDIOCD 0x00000004
13753 #define ARCONTENT_DVDMOVIE 0x00000008
13754 #define ARCONTENT_BLANKCD 0x00000010
13755 #define ARCONTENT_BLANKDVD 0x00000020
13756 #define ARCONTENT_UNKNOWNCONTENT 0x00000040
13757 #define ARCONTENT_AUTOPLAYPIX 0x00000080
13758 #define ARCONTENT_AUTOPLAYMUSIC 0x00000100
13759 #define ARCONTENT_AUTOPLAYVIDEO 0x00000200
13760 
13761 #if NTDDI_VERSION >= NTDDI_VISTA
13762 #define ARCONTENT_VCD 0x00000400
13763 #define ARCONTENT_SVCD 0x00000800
13764 #define ARCONTENT_DVDAUDIO 0x00001000
13765 #define ARCONTENT_BLANKBD 0x00002000
13766 #define ARCONTENT_BLURAY 0x00004000
13767 #define ARCONTENT_CAMERASTORAGE 0x00008000
13768 #define ARCONTENT_CUSTOMEVENT 0x00010000
13769 #define ARCONTENT_NONE 0x00000000
13770 #define ARCONTENT_MASK 0x0001FFFE
13771 
13772 #define ARCONTENT_PHASE_UNKNOWN 0x00000000
13773 #define ARCONTENT_PHASE_PRESNIFF 0x10000000
13774 #define ARCONTENT_PHASE_SNIFFING 0x20000000
13775 #define ARCONTENT_PHASE_FINAL 0x40000000
13776 #define ARCONTENT_PHASE_MASK 0x70000000
13777 #endif
13778 
13779 /*****************************************************************************
13780  * IQueryCancelAutoPlay interface
13781  */
13782 #ifndef __IQueryCancelAutoPlay_INTERFACE_DEFINED__
13783 #define __IQueryCancelAutoPlay_INTERFACE_DEFINED__
13784 
13785 DEFINE_GUID(IID_IQueryCancelAutoPlay, 0xddefe873, 0x6997, 0x4e68, 0xbe,0x26, 0x39,0xb6,0x33,0xad,0xbe,0x12);
13786 #if defined(__cplusplus) && !defined(CINTERFACE)
13787 MIDL_INTERFACE("ddefe873-6997-4e68-be26-39b633adbe12")
13788 IQueryCancelAutoPlay : public IUnknown
13789 {
13790     virtual HRESULT STDMETHODCALLTYPE AllowAutoPlay(
13791         LPCWSTR pszPath,
13792         DWORD dwContentType,
13793         LPCWSTR pszLabel,
13794         DWORD dwSerialNumber) = 0;
13795 
13796 };
13797 #ifdef __CRT_UUID_DECL
13798 __CRT_UUID_DECL(IQueryCancelAutoPlay, 0xddefe873, 0x6997, 0x4e68, 0xbe,0x26, 0x39,0xb6,0x33,0xad,0xbe,0x12)
13799 #endif
13800 #else
13801 typedef struct IQueryCancelAutoPlayVtbl {
13802     BEGIN_INTERFACE
13803 
13804     /*** IUnknown methods ***/
13805     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13806         IQueryCancelAutoPlay *This,
13807         REFIID riid,
13808         void **ppvObject);
13809 
13810     ULONG (STDMETHODCALLTYPE *AddRef)(
13811         IQueryCancelAutoPlay *This);
13812 
13813     ULONG (STDMETHODCALLTYPE *Release)(
13814         IQueryCancelAutoPlay *This);
13815 
13816     /*** IQueryCancelAutoPlay methods ***/
13817     HRESULT (STDMETHODCALLTYPE *AllowAutoPlay)(
13818         IQueryCancelAutoPlay *This,
13819         LPCWSTR pszPath,
13820         DWORD dwContentType,
13821         LPCWSTR pszLabel,
13822         DWORD dwSerialNumber);
13823 
13824     END_INTERFACE
13825 } IQueryCancelAutoPlayVtbl;
13826 
13827 interface IQueryCancelAutoPlay {
13828     CONST_VTBL IQueryCancelAutoPlayVtbl* lpVtbl;
13829 };
13830 
13831 #ifdef COBJMACROS
13832 #ifndef WIDL_C_INLINE_WRAPPERS
13833 /*** IUnknown methods ***/
13834 #define IQueryCancelAutoPlay_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13835 #define IQueryCancelAutoPlay_AddRef(This) (This)->lpVtbl->AddRef(This)
13836 #define IQueryCancelAutoPlay_Release(This) (This)->lpVtbl->Release(This)
13837 /*** IQueryCancelAutoPlay methods ***/
13838 #define IQueryCancelAutoPlay_AllowAutoPlay(This,pszPath,dwContentType,pszLabel,dwSerialNumber) (This)->lpVtbl->AllowAutoPlay(This,pszPath,dwContentType,pszLabel,dwSerialNumber)
13839 #else
13840 /*** IUnknown methods ***/
13841 static FORCEINLINE HRESULT IQueryCancelAutoPlay_QueryInterface(IQueryCancelAutoPlay* This,REFIID riid,void **ppvObject) {
13842     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13843 }
13844 static FORCEINLINE ULONG IQueryCancelAutoPlay_AddRef(IQueryCancelAutoPlay* This) {
13845     return This->lpVtbl->AddRef(This);
13846 }
13847 static FORCEINLINE ULONG IQueryCancelAutoPlay_Release(IQueryCancelAutoPlay* This) {
13848     return This->lpVtbl->Release(This);
13849 }
13850 /*** IQueryCancelAutoPlay methods ***/
13851 static FORCEINLINE HRESULT IQueryCancelAutoPlay_AllowAutoPlay(IQueryCancelAutoPlay* This,LPCWSTR pszPath,DWORD dwContentType,LPCWSTR pszLabel,DWORD dwSerialNumber) {
13852     return This->lpVtbl->AllowAutoPlay(This,pszPath,dwContentType,pszLabel,dwSerialNumber);
13853 }
13854 #endif
13855 #endif
13856 
13857 #endif
13858 
13859 
13860 #endif  /* __IQueryCancelAutoPlay_INTERFACE_DEFINED__ */
13861 
13862 
13863 #if NTDDI_VERSION >= NTDDI_VISTA
13864 /*****************************************************************************
13865  * IDynamicHWHandler interface
13866  */
13867 #ifndef __IDynamicHWHandler_INTERFACE_DEFINED__
13868 #define __IDynamicHWHandler_INTERFACE_DEFINED__
13869 
13870 DEFINE_GUID(IID_IDynamicHWHandler, 0xdc2601d7, 0x059e, 0x42fc, 0xa0,0x9d, 0x2a,0xfd,0x21,0xb6,0xd5,0xf7);
13871 #if defined(__cplusplus) && !defined(CINTERFACE)
13872 MIDL_INTERFACE("dc2601d7-059e-42fc-a09d-2afd21b6d5f7")
13873 IDynamicHWHandler : public IUnknown
13874 {
13875     virtual HRESULT STDMETHODCALLTYPE GetDynamicInfo(
13876         LPCWSTR pszDeviceID,
13877         DWORD dwContentType,
13878         LPWSTR *ppszAction) = 0;
13879 
13880 };
13881 #ifdef __CRT_UUID_DECL
13882 __CRT_UUID_DECL(IDynamicHWHandler, 0xdc2601d7, 0x059e, 0x42fc, 0xa0,0x9d, 0x2a,0xfd,0x21,0xb6,0xd5,0xf7)
13883 #endif
13884 #else
13885 typedef struct IDynamicHWHandlerVtbl {
13886     BEGIN_INTERFACE
13887 
13888     /*** IUnknown methods ***/
13889     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13890         IDynamicHWHandler *This,
13891         REFIID riid,
13892         void **ppvObject);
13893 
13894     ULONG (STDMETHODCALLTYPE *AddRef)(
13895         IDynamicHWHandler *This);
13896 
13897     ULONG (STDMETHODCALLTYPE *Release)(
13898         IDynamicHWHandler *This);
13899 
13900     /*** IDynamicHWHandler methods ***/
13901     HRESULT (STDMETHODCALLTYPE *GetDynamicInfo)(
13902         IDynamicHWHandler *This,
13903         LPCWSTR pszDeviceID,
13904         DWORD dwContentType,
13905         LPWSTR *ppszAction);
13906 
13907     END_INTERFACE
13908 } IDynamicHWHandlerVtbl;
13909 
13910 interface IDynamicHWHandler {
13911     CONST_VTBL IDynamicHWHandlerVtbl* lpVtbl;
13912 };
13913 
13914 #ifdef COBJMACROS
13915 #ifndef WIDL_C_INLINE_WRAPPERS
13916 /*** IUnknown methods ***/
13917 #define IDynamicHWHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13918 #define IDynamicHWHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
13919 #define IDynamicHWHandler_Release(This) (This)->lpVtbl->Release(This)
13920 /*** IDynamicHWHandler methods ***/
13921 #define IDynamicHWHandler_GetDynamicInfo(This,pszDeviceID,dwContentType,ppszAction) (This)->lpVtbl->GetDynamicInfo(This,pszDeviceID,dwContentType,ppszAction)
13922 #else
13923 /*** IUnknown methods ***/
13924 static FORCEINLINE HRESULT IDynamicHWHandler_QueryInterface(IDynamicHWHandler* This,REFIID riid,void **ppvObject) {
13925     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13926 }
13927 static FORCEINLINE ULONG IDynamicHWHandler_AddRef(IDynamicHWHandler* This) {
13928     return This->lpVtbl->AddRef(This);
13929 }
13930 static FORCEINLINE ULONG IDynamicHWHandler_Release(IDynamicHWHandler* This) {
13931     return This->lpVtbl->Release(This);
13932 }
13933 /*** IDynamicHWHandler methods ***/
13934 static FORCEINLINE HRESULT IDynamicHWHandler_GetDynamicInfo(IDynamicHWHandler* This,LPCWSTR pszDeviceID,DWORD dwContentType,LPWSTR *ppszAction) {
13935     return This->lpVtbl->GetDynamicInfo(This,pszDeviceID,dwContentType,ppszAction);
13936 }
13937 #endif
13938 #endif
13939 
13940 #endif
13941 
13942 
13943 #endif  /* __IDynamicHWHandler_INTERFACE_DEFINED__ */
13944 
13945 #endif
13946 
13947 /*****************************************************************************
13948  * IActionProgress interface
13949  */
13950 #ifndef __IActionProgress_INTERFACE_DEFINED__
13951 #define __IActionProgress_INTERFACE_DEFINED__
13952 
13953 enum _SPBEGINF {
13954     SPBEGINF_NORMAL = 0x0,
13955     SPBEGINF_AUTOTIME = 0x2,
13956     SPBEGINF_NOPROGRESSBAR = 0x10,
13957     SPBEGINF_MARQUEEPROGRESS = 0x20,
13958     SPBEGINF_NOCANCELBUTTON = 0x40
13959 };
13960 
13961 typedef DWORD SPBEGINF;
13962 
13963 typedef enum _SPACTION {
13964     SPACTION_NONE = 0,
13965     SPACTION_MOVING = 1,
13966     SPACTION_COPYING = 2,
13967     SPACTION_RECYCLING = 3,
13968     SPACTION_APPLYINGATTRIBS = 4,
13969     SPACTION_DOWNLOADING = 5,
13970     SPACTION_SEARCHING_INTERNET = 6,
13971     SPACTION_CALCULATING = 7,
13972     SPACTION_UPLOADING = 8,
13973     SPACTION_SEARCHING_FILES = 9,
13974     SPACTION_DELETING = 10,
13975     SPACTION_RENAMING = 11,
13976     SPACTION_FORMATTING = 12,
13977     SPACTION_COPY_MOVING = 13
13978 } SPACTION;
13979 
13980 typedef enum _SPTEXT {
13981     SPTEXT_ACTIONDESCRIPTION = 1,
13982     SPTEXT_ACTIONDETAIL = 2
13983 } SPTEXT;
13984 
13985 DEFINE_GUID(IID_IActionProgress, 0x49ff1173, 0xeadc, 0x446d, 0x92,0x85, 0x15,0x64,0x53,0xa6,0x43,0x1c);
13986 #if defined(__cplusplus) && !defined(CINTERFACE)
13987 MIDL_INTERFACE("49ff1173-eadc-446d-9285-156453a6431c")
13988 IActionProgress : public IUnknown
13989 {
13990     virtual HRESULT STDMETHODCALLTYPE Begin(
13991         SPACTION action,
13992         SPBEGINF flags) = 0;
13993 
13994     virtual HRESULT STDMETHODCALLTYPE UpdateProgress(
13995         ULONGLONG ulCompleted,
13996         ULONGLONG ulTotal) = 0;
13997 
13998     virtual HRESULT STDMETHODCALLTYPE UpdateText(
13999         SPTEXT sptext,
14000         LPCWSTR pszText,
14001         WINBOOL fMayCompact) = 0;
14002 
14003     virtual HRESULT STDMETHODCALLTYPE QueryCancel(
14004         WINBOOL *pfCancelled) = 0;
14005 
14006     virtual HRESULT STDMETHODCALLTYPE ResetCancel(
14007         ) = 0;
14008 
14009     virtual HRESULT STDMETHODCALLTYPE End(
14010         ) = 0;
14011 
14012 };
14013 #ifdef __CRT_UUID_DECL
14014 __CRT_UUID_DECL(IActionProgress, 0x49ff1173, 0xeadc, 0x446d, 0x92,0x85, 0x15,0x64,0x53,0xa6,0x43,0x1c)
14015 #endif
14016 #else
14017 typedef struct IActionProgressVtbl {
14018     BEGIN_INTERFACE
14019 
14020     /*** IUnknown methods ***/
14021     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14022         IActionProgress *This,
14023         REFIID riid,
14024         void **ppvObject);
14025 
14026     ULONG (STDMETHODCALLTYPE *AddRef)(
14027         IActionProgress *This);
14028 
14029     ULONG (STDMETHODCALLTYPE *Release)(
14030         IActionProgress *This);
14031 
14032     /*** IActionProgress methods ***/
14033     HRESULT (STDMETHODCALLTYPE *Begin)(
14034         IActionProgress *This,
14035         SPACTION action,
14036         SPBEGINF flags);
14037 
14038     HRESULT (STDMETHODCALLTYPE *UpdateProgress)(
14039         IActionProgress *This,
14040         ULONGLONG ulCompleted,
14041         ULONGLONG ulTotal);
14042 
14043     HRESULT (STDMETHODCALLTYPE *UpdateText)(
14044         IActionProgress *This,
14045         SPTEXT sptext,
14046         LPCWSTR pszText,
14047         WINBOOL fMayCompact);
14048 
14049     HRESULT (STDMETHODCALLTYPE *QueryCancel)(
14050         IActionProgress *This,
14051         WINBOOL *pfCancelled);
14052 
14053     HRESULT (STDMETHODCALLTYPE *ResetCancel)(
14054         IActionProgress *This);
14055 
14056     HRESULT (STDMETHODCALLTYPE *End)(
14057         IActionProgress *This);
14058 
14059     END_INTERFACE
14060 } IActionProgressVtbl;
14061 
14062 interface IActionProgress {
14063     CONST_VTBL IActionProgressVtbl* lpVtbl;
14064 };
14065 
14066 #ifdef COBJMACROS
14067 #ifndef WIDL_C_INLINE_WRAPPERS
14068 /*** IUnknown methods ***/
14069 #define IActionProgress_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14070 #define IActionProgress_AddRef(This) (This)->lpVtbl->AddRef(This)
14071 #define IActionProgress_Release(This) (This)->lpVtbl->Release(This)
14072 /*** IActionProgress methods ***/
14073 #define IActionProgress_Begin(This,action,flags) (This)->lpVtbl->Begin(This,action,flags)
14074 #define IActionProgress_UpdateProgress(This,ulCompleted,ulTotal) (This)->lpVtbl->UpdateProgress(This,ulCompleted,ulTotal)
14075 #define IActionProgress_UpdateText(This,sptext,pszText,fMayCompact) (This)->lpVtbl->UpdateText(This,sptext,pszText,fMayCompact)
14076 #define IActionProgress_QueryCancel(This,pfCancelled) (This)->lpVtbl->QueryCancel(This,pfCancelled)
14077 #define IActionProgress_ResetCancel(This) (This)->lpVtbl->ResetCancel(This)
14078 #define IActionProgress_End(This) (This)->lpVtbl->End(This)
14079 #else
14080 /*** IUnknown methods ***/
14081 static FORCEINLINE HRESULT IActionProgress_QueryInterface(IActionProgress* This,REFIID riid,void **ppvObject) {
14082     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14083 }
14084 static FORCEINLINE ULONG IActionProgress_AddRef(IActionProgress* This) {
14085     return This->lpVtbl->AddRef(This);
14086 }
14087 static FORCEINLINE ULONG IActionProgress_Release(IActionProgress* This) {
14088     return This->lpVtbl->Release(This);
14089 }
14090 /*** IActionProgress methods ***/
14091 static FORCEINLINE HRESULT IActionProgress_Begin(IActionProgress* This,SPACTION action,SPBEGINF flags) {
14092     return This->lpVtbl->Begin(This,action,flags);
14093 }
14094 static FORCEINLINE HRESULT IActionProgress_UpdateProgress(IActionProgress* This,ULONGLONG ulCompleted,ULONGLONG ulTotal) {
14095     return This->lpVtbl->UpdateProgress(This,ulCompleted,ulTotal);
14096 }
14097 static FORCEINLINE HRESULT IActionProgress_UpdateText(IActionProgress* This,SPTEXT sptext,LPCWSTR pszText,WINBOOL fMayCompact) {
14098     return This->lpVtbl->UpdateText(This,sptext,pszText,fMayCompact);
14099 }
14100 static FORCEINLINE HRESULT IActionProgress_QueryCancel(IActionProgress* This,WINBOOL *pfCancelled) {
14101     return This->lpVtbl->QueryCancel(This,pfCancelled);
14102 }
14103 static FORCEINLINE HRESULT IActionProgress_ResetCancel(IActionProgress* This) {
14104     return This->lpVtbl->ResetCancel(This);
14105 }
14106 static FORCEINLINE HRESULT IActionProgress_End(IActionProgress* This) {
14107     return This->lpVtbl->End(This);
14108 }
14109 #endif
14110 #endif
14111 
14112 #endif
14113 
14114 
14115 #endif  /* __IActionProgress_INTERFACE_DEFINED__ */
14116 
14117 
14118 /*****************************************************************************
14119  * IShellExtInit interface
14120  */
14121 #ifndef __IShellExtInit_INTERFACE_DEFINED__
14122 #define __IShellExtInit_INTERFACE_DEFINED__
14123 
14124 DEFINE_GUID(IID_IShellExtInit, 0x000214e8, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
14125 #if defined(__cplusplus) && !defined(CINTERFACE)
14126 MIDL_INTERFACE("000214e8-0000-0000-c000-000000000046")
14127 IShellExtInit : public IUnknown
14128 {
14129     virtual HRESULT STDMETHODCALLTYPE Initialize(
14130         PCIDLIST_ABSOLUTE pidlFolder,
14131         IDataObject *pdtobj,
14132         HKEY hkeyProgID) = 0;
14133 
14134 };
14135 #ifdef __CRT_UUID_DECL
14136 __CRT_UUID_DECL(IShellExtInit, 0x000214e8, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
14137 #endif
14138 #else
14139 typedef struct IShellExtInitVtbl {
14140     BEGIN_INTERFACE
14141 
14142     /*** IUnknown methods ***/
14143     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14144         IShellExtInit *This,
14145         REFIID riid,
14146         void **ppvObject);
14147 
14148     ULONG (STDMETHODCALLTYPE *AddRef)(
14149         IShellExtInit *This);
14150 
14151     ULONG (STDMETHODCALLTYPE *Release)(
14152         IShellExtInit *This);
14153 
14154     /*** IShellExtInit methods ***/
14155     HRESULT (STDMETHODCALLTYPE *Initialize)(
14156         IShellExtInit *This,
14157         PCIDLIST_ABSOLUTE pidlFolder,
14158         IDataObject *pdtobj,
14159         HKEY hkeyProgID);
14160 
14161     END_INTERFACE
14162 } IShellExtInitVtbl;
14163 
14164 interface IShellExtInit {
14165     CONST_VTBL IShellExtInitVtbl* lpVtbl;
14166 };
14167 
14168 #ifdef COBJMACROS
14169 #ifndef WIDL_C_INLINE_WRAPPERS
14170 /*** IUnknown methods ***/
14171 #define IShellExtInit_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14172 #define IShellExtInit_AddRef(This) (This)->lpVtbl->AddRef(This)
14173 #define IShellExtInit_Release(This) (This)->lpVtbl->Release(This)
14174 /*** IShellExtInit methods ***/
14175 #define IShellExtInit_Initialize(This,pidlFolder,pdtobj,hkeyProgID) (This)->lpVtbl->Initialize(This,pidlFolder,pdtobj,hkeyProgID)
14176 #else
14177 /*** IUnknown methods ***/
14178 static FORCEINLINE HRESULT IShellExtInit_QueryInterface(IShellExtInit* This,REFIID riid,void **ppvObject) {
14179     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14180 }
14181 static FORCEINLINE ULONG IShellExtInit_AddRef(IShellExtInit* This) {
14182     return This->lpVtbl->AddRef(This);
14183 }
14184 static FORCEINLINE ULONG IShellExtInit_Release(IShellExtInit* This) {
14185     return This->lpVtbl->Release(This);
14186 }
14187 /*** IShellExtInit methods ***/
14188 static FORCEINLINE HRESULT IShellExtInit_Initialize(IShellExtInit* This,PCIDLIST_ABSOLUTE pidlFolder,IDataObject *pdtobj,HKEY hkeyProgID) {
14189     return This->lpVtbl->Initialize(This,pidlFolder,pdtobj,hkeyProgID);
14190 }
14191 #endif
14192 #endif
14193 
14194 #endif
14195 
14196 
14197 #endif  /* __IShellExtInit_INTERFACE_DEFINED__ */
14198 
14199 typedef IShellExtInit *LPSHELLEXTINIT;
14200 
14201 /*****************************************************************************
14202  * IShellPropSheetExt interface
14203  */
14204 #ifndef __IShellPropSheetExt_INTERFACE_DEFINED__
14205 #define __IShellPropSheetExt_INTERFACE_DEFINED__
14206 
14207 enum _EXPPS {
14208     EXPPS_FILETYPES = 0x1
14209 };
14210 
14211 typedef UINT EXPPS;
14212 
14213 DEFINE_GUID(IID_IShellPropSheetExt, 0x000214e9, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
14214 #if defined(__cplusplus) && !defined(CINTERFACE)
14215 MIDL_INTERFACE("000214e9-0000-0000-c000-000000000046")
14216 IShellPropSheetExt : public IUnknown
14217 {
14218     virtual HRESULT STDMETHODCALLTYPE AddPages(
14219         LPFNSVADDPROPSHEETPAGE pfnAddPage,
14220         LPARAM lParam) = 0;
14221 
14222     virtual HRESULT STDMETHODCALLTYPE ReplacePage(
14223         EXPPS uPageID,
14224         LPFNSVADDPROPSHEETPAGE pfnReplaceWith,
14225         LPARAM lParam) = 0;
14226 
14227 };
14228 #ifdef __CRT_UUID_DECL
14229 __CRT_UUID_DECL(IShellPropSheetExt, 0x000214e9, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
14230 #endif
14231 #else
14232 typedef struct IShellPropSheetExtVtbl {
14233     BEGIN_INTERFACE
14234 
14235     /*** IUnknown methods ***/
14236     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14237         IShellPropSheetExt *This,
14238         REFIID riid,
14239         void **ppvObject);
14240 
14241     ULONG (STDMETHODCALLTYPE *AddRef)(
14242         IShellPropSheetExt *This);
14243 
14244     ULONG (STDMETHODCALLTYPE *Release)(
14245         IShellPropSheetExt *This);
14246 
14247     /*** IShellPropSheetExt methods ***/
14248     HRESULT (STDMETHODCALLTYPE *AddPages)(
14249         IShellPropSheetExt *This,
14250         LPFNSVADDPROPSHEETPAGE pfnAddPage,
14251         LPARAM lParam);
14252 
14253     HRESULT (STDMETHODCALLTYPE *ReplacePage)(
14254         IShellPropSheetExt *This,
14255         EXPPS uPageID,
14256         LPFNSVADDPROPSHEETPAGE pfnReplaceWith,
14257         LPARAM lParam);
14258 
14259     END_INTERFACE
14260 } IShellPropSheetExtVtbl;
14261 
14262 interface IShellPropSheetExt {
14263     CONST_VTBL IShellPropSheetExtVtbl* lpVtbl;
14264 };
14265 
14266 #ifdef COBJMACROS
14267 #ifndef WIDL_C_INLINE_WRAPPERS
14268 /*** IUnknown methods ***/
14269 #define IShellPropSheetExt_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14270 #define IShellPropSheetExt_AddRef(This) (This)->lpVtbl->AddRef(This)
14271 #define IShellPropSheetExt_Release(This) (This)->lpVtbl->Release(This)
14272 /*** IShellPropSheetExt methods ***/
14273 #define IShellPropSheetExt_AddPages(This,pfnAddPage,lParam) (This)->lpVtbl->AddPages(This,pfnAddPage,lParam)
14274 #define IShellPropSheetExt_ReplacePage(This,uPageID,pfnReplaceWith,lParam) (This)->lpVtbl->ReplacePage(This,uPageID,pfnReplaceWith,lParam)
14275 #else
14276 /*** IUnknown methods ***/
14277 static FORCEINLINE HRESULT IShellPropSheetExt_QueryInterface(IShellPropSheetExt* This,REFIID riid,void **ppvObject) {
14278     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14279 }
14280 static FORCEINLINE ULONG IShellPropSheetExt_AddRef(IShellPropSheetExt* This) {
14281     return This->lpVtbl->AddRef(This);
14282 }
14283 static FORCEINLINE ULONG IShellPropSheetExt_Release(IShellPropSheetExt* This) {
14284     return This->lpVtbl->Release(This);
14285 }
14286 /*** IShellPropSheetExt methods ***/
14287 static FORCEINLINE HRESULT IShellPropSheetExt_AddPages(IShellPropSheetExt* This,LPFNSVADDPROPSHEETPAGE pfnAddPage,LPARAM lParam) {
14288     return This->lpVtbl->AddPages(This,pfnAddPage,lParam);
14289 }
14290 static FORCEINLINE HRESULT IShellPropSheetExt_ReplacePage(IShellPropSheetExt* This,EXPPS uPageID,LPFNSVADDPROPSHEETPAGE pfnReplaceWith,LPARAM lParam) {
14291     return This->lpVtbl->ReplacePage(This,uPageID,pfnReplaceWith,lParam);
14292 }
14293 #endif
14294 #endif
14295 
14296 #endif
14297 
14298 
14299 #endif  /* __IShellPropSheetExt_INTERFACE_DEFINED__ */
14300 
14301 typedef IShellPropSheetExt *LPSHELLPROPSHEETEXT;
14302 
14303 /*****************************************************************************
14304  * IRemoteComputer interface
14305  */
14306 #ifndef __IRemoteComputer_INTERFACE_DEFINED__
14307 #define __IRemoteComputer_INTERFACE_DEFINED__
14308 
14309 DEFINE_GUID(IID_IRemoteComputer, 0x000214fe, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
14310 #if defined(__cplusplus) && !defined(CINTERFACE)
14311 MIDL_INTERFACE("000214fe-0000-0000-c000-000000000046")
14312 IRemoteComputer : public IUnknown
14313 {
14314     virtual HRESULT STDMETHODCALLTYPE Initialize(
14315         LPCWSTR pszMachine,
14316         WINBOOL bEnumerating) = 0;
14317 
14318 };
14319 #ifdef __CRT_UUID_DECL
14320 __CRT_UUID_DECL(IRemoteComputer, 0x000214fe, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
14321 #endif
14322 #else
14323 typedef struct IRemoteComputerVtbl {
14324     BEGIN_INTERFACE
14325 
14326     /*** IUnknown methods ***/
14327     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14328         IRemoteComputer *This,
14329         REFIID riid,
14330         void **ppvObject);
14331 
14332     ULONG (STDMETHODCALLTYPE *AddRef)(
14333         IRemoteComputer *This);
14334 
14335     ULONG (STDMETHODCALLTYPE *Release)(
14336         IRemoteComputer *This);
14337 
14338     /*** IRemoteComputer methods ***/
14339     HRESULT (STDMETHODCALLTYPE *Initialize)(
14340         IRemoteComputer *This,
14341         LPCWSTR pszMachine,
14342         WINBOOL bEnumerating);
14343 
14344     END_INTERFACE
14345 } IRemoteComputerVtbl;
14346 
14347 interface IRemoteComputer {
14348     CONST_VTBL IRemoteComputerVtbl* lpVtbl;
14349 };
14350 
14351 #ifdef COBJMACROS
14352 #ifndef WIDL_C_INLINE_WRAPPERS
14353 /*** IUnknown methods ***/
14354 #define IRemoteComputer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14355 #define IRemoteComputer_AddRef(This) (This)->lpVtbl->AddRef(This)
14356 #define IRemoteComputer_Release(This) (This)->lpVtbl->Release(This)
14357 /*** IRemoteComputer methods ***/
14358 #define IRemoteComputer_Initialize(This,pszMachine,bEnumerating) (This)->lpVtbl->Initialize(This,pszMachine,bEnumerating)
14359 #else
14360 /*** IUnknown methods ***/
14361 static FORCEINLINE HRESULT IRemoteComputer_QueryInterface(IRemoteComputer* This,REFIID riid,void **ppvObject) {
14362     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14363 }
14364 static FORCEINLINE ULONG IRemoteComputer_AddRef(IRemoteComputer* This) {
14365     return This->lpVtbl->AddRef(This);
14366 }
14367 static FORCEINLINE ULONG IRemoteComputer_Release(IRemoteComputer* This) {
14368     return This->lpVtbl->Release(This);
14369 }
14370 /*** IRemoteComputer methods ***/
14371 static FORCEINLINE HRESULT IRemoteComputer_Initialize(IRemoteComputer* This,LPCWSTR pszMachine,WINBOOL bEnumerating) {
14372     return This->lpVtbl->Initialize(This,pszMachine,bEnumerating);
14373 }
14374 #endif
14375 #endif
14376 
14377 #endif
14378 
14379 
14380 #endif  /* __IRemoteComputer_INTERFACE_DEFINED__ */
14381 
14382 
14383 /*****************************************************************************
14384  * IQueryContinue interface
14385  */
14386 #ifndef __IQueryContinue_INTERFACE_DEFINED__
14387 #define __IQueryContinue_INTERFACE_DEFINED__
14388 
14389 DEFINE_GUID(IID_IQueryContinue, 0x7307055c, 0xb24a, 0x486b, 0x9f,0x25, 0x16,0x3e,0x59,0x7a,0x28,0xa9);
14390 #if defined(__cplusplus) && !defined(CINTERFACE)
14391 MIDL_INTERFACE("7307055c-b24a-486b-9f25-163e597a28a9")
14392 IQueryContinue : public IUnknown
14393 {
14394     virtual HRESULT STDMETHODCALLTYPE QueryContinue(
14395         ) = 0;
14396 
14397 };
14398 #ifdef __CRT_UUID_DECL
14399 __CRT_UUID_DECL(IQueryContinue, 0x7307055c, 0xb24a, 0x486b, 0x9f,0x25, 0x16,0x3e,0x59,0x7a,0x28,0xa9)
14400 #endif
14401 #else
14402 typedef struct IQueryContinueVtbl {
14403     BEGIN_INTERFACE
14404 
14405     /*** IUnknown methods ***/
14406     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14407         IQueryContinue *This,
14408         REFIID riid,
14409         void **ppvObject);
14410 
14411     ULONG (STDMETHODCALLTYPE *AddRef)(
14412         IQueryContinue *This);
14413 
14414     ULONG (STDMETHODCALLTYPE *Release)(
14415         IQueryContinue *This);
14416 
14417     /*** IQueryContinue methods ***/
14418     HRESULT (STDMETHODCALLTYPE *QueryContinue)(
14419         IQueryContinue *This);
14420 
14421     END_INTERFACE
14422 } IQueryContinueVtbl;
14423 
14424 interface IQueryContinue {
14425     CONST_VTBL IQueryContinueVtbl* lpVtbl;
14426 };
14427 
14428 #ifdef COBJMACROS
14429 #ifndef WIDL_C_INLINE_WRAPPERS
14430 /*** IUnknown methods ***/
14431 #define IQueryContinue_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14432 #define IQueryContinue_AddRef(This) (This)->lpVtbl->AddRef(This)
14433 #define IQueryContinue_Release(This) (This)->lpVtbl->Release(This)
14434 /*** IQueryContinue methods ***/
14435 #define IQueryContinue_QueryContinue(This) (This)->lpVtbl->QueryContinue(This)
14436 #else
14437 /*** IUnknown methods ***/
14438 static FORCEINLINE HRESULT IQueryContinue_QueryInterface(IQueryContinue* This,REFIID riid,void **ppvObject) {
14439     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14440 }
14441 static FORCEINLINE ULONG IQueryContinue_AddRef(IQueryContinue* This) {
14442     return This->lpVtbl->AddRef(This);
14443 }
14444 static FORCEINLINE ULONG IQueryContinue_Release(IQueryContinue* This) {
14445     return This->lpVtbl->Release(This);
14446 }
14447 /*** IQueryContinue methods ***/
14448 static FORCEINLINE HRESULT IQueryContinue_QueryContinue(IQueryContinue* This) {
14449     return This->lpVtbl->QueryContinue(This);
14450 }
14451 #endif
14452 #endif
14453 
14454 #endif
14455 
14456 
14457 #endif  /* __IQueryContinue_INTERFACE_DEFINED__ */
14458 
14459 
14460 /*****************************************************************************
14461  * IObjectWithCancelEvent interface
14462  */
14463 #ifndef __IObjectWithCancelEvent_INTERFACE_DEFINED__
14464 #define __IObjectWithCancelEvent_INTERFACE_DEFINED__
14465 
14466 DEFINE_GUID(IID_IObjectWithCancelEvent, 0xf279b885, 0x0ae9, 0x4b85, 0xac,0x06, 0xdd,0xec,0xf9,0x40,0x89,0x41);
14467 #if defined(__cplusplus) && !defined(CINTERFACE)
14468 MIDL_INTERFACE("f279b885-0ae9-4b85-ac06-ddecf9408941")
14469 IObjectWithCancelEvent : public IUnknown
14470 {
14471     virtual HRESULT STDMETHODCALLTYPE GetCancelEvent(
14472         HANDLE *phEvent) = 0;
14473 
14474 };
14475 #ifdef __CRT_UUID_DECL
14476 __CRT_UUID_DECL(IObjectWithCancelEvent, 0xf279b885, 0x0ae9, 0x4b85, 0xac,0x06, 0xdd,0xec,0xf9,0x40,0x89,0x41)
14477 #endif
14478 #else
14479 typedef struct IObjectWithCancelEventVtbl {
14480     BEGIN_INTERFACE
14481 
14482     /*** IUnknown methods ***/
14483     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14484         IObjectWithCancelEvent *This,
14485         REFIID riid,
14486         void **ppvObject);
14487 
14488     ULONG (STDMETHODCALLTYPE *AddRef)(
14489         IObjectWithCancelEvent *This);
14490 
14491     ULONG (STDMETHODCALLTYPE *Release)(
14492         IObjectWithCancelEvent *This);
14493 
14494     /*** IObjectWithCancelEvent methods ***/
14495     HRESULT (STDMETHODCALLTYPE *GetCancelEvent)(
14496         IObjectWithCancelEvent *This,
14497         HANDLE *phEvent);
14498 
14499     END_INTERFACE
14500 } IObjectWithCancelEventVtbl;
14501 
14502 interface IObjectWithCancelEvent {
14503     CONST_VTBL IObjectWithCancelEventVtbl* lpVtbl;
14504 };
14505 
14506 #ifdef COBJMACROS
14507 #ifndef WIDL_C_INLINE_WRAPPERS
14508 /*** IUnknown methods ***/
14509 #define IObjectWithCancelEvent_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14510 #define IObjectWithCancelEvent_AddRef(This) (This)->lpVtbl->AddRef(This)
14511 #define IObjectWithCancelEvent_Release(This) (This)->lpVtbl->Release(This)
14512 /*** IObjectWithCancelEvent methods ***/
14513 #define IObjectWithCancelEvent_GetCancelEvent(This,phEvent) (This)->lpVtbl->GetCancelEvent(This,phEvent)
14514 #else
14515 /*** IUnknown methods ***/
14516 static FORCEINLINE HRESULT IObjectWithCancelEvent_QueryInterface(IObjectWithCancelEvent* This,REFIID riid,void **ppvObject) {
14517     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14518 }
14519 static FORCEINLINE ULONG IObjectWithCancelEvent_AddRef(IObjectWithCancelEvent* This) {
14520     return This->lpVtbl->AddRef(This);
14521 }
14522 static FORCEINLINE ULONG IObjectWithCancelEvent_Release(IObjectWithCancelEvent* This) {
14523     return This->lpVtbl->Release(This);
14524 }
14525 /*** IObjectWithCancelEvent methods ***/
14526 static FORCEINLINE HRESULT IObjectWithCancelEvent_GetCancelEvent(IObjectWithCancelEvent* This,HANDLE *phEvent) {
14527     return This->lpVtbl->GetCancelEvent(This,phEvent);
14528 }
14529 #endif
14530 #endif
14531 
14532 #endif
14533 
14534 
14535 #endif  /* __IObjectWithCancelEvent_INTERFACE_DEFINED__ */
14536 
14537 
14538 /*****************************************************************************
14539  * IUserNotification interface
14540  */
14541 #ifndef __IUserNotification_INTERFACE_DEFINED__
14542 #define __IUserNotification_INTERFACE_DEFINED__
14543 
14544 DEFINE_GUID(IID_IUserNotification, 0xba9711ba, 0x5893, 0x4787, 0xa7,0xe1, 0x41,0x27,0x71,0x51,0x55,0x0b);
14545 #if defined(__cplusplus) && !defined(CINTERFACE)
14546 MIDL_INTERFACE("ba9711ba-5893-4787-a7e1-41277151550b")
14547 IUserNotification : public IUnknown
14548 {
14549     virtual HRESULT STDMETHODCALLTYPE SetBalloonInfo(
14550         LPCWSTR pszTitle,
14551         LPCWSTR pszText,
14552         DWORD dwInfoFlags) = 0;
14553 
14554     virtual HRESULT STDMETHODCALLTYPE SetBalloonRetry(
14555         DWORD dwShowTime,
14556         DWORD dwInterval,
14557         UINT cRetryCount) = 0;
14558 
14559     virtual HRESULT STDMETHODCALLTYPE SetIconInfo(
14560         HICON hIcon,
14561         LPCWSTR pszToolTip) = 0;
14562 
14563     virtual HRESULT STDMETHODCALLTYPE Show(
14564         IQueryContinue *pqc,
14565         DWORD dwContinuePollInterval) = 0;
14566 
14567     virtual HRESULT STDMETHODCALLTYPE PlaySound(
14568         LPCWSTR pszSoundName) = 0;
14569 
14570 };
14571 #ifdef __CRT_UUID_DECL
14572 __CRT_UUID_DECL(IUserNotification, 0xba9711ba, 0x5893, 0x4787, 0xa7,0xe1, 0x41,0x27,0x71,0x51,0x55,0x0b)
14573 #endif
14574 #else
14575 typedef struct IUserNotificationVtbl {
14576     BEGIN_INTERFACE
14577 
14578     /*** IUnknown methods ***/
14579     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14580         IUserNotification *This,
14581         REFIID riid,
14582         void **ppvObject);
14583 
14584     ULONG (STDMETHODCALLTYPE *AddRef)(
14585         IUserNotification *This);
14586 
14587     ULONG (STDMETHODCALLTYPE *Release)(
14588         IUserNotification *This);
14589 
14590     /*** IUserNotification methods ***/
14591     HRESULT (STDMETHODCALLTYPE *SetBalloonInfo)(
14592         IUserNotification *This,
14593         LPCWSTR pszTitle,
14594         LPCWSTR pszText,
14595         DWORD dwInfoFlags);
14596 
14597     HRESULT (STDMETHODCALLTYPE *SetBalloonRetry)(
14598         IUserNotification *This,
14599         DWORD dwShowTime,
14600         DWORD dwInterval,
14601         UINT cRetryCount);
14602 
14603     HRESULT (STDMETHODCALLTYPE *SetIconInfo)(
14604         IUserNotification *This,
14605         HICON hIcon,
14606         LPCWSTR pszToolTip);
14607 
14608     HRESULT (STDMETHODCALLTYPE *Show)(
14609         IUserNotification *This,
14610         IQueryContinue *pqc,
14611         DWORD dwContinuePollInterval);
14612 
14613     HRESULT (STDMETHODCALLTYPE *PlaySound)(
14614         IUserNotification *This,
14615         LPCWSTR pszSoundName);
14616 
14617     END_INTERFACE
14618 } IUserNotificationVtbl;
14619 
14620 interface IUserNotification {
14621     CONST_VTBL IUserNotificationVtbl* lpVtbl;
14622 };
14623 
14624 #ifdef COBJMACROS
14625 #ifndef WIDL_C_INLINE_WRAPPERS
14626 /*** IUnknown methods ***/
14627 #define IUserNotification_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14628 #define IUserNotification_AddRef(This) (This)->lpVtbl->AddRef(This)
14629 #define IUserNotification_Release(This) (This)->lpVtbl->Release(This)
14630 /*** IUserNotification methods ***/
14631 #define IUserNotification_SetBalloonInfo(This,pszTitle,pszText,dwInfoFlags) (This)->lpVtbl->SetBalloonInfo(This,pszTitle,pszText,dwInfoFlags)
14632 #define IUserNotification_SetBalloonRetry(This,dwShowTime,dwInterval,cRetryCount) (This)->lpVtbl->SetBalloonRetry(This,dwShowTime,dwInterval,cRetryCount)
14633 #define IUserNotification_SetIconInfo(This,hIcon,pszToolTip) (This)->lpVtbl->SetIconInfo(This,hIcon,pszToolTip)
14634 #define IUserNotification_Show(This,pqc,dwContinuePollInterval) (This)->lpVtbl->Show(This,pqc,dwContinuePollInterval)
14635 #define IUserNotification_PlaySound(This,pszSoundName) (This)->lpVtbl->PlaySound(This,pszSoundName)
14636 #else
14637 /*** IUnknown methods ***/
14638 static FORCEINLINE HRESULT IUserNotification_QueryInterface(IUserNotification* This,REFIID riid,void **ppvObject) {
14639     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14640 }
14641 static FORCEINLINE ULONG IUserNotification_AddRef(IUserNotification* This) {
14642     return This->lpVtbl->AddRef(This);
14643 }
14644 static FORCEINLINE ULONG IUserNotification_Release(IUserNotification* This) {
14645     return This->lpVtbl->Release(This);
14646 }
14647 /*** IUserNotification methods ***/
14648 static FORCEINLINE HRESULT IUserNotification_SetBalloonInfo(IUserNotification* This,LPCWSTR pszTitle,LPCWSTR pszText,DWORD dwInfoFlags) {
14649     return This->lpVtbl->SetBalloonInfo(This,pszTitle,pszText,dwInfoFlags);
14650 }
14651 static FORCEINLINE HRESULT IUserNotification_SetBalloonRetry(IUserNotification* This,DWORD dwShowTime,DWORD dwInterval,UINT cRetryCount) {
14652     return This->lpVtbl->SetBalloonRetry(This,dwShowTime,dwInterval,cRetryCount);
14653 }
14654 static FORCEINLINE HRESULT IUserNotification_SetIconInfo(IUserNotification* This,HICON hIcon,LPCWSTR pszToolTip) {
14655     return This->lpVtbl->SetIconInfo(This,hIcon,pszToolTip);
14656 }
14657 static FORCEINLINE HRESULT IUserNotification_Show(IUserNotification* This,IQueryContinue *pqc,DWORD dwContinuePollInterval) {
14658     return This->lpVtbl->Show(This,pqc,dwContinuePollInterval);
14659 }
14660 static FORCEINLINE HRESULT IUserNotification_PlaySound(IUserNotification* This,LPCWSTR pszSoundName) {
14661     return This->lpVtbl->PlaySound(This,pszSoundName);
14662 }
14663 #endif
14664 #endif
14665 
14666 #endif
14667 
14668 
14669 #endif  /* __IUserNotification_INTERFACE_DEFINED__ */
14670 
14671 
14672 /*****************************************************************************
14673  * IUserNotificationCallback interface
14674  */
14675 #ifndef __IUserNotificationCallback_INTERFACE_DEFINED__
14676 #define __IUserNotificationCallback_INTERFACE_DEFINED__
14677 
14678 DEFINE_GUID(IID_IUserNotificationCallback, 0x19108294, 0x0441, 0x4aff, 0x80,0x13, 0xfa,0x0a,0x73,0x0b,0x0b,0xea);
14679 #if defined(__cplusplus) && !defined(CINTERFACE)
14680 MIDL_INTERFACE("19108294-0441-4aff-8013-fa0a730b0bea")
14681 IUserNotificationCallback : public IUnknown
14682 {
14683     virtual HRESULT STDMETHODCALLTYPE OnBalloonUserClick(
14684         POINT *pt) = 0;
14685 
14686     virtual HRESULT STDMETHODCALLTYPE OnLeftClick(
14687         POINT *pt) = 0;
14688 
14689     virtual HRESULT STDMETHODCALLTYPE OnContextMenu(
14690         POINT *pt) = 0;
14691 
14692 };
14693 #ifdef __CRT_UUID_DECL
14694 __CRT_UUID_DECL(IUserNotificationCallback, 0x19108294, 0x0441, 0x4aff, 0x80,0x13, 0xfa,0x0a,0x73,0x0b,0x0b,0xea)
14695 #endif
14696 #else
14697 typedef struct IUserNotificationCallbackVtbl {
14698     BEGIN_INTERFACE
14699 
14700     /*** IUnknown methods ***/
14701     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14702         IUserNotificationCallback *This,
14703         REFIID riid,
14704         void **ppvObject);
14705 
14706     ULONG (STDMETHODCALLTYPE *AddRef)(
14707         IUserNotificationCallback *This);
14708 
14709     ULONG (STDMETHODCALLTYPE *Release)(
14710         IUserNotificationCallback *This);
14711 
14712     /*** IUserNotificationCallback methods ***/
14713     HRESULT (STDMETHODCALLTYPE *OnBalloonUserClick)(
14714         IUserNotificationCallback *This,
14715         POINT *pt);
14716 
14717     HRESULT (STDMETHODCALLTYPE *OnLeftClick)(
14718         IUserNotificationCallback *This,
14719         POINT *pt);
14720 
14721     HRESULT (STDMETHODCALLTYPE *OnContextMenu)(
14722         IUserNotificationCallback *This,
14723         POINT *pt);
14724 
14725     END_INTERFACE
14726 } IUserNotificationCallbackVtbl;
14727 
14728 interface IUserNotificationCallback {
14729     CONST_VTBL IUserNotificationCallbackVtbl* lpVtbl;
14730 };
14731 
14732 #ifdef COBJMACROS
14733 #ifndef WIDL_C_INLINE_WRAPPERS
14734 /*** IUnknown methods ***/
14735 #define IUserNotificationCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14736 #define IUserNotificationCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
14737 #define IUserNotificationCallback_Release(This) (This)->lpVtbl->Release(This)
14738 /*** IUserNotificationCallback methods ***/
14739 #define IUserNotificationCallback_OnBalloonUserClick(This,pt) (This)->lpVtbl->OnBalloonUserClick(This,pt)
14740 #define IUserNotificationCallback_OnLeftClick(This,pt) (This)->lpVtbl->OnLeftClick(This,pt)
14741 #define IUserNotificationCallback_OnContextMenu(This,pt) (This)->lpVtbl->OnContextMenu(This,pt)
14742 #else
14743 /*** IUnknown methods ***/
14744 static FORCEINLINE HRESULT IUserNotificationCallback_QueryInterface(IUserNotificationCallback* This,REFIID riid,void **ppvObject) {
14745     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14746 }
14747 static FORCEINLINE ULONG IUserNotificationCallback_AddRef(IUserNotificationCallback* This) {
14748     return This->lpVtbl->AddRef(This);
14749 }
14750 static FORCEINLINE ULONG IUserNotificationCallback_Release(IUserNotificationCallback* This) {
14751     return This->lpVtbl->Release(This);
14752 }
14753 /*** IUserNotificationCallback methods ***/
14754 static FORCEINLINE HRESULT IUserNotificationCallback_OnBalloonUserClick(IUserNotificationCallback* This,POINT *pt) {
14755     return This->lpVtbl->OnBalloonUserClick(This,pt);
14756 }
14757 static FORCEINLINE HRESULT IUserNotificationCallback_OnLeftClick(IUserNotificationCallback* This,POINT *pt) {
14758     return This->lpVtbl->OnLeftClick(This,pt);
14759 }
14760 static FORCEINLINE HRESULT IUserNotificationCallback_OnContextMenu(IUserNotificationCallback* This,POINT *pt) {
14761     return This->lpVtbl->OnContextMenu(This,pt);
14762 }
14763 #endif
14764 #endif
14765 
14766 #endif
14767 
14768 
14769 #endif  /* __IUserNotificationCallback_INTERFACE_DEFINED__ */
14770 
14771 
14772 /*****************************************************************************
14773  * IUserNotification2 interface
14774  */
14775 #ifndef __IUserNotification2_INTERFACE_DEFINED__
14776 #define __IUserNotification2_INTERFACE_DEFINED__
14777 
14778 DEFINE_GUID(IID_IUserNotification2, 0x215913cc, 0x57eb, 0x4fab, 0xab,0x5a, 0xe5,0xfa,0x7b,0xea,0x2a,0x6c);
14779 #if defined(__cplusplus) && !defined(CINTERFACE)
14780 MIDL_INTERFACE("215913cc-57eb-4fab-ab5a-e5fa7bea2a6c")
14781 IUserNotification2 : public IUnknown
14782 {
14783     virtual HRESULT STDMETHODCALLTYPE SetBalloonInfo(
14784         LPCWSTR pszTitle,
14785         LPCWSTR pszText,
14786         DWORD dwInfoFlags) = 0;
14787 
14788     virtual HRESULT STDMETHODCALLTYPE SetBalloonRetry(
14789         DWORD dwShowTime,
14790         DWORD dwInterval,
14791         UINT cRetryCount) = 0;
14792 
14793     virtual HRESULT STDMETHODCALLTYPE SetIconInfo(
14794         HICON hIcon,
14795         LPCWSTR pszToolTip) = 0;
14796 
14797     virtual HRESULT STDMETHODCALLTYPE Show(
14798         IQueryContinue *pqc,
14799         DWORD dwContinuePollInterval,
14800         IUserNotificationCallback *pSink) = 0;
14801 
14802     virtual HRESULT STDMETHODCALLTYPE PlaySound(
14803         LPCWSTR pszSoundName) = 0;
14804 
14805 };
14806 #ifdef __CRT_UUID_DECL
14807 __CRT_UUID_DECL(IUserNotification2, 0x215913cc, 0x57eb, 0x4fab, 0xab,0x5a, 0xe5,0xfa,0x7b,0xea,0x2a,0x6c)
14808 #endif
14809 #else
14810 typedef struct IUserNotification2Vtbl {
14811     BEGIN_INTERFACE
14812 
14813     /*** IUnknown methods ***/
14814     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14815         IUserNotification2 *This,
14816         REFIID riid,
14817         void **ppvObject);
14818 
14819     ULONG (STDMETHODCALLTYPE *AddRef)(
14820         IUserNotification2 *This);
14821 
14822     ULONG (STDMETHODCALLTYPE *Release)(
14823         IUserNotification2 *This);
14824 
14825     /*** IUserNotification2 methods ***/
14826     HRESULT (STDMETHODCALLTYPE *SetBalloonInfo)(
14827         IUserNotification2 *This,
14828         LPCWSTR pszTitle,
14829         LPCWSTR pszText,
14830         DWORD dwInfoFlags);
14831 
14832     HRESULT (STDMETHODCALLTYPE *SetBalloonRetry)(
14833         IUserNotification2 *This,
14834         DWORD dwShowTime,
14835         DWORD dwInterval,
14836         UINT cRetryCount);
14837 
14838     HRESULT (STDMETHODCALLTYPE *SetIconInfo)(
14839         IUserNotification2 *This,
14840         HICON hIcon,
14841         LPCWSTR pszToolTip);
14842 
14843     HRESULT (STDMETHODCALLTYPE *Show)(
14844         IUserNotification2 *This,
14845         IQueryContinue *pqc,
14846         DWORD dwContinuePollInterval,
14847         IUserNotificationCallback *pSink);
14848 
14849     HRESULT (STDMETHODCALLTYPE *PlaySound)(
14850         IUserNotification2 *This,
14851         LPCWSTR pszSoundName);
14852 
14853     END_INTERFACE
14854 } IUserNotification2Vtbl;
14855 
14856 interface IUserNotification2 {
14857     CONST_VTBL IUserNotification2Vtbl* lpVtbl;
14858 };
14859 
14860 #ifdef COBJMACROS
14861 #ifndef WIDL_C_INLINE_WRAPPERS
14862 /*** IUnknown methods ***/
14863 #define IUserNotification2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14864 #define IUserNotification2_AddRef(This) (This)->lpVtbl->AddRef(This)
14865 #define IUserNotification2_Release(This) (This)->lpVtbl->Release(This)
14866 /*** IUserNotification2 methods ***/
14867 #define IUserNotification2_SetBalloonInfo(This,pszTitle,pszText,dwInfoFlags) (This)->lpVtbl->SetBalloonInfo(This,pszTitle,pszText,dwInfoFlags)
14868 #define IUserNotification2_SetBalloonRetry(This,dwShowTime,dwInterval,cRetryCount) (This)->lpVtbl->SetBalloonRetry(This,dwShowTime,dwInterval,cRetryCount)
14869 #define IUserNotification2_SetIconInfo(This,hIcon,pszToolTip) (This)->lpVtbl->SetIconInfo(This,hIcon,pszToolTip)
14870 #define IUserNotification2_Show(This,pqc,dwContinuePollInterval,pSink) (This)->lpVtbl->Show(This,pqc,dwContinuePollInterval,pSink)
14871 #define IUserNotification2_PlaySound(This,pszSoundName) (This)->lpVtbl->PlaySound(This,pszSoundName)
14872 #else
14873 /*** IUnknown methods ***/
14874 static FORCEINLINE HRESULT IUserNotification2_QueryInterface(IUserNotification2* This,REFIID riid,void **ppvObject) {
14875     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14876 }
14877 static FORCEINLINE ULONG IUserNotification2_AddRef(IUserNotification2* This) {
14878     return This->lpVtbl->AddRef(This);
14879 }
14880 static FORCEINLINE ULONG IUserNotification2_Release(IUserNotification2* This) {
14881     return This->lpVtbl->Release(This);
14882 }
14883 /*** IUserNotification2 methods ***/
14884 static FORCEINLINE HRESULT IUserNotification2_SetBalloonInfo(IUserNotification2* This,LPCWSTR pszTitle,LPCWSTR pszText,DWORD dwInfoFlags) {
14885     return This->lpVtbl->SetBalloonInfo(This,pszTitle,pszText,dwInfoFlags);
14886 }
14887 static FORCEINLINE HRESULT IUserNotification2_SetBalloonRetry(IUserNotification2* This,DWORD dwShowTime,DWORD dwInterval,UINT cRetryCount) {
14888     return This->lpVtbl->SetBalloonRetry(This,dwShowTime,dwInterval,cRetryCount);
14889 }
14890 static FORCEINLINE HRESULT IUserNotification2_SetIconInfo(IUserNotification2* This,HICON hIcon,LPCWSTR pszToolTip) {
14891     return This->lpVtbl->SetIconInfo(This,hIcon,pszToolTip);
14892 }
14893 static FORCEINLINE HRESULT IUserNotification2_Show(IUserNotification2* This,IQueryContinue *pqc,DWORD dwContinuePollInterval,IUserNotificationCallback *pSink) {
14894     return This->lpVtbl->Show(This,pqc,dwContinuePollInterval,pSink);
14895 }
14896 static FORCEINLINE HRESULT IUserNotification2_PlaySound(IUserNotification2* This,LPCWSTR pszSoundName) {
14897     return This->lpVtbl->PlaySound(This,pszSoundName);
14898 }
14899 #endif
14900 #endif
14901 
14902 #endif
14903 
14904 
14905 #endif  /* __IUserNotification2_INTERFACE_DEFINED__ */
14906 
14907 
14908 /*****************************************************************************
14909  * IItemNameLimits interface
14910  */
14911 #ifndef __IItemNameLimits_INTERFACE_DEFINED__
14912 #define __IItemNameLimits_INTERFACE_DEFINED__
14913 
14914 DEFINE_GUID(IID_IItemNameLimits, 0x1df0d7f1, 0xb267, 0x4d28, 0x8b,0x10, 0x12,0xe2,0x32,0x02,0xa5,0xc4);
14915 #if defined(__cplusplus) && !defined(CINTERFACE)
14916 MIDL_INTERFACE("1df0d7f1-b267-4d28-8b10-12e23202a5c4")
14917 IItemNameLimits : public IUnknown
14918 {
14919     virtual HRESULT STDMETHODCALLTYPE GetValidCharacters(
14920         LPWSTR *ppwszValidChars,
14921         LPWSTR *ppwszInvalidChars) = 0;
14922 
14923     virtual HRESULT STDMETHODCALLTYPE GetMaxLength(
14924         LPCWSTR pszName,
14925         int *piMaxNameLen) = 0;
14926 
14927 };
14928 #ifdef __CRT_UUID_DECL
14929 __CRT_UUID_DECL(IItemNameLimits, 0x1df0d7f1, 0xb267, 0x4d28, 0x8b,0x10, 0x12,0xe2,0x32,0x02,0xa5,0xc4)
14930 #endif
14931 #else
14932 typedef struct IItemNameLimitsVtbl {
14933     BEGIN_INTERFACE
14934 
14935     /*** IUnknown methods ***/
14936     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14937         IItemNameLimits *This,
14938         REFIID riid,
14939         void **ppvObject);
14940 
14941     ULONG (STDMETHODCALLTYPE *AddRef)(
14942         IItemNameLimits *This);
14943 
14944     ULONG (STDMETHODCALLTYPE *Release)(
14945         IItemNameLimits *This);
14946 
14947     /*** IItemNameLimits methods ***/
14948     HRESULT (STDMETHODCALLTYPE *GetValidCharacters)(
14949         IItemNameLimits *This,
14950         LPWSTR *ppwszValidChars,
14951         LPWSTR *ppwszInvalidChars);
14952 
14953     HRESULT (STDMETHODCALLTYPE *GetMaxLength)(
14954         IItemNameLimits *This,
14955         LPCWSTR pszName,
14956         int *piMaxNameLen);
14957 
14958     END_INTERFACE
14959 } IItemNameLimitsVtbl;
14960 
14961 interface IItemNameLimits {
14962     CONST_VTBL IItemNameLimitsVtbl* lpVtbl;
14963 };
14964 
14965 #ifdef COBJMACROS
14966 #ifndef WIDL_C_INLINE_WRAPPERS
14967 /*** IUnknown methods ***/
14968 #define IItemNameLimits_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14969 #define IItemNameLimits_AddRef(This) (This)->lpVtbl->AddRef(This)
14970 #define IItemNameLimits_Release(This) (This)->lpVtbl->Release(This)
14971 /*** IItemNameLimits methods ***/
14972 #define IItemNameLimits_GetValidCharacters(This,ppwszValidChars,ppwszInvalidChars) (This)->lpVtbl->GetValidCharacters(This,ppwszValidChars,ppwszInvalidChars)
14973 #define IItemNameLimits_GetMaxLength(This,pszName,piMaxNameLen) (This)->lpVtbl->GetMaxLength(This,pszName,piMaxNameLen)
14974 #else
14975 /*** IUnknown methods ***/
14976 static FORCEINLINE HRESULT IItemNameLimits_QueryInterface(IItemNameLimits* This,REFIID riid,void **ppvObject) {
14977     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14978 }
14979 static FORCEINLINE ULONG IItemNameLimits_AddRef(IItemNameLimits* This) {
14980     return This->lpVtbl->AddRef(This);
14981 }
14982 static FORCEINLINE ULONG IItemNameLimits_Release(IItemNameLimits* This) {
14983     return This->lpVtbl->Release(This);
14984 }
14985 /*** IItemNameLimits methods ***/
14986 static FORCEINLINE HRESULT IItemNameLimits_GetValidCharacters(IItemNameLimits* This,LPWSTR *ppwszValidChars,LPWSTR *ppwszInvalidChars) {
14987     return This->lpVtbl->GetValidCharacters(This,ppwszValidChars,ppwszInvalidChars);
14988 }
14989 static FORCEINLINE HRESULT IItemNameLimits_GetMaxLength(IItemNameLimits* This,LPCWSTR pszName,int *piMaxNameLen) {
14990     return This->lpVtbl->GetMaxLength(This,pszName,piMaxNameLen);
14991 }
14992 #endif
14993 #endif
14994 
14995 #endif
14996 
14997 
14998 #endif  /* __IItemNameLimits_INTERFACE_DEFINED__ */
14999 
15000 
15001 #if NTDDI_VERSION >= NTDDI_VISTA
15002 #ifndef __ICondition_FWD_DEFINED__
15003 #define __ICondition_FWD_DEFINED__
15004 typedef interface ICondition ICondition;
15005 #ifdef __cplusplus
15006 interface ICondition;
15007 #endif /* __cplusplus */
15008 #endif
15009 
15010 
15011 /*****************************************************************************
15012  * ISearchFolderItemFactory interface
15013  */
15014 #ifndef __ISearchFolderItemFactory_INTERFACE_DEFINED__
15015 #define __ISearchFolderItemFactory_INTERFACE_DEFINED__
15016 
15017 DEFINE_GUID(IID_ISearchFolderItemFactory, 0xa0ffbc28, 0x5482, 0x4366, 0xbe,0x27, 0x3e,0x81,0xe7,0x8e,0x06,0xc2);
15018 #if defined(__cplusplus) && !defined(CINTERFACE)
15019 MIDL_INTERFACE("a0ffbc28-5482-4366-be27-3e81e78e06c2")
15020 ISearchFolderItemFactory : public IUnknown
15021 {
15022     virtual HRESULT STDMETHODCALLTYPE SetDisplayName(
15023         LPCWSTR pszDisplayName) = 0;
15024 
15025     virtual HRESULT STDMETHODCALLTYPE SetFolderTypeID(
15026         FOLDERTYPEID ftid) = 0;
15027 
15028     virtual HRESULT STDMETHODCALLTYPE SetFolderLogicalViewMode(
15029         FOLDERLOGICALVIEWMODE flvm) = 0;
15030 
15031     virtual HRESULT STDMETHODCALLTYPE SetIconSize(
15032         int iIconSize) = 0;
15033 
15034     virtual HRESULT STDMETHODCALLTYPE SetVisibleColumns(
15035         UINT cVisibleColumns,
15036         PROPERTYKEY *rgKey) = 0;
15037 
15038     virtual HRESULT STDMETHODCALLTYPE SetSortColumns(
15039         UINT cSortColumns,
15040         SORTCOLUMN *rgSortColumns) = 0;
15041 
15042     virtual HRESULT STDMETHODCALLTYPE SetGroupColumn(
15043         REFPROPERTYKEY keyGroup) = 0;
15044 
15045     virtual HRESULT STDMETHODCALLTYPE SetStacks(
15046         UINT cStackKeys,
15047         PROPERTYKEY *rgStackKeys) = 0;
15048 
15049     virtual HRESULT STDMETHODCALLTYPE SetScope(
15050         IShellItemArray *psiaScope) = 0;
15051 
15052     virtual HRESULT STDMETHODCALLTYPE SetCondition(
15053         ICondition *pCondition) = 0;
15054 
15055     virtual HRESULT STDMETHODCALLTYPE GetShellItem(
15056         REFIID riid,
15057         void **ppv) = 0;
15058 
15059     virtual HRESULT STDMETHODCALLTYPE GetIDList(
15060         PIDLIST_ABSOLUTE *ppidl) = 0;
15061 
15062 };
15063 #ifdef __CRT_UUID_DECL
15064 __CRT_UUID_DECL(ISearchFolderItemFactory, 0xa0ffbc28, 0x5482, 0x4366, 0xbe,0x27, 0x3e,0x81,0xe7,0x8e,0x06,0xc2)
15065 #endif
15066 #else
15067 typedef struct ISearchFolderItemFactoryVtbl {
15068     BEGIN_INTERFACE
15069 
15070     /*** IUnknown methods ***/
15071     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15072         ISearchFolderItemFactory *This,
15073         REFIID riid,
15074         void **ppvObject);
15075 
15076     ULONG (STDMETHODCALLTYPE *AddRef)(
15077         ISearchFolderItemFactory *This);
15078 
15079     ULONG (STDMETHODCALLTYPE *Release)(
15080         ISearchFolderItemFactory *This);
15081 
15082     /*** ISearchFolderItemFactory methods ***/
15083     HRESULT (STDMETHODCALLTYPE *SetDisplayName)(
15084         ISearchFolderItemFactory *This,
15085         LPCWSTR pszDisplayName);
15086 
15087     HRESULT (STDMETHODCALLTYPE *SetFolderTypeID)(
15088         ISearchFolderItemFactory *This,
15089         FOLDERTYPEID ftid);
15090 
15091     HRESULT (STDMETHODCALLTYPE *SetFolderLogicalViewMode)(
15092         ISearchFolderItemFactory *This,
15093         FOLDERLOGICALVIEWMODE flvm);
15094 
15095     HRESULT (STDMETHODCALLTYPE *SetIconSize)(
15096         ISearchFolderItemFactory *This,
15097         int iIconSize);
15098 
15099     HRESULT (STDMETHODCALLTYPE *SetVisibleColumns)(
15100         ISearchFolderItemFactory *This,
15101         UINT cVisibleColumns,
15102         PROPERTYKEY *rgKey);
15103 
15104     HRESULT (STDMETHODCALLTYPE *SetSortColumns)(
15105         ISearchFolderItemFactory *This,
15106         UINT cSortColumns,
15107         SORTCOLUMN *rgSortColumns);
15108 
15109     HRESULT (STDMETHODCALLTYPE *SetGroupColumn)(
15110         ISearchFolderItemFactory *This,
15111         REFPROPERTYKEY keyGroup);
15112 
15113     HRESULT (STDMETHODCALLTYPE *SetStacks)(
15114         ISearchFolderItemFactory *This,
15115         UINT cStackKeys,
15116         PROPERTYKEY *rgStackKeys);
15117 
15118     HRESULT (STDMETHODCALLTYPE *SetScope)(
15119         ISearchFolderItemFactory *This,
15120         IShellItemArray *psiaScope);
15121 
15122     HRESULT (STDMETHODCALLTYPE *SetCondition)(
15123         ISearchFolderItemFactory *This,
15124         ICondition *pCondition);
15125 
15126     HRESULT (STDMETHODCALLTYPE *GetShellItem)(
15127         ISearchFolderItemFactory *This,
15128         REFIID riid,
15129         void **ppv);
15130 
15131     HRESULT (STDMETHODCALLTYPE *GetIDList)(
15132         ISearchFolderItemFactory *This,
15133         PIDLIST_ABSOLUTE *ppidl);
15134 
15135     END_INTERFACE
15136 } ISearchFolderItemFactoryVtbl;
15137 
15138 interface ISearchFolderItemFactory {
15139     CONST_VTBL ISearchFolderItemFactoryVtbl* lpVtbl;
15140 };
15141 
15142 #ifdef COBJMACROS
15143 #ifndef WIDL_C_INLINE_WRAPPERS
15144 /*** IUnknown methods ***/
15145 #define ISearchFolderItemFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15146 #define ISearchFolderItemFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
15147 #define ISearchFolderItemFactory_Release(This) (This)->lpVtbl->Release(This)
15148 /*** ISearchFolderItemFactory methods ***/
15149 #define ISearchFolderItemFactory_SetDisplayName(This,pszDisplayName) (This)->lpVtbl->SetDisplayName(This,pszDisplayName)
15150 #define ISearchFolderItemFactory_SetFolderTypeID(This,ftid) (This)->lpVtbl->SetFolderTypeID(This,ftid)
15151 #define ISearchFolderItemFactory_SetFolderLogicalViewMode(This,flvm) (This)->lpVtbl->SetFolderLogicalViewMode(This,flvm)
15152 #define ISearchFolderItemFactory_SetIconSize(This,iIconSize) (This)->lpVtbl->SetIconSize(This,iIconSize)
15153 #define ISearchFolderItemFactory_SetVisibleColumns(This,cVisibleColumns,rgKey) (This)->lpVtbl->SetVisibleColumns(This,cVisibleColumns,rgKey)
15154 #define ISearchFolderItemFactory_SetSortColumns(This,cSortColumns,rgSortColumns) (This)->lpVtbl->SetSortColumns(This,cSortColumns,rgSortColumns)
15155 #define ISearchFolderItemFactory_SetGroupColumn(This,keyGroup) (This)->lpVtbl->SetGroupColumn(This,keyGroup)
15156 #define ISearchFolderItemFactory_SetStacks(This,cStackKeys,rgStackKeys) (This)->lpVtbl->SetStacks(This,cStackKeys,rgStackKeys)
15157 #define ISearchFolderItemFactory_SetScope(This,psiaScope) (This)->lpVtbl->SetScope(This,psiaScope)
15158 #define ISearchFolderItemFactory_SetCondition(This,pCondition) (This)->lpVtbl->SetCondition(This,pCondition)
15159 #define ISearchFolderItemFactory_GetShellItem(This,riid,ppv) (This)->lpVtbl->GetShellItem(This,riid,ppv)
15160 #define ISearchFolderItemFactory_GetIDList(This,ppidl) (This)->lpVtbl->GetIDList(This,ppidl)
15161 #else
15162 /*** IUnknown methods ***/
15163 static FORCEINLINE HRESULT ISearchFolderItemFactory_QueryInterface(ISearchFolderItemFactory* This,REFIID riid,void **ppvObject) {
15164     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15165 }
15166 static FORCEINLINE ULONG ISearchFolderItemFactory_AddRef(ISearchFolderItemFactory* This) {
15167     return This->lpVtbl->AddRef(This);
15168 }
15169 static FORCEINLINE ULONG ISearchFolderItemFactory_Release(ISearchFolderItemFactory* This) {
15170     return This->lpVtbl->Release(This);
15171 }
15172 /*** ISearchFolderItemFactory methods ***/
15173 static FORCEINLINE HRESULT ISearchFolderItemFactory_SetDisplayName(ISearchFolderItemFactory* This,LPCWSTR pszDisplayName) {
15174     return This->lpVtbl->SetDisplayName(This,pszDisplayName);
15175 }
15176 static FORCEINLINE HRESULT ISearchFolderItemFactory_SetFolderTypeID(ISearchFolderItemFactory* This,FOLDERTYPEID ftid) {
15177     return This->lpVtbl->SetFolderTypeID(This,ftid);
15178 }
15179 static FORCEINLINE HRESULT ISearchFolderItemFactory_SetFolderLogicalViewMode(ISearchFolderItemFactory* This,FOLDERLOGICALVIEWMODE flvm) {
15180     return This->lpVtbl->SetFolderLogicalViewMode(This,flvm);
15181 }
15182 static FORCEINLINE HRESULT ISearchFolderItemFactory_SetIconSize(ISearchFolderItemFactory* This,int iIconSize) {
15183     return This->lpVtbl->SetIconSize(This,iIconSize);
15184 }
15185 static FORCEINLINE HRESULT ISearchFolderItemFactory_SetVisibleColumns(ISearchFolderItemFactory* This,UINT cVisibleColumns,PROPERTYKEY *rgKey) {
15186     return This->lpVtbl->SetVisibleColumns(This,cVisibleColumns,rgKey);
15187 }
15188 static FORCEINLINE HRESULT ISearchFolderItemFactory_SetSortColumns(ISearchFolderItemFactory* This,UINT cSortColumns,SORTCOLUMN *rgSortColumns) {
15189     return This->lpVtbl->SetSortColumns(This,cSortColumns,rgSortColumns);
15190 }
15191 static FORCEINLINE HRESULT ISearchFolderItemFactory_SetGroupColumn(ISearchFolderItemFactory* This,REFPROPERTYKEY keyGroup) {
15192     return This->lpVtbl->SetGroupColumn(This,keyGroup);
15193 }
15194 static FORCEINLINE HRESULT ISearchFolderItemFactory_SetStacks(ISearchFolderItemFactory* This,UINT cStackKeys,PROPERTYKEY *rgStackKeys) {
15195     return This->lpVtbl->SetStacks(This,cStackKeys,rgStackKeys);
15196 }
15197 static FORCEINLINE HRESULT ISearchFolderItemFactory_SetScope(ISearchFolderItemFactory* This,IShellItemArray *psiaScope) {
15198     return This->lpVtbl->SetScope(This,psiaScope);
15199 }
15200 static FORCEINLINE HRESULT ISearchFolderItemFactory_SetCondition(ISearchFolderItemFactory* This,ICondition *pCondition) {
15201     return This->lpVtbl->SetCondition(This,pCondition);
15202 }
15203 static FORCEINLINE HRESULT ISearchFolderItemFactory_GetShellItem(ISearchFolderItemFactory* This,REFIID riid,void **ppv) {
15204     return This->lpVtbl->GetShellItem(This,riid,ppv);
15205 }
15206 static FORCEINLINE HRESULT ISearchFolderItemFactory_GetIDList(ISearchFolderItemFactory* This,PIDLIST_ABSOLUTE *ppidl) {
15207     return This->lpVtbl->GetIDList(This,ppidl);
15208 }
15209 #endif
15210 #endif
15211 
15212 #endif
15213 
15214 
15215 #endif  /* __ISearchFolderItemFactory_INTERFACE_DEFINED__ */
15216 
15217 #endif
15218 
15219 #define IEI_PRIORITY_MAX ITSAT_MAX_PRIORITY
15220 #define IEI_PRIORITY_MIN ITSAT_MIN_PRIORITY
15221 #define IEIT_PRIORITY_NORMAL ITSAT_DEFAULT_PRIORITY
15222 
15223 #define IEIFLAG_ASYNC 0x0001
15224 #define IEIFLAG_CACHE 0x0002
15225 #define IEIFLAG_ASPECT 0x0004
15226 #define IEIFLAG_OFFLINE 0x0008
15227 #define IEIFLAG_GLEAM 0x0010
15228 #define IEIFLAG_SCREEN 0x0020
15229 #define IEIFLAG_ORIGSIZE 0x0040
15230 #define IEIFLAG_NOSTAMP 0x0080
15231 #define IEIFLAG_NOBORDER 0x0100
15232 #define IEIFLAG_QUALITY 0x0200
15233 #define IEIFLAG_REFRESH 0x0400
15234 
15235 /*****************************************************************************
15236  * IExtractImage interface
15237  */
15238 #ifndef __IExtractImage_INTERFACE_DEFINED__
15239 #define __IExtractImage_INTERFACE_DEFINED__
15240 
15241 DEFINE_GUID(IID_IExtractImage, 0xbb2e617c, 0x0920, 0x11d1, 0x9a,0x0b, 0x00,0xc0,0x4f,0xc2,0xd6,0xc1);
15242 #if defined(__cplusplus) && !defined(CINTERFACE)
15243 MIDL_INTERFACE("bb2e617c-0920-11d1-9a0b-00c04fc2d6c1")
15244 IExtractImage : public IUnknown
15245 {
15246     virtual HRESULT STDMETHODCALLTYPE GetLocation(
15247         LPWSTR pszPathBuffer,
15248         DWORD cch,
15249         DWORD *pdwPriority,
15250         const SIZE *prgSize,
15251         DWORD dwRecClrDepth,
15252         DWORD *pdwFlags) = 0;
15253 
15254     virtual HRESULT STDMETHODCALLTYPE Extract(
15255         HBITMAP *phBmpThumbnail) = 0;
15256 
15257 };
15258 #ifdef __CRT_UUID_DECL
15259 __CRT_UUID_DECL(IExtractImage, 0xbb2e617c, 0x0920, 0x11d1, 0x9a,0x0b, 0x00,0xc0,0x4f,0xc2,0xd6,0xc1)
15260 #endif
15261 #else
15262 typedef struct IExtractImageVtbl {
15263     BEGIN_INTERFACE
15264 
15265     /*** IUnknown methods ***/
15266     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15267         IExtractImage *This,
15268         REFIID riid,
15269         void **ppvObject);
15270 
15271     ULONG (STDMETHODCALLTYPE *AddRef)(
15272         IExtractImage *This);
15273 
15274     ULONG (STDMETHODCALLTYPE *Release)(
15275         IExtractImage *This);
15276 
15277     /*** IExtractImage methods ***/
15278     HRESULT (STDMETHODCALLTYPE *GetLocation)(
15279         IExtractImage *This,
15280         LPWSTR pszPathBuffer,
15281         DWORD cch,
15282         DWORD *pdwPriority,
15283         const SIZE *prgSize,
15284         DWORD dwRecClrDepth,
15285         DWORD *pdwFlags);
15286 
15287     HRESULT (STDMETHODCALLTYPE *Extract)(
15288         IExtractImage *This,
15289         HBITMAP *phBmpThumbnail);
15290 
15291     END_INTERFACE
15292 } IExtractImageVtbl;
15293 
15294 interface IExtractImage {
15295     CONST_VTBL IExtractImageVtbl* lpVtbl;
15296 };
15297 
15298 #ifdef COBJMACROS
15299 #ifndef WIDL_C_INLINE_WRAPPERS
15300 /*** IUnknown methods ***/
15301 #define IExtractImage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15302 #define IExtractImage_AddRef(This) (This)->lpVtbl->AddRef(This)
15303 #define IExtractImage_Release(This) (This)->lpVtbl->Release(This)
15304 /*** IExtractImage methods ***/
15305 #define IExtractImage_GetLocation(This,pszPathBuffer,cch,pdwPriority,prgSize,dwRecClrDepth,pdwFlags) (This)->lpVtbl->GetLocation(This,pszPathBuffer,cch,pdwPriority,prgSize,dwRecClrDepth,pdwFlags)
15306 #define IExtractImage_Extract(This,phBmpThumbnail) (This)->lpVtbl->Extract(This,phBmpThumbnail)
15307 #else
15308 /*** IUnknown methods ***/
15309 static FORCEINLINE HRESULT IExtractImage_QueryInterface(IExtractImage* This,REFIID riid,void **ppvObject) {
15310     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15311 }
15312 static FORCEINLINE ULONG IExtractImage_AddRef(IExtractImage* This) {
15313     return This->lpVtbl->AddRef(This);
15314 }
15315 static FORCEINLINE ULONG IExtractImage_Release(IExtractImage* This) {
15316     return This->lpVtbl->Release(This);
15317 }
15318 /*** IExtractImage methods ***/
15319 static FORCEINLINE HRESULT IExtractImage_GetLocation(IExtractImage* This,LPWSTR pszPathBuffer,DWORD cch,DWORD *pdwPriority,const SIZE *prgSize,DWORD dwRecClrDepth,DWORD *pdwFlags) {
15320     return This->lpVtbl->GetLocation(This,pszPathBuffer,cch,pdwPriority,prgSize,dwRecClrDepth,pdwFlags);
15321 }
15322 static FORCEINLINE HRESULT IExtractImage_Extract(IExtractImage* This,HBITMAP *phBmpThumbnail) {
15323     return This->lpVtbl->Extract(This,phBmpThumbnail);
15324 }
15325 #endif
15326 #endif
15327 
15328 #endif
15329 
15330 
15331 #endif  /* __IExtractImage_INTERFACE_DEFINED__ */
15332 
15333 typedef IExtractImage *LPEXTRACTIMAGE;
15334 
15335 /*****************************************************************************
15336  * IExtractImage2 interface
15337  */
15338 #ifndef __IExtractImage2_INTERFACE_DEFINED__
15339 #define __IExtractImage2_INTERFACE_DEFINED__
15340 
15341 DEFINE_GUID(IID_IExtractImage2, 0x953bb1ee, 0x93b4, 0x11d1, 0x98,0xa3, 0x00,0xc0,0x4f,0xb6,0x87,0xda);
15342 #if defined(__cplusplus) && !defined(CINTERFACE)
15343 MIDL_INTERFACE("953bb1ee-93b4-11d1-98a3-00c04fb687da")
15344 IExtractImage2 : public IExtractImage
15345 {
15346     virtual HRESULT STDMETHODCALLTYPE GetDateStamp(
15347         FILETIME *pDateStamp) = 0;
15348 
15349 };
15350 #ifdef __CRT_UUID_DECL
15351 __CRT_UUID_DECL(IExtractImage2, 0x953bb1ee, 0x93b4, 0x11d1, 0x98,0xa3, 0x00,0xc0,0x4f,0xb6,0x87,0xda)
15352 #endif
15353 #else
15354 typedef struct IExtractImage2Vtbl {
15355     BEGIN_INTERFACE
15356 
15357     /*** IUnknown methods ***/
15358     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15359         IExtractImage2 *This,
15360         REFIID riid,
15361         void **ppvObject);
15362 
15363     ULONG (STDMETHODCALLTYPE *AddRef)(
15364         IExtractImage2 *This);
15365 
15366     ULONG (STDMETHODCALLTYPE *Release)(
15367         IExtractImage2 *This);
15368 
15369     /*** IExtractImage methods ***/
15370     HRESULT (STDMETHODCALLTYPE *GetLocation)(
15371         IExtractImage2 *This,
15372         LPWSTR pszPathBuffer,
15373         DWORD cch,
15374         DWORD *pdwPriority,
15375         const SIZE *prgSize,
15376         DWORD dwRecClrDepth,
15377         DWORD *pdwFlags);
15378 
15379     HRESULT (STDMETHODCALLTYPE *Extract)(
15380         IExtractImage2 *This,
15381         HBITMAP *phBmpThumbnail);
15382 
15383     /*** IExtractImage2 methods ***/
15384     HRESULT (STDMETHODCALLTYPE *GetDateStamp)(
15385         IExtractImage2 *This,
15386         FILETIME *pDateStamp);
15387 
15388     END_INTERFACE
15389 } IExtractImage2Vtbl;
15390 
15391 interface IExtractImage2 {
15392     CONST_VTBL IExtractImage2Vtbl* lpVtbl;
15393 };
15394 
15395 #ifdef COBJMACROS
15396 #ifndef WIDL_C_INLINE_WRAPPERS
15397 /*** IUnknown methods ***/
15398 #define IExtractImage2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15399 #define IExtractImage2_AddRef(This) (This)->lpVtbl->AddRef(This)
15400 #define IExtractImage2_Release(This) (This)->lpVtbl->Release(This)
15401 /*** IExtractImage methods ***/
15402 #define IExtractImage2_GetLocation(This,pszPathBuffer,cch,pdwPriority,prgSize,dwRecClrDepth,pdwFlags) (This)->lpVtbl->GetLocation(This,pszPathBuffer,cch,pdwPriority,prgSize,dwRecClrDepth,pdwFlags)
15403 #define IExtractImage2_Extract(This,phBmpThumbnail) (This)->lpVtbl->Extract(This,phBmpThumbnail)
15404 /*** IExtractImage2 methods ***/
15405 #define IExtractImage2_GetDateStamp(This,pDateStamp) (This)->lpVtbl->GetDateStamp(This,pDateStamp)
15406 #else
15407 /*** IUnknown methods ***/
15408 static FORCEINLINE HRESULT IExtractImage2_QueryInterface(IExtractImage2* This,REFIID riid,void **ppvObject) {
15409     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15410 }
15411 static FORCEINLINE ULONG IExtractImage2_AddRef(IExtractImage2* This) {
15412     return This->lpVtbl->AddRef(This);
15413 }
15414 static FORCEINLINE ULONG IExtractImage2_Release(IExtractImage2* This) {
15415     return This->lpVtbl->Release(This);
15416 }
15417 /*** IExtractImage methods ***/
15418 static FORCEINLINE HRESULT IExtractImage2_GetLocation(IExtractImage2* This,LPWSTR pszPathBuffer,DWORD cch,DWORD *pdwPriority,const SIZE *prgSize,DWORD dwRecClrDepth,DWORD *pdwFlags) {
15419     return This->lpVtbl->GetLocation(This,pszPathBuffer,cch,pdwPriority,prgSize,dwRecClrDepth,pdwFlags);
15420 }
15421 static FORCEINLINE HRESULT IExtractImage2_Extract(IExtractImage2* This,HBITMAP *phBmpThumbnail) {
15422     return This->lpVtbl->Extract(This,phBmpThumbnail);
15423 }
15424 /*** IExtractImage2 methods ***/
15425 static FORCEINLINE HRESULT IExtractImage2_GetDateStamp(IExtractImage2* This,FILETIME *pDateStamp) {
15426     return This->lpVtbl->GetDateStamp(This,pDateStamp);
15427 }
15428 #endif
15429 #endif
15430 
15431 #endif
15432 
15433 
15434 #endif  /* __IExtractImage2_INTERFACE_DEFINED__ */
15435 
15436 typedef IExtractImage2 *LPEXTRACTIMAGE2;
15437 
15438 /*****************************************************************************
15439  * IThumbnailHandlerFactory interface
15440  */
15441 #ifndef __IThumbnailHandlerFactory_INTERFACE_DEFINED__
15442 #define __IThumbnailHandlerFactory_INTERFACE_DEFINED__
15443 
15444 DEFINE_GUID(IID_IThumbnailHandlerFactory, 0xe35b4b2e, 0x00da, 0x4bc1, 0x9f,0x13, 0x38,0xbc,0x11,0xf5,0xd4,0x17);
15445 #if defined(__cplusplus) && !defined(CINTERFACE)
15446 MIDL_INTERFACE("e35b4b2e-00da-4bc1-9f13-38bc11f5d417")
15447 IThumbnailHandlerFactory : public IUnknown
15448 {
15449     virtual HRESULT STDMETHODCALLTYPE GetThumbnailHandler(
15450         PCUITEMID_CHILD pidlChild,
15451         IBindCtx *pbc,
15452         REFIID riid,
15453         void **ppv) = 0;
15454 
15455 };
15456 #ifdef __CRT_UUID_DECL
15457 __CRT_UUID_DECL(IThumbnailHandlerFactory, 0xe35b4b2e, 0x00da, 0x4bc1, 0x9f,0x13, 0x38,0xbc,0x11,0xf5,0xd4,0x17)
15458 #endif
15459 #else
15460 typedef struct IThumbnailHandlerFactoryVtbl {
15461     BEGIN_INTERFACE
15462 
15463     /*** IUnknown methods ***/
15464     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15465         IThumbnailHandlerFactory *This,
15466         REFIID riid,
15467         void **ppvObject);
15468 
15469     ULONG (STDMETHODCALLTYPE *AddRef)(
15470         IThumbnailHandlerFactory *This);
15471 
15472     ULONG (STDMETHODCALLTYPE *Release)(
15473         IThumbnailHandlerFactory *This);
15474 
15475     /*** IThumbnailHandlerFactory methods ***/
15476     HRESULT (STDMETHODCALLTYPE *GetThumbnailHandler)(
15477         IThumbnailHandlerFactory *This,
15478         PCUITEMID_CHILD pidlChild,
15479         IBindCtx *pbc,
15480         REFIID riid,
15481         void **ppv);
15482 
15483     END_INTERFACE
15484 } IThumbnailHandlerFactoryVtbl;
15485 
15486 interface IThumbnailHandlerFactory {
15487     CONST_VTBL IThumbnailHandlerFactoryVtbl* lpVtbl;
15488 };
15489 
15490 #ifdef COBJMACROS
15491 #ifndef WIDL_C_INLINE_WRAPPERS
15492 /*** IUnknown methods ***/
15493 #define IThumbnailHandlerFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15494 #define IThumbnailHandlerFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
15495 #define IThumbnailHandlerFactory_Release(This) (This)->lpVtbl->Release(This)
15496 /*** IThumbnailHandlerFactory methods ***/
15497 #define IThumbnailHandlerFactory_GetThumbnailHandler(This,pidlChild,pbc,riid,ppv) (This)->lpVtbl->GetThumbnailHandler(This,pidlChild,pbc,riid,ppv)
15498 #else
15499 /*** IUnknown methods ***/
15500 static FORCEINLINE HRESULT IThumbnailHandlerFactory_QueryInterface(IThumbnailHandlerFactory* This,REFIID riid,void **ppvObject) {
15501     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15502 }
15503 static FORCEINLINE ULONG IThumbnailHandlerFactory_AddRef(IThumbnailHandlerFactory* This) {
15504     return This->lpVtbl->AddRef(This);
15505 }
15506 static FORCEINLINE ULONG IThumbnailHandlerFactory_Release(IThumbnailHandlerFactory* This) {
15507     return This->lpVtbl->Release(This);
15508 }
15509 /*** IThumbnailHandlerFactory methods ***/
15510 static FORCEINLINE HRESULT IThumbnailHandlerFactory_GetThumbnailHandler(IThumbnailHandlerFactory* This,PCUITEMID_CHILD pidlChild,IBindCtx *pbc,REFIID riid,void **ppv) {
15511     return This->lpVtbl->GetThumbnailHandler(This,pidlChild,pbc,riid,ppv);
15512 }
15513 #endif
15514 #endif
15515 
15516 #endif
15517 
15518 
15519 #endif  /* __IThumbnailHandlerFactory_INTERFACE_DEFINED__ */
15520 
15521 
15522 /*****************************************************************************
15523  * IParentAndItem interface
15524  */
15525 #ifndef __IParentAndItem_INTERFACE_DEFINED__
15526 #define __IParentAndItem_INTERFACE_DEFINED__
15527 
15528 DEFINE_GUID(IID_IParentAndItem, 0xb3a4b685, 0xb685, 0x4805, 0x99,0xd9, 0x5d,0xea,0xd2,0x87,0x32,0x36);
15529 #if defined(__cplusplus) && !defined(CINTERFACE)
15530 MIDL_INTERFACE("b3a4b685-b685-4805-99d9-5dead2873236")
15531 IParentAndItem : public IUnknown
15532 {
15533     virtual HRESULT STDMETHODCALLTYPE SetParentAndItem(
15534         PCIDLIST_ABSOLUTE pidlParent,
15535         IShellFolder *psf,
15536         PCUITEMID_CHILD pidlChild) = 0;
15537 
15538     virtual HRESULT STDMETHODCALLTYPE GetParentAndItem(
15539         PIDLIST_ABSOLUTE *ppidlParent,
15540         IShellFolder **ppsf,
15541         PITEMID_CHILD *ppidlChild) = 0;
15542 
15543 };
15544 #ifdef __CRT_UUID_DECL
15545 __CRT_UUID_DECL(IParentAndItem, 0xb3a4b685, 0xb685, 0x4805, 0x99,0xd9, 0x5d,0xea,0xd2,0x87,0x32,0x36)
15546 #endif
15547 #else
15548 typedef struct IParentAndItemVtbl {
15549     BEGIN_INTERFACE
15550 
15551     /*** IUnknown methods ***/
15552     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15553         IParentAndItem *This,
15554         REFIID riid,
15555         void **ppvObject);
15556 
15557     ULONG (STDMETHODCALLTYPE *AddRef)(
15558         IParentAndItem *This);
15559 
15560     ULONG (STDMETHODCALLTYPE *Release)(
15561         IParentAndItem *This);
15562 
15563     /*** IParentAndItem methods ***/
15564     HRESULT (STDMETHODCALLTYPE *SetParentAndItem)(
15565         IParentAndItem *This,
15566         PCIDLIST_ABSOLUTE pidlParent,
15567         IShellFolder *psf,
15568         PCUITEMID_CHILD pidlChild);
15569 
15570     HRESULT (STDMETHODCALLTYPE *GetParentAndItem)(
15571         IParentAndItem *This,
15572         PIDLIST_ABSOLUTE *ppidlParent,
15573         IShellFolder **ppsf,
15574         PITEMID_CHILD *ppidlChild);
15575 
15576     END_INTERFACE
15577 } IParentAndItemVtbl;
15578 
15579 interface IParentAndItem {
15580     CONST_VTBL IParentAndItemVtbl* lpVtbl;
15581 };
15582 
15583 #ifdef COBJMACROS
15584 #ifndef WIDL_C_INLINE_WRAPPERS
15585 /*** IUnknown methods ***/
15586 #define IParentAndItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15587 #define IParentAndItem_AddRef(This) (This)->lpVtbl->AddRef(This)
15588 #define IParentAndItem_Release(This) (This)->lpVtbl->Release(This)
15589 /*** IParentAndItem methods ***/
15590 #define IParentAndItem_SetParentAndItem(This,pidlParent,psf,pidlChild) (This)->lpVtbl->SetParentAndItem(This,pidlParent,psf,pidlChild)
15591 #define IParentAndItem_GetParentAndItem(This,ppidlParent,ppsf,ppidlChild) (This)->lpVtbl->GetParentAndItem(This,ppidlParent,ppsf,ppidlChild)
15592 #else
15593 /*** IUnknown methods ***/
15594 static FORCEINLINE HRESULT IParentAndItem_QueryInterface(IParentAndItem* This,REFIID riid,void **ppvObject) {
15595     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15596 }
15597 static FORCEINLINE ULONG IParentAndItem_AddRef(IParentAndItem* This) {
15598     return This->lpVtbl->AddRef(This);
15599 }
15600 static FORCEINLINE ULONG IParentAndItem_Release(IParentAndItem* This) {
15601     return This->lpVtbl->Release(This);
15602 }
15603 /*** IParentAndItem methods ***/
15604 static FORCEINLINE HRESULT IParentAndItem_SetParentAndItem(IParentAndItem* This,PCIDLIST_ABSOLUTE pidlParent,IShellFolder *psf,PCUITEMID_CHILD pidlChild) {
15605     return This->lpVtbl->SetParentAndItem(This,pidlParent,psf,pidlChild);
15606 }
15607 static FORCEINLINE HRESULT IParentAndItem_GetParentAndItem(IParentAndItem* This,PIDLIST_ABSOLUTE *ppidlParent,IShellFolder **ppsf,PITEMID_CHILD *ppidlChild) {
15608     return This->lpVtbl->GetParentAndItem(This,ppidlParent,ppsf,ppidlChild);
15609 }
15610 #endif
15611 #endif
15612 
15613 #endif
15614 
15615 HRESULT STDMETHODCALLTYPE IParentAndItem_RemoteGetParentAndItem_Proxy(
15616     IParentAndItem* This,
15617     PIDLIST_ABSOLUTE *ppidlParent,
15618     IShellFolder **ppsf,
15619     PITEMID_CHILD *ppidlChild);
15620 void __RPC_STUB IParentAndItem_RemoteGetParentAndItem_Stub(
15621     IRpcStubBuffer* This,
15622     IRpcChannelBuffer* pRpcChannelBuffer,
15623     PRPC_MESSAGE pRpcMessage,
15624     DWORD* pdwStubPhase);
15625 HRESULT CALLBACK IParentAndItem_GetParentAndItem_Proxy(
15626     IParentAndItem* This,
15627     PIDLIST_ABSOLUTE *ppidlParent,
15628     IShellFolder **ppsf,
15629     PITEMID_CHILD *ppidlChild);
15630 HRESULT __RPC_STUB IParentAndItem_GetParentAndItem_Stub(
15631     IParentAndItem* This,
15632     PIDLIST_ABSOLUTE *ppidlParent,
15633     IShellFolder **ppsf,
15634     PITEMID_CHILD *ppidlChild);
15635 
15636 #endif  /* __IParentAndItem_INTERFACE_DEFINED__ */
15637 
15638 
15639 /*****************************************************************************
15640  * IDockingWindow interface
15641  */
15642 #ifndef __IDockingWindow_INTERFACE_DEFINED__
15643 #define __IDockingWindow_INTERFACE_DEFINED__
15644 
15645 DEFINE_GUID(IID_IDockingWindow, 0x012dd920, 0x7b26, 0x11d0, 0x8c,0xa9, 0x00,0xa0,0xc9,0x2d,0xbf,0xe8);
15646 #if defined(__cplusplus) && !defined(CINTERFACE)
15647 MIDL_INTERFACE("012dd920-7b26-11d0-8ca9-00a0c92dbfe8")
15648 IDockingWindow : public IOleWindow
15649 {
15650     virtual HRESULT STDMETHODCALLTYPE ShowDW(
15651         WINBOOL fShow) = 0;
15652 
15653     virtual HRESULT STDMETHODCALLTYPE CloseDW(
15654         DWORD dwReserved) = 0;
15655 
15656     virtual HRESULT STDMETHODCALLTYPE ResizeBorderDW(
15657         LPCRECT prcBorder,
15658         IUnknown *punkToolbarSite,
15659         WINBOOL fReserved) = 0;
15660 
15661 };
15662 #ifdef __CRT_UUID_DECL
15663 __CRT_UUID_DECL(IDockingWindow, 0x012dd920, 0x7b26, 0x11d0, 0x8c,0xa9, 0x00,0xa0,0xc9,0x2d,0xbf,0xe8)
15664 #endif
15665 #else
15666 typedef struct IDockingWindowVtbl {
15667     BEGIN_INTERFACE
15668 
15669     /*** IUnknown methods ***/
15670     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15671         IDockingWindow *This,
15672         REFIID riid,
15673         void **ppvObject);
15674 
15675     ULONG (STDMETHODCALLTYPE *AddRef)(
15676         IDockingWindow *This);
15677 
15678     ULONG (STDMETHODCALLTYPE *Release)(
15679         IDockingWindow *This);
15680 
15681     /*** IOleWindow methods ***/
15682     HRESULT (STDMETHODCALLTYPE *GetWindow)(
15683         IDockingWindow *This,
15684         HWND *phwnd);
15685 
15686     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
15687         IDockingWindow *This,
15688         WINBOOL fEnterMode);
15689 
15690     /*** IDockingWindow methods ***/
15691     HRESULT (STDMETHODCALLTYPE *ShowDW)(
15692         IDockingWindow *This,
15693         WINBOOL fShow);
15694 
15695     HRESULT (STDMETHODCALLTYPE *CloseDW)(
15696         IDockingWindow *This,
15697         DWORD dwReserved);
15698 
15699     HRESULT (STDMETHODCALLTYPE *ResizeBorderDW)(
15700         IDockingWindow *This,
15701         LPCRECT prcBorder,
15702         IUnknown *punkToolbarSite,
15703         WINBOOL fReserved);
15704 
15705     END_INTERFACE
15706 } IDockingWindowVtbl;
15707 
15708 interface IDockingWindow {
15709     CONST_VTBL IDockingWindowVtbl* lpVtbl;
15710 };
15711 
15712 #ifdef COBJMACROS
15713 #ifndef WIDL_C_INLINE_WRAPPERS
15714 /*** IUnknown methods ***/
15715 #define IDockingWindow_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15716 #define IDockingWindow_AddRef(This) (This)->lpVtbl->AddRef(This)
15717 #define IDockingWindow_Release(This) (This)->lpVtbl->Release(This)
15718 /*** IOleWindow methods ***/
15719 #define IDockingWindow_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
15720 #define IDockingWindow_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
15721 /*** IDockingWindow methods ***/
15722 #define IDockingWindow_ShowDW(This,fShow) (This)->lpVtbl->ShowDW(This,fShow)
15723 #define IDockingWindow_CloseDW(This,dwReserved) (This)->lpVtbl->CloseDW(This,dwReserved)
15724 #define IDockingWindow_ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved) (This)->lpVtbl->ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved)
15725 #else
15726 /*** IUnknown methods ***/
15727 static FORCEINLINE HRESULT IDockingWindow_QueryInterface(IDockingWindow* This,REFIID riid,void **ppvObject) {
15728     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15729 }
15730 static FORCEINLINE ULONG IDockingWindow_AddRef(IDockingWindow* This) {
15731     return This->lpVtbl->AddRef(This);
15732 }
15733 static FORCEINLINE ULONG IDockingWindow_Release(IDockingWindow* This) {
15734     return This->lpVtbl->Release(This);
15735 }
15736 /*** IOleWindow methods ***/
15737 static FORCEINLINE HRESULT IDockingWindow_GetWindow(IDockingWindow* This,HWND *phwnd) {
15738     return This->lpVtbl->GetWindow(This,phwnd);
15739 }
15740 static FORCEINLINE HRESULT IDockingWindow_ContextSensitiveHelp(IDockingWindow* This,WINBOOL fEnterMode) {
15741     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
15742 }
15743 /*** IDockingWindow methods ***/
15744 static FORCEINLINE HRESULT IDockingWindow_ShowDW(IDockingWindow* This,WINBOOL fShow) {
15745     return This->lpVtbl->ShowDW(This,fShow);
15746 }
15747 static FORCEINLINE HRESULT IDockingWindow_CloseDW(IDockingWindow* This,DWORD dwReserved) {
15748     return This->lpVtbl->CloseDW(This,dwReserved);
15749 }
15750 static FORCEINLINE HRESULT IDockingWindow_ResizeBorderDW(IDockingWindow* This,LPCRECT prcBorder,IUnknown *punkToolbarSite,WINBOOL fReserved) {
15751     return This->lpVtbl->ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved);
15752 }
15753 #endif
15754 #endif
15755 
15756 #endif
15757 
15758 
15759 #endif  /* __IDockingWindow_INTERFACE_DEFINED__ */
15760 
15761 
15762 #define DBIM_MINSIZE 0x0001
15763 #define DBIM_MAXSIZE 0x0002
15764 #define DBIM_INTEGRAL 0x0004
15765 #define DBIM_ACTUAL 0x0008
15766 #define DBIM_TITLE 0x0010
15767 #define DBIM_MODEFLAGS 0x0020
15768 #define DBIM_BKCOLOR 0x0040
15769 
15770 #include <pshpack8.h>
15771 typedef struct DESKBANDINFO {
15772     DWORD dwMask;
15773     POINTL ptMinSize;
15774     POINTL ptMaxSize;
15775     POINTL ptIntegral;
15776     POINTL ptActual;
15777     WCHAR wszTitle[256];
15778     DWORD dwModeFlags;
15779     COLORREF crBkgnd;
15780 } DESKBANDINFO;
15781 #include <poppack.h>
15782 
15783 #define DBIMF_NORMAL 0x0000
15784 #define DBIMF_FIXED 0x0001
15785 #define DBIMF_FIXEDBMP 0x0004
15786 #define DBIMF_VARIABLEHEIGHT 0x0008
15787 #define DBIMF_UNDELETEABLE 0x0010
15788 #define DBIMF_DEBOSSED 0x0020
15789 #define DBIMF_BKCOLOR 0x0040
15790 #define DBIMF_USECHEVRON 0x0080
15791 #define DBIMF_BREAK 0x0100
15792 #define DBIMF_ADDTOFRONT 0x0200
15793 #define DBIMF_TOPALIGN 0x0400
15794 #if NTDDI_VERSION >= NTDDI_VISTA
15795 #define DBIMF_NOGRIPPER 0x0800
15796 #define DBIMF_ALWAYSGRIPPER 0x1000
15797 #define DBIMF_NOMARGINS 0x2000
15798 #endif
15799 
15800 #define DBIF_VIEWMODE_NORMAL 0x0000
15801 #define DBIF_VIEWMODE_VERTICAL 0x0001
15802 #define DBIF_VIEWMODE_FLOATING 0x0002
15803 #define DBIF_VIEWMODE_TRANSPARENT 0x0004
15804 
15805 enum tagDESKBANDCID {
15806     DBID_BANDINFOCHANGED = 0,
15807     DBID_SHOWONLY = 1,
15808     DBID_MAXIMIZEBAND = 2,
15809     DBID_PUSHCHEVRON = 3,
15810     DBID_DELAYINIT = 4,
15811     DBID_FINISHINIT = 5,
15812     DBID_SETWINDOWTHEME = 6,
15813     DBID_PERMITAUTOHIDE = 7
15814 };
15815 
15816 #define DBPC_SELECTFIRST    (DWORD)-1
15817 #define DBPC_SELECTLAST     (DWORD)-2
15818 
15819 #define CGID_DeskBand IID_IDeskBand
15820 
15821 /*****************************************************************************
15822  * IDeskBand interface
15823  */
15824 #ifndef __IDeskBand_INTERFACE_DEFINED__
15825 #define __IDeskBand_INTERFACE_DEFINED__
15826 
15827 DEFINE_GUID(IID_IDeskBand, 0xeb0fe172, 0x1a3a, 0x11d0, 0x89,0xb3, 0x00,0xa0,0xc9,0x0a,0x90,0xac);
15828 #if defined(__cplusplus) && !defined(CINTERFACE)
15829 MIDL_INTERFACE("eb0fe172-1a3a-11d0-89b3-00a0c90a90ac")
15830 IDeskBand : public IDockingWindow
15831 {
15832     virtual HRESULT STDMETHODCALLTYPE GetBandInfo(
15833         DWORD dwBandID,
15834         DWORD dwViewMode,
15835         DESKBANDINFO *pdbi) = 0;
15836 
15837 };
15838 #ifdef __CRT_UUID_DECL
15839 __CRT_UUID_DECL(IDeskBand, 0xeb0fe172, 0x1a3a, 0x11d0, 0x89,0xb3, 0x00,0xa0,0xc9,0x0a,0x90,0xac)
15840 #endif
15841 #else
15842 typedef struct IDeskBandVtbl {
15843     BEGIN_INTERFACE
15844 
15845     /*** IUnknown methods ***/
15846     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15847         IDeskBand *This,
15848         REFIID riid,
15849         void **ppvObject);
15850 
15851     ULONG (STDMETHODCALLTYPE *AddRef)(
15852         IDeskBand *This);
15853 
15854     ULONG (STDMETHODCALLTYPE *Release)(
15855         IDeskBand *This);
15856 
15857     /*** IOleWindow methods ***/
15858     HRESULT (STDMETHODCALLTYPE *GetWindow)(
15859         IDeskBand *This,
15860         HWND *phwnd);
15861 
15862     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
15863         IDeskBand *This,
15864         WINBOOL fEnterMode);
15865 
15866     /*** IDockingWindow methods ***/
15867     HRESULT (STDMETHODCALLTYPE *ShowDW)(
15868         IDeskBand *This,
15869         WINBOOL fShow);
15870 
15871     HRESULT (STDMETHODCALLTYPE *CloseDW)(
15872         IDeskBand *This,
15873         DWORD dwReserved);
15874 
15875     HRESULT (STDMETHODCALLTYPE *ResizeBorderDW)(
15876         IDeskBand *This,
15877         LPCRECT prcBorder,
15878         IUnknown *punkToolbarSite,
15879         WINBOOL fReserved);
15880 
15881     /*** IDeskBand methods ***/
15882     HRESULT (STDMETHODCALLTYPE *GetBandInfo)(
15883         IDeskBand *This,
15884         DWORD dwBandID,
15885         DWORD dwViewMode,
15886         DESKBANDINFO *pdbi);
15887 
15888     END_INTERFACE
15889 } IDeskBandVtbl;
15890 
15891 interface IDeskBand {
15892     CONST_VTBL IDeskBandVtbl* lpVtbl;
15893 };
15894 
15895 #ifdef COBJMACROS
15896 #ifndef WIDL_C_INLINE_WRAPPERS
15897 /*** IUnknown methods ***/
15898 #define IDeskBand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15899 #define IDeskBand_AddRef(This) (This)->lpVtbl->AddRef(This)
15900 #define IDeskBand_Release(This) (This)->lpVtbl->Release(This)
15901 /*** IOleWindow methods ***/
15902 #define IDeskBand_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
15903 #define IDeskBand_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
15904 /*** IDockingWindow methods ***/
15905 #define IDeskBand_ShowDW(This,fShow) (This)->lpVtbl->ShowDW(This,fShow)
15906 #define IDeskBand_CloseDW(This,dwReserved) (This)->lpVtbl->CloseDW(This,dwReserved)
15907 #define IDeskBand_ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved) (This)->lpVtbl->ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved)
15908 /*** IDeskBand methods ***/
15909 #define IDeskBand_GetBandInfo(This,dwBandID,dwViewMode,pdbi) (This)->lpVtbl->GetBandInfo(This,dwBandID,dwViewMode,pdbi)
15910 #else
15911 /*** IUnknown methods ***/
15912 static FORCEINLINE HRESULT IDeskBand_QueryInterface(IDeskBand* This,REFIID riid,void **ppvObject) {
15913     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15914 }
15915 static FORCEINLINE ULONG IDeskBand_AddRef(IDeskBand* This) {
15916     return This->lpVtbl->AddRef(This);
15917 }
15918 static FORCEINLINE ULONG IDeskBand_Release(IDeskBand* This) {
15919     return This->lpVtbl->Release(This);
15920 }
15921 /*** IOleWindow methods ***/
15922 static FORCEINLINE HRESULT IDeskBand_GetWindow(IDeskBand* This,HWND *phwnd) {
15923     return This->lpVtbl->GetWindow(This,phwnd);
15924 }
15925 static FORCEINLINE HRESULT IDeskBand_ContextSensitiveHelp(IDeskBand* This,WINBOOL fEnterMode) {
15926     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
15927 }
15928 /*** IDockingWindow methods ***/
15929 static FORCEINLINE HRESULT IDeskBand_ShowDW(IDeskBand* This,WINBOOL fShow) {
15930     return This->lpVtbl->ShowDW(This,fShow);
15931 }
15932 static FORCEINLINE HRESULT IDeskBand_CloseDW(IDeskBand* This,DWORD dwReserved) {
15933     return This->lpVtbl->CloseDW(This,dwReserved);
15934 }
15935 static FORCEINLINE HRESULT IDeskBand_ResizeBorderDW(IDeskBand* This,LPCRECT prcBorder,IUnknown *punkToolbarSite,WINBOOL fReserved) {
15936     return This->lpVtbl->ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved);
15937 }
15938 /*** IDeskBand methods ***/
15939 static FORCEINLINE HRESULT IDeskBand_GetBandInfo(IDeskBand* This,DWORD dwBandID,DWORD dwViewMode,DESKBANDINFO *pdbi) {
15940     return This->lpVtbl->GetBandInfo(This,dwBandID,dwViewMode,pdbi);
15941 }
15942 #endif
15943 #endif
15944 
15945 #endif
15946 
15947 
15948 #endif  /* __IDeskBand_INTERFACE_DEFINED__ */
15949 
15950 
15951 #if NTDDI_VERSION >= NTDDI_VISTA
15952 /*****************************************************************************
15953  * IDeskBandInfo interface
15954  */
15955 #ifndef __IDeskBandInfo_INTERFACE_DEFINED__
15956 #define __IDeskBandInfo_INTERFACE_DEFINED__
15957 
15958 DEFINE_GUID(IID_IDeskBandInfo, 0x77e425fc, 0xcbf9, 0x4307, 0xba,0x6a, 0xbb,0x57,0x27,0x74,0x56,0x61);
15959 #if defined(__cplusplus) && !defined(CINTERFACE)
15960 MIDL_INTERFACE("77e425fc-cbf9-4307-ba6a-bb5727745661")
15961 IDeskBandInfo : public IUnknown
15962 {
15963     virtual HRESULT STDMETHODCALLTYPE GetDefaultBandWidth(
15964         DWORD dwBandID,
15965         DWORD dwViewMode,
15966         int *pnWidth) = 0;
15967 
15968 };
15969 #ifdef __CRT_UUID_DECL
15970 __CRT_UUID_DECL(IDeskBandInfo, 0x77e425fc, 0xcbf9, 0x4307, 0xba,0x6a, 0xbb,0x57,0x27,0x74,0x56,0x61)
15971 #endif
15972 #else
15973 typedef struct IDeskBandInfoVtbl {
15974     BEGIN_INTERFACE
15975 
15976     /*** IUnknown methods ***/
15977     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15978         IDeskBandInfo *This,
15979         REFIID riid,
15980         void **ppvObject);
15981 
15982     ULONG (STDMETHODCALLTYPE *AddRef)(
15983         IDeskBandInfo *This);
15984 
15985     ULONG (STDMETHODCALLTYPE *Release)(
15986         IDeskBandInfo *This);
15987 
15988     /*** IDeskBandInfo methods ***/
15989     HRESULT (STDMETHODCALLTYPE *GetDefaultBandWidth)(
15990         IDeskBandInfo *This,
15991         DWORD dwBandID,
15992         DWORD dwViewMode,
15993         int *pnWidth);
15994 
15995     END_INTERFACE
15996 } IDeskBandInfoVtbl;
15997 
15998 interface IDeskBandInfo {
15999     CONST_VTBL IDeskBandInfoVtbl* lpVtbl;
16000 };
16001 
16002 #ifdef COBJMACROS
16003 #ifndef WIDL_C_INLINE_WRAPPERS
16004 /*** IUnknown methods ***/
16005 #define IDeskBandInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16006 #define IDeskBandInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
16007 #define IDeskBandInfo_Release(This) (This)->lpVtbl->Release(This)
16008 /*** IDeskBandInfo methods ***/
16009 #define IDeskBandInfo_GetDefaultBandWidth(This,dwBandID,dwViewMode,pnWidth) (This)->lpVtbl->GetDefaultBandWidth(This,dwBandID,dwViewMode,pnWidth)
16010 #else
16011 /*** IUnknown methods ***/
16012 static FORCEINLINE HRESULT IDeskBandInfo_QueryInterface(IDeskBandInfo* This,REFIID riid,void **ppvObject) {
16013     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16014 }
16015 static FORCEINLINE ULONG IDeskBandInfo_AddRef(IDeskBandInfo* This) {
16016     return This->lpVtbl->AddRef(This);
16017 }
16018 static FORCEINLINE ULONG IDeskBandInfo_Release(IDeskBandInfo* This) {
16019     return This->lpVtbl->Release(This);
16020 }
16021 /*** IDeskBandInfo methods ***/
16022 static FORCEINLINE HRESULT IDeskBandInfo_GetDefaultBandWidth(IDeskBandInfo* This,DWORD dwBandID,DWORD dwViewMode,int *pnWidth) {
16023     return This->lpVtbl->GetDefaultBandWidth(This,dwBandID,dwViewMode,pnWidth);
16024 }
16025 #endif
16026 #endif
16027 
16028 #endif
16029 
16030 
16031 #endif  /* __IDeskBandInfo_INTERFACE_DEFINED__ */
16032 
16033 
16034 /*****************************************************************************
16035  * IDeskBand2 interface
16036  */
16037 #ifndef __IDeskBand2_INTERFACE_DEFINED__
16038 #define __IDeskBand2_INTERFACE_DEFINED__
16039 
16040 DEFINE_GUID(IID_IDeskBand2, 0x79d16de4, 0xabee, 0x4021, 0x8d,0x9d, 0x91,0x69,0xb2,0x61,0xd6,0x57);
16041 #if defined(__cplusplus) && !defined(CINTERFACE)
16042 MIDL_INTERFACE("79d16de4-abee-4021-8d9d-9169b261d657")
16043 IDeskBand2 : public IDeskBand
16044 {
16045     virtual HRESULT STDMETHODCALLTYPE CanRenderComposited(
16046         WINBOOL *pfCanRenderComposited) = 0;
16047 
16048     virtual HRESULT STDMETHODCALLTYPE SetCompositionState(
16049         WINBOOL fCompositionEnabled) = 0;
16050 
16051     virtual HRESULT STDMETHODCALLTYPE GetCompositionState(
16052         WINBOOL *pfCompositionEnabled) = 0;
16053 
16054 };
16055 #ifdef __CRT_UUID_DECL
16056 __CRT_UUID_DECL(IDeskBand2, 0x79d16de4, 0xabee, 0x4021, 0x8d,0x9d, 0x91,0x69,0xb2,0x61,0xd6,0x57)
16057 #endif
16058 #else
16059 typedef struct IDeskBand2Vtbl {
16060     BEGIN_INTERFACE
16061 
16062     /*** IUnknown methods ***/
16063     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16064         IDeskBand2 *This,
16065         REFIID riid,
16066         void **ppvObject);
16067 
16068     ULONG (STDMETHODCALLTYPE *AddRef)(
16069         IDeskBand2 *This);
16070 
16071     ULONG (STDMETHODCALLTYPE *Release)(
16072         IDeskBand2 *This);
16073 
16074     /*** IOleWindow methods ***/
16075     HRESULT (STDMETHODCALLTYPE *GetWindow)(
16076         IDeskBand2 *This,
16077         HWND *phwnd);
16078 
16079     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
16080         IDeskBand2 *This,
16081         WINBOOL fEnterMode);
16082 
16083     /*** IDockingWindow methods ***/
16084     HRESULT (STDMETHODCALLTYPE *ShowDW)(
16085         IDeskBand2 *This,
16086         WINBOOL fShow);
16087 
16088     HRESULT (STDMETHODCALLTYPE *CloseDW)(
16089         IDeskBand2 *This,
16090         DWORD dwReserved);
16091 
16092     HRESULT (STDMETHODCALLTYPE *ResizeBorderDW)(
16093         IDeskBand2 *This,
16094         LPCRECT prcBorder,
16095         IUnknown *punkToolbarSite,
16096         WINBOOL fReserved);
16097 
16098     /*** IDeskBand methods ***/
16099     HRESULT (STDMETHODCALLTYPE *GetBandInfo)(
16100         IDeskBand2 *This,
16101         DWORD dwBandID,
16102         DWORD dwViewMode,
16103         DESKBANDINFO *pdbi);
16104 
16105     /*** IDeskBand2 methods ***/
16106     HRESULT (STDMETHODCALLTYPE *CanRenderComposited)(
16107         IDeskBand2 *This,
16108         WINBOOL *pfCanRenderComposited);
16109 
16110     HRESULT (STDMETHODCALLTYPE *SetCompositionState)(
16111         IDeskBand2 *This,
16112         WINBOOL fCompositionEnabled);
16113 
16114     HRESULT (STDMETHODCALLTYPE *GetCompositionState)(
16115         IDeskBand2 *This,
16116         WINBOOL *pfCompositionEnabled);
16117 
16118     END_INTERFACE
16119 } IDeskBand2Vtbl;
16120 
16121 interface IDeskBand2 {
16122     CONST_VTBL IDeskBand2Vtbl* lpVtbl;
16123 };
16124 
16125 #ifdef COBJMACROS
16126 #ifndef WIDL_C_INLINE_WRAPPERS
16127 /*** IUnknown methods ***/
16128 #define IDeskBand2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16129 #define IDeskBand2_AddRef(This) (This)->lpVtbl->AddRef(This)
16130 #define IDeskBand2_Release(This) (This)->lpVtbl->Release(This)
16131 /*** IOleWindow methods ***/
16132 #define IDeskBand2_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
16133 #define IDeskBand2_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
16134 /*** IDockingWindow methods ***/
16135 #define IDeskBand2_ShowDW(This,fShow) (This)->lpVtbl->ShowDW(This,fShow)
16136 #define IDeskBand2_CloseDW(This,dwReserved) (This)->lpVtbl->CloseDW(This,dwReserved)
16137 #define IDeskBand2_ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved) (This)->lpVtbl->ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved)
16138 /*** IDeskBand methods ***/
16139 #define IDeskBand2_GetBandInfo(This,dwBandID,dwViewMode,pdbi) (This)->lpVtbl->GetBandInfo(This,dwBandID,dwViewMode,pdbi)
16140 /*** IDeskBand2 methods ***/
16141 #define IDeskBand2_CanRenderComposited(This,pfCanRenderComposited) (This)->lpVtbl->CanRenderComposited(This,pfCanRenderComposited)
16142 #define IDeskBand2_SetCompositionState(This,fCompositionEnabled) (This)->lpVtbl->SetCompositionState(This,fCompositionEnabled)
16143 #define IDeskBand2_GetCompositionState(This,pfCompositionEnabled) (This)->lpVtbl->GetCompositionState(This,pfCompositionEnabled)
16144 #else
16145 /*** IUnknown methods ***/
16146 static FORCEINLINE HRESULT IDeskBand2_QueryInterface(IDeskBand2* This,REFIID riid,void **ppvObject) {
16147     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16148 }
16149 static FORCEINLINE ULONG IDeskBand2_AddRef(IDeskBand2* This) {
16150     return This->lpVtbl->AddRef(This);
16151 }
16152 static FORCEINLINE ULONG IDeskBand2_Release(IDeskBand2* This) {
16153     return This->lpVtbl->Release(This);
16154 }
16155 /*** IOleWindow methods ***/
16156 static FORCEINLINE HRESULT IDeskBand2_GetWindow(IDeskBand2* This,HWND *phwnd) {
16157     return This->lpVtbl->GetWindow(This,phwnd);
16158 }
16159 static FORCEINLINE HRESULT IDeskBand2_ContextSensitiveHelp(IDeskBand2* This,WINBOOL fEnterMode) {
16160     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
16161 }
16162 /*** IDockingWindow methods ***/
16163 static FORCEINLINE HRESULT IDeskBand2_ShowDW(IDeskBand2* This,WINBOOL fShow) {
16164     return This->lpVtbl->ShowDW(This,fShow);
16165 }
16166 static FORCEINLINE HRESULT IDeskBand2_CloseDW(IDeskBand2* This,DWORD dwReserved) {
16167     return This->lpVtbl->CloseDW(This,dwReserved);
16168 }
16169 static FORCEINLINE HRESULT IDeskBand2_ResizeBorderDW(IDeskBand2* This,LPCRECT prcBorder,IUnknown *punkToolbarSite,WINBOOL fReserved) {
16170     return This->lpVtbl->ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved);
16171 }
16172 /*** IDeskBand methods ***/
16173 static FORCEINLINE HRESULT IDeskBand2_GetBandInfo(IDeskBand2* This,DWORD dwBandID,DWORD dwViewMode,DESKBANDINFO *pdbi) {
16174     return This->lpVtbl->GetBandInfo(This,dwBandID,dwViewMode,pdbi);
16175 }
16176 /*** IDeskBand2 methods ***/
16177 static FORCEINLINE HRESULT IDeskBand2_CanRenderComposited(IDeskBand2* This,WINBOOL *pfCanRenderComposited) {
16178     return This->lpVtbl->CanRenderComposited(This,pfCanRenderComposited);
16179 }
16180 static FORCEINLINE HRESULT IDeskBand2_SetCompositionState(IDeskBand2* This,WINBOOL fCompositionEnabled) {
16181     return This->lpVtbl->SetCompositionState(This,fCompositionEnabled);
16182 }
16183 static FORCEINLINE HRESULT IDeskBand2_GetCompositionState(IDeskBand2* This,WINBOOL *pfCompositionEnabled) {
16184     return This->lpVtbl->GetCompositionState(This,pfCompositionEnabled);
16185 }
16186 #endif
16187 #endif
16188 
16189 #endif
16190 
16191 
16192 #endif  /* __IDeskBand2_INTERFACE_DEFINED__ */
16193 
16194 #endif
16195 
16196 /*****************************************************************************
16197  * ITaskbarList interface
16198  */
16199 #ifndef __ITaskbarList_INTERFACE_DEFINED__
16200 #define __ITaskbarList_INTERFACE_DEFINED__
16201 
16202 DEFINE_GUID(IID_ITaskbarList, 0x56fdf342, 0xfd6d, 0x11d0, 0x95,0x8a, 0x00,0x60,0x97,0xc9,0xa0,0x90);
16203 #if defined(__cplusplus) && !defined(CINTERFACE)
16204 MIDL_INTERFACE("56fdf342-fd6d-11d0-958a-006097c9a090")
16205 ITaskbarList : public IUnknown
16206 {
16207     virtual HRESULT STDMETHODCALLTYPE HrInit(
16208         ) = 0;
16209 
16210     virtual HRESULT STDMETHODCALLTYPE AddTab(
16211         HWND hwnd) = 0;
16212 
16213     virtual HRESULT STDMETHODCALLTYPE DeleteTab(
16214         HWND hwnd) = 0;
16215 
16216     virtual HRESULT STDMETHODCALLTYPE ActivateTab(
16217         HWND hwnd) = 0;
16218 
16219     virtual HRESULT STDMETHODCALLTYPE SetActiveAlt(
16220         HWND hwnd) = 0;
16221 
16222 };
16223 #ifdef __CRT_UUID_DECL
16224 __CRT_UUID_DECL(ITaskbarList, 0x56fdf342, 0xfd6d, 0x11d0, 0x95,0x8a, 0x00,0x60,0x97,0xc9,0xa0,0x90)
16225 #endif
16226 #else
16227 typedef struct ITaskbarListVtbl {
16228     BEGIN_INTERFACE
16229 
16230     /*** IUnknown methods ***/
16231     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16232         ITaskbarList *This,
16233         REFIID riid,
16234         void **ppvObject);
16235 
16236     ULONG (STDMETHODCALLTYPE *AddRef)(
16237         ITaskbarList *This);
16238 
16239     ULONG (STDMETHODCALLTYPE *Release)(
16240         ITaskbarList *This);
16241 
16242     /*** ITaskbarList methods ***/
16243     HRESULT (STDMETHODCALLTYPE *HrInit)(
16244         ITaskbarList *This);
16245 
16246     HRESULT (STDMETHODCALLTYPE *AddTab)(
16247         ITaskbarList *This,
16248         HWND hwnd);
16249 
16250     HRESULT (STDMETHODCALLTYPE *DeleteTab)(
16251         ITaskbarList *This,
16252         HWND hwnd);
16253 
16254     HRESULT (STDMETHODCALLTYPE *ActivateTab)(
16255         ITaskbarList *This,
16256         HWND hwnd);
16257 
16258     HRESULT (STDMETHODCALLTYPE *SetActiveAlt)(
16259         ITaskbarList *This,
16260         HWND hwnd);
16261 
16262     END_INTERFACE
16263 } ITaskbarListVtbl;
16264 
16265 interface ITaskbarList {
16266     CONST_VTBL ITaskbarListVtbl* lpVtbl;
16267 };
16268 
16269 #ifdef COBJMACROS
16270 #ifndef WIDL_C_INLINE_WRAPPERS
16271 /*** IUnknown methods ***/
16272 #define ITaskbarList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16273 #define ITaskbarList_AddRef(This) (This)->lpVtbl->AddRef(This)
16274 #define ITaskbarList_Release(This) (This)->lpVtbl->Release(This)
16275 /*** ITaskbarList methods ***/
16276 #define ITaskbarList_HrInit(This) (This)->lpVtbl->HrInit(This)
16277 #define ITaskbarList_AddTab(This,hwnd) (This)->lpVtbl->AddTab(This,hwnd)
16278 #define ITaskbarList_DeleteTab(This,hwnd) (This)->lpVtbl->DeleteTab(This,hwnd)
16279 #define ITaskbarList_ActivateTab(This,hwnd) (This)->lpVtbl->ActivateTab(This,hwnd)
16280 #define ITaskbarList_SetActiveAlt(This,hwnd) (This)->lpVtbl->SetActiveAlt(This,hwnd)
16281 #else
16282 /*** IUnknown methods ***/
16283 static FORCEINLINE HRESULT ITaskbarList_QueryInterface(ITaskbarList* This,REFIID riid,void **ppvObject) {
16284     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16285 }
16286 static FORCEINLINE ULONG ITaskbarList_AddRef(ITaskbarList* This) {
16287     return This->lpVtbl->AddRef(This);
16288 }
16289 static FORCEINLINE ULONG ITaskbarList_Release(ITaskbarList* This) {
16290     return This->lpVtbl->Release(This);
16291 }
16292 /*** ITaskbarList methods ***/
16293 static FORCEINLINE HRESULT ITaskbarList_HrInit(ITaskbarList* This) {
16294     return This->lpVtbl->HrInit(This);
16295 }
16296 static FORCEINLINE HRESULT ITaskbarList_AddTab(ITaskbarList* This,HWND hwnd) {
16297     return This->lpVtbl->AddTab(This,hwnd);
16298 }
16299 static FORCEINLINE HRESULT ITaskbarList_DeleteTab(ITaskbarList* This,HWND hwnd) {
16300     return This->lpVtbl->DeleteTab(This,hwnd);
16301 }
16302 static FORCEINLINE HRESULT ITaskbarList_ActivateTab(ITaskbarList* This,HWND hwnd) {
16303     return This->lpVtbl->ActivateTab(This,hwnd);
16304 }
16305 static FORCEINLINE HRESULT ITaskbarList_SetActiveAlt(ITaskbarList* This,HWND hwnd) {
16306     return This->lpVtbl->SetActiveAlt(This,hwnd);
16307 }
16308 #endif
16309 #endif
16310 
16311 #endif
16312 
16313 
16314 #endif  /* __ITaskbarList_INTERFACE_DEFINED__ */
16315 
16316 
16317 /*****************************************************************************
16318  * ITaskbarList2 interface
16319  */
16320 #ifndef __ITaskbarList2_INTERFACE_DEFINED__
16321 #define __ITaskbarList2_INTERFACE_DEFINED__
16322 
16323 DEFINE_GUID(IID_ITaskbarList2, 0x602d4995, 0xb13a, 0x429b, 0xa6,0x6e, 0x19,0x35,0xe4,0x4f,0x43,0x17);
16324 #if defined(__cplusplus) && !defined(CINTERFACE)
16325 MIDL_INTERFACE("602d4995-b13a-429b-a66e-1935e44f4317")
16326 ITaskbarList2 : public ITaskbarList
16327 {
16328     virtual HRESULT STDMETHODCALLTYPE MarkFullscreenWindow(
16329         HWND hwnd,
16330         WINBOOL fFullscreen) = 0;
16331 
16332 };
16333 #ifdef __CRT_UUID_DECL
16334 __CRT_UUID_DECL(ITaskbarList2, 0x602d4995, 0xb13a, 0x429b, 0xa6,0x6e, 0x19,0x35,0xe4,0x4f,0x43,0x17)
16335 #endif
16336 #else
16337 typedef struct ITaskbarList2Vtbl {
16338     BEGIN_INTERFACE
16339 
16340     /*** IUnknown methods ***/
16341     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16342         ITaskbarList2 *This,
16343         REFIID riid,
16344         void **ppvObject);
16345 
16346     ULONG (STDMETHODCALLTYPE *AddRef)(
16347         ITaskbarList2 *This);
16348 
16349     ULONG (STDMETHODCALLTYPE *Release)(
16350         ITaskbarList2 *This);
16351 
16352     /*** ITaskbarList methods ***/
16353     HRESULT (STDMETHODCALLTYPE *HrInit)(
16354         ITaskbarList2 *This);
16355 
16356     HRESULT (STDMETHODCALLTYPE *AddTab)(
16357         ITaskbarList2 *This,
16358         HWND hwnd);
16359 
16360     HRESULT (STDMETHODCALLTYPE *DeleteTab)(
16361         ITaskbarList2 *This,
16362         HWND hwnd);
16363 
16364     HRESULT (STDMETHODCALLTYPE *ActivateTab)(
16365         ITaskbarList2 *This,
16366         HWND hwnd);
16367 
16368     HRESULT (STDMETHODCALLTYPE *SetActiveAlt)(
16369         ITaskbarList2 *This,
16370         HWND hwnd);
16371 
16372     /*** ITaskbarList2 methods ***/
16373     HRESULT (STDMETHODCALLTYPE *MarkFullscreenWindow)(
16374         ITaskbarList2 *This,
16375         HWND hwnd,
16376         WINBOOL fFullscreen);
16377 
16378     END_INTERFACE
16379 } ITaskbarList2Vtbl;
16380 
16381 interface ITaskbarList2 {
16382     CONST_VTBL ITaskbarList2Vtbl* lpVtbl;
16383 };
16384 
16385 #ifdef COBJMACROS
16386 #ifndef WIDL_C_INLINE_WRAPPERS
16387 /*** IUnknown methods ***/
16388 #define ITaskbarList2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16389 #define ITaskbarList2_AddRef(This) (This)->lpVtbl->AddRef(This)
16390 #define ITaskbarList2_Release(This) (This)->lpVtbl->Release(This)
16391 /*** ITaskbarList methods ***/
16392 #define ITaskbarList2_HrInit(This) (This)->lpVtbl->HrInit(This)
16393 #define ITaskbarList2_AddTab(This,hwnd) (This)->lpVtbl->AddTab(This,hwnd)
16394 #define ITaskbarList2_DeleteTab(This,hwnd) (This)->lpVtbl->DeleteTab(This,hwnd)
16395 #define ITaskbarList2_ActivateTab(This,hwnd) (This)->lpVtbl->ActivateTab(This,hwnd)
16396 #define ITaskbarList2_SetActiveAlt(This,hwnd) (This)->lpVtbl->SetActiveAlt(This,hwnd)
16397 /*** ITaskbarList2 methods ***/
16398 #define ITaskbarList2_MarkFullscreenWindow(This,hwnd,fFullscreen) (This)->lpVtbl->MarkFullscreenWindow(This,hwnd,fFullscreen)
16399 #else
16400 /*** IUnknown methods ***/
16401 static FORCEINLINE HRESULT ITaskbarList2_QueryInterface(ITaskbarList2* This,REFIID riid,void **ppvObject) {
16402     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16403 }
16404 static FORCEINLINE ULONG ITaskbarList2_AddRef(ITaskbarList2* This) {
16405     return This->lpVtbl->AddRef(This);
16406 }
16407 static FORCEINLINE ULONG ITaskbarList2_Release(ITaskbarList2* This) {
16408     return This->lpVtbl->Release(This);
16409 }
16410 /*** ITaskbarList methods ***/
16411 static FORCEINLINE HRESULT ITaskbarList2_HrInit(ITaskbarList2* This) {
16412     return This->lpVtbl->HrInit(This);
16413 }
16414 static FORCEINLINE HRESULT ITaskbarList2_AddTab(ITaskbarList2* This,HWND hwnd) {
16415     return This->lpVtbl->AddTab(This,hwnd);
16416 }
16417 static FORCEINLINE HRESULT ITaskbarList2_DeleteTab(ITaskbarList2* This,HWND hwnd) {
16418     return This->lpVtbl->DeleteTab(This,hwnd);
16419 }
16420 static FORCEINLINE HRESULT ITaskbarList2_ActivateTab(ITaskbarList2* This,HWND hwnd) {
16421     return This->lpVtbl->ActivateTab(This,hwnd);
16422 }
16423 static FORCEINLINE HRESULT ITaskbarList2_SetActiveAlt(ITaskbarList2* This,HWND hwnd) {
16424     return This->lpVtbl->SetActiveAlt(This,hwnd);
16425 }
16426 /*** ITaskbarList2 methods ***/
16427 static FORCEINLINE HRESULT ITaskbarList2_MarkFullscreenWindow(ITaskbarList2* This,HWND hwnd,WINBOOL fFullscreen) {
16428     return This->lpVtbl->MarkFullscreenWindow(This,hwnd,fFullscreen);
16429 }
16430 #endif
16431 #endif
16432 
16433 #endif
16434 
16435 
16436 #endif  /* __ITaskbarList2_INTERFACE_DEFINED__ */
16437 
16438 
16439 #if 0
16440 typedef IUnknown *HIMAGELIST;
16441 #endif
16442 
16443 typedef enum THUMBBUTTONFLAGS {
16444     THBF_ENABLED = 0x0,
16445     THBF_DISABLED = 0x1,
16446     THBF_DISMISSONCLICK = 0x2,
16447     THBF_NOBACKGROUND = 0x4,
16448     THBF_HIDDEN = 0x8,
16449     THBF_NONINTERACTIVE = 0x10
16450 } THUMBBUTTONFLAGS;
16451 
16452 DEFINE_ENUM_FLAG_OPERATORS(THUMBBUTTONFLAGS)
16453 
16454 
16455 typedef enum THUMBBUTTONMASK {
16456     THB_BITMAP = 0x1,
16457     THB_ICON = 0x2,
16458     THB_TOOLTIP = 0x4,
16459     THB_FLAGS = 0x8
16460 } THUMBBUTTONMASK;
16461 
16462 DEFINE_ENUM_FLAG_OPERATORS(THUMBBUTTONMASK)
16463 
16464 #include <pshpack8.h>
16465 typedef struct THUMBBUTTON {
16466     THUMBBUTTONMASK dwMask;
16467     UINT iId;
16468     UINT iBitmap;
16469     HICON hIcon;
16470     WCHAR szTip[260];
16471     THUMBBUTTONFLAGS dwFlags;
16472 } THUMBBUTTON;
16473 typedef struct THUMBBUTTON *LPTHUMBBUTTON;
16474 #include <poppack.h>
16475 
16476 #define THBN_CLICKED 0x1800
16477 
16478 /*****************************************************************************
16479  * ITaskbarList3 interface
16480  */
16481 #ifndef __ITaskbarList3_INTERFACE_DEFINED__
16482 #define __ITaskbarList3_INTERFACE_DEFINED__
16483 
16484 typedef enum TBPFLAG {
16485     TBPF_NOPROGRESS = 0x0,
16486     TBPF_INDETERMINATE = 0x1,
16487     TBPF_NORMAL = 0x2,
16488     TBPF_ERROR = 0x4,
16489     TBPF_PAUSED = 0x8
16490 } TBPFLAG;
16491 
16492 DEFINE_ENUM_FLAG_OPERATORS(TBPFLAG)
16493 
16494 DEFINE_GUID(IID_ITaskbarList3, 0xea1afb91, 0x9e28, 0x4b86, 0x90,0xe9, 0x9e,0x9f,0x8a,0x5e,0xef,0xaf);
16495 #if defined(__cplusplus) && !defined(CINTERFACE)
16496 MIDL_INTERFACE("ea1afb91-9e28-4b86-90e9-9e9f8a5eefaf")
16497 ITaskbarList3 : public ITaskbarList2
16498 {
16499     virtual HRESULT STDMETHODCALLTYPE SetProgressValue(
16500         HWND hwnd,
16501         ULONGLONG ullCompleted,
16502         ULONGLONG ullTotal) = 0;
16503 
16504     virtual HRESULT STDMETHODCALLTYPE SetProgressState(
16505         HWND hwnd,
16506         TBPFLAG tbpFlags) = 0;
16507 
16508     virtual HRESULT STDMETHODCALLTYPE RegisterTab(
16509         HWND hwndTab,
16510         HWND hwndMDI) = 0;
16511 
16512     virtual HRESULT STDMETHODCALLTYPE UnregisterTab(
16513         HWND hwndTab) = 0;
16514 
16515     virtual HRESULT STDMETHODCALLTYPE SetTabOrder(
16516         HWND hwndTab,
16517         HWND hwndInsertBefore) = 0;
16518 
16519     virtual HRESULT STDMETHODCALLTYPE SetTabActive(
16520         HWND hwndTab,
16521         HWND hwndMDI,
16522         DWORD dwReserved) = 0;
16523 
16524     virtual HRESULT STDMETHODCALLTYPE ThumbBarAddButtons(
16525         HWND hwnd,
16526         UINT cButtons,
16527         LPTHUMBBUTTON pButton) = 0;
16528 
16529     virtual HRESULT STDMETHODCALLTYPE ThumbBarUpdateButtons(
16530         HWND hwnd,
16531         UINT cButtons,
16532         LPTHUMBBUTTON pButton) = 0;
16533 
16534     virtual HRESULT STDMETHODCALLTYPE ThumbBarSetImageList(
16535         HWND hwnd,
16536         HIMAGELIST himl) = 0;
16537 
16538     virtual HRESULT STDMETHODCALLTYPE SetOverlayIcon(
16539         HWND hwnd,
16540         HICON hIcon,
16541         LPCWSTR pszDescription) = 0;
16542 
16543     virtual HRESULT STDMETHODCALLTYPE SetThumbnailTooltip(
16544         HWND hwnd,
16545         LPCWSTR pszTip) = 0;
16546 
16547     virtual HRESULT STDMETHODCALLTYPE SetThumbnailClip(
16548         HWND hwnd,
16549         RECT *prcClip) = 0;
16550 
16551 };
16552 #ifdef __CRT_UUID_DECL
16553 __CRT_UUID_DECL(ITaskbarList3, 0xea1afb91, 0x9e28, 0x4b86, 0x90,0xe9, 0x9e,0x9f,0x8a,0x5e,0xef,0xaf)
16554 #endif
16555 #else
16556 typedef struct ITaskbarList3Vtbl {
16557     BEGIN_INTERFACE
16558 
16559     /*** IUnknown methods ***/
16560     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16561         ITaskbarList3 *This,
16562         REFIID riid,
16563         void **ppvObject);
16564 
16565     ULONG (STDMETHODCALLTYPE *AddRef)(
16566         ITaskbarList3 *This);
16567 
16568     ULONG (STDMETHODCALLTYPE *Release)(
16569         ITaskbarList3 *This);
16570 
16571     /*** ITaskbarList methods ***/
16572     HRESULT (STDMETHODCALLTYPE *HrInit)(
16573         ITaskbarList3 *This);
16574 
16575     HRESULT (STDMETHODCALLTYPE *AddTab)(
16576         ITaskbarList3 *This,
16577         HWND hwnd);
16578 
16579     HRESULT (STDMETHODCALLTYPE *DeleteTab)(
16580         ITaskbarList3 *This,
16581         HWND hwnd);
16582 
16583     HRESULT (STDMETHODCALLTYPE *ActivateTab)(
16584         ITaskbarList3 *This,
16585         HWND hwnd);
16586 
16587     HRESULT (STDMETHODCALLTYPE *SetActiveAlt)(
16588         ITaskbarList3 *This,
16589         HWND hwnd);
16590 
16591     /*** ITaskbarList2 methods ***/
16592     HRESULT (STDMETHODCALLTYPE *MarkFullscreenWindow)(
16593         ITaskbarList3 *This,
16594         HWND hwnd,
16595         WINBOOL fFullscreen);
16596 
16597     /*** ITaskbarList3 methods ***/
16598     HRESULT (STDMETHODCALLTYPE *SetProgressValue)(
16599         ITaskbarList3 *This,
16600         HWND hwnd,
16601         ULONGLONG ullCompleted,
16602         ULONGLONG ullTotal);
16603 
16604     HRESULT (STDMETHODCALLTYPE *SetProgressState)(
16605         ITaskbarList3 *This,
16606         HWND hwnd,
16607         TBPFLAG tbpFlags);
16608 
16609     HRESULT (STDMETHODCALLTYPE *RegisterTab)(
16610         ITaskbarList3 *This,
16611         HWND hwndTab,
16612         HWND hwndMDI);
16613 
16614     HRESULT (STDMETHODCALLTYPE *UnregisterTab)(
16615         ITaskbarList3 *This,
16616         HWND hwndTab);
16617 
16618     HRESULT (STDMETHODCALLTYPE *SetTabOrder)(
16619         ITaskbarList3 *This,
16620         HWND hwndTab,
16621         HWND hwndInsertBefore);
16622 
16623     HRESULT (STDMETHODCALLTYPE *SetTabActive)(
16624         ITaskbarList3 *This,
16625         HWND hwndTab,
16626         HWND hwndMDI,
16627         DWORD dwReserved);
16628 
16629     HRESULT (STDMETHODCALLTYPE *ThumbBarAddButtons)(
16630         ITaskbarList3 *This,
16631         HWND hwnd,
16632         UINT cButtons,
16633         LPTHUMBBUTTON pButton);
16634 
16635     HRESULT (STDMETHODCALLTYPE *ThumbBarUpdateButtons)(
16636         ITaskbarList3 *This,
16637         HWND hwnd,
16638         UINT cButtons,
16639         LPTHUMBBUTTON pButton);
16640 
16641     HRESULT (STDMETHODCALLTYPE *ThumbBarSetImageList)(
16642         ITaskbarList3 *This,
16643         HWND hwnd,
16644         HIMAGELIST himl);
16645 
16646     HRESULT (STDMETHODCALLTYPE *SetOverlayIcon)(
16647         ITaskbarList3 *This,
16648         HWND hwnd,
16649         HICON hIcon,
16650         LPCWSTR pszDescription);
16651 
16652     HRESULT (STDMETHODCALLTYPE *SetThumbnailTooltip)(
16653         ITaskbarList3 *This,
16654         HWND hwnd,
16655         LPCWSTR pszTip);
16656 
16657     HRESULT (STDMETHODCALLTYPE *SetThumbnailClip)(
16658         ITaskbarList3 *This,
16659         HWND hwnd,
16660         RECT *prcClip);
16661 
16662     END_INTERFACE
16663 } ITaskbarList3Vtbl;
16664 
16665 interface ITaskbarList3 {
16666     CONST_VTBL ITaskbarList3Vtbl* lpVtbl;
16667 };
16668 
16669 #ifdef COBJMACROS
16670 #ifndef WIDL_C_INLINE_WRAPPERS
16671 /*** IUnknown methods ***/
16672 #define ITaskbarList3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16673 #define ITaskbarList3_AddRef(This) (This)->lpVtbl->AddRef(This)
16674 #define ITaskbarList3_Release(This) (This)->lpVtbl->Release(This)
16675 /*** ITaskbarList methods ***/
16676 #define ITaskbarList3_HrInit(This) (This)->lpVtbl->HrInit(This)
16677 #define ITaskbarList3_AddTab(This,hwnd) (This)->lpVtbl->AddTab(This,hwnd)
16678 #define ITaskbarList3_DeleteTab(This,hwnd) (This)->lpVtbl->DeleteTab(This,hwnd)
16679 #define ITaskbarList3_ActivateTab(This,hwnd) (This)->lpVtbl->ActivateTab(This,hwnd)
16680 #define ITaskbarList3_SetActiveAlt(This,hwnd) (This)->lpVtbl->SetActiveAlt(This,hwnd)
16681 /*** ITaskbarList2 methods ***/
16682 #define ITaskbarList3_MarkFullscreenWindow(This,hwnd,fFullscreen) (This)->lpVtbl->MarkFullscreenWindow(This,hwnd,fFullscreen)
16683 /*** ITaskbarList3 methods ***/
16684 #define ITaskbarList3_SetProgressValue(This,hwnd,ullCompleted,ullTotal) (This)->lpVtbl->SetProgressValue(This,hwnd,ullCompleted,ullTotal)
16685 #define ITaskbarList3_SetProgressState(This,hwnd,tbpFlags) (This)->lpVtbl->SetProgressState(This,hwnd,tbpFlags)
16686 #define ITaskbarList3_RegisterTab(This,hwndTab,hwndMDI) (This)->lpVtbl->RegisterTab(This,hwndTab,hwndMDI)
16687 #define ITaskbarList3_UnregisterTab(This,hwndTab) (This)->lpVtbl->UnregisterTab(This,hwndTab)
16688 #define ITaskbarList3_SetTabOrder(This,hwndTab,hwndInsertBefore) (This)->lpVtbl->SetTabOrder(This,hwndTab,hwndInsertBefore)
16689 #define ITaskbarList3_SetTabActive(This,hwndTab,hwndMDI,dwReserved) (This)->lpVtbl->SetTabActive(This,hwndTab,hwndMDI,dwReserved)
16690 #define ITaskbarList3_ThumbBarAddButtons(This,hwnd,cButtons,pButton) (This)->lpVtbl->ThumbBarAddButtons(This,hwnd,cButtons,pButton)
16691 #define ITaskbarList3_ThumbBarUpdateButtons(This,hwnd,cButtons,pButton) (This)->lpVtbl->ThumbBarUpdateButtons(This,hwnd,cButtons,pButton)
16692 #define ITaskbarList3_ThumbBarSetImageList(This,hwnd,himl) (This)->lpVtbl->ThumbBarSetImageList(This,hwnd,himl)
16693 #define ITaskbarList3_SetOverlayIcon(This,hwnd,hIcon,pszDescription) (This)->lpVtbl->SetOverlayIcon(This,hwnd,hIcon,pszDescription)
16694 #define ITaskbarList3_SetThumbnailTooltip(This,hwnd,pszTip) (This)->lpVtbl->SetThumbnailTooltip(This,hwnd,pszTip)
16695 #define ITaskbarList3_SetThumbnailClip(This,hwnd,prcClip) (This)->lpVtbl->SetThumbnailClip(This,hwnd,prcClip)
16696 #else
16697 /*** IUnknown methods ***/
16698 static FORCEINLINE HRESULT ITaskbarList3_QueryInterface(ITaskbarList3* This,REFIID riid,void **ppvObject) {
16699     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16700 }
16701 static FORCEINLINE ULONG ITaskbarList3_AddRef(ITaskbarList3* This) {
16702     return This->lpVtbl->AddRef(This);
16703 }
16704 static FORCEINLINE ULONG ITaskbarList3_Release(ITaskbarList3* This) {
16705     return This->lpVtbl->Release(This);
16706 }
16707 /*** ITaskbarList methods ***/
16708 static FORCEINLINE HRESULT ITaskbarList3_HrInit(ITaskbarList3* This) {
16709     return This->lpVtbl->HrInit(This);
16710 }
16711 static FORCEINLINE HRESULT ITaskbarList3_AddTab(ITaskbarList3* This,HWND hwnd) {
16712     return This->lpVtbl->AddTab(This,hwnd);
16713 }
16714 static FORCEINLINE HRESULT ITaskbarList3_DeleteTab(ITaskbarList3* This,HWND hwnd) {
16715     return This->lpVtbl->DeleteTab(This,hwnd);
16716 }
16717 static FORCEINLINE HRESULT ITaskbarList3_ActivateTab(ITaskbarList3* This,HWND hwnd) {
16718     return This->lpVtbl->ActivateTab(This,hwnd);
16719 }
16720 static FORCEINLINE HRESULT ITaskbarList3_SetActiveAlt(ITaskbarList3* This,HWND hwnd) {
16721     return This->lpVtbl->SetActiveAlt(This,hwnd);
16722 }
16723 /*** ITaskbarList2 methods ***/
16724 static FORCEINLINE HRESULT ITaskbarList3_MarkFullscreenWindow(ITaskbarList3* This,HWND hwnd,WINBOOL fFullscreen) {
16725     return This->lpVtbl->MarkFullscreenWindow(This,hwnd,fFullscreen);
16726 }
16727 /*** ITaskbarList3 methods ***/
16728 static FORCEINLINE HRESULT ITaskbarList3_SetProgressValue(ITaskbarList3* This,HWND hwnd,ULONGLONG ullCompleted,ULONGLONG ullTotal) {
16729     return This->lpVtbl->SetProgressValue(This,hwnd,ullCompleted,ullTotal);
16730 }
16731 static FORCEINLINE HRESULT ITaskbarList3_SetProgressState(ITaskbarList3* This,HWND hwnd,TBPFLAG tbpFlags) {
16732     return This->lpVtbl->SetProgressState(This,hwnd,tbpFlags);
16733 }
16734 static FORCEINLINE HRESULT ITaskbarList3_RegisterTab(ITaskbarList3* This,HWND hwndTab,HWND hwndMDI) {
16735     return This->lpVtbl->RegisterTab(This,hwndTab,hwndMDI);
16736 }
16737 static FORCEINLINE HRESULT ITaskbarList3_UnregisterTab(ITaskbarList3* This,HWND hwndTab) {
16738     return This->lpVtbl->UnregisterTab(This,hwndTab);
16739 }
16740 static FORCEINLINE HRESULT ITaskbarList3_SetTabOrder(ITaskbarList3* This,HWND hwndTab,HWND hwndInsertBefore) {
16741     return This->lpVtbl->SetTabOrder(This,hwndTab,hwndInsertBefore);
16742 }
16743 static FORCEINLINE HRESULT ITaskbarList3_SetTabActive(ITaskbarList3* This,HWND hwndTab,HWND hwndMDI,DWORD dwReserved) {
16744     return This->lpVtbl->SetTabActive(This,hwndTab,hwndMDI,dwReserved);
16745 }
16746 static FORCEINLINE HRESULT ITaskbarList3_ThumbBarAddButtons(ITaskbarList3* This,HWND hwnd,UINT cButtons,LPTHUMBBUTTON pButton) {
16747     return This->lpVtbl->ThumbBarAddButtons(This,hwnd,cButtons,pButton);
16748 }
16749 static FORCEINLINE HRESULT ITaskbarList3_ThumbBarUpdateButtons(ITaskbarList3* This,HWND hwnd,UINT cButtons,LPTHUMBBUTTON pButton) {
16750     return This->lpVtbl->ThumbBarUpdateButtons(This,hwnd,cButtons,pButton);
16751 }
16752 static FORCEINLINE HRESULT ITaskbarList3_ThumbBarSetImageList(ITaskbarList3* This,HWND hwnd,HIMAGELIST himl) {
16753     return This->lpVtbl->ThumbBarSetImageList(This,hwnd,himl);
16754 }
16755 static FORCEINLINE HRESULT ITaskbarList3_SetOverlayIcon(ITaskbarList3* This,HWND hwnd,HICON hIcon,LPCWSTR pszDescription) {
16756     return This->lpVtbl->SetOverlayIcon(This,hwnd,hIcon,pszDescription);
16757 }
16758 static FORCEINLINE HRESULT ITaskbarList3_SetThumbnailTooltip(ITaskbarList3* This,HWND hwnd,LPCWSTR pszTip) {
16759     return This->lpVtbl->SetThumbnailTooltip(This,hwnd,pszTip);
16760 }
16761 static FORCEINLINE HRESULT ITaskbarList3_SetThumbnailClip(ITaskbarList3* This,HWND hwnd,RECT *prcClip) {
16762     return This->lpVtbl->SetThumbnailClip(This,hwnd,prcClip);
16763 }
16764 #endif
16765 #endif
16766 
16767 #endif
16768 
16769 
16770 #endif  /* __ITaskbarList3_INTERFACE_DEFINED__ */
16771 
16772 
16773 /*****************************************************************************
16774  * ITaskbarList4 interface
16775  */
16776 #ifndef __ITaskbarList4_INTERFACE_DEFINED__
16777 #define __ITaskbarList4_INTERFACE_DEFINED__
16778 
16779 typedef enum STPFLAG {
16780     STPF_NONE = 0x0,
16781     STPF_USEAPPTHUMBNAILALWAYS = 0x1,
16782     STPF_USEAPPTHUMBNAILWHENACTIVE = 0x2,
16783     STPF_USEAPPPEEKALWAYS = 0x4,
16784     STPF_USEAPPPEEKWHENACTIVE = 0x8
16785 } STPFLAG;
16786 
16787 DEFINE_ENUM_FLAG_OPERATORS(STPFLAG)
16788 
16789 DEFINE_GUID(IID_ITaskbarList4, 0xc43dc798, 0x95d1, 0x4bea, 0x90,0x30, 0xbb,0x99,0xe2,0x98,0x3a,0x1a);
16790 #if defined(__cplusplus) && !defined(CINTERFACE)
16791 MIDL_INTERFACE("c43dc798-95d1-4bea-9030-bb99e2983a1a")
16792 ITaskbarList4 : public ITaskbarList3
16793 {
16794     virtual HRESULT STDMETHODCALLTYPE SetTabProperties(
16795         HWND hwndTab,
16796         STPFLAG stpFlags) = 0;
16797 
16798 };
16799 #ifdef __CRT_UUID_DECL
16800 __CRT_UUID_DECL(ITaskbarList4, 0xc43dc798, 0x95d1, 0x4bea, 0x90,0x30, 0xbb,0x99,0xe2,0x98,0x3a,0x1a)
16801 #endif
16802 #else
16803 typedef struct ITaskbarList4Vtbl {
16804     BEGIN_INTERFACE
16805 
16806     /*** IUnknown methods ***/
16807     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16808         ITaskbarList4 *This,
16809         REFIID riid,
16810         void **ppvObject);
16811 
16812     ULONG (STDMETHODCALLTYPE *AddRef)(
16813         ITaskbarList4 *This);
16814 
16815     ULONG (STDMETHODCALLTYPE *Release)(
16816         ITaskbarList4 *This);
16817 
16818     /*** ITaskbarList methods ***/
16819     HRESULT (STDMETHODCALLTYPE *HrInit)(
16820         ITaskbarList4 *This);
16821 
16822     HRESULT (STDMETHODCALLTYPE *AddTab)(
16823         ITaskbarList4 *This,
16824         HWND hwnd);
16825 
16826     HRESULT (STDMETHODCALLTYPE *DeleteTab)(
16827         ITaskbarList4 *This,
16828         HWND hwnd);
16829 
16830     HRESULT (STDMETHODCALLTYPE *ActivateTab)(
16831         ITaskbarList4 *This,
16832         HWND hwnd);
16833 
16834     HRESULT (STDMETHODCALLTYPE *SetActiveAlt)(
16835         ITaskbarList4 *This,
16836         HWND hwnd);
16837 
16838     /*** ITaskbarList2 methods ***/
16839     HRESULT (STDMETHODCALLTYPE *MarkFullscreenWindow)(
16840         ITaskbarList4 *This,
16841         HWND hwnd,
16842         WINBOOL fFullscreen);
16843 
16844     /*** ITaskbarList3 methods ***/
16845     HRESULT (STDMETHODCALLTYPE *SetProgressValue)(
16846         ITaskbarList4 *This,
16847         HWND hwnd,
16848         ULONGLONG ullCompleted,
16849         ULONGLONG ullTotal);
16850 
16851     HRESULT (STDMETHODCALLTYPE *SetProgressState)(
16852         ITaskbarList4 *This,
16853         HWND hwnd,
16854         TBPFLAG tbpFlags);
16855 
16856     HRESULT (STDMETHODCALLTYPE *RegisterTab)(
16857         ITaskbarList4 *This,
16858         HWND hwndTab,
16859         HWND hwndMDI);
16860 
16861     HRESULT (STDMETHODCALLTYPE *UnregisterTab)(
16862         ITaskbarList4 *This,
16863         HWND hwndTab);
16864 
16865     HRESULT (STDMETHODCALLTYPE *SetTabOrder)(
16866         ITaskbarList4 *This,
16867         HWND hwndTab,
16868         HWND hwndInsertBefore);
16869 
16870     HRESULT (STDMETHODCALLTYPE *SetTabActive)(
16871         ITaskbarList4 *This,
16872         HWND hwndTab,
16873         HWND hwndMDI,
16874         DWORD dwReserved);
16875 
16876     HRESULT (STDMETHODCALLTYPE *ThumbBarAddButtons)(
16877         ITaskbarList4 *This,
16878         HWND hwnd,
16879         UINT cButtons,
16880         LPTHUMBBUTTON pButton);
16881 
16882     HRESULT (STDMETHODCALLTYPE *ThumbBarUpdateButtons)(
16883         ITaskbarList4 *This,
16884         HWND hwnd,
16885         UINT cButtons,
16886         LPTHUMBBUTTON pButton);
16887 
16888     HRESULT (STDMETHODCALLTYPE *ThumbBarSetImageList)(
16889         ITaskbarList4 *This,
16890         HWND hwnd,
16891         HIMAGELIST himl);
16892 
16893     HRESULT (STDMETHODCALLTYPE *SetOverlayIcon)(
16894         ITaskbarList4 *This,
16895         HWND hwnd,
16896         HICON hIcon,
16897         LPCWSTR pszDescription);
16898 
16899     HRESULT (STDMETHODCALLTYPE *SetThumbnailTooltip)(
16900         ITaskbarList4 *This,
16901         HWND hwnd,
16902         LPCWSTR pszTip);
16903 
16904     HRESULT (STDMETHODCALLTYPE *SetThumbnailClip)(
16905         ITaskbarList4 *This,
16906         HWND hwnd,
16907         RECT *prcClip);
16908 
16909     /*** ITaskbarList4 methods ***/
16910     HRESULT (STDMETHODCALLTYPE *SetTabProperties)(
16911         ITaskbarList4 *This,
16912         HWND hwndTab,
16913         STPFLAG stpFlags);
16914 
16915     END_INTERFACE
16916 } ITaskbarList4Vtbl;
16917 
16918 interface ITaskbarList4 {
16919     CONST_VTBL ITaskbarList4Vtbl* lpVtbl;
16920 };
16921 
16922 #ifdef COBJMACROS
16923 #ifndef WIDL_C_INLINE_WRAPPERS
16924 /*** IUnknown methods ***/
16925 #define ITaskbarList4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16926 #define ITaskbarList4_AddRef(This) (This)->lpVtbl->AddRef(This)
16927 #define ITaskbarList4_Release(This) (This)->lpVtbl->Release(This)
16928 /*** ITaskbarList methods ***/
16929 #define ITaskbarList4_HrInit(This) (This)->lpVtbl->HrInit(This)
16930 #define ITaskbarList4_AddTab(This,hwnd) (This)->lpVtbl->AddTab(This,hwnd)
16931 #define ITaskbarList4_DeleteTab(This,hwnd) (This)->lpVtbl->DeleteTab(This,hwnd)
16932 #define ITaskbarList4_ActivateTab(This,hwnd) (This)->lpVtbl->ActivateTab(This,hwnd)
16933 #define ITaskbarList4_SetActiveAlt(This,hwnd) (This)->lpVtbl->SetActiveAlt(This,hwnd)
16934 /*** ITaskbarList2 methods ***/
16935 #define ITaskbarList4_MarkFullscreenWindow(This,hwnd,fFullscreen) (This)->lpVtbl->MarkFullscreenWindow(This,hwnd,fFullscreen)
16936 /*** ITaskbarList3 methods ***/
16937 #define ITaskbarList4_SetProgressValue(This,hwnd,ullCompleted,ullTotal) (This)->lpVtbl->SetProgressValue(This,hwnd,ullCompleted,ullTotal)
16938 #define ITaskbarList4_SetProgressState(This,hwnd,tbpFlags) (This)->lpVtbl->SetProgressState(This,hwnd,tbpFlags)
16939 #define ITaskbarList4_RegisterTab(This,hwndTab,hwndMDI) (This)->lpVtbl->RegisterTab(This,hwndTab,hwndMDI)
16940 #define ITaskbarList4_UnregisterTab(This,hwndTab) (This)->lpVtbl->UnregisterTab(This,hwndTab)
16941 #define ITaskbarList4_SetTabOrder(This,hwndTab,hwndInsertBefore) (This)->lpVtbl->SetTabOrder(This,hwndTab,hwndInsertBefore)
16942 #define ITaskbarList4_SetTabActive(This,hwndTab,hwndMDI,dwReserved) (This)->lpVtbl->SetTabActive(This,hwndTab,hwndMDI,dwReserved)
16943 #define ITaskbarList4_ThumbBarAddButtons(This,hwnd,cButtons,pButton) (This)->lpVtbl->ThumbBarAddButtons(This,hwnd,cButtons,pButton)
16944 #define ITaskbarList4_ThumbBarUpdateButtons(This,hwnd,cButtons,pButton) (This)->lpVtbl->ThumbBarUpdateButtons(This,hwnd,cButtons,pButton)
16945 #define ITaskbarList4_ThumbBarSetImageList(This,hwnd,himl) (This)->lpVtbl->ThumbBarSetImageList(This,hwnd,himl)
16946 #define ITaskbarList4_SetOverlayIcon(This,hwnd,hIcon,pszDescription) (This)->lpVtbl->SetOverlayIcon(This,hwnd,hIcon,pszDescription)
16947 #define ITaskbarList4_SetThumbnailTooltip(This,hwnd,pszTip) (This)->lpVtbl->SetThumbnailTooltip(This,hwnd,pszTip)
16948 #define ITaskbarList4_SetThumbnailClip(This,hwnd,prcClip) (This)->lpVtbl->SetThumbnailClip(This,hwnd,prcClip)
16949 /*** ITaskbarList4 methods ***/
16950 #define ITaskbarList4_SetTabProperties(This,hwndTab,stpFlags) (This)->lpVtbl->SetTabProperties(This,hwndTab,stpFlags)
16951 #else
16952 /*** IUnknown methods ***/
16953 static FORCEINLINE HRESULT ITaskbarList4_QueryInterface(ITaskbarList4* This,REFIID riid,void **ppvObject) {
16954     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16955 }
16956 static FORCEINLINE ULONG ITaskbarList4_AddRef(ITaskbarList4* This) {
16957     return This->lpVtbl->AddRef(This);
16958 }
16959 static FORCEINLINE ULONG ITaskbarList4_Release(ITaskbarList4* This) {
16960     return This->lpVtbl->Release(This);
16961 }
16962 /*** ITaskbarList methods ***/
16963 static FORCEINLINE HRESULT ITaskbarList4_HrInit(ITaskbarList4* This) {
16964     return This->lpVtbl->HrInit(This);
16965 }
16966 static FORCEINLINE HRESULT ITaskbarList4_AddTab(ITaskbarList4* This,HWND hwnd) {
16967     return This->lpVtbl->AddTab(This,hwnd);
16968 }
16969 static FORCEINLINE HRESULT ITaskbarList4_DeleteTab(ITaskbarList4* This,HWND hwnd) {
16970     return This->lpVtbl->DeleteTab(This,hwnd);
16971 }
16972 static FORCEINLINE HRESULT ITaskbarList4_ActivateTab(ITaskbarList4* This,HWND hwnd) {
16973     return This->lpVtbl->ActivateTab(This,hwnd);
16974 }
16975 static FORCEINLINE HRESULT ITaskbarList4_SetActiveAlt(ITaskbarList4* This,HWND hwnd) {
16976     return This->lpVtbl->SetActiveAlt(This,hwnd);
16977 }
16978 /*** ITaskbarList2 methods ***/
16979 static FORCEINLINE HRESULT ITaskbarList4_MarkFullscreenWindow(ITaskbarList4* This,HWND hwnd,WINBOOL fFullscreen) {
16980     return This->lpVtbl->MarkFullscreenWindow(This,hwnd,fFullscreen);
16981 }
16982 /*** ITaskbarList3 methods ***/
16983 static FORCEINLINE HRESULT ITaskbarList4_SetProgressValue(ITaskbarList4* This,HWND hwnd,ULONGLONG ullCompleted,ULONGLONG ullTotal) {
16984     return This->lpVtbl->SetProgressValue(This,hwnd,ullCompleted,ullTotal);
16985 }
16986 static FORCEINLINE HRESULT ITaskbarList4_SetProgressState(ITaskbarList4* This,HWND hwnd,TBPFLAG tbpFlags) {
16987     return This->lpVtbl->SetProgressState(This,hwnd,tbpFlags);
16988 }
16989 static FORCEINLINE HRESULT ITaskbarList4_RegisterTab(ITaskbarList4* This,HWND hwndTab,HWND hwndMDI) {
16990     return This->lpVtbl->RegisterTab(This,hwndTab,hwndMDI);
16991 }
16992 static FORCEINLINE HRESULT ITaskbarList4_UnregisterTab(ITaskbarList4* This,HWND hwndTab) {
16993     return This->lpVtbl->UnregisterTab(This,hwndTab);
16994 }
16995 static FORCEINLINE HRESULT ITaskbarList4_SetTabOrder(ITaskbarList4* This,HWND hwndTab,HWND hwndInsertBefore) {
16996     return This->lpVtbl->SetTabOrder(This,hwndTab,hwndInsertBefore);
16997 }
16998 static FORCEINLINE HRESULT ITaskbarList4_SetTabActive(ITaskbarList4* This,HWND hwndTab,HWND hwndMDI,DWORD dwReserved) {
16999     return This->lpVtbl->SetTabActive(This,hwndTab,hwndMDI,dwReserved);
17000 }
17001 static FORCEINLINE HRESULT ITaskbarList4_ThumbBarAddButtons(ITaskbarList4* This,HWND hwnd,UINT cButtons,LPTHUMBBUTTON pButton) {
17002     return This->lpVtbl->ThumbBarAddButtons(This,hwnd,cButtons,pButton);
17003 }
17004 static FORCEINLINE HRESULT ITaskbarList4_ThumbBarUpdateButtons(ITaskbarList4* This,HWND hwnd,UINT cButtons,LPTHUMBBUTTON pButton) {
17005     return This->lpVtbl->ThumbBarUpdateButtons(This,hwnd,cButtons,pButton);
17006 }
17007 static FORCEINLINE HRESULT ITaskbarList4_ThumbBarSetImageList(ITaskbarList4* This,HWND hwnd,HIMAGELIST himl) {
17008     return This->lpVtbl->ThumbBarSetImageList(This,hwnd,himl);
17009 }
17010 static FORCEINLINE HRESULT ITaskbarList4_SetOverlayIcon(ITaskbarList4* This,HWND hwnd,HICON hIcon,LPCWSTR pszDescription) {
17011     return This->lpVtbl->SetOverlayIcon(This,hwnd,hIcon,pszDescription);
17012 }
17013 static FORCEINLINE HRESULT ITaskbarList4_SetThumbnailTooltip(ITaskbarList4* This,HWND hwnd,LPCWSTR pszTip) {
17014     return This->lpVtbl->SetThumbnailTooltip(This,hwnd,pszTip);
17015 }
17016 static FORCEINLINE HRESULT ITaskbarList4_SetThumbnailClip(ITaskbarList4* This,HWND hwnd,RECT *prcClip) {
17017     return This->lpVtbl->SetThumbnailClip(This,hwnd,prcClip);
17018 }
17019 /*** ITaskbarList4 methods ***/
17020 static FORCEINLINE HRESULT ITaskbarList4_SetTabProperties(ITaskbarList4* This,HWND hwndTab,STPFLAG stpFlags) {
17021     return This->lpVtbl->SetTabProperties(This,hwndTab,stpFlags);
17022 }
17023 #endif
17024 #endif
17025 
17026 #endif
17027 
17028 
17029 #endif  /* __ITaskbarList4_INTERFACE_DEFINED__ */
17030 
17031 
17032 /*****************************************************************************
17033  * IStartMenuPinnedList interface
17034  */
17035 #ifndef __IStartMenuPinnedList_INTERFACE_DEFINED__
17036 #define __IStartMenuPinnedList_INTERFACE_DEFINED__
17037 
17038 DEFINE_GUID(IID_IStartMenuPinnedList, 0x4cd19ada, 0x25a5, 0x4a32, 0xb3,0xb7, 0x34,0x7b,0xee,0x5b,0xe3,0x6b);
17039 #if defined(__cplusplus) && !defined(CINTERFACE)
17040 MIDL_INTERFACE("4cd19ada-25a5-4a32-b3b7-347bee5be36b")
17041 IStartMenuPinnedList : public IUnknown
17042 {
17043     virtual HRESULT STDMETHODCALLTYPE RemoveFromList(
17044         IShellItem *pitem) = 0;
17045 
17046 };
17047 #ifdef __CRT_UUID_DECL
17048 __CRT_UUID_DECL(IStartMenuPinnedList, 0x4cd19ada, 0x25a5, 0x4a32, 0xb3,0xb7, 0x34,0x7b,0xee,0x5b,0xe3,0x6b)
17049 #endif
17050 #else
17051 typedef struct IStartMenuPinnedListVtbl {
17052     BEGIN_INTERFACE
17053 
17054     /*** IUnknown methods ***/
17055     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17056         IStartMenuPinnedList *This,
17057         REFIID riid,
17058         void **ppvObject);
17059 
17060     ULONG (STDMETHODCALLTYPE *AddRef)(
17061         IStartMenuPinnedList *This);
17062 
17063     ULONG (STDMETHODCALLTYPE *Release)(
17064         IStartMenuPinnedList *This);
17065 
17066     /*** IStartMenuPinnedList methods ***/
17067     HRESULT (STDMETHODCALLTYPE *RemoveFromList)(
17068         IStartMenuPinnedList *This,
17069         IShellItem *pitem);
17070 
17071     END_INTERFACE
17072 } IStartMenuPinnedListVtbl;
17073 
17074 interface IStartMenuPinnedList {
17075     CONST_VTBL IStartMenuPinnedListVtbl* lpVtbl;
17076 };
17077 
17078 #ifdef COBJMACROS
17079 #ifndef WIDL_C_INLINE_WRAPPERS
17080 /*** IUnknown methods ***/
17081 #define IStartMenuPinnedList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17082 #define IStartMenuPinnedList_AddRef(This) (This)->lpVtbl->AddRef(This)
17083 #define IStartMenuPinnedList_Release(This) (This)->lpVtbl->Release(This)
17084 /*** IStartMenuPinnedList methods ***/
17085 #define IStartMenuPinnedList_RemoveFromList(This,pitem) (This)->lpVtbl->RemoveFromList(This,pitem)
17086 #else
17087 /*** IUnknown methods ***/
17088 static FORCEINLINE HRESULT IStartMenuPinnedList_QueryInterface(IStartMenuPinnedList* This,REFIID riid,void **ppvObject) {
17089     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17090 }
17091 static FORCEINLINE ULONG IStartMenuPinnedList_AddRef(IStartMenuPinnedList* This) {
17092     return This->lpVtbl->AddRef(This);
17093 }
17094 static FORCEINLINE ULONG IStartMenuPinnedList_Release(IStartMenuPinnedList* This) {
17095     return This->lpVtbl->Release(This);
17096 }
17097 /*** IStartMenuPinnedList methods ***/
17098 static FORCEINLINE HRESULT IStartMenuPinnedList_RemoveFromList(IStartMenuPinnedList* This,IShellItem *pitem) {
17099     return This->lpVtbl->RemoveFromList(This,pitem);
17100 }
17101 #endif
17102 #endif
17103 
17104 #endif
17105 
17106 
17107 #endif  /* __IStartMenuPinnedList_INTERFACE_DEFINED__ */
17108 
17109 
17110 /*****************************************************************************
17111  * ICDBurn interface
17112  */
17113 #ifndef __ICDBurn_INTERFACE_DEFINED__
17114 #define __ICDBurn_INTERFACE_DEFINED__
17115 
17116 DEFINE_GUID(IID_ICDBurn, 0x3d73a659, 0xe5d0, 0x4d42, 0xaf,0xc0, 0x51,0x21,0xba,0x42,0x5c,0x8d);
17117 #if defined(__cplusplus) && !defined(CINTERFACE)
17118 MIDL_INTERFACE("3d73a659-e5d0-4d42-afc0-5121ba425c8d")
17119 ICDBurn : public IUnknown
17120 {
17121     virtual HRESULT STDMETHODCALLTYPE GetRecorderDriveLetter(
17122         LPWSTR pszDrive,
17123         UINT cch) = 0;
17124 
17125     virtual HRESULT STDMETHODCALLTYPE Burn(
17126         HWND hwnd) = 0;
17127 
17128     virtual HRESULT STDMETHODCALLTYPE HasRecordableDrive(
17129         WINBOOL *pfHasRecorder) = 0;
17130 
17131 };
17132 #ifdef __CRT_UUID_DECL
17133 __CRT_UUID_DECL(ICDBurn, 0x3d73a659, 0xe5d0, 0x4d42, 0xaf,0xc0, 0x51,0x21,0xba,0x42,0x5c,0x8d)
17134 #endif
17135 #else
17136 typedef struct ICDBurnVtbl {
17137     BEGIN_INTERFACE
17138 
17139     /*** IUnknown methods ***/
17140     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17141         ICDBurn *This,
17142         REFIID riid,
17143         void **ppvObject);
17144 
17145     ULONG (STDMETHODCALLTYPE *AddRef)(
17146         ICDBurn *This);
17147 
17148     ULONG (STDMETHODCALLTYPE *Release)(
17149         ICDBurn *This);
17150 
17151     /*** ICDBurn methods ***/
17152     HRESULT (STDMETHODCALLTYPE *GetRecorderDriveLetter)(
17153         ICDBurn *This,
17154         LPWSTR pszDrive,
17155         UINT cch);
17156 
17157     HRESULT (STDMETHODCALLTYPE *Burn)(
17158         ICDBurn *This,
17159         HWND hwnd);
17160 
17161     HRESULT (STDMETHODCALLTYPE *HasRecordableDrive)(
17162         ICDBurn *This,
17163         WINBOOL *pfHasRecorder);
17164 
17165     END_INTERFACE
17166 } ICDBurnVtbl;
17167 
17168 interface ICDBurn {
17169     CONST_VTBL ICDBurnVtbl* lpVtbl;
17170 };
17171 
17172 #ifdef COBJMACROS
17173 #ifndef WIDL_C_INLINE_WRAPPERS
17174 /*** IUnknown methods ***/
17175 #define ICDBurn_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17176 #define ICDBurn_AddRef(This) (This)->lpVtbl->AddRef(This)
17177 #define ICDBurn_Release(This) (This)->lpVtbl->Release(This)
17178 /*** ICDBurn methods ***/
17179 #define ICDBurn_GetRecorderDriveLetter(This,pszDrive,cch) (This)->lpVtbl->GetRecorderDriveLetter(This,pszDrive,cch)
17180 #define ICDBurn_Burn(This,hwnd) (This)->lpVtbl->Burn(This,hwnd)
17181 #define ICDBurn_HasRecordableDrive(This,pfHasRecorder) (This)->lpVtbl->HasRecordableDrive(This,pfHasRecorder)
17182 #else
17183 /*** IUnknown methods ***/
17184 static FORCEINLINE HRESULT ICDBurn_QueryInterface(ICDBurn* This,REFIID riid,void **ppvObject) {
17185     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17186 }
17187 static FORCEINLINE ULONG ICDBurn_AddRef(ICDBurn* This) {
17188     return This->lpVtbl->AddRef(This);
17189 }
17190 static FORCEINLINE ULONG ICDBurn_Release(ICDBurn* This) {
17191     return This->lpVtbl->Release(This);
17192 }
17193 /*** ICDBurn methods ***/
17194 static FORCEINLINE HRESULT ICDBurn_GetRecorderDriveLetter(ICDBurn* This,LPWSTR pszDrive,UINT cch) {
17195     return This->lpVtbl->GetRecorderDriveLetter(This,pszDrive,cch);
17196 }
17197 static FORCEINLINE HRESULT ICDBurn_Burn(ICDBurn* This,HWND hwnd) {
17198     return This->lpVtbl->Burn(This,hwnd);
17199 }
17200 static FORCEINLINE HRESULT ICDBurn_HasRecordableDrive(ICDBurn* This,WINBOOL *pfHasRecorder) {
17201     return This->lpVtbl->HasRecordableDrive(This,pfHasRecorder);
17202 }
17203 #endif
17204 #endif
17205 
17206 #endif
17207 
17208 
17209 #endif  /* __ICDBurn_INTERFACE_DEFINED__ */
17210 
17211 
17212 #define IDD_WIZEXTN_FIRST 0x5000
17213 #define IDD_WIZEXTN_LAST 0x5100
17214 
17215 /*****************************************************************************
17216  * IWizardSite interface
17217  */
17218 #ifndef __IWizardSite_INTERFACE_DEFINED__
17219 #define __IWizardSite_INTERFACE_DEFINED__
17220 
17221 DEFINE_GUID(IID_IWizardSite, 0x88960f5b, 0x422f, 0x4e7b, 0x80,0x13, 0x73,0x41,0x53,0x81,0xc3,0xc3);
17222 #if defined(__cplusplus) && !defined(CINTERFACE)
17223 MIDL_INTERFACE("88960f5b-422f-4e7b-8013-73415381c3c3")
17224 IWizardSite : public IUnknown
17225 {
17226     virtual HRESULT STDMETHODCALLTYPE GetPreviousPage(
17227         HPROPSHEETPAGE *phpage) = 0;
17228 
17229     virtual HRESULT STDMETHODCALLTYPE GetNextPage(
17230         HPROPSHEETPAGE *phpage) = 0;
17231 
17232     virtual HRESULT STDMETHODCALLTYPE GetCancelledPage(
17233         HPROPSHEETPAGE *phpage) = 0;
17234 
17235 };
17236 #ifdef __CRT_UUID_DECL
17237 __CRT_UUID_DECL(IWizardSite, 0x88960f5b, 0x422f, 0x4e7b, 0x80,0x13, 0x73,0x41,0x53,0x81,0xc3,0xc3)
17238 #endif
17239 #else
17240 typedef struct IWizardSiteVtbl {
17241     BEGIN_INTERFACE
17242 
17243     /*** IUnknown methods ***/
17244     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17245         IWizardSite *This,
17246         REFIID riid,
17247         void **ppvObject);
17248 
17249     ULONG (STDMETHODCALLTYPE *AddRef)(
17250         IWizardSite *This);
17251 
17252     ULONG (STDMETHODCALLTYPE *Release)(
17253         IWizardSite *This);
17254 
17255     /*** IWizardSite methods ***/
17256     HRESULT (STDMETHODCALLTYPE *GetPreviousPage)(
17257         IWizardSite *This,
17258         HPROPSHEETPAGE *phpage);
17259 
17260     HRESULT (STDMETHODCALLTYPE *GetNextPage)(
17261         IWizardSite *This,
17262         HPROPSHEETPAGE *phpage);
17263 
17264     HRESULT (STDMETHODCALLTYPE *GetCancelledPage)(
17265         IWizardSite *This,
17266         HPROPSHEETPAGE *phpage);
17267 
17268     END_INTERFACE
17269 } IWizardSiteVtbl;
17270 
17271 interface IWizardSite {
17272     CONST_VTBL IWizardSiteVtbl* lpVtbl;
17273 };
17274 
17275 #ifdef COBJMACROS
17276 #ifndef WIDL_C_INLINE_WRAPPERS
17277 /*** IUnknown methods ***/
17278 #define IWizardSite_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17279 #define IWizardSite_AddRef(This) (This)->lpVtbl->AddRef(This)
17280 #define IWizardSite_Release(This) (This)->lpVtbl->Release(This)
17281 /*** IWizardSite methods ***/
17282 #define IWizardSite_GetPreviousPage(This,phpage) (This)->lpVtbl->GetPreviousPage(This,phpage)
17283 #define IWizardSite_GetNextPage(This,phpage) (This)->lpVtbl->GetNextPage(This,phpage)
17284 #define IWizardSite_GetCancelledPage(This,phpage) (This)->lpVtbl->GetCancelledPage(This,phpage)
17285 #else
17286 /*** IUnknown methods ***/
17287 static FORCEINLINE HRESULT IWizardSite_QueryInterface(IWizardSite* This,REFIID riid,void **ppvObject) {
17288     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17289 }
17290 static FORCEINLINE ULONG IWizardSite_AddRef(IWizardSite* This) {
17291     return This->lpVtbl->AddRef(This);
17292 }
17293 static FORCEINLINE ULONG IWizardSite_Release(IWizardSite* This) {
17294     return This->lpVtbl->Release(This);
17295 }
17296 /*** IWizardSite methods ***/
17297 static FORCEINLINE HRESULT IWizardSite_GetPreviousPage(IWizardSite* This,HPROPSHEETPAGE *phpage) {
17298     return This->lpVtbl->GetPreviousPage(This,phpage);
17299 }
17300 static FORCEINLINE HRESULT IWizardSite_GetNextPage(IWizardSite* This,HPROPSHEETPAGE *phpage) {
17301     return This->lpVtbl->GetNextPage(This,phpage);
17302 }
17303 static FORCEINLINE HRESULT IWizardSite_GetCancelledPage(IWizardSite* This,HPROPSHEETPAGE *phpage) {
17304     return This->lpVtbl->GetCancelledPage(This,phpage);
17305 }
17306 #endif
17307 #endif
17308 
17309 #endif
17310 
17311 
17312 #endif  /* __IWizardSite_INTERFACE_DEFINED__ */
17313 
17314 
17315 #define SID_WizardSite IID_IWizardSite
17316 
17317 /*****************************************************************************
17318  * IWizardExtension interface
17319  */
17320 #ifndef __IWizardExtension_INTERFACE_DEFINED__
17321 #define __IWizardExtension_INTERFACE_DEFINED__
17322 
17323 DEFINE_GUID(IID_IWizardExtension, 0xc02ea696, 0x86cc, 0x491e, 0x9b,0x23, 0x74,0x39,0x4a,0x04,0x44,0xa8);
17324 #if defined(__cplusplus) && !defined(CINTERFACE)
17325 MIDL_INTERFACE("c02ea696-86cc-491e-9b23-74394a0444a8")
17326 IWizardExtension : public IUnknown
17327 {
17328     virtual HRESULT STDMETHODCALLTYPE AddPages(
17329         HPROPSHEETPAGE *aPages,
17330         UINT cPages,
17331         UINT *pnPagesAdded) = 0;
17332 
17333     virtual HRESULT STDMETHODCALLTYPE GetFirstPage(
17334         HPROPSHEETPAGE *phpage) = 0;
17335 
17336     virtual HRESULT STDMETHODCALLTYPE GetLastPage(
17337         HPROPSHEETPAGE *phpage) = 0;
17338 
17339 };
17340 #ifdef __CRT_UUID_DECL
17341 __CRT_UUID_DECL(IWizardExtension, 0xc02ea696, 0x86cc, 0x491e, 0x9b,0x23, 0x74,0x39,0x4a,0x04,0x44,0xa8)
17342 #endif
17343 #else
17344 typedef struct IWizardExtensionVtbl {
17345     BEGIN_INTERFACE
17346 
17347     /*** IUnknown methods ***/
17348     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17349         IWizardExtension *This,
17350         REFIID riid,
17351         void **ppvObject);
17352 
17353     ULONG (STDMETHODCALLTYPE *AddRef)(
17354         IWizardExtension *This);
17355 
17356     ULONG (STDMETHODCALLTYPE *Release)(
17357         IWizardExtension *This);
17358 
17359     /*** IWizardExtension methods ***/
17360     HRESULT (STDMETHODCALLTYPE *AddPages)(
17361         IWizardExtension *This,
17362         HPROPSHEETPAGE *aPages,
17363         UINT cPages,
17364         UINT *pnPagesAdded);
17365 
17366     HRESULT (STDMETHODCALLTYPE *GetFirstPage)(
17367         IWizardExtension *This,
17368         HPROPSHEETPAGE *phpage);
17369 
17370     HRESULT (STDMETHODCALLTYPE *GetLastPage)(
17371         IWizardExtension *This,
17372         HPROPSHEETPAGE *phpage);
17373 
17374     END_INTERFACE
17375 } IWizardExtensionVtbl;
17376 
17377 interface IWizardExtension {
17378     CONST_VTBL IWizardExtensionVtbl* lpVtbl;
17379 };
17380 
17381 #ifdef COBJMACROS
17382 #ifndef WIDL_C_INLINE_WRAPPERS
17383 /*** IUnknown methods ***/
17384 #define IWizardExtension_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17385 #define IWizardExtension_AddRef(This) (This)->lpVtbl->AddRef(This)
17386 #define IWizardExtension_Release(This) (This)->lpVtbl->Release(This)
17387 /*** IWizardExtension methods ***/
17388 #define IWizardExtension_AddPages(This,aPages,cPages,pnPagesAdded) (This)->lpVtbl->AddPages(This,aPages,cPages,pnPagesAdded)
17389 #define IWizardExtension_GetFirstPage(This,phpage) (This)->lpVtbl->GetFirstPage(This,phpage)
17390 #define IWizardExtension_GetLastPage(This,phpage) (This)->lpVtbl->GetLastPage(This,phpage)
17391 #else
17392 /*** IUnknown methods ***/
17393 static FORCEINLINE HRESULT IWizardExtension_QueryInterface(IWizardExtension* This,REFIID riid,void **ppvObject) {
17394     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17395 }
17396 static FORCEINLINE ULONG IWizardExtension_AddRef(IWizardExtension* This) {
17397     return This->lpVtbl->AddRef(This);
17398 }
17399 static FORCEINLINE ULONG IWizardExtension_Release(IWizardExtension* This) {
17400     return This->lpVtbl->Release(This);
17401 }
17402 /*** IWizardExtension methods ***/
17403 static FORCEINLINE HRESULT IWizardExtension_AddPages(IWizardExtension* This,HPROPSHEETPAGE *aPages,UINT cPages,UINT *pnPagesAdded) {
17404     return This->lpVtbl->AddPages(This,aPages,cPages,pnPagesAdded);
17405 }
17406 static FORCEINLINE HRESULT IWizardExtension_GetFirstPage(IWizardExtension* This,HPROPSHEETPAGE *phpage) {
17407     return This->lpVtbl->GetFirstPage(This,phpage);
17408 }
17409 static FORCEINLINE HRESULT IWizardExtension_GetLastPage(IWizardExtension* This,HPROPSHEETPAGE *phpage) {
17410     return This->lpVtbl->GetLastPage(This,phpage);
17411 }
17412 #endif
17413 #endif
17414 
17415 #endif
17416 
17417 
17418 #endif  /* __IWizardExtension_INTERFACE_DEFINED__ */
17419 
17420 
17421 /*****************************************************************************
17422  * IWebWizardExtension interface
17423  */
17424 #ifndef __IWebWizardExtension_INTERFACE_DEFINED__
17425 #define __IWebWizardExtension_INTERFACE_DEFINED__
17426 
17427 DEFINE_GUID(IID_IWebWizardExtension, 0x0e6b3f66, 0x98d1, 0x48c0, 0xa2,0x22, 0xfb,0xde,0x74,0xe2,0xfb,0xc5);
17428 #if defined(__cplusplus) && !defined(CINTERFACE)
17429 MIDL_INTERFACE("0e6b3f66-98d1-48c0-a222-fbde74e2fbc5")
17430 IWebWizardExtension : public IWizardExtension
17431 {
17432     virtual HRESULT STDMETHODCALLTYPE SetInitialURL(
17433         LPCWSTR pszURL) = 0;
17434 
17435     virtual HRESULT STDMETHODCALLTYPE SetErrorURL(
17436         LPCWSTR pszErrorURL) = 0;
17437 
17438 };
17439 #ifdef __CRT_UUID_DECL
17440 __CRT_UUID_DECL(IWebWizardExtension, 0x0e6b3f66, 0x98d1, 0x48c0, 0xa2,0x22, 0xfb,0xde,0x74,0xe2,0xfb,0xc5)
17441 #endif
17442 #else
17443 typedef struct IWebWizardExtensionVtbl {
17444     BEGIN_INTERFACE
17445 
17446     /*** IUnknown methods ***/
17447     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17448         IWebWizardExtension *This,
17449         REFIID riid,
17450         void **ppvObject);
17451 
17452     ULONG (STDMETHODCALLTYPE *AddRef)(
17453         IWebWizardExtension *This);
17454 
17455     ULONG (STDMETHODCALLTYPE *Release)(
17456         IWebWizardExtension *This);
17457 
17458     /*** IWizardExtension methods ***/
17459     HRESULT (STDMETHODCALLTYPE *AddPages)(
17460         IWebWizardExtension *This,
17461         HPROPSHEETPAGE *aPages,
17462         UINT cPages,
17463         UINT *pnPagesAdded);
17464 
17465     HRESULT (STDMETHODCALLTYPE *GetFirstPage)(
17466         IWebWizardExtension *This,
17467         HPROPSHEETPAGE *phpage);
17468 
17469     HRESULT (STDMETHODCALLTYPE *GetLastPage)(
17470         IWebWizardExtension *This,
17471         HPROPSHEETPAGE *phpage);
17472 
17473     /*** IWebWizardExtension methods ***/
17474     HRESULT (STDMETHODCALLTYPE *SetInitialURL)(
17475         IWebWizardExtension *This,
17476         LPCWSTR pszURL);
17477 
17478     HRESULT (STDMETHODCALLTYPE *SetErrorURL)(
17479         IWebWizardExtension *This,
17480         LPCWSTR pszErrorURL);
17481 
17482     END_INTERFACE
17483 } IWebWizardExtensionVtbl;
17484 
17485 interface IWebWizardExtension {
17486     CONST_VTBL IWebWizardExtensionVtbl* lpVtbl;
17487 };
17488 
17489 #ifdef COBJMACROS
17490 #ifndef WIDL_C_INLINE_WRAPPERS
17491 /*** IUnknown methods ***/
17492 #define IWebWizardExtension_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17493 #define IWebWizardExtension_AddRef(This) (This)->lpVtbl->AddRef(This)
17494 #define IWebWizardExtension_Release(This) (This)->lpVtbl->Release(This)
17495 /*** IWizardExtension methods ***/
17496 #define IWebWizardExtension_AddPages(This,aPages,cPages,pnPagesAdded) (This)->lpVtbl->AddPages(This,aPages,cPages,pnPagesAdded)
17497 #define IWebWizardExtension_GetFirstPage(This,phpage) (This)->lpVtbl->GetFirstPage(This,phpage)
17498 #define IWebWizardExtension_GetLastPage(This,phpage) (This)->lpVtbl->GetLastPage(This,phpage)
17499 /*** IWebWizardExtension methods ***/
17500 #define IWebWizardExtension_SetInitialURL(This,pszURL) (This)->lpVtbl->SetInitialURL(This,pszURL)
17501 #define IWebWizardExtension_SetErrorURL(This,pszErrorURL) (This)->lpVtbl->SetErrorURL(This,pszErrorURL)
17502 #else
17503 /*** IUnknown methods ***/
17504 static FORCEINLINE HRESULT IWebWizardExtension_QueryInterface(IWebWizardExtension* This,REFIID riid,void **ppvObject) {
17505     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17506 }
17507 static FORCEINLINE ULONG IWebWizardExtension_AddRef(IWebWizardExtension* This) {
17508     return This->lpVtbl->AddRef(This);
17509 }
17510 static FORCEINLINE ULONG IWebWizardExtension_Release(IWebWizardExtension* This) {
17511     return This->lpVtbl->Release(This);
17512 }
17513 /*** IWizardExtension methods ***/
17514 static FORCEINLINE HRESULT IWebWizardExtension_AddPages(IWebWizardExtension* This,HPROPSHEETPAGE *aPages,UINT cPages,UINT *pnPagesAdded) {
17515     return This->lpVtbl->AddPages(This,aPages,cPages,pnPagesAdded);
17516 }
17517 static FORCEINLINE HRESULT IWebWizardExtension_GetFirstPage(IWebWizardExtension* This,HPROPSHEETPAGE *phpage) {
17518     return This->lpVtbl->GetFirstPage(This,phpage);
17519 }
17520 static FORCEINLINE HRESULT IWebWizardExtension_GetLastPage(IWebWizardExtension* This,HPROPSHEETPAGE *phpage) {
17521     return This->lpVtbl->GetLastPage(This,phpage);
17522 }
17523 /*** IWebWizardExtension methods ***/
17524 static FORCEINLINE HRESULT IWebWizardExtension_SetInitialURL(IWebWizardExtension* This,LPCWSTR pszURL) {
17525     return This->lpVtbl->SetInitialURL(This,pszURL);
17526 }
17527 static FORCEINLINE HRESULT IWebWizardExtension_SetErrorURL(IWebWizardExtension* This,LPCWSTR pszErrorURL) {
17528     return This->lpVtbl->SetErrorURL(This,pszErrorURL);
17529 }
17530 #endif
17531 #endif
17532 
17533 #endif
17534 
17535 
17536 #endif  /* __IWebWizardExtension_INTERFACE_DEFINED__ */
17537 
17538 
17539 #define SID_WebWizardHost IID_IWebWizardExtension
17540 
17541 #define SHPWHF_NORECOMPRESS 0x00000001
17542 #define SHPWHF_NONETPLACECREATE 0x00000002
17543 #define SHPWHF_NOFILESELECTOR 0x00000004
17544 #define SHPWHF_USEMRU 0x00000008
17545 #if NTDDI_VERSION >= NTDDI_VISTA
17546 #define SHPWHF_ANYLOCATION 0x00000100
17547 #endif
17548 #define SHPWHF_VALIDATEVIAWEBFOLDERS 0x00010000
17549 
17550 #ifndef __IXMLDOMDocument_FWD_DEFINED__
17551 #define __IXMLDOMDocument_FWD_DEFINED__
17552 typedef interface IXMLDOMDocument IXMLDOMDocument;
17553 #ifdef __cplusplus
17554 interface IXMLDOMDocument;
17555 #endif /* __cplusplus */
17556 #endif
17557 
17558 
17559 /*****************************************************************************
17560  * IPublishingWizard interface
17561  */
17562 #ifndef __IPublishingWizard_INTERFACE_DEFINED__
17563 #define __IPublishingWizard_INTERFACE_DEFINED__
17564 
17565 DEFINE_GUID(IID_IPublishingWizard, 0xaa9198bb, 0xccec, 0x472d, 0xbe,0xed, 0x19,0xa4,0xf6,0x73,0x3f,0x7a);
17566 #if defined(__cplusplus) && !defined(CINTERFACE)
17567 MIDL_INTERFACE("aa9198bb-ccec-472d-beed-19a4f6733f7a")
17568 IPublishingWizard : public IWizardExtension
17569 {
17570     virtual HRESULT STDMETHODCALLTYPE Initialize(
17571         IDataObject *pdo,
17572         DWORD dwOptions,
17573         LPCWSTR pszServiceScope) = 0;
17574 
17575     virtual HRESULT STDMETHODCALLTYPE GetTransferManifest(
17576         HRESULT *phrFromTransfer,
17577         IXMLDOMDocument **pdocManifest) = 0;
17578 
17579 };
17580 #ifdef __CRT_UUID_DECL
17581 __CRT_UUID_DECL(IPublishingWizard, 0xaa9198bb, 0xccec, 0x472d, 0xbe,0xed, 0x19,0xa4,0xf6,0x73,0x3f,0x7a)
17582 #endif
17583 #else
17584 typedef struct IPublishingWizardVtbl {
17585     BEGIN_INTERFACE
17586 
17587     /*** IUnknown methods ***/
17588     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17589         IPublishingWizard *This,
17590         REFIID riid,
17591         void **ppvObject);
17592 
17593     ULONG (STDMETHODCALLTYPE *AddRef)(
17594         IPublishingWizard *This);
17595 
17596     ULONG (STDMETHODCALLTYPE *Release)(
17597         IPublishingWizard *This);
17598 
17599     /*** IWizardExtension methods ***/
17600     HRESULT (STDMETHODCALLTYPE *AddPages)(
17601         IPublishingWizard *This,
17602         HPROPSHEETPAGE *aPages,
17603         UINT cPages,
17604         UINT *pnPagesAdded);
17605 
17606     HRESULT (STDMETHODCALLTYPE *GetFirstPage)(
17607         IPublishingWizard *This,
17608         HPROPSHEETPAGE *phpage);
17609 
17610     HRESULT (STDMETHODCALLTYPE *GetLastPage)(
17611         IPublishingWizard *This,
17612         HPROPSHEETPAGE *phpage);
17613 
17614     /*** IPublishingWizard methods ***/
17615     HRESULT (STDMETHODCALLTYPE *Initialize)(
17616         IPublishingWizard *This,
17617         IDataObject *pdo,
17618         DWORD dwOptions,
17619         LPCWSTR pszServiceScope);
17620 
17621     HRESULT (STDMETHODCALLTYPE *GetTransferManifest)(
17622         IPublishingWizard *This,
17623         HRESULT *phrFromTransfer,
17624         IXMLDOMDocument **pdocManifest);
17625 
17626     END_INTERFACE
17627 } IPublishingWizardVtbl;
17628 
17629 interface IPublishingWizard {
17630     CONST_VTBL IPublishingWizardVtbl* lpVtbl;
17631 };
17632 
17633 #ifdef COBJMACROS
17634 #ifndef WIDL_C_INLINE_WRAPPERS
17635 /*** IUnknown methods ***/
17636 #define IPublishingWizard_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17637 #define IPublishingWizard_AddRef(This) (This)->lpVtbl->AddRef(This)
17638 #define IPublishingWizard_Release(This) (This)->lpVtbl->Release(This)
17639 /*** IWizardExtension methods ***/
17640 #define IPublishingWizard_AddPages(This,aPages,cPages,pnPagesAdded) (This)->lpVtbl->AddPages(This,aPages,cPages,pnPagesAdded)
17641 #define IPublishingWizard_GetFirstPage(This,phpage) (This)->lpVtbl->GetFirstPage(This,phpage)
17642 #define IPublishingWizard_GetLastPage(This,phpage) (This)->lpVtbl->GetLastPage(This,phpage)
17643 /*** IPublishingWizard methods ***/
17644 #define IPublishingWizard_Initialize(This,pdo,dwOptions,pszServiceScope) (This)->lpVtbl->Initialize(This,pdo,dwOptions,pszServiceScope)
17645 #define IPublishingWizard_GetTransferManifest(This,phrFromTransfer,pdocManifest) (This)->lpVtbl->GetTransferManifest(This,phrFromTransfer,pdocManifest)
17646 #else
17647 /*** IUnknown methods ***/
17648 static FORCEINLINE HRESULT IPublishingWizard_QueryInterface(IPublishingWizard* This,REFIID riid,void **ppvObject) {
17649     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17650 }
17651 static FORCEINLINE ULONG IPublishingWizard_AddRef(IPublishingWizard* This) {
17652     return This->lpVtbl->AddRef(This);
17653 }
17654 static FORCEINLINE ULONG IPublishingWizard_Release(IPublishingWizard* This) {
17655     return This->lpVtbl->Release(This);
17656 }
17657 /*** IWizardExtension methods ***/
17658 static FORCEINLINE HRESULT IPublishingWizard_AddPages(IPublishingWizard* This,HPROPSHEETPAGE *aPages,UINT cPages,UINT *pnPagesAdded) {
17659     return This->lpVtbl->AddPages(This,aPages,cPages,pnPagesAdded);
17660 }
17661 static FORCEINLINE HRESULT IPublishingWizard_GetFirstPage(IPublishingWizard* This,HPROPSHEETPAGE *phpage) {
17662     return This->lpVtbl->GetFirstPage(This,phpage);
17663 }
17664 static FORCEINLINE HRESULT IPublishingWizard_GetLastPage(IPublishingWizard* This,HPROPSHEETPAGE *phpage) {
17665     return This->lpVtbl->GetLastPage(This,phpage);
17666 }
17667 /*** IPublishingWizard methods ***/
17668 static FORCEINLINE HRESULT IPublishingWizard_Initialize(IPublishingWizard* This,IDataObject *pdo,DWORD dwOptions,LPCWSTR pszServiceScope) {
17669     return This->lpVtbl->Initialize(This,pdo,dwOptions,pszServiceScope);
17670 }
17671 static FORCEINLINE HRESULT IPublishingWizard_GetTransferManifest(IPublishingWizard* This,HRESULT *phrFromTransfer,IXMLDOMDocument **pdocManifest) {
17672     return This->lpVtbl->GetTransferManifest(This,phrFromTransfer,pdocManifest);
17673 }
17674 #endif
17675 #endif
17676 
17677 #endif
17678 
17679 
17680 #endif  /* __IPublishingWizard_INTERFACE_DEFINED__ */
17681 
17682 
17683 /*****************************************************************************
17684  * IFolderViewHost interface
17685  */
17686 #ifndef __IFolderViewHost_INTERFACE_DEFINED__
17687 #define __IFolderViewHost_INTERFACE_DEFINED__
17688 
17689 DEFINE_GUID(IID_IFolderViewHost, 0x1ea58f02, 0xd55a, 0x411d, 0xb0,0x9e, 0x9e,0x65,0xac,0x21,0x60,0x5b);
17690 #if defined(__cplusplus) && !defined(CINTERFACE)
17691 MIDL_INTERFACE("1ea58f02-d55a-411d-b09e-9e65ac21605b")
17692 IFolderViewHost : public IUnknown
17693 {
17694     virtual HRESULT STDMETHODCALLTYPE Initialize(
17695         HWND hwndParent,
17696         IDataObject *pdo,
17697         RECT *prc) = 0;
17698 
17699 };
17700 #ifdef __CRT_UUID_DECL
17701 __CRT_UUID_DECL(IFolderViewHost, 0x1ea58f02, 0xd55a, 0x411d, 0xb0,0x9e, 0x9e,0x65,0xac,0x21,0x60,0x5b)
17702 #endif
17703 #else
17704 typedef struct IFolderViewHostVtbl {
17705     BEGIN_INTERFACE
17706 
17707     /*** IUnknown methods ***/
17708     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17709         IFolderViewHost *This,
17710         REFIID riid,
17711         void **ppvObject);
17712 
17713     ULONG (STDMETHODCALLTYPE *AddRef)(
17714         IFolderViewHost *This);
17715 
17716     ULONG (STDMETHODCALLTYPE *Release)(
17717         IFolderViewHost *This);
17718 
17719     /*** IFolderViewHost methods ***/
17720     HRESULT (STDMETHODCALLTYPE *Initialize)(
17721         IFolderViewHost *This,
17722         HWND hwndParent,
17723         IDataObject *pdo,
17724         RECT *prc);
17725 
17726     END_INTERFACE
17727 } IFolderViewHostVtbl;
17728 
17729 interface IFolderViewHost {
17730     CONST_VTBL IFolderViewHostVtbl* lpVtbl;
17731 };
17732 
17733 #ifdef COBJMACROS
17734 #ifndef WIDL_C_INLINE_WRAPPERS
17735 /*** IUnknown methods ***/
17736 #define IFolderViewHost_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17737 #define IFolderViewHost_AddRef(This) (This)->lpVtbl->AddRef(This)
17738 #define IFolderViewHost_Release(This) (This)->lpVtbl->Release(This)
17739 /*** IFolderViewHost methods ***/
17740 #define IFolderViewHost_Initialize(This,hwndParent,pdo,prc) (This)->lpVtbl->Initialize(This,hwndParent,pdo,prc)
17741 #else
17742 /*** IUnknown methods ***/
17743 static FORCEINLINE HRESULT IFolderViewHost_QueryInterface(IFolderViewHost* This,REFIID riid,void **ppvObject) {
17744     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17745 }
17746 static FORCEINLINE ULONG IFolderViewHost_AddRef(IFolderViewHost* This) {
17747     return This->lpVtbl->AddRef(This);
17748 }
17749 static FORCEINLINE ULONG IFolderViewHost_Release(IFolderViewHost* This) {
17750     return This->lpVtbl->Release(This);
17751 }
17752 /*** IFolderViewHost methods ***/
17753 static FORCEINLINE HRESULT IFolderViewHost_Initialize(IFolderViewHost* This,HWND hwndParent,IDataObject *pdo,RECT *prc) {
17754     return This->lpVtbl->Initialize(This,hwndParent,pdo,prc);
17755 }
17756 #endif
17757 #endif
17758 
17759 #endif
17760 
17761 
17762 #endif  /* __IFolderViewHost_INTERFACE_DEFINED__ */
17763 
17764 
17765 #if _WIN32_IE >= _WIN32_IE_IE70
17766 /*****************************************************************************
17767  * IExplorerBrowserEvents interface
17768  */
17769 #ifndef __IExplorerBrowserEvents_INTERFACE_DEFINED__
17770 #define __IExplorerBrowserEvents_INTERFACE_DEFINED__
17771 
17772 DEFINE_GUID(IID_IExplorerBrowserEvents, 0x361bbdc7, 0xe6ee, 0x4e13, 0xbe,0x58, 0x58,0xe2,0x24,0x0c,0x81,0x0f);
17773 #if defined(__cplusplus) && !defined(CINTERFACE)
17774 MIDL_INTERFACE("361bbdc7-e6ee-4e13-be58-58e2240c810f")
17775 IExplorerBrowserEvents : public IUnknown
17776 {
17777     virtual HRESULT STDMETHODCALLTYPE OnNavigationPending(
17778         PCIDLIST_ABSOLUTE pidlFolder) = 0;
17779 
17780     virtual HRESULT STDMETHODCALLTYPE OnViewCreated(
17781         IShellView *psv) = 0;
17782 
17783     virtual HRESULT STDMETHODCALLTYPE OnNavigationComplete(
17784         PCIDLIST_ABSOLUTE pidlFolder) = 0;
17785 
17786     virtual HRESULT STDMETHODCALLTYPE OnNavigationFailed(
17787         PCIDLIST_ABSOLUTE pidlFolder) = 0;
17788 
17789 };
17790 #ifdef __CRT_UUID_DECL
17791 __CRT_UUID_DECL(IExplorerBrowserEvents, 0x361bbdc7, 0xe6ee, 0x4e13, 0xbe,0x58, 0x58,0xe2,0x24,0x0c,0x81,0x0f)
17792 #endif
17793 #else
17794 typedef struct IExplorerBrowserEventsVtbl {
17795     BEGIN_INTERFACE
17796 
17797     /*** IUnknown methods ***/
17798     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17799         IExplorerBrowserEvents *This,
17800         REFIID riid,
17801         void **ppvObject);
17802 
17803     ULONG (STDMETHODCALLTYPE *AddRef)(
17804         IExplorerBrowserEvents *This);
17805 
17806     ULONG (STDMETHODCALLTYPE *Release)(
17807         IExplorerBrowserEvents *This);
17808 
17809     /*** IExplorerBrowserEvents methods ***/
17810     HRESULT (STDMETHODCALLTYPE *OnNavigationPending)(
17811         IExplorerBrowserEvents *This,
17812         PCIDLIST_ABSOLUTE pidlFolder);
17813 
17814     HRESULT (STDMETHODCALLTYPE *OnViewCreated)(
17815         IExplorerBrowserEvents *This,
17816         IShellView *psv);
17817 
17818     HRESULT (STDMETHODCALLTYPE *OnNavigationComplete)(
17819         IExplorerBrowserEvents *This,
17820         PCIDLIST_ABSOLUTE pidlFolder);
17821 
17822     HRESULT (STDMETHODCALLTYPE *OnNavigationFailed)(
17823         IExplorerBrowserEvents *This,
17824         PCIDLIST_ABSOLUTE pidlFolder);
17825 
17826     END_INTERFACE
17827 } IExplorerBrowserEventsVtbl;
17828 
17829 interface IExplorerBrowserEvents {
17830     CONST_VTBL IExplorerBrowserEventsVtbl* lpVtbl;
17831 };
17832 
17833 #ifdef COBJMACROS
17834 #ifndef WIDL_C_INLINE_WRAPPERS
17835 /*** IUnknown methods ***/
17836 #define IExplorerBrowserEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17837 #define IExplorerBrowserEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
17838 #define IExplorerBrowserEvents_Release(This) (This)->lpVtbl->Release(This)
17839 /*** IExplorerBrowserEvents methods ***/
17840 #define IExplorerBrowserEvents_OnNavigationPending(This,pidlFolder) (This)->lpVtbl->OnNavigationPending(This,pidlFolder)
17841 #define IExplorerBrowserEvents_OnViewCreated(This,psv) (This)->lpVtbl->OnViewCreated(This,psv)
17842 #define IExplorerBrowserEvents_OnNavigationComplete(This,pidlFolder) (This)->lpVtbl->OnNavigationComplete(This,pidlFolder)
17843 #define IExplorerBrowserEvents_OnNavigationFailed(This,pidlFolder) (This)->lpVtbl->OnNavigationFailed(This,pidlFolder)
17844 #else
17845 /*** IUnknown methods ***/
17846 static FORCEINLINE HRESULT IExplorerBrowserEvents_QueryInterface(IExplorerBrowserEvents* This,REFIID riid,void **ppvObject) {
17847     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17848 }
17849 static FORCEINLINE ULONG IExplorerBrowserEvents_AddRef(IExplorerBrowserEvents* This) {
17850     return This->lpVtbl->AddRef(This);
17851 }
17852 static FORCEINLINE ULONG IExplorerBrowserEvents_Release(IExplorerBrowserEvents* This) {
17853     return This->lpVtbl->Release(This);
17854 }
17855 /*** IExplorerBrowserEvents methods ***/
17856 static FORCEINLINE HRESULT IExplorerBrowserEvents_OnNavigationPending(IExplorerBrowserEvents* This,PCIDLIST_ABSOLUTE pidlFolder) {
17857     return This->lpVtbl->OnNavigationPending(This,pidlFolder);
17858 }
17859 static FORCEINLINE HRESULT IExplorerBrowserEvents_OnViewCreated(IExplorerBrowserEvents* This,IShellView *psv) {
17860     return This->lpVtbl->OnViewCreated(This,psv);
17861 }
17862 static FORCEINLINE HRESULT IExplorerBrowserEvents_OnNavigationComplete(IExplorerBrowserEvents* This,PCIDLIST_ABSOLUTE pidlFolder) {
17863     return This->lpVtbl->OnNavigationComplete(This,pidlFolder);
17864 }
17865 static FORCEINLINE HRESULT IExplorerBrowserEvents_OnNavigationFailed(IExplorerBrowserEvents* This,PCIDLIST_ABSOLUTE pidlFolder) {
17866     return This->lpVtbl->OnNavigationFailed(This,pidlFolder);
17867 }
17868 #endif
17869 #endif
17870 
17871 #endif
17872 
17873 
17874 #endif  /* __IExplorerBrowserEvents_INTERFACE_DEFINED__ */
17875 
17876 
17877 typedef enum EXPLORER_BROWSER_OPTIONS {
17878     EBO_NONE = 0x0,
17879     EBO_NAVIGATEONCE = 0x1,
17880     EBO_SHOWFRAMES = 0x2,
17881     EBO_ALWAYSNAVIGATE = 0x4,
17882     EBO_NOTRAVELLOG = 0x8,
17883     EBO_NOWRAPPERWINDOW = 0x10,
17884     EBO_HTMLSHAREPOINTVIEW = 0x20,
17885     EBO_NOBORDER = 0x40,
17886     EBO_NOPERSISTVIEWSTATE = 0x80
17887 } EXPLORER_BROWSER_OPTIONS;
17888 
17889 DEFINE_ENUM_FLAG_OPERATORS(EXPLORER_BROWSER_OPTIONS)
17890 
17891 typedef enum EXPLORER_BROWSER_FILL_FLAGS {
17892     EBF_NONE = 0x0,
17893     EBF_SELECTFROMDATAOBJECT = 0x100,
17894     EBF_NODROPTARGET = 0x200
17895 } EXPLORER_BROWSER_FILL_FLAGS;
17896 
17897 DEFINE_ENUM_FLAG_OPERATORS(EXPLORER_BROWSER_FILL_FLAGS)
17898 
17899 /*****************************************************************************
17900  * IExplorerBrowser interface
17901  */
17902 #ifndef __IExplorerBrowser_INTERFACE_DEFINED__
17903 #define __IExplorerBrowser_INTERFACE_DEFINED__
17904 
17905 DEFINE_GUID(IID_IExplorerBrowser, 0xdfd3b6b5, 0xc10c, 0x4be9, 0x85,0xf6, 0xa6,0x69,0x69,0xf4,0x02,0xf6);
17906 #if defined(__cplusplus) && !defined(CINTERFACE)
17907 MIDL_INTERFACE("dfd3b6b5-c10c-4be9-85f6-a66969f402f6")
17908 IExplorerBrowser : public IUnknown
17909 {
17910     virtual HRESULT STDMETHODCALLTYPE Initialize(
17911         HWND hwndParent,
17912         const RECT *prc,
17913         const FOLDERSETTINGS *pfs) = 0;
17914 
17915     virtual HRESULT STDMETHODCALLTYPE Destroy(
17916         ) = 0;
17917 
17918     virtual HRESULT STDMETHODCALLTYPE SetRect(
17919         HDWP *phdwp,
17920         RECT rcBrowser) = 0;
17921 
17922     virtual HRESULT STDMETHODCALLTYPE SetPropertyBag(
17923         LPCWSTR pszPropertyBag) = 0;
17924 
17925     virtual HRESULT STDMETHODCALLTYPE SetEmptyText(
17926         LPCWSTR pszEmptyText) = 0;
17927 
17928     virtual HRESULT STDMETHODCALLTYPE SetFolderSettings(
17929         const FOLDERSETTINGS *pfs) = 0;
17930 
17931     virtual HRESULT STDMETHODCALLTYPE Advise(
17932         IExplorerBrowserEvents *psbe,
17933         DWORD *pdwCookie) = 0;
17934 
17935     virtual HRESULT STDMETHODCALLTYPE Unadvise(
17936         DWORD dwCookie) = 0;
17937 
17938     virtual HRESULT STDMETHODCALLTYPE SetOptions(
17939         EXPLORER_BROWSER_OPTIONS dwFlag) = 0;
17940 
17941     virtual HRESULT STDMETHODCALLTYPE GetOptions(
17942         EXPLORER_BROWSER_OPTIONS *pdwFlag) = 0;
17943 
17944     virtual HRESULT STDMETHODCALLTYPE BrowseToIDList(
17945         PCUIDLIST_RELATIVE pidl,
17946         UINT uFlags) = 0;
17947 
17948     virtual HRESULT STDMETHODCALLTYPE BrowseToObject(
17949         IUnknown *punk,
17950         UINT uFlags) = 0;
17951 
17952     virtual HRESULT STDMETHODCALLTYPE FillFromObject(
17953         IUnknown *punk,
17954         EXPLORER_BROWSER_FILL_FLAGS dwFlags) = 0;
17955 
17956     virtual HRESULT STDMETHODCALLTYPE RemoveAll(
17957         ) = 0;
17958 
17959     virtual HRESULT STDMETHODCALLTYPE GetCurrentView(
17960         REFIID riid,
17961         void **ppv) = 0;
17962 
17963 };
17964 #ifdef __CRT_UUID_DECL
17965 __CRT_UUID_DECL(IExplorerBrowser, 0xdfd3b6b5, 0xc10c, 0x4be9, 0x85,0xf6, 0xa6,0x69,0x69,0xf4,0x02,0xf6)
17966 #endif
17967 #else
17968 typedef struct IExplorerBrowserVtbl {
17969     BEGIN_INTERFACE
17970 
17971     /*** IUnknown methods ***/
17972     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17973         IExplorerBrowser *This,
17974         REFIID riid,
17975         void **ppvObject);
17976 
17977     ULONG (STDMETHODCALLTYPE *AddRef)(
17978         IExplorerBrowser *This);
17979 
17980     ULONG (STDMETHODCALLTYPE *Release)(
17981         IExplorerBrowser *This);
17982 
17983     /*** IExplorerBrowser methods ***/
17984     HRESULT (STDMETHODCALLTYPE *Initialize)(
17985         IExplorerBrowser *This,
17986         HWND hwndParent,
17987         const RECT *prc,
17988         const FOLDERSETTINGS *pfs);
17989 
17990     HRESULT (STDMETHODCALLTYPE *Destroy)(
17991         IExplorerBrowser *This);
17992 
17993     HRESULT (STDMETHODCALLTYPE *SetRect)(
17994         IExplorerBrowser *This,
17995         HDWP *phdwp,
17996         RECT rcBrowser);
17997 
17998     HRESULT (STDMETHODCALLTYPE *SetPropertyBag)(
17999         IExplorerBrowser *This,
18000         LPCWSTR pszPropertyBag);
18001 
18002     HRESULT (STDMETHODCALLTYPE *SetEmptyText)(
18003         IExplorerBrowser *This,
18004         LPCWSTR pszEmptyText);
18005 
18006     HRESULT (STDMETHODCALLTYPE *SetFolderSettings)(
18007         IExplorerBrowser *This,
18008         const FOLDERSETTINGS *pfs);
18009 
18010     HRESULT (STDMETHODCALLTYPE *Advise)(
18011         IExplorerBrowser *This,
18012         IExplorerBrowserEvents *psbe,
18013         DWORD *pdwCookie);
18014 
18015     HRESULT (STDMETHODCALLTYPE *Unadvise)(
18016         IExplorerBrowser *This,
18017         DWORD dwCookie);
18018 
18019     HRESULT (STDMETHODCALLTYPE *SetOptions)(
18020         IExplorerBrowser *This,
18021         EXPLORER_BROWSER_OPTIONS dwFlag);
18022 
18023     HRESULT (STDMETHODCALLTYPE *GetOptions)(
18024         IExplorerBrowser *This,
18025         EXPLORER_BROWSER_OPTIONS *pdwFlag);
18026 
18027     HRESULT (STDMETHODCALLTYPE *BrowseToIDList)(
18028         IExplorerBrowser *This,
18029         PCUIDLIST_RELATIVE pidl,
18030         UINT uFlags);
18031 
18032     HRESULT (STDMETHODCALLTYPE *BrowseToObject)(
18033         IExplorerBrowser *This,
18034         IUnknown *punk,
18035         UINT uFlags);
18036 
18037     HRESULT (STDMETHODCALLTYPE *FillFromObject)(
18038         IExplorerBrowser *This,
18039         IUnknown *punk,
18040         EXPLORER_BROWSER_FILL_FLAGS dwFlags);
18041 
18042     HRESULT (STDMETHODCALLTYPE *RemoveAll)(
18043         IExplorerBrowser *This);
18044 
18045     HRESULT (STDMETHODCALLTYPE *GetCurrentView)(
18046         IExplorerBrowser *This,
18047         REFIID riid,
18048         void **ppv);
18049 
18050     END_INTERFACE
18051 } IExplorerBrowserVtbl;
18052 
18053 interface IExplorerBrowser {
18054     CONST_VTBL IExplorerBrowserVtbl* lpVtbl;
18055 };
18056 
18057 #ifdef COBJMACROS
18058 #ifndef WIDL_C_INLINE_WRAPPERS
18059 /*** IUnknown methods ***/
18060 #define IExplorerBrowser_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18061 #define IExplorerBrowser_AddRef(This) (This)->lpVtbl->AddRef(This)
18062 #define IExplorerBrowser_Release(This) (This)->lpVtbl->Release(This)
18063 /*** IExplorerBrowser methods ***/
18064 #define IExplorerBrowser_Initialize(This,hwndParent,prc,pfs) (This)->lpVtbl->Initialize(This,hwndParent,prc,pfs)
18065 #define IExplorerBrowser_Destroy(This) (This)->lpVtbl->Destroy(This)
18066 #define IExplorerBrowser_SetRect(This,phdwp,rcBrowser) (This)->lpVtbl->SetRect(This,phdwp,rcBrowser)
18067 #define IExplorerBrowser_SetPropertyBag(This,pszPropertyBag) (This)->lpVtbl->SetPropertyBag(This,pszPropertyBag)
18068 #define IExplorerBrowser_SetEmptyText(This,pszEmptyText) (This)->lpVtbl->SetEmptyText(This,pszEmptyText)
18069 #define IExplorerBrowser_SetFolderSettings(This,pfs) (This)->lpVtbl->SetFolderSettings(This,pfs)
18070 #define IExplorerBrowser_Advise(This,psbe,pdwCookie) (This)->lpVtbl->Advise(This,psbe,pdwCookie)
18071 #define IExplorerBrowser_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
18072 #define IExplorerBrowser_SetOptions(This,dwFlag) (This)->lpVtbl->SetOptions(This,dwFlag)
18073 #define IExplorerBrowser_GetOptions(This,pdwFlag) (This)->lpVtbl->GetOptions(This,pdwFlag)
18074 #define IExplorerBrowser_BrowseToIDList(This,pidl,uFlags) (This)->lpVtbl->BrowseToIDList(This,pidl,uFlags)
18075 #define IExplorerBrowser_BrowseToObject(This,punk,uFlags) (This)->lpVtbl->BrowseToObject(This,punk,uFlags)
18076 #define IExplorerBrowser_FillFromObject(This,punk,dwFlags) (This)->lpVtbl->FillFromObject(This,punk,dwFlags)
18077 #define IExplorerBrowser_RemoveAll(This) (This)->lpVtbl->RemoveAll(This)
18078 #define IExplorerBrowser_GetCurrentView(This,riid,ppv) (This)->lpVtbl->GetCurrentView(This,riid,ppv)
18079 #else
18080 /*** IUnknown methods ***/
18081 static FORCEINLINE HRESULT IExplorerBrowser_QueryInterface(IExplorerBrowser* This,REFIID riid,void **ppvObject) {
18082     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18083 }
18084 static FORCEINLINE ULONG IExplorerBrowser_AddRef(IExplorerBrowser* This) {
18085     return This->lpVtbl->AddRef(This);
18086 }
18087 static FORCEINLINE ULONG IExplorerBrowser_Release(IExplorerBrowser* This) {
18088     return This->lpVtbl->Release(This);
18089 }
18090 /*** IExplorerBrowser methods ***/
18091 static FORCEINLINE HRESULT IExplorerBrowser_Initialize(IExplorerBrowser* This,HWND hwndParent,const RECT *prc,const FOLDERSETTINGS *pfs) {
18092     return This->lpVtbl->Initialize(This,hwndParent,prc,pfs);
18093 }
18094 static FORCEINLINE HRESULT IExplorerBrowser_Destroy(IExplorerBrowser* This) {
18095     return This->lpVtbl->Destroy(This);
18096 }
18097 static FORCEINLINE HRESULT IExplorerBrowser_SetRect(IExplorerBrowser* This,HDWP *phdwp,RECT rcBrowser) {
18098     return This->lpVtbl->SetRect(This,phdwp,rcBrowser);
18099 }
18100 static FORCEINLINE HRESULT IExplorerBrowser_SetPropertyBag(IExplorerBrowser* This,LPCWSTR pszPropertyBag) {
18101     return This->lpVtbl->SetPropertyBag(This,pszPropertyBag);
18102 }
18103 static FORCEINLINE HRESULT IExplorerBrowser_SetEmptyText(IExplorerBrowser* This,LPCWSTR pszEmptyText) {
18104     return This->lpVtbl->SetEmptyText(This,pszEmptyText);
18105 }
18106 static FORCEINLINE HRESULT IExplorerBrowser_SetFolderSettings(IExplorerBrowser* This,const FOLDERSETTINGS *pfs) {
18107     return This->lpVtbl->SetFolderSettings(This,pfs);
18108 }
18109 static FORCEINLINE HRESULT IExplorerBrowser_Advise(IExplorerBrowser* This,IExplorerBrowserEvents *psbe,DWORD *pdwCookie) {
18110     return This->lpVtbl->Advise(This,psbe,pdwCookie);
18111 }
18112 static FORCEINLINE HRESULT IExplorerBrowser_Unadvise(IExplorerBrowser* This,DWORD dwCookie) {
18113     return This->lpVtbl->Unadvise(This,dwCookie);
18114 }
18115 static FORCEINLINE HRESULT IExplorerBrowser_SetOptions(IExplorerBrowser* This,EXPLORER_BROWSER_OPTIONS dwFlag) {
18116     return This->lpVtbl->SetOptions(This,dwFlag);
18117 }
18118 static FORCEINLINE HRESULT IExplorerBrowser_GetOptions(IExplorerBrowser* This,EXPLORER_BROWSER_OPTIONS *pdwFlag) {
18119     return This->lpVtbl->GetOptions(This,pdwFlag);
18120 }
18121 static FORCEINLINE HRESULT IExplorerBrowser_BrowseToIDList(IExplorerBrowser* This,PCUIDLIST_RELATIVE pidl,UINT uFlags) {
18122     return This->lpVtbl->BrowseToIDList(This,pidl,uFlags);
18123 }
18124 static FORCEINLINE HRESULT IExplorerBrowser_BrowseToObject(IExplorerBrowser* This,IUnknown *punk,UINT uFlags) {
18125     return This->lpVtbl->BrowseToObject(This,punk,uFlags);
18126 }
18127 static FORCEINLINE HRESULT IExplorerBrowser_FillFromObject(IExplorerBrowser* This,IUnknown *punk,EXPLORER_BROWSER_FILL_FLAGS dwFlags) {
18128     return This->lpVtbl->FillFromObject(This,punk,dwFlags);
18129 }
18130 static FORCEINLINE HRESULT IExplorerBrowser_RemoveAll(IExplorerBrowser* This) {
18131     return This->lpVtbl->RemoveAll(This);
18132 }
18133 static FORCEINLINE HRESULT IExplorerBrowser_GetCurrentView(IExplorerBrowser* This,REFIID riid,void **ppv) {
18134     return This->lpVtbl->GetCurrentView(This,riid,ppv);
18135 }
18136 #endif
18137 #endif
18138 
18139 #endif
18140 
18141 
18142 #endif  /* __IExplorerBrowser_INTERFACE_DEFINED__ */
18143 
18144 
18145 /*****************************************************************************
18146  * IAccessibleObject interface
18147  */
18148 #ifndef __IAccessibleObject_INTERFACE_DEFINED__
18149 #define __IAccessibleObject_INTERFACE_DEFINED__
18150 
18151 DEFINE_GUID(IID_IAccessibleObject, 0x95a391c5, 0x9ed4, 0x4c28, 0x84,0x01, 0xab,0x9e,0x06,0x71,0x9e,0x11);
18152 #if defined(__cplusplus) && !defined(CINTERFACE)
18153 MIDL_INTERFACE("95a391c5-9ed4-4c28-8401-ab9e06719e11")
18154 IAccessibleObject : public IUnknown
18155 {
18156     virtual HRESULT STDMETHODCALLTYPE SetAccessibleName(
18157         LPCWSTR pszName) = 0;
18158 
18159 };
18160 #ifdef __CRT_UUID_DECL
18161 __CRT_UUID_DECL(IAccessibleObject, 0x95a391c5, 0x9ed4, 0x4c28, 0x84,0x01, 0xab,0x9e,0x06,0x71,0x9e,0x11)
18162 #endif
18163 #else
18164 typedef struct IAccessibleObjectVtbl {
18165     BEGIN_INTERFACE
18166 
18167     /*** IUnknown methods ***/
18168     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18169         IAccessibleObject *This,
18170         REFIID riid,
18171         void **ppvObject);
18172 
18173     ULONG (STDMETHODCALLTYPE *AddRef)(
18174         IAccessibleObject *This);
18175 
18176     ULONG (STDMETHODCALLTYPE *Release)(
18177         IAccessibleObject *This);
18178 
18179     /*** IAccessibleObject methods ***/
18180     HRESULT (STDMETHODCALLTYPE *SetAccessibleName)(
18181         IAccessibleObject *This,
18182         LPCWSTR pszName);
18183 
18184     END_INTERFACE
18185 } IAccessibleObjectVtbl;
18186 
18187 interface IAccessibleObject {
18188     CONST_VTBL IAccessibleObjectVtbl* lpVtbl;
18189 };
18190 
18191 #ifdef COBJMACROS
18192 #ifndef WIDL_C_INLINE_WRAPPERS
18193 /*** IUnknown methods ***/
18194 #define IAccessibleObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18195 #define IAccessibleObject_AddRef(This) (This)->lpVtbl->AddRef(This)
18196 #define IAccessibleObject_Release(This) (This)->lpVtbl->Release(This)
18197 /*** IAccessibleObject methods ***/
18198 #define IAccessibleObject_SetAccessibleName(This,pszName) (This)->lpVtbl->SetAccessibleName(This,pszName)
18199 #else
18200 /*** IUnknown methods ***/
18201 static FORCEINLINE HRESULT IAccessibleObject_QueryInterface(IAccessibleObject* This,REFIID riid,void **ppvObject) {
18202     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18203 }
18204 static FORCEINLINE ULONG IAccessibleObject_AddRef(IAccessibleObject* This) {
18205     return This->lpVtbl->AddRef(This);
18206 }
18207 static FORCEINLINE ULONG IAccessibleObject_Release(IAccessibleObject* This) {
18208     return This->lpVtbl->Release(This);
18209 }
18210 /*** IAccessibleObject methods ***/
18211 static FORCEINLINE HRESULT IAccessibleObject_SetAccessibleName(IAccessibleObject* This,LPCWSTR pszName) {
18212     return This->lpVtbl->SetAccessibleName(This,pszName);
18213 }
18214 #endif
18215 #endif
18216 
18217 #endif
18218 
18219 
18220 #endif  /* __IAccessibleObject_INTERFACE_DEFINED__ */
18221 
18222 #endif
18223 
18224 /*****************************************************************************
18225  * IResultsFolder interface
18226  */
18227 #ifndef __IResultsFolder_INTERFACE_DEFINED__
18228 #define __IResultsFolder_INTERFACE_DEFINED__
18229 
18230 DEFINE_GUID(IID_IResultsFolder, 0x96e5ae6d, 0x6ae1, 0x4b1c, 0x90,0x0c, 0xc6,0x48,0x0e,0xaa,0x88,0x28);
18231 #if defined(__cplusplus) && !defined(CINTERFACE)
18232 MIDL_INTERFACE("96e5ae6d-6ae1-4b1c-900c-c6480eaa8828")
18233 IResultsFolder : public IUnknown
18234 {
18235     virtual HRESULT STDMETHODCALLTYPE AddItem(
18236         IShellItem *psi) = 0;
18237 
18238     virtual HRESULT STDMETHODCALLTYPE AddIDList(
18239         PCIDLIST_ABSOLUTE pidl,
18240         PITEMID_CHILD *ppidlAdded) = 0;
18241 
18242     virtual HRESULT STDMETHODCALLTYPE RemoveItem(
18243         IShellItem *psi) = 0;
18244 
18245     virtual HRESULT STDMETHODCALLTYPE RemoveIDList(
18246         PCIDLIST_ABSOLUTE pidl) = 0;
18247 
18248     virtual HRESULT STDMETHODCALLTYPE RemoveAll(
18249         ) = 0;
18250 
18251 };
18252 #ifdef __CRT_UUID_DECL
18253 __CRT_UUID_DECL(IResultsFolder, 0x96e5ae6d, 0x6ae1, 0x4b1c, 0x90,0x0c, 0xc6,0x48,0x0e,0xaa,0x88,0x28)
18254 #endif
18255 #else
18256 typedef struct IResultsFolderVtbl {
18257     BEGIN_INTERFACE
18258 
18259     /*** IUnknown methods ***/
18260     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18261         IResultsFolder *This,
18262         REFIID riid,
18263         void **ppvObject);
18264 
18265     ULONG (STDMETHODCALLTYPE *AddRef)(
18266         IResultsFolder *This);
18267 
18268     ULONG (STDMETHODCALLTYPE *Release)(
18269         IResultsFolder *This);
18270 
18271     /*** IResultsFolder methods ***/
18272     HRESULT (STDMETHODCALLTYPE *AddItem)(
18273         IResultsFolder *This,
18274         IShellItem *psi);
18275 
18276     HRESULT (STDMETHODCALLTYPE *AddIDList)(
18277         IResultsFolder *This,
18278         PCIDLIST_ABSOLUTE pidl,
18279         PITEMID_CHILD *ppidlAdded);
18280 
18281     HRESULT (STDMETHODCALLTYPE *RemoveItem)(
18282         IResultsFolder *This,
18283         IShellItem *psi);
18284 
18285     HRESULT (STDMETHODCALLTYPE *RemoveIDList)(
18286         IResultsFolder *This,
18287         PCIDLIST_ABSOLUTE pidl);
18288 
18289     HRESULT (STDMETHODCALLTYPE *RemoveAll)(
18290         IResultsFolder *This);
18291 
18292     END_INTERFACE
18293 } IResultsFolderVtbl;
18294 
18295 interface IResultsFolder {
18296     CONST_VTBL IResultsFolderVtbl* lpVtbl;
18297 };
18298 
18299 #ifdef COBJMACROS
18300 #ifndef WIDL_C_INLINE_WRAPPERS
18301 /*** IUnknown methods ***/
18302 #define IResultsFolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18303 #define IResultsFolder_AddRef(This) (This)->lpVtbl->AddRef(This)
18304 #define IResultsFolder_Release(This) (This)->lpVtbl->Release(This)
18305 /*** IResultsFolder methods ***/
18306 #define IResultsFolder_AddItem(This,psi) (This)->lpVtbl->AddItem(This,psi)
18307 #define IResultsFolder_AddIDList(This,pidl,ppidlAdded) (This)->lpVtbl->AddIDList(This,pidl,ppidlAdded)
18308 #define IResultsFolder_RemoveItem(This,psi) (This)->lpVtbl->RemoveItem(This,psi)
18309 #define IResultsFolder_RemoveIDList(This,pidl) (This)->lpVtbl->RemoveIDList(This,pidl)
18310 #define IResultsFolder_RemoveAll(This) (This)->lpVtbl->RemoveAll(This)
18311 #else
18312 /*** IUnknown methods ***/
18313 static FORCEINLINE HRESULT IResultsFolder_QueryInterface(IResultsFolder* This,REFIID riid,void **ppvObject) {
18314     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18315 }
18316 static FORCEINLINE ULONG IResultsFolder_AddRef(IResultsFolder* This) {
18317     return This->lpVtbl->AddRef(This);
18318 }
18319 static FORCEINLINE ULONG IResultsFolder_Release(IResultsFolder* This) {
18320     return This->lpVtbl->Release(This);
18321 }
18322 /*** IResultsFolder methods ***/
18323 static FORCEINLINE HRESULT IResultsFolder_AddItem(IResultsFolder* This,IShellItem *psi) {
18324     return This->lpVtbl->AddItem(This,psi);
18325 }
18326 static FORCEINLINE HRESULT IResultsFolder_AddIDList(IResultsFolder* This,PCIDLIST_ABSOLUTE pidl,PITEMID_CHILD *ppidlAdded) {
18327     return This->lpVtbl->AddIDList(This,pidl,ppidlAdded);
18328 }
18329 static FORCEINLINE HRESULT IResultsFolder_RemoveItem(IResultsFolder* This,IShellItem *psi) {
18330     return This->lpVtbl->RemoveItem(This,psi);
18331 }
18332 static FORCEINLINE HRESULT IResultsFolder_RemoveIDList(IResultsFolder* This,PCIDLIST_ABSOLUTE pidl) {
18333     return This->lpVtbl->RemoveIDList(This,pidl);
18334 }
18335 static FORCEINLINE HRESULT IResultsFolder_RemoveAll(IResultsFolder* This) {
18336     return This->lpVtbl->RemoveAll(This);
18337 }
18338 #endif
18339 #endif
18340 
18341 #endif
18342 
18343 HRESULT STDMETHODCALLTYPE IResultsFolder_RemoteAddIDList_Proxy(
18344     IResultsFolder* This,
18345     PCIDLIST_ABSOLUTE pidl,
18346     PITEMID_CHILD *ppidlAdded);
18347 void __RPC_STUB IResultsFolder_RemoteAddIDList_Stub(
18348     IRpcStubBuffer* This,
18349     IRpcChannelBuffer* pRpcChannelBuffer,
18350     PRPC_MESSAGE pRpcMessage,
18351     DWORD* pdwStubPhase);
18352 HRESULT CALLBACK IResultsFolder_AddIDList_Proxy(
18353     IResultsFolder* This,
18354     PCIDLIST_ABSOLUTE pidl,
18355     PITEMID_CHILD *ppidlAdded);
18356 HRESULT __RPC_STUB IResultsFolder_AddIDList_Stub(
18357     IResultsFolder* This,
18358     PCIDLIST_ABSOLUTE pidl,
18359     PITEMID_CHILD *ppidlAdded);
18360 
18361 #endif  /* __IResultsFolder_INTERFACE_DEFINED__ */
18362 
18363 #if _WIN32_IE >= _WIN32_IE_IE70
18364 /*****************************************************************************
18365  * IEnumObjects interface
18366  */
18367 #ifndef __IEnumObjects_INTERFACE_DEFINED__
18368 #define __IEnumObjects_INTERFACE_DEFINED__
18369 
18370 DEFINE_GUID(IID_IEnumObjects, 0x2c1c7e2e, 0x2d0e, 0x4059, 0x83,0x1e, 0x1e,0x6f,0x82,0x33,0x5c,0x2e);
18371 #if defined(__cplusplus) && !defined(CINTERFACE)
18372 MIDL_INTERFACE("2c1c7e2e-2d0e-4059-831e-1e6f82335c2e")
18373 IEnumObjects : public IUnknown
18374 {
18375     virtual HRESULT STDMETHODCALLTYPE Next(
18376         ULONG celt,
18377         REFIID riid,
18378         void **rgelt,
18379         ULONG *pceltFetched) = 0;
18380 
18381     virtual HRESULT STDMETHODCALLTYPE Skip(
18382         ULONG celt) = 0;
18383 
18384     virtual HRESULT STDMETHODCALLTYPE Reset(
18385         ) = 0;
18386 
18387     virtual HRESULT STDMETHODCALLTYPE Clone(
18388         IEnumObjects **ppenum) = 0;
18389 
18390 };
18391 #ifdef __CRT_UUID_DECL
18392 __CRT_UUID_DECL(IEnumObjects, 0x2c1c7e2e, 0x2d0e, 0x4059, 0x83,0x1e, 0x1e,0x6f,0x82,0x33,0x5c,0x2e)
18393 #endif
18394 #else
18395 typedef struct IEnumObjectsVtbl {
18396     BEGIN_INTERFACE
18397 
18398     /*** IUnknown methods ***/
18399     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18400         IEnumObjects *This,
18401         REFIID riid,
18402         void **ppvObject);
18403 
18404     ULONG (STDMETHODCALLTYPE *AddRef)(
18405         IEnumObjects *This);
18406 
18407     ULONG (STDMETHODCALLTYPE *Release)(
18408         IEnumObjects *This);
18409 
18410     /*** IEnumObjects methods ***/
18411     HRESULT (STDMETHODCALLTYPE *Next)(
18412         IEnumObjects *This,
18413         ULONG celt,
18414         REFIID riid,
18415         void **rgelt,
18416         ULONG *pceltFetched);
18417 
18418     HRESULT (STDMETHODCALLTYPE *Skip)(
18419         IEnumObjects *This,
18420         ULONG celt);
18421 
18422     HRESULT (STDMETHODCALLTYPE *Reset)(
18423         IEnumObjects *This);
18424 
18425     HRESULT (STDMETHODCALLTYPE *Clone)(
18426         IEnumObjects *This,
18427         IEnumObjects **ppenum);
18428 
18429     END_INTERFACE
18430 } IEnumObjectsVtbl;
18431 
18432 interface IEnumObjects {
18433     CONST_VTBL IEnumObjectsVtbl* lpVtbl;
18434 };
18435 
18436 #ifdef COBJMACROS
18437 #ifndef WIDL_C_INLINE_WRAPPERS
18438 /*** IUnknown methods ***/
18439 #define IEnumObjects_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18440 #define IEnumObjects_AddRef(This) (This)->lpVtbl->AddRef(This)
18441 #define IEnumObjects_Release(This) (This)->lpVtbl->Release(This)
18442 /*** IEnumObjects methods ***/
18443 #define IEnumObjects_Next(This,celt,riid,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,riid,rgelt,pceltFetched)
18444 #define IEnumObjects_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
18445 #define IEnumObjects_Reset(This) (This)->lpVtbl->Reset(This)
18446 #define IEnumObjects_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
18447 #else
18448 /*** IUnknown methods ***/
18449 static FORCEINLINE HRESULT IEnumObjects_QueryInterface(IEnumObjects* This,REFIID riid,void **ppvObject) {
18450     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18451 }
18452 static FORCEINLINE ULONG IEnumObjects_AddRef(IEnumObjects* This) {
18453     return This->lpVtbl->AddRef(This);
18454 }
18455 static FORCEINLINE ULONG IEnumObjects_Release(IEnumObjects* This) {
18456     return This->lpVtbl->Release(This);
18457 }
18458 /*** IEnumObjects methods ***/
18459 static FORCEINLINE HRESULT IEnumObjects_Next(IEnumObjects* This,ULONG celt,REFIID riid,void **rgelt,ULONG *pceltFetched) {
18460     return This->lpVtbl->Next(This,celt,riid,rgelt,pceltFetched);
18461 }
18462 static FORCEINLINE HRESULT IEnumObjects_Skip(IEnumObjects* This,ULONG celt) {
18463     return This->lpVtbl->Skip(This,celt);
18464 }
18465 static FORCEINLINE HRESULT IEnumObjects_Reset(IEnumObjects* This) {
18466     return This->lpVtbl->Reset(This);
18467 }
18468 static FORCEINLINE HRESULT IEnumObjects_Clone(IEnumObjects* This,IEnumObjects **ppenum) {
18469     return This->lpVtbl->Clone(This,ppenum);
18470 }
18471 #endif
18472 #endif
18473 
18474 #endif
18475 
18476 HRESULT STDMETHODCALLTYPE IEnumObjects_RemoteNext_Proxy(
18477     IEnumObjects* This,
18478     ULONG celt,
18479     REFIID riid,
18480     void **rgelt,
18481     ULONG *pceltFetched);
18482 void __RPC_STUB IEnumObjects_RemoteNext_Stub(
18483     IRpcStubBuffer* This,
18484     IRpcChannelBuffer* pRpcChannelBuffer,
18485     PRPC_MESSAGE pRpcMessage,
18486     DWORD* pdwStubPhase);
18487 HRESULT CALLBACK IEnumObjects_Next_Proxy(
18488     IEnumObjects* This,
18489     ULONG celt,
18490     REFIID riid,
18491     void **rgelt,
18492     ULONG *pceltFetched);
18493 HRESULT __RPC_STUB IEnumObjects_Next_Stub(
18494     IEnumObjects* This,
18495     ULONG celt,
18496     REFIID riid,
18497     void **rgelt,
18498     ULONG *pceltFetched);
18499 
18500 #endif  /* __IEnumObjects_INTERFACE_DEFINED__ */
18501 
18502 
18503 enum _OPPROGDLGF {
18504     OPPROGDLG_DEFAULT = 0x0,
18505     OPPROGDLG_ENABLEPAUSE = 0x80,
18506     OPPROGDLG_ALLOWUNDO = 0x100,
18507     OPPROGDLG_DONTDISPLAYSOURCEPATH = 0x200,
18508     OPPROGDLG_DONTDISPLAYDESTPATH = 0x400,
18509     OPPROGDLG_NOMULTIDAYESTIMATES = 0x800,
18510     OPPROGDLG_DONTDISPLAYLOCATIONS = 0x1000
18511 };
18512 
18513 typedef DWORD OPPROGDLGF;
18514 
18515 /*****************************************************************************
18516  * IOperationsProgressDialog interface
18517  */
18518 #ifndef __IOperationsProgressDialog_INTERFACE_DEFINED__
18519 #define __IOperationsProgressDialog_INTERFACE_DEFINED__
18520 
18521 enum _PDMODE {
18522     PDM_DEFAULT = 0x0,
18523     PDM_RUN = 0x1,
18524     PDM_PREFLIGHT = 0x2,
18525     PDM_UNDOING = 0x4,
18526     PDM_ERRORSBLOCKING = 0x8,
18527     PDM_INDETERMINATE = 0x10
18528 };
18529 
18530 typedef DWORD PDMODE;
18531 
18532 typedef enum PDOPSTATUS {
18533     PDOPS_RUNNING = 1,
18534     PDOPS_PAUSED = 2,
18535     PDOPS_CANCELLED = 3,
18536     PDOPS_STOPPED = 4,
18537     PDOPS_ERRORS = 5
18538 } PDOPSTATUS;
18539 
18540 DEFINE_GUID(IID_IOperationsProgressDialog, 0x0c9fb851, 0xe5c9, 0x43eb, 0xa3,0x70, 0xf0,0x67,0x7b,0x13,0x87,0x4c);
18541 #if defined(__cplusplus) && !defined(CINTERFACE)
18542 MIDL_INTERFACE("0c9fb851-e5c9-43eb-a370-f0677b13874c")
18543 IOperationsProgressDialog : public IUnknown
18544 {
18545     virtual HRESULT STDMETHODCALLTYPE StartProgressDialog(
18546         HWND hwndOwner,
18547         OPPROGDLGF flags) = 0;
18548 
18549     virtual HRESULT STDMETHODCALLTYPE StopProgressDialog(
18550         ) = 0;
18551 
18552     virtual HRESULT STDMETHODCALLTYPE SetOperation(
18553         SPACTION action) = 0;
18554 
18555     virtual HRESULT STDMETHODCALLTYPE SetMode(
18556         PDMODE mode) = 0;
18557 
18558     virtual HRESULT STDMETHODCALLTYPE UpdateProgress(
18559         ULONGLONG ullPointsCurrent,
18560         ULONGLONG ullPointsTotal,
18561         ULONGLONG ullSizeCurrent,
18562         ULONGLONG ullSizeTotal,
18563         ULONGLONG ullItemsCurrent,
18564         ULONGLONG ullItemsTotal) = 0;
18565 
18566     virtual HRESULT STDMETHODCALLTYPE UpdateLocations(
18567         IShellItem *psiSource,
18568         IShellItem *psiTarget,
18569         IShellItem *psiItem) = 0;
18570 
18571     virtual HRESULT STDMETHODCALLTYPE ResetTimer(
18572         ) = 0;
18573 
18574     virtual HRESULT STDMETHODCALLTYPE PauseTimer(
18575         ) = 0;
18576 
18577     virtual HRESULT STDMETHODCALLTYPE ResumeTimer(
18578         ) = 0;
18579 
18580     virtual HRESULT STDMETHODCALLTYPE GetMilliseconds(
18581         ULONGLONG *pullElapsed,
18582         ULONGLONG *pullRemaining) = 0;
18583 
18584     virtual HRESULT STDMETHODCALLTYPE GetOperationStatus(
18585         PDOPSTATUS *popstatus) = 0;
18586 
18587 };
18588 #ifdef __CRT_UUID_DECL
18589 __CRT_UUID_DECL(IOperationsProgressDialog, 0x0c9fb851, 0xe5c9, 0x43eb, 0xa3,0x70, 0xf0,0x67,0x7b,0x13,0x87,0x4c)
18590 #endif
18591 #else
18592 typedef struct IOperationsProgressDialogVtbl {
18593     BEGIN_INTERFACE
18594 
18595     /*** IUnknown methods ***/
18596     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18597         IOperationsProgressDialog *This,
18598         REFIID riid,
18599         void **ppvObject);
18600 
18601     ULONG (STDMETHODCALLTYPE *AddRef)(
18602         IOperationsProgressDialog *This);
18603 
18604     ULONG (STDMETHODCALLTYPE *Release)(
18605         IOperationsProgressDialog *This);
18606 
18607     /*** IOperationsProgressDialog methods ***/
18608     HRESULT (STDMETHODCALLTYPE *StartProgressDialog)(
18609         IOperationsProgressDialog *This,
18610         HWND hwndOwner,
18611         OPPROGDLGF flags);
18612 
18613     HRESULT (STDMETHODCALLTYPE *StopProgressDialog)(
18614         IOperationsProgressDialog *This);
18615 
18616     HRESULT (STDMETHODCALLTYPE *SetOperation)(
18617         IOperationsProgressDialog *This,
18618         SPACTION action);
18619 
18620     HRESULT (STDMETHODCALLTYPE *SetMode)(
18621         IOperationsProgressDialog *This,
18622         PDMODE mode);
18623 
18624     HRESULT (STDMETHODCALLTYPE *UpdateProgress)(
18625         IOperationsProgressDialog *This,
18626         ULONGLONG ullPointsCurrent,
18627         ULONGLONG ullPointsTotal,
18628         ULONGLONG ullSizeCurrent,
18629         ULONGLONG ullSizeTotal,
18630         ULONGLONG ullItemsCurrent,
18631         ULONGLONG ullItemsTotal);
18632 
18633     HRESULT (STDMETHODCALLTYPE *UpdateLocations)(
18634         IOperationsProgressDialog *This,
18635         IShellItem *psiSource,
18636         IShellItem *psiTarget,
18637         IShellItem *psiItem);
18638 
18639     HRESULT (STDMETHODCALLTYPE *ResetTimer)(
18640         IOperationsProgressDialog *This);
18641 
18642     HRESULT (STDMETHODCALLTYPE *PauseTimer)(
18643         IOperationsProgressDialog *This);
18644 
18645     HRESULT (STDMETHODCALLTYPE *ResumeTimer)(
18646         IOperationsProgressDialog *This);
18647 
18648     HRESULT (STDMETHODCALLTYPE *GetMilliseconds)(
18649         IOperationsProgressDialog *This,
18650         ULONGLONG *pullElapsed,
18651         ULONGLONG *pullRemaining);
18652 
18653     HRESULT (STDMETHODCALLTYPE *GetOperationStatus)(
18654         IOperationsProgressDialog *This,
18655         PDOPSTATUS *popstatus);
18656 
18657     END_INTERFACE
18658 } IOperationsProgressDialogVtbl;
18659 
18660 interface IOperationsProgressDialog {
18661     CONST_VTBL IOperationsProgressDialogVtbl* lpVtbl;
18662 };
18663 
18664 #ifdef COBJMACROS
18665 #ifndef WIDL_C_INLINE_WRAPPERS
18666 /*** IUnknown methods ***/
18667 #define IOperationsProgressDialog_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18668 #define IOperationsProgressDialog_AddRef(This) (This)->lpVtbl->AddRef(This)
18669 #define IOperationsProgressDialog_Release(This) (This)->lpVtbl->Release(This)
18670 /*** IOperationsProgressDialog methods ***/
18671 #define IOperationsProgressDialog_StartProgressDialog(This,hwndOwner,flags) (This)->lpVtbl->StartProgressDialog(This,hwndOwner,flags)
18672 #define IOperationsProgressDialog_StopProgressDialog(This) (This)->lpVtbl->StopProgressDialog(This)
18673 #define IOperationsProgressDialog_SetOperation(This,action) (This)->lpVtbl->SetOperation(This,action)
18674 #define IOperationsProgressDialog_SetMode(This,mode) (This)->lpVtbl->SetMode(This,mode)
18675 #define IOperationsProgressDialog_UpdateProgress(This,ullPointsCurrent,ullPointsTotal,ullSizeCurrent,ullSizeTotal,ullItemsCurrent,ullItemsTotal) (This)->lpVtbl->UpdateProgress(This,ullPointsCurrent,ullPointsTotal,ullSizeCurrent,ullSizeTotal,ullItemsCurrent,ullItemsTotal)
18676 #define IOperationsProgressDialog_UpdateLocations(This,psiSource,psiTarget,psiItem) (This)->lpVtbl->UpdateLocations(This,psiSource,psiTarget,psiItem)
18677 #define IOperationsProgressDialog_ResetTimer(This) (This)->lpVtbl->ResetTimer(This)
18678 #define IOperationsProgressDialog_PauseTimer(This) (This)->lpVtbl->PauseTimer(This)
18679 #define IOperationsProgressDialog_ResumeTimer(This) (This)->lpVtbl->ResumeTimer(This)
18680 #define IOperationsProgressDialog_GetMilliseconds(This,pullElapsed,pullRemaining) (This)->lpVtbl->GetMilliseconds(This,pullElapsed,pullRemaining)
18681 #define IOperationsProgressDialog_GetOperationStatus(This,popstatus) (This)->lpVtbl->GetOperationStatus(This,popstatus)
18682 #else
18683 /*** IUnknown methods ***/
18684 static FORCEINLINE HRESULT IOperationsProgressDialog_QueryInterface(IOperationsProgressDialog* This,REFIID riid,void **ppvObject) {
18685     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18686 }
18687 static FORCEINLINE ULONG IOperationsProgressDialog_AddRef(IOperationsProgressDialog* This) {
18688     return This->lpVtbl->AddRef(This);
18689 }
18690 static FORCEINLINE ULONG IOperationsProgressDialog_Release(IOperationsProgressDialog* This) {
18691     return This->lpVtbl->Release(This);
18692 }
18693 /*** IOperationsProgressDialog methods ***/
18694 static FORCEINLINE HRESULT IOperationsProgressDialog_StartProgressDialog(IOperationsProgressDialog* This,HWND hwndOwner,OPPROGDLGF flags) {
18695     return This->lpVtbl->StartProgressDialog(This,hwndOwner,flags);
18696 }
18697 static FORCEINLINE HRESULT IOperationsProgressDialog_StopProgressDialog(IOperationsProgressDialog* This) {
18698     return This->lpVtbl->StopProgressDialog(This);
18699 }
18700 static FORCEINLINE HRESULT IOperationsProgressDialog_SetOperation(IOperationsProgressDialog* This,SPACTION action) {
18701     return This->lpVtbl->SetOperation(This,action);
18702 }
18703 static FORCEINLINE HRESULT IOperationsProgressDialog_SetMode(IOperationsProgressDialog* This,PDMODE mode) {
18704     return This->lpVtbl->SetMode(This,mode);
18705 }
18706 static FORCEINLINE HRESULT IOperationsProgressDialog_UpdateProgress(IOperationsProgressDialog* This,ULONGLONG ullPointsCurrent,ULONGLONG ullPointsTotal,ULONGLONG ullSizeCurrent,ULONGLONG ullSizeTotal,ULONGLONG ullItemsCurrent,ULONGLONG ullItemsTotal) {
18707     return This->lpVtbl->UpdateProgress(This,ullPointsCurrent,ullPointsTotal,ullSizeCurrent,ullSizeTotal,ullItemsCurrent,ullItemsTotal);
18708 }
18709 static FORCEINLINE HRESULT IOperationsProgressDialog_UpdateLocations(IOperationsProgressDialog* This,IShellItem *psiSource,IShellItem *psiTarget,IShellItem *psiItem) {
18710     return This->lpVtbl->UpdateLocations(This,psiSource,psiTarget,psiItem);
18711 }
18712 static FORCEINLINE HRESULT IOperationsProgressDialog_ResetTimer(IOperationsProgressDialog* This) {
18713     return This->lpVtbl->ResetTimer(This);
18714 }
18715 static FORCEINLINE HRESULT IOperationsProgressDialog_PauseTimer(IOperationsProgressDialog* This) {
18716     return This->lpVtbl->PauseTimer(This);
18717 }
18718 static FORCEINLINE HRESULT IOperationsProgressDialog_ResumeTimer(IOperationsProgressDialog* This) {
18719     return This->lpVtbl->ResumeTimer(This);
18720 }
18721 static FORCEINLINE HRESULT IOperationsProgressDialog_GetMilliseconds(IOperationsProgressDialog* This,ULONGLONG *pullElapsed,ULONGLONG *pullRemaining) {
18722     return This->lpVtbl->GetMilliseconds(This,pullElapsed,pullRemaining);
18723 }
18724 static FORCEINLINE HRESULT IOperationsProgressDialog_GetOperationStatus(IOperationsProgressDialog* This,PDOPSTATUS *popstatus) {
18725     return This->lpVtbl->GetOperationStatus(This,popstatus);
18726 }
18727 #endif
18728 #endif
18729 
18730 #endif
18731 
18732 
18733 #endif  /* __IOperationsProgressDialog_INTERFACE_DEFINED__ */
18734 
18735 
18736 /*****************************************************************************
18737  * IIOCancelInformation interface
18738  */
18739 #ifndef __IIOCancelInformation_INTERFACE_DEFINED__
18740 #define __IIOCancelInformation_INTERFACE_DEFINED__
18741 
18742 DEFINE_GUID(IID_IIOCancelInformation, 0xf5b0bf81, 0x8cb5, 0x4b1b, 0x94,0x49, 0x1a,0x15,0x9e,0x0c,0x73,0x3c);
18743 #if defined(__cplusplus) && !defined(CINTERFACE)
18744 MIDL_INTERFACE("f5b0bf81-8cb5-4b1b-9449-1a159e0c733c")
18745 IIOCancelInformation : public IUnknown
18746 {
18747     virtual HRESULT STDMETHODCALLTYPE SetCancelInformation(
18748         DWORD dwThreadID,
18749         UINT uMsgCancel) = 0;
18750 
18751     virtual HRESULT STDMETHODCALLTYPE GetCancelInformation(
18752         DWORD *pdwThreadID,
18753         UINT *puMsgCancel) = 0;
18754 
18755 };
18756 #ifdef __CRT_UUID_DECL
18757 __CRT_UUID_DECL(IIOCancelInformation, 0xf5b0bf81, 0x8cb5, 0x4b1b, 0x94,0x49, 0x1a,0x15,0x9e,0x0c,0x73,0x3c)
18758 #endif
18759 #else
18760 typedef struct IIOCancelInformationVtbl {
18761     BEGIN_INTERFACE
18762 
18763     /*** IUnknown methods ***/
18764     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18765         IIOCancelInformation *This,
18766         REFIID riid,
18767         void **ppvObject);
18768 
18769     ULONG (STDMETHODCALLTYPE *AddRef)(
18770         IIOCancelInformation *This);
18771 
18772     ULONG (STDMETHODCALLTYPE *Release)(
18773         IIOCancelInformation *This);
18774 
18775     /*** IIOCancelInformation methods ***/
18776     HRESULT (STDMETHODCALLTYPE *SetCancelInformation)(
18777         IIOCancelInformation *This,
18778         DWORD dwThreadID,
18779         UINT uMsgCancel);
18780 
18781     HRESULT (STDMETHODCALLTYPE *GetCancelInformation)(
18782         IIOCancelInformation *This,
18783         DWORD *pdwThreadID,
18784         UINT *puMsgCancel);
18785 
18786     END_INTERFACE
18787 } IIOCancelInformationVtbl;
18788 
18789 interface IIOCancelInformation {
18790     CONST_VTBL IIOCancelInformationVtbl* lpVtbl;
18791 };
18792 
18793 #ifdef COBJMACROS
18794 #ifndef WIDL_C_INLINE_WRAPPERS
18795 /*** IUnknown methods ***/
18796 #define IIOCancelInformation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18797 #define IIOCancelInformation_AddRef(This) (This)->lpVtbl->AddRef(This)
18798 #define IIOCancelInformation_Release(This) (This)->lpVtbl->Release(This)
18799 /*** IIOCancelInformation methods ***/
18800 #define IIOCancelInformation_SetCancelInformation(This,dwThreadID,uMsgCancel) (This)->lpVtbl->SetCancelInformation(This,dwThreadID,uMsgCancel)
18801 #define IIOCancelInformation_GetCancelInformation(This,pdwThreadID,puMsgCancel) (This)->lpVtbl->GetCancelInformation(This,pdwThreadID,puMsgCancel)
18802 #else
18803 /*** IUnknown methods ***/
18804 static FORCEINLINE HRESULT IIOCancelInformation_QueryInterface(IIOCancelInformation* This,REFIID riid,void **ppvObject) {
18805     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18806 }
18807 static FORCEINLINE ULONG IIOCancelInformation_AddRef(IIOCancelInformation* This) {
18808     return This->lpVtbl->AddRef(This);
18809 }
18810 static FORCEINLINE ULONG IIOCancelInformation_Release(IIOCancelInformation* This) {
18811     return This->lpVtbl->Release(This);
18812 }
18813 /*** IIOCancelInformation methods ***/
18814 static FORCEINLINE HRESULT IIOCancelInformation_SetCancelInformation(IIOCancelInformation* This,DWORD dwThreadID,UINT uMsgCancel) {
18815     return This->lpVtbl->SetCancelInformation(This,dwThreadID,uMsgCancel);
18816 }
18817 static FORCEINLINE HRESULT IIOCancelInformation_GetCancelInformation(IIOCancelInformation* This,DWORD *pdwThreadID,UINT *puMsgCancel) {
18818     return This->lpVtbl->GetCancelInformation(This,pdwThreadID,puMsgCancel);
18819 }
18820 #endif
18821 #endif
18822 
18823 #endif
18824 
18825 
18826 #endif  /* __IIOCancelInformation_INTERFACE_DEFINED__ */
18827 
18828 
18829 #define FOFX_NOSKIPJUNCTIONS 0x00010000
18830 #define FOFX_PREFERHARDLINK 0x00020000
18831 #define FOFX_SHOWELEVATIONPROMPT 0x00040000
18832 #define FOFX_RECYCLEONDELETE 0x00080000
18833 #define FOFX_EARLYFAILURE 0x00100000
18834 #define FOFX_PRESERVEFILEEXTENSIONS 0x00200000
18835 #define FOFX_KEEPNEWERFILE 0x00400000
18836 #define FOFX_NOCOPYHOOKS 0x00800000
18837 #define FOFX_NOMINIMIZEBOX 0x01000000
18838 #define FOFX_MOVEACLSACROSSVOLUMES 0x02000000
18839 #define FOFX_DONTDISPLAYSOURCEPATH 0x04000000
18840 #define FOFX_DONTDISPLAYDESTPATH 0x08000000
18841 #define FOFX_REQUIREELEVATION 0x10000000
18842 #define FOFX_ADDUNDORECORD 0x20000000
18843 #define FOFX_COPYASDOWNLOAD 0x40000000
18844 #define FOFX_DONTDISPLAYLOCATIONS 0x80000000
18845 
18846 /*****************************************************************************
18847  * IFileOperation interface
18848  */
18849 #ifndef __IFileOperation_INTERFACE_DEFINED__
18850 #define __IFileOperation_INTERFACE_DEFINED__
18851 
18852 DEFINE_GUID(IID_IFileOperation, 0x947aab5f, 0x0a5c, 0x4c13, 0xb4,0xd6, 0x4b,0xf7,0x83,0x6f,0xc9,0xf8);
18853 #if defined(__cplusplus) && !defined(CINTERFACE)
18854 MIDL_INTERFACE("947aab5f-0a5c-4c13-b4d6-4bf7836fc9f8")
18855 IFileOperation : public IUnknown
18856 {
18857     virtual HRESULT STDMETHODCALLTYPE Advise(
18858         IFileOperationProgressSink *pfops,
18859         DWORD *pdwCookie) = 0;
18860 
18861     virtual HRESULT STDMETHODCALLTYPE Unadvise(
18862         DWORD dwCookie) = 0;
18863 
18864     virtual HRESULT STDMETHODCALLTYPE SetOperationFlags(
18865         DWORD dwOperationFlags) = 0;
18866 
18867     virtual HRESULT STDMETHODCALLTYPE SetProgressMessage(
18868         LPCWSTR pszMessage) = 0;
18869 
18870     virtual HRESULT STDMETHODCALLTYPE SetProgressDialog(
18871         IOperationsProgressDialog *popd) = 0;
18872 
18873     virtual HRESULT STDMETHODCALLTYPE SetProperties(
18874         IPropertyChangeArray *pproparray) = 0;
18875 
18876     virtual HRESULT STDMETHODCALLTYPE SetOwnerWindow(
18877         HWND hwndOwner) = 0;
18878 
18879     virtual HRESULT STDMETHODCALLTYPE ApplyPropertiesToItem(
18880         IShellItem *psiItem) = 0;
18881 
18882     virtual HRESULT STDMETHODCALLTYPE ApplyPropertiesToItems(
18883         IUnknown *punkItems) = 0;
18884 
18885     virtual HRESULT STDMETHODCALLTYPE RenameItem(
18886         IShellItem *psiItem,
18887         LPCWSTR pszNewName,
18888         IFileOperationProgressSink *pfopsItem) = 0;
18889 
18890     virtual HRESULT STDMETHODCALLTYPE RenameItems(
18891         IUnknown *pUnkItems,
18892         LPCWSTR pszNewName) = 0;
18893 
18894     virtual HRESULT STDMETHODCALLTYPE MoveItem(
18895         IShellItem *psiItem,
18896         IShellItem *psiDestinationFolder,
18897         LPCWSTR pszNewName,
18898         IFileOperationProgressSink *pfopsItem) = 0;
18899 
18900     virtual HRESULT STDMETHODCALLTYPE MoveItems(
18901         IUnknown *punkItems,
18902         IShellItem *psiDestinationFolder) = 0;
18903 
18904     virtual HRESULT STDMETHODCALLTYPE CopyItem(
18905         IShellItem *psiItem,
18906         IShellItem *psiDestinationFolder,
18907         LPCWSTR pszCopyName,
18908         IFileOperationProgressSink *pfopsItem) = 0;
18909 
18910     virtual HRESULT STDMETHODCALLTYPE CopyItems(
18911         IUnknown *punkItems,
18912         IShellItem *psiDestinationFolder) = 0;
18913 
18914     virtual HRESULT STDMETHODCALLTYPE DeleteItem(
18915         IShellItem *psiItem,
18916         IFileOperationProgressSink *pfopsItem) = 0;
18917 
18918     virtual HRESULT STDMETHODCALLTYPE DeleteItems(
18919         IUnknown *punkItems) = 0;
18920 
18921     virtual HRESULT STDMETHODCALLTYPE NewItem(
18922         IShellItem *psiDestinationFolder,
18923         DWORD dwFileAttributes,
18924         LPCWSTR pszName,
18925         LPCWSTR pszTemplateName,
18926         IFileOperationProgressSink *pfopsItem) = 0;
18927 
18928     virtual HRESULT STDMETHODCALLTYPE PerformOperations(
18929         ) = 0;
18930 
18931     virtual HRESULT STDMETHODCALLTYPE GetAnyOperationsAborted(
18932         WINBOOL *pfAnyOperationsAborted) = 0;
18933 
18934 };
18935 #ifdef __CRT_UUID_DECL
18936 __CRT_UUID_DECL(IFileOperation, 0x947aab5f, 0x0a5c, 0x4c13, 0xb4,0xd6, 0x4b,0xf7,0x83,0x6f,0xc9,0xf8)
18937 #endif
18938 #else
18939 typedef struct IFileOperationVtbl {
18940     BEGIN_INTERFACE
18941 
18942     /*** IUnknown methods ***/
18943     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18944         IFileOperation *This,
18945         REFIID riid,
18946         void **ppvObject);
18947 
18948     ULONG (STDMETHODCALLTYPE *AddRef)(
18949         IFileOperation *This);
18950 
18951     ULONG (STDMETHODCALLTYPE *Release)(
18952         IFileOperation *This);
18953 
18954     /*** IFileOperation methods ***/
18955     HRESULT (STDMETHODCALLTYPE *Advise)(
18956         IFileOperation *This,
18957         IFileOperationProgressSink *pfops,
18958         DWORD *pdwCookie);
18959 
18960     HRESULT (STDMETHODCALLTYPE *Unadvise)(
18961         IFileOperation *This,
18962         DWORD dwCookie);
18963 
18964     HRESULT (STDMETHODCALLTYPE *SetOperationFlags)(
18965         IFileOperation *This,
18966         DWORD dwOperationFlags);
18967 
18968     HRESULT (STDMETHODCALLTYPE *SetProgressMessage)(
18969         IFileOperation *This,
18970         LPCWSTR pszMessage);
18971 
18972     HRESULT (STDMETHODCALLTYPE *SetProgressDialog)(
18973         IFileOperation *This,
18974         IOperationsProgressDialog *popd);
18975 
18976     HRESULT (STDMETHODCALLTYPE *SetProperties)(
18977         IFileOperation *This,
18978         IPropertyChangeArray *pproparray);
18979 
18980     HRESULT (STDMETHODCALLTYPE *SetOwnerWindow)(
18981         IFileOperation *This,
18982         HWND hwndOwner);
18983 
18984     HRESULT (STDMETHODCALLTYPE *ApplyPropertiesToItem)(
18985         IFileOperation *This,
18986         IShellItem *psiItem);
18987 
18988     HRESULT (STDMETHODCALLTYPE *ApplyPropertiesToItems)(
18989         IFileOperation *This,
18990         IUnknown *punkItems);
18991 
18992     HRESULT (STDMETHODCALLTYPE *RenameItem)(
18993         IFileOperation *This,
18994         IShellItem *psiItem,
18995         LPCWSTR pszNewName,
18996         IFileOperationProgressSink *pfopsItem);
18997 
18998     HRESULT (STDMETHODCALLTYPE *RenameItems)(
18999         IFileOperation *This,
19000         IUnknown *pUnkItems,
19001         LPCWSTR pszNewName);
19002 
19003     HRESULT (STDMETHODCALLTYPE *MoveItem)(
19004         IFileOperation *This,
19005         IShellItem *psiItem,
19006         IShellItem *psiDestinationFolder,
19007         LPCWSTR pszNewName,
19008         IFileOperationProgressSink *pfopsItem);
19009 
19010     HRESULT (STDMETHODCALLTYPE *MoveItems)(
19011         IFileOperation *This,
19012         IUnknown *punkItems,
19013         IShellItem *psiDestinationFolder);
19014 
19015     HRESULT (STDMETHODCALLTYPE *CopyItem)(
19016         IFileOperation *This,
19017         IShellItem *psiItem,
19018         IShellItem *psiDestinationFolder,
19019         LPCWSTR pszCopyName,
19020         IFileOperationProgressSink *pfopsItem);
19021 
19022     HRESULT (STDMETHODCALLTYPE *CopyItems)(
19023         IFileOperation *This,
19024         IUnknown *punkItems,
19025         IShellItem *psiDestinationFolder);
19026 
19027     HRESULT (STDMETHODCALLTYPE *DeleteItem)(
19028         IFileOperation *This,
19029         IShellItem *psiItem,
19030         IFileOperationProgressSink *pfopsItem);
19031 
19032     HRESULT (STDMETHODCALLTYPE *DeleteItems)(
19033         IFileOperation *This,
19034         IUnknown *punkItems);
19035 
19036     HRESULT (STDMETHODCALLTYPE *NewItem)(
19037         IFileOperation *This,
19038         IShellItem *psiDestinationFolder,
19039         DWORD dwFileAttributes,
19040         LPCWSTR pszName,
19041         LPCWSTR pszTemplateName,
19042         IFileOperationProgressSink *pfopsItem);
19043 
19044     HRESULT (STDMETHODCALLTYPE *PerformOperations)(
19045         IFileOperation *This);
19046 
19047     HRESULT (STDMETHODCALLTYPE *GetAnyOperationsAborted)(
19048         IFileOperation *This,
19049         WINBOOL *pfAnyOperationsAborted);
19050 
19051     END_INTERFACE
19052 } IFileOperationVtbl;
19053 
19054 interface IFileOperation {
19055     CONST_VTBL IFileOperationVtbl* lpVtbl;
19056 };
19057 
19058 #ifdef COBJMACROS
19059 #ifndef WIDL_C_INLINE_WRAPPERS
19060 /*** IUnknown methods ***/
19061 #define IFileOperation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19062 #define IFileOperation_AddRef(This) (This)->lpVtbl->AddRef(This)
19063 #define IFileOperation_Release(This) (This)->lpVtbl->Release(This)
19064 /*** IFileOperation methods ***/
19065 #define IFileOperation_Advise(This,pfops,pdwCookie) (This)->lpVtbl->Advise(This,pfops,pdwCookie)
19066 #define IFileOperation_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
19067 #define IFileOperation_SetOperationFlags(This,dwOperationFlags) (This)->lpVtbl->SetOperationFlags(This,dwOperationFlags)
19068 #define IFileOperation_SetProgressMessage(This,pszMessage) (This)->lpVtbl->SetProgressMessage(This,pszMessage)
19069 #define IFileOperation_SetProgressDialog(This,popd) (This)->lpVtbl->SetProgressDialog(This,popd)
19070 #define IFileOperation_SetProperties(This,pproparray) (This)->lpVtbl->SetProperties(This,pproparray)
19071 #define IFileOperation_SetOwnerWindow(This,hwndOwner) (This)->lpVtbl->SetOwnerWindow(This,hwndOwner)
19072 #define IFileOperation_ApplyPropertiesToItem(This,psiItem) (This)->lpVtbl->ApplyPropertiesToItem(This,psiItem)
19073 #define IFileOperation_ApplyPropertiesToItems(This,punkItems) (This)->lpVtbl->ApplyPropertiesToItems(This,punkItems)
19074 #define IFileOperation_RenameItem(This,psiItem,pszNewName,pfopsItem) (This)->lpVtbl->RenameItem(This,psiItem,pszNewName,pfopsItem)
19075 #define IFileOperation_RenameItems(This,pUnkItems,pszNewName) (This)->lpVtbl->RenameItems(This,pUnkItems,pszNewName)
19076 #define IFileOperation_MoveItem(This,psiItem,psiDestinationFolder,pszNewName,pfopsItem) (This)->lpVtbl->MoveItem(This,psiItem,psiDestinationFolder,pszNewName,pfopsItem)
19077 #define IFileOperation_MoveItems(This,punkItems,psiDestinationFolder) (This)->lpVtbl->MoveItems(This,punkItems,psiDestinationFolder)
19078 #define IFileOperation_CopyItem(This,psiItem,psiDestinationFolder,pszCopyName,pfopsItem) (This)->lpVtbl->CopyItem(This,psiItem,psiDestinationFolder,pszCopyName,pfopsItem)
19079 #define IFileOperation_CopyItems(This,punkItems,psiDestinationFolder) (This)->lpVtbl->CopyItems(This,punkItems,psiDestinationFolder)
19080 #define IFileOperation_DeleteItem(This,psiItem,pfopsItem) (This)->lpVtbl->DeleteItem(This,psiItem,pfopsItem)
19081 #define IFileOperation_DeleteItems(This,punkItems) (This)->lpVtbl->DeleteItems(This,punkItems)
19082 #define IFileOperation_NewItem(This,psiDestinationFolder,dwFileAttributes,pszName,pszTemplateName,pfopsItem) (This)->lpVtbl->NewItem(This,psiDestinationFolder,dwFileAttributes,pszName,pszTemplateName,pfopsItem)
19083 #define IFileOperation_PerformOperations(This) (This)->lpVtbl->PerformOperations(This)
19084 #define IFileOperation_GetAnyOperationsAborted(This,pfAnyOperationsAborted) (This)->lpVtbl->GetAnyOperationsAborted(This,pfAnyOperationsAborted)
19085 #else
19086 /*** IUnknown methods ***/
19087 static FORCEINLINE HRESULT IFileOperation_QueryInterface(IFileOperation* This,REFIID riid,void **ppvObject) {
19088     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19089 }
19090 static FORCEINLINE ULONG IFileOperation_AddRef(IFileOperation* This) {
19091     return This->lpVtbl->AddRef(This);
19092 }
19093 static FORCEINLINE ULONG IFileOperation_Release(IFileOperation* This) {
19094     return This->lpVtbl->Release(This);
19095 }
19096 /*** IFileOperation methods ***/
19097 static FORCEINLINE HRESULT IFileOperation_Advise(IFileOperation* This,IFileOperationProgressSink *pfops,DWORD *pdwCookie) {
19098     return This->lpVtbl->Advise(This,pfops,pdwCookie);
19099 }
19100 static FORCEINLINE HRESULT IFileOperation_Unadvise(IFileOperation* This,DWORD dwCookie) {
19101     return This->lpVtbl->Unadvise(This,dwCookie);
19102 }
19103 static FORCEINLINE HRESULT IFileOperation_SetOperationFlags(IFileOperation* This,DWORD dwOperationFlags) {
19104     return This->lpVtbl->SetOperationFlags(This,dwOperationFlags);
19105 }
19106 static FORCEINLINE HRESULT IFileOperation_SetProgressMessage(IFileOperation* This,LPCWSTR pszMessage) {
19107     return This->lpVtbl->SetProgressMessage(This,pszMessage);
19108 }
19109 static FORCEINLINE HRESULT IFileOperation_SetProgressDialog(IFileOperation* This,IOperationsProgressDialog *popd) {
19110     return This->lpVtbl->SetProgressDialog(This,popd);
19111 }
19112 static FORCEINLINE HRESULT IFileOperation_SetProperties(IFileOperation* This,IPropertyChangeArray *pproparray) {
19113     return This->lpVtbl->SetProperties(This,pproparray);
19114 }
19115 static FORCEINLINE HRESULT IFileOperation_SetOwnerWindow(IFileOperation* This,HWND hwndOwner) {
19116     return This->lpVtbl->SetOwnerWindow(This,hwndOwner);
19117 }
19118 static FORCEINLINE HRESULT IFileOperation_ApplyPropertiesToItem(IFileOperation* This,IShellItem *psiItem) {
19119     return This->lpVtbl->ApplyPropertiesToItem(This,psiItem);
19120 }
19121 static FORCEINLINE HRESULT IFileOperation_ApplyPropertiesToItems(IFileOperation* This,IUnknown *punkItems) {
19122     return This->lpVtbl->ApplyPropertiesToItems(This,punkItems);
19123 }
19124 static FORCEINLINE HRESULT IFileOperation_RenameItem(IFileOperation* This,IShellItem *psiItem,LPCWSTR pszNewName,IFileOperationProgressSink *pfopsItem) {
19125     return This->lpVtbl->RenameItem(This,psiItem,pszNewName,pfopsItem);
19126 }
19127 static FORCEINLINE HRESULT IFileOperation_RenameItems(IFileOperation* This,IUnknown *pUnkItems,LPCWSTR pszNewName) {
19128     return This->lpVtbl->RenameItems(This,pUnkItems,pszNewName);
19129 }
19130 static FORCEINLINE HRESULT IFileOperation_MoveItem(IFileOperation* This,IShellItem *psiItem,IShellItem *psiDestinationFolder,LPCWSTR pszNewName,IFileOperationProgressSink *pfopsItem) {
19131     return This->lpVtbl->MoveItem(This,psiItem,psiDestinationFolder,pszNewName,pfopsItem);
19132 }
19133 static FORCEINLINE HRESULT IFileOperation_MoveItems(IFileOperation* This,IUnknown *punkItems,IShellItem *psiDestinationFolder) {
19134     return This->lpVtbl->MoveItems(This,punkItems,psiDestinationFolder);
19135 }
19136 static FORCEINLINE HRESULT IFileOperation_CopyItem(IFileOperation* This,IShellItem *psiItem,IShellItem *psiDestinationFolder,LPCWSTR pszCopyName,IFileOperationProgressSink *pfopsItem) {
19137     return This->lpVtbl->CopyItem(This,psiItem,psiDestinationFolder,pszCopyName,pfopsItem);
19138 }
19139 static FORCEINLINE HRESULT IFileOperation_CopyItems(IFileOperation* This,IUnknown *punkItems,IShellItem *psiDestinationFolder) {
19140     return This->lpVtbl->CopyItems(This,punkItems,psiDestinationFolder);
19141 }
19142 static FORCEINLINE HRESULT IFileOperation_DeleteItem(IFileOperation* This,IShellItem *psiItem,IFileOperationProgressSink *pfopsItem) {
19143     return This->lpVtbl->DeleteItem(This,psiItem,pfopsItem);
19144 }
19145 static FORCEINLINE HRESULT IFileOperation_DeleteItems(IFileOperation* This,IUnknown *punkItems) {
19146     return This->lpVtbl->DeleteItems(This,punkItems);
19147 }
19148 static FORCEINLINE HRESULT IFileOperation_NewItem(IFileOperation* This,IShellItem *psiDestinationFolder,DWORD dwFileAttributes,LPCWSTR pszName,LPCWSTR pszTemplateName,IFileOperationProgressSink *pfopsItem) {
19149     return This->lpVtbl->NewItem(This,psiDestinationFolder,dwFileAttributes,pszName,pszTemplateName,pfopsItem);
19150 }
19151 static FORCEINLINE HRESULT IFileOperation_PerformOperations(IFileOperation* This) {
19152     return This->lpVtbl->PerformOperations(This);
19153 }
19154 static FORCEINLINE HRESULT IFileOperation_GetAnyOperationsAborted(IFileOperation* This,WINBOOL *pfAnyOperationsAborted) {
19155     return This->lpVtbl->GetAnyOperationsAborted(This,pfAnyOperationsAborted);
19156 }
19157 #endif
19158 #endif
19159 
19160 #endif
19161 
19162 
19163 #endif  /* __IFileOperation_INTERFACE_DEFINED__ */
19164 
19165 
19166 /*****************************************************************************
19167  * IObjectProvider interface
19168  */
19169 #ifndef __IObjectProvider_INTERFACE_DEFINED__
19170 #define __IObjectProvider_INTERFACE_DEFINED__
19171 
19172 DEFINE_GUID(IID_IObjectProvider, 0xa6087428, 0x3be3, 0x4d73, 0xb3,0x08, 0x7c,0x04,0xa5,0x40,0xbf,0x1a);
19173 #if defined(__cplusplus) && !defined(CINTERFACE)
19174 MIDL_INTERFACE("a6087428-3be3-4d73-b308-7c04a540bf1a")
19175 IObjectProvider : public IUnknown
19176 {
19177     virtual HRESULT STDMETHODCALLTYPE QueryObject(
19178         REFGUID guidObject,
19179         REFIID riid,
19180         void **ppvOut) = 0;
19181 
19182 };
19183 #ifdef __CRT_UUID_DECL
19184 __CRT_UUID_DECL(IObjectProvider, 0xa6087428, 0x3be3, 0x4d73, 0xb3,0x08, 0x7c,0x04,0xa5,0x40,0xbf,0x1a)
19185 #endif
19186 #else
19187 typedef struct IObjectProviderVtbl {
19188     BEGIN_INTERFACE
19189 
19190     /*** IUnknown methods ***/
19191     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19192         IObjectProvider *This,
19193         REFIID riid,
19194         void **ppvObject);
19195 
19196     ULONG (STDMETHODCALLTYPE *AddRef)(
19197         IObjectProvider *This);
19198 
19199     ULONG (STDMETHODCALLTYPE *Release)(
19200         IObjectProvider *This);
19201 
19202     /*** IObjectProvider methods ***/
19203     HRESULT (STDMETHODCALLTYPE *QueryObject)(
19204         IObjectProvider *This,
19205         REFGUID guidObject,
19206         REFIID riid,
19207         void **ppvOut);
19208 
19209     END_INTERFACE
19210 } IObjectProviderVtbl;
19211 
19212 interface IObjectProvider {
19213     CONST_VTBL IObjectProviderVtbl* lpVtbl;
19214 };
19215 
19216 #ifdef COBJMACROS
19217 #ifndef WIDL_C_INLINE_WRAPPERS
19218 /*** IUnknown methods ***/
19219 #define IObjectProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19220 #define IObjectProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
19221 #define IObjectProvider_Release(This) (This)->lpVtbl->Release(This)
19222 /*** IObjectProvider methods ***/
19223 #define IObjectProvider_QueryObject(This,guidObject,riid,ppvOut) (This)->lpVtbl->QueryObject(This,guidObject,riid,ppvOut)
19224 #else
19225 /*** IUnknown methods ***/
19226 static FORCEINLINE HRESULT IObjectProvider_QueryInterface(IObjectProvider* This,REFIID riid,void **ppvObject) {
19227     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19228 }
19229 static FORCEINLINE ULONG IObjectProvider_AddRef(IObjectProvider* This) {
19230     return This->lpVtbl->AddRef(This);
19231 }
19232 static FORCEINLINE ULONG IObjectProvider_Release(IObjectProvider* This) {
19233     return This->lpVtbl->Release(This);
19234 }
19235 /*** IObjectProvider methods ***/
19236 static FORCEINLINE HRESULT IObjectProvider_QueryObject(IObjectProvider* This,REFGUID guidObject,REFIID riid,void **ppvOut) {
19237     return This->lpVtbl->QueryObject(This,guidObject,riid,ppvOut);
19238 }
19239 #endif
19240 #endif
19241 
19242 #endif
19243 
19244 
19245 #endif  /* __IObjectProvider_INTERFACE_DEFINED__ */
19246 
19247 #endif
19248 
19249 /*****************************************************************************
19250  * INamespaceWalkCB interface
19251  */
19252 #ifndef __INamespaceWalkCB_INTERFACE_DEFINED__
19253 #define __INamespaceWalkCB_INTERFACE_DEFINED__
19254 
19255 DEFINE_GUID(IID_INamespaceWalkCB, 0xd92995f8, 0xcf5e, 0x4a76, 0xbf,0x59, 0xea,0xd3,0x9e,0xa2,0xb9,0x7e);
19256 #if defined(__cplusplus) && !defined(CINTERFACE)
19257 MIDL_INTERFACE("d92995f8-cf5e-4a76-bf59-ead39ea2b97e")
19258 INamespaceWalkCB : public IUnknown
19259 {
19260     virtual HRESULT STDMETHODCALLTYPE FoundItem(
19261         IShellFolder *psf,
19262         PCUITEMID_CHILD pidl) = 0;
19263 
19264     virtual HRESULT STDMETHODCALLTYPE EnterFolder(
19265         IShellFolder *psf,
19266         PCUITEMID_CHILD pidl) = 0;
19267 
19268     virtual HRESULT STDMETHODCALLTYPE LeaveFolder(
19269         IShellFolder *psf,
19270         PCUITEMID_CHILD pidl) = 0;
19271 
19272     virtual HRESULT STDMETHODCALLTYPE InitializeProgressDialog(
19273         LPWSTR *ppszTitle,
19274         LPWSTR *ppszCancel) = 0;
19275 
19276 };
19277 #ifdef __CRT_UUID_DECL
19278 __CRT_UUID_DECL(INamespaceWalkCB, 0xd92995f8, 0xcf5e, 0x4a76, 0xbf,0x59, 0xea,0xd3,0x9e,0xa2,0xb9,0x7e)
19279 #endif
19280 #else
19281 typedef struct INamespaceWalkCBVtbl {
19282     BEGIN_INTERFACE
19283 
19284     /*** IUnknown methods ***/
19285     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19286         INamespaceWalkCB *This,
19287         REFIID riid,
19288         void **ppvObject);
19289 
19290     ULONG (STDMETHODCALLTYPE *AddRef)(
19291         INamespaceWalkCB *This);
19292 
19293     ULONG (STDMETHODCALLTYPE *Release)(
19294         INamespaceWalkCB *This);
19295 
19296     /*** INamespaceWalkCB methods ***/
19297     HRESULT (STDMETHODCALLTYPE *FoundItem)(
19298         INamespaceWalkCB *This,
19299         IShellFolder *psf,
19300         PCUITEMID_CHILD pidl);
19301 
19302     HRESULT (STDMETHODCALLTYPE *EnterFolder)(
19303         INamespaceWalkCB *This,
19304         IShellFolder *psf,
19305         PCUITEMID_CHILD pidl);
19306 
19307     HRESULT (STDMETHODCALLTYPE *LeaveFolder)(
19308         INamespaceWalkCB *This,
19309         IShellFolder *psf,
19310         PCUITEMID_CHILD pidl);
19311 
19312     HRESULT (STDMETHODCALLTYPE *InitializeProgressDialog)(
19313         INamespaceWalkCB *This,
19314         LPWSTR *ppszTitle,
19315         LPWSTR *ppszCancel);
19316 
19317     END_INTERFACE
19318 } INamespaceWalkCBVtbl;
19319 
19320 interface INamespaceWalkCB {
19321     CONST_VTBL INamespaceWalkCBVtbl* lpVtbl;
19322 };
19323 
19324 #ifdef COBJMACROS
19325 #ifndef WIDL_C_INLINE_WRAPPERS
19326 /*** IUnknown methods ***/
19327 #define INamespaceWalkCB_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19328 #define INamespaceWalkCB_AddRef(This) (This)->lpVtbl->AddRef(This)
19329 #define INamespaceWalkCB_Release(This) (This)->lpVtbl->Release(This)
19330 /*** INamespaceWalkCB methods ***/
19331 #define INamespaceWalkCB_FoundItem(This,psf,pidl) (This)->lpVtbl->FoundItem(This,psf,pidl)
19332 #define INamespaceWalkCB_EnterFolder(This,psf,pidl) (This)->lpVtbl->EnterFolder(This,psf,pidl)
19333 #define INamespaceWalkCB_LeaveFolder(This,psf,pidl) (This)->lpVtbl->LeaveFolder(This,psf,pidl)
19334 #define INamespaceWalkCB_InitializeProgressDialog(This,ppszTitle,ppszCancel) (This)->lpVtbl->InitializeProgressDialog(This,ppszTitle,ppszCancel)
19335 #else
19336 /*** IUnknown methods ***/
19337 static FORCEINLINE HRESULT INamespaceWalkCB_QueryInterface(INamespaceWalkCB* This,REFIID riid,void **ppvObject) {
19338     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19339 }
19340 static FORCEINLINE ULONG INamespaceWalkCB_AddRef(INamespaceWalkCB* This) {
19341     return This->lpVtbl->AddRef(This);
19342 }
19343 static FORCEINLINE ULONG INamespaceWalkCB_Release(INamespaceWalkCB* This) {
19344     return This->lpVtbl->Release(This);
19345 }
19346 /*** INamespaceWalkCB methods ***/
19347 static FORCEINLINE HRESULT INamespaceWalkCB_FoundItem(INamespaceWalkCB* This,IShellFolder *psf,PCUITEMID_CHILD pidl) {
19348     return This->lpVtbl->FoundItem(This,psf,pidl);
19349 }
19350 static FORCEINLINE HRESULT INamespaceWalkCB_EnterFolder(INamespaceWalkCB* This,IShellFolder *psf,PCUITEMID_CHILD pidl) {
19351     return This->lpVtbl->EnterFolder(This,psf,pidl);
19352 }
19353 static FORCEINLINE HRESULT INamespaceWalkCB_LeaveFolder(INamespaceWalkCB* This,IShellFolder *psf,PCUITEMID_CHILD pidl) {
19354     return This->lpVtbl->LeaveFolder(This,psf,pidl);
19355 }
19356 static FORCEINLINE HRESULT INamespaceWalkCB_InitializeProgressDialog(INamespaceWalkCB* This,LPWSTR *ppszTitle,LPWSTR *ppszCancel) {
19357     return This->lpVtbl->InitializeProgressDialog(This,ppszTitle,ppszCancel);
19358 }
19359 #endif
19360 #endif
19361 
19362 #endif
19363 
19364 
19365 #endif  /* __INamespaceWalkCB_INTERFACE_DEFINED__ */
19366 
19367 
19368 #if _WIN32_IE >= _WIN32_IE_IE70
19369 /*****************************************************************************
19370  * INamespaceWalkCB2 interface
19371  */
19372 #ifndef __INamespaceWalkCB2_INTERFACE_DEFINED__
19373 #define __INamespaceWalkCB2_INTERFACE_DEFINED__
19374 
19375 DEFINE_GUID(IID_INamespaceWalkCB2, 0x7ac7492b, 0xc38e, 0x438a, 0x87,0xdb, 0x68,0x73,0x78,0x44,0xff,0x70);
19376 #if defined(__cplusplus) && !defined(CINTERFACE)
19377 MIDL_INTERFACE("7ac7492b-c38e-438a-87db-68737844ff70")
19378 INamespaceWalkCB2 : public INamespaceWalkCB
19379 {
19380     virtual HRESULT STDMETHODCALLTYPE WalkComplete(
19381         HRESULT hr) = 0;
19382 
19383 };
19384 #ifdef __CRT_UUID_DECL
19385 __CRT_UUID_DECL(INamespaceWalkCB2, 0x7ac7492b, 0xc38e, 0x438a, 0x87,0xdb, 0x68,0x73,0x78,0x44,0xff,0x70)
19386 #endif
19387 #else
19388 typedef struct INamespaceWalkCB2Vtbl {
19389     BEGIN_INTERFACE
19390 
19391     /*** IUnknown methods ***/
19392     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19393         INamespaceWalkCB2 *This,
19394         REFIID riid,
19395         void **ppvObject);
19396 
19397     ULONG (STDMETHODCALLTYPE *AddRef)(
19398         INamespaceWalkCB2 *This);
19399 
19400     ULONG (STDMETHODCALLTYPE *Release)(
19401         INamespaceWalkCB2 *This);
19402 
19403     /*** INamespaceWalkCB methods ***/
19404     HRESULT (STDMETHODCALLTYPE *FoundItem)(
19405         INamespaceWalkCB2 *This,
19406         IShellFolder *psf,
19407         PCUITEMID_CHILD pidl);
19408 
19409     HRESULT (STDMETHODCALLTYPE *EnterFolder)(
19410         INamespaceWalkCB2 *This,
19411         IShellFolder *psf,
19412         PCUITEMID_CHILD pidl);
19413 
19414     HRESULT (STDMETHODCALLTYPE *LeaveFolder)(
19415         INamespaceWalkCB2 *This,
19416         IShellFolder *psf,
19417         PCUITEMID_CHILD pidl);
19418 
19419     HRESULT (STDMETHODCALLTYPE *InitializeProgressDialog)(
19420         INamespaceWalkCB2 *This,
19421         LPWSTR *ppszTitle,
19422         LPWSTR *ppszCancel);
19423 
19424     /*** INamespaceWalkCB2 methods ***/
19425     HRESULT (STDMETHODCALLTYPE *WalkComplete)(
19426         INamespaceWalkCB2 *This,
19427         HRESULT hr);
19428 
19429     END_INTERFACE
19430 } INamespaceWalkCB2Vtbl;
19431 
19432 interface INamespaceWalkCB2 {
19433     CONST_VTBL INamespaceWalkCB2Vtbl* lpVtbl;
19434 };
19435 
19436 #ifdef COBJMACROS
19437 #ifndef WIDL_C_INLINE_WRAPPERS
19438 /*** IUnknown methods ***/
19439 #define INamespaceWalkCB2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19440 #define INamespaceWalkCB2_AddRef(This) (This)->lpVtbl->AddRef(This)
19441 #define INamespaceWalkCB2_Release(This) (This)->lpVtbl->Release(This)
19442 /*** INamespaceWalkCB methods ***/
19443 #define INamespaceWalkCB2_FoundItem(This,psf,pidl) (This)->lpVtbl->FoundItem(This,psf,pidl)
19444 #define INamespaceWalkCB2_EnterFolder(This,psf,pidl) (This)->lpVtbl->EnterFolder(This,psf,pidl)
19445 #define INamespaceWalkCB2_LeaveFolder(This,psf,pidl) (This)->lpVtbl->LeaveFolder(This,psf,pidl)
19446 #define INamespaceWalkCB2_InitializeProgressDialog(This,ppszTitle,ppszCancel) (This)->lpVtbl->InitializeProgressDialog(This,ppszTitle,ppszCancel)
19447 /*** INamespaceWalkCB2 methods ***/
19448 #define INamespaceWalkCB2_WalkComplete(This,hr) (This)->lpVtbl->WalkComplete(This,hr)
19449 #else
19450 /*** IUnknown methods ***/
19451 static FORCEINLINE HRESULT INamespaceWalkCB2_QueryInterface(INamespaceWalkCB2* This,REFIID riid,void **ppvObject) {
19452     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19453 }
19454 static FORCEINLINE ULONG INamespaceWalkCB2_AddRef(INamespaceWalkCB2* This) {
19455     return This->lpVtbl->AddRef(This);
19456 }
19457 static FORCEINLINE ULONG INamespaceWalkCB2_Release(INamespaceWalkCB2* This) {
19458     return This->lpVtbl->Release(This);
19459 }
19460 /*** INamespaceWalkCB methods ***/
19461 static FORCEINLINE HRESULT INamespaceWalkCB2_FoundItem(INamespaceWalkCB2* This,IShellFolder *psf,PCUITEMID_CHILD pidl) {
19462     return This->lpVtbl->FoundItem(This,psf,pidl);
19463 }
19464 static FORCEINLINE HRESULT INamespaceWalkCB2_EnterFolder(INamespaceWalkCB2* This,IShellFolder *psf,PCUITEMID_CHILD pidl) {
19465     return This->lpVtbl->EnterFolder(This,psf,pidl);
19466 }
19467 static FORCEINLINE HRESULT INamespaceWalkCB2_LeaveFolder(INamespaceWalkCB2* This,IShellFolder *psf,PCUITEMID_CHILD pidl) {
19468     return This->lpVtbl->LeaveFolder(This,psf,pidl);
19469 }
19470 static FORCEINLINE HRESULT INamespaceWalkCB2_InitializeProgressDialog(INamespaceWalkCB2* This,LPWSTR *ppszTitle,LPWSTR *ppszCancel) {
19471     return This->lpVtbl->InitializeProgressDialog(This,ppszTitle,ppszCancel);
19472 }
19473 /*** INamespaceWalkCB2 methods ***/
19474 static FORCEINLINE HRESULT INamespaceWalkCB2_WalkComplete(INamespaceWalkCB2* This,HRESULT hr) {
19475     return This->lpVtbl->WalkComplete(This,hr);
19476 }
19477 #endif
19478 #endif
19479 
19480 #endif
19481 
19482 
19483 #endif  /* __INamespaceWalkCB2_INTERFACE_DEFINED__ */
19484 
19485 #endif
19486 
19487 /*****************************************************************************
19488  * INamespaceWalk interface
19489  */
19490 #ifndef __INamespaceWalk_INTERFACE_DEFINED__
19491 #define __INamespaceWalk_INTERFACE_DEFINED__
19492 
19493 typedef enum NAMESPACEWALKFLAG {
19494     NSWF_DEFAULT = 0x0,
19495     NSWF_NONE_IMPLIES_ALL = 0x1,
19496     NSWF_ONE_IMPLIES_ALL = 0x2,
19497     NSWF_DONT_TRAVERSE_LINKS = 0x4,
19498     NSWF_DONT_ACCUMULATE_RESULT = 0x8,
19499     NSWF_TRAVERSE_STREAM_JUNCTIONS = 0x10,
19500     NSWF_FILESYSTEM_ONLY = 0x20,
19501     NSWF_SHOW_PROGRESS = 0x40,
19502     NSWF_FLAG_VIEWORDER = 0x80,
19503     NSWF_IGNORE_AUTOPLAY_HIDA = 0x100,
19504     NSWF_ASYNC = 0x200,
19505     NSWF_DONT_RESOLVE_LINKS = 0x400,
19506     NSWF_ACCUMULATE_FOLDERS = 0x800,
19507     NSWF_DONT_SORT = 0x1000,
19508     NSWF_USE_TRANSFER_MEDIUM = 0x2000,
19509     NSWF_DONT_TRAVERSE_STREAM_JUNCTIONS = 0x4000,
19510     NSWF_ANY_IMPLIES_ALL = 0x8000
19511 } NAMESPACEWALKFLAG;
19512 
19513 #define NSWF_ENUMERATE_BEST_EFFORT 0x00010000
19514 #define NSWF_TRAVERSE_ONLY_STORAGE 0x00020000
19515 
19516 DEFINE_ENUM_FLAG_OPERATORS(NAMESPACEWALKFLAG)
19517 
19518 DEFINE_GUID(IID_INamespaceWalk, 0x57ced8a7, 0x3f4a, 0x432c, 0x93,0x50, 0x30,0xf2,0x44,0x83,0xf7,0x4f);
19519 #if defined(__cplusplus) && !defined(CINTERFACE)
19520 MIDL_INTERFACE("57ced8a7-3f4a-432c-9350-30f24483f74f")
19521 INamespaceWalk : public IUnknown
19522 {
19523     virtual HRESULT STDMETHODCALLTYPE Walk(
19524         IUnknown *punkToWalk,
19525         DWORD dwFlags,
19526         int cDepth,
19527         INamespaceWalkCB *pnswcb) = 0;
19528 
19529     virtual HRESULT STDMETHODCALLTYPE GetIDArrayResult(
19530         UINT *pcItems,
19531         PIDLIST_ABSOLUTE **prgpidl) = 0;
19532 
19533 };
19534 #ifdef __CRT_UUID_DECL
19535 __CRT_UUID_DECL(INamespaceWalk, 0x57ced8a7, 0x3f4a, 0x432c, 0x93,0x50, 0x30,0xf2,0x44,0x83,0xf7,0x4f)
19536 #endif
19537 #else
19538 typedef struct INamespaceWalkVtbl {
19539     BEGIN_INTERFACE
19540 
19541     /*** IUnknown methods ***/
19542     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19543         INamespaceWalk *This,
19544         REFIID riid,
19545         void **ppvObject);
19546 
19547     ULONG (STDMETHODCALLTYPE *AddRef)(
19548         INamespaceWalk *This);
19549 
19550     ULONG (STDMETHODCALLTYPE *Release)(
19551         INamespaceWalk *This);
19552 
19553     /*** INamespaceWalk methods ***/
19554     HRESULT (STDMETHODCALLTYPE *Walk)(
19555         INamespaceWalk *This,
19556         IUnknown *punkToWalk,
19557         DWORD dwFlags,
19558         int cDepth,
19559         INamespaceWalkCB *pnswcb);
19560 
19561     HRESULT (STDMETHODCALLTYPE *GetIDArrayResult)(
19562         INamespaceWalk *This,
19563         UINT *pcItems,
19564         PIDLIST_ABSOLUTE **prgpidl);
19565 
19566     END_INTERFACE
19567 } INamespaceWalkVtbl;
19568 
19569 interface INamespaceWalk {
19570     CONST_VTBL INamespaceWalkVtbl* lpVtbl;
19571 };
19572 
19573 #ifdef COBJMACROS
19574 #ifndef WIDL_C_INLINE_WRAPPERS
19575 /*** IUnknown methods ***/
19576 #define INamespaceWalk_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19577 #define INamespaceWalk_AddRef(This) (This)->lpVtbl->AddRef(This)
19578 #define INamespaceWalk_Release(This) (This)->lpVtbl->Release(This)
19579 /*** INamespaceWalk methods ***/
19580 #define INamespaceWalk_Walk(This,punkToWalk,dwFlags,cDepth,pnswcb) (This)->lpVtbl->Walk(This,punkToWalk,dwFlags,cDepth,pnswcb)
19581 #define INamespaceWalk_GetIDArrayResult(This,pcItems,prgpidl) (This)->lpVtbl->GetIDArrayResult(This,pcItems,prgpidl)
19582 #else
19583 /*** IUnknown methods ***/
19584 static FORCEINLINE HRESULT INamespaceWalk_QueryInterface(INamespaceWalk* This,REFIID riid,void **ppvObject) {
19585     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19586 }
19587 static FORCEINLINE ULONG INamespaceWalk_AddRef(INamespaceWalk* This) {
19588     return This->lpVtbl->AddRef(This);
19589 }
19590 static FORCEINLINE ULONG INamespaceWalk_Release(INamespaceWalk* This) {
19591     return This->lpVtbl->Release(This);
19592 }
19593 /*** INamespaceWalk methods ***/
19594 static FORCEINLINE HRESULT INamespaceWalk_Walk(INamespaceWalk* This,IUnknown *punkToWalk,DWORD dwFlags,int cDepth,INamespaceWalkCB *pnswcb) {
19595     return This->lpVtbl->Walk(This,punkToWalk,dwFlags,cDepth,pnswcb);
19596 }
19597 static FORCEINLINE HRESULT INamespaceWalk_GetIDArrayResult(INamespaceWalk* This,UINT *pcItems,PIDLIST_ABSOLUTE **prgpidl) {
19598     return This->lpVtbl->GetIDArrayResult(This,pcItems,prgpidl);
19599 }
19600 #endif
19601 #endif
19602 
19603 #endif
19604 
19605 
19606 #endif  /* __INamespaceWalk_INTERFACE_DEFINED__ */
19607 
19608 
FreeIDListArray(PIDLIST_RELATIVE * ppidls,UINT cItems)19609   __forceinline void FreeIDListArray(PIDLIST_RELATIVE *ppidls, UINT cItems) {
19610     UINT i;
19611     for (i = 0; i < cItems; i++) {
19612       CoTaskMemFree(ppidls[i]);
19613     }
19614     CoTaskMemFree(ppidls);
19615   }
19616 #if defined(STRICT_TYPED_ITEMIDS) && defined(__cplusplus)
FreeIDListArrayFull(PIDLIST_ABSOLUTE * ppidls,UINT cItems)19617   __forceinline void FreeIDListArrayFull(PIDLIST_ABSOLUTE *ppidls, UINT cItems) {
19618     UINT i;
19619     for (i = 0; i < cItems; i++)
19620       CoTaskMemFree(ppidls[i]);
19621     CoTaskMemFree(ppidls);
19622   }
FreeIDListArrayChild(PITEMID_CHILD * ppidls,UINT cItems)19623   __forceinline void FreeIDListArrayChild(PITEMID_CHILD *ppidls, UINT cItems) {
19624     UINT i;
19625     for (i = 0; i < cItems; i++)
19626       CoTaskMemFree(ppidls[i]);
19627     CoTaskMemFree(ppidls);
19628   }
19629 #else
19630 #define FreeIDListArrayFull FreeIDListArray
19631 #define FreeIDListArrayChild FreeIDListArray
19632 #endif
19633 
19634 #define ACDD_VISIBLE 0x1
19635 
19636 /*****************************************************************************
19637  * IAutoCompleteDropDown interface
19638  */
19639 #ifndef __IAutoCompleteDropDown_INTERFACE_DEFINED__
19640 #define __IAutoCompleteDropDown_INTERFACE_DEFINED__
19641 
19642 DEFINE_GUID(IID_IAutoCompleteDropDown, 0x3cd141f4, 0x3c6a, 0x11d2, 0xbc,0xaa, 0x00,0xc0,0x4f,0xd9,0x29,0xdb);
19643 #if defined(__cplusplus) && !defined(CINTERFACE)
19644 MIDL_INTERFACE("3cd141f4-3c6a-11d2-bcaa-00c04fd929db")
19645 IAutoCompleteDropDown : public IUnknown
19646 {
19647     virtual HRESULT STDMETHODCALLTYPE GetDropDownStatus(
19648         DWORD *pdwFlags,
19649         LPWSTR *ppwszString) = 0;
19650 
19651     virtual HRESULT STDMETHODCALLTYPE ResetEnumerator(
19652         ) = 0;
19653 
19654 };
19655 #ifdef __CRT_UUID_DECL
19656 __CRT_UUID_DECL(IAutoCompleteDropDown, 0x3cd141f4, 0x3c6a, 0x11d2, 0xbc,0xaa, 0x00,0xc0,0x4f,0xd9,0x29,0xdb)
19657 #endif
19658 #else
19659 typedef struct IAutoCompleteDropDownVtbl {
19660     BEGIN_INTERFACE
19661 
19662     /*** IUnknown methods ***/
19663     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19664         IAutoCompleteDropDown *This,
19665         REFIID riid,
19666         void **ppvObject);
19667 
19668     ULONG (STDMETHODCALLTYPE *AddRef)(
19669         IAutoCompleteDropDown *This);
19670 
19671     ULONG (STDMETHODCALLTYPE *Release)(
19672         IAutoCompleteDropDown *This);
19673 
19674     /*** IAutoCompleteDropDown methods ***/
19675     HRESULT (STDMETHODCALLTYPE *GetDropDownStatus)(
19676         IAutoCompleteDropDown *This,
19677         DWORD *pdwFlags,
19678         LPWSTR *ppwszString);
19679 
19680     HRESULT (STDMETHODCALLTYPE *ResetEnumerator)(
19681         IAutoCompleteDropDown *This);
19682 
19683     END_INTERFACE
19684 } IAutoCompleteDropDownVtbl;
19685 
19686 interface IAutoCompleteDropDown {
19687     CONST_VTBL IAutoCompleteDropDownVtbl* lpVtbl;
19688 };
19689 
19690 #ifdef COBJMACROS
19691 #ifndef WIDL_C_INLINE_WRAPPERS
19692 /*** IUnknown methods ***/
19693 #define IAutoCompleteDropDown_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19694 #define IAutoCompleteDropDown_AddRef(This) (This)->lpVtbl->AddRef(This)
19695 #define IAutoCompleteDropDown_Release(This) (This)->lpVtbl->Release(This)
19696 /*** IAutoCompleteDropDown methods ***/
19697 #define IAutoCompleteDropDown_GetDropDownStatus(This,pdwFlags,ppwszString) (This)->lpVtbl->GetDropDownStatus(This,pdwFlags,ppwszString)
19698 #define IAutoCompleteDropDown_ResetEnumerator(This) (This)->lpVtbl->ResetEnumerator(This)
19699 #else
19700 /*** IUnknown methods ***/
19701 static FORCEINLINE HRESULT IAutoCompleteDropDown_QueryInterface(IAutoCompleteDropDown* This,REFIID riid,void **ppvObject) {
19702     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19703 }
19704 static FORCEINLINE ULONG IAutoCompleteDropDown_AddRef(IAutoCompleteDropDown* This) {
19705     return This->lpVtbl->AddRef(This);
19706 }
19707 static FORCEINLINE ULONG IAutoCompleteDropDown_Release(IAutoCompleteDropDown* This) {
19708     return This->lpVtbl->Release(This);
19709 }
19710 /*** IAutoCompleteDropDown methods ***/
19711 static FORCEINLINE HRESULT IAutoCompleteDropDown_GetDropDownStatus(IAutoCompleteDropDown* This,DWORD *pdwFlags,LPWSTR *ppwszString) {
19712     return This->lpVtbl->GetDropDownStatus(This,pdwFlags,ppwszString);
19713 }
19714 static FORCEINLINE HRESULT IAutoCompleteDropDown_ResetEnumerator(IAutoCompleteDropDown* This) {
19715     return This->lpVtbl->ResetEnumerator(This);
19716 }
19717 #endif
19718 #endif
19719 
19720 #endif
19721 
19722 
19723 #endif  /* __IAutoCompleteDropDown_INTERFACE_DEFINED__ */
19724 
19725 
19726 #include <pshpack8.h>
19727 typedef struct tagBANDSITEINFO {
19728     DWORD dwMask;
19729     DWORD dwState;
19730     DWORD dwStyle;
19731 } BANDSITEINFO;
19732 #include <poppack.h>
19733 enum tagBANDSITECID {
19734     BSID_BANDADDED = 0,
19735     BSID_BANDREMOVED = 1
19736 };
19737 
19738 #define BSIM_STATE 0x00000001
19739 #define BSIM_STYLE 0x00000002
19740 
19741 #define BSSF_VISIBLE 0x00000001
19742 #define BSSF_NOTITLE 0x00000002
19743 #define BSSF_UNDELETEABLE 0x00001000
19744 
19745 #define BSIS_AUTOGRIPPER 0x00000000
19746 #define BSIS_NOGRIPPER 0x00000001
19747 #define BSIS_ALWAYSGRIPPER 0x00000002
19748 #define BSIS_LEFTALIGN 0x00000004
19749 #define BSIS_SINGLECLICK 0x00000008
19750 #define BSIS_NOCONTEXTMENU 0x00000010
19751 #define BSIS_NODROPTARGET 0x00000020
19752 #define BSIS_NOCAPTION 0x00000040
19753 #define BSIS_PREFERNOLINEBREAK 0x00000080
19754 #define BSIS_LOCKED 0x00000100
19755 #if _WIN32_IE >= _WIN32_IE_IE70
19756 #define BSIS_PRESERVEORDERDURINGLAYOUT 0x00000200
19757 #define BSIS_FIXEDORDER 0x00000400
19758 #endif
19759 
19760 #define SID_SBandSite IID_IBandSite
19761 #define CGID_BandSite IID_IBandSite
19762 
19763 /*****************************************************************************
19764  * IBandSite interface
19765  */
19766 #ifndef __IBandSite_INTERFACE_DEFINED__
19767 #define __IBandSite_INTERFACE_DEFINED__
19768 
19769 DEFINE_GUID(IID_IBandSite, 0x4cf504b0, 0xde96, 0x11d0, 0x8b,0x3f, 0x00,0xa0,0xc9,0x11,0xe8,0xe5);
19770 #if defined(__cplusplus) && !defined(CINTERFACE)
19771 MIDL_INTERFACE("4cf504b0-de96-11d0-8b3f-00a0c911e8e5")
19772 IBandSite : public IUnknown
19773 {
19774     virtual HRESULT STDMETHODCALLTYPE AddBand(
19775         IUnknown *punk) = 0;
19776 
19777     virtual HRESULT STDMETHODCALLTYPE EnumBands(
19778         UINT uBand,
19779         DWORD *pdwBandID) = 0;
19780 
19781     virtual HRESULT STDMETHODCALLTYPE QueryBand(
19782         DWORD dwBandID,
19783         IDeskBand **ppstb,
19784         DWORD *pdwState,
19785         LPWSTR pszName,
19786         int cchName) = 0;
19787 
19788     virtual HRESULT STDMETHODCALLTYPE SetBandState(
19789         DWORD dwBandID,
19790         DWORD dwMask,
19791         DWORD dwState) = 0;
19792 
19793     virtual HRESULT STDMETHODCALLTYPE RemoveBand(
19794         DWORD dwBandID) = 0;
19795 
19796     virtual HRESULT STDMETHODCALLTYPE GetBandObject(
19797         DWORD dwBandID,
19798         REFIID riid,
19799         void **ppv) = 0;
19800 
19801     virtual HRESULT STDMETHODCALLTYPE SetBandSiteInfo(
19802         const BANDSITEINFO *pbsinfo) = 0;
19803 
19804     virtual HRESULT STDMETHODCALLTYPE GetBandSiteInfo(
19805         BANDSITEINFO *pbsinfo) = 0;
19806 
19807 };
19808 #ifdef __CRT_UUID_DECL
19809 __CRT_UUID_DECL(IBandSite, 0x4cf504b0, 0xde96, 0x11d0, 0x8b,0x3f, 0x00,0xa0,0xc9,0x11,0xe8,0xe5)
19810 #endif
19811 #else
19812 typedef struct IBandSiteVtbl {
19813     BEGIN_INTERFACE
19814 
19815     /*** IUnknown methods ***/
19816     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19817         IBandSite *This,
19818         REFIID riid,
19819         void **ppvObject);
19820 
19821     ULONG (STDMETHODCALLTYPE *AddRef)(
19822         IBandSite *This);
19823 
19824     ULONG (STDMETHODCALLTYPE *Release)(
19825         IBandSite *This);
19826 
19827     /*** IBandSite methods ***/
19828     HRESULT (STDMETHODCALLTYPE *AddBand)(
19829         IBandSite *This,
19830         IUnknown *punk);
19831 
19832     HRESULT (STDMETHODCALLTYPE *EnumBands)(
19833         IBandSite *This,
19834         UINT uBand,
19835         DWORD *pdwBandID);
19836 
19837     HRESULT (STDMETHODCALLTYPE *QueryBand)(
19838         IBandSite *This,
19839         DWORD dwBandID,
19840         IDeskBand **ppstb,
19841         DWORD *pdwState,
19842         LPWSTR pszName,
19843         int cchName);
19844 
19845     HRESULT (STDMETHODCALLTYPE *SetBandState)(
19846         IBandSite *This,
19847         DWORD dwBandID,
19848         DWORD dwMask,
19849         DWORD dwState);
19850 
19851     HRESULT (STDMETHODCALLTYPE *RemoveBand)(
19852         IBandSite *This,
19853         DWORD dwBandID);
19854 
19855     HRESULT (STDMETHODCALLTYPE *GetBandObject)(
19856         IBandSite *This,
19857         DWORD dwBandID,
19858         REFIID riid,
19859         void **ppv);
19860 
19861     HRESULT (STDMETHODCALLTYPE *SetBandSiteInfo)(
19862         IBandSite *This,
19863         const BANDSITEINFO *pbsinfo);
19864 
19865     HRESULT (STDMETHODCALLTYPE *GetBandSiteInfo)(
19866         IBandSite *This,
19867         BANDSITEINFO *pbsinfo);
19868 
19869     END_INTERFACE
19870 } IBandSiteVtbl;
19871 
19872 interface IBandSite {
19873     CONST_VTBL IBandSiteVtbl* lpVtbl;
19874 };
19875 
19876 #ifdef COBJMACROS
19877 #ifndef WIDL_C_INLINE_WRAPPERS
19878 /*** IUnknown methods ***/
19879 #define IBandSite_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19880 #define IBandSite_AddRef(This) (This)->lpVtbl->AddRef(This)
19881 #define IBandSite_Release(This) (This)->lpVtbl->Release(This)
19882 /*** IBandSite methods ***/
19883 #define IBandSite_AddBand(This,punk) (This)->lpVtbl->AddBand(This,punk)
19884 #define IBandSite_EnumBands(This,uBand,pdwBandID) (This)->lpVtbl->EnumBands(This,uBand,pdwBandID)
19885 #define IBandSite_QueryBand(This,dwBandID,ppstb,pdwState,pszName,cchName) (This)->lpVtbl->QueryBand(This,dwBandID,ppstb,pdwState,pszName,cchName)
19886 #define IBandSite_SetBandState(This,dwBandID,dwMask,dwState) (This)->lpVtbl->SetBandState(This,dwBandID,dwMask,dwState)
19887 #define IBandSite_RemoveBand(This,dwBandID) (This)->lpVtbl->RemoveBand(This,dwBandID)
19888 #define IBandSite_GetBandObject(This,dwBandID,riid,ppv) (This)->lpVtbl->GetBandObject(This,dwBandID,riid,ppv)
19889 #define IBandSite_SetBandSiteInfo(This,pbsinfo) (This)->lpVtbl->SetBandSiteInfo(This,pbsinfo)
19890 #define IBandSite_GetBandSiteInfo(This,pbsinfo) (This)->lpVtbl->GetBandSiteInfo(This,pbsinfo)
19891 #else
19892 /*** IUnknown methods ***/
19893 static FORCEINLINE HRESULT IBandSite_QueryInterface(IBandSite* This,REFIID riid,void **ppvObject) {
19894     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19895 }
19896 static FORCEINLINE ULONG IBandSite_AddRef(IBandSite* This) {
19897     return This->lpVtbl->AddRef(This);
19898 }
19899 static FORCEINLINE ULONG IBandSite_Release(IBandSite* This) {
19900     return This->lpVtbl->Release(This);
19901 }
19902 /*** IBandSite methods ***/
19903 static FORCEINLINE HRESULT IBandSite_AddBand(IBandSite* This,IUnknown *punk) {
19904     return This->lpVtbl->AddBand(This,punk);
19905 }
19906 static FORCEINLINE HRESULT IBandSite_EnumBands(IBandSite* This,UINT uBand,DWORD *pdwBandID) {
19907     return This->lpVtbl->EnumBands(This,uBand,pdwBandID);
19908 }
19909 static FORCEINLINE HRESULT IBandSite_QueryBand(IBandSite* This,DWORD dwBandID,IDeskBand **ppstb,DWORD *pdwState,LPWSTR pszName,int cchName) {
19910     return This->lpVtbl->QueryBand(This,dwBandID,ppstb,pdwState,pszName,cchName);
19911 }
19912 static FORCEINLINE HRESULT IBandSite_SetBandState(IBandSite* This,DWORD dwBandID,DWORD dwMask,DWORD dwState) {
19913     return This->lpVtbl->SetBandState(This,dwBandID,dwMask,dwState);
19914 }
19915 static FORCEINLINE HRESULT IBandSite_RemoveBand(IBandSite* This,DWORD dwBandID) {
19916     return This->lpVtbl->RemoveBand(This,dwBandID);
19917 }
19918 static FORCEINLINE HRESULT IBandSite_GetBandObject(IBandSite* This,DWORD dwBandID,REFIID riid,void **ppv) {
19919     return This->lpVtbl->GetBandObject(This,dwBandID,riid,ppv);
19920 }
19921 static FORCEINLINE HRESULT IBandSite_SetBandSiteInfo(IBandSite* This,const BANDSITEINFO *pbsinfo) {
19922     return This->lpVtbl->SetBandSiteInfo(This,pbsinfo);
19923 }
19924 static FORCEINLINE HRESULT IBandSite_GetBandSiteInfo(IBandSite* This,BANDSITEINFO *pbsinfo) {
19925     return This->lpVtbl->GetBandSiteInfo(This,pbsinfo);
19926 }
19927 #endif
19928 #endif
19929 
19930 #endif
19931 
19932 HRESULT STDMETHODCALLTYPE IBandSite_RemoteQueryBand_Proxy(
19933     IBandSite* This,
19934     DWORD dwBandID,
19935     IDeskBand **ppstb,
19936     DWORD *pdwState,
19937     LPWSTR pszName,
19938     int cchName);
19939 void __RPC_STUB IBandSite_RemoteQueryBand_Stub(
19940     IRpcStubBuffer* This,
19941     IRpcChannelBuffer* pRpcChannelBuffer,
19942     PRPC_MESSAGE pRpcMessage,
19943     DWORD* pdwStubPhase);
19944 HRESULT CALLBACK IBandSite_QueryBand_Proxy(
19945     IBandSite* This,
19946     DWORD dwBandID,
19947     IDeskBand **ppstb,
19948     DWORD *pdwState,
19949     LPWSTR pszName,
19950     int cchName);
19951 HRESULT __RPC_STUB IBandSite_QueryBand_Stub(
19952     IBandSite* This,
19953     DWORD dwBandID,
19954     IDeskBand **ppstb,
19955     DWORD *pdwState,
19956     LPWSTR pszName,
19957     int cchName);
19958 
19959 #endif  /* __IBandSite_INTERFACE_DEFINED__ */
19960 
19961 
19962 /*****************************************************************************
19963  * IModalWindow interface
19964  */
19965 #ifndef __IModalWindow_INTERFACE_DEFINED__
19966 #define __IModalWindow_INTERFACE_DEFINED__
19967 
19968 DEFINE_GUID(IID_IModalWindow, 0xb4db1657, 0x70d7, 0x485e, 0x8e,0x3e, 0x6f,0xcb,0x5a,0x5c,0x18,0x02);
19969 #if defined(__cplusplus) && !defined(CINTERFACE)
19970 MIDL_INTERFACE("b4db1657-70d7-485e-8e3e-6fcb5a5c1802")
19971 IModalWindow : public IUnknown
19972 {
19973     virtual HRESULT STDMETHODCALLTYPE Show(
19974         HWND hwndOwner) = 0;
19975 
19976 };
19977 #ifdef __CRT_UUID_DECL
19978 __CRT_UUID_DECL(IModalWindow, 0xb4db1657, 0x70d7, 0x485e, 0x8e,0x3e, 0x6f,0xcb,0x5a,0x5c,0x18,0x02)
19979 #endif
19980 #else
19981 typedef struct IModalWindowVtbl {
19982     BEGIN_INTERFACE
19983 
19984     /*** IUnknown methods ***/
19985     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19986         IModalWindow *This,
19987         REFIID riid,
19988         void **ppvObject);
19989 
19990     ULONG (STDMETHODCALLTYPE *AddRef)(
19991         IModalWindow *This);
19992 
19993     ULONG (STDMETHODCALLTYPE *Release)(
19994         IModalWindow *This);
19995 
19996     /*** IModalWindow methods ***/
19997     HRESULT (STDMETHODCALLTYPE *Show)(
19998         IModalWindow *This,
19999         HWND hwndOwner);
20000 
20001     END_INTERFACE
20002 } IModalWindowVtbl;
20003 
20004 interface IModalWindow {
20005     CONST_VTBL IModalWindowVtbl* lpVtbl;
20006 };
20007 
20008 #ifdef COBJMACROS
20009 #ifndef WIDL_C_INLINE_WRAPPERS
20010 /*** IUnknown methods ***/
20011 #define IModalWindow_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20012 #define IModalWindow_AddRef(This) (This)->lpVtbl->AddRef(This)
20013 #define IModalWindow_Release(This) (This)->lpVtbl->Release(This)
20014 /*** IModalWindow methods ***/
20015 #define IModalWindow_Show(This,hwndOwner) (This)->lpVtbl->Show(This,hwndOwner)
20016 #else
20017 /*** IUnknown methods ***/
20018 static FORCEINLINE HRESULT IModalWindow_QueryInterface(IModalWindow* This,REFIID riid,void **ppvObject) {
20019     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20020 }
20021 static FORCEINLINE ULONG IModalWindow_AddRef(IModalWindow* This) {
20022     return This->lpVtbl->AddRef(This);
20023 }
20024 static FORCEINLINE ULONG IModalWindow_Release(IModalWindow* This) {
20025     return This->lpVtbl->Release(This);
20026 }
20027 /*** IModalWindow methods ***/
20028 static FORCEINLINE HRESULT IModalWindow_Show(IModalWindow* This,HWND hwndOwner) {
20029     return This->lpVtbl->Show(This,hwndOwner);
20030 }
20031 #endif
20032 #endif
20033 
20034 #endif
20035 
20036 HRESULT STDMETHODCALLTYPE IModalWindow_RemoteShow_Proxy(
20037     IModalWindow* This,
20038     HWND hwndOwner);
20039 void __RPC_STUB IModalWindow_RemoteShow_Stub(
20040     IRpcStubBuffer* This,
20041     IRpcChannelBuffer* pRpcChannelBuffer,
20042     PRPC_MESSAGE pRpcMessage,
20043     DWORD* pdwStubPhase);
20044 HRESULT CALLBACK IModalWindow_Show_Proxy(
20045     IModalWindow* This,
20046     HWND hwndOwner);
20047 HRESULT __RPC_STUB IModalWindow_Show_Stub(
20048     IModalWindow* This,
20049     HWND hwndOwner);
20050 
20051 #endif  /* __IModalWindow_INTERFACE_DEFINED__ */
20052 
20053 
20054 #define PROPSTR_EXTENSIONCOMPLETIONSTATE L"ExtensionCompletionState"
20055 
20056 enum tagCDBURNINGEXTENSIONRET {
20057     CDBE_RET_DEFAULT = 0x0,
20058     CDBE_RET_DONTRUNOTHEREXTS = 0x1,
20059     CDBE_RET_STOPWIZARD = 0x2
20060 };
20061 
20062 #define SID_CDWizardHost IID_ICDBurnExt
20063 
20064 enum _CDBE_ACTIONS {
20065     CDBE_TYPE_MUSIC = 0x1,
20066     CDBE_TYPE_DATA = 0x2,
20067     CDBE_TYPE_ALL = (int)0xffffffff
20068 };
20069 
20070 typedef DWORD CDBE_ACTIONS;
20071 
20072 /*****************************************************************************
20073  * ICDBurnExt interface
20074  */
20075 #ifndef __ICDBurnExt_INTERFACE_DEFINED__
20076 #define __ICDBurnExt_INTERFACE_DEFINED__
20077 
20078 DEFINE_GUID(IID_ICDBurnExt, 0x2271dcca, 0x74fc, 0x4414, 0x8f,0xb7, 0xc5,0x6b,0x05,0xac,0xe2,0xd7);
20079 #if defined(__cplusplus) && !defined(CINTERFACE)
20080 MIDL_INTERFACE("2271dcca-74fc-4414-8fb7-c56b05ace2d7")
20081 ICDBurnExt : public IUnknown
20082 {
20083     virtual HRESULT STDMETHODCALLTYPE GetSupportedActionTypes(
20084         CDBE_ACTIONS *pdwActions) = 0;
20085 
20086 };
20087 #ifdef __CRT_UUID_DECL
20088 __CRT_UUID_DECL(ICDBurnExt, 0x2271dcca, 0x74fc, 0x4414, 0x8f,0xb7, 0xc5,0x6b,0x05,0xac,0xe2,0xd7)
20089 #endif
20090 #else
20091 typedef struct ICDBurnExtVtbl {
20092     BEGIN_INTERFACE
20093 
20094     /*** IUnknown methods ***/
20095     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20096         ICDBurnExt *This,
20097         REFIID riid,
20098         void **ppvObject);
20099 
20100     ULONG (STDMETHODCALLTYPE *AddRef)(
20101         ICDBurnExt *This);
20102 
20103     ULONG (STDMETHODCALLTYPE *Release)(
20104         ICDBurnExt *This);
20105 
20106     /*** ICDBurnExt methods ***/
20107     HRESULT (STDMETHODCALLTYPE *GetSupportedActionTypes)(
20108         ICDBurnExt *This,
20109         CDBE_ACTIONS *pdwActions);
20110 
20111     END_INTERFACE
20112 } ICDBurnExtVtbl;
20113 
20114 interface ICDBurnExt {
20115     CONST_VTBL ICDBurnExtVtbl* lpVtbl;
20116 };
20117 
20118 #ifdef COBJMACROS
20119 #ifndef WIDL_C_INLINE_WRAPPERS
20120 /*** IUnknown methods ***/
20121 #define ICDBurnExt_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20122 #define ICDBurnExt_AddRef(This) (This)->lpVtbl->AddRef(This)
20123 #define ICDBurnExt_Release(This) (This)->lpVtbl->Release(This)
20124 /*** ICDBurnExt methods ***/
20125 #define ICDBurnExt_GetSupportedActionTypes(This,pdwActions) (This)->lpVtbl->GetSupportedActionTypes(This,pdwActions)
20126 #else
20127 /*** IUnknown methods ***/
20128 static FORCEINLINE HRESULT ICDBurnExt_QueryInterface(ICDBurnExt* This,REFIID riid,void **ppvObject) {
20129     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20130 }
20131 static FORCEINLINE ULONG ICDBurnExt_AddRef(ICDBurnExt* This) {
20132     return This->lpVtbl->AddRef(This);
20133 }
20134 static FORCEINLINE ULONG ICDBurnExt_Release(ICDBurnExt* This) {
20135     return This->lpVtbl->Release(This);
20136 }
20137 /*** ICDBurnExt methods ***/
20138 static FORCEINLINE HRESULT ICDBurnExt_GetSupportedActionTypes(ICDBurnExt* This,CDBE_ACTIONS *pdwActions) {
20139     return This->lpVtbl->GetSupportedActionTypes(This,pdwActions);
20140 }
20141 #endif
20142 #endif
20143 
20144 #endif
20145 
20146 
20147 #endif  /* __ICDBurnExt_INTERFACE_DEFINED__ */
20148 
20149 
20150 /*****************************************************************************
20151  * IContextMenuSite interface
20152  */
20153 #ifndef __IContextMenuSite_INTERFACE_DEFINED__
20154 #define __IContextMenuSite_INTERFACE_DEFINED__
20155 
20156 DEFINE_GUID(IID_IContextMenuSite, 0x0811aebe, 0x0b87, 0x4c54, 0x9e,0x72, 0x54,0x8c,0xf6,0x49,0x01,0x6b);
20157 #if defined(__cplusplus) && !defined(CINTERFACE)
20158 MIDL_INTERFACE("0811aebe-0b87-4c54-9e72-548cf649016b")
20159 IContextMenuSite : public IUnknown
20160 {
20161     virtual HRESULT STDMETHODCALLTYPE DoContextMenuPopup(
20162         IUnknown *punkContextMenu,
20163         UINT fFlags,
20164         POINT pt) = 0;
20165 
20166 };
20167 #ifdef __CRT_UUID_DECL
20168 __CRT_UUID_DECL(IContextMenuSite, 0x0811aebe, 0x0b87, 0x4c54, 0x9e,0x72, 0x54,0x8c,0xf6,0x49,0x01,0x6b)
20169 #endif
20170 #else
20171 typedef struct IContextMenuSiteVtbl {
20172     BEGIN_INTERFACE
20173 
20174     /*** IUnknown methods ***/
20175     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20176         IContextMenuSite *This,
20177         REFIID riid,
20178         void **ppvObject);
20179 
20180     ULONG (STDMETHODCALLTYPE *AddRef)(
20181         IContextMenuSite *This);
20182 
20183     ULONG (STDMETHODCALLTYPE *Release)(
20184         IContextMenuSite *This);
20185 
20186     /*** IContextMenuSite methods ***/
20187     HRESULT (STDMETHODCALLTYPE *DoContextMenuPopup)(
20188         IContextMenuSite *This,
20189         IUnknown *punkContextMenu,
20190         UINT fFlags,
20191         POINT pt);
20192 
20193     END_INTERFACE
20194 } IContextMenuSiteVtbl;
20195 
20196 interface IContextMenuSite {
20197     CONST_VTBL IContextMenuSiteVtbl* lpVtbl;
20198 };
20199 
20200 #ifdef COBJMACROS
20201 #ifndef WIDL_C_INLINE_WRAPPERS
20202 /*** IUnknown methods ***/
20203 #define IContextMenuSite_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20204 #define IContextMenuSite_AddRef(This) (This)->lpVtbl->AddRef(This)
20205 #define IContextMenuSite_Release(This) (This)->lpVtbl->Release(This)
20206 /*** IContextMenuSite methods ***/
20207 #define IContextMenuSite_DoContextMenuPopup(This,punkContextMenu,fFlags,pt) (This)->lpVtbl->DoContextMenuPopup(This,punkContextMenu,fFlags,pt)
20208 #else
20209 /*** IUnknown methods ***/
20210 static FORCEINLINE HRESULT IContextMenuSite_QueryInterface(IContextMenuSite* This,REFIID riid,void **ppvObject) {
20211     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20212 }
20213 static FORCEINLINE ULONG IContextMenuSite_AddRef(IContextMenuSite* This) {
20214     return This->lpVtbl->AddRef(This);
20215 }
20216 static FORCEINLINE ULONG IContextMenuSite_Release(IContextMenuSite* This) {
20217     return This->lpVtbl->Release(This);
20218 }
20219 /*** IContextMenuSite methods ***/
20220 static FORCEINLINE HRESULT IContextMenuSite_DoContextMenuPopup(IContextMenuSite* This,IUnknown *punkContextMenu,UINT fFlags,POINT pt) {
20221     return This->lpVtbl->DoContextMenuPopup(This,punkContextMenu,fFlags,pt);
20222 }
20223 #endif
20224 #endif
20225 
20226 #endif
20227 
20228 
20229 #endif  /* __IContextMenuSite_INTERFACE_DEFINED__ */
20230 
20231 
20232 /*****************************************************************************
20233  * IEnumReadyCallback interface
20234  */
20235 #ifndef __IEnumReadyCallback_INTERFACE_DEFINED__
20236 #define __IEnumReadyCallback_INTERFACE_DEFINED__
20237 
20238 DEFINE_GUID(IID_IEnumReadyCallback, 0x61e00d45, 0x8fff, 0x4e60, 0x92,0x4e, 0x65,0x37,0xb6,0x16,0x12,0xdd);
20239 #if defined(__cplusplus) && !defined(CINTERFACE)
20240 MIDL_INTERFACE("61e00d45-8fff-4e60-924e-6537b61612dd")
20241 IEnumReadyCallback : public IUnknown
20242 {
20243     virtual HRESULT STDMETHODCALLTYPE EnumReady(
20244         ) = 0;
20245 
20246 };
20247 #ifdef __CRT_UUID_DECL
20248 __CRT_UUID_DECL(IEnumReadyCallback, 0x61e00d45, 0x8fff, 0x4e60, 0x92,0x4e, 0x65,0x37,0xb6,0x16,0x12,0xdd)
20249 #endif
20250 #else
20251 typedef struct IEnumReadyCallbackVtbl {
20252     BEGIN_INTERFACE
20253 
20254     /*** IUnknown methods ***/
20255     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20256         IEnumReadyCallback *This,
20257         REFIID riid,
20258         void **ppvObject);
20259 
20260     ULONG (STDMETHODCALLTYPE *AddRef)(
20261         IEnumReadyCallback *This);
20262 
20263     ULONG (STDMETHODCALLTYPE *Release)(
20264         IEnumReadyCallback *This);
20265 
20266     /*** IEnumReadyCallback methods ***/
20267     HRESULT (STDMETHODCALLTYPE *EnumReady)(
20268         IEnumReadyCallback *This);
20269 
20270     END_INTERFACE
20271 } IEnumReadyCallbackVtbl;
20272 
20273 interface IEnumReadyCallback {
20274     CONST_VTBL IEnumReadyCallbackVtbl* lpVtbl;
20275 };
20276 
20277 #ifdef COBJMACROS
20278 #ifndef WIDL_C_INLINE_WRAPPERS
20279 /*** IUnknown methods ***/
20280 #define IEnumReadyCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20281 #define IEnumReadyCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
20282 #define IEnumReadyCallback_Release(This) (This)->lpVtbl->Release(This)
20283 /*** IEnumReadyCallback methods ***/
20284 #define IEnumReadyCallback_EnumReady(This) (This)->lpVtbl->EnumReady(This)
20285 #else
20286 /*** IUnknown methods ***/
20287 static FORCEINLINE HRESULT IEnumReadyCallback_QueryInterface(IEnumReadyCallback* This,REFIID riid,void **ppvObject) {
20288     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20289 }
20290 static FORCEINLINE ULONG IEnumReadyCallback_AddRef(IEnumReadyCallback* This) {
20291     return This->lpVtbl->AddRef(This);
20292 }
20293 static FORCEINLINE ULONG IEnumReadyCallback_Release(IEnumReadyCallback* This) {
20294     return This->lpVtbl->Release(This);
20295 }
20296 /*** IEnumReadyCallback methods ***/
20297 static FORCEINLINE HRESULT IEnumReadyCallback_EnumReady(IEnumReadyCallback* This) {
20298     return This->lpVtbl->EnumReady(This);
20299 }
20300 #endif
20301 #endif
20302 
20303 #endif
20304 
20305 
20306 #endif  /* __IEnumReadyCallback_INTERFACE_DEFINED__ */
20307 
20308 
20309 /*****************************************************************************
20310  * IEnumerableView interface
20311  */
20312 #ifndef __IEnumerableView_INTERFACE_DEFINED__
20313 #define __IEnumerableView_INTERFACE_DEFINED__
20314 
20315 DEFINE_GUID(IID_IEnumerableView, 0x8c8bf236, 0x1aec, 0x495f, 0x98,0x94, 0x91,0xd5,0x7c,0x3c,0x68,0x6f);
20316 #if defined(__cplusplus) && !defined(CINTERFACE)
20317 MIDL_INTERFACE("8c8bf236-1aec-495f-9894-91d57c3c686f")
20318 IEnumerableView : public IUnknown
20319 {
20320     virtual HRESULT STDMETHODCALLTYPE SetEnumReadyCallback(
20321         IEnumReadyCallback *percb) = 0;
20322 
20323     virtual HRESULT STDMETHODCALLTYPE CreateEnumIDListFromContents(
20324         PCIDLIST_ABSOLUTE pidlFolder,
20325         DWORD dwEnumFlags,
20326         IEnumIDList **ppEnumIDList) = 0;
20327 
20328 };
20329 #ifdef __CRT_UUID_DECL
20330 __CRT_UUID_DECL(IEnumerableView, 0x8c8bf236, 0x1aec, 0x495f, 0x98,0x94, 0x91,0xd5,0x7c,0x3c,0x68,0x6f)
20331 #endif
20332 #else
20333 typedef struct IEnumerableViewVtbl {
20334     BEGIN_INTERFACE
20335 
20336     /*** IUnknown methods ***/
20337     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20338         IEnumerableView *This,
20339         REFIID riid,
20340         void **ppvObject);
20341 
20342     ULONG (STDMETHODCALLTYPE *AddRef)(
20343         IEnumerableView *This);
20344 
20345     ULONG (STDMETHODCALLTYPE *Release)(
20346         IEnumerableView *This);
20347 
20348     /*** IEnumerableView methods ***/
20349     HRESULT (STDMETHODCALLTYPE *SetEnumReadyCallback)(
20350         IEnumerableView *This,
20351         IEnumReadyCallback *percb);
20352 
20353     HRESULT (STDMETHODCALLTYPE *CreateEnumIDListFromContents)(
20354         IEnumerableView *This,
20355         PCIDLIST_ABSOLUTE pidlFolder,
20356         DWORD dwEnumFlags,
20357         IEnumIDList **ppEnumIDList);
20358 
20359     END_INTERFACE
20360 } IEnumerableViewVtbl;
20361 
20362 interface IEnumerableView {
20363     CONST_VTBL IEnumerableViewVtbl* lpVtbl;
20364 };
20365 
20366 #ifdef COBJMACROS
20367 #ifndef WIDL_C_INLINE_WRAPPERS
20368 /*** IUnknown methods ***/
20369 #define IEnumerableView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20370 #define IEnumerableView_AddRef(This) (This)->lpVtbl->AddRef(This)
20371 #define IEnumerableView_Release(This) (This)->lpVtbl->Release(This)
20372 /*** IEnumerableView methods ***/
20373 #define IEnumerableView_SetEnumReadyCallback(This,percb) (This)->lpVtbl->SetEnumReadyCallback(This,percb)
20374 #define IEnumerableView_CreateEnumIDListFromContents(This,pidlFolder,dwEnumFlags,ppEnumIDList) (This)->lpVtbl->CreateEnumIDListFromContents(This,pidlFolder,dwEnumFlags,ppEnumIDList)
20375 #else
20376 /*** IUnknown methods ***/
20377 static FORCEINLINE HRESULT IEnumerableView_QueryInterface(IEnumerableView* This,REFIID riid,void **ppvObject) {
20378     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20379 }
20380 static FORCEINLINE ULONG IEnumerableView_AddRef(IEnumerableView* This) {
20381     return This->lpVtbl->AddRef(This);
20382 }
20383 static FORCEINLINE ULONG IEnumerableView_Release(IEnumerableView* This) {
20384     return This->lpVtbl->Release(This);
20385 }
20386 /*** IEnumerableView methods ***/
20387 static FORCEINLINE HRESULT IEnumerableView_SetEnumReadyCallback(IEnumerableView* This,IEnumReadyCallback *percb) {
20388     return This->lpVtbl->SetEnumReadyCallback(This,percb);
20389 }
20390 static FORCEINLINE HRESULT IEnumerableView_CreateEnumIDListFromContents(IEnumerableView* This,PCIDLIST_ABSOLUTE pidlFolder,DWORD dwEnumFlags,IEnumIDList **ppEnumIDList) {
20391     return This->lpVtbl->CreateEnumIDListFromContents(This,pidlFolder,dwEnumFlags,ppEnumIDList);
20392 }
20393 #endif
20394 #endif
20395 
20396 #endif
20397 
20398 
20399 #endif  /* __IEnumerableView_INTERFACE_DEFINED__ */
20400 
20401 
20402 #define SID_EnumerableView IID_IEnumerableView
20403 
20404 /*****************************************************************************
20405  * IInsertItem interface
20406  */
20407 #ifndef __IInsertItem_INTERFACE_DEFINED__
20408 #define __IInsertItem_INTERFACE_DEFINED__
20409 
20410 DEFINE_GUID(IID_IInsertItem, 0xd2b57227, 0x3d23, 0x4b95, 0x93,0xc0, 0x49,0x2b,0xd4,0x54,0xc3,0x56);
20411 #if defined(__cplusplus) && !defined(CINTERFACE)
20412 MIDL_INTERFACE("d2b57227-3d23-4b95-93c0-492bd454c356")
20413 IInsertItem : public IUnknown
20414 {
20415     virtual HRESULT STDMETHODCALLTYPE InsertItem(
20416         PCUIDLIST_RELATIVE pidl) = 0;
20417 
20418 };
20419 #ifdef __CRT_UUID_DECL
20420 __CRT_UUID_DECL(IInsertItem, 0xd2b57227, 0x3d23, 0x4b95, 0x93,0xc0, 0x49,0x2b,0xd4,0x54,0xc3,0x56)
20421 #endif
20422 #else
20423 typedef struct IInsertItemVtbl {
20424     BEGIN_INTERFACE
20425 
20426     /*** IUnknown methods ***/
20427     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20428         IInsertItem *This,
20429         REFIID riid,
20430         void **ppvObject);
20431 
20432     ULONG (STDMETHODCALLTYPE *AddRef)(
20433         IInsertItem *This);
20434 
20435     ULONG (STDMETHODCALLTYPE *Release)(
20436         IInsertItem *This);
20437 
20438     /*** IInsertItem methods ***/
20439     HRESULT (STDMETHODCALLTYPE *InsertItem)(
20440         IInsertItem *This,
20441         PCUIDLIST_RELATIVE pidl);
20442 
20443     END_INTERFACE
20444 } IInsertItemVtbl;
20445 
20446 interface IInsertItem {
20447     CONST_VTBL IInsertItemVtbl* lpVtbl;
20448 };
20449 
20450 #ifdef COBJMACROS
20451 #ifndef WIDL_C_INLINE_WRAPPERS
20452 /*** IUnknown methods ***/
20453 #define IInsertItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20454 #define IInsertItem_AddRef(This) (This)->lpVtbl->AddRef(This)
20455 #define IInsertItem_Release(This) (This)->lpVtbl->Release(This)
20456 /*** IInsertItem methods ***/
20457 #define IInsertItem_InsertItem(This,pidl) (This)->lpVtbl->InsertItem(This,pidl)
20458 #else
20459 /*** IUnknown methods ***/
20460 static FORCEINLINE HRESULT IInsertItem_QueryInterface(IInsertItem* This,REFIID riid,void **ppvObject) {
20461     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20462 }
20463 static FORCEINLINE ULONG IInsertItem_AddRef(IInsertItem* This) {
20464     return This->lpVtbl->AddRef(This);
20465 }
20466 static FORCEINLINE ULONG IInsertItem_Release(IInsertItem* This) {
20467     return This->lpVtbl->Release(This);
20468 }
20469 /*** IInsertItem methods ***/
20470 static FORCEINLINE HRESULT IInsertItem_InsertItem(IInsertItem* This,PCUIDLIST_RELATIVE pidl) {
20471     return This->lpVtbl->InsertItem(This,pidl);
20472 }
20473 #endif
20474 #endif
20475 
20476 #endif
20477 
20478 
20479 #endif  /* __IInsertItem_INTERFACE_DEFINED__ */
20480 
20481 
20482 /*****************************************************************************
20483  * IMenuBand interface
20484  */
20485 #ifndef __IMenuBand_INTERFACE_DEFINED__
20486 #define __IMenuBand_INTERFACE_DEFINED__
20487 
20488 enum tagMENUBANDHANDLERCID {
20489     MBHANDCID_PIDLSELECT = 0
20490 };
20491 
20492 DEFINE_GUID(IID_IMenuBand, 0x568804cd, 0xcbd7, 0x11d0, 0x98,0x16, 0x00,0xc0,0x4f,0xd9,0x19,0x72);
20493 #if defined(__cplusplus) && !defined(CINTERFACE)
20494 MIDL_INTERFACE("568804cd-cbd7-11d0-9816-00c04fd91972")
20495 IMenuBand : public IUnknown
20496 {
20497     virtual HRESULT STDMETHODCALLTYPE IsMenuMessage(
20498         MSG *pmsg) = 0;
20499 
20500     virtual HRESULT STDMETHODCALLTYPE TranslateMenuMessage(
20501         MSG *pmsg,
20502         LRESULT *plRet) = 0;
20503 
20504 };
20505 #ifdef __CRT_UUID_DECL
20506 __CRT_UUID_DECL(IMenuBand, 0x568804cd, 0xcbd7, 0x11d0, 0x98,0x16, 0x00,0xc0,0x4f,0xd9,0x19,0x72)
20507 #endif
20508 #else
20509 typedef struct IMenuBandVtbl {
20510     BEGIN_INTERFACE
20511 
20512     /*** IUnknown methods ***/
20513     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20514         IMenuBand *This,
20515         REFIID riid,
20516         void **ppvObject);
20517 
20518     ULONG (STDMETHODCALLTYPE *AddRef)(
20519         IMenuBand *This);
20520 
20521     ULONG (STDMETHODCALLTYPE *Release)(
20522         IMenuBand *This);
20523 
20524     /*** IMenuBand methods ***/
20525     HRESULT (STDMETHODCALLTYPE *IsMenuMessage)(
20526         IMenuBand *This,
20527         MSG *pmsg);
20528 
20529     HRESULT (STDMETHODCALLTYPE *TranslateMenuMessage)(
20530         IMenuBand *This,
20531         MSG *pmsg,
20532         LRESULT *plRet);
20533 
20534     END_INTERFACE
20535 } IMenuBandVtbl;
20536 
20537 interface IMenuBand {
20538     CONST_VTBL IMenuBandVtbl* lpVtbl;
20539 };
20540 
20541 #ifdef COBJMACROS
20542 #ifndef WIDL_C_INLINE_WRAPPERS
20543 /*** IUnknown methods ***/
20544 #define IMenuBand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20545 #define IMenuBand_AddRef(This) (This)->lpVtbl->AddRef(This)
20546 #define IMenuBand_Release(This) (This)->lpVtbl->Release(This)
20547 /*** IMenuBand methods ***/
20548 #define IMenuBand_IsMenuMessage(This,pmsg) (This)->lpVtbl->IsMenuMessage(This,pmsg)
20549 #define IMenuBand_TranslateMenuMessage(This,pmsg,plRet) (This)->lpVtbl->TranslateMenuMessage(This,pmsg,plRet)
20550 #else
20551 /*** IUnknown methods ***/
20552 static FORCEINLINE HRESULT IMenuBand_QueryInterface(IMenuBand* This,REFIID riid,void **ppvObject) {
20553     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20554 }
20555 static FORCEINLINE ULONG IMenuBand_AddRef(IMenuBand* This) {
20556     return This->lpVtbl->AddRef(This);
20557 }
20558 static FORCEINLINE ULONG IMenuBand_Release(IMenuBand* This) {
20559     return This->lpVtbl->Release(This);
20560 }
20561 /*** IMenuBand methods ***/
20562 static FORCEINLINE HRESULT IMenuBand_IsMenuMessage(IMenuBand* This,MSG *pmsg) {
20563     return This->lpVtbl->IsMenuMessage(This,pmsg);
20564 }
20565 static FORCEINLINE HRESULT IMenuBand_TranslateMenuMessage(IMenuBand* This,MSG *pmsg,LRESULT *plRet) {
20566     return This->lpVtbl->TranslateMenuMessage(This,pmsg,plRet);
20567 }
20568 #endif
20569 #endif
20570 
20571 #endif
20572 
20573 
20574 #endif  /* __IMenuBand_INTERFACE_DEFINED__ */
20575 
20576 
20577 /*****************************************************************************
20578  * IFolderBandPriv interface
20579  */
20580 #ifndef __IFolderBandPriv_INTERFACE_DEFINED__
20581 #define __IFolderBandPriv_INTERFACE_DEFINED__
20582 
20583 DEFINE_GUID(IID_IFolderBandPriv, 0x47c01f95, 0xe185, 0x412c, 0xb5,0xc5, 0x4f,0x27,0xdf,0x96,0x5a,0xea);
20584 #if defined(__cplusplus) && !defined(CINTERFACE)
20585 MIDL_INTERFACE("47c01f95-e185-412c-b5c5-4f27df965aea")
20586 IFolderBandPriv : public IUnknown
20587 {
20588     virtual HRESULT STDMETHODCALLTYPE SetCascade(
20589         WINBOOL fCascade) = 0;
20590 
20591     virtual HRESULT STDMETHODCALLTYPE SetAccelerators(
20592         WINBOOL fAccelerators) = 0;
20593 
20594     virtual HRESULT STDMETHODCALLTYPE SetNoIcons(
20595         WINBOOL fNoIcons) = 0;
20596 
20597     virtual HRESULT STDMETHODCALLTYPE SetNoText(
20598         WINBOOL fNoText) = 0;
20599 
20600 };
20601 #ifdef __CRT_UUID_DECL
20602 __CRT_UUID_DECL(IFolderBandPriv, 0x47c01f95, 0xe185, 0x412c, 0xb5,0xc5, 0x4f,0x27,0xdf,0x96,0x5a,0xea)
20603 #endif
20604 #else
20605 typedef struct IFolderBandPrivVtbl {
20606     BEGIN_INTERFACE
20607 
20608     /*** IUnknown methods ***/
20609     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20610         IFolderBandPriv *This,
20611         REFIID riid,
20612         void **ppvObject);
20613 
20614     ULONG (STDMETHODCALLTYPE *AddRef)(
20615         IFolderBandPriv *This);
20616 
20617     ULONG (STDMETHODCALLTYPE *Release)(
20618         IFolderBandPriv *This);
20619 
20620     /*** IFolderBandPriv methods ***/
20621     HRESULT (STDMETHODCALLTYPE *SetCascade)(
20622         IFolderBandPriv *This,
20623         WINBOOL fCascade);
20624 
20625     HRESULT (STDMETHODCALLTYPE *SetAccelerators)(
20626         IFolderBandPriv *This,
20627         WINBOOL fAccelerators);
20628 
20629     HRESULT (STDMETHODCALLTYPE *SetNoIcons)(
20630         IFolderBandPriv *This,
20631         WINBOOL fNoIcons);
20632 
20633     HRESULT (STDMETHODCALLTYPE *SetNoText)(
20634         IFolderBandPriv *This,
20635         WINBOOL fNoText);
20636 
20637     END_INTERFACE
20638 } IFolderBandPrivVtbl;
20639 
20640 interface IFolderBandPriv {
20641     CONST_VTBL IFolderBandPrivVtbl* lpVtbl;
20642 };
20643 
20644 #ifdef COBJMACROS
20645 #ifndef WIDL_C_INLINE_WRAPPERS
20646 /*** IUnknown methods ***/
20647 #define IFolderBandPriv_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20648 #define IFolderBandPriv_AddRef(This) (This)->lpVtbl->AddRef(This)
20649 #define IFolderBandPriv_Release(This) (This)->lpVtbl->Release(This)
20650 /*** IFolderBandPriv methods ***/
20651 #define IFolderBandPriv_SetCascade(This,fCascade) (This)->lpVtbl->SetCascade(This,fCascade)
20652 #define IFolderBandPriv_SetAccelerators(This,fAccelerators) (This)->lpVtbl->SetAccelerators(This,fAccelerators)
20653 #define IFolderBandPriv_SetNoIcons(This,fNoIcons) (This)->lpVtbl->SetNoIcons(This,fNoIcons)
20654 #define IFolderBandPriv_SetNoText(This,fNoText) (This)->lpVtbl->SetNoText(This,fNoText)
20655 #else
20656 /*** IUnknown methods ***/
20657 static FORCEINLINE HRESULT IFolderBandPriv_QueryInterface(IFolderBandPriv* This,REFIID riid,void **ppvObject) {
20658     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20659 }
20660 static FORCEINLINE ULONG IFolderBandPriv_AddRef(IFolderBandPriv* This) {
20661     return This->lpVtbl->AddRef(This);
20662 }
20663 static FORCEINLINE ULONG IFolderBandPriv_Release(IFolderBandPriv* This) {
20664     return This->lpVtbl->Release(This);
20665 }
20666 /*** IFolderBandPriv methods ***/
20667 static FORCEINLINE HRESULT IFolderBandPriv_SetCascade(IFolderBandPriv* This,WINBOOL fCascade) {
20668     return This->lpVtbl->SetCascade(This,fCascade);
20669 }
20670 static FORCEINLINE HRESULT IFolderBandPriv_SetAccelerators(IFolderBandPriv* This,WINBOOL fAccelerators) {
20671     return This->lpVtbl->SetAccelerators(This,fAccelerators);
20672 }
20673 static FORCEINLINE HRESULT IFolderBandPriv_SetNoIcons(IFolderBandPriv* This,WINBOOL fNoIcons) {
20674     return This->lpVtbl->SetNoIcons(This,fNoIcons);
20675 }
20676 static FORCEINLINE HRESULT IFolderBandPriv_SetNoText(IFolderBandPriv* This,WINBOOL fNoText) {
20677     return This->lpVtbl->SetNoText(This,fNoText);
20678 }
20679 #endif
20680 #endif
20681 
20682 #endif
20683 
20684 
20685 #endif  /* __IFolderBandPriv_INTERFACE_DEFINED__ */
20686 
20687 
20688 /*****************************************************************************
20689  * IRegTreeItem interface
20690  */
20691 #ifndef __IRegTreeItem_INTERFACE_DEFINED__
20692 #define __IRegTreeItem_INTERFACE_DEFINED__
20693 
20694 DEFINE_GUID(IID_IRegTreeItem, 0xa9521922, 0x0812, 0x4d44, 0x9e,0xc3, 0x7f,0xd3,0x8c,0x72,0x6f,0x3d);
20695 #if defined(__cplusplus) && !defined(CINTERFACE)
20696 MIDL_INTERFACE("a9521922-0812-4d44-9ec3-7fd38c726f3d")
20697 IRegTreeItem : public IUnknown
20698 {
20699     virtual HRESULT STDMETHODCALLTYPE GetCheckState(
20700         WINBOOL *pbCheck) = 0;
20701 
20702     virtual HRESULT STDMETHODCALLTYPE SetCheckState(
20703         WINBOOL bCheck) = 0;
20704 
20705 };
20706 #ifdef __CRT_UUID_DECL
20707 __CRT_UUID_DECL(IRegTreeItem, 0xa9521922, 0x0812, 0x4d44, 0x9e,0xc3, 0x7f,0xd3,0x8c,0x72,0x6f,0x3d)
20708 #endif
20709 #else
20710 typedef struct IRegTreeItemVtbl {
20711     BEGIN_INTERFACE
20712 
20713     /*** IUnknown methods ***/
20714     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20715         IRegTreeItem *This,
20716         REFIID riid,
20717         void **ppvObject);
20718 
20719     ULONG (STDMETHODCALLTYPE *AddRef)(
20720         IRegTreeItem *This);
20721 
20722     ULONG (STDMETHODCALLTYPE *Release)(
20723         IRegTreeItem *This);
20724 
20725     /*** IRegTreeItem methods ***/
20726     HRESULT (STDMETHODCALLTYPE *GetCheckState)(
20727         IRegTreeItem *This,
20728         WINBOOL *pbCheck);
20729 
20730     HRESULT (STDMETHODCALLTYPE *SetCheckState)(
20731         IRegTreeItem *This,
20732         WINBOOL bCheck);
20733 
20734     END_INTERFACE
20735 } IRegTreeItemVtbl;
20736 
20737 interface IRegTreeItem {
20738     CONST_VTBL IRegTreeItemVtbl* lpVtbl;
20739 };
20740 
20741 #ifdef COBJMACROS
20742 #ifndef WIDL_C_INLINE_WRAPPERS
20743 /*** IUnknown methods ***/
20744 #define IRegTreeItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20745 #define IRegTreeItem_AddRef(This) (This)->lpVtbl->AddRef(This)
20746 #define IRegTreeItem_Release(This) (This)->lpVtbl->Release(This)
20747 /*** IRegTreeItem methods ***/
20748 #define IRegTreeItem_GetCheckState(This,pbCheck) (This)->lpVtbl->GetCheckState(This,pbCheck)
20749 #define IRegTreeItem_SetCheckState(This,bCheck) (This)->lpVtbl->SetCheckState(This,bCheck)
20750 #else
20751 /*** IUnknown methods ***/
20752 static FORCEINLINE HRESULT IRegTreeItem_QueryInterface(IRegTreeItem* This,REFIID riid,void **ppvObject) {
20753     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20754 }
20755 static FORCEINLINE ULONG IRegTreeItem_AddRef(IRegTreeItem* This) {
20756     return This->lpVtbl->AddRef(This);
20757 }
20758 static FORCEINLINE ULONG IRegTreeItem_Release(IRegTreeItem* This) {
20759     return This->lpVtbl->Release(This);
20760 }
20761 /*** IRegTreeItem methods ***/
20762 static FORCEINLINE HRESULT IRegTreeItem_GetCheckState(IRegTreeItem* This,WINBOOL *pbCheck) {
20763     return This->lpVtbl->GetCheckState(This,pbCheck);
20764 }
20765 static FORCEINLINE HRESULT IRegTreeItem_SetCheckState(IRegTreeItem* This,WINBOOL bCheck) {
20766     return This->lpVtbl->SetCheckState(This,bCheck);
20767 }
20768 #endif
20769 #endif
20770 
20771 #endif
20772 
20773 
20774 #endif  /* __IRegTreeItem_INTERFACE_DEFINED__ */
20775 
20776 
20777 /*****************************************************************************
20778  * IImageRecompress interface
20779  */
20780 #ifndef __IImageRecompress_INTERFACE_DEFINED__
20781 #define __IImageRecompress_INTERFACE_DEFINED__
20782 
20783 DEFINE_GUID(IID_IImageRecompress, 0x505f1513, 0x6b3e, 0x4892, 0xa2,0x72, 0x59,0xf8,0x88,0x9a,0x4d,0x3e);
20784 #if defined(__cplusplus) && !defined(CINTERFACE)
20785 MIDL_INTERFACE("505f1513-6b3e-4892-a272-59f8889a4d3e")
20786 IImageRecompress : public IUnknown
20787 {
20788     virtual HRESULT STDMETHODCALLTYPE RecompressImage(
20789         IShellItem *psi,
20790         int cx,
20791         int cy,
20792         int iQuality,
20793         IStorage *pstg,
20794         IStream **ppstrmOut) = 0;
20795 
20796 };
20797 #ifdef __CRT_UUID_DECL
20798 __CRT_UUID_DECL(IImageRecompress, 0x505f1513, 0x6b3e, 0x4892, 0xa2,0x72, 0x59,0xf8,0x88,0x9a,0x4d,0x3e)
20799 #endif
20800 #else
20801 typedef struct IImageRecompressVtbl {
20802     BEGIN_INTERFACE
20803 
20804     /*** IUnknown methods ***/
20805     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20806         IImageRecompress *This,
20807         REFIID riid,
20808         void **ppvObject);
20809 
20810     ULONG (STDMETHODCALLTYPE *AddRef)(
20811         IImageRecompress *This);
20812 
20813     ULONG (STDMETHODCALLTYPE *Release)(
20814         IImageRecompress *This);
20815 
20816     /*** IImageRecompress methods ***/
20817     HRESULT (STDMETHODCALLTYPE *RecompressImage)(
20818         IImageRecompress *This,
20819         IShellItem *psi,
20820         int cx,
20821         int cy,
20822         int iQuality,
20823         IStorage *pstg,
20824         IStream **ppstrmOut);
20825 
20826     END_INTERFACE
20827 } IImageRecompressVtbl;
20828 
20829 interface IImageRecompress {
20830     CONST_VTBL IImageRecompressVtbl* lpVtbl;
20831 };
20832 
20833 #ifdef COBJMACROS
20834 #ifndef WIDL_C_INLINE_WRAPPERS
20835 /*** IUnknown methods ***/
20836 #define IImageRecompress_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20837 #define IImageRecompress_AddRef(This) (This)->lpVtbl->AddRef(This)
20838 #define IImageRecompress_Release(This) (This)->lpVtbl->Release(This)
20839 /*** IImageRecompress methods ***/
20840 #define IImageRecompress_RecompressImage(This,psi,cx,cy,iQuality,pstg,ppstrmOut) (This)->lpVtbl->RecompressImage(This,psi,cx,cy,iQuality,pstg,ppstrmOut)
20841 #else
20842 /*** IUnknown methods ***/
20843 static FORCEINLINE HRESULT IImageRecompress_QueryInterface(IImageRecompress* This,REFIID riid,void **ppvObject) {
20844     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20845 }
20846 static FORCEINLINE ULONG IImageRecompress_AddRef(IImageRecompress* This) {
20847     return This->lpVtbl->AddRef(This);
20848 }
20849 static FORCEINLINE ULONG IImageRecompress_Release(IImageRecompress* This) {
20850     return This->lpVtbl->Release(This);
20851 }
20852 /*** IImageRecompress methods ***/
20853 static FORCEINLINE HRESULT IImageRecompress_RecompressImage(IImageRecompress* This,IShellItem *psi,int cx,int cy,int iQuality,IStorage *pstg,IStream **ppstrmOut) {
20854     return This->lpVtbl->RecompressImage(This,psi,cx,cy,iQuality,pstg,ppstrmOut);
20855 }
20856 #endif
20857 #endif
20858 
20859 #endif
20860 
20861 
20862 #endif  /* __IImageRecompress_INTERFACE_DEFINED__ */
20863 
20864 
20865 #if _WIN32_IE >= _WIN32_IE_IE60
20866 /*****************************************************************************
20867  * IDeskBar interface
20868  */
20869 #ifndef __IDeskBar_INTERFACE_DEFINED__
20870 #define __IDeskBar_INTERFACE_DEFINED__
20871 
20872 DEFINE_GUID(IID_IDeskBar, 0xeb0fe173, 0x1a3a, 0x11d0, 0x89,0xb3, 0x00,0xa0,0xc9,0x0a,0x90,0xac);
20873 #if defined(__cplusplus) && !defined(CINTERFACE)
20874 MIDL_INTERFACE("eb0fe173-1a3a-11d0-89b3-00a0c90a90ac")
20875 IDeskBar : public IOleWindow
20876 {
20877     virtual HRESULT STDMETHODCALLTYPE SetClient(
20878         IUnknown *punkClient) = 0;
20879 
20880     virtual HRESULT STDMETHODCALLTYPE GetClient(
20881         IUnknown **ppunkClient) = 0;
20882 
20883     virtual HRESULT STDMETHODCALLTYPE OnPosRectChangeDB(
20884         RECT *prc) = 0;
20885 
20886 };
20887 #ifdef __CRT_UUID_DECL
20888 __CRT_UUID_DECL(IDeskBar, 0xeb0fe173, 0x1a3a, 0x11d0, 0x89,0xb3, 0x00,0xa0,0xc9,0x0a,0x90,0xac)
20889 #endif
20890 #else
20891 typedef struct IDeskBarVtbl {
20892     BEGIN_INTERFACE
20893 
20894     /*** IUnknown methods ***/
20895     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20896         IDeskBar *This,
20897         REFIID riid,
20898         void **ppvObject);
20899 
20900     ULONG (STDMETHODCALLTYPE *AddRef)(
20901         IDeskBar *This);
20902 
20903     ULONG (STDMETHODCALLTYPE *Release)(
20904         IDeskBar *This);
20905 
20906     /*** IOleWindow methods ***/
20907     HRESULT (STDMETHODCALLTYPE *GetWindow)(
20908         IDeskBar *This,
20909         HWND *phwnd);
20910 
20911     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
20912         IDeskBar *This,
20913         WINBOOL fEnterMode);
20914 
20915     /*** IDeskBar methods ***/
20916     HRESULT (STDMETHODCALLTYPE *SetClient)(
20917         IDeskBar *This,
20918         IUnknown *punkClient);
20919 
20920     HRESULT (STDMETHODCALLTYPE *GetClient)(
20921         IDeskBar *This,
20922         IUnknown **ppunkClient);
20923 
20924     HRESULT (STDMETHODCALLTYPE *OnPosRectChangeDB)(
20925         IDeskBar *This,
20926         RECT *prc);
20927 
20928     END_INTERFACE
20929 } IDeskBarVtbl;
20930 
20931 interface IDeskBar {
20932     CONST_VTBL IDeskBarVtbl* lpVtbl;
20933 };
20934 
20935 #ifdef COBJMACROS
20936 #ifndef WIDL_C_INLINE_WRAPPERS
20937 /*** IUnknown methods ***/
20938 #define IDeskBar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20939 #define IDeskBar_AddRef(This) (This)->lpVtbl->AddRef(This)
20940 #define IDeskBar_Release(This) (This)->lpVtbl->Release(This)
20941 /*** IOleWindow methods ***/
20942 #define IDeskBar_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
20943 #define IDeskBar_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
20944 /*** IDeskBar methods ***/
20945 #define IDeskBar_SetClient(This,punkClient) (This)->lpVtbl->SetClient(This,punkClient)
20946 #define IDeskBar_GetClient(This,ppunkClient) (This)->lpVtbl->GetClient(This,ppunkClient)
20947 #define IDeskBar_OnPosRectChangeDB(This,prc) (This)->lpVtbl->OnPosRectChangeDB(This,prc)
20948 #else
20949 /*** IUnknown methods ***/
20950 static FORCEINLINE HRESULT IDeskBar_QueryInterface(IDeskBar* This,REFIID riid,void **ppvObject) {
20951     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20952 }
20953 static FORCEINLINE ULONG IDeskBar_AddRef(IDeskBar* This) {
20954     return This->lpVtbl->AddRef(This);
20955 }
20956 static FORCEINLINE ULONG IDeskBar_Release(IDeskBar* This) {
20957     return This->lpVtbl->Release(This);
20958 }
20959 /*** IOleWindow methods ***/
20960 static FORCEINLINE HRESULT IDeskBar_GetWindow(IDeskBar* This,HWND *phwnd) {
20961     return This->lpVtbl->GetWindow(This,phwnd);
20962 }
20963 static FORCEINLINE HRESULT IDeskBar_ContextSensitiveHelp(IDeskBar* This,WINBOOL fEnterMode) {
20964     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
20965 }
20966 /*** IDeskBar methods ***/
20967 static FORCEINLINE HRESULT IDeskBar_SetClient(IDeskBar* This,IUnknown *punkClient) {
20968     return This->lpVtbl->SetClient(This,punkClient);
20969 }
20970 static FORCEINLINE HRESULT IDeskBar_GetClient(IDeskBar* This,IUnknown **ppunkClient) {
20971     return This->lpVtbl->GetClient(This,ppunkClient);
20972 }
20973 static FORCEINLINE HRESULT IDeskBar_OnPosRectChangeDB(IDeskBar* This,RECT *prc) {
20974     return This->lpVtbl->OnPosRectChangeDB(This,prc);
20975 }
20976 #endif
20977 #endif
20978 
20979 #endif
20980 
20981 
20982 #endif  /* __IDeskBar_INTERFACE_DEFINED__ */
20983 
20984 
20985 /*****************************************************************************
20986  * IMenuPopup interface
20987  */
20988 #ifndef __IMenuPopup_INTERFACE_DEFINED__
20989 #define __IMenuPopup_INTERFACE_DEFINED__
20990 
20991 enum tagMENUPOPUPSELECT {
20992     MPOS_EXECUTE = 0,
20993     MPOS_FULLCANCEL = 1,
20994     MPOS_CANCELLEVEL = 2,
20995     MPOS_SELECTLEFT = 3,
20996     MPOS_SELECTRIGHT = 4,
20997     MPOS_CHILDTRACKING = 5
20998 };
20999 
21000 enum tagMENUPOPUPPOPUPFLAGS {
21001     MPPF_SETFOCUS = 0x1,
21002     MPPF_INITIALSELECT = 0x2,
21003     MPPF_NOANIMATE = 0x4,
21004     MPPF_KEYBOARD = 0x10,
21005     MPPF_REPOSITION = 0x20,
21006     MPPF_FORCEZORDER = 0x40,
21007     MPPF_FINALSELECT = 0x80,
21008     MPPF_TOP = 0x20000000,
21009     MPPF_LEFT = 0x40000000,
21010     MPPF_RIGHT = 0x60000000,
21011     MPPF_BOTTOM = (int)0x80000000,
21012     MPPF_POS_MASK = (int)0xe0000000,
21013     MPPF_ALIGN_LEFT = 0x2000000,
21014     MPPF_ALIGN_RIGHT = 0x4000000
21015 };
21016 
21017 typedef int MP_POPUPFLAGS;
21018 
21019 DEFINE_GUID(IID_IMenuPopup, 0xd1e7afeb, 0x6a2e, 0x11d0, 0x8c,0x78, 0x00,0xc0,0x4f,0xd9,0x18,0xb4);
21020 #if defined(__cplusplus) && !defined(CINTERFACE)
21021 MIDL_INTERFACE("d1e7afeb-6a2e-11d0-8c78-00c04fd918b4")
21022 IMenuPopup : public IDeskBar
21023 {
21024     virtual HRESULT STDMETHODCALLTYPE Popup(
21025         POINTL *ppt,
21026         RECTL *prcExclude,
21027         MP_POPUPFLAGS dwFlags) = 0;
21028 
21029     virtual HRESULT STDMETHODCALLTYPE OnSelect(
21030         DWORD dwSelectType) = 0;
21031 
21032     virtual HRESULT STDMETHODCALLTYPE SetSubMenu(
21033         IMenuPopup *pmp,
21034         WINBOOL fSet) = 0;
21035 
21036 };
21037 #ifdef __CRT_UUID_DECL
21038 __CRT_UUID_DECL(IMenuPopup, 0xd1e7afeb, 0x6a2e, 0x11d0, 0x8c,0x78, 0x00,0xc0,0x4f,0xd9,0x18,0xb4)
21039 #endif
21040 #else
21041 typedef struct IMenuPopupVtbl {
21042     BEGIN_INTERFACE
21043 
21044     /*** IUnknown methods ***/
21045     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21046         IMenuPopup *This,
21047         REFIID riid,
21048         void **ppvObject);
21049 
21050     ULONG (STDMETHODCALLTYPE *AddRef)(
21051         IMenuPopup *This);
21052 
21053     ULONG (STDMETHODCALLTYPE *Release)(
21054         IMenuPopup *This);
21055 
21056     /*** IOleWindow methods ***/
21057     HRESULT (STDMETHODCALLTYPE *GetWindow)(
21058         IMenuPopup *This,
21059         HWND *phwnd);
21060 
21061     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
21062         IMenuPopup *This,
21063         WINBOOL fEnterMode);
21064 
21065     /*** IDeskBar methods ***/
21066     HRESULT (STDMETHODCALLTYPE *SetClient)(
21067         IMenuPopup *This,
21068         IUnknown *punkClient);
21069 
21070     HRESULT (STDMETHODCALLTYPE *GetClient)(
21071         IMenuPopup *This,
21072         IUnknown **ppunkClient);
21073 
21074     HRESULT (STDMETHODCALLTYPE *OnPosRectChangeDB)(
21075         IMenuPopup *This,
21076         RECT *prc);
21077 
21078     /*** IMenuPopup methods ***/
21079     HRESULT (STDMETHODCALLTYPE *Popup)(
21080         IMenuPopup *This,
21081         POINTL *ppt,
21082         RECTL *prcExclude,
21083         MP_POPUPFLAGS dwFlags);
21084 
21085     HRESULT (STDMETHODCALLTYPE *OnSelect)(
21086         IMenuPopup *This,
21087         DWORD dwSelectType);
21088 
21089     HRESULT (STDMETHODCALLTYPE *SetSubMenu)(
21090         IMenuPopup *This,
21091         IMenuPopup *pmp,
21092         WINBOOL fSet);
21093 
21094     END_INTERFACE
21095 } IMenuPopupVtbl;
21096 
21097 interface IMenuPopup {
21098     CONST_VTBL IMenuPopupVtbl* lpVtbl;
21099 };
21100 
21101 #ifdef COBJMACROS
21102 #ifndef WIDL_C_INLINE_WRAPPERS
21103 /*** IUnknown methods ***/
21104 #define IMenuPopup_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21105 #define IMenuPopup_AddRef(This) (This)->lpVtbl->AddRef(This)
21106 #define IMenuPopup_Release(This) (This)->lpVtbl->Release(This)
21107 /*** IOleWindow methods ***/
21108 #define IMenuPopup_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
21109 #define IMenuPopup_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
21110 /*** IDeskBar methods ***/
21111 #define IMenuPopup_SetClient(This,punkClient) (This)->lpVtbl->SetClient(This,punkClient)
21112 #define IMenuPopup_GetClient(This,ppunkClient) (This)->lpVtbl->GetClient(This,ppunkClient)
21113 #define IMenuPopup_OnPosRectChangeDB(This,prc) (This)->lpVtbl->OnPosRectChangeDB(This,prc)
21114 /*** IMenuPopup methods ***/
21115 #define IMenuPopup_Popup(This,ppt,prcExclude,dwFlags) (This)->lpVtbl->Popup(This,ppt,prcExclude,dwFlags)
21116 #define IMenuPopup_OnSelect(This,dwSelectType) (This)->lpVtbl->OnSelect(This,dwSelectType)
21117 #define IMenuPopup_SetSubMenu(This,pmp,fSet) (This)->lpVtbl->SetSubMenu(This,pmp,fSet)
21118 #else
21119 /*** IUnknown methods ***/
21120 static FORCEINLINE HRESULT IMenuPopup_QueryInterface(IMenuPopup* This,REFIID riid,void **ppvObject) {
21121     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21122 }
21123 static FORCEINLINE ULONG IMenuPopup_AddRef(IMenuPopup* This) {
21124     return This->lpVtbl->AddRef(This);
21125 }
21126 static FORCEINLINE ULONG IMenuPopup_Release(IMenuPopup* This) {
21127     return This->lpVtbl->Release(This);
21128 }
21129 /*** IOleWindow methods ***/
21130 static FORCEINLINE HRESULT IMenuPopup_GetWindow(IMenuPopup* This,HWND *phwnd) {
21131     return This->lpVtbl->GetWindow(This,phwnd);
21132 }
21133 static FORCEINLINE HRESULT IMenuPopup_ContextSensitiveHelp(IMenuPopup* This,WINBOOL fEnterMode) {
21134     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
21135 }
21136 /*** IDeskBar methods ***/
21137 static FORCEINLINE HRESULT IMenuPopup_SetClient(IMenuPopup* This,IUnknown *punkClient) {
21138     return This->lpVtbl->SetClient(This,punkClient);
21139 }
21140 static FORCEINLINE HRESULT IMenuPopup_GetClient(IMenuPopup* This,IUnknown **ppunkClient) {
21141     return This->lpVtbl->GetClient(This,ppunkClient);
21142 }
21143 static FORCEINLINE HRESULT IMenuPopup_OnPosRectChangeDB(IMenuPopup* This,RECT *prc) {
21144     return This->lpVtbl->OnPosRectChangeDB(This,prc);
21145 }
21146 /*** IMenuPopup methods ***/
21147 static FORCEINLINE HRESULT IMenuPopup_Popup(IMenuPopup* This,POINTL *ppt,RECTL *prcExclude,MP_POPUPFLAGS dwFlags) {
21148     return This->lpVtbl->Popup(This,ppt,prcExclude,dwFlags);
21149 }
21150 static FORCEINLINE HRESULT IMenuPopup_OnSelect(IMenuPopup* This,DWORD dwSelectType) {
21151     return This->lpVtbl->OnSelect(This,dwSelectType);
21152 }
21153 static FORCEINLINE HRESULT IMenuPopup_SetSubMenu(IMenuPopup* This,IMenuPopup *pmp,WINBOOL fSet) {
21154     return This->lpVtbl->SetSubMenu(This,pmp,fSet);
21155 }
21156 #endif
21157 #endif
21158 
21159 #endif
21160 
21161 
21162 #endif  /* __IMenuPopup_INTERFACE_DEFINED__ */
21163 
21164 #endif
21165 
21166 #if NTDDI_VERSION >= NTDDI_VISTA
21167 typedef enum FILE_USAGE_TYPE {
21168     FUT_PLAYING = 0,
21169     FUT_EDITING = 1,
21170     FUT_GENERIC = 2
21171 } FILE_USAGE_TYPE;
21172 
21173 #define OF_CAP_CANSWITCHTO 0x0001
21174 #define OF_CAP_CANCLOSE 0x0002
21175 
21176 /*****************************************************************************
21177  * IFileIsInUse interface
21178  */
21179 #ifndef __IFileIsInUse_INTERFACE_DEFINED__
21180 #define __IFileIsInUse_INTERFACE_DEFINED__
21181 
21182 DEFINE_GUID(IID_IFileIsInUse, 0x64a1cbf0, 0x3a1a, 0x4461, 0x91,0x58, 0x37,0x69,0x69,0x69,0x39,0x50);
21183 #if defined(__cplusplus) && !defined(CINTERFACE)
21184 MIDL_INTERFACE("64a1cbf0-3a1a-4461-9158-376969693950")
21185 IFileIsInUse : public IUnknown
21186 {
21187     virtual HRESULT STDMETHODCALLTYPE GetAppName(
21188         LPWSTR *ppszName) = 0;
21189 
21190     virtual HRESULT STDMETHODCALLTYPE GetUsage(
21191         FILE_USAGE_TYPE *pfut) = 0;
21192 
21193     virtual HRESULT STDMETHODCALLTYPE GetCapabilities(
21194         DWORD *pdwCapFlags) = 0;
21195 
21196     virtual HRESULT STDMETHODCALLTYPE GetSwitchToHWND(
21197         HWND *phwnd) = 0;
21198 
21199     virtual HRESULT STDMETHODCALLTYPE CloseFile(
21200         ) = 0;
21201 
21202 };
21203 #ifdef __CRT_UUID_DECL
21204 __CRT_UUID_DECL(IFileIsInUse, 0x64a1cbf0, 0x3a1a, 0x4461, 0x91,0x58, 0x37,0x69,0x69,0x69,0x39,0x50)
21205 #endif
21206 #else
21207 typedef struct IFileIsInUseVtbl {
21208     BEGIN_INTERFACE
21209 
21210     /*** IUnknown methods ***/
21211     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21212         IFileIsInUse *This,
21213         REFIID riid,
21214         void **ppvObject);
21215 
21216     ULONG (STDMETHODCALLTYPE *AddRef)(
21217         IFileIsInUse *This);
21218 
21219     ULONG (STDMETHODCALLTYPE *Release)(
21220         IFileIsInUse *This);
21221 
21222     /*** IFileIsInUse methods ***/
21223     HRESULT (STDMETHODCALLTYPE *GetAppName)(
21224         IFileIsInUse *This,
21225         LPWSTR *ppszName);
21226 
21227     HRESULT (STDMETHODCALLTYPE *GetUsage)(
21228         IFileIsInUse *This,
21229         FILE_USAGE_TYPE *pfut);
21230 
21231     HRESULT (STDMETHODCALLTYPE *GetCapabilities)(
21232         IFileIsInUse *This,
21233         DWORD *pdwCapFlags);
21234 
21235     HRESULT (STDMETHODCALLTYPE *GetSwitchToHWND)(
21236         IFileIsInUse *This,
21237         HWND *phwnd);
21238 
21239     HRESULT (STDMETHODCALLTYPE *CloseFile)(
21240         IFileIsInUse *This);
21241 
21242     END_INTERFACE
21243 } IFileIsInUseVtbl;
21244 
21245 interface IFileIsInUse {
21246     CONST_VTBL IFileIsInUseVtbl* lpVtbl;
21247 };
21248 
21249 #ifdef COBJMACROS
21250 #ifndef WIDL_C_INLINE_WRAPPERS
21251 /*** IUnknown methods ***/
21252 #define IFileIsInUse_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21253 #define IFileIsInUse_AddRef(This) (This)->lpVtbl->AddRef(This)
21254 #define IFileIsInUse_Release(This) (This)->lpVtbl->Release(This)
21255 /*** IFileIsInUse methods ***/
21256 #define IFileIsInUse_GetAppName(This,ppszName) (This)->lpVtbl->GetAppName(This,ppszName)
21257 #define IFileIsInUse_GetUsage(This,pfut) (This)->lpVtbl->GetUsage(This,pfut)
21258 #define IFileIsInUse_GetCapabilities(This,pdwCapFlags) (This)->lpVtbl->GetCapabilities(This,pdwCapFlags)
21259 #define IFileIsInUse_GetSwitchToHWND(This,phwnd) (This)->lpVtbl->GetSwitchToHWND(This,phwnd)
21260 #define IFileIsInUse_CloseFile(This) (This)->lpVtbl->CloseFile(This)
21261 #else
21262 /*** IUnknown methods ***/
21263 static FORCEINLINE HRESULT IFileIsInUse_QueryInterface(IFileIsInUse* This,REFIID riid,void **ppvObject) {
21264     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21265 }
21266 static FORCEINLINE ULONG IFileIsInUse_AddRef(IFileIsInUse* This) {
21267     return This->lpVtbl->AddRef(This);
21268 }
21269 static FORCEINLINE ULONG IFileIsInUse_Release(IFileIsInUse* This) {
21270     return This->lpVtbl->Release(This);
21271 }
21272 /*** IFileIsInUse methods ***/
21273 static FORCEINLINE HRESULT IFileIsInUse_GetAppName(IFileIsInUse* This,LPWSTR *ppszName) {
21274     return This->lpVtbl->GetAppName(This,ppszName);
21275 }
21276 static FORCEINLINE HRESULT IFileIsInUse_GetUsage(IFileIsInUse* This,FILE_USAGE_TYPE *pfut) {
21277     return This->lpVtbl->GetUsage(This,pfut);
21278 }
21279 static FORCEINLINE HRESULT IFileIsInUse_GetCapabilities(IFileIsInUse* This,DWORD *pdwCapFlags) {
21280     return This->lpVtbl->GetCapabilities(This,pdwCapFlags);
21281 }
21282 static FORCEINLINE HRESULT IFileIsInUse_GetSwitchToHWND(IFileIsInUse* This,HWND *phwnd) {
21283     return This->lpVtbl->GetSwitchToHWND(This,phwnd);
21284 }
21285 static FORCEINLINE HRESULT IFileIsInUse_CloseFile(IFileIsInUse* This) {
21286     return This->lpVtbl->CloseFile(This);
21287 }
21288 #endif
21289 #endif
21290 
21291 #endif
21292 
21293 
21294 #endif  /* __IFileIsInUse_INTERFACE_DEFINED__ */
21295 
21296 
21297 #ifndef __IFileDialog_FWD_DEFINED__
21298 #define __IFileDialog_FWD_DEFINED__
21299 typedef interface IFileDialog IFileDialog;
21300 #ifdef __cplusplus
21301 interface IFileDialog;
21302 #endif /* __cplusplus */
21303 #endif
21304 
21305 
21306 typedef enum FDE_OVERWRITE_RESPONSE {
21307     FDEOR_DEFAULT = 0,
21308     FDEOR_ACCEPT = 1,
21309     FDEOR_REFUSE = 2
21310 } FDE_OVERWRITE_RESPONSE;
21311 
21312 typedef enum FDE_SHAREVIOLATION_RESPONSE {
21313     FDESVR_DEFAULT = 0,
21314     FDESVR_ACCEPT = 1,
21315     FDESVR_REFUSE = 2
21316 } FDE_SHAREVIOLATION_RESPONSE;
21317 
21318 typedef enum FDAP {
21319     FDAP_BOTTOM = 0,
21320     FDAP_TOP = 1
21321 } FDAP;
21322 
21323 /*****************************************************************************
21324  * IFileDialogEvents interface
21325  */
21326 #ifndef __IFileDialogEvents_INTERFACE_DEFINED__
21327 #define __IFileDialogEvents_INTERFACE_DEFINED__
21328 
21329 DEFINE_GUID(IID_IFileDialogEvents, 0x973510db, 0x7d7f, 0x452b, 0x89,0x75, 0x74,0xa8,0x58,0x28,0xd3,0x54);
21330 #if defined(__cplusplus) && !defined(CINTERFACE)
21331 MIDL_INTERFACE("973510db-7d7f-452b-8975-74a85828d354")
21332 IFileDialogEvents : public IUnknown
21333 {
21334     virtual HRESULT STDMETHODCALLTYPE OnFileOk(
21335         IFileDialog *pfd) = 0;
21336 
21337     virtual HRESULT STDMETHODCALLTYPE OnFolderChanging(
21338         IFileDialog *pfd,
21339         IShellItem *psiFolder) = 0;
21340 
21341     virtual HRESULT STDMETHODCALLTYPE OnFolderChange(
21342         IFileDialog *pfd) = 0;
21343 
21344     virtual HRESULT STDMETHODCALLTYPE OnSelectionChange(
21345         IFileDialog *pfd) = 0;
21346 
21347     virtual HRESULT STDMETHODCALLTYPE OnShareViolation(
21348         IFileDialog *pfd,
21349         IShellItem *psi,
21350         FDE_SHAREVIOLATION_RESPONSE *pResponse) = 0;
21351 
21352     virtual HRESULT STDMETHODCALLTYPE OnTypeChange(
21353         IFileDialog *pfd) = 0;
21354 
21355     virtual HRESULT STDMETHODCALLTYPE OnOverwrite(
21356         IFileDialog *pfd,
21357         IShellItem *psi,
21358         FDE_OVERWRITE_RESPONSE *pResponse) = 0;
21359 
21360 };
21361 #ifdef __CRT_UUID_DECL
21362 __CRT_UUID_DECL(IFileDialogEvents, 0x973510db, 0x7d7f, 0x452b, 0x89,0x75, 0x74,0xa8,0x58,0x28,0xd3,0x54)
21363 #endif
21364 #else
21365 typedef struct IFileDialogEventsVtbl {
21366     BEGIN_INTERFACE
21367 
21368     /*** IUnknown methods ***/
21369     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21370         IFileDialogEvents *This,
21371         REFIID riid,
21372         void **ppvObject);
21373 
21374     ULONG (STDMETHODCALLTYPE *AddRef)(
21375         IFileDialogEvents *This);
21376 
21377     ULONG (STDMETHODCALLTYPE *Release)(
21378         IFileDialogEvents *This);
21379 
21380     /*** IFileDialogEvents methods ***/
21381     HRESULT (STDMETHODCALLTYPE *OnFileOk)(
21382         IFileDialogEvents *This,
21383         IFileDialog *pfd);
21384 
21385     HRESULT (STDMETHODCALLTYPE *OnFolderChanging)(
21386         IFileDialogEvents *This,
21387         IFileDialog *pfd,
21388         IShellItem *psiFolder);
21389 
21390     HRESULT (STDMETHODCALLTYPE *OnFolderChange)(
21391         IFileDialogEvents *This,
21392         IFileDialog *pfd);
21393 
21394     HRESULT (STDMETHODCALLTYPE *OnSelectionChange)(
21395         IFileDialogEvents *This,
21396         IFileDialog *pfd);
21397 
21398     HRESULT (STDMETHODCALLTYPE *OnShareViolation)(
21399         IFileDialogEvents *This,
21400         IFileDialog *pfd,
21401         IShellItem *psi,
21402         FDE_SHAREVIOLATION_RESPONSE *pResponse);
21403 
21404     HRESULT (STDMETHODCALLTYPE *OnTypeChange)(
21405         IFileDialogEvents *This,
21406         IFileDialog *pfd);
21407 
21408     HRESULT (STDMETHODCALLTYPE *OnOverwrite)(
21409         IFileDialogEvents *This,
21410         IFileDialog *pfd,
21411         IShellItem *psi,
21412         FDE_OVERWRITE_RESPONSE *pResponse);
21413 
21414     END_INTERFACE
21415 } IFileDialogEventsVtbl;
21416 
21417 interface IFileDialogEvents {
21418     CONST_VTBL IFileDialogEventsVtbl* lpVtbl;
21419 };
21420 
21421 #ifdef COBJMACROS
21422 #ifndef WIDL_C_INLINE_WRAPPERS
21423 /*** IUnknown methods ***/
21424 #define IFileDialogEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21425 #define IFileDialogEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
21426 #define IFileDialogEvents_Release(This) (This)->lpVtbl->Release(This)
21427 /*** IFileDialogEvents methods ***/
21428 #define IFileDialogEvents_OnFileOk(This,pfd) (This)->lpVtbl->OnFileOk(This,pfd)
21429 #define IFileDialogEvents_OnFolderChanging(This,pfd,psiFolder) (This)->lpVtbl->OnFolderChanging(This,pfd,psiFolder)
21430 #define IFileDialogEvents_OnFolderChange(This,pfd) (This)->lpVtbl->OnFolderChange(This,pfd)
21431 #define IFileDialogEvents_OnSelectionChange(This,pfd) (This)->lpVtbl->OnSelectionChange(This,pfd)
21432 #define IFileDialogEvents_OnShareViolation(This,pfd,psi,pResponse) (This)->lpVtbl->OnShareViolation(This,pfd,psi,pResponse)
21433 #define IFileDialogEvents_OnTypeChange(This,pfd) (This)->lpVtbl->OnTypeChange(This,pfd)
21434 #define IFileDialogEvents_OnOverwrite(This,pfd,psi,pResponse) (This)->lpVtbl->OnOverwrite(This,pfd,psi,pResponse)
21435 #else
21436 /*** IUnknown methods ***/
21437 static FORCEINLINE HRESULT IFileDialogEvents_QueryInterface(IFileDialogEvents* This,REFIID riid,void **ppvObject) {
21438     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21439 }
21440 static FORCEINLINE ULONG IFileDialogEvents_AddRef(IFileDialogEvents* This) {
21441     return This->lpVtbl->AddRef(This);
21442 }
21443 static FORCEINLINE ULONG IFileDialogEvents_Release(IFileDialogEvents* This) {
21444     return This->lpVtbl->Release(This);
21445 }
21446 /*** IFileDialogEvents methods ***/
21447 static FORCEINLINE HRESULT IFileDialogEvents_OnFileOk(IFileDialogEvents* This,IFileDialog *pfd) {
21448     return This->lpVtbl->OnFileOk(This,pfd);
21449 }
21450 static FORCEINLINE HRESULT IFileDialogEvents_OnFolderChanging(IFileDialogEvents* This,IFileDialog *pfd,IShellItem *psiFolder) {
21451     return This->lpVtbl->OnFolderChanging(This,pfd,psiFolder);
21452 }
21453 static FORCEINLINE HRESULT IFileDialogEvents_OnFolderChange(IFileDialogEvents* This,IFileDialog *pfd) {
21454     return This->lpVtbl->OnFolderChange(This,pfd);
21455 }
21456 static FORCEINLINE HRESULT IFileDialogEvents_OnSelectionChange(IFileDialogEvents* This,IFileDialog *pfd) {
21457     return This->lpVtbl->OnSelectionChange(This,pfd);
21458 }
21459 static FORCEINLINE HRESULT IFileDialogEvents_OnShareViolation(IFileDialogEvents* This,IFileDialog *pfd,IShellItem *psi,FDE_SHAREVIOLATION_RESPONSE *pResponse) {
21460     return This->lpVtbl->OnShareViolation(This,pfd,psi,pResponse);
21461 }
21462 static FORCEINLINE HRESULT IFileDialogEvents_OnTypeChange(IFileDialogEvents* This,IFileDialog *pfd) {
21463     return This->lpVtbl->OnTypeChange(This,pfd);
21464 }
21465 static FORCEINLINE HRESULT IFileDialogEvents_OnOverwrite(IFileDialogEvents* This,IFileDialog *pfd,IShellItem *psi,FDE_OVERWRITE_RESPONSE *pResponse) {
21466     return This->lpVtbl->OnOverwrite(This,pfd,psi,pResponse);
21467 }
21468 #endif
21469 #endif
21470 
21471 #endif
21472 
21473 
21474 #endif  /* __IFileDialogEvents_INTERFACE_DEFINED__ */
21475 
21476 
21477 #ifndef __IShellItemFilter_FWD_DEFINED__
21478 #define __IShellItemFilter_FWD_DEFINED__
21479 typedef interface IShellItemFilter IShellItemFilter;
21480 #ifdef __cplusplus
21481 interface IShellItemFilter;
21482 #endif /* __cplusplus */
21483 #endif
21484 
21485 
21486 /*****************************************************************************
21487  * IFileDialog interface
21488  */
21489 #ifndef __IFileDialog_INTERFACE_DEFINED__
21490 #define __IFileDialog_INTERFACE_DEFINED__
21491 
21492 enum _FILEOPENDIALOGOPTIONS {
21493     FOS_OVERWRITEPROMPT = 0x2,
21494     FOS_STRICTFILETYPES = 0x4,
21495     FOS_NOCHANGEDIR = 0x8,
21496     FOS_PICKFOLDERS = 0x20,
21497     FOS_FORCEFILESYSTEM = 0x40,
21498     FOS_ALLNONSTORAGEITEMS = 0x80,
21499     FOS_NOVALIDATE = 0x100,
21500     FOS_ALLOWMULTISELECT = 0x200,
21501     FOS_PATHMUSTEXIST = 0x800,
21502     FOS_FILEMUSTEXIST = 0x1000,
21503     FOS_CREATEPROMPT = 0x2000,
21504     FOS_SHAREAWARE = 0x4000,
21505     FOS_NOREADONLYRETURN = 0x8000,
21506     FOS_NOTESTFILECREATE = 0x10000,
21507     FOS_HIDEMRUPLACES = 0x20000,
21508     FOS_HIDEPINNEDPLACES = 0x40000,
21509     FOS_NODEREFERENCELINKS = 0x100000,
21510     FOS_DONTADDTORECENT = 0x2000000,
21511     FOS_FORCESHOWHIDDEN = 0x10000000,
21512     FOS_DEFAULTNOMINIMODE = 0x20000000,
21513     FOS_FORCEPREVIEWPANEON = 0x40000000,
21514     FOS_SUPPORTSTREAMABLEITEMS = 0x80000000
21515 };
21516 
21517 typedef DWORD FILEOPENDIALOGOPTIONS;
21518 
21519 DEFINE_GUID(IID_IFileDialog, 0x42f85136, 0xdb7e, 0x439c, 0x85,0xf1, 0xe4,0x07,0x5d,0x13,0x5f,0xc8);
21520 #if defined(__cplusplus) && !defined(CINTERFACE)
21521 MIDL_INTERFACE("42f85136-db7e-439c-85f1-e4075d135fc8")
21522 IFileDialog : public IModalWindow
21523 {
21524     virtual HRESULT STDMETHODCALLTYPE SetFileTypes(
21525         UINT cFileTypes,
21526         const COMDLG_FILTERSPEC *rgFilterSpec) = 0;
21527 
21528     virtual HRESULT STDMETHODCALLTYPE SetFileTypeIndex(
21529         UINT iFileType) = 0;
21530 
21531     virtual HRESULT STDMETHODCALLTYPE GetFileTypeIndex(
21532         UINT *piFileType) = 0;
21533 
21534     virtual HRESULT STDMETHODCALLTYPE Advise(
21535         IFileDialogEvents *pfde,
21536         DWORD *pdwCookie) = 0;
21537 
21538     virtual HRESULT STDMETHODCALLTYPE Unadvise(
21539         DWORD dwCookie) = 0;
21540 
21541     virtual HRESULT STDMETHODCALLTYPE SetOptions(
21542         FILEOPENDIALOGOPTIONS fos) = 0;
21543 
21544     virtual HRESULT STDMETHODCALLTYPE GetOptions(
21545         FILEOPENDIALOGOPTIONS *pfos) = 0;
21546 
21547     virtual HRESULT STDMETHODCALLTYPE SetDefaultFolder(
21548         IShellItem *psi) = 0;
21549 
21550     virtual HRESULT STDMETHODCALLTYPE SetFolder(
21551         IShellItem *psi) = 0;
21552 
21553     virtual HRESULT STDMETHODCALLTYPE GetFolder(
21554         IShellItem **ppsi) = 0;
21555 
21556     virtual HRESULT STDMETHODCALLTYPE GetCurrentSelection(
21557         IShellItem **ppsi) = 0;
21558 
21559     virtual HRESULT STDMETHODCALLTYPE SetFileName(
21560         LPCWSTR pszName) = 0;
21561 
21562     virtual HRESULT STDMETHODCALLTYPE GetFileName(
21563         LPWSTR *pszName) = 0;
21564 
21565     virtual HRESULT STDMETHODCALLTYPE SetTitle(
21566         LPCWSTR pszTitle) = 0;
21567 
21568     virtual HRESULT STDMETHODCALLTYPE SetOkButtonLabel(
21569         LPCWSTR pszText) = 0;
21570 
21571     virtual HRESULT STDMETHODCALLTYPE SetFileNameLabel(
21572         LPCWSTR pszLabel) = 0;
21573 
21574     virtual HRESULT STDMETHODCALLTYPE GetResult(
21575         IShellItem **ppsi) = 0;
21576 
21577     virtual HRESULT STDMETHODCALLTYPE AddPlace(
21578         IShellItem *psi,
21579         FDAP fdap) = 0;
21580 
21581     virtual HRESULT STDMETHODCALLTYPE SetDefaultExtension(
21582         LPCWSTR pszDefaultExtension) = 0;
21583 
21584     virtual HRESULT STDMETHODCALLTYPE Close(
21585         HRESULT hr) = 0;
21586 
21587     virtual HRESULT STDMETHODCALLTYPE SetClientGuid(
21588         REFGUID guid) = 0;
21589 
21590     virtual HRESULT STDMETHODCALLTYPE ClearClientData(
21591         ) = 0;
21592 
21593     virtual HRESULT STDMETHODCALLTYPE SetFilter(
21594         IShellItemFilter *pFilter) = 0;
21595 
21596 };
21597 #ifdef __CRT_UUID_DECL
21598 __CRT_UUID_DECL(IFileDialog, 0x42f85136, 0xdb7e, 0x439c, 0x85,0xf1, 0xe4,0x07,0x5d,0x13,0x5f,0xc8)
21599 #endif
21600 #else
21601 typedef struct IFileDialogVtbl {
21602     BEGIN_INTERFACE
21603 
21604     /*** IUnknown methods ***/
21605     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21606         IFileDialog *This,
21607         REFIID riid,
21608         void **ppvObject);
21609 
21610     ULONG (STDMETHODCALLTYPE *AddRef)(
21611         IFileDialog *This);
21612 
21613     ULONG (STDMETHODCALLTYPE *Release)(
21614         IFileDialog *This);
21615 
21616     /*** IModalWindow methods ***/
21617     HRESULT (STDMETHODCALLTYPE *Show)(
21618         IFileDialog *This,
21619         HWND hwndOwner);
21620 
21621     /*** IFileDialog methods ***/
21622     HRESULT (STDMETHODCALLTYPE *SetFileTypes)(
21623         IFileDialog *This,
21624         UINT cFileTypes,
21625         const COMDLG_FILTERSPEC *rgFilterSpec);
21626 
21627     HRESULT (STDMETHODCALLTYPE *SetFileTypeIndex)(
21628         IFileDialog *This,
21629         UINT iFileType);
21630 
21631     HRESULT (STDMETHODCALLTYPE *GetFileTypeIndex)(
21632         IFileDialog *This,
21633         UINT *piFileType);
21634 
21635     HRESULT (STDMETHODCALLTYPE *Advise)(
21636         IFileDialog *This,
21637         IFileDialogEvents *pfde,
21638         DWORD *pdwCookie);
21639 
21640     HRESULT (STDMETHODCALLTYPE *Unadvise)(
21641         IFileDialog *This,
21642         DWORD dwCookie);
21643 
21644     HRESULT (STDMETHODCALLTYPE *SetOptions)(
21645         IFileDialog *This,
21646         FILEOPENDIALOGOPTIONS fos);
21647 
21648     HRESULT (STDMETHODCALLTYPE *GetOptions)(
21649         IFileDialog *This,
21650         FILEOPENDIALOGOPTIONS *pfos);
21651 
21652     HRESULT (STDMETHODCALLTYPE *SetDefaultFolder)(
21653         IFileDialog *This,
21654         IShellItem *psi);
21655 
21656     HRESULT (STDMETHODCALLTYPE *SetFolder)(
21657         IFileDialog *This,
21658         IShellItem *psi);
21659 
21660     HRESULT (STDMETHODCALLTYPE *GetFolder)(
21661         IFileDialog *This,
21662         IShellItem **ppsi);
21663 
21664     HRESULT (STDMETHODCALLTYPE *GetCurrentSelection)(
21665         IFileDialog *This,
21666         IShellItem **ppsi);
21667 
21668     HRESULT (STDMETHODCALLTYPE *SetFileName)(
21669         IFileDialog *This,
21670         LPCWSTR pszName);
21671 
21672     HRESULT (STDMETHODCALLTYPE *GetFileName)(
21673         IFileDialog *This,
21674         LPWSTR *pszName);
21675 
21676     HRESULT (STDMETHODCALLTYPE *SetTitle)(
21677         IFileDialog *This,
21678         LPCWSTR pszTitle);
21679 
21680     HRESULT (STDMETHODCALLTYPE *SetOkButtonLabel)(
21681         IFileDialog *This,
21682         LPCWSTR pszText);
21683 
21684     HRESULT (STDMETHODCALLTYPE *SetFileNameLabel)(
21685         IFileDialog *This,
21686         LPCWSTR pszLabel);
21687 
21688     HRESULT (STDMETHODCALLTYPE *GetResult)(
21689         IFileDialog *This,
21690         IShellItem **ppsi);
21691 
21692     HRESULT (STDMETHODCALLTYPE *AddPlace)(
21693         IFileDialog *This,
21694         IShellItem *psi,
21695         FDAP fdap);
21696 
21697     HRESULT (STDMETHODCALLTYPE *SetDefaultExtension)(
21698         IFileDialog *This,
21699         LPCWSTR pszDefaultExtension);
21700 
21701     HRESULT (STDMETHODCALLTYPE *Close)(
21702         IFileDialog *This,
21703         HRESULT hr);
21704 
21705     HRESULT (STDMETHODCALLTYPE *SetClientGuid)(
21706         IFileDialog *This,
21707         REFGUID guid);
21708 
21709     HRESULT (STDMETHODCALLTYPE *ClearClientData)(
21710         IFileDialog *This);
21711 
21712     HRESULT (STDMETHODCALLTYPE *SetFilter)(
21713         IFileDialog *This,
21714         IShellItemFilter *pFilter);
21715 
21716     END_INTERFACE
21717 } IFileDialogVtbl;
21718 
21719 interface IFileDialog {
21720     CONST_VTBL IFileDialogVtbl* lpVtbl;
21721 };
21722 
21723 #ifdef COBJMACROS
21724 #ifndef WIDL_C_INLINE_WRAPPERS
21725 /*** IUnknown methods ***/
21726 #define IFileDialog_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21727 #define IFileDialog_AddRef(This) (This)->lpVtbl->AddRef(This)
21728 #define IFileDialog_Release(This) (This)->lpVtbl->Release(This)
21729 /*** IModalWindow methods ***/
21730 #define IFileDialog_Show(This,hwndOwner) (This)->lpVtbl->Show(This,hwndOwner)
21731 /*** IFileDialog methods ***/
21732 #define IFileDialog_SetFileTypes(This,cFileTypes,rgFilterSpec) (This)->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec)
21733 #define IFileDialog_SetFileTypeIndex(This,iFileType) (This)->lpVtbl->SetFileTypeIndex(This,iFileType)
21734 #define IFileDialog_GetFileTypeIndex(This,piFileType) (This)->lpVtbl->GetFileTypeIndex(This,piFileType)
21735 #define IFileDialog_Advise(This,pfde,pdwCookie) (This)->lpVtbl->Advise(This,pfde,pdwCookie)
21736 #define IFileDialog_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
21737 #define IFileDialog_SetOptions(This,fos) (This)->lpVtbl->SetOptions(This,fos)
21738 #define IFileDialog_GetOptions(This,pfos) (This)->lpVtbl->GetOptions(This,pfos)
21739 #define IFileDialog_SetDefaultFolder(This,psi) (This)->lpVtbl->SetDefaultFolder(This,psi)
21740 #define IFileDialog_SetFolder(This,psi) (This)->lpVtbl->SetFolder(This,psi)
21741 #define IFileDialog_GetFolder(This,ppsi) (This)->lpVtbl->GetFolder(This,ppsi)
21742 #define IFileDialog_GetCurrentSelection(This,ppsi) (This)->lpVtbl->GetCurrentSelection(This,ppsi)
21743 #define IFileDialog_SetFileName(This,pszName) (This)->lpVtbl->SetFileName(This,pszName)
21744 #define IFileDialog_GetFileName(This,pszName) (This)->lpVtbl->GetFileName(This,pszName)
21745 #define IFileDialog_SetTitle(This,pszTitle) (This)->lpVtbl->SetTitle(This,pszTitle)
21746 #define IFileDialog_SetOkButtonLabel(This,pszText) (This)->lpVtbl->SetOkButtonLabel(This,pszText)
21747 #define IFileDialog_SetFileNameLabel(This,pszLabel) (This)->lpVtbl->SetFileNameLabel(This,pszLabel)
21748 #define IFileDialog_GetResult(This,ppsi) (This)->lpVtbl->GetResult(This,ppsi)
21749 #define IFileDialog_AddPlace(This,psi,fdap) (This)->lpVtbl->AddPlace(This,psi,fdap)
21750 #define IFileDialog_SetDefaultExtension(This,pszDefaultExtension) (This)->lpVtbl->SetDefaultExtension(This,pszDefaultExtension)
21751 #define IFileDialog_Close(This,hr) (This)->lpVtbl->Close(This,hr)
21752 #define IFileDialog_SetClientGuid(This,guid) (This)->lpVtbl->SetClientGuid(This,guid)
21753 #define IFileDialog_ClearClientData(This) (This)->lpVtbl->ClearClientData(This)
21754 #define IFileDialog_SetFilter(This,pFilter) (This)->lpVtbl->SetFilter(This,pFilter)
21755 #else
21756 /*** IUnknown methods ***/
21757 static FORCEINLINE HRESULT IFileDialog_QueryInterface(IFileDialog* This,REFIID riid,void **ppvObject) {
21758     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21759 }
21760 static FORCEINLINE ULONG IFileDialog_AddRef(IFileDialog* This) {
21761     return This->lpVtbl->AddRef(This);
21762 }
21763 static FORCEINLINE ULONG IFileDialog_Release(IFileDialog* This) {
21764     return This->lpVtbl->Release(This);
21765 }
21766 /*** IModalWindow methods ***/
21767 static FORCEINLINE HRESULT IFileDialog_Show(IFileDialog* This,HWND hwndOwner) {
21768     return This->lpVtbl->Show(This,hwndOwner);
21769 }
21770 /*** IFileDialog methods ***/
21771 static FORCEINLINE HRESULT IFileDialog_SetFileTypes(IFileDialog* This,UINT cFileTypes,const COMDLG_FILTERSPEC *rgFilterSpec) {
21772     return This->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec);
21773 }
21774 static FORCEINLINE HRESULT IFileDialog_SetFileTypeIndex(IFileDialog* This,UINT iFileType) {
21775     return This->lpVtbl->SetFileTypeIndex(This,iFileType);
21776 }
21777 static FORCEINLINE HRESULT IFileDialog_GetFileTypeIndex(IFileDialog* This,UINT *piFileType) {
21778     return This->lpVtbl->GetFileTypeIndex(This,piFileType);
21779 }
21780 static FORCEINLINE HRESULT IFileDialog_Advise(IFileDialog* This,IFileDialogEvents *pfde,DWORD *pdwCookie) {
21781     return This->lpVtbl->Advise(This,pfde,pdwCookie);
21782 }
21783 static FORCEINLINE HRESULT IFileDialog_Unadvise(IFileDialog* This,DWORD dwCookie) {
21784     return This->lpVtbl->Unadvise(This,dwCookie);
21785 }
21786 static FORCEINLINE HRESULT IFileDialog_SetOptions(IFileDialog* This,FILEOPENDIALOGOPTIONS fos) {
21787     return This->lpVtbl->SetOptions(This,fos);
21788 }
21789 static FORCEINLINE HRESULT IFileDialog_GetOptions(IFileDialog* This,FILEOPENDIALOGOPTIONS *pfos) {
21790     return This->lpVtbl->GetOptions(This,pfos);
21791 }
21792 static FORCEINLINE HRESULT IFileDialog_SetDefaultFolder(IFileDialog* This,IShellItem *psi) {
21793     return This->lpVtbl->SetDefaultFolder(This,psi);
21794 }
21795 static FORCEINLINE HRESULT IFileDialog_SetFolder(IFileDialog* This,IShellItem *psi) {
21796     return This->lpVtbl->SetFolder(This,psi);
21797 }
21798 static FORCEINLINE HRESULT IFileDialog_GetFolder(IFileDialog* This,IShellItem **ppsi) {
21799     return This->lpVtbl->GetFolder(This,ppsi);
21800 }
21801 static FORCEINLINE HRESULT IFileDialog_GetCurrentSelection(IFileDialog* This,IShellItem **ppsi) {
21802     return This->lpVtbl->GetCurrentSelection(This,ppsi);
21803 }
21804 static FORCEINLINE HRESULT IFileDialog_SetFileName(IFileDialog* This,LPCWSTR pszName) {
21805     return This->lpVtbl->SetFileName(This,pszName);
21806 }
21807 static FORCEINLINE HRESULT IFileDialog_GetFileName(IFileDialog* This,LPWSTR *pszName) {
21808     return This->lpVtbl->GetFileName(This,pszName);
21809 }
21810 static FORCEINLINE HRESULT IFileDialog_SetTitle(IFileDialog* This,LPCWSTR pszTitle) {
21811     return This->lpVtbl->SetTitle(This,pszTitle);
21812 }
21813 static FORCEINLINE HRESULT IFileDialog_SetOkButtonLabel(IFileDialog* This,LPCWSTR pszText) {
21814     return This->lpVtbl->SetOkButtonLabel(This,pszText);
21815 }
21816 static FORCEINLINE HRESULT IFileDialog_SetFileNameLabel(IFileDialog* This,LPCWSTR pszLabel) {
21817     return This->lpVtbl->SetFileNameLabel(This,pszLabel);
21818 }
21819 static FORCEINLINE HRESULT IFileDialog_GetResult(IFileDialog* This,IShellItem **ppsi) {
21820     return This->lpVtbl->GetResult(This,ppsi);
21821 }
21822 static FORCEINLINE HRESULT IFileDialog_AddPlace(IFileDialog* This,IShellItem *psi,FDAP fdap) {
21823     return This->lpVtbl->AddPlace(This,psi,fdap);
21824 }
21825 static FORCEINLINE HRESULT IFileDialog_SetDefaultExtension(IFileDialog* This,LPCWSTR pszDefaultExtension) {
21826     return This->lpVtbl->SetDefaultExtension(This,pszDefaultExtension);
21827 }
21828 static FORCEINLINE HRESULT IFileDialog_Close(IFileDialog* This,HRESULT hr) {
21829     return This->lpVtbl->Close(This,hr);
21830 }
21831 static FORCEINLINE HRESULT IFileDialog_SetClientGuid(IFileDialog* This,REFGUID guid) {
21832     return This->lpVtbl->SetClientGuid(This,guid);
21833 }
21834 static FORCEINLINE HRESULT IFileDialog_ClearClientData(IFileDialog* This) {
21835     return This->lpVtbl->ClearClientData(This);
21836 }
21837 static FORCEINLINE HRESULT IFileDialog_SetFilter(IFileDialog* This,IShellItemFilter *pFilter) {
21838     return This->lpVtbl->SetFilter(This,pFilter);
21839 }
21840 #endif
21841 #endif
21842 
21843 #endif
21844 
21845 
21846 #endif  /* __IFileDialog_INTERFACE_DEFINED__ */
21847 
21848 
21849 /*****************************************************************************
21850  * IFileSaveDialog interface
21851  */
21852 #ifndef __IFileSaveDialog_INTERFACE_DEFINED__
21853 #define __IFileSaveDialog_INTERFACE_DEFINED__
21854 
21855 DEFINE_GUID(IID_IFileSaveDialog, 0x84bccd23, 0x5fde, 0x4cdb, 0xae,0xa4, 0xaf,0x64,0xb8,0x3d,0x78,0xab);
21856 #if defined(__cplusplus) && !defined(CINTERFACE)
21857 MIDL_INTERFACE("84bccd23-5fde-4cdb-aea4-af64b83d78ab")
21858 IFileSaveDialog : public IFileDialog
21859 {
21860     virtual HRESULT STDMETHODCALLTYPE SetSaveAsItem(
21861         IShellItem *psi) = 0;
21862 
21863     virtual HRESULT STDMETHODCALLTYPE SetProperties(
21864         IPropertyStore *pStore) = 0;
21865 
21866     virtual HRESULT STDMETHODCALLTYPE SetCollectedProperties(
21867         IPropertyDescriptionList *pList,
21868         WINBOOL fAppendDefault) = 0;
21869 
21870     virtual HRESULT STDMETHODCALLTYPE GetProperties(
21871         IPropertyStore **ppStore) = 0;
21872 
21873     virtual HRESULT STDMETHODCALLTYPE ApplyProperties(
21874         IShellItem *psi,
21875         IPropertyStore *pStore,
21876         HWND hwnd,
21877         IFileOperationProgressSink *pSink) = 0;
21878 
21879 };
21880 #ifdef __CRT_UUID_DECL
21881 __CRT_UUID_DECL(IFileSaveDialog, 0x84bccd23, 0x5fde, 0x4cdb, 0xae,0xa4, 0xaf,0x64,0xb8,0x3d,0x78,0xab)
21882 #endif
21883 #else
21884 typedef struct IFileSaveDialogVtbl {
21885     BEGIN_INTERFACE
21886 
21887     /*** IUnknown methods ***/
21888     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21889         IFileSaveDialog *This,
21890         REFIID riid,
21891         void **ppvObject);
21892 
21893     ULONG (STDMETHODCALLTYPE *AddRef)(
21894         IFileSaveDialog *This);
21895 
21896     ULONG (STDMETHODCALLTYPE *Release)(
21897         IFileSaveDialog *This);
21898 
21899     /*** IModalWindow methods ***/
21900     HRESULT (STDMETHODCALLTYPE *Show)(
21901         IFileSaveDialog *This,
21902         HWND hwndOwner);
21903 
21904     /*** IFileDialog methods ***/
21905     HRESULT (STDMETHODCALLTYPE *SetFileTypes)(
21906         IFileSaveDialog *This,
21907         UINT cFileTypes,
21908         const COMDLG_FILTERSPEC *rgFilterSpec);
21909 
21910     HRESULT (STDMETHODCALLTYPE *SetFileTypeIndex)(
21911         IFileSaveDialog *This,
21912         UINT iFileType);
21913 
21914     HRESULT (STDMETHODCALLTYPE *GetFileTypeIndex)(
21915         IFileSaveDialog *This,
21916         UINT *piFileType);
21917 
21918     HRESULT (STDMETHODCALLTYPE *Advise)(
21919         IFileSaveDialog *This,
21920         IFileDialogEvents *pfde,
21921         DWORD *pdwCookie);
21922 
21923     HRESULT (STDMETHODCALLTYPE *Unadvise)(
21924         IFileSaveDialog *This,
21925         DWORD dwCookie);
21926 
21927     HRESULT (STDMETHODCALLTYPE *SetOptions)(
21928         IFileSaveDialog *This,
21929         FILEOPENDIALOGOPTIONS fos);
21930 
21931     HRESULT (STDMETHODCALLTYPE *GetOptions)(
21932         IFileSaveDialog *This,
21933         FILEOPENDIALOGOPTIONS *pfos);
21934 
21935     HRESULT (STDMETHODCALLTYPE *SetDefaultFolder)(
21936         IFileSaveDialog *This,
21937         IShellItem *psi);
21938 
21939     HRESULT (STDMETHODCALLTYPE *SetFolder)(
21940         IFileSaveDialog *This,
21941         IShellItem *psi);
21942 
21943     HRESULT (STDMETHODCALLTYPE *GetFolder)(
21944         IFileSaveDialog *This,
21945         IShellItem **ppsi);
21946 
21947     HRESULT (STDMETHODCALLTYPE *GetCurrentSelection)(
21948         IFileSaveDialog *This,
21949         IShellItem **ppsi);
21950 
21951     HRESULT (STDMETHODCALLTYPE *SetFileName)(
21952         IFileSaveDialog *This,
21953         LPCWSTR pszName);
21954 
21955     HRESULT (STDMETHODCALLTYPE *GetFileName)(
21956         IFileSaveDialog *This,
21957         LPWSTR *pszName);
21958 
21959     HRESULT (STDMETHODCALLTYPE *SetTitle)(
21960         IFileSaveDialog *This,
21961         LPCWSTR pszTitle);
21962 
21963     HRESULT (STDMETHODCALLTYPE *SetOkButtonLabel)(
21964         IFileSaveDialog *This,
21965         LPCWSTR pszText);
21966 
21967     HRESULT (STDMETHODCALLTYPE *SetFileNameLabel)(
21968         IFileSaveDialog *This,
21969         LPCWSTR pszLabel);
21970 
21971     HRESULT (STDMETHODCALLTYPE *GetResult)(
21972         IFileSaveDialog *This,
21973         IShellItem **ppsi);
21974 
21975     HRESULT (STDMETHODCALLTYPE *AddPlace)(
21976         IFileSaveDialog *This,
21977         IShellItem *psi,
21978         FDAP fdap);
21979 
21980     HRESULT (STDMETHODCALLTYPE *SetDefaultExtension)(
21981         IFileSaveDialog *This,
21982         LPCWSTR pszDefaultExtension);
21983 
21984     HRESULT (STDMETHODCALLTYPE *Close)(
21985         IFileSaveDialog *This,
21986         HRESULT hr);
21987 
21988     HRESULT (STDMETHODCALLTYPE *SetClientGuid)(
21989         IFileSaveDialog *This,
21990         REFGUID guid);
21991 
21992     HRESULT (STDMETHODCALLTYPE *ClearClientData)(
21993         IFileSaveDialog *This);
21994 
21995     HRESULT (STDMETHODCALLTYPE *SetFilter)(
21996         IFileSaveDialog *This,
21997         IShellItemFilter *pFilter);
21998 
21999     /*** IFileSaveDialog methods ***/
22000     HRESULT (STDMETHODCALLTYPE *SetSaveAsItem)(
22001         IFileSaveDialog *This,
22002         IShellItem *psi);
22003 
22004     HRESULT (STDMETHODCALLTYPE *SetProperties)(
22005         IFileSaveDialog *This,
22006         IPropertyStore *pStore);
22007 
22008     HRESULT (STDMETHODCALLTYPE *SetCollectedProperties)(
22009         IFileSaveDialog *This,
22010         IPropertyDescriptionList *pList,
22011         WINBOOL fAppendDefault);
22012 
22013     HRESULT (STDMETHODCALLTYPE *GetProperties)(
22014         IFileSaveDialog *This,
22015         IPropertyStore **ppStore);
22016 
22017     HRESULT (STDMETHODCALLTYPE *ApplyProperties)(
22018         IFileSaveDialog *This,
22019         IShellItem *psi,
22020         IPropertyStore *pStore,
22021         HWND hwnd,
22022         IFileOperationProgressSink *pSink);
22023 
22024     END_INTERFACE
22025 } IFileSaveDialogVtbl;
22026 
22027 interface IFileSaveDialog {
22028     CONST_VTBL IFileSaveDialogVtbl* lpVtbl;
22029 };
22030 
22031 #ifdef COBJMACROS
22032 #ifndef WIDL_C_INLINE_WRAPPERS
22033 /*** IUnknown methods ***/
22034 #define IFileSaveDialog_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22035 #define IFileSaveDialog_AddRef(This) (This)->lpVtbl->AddRef(This)
22036 #define IFileSaveDialog_Release(This) (This)->lpVtbl->Release(This)
22037 /*** IModalWindow methods ***/
22038 #define IFileSaveDialog_Show(This,hwndOwner) (This)->lpVtbl->Show(This,hwndOwner)
22039 /*** IFileDialog methods ***/
22040 #define IFileSaveDialog_SetFileTypes(This,cFileTypes,rgFilterSpec) (This)->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec)
22041 #define IFileSaveDialog_SetFileTypeIndex(This,iFileType) (This)->lpVtbl->SetFileTypeIndex(This,iFileType)
22042 #define IFileSaveDialog_GetFileTypeIndex(This,piFileType) (This)->lpVtbl->GetFileTypeIndex(This,piFileType)
22043 #define IFileSaveDialog_Advise(This,pfde,pdwCookie) (This)->lpVtbl->Advise(This,pfde,pdwCookie)
22044 #define IFileSaveDialog_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
22045 #define IFileSaveDialog_SetOptions(This,fos) (This)->lpVtbl->SetOptions(This,fos)
22046 #define IFileSaveDialog_GetOptions(This,pfos) (This)->lpVtbl->GetOptions(This,pfos)
22047 #define IFileSaveDialog_SetDefaultFolder(This,psi) (This)->lpVtbl->SetDefaultFolder(This,psi)
22048 #define IFileSaveDialog_SetFolder(This,psi) (This)->lpVtbl->SetFolder(This,psi)
22049 #define IFileSaveDialog_GetFolder(This,ppsi) (This)->lpVtbl->GetFolder(This,ppsi)
22050 #define IFileSaveDialog_GetCurrentSelection(This,ppsi) (This)->lpVtbl->GetCurrentSelection(This,ppsi)
22051 #define IFileSaveDialog_SetFileName(This,pszName) (This)->lpVtbl->SetFileName(This,pszName)
22052 #define IFileSaveDialog_GetFileName(This,pszName) (This)->lpVtbl->GetFileName(This,pszName)
22053 #define IFileSaveDialog_SetTitle(This,pszTitle) (This)->lpVtbl->SetTitle(This,pszTitle)
22054 #define IFileSaveDialog_SetOkButtonLabel(This,pszText) (This)->lpVtbl->SetOkButtonLabel(This,pszText)
22055 #define IFileSaveDialog_SetFileNameLabel(This,pszLabel) (This)->lpVtbl->SetFileNameLabel(This,pszLabel)
22056 #define IFileSaveDialog_GetResult(This,ppsi) (This)->lpVtbl->GetResult(This,ppsi)
22057 #define IFileSaveDialog_AddPlace(This,psi,fdap) (This)->lpVtbl->AddPlace(This,psi,fdap)
22058 #define IFileSaveDialog_SetDefaultExtension(This,pszDefaultExtension) (This)->lpVtbl->SetDefaultExtension(This,pszDefaultExtension)
22059 #define IFileSaveDialog_Close(This,hr) (This)->lpVtbl->Close(This,hr)
22060 #define IFileSaveDialog_SetClientGuid(This,guid) (This)->lpVtbl->SetClientGuid(This,guid)
22061 #define IFileSaveDialog_ClearClientData(This) (This)->lpVtbl->ClearClientData(This)
22062 #define IFileSaveDialog_SetFilter(This,pFilter) (This)->lpVtbl->SetFilter(This,pFilter)
22063 /*** IFileSaveDialog methods ***/
22064 #define IFileSaveDialog_SetSaveAsItem(This,psi) (This)->lpVtbl->SetSaveAsItem(This,psi)
22065 #define IFileSaveDialog_SetProperties(This,pStore) (This)->lpVtbl->SetProperties(This,pStore)
22066 #define IFileSaveDialog_SetCollectedProperties(This,pList,fAppendDefault) (This)->lpVtbl->SetCollectedProperties(This,pList,fAppendDefault)
22067 #define IFileSaveDialog_GetProperties(This,ppStore) (This)->lpVtbl->GetProperties(This,ppStore)
22068 #define IFileSaveDialog_ApplyProperties(This,psi,pStore,hwnd,pSink) (This)->lpVtbl->ApplyProperties(This,psi,pStore,hwnd,pSink)
22069 #else
22070 /*** IUnknown methods ***/
22071 static FORCEINLINE HRESULT IFileSaveDialog_QueryInterface(IFileSaveDialog* This,REFIID riid,void **ppvObject) {
22072     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22073 }
22074 static FORCEINLINE ULONG IFileSaveDialog_AddRef(IFileSaveDialog* This) {
22075     return This->lpVtbl->AddRef(This);
22076 }
22077 static FORCEINLINE ULONG IFileSaveDialog_Release(IFileSaveDialog* This) {
22078     return This->lpVtbl->Release(This);
22079 }
22080 /*** IModalWindow methods ***/
22081 static FORCEINLINE HRESULT IFileSaveDialog_Show(IFileSaveDialog* This,HWND hwndOwner) {
22082     return This->lpVtbl->Show(This,hwndOwner);
22083 }
22084 /*** IFileDialog methods ***/
22085 static FORCEINLINE HRESULT IFileSaveDialog_SetFileTypes(IFileSaveDialog* This,UINT cFileTypes,const COMDLG_FILTERSPEC *rgFilterSpec) {
22086     return This->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec);
22087 }
22088 static FORCEINLINE HRESULT IFileSaveDialog_SetFileTypeIndex(IFileSaveDialog* This,UINT iFileType) {
22089     return This->lpVtbl->SetFileTypeIndex(This,iFileType);
22090 }
22091 static FORCEINLINE HRESULT IFileSaveDialog_GetFileTypeIndex(IFileSaveDialog* This,UINT *piFileType) {
22092     return This->lpVtbl->GetFileTypeIndex(This,piFileType);
22093 }
22094 static FORCEINLINE HRESULT IFileSaveDialog_Advise(IFileSaveDialog* This,IFileDialogEvents *pfde,DWORD *pdwCookie) {
22095     return This->lpVtbl->Advise(This,pfde,pdwCookie);
22096 }
22097 static FORCEINLINE HRESULT IFileSaveDialog_Unadvise(IFileSaveDialog* This,DWORD dwCookie) {
22098     return This->lpVtbl->Unadvise(This,dwCookie);
22099 }
22100 static FORCEINLINE HRESULT IFileSaveDialog_SetOptions(IFileSaveDialog* This,FILEOPENDIALOGOPTIONS fos) {
22101     return This->lpVtbl->SetOptions(This,fos);
22102 }
22103 static FORCEINLINE HRESULT IFileSaveDialog_GetOptions(IFileSaveDialog* This,FILEOPENDIALOGOPTIONS *pfos) {
22104     return This->lpVtbl->GetOptions(This,pfos);
22105 }
22106 static FORCEINLINE HRESULT IFileSaveDialog_SetDefaultFolder(IFileSaveDialog* This,IShellItem *psi) {
22107     return This->lpVtbl->SetDefaultFolder(This,psi);
22108 }
22109 static FORCEINLINE HRESULT IFileSaveDialog_SetFolder(IFileSaveDialog* This,IShellItem *psi) {
22110     return This->lpVtbl->SetFolder(This,psi);
22111 }
22112 static FORCEINLINE HRESULT IFileSaveDialog_GetFolder(IFileSaveDialog* This,IShellItem **ppsi) {
22113     return This->lpVtbl->GetFolder(This,ppsi);
22114 }
22115 static FORCEINLINE HRESULT IFileSaveDialog_GetCurrentSelection(IFileSaveDialog* This,IShellItem **ppsi) {
22116     return This->lpVtbl->GetCurrentSelection(This,ppsi);
22117 }
22118 static FORCEINLINE HRESULT IFileSaveDialog_SetFileName(IFileSaveDialog* This,LPCWSTR pszName) {
22119     return This->lpVtbl->SetFileName(This,pszName);
22120 }
22121 static FORCEINLINE HRESULT IFileSaveDialog_GetFileName(IFileSaveDialog* This,LPWSTR *pszName) {
22122     return This->lpVtbl->GetFileName(This,pszName);
22123 }
22124 static FORCEINLINE HRESULT IFileSaveDialog_SetTitle(IFileSaveDialog* This,LPCWSTR pszTitle) {
22125     return This->lpVtbl->SetTitle(This,pszTitle);
22126 }
22127 static FORCEINLINE HRESULT IFileSaveDialog_SetOkButtonLabel(IFileSaveDialog* This,LPCWSTR pszText) {
22128     return This->lpVtbl->SetOkButtonLabel(This,pszText);
22129 }
22130 static FORCEINLINE HRESULT IFileSaveDialog_SetFileNameLabel(IFileSaveDialog* This,LPCWSTR pszLabel) {
22131     return This->lpVtbl->SetFileNameLabel(This,pszLabel);
22132 }
22133 static FORCEINLINE HRESULT IFileSaveDialog_GetResult(IFileSaveDialog* This,IShellItem **ppsi) {
22134     return This->lpVtbl->GetResult(This,ppsi);
22135 }
22136 static FORCEINLINE HRESULT IFileSaveDialog_AddPlace(IFileSaveDialog* This,IShellItem *psi,FDAP fdap) {
22137     return This->lpVtbl->AddPlace(This,psi,fdap);
22138 }
22139 static FORCEINLINE HRESULT IFileSaveDialog_SetDefaultExtension(IFileSaveDialog* This,LPCWSTR pszDefaultExtension) {
22140     return This->lpVtbl->SetDefaultExtension(This,pszDefaultExtension);
22141 }
22142 static FORCEINLINE HRESULT IFileSaveDialog_Close(IFileSaveDialog* This,HRESULT hr) {
22143     return This->lpVtbl->Close(This,hr);
22144 }
22145 static FORCEINLINE HRESULT IFileSaveDialog_SetClientGuid(IFileSaveDialog* This,REFGUID guid) {
22146     return This->lpVtbl->SetClientGuid(This,guid);
22147 }
22148 static FORCEINLINE HRESULT IFileSaveDialog_ClearClientData(IFileSaveDialog* This) {
22149     return This->lpVtbl->ClearClientData(This);
22150 }
22151 static FORCEINLINE HRESULT IFileSaveDialog_SetFilter(IFileSaveDialog* This,IShellItemFilter *pFilter) {
22152     return This->lpVtbl->SetFilter(This,pFilter);
22153 }
22154 /*** IFileSaveDialog methods ***/
22155 static FORCEINLINE HRESULT IFileSaveDialog_SetSaveAsItem(IFileSaveDialog* This,IShellItem *psi) {
22156     return This->lpVtbl->SetSaveAsItem(This,psi);
22157 }
22158 static FORCEINLINE HRESULT IFileSaveDialog_SetProperties(IFileSaveDialog* This,IPropertyStore *pStore) {
22159     return This->lpVtbl->SetProperties(This,pStore);
22160 }
22161 static FORCEINLINE HRESULT IFileSaveDialog_SetCollectedProperties(IFileSaveDialog* This,IPropertyDescriptionList *pList,WINBOOL fAppendDefault) {
22162     return This->lpVtbl->SetCollectedProperties(This,pList,fAppendDefault);
22163 }
22164 static FORCEINLINE HRESULT IFileSaveDialog_GetProperties(IFileSaveDialog* This,IPropertyStore **ppStore) {
22165     return This->lpVtbl->GetProperties(This,ppStore);
22166 }
22167 static FORCEINLINE HRESULT IFileSaveDialog_ApplyProperties(IFileSaveDialog* This,IShellItem *psi,IPropertyStore *pStore,HWND hwnd,IFileOperationProgressSink *pSink) {
22168     return This->lpVtbl->ApplyProperties(This,psi,pStore,hwnd,pSink);
22169 }
22170 #endif
22171 #endif
22172 
22173 #endif
22174 
22175 
22176 #endif  /* __IFileSaveDialog_INTERFACE_DEFINED__ */
22177 
22178 
22179 /*****************************************************************************
22180  * IFileOpenDialog interface
22181  */
22182 #ifndef __IFileOpenDialog_INTERFACE_DEFINED__
22183 #define __IFileOpenDialog_INTERFACE_DEFINED__
22184 
22185 DEFINE_GUID(IID_IFileOpenDialog, 0xd57c7288, 0xd4ad, 0x4768, 0xbe,0x02, 0x9d,0x96,0x95,0x32,0xd9,0x60);
22186 #if defined(__cplusplus) && !defined(CINTERFACE)
22187 MIDL_INTERFACE("d57c7288-d4ad-4768-be02-9d969532d960")
22188 IFileOpenDialog : public IFileDialog
22189 {
22190     virtual HRESULT STDMETHODCALLTYPE GetResults(
22191         IShellItemArray **ppenum) = 0;
22192 
22193     virtual HRESULT STDMETHODCALLTYPE GetSelectedItems(
22194         IShellItemArray **ppsai) = 0;
22195 
22196 };
22197 #ifdef __CRT_UUID_DECL
22198 __CRT_UUID_DECL(IFileOpenDialog, 0xd57c7288, 0xd4ad, 0x4768, 0xbe,0x02, 0x9d,0x96,0x95,0x32,0xd9,0x60)
22199 #endif
22200 #else
22201 typedef struct IFileOpenDialogVtbl {
22202     BEGIN_INTERFACE
22203 
22204     /*** IUnknown methods ***/
22205     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22206         IFileOpenDialog *This,
22207         REFIID riid,
22208         void **ppvObject);
22209 
22210     ULONG (STDMETHODCALLTYPE *AddRef)(
22211         IFileOpenDialog *This);
22212 
22213     ULONG (STDMETHODCALLTYPE *Release)(
22214         IFileOpenDialog *This);
22215 
22216     /*** IModalWindow methods ***/
22217     HRESULT (STDMETHODCALLTYPE *Show)(
22218         IFileOpenDialog *This,
22219         HWND hwndOwner);
22220 
22221     /*** IFileDialog methods ***/
22222     HRESULT (STDMETHODCALLTYPE *SetFileTypes)(
22223         IFileOpenDialog *This,
22224         UINT cFileTypes,
22225         const COMDLG_FILTERSPEC *rgFilterSpec);
22226 
22227     HRESULT (STDMETHODCALLTYPE *SetFileTypeIndex)(
22228         IFileOpenDialog *This,
22229         UINT iFileType);
22230 
22231     HRESULT (STDMETHODCALLTYPE *GetFileTypeIndex)(
22232         IFileOpenDialog *This,
22233         UINT *piFileType);
22234 
22235     HRESULT (STDMETHODCALLTYPE *Advise)(
22236         IFileOpenDialog *This,
22237         IFileDialogEvents *pfde,
22238         DWORD *pdwCookie);
22239 
22240     HRESULT (STDMETHODCALLTYPE *Unadvise)(
22241         IFileOpenDialog *This,
22242         DWORD dwCookie);
22243 
22244     HRESULT (STDMETHODCALLTYPE *SetOptions)(
22245         IFileOpenDialog *This,
22246         FILEOPENDIALOGOPTIONS fos);
22247 
22248     HRESULT (STDMETHODCALLTYPE *GetOptions)(
22249         IFileOpenDialog *This,
22250         FILEOPENDIALOGOPTIONS *pfos);
22251 
22252     HRESULT (STDMETHODCALLTYPE *SetDefaultFolder)(
22253         IFileOpenDialog *This,
22254         IShellItem *psi);
22255 
22256     HRESULT (STDMETHODCALLTYPE *SetFolder)(
22257         IFileOpenDialog *This,
22258         IShellItem *psi);
22259 
22260     HRESULT (STDMETHODCALLTYPE *GetFolder)(
22261         IFileOpenDialog *This,
22262         IShellItem **ppsi);
22263 
22264     HRESULT (STDMETHODCALLTYPE *GetCurrentSelection)(
22265         IFileOpenDialog *This,
22266         IShellItem **ppsi);
22267 
22268     HRESULT (STDMETHODCALLTYPE *SetFileName)(
22269         IFileOpenDialog *This,
22270         LPCWSTR pszName);
22271 
22272     HRESULT (STDMETHODCALLTYPE *GetFileName)(
22273         IFileOpenDialog *This,
22274         LPWSTR *pszName);
22275 
22276     HRESULT (STDMETHODCALLTYPE *SetTitle)(
22277         IFileOpenDialog *This,
22278         LPCWSTR pszTitle);
22279 
22280     HRESULT (STDMETHODCALLTYPE *SetOkButtonLabel)(
22281         IFileOpenDialog *This,
22282         LPCWSTR pszText);
22283 
22284     HRESULT (STDMETHODCALLTYPE *SetFileNameLabel)(
22285         IFileOpenDialog *This,
22286         LPCWSTR pszLabel);
22287 
22288     HRESULT (STDMETHODCALLTYPE *GetResult)(
22289         IFileOpenDialog *This,
22290         IShellItem **ppsi);
22291 
22292     HRESULT (STDMETHODCALLTYPE *AddPlace)(
22293         IFileOpenDialog *This,
22294         IShellItem *psi,
22295         FDAP fdap);
22296 
22297     HRESULT (STDMETHODCALLTYPE *SetDefaultExtension)(
22298         IFileOpenDialog *This,
22299         LPCWSTR pszDefaultExtension);
22300 
22301     HRESULT (STDMETHODCALLTYPE *Close)(
22302         IFileOpenDialog *This,
22303         HRESULT hr);
22304 
22305     HRESULT (STDMETHODCALLTYPE *SetClientGuid)(
22306         IFileOpenDialog *This,
22307         REFGUID guid);
22308 
22309     HRESULT (STDMETHODCALLTYPE *ClearClientData)(
22310         IFileOpenDialog *This);
22311 
22312     HRESULT (STDMETHODCALLTYPE *SetFilter)(
22313         IFileOpenDialog *This,
22314         IShellItemFilter *pFilter);
22315 
22316     /*** IFileOpenDialog methods ***/
22317     HRESULT (STDMETHODCALLTYPE *GetResults)(
22318         IFileOpenDialog *This,
22319         IShellItemArray **ppenum);
22320 
22321     HRESULT (STDMETHODCALLTYPE *GetSelectedItems)(
22322         IFileOpenDialog *This,
22323         IShellItemArray **ppsai);
22324 
22325     END_INTERFACE
22326 } IFileOpenDialogVtbl;
22327 
22328 interface IFileOpenDialog {
22329     CONST_VTBL IFileOpenDialogVtbl* lpVtbl;
22330 };
22331 
22332 #ifdef COBJMACROS
22333 #ifndef WIDL_C_INLINE_WRAPPERS
22334 /*** IUnknown methods ***/
22335 #define IFileOpenDialog_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22336 #define IFileOpenDialog_AddRef(This) (This)->lpVtbl->AddRef(This)
22337 #define IFileOpenDialog_Release(This) (This)->lpVtbl->Release(This)
22338 /*** IModalWindow methods ***/
22339 #define IFileOpenDialog_Show(This,hwndOwner) (This)->lpVtbl->Show(This,hwndOwner)
22340 /*** IFileDialog methods ***/
22341 #define IFileOpenDialog_SetFileTypes(This,cFileTypes,rgFilterSpec) (This)->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec)
22342 #define IFileOpenDialog_SetFileTypeIndex(This,iFileType) (This)->lpVtbl->SetFileTypeIndex(This,iFileType)
22343 #define IFileOpenDialog_GetFileTypeIndex(This,piFileType) (This)->lpVtbl->GetFileTypeIndex(This,piFileType)
22344 #define IFileOpenDialog_Advise(This,pfde,pdwCookie) (This)->lpVtbl->Advise(This,pfde,pdwCookie)
22345 #define IFileOpenDialog_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
22346 #define IFileOpenDialog_SetOptions(This,fos) (This)->lpVtbl->SetOptions(This,fos)
22347 #define IFileOpenDialog_GetOptions(This,pfos) (This)->lpVtbl->GetOptions(This,pfos)
22348 #define IFileOpenDialog_SetDefaultFolder(This,psi) (This)->lpVtbl->SetDefaultFolder(This,psi)
22349 #define IFileOpenDialog_SetFolder(This,psi) (This)->lpVtbl->SetFolder(This,psi)
22350 #define IFileOpenDialog_GetFolder(This,ppsi) (This)->lpVtbl->GetFolder(This,ppsi)
22351 #define IFileOpenDialog_GetCurrentSelection(This,ppsi) (This)->lpVtbl->GetCurrentSelection(This,ppsi)
22352 #define IFileOpenDialog_SetFileName(This,pszName) (This)->lpVtbl->SetFileName(This,pszName)
22353 #define IFileOpenDialog_GetFileName(This,pszName) (This)->lpVtbl->GetFileName(This,pszName)
22354 #define IFileOpenDialog_SetTitle(This,pszTitle) (This)->lpVtbl->SetTitle(This,pszTitle)
22355 #define IFileOpenDialog_SetOkButtonLabel(This,pszText) (This)->lpVtbl->SetOkButtonLabel(This,pszText)
22356 #define IFileOpenDialog_SetFileNameLabel(This,pszLabel) (This)->lpVtbl->SetFileNameLabel(This,pszLabel)
22357 #define IFileOpenDialog_GetResult(This,ppsi) (This)->lpVtbl->GetResult(This,ppsi)
22358 #define IFileOpenDialog_AddPlace(This,psi,fdap) (This)->lpVtbl->AddPlace(This,psi,fdap)
22359 #define IFileOpenDialog_SetDefaultExtension(This,pszDefaultExtension) (This)->lpVtbl->SetDefaultExtension(This,pszDefaultExtension)
22360 #define IFileOpenDialog_Close(This,hr) (This)->lpVtbl->Close(This,hr)
22361 #define IFileOpenDialog_SetClientGuid(This,guid) (This)->lpVtbl->SetClientGuid(This,guid)
22362 #define IFileOpenDialog_ClearClientData(This) (This)->lpVtbl->ClearClientData(This)
22363 #define IFileOpenDialog_SetFilter(This,pFilter) (This)->lpVtbl->SetFilter(This,pFilter)
22364 /*** IFileOpenDialog methods ***/
22365 #define IFileOpenDialog_GetResults(This,ppenum) (This)->lpVtbl->GetResults(This,ppenum)
22366 #define IFileOpenDialog_GetSelectedItems(This,ppsai) (This)->lpVtbl->GetSelectedItems(This,ppsai)
22367 #else
22368 /*** IUnknown methods ***/
22369 static FORCEINLINE HRESULT IFileOpenDialog_QueryInterface(IFileOpenDialog* This,REFIID riid,void **ppvObject) {
22370     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22371 }
22372 static FORCEINLINE ULONG IFileOpenDialog_AddRef(IFileOpenDialog* This) {
22373     return This->lpVtbl->AddRef(This);
22374 }
22375 static FORCEINLINE ULONG IFileOpenDialog_Release(IFileOpenDialog* This) {
22376     return This->lpVtbl->Release(This);
22377 }
22378 /*** IModalWindow methods ***/
22379 static FORCEINLINE HRESULT IFileOpenDialog_Show(IFileOpenDialog* This,HWND hwndOwner) {
22380     return This->lpVtbl->Show(This,hwndOwner);
22381 }
22382 /*** IFileDialog methods ***/
22383 static FORCEINLINE HRESULT IFileOpenDialog_SetFileTypes(IFileOpenDialog* This,UINT cFileTypes,const COMDLG_FILTERSPEC *rgFilterSpec) {
22384     return This->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec);
22385 }
22386 static FORCEINLINE HRESULT IFileOpenDialog_SetFileTypeIndex(IFileOpenDialog* This,UINT iFileType) {
22387     return This->lpVtbl->SetFileTypeIndex(This,iFileType);
22388 }
22389 static FORCEINLINE HRESULT IFileOpenDialog_GetFileTypeIndex(IFileOpenDialog* This,UINT *piFileType) {
22390     return This->lpVtbl->GetFileTypeIndex(This,piFileType);
22391 }
22392 static FORCEINLINE HRESULT IFileOpenDialog_Advise(IFileOpenDialog* This,IFileDialogEvents *pfde,DWORD *pdwCookie) {
22393     return This->lpVtbl->Advise(This,pfde,pdwCookie);
22394 }
22395 static FORCEINLINE HRESULT IFileOpenDialog_Unadvise(IFileOpenDialog* This,DWORD dwCookie) {
22396     return This->lpVtbl->Unadvise(This,dwCookie);
22397 }
22398 static FORCEINLINE HRESULT IFileOpenDialog_SetOptions(IFileOpenDialog* This,FILEOPENDIALOGOPTIONS fos) {
22399     return This->lpVtbl->SetOptions(This,fos);
22400 }
22401 static FORCEINLINE HRESULT IFileOpenDialog_GetOptions(IFileOpenDialog* This,FILEOPENDIALOGOPTIONS *pfos) {
22402     return This->lpVtbl->GetOptions(This,pfos);
22403 }
22404 static FORCEINLINE HRESULT IFileOpenDialog_SetDefaultFolder(IFileOpenDialog* This,IShellItem *psi) {
22405     return This->lpVtbl->SetDefaultFolder(This,psi);
22406 }
22407 static FORCEINLINE HRESULT IFileOpenDialog_SetFolder(IFileOpenDialog* This,IShellItem *psi) {
22408     return This->lpVtbl->SetFolder(This,psi);
22409 }
22410 static FORCEINLINE HRESULT IFileOpenDialog_GetFolder(IFileOpenDialog* This,IShellItem **ppsi) {
22411     return This->lpVtbl->GetFolder(This,ppsi);
22412 }
22413 static FORCEINLINE HRESULT IFileOpenDialog_GetCurrentSelection(IFileOpenDialog* This,IShellItem **ppsi) {
22414     return This->lpVtbl->GetCurrentSelection(This,ppsi);
22415 }
22416 static FORCEINLINE HRESULT IFileOpenDialog_SetFileName(IFileOpenDialog* This,LPCWSTR pszName) {
22417     return This->lpVtbl->SetFileName(This,pszName);
22418 }
22419 static FORCEINLINE HRESULT IFileOpenDialog_GetFileName(IFileOpenDialog* This,LPWSTR *pszName) {
22420     return This->lpVtbl->GetFileName(This,pszName);
22421 }
22422 static FORCEINLINE HRESULT IFileOpenDialog_SetTitle(IFileOpenDialog* This,LPCWSTR pszTitle) {
22423     return This->lpVtbl->SetTitle(This,pszTitle);
22424 }
22425 static FORCEINLINE HRESULT IFileOpenDialog_SetOkButtonLabel(IFileOpenDialog* This,LPCWSTR pszText) {
22426     return This->lpVtbl->SetOkButtonLabel(This,pszText);
22427 }
22428 static FORCEINLINE HRESULT IFileOpenDialog_SetFileNameLabel(IFileOpenDialog* This,LPCWSTR pszLabel) {
22429     return This->lpVtbl->SetFileNameLabel(This,pszLabel);
22430 }
22431 static FORCEINLINE HRESULT IFileOpenDialog_GetResult(IFileOpenDialog* This,IShellItem **ppsi) {
22432     return This->lpVtbl->GetResult(This,ppsi);
22433 }
22434 static FORCEINLINE HRESULT IFileOpenDialog_AddPlace(IFileOpenDialog* This,IShellItem *psi,FDAP fdap) {
22435     return This->lpVtbl->AddPlace(This,psi,fdap);
22436 }
22437 static FORCEINLINE HRESULT IFileOpenDialog_SetDefaultExtension(IFileOpenDialog* This,LPCWSTR pszDefaultExtension) {
22438     return This->lpVtbl->SetDefaultExtension(This,pszDefaultExtension);
22439 }
22440 static FORCEINLINE HRESULT IFileOpenDialog_Close(IFileOpenDialog* This,HRESULT hr) {
22441     return This->lpVtbl->Close(This,hr);
22442 }
22443 static FORCEINLINE HRESULT IFileOpenDialog_SetClientGuid(IFileOpenDialog* This,REFGUID guid) {
22444     return This->lpVtbl->SetClientGuid(This,guid);
22445 }
22446 static FORCEINLINE HRESULT IFileOpenDialog_ClearClientData(IFileOpenDialog* This) {
22447     return This->lpVtbl->ClearClientData(This);
22448 }
22449 static FORCEINLINE HRESULT IFileOpenDialog_SetFilter(IFileOpenDialog* This,IShellItemFilter *pFilter) {
22450     return This->lpVtbl->SetFilter(This,pFilter);
22451 }
22452 /*** IFileOpenDialog methods ***/
22453 static FORCEINLINE HRESULT IFileOpenDialog_GetResults(IFileOpenDialog* This,IShellItemArray **ppenum) {
22454     return This->lpVtbl->GetResults(This,ppenum);
22455 }
22456 static FORCEINLINE HRESULT IFileOpenDialog_GetSelectedItems(IFileOpenDialog* This,IShellItemArray **ppsai) {
22457     return This->lpVtbl->GetSelectedItems(This,ppsai);
22458 }
22459 #endif
22460 #endif
22461 
22462 #endif
22463 
22464 
22465 #endif  /* __IFileOpenDialog_INTERFACE_DEFINED__ */
22466 
22467 
22468 typedef enum CDCONTROLSTATEF {
22469     CDCS_INACTIVE = 0x0,
22470     CDCS_ENABLED = 0x1,
22471     CDCS_VISIBLE = 0x2,
22472     CDCS_ENABLEDVISIBLE = 0x3
22473 } CDCONTROLSTATEF;
22474 
22475 DEFINE_ENUM_FLAG_OPERATORS(CDCONTROLSTATEF)
22476 
22477 /*****************************************************************************
22478  * IFileDialogCustomize interface
22479  */
22480 #ifndef __IFileDialogCustomize_INTERFACE_DEFINED__
22481 #define __IFileDialogCustomize_INTERFACE_DEFINED__
22482 
22483 DEFINE_GUID(IID_IFileDialogCustomize, 0xe6fdd21a, 0x163f, 0x4975, 0x9c,0x8c, 0xa6,0x9f,0x1b,0xa3,0x70,0x34);
22484 #if defined(__cplusplus) && !defined(CINTERFACE)
22485 MIDL_INTERFACE("e6fdd21a-163f-4975-9c8c-a69f1ba37034")
22486 IFileDialogCustomize : public IUnknown
22487 {
22488     virtual HRESULT STDMETHODCALLTYPE EnableOpenDropDown(
22489         DWORD dwIDCtl) = 0;
22490 
22491     virtual HRESULT STDMETHODCALLTYPE AddMenu(
22492         DWORD dwIDCtl,
22493         LPCWSTR pszLabel) = 0;
22494 
22495     virtual HRESULT STDMETHODCALLTYPE AddPushButton(
22496         DWORD dwIDCtl,
22497         LPCWSTR pszLabel) = 0;
22498 
22499     virtual HRESULT STDMETHODCALLTYPE AddComboBox(
22500         DWORD dwIDCtl) = 0;
22501 
22502     virtual HRESULT STDMETHODCALLTYPE AddRadioButtonList(
22503         DWORD dwIDCtl) = 0;
22504 
22505     virtual HRESULT STDMETHODCALLTYPE AddCheckButton(
22506         DWORD dwIDCtl,
22507         LPCWSTR pszLabel,
22508         WINBOOL bChecked) = 0;
22509 
22510     virtual HRESULT STDMETHODCALLTYPE AddEditBox(
22511         DWORD dwIDCtl,
22512         LPCWSTR pszText) = 0;
22513 
22514     virtual HRESULT STDMETHODCALLTYPE AddSeparator(
22515         DWORD dwIDCtl) = 0;
22516 
22517     virtual HRESULT STDMETHODCALLTYPE AddText(
22518         DWORD dwIDCtl,
22519         LPCWSTR pszText) = 0;
22520 
22521     virtual HRESULT STDMETHODCALLTYPE SetControlLabel(
22522         DWORD dwIDCtl,
22523         LPCWSTR pszLabel) = 0;
22524 
22525     virtual HRESULT STDMETHODCALLTYPE GetControlState(
22526         DWORD dwIDCtl,
22527         CDCONTROLSTATEF *pdwState) = 0;
22528 
22529     virtual HRESULT STDMETHODCALLTYPE SetControlState(
22530         DWORD dwIDCtl,
22531         CDCONTROLSTATEF dwState) = 0;
22532 
22533     virtual HRESULT STDMETHODCALLTYPE GetEditBoxText(
22534         DWORD dwIDCtl,
22535         WCHAR **ppszText) = 0;
22536 
22537     virtual HRESULT STDMETHODCALLTYPE SetEditBoxText(
22538         DWORD dwIDCtl,
22539         LPCWSTR pszText) = 0;
22540 
22541     virtual HRESULT STDMETHODCALLTYPE GetCheckButtonState(
22542         DWORD dwIDCtl,
22543         WINBOOL *pbChecked) = 0;
22544 
22545     virtual HRESULT STDMETHODCALLTYPE SetCheckButtonState(
22546         DWORD dwIDCtl,
22547         WINBOOL bChecked) = 0;
22548 
22549     virtual HRESULT STDMETHODCALLTYPE AddControlItem(
22550         DWORD dwIDCtl,
22551         DWORD dwIDItem,
22552         LPCWSTR pszLabel) = 0;
22553 
22554     virtual HRESULT STDMETHODCALLTYPE RemoveControlItem(
22555         DWORD dwIDCtl,
22556         DWORD dwIDItem) = 0;
22557 
22558     virtual HRESULT STDMETHODCALLTYPE RemoveAllControlItems(
22559         DWORD dwIDCtl) = 0;
22560 
22561     virtual HRESULT STDMETHODCALLTYPE GetControlItemState(
22562         DWORD dwIDCtl,
22563         DWORD dwIDItem,
22564         CDCONTROLSTATEF *pdwState) = 0;
22565 
22566     virtual HRESULT STDMETHODCALLTYPE SetControlItemState(
22567         DWORD dwIDCtl,
22568         DWORD dwIDItem,
22569         CDCONTROLSTATEF dwState) = 0;
22570 
22571     virtual HRESULT STDMETHODCALLTYPE GetSelectedControlItem(
22572         DWORD dwIDCtl,
22573         DWORD *pdwIDItem) = 0;
22574 
22575     virtual HRESULT STDMETHODCALLTYPE SetSelectedControlItem(
22576         DWORD dwIDCtl,
22577         DWORD dwIDItem) = 0;
22578 
22579     virtual HRESULT STDMETHODCALLTYPE StartVisualGroup(
22580         DWORD dwIDCtl,
22581         LPCWSTR pszLabel) = 0;
22582 
22583     virtual HRESULT STDMETHODCALLTYPE EndVisualGroup(
22584         ) = 0;
22585 
22586     virtual HRESULT STDMETHODCALLTYPE MakeProminent(
22587         DWORD dwIDCtl) = 0;
22588 
22589     virtual HRESULT STDMETHODCALLTYPE SetControlItemText(
22590         DWORD dwIDCtl,
22591         DWORD dwIDItem,
22592         LPCWSTR pszLabel) = 0;
22593 
22594 };
22595 #ifdef __CRT_UUID_DECL
22596 __CRT_UUID_DECL(IFileDialogCustomize, 0xe6fdd21a, 0x163f, 0x4975, 0x9c,0x8c, 0xa6,0x9f,0x1b,0xa3,0x70,0x34)
22597 #endif
22598 #else
22599 typedef struct IFileDialogCustomizeVtbl {
22600     BEGIN_INTERFACE
22601 
22602     /*** IUnknown methods ***/
22603     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22604         IFileDialogCustomize *This,
22605         REFIID riid,
22606         void **ppvObject);
22607 
22608     ULONG (STDMETHODCALLTYPE *AddRef)(
22609         IFileDialogCustomize *This);
22610 
22611     ULONG (STDMETHODCALLTYPE *Release)(
22612         IFileDialogCustomize *This);
22613 
22614     /*** IFileDialogCustomize methods ***/
22615     HRESULT (STDMETHODCALLTYPE *EnableOpenDropDown)(
22616         IFileDialogCustomize *This,
22617         DWORD dwIDCtl);
22618 
22619     HRESULT (STDMETHODCALLTYPE *AddMenu)(
22620         IFileDialogCustomize *This,
22621         DWORD dwIDCtl,
22622         LPCWSTR pszLabel);
22623 
22624     HRESULT (STDMETHODCALLTYPE *AddPushButton)(
22625         IFileDialogCustomize *This,
22626         DWORD dwIDCtl,
22627         LPCWSTR pszLabel);
22628 
22629     HRESULT (STDMETHODCALLTYPE *AddComboBox)(
22630         IFileDialogCustomize *This,
22631         DWORD dwIDCtl);
22632 
22633     HRESULT (STDMETHODCALLTYPE *AddRadioButtonList)(
22634         IFileDialogCustomize *This,
22635         DWORD dwIDCtl);
22636 
22637     HRESULT (STDMETHODCALLTYPE *AddCheckButton)(
22638         IFileDialogCustomize *This,
22639         DWORD dwIDCtl,
22640         LPCWSTR pszLabel,
22641         WINBOOL bChecked);
22642 
22643     HRESULT (STDMETHODCALLTYPE *AddEditBox)(
22644         IFileDialogCustomize *This,
22645         DWORD dwIDCtl,
22646         LPCWSTR pszText);
22647 
22648     HRESULT (STDMETHODCALLTYPE *AddSeparator)(
22649         IFileDialogCustomize *This,
22650         DWORD dwIDCtl);
22651 
22652     HRESULT (STDMETHODCALLTYPE *AddText)(
22653         IFileDialogCustomize *This,
22654         DWORD dwIDCtl,
22655         LPCWSTR pszText);
22656 
22657     HRESULT (STDMETHODCALLTYPE *SetControlLabel)(
22658         IFileDialogCustomize *This,
22659         DWORD dwIDCtl,
22660         LPCWSTR pszLabel);
22661 
22662     HRESULT (STDMETHODCALLTYPE *GetControlState)(
22663         IFileDialogCustomize *This,
22664         DWORD dwIDCtl,
22665         CDCONTROLSTATEF *pdwState);
22666 
22667     HRESULT (STDMETHODCALLTYPE *SetControlState)(
22668         IFileDialogCustomize *This,
22669         DWORD dwIDCtl,
22670         CDCONTROLSTATEF dwState);
22671 
22672     HRESULT (STDMETHODCALLTYPE *GetEditBoxText)(
22673         IFileDialogCustomize *This,
22674         DWORD dwIDCtl,
22675         WCHAR **ppszText);
22676 
22677     HRESULT (STDMETHODCALLTYPE *SetEditBoxText)(
22678         IFileDialogCustomize *This,
22679         DWORD dwIDCtl,
22680         LPCWSTR pszText);
22681 
22682     HRESULT (STDMETHODCALLTYPE *GetCheckButtonState)(
22683         IFileDialogCustomize *This,
22684         DWORD dwIDCtl,
22685         WINBOOL *pbChecked);
22686 
22687     HRESULT (STDMETHODCALLTYPE *SetCheckButtonState)(
22688         IFileDialogCustomize *This,
22689         DWORD dwIDCtl,
22690         WINBOOL bChecked);
22691 
22692     HRESULT (STDMETHODCALLTYPE *AddControlItem)(
22693         IFileDialogCustomize *This,
22694         DWORD dwIDCtl,
22695         DWORD dwIDItem,
22696         LPCWSTR pszLabel);
22697 
22698     HRESULT (STDMETHODCALLTYPE *RemoveControlItem)(
22699         IFileDialogCustomize *This,
22700         DWORD dwIDCtl,
22701         DWORD dwIDItem);
22702 
22703     HRESULT (STDMETHODCALLTYPE *RemoveAllControlItems)(
22704         IFileDialogCustomize *This,
22705         DWORD dwIDCtl);
22706 
22707     HRESULT (STDMETHODCALLTYPE *GetControlItemState)(
22708         IFileDialogCustomize *This,
22709         DWORD dwIDCtl,
22710         DWORD dwIDItem,
22711         CDCONTROLSTATEF *pdwState);
22712 
22713     HRESULT (STDMETHODCALLTYPE *SetControlItemState)(
22714         IFileDialogCustomize *This,
22715         DWORD dwIDCtl,
22716         DWORD dwIDItem,
22717         CDCONTROLSTATEF dwState);
22718 
22719     HRESULT (STDMETHODCALLTYPE *GetSelectedControlItem)(
22720         IFileDialogCustomize *This,
22721         DWORD dwIDCtl,
22722         DWORD *pdwIDItem);
22723 
22724     HRESULT (STDMETHODCALLTYPE *SetSelectedControlItem)(
22725         IFileDialogCustomize *This,
22726         DWORD dwIDCtl,
22727         DWORD dwIDItem);
22728 
22729     HRESULT (STDMETHODCALLTYPE *StartVisualGroup)(
22730         IFileDialogCustomize *This,
22731         DWORD dwIDCtl,
22732         LPCWSTR pszLabel);
22733 
22734     HRESULT (STDMETHODCALLTYPE *EndVisualGroup)(
22735         IFileDialogCustomize *This);
22736 
22737     HRESULT (STDMETHODCALLTYPE *MakeProminent)(
22738         IFileDialogCustomize *This,
22739         DWORD dwIDCtl);
22740 
22741     HRESULT (STDMETHODCALLTYPE *SetControlItemText)(
22742         IFileDialogCustomize *This,
22743         DWORD dwIDCtl,
22744         DWORD dwIDItem,
22745         LPCWSTR pszLabel);
22746 
22747     END_INTERFACE
22748 } IFileDialogCustomizeVtbl;
22749 
22750 interface IFileDialogCustomize {
22751     CONST_VTBL IFileDialogCustomizeVtbl* lpVtbl;
22752 };
22753 
22754 #ifdef COBJMACROS
22755 #ifndef WIDL_C_INLINE_WRAPPERS
22756 /*** IUnknown methods ***/
22757 #define IFileDialogCustomize_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22758 #define IFileDialogCustomize_AddRef(This) (This)->lpVtbl->AddRef(This)
22759 #define IFileDialogCustomize_Release(This) (This)->lpVtbl->Release(This)
22760 /*** IFileDialogCustomize methods ***/
22761 #define IFileDialogCustomize_EnableOpenDropDown(This,dwIDCtl) (This)->lpVtbl->EnableOpenDropDown(This,dwIDCtl)
22762 #define IFileDialogCustomize_AddMenu(This,dwIDCtl,pszLabel) (This)->lpVtbl->AddMenu(This,dwIDCtl,pszLabel)
22763 #define IFileDialogCustomize_AddPushButton(This,dwIDCtl,pszLabel) (This)->lpVtbl->AddPushButton(This,dwIDCtl,pszLabel)
22764 #define IFileDialogCustomize_AddComboBox(This,dwIDCtl) (This)->lpVtbl->AddComboBox(This,dwIDCtl)
22765 #define IFileDialogCustomize_AddRadioButtonList(This,dwIDCtl) (This)->lpVtbl->AddRadioButtonList(This,dwIDCtl)
22766 #define IFileDialogCustomize_AddCheckButton(This,dwIDCtl,pszLabel,bChecked) (This)->lpVtbl->AddCheckButton(This,dwIDCtl,pszLabel,bChecked)
22767 #define IFileDialogCustomize_AddEditBox(This,dwIDCtl,pszText) (This)->lpVtbl->AddEditBox(This,dwIDCtl,pszText)
22768 #define IFileDialogCustomize_AddSeparator(This,dwIDCtl) (This)->lpVtbl->AddSeparator(This,dwIDCtl)
22769 #define IFileDialogCustomize_AddText(This,dwIDCtl,pszText) (This)->lpVtbl->AddText(This,dwIDCtl,pszText)
22770 #define IFileDialogCustomize_SetControlLabel(This,dwIDCtl,pszLabel) (This)->lpVtbl->SetControlLabel(This,dwIDCtl,pszLabel)
22771 #define IFileDialogCustomize_GetControlState(This,dwIDCtl,pdwState) (This)->lpVtbl->GetControlState(This,dwIDCtl,pdwState)
22772 #define IFileDialogCustomize_SetControlState(This,dwIDCtl,dwState) (This)->lpVtbl->SetControlState(This,dwIDCtl,dwState)
22773 #define IFileDialogCustomize_GetEditBoxText(This,dwIDCtl,ppszText) (This)->lpVtbl->GetEditBoxText(This,dwIDCtl,ppszText)
22774 #define IFileDialogCustomize_SetEditBoxText(This,dwIDCtl,pszText) (This)->lpVtbl->SetEditBoxText(This,dwIDCtl,pszText)
22775 #define IFileDialogCustomize_GetCheckButtonState(This,dwIDCtl,pbChecked) (This)->lpVtbl->GetCheckButtonState(This,dwIDCtl,pbChecked)
22776 #define IFileDialogCustomize_SetCheckButtonState(This,dwIDCtl,bChecked) (This)->lpVtbl->SetCheckButtonState(This,dwIDCtl,bChecked)
22777 #define IFileDialogCustomize_AddControlItem(This,dwIDCtl,dwIDItem,pszLabel) (This)->lpVtbl->AddControlItem(This,dwIDCtl,dwIDItem,pszLabel)
22778 #define IFileDialogCustomize_RemoveControlItem(This,dwIDCtl,dwIDItem) (This)->lpVtbl->RemoveControlItem(This,dwIDCtl,dwIDItem)
22779 #define IFileDialogCustomize_RemoveAllControlItems(This,dwIDCtl) (This)->lpVtbl->RemoveAllControlItems(This,dwIDCtl)
22780 #define IFileDialogCustomize_GetControlItemState(This,dwIDCtl,dwIDItem,pdwState) (This)->lpVtbl->GetControlItemState(This,dwIDCtl,dwIDItem,pdwState)
22781 #define IFileDialogCustomize_SetControlItemState(This,dwIDCtl,dwIDItem,dwState) (This)->lpVtbl->SetControlItemState(This,dwIDCtl,dwIDItem,dwState)
22782 #define IFileDialogCustomize_GetSelectedControlItem(This,dwIDCtl,pdwIDItem) (This)->lpVtbl->GetSelectedControlItem(This,dwIDCtl,pdwIDItem)
22783 #define IFileDialogCustomize_SetSelectedControlItem(This,dwIDCtl,dwIDItem) (This)->lpVtbl->SetSelectedControlItem(This,dwIDCtl,dwIDItem)
22784 #define IFileDialogCustomize_StartVisualGroup(This,dwIDCtl,pszLabel) (This)->lpVtbl->StartVisualGroup(This,dwIDCtl,pszLabel)
22785 #define IFileDialogCustomize_EndVisualGroup(This) (This)->lpVtbl->EndVisualGroup(This)
22786 #define IFileDialogCustomize_MakeProminent(This,dwIDCtl) (This)->lpVtbl->MakeProminent(This,dwIDCtl)
22787 #define IFileDialogCustomize_SetControlItemText(This,dwIDCtl,dwIDItem,pszLabel) (This)->lpVtbl->SetControlItemText(This,dwIDCtl,dwIDItem,pszLabel)
22788 #else
22789 /*** IUnknown methods ***/
22790 static FORCEINLINE HRESULT IFileDialogCustomize_QueryInterface(IFileDialogCustomize* This,REFIID riid,void **ppvObject) {
22791     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22792 }
22793 static FORCEINLINE ULONG IFileDialogCustomize_AddRef(IFileDialogCustomize* This) {
22794     return This->lpVtbl->AddRef(This);
22795 }
22796 static FORCEINLINE ULONG IFileDialogCustomize_Release(IFileDialogCustomize* This) {
22797     return This->lpVtbl->Release(This);
22798 }
22799 /*** IFileDialogCustomize methods ***/
22800 static FORCEINLINE HRESULT IFileDialogCustomize_EnableOpenDropDown(IFileDialogCustomize* This,DWORD dwIDCtl) {
22801     return This->lpVtbl->EnableOpenDropDown(This,dwIDCtl);
22802 }
22803 static FORCEINLINE HRESULT IFileDialogCustomize_AddMenu(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszLabel) {
22804     return This->lpVtbl->AddMenu(This,dwIDCtl,pszLabel);
22805 }
22806 static FORCEINLINE HRESULT IFileDialogCustomize_AddPushButton(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszLabel) {
22807     return This->lpVtbl->AddPushButton(This,dwIDCtl,pszLabel);
22808 }
22809 static FORCEINLINE HRESULT IFileDialogCustomize_AddComboBox(IFileDialogCustomize* This,DWORD dwIDCtl) {
22810     return This->lpVtbl->AddComboBox(This,dwIDCtl);
22811 }
22812 static FORCEINLINE HRESULT IFileDialogCustomize_AddRadioButtonList(IFileDialogCustomize* This,DWORD dwIDCtl) {
22813     return This->lpVtbl->AddRadioButtonList(This,dwIDCtl);
22814 }
22815 static FORCEINLINE HRESULT IFileDialogCustomize_AddCheckButton(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszLabel,WINBOOL bChecked) {
22816     return This->lpVtbl->AddCheckButton(This,dwIDCtl,pszLabel,bChecked);
22817 }
22818 static FORCEINLINE HRESULT IFileDialogCustomize_AddEditBox(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszText) {
22819     return This->lpVtbl->AddEditBox(This,dwIDCtl,pszText);
22820 }
22821 static FORCEINLINE HRESULT IFileDialogCustomize_AddSeparator(IFileDialogCustomize* This,DWORD dwIDCtl) {
22822     return This->lpVtbl->AddSeparator(This,dwIDCtl);
22823 }
22824 static FORCEINLINE HRESULT IFileDialogCustomize_AddText(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszText) {
22825     return This->lpVtbl->AddText(This,dwIDCtl,pszText);
22826 }
22827 static FORCEINLINE HRESULT IFileDialogCustomize_SetControlLabel(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszLabel) {
22828     return This->lpVtbl->SetControlLabel(This,dwIDCtl,pszLabel);
22829 }
22830 static FORCEINLINE HRESULT IFileDialogCustomize_GetControlState(IFileDialogCustomize* This,DWORD dwIDCtl,CDCONTROLSTATEF *pdwState) {
22831     return This->lpVtbl->GetControlState(This,dwIDCtl,pdwState);
22832 }
22833 static FORCEINLINE HRESULT IFileDialogCustomize_SetControlState(IFileDialogCustomize* This,DWORD dwIDCtl,CDCONTROLSTATEF dwState) {
22834     return This->lpVtbl->SetControlState(This,dwIDCtl,dwState);
22835 }
22836 static FORCEINLINE HRESULT IFileDialogCustomize_GetEditBoxText(IFileDialogCustomize* This,DWORD dwIDCtl,WCHAR **ppszText) {
22837     return This->lpVtbl->GetEditBoxText(This,dwIDCtl,ppszText);
22838 }
22839 static FORCEINLINE HRESULT IFileDialogCustomize_SetEditBoxText(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszText) {
22840     return This->lpVtbl->SetEditBoxText(This,dwIDCtl,pszText);
22841 }
22842 static FORCEINLINE HRESULT IFileDialogCustomize_GetCheckButtonState(IFileDialogCustomize* This,DWORD dwIDCtl,WINBOOL *pbChecked) {
22843     return This->lpVtbl->GetCheckButtonState(This,dwIDCtl,pbChecked);
22844 }
22845 static FORCEINLINE HRESULT IFileDialogCustomize_SetCheckButtonState(IFileDialogCustomize* This,DWORD dwIDCtl,WINBOOL bChecked) {
22846     return This->lpVtbl->SetCheckButtonState(This,dwIDCtl,bChecked);
22847 }
22848 static FORCEINLINE HRESULT IFileDialogCustomize_AddControlItem(IFileDialogCustomize* This,DWORD dwIDCtl,DWORD dwIDItem,LPCWSTR pszLabel) {
22849     return This->lpVtbl->AddControlItem(This,dwIDCtl,dwIDItem,pszLabel);
22850 }
22851 static FORCEINLINE HRESULT IFileDialogCustomize_RemoveControlItem(IFileDialogCustomize* This,DWORD dwIDCtl,DWORD dwIDItem) {
22852     return This->lpVtbl->RemoveControlItem(This,dwIDCtl,dwIDItem);
22853 }
22854 static FORCEINLINE HRESULT IFileDialogCustomize_RemoveAllControlItems(IFileDialogCustomize* This,DWORD dwIDCtl) {
22855     return This->lpVtbl->RemoveAllControlItems(This,dwIDCtl);
22856 }
22857 static FORCEINLINE HRESULT IFileDialogCustomize_GetControlItemState(IFileDialogCustomize* This,DWORD dwIDCtl,DWORD dwIDItem,CDCONTROLSTATEF *pdwState) {
22858     return This->lpVtbl->GetControlItemState(This,dwIDCtl,dwIDItem,pdwState);
22859 }
22860 static FORCEINLINE HRESULT IFileDialogCustomize_SetControlItemState(IFileDialogCustomize* This,DWORD dwIDCtl,DWORD dwIDItem,CDCONTROLSTATEF dwState) {
22861     return This->lpVtbl->SetControlItemState(This,dwIDCtl,dwIDItem,dwState);
22862 }
22863 static FORCEINLINE HRESULT IFileDialogCustomize_GetSelectedControlItem(IFileDialogCustomize* This,DWORD dwIDCtl,DWORD *pdwIDItem) {
22864     return This->lpVtbl->GetSelectedControlItem(This,dwIDCtl,pdwIDItem);
22865 }
22866 static FORCEINLINE HRESULT IFileDialogCustomize_SetSelectedControlItem(IFileDialogCustomize* This,DWORD dwIDCtl,DWORD dwIDItem) {
22867     return This->lpVtbl->SetSelectedControlItem(This,dwIDCtl,dwIDItem);
22868 }
22869 static FORCEINLINE HRESULT IFileDialogCustomize_StartVisualGroup(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszLabel) {
22870     return This->lpVtbl->StartVisualGroup(This,dwIDCtl,pszLabel);
22871 }
22872 static FORCEINLINE HRESULT IFileDialogCustomize_EndVisualGroup(IFileDialogCustomize* This) {
22873     return This->lpVtbl->EndVisualGroup(This);
22874 }
22875 static FORCEINLINE HRESULT IFileDialogCustomize_MakeProminent(IFileDialogCustomize* This,DWORD dwIDCtl) {
22876     return This->lpVtbl->MakeProminent(This,dwIDCtl);
22877 }
22878 static FORCEINLINE HRESULT IFileDialogCustomize_SetControlItemText(IFileDialogCustomize* This,DWORD dwIDCtl,DWORD dwIDItem,LPCWSTR pszLabel) {
22879     return This->lpVtbl->SetControlItemText(This,dwIDCtl,dwIDItem,pszLabel);
22880 }
22881 #endif
22882 #endif
22883 
22884 #endif
22885 
22886 
22887 #endif  /* __IFileDialogCustomize_INTERFACE_DEFINED__ */
22888 
22889 
22890 /*****************************************************************************
22891  * IFileDialogControlEvents interface
22892  */
22893 #ifndef __IFileDialogControlEvents_INTERFACE_DEFINED__
22894 #define __IFileDialogControlEvents_INTERFACE_DEFINED__
22895 
22896 DEFINE_GUID(IID_IFileDialogControlEvents, 0x36116642, 0xd713, 0x4b97, 0x9b,0x83, 0x74,0x84,0xa9,0xd0,0x04,0x33);
22897 #if defined(__cplusplus) && !defined(CINTERFACE)
22898 MIDL_INTERFACE("36116642-d713-4b97-9b83-7484a9d00433")
22899 IFileDialogControlEvents : public IUnknown
22900 {
22901     virtual HRESULT STDMETHODCALLTYPE OnItemSelected(
22902         IFileDialogCustomize *pfdc,
22903         DWORD dwIDCtl,
22904         DWORD dwIDItem) = 0;
22905 
22906     virtual HRESULT STDMETHODCALLTYPE OnButtonClicked(
22907         IFileDialogCustomize *pfdc,
22908         DWORD dwIDCtl) = 0;
22909 
22910     virtual HRESULT STDMETHODCALLTYPE OnCheckButtonToggled(
22911         IFileDialogCustomize *pfdc,
22912         DWORD dwIDCtl,
22913         WINBOOL bChecked) = 0;
22914 
22915     virtual HRESULT STDMETHODCALLTYPE OnControlActivating(
22916         IFileDialogCustomize *pfdc,
22917         DWORD dwIDCtl) = 0;
22918 
22919 };
22920 #ifdef __CRT_UUID_DECL
22921 __CRT_UUID_DECL(IFileDialogControlEvents, 0x36116642, 0xd713, 0x4b97, 0x9b,0x83, 0x74,0x84,0xa9,0xd0,0x04,0x33)
22922 #endif
22923 #else
22924 typedef struct IFileDialogControlEventsVtbl {
22925     BEGIN_INTERFACE
22926 
22927     /*** IUnknown methods ***/
22928     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22929         IFileDialogControlEvents *This,
22930         REFIID riid,
22931         void **ppvObject);
22932 
22933     ULONG (STDMETHODCALLTYPE *AddRef)(
22934         IFileDialogControlEvents *This);
22935 
22936     ULONG (STDMETHODCALLTYPE *Release)(
22937         IFileDialogControlEvents *This);
22938 
22939     /*** IFileDialogControlEvents methods ***/
22940     HRESULT (STDMETHODCALLTYPE *OnItemSelected)(
22941         IFileDialogControlEvents *This,
22942         IFileDialogCustomize *pfdc,
22943         DWORD dwIDCtl,
22944         DWORD dwIDItem);
22945 
22946     HRESULT (STDMETHODCALLTYPE *OnButtonClicked)(
22947         IFileDialogControlEvents *This,
22948         IFileDialogCustomize *pfdc,
22949         DWORD dwIDCtl);
22950 
22951     HRESULT (STDMETHODCALLTYPE *OnCheckButtonToggled)(
22952         IFileDialogControlEvents *This,
22953         IFileDialogCustomize *pfdc,
22954         DWORD dwIDCtl,
22955         WINBOOL bChecked);
22956 
22957     HRESULT (STDMETHODCALLTYPE *OnControlActivating)(
22958         IFileDialogControlEvents *This,
22959         IFileDialogCustomize *pfdc,
22960         DWORD dwIDCtl);
22961 
22962     END_INTERFACE
22963 } IFileDialogControlEventsVtbl;
22964 
22965 interface IFileDialogControlEvents {
22966     CONST_VTBL IFileDialogControlEventsVtbl* lpVtbl;
22967 };
22968 
22969 #ifdef COBJMACROS
22970 #ifndef WIDL_C_INLINE_WRAPPERS
22971 /*** IUnknown methods ***/
22972 #define IFileDialogControlEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22973 #define IFileDialogControlEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
22974 #define IFileDialogControlEvents_Release(This) (This)->lpVtbl->Release(This)
22975 /*** IFileDialogControlEvents methods ***/
22976 #define IFileDialogControlEvents_OnItemSelected(This,pfdc,dwIDCtl,dwIDItem) (This)->lpVtbl->OnItemSelected(This,pfdc,dwIDCtl,dwIDItem)
22977 #define IFileDialogControlEvents_OnButtonClicked(This,pfdc,dwIDCtl) (This)->lpVtbl->OnButtonClicked(This,pfdc,dwIDCtl)
22978 #define IFileDialogControlEvents_OnCheckButtonToggled(This,pfdc,dwIDCtl,bChecked) (This)->lpVtbl->OnCheckButtonToggled(This,pfdc,dwIDCtl,bChecked)
22979 #define IFileDialogControlEvents_OnControlActivating(This,pfdc,dwIDCtl) (This)->lpVtbl->OnControlActivating(This,pfdc,dwIDCtl)
22980 #else
22981 /*** IUnknown methods ***/
22982 static FORCEINLINE HRESULT IFileDialogControlEvents_QueryInterface(IFileDialogControlEvents* This,REFIID riid,void **ppvObject) {
22983     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22984 }
22985 static FORCEINLINE ULONG IFileDialogControlEvents_AddRef(IFileDialogControlEvents* This) {
22986     return This->lpVtbl->AddRef(This);
22987 }
22988 static FORCEINLINE ULONG IFileDialogControlEvents_Release(IFileDialogControlEvents* This) {
22989     return This->lpVtbl->Release(This);
22990 }
22991 /*** IFileDialogControlEvents methods ***/
22992 static FORCEINLINE HRESULT IFileDialogControlEvents_OnItemSelected(IFileDialogControlEvents* This,IFileDialogCustomize *pfdc,DWORD dwIDCtl,DWORD dwIDItem) {
22993     return This->lpVtbl->OnItemSelected(This,pfdc,dwIDCtl,dwIDItem);
22994 }
22995 static FORCEINLINE HRESULT IFileDialogControlEvents_OnButtonClicked(IFileDialogControlEvents* This,IFileDialogCustomize *pfdc,DWORD dwIDCtl) {
22996     return This->lpVtbl->OnButtonClicked(This,pfdc,dwIDCtl);
22997 }
22998 static FORCEINLINE HRESULT IFileDialogControlEvents_OnCheckButtonToggled(IFileDialogControlEvents* This,IFileDialogCustomize *pfdc,DWORD dwIDCtl,WINBOOL bChecked) {
22999     return This->lpVtbl->OnCheckButtonToggled(This,pfdc,dwIDCtl,bChecked);
23000 }
23001 static FORCEINLINE HRESULT IFileDialogControlEvents_OnControlActivating(IFileDialogControlEvents* This,IFileDialogCustomize *pfdc,DWORD dwIDCtl) {
23002     return This->lpVtbl->OnControlActivating(This,pfdc,dwIDCtl);
23003 }
23004 #endif
23005 #endif
23006 
23007 #endif
23008 
23009 
23010 #endif  /* __IFileDialogControlEvents_INTERFACE_DEFINED__ */
23011 
23012 
23013 /*****************************************************************************
23014  * IFileDialog2 interface
23015  */
23016 #ifndef __IFileDialog2_INTERFACE_DEFINED__
23017 #define __IFileDialog2_INTERFACE_DEFINED__
23018 
23019 DEFINE_GUID(IID_IFileDialog2, 0x61744fc7, 0x85b5, 0x4791, 0xa9,0xb0, 0x27,0x22,0x76,0x30,0x9b,0x13);
23020 #if defined(__cplusplus) && !defined(CINTERFACE)
23021 MIDL_INTERFACE("61744fc7-85b5-4791-a9b0-272276309b13")
23022 IFileDialog2 : public IFileDialog
23023 {
23024     virtual HRESULT STDMETHODCALLTYPE SetCancelButtonLabel(
23025         LPCWSTR pszLabel) = 0;
23026 
23027     virtual HRESULT STDMETHODCALLTYPE SetNavigationRoot(
23028         IShellItem *psi) = 0;
23029 
23030 };
23031 #ifdef __CRT_UUID_DECL
23032 __CRT_UUID_DECL(IFileDialog2, 0x61744fc7, 0x85b5, 0x4791, 0xa9,0xb0, 0x27,0x22,0x76,0x30,0x9b,0x13)
23033 #endif
23034 #else
23035 typedef struct IFileDialog2Vtbl {
23036     BEGIN_INTERFACE
23037 
23038     /*** IUnknown methods ***/
23039     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
23040         IFileDialog2 *This,
23041         REFIID riid,
23042         void **ppvObject);
23043 
23044     ULONG (STDMETHODCALLTYPE *AddRef)(
23045         IFileDialog2 *This);
23046 
23047     ULONG (STDMETHODCALLTYPE *Release)(
23048         IFileDialog2 *This);
23049 
23050     /*** IModalWindow methods ***/
23051     HRESULT (STDMETHODCALLTYPE *Show)(
23052         IFileDialog2 *This,
23053         HWND hwndOwner);
23054 
23055     /*** IFileDialog methods ***/
23056     HRESULT (STDMETHODCALLTYPE *SetFileTypes)(
23057         IFileDialog2 *This,
23058         UINT cFileTypes,
23059         const COMDLG_FILTERSPEC *rgFilterSpec);
23060 
23061     HRESULT (STDMETHODCALLTYPE *SetFileTypeIndex)(
23062         IFileDialog2 *This,
23063         UINT iFileType);
23064 
23065     HRESULT (STDMETHODCALLTYPE *GetFileTypeIndex)(
23066         IFileDialog2 *This,
23067         UINT *piFileType);
23068 
23069     HRESULT (STDMETHODCALLTYPE *Advise)(
23070         IFileDialog2 *This,
23071         IFileDialogEvents *pfde,
23072         DWORD *pdwCookie);
23073 
23074     HRESULT (STDMETHODCALLTYPE *Unadvise)(
23075         IFileDialog2 *This,
23076         DWORD dwCookie);
23077 
23078     HRESULT (STDMETHODCALLTYPE *SetOptions)(
23079         IFileDialog2 *This,
23080         FILEOPENDIALOGOPTIONS fos);
23081 
23082     HRESULT (STDMETHODCALLTYPE *GetOptions)(
23083         IFileDialog2 *This,
23084         FILEOPENDIALOGOPTIONS *pfos);
23085 
23086     HRESULT (STDMETHODCALLTYPE *SetDefaultFolder)(
23087         IFileDialog2 *This,
23088         IShellItem *psi);
23089 
23090     HRESULT (STDMETHODCALLTYPE *SetFolder)(
23091         IFileDialog2 *This,
23092         IShellItem *psi);
23093 
23094     HRESULT (STDMETHODCALLTYPE *GetFolder)(
23095         IFileDialog2 *This,
23096         IShellItem **ppsi);
23097 
23098     HRESULT (STDMETHODCALLTYPE *GetCurrentSelection)(
23099         IFileDialog2 *This,
23100         IShellItem **ppsi);
23101 
23102     HRESULT (STDMETHODCALLTYPE *SetFileName)(
23103         IFileDialog2 *This,
23104         LPCWSTR pszName);
23105 
23106     HRESULT (STDMETHODCALLTYPE *GetFileName)(
23107         IFileDialog2 *This,
23108         LPWSTR *pszName);
23109 
23110     HRESULT (STDMETHODCALLTYPE *SetTitle)(
23111         IFileDialog2 *This,
23112         LPCWSTR pszTitle);
23113 
23114     HRESULT (STDMETHODCALLTYPE *SetOkButtonLabel)(
23115         IFileDialog2 *This,
23116         LPCWSTR pszText);
23117 
23118     HRESULT (STDMETHODCALLTYPE *SetFileNameLabel)(
23119         IFileDialog2 *This,
23120         LPCWSTR pszLabel);
23121 
23122     HRESULT (STDMETHODCALLTYPE *GetResult)(
23123         IFileDialog2 *This,
23124         IShellItem **ppsi);
23125 
23126     HRESULT (STDMETHODCALLTYPE *AddPlace)(
23127         IFileDialog2 *This,
23128         IShellItem *psi,
23129         FDAP fdap);
23130 
23131     HRESULT (STDMETHODCALLTYPE *SetDefaultExtension)(
23132         IFileDialog2 *This,
23133         LPCWSTR pszDefaultExtension);
23134 
23135     HRESULT (STDMETHODCALLTYPE *Close)(
23136         IFileDialog2 *This,
23137         HRESULT hr);
23138 
23139     HRESULT (STDMETHODCALLTYPE *SetClientGuid)(
23140         IFileDialog2 *This,
23141         REFGUID guid);
23142 
23143     HRESULT (STDMETHODCALLTYPE *ClearClientData)(
23144         IFileDialog2 *This);
23145 
23146     HRESULT (STDMETHODCALLTYPE *SetFilter)(
23147         IFileDialog2 *This,
23148         IShellItemFilter *pFilter);
23149 
23150     /*** IFileDialog2 methods ***/
23151     HRESULT (STDMETHODCALLTYPE *SetCancelButtonLabel)(
23152         IFileDialog2 *This,
23153         LPCWSTR pszLabel);
23154 
23155     HRESULT (STDMETHODCALLTYPE *SetNavigationRoot)(
23156         IFileDialog2 *This,
23157         IShellItem *psi);
23158 
23159     END_INTERFACE
23160 } IFileDialog2Vtbl;
23161 
23162 interface IFileDialog2 {
23163     CONST_VTBL IFileDialog2Vtbl* lpVtbl;
23164 };
23165 
23166 #ifdef COBJMACROS
23167 #ifndef WIDL_C_INLINE_WRAPPERS
23168 /*** IUnknown methods ***/
23169 #define IFileDialog2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
23170 #define IFileDialog2_AddRef(This) (This)->lpVtbl->AddRef(This)
23171 #define IFileDialog2_Release(This) (This)->lpVtbl->Release(This)
23172 /*** IModalWindow methods ***/
23173 #define IFileDialog2_Show(This,hwndOwner) (This)->lpVtbl->Show(This,hwndOwner)
23174 /*** IFileDialog methods ***/
23175 #define IFileDialog2_SetFileTypes(This,cFileTypes,rgFilterSpec) (This)->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec)
23176 #define IFileDialog2_SetFileTypeIndex(This,iFileType) (This)->lpVtbl->SetFileTypeIndex(This,iFileType)
23177 #define IFileDialog2_GetFileTypeIndex(This,piFileType) (This)->lpVtbl->GetFileTypeIndex(This,piFileType)
23178 #define IFileDialog2_Advise(This,pfde,pdwCookie) (This)->lpVtbl->Advise(This,pfde,pdwCookie)
23179 #define IFileDialog2_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
23180 #define IFileDialog2_SetOptions(This,fos) (This)->lpVtbl->SetOptions(This,fos)
23181 #define IFileDialog2_GetOptions(This,pfos) (This)->lpVtbl->GetOptions(This,pfos)
23182 #define IFileDialog2_SetDefaultFolder(This,psi) (This)->lpVtbl->SetDefaultFolder(This,psi)
23183 #define IFileDialog2_SetFolder(This,psi) (This)->lpVtbl->SetFolder(This,psi)
23184 #define IFileDialog2_GetFolder(This,ppsi) (This)->lpVtbl->GetFolder(This,ppsi)
23185 #define IFileDialog2_GetCurrentSelection(This,ppsi) (This)->lpVtbl->GetCurrentSelection(This,ppsi)
23186 #define IFileDialog2_SetFileName(This,pszName) (This)->lpVtbl->SetFileName(This,pszName)
23187 #define IFileDialog2_GetFileName(This,pszName) (This)->lpVtbl->GetFileName(This,pszName)
23188 #define IFileDialog2_SetTitle(This,pszTitle) (This)->lpVtbl->SetTitle(This,pszTitle)
23189 #define IFileDialog2_SetOkButtonLabel(This,pszText) (This)->lpVtbl->SetOkButtonLabel(This,pszText)
23190 #define IFileDialog2_SetFileNameLabel(This,pszLabel) (This)->lpVtbl->SetFileNameLabel(This,pszLabel)
23191 #define IFileDialog2_GetResult(This,ppsi) (This)->lpVtbl->GetResult(This,ppsi)
23192 #define IFileDialog2_AddPlace(This,psi,fdap) (This)->lpVtbl->AddPlace(This,psi,fdap)
23193 #define IFileDialog2_SetDefaultExtension(This,pszDefaultExtension) (This)->lpVtbl->SetDefaultExtension(This,pszDefaultExtension)
23194 #define IFileDialog2_Close(This,hr) (This)->lpVtbl->Close(This,hr)
23195 #define IFileDialog2_SetClientGuid(This,guid) (This)->lpVtbl->SetClientGuid(This,guid)
23196 #define IFileDialog2_ClearClientData(This) (This)->lpVtbl->ClearClientData(This)
23197 #define IFileDialog2_SetFilter(This,pFilter) (This)->lpVtbl->SetFilter(This,pFilter)
23198 /*** IFileDialog2 methods ***/
23199 #define IFileDialog2_SetCancelButtonLabel(This,pszLabel) (This)->lpVtbl->SetCancelButtonLabel(This,pszLabel)
23200 #define IFileDialog2_SetNavigationRoot(This,psi) (This)->lpVtbl->SetNavigationRoot(This,psi)
23201 #else
23202 /*** IUnknown methods ***/
23203 static FORCEINLINE HRESULT IFileDialog2_QueryInterface(IFileDialog2* This,REFIID riid,void **ppvObject) {
23204     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
23205 }
23206 static FORCEINLINE ULONG IFileDialog2_AddRef(IFileDialog2* This) {
23207     return This->lpVtbl->AddRef(This);
23208 }
23209 static FORCEINLINE ULONG IFileDialog2_Release(IFileDialog2* This) {
23210     return This->lpVtbl->Release(This);
23211 }
23212 /*** IModalWindow methods ***/
23213 static FORCEINLINE HRESULT IFileDialog2_Show(IFileDialog2* This,HWND hwndOwner) {
23214     return This->lpVtbl->Show(This,hwndOwner);
23215 }
23216 /*** IFileDialog methods ***/
23217 static FORCEINLINE HRESULT IFileDialog2_SetFileTypes(IFileDialog2* This,UINT cFileTypes,const COMDLG_FILTERSPEC *rgFilterSpec) {
23218     return This->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec);
23219 }
23220 static FORCEINLINE HRESULT IFileDialog2_SetFileTypeIndex(IFileDialog2* This,UINT iFileType) {
23221     return This->lpVtbl->SetFileTypeIndex(This,iFileType);
23222 }
23223 static FORCEINLINE HRESULT IFileDialog2_GetFileTypeIndex(IFileDialog2* This,UINT *piFileType) {
23224     return This->lpVtbl->GetFileTypeIndex(This,piFileType);
23225 }
23226 static FORCEINLINE HRESULT IFileDialog2_Advise(IFileDialog2* This,IFileDialogEvents *pfde,DWORD *pdwCookie) {
23227     return This->lpVtbl->Advise(This,pfde,pdwCookie);
23228 }
23229 static FORCEINLINE HRESULT IFileDialog2_Unadvise(IFileDialog2* This,DWORD dwCookie) {
23230     return This->lpVtbl->Unadvise(This,dwCookie);
23231 }
23232 static FORCEINLINE HRESULT IFileDialog2_SetOptions(IFileDialog2* This,FILEOPENDIALOGOPTIONS fos) {
23233     return This->lpVtbl->SetOptions(This,fos);
23234 }
23235 static FORCEINLINE HRESULT IFileDialog2_GetOptions(IFileDialog2* This,FILEOPENDIALOGOPTIONS *pfos) {
23236     return This->lpVtbl->GetOptions(This,pfos);
23237 }
23238 static FORCEINLINE HRESULT IFileDialog2_SetDefaultFolder(IFileDialog2* This,IShellItem *psi) {
23239     return This->lpVtbl->SetDefaultFolder(This,psi);
23240 }
23241 static FORCEINLINE HRESULT IFileDialog2_SetFolder(IFileDialog2* This,IShellItem *psi) {
23242     return This->lpVtbl->SetFolder(This,psi);
23243 }
23244 static FORCEINLINE HRESULT IFileDialog2_GetFolder(IFileDialog2* This,IShellItem **ppsi) {
23245     return This->lpVtbl->GetFolder(This,ppsi);
23246 }
23247 static FORCEINLINE HRESULT IFileDialog2_GetCurrentSelection(IFileDialog2* This,IShellItem **ppsi) {
23248     return This->lpVtbl->GetCurrentSelection(This,ppsi);
23249 }
23250 static FORCEINLINE HRESULT IFileDialog2_SetFileName(IFileDialog2* This,LPCWSTR pszName) {
23251     return This->lpVtbl->SetFileName(This,pszName);
23252 }
23253 static FORCEINLINE HRESULT IFileDialog2_GetFileName(IFileDialog2* This,LPWSTR *pszName) {
23254     return This->lpVtbl->GetFileName(This,pszName);
23255 }
23256 static FORCEINLINE HRESULT IFileDialog2_SetTitle(IFileDialog2* This,LPCWSTR pszTitle) {
23257     return This->lpVtbl->SetTitle(This,pszTitle);
23258 }
23259 static FORCEINLINE HRESULT IFileDialog2_SetOkButtonLabel(IFileDialog2* This,LPCWSTR pszText) {
23260     return This->lpVtbl->SetOkButtonLabel(This,pszText);
23261 }
23262 static FORCEINLINE HRESULT IFileDialog2_SetFileNameLabel(IFileDialog2* This,LPCWSTR pszLabel) {
23263     return This->lpVtbl->SetFileNameLabel(This,pszLabel);
23264 }
23265 static FORCEINLINE HRESULT IFileDialog2_GetResult(IFileDialog2* This,IShellItem **ppsi) {
23266     return This->lpVtbl->GetResult(This,ppsi);
23267 }
23268 static FORCEINLINE HRESULT IFileDialog2_AddPlace(IFileDialog2* This,IShellItem *psi,FDAP fdap) {
23269     return This->lpVtbl->AddPlace(This,psi,fdap);
23270 }
23271 static FORCEINLINE HRESULT IFileDialog2_SetDefaultExtension(IFileDialog2* This,LPCWSTR pszDefaultExtension) {
23272     return This->lpVtbl->SetDefaultExtension(This,pszDefaultExtension);
23273 }
23274 static FORCEINLINE HRESULT IFileDialog2_Close(IFileDialog2* This,HRESULT hr) {
23275     return This->lpVtbl->Close(This,hr);
23276 }
23277 static FORCEINLINE HRESULT IFileDialog2_SetClientGuid(IFileDialog2* This,REFGUID guid) {
23278     return This->lpVtbl->SetClientGuid(This,guid);
23279 }
23280 static FORCEINLINE HRESULT IFileDialog2_ClearClientData(IFileDialog2* This) {
23281     return This->lpVtbl->ClearClientData(This);
23282 }
23283 static FORCEINLINE HRESULT IFileDialog2_SetFilter(IFileDialog2* This,IShellItemFilter *pFilter) {
23284     return This->lpVtbl->SetFilter(This,pFilter);
23285 }
23286 /*** IFileDialog2 methods ***/
23287 static FORCEINLINE HRESULT IFileDialog2_SetCancelButtonLabel(IFileDialog2* This,LPCWSTR pszLabel) {
23288     return This->lpVtbl->SetCancelButtonLabel(This,pszLabel);
23289 }
23290 static FORCEINLINE HRESULT IFileDialog2_SetNavigationRoot(IFileDialog2* This,IShellItem *psi) {
23291     return This->lpVtbl->SetNavigationRoot(This,psi);
23292 }
23293 #endif
23294 #endif
23295 
23296 #endif
23297 
23298 
23299 #endif  /* __IFileDialog2_INTERFACE_DEFINED__ */
23300 
23301 
23302 typedef enum ASSOCIATIONLEVEL {
23303     AL_MACHINE = 0,
23304     AL_EFFECTIVE = 1,
23305     AL_USER = 2
23306 } ASSOCIATIONLEVEL;
23307 
23308 typedef enum ASSOCIATIONTYPE {
23309     AT_FILEEXTENSION = 0,
23310     AT_URLPROTOCOL = 1,
23311     AT_STARTMENUCLIENT = 2,
23312     AT_MIMETYPE = 3
23313 } ASSOCIATIONTYPE;
23314 
23315 /*****************************************************************************
23316  * IApplicationAssociationRegistration interface
23317  */
23318 #ifndef __IApplicationAssociationRegistration_INTERFACE_DEFINED__
23319 #define __IApplicationAssociationRegistration_INTERFACE_DEFINED__
23320 
23321 DEFINE_GUID(IID_IApplicationAssociationRegistration, 0x4e530b0a, 0xe611, 0x4c77, 0xa3,0xac, 0x90,0x31,0xd0,0x22,0x28,0x1b);
23322 #if defined(__cplusplus) && !defined(CINTERFACE)
23323 MIDL_INTERFACE("4e530b0a-e611-4c77-a3ac-9031d022281b")
23324 IApplicationAssociationRegistration : public IUnknown
23325 {
23326     virtual HRESULT STDMETHODCALLTYPE QueryCurrentDefault(
23327         LPCWSTR pszQuery,
23328         ASSOCIATIONTYPE atQueryType,
23329         ASSOCIATIONLEVEL alQueryLevel,
23330         LPWSTR *ppszAssociation) = 0;
23331 
23332     virtual HRESULT STDMETHODCALLTYPE QueryAppIsDefault(
23333         LPCWSTR pszQuery,
23334         ASSOCIATIONTYPE atQueryType,
23335         ASSOCIATIONLEVEL alQueryLevel,
23336         LPCWSTR pszAppRegistryName,
23337         WINBOOL *pfDefault) = 0;
23338 
23339     virtual HRESULT STDMETHODCALLTYPE QueryAppIsDefaultAll(
23340         ASSOCIATIONLEVEL alQueryLevel,
23341         LPCWSTR pszAppRegistryName,
23342         WINBOOL *pfDefault) = 0;
23343 
23344     virtual HRESULT STDMETHODCALLTYPE SetAppAsDefault(
23345         LPCWSTR pszAppRegistryName,
23346         LPCWSTR pszSet,
23347         ASSOCIATIONTYPE atSetType) = 0;
23348 
23349     virtual HRESULT STDMETHODCALLTYPE SetAppAsDefaultAll(
23350         LPCWSTR pszAppRegistryName) = 0;
23351 
23352     virtual HRESULT STDMETHODCALLTYPE ClearUserAssociations(
23353         ) = 0;
23354 
23355 };
23356 #ifdef __CRT_UUID_DECL
23357 __CRT_UUID_DECL(IApplicationAssociationRegistration, 0x4e530b0a, 0xe611, 0x4c77, 0xa3,0xac, 0x90,0x31,0xd0,0x22,0x28,0x1b)
23358 #endif
23359 #else
23360 typedef struct IApplicationAssociationRegistrationVtbl {
23361     BEGIN_INTERFACE
23362 
23363     /*** IUnknown methods ***/
23364     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
23365         IApplicationAssociationRegistration *This,
23366         REFIID riid,
23367         void **ppvObject);
23368 
23369     ULONG (STDMETHODCALLTYPE *AddRef)(
23370         IApplicationAssociationRegistration *This);
23371 
23372     ULONG (STDMETHODCALLTYPE *Release)(
23373         IApplicationAssociationRegistration *This);
23374 
23375     /*** IApplicationAssociationRegistration methods ***/
23376     HRESULT (STDMETHODCALLTYPE *QueryCurrentDefault)(
23377         IApplicationAssociationRegistration *This,
23378         LPCWSTR pszQuery,
23379         ASSOCIATIONTYPE atQueryType,
23380         ASSOCIATIONLEVEL alQueryLevel,
23381         LPWSTR *ppszAssociation);
23382 
23383     HRESULT (STDMETHODCALLTYPE *QueryAppIsDefault)(
23384         IApplicationAssociationRegistration *This,
23385         LPCWSTR pszQuery,
23386         ASSOCIATIONTYPE atQueryType,
23387         ASSOCIATIONLEVEL alQueryLevel,
23388         LPCWSTR pszAppRegistryName,
23389         WINBOOL *pfDefault);
23390 
23391     HRESULT (STDMETHODCALLTYPE *QueryAppIsDefaultAll)(
23392         IApplicationAssociationRegistration *This,
23393         ASSOCIATIONLEVEL alQueryLevel,
23394         LPCWSTR pszAppRegistryName,
23395         WINBOOL *pfDefault);
23396 
23397     HRESULT (STDMETHODCALLTYPE *SetAppAsDefault)(
23398         IApplicationAssociationRegistration *This,
23399         LPCWSTR pszAppRegistryName,
23400         LPCWSTR pszSet,
23401         ASSOCIATIONTYPE atSetType);
23402 
23403     HRESULT (STDMETHODCALLTYPE *SetAppAsDefaultAll)(
23404         IApplicationAssociationRegistration *This,
23405         LPCWSTR pszAppRegistryName);
23406 
23407     HRESULT (STDMETHODCALLTYPE *ClearUserAssociations)(
23408         IApplicationAssociationRegistration *This);
23409 
23410     END_INTERFACE
23411 } IApplicationAssociationRegistrationVtbl;
23412 
23413 interface IApplicationAssociationRegistration {
23414     CONST_VTBL IApplicationAssociationRegistrationVtbl* lpVtbl;
23415 };
23416 
23417 #ifdef COBJMACROS
23418 #ifndef WIDL_C_INLINE_WRAPPERS
23419 /*** IUnknown methods ***/
23420 #define IApplicationAssociationRegistration_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
23421 #define IApplicationAssociationRegistration_AddRef(This) (This)->lpVtbl->AddRef(This)
23422 #define IApplicationAssociationRegistration_Release(This) (This)->lpVtbl->Release(This)
23423 /*** IApplicationAssociationRegistration methods ***/
23424 #define IApplicationAssociationRegistration_QueryCurrentDefault(This,pszQuery,atQueryType,alQueryLevel,ppszAssociation) (This)->lpVtbl->QueryCurrentDefault(This,pszQuery,atQueryType,alQueryLevel,ppszAssociation)
23425 #define IApplicationAssociationRegistration_QueryAppIsDefault(This,pszQuery,atQueryType,alQueryLevel,pszAppRegistryName,pfDefault) (This)->lpVtbl->QueryAppIsDefault(This,pszQuery,atQueryType,alQueryLevel,pszAppRegistryName,pfDefault)
23426 #define IApplicationAssociationRegistration_QueryAppIsDefaultAll(This,alQueryLevel,pszAppRegistryName,pfDefault) (This)->lpVtbl->QueryAppIsDefaultAll(This,alQueryLevel,pszAppRegistryName,pfDefault)
23427 #define IApplicationAssociationRegistration_SetAppAsDefault(This,pszAppRegistryName,pszSet,atSetType) (This)->lpVtbl->SetAppAsDefault(This,pszAppRegistryName,pszSet,atSetType)
23428 #define IApplicationAssociationRegistration_SetAppAsDefaultAll(This,pszAppRegistryName) (This)->lpVtbl->SetAppAsDefaultAll(This,pszAppRegistryName)
23429 #define IApplicationAssociationRegistration_ClearUserAssociations(This) (This)->lpVtbl->ClearUserAssociations(This)
23430 #else
23431 /*** IUnknown methods ***/
23432 static FORCEINLINE HRESULT IApplicationAssociationRegistration_QueryInterface(IApplicationAssociationRegistration* This,REFIID riid,void **ppvObject) {
23433     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
23434 }
23435 static FORCEINLINE ULONG IApplicationAssociationRegistration_AddRef(IApplicationAssociationRegistration* This) {
23436     return This->lpVtbl->AddRef(This);
23437 }
23438 static FORCEINLINE ULONG IApplicationAssociationRegistration_Release(IApplicationAssociationRegistration* This) {
23439     return This->lpVtbl->Release(This);
23440 }
23441 /*** IApplicationAssociationRegistration methods ***/
23442 static FORCEINLINE HRESULT IApplicationAssociationRegistration_QueryCurrentDefault(IApplicationAssociationRegistration* This,LPCWSTR pszQuery,ASSOCIATIONTYPE atQueryType,ASSOCIATIONLEVEL alQueryLevel,LPWSTR *ppszAssociation) {
23443     return This->lpVtbl->QueryCurrentDefault(This,pszQuery,atQueryType,alQueryLevel,ppszAssociation);
23444 }
23445 static FORCEINLINE HRESULT IApplicationAssociationRegistration_QueryAppIsDefault(IApplicationAssociationRegistration* This,LPCWSTR pszQuery,ASSOCIATIONTYPE atQueryType,ASSOCIATIONLEVEL alQueryLevel,LPCWSTR pszAppRegistryName,WINBOOL *pfDefault) {
23446     return This->lpVtbl->QueryAppIsDefault(This,pszQuery,atQueryType,alQueryLevel,pszAppRegistryName,pfDefault);
23447 }
23448 static FORCEINLINE HRESULT IApplicationAssociationRegistration_QueryAppIsDefaultAll(IApplicationAssociationRegistration* This,ASSOCIATIONLEVEL alQueryLevel,LPCWSTR pszAppRegistryName,WINBOOL *pfDefault) {
23449     return This->lpVtbl->QueryAppIsDefaultAll(This,alQueryLevel,pszAppRegistryName,pfDefault);
23450 }
23451 static FORCEINLINE HRESULT IApplicationAssociationRegistration_SetAppAsDefault(IApplicationAssociationRegistration* This,LPCWSTR pszAppRegistryName,LPCWSTR pszSet,ASSOCIATIONTYPE atSetType) {
23452     return This->lpVtbl->SetAppAsDefault(This,pszAppRegistryName,pszSet,atSetType);
23453 }
23454 static FORCEINLINE HRESULT IApplicationAssociationRegistration_SetAppAsDefaultAll(IApplicationAssociationRegistration* This,LPCWSTR pszAppRegistryName) {
23455     return This->lpVtbl->SetAppAsDefaultAll(This,pszAppRegistryName);
23456 }
23457 static FORCEINLINE HRESULT IApplicationAssociationRegistration_ClearUserAssociations(IApplicationAssociationRegistration* This) {
23458     return This->lpVtbl->ClearUserAssociations(This);
23459 }
23460 #endif
23461 #endif
23462 
23463 #endif
23464 
23465 
23466 #endif  /* __IApplicationAssociationRegistration_INTERFACE_DEFINED__ */
23467 
23468 
23469 SHSTDAPI SHCreateAssociationRegistration(REFIID riid, void **ppv);
23470 
23471 /*****************************************************************************
23472  * IApplicationAssociationRegistrationUI interface
23473  */
23474 #ifndef __IApplicationAssociationRegistrationUI_INTERFACE_DEFINED__
23475 #define __IApplicationAssociationRegistrationUI_INTERFACE_DEFINED__
23476 
23477 DEFINE_GUID(IID_IApplicationAssociationRegistrationUI, 0x1f76a169, 0xf994, 0x40ac, 0x8f,0xc8, 0x09,0x59,0xe8,0x87,0x47,0x10);
23478 #if defined(__cplusplus) && !defined(CINTERFACE)
23479 MIDL_INTERFACE("1f76a169-f994-40ac-8fc8-0959e8874710")
23480 IApplicationAssociationRegistrationUI : public IUnknown
23481 {
23482     virtual HRESULT STDMETHODCALLTYPE LaunchAdvancedAssociationUI(
23483         LPCWSTR pszAppRegistryName) = 0;
23484 
23485 };
23486 #ifdef __CRT_UUID_DECL
23487 __CRT_UUID_DECL(IApplicationAssociationRegistrationUI, 0x1f76a169, 0xf994, 0x40ac, 0x8f,0xc8, 0x09,0x59,0xe8,0x87,0x47,0x10)
23488 #endif
23489 #else
23490 typedef struct IApplicationAssociationRegistrationUIVtbl {
23491     BEGIN_INTERFACE
23492 
23493     /*** IUnknown methods ***/
23494     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
23495         IApplicationAssociationRegistrationUI *This,
23496         REFIID riid,
23497         void **ppvObject);
23498 
23499     ULONG (STDMETHODCALLTYPE *AddRef)(
23500         IApplicationAssociationRegistrationUI *This);
23501 
23502     ULONG (STDMETHODCALLTYPE *Release)(
23503         IApplicationAssociationRegistrationUI *This);
23504 
23505     /*** IApplicationAssociationRegistrationUI methods ***/
23506     HRESULT (STDMETHODCALLTYPE *LaunchAdvancedAssociationUI)(
23507         IApplicationAssociationRegistrationUI *This,
23508         LPCWSTR pszAppRegistryName);
23509 
23510     END_INTERFACE
23511 } IApplicationAssociationRegistrationUIVtbl;
23512 
23513 interface IApplicationAssociationRegistrationUI {
23514     CONST_VTBL IApplicationAssociationRegistrationUIVtbl* lpVtbl;
23515 };
23516 
23517 #ifdef COBJMACROS
23518 #ifndef WIDL_C_INLINE_WRAPPERS
23519 /*** IUnknown methods ***/
23520 #define IApplicationAssociationRegistrationUI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
23521 #define IApplicationAssociationRegistrationUI_AddRef(This) (This)->lpVtbl->AddRef(This)
23522 #define IApplicationAssociationRegistrationUI_Release(This) (This)->lpVtbl->Release(This)
23523 /*** IApplicationAssociationRegistrationUI methods ***/
23524 #define IApplicationAssociationRegistrationUI_LaunchAdvancedAssociationUI(This,pszAppRegistryName) (This)->lpVtbl->LaunchAdvancedAssociationUI(This,pszAppRegistryName)
23525 #else
23526 /*** IUnknown methods ***/
23527 static FORCEINLINE HRESULT IApplicationAssociationRegistrationUI_QueryInterface(IApplicationAssociationRegistrationUI* This,REFIID riid,void **ppvObject) {
23528     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
23529 }
23530 static FORCEINLINE ULONG IApplicationAssociationRegistrationUI_AddRef(IApplicationAssociationRegistrationUI* This) {
23531     return This->lpVtbl->AddRef(This);
23532 }
23533 static FORCEINLINE ULONG IApplicationAssociationRegistrationUI_Release(IApplicationAssociationRegistrationUI* This) {
23534     return This->lpVtbl->Release(This);
23535 }
23536 /*** IApplicationAssociationRegistrationUI methods ***/
23537 static FORCEINLINE HRESULT IApplicationAssociationRegistrationUI_LaunchAdvancedAssociationUI(IApplicationAssociationRegistrationUI* This,LPCWSTR pszAppRegistryName) {
23538     return This->lpVtbl->LaunchAdvancedAssociationUI(This,pszAppRegistryName);
23539 }
23540 #endif
23541 #endif
23542 
23543 #endif
23544 
23545 
23546 #endif  /* __IApplicationAssociationRegistrationUI_INTERFACE_DEFINED__ */
23547 
23548 #endif
23549 
23550 #include <pshpack1.h>
23551 typedef struct DELEGATEITEMID {
23552     WORD cbSize;
23553     WORD wOuter;
23554     WORD cbInner;
23555     BYTE rgb[1];
23556 } DELEGATEITEMID;
23557 #include <poppack.h>
23558 
23559 typedef const UNALIGNED DELEGATEITEMID *PCDELEGATEITEMID;
23560 typedef UNALIGNED DELEGATEITEMID *PDELEGATEITEMID;
23561 
23562 /*****************************************************************************
23563  * IDelegateFolder interface
23564  */
23565 #ifndef __IDelegateFolder_INTERFACE_DEFINED__
23566 #define __IDelegateFolder_INTERFACE_DEFINED__
23567 
23568 DEFINE_GUID(IID_IDelegateFolder, 0xadd8ba80, 0x002b, 0x11d0, 0x8f,0x0f, 0x00,0xc0,0x4f,0xd7,0xd0,0x62);
23569 #if defined(__cplusplus) && !defined(CINTERFACE)
23570 MIDL_INTERFACE("add8ba80-002b-11d0-8f0f-00c04fd7d062")
23571 IDelegateFolder : public IUnknown
23572 {
23573     virtual HRESULT STDMETHODCALLTYPE SetItemAlloc(
23574         IMalloc *pmalloc) = 0;
23575 
23576 };
23577 #ifdef __CRT_UUID_DECL
23578 __CRT_UUID_DECL(IDelegateFolder, 0xadd8ba80, 0x002b, 0x11d0, 0x8f,0x0f, 0x00,0xc0,0x4f,0xd7,0xd0,0x62)
23579 #endif
23580 #else
23581 typedef struct IDelegateFolderVtbl {
23582     BEGIN_INTERFACE
23583 
23584     /*** IUnknown methods ***/
23585     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
23586         IDelegateFolder *This,
23587         REFIID riid,
23588         void **ppvObject);
23589 
23590     ULONG (STDMETHODCALLTYPE *AddRef)(
23591         IDelegateFolder *This);
23592 
23593     ULONG (STDMETHODCALLTYPE *Release)(
23594         IDelegateFolder *This);
23595 
23596     /*** IDelegateFolder methods ***/
23597     HRESULT (STDMETHODCALLTYPE *SetItemAlloc)(
23598         IDelegateFolder *This,
23599         IMalloc *pmalloc);
23600 
23601     END_INTERFACE
23602 } IDelegateFolderVtbl;
23603 
23604 interface IDelegateFolder {
23605     CONST_VTBL IDelegateFolderVtbl* lpVtbl;
23606 };
23607 
23608 #ifdef COBJMACROS
23609 #ifndef WIDL_C_INLINE_WRAPPERS
23610 /*** IUnknown methods ***/
23611 #define IDelegateFolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
23612 #define IDelegateFolder_AddRef(This) (This)->lpVtbl->AddRef(This)
23613 #define IDelegateFolder_Release(This) (This)->lpVtbl->Release(This)
23614 /*** IDelegateFolder methods ***/
23615 #define IDelegateFolder_SetItemAlloc(This,pmalloc) (This)->lpVtbl->SetItemAlloc(This,pmalloc)
23616 #else
23617 /*** IUnknown methods ***/
23618 static FORCEINLINE HRESULT IDelegateFolder_QueryInterface(IDelegateFolder* This,REFIID riid,void **ppvObject) {
23619     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
23620 }
23621 static FORCEINLINE ULONG IDelegateFolder_AddRef(IDelegateFolder* This) {
23622     return This->lpVtbl->AddRef(This);
23623 }
23624 static FORCEINLINE ULONG IDelegateFolder_Release(IDelegateFolder* This) {
23625     return This->lpVtbl->Release(This);
23626 }
23627 /*** IDelegateFolder methods ***/
23628 static FORCEINLINE HRESULT IDelegateFolder_SetItemAlloc(IDelegateFolder* This,IMalloc *pmalloc) {
23629     return This->lpVtbl->SetItemAlloc(This,pmalloc);
23630 }
23631 #endif
23632 #endif
23633 
23634 #endif
23635 
23636 
23637 #endif  /* __IDelegateFolder_INTERFACE_DEFINED__ */
23638 
23639 
23640 #if _WIN32_IE >= _WIN32_IE_IE60
23641 /*****************************************************************************
23642  * IBrowserFrameOptions interface
23643  */
23644 #ifndef __IBrowserFrameOptions_INTERFACE_DEFINED__
23645 #define __IBrowserFrameOptions_INTERFACE_DEFINED__
23646 
23647 typedef IBrowserFrameOptions *LPBROWSERFRAMEOPTIONS;
23648 
23649 enum _BROWSERFRAMEOPTIONS {
23650     BFO_NONE = 0x0,
23651     BFO_BROWSER_PERSIST_SETTINGS = 0x1,
23652     BFO_RENAME_FOLDER_OPTIONS_TOINTERNET = 0x2,
23653     BFO_BOTH_OPTIONS = 0x4,
23654     BIF_PREFER_INTERNET_SHORTCUT = 0x8,
23655     BFO_BROWSE_NO_IN_NEW_PROCESS = 0x10,
23656     BFO_ENABLE_HYPERLINK_TRACKING = 0x20,
23657     BFO_USE_IE_OFFLINE_SUPPORT = 0x40,
23658     BFO_SUBSTITUE_INTERNET_START_PAGE = 0x80,
23659     BFO_USE_IE_LOGOBANDING = 0x100,
23660     BFO_ADD_IE_TOCAPTIONBAR = 0x200,
23661     BFO_USE_DIALUP_REF = 0x400,
23662     BFO_USE_IE_TOOLBAR = 0x800,
23663     BFO_NO_PARENT_FOLDER_SUPPORT = 0x1000,
23664     BFO_NO_REOPEN_NEXT_RESTART = 0x2000,
23665     BFO_GO_HOME_PAGE = 0x4000,
23666     BFO_PREFER_IEPROCESS = 0x8000,
23667     BFO_SHOW_NAVIGATION_CANCELLED = 0x10000,
23668     BFO_USE_IE_STATUSBAR = 0x20000,
23669     BFO_QUERY_ALL = (int)0xffffffff
23670 };
23671 
23672 typedef DWORD BROWSERFRAMEOPTIONS;
23673 
23674 DEFINE_GUID(IID_IBrowserFrameOptions, 0x10df43c8, 0x1dbe, 0x11d3, 0x8b,0x34, 0x00,0x60,0x97,0xdf,0x5b,0xd4);
23675 #if defined(__cplusplus) && !defined(CINTERFACE)
23676 MIDL_INTERFACE("10df43c8-1dbe-11d3-8b34-006097df5bd4")
23677 IBrowserFrameOptions : public IUnknown
23678 {
23679     virtual HRESULT STDMETHODCALLTYPE GetFrameOptions(
23680         BROWSERFRAMEOPTIONS dwMask,
23681         BROWSERFRAMEOPTIONS *pdwOptions) = 0;
23682 
23683 };
23684 #ifdef __CRT_UUID_DECL
23685 __CRT_UUID_DECL(IBrowserFrameOptions, 0x10df43c8, 0x1dbe, 0x11d3, 0x8b,0x34, 0x00,0x60,0x97,0xdf,0x5b,0xd4)
23686 #endif
23687 #else
23688 typedef struct IBrowserFrameOptionsVtbl {
23689     BEGIN_INTERFACE
23690 
23691     /*** IUnknown methods ***/
23692     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
23693         IBrowserFrameOptions *This,
23694         REFIID riid,
23695         void **ppvObject);
23696 
23697     ULONG (STDMETHODCALLTYPE *AddRef)(
23698         IBrowserFrameOptions *This);
23699 
23700     ULONG (STDMETHODCALLTYPE *Release)(
23701         IBrowserFrameOptions *This);
23702 
23703     /*** IBrowserFrameOptions methods ***/
23704     HRESULT (STDMETHODCALLTYPE *GetFrameOptions)(
23705         IBrowserFrameOptions *This,
23706         BROWSERFRAMEOPTIONS dwMask,
23707         BROWSERFRAMEOPTIONS *pdwOptions);
23708 
23709     END_INTERFACE
23710 } IBrowserFrameOptionsVtbl;
23711 
23712 interface IBrowserFrameOptions {
23713     CONST_VTBL IBrowserFrameOptionsVtbl* lpVtbl;
23714 };
23715 
23716 #ifdef COBJMACROS
23717 #ifndef WIDL_C_INLINE_WRAPPERS
23718 /*** IUnknown methods ***/
23719 #define IBrowserFrameOptions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
23720 #define IBrowserFrameOptions_AddRef(This) (This)->lpVtbl->AddRef(This)
23721 #define IBrowserFrameOptions_Release(This) (This)->lpVtbl->Release(This)
23722 /*** IBrowserFrameOptions methods ***/
23723 #define IBrowserFrameOptions_GetFrameOptions(This,dwMask,pdwOptions) (This)->lpVtbl->GetFrameOptions(This,dwMask,pdwOptions)
23724 #else
23725 /*** IUnknown methods ***/
23726 static FORCEINLINE HRESULT IBrowserFrameOptions_QueryInterface(IBrowserFrameOptions* This,REFIID riid,void **ppvObject) {
23727     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
23728 }
23729 static FORCEINLINE ULONG IBrowserFrameOptions_AddRef(IBrowserFrameOptions* This) {
23730     return This->lpVtbl->AddRef(This);
23731 }
23732 static FORCEINLINE ULONG IBrowserFrameOptions_Release(IBrowserFrameOptions* This) {
23733     return This->lpVtbl->Release(This);
23734 }
23735 /*** IBrowserFrameOptions methods ***/
23736 static FORCEINLINE HRESULT IBrowserFrameOptions_GetFrameOptions(IBrowserFrameOptions* This,BROWSERFRAMEOPTIONS dwMask,BROWSERFRAMEOPTIONS *pdwOptions) {
23737     return This->lpVtbl->GetFrameOptions(This,dwMask,pdwOptions);
23738 }
23739 #endif
23740 #endif
23741 
23742 #endif
23743 
23744 
23745 #endif  /* __IBrowserFrameOptions_INTERFACE_DEFINED__ */
23746 
23747 #endif
23748 
23749 #if _WIN32_IE >= _WIN32_IE_IE60SP2
23750 typedef enum NWMF {
23751     NWMF_UNLOADING = 0x1,
23752     NWMF_USERINITED = 0x2,
23753     NWMF_FIRST = 0x4,
23754     NWMF_OVERRIDEKEY = 0x8,
23755     NWMF_SHOWHELP = 0x10,
23756     NWMF_HTMLDIALOG = 0x20,
23757     NWMF_FROMDIALOGCHILD = 0x40,
23758     NWMF_USERREQUESTED = 0x80,
23759     NWMF_USERALLOWED = 0x100,
23760     NWMF_FORCEWINDOW = 0x10000,
23761     NWMF_FORCETAB = 0x20000,
23762     NWMF_SUGGESTWINDOW = 0x40000,
23763     NWMF_SUGGESTTAB = 0x80000,
23764     NWMF_INACTIVETAB = 0x100000
23765 } NWMF;
23766 
23767 DEFINE_ENUM_FLAG_OPERATORS(NWMF)
23768 
23769 #define SID_SNewWindowManager IID_INewWindowManager
23770 
23771 /*****************************************************************************
23772  * INewWindowManager interface
23773  */
23774 #ifndef __INewWindowManager_INTERFACE_DEFINED__
23775 #define __INewWindowManager_INTERFACE_DEFINED__
23776 
23777 DEFINE_GUID(IID_INewWindowManager, 0xd2bc4c84, 0x3f72, 0x4a52, 0xa6,0x04, 0x7b,0xcb,0xf3,0x98,0x2c,0xbb);
23778 #if defined(__cplusplus) && !defined(CINTERFACE)
23779 MIDL_INTERFACE("d2bc4c84-3f72-4a52-a604-7bcbf3982cbb")
23780 INewWindowManager : public IUnknown
23781 {
23782     virtual HRESULT STDMETHODCALLTYPE EvaluateNewWindow(
23783         LPCWSTR pszUrl,
23784         LPCWSTR pszName,
23785         LPCWSTR pszUrlContext,
23786         LPCWSTR pszFeatures,
23787         WINBOOL fReplace,
23788         DWORD dwFlags,
23789         DWORD dwUserActionTime) = 0;
23790 
23791 };
23792 #ifdef __CRT_UUID_DECL
23793 __CRT_UUID_DECL(INewWindowManager, 0xd2bc4c84, 0x3f72, 0x4a52, 0xa6,0x04, 0x7b,0xcb,0xf3,0x98,0x2c,0xbb)
23794 #endif
23795 #else
23796 typedef struct INewWindowManagerVtbl {
23797     BEGIN_INTERFACE
23798 
23799     /*** IUnknown methods ***/
23800     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
23801         INewWindowManager *This,
23802         REFIID riid,
23803         void **ppvObject);
23804 
23805     ULONG (STDMETHODCALLTYPE *AddRef)(
23806         INewWindowManager *This);
23807 
23808     ULONG (STDMETHODCALLTYPE *Release)(
23809         INewWindowManager *This);
23810 
23811     /*** INewWindowManager methods ***/
23812     HRESULT (STDMETHODCALLTYPE *EvaluateNewWindow)(
23813         INewWindowManager *This,
23814         LPCWSTR pszUrl,
23815         LPCWSTR pszName,
23816         LPCWSTR pszUrlContext,
23817         LPCWSTR pszFeatures,
23818         WINBOOL fReplace,
23819         DWORD dwFlags,
23820         DWORD dwUserActionTime);
23821 
23822     END_INTERFACE
23823 } INewWindowManagerVtbl;
23824 
23825 interface INewWindowManager {
23826     CONST_VTBL INewWindowManagerVtbl* lpVtbl;
23827 };
23828 
23829 #ifdef COBJMACROS
23830 #ifndef WIDL_C_INLINE_WRAPPERS
23831 /*** IUnknown methods ***/
23832 #define INewWindowManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
23833 #define INewWindowManager_AddRef(This) (This)->lpVtbl->AddRef(This)
23834 #define INewWindowManager_Release(This) (This)->lpVtbl->Release(This)
23835 /*** INewWindowManager methods ***/
23836 #define INewWindowManager_EvaluateNewWindow(This,pszUrl,pszName,pszUrlContext,pszFeatures,fReplace,dwFlags,dwUserActionTime) (This)->lpVtbl->EvaluateNewWindow(This,pszUrl,pszName,pszUrlContext,pszFeatures,fReplace,dwFlags,dwUserActionTime)
23837 #else
23838 /*** IUnknown methods ***/
23839 static FORCEINLINE HRESULT INewWindowManager_QueryInterface(INewWindowManager* This,REFIID riid,void **ppvObject) {
23840     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
23841 }
23842 static FORCEINLINE ULONG INewWindowManager_AddRef(INewWindowManager* This) {
23843     return This->lpVtbl->AddRef(This);
23844 }
23845 static FORCEINLINE ULONG INewWindowManager_Release(INewWindowManager* This) {
23846     return This->lpVtbl->Release(This);
23847 }
23848 /*** INewWindowManager methods ***/
23849 static FORCEINLINE HRESULT INewWindowManager_EvaluateNewWindow(INewWindowManager* This,LPCWSTR pszUrl,LPCWSTR pszName,LPCWSTR pszUrlContext,LPCWSTR pszFeatures,WINBOOL fReplace,DWORD dwFlags,DWORD dwUserActionTime) {
23850     return This->lpVtbl->EvaluateNewWindow(This,pszUrl,pszName,pszUrlContext,pszFeatures,fReplace,dwFlags,dwUserActionTime);
23851 }
23852 #endif
23853 #endif
23854 
23855 #endif
23856 
23857 
23858 #endif  /* __INewWindowManager_INTERFACE_DEFINED__ */
23859 
23860 
23861 /*****************************************************************************
23862  * IAttachmentExecute interface
23863  */
23864 #ifndef __IAttachmentExecute_INTERFACE_DEFINED__
23865 #define __IAttachmentExecute_INTERFACE_DEFINED__
23866 
23867 typedef enum ATTACHMENT_PROMPT {
23868     ATTACHMENT_PROMPT_NONE = 0x0,
23869     ATTACHMENT_PROMPT_SAVE = 0x1,
23870     ATTACHMENT_PROMPT_EXEC = 0x2,
23871     ATTACHMENT_PROMPT_EXEC_OR_SAVE = 0x3
23872 } ATTACHMENT_PROMPT;
23873 
23874 typedef enum ATTACHMENT_ACTION {
23875     ATTACHMENT_ACTION_CANCEL = 0x0,
23876     ATTACHMENT_ACTION_SAVE = 0x1,
23877     ATTACHMENT_ACTION_EXEC = 0x2
23878 } ATTACHMENT_ACTION;
23879 
23880 DEFINE_GUID(IID_IAttachmentExecute, 0x73db1241, 0x1e85, 0x4581, 0x8e,0x4f, 0xa8,0x1e,0x1d,0x0f,0x8c,0x57);
23881 #if defined(__cplusplus) && !defined(CINTERFACE)
23882 MIDL_INTERFACE("73db1241-1e85-4581-8e4f-a81e1d0f8c57")
23883 IAttachmentExecute : public IUnknown
23884 {
23885     virtual HRESULT STDMETHODCALLTYPE SetClientTitle(
23886         LPCWSTR pszTitle) = 0;
23887 
23888     virtual HRESULT STDMETHODCALLTYPE SetClientGuid(
23889         REFGUID guid) = 0;
23890 
23891     virtual HRESULT STDMETHODCALLTYPE SetLocalPath(
23892         LPCWSTR pszLocalPath) = 0;
23893 
23894     virtual HRESULT STDMETHODCALLTYPE SetFileName(
23895         LPCWSTR pszFileName) = 0;
23896 
23897     virtual HRESULT STDMETHODCALLTYPE SetSource(
23898         LPCWSTR pszSource) = 0;
23899 
23900     virtual HRESULT STDMETHODCALLTYPE SetReferrer(
23901         LPCWSTR pszReferrer) = 0;
23902 
23903     virtual HRESULT STDMETHODCALLTYPE CheckPolicy(
23904         ) = 0;
23905 
23906     virtual HRESULT STDMETHODCALLTYPE Prompt(
23907         HWND hwnd,
23908         ATTACHMENT_PROMPT prompt,
23909         ATTACHMENT_ACTION *paction) = 0;
23910 
23911     virtual HRESULT STDMETHODCALLTYPE Save(
23912         ) = 0;
23913 
23914     virtual HRESULT STDMETHODCALLTYPE Execute(
23915         HWND hwnd,
23916         LPCWSTR pszVerb,
23917         HANDLE *phProcess) = 0;
23918 
23919     virtual HRESULT STDMETHODCALLTYPE SaveWithUI(
23920         HWND hwnd) = 0;
23921 
23922     virtual HRESULT STDMETHODCALLTYPE ClearClientState(
23923         ) = 0;
23924 
23925 };
23926 #ifdef __CRT_UUID_DECL
23927 __CRT_UUID_DECL(IAttachmentExecute, 0x73db1241, 0x1e85, 0x4581, 0x8e,0x4f, 0xa8,0x1e,0x1d,0x0f,0x8c,0x57)
23928 #endif
23929 #else
23930 typedef struct IAttachmentExecuteVtbl {
23931     BEGIN_INTERFACE
23932 
23933     /*** IUnknown methods ***/
23934     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
23935         IAttachmentExecute *This,
23936         REFIID riid,
23937         void **ppvObject);
23938 
23939     ULONG (STDMETHODCALLTYPE *AddRef)(
23940         IAttachmentExecute *This);
23941 
23942     ULONG (STDMETHODCALLTYPE *Release)(
23943         IAttachmentExecute *This);
23944 
23945     /*** IAttachmentExecute methods ***/
23946     HRESULT (STDMETHODCALLTYPE *SetClientTitle)(
23947         IAttachmentExecute *This,
23948         LPCWSTR pszTitle);
23949 
23950     HRESULT (STDMETHODCALLTYPE *SetClientGuid)(
23951         IAttachmentExecute *This,
23952         REFGUID guid);
23953 
23954     HRESULT (STDMETHODCALLTYPE *SetLocalPath)(
23955         IAttachmentExecute *This,
23956         LPCWSTR pszLocalPath);
23957 
23958     HRESULT (STDMETHODCALLTYPE *SetFileName)(
23959         IAttachmentExecute *This,
23960         LPCWSTR pszFileName);
23961 
23962     HRESULT (STDMETHODCALLTYPE *SetSource)(
23963         IAttachmentExecute *This,
23964         LPCWSTR pszSource);
23965 
23966     HRESULT (STDMETHODCALLTYPE *SetReferrer)(
23967         IAttachmentExecute *This,
23968         LPCWSTR pszReferrer);
23969 
23970     HRESULT (STDMETHODCALLTYPE *CheckPolicy)(
23971         IAttachmentExecute *This);
23972 
23973     HRESULT (STDMETHODCALLTYPE *Prompt)(
23974         IAttachmentExecute *This,
23975         HWND hwnd,
23976         ATTACHMENT_PROMPT prompt,
23977         ATTACHMENT_ACTION *paction);
23978 
23979     HRESULT (STDMETHODCALLTYPE *Save)(
23980         IAttachmentExecute *This);
23981 
23982     HRESULT (STDMETHODCALLTYPE *Execute)(
23983         IAttachmentExecute *This,
23984         HWND hwnd,
23985         LPCWSTR pszVerb,
23986         HANDLE *phProcess);
23987 
23988     HRESULT (STDMETHODCALLTYPE *SaveWithUI)(
23989         IAttachmentExecute *This,
23990         HWND hwnd);
23991 
23992     HRESULT (STDMETHODCALLTYPE *ClearClientState)(
23993         IAttachmentExecute *This);
23994 
23995     END_INTERFACE
23996 } IAttachmentExecuteVtbl;
23997 
23998 interface IAttachmentExecute {
23999     CONST_VTBL IAttachmentExecuteVtbl* lpVtbl;
24000 };
24001 
24002 #ifdef COBJMACROS
24003 #ifndef WIDL_C_INLINE_WRAPPERS
24004 /*** IUnknown methods ***/
24005 #define IAttachmentExecute_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
24006 #define IAttachmentExecute_AddRef(This) (This)->lpVtbl->AddRef(This)
24007 #define IAttachmentExecute_Release(This) (This)->lpVtbl->Release(This)
24008 /*** IAttachmentExecute methods ***/
24009 #define IAttachmentExecute_SetClientTitle(This,pszTitle) (This)->lpVtbl->SetClientTitle(This,pszTitle)
24010 #define IAttachmentExecute_SetClientGuid(This,guid) (This)->lpVtbl->SetClientGuid(This,guid)
24011 #define IAttachmentExecute_SetLocalPath(This,pszLocalPath) (This)->lpVtbl->SetLocalPath(This,pszLocalPath)
24012 #define IAttachmentExecute_SetFileName(This,pszFileName) (This)->lpVtbl->SetFileName(This,pszFileName)
24013 #define IAttachmentExecute_SetSource(This,pszSource) (This)->lpVtbl->SetSource(This,pszSource)
24014 #define IAttachmentExecute_SetReferrer(This,pszReferrer) (This)->lpVtbl->SetReferrer(This,pszReferrer)
24015 #define IAttachmentExecute_CheckPolicy(This) (This)->lpVtbl->CheckPolicy(This)
24016 #define IAttachmentExecute_Prompt(This,hwnd,prompt,paction) (This)->lpVtbl->Prompt(This,hwnd,prompt,paction)
24017 #define IAttachmentExecute_Save(This) (This)->lpVtbl->Save(This)
24018 #define IAttachmentExecute_Execute(This,hwnd,pszVerb,phProcess) (This)->lpVtbl->Execute(This,hwnd,pszVerb,phProcess)
24019 #define IAttachmentExecute_SaveWithUI(This,hwnd) (This)->lpVtbl->SaveWithUI(This,hwnd)
24020 #define IAttachmentExecute_ClearClientState(This) (This)->lpVtbl->ClearClientState(This)
24021 #else
24022 /*** IUnknown methods ***/
24023 static FORCEINLINE HRESULT IAttachmentExecute_QueryInterface(IAttachmentExecute* This,REFIID riid,void **ppvObject) {
24024     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
24025 }
24026 static FORCEINLINE ULONG IAttachmentExecute_AddRef(IAttachmentExecute* This) {
24027     return This->lpVtbl->AddRef(This);
24028 }
24029 static FORCEINLINE ULONG IAttachmentExecute_Release(IAttachmentExecute* This) {
24030     return This->lpVtbl->Release(This);
24031 }
24032 /*** IAttachmentExecute methods ***/
24033 static FORCEINLINE HRESULT IAttachmentExecute_SetClientTitle(IAttachmentExecute* This,LPCWSTR pszTitle) {
24034     return This->lpVtbl->SetClientTitle(This,pszTitle);
24035 }
24036 static FORCEINLINE HRESULT IAttachmentExecute_SetClientGuid(IAttachmentExecute* This,REFGUID guid) {
24037     return This->lpVtbl->SetClientGuid(This,guid);
24038 }
24039 static FORCEINLINE HRESULT IAttachmentExecute_SetLocalPath(IAttachmentExecute* This,LPCWSTR pszLocalPath) {
24040     return This->lpVtbl->SetLocalPath(This,pszLocalPath);
24041 }
24042 static FORCEINLINE HRESULT IAttachmentExecute_SetFileName(IAttachmentExecute* This,LPCWSTR pszFileName) {
24043     return This->lpVtbl->SetFileName(This,pszFileName);
24044 }
24045 static FORCEINLINE HRESULT IAttachmentExecute_SetSource(IAttachmentExecute* This,LPCWSTR pszSource) {
24046     return This->lpVtbl->SetSource(This,pszSource);
24047 }
24048 static FORCEINLINE HRESULT IAttachmentExecute_SetReferrer(IAttachmentExecute* This,LPCWSTR pszReferrer) {
24049     return This->lpVtbl->SetReferrer(This,pszReferrer);
24050 }
24051 static FORCEINLINE HRESULT IAttachmentExecute_CheckPolicy(IAttachmentExecute* This) {
24052     return This->lpVtbl->CheckPolicy(This);
24053 }
24054 static FORCEINLINE HRESULT IAttachmentExecute_Prompt(IAttachmentExecute* This,HWND hwnd,ATTACHMENT_PROMPT prompt,ATTACHMENT_ACTION *paction) {
24055     return This->lpVtbl->Prompt(This,hwnd,prompt,paction);
24056 }
24057 static FORCEINLINE HRESULT IAttachmentExecute_Save(IAttachmentExecute* This) {
24058     return This->lpVtbl->Save(This);
24059 }
24060 static FORCEINLINE HRESULT IAttachmentExecute_Execute(IAttachmentExecute* This,HWND hwnd,LPCWSTR pszVerb,HANDLE *phProcess) {
24061     return This->lpVtbl->Execute(This,hwnd,pszVerb,phProcess);
24062 }
24063 static FORCEINLINE HRESULT IAttachmentExecute_SaveWithUI(IAttachmentExecute* This,HWND hwnd) {
24064     return This->lpVtbl->SaveWithUI(This,hwnd);
24065 }
24066 static FORCEINLINE HRESULT IAttachmentExecute_ClearClientState(IAttachmentExecute* This) {
24067     return This->lpVtbl->ClearClientState(This);
24068 }
24069 #endif
24070 #endif
24071 
24072 #endif
24073 
24074 
24075 #endif  /* __IAttachmentExecute_INTERFACE_DEFINED__ */
24076 
24077 #endif
24078 
24079 #if _WIN32_IE >= _WIN32_IE_IE60
24080 
24081 #include <pshpack8.h>
24082 typedef struct tagSMDATA {
24083     DWORD dwMask;
24084     DWORD dwFlags;
24085     HMENU hmenu;
24086     HWND hwnd;
24087     UINT uId;
24088     UINT uIdParent;
24089     UINT uIdAncestor;
24090     IUnknown *punk;
24091     PIDLIST_ABSOLUTE pidlFolder;
24092     PUITEMID_CHILD pidlItem;
24093     IShellFolder *psf;
24094     void *pvUserData;
24095 } SMDATA;
24096 typedef struct tagSMDATA *LPSMDATA;
24097 
24098 #define SMDM_SHELLFOLDER 0x00000001
24099 #define SMDM_HMENU 0x00000002
24100 #define SMDM_TOOLBAR 0x00000004
24101 
24102 typedef struct tagSMINFO {
24103     DWORD dwMask;
24104     DWORD dwType;
24105     DWORD dwFlags;
24106     int iIcon;
24107 } SMINFO;
24108 typedef struct tagSMINFO *PSMINFO;
24109 
24110 typedef struct SHCSCHANGENOTIFYSTRUCT {
24111     LONG lEvent;
24112     PCIDLIST_ABSOLUTE pidl1;
24113     PCIDLIST_ABSOLUTE pidl2;
24114 } SMCSHCHANGENOTIFYSTRUCT;
24115 typedef struct SHCSCHANGENOTIFYSTRUCT *PSMCSHCHANGENOTIFYSTRUCT;
24116 #include <poppack.h>
24117 
24118 enum tagSMINFOMASK {
24119     SMIM_TYPE = 0x1,
24120     SMIM_FLAGS = 0x2,
24121     SMIM_ICON = 0x4
24122 };
24123 
24124 enum tagSMINFOTYPE {
24125     SMIT_SEPARATOR = 0x1,
24126     SMIT_STRING = 0x2
24127 };
24128 
24129 enum tagSMINFOFLAGS {
24130     SMIF_ICON = 0x1,
24131     SMIF_ACCELERATOR = 0x2,
24132     SMIF_DROPTARGET = 0x4,
24133     SMIF_SUBMENU = 0x8,
24134     SMIF_CHECKED = 0x20,
24135     SMIF_DROPCASCADE = 0x40,
24136     SMIF_HIDDEN = 0x80,
24137     SMIF_DISABLED = 0x100,
24138     SMIF_TRACKPOPUP = 0x200,
24139     SMIF_DEMOTED = 0x400,
24140     SMIF_ALTSTATE = 0x800,
24141     SMIF_DRAGNDROP = 0x1000,
24142     SMIF_NEW = 0x2000
24143 };
24144 
24145 #define SMC_INITMENU 0x00000001
24146 #define SMC_CREATE 0x00000002
24147 #define SMC_EXITMENU 0x00000003
24148 #define SMC_GETINFO 0x00000005
24149 #define SMC_GETSFINFO 0x00000006
24150 #define SMC_GETOBJECT 0x00000007
24151 #define SMC_GETSFOBJECT 0x00000008
24152 #define SMC_SFEXEC 0x00000009
24153 #define SMC_SFSELECTITEM 0x0000000A
24154 #define SMC_REFRESH 0x00000010
24155 #define SMC_DEMOTE 0x00000011
24156 #define SMC_PROMOTE 0x00000012
24157 #define SMC_DEFAULTICON 0x00000016
24158 #define SMC_NEWITEM 0x00000017
24159 #define SMC_CHEVRONEXPAND 0x00000019
24160 #define SMC_DISPLAYCHEVRONTIP 0x0000002A
24161 #define SMC_SETSFOBJECT 0x0000002D
24162 #define SMC_SHCHANGENOTIFY 0x0000002E
24163 #define SMC_CHEVRONGETTIP 0x0000002F
24164 #define SMC_SFDDRESTRICTED 0x00000030
24165 #if _WIN32_IE >= _WIN32_IE_IE70
24166 #define SMC_SFEXEC_MIDDLE 0x00000031
24167 #define SMC_GETAUTOEXPANDSTATE 0x00000041
24168 #define SMC_AUTOEXPANDCHANGE 0x00000042
24169 #define SMC_GETCONTEXTMENUMODIFIER 0x00000043
24170 #define SMC_GETBKCONTEXTMENU 0x00000044
24171 #define SMC_OPEN 0x00000045
24172 
24173 #define SMAE_EXPANDED 0x00000001
24174 #define SMAE_CONTRACTED 0x00000002
24175 
24176 #define SMAE_USER 0x00000004
24177 
24178 #define SMAE_VALID 0x00000007
24179 #endif
24180 
24181 /*****************************************************************************
24182  * IShellMenuCallback interface
24183  */
24184 #ifndef __IShellMenuCallback_INTERFACE_DEFINED__
24185 #define __IShellMenuCallback_INTERFACE_DEFINED__
24186 
24187 DEFINE_GUID(IID_IShellMenuCallback, 0x4ca300a1, 0x9b8d, 0x11d1, 0x8b,0x22, 0x00,0xc0,0x4f,0xd9,0x18,0xd0);
24188 #if defined(__cplusplus) && !defined(CINTERFACE)
24189 MIDL_INTERFACE("4ca300a1-9b8d-11d1-8b22-00c04fd918d0")
24190 IShellMenuCallback : public IUnknown
24191 {
24192     virtual HRESULT STDMETHODCALLTYPE CallbackSM(
24193         LPSMDATA psmd,
24194         UINT uMsg,
24195         WPARAM wParam,
24196         LPARAM lParam) = 0;
24197 
24198 };
24199 #ifdef __CRT_UUID_DECL
24200 __CRT_UUID_DECL(IShellMenuCallback, 0x4ca300a1, 0x9b8d, 0x11d1, 0x8b,0x22, 0x00,0xc0,0x4f,0xd9,0x18,0xd0)
24201 #endif
24202 #else
24203 typedef struct IShellMenuCallbackVtbl {
24204     BEGIN_INTERFACE
24205 
24206     /*** IUnknown methods ***/
24207     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
24208         IShellMenuCallback *This,
24209         REFIID riid,
24210         void **ppvObject);
24211 
24212     ULONG (STDMETHODCALLTYPE *AddRef)(
24213         IShellMenuCallback *This);
24214 
24215     ULONG (STDMETHODCALLTYPE *Release)(
24216         IShellMenuCallback *This);
24217 
24218     /*** IShellMenuCallback methods ***/
24219     HRESULT (STDMETHODCALLTYPE *CallbackSM)(
24220         IShellMenuCallback *This,
24221         LPSMDATA psmd,
24222         UINT uMsg,
24223         WPARAM wParam,
24224         LPARAM lParam);
24225 
24226     END_INTERFACE
24227 } IShellMenuCallbackVtbl;
24228 
24229 interface IShellMenuCallback {
24230     CONST_VTBL IShellMenuCallbackVtbl* lpVtbl;
24231 };
24232 
24233 #ifdef COBJMACROS
24234 #ifndef WIDL_C_INLINE_WRAPPERS
24235 /*** IUnknown methods ***/
24236 #define IShellMenuCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
24237 #define IShellMenuCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
24238 #define IShellMenuCallback_Release(This) (This)->lpVtbl->Release(This)
24239 /*** IShellMenuCallback methods ***/
24240 #define IShellMenuCallback_CallbackSM(This,psmd,uMsg,wParam,lParam) (This)->lpVtbl->CallbackSM(This,psmd,uMsg,wParam,lParam)
24241 #else
24242 /*** IUnknown methods ***/
24243 static FORCEINLINE HRESULT IShellMenuCallback_QueryInterface(IShellMenuCallback* This,REFIID riid,void **ppvObject) {
24244     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
24245 }
24246 static FORCEINLINE ULONG IShellMenuCallback_AddRef(IShellMenuCallback* This) {
24247     return This->lpVtbl->AddRef(This);
24248 }
24249 static FORCEINLINE ULONG IShellMenuCallback_Release(IShellMenuCallback* This) {
24250     return This->lpVtbl->Release(This);
24251 }
24252 /*** IShellMenuCallback methods ***/
24253 static FORCEINLINE HRESULT IShellMenuCallback_CallbackSM(IShellMenuCallback* This,LPSMDATA psmd,UINT uMsg,WPARAM wParam,LPARAM lParam) {
24254     return This->lpVtbl->CallbackSM(This,psmd,uMsg,wParam,lParam);
24255 }
24256 #endif
24257 #endif
24258 
24259 #endif
24260 
24261 
24262 #endif  /* __IShellMenuCallback_INTERFACE_DEFINED__ */
24263 
24264 
24265 #define SMINIT_DEFAULT 0x00000000
24266 #define SMINIT_RESTRICT_DRAGDROP 0x00000002
24267 #define SMINIT_TOPLEVEL 0x00000004
24268 #define SMINIT_CACHED 0x00000010
24269 #if _WIN32_IE >= _WIN32_IE_IE70
24270 #define SMINIT_AUTOEXPAND 0x00000100
24271 #define SMINIT_AUTOTOOLTIP 0x00000200
24272 #define SMINIT_DROPONCONTAINER 0x00000400
24273 #endif
24274 
24275 #define SMINIT_VERTICAL 0x10000000
24276 #define SMINIT_HORIZONTAL 0x20000000
24277 
24278 #define ANCESTORDEFAULT (UINT)-1
24279 
24280 #define SMSET_TOP 0x10000000
24281 #define SMSET_BOTTOM 0x20000000
24282 #define SMSET_DONTOWN 0x00000001
24283 
24284 #define SMINV_REFRESH 0x00000001
24285 #define SMINV_ID 0x00000008
24286 
24287 /*****************************************************************************
24288  * IShellMenu interface
24289  */
24290 #ifndef __IShellMenu_INTERFACE_DEFINED__
24291 #define __IShellMenu_INTERFACE_DEFINED__
24292 
24293 DEFINE_GUID(IID_IShellMenu, 0xee1f7637, 0xe138, 0x11d1, 0x83,0x79, 0x00,0xc0,0x4f,0xd9,0x18,0xd0);
24294 #if defined(__cplusplus) && !defined(CINTERFACE)
24295 MIDL_INTERFACE("ee1f7637-e138-11d1-8379-00c04fd918d0")
24296 IShellMenu : public IUnknown
24297 {
24298     virtual HRESULT STDMETHODCALLTYPE Initialize(
24299         IShellMenuCallback *psmc,
24300         UINT uId,
24301         UINT uIdAncestor,
24302         DWORD dwFlags) = 0;
24303 
24304     virtual HRESULT STDMETHODCALLTYPE GetMenuInfo(
24305         IShellMenuCallback **ppsmc,
24306         UINT *puId,
24307         UINT *puIdAncestor,
24308         DWORD *pdwFlags) = 0;
24309 
24310     virtual HRESULT STDMETHODCALLTYPE SetShellFolder(
24311         IShellFolder *psf,
24312         PCIDLIST_ABSOLUTE pidlFolder,
24313         HKEY hKey,
24314         DWORD dwFlags) = 0;
24315 
24316     virtual HRESULT STDMETHODCALLTYPE GetShellFolder(
24317         DWORD *pdwFlags,
24318         PIDLIST_ABSOLUTE *ppidl,
24319         REFIID riid,
24320         void **ppv) = 0;
24321 
24322     virtual HRESULT STDMETHODCALLTYPE SetMenu(
24323         HMENU hmenu,
24324         HWND hwnd,
24325         DWORD dwFlags) = 0;
24326 
24327     virtual HRESULT STDMETHODCALLTYPE GetMenu(
24328         HMENU *phmenu,
24329         HWND *phwnd,
24330         DWORD *pdwFlags) = 0;
24331 
24332     virtual HRESULT STDMETHODCALLTYPE InvalidateItem(
24333         LPSMDATA psmd,
24334         DWORD dwFlags) = 0;
24335 
24336     virtual HRESULT STDMETHODCALLTYPE GetState(
24337         LPSMDATA psmd) = 0;
24338 
24339     virtual HRESULT STDMETHODCALLTYPE SetMenuToolbar(
24340         IUnknown *punk,
24341         DWORD dwFlags) = 0;
24342 
24343 };
24344 #ifdef __CRT_UUID_DECL
24345 __CRT_UUID_DECL(IShellMenu, 0xee1f7637, 0xe138, 0x11d1, 0x83,0x79, 0x00,0xc0,0x4f,0xd9,0x18,0xd0)
24346 #endif
24347 #else
24348 typedef struct IShellMenuVtbl {
24349     BEGIN_INTERFACE
24350 
24351     /*** IUnknown methods ***/
24352     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
24353         IShellMenu *This,
24354         REFIID riid,
24355         void **ppvObject);
24356 
24357     ULONG (STDMETHODCALLTYPE *AddRef)(
24358         IShellMenu *This);
24359 
24360     ULONG (STDMETHODCALLTYPE *Release)(
24361         IShellMenu *This);
24362 
24363     /*** IShellMenu methods ***/
24364     HRESULT (STDMETHODCALLTYPE *Initialize)(
24365         IShellMenu *This,
24366         IShellMenuCallback *psmc,
24367         UINT uId,
24368         UINT uIdAncestor,
24369         DWORD dwFlags);
24370 
24371     HRESULT (STDMETHODCALLTYPE *GetMenuInfo)(
24372         IShellMenu *This,
24373         IShellMenuCallback **ppsmc,
24374         UINT *puId,
24375         UINT *puIdAncestor,
24376         DWORD *pdwFlags);
24377 
24378     HRESULT (STDMETHODCALLTYPE *SetShellFolder)(
24379         IShellMenu *This,
24380         IShellFolder *psf,
24381         PCIDLIST_ABSOLUTE pidlFolder,
24382         HKEY hKey,
24383         DWORD dwFlags);
24384 
24385     HRESULT (STDMETHODCALLTYPE *GetShellFolder)(
24386         IShellMenu *This,
24387         DWORD *pdwFlags,
24388         PIDLIST_ABSOLUTE *ppidl,
24389         REFIID riid,
24390         void **ppv);
24391 
24392     HRESULT (STDMETHODCALLTYPE *SetMenu)(
24393         IShellMenu *This,
24394         HMENU hmenu,
24395         HWND hwnd,
24396         DWORD dwFlags);
24397 
24398     HRESULT (STDMETHODCALLTYPE *GetMenu)(
24399         IShellMenu *This,
24400         HMENU *phmenu,
24401         HWND *phwnd,
24402         DWORD *pdwFlags);
24403 
24404     HRESULT (STDMETHODCALLTYPE *InvalidateItem)(
24405         IShellMenu *This,
24406         LPSMDATA psmd,
24407         DWORD dwFlags);
24408 
24409     HRESULT (STDMETHODCALLTYPE *GetState)(
24410         IShellMenu *This,
24411         LPSMDATA psmd);
24412 
24413     HRESULT (STDMETHODCALLTYPE *SetMenuToolbar)(
24414         IShellMenu *This,
24415         IUnknown *punk,
24416         DWORD dwFlags);
24417 
24418     END_INTERFACE
24419 } IShellMenuVtbl;
24420 
24421 interface IShellMenu {
24422     CONST_VTBL IShellMenuVtbl* lpVtbl;
24423 };
24424 
24425 #ifdef COBJMACROS
24426 #ifndef WIDL_C_INLINE_WRAPPERS
24427 /*** IUnknown methods ***/
24428 #define IShellMenu_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
24429 #define IShellMenu_AddRef(This) (This)->lpVtbl->AddRef(This)
24430 #define IShellMenu_Release(This) (This)->lpVtbl->Release(This)
24431 /*** IShellMenu methods ***/
24432 #define IShellMenu_Initialize(This,psmc,uId,uIdAncestor,dwFlags) (This)->lpVtbl->Initialize(This,psmc,uId,uIdAncestor,dwFlags)
24433 #define IShellMenu_GetMenuInfo(This,ppsmc,puId,puIdAncestor,pdwFlags) (This)->lpVtbl->GetMenuInfo(This,ppsmc,puId,puIdAncestor,pdwFlags)
24434 #define IShellMenu_SetShellFolder(This,psf,pidlFolder,hKey,dwFlags) (This)->lpVtbl->SetShellFolder(This,psf,pidlFolder,hKey,dwFlags)
24435 #define IShellMenu_GetShellFolder(This,pdwFlags,ppidl,riid,ppv) (This)->lpVtbl->GetShellFolder(This,pdwFlags,ppidl,riid,ppv)
24436 #define IShellMenu_SetMenu(This,hmenu,hwnd,dwFlags) (This)->lpVtbl->SetMenu(This,hmenu,hwnd,dwFlags)
24437 #define IShellMenu_GetMenu(This,phmenu,phwnd,pdwFlags) (This)->lpVtbl->GetMenu(This,phmenu,phwnd,pdwFlags)
24438 #define IShellMenu_InvalidateItem(This,psmd,dwFlags) (This)->lpVtbl->InvalidateItem(This,psmd,dwFlags)
24439 #define IShellMenu_GetState(This,psmd) (This)->lpVtbl->GetState(This,psmd)
24440 #define IShellMenu_SetMenuToolbar(This,punk,dwFlags) (This)->lpVtbl->SetMenuToolbar(This,punk,dwFlags)
24441 #else
24442 /*** IUnknown methods ***/
24443 static FORCEINLINE HRESULT IShellMenu_QueryInterface(IShellMenu* This,REFIID riid,void **ppvObject) {
24444     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
24445 }
24446 static FORCEINLINE ULONG IShellMenu_AddRef(IShellMenu* This) {
24447     return This->lpVtbl->AddRef(This);
24448 }
24449 static FORCEINLINE ULONG IShellMenu_Release(IShellMenu* This) {
24450     return This->lpVtbl->Release(This);
24451 }
24452 /*** IShellMenu methods ***/
24453 static FORCEINLINE HRESULT IShellMenu_Initialize(IShellMenu* This,IShellMenuCallback *psmc,UINT uId,UINT uIdAncestor,DWORD dwFlags) {
24454     return This->lpVtbl->Initialize(This,psmc,uId,uIdAncestor,dwFlags);
24455 }
24456 static FORCEINLINE HRESULT IShellMenu_GetMenuInfo(IShellMenu* This,IShellMenuCallback **ppsmc,UINT *puId,UINT *puIdAncestor,DWORD *pdwFlags) {
24457     return This->lpVtbl->GetMenuInfo(This,ppsmc,puId,puIdAncestor,pdwFlags);
24458 }
24459 static FORCEINLINE HRESULT IShellMenu_SetShellFolder(IShellMenu* This,IShellFolder *psf,PCIDLIST_ABSOLUTE pidlFolder,HKEY hKey,DWORD dwFlags) {
24460     return This->lpVtbl->SetShellFolder(This,psf,pidlFolder,hKey,dwFlags);
24461 }
24462 static FORCEINLINE HRESULT IShellMenu_GetShellFolder(IShellMenu* This,DWORD *pdwFlags,PIDLIST_ABSOLUTE *ppidl,REFIID riid,void **ppv) {
24463     return This->lpVtbl->GetShellFolder(This,pdwFlags,ppidl,riid,ppv);
24464 }
24465 static FORCEINLINE HRESULT IShellMenu_SetMenu(IShellMenu* This,HMENU hmenu,HWND hwnd,DWORD dwFlags) {
24466     return This->lpVtbl->SetMenu(This,hmenu,hwnd,dwFlags);
24467 }
24468 static FORCEINLINE HRESULT IShellMenu_GetMenu(IShellMenu* This,HMENU *phmenu,HWND *phwnd,DWORD *pdwFlags) {
24469     return This->lpVtbl->GetMenu(This,phmenu,phwnd,pdwFlags);
24470 }
24471 static FORCEINLINE HRESULT IShellMenu_InvalidateItem(IShellMenu* This,LPSMDATA psmd,DWORD dwFlags) {
24472     return This->lpVtbl->InvalidateItem(This,psmd,dwFlags);
24473 }
24474 static FORCEINLINE HRESULT IShellMenu_GetState(IShellMenu* This,LPSMDATA psmd) {
24475     return This->lpVtbl->GetState(This,psmd);
24476 }
24477 static FORCEINLINE HRESULT IShellMenu_SetMenuToolbar(IShellMenu* This,IUnknown *punk,DWORD dwFlags) {
24478     return This->lpVtbl->SetMenuToolbar(This,punk,dwFlags);
24479 }
24480 #endif
24481 #endif
24482 
24483 #endif
24484 
24485 
24486 #endif  /* __IShellMenu_INTERFACE_DEFINED__ */
24487 
24488 #endif
24489 
24490 /*****************************************************************************
24491  * IShellRunDll interface
24492  */
24493 #ifndef __IShellRunDll_INTERFACE_DEFINED__
24494 #define __IShellRunDll_INTERFACE_DEFINED__
24495 
24496 DEFINE_GUID(IID_IShellRunDll, 0xfce4bde0, 0x4b68, 0x4b80, 0x8e,0x9c, 0x74,0x26,0x31,0x5a,0x73,0x88);
24497 #if defined(__cplusplus) && !defined(CINTERFACE)
24498 MIDL_INTERFACE("fce4bde0-4b68-4b80-8e9c-7426315a7388")
24499 IShellRunDll : public IUnknown
24500 {
24501     virtual HRESULT STDMETHODCALLTYPE Run(
24502         LPCWSTR pszArgs) = 0;
24503 
24504 };
24505 #ifdef __CRT_UUID_DECL
24506 __CRT_UUID_DECL(IShellRunDll, 0xfce4bde0, 0x4b68, 0x4b80, 0x8e,0x9c, 0x74,0x26,0x31,0x5a,0x73,0x88)
24507 #endif
24508 #else
24509 typedef struct IShellRunDllVtbl {
24510     BEGIN_INTERFACE
24511 
24512     /*** IUnknown methods ***/
24513     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
24514         IShellRunDll *This,
24515         REFIID riid,
24516         void **ppvObject);
24517 
24518     ULONG (STDMETHODCALLTYPE *AddRef)(
24519         IShellRunDll *This);
24520 
24521     ULONG (STDMETHODCALLTYPE *Release)(
24522         IShellRunDll *This);
24523 
24524     /*** IShellRunDll methods ***/
24525     HRESULT (STDMETHODCALLTYPE *Run)(
24526         IShellRunDll *This,
24527         LPCWSTR pszArgs);
24528 
24529     END_INTERFACE
24530 } IShellRunDllVtbl;
24531 
24532 interface IShellRunDll {
24533     CONST_VTBL IShellRunDllVtbl* lpVtbl;
24534 };
24535 
24536 #ifdef COBJMACROS
24537 #ifndef WIDL_C_INLINE_WRAPPERS
24538 /*** IUnknown methods ***/
24539 #define IShellRunDll_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
24540 #define IShellRunDll_AddRef(This) (This)->lpVtbl->AddRef(This)
24541 #define IShellRunDll_Release(This) (This)->lpVtbl->Release(This)
24542 /*** IShellRunDll methods ***/
24543 #define IShellRunDll_Run(This,pszArgs) (This)->lpVtbl->Run(This,pszArgs)
24544 #else
24545 /*** IUnknown methods ***/
24546 static FORCEINLINE HRESULT IShellRunDll_QueryInterface(IShellRunDll* This,REFIID riid,void **ppvObject) {
24547     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
24548 }
24549 static FORCEINLINE ULONG IShellRunDll_AddRef(IShellRunDll* This) {
24550     return This->lpVtbl->AddRef(This);
24551 }
24552 static FORCEINLINE ULONG IShellRunDll_Release(IShellRunDll* This) {
24553     return This->lpVtbl->Release(This);
24554 }
24555 /*** IShellRunDll methods ***/
24556 static FORCEINLINE HRESULT IShellRunDll_Run(IShellRunDll* This,LPCWSTR pszArgs) {
24557     return This->lpVtbl->Run(This,pszArgs);
24558 }
24559 #endif
24560 #endif
24561 
24562 #endif
24563 
24564 
24565 #endif  /* __IShellRunDll_INTERFACE_DEFINED__ */
24566 
24567 
24568 #if NTDDI_VERSION >= NTDDI_VISTA
24569 typedef enum KF_CATEGORY {
24570     KF_CATEGORY_VIRTUAL = 1,
24571     KF_CATEGORY_FIXED = 2,
24572     KF_CATEGORY_COMMON = 3,
24573     KF_CATEGORY_PERUSER = 4
24574 } KF_CATEGORY;
24575 
24576 enum _KF_DEFINITION_FLAGS {
24577     KFDF_LOCAL_REDIRECT_ONLY = 0x2,
24578     KFDF_ROAMABLE = 0x4,
24579     KFDF_PRECREATE = 0x8,
24580     KFDF_STREAM = 0x10,
24581     KFDF_PUBLISHEXPANDEDPATH = 0x20
24582 };
24583 
24584 typedef DWORD KF_DEFINITION_FLAGS;
24585 
24586 enum _KF_REDIRECT_FLAGS {
24587     KF_REDIRECT_USER_EXCLUSIVE = 0x1,
24588     KF_REDIRECT_COPY_SOURCE_DACL = 0x2,
24589     KF_REDIRECT_OWNER_USER = 0x4,
24590     KF_REDIRECT_SET_OWNER_EXPLICIT = 0x8,
24591     KF_REDIRECT_CHECK_ONLY = 0x10,
24592     KF_REDIRECT_WITH_UI = 0x20,
24593     KF_REDIRECT_UNPIN = 0x40,
24594     KF_REDIRECT_PIN = 0x80,
24595     KF_REDIRECT_COPY_CONTENTS = 0x200,
24596     KF_REDIRECT_DEL_SOURCE_CONTENTS = 0x400,
24597     KF_REDIRECT_EXCLUDE_ALL_KNOWN_SUBFOLDERS = 0x800
24598 };
24599 
24600 typedef DWORD KF_REDIRECT_FLAGS;
24601 
24602 enum _KF_REDIRECTION_CAPABILITIES {
24603     KF_REDIRECTION_CAPABILITIES_ALLOW_ALL = 0xff,
24604     KF_REDIRECTION_CAPABILITIES_REDIRECTABLE = 0x1,
24605     KF_REDIRECTION_CAPABILITIES_DENY_ALL = 0xfff00,
24606     KF_REDIRECTION_CAPABILITIES_DENY_POLICY_REDIRECTED = 0x100,
24607     KF_REDIRECTION_CAPABILITIES_DENY_POLICY = 0x200,
24608     KF_REDIRECTION_CAPABILITIES_DENY_PERMISSIONS = 0x400
24609 };
24610 
24611 typedef DWORD KF_REDIRECTION_CAPABILITIES;
24612 
24613 typedef struct KNOWNFOLDER_DEFINITION {
24614     KF_CATEGORY category;
24615     LPWSTR pszName;
24616     LPWSTR pszDescription;
24617     KNOWNFOLDERID fidParent;
24618     LPWSTR pszRelativePath;
24619     LPWSTR pszParsingName;
24620     LPWSTR pszTooltip;
24621     LPWSTR pszLocalizedName;
24622     LPWSTR pszIcon;
24623     LPWSTR pszSecurity;
24624     DWORD dwAttributes;
24625     KF_DEFINITION_FLAGS kfdFlags;
24626     FOLDERTYPEID ftidType;
24627 } KNOWNFOLDER_DEFINITION;
24628 
24629 /*****************************************************************************
24630  * IKnownFolder interface
24631  */
24632 #ifndef __IKnownFolder_INTERFACE_DEFINED__
24633 #define __IKnownFolder_INTERFACE_DEFINED__
24634 
24635 DEFINE_GUID(IID_IKnownFolder, 0x3aa7af7e, 0x9b36, 0x420c, 0xa8,0xe3, 0xf7,0x7d,0x46,0x74,0xa4,0x88);
24636 #if defined(__cplusplus) && !defined(CINTERFACE)
24637 MIDL_INTERFACE("3aa7af7e-9b36-420c-a8e3-f77d4674a488")
24638 IKnownFolder : public IUnknown
24639 {
24640     virtual HRESULT STDMETHODCALLTYPE GetId(
24641         KNOWNFOLDERID *pkfid) = 0;
24642 
24643     virtual HRESULT STDMETHODCALLTYPE GetCategory(
24644         KF_CATEGORY *pCategory) = 0;
24645 
24646     virtual HRESULT STDMETHODCALLTYPE GetShellItem(
24647         DWORD dwFlags,
24648         REFIID riid,
24649         void **ppv) = 0;
24650 
24651     virtual HRESULT STDMETHODCALLTYPE GetPath(
24652         DWORD dwFlags,
24653         LPWSTR *ppszPath) = 0;
24654 
24655     virtual HRESULT STDMETHODCALLTYPE SetPath(
24656         DWORD dwFlags,
24657         LPCWSTR pszPath) = 0;
24658 
24659     virtual HRESULT STDMETHODCALLTYPE GetIDList(
24660         DWORD dwFlags,
24661         PIDLIST_ABSOLUTE *ppidl) = 0;
24662 
24663     virtual HRESULT STDMETHODCALLTYPE GetFolderType(
24664         FOLDERTYPEID *pftid) = 0;
24665 
24666     virtual HRESULT STDMETHODCALLTYPE GetRedirectionCapabilities(
24667         KF_REDIRECTION_CAPABILITIES *pCapabilities) = 0;
24668 
24669     virtual HRESULT STDMETHODCALLTYPE GetFolderDefinition(
24670         KNOWNFOLDER_DEFINITION *pKFD) = 0;
24671 
24672 };
24673 #ifdef __CRT_UUID_DECL
24674 __CRT_UUID_DECL(IKnownFolder, 0x3aa7af7e, 0x9b36, 0x420c, 0xa8,0xe3, 0xf7,0x7d,0x46,0x74,0xa4,0x88)
24675 #endif
24676 #else
24677 typedef struct IKnownFolderVtbl {
24678     BEGIN_INTERFACE
24679 
24680     /*** IUnknown methods ***/
24681     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
24682         IKnownFolder *This,
24683         REFIID riid,
24684         void **ppvObject);
24685 
24686     ULONG (STDMETHODCALLTYPE *AddRef)(
24687         IKnownFolder *This);
24688 
24689     ULONG (STDMETHODCALLTYPE *Release)(
24690         IKnownFolder *This);
24691 
24692     /*** IKnownFolder methods ***/
24693     HRESULT (STDMETHODCALLTYPE *GetId)(
24694         IKnownFolder *This,
24695         KNOWNFOLDERID *pkfid);
24696 
24697     HRESULT (STDMETHODCALLTYPE *GetCategory)(
24698         IKnownFolder *This,
24699         KF_CATEGORY *pCategory);
24700 
24701     HRESULT (STDMETHODCALLTYPE *GetShellItem)(
24702         IKnownFolder *This,
24703         DWORD dwFlags,
24704         REFIID riid,
24705         void **ppv);
24706 
24707     HRESULT (STDMETHODCALLTYPE *GetPath)(
24708         IKnownFolder *This,
24709         DWORD dwFlags,
24710         LPWSTR *ppszPath);
24711 
24712     HRESULT (STDMETHODCALLTYPE *SetPath)(
24713         IKnownFolder *This,
24714         DWORD dwFlags,
24715         LPCWSTR pszPath);
24716 
24717     HRESULT (STDMETHODCALLTYPE *GetIDList)(
24718         IKnownFolder *This,
24719         DWORD dwFlags,
24720         PIDLIST_ABSOLUTE *ppidl);
24721 
24722     HRESULT (STDMETHODCALLTYPE *GetFolderType)(
24723         IKnownFolder *This,
24724         FOLDERTYPEID *pftid);
24725 
24726     HRESULT (STDMETHODCALLTYPE *GetRedirectionCapabilities)(
24727         IKnownFolder *This,
24728         KF_REDIRECTION_CAPABILITIES *pCapabilities);
24729 
24730     HRESULT (STDMETHODCALLTYPE *GetFolderDefinition)(
24731         IKnownFolder *This,
24732         KNOWNFOLDER_DEFINITION *pKFD);
24733 
24734     END_INTERFACE
24735 } IKnownFolderVtbl;
24736 
24737 interface IKnownFolder {
24738     CONST_VTBL IKnownFolderVtbl* lpVtbl;
24739 };
24740 
24741 #ifdef COBJMACROS
24742 #ifndef WIDL_C_INLINE_WRAPPERS
24743 /*** IUnknown methods ***/
24744 #define IKnownFolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
24745 #define IKnownFolder_AddRef(This) (This)->lpVtbl->AddRef(This)
24746 #define IKnownFolder_Release(This) (This)->lpVtbl->Release(This)
24747 /*** IKnownFolder methods ***/
24748 #define IKnownFolder_GetId(This,pkfid) (This)->lpVtbl->GetId(This,pkfid)
24749 #define IKnownFolder_GetCategory(This,pCategory) (This)->lpVtbl->GetCategory(This,pCategory)
24750 #define IKnownFolder_GetShellItem(This,dwFlags,riid,ppv) (This)->lpVtbl->GetShellItem(This,dwFlags,riid,ppv)
24751 #define IKnownFolder_GetPath(This,dwFlags,ppszPath) (This)->lpVtbl->GetPath(This,dwFlags,ppszPath)
24752 #define IKnownFolder_SetPath(This,dwFlags,pszPath) (This)->lpVtbl->SetPath(This,dwFlags,pszPath)
24753 #define IKnownFolder_GetIDList(This,dwFlags,ppidl) (This)->lpVtbl->GetIDList(This,dwFlags,ppidl)
24754 #define IKnownFolder_GetFolderType(This,pftid) (This)->lpVtbl->GetFolderType(This,pftid)
24755 #define IKnownFolder_GetRedirectionCapabilities(This,pCapabilities) (This)->lpVtbl->GetRedirectionCapabilities(This,pCapabilities)
24756 #define IKnownFolder_GetFolderDefinition(This,pKFD) (This)->lpVtbl->GetFolderDefinition(This,pKFD)
24757 #else
24758 /*** IUnknown methods ***/
24759 static FORCEINLINE HRESULT IKnownFolder_QueryInterface(IKnownFolder* This,REFIID riid,void **ppvObject) {
24760     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
24761 }
24762 static FORCEINLINE ULONG IKnownFolder_AddRef(IKnownFolder* This) {
24763     return This->lpVtbl->AddRef(This);
24764 }
24765 static FORCEINLINE ULONG IKnownFolder_Release(IKnownFolder* This) {
24766     return This->lpVtbl->Release(This);
24767 }
24768 /*** IKnownFolder methods ***/
24769 static FORCEINLINE HRESULT IKnownFolder_GetId(IKnownFolder* This,KNOWNFOLDERID *pkfid) {
24770     return This->lpVtbl->GetId(This,pkfid);
24771 }
24772 static FORCEINLINE HRESULT IKnownFolder_GetCategory(IKnownFolder* This,KF_CATEGORY *pCategory) {
24773     return This->lpVtbl->GetCategory(This,pCategory);
24774 }
24775 static FORCEINLINE HRESULT IKnownFolder_GetShellItem(IKnownFolder* This,DWORD dwFlags,REFIID riid,void **ppv) {
24776     return This->lpVtbl->GetShellItem(This,dwFlags,riid,ppv);
24777 }
24778 static FORCEINLINE HRESULT IKnownFolder_GetPath(IKnownFolder* This,DWORD dwFlags,LPWSTR *ppszPath) {
24779     return This->lpVtbl->GetPath(This,dwFlags,ppszPath);
24780 }
24781 static FORCEINLINE HRESULT IKnownFolder_SetPath(IKnownFolder* This,DWORD dwFlags,LPCWSTR pszPath) {
24782     return This->lpVtbl->SetPath(This,dwFlags,pszPath);
24783 }
24784 static FORCEINLINE HRESULT IKnownFolder_GetIDList(IKnownFolder* This,DWORD dwFlags,PIDLIST_ABSOLUTE *ppidl) {
24785     return This->lpVtbl->GetIDList(This,dwFlags,ppidl);
24786 }
24787 static FORCEINLINE HRESULT IKnownFolder_GetFolderType(IKnownFolder* This,FOLDERTYPEID *pftid) {
24788     return This->lpVtbl->GetFolderType(This,pftid);
24789 }
24790 static FORCEINLINE HRESULT IKnownFolder_GetRedirectionCapabilities(IKnownFolder* This,KF_REDIRECTION_CAPABILITIES *pCapabilities) {
24791     return This->lpVtbl->GetRedirectionCapabilities(This,pCapabilities);
24792 }
24793 static FORCEINLINE HRESULT IKnownFolder_GetFolderDefinition(IKnownFolder* This,KNOWNFOLDER_DEFINITION *pKFD) {
24794     return This->lpVtbl->GetFolderDefinition(This,pKFD);
24795 }
24796 #endif
24797 #endif
24798 
24799 #endif
24800 
24801 
24802 #endif  /* __IKnownFolder_INTERFACE_DEFINED__ */
24803 
24804 
24805 /*****************************************************************************
24806  * IKnownFolderManager interface
24807  */
24808 #ifndef __IKnownFolderManager_INTERFACE_DEFINED__
24809 #define __IKnownFolderManager_INTERFACE_DEFINED__
24810 
24811 typedef enum FFFP_MODE {
24812     FFFP_EXACTMATCH = 0,
24813     FFFP_NEARESTPARENTMATCH = 1
24814 } FFFP_MODE;
24815 
24816 DEFINE_GUID(IID_IKnownFolderManager, 0x8be2d872, 0x86aa, 0x4d47, 0xb7,0x76, 0x32,0xcc,0xa4,0x0c,0x70,0x18);
24817 #if defined(__cplusplus) && !defined(CINTERFACE)
24818 MIDL_INTERFACE("8be2d872-86aa-4d47-b776-32cca40c7018")
24819 IKnownFolderManager : public IUnknown
24820 {
24821     virtual HRESULT STDMETHODCALLTYPE FolderIdFromCsidl(
24822         int nCsidl,
24823         KNOWNFOLDERID *pfid) = 0;
24824 
24825     virtual HRESULT STDMETHODCALLTYPE FolderIdToCsidl(
24826         REFKNOWNFOLDERID rfid,
24827         int *pnCsidl) = 0;
24828 
24829     virtual HRESULT STDMETHODCALLTYPE GetFolderIds(
24830         KNOWNFOLDERID **ppKFId,
24831         UINT *pCount) = 0;
24832 
24833     virtual HRESULT STDMETHODCALLTYPE GetFolder(
24834         REFKNOWNFOLDERID rfid,
24835         IKnownFolder **ppkf) = 0;
24836 
24837     virtual HRESULT STDMETHODCALLTYPE GetFolderByName(
24838         LPCWSTR pszCanonicalName,
24839         IKnownFolder **ppkf) = 0;
24840 
24841     virtual HRESULT STDMETHODCALLTYPE RegisterFolder(
24842         REFKNOWNFOLDERID rfid,
24843         const KNOWNFOLDER_DEFINITION *pKFD) = 0;
24844 
24845     virtual HRESULT STDMETHODCALLTYPE UnregisterFolder(
24846         REFKNOWNFOLDERID rfid) = 0;
24847 
24848     virtual HRESULT STDMETHODCALLTYPE FindFolderFromPath(
24849         LPCWSTR pszPath,
24850         FFFP_MODE mode,
24851         IKnownFolder **ppkf) = 0;
24852 
24853     virtual HRESULT STDMETHODCALLTYPE FindFolderFromIDList(
24854         PCIDLIST_ABSOLUTE pidl,
24855         IKnownFolder **ppkf) = 0;
24856 
24857     virtual HRESULT STDMETHODCALLTYPE Redirect(
24858         REFKNOWNFOLDERID rfid,
24859         HWND hwnd,
24860         KF_REDIRECT_FLAGS flags,
24861         LPCWSTR pszTargetPath,
24862         UINT cFolders,
24863         const KNOWNFOLDERID *pExclusion,
24864         LPWSTR *ppszError) = 0;
24865 
24866 };
24867 #ifdef __CRT_UUID_DECL
24868 __CRT_UUID_DECL(IKnownFolderManager, 0x8be2d872, 0x86aa, 0x4d47, 0xb7,0x76, 0x32,0xcc,0xa4,0x0c,0x70,0x18)
24869 #endif
24870 #else
24871 typedef struct IKnownFolderManagerVtbl {
24872     BEGIN_INTERFACE
24873 
24874     /*** IUnknown methods ***/
24875     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
24876         IKnownFolderManager *This,
24877         REFIID riid,
24878         void **ppvObject);
24879 
24880     ULONG (STDMETHODCALLTYPE *AddRef)(
24881         IKnownFolderManager *This);
24882 
24883     ULONG (STDMETHODCALLTYPE *Release)(
24884         IKnownFolderManager *This);
24885 
24886     /*** IKnownFolderManager methods ***/
24887     HRESULT (STDMETHODCALLTYPE *FolderIdFromCsidl)(
24888         IKnownFolderManager *This,
24889         int nCsidl,
24890         KNOWNFOLDERID *pfid);
24891 
24892     HRESULT (STDMETHODCALLTYPE *FolderIdToCsidl)(
24893         IKnownFolderManager *This,
24894         REFKNOWNFOLDERID rfid,
24895         int *pnCsidl);
24896 
24897     HRESULT (STDMETHODCALLTYPE *GetFolderIds)(
24898         IKnownFolderManager *This,
24899         KNOWNFOLDERID **ppKFId,
24900         UINT *pCount);
24901 
24902     HRESULT (STDMETHODCALLTYPE *GetFolder)(
24903         IKnownFolderManager *This,
24904         REFKNOWNFOLDERID rfid,
24905         IKnownFolder **ppkf);
24906 
24907     HRESULT (STDMETHODCALLTYPE *GetFolderByName)(
24908         IKnownFolderManager *This,
24909         LPCWSTR pszCanonicalName,
24910         IKnownFolder **ppkf);
24911 
24912     HRESULT (STDMETHODCALLTYPE *RegisterFolder)(
24913         IKnownFolderManager *This,
24914         REFKNOWNFOLDERID rfid,
24915         const KNOWNFOLDER_DEFINITION *pKFD);
24916 
24917     HRESULT (STDMETHODCALLTYPE *UnregisterFolder)(
24918         IKnownFolderManager *This,
24919         REFKNOWNFOLDERID rfid);
24920 
24921     HRESULT (STDMETHODCALLTYPE *FindFolderFromPath)(
24922         IKnownFolderManager *This,
24923         LPCWSTR pszPath,
24924         FFFP_MODE mode,
24925         IKnownFolder **ppkf);
24926 
24927     HRESULT (STDMETHODCALLTYPE *FindFolderFromIDList)(
24928         IKnownFolderManager *This,
24929         PCIDLIST_ABSOLUTE pidl,
24930         IKnownFolder **ppkf);
24931 
24932     HRESULT (STDMETHODCALLTYPE *Redirect)(
24933         IKnownFolderManager *This,
24934         REFKNOWNFOLDERID rfid,
24935         HWND hwnd,
24936         KF_REDIRECT_FLAGS flags,
24937         LPCWSTR pszTargetPath,
24938         UINT cFolders,
24939         const KNOWNFOLDERID *pExclusion,
24940         LPWSTR *ppszError);
24941 
24942     END_INTERFACE
24943 } IKnownFolderManagerVtbl;
24944 
24945 interface IKnownFolderManager {
24946     CONST_VTBL IKnownFolderManagerVtbl* lpVtbl;
24947 };
24948 
24949 #ifdef COBJMACROS
24950 #ifndef WIDL_C_INLINE_WRAPPERS
24951 /*** IUnknown methods ***/
24952 #define IKnownFolderManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
24953 #define IKnownFolderManager_AddRef(This) (This)->lpVtbl->AddRef(This)
24954 #define IKnownFolderManager_Release(This) (This)->lpVtbl->Release(This)
24955 /*** IKnownFolderManager methods ***/
24956 #define IKnownFolderManager_FolderIdFromCsidl(This,nCsidl,pfid) (This)->lpVtbl->FolderIdFromCsidl(This,nCsidl,pfid)
24957 #define IKnownFolderManager_FolderIdToCsidl(This,rfid,pnCsidl) (This)->lpVtbl->FolderIdToCsidl(This,rfid,pnCsidl)
24958 #define IKnownFolderManager_GetFolderIds(This,ppKFId,pCount) (This)->lpVtbl->GetFolderIds(This,ppKFId,pCount)
24959 #define IKnownFolderManager_GetFolder(This,rfid,ppkf) (This)->lpVtbl->GetFolder(This,rfid,ppkf)
24960 #define IKnownFolderManager_GetFolderByName(This,pszCanonicalName,ppkf) (This)->lpVtbl->GetFolderByName(This,pszCanonicalName,ppkf)
24961 #define IKnownFolderManager_RegisterFolder(This,rfid,pKFD) (This)->lpVtbl->RegisterFolder(This,rfid,pKFD)
24962 #define IKnownFolderManager_UnregisterFolder(This,rfid) (This)->lpVtbl->UnregisterFolder(This,rfid)
24963 #define IKnownFolderManager_FindFolderFromPath(This,pszPath,mode,ppkf) (This)->lpVtbl->FindFolderFromPath(This,pszPath,mode,ppkf)
24964 #define IKnownFolderManager_FindFolderFromIDList(This,pidl,ppkf) (This)->lpVtbl->FindFolderFromIDList(This,pidl,ppkf)
24965 #define IKnownFolderManager_Redirect(This,rfid,hwnd,flags,pszTargetPath,cFolders,pExclusion,ppszError) (This)->lpVtbl->Redirect(This,rfid,hwnd,flags,pszTargetPath,cFolders,pExclusion,ppszError)
24966 #else
24967 /*** IUnknown methods ***/
24968 static FORCEINLINE HRESULT IKnownFolderManager_QueryInterface(IKnownFolderManager* This,REFIID riid,void **ppvObject) {
24969     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
24970 }
24971 static FORCEINLINE ULONG IKnownFolderManager_AddRef(IKnownFolderManager* This) {
24972     return This->lpVtbl->AddRef(This);
24973 }
24974 static FORCEINLINE ULONG IKnownFolderManager_Release(IKnownFolderManager* This) {
24975     return This->lpVtbl->Release(This);
24976 }
24977 /*** IKnownFolderManager methods ***/
24978 static FORCEINLINE HRESULT IKnownFolderManager_FolderIdFromCsidl(IKnownFolderManager* This,int nCsidl,KNOWNFOLDERID *pfid) {
24979     return This->lpVtbl->FolderIdFromCsidl(This,nCsidl,pfid);
24980 }
24981 static FORCEINLINE HRESULT IKnownFolderManager_FolderIdToCsidl(IKnownFolderManager* This,REFKNOWNFOLDERID rfid,int *pnCsidl) {
24982     return This->lpVtbl->FolderIdToCsidl(This,rfid,pnCsidl);
24983 }
24984 static FORCEINLINE HRESULT IKnownFolderManager_GetFolderIds(IKnownFolderManager* This,KNOWNFOLDERID **ppKFId,UINT *pCount) {
24985     return This->lpVtbl->GetFolderIds(This,ppKFId,pCount);
24986 }
24987 static FORCEINLINE HRESULT IKnownFolderManager_GetFolder(IKnownFolderManager* This,REFKNOWNFOLDERID rfid,IKnownFolder **ppkf) {
24988     return This->lpVtbl->GetFolder(This,rfid,ppkf);
24989 }
24990 static FORCEINLINE HRESULT IKnownFolderManager_GetFolderByName(IKnownFolderManager* This,LPCWSTR pszCanonicalName,IKnownFolder **ppkf) {
24991     return This->lpVtbl->GetFolderByName(This,pszCanonicalName,ppkf);
24992 }
24993 static FORCEINLINE HRESULT IKnownFolderManager_RegisterFolder(IKnownFolderManager* This,REFKNOWNFOLDERID rfid,const KNOWNFOLDER_DEFINITION *pKFD) {
24994     return This->lpVtbl->RegisterFolder(This,rfid,pKFD);
24995 }
24996 static FORCEINLINE HRESULT IKnownFolderManager_UnregisterFolder(IKnownFolderManager* This,REFKNOWNFOLDERID rfid) {
24997     return This->lpVtbl->UnregisterFolder(This,rfid);
24998 }
24999 static FORCEINLINE HRESULT IKnownFolderManager_FindFolderFromPath(IKnownFolderManager* This,LPCWSTR pszPath,FFFP_MODE mode,IKnownFolder **ppkf) {
25000     return This->lpVtbl->FindFolderFromPath(This,pszPath,mode,ppkf);
25001 }
25002 static FORCEINLINE HRESULT IKnownFolderManager_FindFolderFromIDList(IKnownFolderManager* This,PCIDLIST_ABSOLUTE pidl,IKnownFolder **ppkf) {
25003     return This->lpVtbl->FindFolderFromIDList(This,pidl,ppkf);
25004 }
25005 static FORCEINLINE HRESULT IKnownFolderManager_Redirect(IKnownFolderManager* This,REFKNOWNFOLDERID rfid,HWND hwnd,KF_REDIRECT_FLAGS flags,LPCWSTR pszTargetPath,UINT cFolders,const KNOWNFOLDERID *pExclusion,LPWSTR *ppszError) {
25006     return This->lpVtbl->Redirect(This,rfid,hwnd,flags,pszTargetPath,cFolders,pExclusion,ppszError);
25007 }
25008 #endif
25009 #endif
25010 
25011 #endif
25012 
25013 HRESULT STDMETHODCALLTYPE IKnownFolderManager_RemoteRedirect_Proxy(
25014     IKnownFolderManager* This,
25015     REFKNOWNFOLDERID rfid,
25016     HWND hwnd,
25017     KF_REDIRECT_FLAGS flags,
25018     LPCWSTR pszTargetPath,
25019     UINT cFolders,
25020     const GUID *pExclusion,
25021     LPWSTR *ppszError);
25022 void __RPC_STUB IKnownFolderManager_RemoteRedirect_Stub(
25023     IRpcStubBuffer* This,
25024     IRpcChannelBuffer* pRpcChannelBuffer,
25025     PRPC_MESSAGE pRpcMessage,
25026     DWORD* pdwStubPhase);
25027 HRESULT CALLBACK IKnownFolderManager_Redirect_Proxy(
25028     IKnownFolderManager* This,
25029     REFKNOWNFOLDERID rfid,
25030     HWND hwnd,
25031     KF_REDIRECT_FLAGS flags,
25032     LPCWSTR pszTargetPath,
25033     UINT cFolders,
25034     const KNOWNFOLDERID *pExclusion,
25035     LPWSTR *ppszError);
25036 HRESULT __RPC_STUB IKnownFolderManager_Redirect_Stub(
25037     IKnownFolderManager* This,
25038     REFKNOWNFOLDERID rfid,
25039     HWND hwnd,
25040     KF_REDIRECT_FLAGS flags,
25041     LPCWSTR pszTargetPath,
25042     UINT cFolders,
25043     const GUID *pExclusion,
25044     LPWSTR *ppszError);
25045 
25046 #endif  /* __IKnownFolderManager_INTERFACE_DEFINED__ */
25047 
25048 
FreeKnownFolderDefinitionFields(KNOWNFOLDER_DEFINITION * pKFD)25049   __forceinline void FreeKnownFolderDefinitionFields(KNOWNFOLDER_DEFINITION *pKFD) {
25050     CoTaskMemFree(pKFD->pszName);
25051     CoTaskMemFree(pKFD->pszDescription);
25052     CoTaskMemFree(pKFD->pszRelativePath);
25053     CoTaskMemFree(pKFD->pszParsingName);
25054     CoTaskMemFree(pKFD->pszTooltip);
25055     CoTaskMemFree(pKFD->pszLocalizedName);
25056     CoTaskMemFree(pKFD->pszIcon);
25057     CoTaskMemFree(pKFD->pszSecurity);
25058   }
25059 
25060 typedef enum SHARE_ROLE {
25061     SHARE_ROLE_INVALID = -1,
25062     SHARE_ROLE_READER = 0,
25063     SHARE_ROLE_CONTRIBUTOR = 1,
25064     SHARE_ROLE_CO_OWNER = 2,
25065     SHARE_ROLE_OWNER = 3,
25066     SHARE_ROLE_CUSTOM = 4,
25067     SHARE_ROLE_MIXED = 5
25068 } SHARE_ROLE;
25069 
25070 typedef enum DEF_SHARE_ID {
25071     DEFSHAREID_USERS = 1,
25072     DEFSHAREID_PUBLIC = 2
25073 } DEF_SHARE_ID;
25074 
25075 /*****************************************************************************
25076  * ISharingConfigurationManager interface
25077  */
25078 #ifndef __ISharingConfigurationManager_INTERFACE_DEFINED__
25079 #define __ISharingConfigurationManager_INTERFACE_DEFINED__
25080 
25081 DEFINE_GUID(IID_ISharingConfigurationManager, 0xb4cd448a, 0x9c86, 0x4466, 0x92,0x01, 0x2e,0x62,0x10,0x5b,0x87,0xae);
25082 #if defined(__cplusplus) && !defined(CINTERFACE)
25083 MIDL_INTERFACE("b4cd448a-9c86-4466-9201-2e62105b87ae")
25084 ISharingConfigurationManager : public IUnknown
25085 {
25086     virtual HRESULT STDMETHODCALLTYPE CreateShare(
25087         DEF_SHARE_ID dsid,
25088         SHARE_ROLE role) = 0;
25089 
25090     virtual HRESULT STDMETHODCALLTYPE DeleteShare(
25091         DEF_SHARE_ID dsid) = 0;
25092 
25093     virtual HRESULT STDMETHODCALLTYPE ShareExists(
25094         DEF_SHARE_ID dsid) = 0;
25095 
25096     virtual HRESULT STDMETHODCALLTYPE GetSharePermissions(
25097         DEF_SHARE_ID dsid,
25098         SHARE_ROLE *pRole) = 0;
25099 
25100     virtual HRESULT STDMETHODCALLTYPE SharePrinters(
25101         ) = 0;
25102 
25103     virtual HRESULT STDMETHODCALLTYPE StopSharingPrinters(
25104         ) = 0;
25105 
25106     virtual HRESULT STDMETHODCALLTYPE ArePrintersShared(
25107         ) = 0;
25108 
25109 };
25110 #ifdef __CRT_UUID_DECL
25111 __CRT_UUID_DECL(ISharingConfigurationManager, 0xb4cd448a, 0x9c86, 0x4466, 0x92,0x01, 0x2e,0x62,0x10,0x5b,0x87,0xae)
25112 #endif
25113 #else
25114 typedef struct ISharingConfigurationManagerVtbl {
25115     BEGIN_INTERFACE
25116 
25117     /*** IUnknown methods ***/
25118     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
25119         ISharingConfigurationManager *This,
25120         REFIID riid,
25121         void **ppvObject);
25122 
25123     ULONG (STDMETHODCALLTYPE *AddRef)(
25124         ISharingConfigurationManager *This);
25125 
25126     ULONG (STDMETHODCALLTYPE *Release)(
25127         ISharingConfigurationManager *This);
25128 
25129     /*** ISharingConfigurationManager methods ***/
25130     HRESULT (STDMETHODCALLTYPE *CreateShare)(
25131         ISharingConfigurationManager *This,
25132         DEF_SHARE_ID dsid,
25133         SHARE_ROLE role);
25134 
25135     HRESULT (STDMETHODCALLTYPE *DeleteShare)(
25136         ISharingConfigurationManager *This,
25137         DEF_SHARE_ID dsid);
25138 
25139     HRESULT (STDMETHODCALLTYPE *ShareExists)(
25140         ISharingConfigurationManager *This,
25141         DEF_SHARE_ID dsid);
25142 
25143     HRESULT (STDMETHODCALLTYPE *GetSharePermissions)(
25144         ISharingConfigurationManager *This,
25145         DEF_SHARE_ID dsid,
25146         SHARE_ROLE *pRole);
25147 
25148     HRESULT (STDMETHODCALLTYPE *SharePrinters)(
25149         ISharingConfigurationManager *This);
25150 
25151     HRESULT (STDMETHODCALLTYPE *StopSharingPrinters)(
25152         ISharingConfigurationManager *This);
25153 
25154     HRESULT (STDMETHODCALLTYPE *ArePrintersShared)(
25155         ISharingConfigurationManager *This);
25156 
25157     END_INTERFACE
25158 } ISharingConfigurationManagerVtbl;
25159 
25160 interface ISharingConfigurationManager {
25161     CONST_VTBL ISharingConfigurationManagerVtbl* lpVtbl;
25162 };
25163 
25164 #ifdef COBJMACROS
25165 #ifndef WIDL_C_INLINE_WRAPPERS
25166 /*** IUnknown methods ***/
25167 #define ISharingConfigurationManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
25168 #define ISharingConfigurationManager_AddRef(This) (This)->lpVtbl->AddRef(This)
25169 #define ISharingConfigurationManager_Release(This) (This)->lpVtbl->Release(This)
25170 /*** ISharingConfigurationManager methods ***/
25171 #define ISharingConfigurationManager_CreateShare(This,dsid,role) (This)->lpVtbl->CreateShare(This,dsid,role)
25172 #define ISharingConfigurationManager_DeleteShare(This,dsid) (This)->lpVtbl->DeleteShare(This,dsid)
25173 #define ISharingConfigurationManager_ShareExists(This,dsid) (This)->lpVtbl->ShareExists(This,dsid)
25174 #define ISharingConfigurationManager_GetSharePermissions(This,dsid,pRole) (This)->lpVtbl->GetSharePermissions(This,dsid,pRole)
25175 #define ISharingConfigurationManager_SharePrinters(This) (This)->lpVtbl->SharePrinters(This)
25176 #define ISharingConfigurationManager_StopSharingPrinters(This) (This)->lpVtbl->StopSharingPrinters(This)
25177 #define ISharingConfigurationManager_ArePrintersShared(This) (This)->lpVtbl->ArePrintersShared(This)
25178 #else
25179 /*** IUnknown methods ***/
25180 static FORCEINLINE HRESULT ISharingConfigurationManager_QueryInterface(ISharingConfigurationManager* This,REFIID riid,void **ppvObject) {
25181     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
25182 }
25183 static FORCEINLINE ULONG ISharingConfigurationManager_AddRef(ISharingConfigurationManager* This) {
25184     return This->lpVtbl->AddRef(This);
25185 }
25186 static FORCEINLINE ULONG ISharingConfigurationManager_Release(ISharingConfigurationManager* This) {
25187     return This->lpVtbl->Release(This);
25188 }
25189 /*** ISharingConfigurationManager methods ***/
25190 static FORCEINLINE HRESULT ISharingConfigurationManager_CreateShare(ISharingConfigurationManager* This,DEF_SHARE_ID dsid,SHARE_ROLE role) {
25191     return This->lpVtbl->CreateShare(This,dsid,role);
25192 }
25193 static FORCEINLINE HRESULT ISharingConfigurationManager_DeleteShare(ISharingConfigurationManager* This,DEF_SHARE_ID dsid) {
25194     return This->lpVtbl->DeleteShare(This,dsid);
25195 }
25196 static FORCEINLINE HRESULT ISharingConfigurationManager_ShareExists(ISharingConfigurationManager* This,DEF_SHARE_ID dsid) {
25197     return This->lpVtbl->ShareExists(This,dsid);
25198 }
25199 static FORCEINLINE HRESULT ISharingConfigurationManager_GetSharePermissions(ISharingConfigurationManager* This,DEF_SHARE_ID dsid,SHARE_ROLE *pRole) {
25200     return This->lpVtbl->GetSharePermissions(This,dsid,pRole);
25201 }
25202 static FORCEINLINE HRESULT ISharingConfigurationManager_SharePrinters(ISharingConfigurationManager* This) {
25203     return This->lpVtbl->SharePrinters(This);
25204 }
25205 static FORCEINLINE HRESULT ISharingConfigurationManager_StopSharingPrinters(ISharingConfigurationManager* This) {
25206     return This->lpVtbl->StopSharingPrinters(This);
25207 }
25208 static FORCEINLINE HRESULT ISharingConfigurationManager_ArePrintersShared(ISharingConfigurationManager* This) {
25209     return This->lpVtbl->ArePrintersShared(This);
25210 }
25211 #endif
25212 #endif
25213 
25214 #endif
25215 
25216 
25217 #endif  /* __ISharingConfigurationManager_INTERFACE_DEFINED__ */
25218 
25219 #endif
25220 
25221 /*****************************************************************************
25222  * IPreviousVersionsInfo interface
25223  */
25224 #ifndef __IPreviousVersionsInfo_INTERFACE_DEFINED__
25225 #define __IPreviousVersionsInfo_INTERFACE_DEFINED__
25226 
25227 DEFINE_GUID(IID_IPreviousVersionsInfo, 0x76e54780, 0xad74, 0x48e3, 0xa6,0x95, 0x3b,0xa9,0xa0,0xaf,0xf1,0x0d);
25228 #if defined(__cplusplus) && !defined(CINTERFACE)
25229 MIDL_INTERFACE("76e54780-ad74-48e3-a695-3ba9a0aff10d")
25230 IPreviousVersionsInfo : public IUnknown
25231 {
25232     virtual HRESULT STDMETHODCALLTYPE AreSnapshotsAvailable(
25233         LPCWSTR pszPath,
25234         WINBOOL fOkToBeSlow,
25235         WINBOOL *pfAvailable) = 0;
25236 
25237 };
25238 #ifdef __CRT_UUID_DECL
25239 __CRT_UUID_DECL(IPreviousVersionsInfo, 0x76e54780, 0xad74, 0x48e3, 0xa6,0x95, 0x3b,0xa9,0xa0,0xaf,0xf1,0x0d)
25240 #endif
25241 #else
25242 typedef struct IPreviousVersionsInfoVtbl {
25243     BEGIN_INTERFACE
25244 
25245     /*** IUnknown methods ***/
25246     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
25247         IPreviousVersionsInfo *This,
25248         REFIID riid,
25249         void **ppvObject);
25250 
25251     ULONG (STDMETHODCALLTYPE *AddRef)(
25252         IPreviousVersionsInfo *This);
25253 
25254     ULONG (STDMETHODCALLTYPE *Release)(
25255         IPreviousVersionsInfo *This);
25256 
25257     /*** IPreviousVersionsInfo methods ***/
25258     HRESULT (STDMETHODCALLTYPE *AreSnapshotsAvailable)(
25259         IPreviousVersionsInfo *This,
25260         LPCWSTR pszPath,
25261         WINBOOL fOkToBeSlow,
25262         WINBOOL *pfAvailable);
25263 
25264     END_INTERFACE
25265 } IPreviousVersionsInfoVtbl;
25266 
25267 interface IPreviousVersionsInfo {
25268     CONST_VTBL IPreviousVersionsInfoVtbl* lpVtbl;
25269 };
25270 
25271 #ifdef COBJMACROS
25272 #ifndef WIDL_C_INLINE_WRAPPERS
25273 /*** IUnknown methods ***/
25274 #define IPreviousVersionsInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
25275 #define IPreviousVersionsInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
25276 #define IPreviousVersionsInfo_Release(This) (This)->lpVtbl->Release(This)
25277 /*** IPreviousVersionsInfo methods ***/
25278 #define IPreviousVersionsInfo_AreSnapshotsAvailable(This,pszPath,fOkToBeSlow,pfAvailable) (This)->lpVtbl->AreSnapshotsAvailable(This,pszPath,fOkToBeSlow,pfAvailable)
25279 #else
25280 /*** IUnknown methods ***/
25281 static FORCEINLINE HRESULT IPreviousVersionsInfo_QueryInterface(IPreviousVersionsInfo* This,REFIID riid,void **ppvObject) {
25282     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
25283 }
25284 static FORCEINLINE ULONG IPreviousVersionsInfo_AddRef(IPreviousVersionsInfo* This) {
25285     return This->lpVtbl->AddRef(This);
25286 }
25287 static FORCEINLINE ULONG IPreviousVersionsInfo_Release(IPreviousVersionsInfo* This) {
25288     return This->lpVtbl->Release(This);
25289 }
25290 /*** IPreviousVersionsInfo methods ***/
25291 static FORCEINLINE HRESULT IPreviousVersionsInfo_AreSnapshotsAvailable(IPreviousVersionsInfo* This,LPCWSTR pszPath,WINBOOL fOkToBeSlow,WINBOOL *pfAvailable) {
25292     return This->lpVtbl->AreSnapshotsAvailable(This,pszPath,fOkToBeSlow,pfAvailable);
25293 }
25294 #endif
25295 #endif
25296 
25297 #endif
25298 
25299 
25300 #endif  /* __IPreviousVersionsInfo_INTERFACE_DEFINED__ */
25301 
25302 
25303 #if NTDDI_VERSION >= NTDDI_VISTA
25304 /*****************************************************************************
25305  * IRelatedItem interface
25306  */
25307 #ifndef __IRelatedItem_INTERFACE_DEFINED__
25308 #define __IRelatedItem_INTERFACE_DEFINED__
25309 
25310 DEFINE_GUID(IID_IRelatedItem, 0xa73ce67a, 0x8ab1, 0x44f1, 0x8d,0x43, 0xd2,0xfc,0xbf,0x6b,0x1c,0xd0);
25311 #if defined(__cplusplus) && !defined(CINTERFACE)
25312 MIDL_INTERFACE("a73ce67a-8ab1-44f1-8d43-d2fcbf6b1cd0")
25313 IRelatedItem : public IUnknown
25314 {
25315     virtual HRESULT STDMETHODCALLTYPE GetItemIDList(
25316         PIDLIST_ABSOLUTE *ppidl) = 0;
25317 
25318     virtual HRESULT STDMETHODCALLTYPE GetItem(
25319         IShellItem **ppsi) = 0;
25320 
25321 };
25322 #ifdef __CRT_UUID_DECL
25323 __CRT_UUID_DECL(IRelatedItem, 0xa73ce67a, 0x8ab1, 0x44f1, 0x8d,0x43, 0xd2,0xfc,0xbf,0x6b,0x1c,0xd0)
25324 #endif
25325 #else
25326 typedef struct IRelatedItemVtbl {
25327     BEGIN_INTERFACE
25328 
25329     /*** IUnknown methods ***/
25330     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
25331         IRelatedItem *This,
25332         REFIID riid,
25333         void **ppvObject);
25334 
25335     ULONG (STDMETHODCALLTYPE *AddRef)(
25336         IRelatedItem *This);
25337 
25338     ULONG (STDMETHODCALLTYPE *Release)(
25339         IRelatedItem *This);
25340 
25341     /*** IRelatedItem methods ***/
25342     HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
25343         IRelatedItem *This,
25344         PIDLIST_ABSOLUTE *ppidl);
25345 
25346     HRESULT (STDMETHODCALLTYPE *GetItem)(
25347         IRelatedItem *This,
25348         IShellItem **ppsi);
25349 
25350     END_INTERFACE
25351 } IRelatedItemVtbl;
25352 
25353 interface IRelatedItem {
25354     CONST_VTBL IRelatedItemVtbl* lpVtbl;
25355 };
25356 
25357 #ifdef COBJMACROS
25358 #ifndef WIDL_C_INLINE_WRAPPERS
25359 /*** IUnknown methods ***/
25360 #define IRelatedItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
25361 #define IRelatedItem_AddRef(This) (This)->lpVtbl->AddRef(This)
25362 #define IRelatedItem_Release(This) (This)->lpVtbl->Release(This)
25363 /*** IRelatedItem methods ***/
25364 #define IRelatedItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
25365 #define IRelatedItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
25366 #else
25367 /*** IUnknown methods ***/
25368 static FORCEINLINE HRESULT IRelatedItem_QueryInterface(IRelatedItem* This,REFIID riid,void **ppvObject) {
25369     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
25370 }
25371 static FORCEINLINE ULONG IRelatedItem_AddRef(IRelatedItem* This) {
25372     return This->lpVtbl->AddRef(This);
25373 }
25374 static FORCEINLINE ULONG IRelatedItem_Release(IRelatedItem* This) {
25375     return This->lpVtbl->Release(This);
25376 }
25377 /*** IRelatedItem methods ***/
25378 static FORCEINLINE HRESULT IRelatedItem_GetItemIDList(IRelatedItem* This,PIDLIST_ABSOLUTE *ppidl) {
25379     return This->lpVtbl->GetItemIDList(This,ppidl);
25380 }
25381 static FORCEINLINE HRESULT IRelatedItem_GetItem(IRelatedItem* This,IShellItem **ppsi) {
25382     return This->lpVtbl->GetItem(This,ppsi);
25383 }
25384 #endif
25385 #endif
25386 
25387 #endif
25388 
25389 
25390 #endif  /* __IRelatedItem_INTERFACE_DEFINED__ */
25391 
25392 
25393 /*****************************************************************************
25394  * IIdentityName interface
25395  */
25396 #ifndef __IIdentityName_INTERFACE_DEFINED__
25397 #define __IIdentityName_INTERFACE_DEFINED__
25398 
25399 DEFINE_GUID(IID_IIdentityName, 0x7d903fca, 0xd6f9, 0x4810, 0x83,0x32, 0x94,0x6c,0x01,0x77,0xe2,0x47);
25400 #if defined(__cplusplus) && !defined(CINTERFACE)
25401 MIDL_INTERFACE("7d903fca-d6f9-4810-8332-946c0177e247")
25402 IIdentityName : public IRelatedItem
25403 {
25404 };
25405 #ifdef __CRT_UUID_DECL
25406 __CRT_UUID_DECL(IIdentityName, 0x7d903fca, 0xd6f9, 0x4810, 0x83,0x32, 0x94,0x6c,0x01,0x77,0xe2,0x47)
25407 #endif
25408 #else
25409 typedef struct IIdentityNameVtbl {
25410     BEGIN_INTERFACE
25411 
25412     /*** IUnknown methods ***/
25413     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
25414         IIdentityName *This,
25415         REFIID riid,
25416         void **ppvObject);
25417 
25418     ULONG (STDMETHODCALLTYPE *AddRef)(
25419         IIdentityName *This);
25420 
25421     ULONG (STDMETHODCALLTYPE *Release)(
25422         IIdentityName *This);
25423 
25424     /*** IRelatedItem methods ***/
25425     HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
25426         IIdentityName *This,
25427         PIDLIST_ABSOLUTE *ppidl);
25428 
25429     HRESULT (STDMETHODCALLTYPE *GetItem)(
25430         IIdentityName *This,
25431         IShellItem **ppsi);
25432 
25433     END_INTERFACE
25434 } IIdentityNameVtbl;
25435 
25436 interface IIdentityName {
25437     CONST_VTBL IIdentityNameVtbl* lpVtbl;
25438 };
25439 
25440 #ifdef COBJMACROS
25441 #ifndef WIDL_C_INLINE_WRAPPERS
25442 /*** IUnknown methods ***/
25443 #define IIdentityName_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
25444 #define IIdentityName_AddRef(This) (This)->lpVtbl->AddRef(This)
25445 #define IIdentityName_Release(This) (This)->lpVtbl->Release(This)
25446 /*** IRelatedItem methods ***/
25447 #define IIdentityName_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
25448 #define IIdentityName_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
25449 #else
25450 /*** IUnknown methods ***/
25451 static FORCEINLINE HRESULT IIdentityName_QueryInterface(IIdentityName* This,REFIID riid,void **ppvObject) {
25452     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
25453 }
25454 static FORCEINLINE ULONG IIdentityName_AddRef(IIdentityName* This) {
25455     return This->lpVtbl->AddRef(This);
25456 }
25457 static FORCEINLINE ULONG IIdentityName_Release(IIdentityName* This) {
25458     return This->lpVtbl->Release(This);
25459 }
25460 /*** IRelatedItem methods ***/
25461 static FORCEINLINE HRESULT IIdentityName_GetItemIDList(IIdentityName* This,PIDLIST_ABSOLUTE *ppidl) {
25462     return This->lpVtbl->GetItemIDList(This,ppidl);
25463 }
25464 static FORCEINLINE HRESULT IIdentityName_GetItem(IIdentityName* This,IShellItem **ppsi) {
25465     return This->lpVtbl->GetItem(This,ppsi);
25466 }
25467 #endif
25468 #endif
25469 
25470 #endif
25471 
25472 
25473 #endif  /* __IIdentityName_INTERFACE_DEFINED__ */
25474 
25475 
25476 /*****************************************************************************
25477  * IDelegateItem interface
25478  */
25479 #ifndef __IDelegateItem_INTERFACE_DEFINED__
25480 #define __IDelegateItem_INTERFACE_DEFINED__
25481 
25482 DEFINE_GUID(IID_IDelegateItem, 0x3c5a1c94, 0xc951, 0x4cb7, 0xbb,0x6d, 0x3b,0x93,0xf3,0x0c,0xce,0x93);
25483 #if defined(__cplusplus) && !defined(CINTERFACE)
25484 MIDL_INTERFACE("3c5a1c94-c951-4cb7-bb6d-3b93f30cce93")
25485 IDelegateItem : public IRelatedItem
25486 {
25487 };
25488 #ifdef __CRT_UUID_DECL
25489 __CRT_UUID_DECL(IDelegateItem, 0x3c5a1c94, 0xc951, 0x4cb7, 0xbb,0x6d, 0x3b,0x93,0xf3,0x0c,0xce,0x93)
25490 #endif
25491 #else
25492 typedef struct IDelegateItemVtbl {
25493     BEGIN_INTERFACE
25494 
25495     /*** IUnknown methods ***/
25496     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
25497         IDelegateItem *This,
25498         REFIID riid,
25499         void **ppvObject);
25500 
25501     ULONG (STDMETHODCALLTYPE *AddRef)(
25502         IDelegateItem *This);
25503 
25504     ULONG (STDMETHODCALLTYPE *Release)(
25505         IDelegateItem *This);
25506 
25507     /*** IRelatedItem methods ***/
25508     HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
25509         IDelegateItem *This,
25510         PIDLIST_ABSOLUTE *ppidl);
25511 
25512     HRESULT (STDMETHODCALLTYPE *GetItem)(
25513         IDelegateItem *This,
25514         IShellItem **ppsi);
25515 
25516     END_INTERFACE
25517 } IDelegateItemVtbl;
25518 
25519 interface IDelegateItem {
25520     CONST_VTBL IDelegateItemVtbl* lpVtbl;
25521 };
25522 
25523 #ifdef COBJMACROS
25524 #ifndef WIDL_C_INLINE_WRAPPERS
25525 /*** IUnknown methods ***/
25526 #define IDelegateItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
25527 #define IDelegateItem_AddRef(This) (This)->lpVtbl->AddRef(This)
25528 #define IDelegateItem_Release(This) (This)->lpVtbl->Release(This)
25529 /*** IRelatedItem methods ***/
25530 #define IDelegateItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
25531 #define IDelegateItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
25532 #else
25533 /*** IUnknown methods ***/
25534 static FORCEINLINE HRESULT IDelegateItem_QueryInterface(IDelegateItem* This,REFIID riid,void **ppvObject) {
25535     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
25536 }
25537 static FORCEINLINE ULONG IDelegateItem_AddRef(IDelegateItem* This) {
25538     return This->lpVtbl->AddRef(This);
25539 }
25540 static FORCEINLINE ULONG IDelegateItem_Release(IDelegateItem* This) {
25541     return This->lpVtbl->Release(This);
25542 }
25543 /*** IRelatedItem methods ***/
25544 static FORCEINLINE HRESULT IDelegateItem_GetItemIDList(IDelegateItem* This,PIDLIST_ABSOLUTE *ppidl) {
25545     return This->lpVtbl->GetItemIDList(This,ppidl);
25546 }
25547 static FORCEINLINE HRESULT IDelegateItem_GetItem(IDelegateItem* This,IShellItem **ppsi) {
25548     return This->lpVtbl->GetItem(This,ppsi);
25549 }
25550 #endif
25551 #endif
25552 
25553 #endif
25554 
25555 
25556 #endif  /* __IDelegateItem_INTERFACE_DEFINED__ */
25557 
25558 
25559 /*****************************************************************************
25560  * ICurrentItem interface
25561  */
25562 #ifndef __ICurrentItem_INTERFACE_DEFINED__
25563 #define __ICurrentItem_INTERFACE_DEFINED__
25564 
25565 DEFINE_GUID(IID_ICurrentItem, 0x240a7174, 0xd653, 0x4a1d, 0xa6,0xd3, 0xd4,0x94,0x3c,0xfb,0xfe,0x3d);
25566 #if defined(__cplusplus) && !defined(CINTERFACE)
25567 MIDL_INTERFACE("240a7174-d653-4a1d-a6d3-d4943cfbfe3d")
25568 ICurrentItem : public IRelatedItem
25569 {
25570 };
25571 #ifdef __CRT_UUID_DECL
25572 __CRT_UUID_DECL(ICurrentItem, 0x240a7174, 0xd653, 0x4a1d, 0xa6,0xd3, 0xd4,0x94,0x3c,0xfb,0xfe,0x3d)
25573 #endif
25574 #else
25575 typedef struct ICurrentItemVtbl {
25576     BEGIN_INTERFACE
25577 
25578     /*** IUnknown methods ***/
25579     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
25580         ICurrentItem *This,
25581         REFIID riid,
25582         void **ppvObject);
25583 
25584     ULONG (STDMETHODCALLTYPE *AddRef)(
25585         ICurrentItem *This);
25586 
25587     ULONG (STDMETHODCALLTYPE *Release)(
25588         ICurrentItem *This);
25589 
25590     /*** IRelatedItem methods ***/
25591     HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
25592         ICurrentItem *This,
25593         PIDLIST_ABSOLUTE *ppidl);
25594 
25595     HRESULT (STDMETHODCALLTYPE *GetItem)(
25596         ICurrentItem *This,
25597         IShellItem **ppsi);
25598 
25599     END_INTERFACE
25600 } ICurrentItemVtbl;
25601 
25602 interface ICurrentItem {
25603     CONST_VTBL ICurrentItemVtbl* lpVtbl;
25604 };
25605 
25606 #ifdef COBJMACROS
25607 #ifndef WIDL_C_INLINE_WRAPPERS
25608 /*** IUnknown methods ***/
25609 #define ICurrentItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
25610 #define ICurrentItem_AddRef(This) (This)->lpVtbl->AddRef(This)
25611 #define ICurrentItem_Release(This) (This)->lpVtbl->Release(This)
25612 /*** IRelatedItem methods ***/
25613 #define ICurrentItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
25614 #define ICurrentItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
25615 #else
25616 /*** IUnknown methods ***/
25617 static FORCEINLINE HRESULT ICurrentItem_QueryInterface(ICurrentItem* This,REFIID riid,void **ppvObject) {
25618     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
25619 }
25620 static FORCEINLINE ULONG ICurrentItem_AddRef(ICurrentItem* This) {
25621     return This->lpVtbl->AddRef(This);
25622 }
25623 static FORCEINLINE ULONG ICurrentItem_Release(ICurrentItem* This) {
25624     return This->lpVtbl->Release(This);
25625 }
25626 /*** IRelatedItem methods ***/
25627 static FORCEINLINE HRESULT ICurrentItem_GetItemIDList(ICurrentItem* This,PIDLIST_ABSOLUTE *ppidl) {
25628     return This->lpVtbl->GetItemIDList(This,ppidl);
25629 }
25630 static FORCEINLINE HRESULT ICurrentItem_GetItem(ICurrentItem* This,IShellItem **ppsi) {
25631     return This->lpVtbl->GetItem(This,ppsi);
25632 }
25633 #endif
25634 #endif
25635 
25636 #endif
25637 
25638 
25639 #endif  /* __ICurrentItem_INTERFACE_DEFINED__ */
25640 
25641 
25642 /*****************************************************************************
25643  * ITransferMediumItem interface
25644  */
25645 #ifndef __ITransferMediumItem_INTERFACE_DEFINED__
25646 #define __ITransferMediumItem_INTERFACE_DEFINED__
25647 
25648 DEFINE_GUID(IID_ITransferMediumItem, 0x77f295d5, 0x2d6f, 0x4e19, 0xb8,0xae, 0x32,0x2f,0x3e,0x72,0x1a,0xb5);
25649 #if defined(__cplusplus) && !defined(CINTERFACE)
25650 MIDL_INTERFACE("77f295d5-2d6f-4e19-b8ae-322f3e721ab5")
25651 ITransferMediumItem : public IRelatedItem
25652 {
25653 };
25654 #ifdef __CRT_UUID_DECL
25655 __CRT_UUID_DECL(ITransferMediumItem, 0x77f295d5, 0x2d6f, 0x4e19, 0xb8,0xae, 0x32,0x2f,0x3e,0x72,0x1a,0xb5)
25656 #endif
25657 #else
25658 typedef struct ITransferMediumItemVtbl {
25659     BEGIN_INTERFACE
25660 
25661     /*** IUnknown methods ***/
25662     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
25663         ITransferMediumItem *This,
25664         REFIID riid,
25665         void **ppvObject);
25666 
25667     ULONG (STDMETHODCALLTYPE *AddRef)(
25668         ITransferMediumItem *This);
25669 
25670     ULONG (STDMETHODCALLTYPE *Release)(
25671         ITransferMediumItem *This);
25672 
25673     /*** IRelatedItem methods ***/
25674     HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
25675         ITransferMediumItem *This,
25676         PIDLIST_ABSOLUTE *ppidl);
25677 
25678     HRESULT (STDMETHODCALLTYPE *GetItem)(
25679         ITransferMediumItem *This,
25680         IShellItem **ppsi);
25681 
25682     END_INTERFACE
25683 } ITransferMediumItemVtbl;
25684 
25685 interface ITransferMediumItem {
25686     CONST_VTBL ITransferMediumItemVtbl* lpVtbl;
25687 };
25688 
25689 #ifdef COBJMACROS
25690 #ifndef WIDL_C_INLINE_WRAPPERS
25691 /*** IUnknown methods ***/
25692 #define ITransferMediumItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
25693 #define ITransferMediumItem_AddRef(This) (This)->lpVtbl->AddRef(This)
25694 #define ITransferMediumItem_Release(This) (This)->lpVtbl->Release(This)
25695 /*** IRelatedItem methods ***/
25696 #define ITransferMediumItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
25697 #define ITransferMediumItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
25698 #else
25699 /*** IUnknown methods ***/
25700 static FORCEINLINE HRESULT ITransferMediumItem_QueryInterface(ITransferMediumItem* This,REFIID riid,void **ppvObject) {
25701     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
25702 }
25703 static FORCEINLINE ULONG ITransferMediumItem_AddRef(ITransferMediumItem* This) {
25704     return This->lpVtbl->AddRef(This);
25705 }
25706 static FORCEINLINE ULONG ITransferMediumItem_Release(ITransferMediumItem* This) {
25707     return This->lpVtbl->Release(This);
25708 }
25709 /*** IRelatedItem methods ***/
25710 static FORCEINLINE HRESULT ITransferMediumItem_GetItemIDList(ITransferMediumItem* This,PIDLIST_ABSOLUTE *ppidl) {
25711     return This->lpVtbl->GetItemIDList(This,ppidl);
25712 }
25713 static FORCEINLINE HRESULT ITransferMediumItem_GetItem(ITransferMediumItem* This,IShellItem **ppsi) {
25714     return This->lpVtbl->GetItem(This,ppsi);
25715 }
25716 #endif
25717 #endif
25718 
25719 #endif
25720 
25721 
25722 #endif  /* __ITransferMediumItem_INTERFACE_DEFINED__ */
25723 
25724 
25725 /*****************************************************************************
25726  * IUseToBrowseItem interface
25727  */
25728 #ifndef __IUseToBrowseItem_INTERFACE_DEFINED__
25729 #define __IUseToBrowseItem_INTERFACE_DEFINED__
25730 
25731 DEFINE_GUID(IID_IUseToBrowseItem, 0x05edda5c, 0x98a3, 0x4717, 0x8a,0xdb, 0xc5,0xe7,0xda,0x99,0x1e,0xb1);
25732 #if defined(__cplusplus) && !defined(CINTERFACE)
25733 MIDL_INTERFACE("05edda5c-98a3-4717-8adb-c5e7da991eb1")
25734 IUseToBrowseItem : public IRelatedItem
25735 {
25736 };
25737 #ifdef __CRT_UUID_DECL
25738 __CRT_UUID_DECL(IUseToBrowseItem, 0x05edda5c, 0x98a3, 0x4717, 0x8a,0xdb, 0xc5,0xe7,0xda,0x99,0x1e,0xb1)
25739 #endif
25740 #else
25741 typedef struct IUseToBrowseItemVtbl {
25742     BEGIN_INTERFACE
25743 
25744     /*** IUnknown methods ***/
25745     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
25746         IUseToBrowseItem *This,
25747         REFIID riid,
25748         void **ppvObject);
25749 
25750     ULONG (STDMETHODCALLTYPE *AddRef)(
25751         IUseToBrowseItem *This);
25752 
25753     ULONG (STDMETHODCALLTYPE *Release)(
25754         IUseToBrowseItem *This);
25755 
25756     /*** IRelatedItem methods ***/
25757     HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
25758         IUseToBrowseItem *This,
25759         PIDLIST_ABSOLUTE *ppidl);
25760 
25761     HRESULT (STDMETHODCALLTYPE *GetItem)(
25762         IUseToBrowseItem *This,
25763         IShellItem **ppsi);
25764 
25765     END_INTERFACE
25766 } IUseToBrowseItemVtbl;
25767 
25768 interface IUseToBrowseItem {
25769     CONST_VTBL IUseToBrowseItemVtbl* lpVtbl;
25770 };
25771 
25772 #ifdef COBJMACROS
25773 #ifndef WIDL_C_INLINE_WRAPPERS
25774 /*** IUnknown methods ***/
25775 #define IUseToBrowseItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
25776 #define IUseToBrowseItem_AddRef(This) (This)->lpVtbl->AddRef(This)
25777 #define IUseToBrowseItem_Release(This) (This)->lpVtbl->Release(This)
25778 /*** IRelatedItem methods ***/
25779 #define IUseToBrowseItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
25780 #define IUseToBrowseItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
25781 #else
25782 /*** IUnknown methods ***/
25783 static FORCEINLINE HRESULT IUseToBrowseItem_QueryInterface(IUseToBrowseItem* This,REFIID riid,void **ppvObject) {
25784     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
25785 }
25786 static FORCEINLINE ULONG IUseToBrowseItem_AddRef(IUseToBrowseItem* This) {
25787     return This->lpVtbl->AddRef(This);
25788 }
25789 static FORCEINLINE ULONG IUseToBrowseItem_Release(IUseToBrowseItem* This) {
25790     return This->lpVtbl->Release(This);
25791 }
25792 /*** IRelatedItem methods ***/
25793 static FORCEINLINE HRESULT IUseToBrowseItem_GetItemIDList(IUseToBrowseItem* This,PIDLIST_ABSOLUTE *ppidl) {
25794     return This->lpVtbl->GetItemIDList(This,ppidl);
25795 }
25796 static FORCEINLINE HRESULT IUseToBrowseItem_GetItem(IUseToBrowseItem* This,IShellItem **ppsi) {
25797     return This->lpVtbl->GetItem(This,ppsi);
25798 }
25799 #endif
25800 #endif
25801 
25802 #endif
25803 
25804 
25805 #endif  /* __IUseToBrowseItem_INTERFACE_DEFINED__ */
25806 
25807 
25808 /*****************************************************************************
25809  * IDisplayItem interface
25810  */
25811 #ifndef __IDisplayItem_INTERFACE_DEFINED__
25812 #define __IDisplayItem_INTERFACE_DEFINED__
25813 
25814 DEFINE_GUID(IID_IDisplayItem, 0xc6fd5997, 0x9f6b, 0x4888, 0x87,0x03, 0x94,0xe8,0x0e,0x8c,0xde,0x3f);
25815 #if defined(__cplusplus) && !defined(CINTERFACE)
25816 MIDL_INTERFACE("c6fd5997-9f6b-4888-8703-94e80e8cde3f")
25817 IDisplayItem : public IRelatedItem
25818 {
25819 };
25820 #ifdef __CRT_UUID_DECL
25821 __CRT_UUID_DECL(IDisplayItem, 0xc6fd5997, 0x9f6b, 0x4888, 0x87,0x03, 0x94,0xe8,0x0e,0x8c,0xde,0x3f)
25822 #endif
25823 #else
25824 typedef struct IDisplayItemVtbl {
25825     BEGIN_INTERFACE
25826 
25827     /*** IUnknown methods ***/
25828     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
25829         IDisplayItem *This,
25830         REFIID riid,
25831         void **ppvObject);
25832 
25833     ULONG (STDMETHODCALLTYPE *AddRef)(
25834         IDisplayItem *This);
25835 
25836     ULONG (STDMETHODCALLTYPE *Release)(
25837         IDisplayItem *This);
25838 
25839     /*** IRelatedItem methods ***/
25840     HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
25841         IDisplayItem *This,
25842         PIDLIST_ABSOLUTE *ppidl);
25843 
25844     HRESULT (STDMETHODCALLTYPE *GetItem)(
25845         IDisplayItem *This,
25846         IShellItem **ppsi);
25847 
25848     END_INTERFACE
25849 } IDisplayItemVtbl;
25850 
25851 interface IDisplayItem {
25852     CONST_VTBL IDisplayItemVtbl* lpVtbl;
25853 };
25854 
25855 #ifdef COBJMACROS
25856 #ifndef WIDL_C_INLINE_WRAPPERS
25857 /*** IUnknown methods ***/
25858 #define IDisplayItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
25859 #define IDisplayItem_AddRef(This) (This)->lpVtbl->AddRef(This)
25860 #define IDisplayItem_Release(This) (This)->lpVtbl->Release(This)
25861 /*** IRelatedItem methods ***/
25862 #define IDisplayItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
25863 #define IDisplayItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
25864 #else
25865 /*** IUnknown methods ***/
25866 static FORCEINLINE HRESULT IDisplayItem_QueryInterface(IDisplayItem* This,REFIID riid,void **ppvObject) {
25867     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
25868 }
25869 static FORCEINLINE ULONG IDisplayItem_AddRef(IDisplayItem* This) {
25870     return This->lpVtbl->AddRef(This);
25871 }
25872 static FORCEINLINE ULONG IDisplayItem_Release(IDisplayItem* This) {
25873     return This->lpVtbl->Release(This);
25874 }
25875 /*** IRelatedItem methods ***/
25876 static FORCEINLINE HRESULT IDisplayItem_GetItemIDList(IDisplayItem* This,PIDLIST_ABSOLUTE *ppidl) {
25877     return This->lpVtbl->GetItemIDList(This,ppidl);
25878 }
25879 static FORCEINLINE HRESULT IDisplayItem_GetItem(IDisplayItem* This,IShellItem **ppsi) {
25880     return This->lpVtbl->GetItem(This,ppsi);
25881 }
25882 #endif
25883 #endif
25884 
25885 #endif
25886 
25887 
25888 #endif  /* __IDisplayItem_INTERFACE_DEFINED__ */
25889 
25890 
25891 /*****************************************************************************
25892  * IViewStateIdentityItem interface
25893  */
25894 #ifndef __IViewStateIdentityItem_INTERFACE_DEFINED__
25895 #define __IViewStateIdentityItem_INTERFACE_DEFINED__
25896 
25897 DEFINE_GUID(IID_IViewStateIdentityItem, 0x9d264146, 0xa94f, 0x4195, 0x9f,0x9f, 0x3b,0xb1,0x2c,0xe0,0xc9,0x55);
25898 #if defined(__cplusplus) && !defined(CINTERFACE)
25899 MIDL_INTERFACE("9d264146-a94f-4195-9f9f-3bb12ce0c955")
25900 IViewStateIdentityItem : public IRelatedItem
25901 {
25902 };
25903 #ifdef __CRT_UUID_DECL
25904 __CRT_UUID_DECL(IViewStateIdentityItem, 0x9d264146, 0xa94f, 0x4195, 0x9f,0x9f, 0x3b,0xb1,0x2c,0xe0,0xc9,0x55)
25905 #endif
25906 #else
25907 typedef struct IViewStateIdentityItemVtbl {
25908     BEGIN_INTERFACE
25909 
25910     /*** IUnknown methods ***/
25911     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
25912         IViewStateIdentityItem *This,
25913         REFIID riid,
25914         void **ppvObject);
25915 
25916     ULONG (STDMETHODCALLTYPE *AddRef)(
25917         IViewStateIdentityItem *This);
25918 
25919     ULONG (STDMETHODCALLTYPE *Release)(
25920         IViewStateIdentityItem *This);
25921 
25922     /*** IRelatedItem methods ***/
25923     HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
25924         IViewStateIdentityItem *This,
25925         PIDLIST_ABSOLUTE *ppidl);
25926 
25927     HRESULT (STDMETHODCALLTYPE *GetItem)(
25928         IViewStateIdentityItem *This,
25929         IShellItem **ppsi);
25930 
25931     END_INTERFACE
25932 } IViewStateIdentityItemVtbl;
25933 
25934 interface IViewStateIdentityItem {
25935     CONST_VTBL IViewStateIdentityItemVtbl* lpVtbl;
25936 };
25937 
25938 #ifdef COBJMACROS
25939 #ifndef WIDL_C_INLINE_WRAPPERS
25940 /*** IUnknown methods ***/
25941 #define IViewStateIdentityItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
25942 #define IViewStateIdentityItem_AddRef(This) (This)->lpVtbl->AddRef(This)
25943 #define IViewStateIdentityItem_Release(This) (This)->lpVtbl->Release(This)
25944 /*** IRelatedItem methods ***/
25945 #define IViewStateIdentityItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
25946 #define IViewStateIdentityItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
25947 #else
25948 /*** IUnknown methods ***/
25949 static FORCEINLINE HRESULT IViewStateIdentityItem_QueryInterface(IViewStateIdentityItem* This,REFIID riid,void **ppvObject) {
25950     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
25951 }
25952 static FORCEINLINE ULONG IViewStateIdentityItem_AddRef(IViewStateIdentityItem* This) {
25953     return This->lpVtbl->AddRef(This);
25954 }
25955 static FORCEINLINE ULONG IViewStateIdentityItem_Release(IViewStateIdentityItem* This) {
25956     return This->lpVtbl->Release(This);
25957 }
25958 /*** IRelatedItem methods ***/
25959 static FORCEINLINE HRESULT IViewStateIdentityItem_GetItemIDList(IViewStateIdentityItem* This,PIDLIST_ABSOLUTE *ppidl) {
25960     return This->lpVtbl->GetItemIDList(This,ppidl);
25961 }
25962 static FORCEINLINE HRESULT IViewStateIdentityItem_GetItem(IViewStateIdentityItem* This,IShellItem **ppsi) {
25963     return This->lpVtbl->GetItem(This,ppsi);
25964 }
25965 #endif
25966 #endif
25967 
25968 #endif
25969 
25970 
25971 #endif  /* __IViewStateIdentityItem_INTERFACE_DEFINED__ */
25972 
25973 
25974 /*****************************************************************************
25975  * IPreviewItem interface
25976  */
25977 #ifndef __IPreviewItem_INTERFACE_DEFINED__
25978 #define __IPreviewItem_INTERFACE_DEFINED__
25979 
25980 DEFINE_GUID(IID_IPreviewItem, 0x36149969, 0x0a8f, 0x49c8, 0x8b,0x00, 0x4a,0xec,0xb2,0x02,0x22,0xfb);
25981 #if defined(__cplusplus) && !defined(CINTERFACE)
25982 MIDL_INTERFACE("36149969-0a8f-49c8-8b00-4aecb20222fb")
25983 IPreviewItem : public IRelatedItem
25984 {
25985 };
25986 #ifdef __CRT_UUID_DECL
25987 __CRT_UUID_DECL(IPreviewItem, 0x36149969, 0x0a8f, 0x49c8, 0x8b,0x00, 0x4a,0xec,0xb2,0x02,0x22,0xfb)
25988 #endif
25989 #else
25990 typedef struct IPreviewItemVtbl {
25991     BEGIN_INTERFACE
25992 
25993     /*** IUnknown methods ***/
25994     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
25995         IPreviewItem *This,
25996         REFIID riid,
25997         void **ppvObject);
25998 
25999     ULONG (STDMETHODCALLTYPE *AddRef)(
26000         IPreviewItem *This);
26001 
26002     ULONG (STDMETHODCALLTYPE *Release)(
26003         IPreviewItem *This);
26004 
26005     /*** IRelatedItem methods ***/
26006     HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
26007         IPreviewItem *This,
26008         PIDLIST_ABSOLUTE *ppidl);
26009 
26010     HRESULT (STDMETHODCALLTYPE *GetItem)(
26011         IPreviewItem *This,
26012         IShellItem **ppsi);
26013 
26014     END_INTERFACE
26015 } IPreviewItemVtbl;
26016 
26017 interface IPreviewItem {
26018     CONST_VTBL IPreviewItemVtbl* lpVtbl;
26019 };
26020 
26021 #ifdef COBJMACROS
26022 #ifndef WIDL_C_INLINE_WRAPPERS
26023 /*** IUnknown methods ***/
26024 #define IPreviewItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
26025 #define IPreviewItem_AddRef(This) (This)->lpVtbl->AddRef(This)
26026 #define IPreviewItem_Release(This) (This)->lpVtbl->Release(This)
26027 /*** IRelatedItem methods ***/
26028 #define IPreviewItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
26029 #define IPreviewItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
26030 #else
26031 /*** IUnknown methods ***/
26032 static FORCEINLINE HRESULT IPreviewItem_QueryInterface(IPreviewItem* This,REFIID riid,void **ppvObject) {
26033     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
26034 }
26035 static FORCEINLINE ULONG IPreviewItem_AddRef(IPreviewItem* This) {
26036     return This->lpVtbl->AddRef(This);
26037 }
26038 static FORCEINLINE ULONG IPreviewItem_Release(IPreviewItem* This) {
26039     return This->lpVtbl->Release(This);
26040 }
26041 /*** IRelatedItem methods ***/
26042 static FORCEINLINE HRESULT IPreviewItem_GetItemIDList(IPreviewItem* This,PIDLIST_ABSOLUTE *ppidl) {
26043     return This->lpVtbl->GetItemIDList(This,ppidl);
26044 }
26045 static FORCEINLINE HRESULT IPreviewItem_GetItem(IPreviewItem* This,IShellItem **ppsi) {
26046     return This->lpVtbl->GetItem(This,ppsi);
26047 }
26048 #endif
26049 #endif
26050 
26051 #endif
26052 
26053 
26054 #endif  /* __IPreviewItem_INTERFACE_DEFINED__ */
26055 
26056 #endif
26057 
26058 /*****************************************************************************
26059  * IDestinationStreamFactory interface
26060  */
26061 #ifndef __IDestinationStreamFactory_INTERFACE_DEFINED__
26062 #define __IDestinationStreamFactory_INTERFACE_DEFINED__
26063 
26064 DEFINE_GUID(IID_IDestinationStreamFactory, 0x8a87781b, 0x39a7, 0x4a1f, 0xaa,0xb3, 0xa3,0x9b,0x9c,0x34,0xa7,0xd9);
26065 #if defined(__cplusplus) && !defined(CINTERFACE)
26066 MIDL_INTERFACE("8a87781b-39a7-4a1f-aab3-a39b9c34a7d9")
26067 IDestinationStreamFactory : public IUnknown
26068 {
26069     virtual HRESULT STDMETHODCALLTYPE GetDestinationStream(
26070         IStream **ppstm) = 0;
26071 
26072 };
26073 #ifdef __CRT_UUID_DECL
26074 __CRT_UUID_DECL(IDestinationStreamFactory, 0x8a87781b, 0x39a7, 0x4a1f, 0xaa,0xb3, 0xa3,0x9b,0x9c,0x34,0xa7,0xd9)
26075 #endif
26076 #else
26077 typedef struct IDestinationStreamFactoryVtbl {
26078     BEGIN_INTERFACE
26079 
26080     /*** IUnknown methods ***/
26081     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
26082         IDestinationStreamFactory *This,
26083         REFIID riid,
26084         void **ppvObject);
26085 
26086     ULONG (STDMETHODCALLTYPE *AddRef)(
26087         IDestinationStreamFactory *This);
26088 
26089     ULONG (STDMETHODCALLTYPE *Release)(
26090         IDestinationStreamFactory *This);
26091 
26092     /*** IDestinationStreamFactory methods ***/
26093     HRESULT (STDMETHODCALLTYPE *GetDestinationStream)(
26094         IDestinationStreamFactory *This,
26095         IStream **ppstm);
26096 
26097     END_INTERFACE
26098 } IDestinationStreamFactoryVtbl;
26099 
26100 interface IDestinationStreamFactory {
26101     CONST_VTBL IDestinationStreamFactoryVtbl* lpVtbl;
26102 };
26103 
26104 #ifdef COBJMACROS
26105 #ifndef WIDL_C_INLINE_WRAPPERS
26106 /*** IUnknown methods ***/
26107 #define IDestinationStreamFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
26108 #define IDestinationStreamFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
26109 #define IDestinationStreamFactory_Release(This) (This)->lpVtbl->Release(This)
26110 /*** IDestinationStreamFactory methods ***/
26111 #define IDestinationStreamFactory_GetDestinationStream(This,ppstm) (This)->lpVtbl->GetDestinationStream(This,ppstm)
26112 #else
26113 /*** IUnknown methods ***/
26114 static FORCEINLINE HRESULT IDestinationStreamFactory_QueryInterface(IDestinationStreamFactory* This,REFIID riid,void **ppvObject) {
26115     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
26116 }
26117 static FORCEINLINE ULONG IDestinationStreamFactory_AddRef(IDestinationStreamFactory* This) {
26118     return This->lpVtbl->AddRef(This);
26119 }
26120 static FORCEINLINE ULONG IDestinationStreamFactory_Release(IDestinationStreamFactory* This) {
26121     return This->lpVtbl->Release(This);
26122 }
26123 /*** IDestinationStreamFactory methods ***/
26124 static FORCEINLINE HRESULT IDestinationStreamFactory_GetDestinationStream(IDestinationStreamFactory* This,IStream **ppstm) {
26125     return This->lpVtbl->GetDestinationStream(This,ppstm);
26126 }
26127 #endif
26128 #endif
26129 
26130 #endif
26131 
26132 
26133 #endif  /* __IDestinationStreamFactory_INTERFACE_DEFINED__ */
26134 
26135 
26136 enum _NMCII_FLAGS {
26137     NMCII_NONE = 0x0,
26138     NMCII_ITEMS = 0x1,
26139     NMCII_FOLDERS = 0x2
26140 };
26141 
26142 typedef int NMCII_FLAGS;
26143 
26144 enum _NMCSAEI_FLAGS {
26145     NMCSAEI_SELECT = 0x0,
26146     NMCSAEI_EDIT = 0x1
26147 };
26148 
26149 typedef int NMCSAEI_FLAGS;
26150 
26151 /*****************************************************************************
26152  * INewMenuClient interface
26153  */
26154 #ifndef __INewMenuClient_INTERFACE_DEFINED__
26155 #define __INewMenuClient_INTERFACE_DEFINED__
26156 
26157 DEFINE_GUID(IID_INewMenuClient, 0xdcb07fdc, 0x3bb5, 0x451c, 0x90,0xbe, 0x96,0x66,0x44,0xfe,0xd7,0xb0);
26158 #if defined(__cplusplus) && !defined(CINTERFACE)
26159 MIDL_INTERFACE("dcb07fdc-3bb5-451c-90be-966644fed7b0")
26160 INewMenuClient : public IUnknown
26161 {
26162     virtual HRESULT STDMETHODCALLTYPE IncludeItems(
26163         NMCII_FLAGS *pflags) = 0;
26164 
26165     virtual HRESULT STDMETHODCALLTYPE SelectAndEditItem(
26166         PCIDLIST_ABSOLUTE pidlItem,
26167         NMCSAEI_FLAGS flags) = 0;
26168 
26169 };
26170 #ifdef __CRT_UUID_DECL
26171 __CRT_UUID_DECL(INewMenuClient, 0xdcb07fdc, 0x3bb5, 0x451c, 0x90,0xbe, 0x96,0x66,0x44,0xfe,0xd7,0xb0)
26172 #endif
26173 #else
26174 typedef struct INewMenuClientVtbl {
26175     BEGIN_INTERFACE
26176 
26177     /*** IUnknown methods ***/
26178     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
26179         INewMenuClient *This,
26180         REFIID riid,
26181         void **ppvObject);
26182 
26183     ULONG (STDMETHODCALLTYPE *AddRef)(
26184         INewMenuClient *This);
26185 
26186     ULONG (STDMETHODCALLTYPE *Release)(
26187         INewMenuClient *This);
26188 
26189     /*** INewMenuClient methods ***/
26190     HRESULT (STDMETHODCALLTYPE *IncludeItems)(
26191         INewMenuClient *This,
26192         NMCII_FLAGS *pflags);
26193 
26194     HRESULT (STDMETHODCALLTYPE *SelectAndEditItem)(
26195         INewMenuClient *This,
26196         PCIDLIST_ABSOLUTE pidlItem,
26197         NMCSAEI_FLAGS flags);
26198 
26199     END_INTERFACE
26200 } INewMenuClientVtbl;
26201 
26202 interface INewMenuClient {
26203     CONST_VTBL INewMenuClientVtbl* lpVtbl;
26204 };
26205 
26206 #ifdef COBJMACROS
26207 #ifndef WIDL_C_INLINE_WRAPPERS
26208 /*** IUnknown methods ***/
26209 #define INewMenuClient_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
26210 #define INewMenuClient_AddRef(This) (This)->lpVtbl->AddRef(This)
26211 #define INewMenuClient_Release(This) (This)->lpVtbl->Release(This)
26212 /*** INewMenuClient methods ***/
26213 #define INewMenuClient_IncludeItems(This,pflags) (This)->lpVtbl->IncludeItems(This,pflags)
26214 #define INewMenuClient_SelectAndEditItem(This,pidlItem,flags) (This)->lpVtbl->SelectAndEditItem(This,pidlItem,flags)
26215 #else
26216 /*** IUnknown methods ***/
26217 static FORCEINLINE HRESULT INewMenuClient_QueryInterface(INewMenuClient* This,REFIID riid,void **ppvObject) {
26218     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
26219 }
26220 static FORCEINLINE ULONG INewMenuClient_AddRef(INewMenuClient* This) {
26221     return This->lpVtbl->AddRef(This);
26222 }
26223 static FORCEINLINE ULONG INewMenuClient_Release(INewMenuClient* This) {
26224     return This->lpVtbl->Release(This);
26225 }
26226 /*** INewMenuClient methods ***/
26227 static FORCEINLINE HRESULT INewMenuClient_IncludeItems(INewMenuClient* This,NMCII_FLAGS *pflags) {
26228     return This->lpVtbl->IncludeItems(This,pflags);
26229 }
26230 static FORCEINLINE HRESULT INewMenuClient_SelectAndEditItem(INewMenuClient* This,PCIDLIST_ABSOLUTE pidlItem,NMCSAEI_FLAGS flags) {
26231     return This->lpVtbl->SelectAndEditItem(This,pidlItem,flags);
26232 }
26233 #endif
26234 #endif
26235 
26236 #endif
26237 
26238 
26239 #endif  /* __INewMenuClient_INTERFACE_DEFINED__ */
26240 
26241 
26242 #define SID_SNewMenuClient   IID_INewMenuClient
26243 
26244 DEFINE_GUID(SID_SCommandBarState, 0xB99EAA5C, 0x3850, 0x4400, 0xBC, 0x33, 0x2C, 0xE5, 0x34, 0x04, 0x8B, 0xF8);
26245 
26246 #if _WIN32_IE >= _WIN32_IE_IE70
26247 /*****************************************************************************
26248  * IInitializeWithBindCtx interface
26249  */
26250 #ifndef __IInitializeWithBindCtx_INTERFACE_DEFINED__
26251 #define __IInitializeWithBindCtx_INTERFACE_DEFINED__
26252 
26253 DEFINE_GUID(IID_IInitializeWithBindCtx, 0x71c0d2bc, 0x726d, 0x45cc, 0xa6,0xc0, 0x2e,0x31,0xc1,0xdb,0x21,0x59);
26254 #if defined(__cplusplus) && !defined(CINTERFACE)
26255 MIDL_INTERFACE("71c0d2bc-726d-45cc-a6c0-2e31c1db2159")
26256 IInitializeWithBindCtx : public IUnknown
26257 {
26258     virtual HRESULT STDMETHODCALLTYPE Initialize(
26259         IBindCtx *pbc) = 0;
26260 
26261 };
26262 #ifdef __CRT_UUID_DECL
26263 __CRT_UUID_DECL(IInitializeWithBindCtx, 0x71c0d2bc, 0x726d, 0x45cc, 0xa6,0xc0, 0x2e,0x31,0xc1,0xdb,0x21,0x59)
26264 #endif
26265 #else
26266 typedef struct IInitializeWithBindCtxVtbl {
26267     BEGIN_INTERFACE
26268 
26269     /*** IUnknown methods ***/
26270     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
26271         IInitializeWithBindCtx *This,
26272         REFIID riid,
26273         void **ppvObject);
26274 
26275     ULONG (STDMETHODCALLTYPE *AddRef)(
26276         IInitializeWithBindCtx *This);
26277 
26278     ULONG (STDMETHODCALLTYPE *Release)(
26279         IInitializeWithBindCtx *This);
26280 
26281     /*** IInitializeWithBindCtx methods ***/
26282     HRESULT (STDMETHODCALLTYPE *Initialize)(
26283         IInitializeWithBindCtx *This,
26284         IBindCtx *pbc);
26285 
26286     END_INTERFACE
26287 } IInitializeWithBindCtxVtbl;
26288 
26289 interface IInitializeWithBindCtx {
26290     CONST_VTBL IInitializeWithBindCtxVtbl* lpVtbl;
26291 };
26292 
26293 #ifdef COBJMACROS
26294 #ifndef WIDL_C_INLINE_WRAPPERS
26295 /*** IUnknown methods ***/
26296 #define IInitializeWithBindCtx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
26297 #define IInitializeWithBindCtx_AddRef(This) (This)->lpVtbl->AddRef(This)
26298 #define IInitializeWithBindCtx_Release(This) (This)->lpVtbl->Release(This)
26299 /*** IInitializeWithBindCtx methods ***/
26300 #define IInitializeWithBindCtx_Initialize(This,pbc) (This)->lpVtbl->Initialize(This,pbc)
26301 #else
26302 /*** IUnknown methods ***/
26303 static FORCEINLINE HRESULT IInitializeWithBindCtx_QueryInterface(IInitializeWithBindCtx* This,REFIID riid,void **ppvObject) {
26304     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
26305 }
26306 static FORCEINLINE ULONG IInitializeWithBindCtx_AddRef(IInitializeWithBindCtx* This) {
26307     return This->lpVtbl->AddRef(This);
26308 }
26309 static FORCEINLINE ULONG IInitializeWithBindCtx_Release(IInitializeWithBindCtx* This) {
26310     return This->lpVtbl->Release(This);
26311 }
26312 /*** IInitializeWithBindCtx methods ***/
26313 static FORCEINLINE HRESULT IInitializeWithBindCtx_Initialize(IInitializeWithBindCtx* This,IBindCtx *pbc) {
26314     return This->lpVtbl->Initialize(This,pbc);
26315 }
26316 #endif
26317 #endif
26318 
26319 #endif
26320 
26321 
26322 #endif  /* __IInitializeWithBindCtx_INTERFACE_DEFINED__ */
26323 
26324 
26325 /*****************************************************************************
26326  * IShellItemFilter interface
26327  */
26328 #ifndef __IShellItemFilter_INTERFACE_DEFINED__
26329 #define __IShellItemFilter_INTERFACE_DEFINED__
26330 
26331 DEFINE_GUID(IID_IShellItemFilter, 0x2659b475, 0xeeb8, 0x48b7, 0x8f,0x07, 0xb3,0x78,0x81,0x0f,0x48,0xcf);
26332 #if defined(__cplusplus) && !defined(CINTERFACE)
26333 MIDL_INTERFACE("2659b475-eeb8-48b7-8f07-b378810f48cf")
26334 IShellItemFilter : public IUnknown
26335 {
26336     virtual HRESULT STDMETHODCALLTYPE IncludeItem(
26337         IShellItem *psi) = 0;
26338 
26339     virtual HRESULT STDMETHODCALLTYPE GetEnumFlagsForItem(
26340         IShellItem *psi,
26341         SHCONTF *pgrfFlags) = 0;
26342 
26343 };
26344 #ifdef __CRT_UUID_DECL
26345 __CRT_UUID_DECL(IShellItemFilter, 0x2659b475, 0xeeb8, 0x48b7, 0x8f,0x07, 0xb3,0x78,0x81,0x0f,0x48,0xcf)
26346 #endif
26347 #else
26348 typedef struct IShellItemFilterVtbl {
26349     BEGIN_INTERFACE
26350 
26351     /*** IUnknown methods ***/
26352     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
26353         IShellItemFilter *This,
26354         REFIID riid,
26355         void **ppvObject);
26356 
26357     ULONG (STDMETHODCALLTYPE *AddRef)(
26358         IShellItemFilter *This);
26359 
26360     ULONG (STDMETHODCALLTYPE *Release)(
26361         IShellItemFilter *This);
26362 
26363     /*** IShellItemFilter methods ***/
26364     HRESULT (STDMETHODCALLTYPE *IncludeItem)(
26365         IShellItemFilter *This,
26366         IShellItem *psi);
26367 
26368     HRESULT (STDMETHODCALLTYPE *GetEnumFlagsForItem)(
26369         IShellItemFilter *This,
26370         IShellItem *psi,
26371         SHCONTF *pgrfFlags);
26372 
26373     END_INTERFACE
26374 } IShellItemFilterVtbl;
26375 
26376 interface IShellItemFilter {
26377     CONST_VTBL IShellItemFilterVtbl* lpVtbl;
26378 };
26379 
26380 #ifdef COBJMACROS
26381 #ifndef WIDL_C_INLINE_WRAPPERS
26382 /*** IUnknown methods ***/
26383 #define IShellItemFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
26384 #define IShellItemFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
26385 #define IShellItemFilter_Release(This) (This)->lpVtbl->Release(This)
26386 /*** IShellItemFilter methods ***/
26387 #define IShellItemFilter_IncludeItem(This,psi) (This)->lpVtbl->IncludeItem(This,psi)
26388 #define IShellItemFilter_GetEnumFlagsForItem(This,psi,pgrfFlags) (This)->lpVtbl->GetEnumFlagsForItem(This,psi,pgrfFlags)
26389 #else
26390 /*** IUnknown methods ***/
26391 static FORCEINLINE HRESULT IShellItemFilter_QueryInterface(IShellItemFilter* This,REFIID riid,void **ppvObject) {
26392     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
26393 }
26394 static FORCEINLINE ULONG IShellItemFilter_AddRef(IShellItemFilter* This) {
26395     return This->lpVtbl->AddRef(This);
26396 }
26397 static FORCEINLINE ULONG IShellItemFilter_Release(IShellItemFilter* This) {
26398     return This->lpVtbl->Release(This);
26399 }
26400 /*** IShellItemFilter methods ***/
26401 static FORCEINLINE HRESULT IShellItemFilter_IncludeItem(IShellItemFilter* This,IShellItem *psi) {
26402     return This->lpVtbl->IncludeItem(This,psi);
26403 }
26404 static FORCEINLINE HRESULT IShellItemFilter_GetEnumFlagsForItem(IShellItemFilter* This,IShellItem *psi,SHCONTF *pgrfFlags) {
26405     return This->lpVtbl->GetEnumFlagsForItem(This,psi,pgrfFlags);
26406 }
26407 #endif
26408 #endif
26409 
26410 #endif
26411 
26412 
26413 #endif  /* __IShellItemFilter_INTERFACE_DEFINED__ */
26414 
26415 #endif
26416 
26417 /*****************************************************************************
26418  * INameSpaceTreeControl interface
26419  */
26420 #ifndef __INameSpaceTreeControl_INTERFACE_DEFINED__
26421 #define __INameSpaceTreeControl_INTERFACE_DEFINED__
26422 
26423 enum _NSTCSTYLE {
26424     NSTCS_HASEXPANDOS = 0x1,
26425     NSTCS_HASLINES = 0x2,
26426     NSTCS_SINGLECLICKEXPAND = 0x4,
26427     NSTCS_FULLROWSELECT = 0x8,
26428     NSTCS_SPRINGEXPAND = 0x10,
26429     NSTCS_HORIZONTALSCROLL = 0x20,
26430     NSTCS_ROOTHASEXPANDO = 0x40,
26431     NSTCS_SHOWSELECTIONALWAYS = 0x80,
26432     NSTCS_NOINFOTIP = 0x200,
26433     NSTCS_EVENHEIGHT = 0x400,
26434     NSTCS_NOREPLACEOPEN = 0x800,
26435     NSTCS_DISABLEDRAGDROP = 0x1000,
26436     NSTCS_NOORDERSTREAM = 0x2000,
26437     NSTCS_RICHTOOLTIP = 0x4000,
26438     NSTCS_BORDER = 0x8000,
26439     NSTCS_NOEDITLABELS = 0x10000,
26440     NSTCS_TABSTOP = 0x20000,
26441     NSTCS_FAVORITESMODE = 0x80000,
26442     NSTCS_AUTOHSCROLL = 0x100000,
26443     NSTCS_FADEINOUTEXPANDOS = 0x200000,
26444     NSTCS_EMPTYTEXT = 0x400000,
26445     NSTCS_CHECKBOXES = 0x800000,
26446     NSTCS_PARTIALCHECKBOXES = 0x1000000,
26447     NSTCS_EXCLUSIONCHECKBOXES = 0x2000000,
26448     NSTCS_DIMMEDCHECKBOXES = 0x4000000,
26449     NSTCS_NOINDENTCHECKS = 0x8000000,
26450     NSTCS_ALLOWJUNCTIONS = 0x10000000,
26451     NSTCS_SHOWTABSBUTTON = 0x20000000,
26452     NSTCS_SHOWDELETEBUTTON = 0x40000000,
26453     NSTCS_SHOWREFRESHBUTTON = (int)0x80000000
26454 };
26455 
26456 typedef DWORD NSTCSTYLE;
26457 
26458 enum _NSTCROOTSTYLE {
26459     NSTCRS_VISIBLE = 0x0,
26460     NSTCRS_HIDDEN = 0x1,
26461     NSTCRS_EXPANDED = 0x2
26462 };
26463 
26464 typedef DWORD NSTCROOTSTYLE;
26465 
26466 enum _NSTCITEMSTATE {
26467     NSTCIS_NONE = 0x0,
26468     NSTCIS_SELECTED = 0x1,
26469     NSTCIS_EXPANDED = 0x2,
26470     NSTCIS_BOLD = 0x4,
26471     NSTCIS_DISABLED = 0x8,
26472     NSTCIS_SELECTEDNOEXPAND = 0x10
26473 };
26474 
26475 typedef DWORD NSTCITEMSTATE;
26476 
26477 typedef enum NSTCGNI {
26478     NSTCGNI_NEXT = 0,
26479     NSTCGNI_NEXTVISIBLE = 1,
26480     NSTCGNI_PREV = 2,
26481     NSTCGNI_PREVVISIBLE = 3,
26482     NSTCGNI_PARENT = 4,
26483     NSTCGNI_CHILD = 5,
26484     NSTCGNI_FIRSTVISIBLE = 6,
26485     NSTCGNI_LASTVISIBLE = 7
26486 } NSTCGNI;
26487 
26488 DEFINE_GUID(IID_INameSpaceTreeControl, 0x028212a3, 0xb627, 0x47e9, 0x88,0x56, 0xc1,0x42,0x65,0x55,0x4e,0x4f);
26489 #if defined(__cplusplus) && !defined(CINTERFACE)
26490 MIDL_INTERFACE("028212a3-b627-47e9-8856-c14265554e4f")
26491 INameSpaceTreeControl : public IUnknown
26492 {
26493     virtual HRESULT STDMETHODCALLTYPE Initialize(
26494         HWND hwndParent,
26495         RECT *prc,
26496         NSTCSTYLE nsctsFlags) = 0;
26497 
26498     virtual HRESULT STDMETHODCALLTYPE TreeAdvise(
26499         IUnknown *punk,
26500         DWORD *pdwCookie) = 0;
26501 
26502     virtual HRESULT STDMETHODCALLTYPE TreeUnadvise(
26503         DWORD dwCookie) = 0;
26504 
26505     virtual HRESULT STDMETHODCALLTYPE AppendRoot(
26506         IShellItem *psiRoot,
26507         SHCONTF grfEnumFlags,
26508         NSTCROOTSTYLE grfRootStyle,
26509         IShellItemFilter *pif) = 0;
26510 
26511     virtual HRESULT STDMETHODCALLTYPE InsertRoot(
26512         int iIndex,
26513         IShellItem *psiRoot,
26514         SHCONTF grfEnumFlags,
26515         NSTCROOTSTYLE grfRootStyle,
26516         IShellItemFilter *pif) = 0;
26517 
26518     virtual HRESULT STDMETHODCALLTYPE RemoveRoot(
26519         IShellItem *psiRoot) = 0;
26520 
26521     virtual HRESULT STDMETHODCALLTYPE RemoveAllRoots(
26522         ) = 0;
26523 
26524     virtual HRESULT STDMETHODCALLTYPE GetRootItems(
26525         IShellItemArray **ppsiaRootItems) = 0;
26526 
26527     virtual HRESULT STDMETHODCALLTYPE SetItemState(
26528         IShellItem *psi,
26529         NSTCITEMSTATE nstcisMask,
26530         NSTCITEMSTATE nstcisFlags) = 0;
26531 
26532     virtual HRESULT STDMETHODCALLTYPE GetItemState(
26533         IShellItem *psi,
26534         NSTCITEMSTATE nstcisMask,
26535         NSTCITEMSTATE *pnstcisFlags) = 0;
26536 
26537     virtual HRESULT STDMETHODCALLTYPE GetSelectedItems(
26538         IShellItemArray **psiaItems) = 0;
26539 
26540     virtual HRESULT STDMETHODCALLTYPE GetItemCustomState(
26541         IShellItem *psi,
26542         int *piStateNumber) = 0;
26543 
26544     virtual HRESULT STDMETHODCALLTYPE SetItemCustomState(
26545         IShellItem *psi,
26546         int iStateNumber) = 0;
26547 
26548     virtual HRESULT STDMETHODCALLTYPE EnsureItemVisible(
26549         IShellItem *psi) = 0;
26550 
26551     virtual HRESULT STDMETHODCALLTYPE SetTheme(
26552         LPCWSTR pszTheme) = 0;
26553 
26554     virtual HRESULT STDMETHODCALLTYPE GetNextItem(
26555         IShellItem *psi,
26556         NSTCGNI nstcgi,
26557         IShellItem **ppsiNext) = 0;
26558 
26559     virtual HRESULT STDMETHODCALLTYPE HitTest(
26560         POINT *ppt,
26561         IShellItem **ppsiOut) = 0;
26562 
26563     virtual HRESULT STDMETHODCALLTYPE GetItemRect(
26564         IShellItem *psi,
26565         RECT *prect) = 0;
26566 
26567     virtual HRESULT STDMETHODCALLTYPE CollapseAll(
26568         ) = 0;
26569 
26570 };
26571 #ifdef __CRT_UUID_DECL
26572 __CRT_UUID_DECL(INameSpaceTreeControl, 0x028212a3, 0xb627, 0x47e9, 0x88,0x56, 0xc1,0x42,0x65,0x55,0x4e,0x4f)
26573 #endif
26574 #else
26575 typedef struct INameSpaceTreeControlVtbl {
26576     BEGIN_INTERFACE
26577 
26578     /*** IUnknown methods ***/
26579     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
26580         INameSpaceTreeControl *This,
26581         REFIID riid,
26582         void **ppvObject);
26583 
26584     ULONG (STDMETHODCALLTYPE *AddRef)(
26585         INameSpaceTreeControl *This);
26586 
26587     ULONG (STDMETHODCALLTYPE *Release)(
26588         INameSpaceTreeControl *This);
26589 
26590     /*** INameSpaceTreeControl methods ***/
26591     HRESULT (STDMETHODCALLTYPE *Initialize)(
26592         INameSpaceTreeControl *This,
26593         HWND hwndParent,
26594         RECT *prc,
26595         NSTCSTYLE nsctsFlags);
26596 
26597     HRESULT (STDMETHODCALLTYPE *TreeAdvise)(
26598         INameSpaceTreeControl *This,
26599         IUnknown *punk,
26600         DWORD *pdwCookie);
26601 
26602     HRESULT (STDMETHODCALLTYPE *TreeUnadvise)(
26603         INameSpaceTreeControl *This,
26604         DWORD dwCookie);
26605 
26606     HRESULT (STDMETHODCALLTYPE *AppendRoot)(
26607         INameSpaceTreeControl *This,
26608         IShellItem *psiRoot,
26609         SHCONTF grfEnumFlags,
26610         NSTCROOTSTYLE grfRootStyle,
26611         IShellItemFilter *pif);
26612 
26613     HRESULT (STDMETHODCALLTYPE *InsertRoot)(
26614         INameSpaceTreeControl *This,
26615         int iIndex,
26616         IShellItem *psiRoot,
26617         SHCONTF grfEnumFlags,
26618         NSTCROOTSTYLE grfRootStyle,
26619         IShellItemFilter *pif);
26620 
26621     HRESULT (STDMETHODCALLTYPE *RemoveRoot)(
26622         INameSpaceTreeControl *This,
26623         IShellItem *psiRoot);
26624 
26625     HRESULT (STDMETHODCALLTYPE *RemoveAllRoots)(
26626         INameSpaceTreeControl *This);
26627 
26628     HRESULT (STDMETHODCALLTYPE *GetRootItems)(
26629         INameSpaceTreeControl *This,
26630         IShellItemArray **ppsiaRootItems);
26631 
26632     HRESULT (STDMETHODCALLTYPE *SetItemState)(
26633         INameSpaceTreeControl *This,
26634         IShellItem *psi,
26635         NSTCITEMSTATE nstcisMask,
26636         NSTCITEMSTATE nstcisFlags);
26637 
26638     HRESULT (STDMETHODCALLTYPE *GetItemState)(
26639         INameSpaceTreeControl *This,
26640         IShellItem *psi,
26641         NSTCITEMSTATE nstcisMask,
26642         NSTCITEMSTATE *pnstcisFlags);
26643 
26644     HRESULT (STDMETHODCALLTYPE *GetSelectedItems)(
26645         INameSpaceTreeControl *This,
26646         IShellItemArray **psiaItems);
26647 
26648     HRESULT (STDMETHODCALLTYPE *GetItemCustomState)(
26649         INameSpaceTreeControl *This,
26650         IShellItem *psi,
26651         int *piStateNumber);
26652 
26653     HRESULT (STDMETHODCALLTYPE *SetItemCustomState)(
26654         INameSpaceTreeControl *This,
26655         IShellItem *psi,
26656         int iStateNumber);
26657 
26658     HRESULT (STDMETHODCALLTYPE *EnsureItemVisible)(
26659         INameSpaceTreeControl *This,
26660         IShellItem *psi);
26661 
26662     HRESULT (STDMETHODCALLTYPE *SetTheme)(
26663         INameSpaceTreeControl *This,
26664         LPCWSTR pszTheme);
26665 
26666     HRESULT (STDMETHODCALLTYPE *GetNextItem)(
26667         INameSpaceTreeControl *This,
26668         IShellItem *psi,
26669         NSTCGNI nstcgi,
26670         IShellItem **ppsiNext);
26671 
26672     HRESULT (STDMETHODCALLTYPE *HitTest)(
26673         INameSpaceTreeControl *This,
26674         POINT *ppt,
26675         IShellItem **ppsiOut);
26676 
26677     HRESULT (STDMETHODCALLTYPE *GetItemRect)(
26678         INameSpaceTreeControl *This,
26679         IShellItem *psi,
26680         RECT *prect);
26681 
26682     HRESULT (STDMETHODCALLTYPE *CollapseAll)(
26683         INameSpaceTreeControl *This);
26684 
26685     END_INTERFACE
26686 } INameSpaceTreeControlVtbl;
26687 
26688 interface INameSpaceTreeControl {
26689     CONST_VTBL INameSpaceTreeControlVtbl* lpVtbl;
26690 };
26691 
26692 #ifdef COBJMACROS
26693 #ifndef WIDL_C_INLINE_WRAPPERS
26694 /*** IUnknown methods ***/
26695 #define INameSpaceTreeControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
26696 #define INameSpaceTreeControl_AddRef(This) (This)->lpVtbl->AddRef(This)
26697 #define INameSpaceTreeControl_Release(This) (This)->lpVtbl->Release(This)
26698 /*** INameSpaceTreeControl methods ***/
26699 #define INameSpaceTreeControl_Initialize(This,hwndParent,prc,nsctsFlags) (This)->lpVtbl->Initialize(This,hwndParent,prc,nsctsFlags)
26700 #define INameSpaceTreeControl_TreeAdvise(This,punk,pdwCookie) (This)->lpVtbl->TreeAdvise(This,punk,pdwCookie)
26701 #define INameSpaceTreeControl_TreeUnadvise(This,dwCookie) (This)->lpVtbl->TreeUnadvise(This,dwCookie)
26702 #define INameSpaceTreeControl_AppendRoot(This,psiRoot,grfEnumFlags,grfRootStyle,pif) (This)->lpVtbl->AppendRoot(This,psiRoot,grfEnumFlags,grfRootStyle,pif)
26703 #define INameSpaceTreeControl_InsertRoot(This,iIndex,psiRoot,grfEnumFlags,grfRootStyle,pif) (This)->lpVtbl->InsertRoot(This,iIndex,psiRoot,grfEnumFlags,grfRootStyle,pif)
26704 #define INameSpaceTreeControl_RemoveRoot(This,psiRoot) (This)->lpVtbl->RemoveRoot(This,psiRoot)
26705 #define INameSpaceTreeControl_RemoveAllRoots(This) (This)->lpVtbl->RemoveAllRoots(This)
26706 #define INameSpaceTreeControl_GetRootItems(This,ppsiaRootItems) (This)->lpVtbl->GetRootItems(This,ppsiaRootItems)
26707 #define INameSpaceTreeControl_SetItemState(This,psi,nstcisMask,nstcisFlags) (This)->lpVtbl->SetItemState(This,psi,nstcisMask,nstcisFlags)
26708 #define INameSpaceTreeControl_GetItemState(This,psi,nstcisMask,pnstcisFlags) (This)->lpVtbl->GetItemState(This,psi,nstcisMask,pnstcisFlags)
26709 #define INameSpaceTreeControl_GetSelectedItems(This,psiaItems) (This)->lpVtbl->GetSelectedItems(This,psiaItems)
26710 #define INameSpaceTreeControl_GetItemCustomState(This,psi,piStateNumber) (This)->lpVtbl->GetItemCustomState(This,psi,piStateNumber)
26711 #define INameSpaceTreeControl_SetItemCustomState(This,psi,iStateNumber) (This)->lpVtbl->SetItemCustomState(This,psi,iStateNumber)
26712 #define INameSpaceTreeControl_EnsureItemVisible(This,psi) (This)->lpVtbl->EnsureItemVisible(This,psi)
26713 #define INameSpaceTreeControl_SetTheme(This,pszTheme) (This)->lpVtbl->SetTheme(This,pszTheme)
26714 #define INameSpaceTreeControl_GetNextItem(This,psi,nstcgi,ppsiNext) (This)->lpVtbl->GetNextItem(This,psi,nstcgi,ppsiNext)
26715 #define INameSpaceTreeControl_HitTest(This,ppt,ppsiOut) (This)->lpVtbl->HitTest(This,ppt,ppsiOut)
26716 #define INameSpaceTreeControl_GetItemRect(This,psi,prect) (This)->lpVtbl->GetItemRect(This,psi,prect)
26717 #define INameSpaceTreeControl_CollapseAll(This) (This)->lpVtbl->CollapseAll(This)
26718 #else
26719 /*** IUnknown methods ***/
26720 static FORCEINLINE HRESULT INameSpaceTreeControl_QueryInterface(INameSpaceTreeControl* This,REFIID riid,void **ppvObject) {
26721     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
26722 }
26723 static FORCEINLINE ULONG INameSpaceTreeControl_AddRef(INameSpaceTreeControl* This) {
26724     return This->lpVtbl->AddRef(This);
26725 }
26726 static FORCEINLINE ULONG INameSpaceTreeControl_Release(INameSpaceTreeControl* This) {
26727     return This->lpVtbl->Release(This);
26728 }
26729 /*** INameSpaceTreeControl methods ***/
26730 static FORCEINLINE HRESULT INameSpaceTreeControl_Initialize(INameSpaceTreeControl* This,HWND hwndParent,RECT *prc,NSTCSTYLE nsctsFlags) {
26731     return This->lpVtbl->Initialize(This,hwndParent,prc,nsctsFlags);
26732 }
26733 static FORCEINLINE HRESULT INameSpaceTreeControl_TreeAdvise(INameSpaceTreeControl* This,IUnknown *punk,DWORD *pdwCookie) {
26734     return This->lpVtbl->TreeAdvise(This,punk,pdwCookie);
26735 }
26736 static FORCEINLINE HRESULT INameSpaceTreeControl_TreeUnadvise(INameSpaceTreeControl* This,DWORD dwCookie) {
26737     return This->lpVtbl->TreeUnadvise(This,dwCookie);
26738 }
26739 static FORCEINLINE HRESULT INameSpaceTreeControl_AppendRoot(INameSpaceTreeControl* This,IShellItem *psiRoot,SHCONTF grfEnumFlags,NSTCROOTSTYLE grfRootStyle,IShellItemFilter *pif) {
26740     return This->lpVtbl->AppendRoot(This,psiRoot,grfEnumFlags,grfRootStyle,pif);
26741 }
26742 static FORCEINLINE HRESULT INameSpaceTreeControl_InsertRoot(INameSpaceTreeControl* This,int iIndex,IShellItem *psiRoot,SHCONTF grfEnumFlags,NSTCROOTSTYLE grfRootStyle,IShellItemFilter *pif) {
26743     return This->lpVtbl->InsertRoot(This,iIndex,psiRoot,grfEnumFlags,grfRootStyle,pif);
26744 }
26745 static FORCEINLINE HRESULT INameSpaceTreeControl_RemoveRoot(INameSpaceTreeControl* This,IShellItem *psiRoot) {
26746     return This->lpVtbl->RemoveRoot(This,psiRoot);
26747 }
26748 static FORCEINLINE HRESULT INameSpaceTreeControl_RemoveAllRoots(INameSpaceTreeControl* This) {
26749     return This->lpVtbl->RemoveAllRoots(This);
26750 }
26751 static FORCEINLINE HRESULT INameSpaceTreeControl_GetRootItems(INameSpaceTreeControl* This,IShellItemArray **ppsiaRootItems) {
26752     return This->lpVtbl->GetRootItems(This,ppsiaRootItems);
26753 }
26754 static FORCEINLINE HRESULT INameSpaceTreeControl_SetItemState(INameSpaceTreeControl* This,IShellItem *psi,NSTCITEMSTATE nstcisMask,NSTCITEMSTATE nstcisFlags) {
26755     return This->lpVtbl->SetItemState(This,psi,nstcisMask,nstcisFlags);
26756 }
26757 static FORCEINLINE HRESULT INameSpaceTreeControl_GetItemState(INameSpaceTreeControl* This,IShellItem *psi,NSTCITEMSTATE nstcisMask,NSTCITEMSTATE *pnstcisFlags) {
26758     return This->lpVtbl->GetItemState(This,psi,nstcisMask,pnstcisFlags);
26759 }
26760 static FORCEINLINE HRESULT INameSpaceTreeControl_GetSelectedItems(INameSpaceTreeControl* This,IShellItemArray **psiaItems) {
26761     return This->lpVtbl->GetSelectedItems(This,psiaItems);
26762 }
26763 static FORCEINLINE HRESULT INameSpaceTreeControl_GetItemCustomState(INameSpaceTreeControl* This,IShellItem *psi,int *piStateNumber) {
26764     return This->lpVtbl->GetItemCustomState(This,psi,piStateNumber);
26765 }
26766 static FORCEINLINE HRESULT INameSpaceTreeControl_SetItemCustomState(INameSpaceTreeControl* This,IShellItem *psi,int iStateNumber) {
26767     return This->lpVtbl->SetItemCustomState(This,psi,iStateNumber);
26768 }
26769 static FORCEINLINE HRESULT INameSpaceTreeControl_EnsureItemVisible(INameSpaceTreeControl* This,IShellItem *psi) {
26770     return This->lpVtbl->EnsureItemVisible(This,psi);
26771 }
26772 static FORCEINLINE HRESULT INameSpaceTreeControl_SetTheme(INameSpaceTreeControl* This,LPCWSTR pszTheme) {
26773     return This->lpVtbl->SetTheme(This,pszTheme);
26774 }
26775 static FORCEINLINE HRESULT INameSpaceTreeControl_GetNextItem(INameSpaceTreeControl* This,IShellItem *psi,NSTCGNI nstcgi,IShellItem **ppsiNext) {
26776     return This->lpVtbl->GetNextItem(This,psi,nstcgi,ppsiNext);
26777 }
26778 static FORCEINLINE HRESULT INameSpaceTreeControl_HitTest(INameSpaceTreeControl* This,POINT *ppt,IShellItem **ppsiOut) {
26779     return This->lpVtbl->HitTest(This,ppt,ppsiOut);
26780 }
26781 static FORCEINLINE HRESULT INameSpaceTreeControl_GetItemRect(INameSpaceTreeControl* This,IShellItem *psi,RECT *prect) {
26782     return This->lpVtbl->GetItemRect(This,psi,prect);
26783 }
26784 static FORCEINLINE HRESULT INameSpaceTreeControl_CollapseAll(INameSpaceTreeControl* This) {
26785     return This->lpVtbl->CollapseAll(This);
26786 }
26787 #endif
26788 #endif
26789 
26790 #endif
26791 
26792 
26793 #endif  /* __INameSpaceTreeControl_INTERFACE_DEFINED__ */
26794 
26795 
26796 /*****************************************************************************
26797  * INameSpaceTreeControl2 interface
26798  */
26799 #ifndef __INameSpaceTreeControl2_INTERFACE_DEFINED__
26800 #define __INameSpaceTreeControl2_INTERFACE_DEFINED__
26801 
26802 typedef enum NSTCSTYLE2 {
26803     NSTCS2_DEFAULT = 0x0,
26804     NSTCS2_INTERRUPTNOTIFICATIONS = 0x1,
26805     NSTCS2_SHOWNULLSPACEMENU = 0x2,
26806     NSTCS2_DISPLAYPADDING = 0x4,
26807     NSTCS2_DISPLAYPINNEDONLY = 0x8,
26808     NTSCS2_NOSINGLETONAUTOEXPAND = 0x10,
26809     NTSCS2_NEVERINSERTNONENUMERATED = 0x20
26810 } NSTCSTYLE2;
26811 
26812 DEFINE_ENUM_FLAG_OPERATORS(NSTCSTYLE2)
26813 
26814 DEFINE_GUID(IID_INameSpaceTreeControl2, 0x7cc7aed8, 0x290e, 0x49bc, 0x89,0x45, 0xc1,0x40,0x1c,0xc9,0x30,0x6c);
26815 #if defined(__cplusplus) && !defined(CINTERFACE)
26816 MIDL_INTERFACE("7cc7aed8-290e-49bc-8945-c1401cc9306c")
26817 INameSpaceTreeControl2 : public INameSpaceTreeControl
26818 {
26819     virtual HRESULT STDMETHODCALLTYPE SetControlStyle(
26820         NSTCSTYLE nstcsMask,
26821         NSTCSTYLE nstcsStyle) = 0;
26822 
26823     virtual HRESULT STDMETHODCALLTYPE GetControlStyle(
26824         NSTCSTYLE nstcsMask,
26825         NSTCSTYLE *pnstcsStyle) = 0;
26826 
26827     virtual HRESULT STDMETHODCALLTYPE SetControlStyle2(
26828         NSTCSTYLE2 nstcsMask,
26829         NSTCSTYLE2 nstcsStyle) = 0;
26830 
26831     virtual HRESULT STDMETHODCALLTYPE GetControlStyle2(
26832         NSTCSTYLE2 nstcsMask,
26833         NSTCSTYLE2 *pnstcsStyle) = 0;
26834 
26835 };
26836 #ifdef __CRT_UUID_DECL
26837 __CRT_UUID_DECL(INameSpaceTreeControl2, 0x7cc7aed8, 0x290e, 0x49bc, 0x89,0x45, 0xc1,0x40,0x1c,0xc9,0x30,0x6c)
26838 #endif
26839 #else
26840 typedef struct INameSpaceTreeControl2Vtbl {
26841     BEGIN_INTERFACE
26842 
26843     /*** IUnknown methods ***/
26844     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
26845         INameSpaceTreeControl2 *This,
26846         REFIID riid,
26847         void **ppvObject);
26848 
26849     ULONG (STDMETHODCALLTYPE *AddRef)(
26850         INameSpaceTreeControl2 *This);
26851 
26852     ULONG (STDMETHODCALLTYPE *Release)(
26853         INameSpaceTreeControl2 *This);
26854 
26855     /*** INameSpaceTreeControl methods ***/
26856     HRESULT (STDMETHODCALLTYPE *Initialize)(
26857         INameSpaceTreeControl2 *This,
26858         HWND hwndParent,
26859         RECT *prc,
26860         NSTCSTYLE nsctsFlags);
26861 
26862     HRESULT (STDMETHODCALLTYPE *TreeAdvise)(
26863         INameSpaceTreeControl2 *This,
26864         IUnknown *punk,
26865         DWORD *pdwCookie);
26866 
26867     HRESULT (STDMETHODCALLTYPE *TreeUnadvise)(
26868         INameSpaceTreeControl2 *This,
26869         DWORD dwCookie);
26870 
26871     HRESULT (STDMETHODCALLTYPE *AppendRoot)(
26872         INameSpaceTreeControl2 *This,
26873         IShellItem *psiRoot,
26874         SHCONTF grfEnumFlags,
26875         NSTCROOTSTYLE grfRootStyle,
26876         IShellItemFilter *pif);
26877 
26878     HRESULT (STDMETHODCALLTYPE *InsertRoot)(
26879         INameSpaceTreeControl2 *This,
26880         int iIndex,
26881         IShellItem *psiRoot,
26882         SHCONTF grfEnumFlags,
26883         NSTCROOTSTYLE grfRootStyle,
26884         IShellItemFilter *pif);
26885 
26886     HRESULT (STDMETHODCALLTYPE *RemoveRoot)(
26887         INameSpaceTreeControl2 *This,
26888         IShellItem *psiRoot);
26889 
26890     HRESULT (STDMETHODCALLTYPE *RemoveAllRoots)(
26891         INameSpaceTreeControl2 *This);
26892 
26893     HRESULT (STDMETHODCALLTYPE *GetRootItems)(
26894         INameSpaceTreeControl2 *This,
26895         IShellItemArray **ppsiaRootItems);
26896 
26897     HRESULT (STDMETHODCALLTYPE *SetItemState)(
26898         INameSpaceTreeControl2 *This,
26899         IShellItem *psi,
26900         NSTCITEMSTATE nstcisMask,
26901         NSTCITEMSTATE nstcisFlags);
26902 
26903     HRESULT (STDMETHODCALLTYPE *GetItemState)(
26904         INameSpaceTreeControl2 *This,
26905         IShellItem *psi,
26906         NSTCITEMSTATE nstcisMask,
26907         NSTCITEMSTATE *pnstcisFlags);
26908 
26909     HRESULT (STDMETHODCALLTYPE *GetSelectedItems)(
26910         INameSpaceTreeControl2 *This,
26911         IShellItemArray **psiaItems);
26912 
26913     HRESULT (STDMETHODCALLTYPE *GetItemCustomState)(
26914         INameSpaceTreeControl2 *This,
26915         IShellItem *psi,
26916         int *piStateNumber);
26917 
26918     HRESULT (STDMETHODCALLTYPE *SetItemCustomState)(
26919         INameSpaceTreeControl2 *This,
26920         IShellItem *psi,
26921         int iStateNumber);
26922 
26923     HRESULT (STDMETHODCALLTYPE *EnsureItemVisible)(
26924         INameSpaceTreeControl2 *This,
26925         IShellItem *psi);
26926 
26927     HRESULT (STDMETHODCALLTYPE *SetTheme)(
26928         INameSpaceTreeControl2 *This,
26929         LPCWSTR pszTheme);
26930 
26931     HRESULT (STDMETHODCALLTYPE *GetNextItem)(
26932         INameSpaceTreeControl2 *This,
26933         IShellItem *psi,
26934         NSTCGNI nstcgi,
26935         IShellItem **ppsiNext);
26936 
26937     HRESULT (STDMETHODCALLTYPE *HitTest)(
26938         INameSpaceTreeControl2 *This,
26939         POINT *ppt,
26940         IShellItem **ppsiOut);
26941 
26942     HRESULT (STDMETHODCALLTYPE *GetItemRect)(
26943         INameSpaceTreeControl2 *This,
26944         IShellItem *psi,
26945         RECT *prect);
26946 
26947     HRESULT (STDMETHODCALLTYPE *CollapseAll)(
26948         INameSpaceTreeControl2 *This);
26949 
26950     /*** INameSpaceTreeControl2 methods ***/
26951     HRESULT (STDMETHODCALLTYPE *SetControlStyle)(
26952         INameSpaceTreeControl2 *This,
26953         NSTCSTYLE nstcsMask,
26954         NSTCSTYLE nstcsStyle);
26955 
26956     HRESULT (STDMETHODCALLTYPE *GetControlStyle)(
26957         INameSpaceTreeControl2 *This,
26958         NSTCSTYLE nstcsMask,
26959         NSTCSTYLE *pnstcsStyle);
26960 
26961     HRESULT (STDMETHODCALLTYPE *SetControlStyle2)(
26962         INameSpaceTreeControl2 *This,
26963         NSTCSTYLE2 nstcsMask,
26964         NSTCSTYLE2 nstcsStyle);
26965 
26966     HRESULT (STDMETHODCALLTYPE *GetControlStyle2)(
26967         INameSpaceTreeControl2 *This,
26968         NSTCSTYLE2 nstcsMask,
26969         NSTCSTYLE2 *pnstcsStyle);
26970 
26971     END_INTERFACE
26972 } INameSpaceTreeControl2Vtbl;
26973 
26974 interface INameSpaceTreeControl2 {
26975     CONST_VTBL INameSpaceTreeControl2Vtbl* lpVtbl;
26976 };
26977 
26978 #ifdef COBJMACROS
26979 #ifndef WIDL_C_INLINE_WRAPPERS
26980 /*** IUnknown methods ***/
26981 #define INameSpaceTreeControl2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
26982 #define INameSpaceTreeControl2_AddRef(This) (This)->lpVtbl->AddRef(This)
26983 #define INameSpaceTreeControl2_Release(This) (This)->lpVtbl->Release(This)
26984 /*** INameSpaceTreeControl methods ***/
26985 #define INameSpaceTreeControl2_Initialize(This,hwndParent,prc,nsctsFlags) (This)->lpVtbl->Initialize(This,hwndParent,prc,nsctsFlags)
26986 #define INameSpaceTreeControl2_TreeAdvise(This,punk,pdwCookie) (This)->lpVtbl->TreeAdvise(This,punk,pdwCookie)
26987 #define INameSpaceTreeControl2_TreeUnadvise(This,dwCookie) (This)->lpVtbl->TreeUnadvise(This,dwCookie)
26988 #define INameSpaceTreeControl2_AppendRoot(This,psiRoot,grfEnumFlags,grfRootStyle,pif) (This)->lpVtbl->AppendRoot(This,psiRoot,grfEnumFlags,grfRootStyle,pif)
26989 #define INameSpaceTreeControl2_InsertRoot(This,iIndex,psiRoot,grfEnumFlags,grfRootStyle,pif) (This)->lpVtbl->InsertRoot(This,iIndex,psiRoot,grfEnumFlags,grfRootStyle,pif)
26990 #define INameSpaceTreeControl2_RemoveRoot(This,psiRoot) (This)->lpVtbl->RemoveRoot(This,psiRoot)
26991 #define INameSpaceTreeControl2_RemoveAllRoots(This) (This)->lpVtbl->RemoveAllRoots(This)
26992 #define INameSpaceTreeControl2_GetRootItems(This,ppsiaRootItems) (This)->lpVtbl->GetRootItems(This,ppsiaRootItems)
26993 #define INameSpaceTreeControl2_SetItemState(This,psi,nstcisMask,nstcisFlags) (This)->lpVtbl->SetItemState(This,psi,nstcisMask,nstcisFlags)
26994 #define INameSpaceTreeControl2_GetItemState(This,psi,nstcisMask,pnstcisFlags) (This)->lpVtbl->GetItemState(This,psi,nstcisMask,pnstcisFlags)
26995 #define INameSpaceTreeControl2_GetSelectedItems(This,psiaItems) (This)->lpVtbl->GetSelectedItems(This,psiaItems)
26996 #define INameSpaceTreeControl2_GetItemCustomState(This,psi,piStateNumber) (This)->lpVtbl->GetItemCustomState(This,psi,piStateNumber)
26997 #define INameSpaceTreeControl2_SetItemCustomState(This,psi,iStateNumber) (This)->lpVtbl->SetItemCustomState(This,psi,iStateNumber)
26998 #define INameSpaceTreeControl2_EnsureItemVisible(This,psi) (This)->lpVtbl->EnsureItemVisible(This,psi)
26999 #define INameSpaceTreeControl2_SetTheme(This,pszTheme) (This)->lpVtbl->SetTheme(This,pszTheme)
27000 #define INameSpaceTreeControl2_GetNextItem(This,psi,nstcgi,ppsiNext) (This)->lpVtbl->GetNextItem(This,psi,nstcgi,ppsiNext)
27001 #define INameSpaceTreeControl2_HitTest(This,ppt,ppsiOut) (This)->lpVtbl->HitTest(This,ppt,ppsiOut)
27002 #define INameSpaceTreeControl2_GetItemRect(This,psi,prect) (This)->lpVtbl->GetItemRect(This,psi,prect)
27003 #define INameSpaceTreeControl2_CollapseAll(This) (This)->lpVtbl->CollapseAll(This)
27004 /*** INameSpaceTreeControl2 methods ***/
27005 #define INameSpaceTreeControl2_SetControlStyle(This,nstcsMask,nstcsStyle) (This)->lpVtbl->SetControlStyle(This,nstcsMask,nstcsStyle)
27006 #define INameSpaceTreeControl2_GetControlStyle(This,nstcsMask,pnstcsStyle) (This)->lpVtbl->GetControlStyle(This,nstcsMask,pnstcsStyle)
27007 #define INameSpaceTreeControl2_SetControlStyle2(This,nstcsMask,nstcsStyle) (This)->lpVtbl->SetControlStyle2(This,nstcsMask,nstcsStyle)
27008 #define INameSpaceTreeControl2_GetControlStyle2(This,nstcsMask,pnstcsStyle) (This)->lpVtbl->GetControlStyle2(This,nstcsMask,pnstcsStyle)
27009 #else
27010 /*** IUnknown methods ***/
27011 static FORCEINLINE HRESULT INameSpaceTreeControl2_QueryInterface(INameSpaceTreeControl2* This,REFIID riid,void **ppvObject) {
27012     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
27013 }
27014 static FORCEINLINE ULONG INameSpaceTreeControl2_AddRef(INameSpaceTreeControl2* This) {
27015     return This->lpVtbl->AddRef(This);
27016 }
27017 static FORCEINLINE ULONG INameSpaceTreeControl2_Release(INameSpaceTreeControl2* This) {
27018     return This->lpVtbl->Release(This);
27019 }
27020 /*** INameSpaceTreeControl methods ***/
27021 static FORCEINLINE HRESULT INameSpaceTreeControl2_Initialize(INameSpaceTreeControl2* This,HWND hwndParent,RECT *prc,NSTCSTYLE nsctsFlags) {
27022     return This->lpVtbl->Initialize(This,hwndParent,prc,nsctsFlags);
27023 }
27024 static FORCEINLINE HRESULT INameSpaceTreeControl2_TreeAdvise(INameSpaceTreeControl2* This,IUnknown *punk,DWORD *pdwCookie) {
27025     return This->lpVtbl->TreeAdvise(This,punk,pdwCookie);
27026 }
27027 static FORCEINLINE HRESULT INameSpaceTreeControl2_TreeUnadvise(INameSpaceTreeControl2* This,DWORD dwCookie) {
27028     return This->lpVtbl->TreeUnadvise(This,dwCookie);
27029 }
27030 static FORCEINLINE HRESULT INameSpaceTreeControl2_AppendRoot(INameSpaceTreeControl2* This,IShellItem *psiRoot,SHCONTF grfEnumFlags,NSTCROOTSTYLE grfRootStyle,IShellItemFilter *pif) {
27031     return This->lpVtbl->AppendRoot(This,psiRoot,grfEnumFlags,grfRootStyle,pif);
27032 }
27033 static FORCEINLINE HRESULT INameSpaceTreeControl2_InsertRoot(INameSpaceTreeControl2* This,int iIndex,IShellItem *psiRoot,SHCONTF grfEnumFlags,NSTCROOTSTYLE grfRootStyle,IShellItemFilter *pif) {
27034     return This->lpVtbl->InsertRoot(This,iIndex,psiRoot,grfEnumFlags,grfRootStyle,pif);
27035 }
27036 static FORCEINLINE HRESULT INameSpaceTreeControl2_RemoveRoot(INameSpaceTreeControl2* This,IShellItem *psiRoot) {
27037     return This->lpVtbl->RemoveRoot(This,psiRoot);
27038 }
27039 static FORCEINLINE HRESULT INameSpaceTreeControl2_RemoveAllRoots(INameSpaceTreeControl2* This) {
27040     return This->lpVtbl->RemoveAllRoots(This);
27041 }
27042 static FORCEINLINE HRESULT INameSpaceTreeControl2_GetRootItems(INameSpaceTreeControl2* This,IShellItemArray **ppsiaRootItems) {
27043     return This->lpVtbl->GetRootItems(This,ppsiaRootItems);
27044 }
27045 static FORCEINLINE HRESULT INameSpaceTreeControl2_SetItemState(INameSpaceTreeControl2* This,IShellItem *psi,NSTCITEMSTATE nstcisMask,NSTCITEMSTATE nstcisFlags) {
27046     return This->lpVtbl->SetItemState(This,psi,nstcisMask,nstcisFlags);
27047 }
27048 static FORCEINLINE HRESULT INameSpaceTreeControl2_GetItemState(INameSpaceTreeControl2* This,IShellItem *psi,NSTCITEMSTATE nstcisMask,NSTCITEMSTATE *pnstcisFlags) {
27049     return This->lpVtbl->GetItemState(This,psi,nstcisMask,pnstcisFlags);
27050 }
27051 static FORCEINLINE HRESULT INameSpaceTreeControl2_GetSelectedItems(INameSpaceTreeControl2* This,IShellItemArray **psiaItems) {
27052     return This->lpVtbl->GetSelectedItems(This,psiaItems);
27053 }
27054 static FORCEINLINE HRESULT INameSpaceTreeControl2_GetItemCustomState(INameSpaceTreeControl2* This,IShellItem *psi,int *piStateNumber) {
27055     return This->lpVtbl->GetItemCustomState(This,psi,piStateNumber);
27056 }
27057 static FORCEINLINE HRESULT INameSpaceTreeControl2_SetItemCustomState(INameSpaceTreeControl2* This,IShellItem *psi,int iStateNumber) {
27058     return This->lpVtbl->SetItemCustomState(This,psi,iStateNumber);
27059 }
27060 static FORCEINLINE HRESULT INameSpaceTreeControl2_EnsureItemVisible(INameSpaceTreeControl2* This,IShellItem *psi) {
27061     return This->lpVtbl->EnsureItemVisible(This,psi);
27062 }
27063 static FORCEINLINE HRESULT INameSpaceTreeControl2_SetTheme(INameSpaceTreeControl2* This,LPCWSTR pszTheme) {
27064     return This->lpVtbl->SetTheme(This,pszTheme);
27065 }
27066 static FORCEINLINE HRESULT INameSpaceTreeControl2_GetNextItem(INameSpaceTreeControl2* This,IShellItem *psi,NSTCGNI nstcgi,IShellItem **ppsiNext) {
27067     return This->lpVtbl->GetNextItem(This,psi,nstcgi,ppsiNext);
27068 }
27069 static FORCEINLINE HRESULT INameSpaceTreeControl2_HitTest(INameSpaceTreeControl2* This,POINT *ppt,IShellItem **ppsiOut) {
27070     return This->lpVtbl->HitTest(This,ppt,ppsiOut);
27071 }
27072 static FORCEINLINE HRESULT INameSpaceTreeControl2_GetItemRect(INameSpaceTreeControl2* This,IShellItem *psi,RECT *prect) {
27073     return This->lpVtbl->GetItemRect(This,psi,prect);
27074 }
27075 static FORCEINLINE HRESULT INameSpaceTreeControl2_CollapseAll(INameSpaceTreeControl2* This) {
27076     return This->lpVtbl->CollapseAll(This);
27077 }
27078 /*** INameSpaceTreeControl2 methods ***/
27079 static FORCEINLINE HRESULT INameSpaceTreeControl2_SetControlStyle(INameSpaceTreeControl2* This,NSTCSTYLE nstcsMask,NSTCSTYLE nstcsStyle) {
27080     return This->lpVtbl->SetControlStyle(This,nstcsMask,nstcsStyle);
27081 }
27082 static FORCEINLINE HRESULT INameSpaceTreeControl2_GetControlStyle(INameSpaceTreeControl2* This,NSTCSTYLE nstcsMask,NSTCSTYLE *pnstcsStyle) {
27083     return This->lpVtbl->GetControlStyle(This,nstcsMask,pnstcsStyle);
27084 }
27085 static FORCEINLINE HRESULT INameSpaceTreeControl2_SetControlStyle2(INameSpaceTreeControl2* This,NSTCSTYLE2 nstcsMask,NSTCSTYLE2 nstcsStyle) {
27086     return This->lpVtbl->SetControlStyle2(This,nstcsMask,nstcsStyle);
27087 }
27088 static FORCEINLINE HRESULT INameSpaceTreeControl2_GetControlStyle2(INameSpaceTreeControl2* This,NSTCSTYLE2 nstcsMask,NSTCSTYLE2 *pnstcsStyle) {
27089     return This->lpVtbl->GetControlStyle2(This,nstcsMask,pnstcsStyle);
27090 }
27091 #endif
27092 #endif
27093 
27094 #endif
27095 
27096 
27097 #endif  /* __INameSpaceTreeControl2_INTERFACE_DEFINED__ */
27098 
27099 
27100 #define NSTCS2_ALLMASK (NSTCS2_INTERRUPTNOTIFICATIONS | NSTCS2_SHOWNULLSPACEMENU | NSTCS2_DISPLAYPADDING)
27101 #define SID_SNavigationPane IID_INameSpaceTreeControl
27102 
27103 #define ISLBUTTON(x) (NSTCECT_LBUTTON == ((x) & NSTCECT_BUTTON))
27104 #define ISMBUTTON(x) (NSTCECT_MBUTTON == ((x) & NSTCECT_BUTTON))
27105 #define ISRBUTTON(x) (NSTCECT_RBUTTON == ((x) & NSTCECT_BUTTON))
27106 #define ISDBLCLICK(x) (NSTCECT_DBLCLICK == ((x) & NSTCECT_DBLCLICK))
27107 
27108 /*****************************************************************************
27109  * INameSpaceTreeControlEvents interface
27110  */
27111 #ifndef __INameSpaceTreeControlEvents_INTERFACE_DEFINED__
27112 #define __INameSpaceTreeControlEvents_INTERFACE_DEFINED__
27113 
27114 enum _NSTCEHITTEST {
27115     NSTCEHT_NOWHERE = 0x1,
27116     NSTCEHT_ONITEMICON = 0x2,
27117     NSTCEHT_ONITEMLABEL = 0x4,
27118     NSTCEHT_ONITEMINDENT = 0x8,
27119     NSTCEHT_ONITEMBUTTON = 0x10,
27120     NSTCEHT_ONITEMRIGHT = 0x20,
27121     NSTCEHT_ONITEMSTATEICON = 0x40,
27122     NSTCEHT_ONITEM = 0x46,
27123     NSTCEHT_ONITEMTABBUTTON = 0x1000
27124 };
27125 
27126 typedef DWORD NSTCEHITTEST;
27127 
27128 enum _NSTCECLICKTYPE {
27129     NSTCECT_LBUTTON = 0x1,
27130     NSTCECT_MBUTTON = 0x2,
27131     NSTCECT_RBUTTON = 0x3,
27132     NSTCECT_BUTTON = 0x3,
27133     NSTCECT_DBLCLICK = 0x4
27134 };
27135 
27136 typedef DWORD NSTCECLICKTYPE;
27137 
27138 DEFINE_GUID(IID_INameSpaceTreeControlEvents, 0x93d77985, 0xb3d8, 0x4484, 0x83,0x18, 0x67,0x2c,0xdd,0xa0,0x02,0xce);
27139 #if defined(__cplusplus) && !defined(CINTERFACE)
27140 MIDL_INTERFACE("93d77985-b3d8-4484-8318-672cdda002ce")
27141 INameSpaceTreeControlEvents : public IUnknown
27142 {
27143     virtual HRESULT STDMETHODCALLTYPE OnItemClick(
27144         IShellItem *psi,
27145         NSTCEHITTEST nstceHitTest,
27146         NSTCECLICKTYPE nstceClickType) = 0;
27147 
27148     virtual HRESULT STDMETHODCALLTYPE OnPropertyItemCommit(
27149         IShellItem *psi) = 0;
27150 
27151     virtual HRESULT STDMETHODCALLTYPE OnItemStateChanging(
27152         IShellItem *psi,
27153         NSTCITEMSTATE nstcisMask,
27154         NSTCITEMSTATE nstcisState) = 0;
27155 
27156     virtual HRESULT STDMETHODCALLTYPE OnItemStateChanged(
27157         IShellItem *psi,
27158         NSTCITEMSTATE nstcisMask,
27159         NSTCITEMSTATE nstcisState) = 0;
27160 
27161     virtual HRESULT STDMETHODCALLTYPE OnSelectionChanged(
27162         IShellItemArray *psiaSelection) = 0;
27163 
27164     virtual HRESULT STDMETHODCALLTYPE OnKeyboardInput(
27165         UINT uMsg,
27166         WPARAM wParam,
27167         LPARAM lParam) = 0;
27168 
27169     virtual HRESULT STDMETHODCALLTYPE OnBeforeExpand(
27170         IShellItem *psi) = 0;
27171 
27172     virtual HRESULT STDMETHODCALLTYPE OnAfterExpand(
27173         IShellItem *psi) = 0;
27174 
27175     virtual HRESULT STDMETHODCALLTYPE OnBeginLabelEdit(
27176         IShellItem *psi) = 0;
27177 
27178     virtual HRESULT STDMETHODCALLTYPE OnEndLabelEdit(
27179         IShellItem *psi) = 0;
27180 
27181     virtual HRESULT STDMETHODCALLTYPE OnGetToolTip(
27182         IShellItem *psi,
27183         LPWSTR pszTip,
27184         int cchTip) = 0;
27185 
27186     virtual HRESULT STDMETHODCALLTYPE OnBeforeItemDelete(
27187         IShellItem *psi) = 0;
27188 
27189     virtual HRESULT STDMETHODCALLTYPE OnItemAdded(
27190         IShellItem *psi,
27191         WINBOOL fIsRoot) = 0;
27192 
27193     virtual HRESULT STDMETHODCALLTYPE OnItemDeleted(
27194         IShellItem *psi,
27195         WINBOOL fIsRoot) = 0;
27196 
27197     virtual HRESULT STDMETHODCALLTYPE OnBeforeContextMenu(
27198         IShellItem *psi,
27199         REFIID riid,
27200         void **ppv) = 0;
27201 
27202     virtual HRESULT STDMETHODCALLTYPE OnAfterContextMenu(
27203         IShellItem *psi,
27204         IContextMenu *pcmIn,
27205         REFIID riid,
27206         void **ppv) = 0;
27207 
27208     virtual HRESULT STDMETHODCALLTYPE OnBeforeStateImageChange(
27209         IShellItem *psi) = 0;
27210 
27211     virtual HRESULT STDMETHODCALLTYPE OnGetDefaultIconIndex(
27212         IShellItem *psi,
27213         int *piDefaultIcon,
27214         int *piOpenIcon) = 0;
27215 
27216 };
27217 #ifdef __CRT_UUID_DECL
27218 __CRT_UUID_DECL(INameSpaceTreeControlEvents, 0x93d77985, 0xb3d8, 0x4484, 0x83,0x18, 0x67,0x2c,0xdd,0xa0,0x02,0xce)
27219 #endif
27220 #else
27221 typedef struct INameSpaceTreeControlEventsVtbl {
27222     BEGIN_INTERFACE
27223 
27224     /*** IUnknown methods ***/
27225     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
27226         INameSpaceTreeControlEvents *This,
27227         REFIID riid,
27228         void **ppvObject);
27229 
27230     ULONG (STDMETHODCALLTYPE *AddRef)(
27231         INameSpaceTreeControlEvents *This);
27232 
27233     ULONG (STDMETHODCALLTYPE *Release)(
27234         INameSpaceTreeControlEvents *This);
27235 
27236     /*** INameSpaceTreeControlEvents methods ***/
27237     HRESULT (STDMETHODCALLTYPE *OnItemClick)(
27238         INameSpaceTreeControlEvents *This,
27239         IShellItem *psi,
27240         NSTCEHITTEST nstceHitTest,
27241         NSTCECLICKTYPE nstceClickType);
27242 
27243     HRESULT (STDMETHODCALLTYPE *OnPropertyItemCommit)(
27244         INameSpaceTreeControlEvents *This,
27245         IShellItem *psi);
27246 
27247     HRESULT (STDMETHODCALLTYPE *OnItemStateChanging)(
27248         INameSpaceTreeControlEvents *This,
27249         IShellItem *psi,
27250         NSTCITEMSTATE nstcisMask,
27251         NSTCITEMSTATE nstcisState);
27252 
27253     HRESULT (STDMETHODCALLTYPE *OnItemStateChanged)(
27254         INameSpaceTreeControlEvents *This,
27255         IShellItem *psi,
27256         NSTCITEMSTATE nstcisMask,
27257         NSTCITEMSTATE nstcisState);
27258 
27259     HRESULT (STDMETHODCALLTYPE *OnSelectionChanged)(
27260         INameSpaceTreeControlEvents *This,
27261         IShellItemArray *psiaSelection);
27262 
27263     HRESULT (STDMETHODCALLTYPE *OnKeyboardInput)(
27264         INameSpaceTreeControlEvents *This,
27265         UINT uMsg,
27266         WPARAM wParam,
27267         LPARAM lParam);
27268 
27269     HRESULT (STDMETHODCALLTYPE *OnBeforeExpand)(
27270         INameSpaceTreeControlEvents *This,
27271         IShellItem *psi);
27272 
27273     HRESULT (STDMETHODCALLTYPE *OnAfterExpand)(
27274         INameSpaceTreeControlEvents *This,
27275         IShellItem *psi);
27276 
27277     HRESULT (STDMETHODCALLTYPE *OnBeginLabelEdit)(
27278         INameSpaceTreeControlEvents *This,
27279         IShellItem *psi);
27280 
27281     HRESULT (STDMETHODCALLTYPE *OnEndLabelEdit)(
27282         INameSpaceTreeControlEvents *This,
27283         IShellItem *psi);
27284 
27285     HRESULT (STDMETHODCALLTYPE *OnGetToolTip)(
27286         INameSpaceTreeControlEvents *This,
27287         IShellItem *psi,
27288         LPWSTR pszTip,
27289         int cchTip);
27290 
27291     HRESULT (STDMETHODCALLTYPE *OnBeforeItemDelete)(
27292         INameSpaceTreeControlEvents *This,
27293         IShellItem *psi);
27294 
27295     HRESULT (STDMETHODCALLTYPE *OnItemAdded)(
27296         INameSpaceTreeControlEvents *This,
27297         IShellItem *psi,
27298         WINBOOL fIsRoot);
27299 
27300     HRESULT (STDMETHODCALLTYPE *OnItemDeleted)(
27301         INameSpaceTreeControlEvents *This,
27302         IShellItem *psi,
27303         WINBOOL fIsRoot);
27304 
27305     HRESULT (STDMETHODCALLTYPE *OnBeforeContextMenu)(
27306         INameSpaceTreeControlEvents *This,
27307         IShellItem *psi,
27308         REFIID riid,
27309         void **ppv);
27310 
27311     HRESULT (STDMETHODCALLTYPE *OnAfterContextMenu)(
27312         INameSpaceTreeControlEvents *This,
27313         IShellItem *psi,
27314         IContextMenu *pcmIn,
27315         REFIID riid,
27316         void **ppv);
27317 
27318     HRESULT (STDMETHODCALLTYPE *OnBeforeStateImageChange)(
27319         INameSpaceTreeControlEvents *This,
27320         IShellItem *psi);
27321 
27322     HRESULT (STDMETHODCALLTYPE *OnGetDefaultIconIndex)(
27323         INameSpaceTreeControlEvents *This,
27324         IShellItem *psi,
27325         int *piDefaultIcon,
27326         int *piOpenIcon);
27327 
27328     END_INTERFACE
27329 } INameSpaceTreeControlEventsVtbl;
27330 
27331 interface INameSpaceTreeControlEvents {
27332     CONST_VTBL INameSpaceTreeControlEventsVtbl* lpVtbl;
27333 };
27334 
27335 #ifdef COBJMACROS
27336 #ifndef WIDL_C_INLINE_WRAPPERS
27337 /*** IUnknown methods ***/
27338 #define INameSpaceTreeControlEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
27339 #define INameSpaceTreeControlEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
27340 #define INameSpaceTreeControlEvents_Release(This) (This)->lpVtbl->Release(This)
27341 /*** INameSpaceTreeControlEvents methods ***/
27342 #define INameSpaceTreeControlEvents_OnItemClick(This,psi,nstceHitTest,nstceClickType) (This)->lpVtbl->OnItemClick(This,psi,nstceHitTest,nstceClickType)
27343 #define INameSpaceTreeControlEvents_OnPropertyItemCommit(This,psi) (This)->lpVtbl->OnPropertyItemCommit(This,psi)
27344 #define INameSpaceTreeControlEvents_OnItemStateChanging(This,psi,nstcisMask,nstcisState) (This)->lpVtbl->OnItemStateChanging(This,psi,nstcisMask,nstcisState)
27345 #define INameSpaceTreeControlEvents_OnItemStateChanged(This,psi,nstcisMask,nstcisState) (This)->lpVtbl->OnItemStateChanged(This,psi,nstcisMask,nstcisState)
27346 #define INameSpaceTreeControlEvents_OnSelectionChanged(This,psiaSelection) (This)->lpVtbl->OnSelectionChanged(This,psiaSelection)
27347 #define INameSpaceTreeControlEvents_OnKeyboardInput(This,uMsg,wParam,lParam) (This)->lpVtbl->OnKeyboardInput(This,uMsg,wParam,lParam)
27348 #define INameSpaceTreeControlEvents_OnBeforeExpand(This,psi) (This)->lpVtbl->OnBeforeExpand(This,psi)
27349 #define INameSpaceTreeControlEvents_OnAfterExpand(This,psi) (This)->lpVtbl->OnAfterExpand(This,psi)
27350 #define INameSpaceTreeControlEvents_OnBeginLabelEdit(This,psi) (This)->lpVtbl->OnBeginLabelEdit(This,psi)
27351 #define INameSpaceTreeControlEvents_OnEndLabelEdit(This,psi) (This)->lpVtbl->OnEndLabelEdit(This,psi)
27352 #define INameSpaceTreeControlEvents_OnGetToolTip(This,psi,pszTip,cchTip) (This)->lpVtbl->OnGetToolTip(This,psi,pszTip,cchTip)
27353 #define INameSpaceTreeControlEvents_OnBeforeItemDelete(This,psi) (This)->lpVtbl->OnBeforeItemDelete(This,psi)
27354 #define INameSpaceTreeControlEvents_OnItemAdded(This,psi,fIsRoot) (This)->lpVtbl->OnItemAdded(This,psi,fIsRoot)
27355 #define INameSpaceTreeControlEvents_OnItemDeleted(This,psi,fIsRoot) (This)->lpVtbl->OnItemDeleted(This,psi,fIsRoot)
27356 #define INameSpaceTreeControlEvents_OnBeforeContextMenu(This,psi,riid,ppv) (This)->lpVtbl->OnBeforeContextMenu(This,psi,riid,ppv)
27357 #define INameSpaceTreeControlEvents_OnAfterContextMenu(This,psi,pcmIn,riid,ppv) (This)->lpVtbl->OnAfterContextMenu(This,psi,pcmIn,riid,ppv)
27358 #define INameSpaceTreeControlEvents_OnBeforeStateImageChange(This,psi) (This)->lpVtbl->OnBeforeStateImageChange(This,psi)
27359 #define INameSpaceTreeControlEvents_OnGetDefaultIconIndex(This,psi,piDefaultIcon,piOpenIcon) (This)->lpVtbl->OnGetDefaultIconIndex(This,psi,piDefaultIcon,piOpenIcon)
27360 #else
27361 /*** IUnknown methods ***/
27362 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_QueryInterface(INameSpaceTreeControlEvents* This,REFIID riid,void **ppvObject) {
27363     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
27364 }
27365 static FORCEINLINE ULONG INameSpaceTreeControlEvents_AddRef(INameSpaceTreeControlEvents* This) {
27366     return This->lpVtbl->AddRef(This);
27367 }
27368 static FORCEINLINE ULONG INameSpaceTreeControlEvents_Release(INameSpaceTreeControlEvents* This) {
27369     return This->lpVtbl->Release(This);
27370 }
27371 /*** INameSpaceTreeControlEvents methods ***/
27372 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnItemClick(INameSpaceTreeControlEvents* This,IShellItem *psi,NSTCEHITTEST nstceHitTest,NSTCECLICKTYPE nstceClickType) {
27373     return This->lpVtbl->OnItemClick(This,psi,nstceHitTest,nstceClickType);
27374 }
27375 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnPropertyItemCommit(INameSpaceTreeControlEvents* This,IShellItem *psi) {
27376     return This->lpVtbl->OnPropertyItemCommit(This,psi);
27377 }
27378 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnItemStateChanging(INameSpaceTreeControlEvents* This,IShellItem *psi,NSTCITEMSTATE nstcisMask,NSTCITEMSTATE nstcisState) {
27379     return This->lpVtbl->OnItemStateChanging(This,psi,nstcisMask,nstcisState);
27380 }
27381 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnItemStateChanged(INameSpaceTreeControlEvents* This,IShellItem *psi,NSTCITEMSTATE nstcisMask,NSTCITEMSTATE nstcisState) {
27382     return This->lpVtbl->OnItemStateChanged(This,psi,nstcisMask,nstcisState);
27383 }
27384 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnSelectionChanged(INameSpaceTreeControlEvents* This,IShellItemArray *psiaSelection) {
27385     return This->lpVtbl->OnSelectionChanged(This,psiaSelection);
27386 }
27387 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnKeyboardInput(INameSpaceTreeControlEvents* This,UINT uMsg,WPARAM wParam,LPARAM lParam) {
27388     return This->lpVtbl->OnKeyboardInput(This,uMsg,wParam,lParam);
27389 }
27390 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnBeforeExpand(INameSpaceTreeControlEvents* This,IShellItem *psi) {
27391     return This->lpVtbl->OnBeforeExpand(This,psi);
27392 }
27393 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnAfterExpand(INameSpaceTreeControlEvents* This,IShellItem *psi) {
27394     return This->lpVtbl->OnAfterExpand(This,psi);
27395 }
27396 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnBeginLabelEdit(INameSpaceTreeControlEvents* This,IShellItem *psi) {
27397     return This->lpVtbl->OnBeginLabelEdit(This,psi);
27398 }
27399 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnEndLabelEdit(INameSpaceTreeControlEvents* This,IShellItem *psi) {
27400     return This->lpVtbl->OnEndLabelEdit(This,psi);
27401 }
27402 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnGetToolTip(INameSpaceTreeControlEvents* This,IShellItem *psi,LPWSTR pszTip,int cchTip) {
27403     return This->lpVtbl->OnGetToolTip(This,psi,pszTip,cchTip);
27404 }
27405 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnBeforeItemDelete(INameSpaceTreeControlEvents* This,IShellItem *psi) {
27406     return This->lpVtbl->OnBeforeItemDelete(This,psi);
27407 }
27408 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnItemAdded(INameSpaceTreeControlEvents* This,IShellItem *psi,WINBOOL fIsRoot) {
27409     return This->lpVtbl->OnItemAdded(This,psi,fIsRoot);
27410 }
27411 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnItemDeleted(INameSpaceTreeControlEvents* This,IShellItem *psi,WINBOOL fIsRoot) {
27412     return This->lpVtbl->OnItemDeleted(This,psi,fIsRoot);
27413 }
27414 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnBeforeContextMenu(INameSpaceTreeControlEvents* This,IShellItem *psi,REFIID riid,void **ppv) {
27415     return This->lpVtbl->OnBeforeContextMenu(This,psi,riid,ppv);
27416 }
27417 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnAfterContextMenu(INameSpaceTreeControlEvents* This,IShellItem *psi,IContextMenu *pcmIn,REFIID riid,void **ppv) {
27418     return This->lpVtbl->OnAfterContextMenu(This,psi,pcmIn,riid,ppv);
27419 }
27420 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnBeforeStateImageChange(INameSpaceTreeControlEvents* This,IShellItem *psi) {
27421     return This->lpVtbl->OnBeforeStateImageChange(This,psi);
27422 }
27423 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnGetDefaultIconIndex(INameSpaceTreeControlEvents* This,IShellItem *psi,int *piDefaultIcon,int *piOpenIcon) {
27424     return This->lpVtbl->OnGetDefaultIconIndex(This,psi,piDefaultIcon,piOpenIcon);
27425 }
27426 #endif
27427 #endif
27428 
27429 #endif
27430 
27431 
27432 #endif  /* __INameSpaceTreeControlEvents_INTERFACE_DEFINED__ */
27433 
27434 
27435 #define NSTCDHPOS_ONTOP  -1
27436 
27437 /*****************************************************************************
27438  * INameSpaceTreeControlDropHandler interface
27439  */
27440 #ifndef __INameSpaceTreeControlDropHandler_INTERFACE_DEFINED__
27441 #define __INameSpaceTreeControlDropHandler_INTERFACE_DEFINED__
27442 
27443 DEFINE_GUID(IID_INameSpaceTreeControlDropHandler, 0xf9c665d6, 0xc2f2, 0x4c19, 0xbf,0x33, 0x83,0x22,0xd7,0x35,0x2f,0x51);
27444 #if defined(__cplusplus) && !defined(CINTERFACE)
27445 MIDL_INTERFACE("f9c665d6-c2f2-4c19-bf33-8322d7352f51")
27446 INameSpaceTreeControlDropHandler : public IUnknown
27447 {
27448     virtual HRESULT STDMETHODCALLTYPE OnDragEnter(
27449         IShellItem *psiOver,
27450         IShellItemArray *psiaData,
27451         WINBOOL fOutsideSource,
27452         DWORD grfKeyState,
27453         DWORD *pdwEffect) = 0;
27454 
27455     virtual HRESULT STDMETHODCALLTYPE OnDragOver(
27456         IShellItem *psiOver,
27457         IShellItemArray *psiaData,
27458         DWORD grfKeyState,
27459         DWORD *pdwEffect) = 0;
27460 
27461     virtual HRESULT STDMETHODCALLTYPE OnDragPosition(
27462         IShellItem *psiOver,
27463         IShellItemArray *psiaData,
27464         int iNewPosition,
27465         int iOldPosition) = 0;
27466 
27467     virtual HRESULT STDMETHODCALLTYPE OnDrop(
27468         IShellItem *psiOver,
27469         IShellItemArray *psiaData,
27470         int iPosition,
27471         DWORD grfKeyState,
27472         DWORD *pdwEffect) = 0;
27473 
27474     virtual HRESULT STDMETHODCALLTYPE OnDropPosition(
27475         IShellItem *psiOver,
27476         IShellItemArray *psiaData,
27477         int iNewPosition,
27478         int iOldPosition) = 0;
27479 
27480     virtual HRESULT STDMETHODCALLTYPE OnDragLeave(
27481         IShellItem *psiOver) = 0;
27482 
27483 };
27484 #ifdef __CRT_UUID_DECL
27485 __CRT_UUID_DECL(INameSpaceTreeControlDropHandler, 0xf9c665d6, 0xc2f2, 0x4c19, 0xbf,0x33, 0x83,0x22,0xd7,0x35,0x2f,0x51)
27486 #endif
27487 #else
27488 typedef struct INameSpaceTreeControlDropHandlerVtbl {
27489     BEGIN_INTERFACE
27490 
27491     /*** IUnknown methods ***/
27492     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
27493         INameSpaceTreeControlDropHandler *This,
27494         REFIID riid,
27495         void **ppvObject);
27496 
27497     ULONG (STDMETHODCALLTYPE *AddRef)(
27498         INameSpaceTreeControlDropHandler *This);
27499 
27500     ULONG (STDMETHODCALLTYPE *Release)(
27501         INameSpaceTreeControlDropHandler *This);
27502 
27503     /*** INameSpaceTreeControlDropHandler methods ***/
27504     HRESULT (STDMETHODCALLTYPE *OnDragEnter)(
27505         INameSpaceTreeControlDropHandler *This,
27506         IShellItem *psiOver,
27507         IShellItemArray *psiaData,
27508         WINBOOL fOutsideSource,
27509         DWORD grfKeyState,
27510         DWORD *pdwEffect);
27511 
27512     HRESULT (STDMETHODCALLTYPE *OnDragOver)(
27513         INameSpaceTreeControlDropHandler *This,
27514         IShellItem *psiOver,
27515         IShellItemArray *psiaData,
27516         DWORD grfKeyState,
27517         DWORD *pdwEffect);
27518 
27519     HRESULT (STDMETHODCALLTYPE *OnDragPosition)(
27520         INameSpaceTreeControlDropHandler *This,
27521         IShellItem *psiOver,
27522         IShellItemArray *psiaData,
27523         int iNewPosition,
27524         int iOldPosition);
27525 
27526     HRESULT (STDMETHODCALLTYPE *OnDrop)(
27527         INameSpaceTreeControlDropHandler *This,
27528         IShellItem *psiOver,
27529         IShellItemArray *psiaData,
27530         int iPosition,
27531         DWORD grfKeyState,
27532         DWORD *pdwEffect);
27533 
27534     HRESULT (STDMETHODCALLTYPE *OnDropPosition)(
27535         INameSpaceTreeControlDropHandler *This,
27536         IShellItem *psiOver,
27537         IShellItemArray *psiaData,
27538         int iNewPosition,
27539         int iOldPosition);
27540 
27541     HRESULT (STDMETHODCALLTYPE *OnDragLeave)(
27542         INameSpaceTreeControlDropHandler *This,
27543         IShellItem *psiOver);
27544 
27545     END_INTERFACE
27546 } INameSpaceTreeControlDropHandlerVtbl;
27547 
27548 interface INameSpaceTreeControlDropHandler {
27549     CONST_VTBL INameSpaceTreeControlDropHandlerVtbl* lpVtbl;
27550 };
27551 
27552 #ifdef COBJMACROS
27553 #ifndef WIDL_C_INLINE_WRAPPERS
27554 /*** IUnknown methods ***/
27555 #define INameSpaceTreeControlDropHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
27556 #define INameSpaceTreeControlDropHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
27557 #define INameSpaceTreeControlDropHandler_Release(This) (This)->lpVtbl->Release(This)
27558 /*** INameSpaceTreeControlDropHandler methods ***/
27559 #define INameSpaceTreeControlDropHandler_OnDragEnter(This,psiOver,psiaData,fOutsideSource,grfKeyState,pdwEffect) (This)->lpVtbl->OnDragEnter(This,psiOver,psiaData,fOutsideSource,grfKeyState,pdwEffect)
27560 #define INameSpaceTreeControlDropHandler_OnDragOver(This,psiOver,psiaData,grfKeyState,pdwEffect) (This)->lpVtbl->OnDragOver(This,psiOver,psiaData,grfKeyState,pdwEffect)
27561 #define INameSpaceTreeControlDropHandler_OnDragPosition(This,psiOver,psiaData,iNewPosition,iOldPosition) (This)->lpVtbl->OnDragPosition(This,psiOver,psiaData,iNewPosition,iOldPosition)
27562 #define INameSpaceTreeControlDropHandler_OnDrop(This,psiOver,psiaData,iPosition,grfKeyState,pdwEffect) (This)->lpVtbl->OnDrop(This,psiOver,psiaData,iPosition,grfKeyState,pdwEffect)
27563 #define INameSpaceTreeControlDropHandler_OnDropPosition(This,psiOver,psiaData,iNewPosition,iOldPosition) (This)->lpVtbl->OnDropPosition(This,psiOver,psiaData,iNewPosition,iOldPosition)
27564 #define INameSpaceTreeControlDropHandler_OnDragLeave(This,psiOver) (This)->lpVtbl->OnDragLeave(This,psiOver)
27565 #else
27566 /*** IUnknown methods ***/
27567 static FORCEINLINE HRESULT INameSpaceTreeControlDropHandler_QueryInterface(INameSpaceTreeControlDropHandler* This,REFIID riid,void **ppvObject) {
27568     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
27569 }
27570 static FORCEINLINE ULONG INameSpaceTreeControlDropHandler_AddRef(INameSpaceTreeControlDropHandler* This) {
27571     return This->lpVtbl->AddRef(This);
27572 }
27573 static FORCEINLINE ULONG INameSpaceTreeControlDropHandler_Release(INameSpaceTreeControlDropHandler* This) {
27574     return This->lpVtbl->Release(This);
27575 }
27576 /*** INameSpaceTreeControlDropHandler methods ***/
27577 static FORCEINLINE HRESULT INameSpaceTreeControlDropHandler_OnDragEnter(INameSpaceTreeControlDropHandler* This,IShellItem *psiOver,IShellItemArray *psiaData,WINBOOL fOutsideSource,DWORD grfKeyState,DWORD *pdwEffect) {
27578     return This->lpVtbl->OnDragEnter(This,psiOver,psiaData,fOutsideSource,grfKeyState,pdwEffect);
27579 }
27580 static FORCEINLINE HRESULT INameSpaceTreeControlDropHandler_OnDragOver(INameSpaceTreeControlDropHandler* This,IShellItem *psiOver,IShellItemArray *psiaData,DWORD grfKeyState,DWORD *pdwEffect) {
27581     return This->lpVtbl->OnDragOver(This,psiOver,psiaData,grfKeyState,pdwEffect);
27582 }
27583 static FORCEINLINE HRESULT INameSpaceTreeControlDropHandler_OnDragPosition(INameSpaceTreeControlDropHandler* This,IShellItem *psiOver,IShellItemArray *psiaData,int iNewPosition,int iOldPosition) {
27584     return This->lpVtbl->OnDragPosition(This,psiOver,psiaData,iNewPosition,iOldPosition);
27585 }
27586 static FORCEINLINE HRESULT INameSpaceTreeControlDropHandler_OnDrop(INameSpaceTreeControlDropHandler* This,IShellItem *psiOver,IShellItemArray *psiaData,int iPosition,DWORD grfKeyState,DWORD *pdwEffect) {
27587     return This->lpVtbl->OnDrop(This,psiOver,psiaData,iPosition,grfKeyState,pdwEffect);
27588 }
27589 static FORCEINLINE HRESULT INameSpaceTreeControlDropHandler_OnDropPosition(INameSpaceTreeControlDropHandler* This,IShellItem *psiOver,IShellItemArray *psiaData,int iNewPosition,int iOldPosition) {
27590     return This->lpVtbl->OnDropPosition(This,psiOver,psiaData,iNewPosition,iOldPosition);
27591 }
27592 static FORCEINLINE HRESULT INameSpaceTreeControlDropHandler_OnDragLeave(INameSpaceTreeControlDropHandler* This,IShellItem *psiOver) {
27593     return This->lpVtbl->OnDragLeave(This,psiOver);
27594 }
27595 #endif
27596 #endif
27597 
27598 #endif
27599 
27600 
27601 #endif  /* __INameSpaceTreeControlDropHandler_INTERFACE_DEFINED__ */
27602 
27603 
27604 /*****************************************************************************
27605  * INameSpaceTreeAccessible interface
27606  */
27607 #ifndef __INameSpaceTreeAccessible_INTERFACE_DEFINED__
27608 #define __INameSpaceTreeAccessible_INTERFACE_DEFINED__
27609 
27610 DEFINE_GUID(IID_INameSpaceTreeAccessible, 0x71f312de, 0x43ed, 0x4190, 0x84,0x77, 0xe9,0x53,0x6b,0x82,0x35,0x0b);
27611 #if defined(__cplusplus) && !defined(CINTERFACE)
27612 MIDL_INTERFACE("71f312de-43ed-4190-8477-e9536b82350b")
27613 INameSpaceTreeAccessible : public IUnknown
27614 {
27615     virtual HRESULT STDMETHODCALLTYPE OnGetDefaultAccessibilityAction(
27616         IShellItem *psi,
27617         BSTR *pbstrDefaultAction) = 0;
27618 
27619     virtual HRESULT STDMETHODCALLTYPE OnDoDefaultAccessibilityAction(
27620         IShellItem *psi) = 0;
27621 
27622     virtual HRESULT STDMETHODCALLTYPE OnGetAccessibilityRole(
27623         IShellItem *psi,
27624         VARIANT *pvarRole) = 0;
27625 
27626 };
27627 #ifdef __CRT_UUID_DECL
27628 __CRT_UUID_DECL(INameSpaceTreeAccessible, 0x71f312de, 0x43ed, 0x4190, 0x84,0x77, 0xe9,0x53,0x6b,0x82,0x35,0x0b)
27629 #endif
27630 #else
27631 typedef struct INameSpaceTreeAccessibleVtbl {
27632     BEGIN_INTERFACE
27633 
27634     /*** IUnknown methods ***/
27635     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
27636         INameSpaceTreeAccessible *This,
27637         REFIID riid,
27638         void **ppvObject);
27639 
27640     ULONG (STDMETHODCALLTYPE *AddRef)(
27641         INameSpaceTreeAccessible *This);
27642 
27643     ULONG (STDMETHODCALLTYPE *Release)(
27644         INameSpaceTreeAccessible *This);
27645 
27646     /*** INameSpaceTreeAccessible methods ***/
27647     HRESULT (STDMETHODCALLTYPE *OnGetDefaultAccessibilityAction)(
27648         INameSpaceTreeAccessible *This,
27649         IShellItem *psi,
27650         BSTR *pbstrDefaultAction);
27651 
27652     HRESULT (STDMETHODCALLTYPE *OnDoDefaultAccessibilityAction)(
27653         INameSpaceTreeAccessible *This,
27654         IShellItem *psi);
27655 
27656     HRESULT (STDMETHODCALLTYPE *OnGetAccessibilityRole)(
27657         INameSpaceTreeAccessible *This,
27658         IShellItem *psi,
27659         VARIANT *pvarRole);
27660 
27661     END_INTERFACE
27662 } INameSpaceTreeAccessibleVtbl;
27663 
27664 interface INameSpaceTreeAccessible {
27665     CONST_VTBL INameSpaceTreeAccessibleVtbl* lpVtbl;
27666 };
27667 
27668 #ifdef COBJMACROS
27669 #ifndef WIDL_C_INLINE_WRAPPERS
27670 /*** IUnknown methods ***/
27671 #define INameSpaceTreeAccessible_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
27672 #define INameSpaceTreeAccessible_AddRef(This) (This)->lpVtbl->AddRef(This)
27673 #define INameSpaceTreeAccessible_Release(This) (This)->lpVtbl->Release(This)
27674 /*** INameSpaceTreeAccessible methods ***/
27675 #define INameSpaceTreeAccessible_OnGetDefaultAccessibilityAction(This,psi,pbstrDefaultAction) (This)->lpVtbl->OnGetDefaultAccessibilityAction(This,psi,pbstrDefaultAction)
27676 #define INameSpaceTreeAccessible_OnDoDefaultAccessibilityAction(This,psi) (This)->lpVtbl->OnDoDefaultAccessibilityAction(This,psi)
27677 #define INameSpaceTreeAccessible_OnGetAccessibilityRole(This,psi,pvarRole) (This)->lpVtbl->OnGetAccessibilityRole(This,psi,pvarRole)
27678 #else
27679 /*** IUnknown methods ***/
27680 static FORCEINLINE HRESULT INameSpaceTreeAccessible_QueryInterface(INameSpaceTreeAccessible* This,REFIID riid,void **ppvObject) {
27681     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
27682 }
27683 static FORCEINLINE ULONG INameSpaceTreeAccessible_AddRef(INameSpaceTreeAccessible* This) {
27684     return This->lpVtbl->AddRef(This);
27685 }
27686 static FORCEINLINE ULONG INameSpaceTreeAccessible_Release(INameSpaceTreeAccessible* This) {
27687     return This->lpVtbl->Release(This);
27688 }
27689 /*** INameSpaceTreeAccessible methods ***/
27690 static FORCEINLINE HRESULT INameSpaceTreeAccessible_OnGetDefaultAccessibilityAction(INameSpaceTreeAccessible* This,IShellItem *psi,BSTR *pbstrDefaultAction) {
27691     return This->lpVtbl->OnGetDefaultAccessibilityAction(This,psi,pbstrDefaultAction);
27692 }
27693 static FORCEINLINE HRESULT INameSpaceTreeAccessible_OnDoDefaultAccessibilityAction(INameSpaceTreeAccessible* This,IShellItem *psi) {
27694     return This->lpVtbl->OnDoDefaultAccessibilityAction(This,psi);
27695 }
27696 static FORCEINLINE HRESULT INameSpaceTreeAccessible_OnGetAccessibilityRole(INameSpaceTreeAccessible* This,IShellItem *psi,VARIANT *pvarRole) {
27697     return This->lpVtbl->OnGetAccessibilityRole(This,psi,pvarRole);
27698 }
27699 #endif
27700 #endif
27701 
27702 #endif
27703 
27704 
27705 #endif  /* __INameSpaceTreeAccessible_INTERFACE_DEFINED__ */
27706 
27707 
27708 /*****************************************************************************
27709  * INameSpaceTreeControlCustomDraw interface
27710  */
27711 #ifndef __INameSpaceTreeControlCustomDraw_INTERFACE_DEFINED__
27712 #define __INameSpaceTreeControlCustomDraw_INTERFACE_DEFINED__
27713 
27714 typedef struct NSTCCUSTOMDRAW {
27715     IShellItem *psi;
27716     UINT uItemState;
27717     NSTCITEMSTATE nstcis;
27718     LPCWSTR pszText;
27719     int iImage;
27720     HIMAGELIST himl;
27721     int iLevel;
27722     int iIndent;
27723 } NSTCCUSTOMDRAW;
27724 
27725 DEFINE_GUID(IID_INameSpaceTreeControlCustomDraw, 0x2d3ba758, 0x33ee, 0x42d5, 0xbb,0x7b, 0x5f,0x34,0x31,0xd8,0x6c,0x78);
27726 #if defined(__cplusplus) && !defined(CINTERFACE)
27727 MIDL_INTERFACE("2d3ba758-33ee-42d5-bb7b-5f3431d86c78")
27728 INameSpaceTreeControlCustomDraw : public IUnknown
27729 {
27730     virtual HRESULT STDMETHODCALLTYPE PrePaint(
27731         HDC hdc,
27732         RECT *prc,
27733         LRESULT *plres) = 0;
27734 
27735     virtual HRESULT STDMETHODCALLTYPE PostPaint(
27736         HDC hdc,
27737         RECT *prc) = 0;
27738 
27739     virtual HRESULT STDMETHODCALLTYPE ItemPrePaint(
27740         HDC hdc,
27741         RECT *prc,
27742         NSTCCUSTOMDRAW *pnstccdItem,
27743         COLORREF *pclrText,
27744         COLORREF *pclrTextBk,
27745         LRESULT *plres) = 0;
27746 
27747     virtual HRESULT STDMETHODCALLTYPE ItemPostPaint(
27748         HDC hdc,
27749         RECT *prc,
27750         NSTCCUSTOMDRAW *pnstccdItem) = 0;
27751 
27752 };
27753 #ifdef __CRT_UUID_DECL
27754 __CRT_UUID_DECL(INameSpaceTreeControlCustomDraw, 0x2d3ba758, 0x33ee, 0x42d5, 0xbb,0x7b, 0x5f,0x34,0x31,0xd8,0x6c,0x78)
27755 #endif
27756 #else
27757 typedef struct INameSpaceTreeControlCustomDrawVtbl {
27758     BEGIN_INTERFACE
27759 
27760     /*** IUnknown methods ***/
27761     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
27762         INameSpaceTreeControlCustomDraw *This,
27763         REFIID riid,
27764         void **ppvObject);
27765 
27766     ULONG (STDMETHODCALLTYPE *AddRef)(
27767         INameSpaceTreeControlCustomDraw *This);
27768 
27769     ULONG (STDMETHODCALLTYPE *Release)(
27770         INameSpaceTreeControlCustomDraw *This);
27771 
27772     /*** INameSpaceTreeControlCustomDraw methods ***/
27773     HRESULT (STDMETHODCALLTYPE *PrePaint)(
27774         INameSpaceTreeControlCustomDraw *This,
27775         HDC hdc,
27776         RECT *prc,
27777         LRESULT *plres);
27778 
27779     HRESULT (STDMETHODCALLTYPE *PostPaint)(
27780         INameSpaceTreeControlCustomDraw *This,
27781         HDC hdc,
27782         RECT *prc);
27783 
27784     HRESULT (STDMETHODCALLTYPE *ItemPrePaint)(
27785         INameSpaceTreeControlCustomDraw *This,
27786         HDC hdc,
27787         RECT *prc,
27788         NSTCCUSTOMDRAW *pnstccdItem,
27789         COLORREF *pclrText,
27790         COLORREF *pclrTextBk,
27791         LRESULT *plres);
27792 
27793     HRESULT (STDMETHODCALLTYPE *ItemPostPaint)(
27794         INameSpaceTreeControlCustomDraw *This,
27795         HDC hdc,
27796         RECT *prc,
27797         NSTCCUSTOMDRAW *pnstccdItem);
27798 
27799     END_INTERFACE
27800 } INameSpaceTreeControlCustomDrawVtbl;
27801 
27802 interface INameSpaceTreeControlCustomDraw {
27803     CONST_VTBL INameSpaceTreeControlCustomDrawVtbl* lpVtbl;
27804 };
27805 
27806 #ifdef COBJMACROS
27807 #ifndef WIDL_C_INLINE_WRAPPERS
27808 /*** IUnknown methods ***/
27809 #define INameSpaceTreeControlCustomDraw_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
27810 #define INameSpaceTreeControlCustomDraw_AddRef(This) (This)->lpVtbl->AddRef(This)
27811 #define INameSpaceTreeControlCustomDraw_Release(This) (This)->lpVtbl->Release(This)
27812 /*** INameSpaceTreeControlCustomDraw methods ***/
27813 #define INameSpaceTreeControlCustomDraw_PrePaint(This,hdc,prc,plres) (This)->lpVtbl->PrePaint(This,hdc,prc,plres)
27814 #define INameSpaceTreeControlCustomDraw_PostPaint(This,hdc,prc) (This)->lpVtbl->PostPaint(This,hdc,prc)
27815 #define INameSpaceTreeControlCustomDraw_ItemPrePaint(This,hdc,prc,pnstccdItem,pclrText,pclrTextBk,plres) (This)->lpVtbl->ItemPrePaint(This,hdc,prc,pnstccdItem,pclrText,pclrTextBk,plres)
27816 #define INameSpaceTreeControlCustomDraw_ItemPostPaint(This,hdc,prc,pnstccdItem) (This)->lpVtbl->ItemPostPaint(This,hdc,prc,pnstccdItem)
27817 #else
27818 /*** IUnknown methods ***/
27819 static FORCEINLINE HRESULT INameSpaceTreeControlCustomDraw_QueryInterface(INameSpaceTreeControlCustomDraw* This,REFIID riid,void **ppvObject) {
27820     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
27821 }
27822 static FORCEINLINE ULONG INameSpaceTreeControlCustomDraw_AddRef(INameSpaceTreeControlCustomDraw* This) {
27823     return This->lpVtbl->AddRef(This);
27824 }
27825 static FORCEINLINE ULONG INameSpaceTreeControlCustomDraw_Release(INameSpaceTreeControlCustomDraw* This) {
27826     return This->lpVtbl->Release(This);
27827 }
27828 /*** INameSpaceTreeControlCustomDraw methods ***/
27829 static FORCEINLINE HRESULT INameSpaceTreeControlCustomDraw_PrePaint(INameSpaceTreeControlCustomDraw* This,HDC hdc,RECT *prc,LRESULT *plres) {
27830     return This->lpVtbl->PrePaint(This,hdc,prc,plres);
27831 }
27832 static FORCEINLINE HRESULT INameSpaceTreeControlCustomDraw_PostPaint(INameSpaceTreeControlCustomDraw* This,HDC hdc,RECT *prc) {
27833     return This->lpVtbl->PostPaint(This,hdc,prc);
27834 }
27835 static FORCEINLINE HRESULT INameSpaceTreeControlCustomDraw_ItemPrePaint(INameSpaceTreeControlCustomDraw* This,HDC hdc,RECT *prc,NSTCCUSTOMDRAW *pnstccdItem,COLORREF *pclrText,COLORREF *pclrTextBk,LRESULT *plres) {
27836     return This->lpVtbl->ItemPrePaint(This,hdc,prc,pnstccdItem,pclrText,pclrTextBk,plres);
27837 }
27838 static FORCEINLINE HRESULT INameSpaceTreeControlCustomDraw_ItemPostPaint(INameSpaceTreeControlCustomDraw* This,HDC hdc,RECT *prc,NSTCCUSTOMDRAW *pnstccdItem) {
27839     return This->lpVtbl->ItemPostPaint(This,hdc,prc,pnstccdItem);
27840 }
27841 #endif
27842 #endif
27843 
27844 #endif
27845 
27846 
27847 #endif  /* __INameSpaceTreeControlCustomDraw_INTERFACE_DEFINED__ */
27848 
27849 
27850 #if NTDDI_VERSION >= NTDDI_VISTA
27851 /*****************************************************************************
27852  * INameSpaceTreeControlFolderCapabilities interface
27853  */
27854 #ifndef __INameSpaceTreeControlFolderCapabilities_INTERFACE_DEFINED__
27855 #define __INameSpaceTreeControlFolderCapabilities_INTERFACE_DEFINED__
27856 
27857 typedef enum NSTCFOLDERCAPABILITIES {
27858     NSTCFC_NONE = 0x0,
27859     NSTCFC_PINNEDITEMFILTERING = 0x1,
27860     NSTCFC_DELAY_REGISTER_NOTIFY = 0x2
27861 } NSTCFOLDERCAPABILITIES;
27862 
27863 DEFINE_ENUM_FLAG_OPERATORS(NSTCFOLDERCAPABILITIES)
27864 
27865 DEFINE_GUID(IID_INameSpaceTreeControlFolderCapabilities, 0xe9701183, 0xe6b3, 0x4ff2, 0x85,0x68, 0x81,0x36,0x15,0xfe,0xc7,0xbe);
27866 #if defined(__cplusplus) && !defined(CINTERFACE)
27867 MIDL_INTERFACE("e9701183-e6b3-4ff2-8568-813615fec7be")
27868 INameSpaceTreeControlFolderCapabilities : public IUnknown
27869 {
27870     virtual HRESULT STDMETHODCALLTYPE GetFolderCapabilities(
27871         NSTCFOLDERCAPABILITIES nfcMask,
27872         NSTCFOLDERCAPABILITIES *pnfcValue) = 0;
27873 
27874 };
27875 #ifdef __CRT_UUID_DECL
27876 __CRT_UUID_DECL(INameSpaceTreeControlFolderCapabilities, 0xe9701183, 0xe6b3, 0x4ff2, 0x85,0x68, 0x81,0x36,0x15,0xfe,0xc7,0xbe)
27877 #endif
27878 #else
27879 typedef struct INameSpaceTreeControlFolderCapabilitiesVtbl {
27880     BEGIN_INTERFACE
27881 
27882     /*** IUnknown methods ***/
27883     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
27884         INameSpaceTreeControlFolderCapabilities *This,
27885         REFIID riid,
27886         void **ppvObject);
27887 
27888     ULONG (STDMETHODCALLTYPE *AddRef)(
27889         INameSpaceTreeControlFolderCapabilities *This);
27890 
27891     ULONG (STDMETHODCALLTYPE *Release)(
27892         INameSpaceTreeControlFolderCapabilities *This);
27893 
27894     /*** INameSpaceTreeControlFolderCapabilities methods ***/
27895     HRESULT (STDMETHODCALLTYPE *GetFolderCapabilities)(
27896         INameSpaceTreeControlFolderCapabilities *This,
27897         NSTCFOLDERCAPABILITIES nfcMask,
27898         NSTCFOLDERCAPABILITIES *pnfcValue);
27899 
27900     END_INTERFACE
27901 } INameSpaceTreeControlFolderCapabilitiesVtbl;
27902 
27903 interface INameSpaceTreeControlFolderCapabilities {
27904     CONST_VTBL INameSpaceTreeControlFolderCapabilitiesVtbl* lpVtbl;
27905 };
27906 
27907 #ifdef COBJMACROS
27908 #ifndef WIDL_C_INLINE_WRAPPERS
27909 /*** IUnknown methods ***/
27910 #define INameSpaceTreeControlFolderCapabilities_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
27911 #define INameSpaceTreeControlFolderCapabilities_AddRef(This) (This)->lpVtbl->AddRef(This)
27912 #define INameSpaceTreeControlFolderCapabilities_Release(This) (This)->lpVtbl->Release(This)
27913 /*** INameSpaceTreeControlFolderCapabilities methods ***/
27914 #define INameSpaceTreeControlFolderCapabilities_GetFolderCapabilities(This,nfcMask,pnfcValue) (This)->lpVtbl->GetFolderCapabilities(This,nfcMask,pnfcValue)
27915 #else
27916 /*** IUnknown methods ***/
27917 static FORCEINLINE HRESULT INameSpaceTreeControlFolderCapabilities_QueryInterface(INameSpaceTreeControlFolderCapabilities* This,REFIID riid,void **ppvObject) {
27918     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
27919 }
27920 static FORCEINLINE ULONG INameSpaceTreeControlFolderCapabilities_AddRef(INameSpaceTreeControlFolderCapabilities* This) {
27921     return This->lpVtbl->AddRef(This);
27922 }
27923 static FORCEINLINE ULONG INameSpaceTreeControlFolderCapabilities_Release(INameSpaceTreeControlFolderCapabilities* This) {
27924     return This->lpVtbl->Release(This);
27925 }
27926 /*** INameSpaceTreeControlFolderCapabilities methods ***/
27927 static FORCEINLINE HRESULT INameSpaceTreeControlFolderCapabilities_GetFolderCapabilities(INameSpaceTreeControlFolderCapabilities* This,NSTCFOLDERCAPABILITIES nfcMask,NSTCFOLDERCAPABILITIES *pnfcValue) {
27928     return This->lpVtbl->GetFolderCapabilities(This,nfcMask,pnfcValue);
27929 }
27930 #endif
27931 #endif
27932 
27933 #endif
27934 
27935 
27936 #endif  /* __INameSpaceTreeControlFolderCapabilities_INTERFACE_DEFINED__ */
27937 
27938 #endif
27939 
27940 #define E_PREVIEWHANDLER_DRM_FAIL _HRESULT_TYPEDEF_(0x86420001L)
27941 #define E_PREVIEWHANDLER_NOAUTH   _HRESULT_TYPEDEF_(0x86420002L)
27942 #define E_PREVIEWHANDLER_NOTFOUND _HRESULT_TYPEDEF_(0x86420003L)
27943 #define E_PREVIEWHANDLER_CORRUPT  _HRESULT_TYPEDEF_(0x86420004L)
27944 
27945 /*****************************************************************************
27946  * IPreviewHandler interface
27947  */
27948 #ifndef __IPreviewHandler_INTERFACE_DEFINED__
27949 #define __IPreviewHandler_INTERFACE_DEFINED__
27950 
27951 DEFINE_GUID(IID_IPreviewHandler, 0x8895b1c6, 0xb41f, 0x4c1c, 0xa5,0x62, 0x0d,0x56,0x42,0x50,0x83,0x6f);
27952 #if defined(__cplusplus) && !defined(CINTERFACE)
27953 MIDL_INTERFACE("8895b1c6-b41f-4c1c-a562-0d564250836f")
27954 IPreviewHandler : public IUnknown
27955 {
27956     virtual HRESULT STDMETHODCALLTYPE SetWindow(
27957         HWND hwnd,
27958         const RECT *prc) = 0;
27959 
27960     virtual HRESULT STDMETHODCALLTYPE SetRect(
27961         const RECT *prc) = 0;
27962 
27963     virtual HRESULT STDMETHODCALLTYPE DoPreview(
27964         ) = 0;
27965 
27966     virtual HRESULT STDMETHODCALLTYPE Unload(
27967         ) = 0;
27968 
27969     virtual HRESULT STDMETHODCALLTYPE SetFocus(
27970         ) = 0;
27971 
27972     virtual HRESULT STDMETHODCALLTYPE QueryFocus(
27973         HWND *phwnd) = 0;
27974 
27975     virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator(
27976         MSG *pmsg) = 0;
27977 
27978 };
27979 #ifdef __CRT_UUID_DECL
27980 __CRT_UUID_DECL(IPreviewHandler, 0x8895b1c6, 0xb41f, 0x4c1c, 0xa5,0x62, 0x0d,0x56,0x42,0x50,0x83,0x6f)
27981 #endif
27982 #else
27983 typedef struct IPreviewHandlerVtbl {
27984     BEGIN_INTERFACE
27985 
27986     /*** IUnknown methods ***/
27987     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
27988         IPreviewHandler *This,
27989         REFIID riid,
27990         void **ppvObject);
27991 
27992     ULONG (STDMETHODCALLTYPE *AddRef)(
27993         IPreviewHandler *This);
27994 
27995     ULONG (STDMETHODCALLTYPE *Release)(
27996         IPreviewHandler *This);
27997 
27998     /*** IPreviewHandler methods ***/
27999     HRESULT (STDMETHODCALLTYPE *SetWindow)(
28000         IPreviewHandler *This,
28001         HWND hwnd,
28002         const RECT *prc);
28003 
28004     HRESULT (STDMETHODCALLTYPE *SetRect)(
28005         IPreviewHandler *This,
28006         const RECT *prc);
28007 
28008     HRESULT (STDMETHODCALLTYPE *DoPreview)(
28009         IPreviewHandler *This);
28010 
28011     HRESULT (STDMETHODCALLTYPE *Unload)(
28012         IPreviewHandler *This);
28013 
28014     HRESULT (STDMETHODCALLTYPE *SetFocus)(
28015         IPreviewHandler *This);
28016 
28017     HRESULT (STDMETHODCALLTYPE *QueryFocus)(
28018         IPreviewHandler *This,
28019         HWND *phwnd);
28020 
28021     HRESULT (STDMETHODCALLTYPE *TranslateAccelerator)(
28022         IPreviewHandler *This,
28023         MSG *pmsg);
28024 
28025     END_INTERFACE
28026 } IPreviewHandlerVtbl;
28027 
28028 interface IPreviewHandler {
28029     CONST_VTBL IPreviewHandlerVtbl* lpVtbl;
28030 };
28031 
28032 #ifdef COBJMACROS
28033 #ifndef WIDL_C_INLINE_WRAPPERS
28034 /*** IUnknown methods ***/
28035 #define IPreviewHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
28036 #define IPreviewHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
28037 #define IPreviewHandler_Release(This) (This)->lpVtbl->Release(This)
28038 /*** IPreviewHandler methods ***/
28039 #define IPreviewHandler_SetWindow(This,hwnd,prc) (This)->lpVtbl->SetWindow(This,hwnd,prc)
28040 #define IPreviewHandler_SetRect(This,prc) (This)->lpVtbl->SetRect(This,prc)
28041 #define IPreviewHandler_DoPreview(This) (This)->lpVtbl->DoPreview(This)
28042 #define IPreviewHandler_Unload(This) (This)->lpVtbl->Unload(This)
28043 #define IPreviewHandler_SetFocus(This) (This)->lpVtbl->SetFocus(This)
28044 #define IPreviewHandler_QueryFocus(This,phwnd) (This)->lpVtbl->QueryFocus(This,phwnd)
28045 #define IPreviewHandler_TranslateAccelerator(This,pmsg) (This)->lpVtbl->TranslateAccelerator(This,pmsg)
28046 #else
28047 /*** IUnknown methods ***/
28048 static FORCEINLINE HRESULT IPreviewHandler_QueryInterface(IPreviewHandler* This,REFIID riid,void **ppvObject) {
28049     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
28050 }
28051 static FORCEINLINE ULONG IPreviewHandler_AddRef(IPreviewHandler* This) {
28052     return This->lpVtbl->AddRef(This);
28053 }
28054 static FORCEINLINE ULONG IPreviewHandler_Release(IPreviewHandler* This) {
28055     return This->lpVtbl->Release(This);
28056 }
28057 /*** IPreviewHandler methods ***/
28058 static FORCEINLINE HRESULT IPreviewHandler_SetWindow(IPreviewHandler* This,HWND hwnd,const RECT *prc) {
28059     return This->lpVtbl->SetWindow(This,hwnd,prc);
28060 }
28061 static FORCEINLINE HRESULT IPreviewHandler_SetRect(IPreviewHandler* This,const RECT *prc) {
28062     return This->lpVtbl->SetRect(This,prc);
28063 }
28064 static FORCEINLINE HRESULT IPreviewHandler_DoPreview(IPreviewHandler* This) {
28065     return This->lpVtbl->DoPreview(This);
28066 }
28067 static FORCEINLINE HRESULT IPreviewHandler_Unload(IPreviewHandler* This) {
28068     return This->lpVtbl->Unload(This);
28069 }
28070 static FORCEINLINE HRESULT IPreviewHandler_SetFocus(IPreviewHandler* This) {
28071     return This->lpVtbl->SetFocus(This);
28072 }
28073 static FORCEINLINE HRESULT IPreviewHandler_QueryFocus(IPreviewHandler* This,HWND *phwnd) {
28074     return This->lpVtbl->QueryFocus(This,phwnd);
28075 }
28076 static FORCEINLINE HRESULT IPreviewHandler_TranslateAccelerator(IPreviewHandler* This,MSG *pmsg) {
28077     return This->lpVtbl->TranslateAccelerator(This,pmsg);
28078 }
28079 #endif
28080 #endif
28081 
28082 #endif
28083 
28084 
28085 #endif  /* __IPreviewHandler_INTERFACE_DEFINED__ */
28086 
28087 
28088 /*****************************************************************************
28089  * IPreviewHandlerFrame interface
28090  */
28091 #ifndef __IPreviewHandlerFrame_INTERFACE_DEFINED__
28092 #define __IPreviewHandlerFrame_INTERFACE_DEFINED__
28093 
28094 typedef struct PREVIEWHANDLERFRAMEINFO {
28095     HACCEL haccel;
28096     UINT cAccelEntries;
28097 } PREVIEWHANDLERFRAMEINFO;
28098 
28099 DEFINE_GUID(IID_IPreviewHandlerFrame, 0xfec87aaf, 0x35f9, 0x447a, 0xad,0xb7, 0x20,0x23,0x44,0x91,0x40,0x1a);
28100 #if defined(__cplusplus) && !defined(CINTERFACE)
28101 MIDL_INTERFACE("fec87aaf-35f9-447a-adb7-20234491401a")
28102 IPreviewHandlerFrame : public IUnknown
28103 {
28104     virtual HRESULT STDMETHODCALLTYPE GetWindowContext(
28105         PREVIEWHANDLERFRAMEINFO *pinfo) = 0;
28106 
28107     virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator(
28108         MSG *pmsg) = 0;
28109 
28110 };
28111 #ifdef __CRT_UUID_DECL
28112 __CRT_UUID_DECL(IPreviewHandlerFrame, 0xfec87aaf, 0x35f9, 0x447a, 0xad,0xb7, 0x20,0x23,0x44,0x91,0x40,0x1a)
28113 #endif
28114 #else
28115 typedef struct IPreviewHandlerFrameVtbl {
28116     BEGIN_INTERFACE
28117 
28118     /*** IUnknown methods ***/
28119     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
28120         IPreviewHandlerFrame *This,
28121         REFIID riid,
28122         void **ppvObject);
28123 
28124     ULONG (STDMETHODCALLTYPE *AddRef)(
28125         IPreviewHandlerFrame *This);
28126 
28127     ULONG (STDMETHODCALLTYPE *Release)(
28128         IPreviewHandlerFrame *This);
28129 
28130     /*** IPreviewHandlerFrame methods ***/
28131     HRESULT (STDMETHODCALLTYPE *GetWindowContext)(
28132         IPreviewHandlerFrame *This,
28133         PREVIEWHANDLERFRAMEINFO *pinfo);
28134 
28135     HRESULT (STDMETHODCALLTYPE *TranslateAccelerator)(
28136         IPreviewHandlerFrame *This,
28137         MSG *pmsg);
28138 
28139     END_INTERFACE
28140 } IPreviewHandlerFrameVtbl;
28141 
28142 interface IPreviewHandlerFrame {
28143     CONST_VTBL IPreviewHandlerFrameVtbl* lpVtbl;
28144 };
28145 
28146 #ifdef COBJMACROS
28147 #ifndef WIDL_C_INLINE_WRAPPERS
28148 /*** IUnknown methods ***/
28149 #define IPreviewHandlerFrame_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
28150 #define IPreviewHandlerFrame_AddRef(This) (This)->lpVtbl->AddRef(This)
28151 #define IPreviewHandlerFrame_Release(This) (This)->lpVtbl->Release(This)
28152 /*** IPreviewHandlerFrame methods ***/
28153 #define IPreviewHandlerFrame_GetWindowContext(This,pinfo) (This)->lpVtbl->GetWindowContext(This,pinfo)
28154 #define IPreviewHandlerFrame_TranslateAccelerator(This,pmsg) (This)->lpVtbl->TranslateAccelerator(This,pmsg)
28155 #else
28156 /*** IUnknown methods ***/
28157 static FORCEINLINE HRESULT IPreviewHandlerFrame_QueryInterface(IPreviewHandlerFrame* This,REFIID riid,void **ppvObject) {
28158     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
28159 }
28160 static FORCEINLINE ULONG IPreviewHandlerFrame_AddRef(IPreviewHandlerFrame* This) {
28161     return This->lpVtbl->AddRef(This);
28162 }
28163 static FORCEINLINE ULONG IPreviewHandlerFrame_Release(IPreviewHandlerFrame* This) {
28164     return This->lpVtbl->Release(This);
28165 }
28166 /*** IPreviewHandlerFrame methods ***/
28167 static FORCEINLINE HRESULT IPreviewHandlerFrame_GetWindowContext(IPreviewHandlerFrame* This,PREVIEWHANDLERFRAMEINFO *pinfo) {
28168     return This->lpVtbl->GetWindowContext(This,pinfo);
28169 }
28170 static FORCEINLINE HRESULT IPreviewHandlerFrame_TranslateAccelerator(IPreviewHandlerFrame* This,MSG *pmsg) {
28171     return This->lpVtbl->TranslateAccelerator(This,pmsg);
28172 }
28173 #endif
28174 #endif
28175 
28176 #endif
28177 
28178 
28179 #endif  /* __IPreviewHandlerFrame_INTERFACE_DEFINED__ */
28180 
28181 
28182 #if NTDDI_VERSION >= NTDDI_VISTA
28183 /*****************************************************************************
28184  * ITrayDeskBand interface
28185  */
28186 #ifndef __ITrayDeskBand_INTERFACE_DEFINED__
28187 #define __ITrayDeskBand_INTERFACE_DEFINED__
28188 
28189 DEFINE_GUID(IID_ITrayDeskBand, 0x6d67e846, 0x5b9c, 0x4db8, 0x9c,0xbc, 0xdd,0xe1,0x2f,0x42,0x54,0xf1);
28190 #if defined(__cplusplus) && !defined(CINTERFACE)
28191 MIDL_INTERFACE("6d67e846-5b9c-4db8-9cbc-dde12f4254f1")
28192 ITrayDeskBand : public IUnknown
28193 {
28194     virtual HRESULT STDMETHODCALLTYPE ShowDeskBand(
28195         REFCLSID clsid) = 0;
28196 
28197     virtual HRESULT STDMETHODCALLTYPE HideDeskBand(
28198         REFCLSID clsid) = 0;
28199 
28200     virtual HRESULT STDMETHODCALLTYPE IsDeskBandShown(
28201         REFCLSID clsid) = 0;
28202 
28203     virtual HRESULT STDMETHODCALLTYPE DeskBandRegistrationChanged(
28204         ) = 0;
28205 
28206 };
28207 #ifdef __CRT_UUID_DECL
28208 __CRT_UUID_DECL(ITrayDeskBand, 0x6d67e846, 0x5b9c, 0x4db8, 0x9c,0xbc, 0xdd,0xe1,0x2f,0x42,0x54,0xf1)
28209 #endif
28210 #else
28211 typedef struct ITrayDeskBandVtbl {
28212     BEGIN_INTERFACE
28213 
28214     /*** IUnknown methods ***/
28215     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
28216         ITrayDeskBand *This,
28217         REFIID riid,
28218         void **ppvObject);
28219 
28220     ULONG (STDMETHODCALLTYPE *AddRef)(
28221         ITrayDeskBand *This);
28222 
28223     ULONG (STDMETHODCALLTYPE *Release)(
28224         ITrayDeskBand *This);
28225 
28226     /*** ITrayDeskBand methods ***/
28227     HRESULT (STDMETHODCALLTYPE *ShowDeskBand)(
28228         ITrayDeskBand *This,
28229         REFCLSID clsid);
28230 
28231     HRESULT (STDMETHODCALLTYPE *HideDeskBand)(
28232         ITrayDeskBand *This,
28233         REFCLSID clsid);
28234 
28235     HRESULT (STDMETHODCALLTYPE *IsDeskBandShown)(
28236         ITrayDeskBand *This,
28237         REFCLSID clsid);
28238 
28239     HRESULT (STDMETHODCALLTYPE *DeskBandRegistrationChanged)(
28240         ITrayDeskBand *This);
28241 
28242     END_INTERFACE
28243 } ITrayDeskBandVtbl;
28244 
28245 interface ITrayDeskBand {
28246     CONST_VTBL ITrayDeskBandVtbl* lpVtbl;
28247 };
28248 
28249 #ifdef COBJMACROS
28250 #ifndef WIDL_C_INLINE_WRAPPERS
28251 /*** IUnknown methods ***/
28252 #define ITrayDeskBand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
28253 #define ITrayDeskBand_AddRef(This) (This)->lpVtbl->AddRef(This)
28254 #define ITrayDeskBand_Release(This) (This)->lpVtbl->Release(This)
28255 /*** ITrayDeskBand methods ***/
28256 #define ITrayDeskBand_ShowDeskBand(This,clsid) (This)->lpVtbl->ShowDeskBand(This,clsid)
28257 #define ITrayDeskBand_HideDeskBand(This,clsid) (This)->lpVtbl->HideDeskBand(This,clsid)
28258 #define ITrayDeskBand_IsDeskBandShown(This,clsid) (This)->lpVtbl->IsDeskBandShown(This,clsid)
28259 #define ITrayDeskBand_DeskBandRegistrationChanged(This) (This)->lpVtbl->DeskBandRegistrationChanged(This)
28260 #else
28261 /*** IUnknown methods ***/
28262 static FORCEINLINE HRESULT ITrayDeskBand_QueryInterface(ITrayDeskBand* This,REFIID riid,void **ppvObject) {
28263     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
28264 }
28265 static FORCEINLINE ULONG ITrayDeskBand_AddRef(ITrayDeskBand* This) {
28266     return This->lpVtbl->AddRef(This);
28267 }
28268 static FORCEINLINE ULONG ITrayDeskBand_Release(ITrayDeskBand* This) {
28269     return This->lpVtbl->Release(This);
28270 }
28271 /*** ITrayDeskBand methods ***/
28272 static FORCEINLINE HRESULT ITrayDeskBand_ShowDeskBand(ITrayDeskBand* This,REFCLSID clsid) {
28273     return This->lpVtbl->ShowDeskBand(This,clsid);
28274 }
28275 static FORCEINLINE HRESULT ITrayDeskBand_HideDeskBand(ITrayDeskBand* This,REFCLSID clsid) {
28276     return This->lpVtbl->HideDeskBand(This,clsid);
28277 }
28278 static FORCEINLINE HRESULT ITrayDeskBand_IsDeskBandShown(ITrayDeskBand* This,REFCLSID clsid) {
28279     return This->lpVtbl->IsDeskBandShown(This,clsid);
28280 }
28281 static FORCEINLINE HRESULT ITrayDeskBand_DeskBandRegistrationChanged(ITrayDeskBand* This) {
28282     return This->lpVtbl->DeskBandRegistrationChanged(This);
28283 }
28284 #endif
28285 #endif
28286 
28287 #endif
28288 
28289 
28290 #endif  /* __ITrayDeskBand_INTERFACE_DEFINED__ */
28291 
28292 
28293 /*****************************************************************************
28294  * IBandHost interface
28295  */
28296 #ifndef __IBandHost_INTERFACE_DEFINED__
28297 #define __IBandHost_INTERFACE_DEFINED__
28298 
28299 DEFINE_GUID(IID_IBandHost, 0xb9075c7c, 0xd48e, 0x403f, 0xab,0x99, 0xd6,0xc7,0x7a,0x10,0x84,0xac);
28300 #if defined(__cplusplus) && !defined(CINTERFACE)
28301 MIDL_INTERFACE("b9075c7c-d48e-403f-ab99-d6c77a1084ac")
28302 IBandHost : public IUnknown
28303 {
28304     virtual HRESULT STDMETHODCALLTYPE CreateBand(
28305         REFCLSID rclsidBand,
28306         WINBOOL fAvailable,
28307         WINBOOL fVisible,
28308         REFIID riid,
28309         void **ppv) = 0;
28310 
28311     virtual HRESULT STDMETHODCALLTYPE SetBandAvailability(
28312         REFCLSID rclsidBand,
28313         WINBOOL fAvailable) = 0;
28314 
28315     virtual HRESULT STDMETHODCALLTYPE DestroyBand(
28316         REFCLSID rclsidBand) = 0;
28317 
28318 };
28319 #ifdef __CRT_UUID_DECL
28320 __CRT_UUID_DECL(IBandHost, 0xb9075c7c, 0xd48e, 0x403f, 0xab,0x99, 0xd6,0xc7,0x7a,0x10,0x84,0xac)
28321 #endif
28322 #else
28323 typedef struct IBandHostVtbl {
28324     BEGIN_INTERFACE
28325 
28326     /*** IUnknown methods ***/
28327     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
28328         IBandHost *This,
28329         REFIID riid,
28330         void **ppvObject);
28331 
28332     ULONG (STDMETHODCALLTYPE *AddRef)(
28333         IBandHost *This);
28334 
28335     ULONG (STDMETHODCALLTYPE *Release)(
28336         IBandHost *This);
28337 
28338     /*** IBandHost methods ***/
28339     HRESULT (STDMETHODCALLTYPE *CreateBand)(
28340         IBandHost *This,
28341         REFCLSID rclsidBand,
28342         WINBOOL fAvailable,
28343         WINBOOL fVisible,
28344         REFIID riid,
28345         void **ppv);
28346 
28347     HRESULT (STDMETHODCALLTYPE *SetBandAvailability)(
28348         IBandHost *This,
28349         REFCLSID rclsidBand,
28350         WINBOOL fAvailable);
28351 
28352     HRESULT (STDMETHODCALLTYPE *DestroyBand)(
28353         IBandHost *This,
28354         REFCLSID rclsidBand);
28355 
28356     END_INTERFACE
28357 } IBandHostVtbl;
28358 
28359 interface IBandHost {
28360     CONST_VTBL IBandHostVtbl* lpVtbl;
28361 };
28362 
28363 #ifdef COBJMACROS
28364 #ifndef WIDL_C_INLINE_WRAPPERS
28365 /*** IUnknown methods ***/
28366 #define IBandHost_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
28367 #define IBandHost_AddRef(This) (This)->lpVtbl->AddRef(This)
28368 #define IBandHost_Release(This) (This)->lpVtbl->Release(This)
28369 /*** IBandHost methods ***/
28370 #define IBandHost_CreateBand(This,rclsidBand,fAvailable,fVisible,riid,ppv) (This)->lpVtbl->CreateBand(This,rclsidBand,fAvailable,fVisible,riid,ppv)
28371 #define IBandHost_SetBandAvailability(This,rclsidBand,fAvailable) (This)->lpVtbl->SetBandAvailability(This,rclsidBand,fAvailable)
28372 #define IBandHost_DestroyBand(This,rclsidBand) (This)->lpVtbl->DestroyBand(This,rclsidBand)
28373 #else
28374 /*** IUnknown methods ***/
28375 static FORCEINLINE HRESULT IBandHost_QueryInterface(IBandHost* This,REFIID riid,void **ppvObject) {
28376     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
28377 }
28378 static FORCEINLINE ULONG IBandHost_AddRef(IBandHost* This) {
28379     return This->lpVtbl->AddRef(This);
28380 }
28381 static FORCEINLINE ULONG IBandHost_Release(IBandHost* This) {
28382     return This->lpVtbl->Release(This);
28383 }
28384 /*** IBandHost methods ***/
28385 static FORCEINLINE HRESULT IBandHost_CreateBand(IBandHost* This,REFCLSID rclsidBand,WINBOOL fAvailable,WINBOOL fVisible,REFIID riid,void **ppv) {
28386     return This->lpVtbl->CreateBand(This,rclsidBand,fAvailable,fVisible,riid,ppv);
28387 }
28388 static FORCEINLINE HRESULT IBandHost_SetBandAvailability(IBandHost* This,REFCLSID rclsidBand,WINBOOL fAvailable) {
28389     return This->lpVtbl->SetBandAvailability(This,rclsidBand,fAvailable);
28390 }
28391 static FORCEINLINE HRESULT IBandHost_DestroyBand(IBandHost* This,REFCLSID rclsidBand) {
28392     return This->lpVtbl->DestroyBand(This,rclsidBand);
28393 }
28394 #endif
28395 #endif
28396 
28397 #endif
28398 
28399 
28400 #endif  /* __IBandHost_INTERFACE_DEFINED__ */
28401 
28402 
28403 #define SID_SBandHost IID_IBandHost
28404 
28405 typedef GUID EXPLORERPANE;
28406 
28407 #if 0
28408 typedef EXPLORERPANE *REFEXPLORERPANE;
28409 #endif
28410 
28411 #ifdef __cplusplus
28412 #define REFEXPLORERPANE const EXPLORERPANE &
28413 #else
28414 #define REFEXPLORERPANE const EXPLORERPANE * __MIDL_CONST
28415 #endif
28416 
28417 /*****************************************************************************
28418  * IExplorerPaneVisibility interface
28419  */
28420 #ifndef __IExplorerPaneVisibility_INTERFACE_DEFINED__
28421 #define __IExplorerPaneVisibility_INTERFACE_DEFINED__
28422 
28423 enum _EXPLORERPANESTATE {
28424     EPS_DONTCARE = 0x0,
28425     EPS_DEFAULT_ON = 0x1,
28426     EPS_DEFAULT_OFF = 0x2,
28427     EPS_STATEMASK = 0xffff,
28428     EPS_INITIALSTATE = 0x10000,
28429     EPS_FORCE = 0x20000
28430 };
28431 
28432 typedef DWORD EXPLORERPANESTATE;
28433 
28434 DEFINE_GUID(IID_IExplorerPaneVisibility, 0xe07010ec, 0xbc17, 0x44c0, 0x97,0xb0, 0x46,0xc7,0xc9,0x5b,0x9e,0xdc);
28435 #if defined(__cplusplus) && !defined(CINTERFACE)
28436 MIDL_INTERFACE("e07010ec-bc17-44c0-97b0-46c7c95b9edc")
28437 IExplorerPaneVisibility : public IUnknown
28438 {
28439     virtual HRESULT STDMETHODCALLTYPE GetPaneState(
28440         REFEXPLORERPANE ep,
28441         EXPLORERPANESTATE *peps) = 0;
28442 
28443 };
28444 #ifdef __CRT_UUID_DECL
28445 __CRT_UUID_DECL(IExplorerPaneVisibility, 0xe07010ec, 0xbc17, 0x44c0, 0x97,0xb0, 0x46,0xc7,0xc9,0x5b,0x9e,0xdc)
28446 #endif
28447 #else
28448 typedef struct IExplorerPaneVisibilityVtbl {
28449     BEGIN_INTERFACE
28450 
28451     /*** IUnknown methods ***/
28452     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
28453         IExplorerPaneVisibility *This,
28454         REFIID riid,
28455         void **ppvObject);
28456 
28457     ULONG (STDMETHODCALLTYPE *AddRef)(
28458         IExplorerPaneVisibility *This);
28459 
28460     ULONG (STDMETHODCALLTYPE *Release)(
28461         IExplorerPaneVisibility *This);
28462 
28463     /*** IExplorerPaneVisibility methods ***/
28464     HRESULT (STDMETHODCALLTYPE *GetPaneState)(
28465         IExplorerPaneVisibility *This,
28466         REFEXPLORERPANE ep,
28467         EXPLORERPANESTATE *peps);
28468 
28469     END_INTERFACE
28470 } IExplorerPaneVisibilityVtbl;
28471 
28472 interface IExplorerPaneVisibility {
28473     CONST_VTBL IExplorerPaneVisibilityVtbl* lpVtbl;
28474 };
28475 
28476 #ifdef COBJMACROS
28477 #ifndef WIDL_C_INLINE_WRAPPERS
28478 /*** IUnknown methods ***/
28479 #define IExplorerPaneVisibility_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
28480 #define IExplorerPaneVisibility_AddRef(This) (This)->lpVtbl->AddRef(This)
28481 #define IExplorerPaneVisibility_Release(This) (This)->lpVtbl->Release(This)
28482 /*** IExplorerPaneVisibility methods ***/
28483 #define IExplorerPaneVisibility_GetPaneState(This,ep,peps) (This)->lpVtbl->GetPaneState(This,ep,peps)
28484 #else
28485 /*** IUnknown methods ***/
28486 static FORCEINLINE HRESULT IExplorerPaneVisibility_QueryInterface(IExplorerPaneVisibility* This,REFIID riid,void **ppvObject) {
28487     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
28488 }
28489 static FORCEINLINE ULONG IExplorerPaneVisibility_AddRef(IExplorerPaneVisibility* This) {
28490     return This->lpVtbl->AddRef(This);
28491 }
28492 static FORCEINLINE ULONG IExplorerPaneVisibility_Release(IExplorerPaneVisibility* This) {
28493     return This->lpVtbl->Release(This);
28494 }
28495 /*** IExplorerPaneVisibility methods ***/
28496 static FORCEINLINE HRESULT IExplorerPaneVisibility_GetPaneState(IExplorerPaneVisibility* This,REFEXPLORERPANE ep,EXPLORERPANESTATE *peps) {
28497     return This->lpVtbl->GetPaneState(This,ep,peps);
28498 }
28499 #endif
28500 #endif
28501 
28502 #endif
28503 
28504 
28505 #endif  /* __IExplorerPaneVisibility_INTERFACE_DEFINED__ */
28506 
28507 
28508 #define SID_ExplorerPaneVisibility IID_IExplorerPaneVisibility
28509 
28510 /*****************************************************************************
28511  * IContextMenuCB interface
28512  */
28513 #ifndef __IContextMenuCB_INTERFACE_DEFINED__
28514 #define __IContextMenuCB_INTERFACE_DEFINED__
28515 
28516 DEFINE_GUID(IID_IContextMenuCB, 0x3409e930, 0x5a39, 0x11d1, 0x83,0xfa, 0x00,0xa0,0xc9,0x0d,0xc8,0x49);
28517 #if defined(__cplusplus) && !defined(CINTERFACE)
28518 MIDL_INTERFACE("3409e930-5a39-11d1-83fa-00a0c90dc849")
28519 IContextMenuCB : public IUnknown
28520 {
28521     virtual HRESULT STDMETHODCALLTYPE CallBack(
28522         IShellFolder *psf,
28523         HWND hwndOwner,
28524         IDataObject *pdtobj,
28525         UINT uMsg,
28526         WPARAM wParam,
28527         LPARAM lParam) = 0;
28528 
28529 };
28530 #ifdef __CRT_UUID_DECL
28531 __CRT_UUID_DECL(IContextMenuCB, 0x3409e930, 0x5a39, 0x11d1, 0x83,0xfa, 0x00,0xa0,0xc9,0x0d,0xc8,0x49)
28532 #endif
28533 #else
28534 typedef struct IContextMenuCBVtbl {
28535     BEGIN_INTERFACE
28536 
28537     /*** IUnknown methods ***/
28538     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
28539         IContextMenuCB *This,
28540         REFIID riid,
28541         void **ppvObject);
28542 
28543     ULONG (STDMETHODCALLTYPE *AddRef)(
28544         IContextMenuCB *This);
28545 
28546     ULONG (STDMETHODCALLTYPE *Release)(
28547         IContextMenuCB *This);
28548 
28549     /*** IContextMenuCB methods ***/
28550     HRESULT (STDMETHODCALLTYPE *CallBack)(
28551         IContextMenuCB *This,
28552         IShellFolder *psf,
28553         HWND hwndOwner,
28554         IDataObject *pdtobj,
28555         UINT uMsg,
28556         WPARAM wParam,
28557         LPARAM lParam);
28558 
28559     END_INTERFACE
28560 } IContextMenuCBVtbl;
28561 
28562 interface IContextMenuCB {
28563     CONST_VTBL IContextMenuCBVtbl* lpVtbl;
28564 };
28565 
28566 #ifdef COBJMACROS
28567 #ifndef WIDL_C_INLINE_WRAPPERS
28568 /*** IUnknown methods ***/
28569 #define IContextMenuCB_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
28570 #define IContextMenuCB_AddRef(This) (This)->lpVtbl->AddRef(This)
28571 #define IContextMenuCB_Release(This) (This)->lpVtbl->Release(This)
28572 /*** IContextMenuCB methods ***/
28573 #define IContextMenuCB_CallBack(This,psf,hwndOwner,pdtobj,uMsg,wParam,lParam) (This)->lpVtbl->CallBack(This,psf,hwndOwner,pdtobj,uMsg,wParam,lParam)
28574 #else
28575 /*** IUnknown methods ***/
28576 static FORCEINLINE HRESULT IContextMenuCB_QueryInterface(IContextMenuCB* This,REFIID riid,void **ppvObject) {
28577     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
28578 }
28579 static FORCEINLINE ULONG IContextMenuCB_AddRef(IContextMenuCB* This) {
28580     return This->lpVtbl->AddRef(This);
28581 }
28582 static FORCEINLINE ULONG IContextMenuCB_Release(IContextMenuCB* This) {
28583     return This->lpVtbl->Release(This);
28584 }
28585 /*** IContextMenuCB methods ***/
28586 static FORCEINLINE HRESULT IContextMenuCB_CallBack(IContextMenuCB* This,IShellFolder *psf,HWND hwndOwner,IDataObject *pdtobj,UINT uMsg,WPARAM wParam,LPARAM lParam) {
28587     return This->lpVtbl->CallBack(This,psf,hwndOwner,pdtobj,uMsg,wParam,lParam);
28588 }
28589 #endif
28590 #endif
28591 
28592 #endif
28593 
28594 
28595 #endif  /* __IContextMenuCB_INTERFACE_DEFINED__ */
28596 
28597 #endif
28598 
28599 /*****************************************************************************
28600  * IDefaultExtractIconInit interface
28601  */
28602 #ifndef __IDefaultExtractIconInit_INTERFACE_DEFINED__
28603 #define __IDefaultExtractIconInit_INTERFACE_DEFINED__
28604 
28605 DEFINE_GUID(IID_IDefaultExtractIconInit, 0x41ded17d, 0xd6b3, 0x4261, 0x99,0x7d, 0x88,0xc6,0x0e,0x4b,0x1d,0x58);
28606 #if defined(__cplusplus) && !defined(CINTERFACE)
28607 MIDL_INTERFACE("41ded17d-d6b3-4261-997d-88c60e4b1d58")
28608 IDefaultExtractIconInit : public IUnknown
28609 {
28610     virtual HRESULT STDMETHODCALLTYPE SetFlags(
28611         UINT uFlags) = 0;
28612 
28613     virtual HRESULT STDMETHODCALLTYPE SetKey(
28614         HKEY hkey) = 0;
28615 
28616     virtual HRESULT STDMETHODCALLTYPE SetNormalIcon(
28617         LPCWSTR pszFile,
28618         int iIcon) = 0;
28619 
28620     virtual HRESULT STDMETHODCALLTYPE SetOpenIcon(
28621         LPCWSTR pszFile,
28622         int iIcon) = 0;
28623 
28624     virtual HRESULT STDMETHODCALLTYPE SetShortcutIcon(
28625         LPCWSTR pszFile,
28626         int iIcon) = 0;
28627 
28628     virtual HRESULT STDMETHODCALLTYPE SetDefaultIcon(
28629         LPCWSTR pszFile,
28630         int iIcon) = 0;
28631 
28632 };
28633 #ifdef __CRT_UUID_DECL
28634 __CRT_UUID_DECL(IDefaultExtractIconInit, 0x41ded17d, 0xd6b3, 0x4261, 0x99,0x7d, 0x88,0xc6,0x0e,0x4b,0x1d,0x58)
28635 #endif
28636 #else
28637 typedef struct IDefaultExtractIconInitVtbl {
28638     BEGIN_INTERFACE
28639 
28640     /*** IUnknown methods ***/
28641     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
28642         IDefaultExtractIconInit *This,
28643         REFIID riid,
28644         void **ppvObject);
28645 
28646     ULONG (STDMETHODCALLTYPE *AddRef)(
28647         IDefaultExtractIconInit *This);
28648 
28649     ULONG (STDMETHODCALLTYPE *Release)(
28650         IDefaultExtractIconInit *This);
28651 
28652     /*** IDefaultExtractIconInit methods ***/
28653     HRESULT (STDMETHODCALLTYPE *SetFlags)(
28654         IDefaultExtractIconInit *This,
28655         UINT uFlags);
28656 
28657     HRESULT (STDMETHODCALLTYPE *SetKey)(
28658         IDefaultExtractIconInit *This,
28659         HKEY hkey);
28660 
28661     HRESULT (STDMETHODCALLTYPE *SetNormalIcon)(
28662         IDefaultExtractIconInit *This,
28663         LPCWSTR pszFile,
28664         int iIcon);
28665 
28666     HRESULT (STDMETHODCALLTYPE *SetOpenIcon)(
28667         IDefaultExtractIconInit *This,
28668         LPCWSTR pszFile,
28669         int iIcon);
28670 
28671     HRESULT (STDMETHODCALLTYPE *SetShortcutIcon)(
28672         IDefaultExtractIconInit *This,
28673         LPCWSTR pszFile,
28674         int iIcon);
28675 
28676     HRESULT (STDMETHODCALLTYPE *SetDefaultIcon)(
28677         IDefaultExtractIconInit *This,
28678         LPCWSTR pszFile,
28679         int iIcon);
28680 
28681     END_INTERFACE
28682 } IDefaultExtractIconInitVtbl;
28683 
28684 interface IDefaultExtractIconInit {
28685     CONST_VTBL IDefaultExtractIconInitVtbl* lpVtbl;
28686 };
28687 
28688 #ifdef COBJMACROS
28689 #ifndef WIDL_C_INLINE_WRAPPERS
28690 /*** IUnknown methods ***/
28691 #define IDefaultExtractIconInit_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
28692 #define IDefaultExtractIconInit_AddRef(This) (This)->lpVtbl->AddRef(This)
28693 #define IDefaultExtractIconInit_Release(This) (This)->lpVtbl->Release(This)
28694 /*** IDefaultExtractIconInit methods ***/
28695 #define IDefaultExtractIconInit_SetFlags(This,uFlags) (This)->lpVtbl->SetFlags(This,uFlags)
28696 #define IDefaultExtractIconInit_SetKey(This,hkey) (This)->lpVtbl->SetKey(This,hkey)
28697 #define IDefaultExtractIconInit_SetNormalIcon(This,pszFile,iIcon) (This)->lpVtbl->SetNormalIcon(This,pszFile,iIcon)
28698 #define IDefaultExtractIconInit_SetOpenIcon(This,pszFile,iIcon) (This)->lpVtbl->SetOpenIcon(This,pszFile,iIcon)
28699 #define IDefaultExtractIconInit_SetShortcutIcon(This,pszFile,iIcon) (This)->lpVtbl->SetShortcutIcon(This,pszFile,iIcon)
28700 #define IDefaultExtractIconInit_SetDefaultIcon(This,pszFile,iIcon) (This)->lpVtbl->SetDefaultIcon(This,pszFile,iIcon)
28701 #else
28702 /*** IUnknown methods ***/
28703 static FORCEINLINE HRESULT IDefaultExtractIconInit_QueryInterface(IDefaultExtractIconInit* This,REFIID riid,void **ppvObject) {
28704     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
28705 }
28706 static FORCEINLINE ULONG IDefaultExtractIconInit_AddRef(IDefaultExtractIconInit* This) {
28707     return This->lpVtbl->AddRef(This);
28708 }
28709 static FORCEINLINE ULONG IDefaultExtractIconInit_Release(IDefaultExtractIconInit* This) {
28710     return This->lpVtbl->Release(This);
28711 }
28712 /*** IDefaultExtractIconInit methods ***/
28713 static FORCEINLINE HRESULT IDefaultExtractIconInit_SetFlags(IDefaultExtractIconInit* This,UINT uFlags) {
28714     return This->lpVtbl->SetFlags(This,uFlags);
28715 }
28716 static FORCEINLINE HRESULT IDefaultExtractIconInit_SetKey(IDefaultExtractIconInit* This,HKEY hkey) {
28717     return This->lpVtbl->SetKey(This,hkey);
28718 }
28719 static FORCEINLINE HRESULT IDefaultExtractIconInit_SetNormalIcon(IDefaultExtractIconInit* This,LPCWSTR pszFile,int iIcon) {
28720     return This->lpVtbl->SetNormalIcon(This,pszFile,iIcon);
28721 }
28722 static FORCEINLINE HRESULT IDefaultExtractIconInit_SetOpenIcon(IDefaultExtractIconInit* This,LPCWSTR pszFile,int iIcon) {
28723     return This->lpVtbl->SetOpenIcon(This,pszFile,iIcon);
28724 }
28725 static FORCEINLINE HRESULT IDefaultExtractIconInit_SetShortcutIcon(IDefaultExtractIconInit* This,LPCWSTR pszFile,int iIcon) {
28726     return This->lpVtbl->SetShortcutIcon(This,pszFile,iIcon);
28727 }
28728 static FORCEINLINE HRESULT IDefaultExtractIconInit_SetDefaultIcon(IDefaultExtractIconInit* This,LPCWSTR pszFile,int iIcon) {
28729     return This->lpVtbl->SetDefaultIcon(This,pszFile,iIcon);
28730 }
28731 #endif
28732 #endif
28733 
28734 #endif
28735 
28736 
28737 #endif  /* __IDefaultExtractIconInit_INTERFACE_DEFINED__ */
28738 
28739 
28740 STDAPI SHCreateDefaultExtractIcon(REFIID riid, void **ppv);
28741 
28742 #ifndef __IEnumExplorerCommand_FWD_DEFINED__
28743 #define __IEnumExplorerCommand_FWD_DEFINED__
28744 typedef interface IEnumExplorerCommand IEnumExplorerCommand;
28745 #ifdef __cplusplus
28746 interface IEnumExplorerCommand;
28747 #endif /* __cplusplus */
28748 #endif
28749 
28750 
28751 /*****************************************************************************
28752  * IExplorerCommand interface
28753  */
28754 #ifndef __IExplorerCommand_INTERFACE_DEFINED__
28755 #define __IExplorerCommand_INTERFACE_DEFINED__
28756 
28757 enum _EXPCMDSTATE {
28758     ECS_ENABLED = 0x0,
28759     ECS_DISABLED = 0x1,
28760     ECS_HIDDEN = 0x2,
28761     ECS_CHECKBOX = 0x4,
28762     ECS_CHECKED = 0x8,
28763     ECS_RADIOCHECK = 0x10
28764 };
28765 
28766 typedef DWORD EXPCMDSTATE;
28767 
28768 enum _EXPCMDFLAGS {
28769     ECF_DEFAULT = 0x0,
28770     ECF_HASSUBCOMMANDS = 0x1,
28771     ECF_HASSPLITBUTTON = 0x2,
28772     ECF_HIDELABEL = 0x4,
28773     ECF_ISSEPARATOR = 0x8,
28774     ECF_HASLUASHIELD = 0x10,
28775     ECF_SEPARATORBEFORE = 0x20,
28776     ECF_SEPARATORAFTER = 0x40,
28777     ECF_ISDROPDOWN = 0x80,
28778     ECF_TOGGLEABLE = 0x100,
28779     ECF_AUTOMENUICONS = 0x200
28780 };
28781 
28782 typedef DWORD EXPCMDFLAGS;
28783 
28784 DEFINE_GUID(IID_IExplorerCommand, 0xa08ce4d0, 0xfa25, 0x44ab, 0xb5,0x7c, 0xc7,0xb1,0xc3,0x23,0xe0,0xb9);
28785 #if defined(__cplusplus) && !defined(CINTERFACE)
28786 MIDL_INTERFACE("a08ce4d0-fa25-44ab-b57c-c7b1c323e0b9")
28787 IExplorerCommand : public IUnknown
28788 {
28789     virtual HRESULT STDMETHODCALLTYPE GetTitle(
28790         IShellItemArray *psiItemArray,
28791         LPWSTR *ppszName) = 0;
28792 
28793     virtual HRESULT STDMETHODCALLTYPE GetIcon(
28794         IShellItemArray *psiItemArray,
28795         LPWSTR *ppszIcon) = 0;
28796 
28797     virtual HRESULT STDMETHODCALLTYPE GetToolTip(
28798         IShellItemArray *psiItemArray,
28799         LPWSTR *ppszInfotip) = 0;
28800 
28801     virtual HRESULT STDMETHODCALLTYPE GetCanonicalName(
28802         GUID *pguidCommandName) = 0;
28803 
28804     virtual HRESULT STDMETHODCALLTYPE GetState(
28805         IShellItemArray *psiItemArray,
28806         WINBOOL fOkToBeSlow,
28807         EXPCMDSTATE *pCmdState) = 0;
28808 
28809     virtual HRESULT STDMETHODCALLTYPE Invoke(
28810         IShellItemArray *psiItemArray,
28811         IBindCtx *pbc) = 0;
28812 
28813     virtual HRESULT STDMETHODCALLTYPE GetFlags(
28814         EXPCMDFLAGS *pFlags) = 0;
28815 
28816     virtual HRESULT STDMETHODCALLTYPE EnumSubCommands(
28817         IEnumExplorerCommand **ppEnum) = 0;
28818 
28819 };
28820 #ifdef __CRT_UUID_DECL
28821 __CRT_UUID_DECL(IExplorerCommand, 0xa08ce4d0, 0xfa25, 0x44ab, 0xb5,0x7c, 0xc7,0xb1,0xc3,0x23,0xe0,0xb9)
28822 #endif
28823 #else
28824 typedef struct IExplorerCommandVtbl {
28825     BEGIN_INTERFACE
28826 
28827     /*** IUnknown methods ***/
28828     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
28829         IExplorerCommand *This,
28830         REFIID riid,
28831         void **ppvObject);
28832 
28833     ULONG (STDMETHODCALLTYPE *AddRef)(
28834         IExplorerCommand *This);
28835 
28836     ULONG (STDMETHODCALLTYPE *Release)(
28837         IExplorerCommand *This);
28838 
28839     /*** IExplorerCommand methods ***/
28840     HRESULT (STDMETHODCALLTYPE *GetTitle)(
28841         IExplorerCommand *This,
28842         IShellItemArray *psiItemArray,
28843         LPWSTR *ppszName);
28844 
28845     HRESULT (STDMETHODCALLTYPE *GetIcon)(
28846         IExplorerCommand *This,
28847         IShellItemArray *psiItemArray,
28848         LPWSTR *ppszIcon);
28849 
28850     HRESULT (STDMETHODCALLTYPE *GetToolTip)(
28851         IExplorerCommand *This,
28852         IShellItemArray *psiItemArray,
28853         LPWSTR *ppszInfotip);
28854 
28855     HRESULT (STDMETHODCALLTYPE *GetCanonicalName)(
28856         IExplorerCommand *This,
28857         GUID *pguidCommandName);
28858 
28859     HRESULT (STDMETHODCALLTYPE *GetState)(
28860         IExplorerCommand *This,
28861         IShellItemArray *psiItemArray,
28862         WINBOOL fOkToBeSlow,
28863         EXPCMDSTATE *pCmdState);
28864 
28865     HRESULT (STDMETHODCALLTYPE *Invoke)(
28866         IExplorerCommand *This,
28867         IShellItemArray *psiItemArray,
28868         IBindCtx *pbc);
28869 
28870     HRESULT (STDMETHODCALLTYPE *GetFlags)(
28871         IExplorerCommand *This,
28872         EXPCMDFLAGS *pFlags);
28873 
28874     HRESULT (STDMETHODCALLTYPE *EnumSubCommands)(
28875         IExplorerCommand *This,
28876         IEnumExplorerCommand **ppEnum);
28877 
28878     END_INTERFACE
28879 } IExplorerCommandVtbl;
28880 
28881 interface IExplorerCommand {
28882     CONST_VTBL IExplorerCommandVtbl* lpVtbl;
28883 };
28884 
28885 #ifdef COBJMACROS
28886 #ifndef WIDL_C_INLINE_WRAPPERS
28887 /*** IUnknown methods ***/
28888 #define IExplorerCommand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
28889 #define IExplorerCommand_AddRef(This) (This)->lpVtbl->AddRef(This)
28890 #define IExplorerCommand_Release(This) (This)->lpVtbl->Release(This)
28891 /*** IExplorerCommand methods ***/
28892 #define IExplorerCommand_GetTitle(This,psiItemArray,ppszName) (This)->lpVtbl->GetTitle(This,psiItemArray,ppszName)
28893 #define IExplorerCommand_GetIcon(This,psiItemArray,ppszIcon) (This)->lpVtbl->GetIcon(This,psiItemArray,ppszIcon)
28894 #define IExplorerCommand_GetToolTip(This,psiItemArray,ppszInfotip) (This)->lpVtbl->GetToolTip(This,psiItemArray,ppszInfotip)
28895 #define IExplorerCommand_GetCanonicalName(This,pguidCommandName) (This)->lpVtbl->GetCanonicalName(This,pguidCommandName)
28896 #define IExplorerCommand_GetState(This,psiItemArray,fOkToBeSlow,pCmdState) (This)->lpVtbl->GetState(This,psiItemArray,fOkToBeSlow,pCmdState)
28897 #define IExplorerCommand_Invoke(This,psiItemArray,pbc) (This)->lpVtbl->Invoke(This,psiItemArray,pbc)
28898 #define IExplorerCommand_GetFlags(This,pFlags) (This)->lpVtbl->GetFlags(This,pFlags)
28899 #define IExplorerCommand_EnumSubCommands(This,ppEnum) (This)->lpVtbl->EnumSubCommands(This,ppEnum)
28900 #else
28901 /*** IUnknown methods ***/
28902 static FORCEINLINE HRESULT IExplorerCommand_QueryInterface(IExplorerCommand* This,REFIID riid,void **ppvObject) {
28903     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
28904 }
28905 static FORCEINLINE ULONG IExplorerCommand_AddRef(IExplorerCommand* This) {
28906     return This->lpVtbl->AddRef(This);
28907 }
28908 static FORCEINLINE ULONG IExplorerCommand_Release(IExplorerCommand* This) {
28909     return This->lpVtbl->Release(This);
28910 }
28911 /*** IExplorerCommand methods ***/
28912 static FORCEINLINE HRESULT IExplorerCommand_GetTitle(IExplorerCommand* This,IShellItemArray *psiItemArray,LPWSTR *ppszName) {
28913     return This->lpVtbl->GetTitle(This,psiItemArray,ppszName);
28914 }
28915 static FORCEINLINE HRESULT IExplorerCommand_GetIcon(IExplorerCommand* This,IShellItemArray *psiItemArray,LPWSTR *ppszIcon) {
28916     return This->lpVtbl->GetIcon(This,psiItemArray,ppszIcon);
28917 }
28918 static FORCEINLINE HRESULT IExplorerCommand_GetToolTip(IExplorerCommand* This,IShellItemArray *psiItemArray,LPWSTR *ppszInfotip) {
28919     return This->lpVtbl->GetToolTip(This,psiItemArray,ppszInfotip);
28920 }
28921 static FORCEINLINE HRESULT IExplorerCommand_GetCanonicalName(IExplorerCommand* This,GUID *pguidCommandName) {
28922     return This->lpVtbl->GetCanonicalName(This,pguidCommandName);
28923 }
28924 static FORCEINLINE HRESULT IExplorerCommand_GetState(IExplorerCommand* This,IShellItemArray *psiItemArray,WINBOOL fOkToBeSlow,EXPCMDSTATE *pCmdState) {
28925     return This->lpVtbl->GetState(This,psiItemArray,fOkToBeSlow,pCmdState);
28926 }
28927 static FORCEINLINE HRESULT IExplorerCommand_Invoke(IExplorerCommand* This,IShellItemArray *psiItemArray,IBindCtx *pbc) {
28928     return This->lpVtbl->Invoke(This,psiItemArray,pbc);
28929 }
28930 static FORCEINLINE HRESULT IExplorerCommand_GetFlags(IExplorerCommand* This,EXPCMDFLAGS *pFlags) {
28931     return This->lpVtbl->GetFlags(This,pFlags);
28932 }
28933 static FORCEINLINE HRESULT IExplorerCommand_EnumSubCommands(IExplorerCommand* This,IEnumExplorerCommand **ppEnum) {
28934     return This->lpVtbl->EnumSubCommands(This,ppEnum);
28935 }
28936 #endif
28937 #endif
28938 
28939 #endif
28940 
28941 
28942 #endif  /* __IExplorerCommand_INTERFACE_DEFINED__ */
28943 
28944 
28945 /*****************************************************************************
28946  * IExplorerCommandState interface
28947  */
28948 #ifndef __IExplorerCommandState_INTERFACE_DEFINED__
28949 #define __IExplorerCommandState_INTERFACE_DEFINED__
28950 
28951 DEFINE_GUID(IID_IExplorerCommandState, 0xbddacb60, 0x7657, 0x47ae, 0x84,0x45, 0xd2,0x3e,0x1a,0xcf,0x82,0xae);
28952 #if defined(__cplusplus) && !defined(CINTERFACE)
28953 MIDL_INTERFACE("bddacb60-7657-47ae-8445-d23e1acf82ae")
28954 IExplorerCommandState : public IUnknown
28955 {
28956     virtual HRESULT STDMETHODCALLTYPE GetState(
28957         IShellItemArray *psiItemArray,
28958         WINBOOL fOkToBeSlow,
28959         EXPCMDSTATE *pCmdState) = 0;
28960 
28961 };
28962 #ifdef __CRT_UUID_DECL
28963 __CRT_UUID_DECL(IExplorerCommandState, 0xbddacb60, 0x7657, 0x47ae, 0x84,0x45, 0xd2,0x3e,0x1a,0xcf,0x82,0xae)
28964 #endif
28965 #else
28966 typedef struct IExplorerCommandStateVtbl {
28967     BEGIN_INTERFACE
28968 
28969     /*** IUnknown methods ***/
28970     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
28971         IExplorerCommandState *This,
28972         REFIID riid,
28973         void **ppvObject);
28974 
28975     ULONG (STDMETHODCALLTYPE *AddRef)(
28976         IExplorerCommandState *This);
28977 
28978     ULONG (STDMETHODCALLTYPE *Release)(
28979         IExplorerCommandState *This);
28980 
28981     /*** IExplorerCommandState methods ***/
28982     HRESULT (STDMETHODCALLTYPE *GetState)(
28983         IExplorerCommandState *This,
28984         IShellItemArray *psiItemArray,
28985         WINBOOL fOkToBeSlow,
28986         EXPCMDSTATE *pCmdState);
28987 
28988     END_INTERFACE
28989 } IExplorerCommandStateVtbl;
28990 
28991 interface IExplorerCommandState {
28992     CONST_VTBL IExplorerCommandStateVtbl* lpVtbl;
28993 };
28994 
28995 #ifdef COBJMACROS
28996 #ifndef WIDL_C_INLINE_WRAPPERS
28997 /*** IUnknown methods ***/
28998 #define IExplorerCommandState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
28999 #define IExplorerCommandState_AddRef(This) (This)->lpVtbl->AddRef(This)
29000 #define IExplorerCommandState_Release(This) (This)->lpVtbl->Release(This)
29001 /*** IExplorerCommandState methods ***/
29002 #define IExplorerCommandState_GetState(This,psiItemArray,fOkToBeSlow,pCmdState) (This)->lpVtbl->GetState(This,psiItemArray,fOkToBeSlow,pCmdState)
29003 #else
29004 /*** IUnknown methods ***/
29005 static FORCEINLINE HRESULT IExplorerCommandState_QueryInterface(IExplorerCommandState* This,REFIID riid,void **ppvObject) {
29006     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
29007 }
29008 static FORCEINLINE ULONG IExplorerCommandState_AddRef(IExplorerCommandState* This) {
29009     return This->lpVtbl->AddRef(This);
29010 }
29011 static FORCEINLINE ULONG IExplorerCommandState_Release(IExplorerCommandState* This) {
29012     return This->lpVtbl->Release(This);
29013 }
29014 /*** IExplorerCommandState methods ***/
29015 static FORCEINLINE HRESULT IExplorerCommandState_GetState(IExplorerCommandState* This,IShellItemArray *psiItemArray,WINBOOL fOkToBeSlow,EXPCMDSTATE *pCmdState) {
29016     return This->lpVtbl->GetState(This,psiItemArray,fOkToBeSlow,pCmdState);
29017 }
29018 #endif
29019 #endif
29020 
29021 #endif
29022 
29023 
29024 #endif  /* __IExplorerCommandState_INTERFACE_DEFINED__ */
29025 
29026 
29027 /*****************************************************************************
29028  * IInitializeCommand interface
29029  */
29030 #ifndef __IInitializeCommand_INTERFACE_DEFINED__
29031 #define __IInitializeCommand_INTERFACE_DEFINED__
29032 
29033 DEFINE_GUID(IID_IInitializeCommand, 0x85075acf, 0x231f, 0x40ea, 0x96,0x10, 0xd2,0x6b,0x7b,0x58,0xf6,0x38);
29034 #if defined(__cplusplus) && !defined(CINTERFACE)
29035 MIDL_INTERFACE("85075acf-231f-40ea-9610-d26b7b58f638")
29036 IInitializeCommand : public IUnknown
29037 {
29038     virtual HRESULT STDMETHODCALLTYPE Initialize(
29039         LPCWSTR pszCommandName,
29040         IPropertyBag *ppb) = 0;
29041 
29042 };
29043 #ifdef __CRT_UUID_DECL
29044 __CRT_UUID_DECL(IInitializeCommand, 0x85075acf, 0x231f, 0x40ea, 0x96,0x10, 0xd2,0x6b,0x7b,0x58,0xf6,0x38)
29045 #endif
29046 #else
29047 typedef struct IInitializeCommandVtbl {
29048     BEGIN_INTERFACE
29049 
29050     /*** IUnknown methods ***/
29051     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
29052         IInitializeCommand *This,
29053         REFIID riid,
29054         void **ppvObject);
29055 
29056     ULONG (STDMETHODCALLTYPE *AddRef)(
29057         IInitializeCommand *This);
29058 
29059     ULONG (STDMETHODCALLTYPE *Release)(
29060         IInitializeCommand *This);
29061 
29062     /*** IInitializeCommand methods ***/
29063     HRESULT (STDMETHODCALLTYPE *Initialize)(
29064         IInitializeCommand *This,
29065         LPCWSTR pszCommandName,
29066         IPropertyBag *ppb);
29067 
29068     END_INTERFACE
29069 } IInitializeCommandVtbl;
29070 
29071 interface IInitializeCommand {
29072     CONST_VTBL IInitializeCommandVtbl* lpVtbl;
29073 };
29074 
29075 #ifdef COBJMACROS
29076 #ifndef WIDL_C_INLINE_WRAPPERS
29077 /*** IUnknown methods ***/
29078 #define IInitializeCommand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
29079 #define IInitializeCommand_AddRef(This) (This)->lpVtbl->AddRef(This)
29080 #define IInitializeCommand_Release(This) (This)->lpVtbl->Release(This)
29081 /*** IInitializeCommand methods ***/
29082 #define IInitializeCommand_Initialize(This,pszCommandName,ppb) (This)->lpVtbl->Initialize(This,pszCommandName,ppb)
29083 #else
29084 /*** IUnknown methods ***/
29085 static FORCEINLINE HRESULT IInitializeCommand_QueryInterface(IInitializeCommand* This,REFIID riid,void **ppvObject) {
29086     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
29087 }
29088 static FORCEINLINE ULONG IInitializeCommand_AddRef(IInitializeCommand* This) {
29089     return This->lpVtbl->AddRef(This);
29090 }
29091 static FORCEINLINE ULONG IInitializeCommand_Release(IInitializeCommand* This) {
29092     return This->lpVtbl->Release(This);
29093 }
29094 /*** IInitializeCommand methods ***/
29095 static FORCEINLINE HRESULT IInitializeCommand_Initialize(IInitializeCommand* This,LPCWSTR pszCommandName,IPropertyBag *ppb) {
29096     return This->lpVtbl->Initialize(This,pszCommandName,ppb);
29097 }
29098 #endif
29099 #endif
29100 
29101 #endif
29102 
29103 
29104 #endif  /* __IInitializeCommand_INTERFACE_DEFINED__ */
29105 
29106 
29107 /*****************************************************************************
29108  * IEnumExplorerCommand interface
29109  */
29110 #ifndef __IEnumExplorerCommand_INTERFACE_DEFINED__
29111 #define __IEnumExplorerCommand_INTERFACE_DEFINED__
29112 
29113 DEFINE_GUID(IID_IEnumExplorerCommand, 0xa88826f8, 0x186f, 0x4987, 0xaa,0xde, 0xea,0x0c,0xef,0x8f,0xbf,0xe8);
29114 #if defined(__cplusplus) && !defined(CINTERFACE)
29115 MIDL_INTERFACE("a88826f8-186f-4987-aade-ea0cef8fbfe8")
29116 IEnumExplorerCommand : public IUnknown
29117 {
29118     virtual HRESULT STDMETHODCALLTYPE Next(
29119         ULONG celt,
29120         IExplorerCommand **pUICommand,
29121         ULONG *pceltFetched) = 0;
29122 
29123     virtual HRESULT STDMETHODCALLTYPE Skip(
29124         ULONG celt) = 0;
29125 
29126     virtual HRESULT STDMETHODCALLTYPE Reset(
29127         ) = 0;
29128 
29129     virtual HRESULT STDMETHODCALLTYPE Clone(
29130         IEnumExplorerCommand **ppenum) = 0;
29131 
29132 };
29133 #ifdef __CRT_UUID_DECL
29134 __CRT_UUID_DECL(IEnumExplorerCommand, 0xa88826f8, 0x186f, 0x4987, 0xaa,0xde, 0xea,0x0c,0xef,0x8f,0xbf,0xe8)
29135 #endif
29136 #else
29137 typedef struct IEnumExplorerCommandVtbl {
29138     BEGIN_INTERFACE
29139 
29140     /*** IUnknown methods ***/
29141     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
29142         IEnumExplorerCommand *This,
29143         REFIID riid,
29144         void **ppvObject);
29145 
29146     ULONG (STDMETHODCALLTYPE *AddRef)(
29147         IEnumExplorerCommand *This);
29148 
29149     ULONG (STDMETHODCALLTYPE *Release)(
29150         IEnumExplorerCommand *This);
29151 
29152     /*** IEnumExplorerCommand methods ***/
29153     HRESULT (STDMETHODCALLTYPE *Next)(
29154         IEnumExplorerCommand *This,
29155         ULONG celt,
29156         IExplorerCommand **pUICommand,
29157         ULONG *pceltFetched);
29158 
29159     HRESULT (STDMETHODCALLTYPE *Skip)(
29160         IEnumExplorerCommand *This,
29161         ULONG celt);
29162 
29163     HRESULT (STDMETHODCALLTYPE *Reset)(
29164         IEnumExplorerCommand *This);
29165 
29166     HRESULT (STDMETHODCALLTYPE *Clone)(
29167         IEnumExplorerCommand *This,
29168         IEnumExplorerCommand **ppenum);
29169 
29170     END_INTERFACE
29171 } IEnumExplorerCommandVtbl;
29172 
29173 interface IEnumExplorerCommand {
29174     CONST_VTBL IEnumExplorerCommandVtbl* lpVtbl;
29175 };
29176 
29177 #ifdef COBJMACROS
29178 #ifndef WIDL_C_INLINE_WRAPPERS
29179 /*** IUnknown methods ***/
29180 #define IEnumExplorerCommand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
29181 #define IEnumExplorerCommand_AddRef(This) (This)->lpVtbl->AddRef(This)
29182 #define IEnumExplorerCommand_Release(This) (This)->lpVtbl->Release(This)
29183 /*** IEnumExplorerCommand methods ***/
29184 #define IEnumExplorerCommand_Next(This,celt,pUICommand,pceltFetched) (This)->lpVtbl->Next(This,celt,pUICommand,pceltFetched)
29185 #define IEnumExplorerCommand_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
29186 #define IEnumExplorerCommand_Reset(This) (This)->lpVtbl->Reset(This)
29187 #define IEnumExplorerCommand_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
29188 #else
29189 /*** IUnknown methods ***/
29190 static FORCEINLINE HRESULT IEnumExplorerCommand_QueryInterface(IEnumExplorerCommand* This,REFIID riid,void **ppvObject) {
29191     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
29192 }
29193 static FORCEINLINE ULONG IEnumExplorerCommand_AddRef(IEnumExplorerCommand* This) {
29194     return This->lpVtbl->AddRef(This);
29195 }
29196 static FORCEINLINE ULONG IEnumExplorerCommand_Release(IEnumExplorerCommand* This) {
29197     return This->lpVtbl->Release(This);
29198 }
29199 /*** IEnumExplorerCommand methods ***/
29200 static FORCEINLINE HRESULT IEnumExplorerCommand_Next(IEnumExplorerCommand* This,ULONG celt,IExplorerCommand **pUICommand,ULONG *pceltFetched) {
29201     return This->lpVtbl->Next(This,celt,pUICommand,pceltFetched);
29202 }
29203 static FORCEINLINE HRESULT IEnumExplorerCommand_Skip(IEnumExplorerCommand* This,ULONG celt) {
29204     return This->lpVtbl->Skip(This,celt);
29205 }
29206 static FORCEINLINE HRESULT IEnumExplorerCommand_Reset(IEnumExplorerCommand* This) {
29207     return This->lpVtbl->Reset(This);
29208 }
29209 static FORCEINLINE HRESULT IEnumExplorerCommand_Clone(IEnumExplorerCommand* This,IEnumExplorerCommand **ppenum) {
29210     return This->lpVtbl->Clone(This,ppenum);
29211 }
29212 #endif
29213 #endif
29214 
29215 #endif
29216 
29217 HRESULT STDMETHODCALLTYPE IEnumExplorerCommand_RemoteNext_Proxy(
29218     IEnumExplorerCommand* This,
29219     ULONG celt,
29220     IExplorerCommand **pUICommand,
29221     ULONG *pceltFetched);
29222 void __RPC_STUB IEnumExplorerCommand_RemoteNext_Stub(
29223     IRpcStubBuffer* This,
29224     IRpcChannelBuffer* pRpcChannelBuffer,
29225     PRPC_MESSAGE pRpcMessage,
29226     DWORD* pdwStubPhase);
29227 HRESULT CALLBACK IEnumExplorerCommand_Next_Proxy(
29228     IEnumExplorerCommand* This,
29229     ULONG celt,
29230     IExplorerCommand **pUICommand,
29231     ULONG *pceltFetched);
29232 HRESULT __RPC_STUB IEnumExplorerCommand_Next_Stub(
29233     IEnumExplorerCommand* This,
29234     ULONG celt,
29235     IExplorerCommand **pUICommand,
29236     ULONG *pceltFetched);
29237 
29238 #endif  /* __IEnumExplorerCommand_INTERFACE_DEFINED__ */
29239 
29240 
29241 /*****************************************************************************
29242  * IExplorerCommandProvider interface
29243  */
29244 #ifndef __IExplorerCommandProvider_INTERFACE_DEFINED__
29245 #define __IExplorerCommandProvider_INTERFACE_DEFINED__
29246 
29247 DEFINE_GUID(IID_IExplorerCommandProvider, 0x64961751, 0x0835, 0x43c0, 0x8f,0xfe, 0xd5,0x76,0x86,0x53,0x0e,0x64);
29248 #if defined(__cplusplus) && !defined(CINTERFACE)
29249 MIDL_INTERFACE("64961751-0835-43c0-8ffe-d57686530e64")
29250 IExplorerCommandProvider : public IUnknown
29251 {
29252     virtual HRESULT STDMETHODCALLTYPE GetCommands(
29253         IUnknown *punkSite,
29254         REFIID riid,
29255         void **ppv) = 0;
29256 
29257     virtual HRESULT STDMETHODCALLTYPE GetCommand(
29258         REFGUID rguidCommandId,
29259         REFIID riid,
29260         void **ppv) = 0;
29261 
29262 };
29263 #ifdef __CRT_UUID_DECL
29264 __CRT_UUID_DECL(IExplorerCommandProvider, 0x64961751, 0x0835, 0x43c0, 0x8f,0xfe, 0xd5,0x76,0x86,0x53,0x0e,0x64)
29265 #endif
29266 #else
29267 typedef struct IExplorerCommandProviderVtbl {
29268     BEGIN_INTERFACE
29269 
29270     /*** IUnknown methods ***/
29271     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
29272         IExplorerCommandProvider *This,
29273         REFIID riid,
29274         void **ppvObject);
29275 
29276     ULONG (STDMETHODCALLTYPE *AddRef)(
29277         IExplorerCommandProvider *This);
29278 
29279     ULONG (STDMETHODCALLTYPE *Release)(
29280         IExplorerCommandProvider *This);
29281 
29282     /*** IExplorerCommandProvider methods ***/
29283     HRESULT (STDMETHODCALLTYPE *GetCommands)(
29284         IExplorerCommandProvider *This,
29285         IUnknown *punkSite,
29286         REFIID riid,
29287         void **ppv);
29288 
29289     HRESULT (STDMETHODCALLTYPE *GetCommand)(
29290         IExplorerCommandProvider *This,
29291         REFGUID rguidCommandId,
29292         REFIID riid,
29293         void **ppv);
29294 
29295     END_INTERFACE
29296 } IExplorerCommandProviderVtbl;
29297 
29298 interface IExplorerCommandProvider {
29299     CONST_VTBL IExplorerCommandProviderVtbl* lpVtbl;
29300 };
29301 
29302 #ifdef COBJMACROS
29303 #ifndef WIDL_C_INLINE_WRAPPERS
29304 /*** IUnknown methods ***/
29305 #define IExplorerCommandProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
29306 #define IExplorerCommandProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
29307 #define IExplorerCommandProvider_Release(This) (This)->lpVtbl->Release(This)
29308 /*** IExplorerCommandProvider methods ***/
29309 #define IExplorerCommandProvider_GetCommands(This,punkSite,riid,ppv) (This)->lpVtbl->GetCommands(This,punkSite,riid,ppv)
29310 #define IExplorerCommandProvider_GetCommand(This,rguidCommandId,riid,ppv) (This)->lpVtbl->GetCommand(This,rguidCommandId,riid,ppv)
29311 #else
29312 /*** IUnknown methods ***/
29313 static FORCEINLINE HRESULT IExplorerCommandProvider_QueryInterface(IExplorerCommandProvider* This,REFIID riid,void **ppvObject) {
29314     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
29315 }
29316 static FORCEINLINE ULONG IExplorerCommandProvider_AddRef(IExplorerCommandProvider* This) {
29317     return This->lpVtbl->AddRef(This);
29318 }
29319 static FORCEINLINE ULONG IExplorerCommandProvider_Release(IExplorerCommandProvider* This) {
29320     return This->lpVtbl->Release(This);
29321 }
29322 /*** IExplorerCommandProvider methods ***/
29323 static FORCEINLINE HRESULT IExplorerCommandProvider_GetCommands(IExplorerCommandProvider* This,IUnknown *punkSite,REFIID riid,void **ppv) {
29324     return This->lpVtbl->GetCommands(This,punkSite,riid,ppv);
29325 }
29326 static FORCEINLINE HRESULT IExplorerCommandProvider_GetCommand(IExplorerCommandProvider* This,REFGUID rguidCommandId,REFIID riid,void **ppv) {
29327     return This->lpVtbl->GetCommand(This,rguidCommandId,riid,ppv);
29328 }
29329 #endif
29330 #endif
29331 
29332 #endif
29333 
29334 
29335 #endif  /* __IExplorerCommandProvider_INTERFACE_DEFINED__ */
29336 
29337 
29338 typedef HANDLE HTHEME;
29339 
29340 /*****************************************************************************
29341  * IInitializeNetworkFolder interface
29342  */
29343 #ifndef __IInitializeNetworkFolder_INTERFACE_DEFINED__
29344 #define __IInitializeNetworkFolder_INTERFACE_DEFINED__
29345 
29346 DEFINE_GUID(IID_IInitializeNetworkFolder, 0x6e0f9881, 0x42a8, 0x4f2a, 0x97,0xf8, 0x8a,0xf4,0xe0,0x26,0xd9,0x2d);
29347 #if defined(__cplusplus) && !defined(CINTERFACE)
29348 MIDL_INTERFACE("6e0f9881-42a8-4f2a-97f8-8af4e026d92d")
29349 IInitializeNetworkFolder : public IUnknown
29350 {
29351     virtual HRESULT STDMETHODCALLTYPE Initialize(
29352         PCIDLIST_ABSOLUTE pidl,
29353         PCIDLIST_ABSOLUTE pidlTarget,
29354         UINT uDisplayType,
29355         LPCWSTR pszResName,
29356         LPCWSTR pszProvider) = 0;
29357 
29358 };
29359 #ifdef __CRT_UUID_DECL
29360 __CRT_UUID_DECL(IInitializeNetworkFolder, 0x6e0f9881, 0x42a8, 0x4f2a, 0x97,0xf8, 0x8a,0xf4,0xe0,0x26,0xd9,0x2d)
29361 #endif
29362 #else
29363 typedef struct IInitializeNetworkFolderVtbl {
29364     BEGIN_INTERFACE
29365 
29366     /*** IUnknown methods ***/
29367     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
29368         IInitializeNetworkFolder *This,
29369         REFIID riid,
29370         void **ppvObject);
29371 
29372     ULONG (STDMETHODCALLTYPE *AddRef)(
29373         IInitializeNetworkFolder *This);
29374 
29375     ULONG (STDMETHODCALLTYPE *Release)(
29376         IInitializeNetworkFolder *This);
29377 
29378     /*** IInitializeNetworkFolder methods ***/
29379     HRESULT (STDMETHODCALLTYPE *Initialize)(
29380         IInitializeNetworkFolder *This,
29381         PCIDLIST_ABSOLUTE pidl,
29382         PCIDLIST_ABSOLUTE pidlTarget,
29383         UINT uDisplayType,
29384         LPCWSTR pszResName,
29385         LPCWSTR pszProvider);
29386 
29387     END_INTERFACE
29388 } IInitializeNetworkFolderVtbl;
29389 
29390 interface IInitializeNetworkFolder {
29391     CONST_VTBL IInitializeNetworkFolderVtbl* lpVtbl;
29392 };
29393 
29394 #ifdef COBJMACROS
29395 #ifndef WIDL_C_INLINE_WRAPPERS
29396 /*** IUnknown methods ***/
29397 #define IInitializeNetworkFolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
29398 #define IInitializeNetworkFolder_AddRef(This) (This)->lpVtbl->AddRef(This)
29399 #define IInitializeNetworkFolder_Release(This) (This)->lpVtbl->Release(This)
29400 /*** IInitializeNetworkFolder methods ***/
29401 #define IInitializeNetworkFolder_Initialize(This,pidl,pidlTarget,uDisplayType,pszResName,pszProvider) (This)->lpVtbl->Initialize(This,pidl,pidlTarget,uDisplayType,pszResName,pszProvider)
29402 #else
29403 /*** IUnknown methods ***/
29404 static FORCEINLINE HRESULT IInitializeNetworkFolder_QueryInterface(IInitializeNetworkFolder* This,REFIID riid,void **ppvObject) {
29405     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
29406 }
29407 static FORCEINLINE ULONG IInitializeNetworkFolder_AddRef(IInitializeNetworkFolder* This) {
29408     return This->lpVtbl->AddRef(This);
29409 }
29410 static FORCEINLINE ULONG IInitializeNetworkFolder_Release(IInitializeNetworkFolder* This) {
29411     return This->lpVtbl->Release(This);
29412 }
29413 /*** IInitializeNetworkFolder methods ***/
29414 static FORCEINLINE HRESULT IInitializeNetworkFolder_Initialize(IInitializeNetworkFolder* This,PCIDLIST_ABSOLUTE pidl,PCIDLIST_ABSOLUTE pidlTarget,UINT uDisplayType,LPCWSTR pszResName,LPCWSTR pszProvider) {
29415     return This->lpVtbl->Initialize(This,pidl,pidlTarget,uDisplayType,pszResName,pszProvider);
29416 }
29417 #endif
29418 #endif
29419 
29420 #endif
29421 
29422 
29423 #endif  /* __IInitializeNetworkFolder_INTERFACE_DEFINED__ */
29424 
29425 
29426 typedef enum CPVIEW {
29427     CPVIEW_CLASSIC = 0,
29428     CPVIEW_ALLITEMS = CPVIEW_CLASSIC,
29429     CPVIEW_CATEGORY = 1,
29430     CPVIEW_HOME = CPVIEW_CATEGORY
29431 } CPVIEW;
29432 
29433 /*****************************************************************************
29434  * IOpenControlPanel interface
29435  */
29436 #ifndef __IOpenControlPanel_INTERFACE_DEFINED__
29437 #define __IOpenControlPanel_INTERFACE_DEFINED__
29438 
29439 DEFINE_GUID(IID_IOpenControlPanel, 0xd11ad862, 0x66de, 0x4df4, 0xbf,0x6c, 0x1f,0x56,0x21,0x99,0x6a,0xf1);
29440 #if defined(__cplusplus) && !defined(CINTERFACE)
29441 MIDL_INTERFACE("d11ad862-66de-4df4-bf6c-1f5621996af1")
29442 IOpenControlPanel : public IUnknown
29443 {
29444     virtual HRESULT STDMETHODCALLTYPE Open(
29445         LPCWSTR pszName,
29446         LPCWSTR pszPage,
29447         IUnknown *punkSite) = 0;
29448 
29449     virtual HRESULT STDMETHODCALLTYPE GetPath(
29450         LPCWSTR pszName,
29451         LPWSTR pszPath,
29452         UINT cchPath) = 0;
29453 
29454     virtual HRESULT STDMETHODCALLTYPE GetCurrentView(
29455         CPVIEW *pView) = 0;
29456 
29457 };
29458 #ifdef __CRT_UUID_DECL
29459 __CRT_UUID_DECL(IOpenControlPanel, 0xd11ad862, 0x66de, 0x4df4, 0xbf,0x6c, 0x1f,0x56,0x21,0x99,0x6a,0xf1)
29460 #endif
29461 #else
29462 typedef struct IOpenControlPanelVtbl {
29463     BEGIN_INTERFACE
29464 
29465     /*** IUnknown methods ***/
29466     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
29467         IOpenControlPanel *This,
29468         REFIID riid,
29469         void **ppvObject);
29470 
29471     ULONG (STDMETHODCALLTYPE *AddRef)(
29472         IOpenControlPanel *This);
29473 
29474     ULONG (STDMETHODCALLTYPE *Release)(
29475         IOpenControlPanel *This);
29476 
29477     /*** IOpenControlPanel methods ***/
29478     HRESULT (STDMETHODCALLTYPE *Open)(
29479         IOpenControlPanel *This,
29480         LPCWSTR pszName,
29481         LPCWSTR pszPage,
29482         IUnknown *punkSite);
29483 
29484     HRESULT (STDMETHODCALLTYPE *GetPath)(
29485         IOpenControlPanel *This,
29486         LPCWSTR pszName,
29487         LPWSTR pszPath,
29488         UINT cchPath);
29489 
29490     HRESULT (STDMETHODCALLTYPE *GetCurrentView)(
29491         IOpenControlPanel *This,
29492         CPVIEW *pView);
29493 
29494     END_INTERFACE
29495 } IOpenControlPanelVtbl;
29496 
29497 interface IOpenControlPanel {
29498     CONST_VTBL IOpenControlPanelVtbl* lpVtbl;
29499 };
29500 
29501 #ifdef COBJMACROS
29502 #ifndef WIDL_C_INLINE_WRAPPERS
29503 /*** IUnknown methods ***/
29504 #define IOpenControlPanel_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
29505 #define IOpenControlPanel_AddRef(This) (This)->lpVtbl->AddRef(This)
29506 #define IOpenControlPanel_Release(This) (This)->lpVtbl->Release(This)
29507 /*** IOpenControlPanel methods ***/
29508 #define IOpenControlPanel_Open(This,pszName,pszPage,punkSite) (This)->lpVtbl->Open(This,pszName,pszPage,punkSite)
29509 #define IOpenControlPanel_GetPath(This,pszName,pszPath,cchPath) (This)->lpVtbl->GetPath(This,pszName,pszPath,cchPath)
29510 #define IOpenControlPanel_GetCurrentView(This,pView) (This)->lpVtbl->GetCurrentView(This,pView)
29511 #else
29512 /*** IUnknown methods ***/
29513 static FORCEINLINE HRESULT IOpenControlPanel_QueryInterface(IOpenControlPanel* This,REFIID riid,void **ppvObject) {
29514     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
29515 }
29516 static FORCEINLINE ULONG IOpenControlPanel_AddRef(IOpenControlPanel* This) {
29517     return This->lpVtbl->AddRef(This);
29518 }
29519 static FORCEINLINE ULONG IOpenControlPanel_Release(IOpenControlPanel* This) {
29520     return This->lpVtbl->Release(This);
29521 }
29522 /*** IOpenControlPanel methods ***/
29523 static FORCEINLINE HRESULT IOpenControlPanel_Open(IOpenControlPanel* This,LPCWSTR pszName,LPCWSTR pszPage,IUnknown *punkSite) {
29524     return This->lpVtbl->Open(This,pszName,pszPage,punkSite);
29525 }
29526 static FORCEINLINE HRESULT IOpenControlPanel_GetPath(IOpenControlPanel* This,LPCWSTR pszName,LPWSTR pszPath,UINT cchPath) {
29527     return This->lpVtbl->GetPath(This,pszName,pszPath,cchPath);
29528 }
29529 static FORCEINLINE HRESULT IOpenControlPanel_GetCurrentView(IOpenControlPanel* This,CPVIEW *pView) {
29530     return This->lpVtbl->GetCurrentView(This,pView);
29531 }
29532 #endif
29533 #endif
29534 
29535 #endif
29536 
29537 
29538 #endif  /* __IOpenControlPanel_INTERFACE_DEFINED__ */
29539 
29540 
29541 /*****************************************************************************
29542  * IComputerInfoChangeNotify interface
29543  */
29544 #ifndef __IComputerInfoChangeNotify_INTERFACE_DEFINED__
29545 #define __IComputerInfoChangeNotify_INTERFACE_DEFINED__
29546 
29547 DEFINE_GUID(IID_IComputerInfoChangeNotify, 0x0df60d92, 0x6818, 0x46d6, 0xb3,0x58, 0xd6,0x61,0x70,0xdd,0xe4,0x66);
29548 #if defined(__cplusplus) && !defined(CINTERFACE)
29549 MIDL_INTERFACE("0df60d92-6818-46d6-b358-d66170dde466")
29550 IComputerInfoChangeNotify : public IUnknown
29551 {
29552     virtual HRESULT STDMETHODCALLTYPE ComputerInfoChanged(
29553         ) = 0;
29554 
29555 };
29556 #ifdef __CRT_UUID_DECL
29557 __CRT_UUID_DECL(IComputerInfoChangeNotify, 0x0df60d92, 0x6818, 0x46d6, 0xb3,0x58, 0xd6,0x61,0x70,0xdd,0xe4,0x66)
29558 #endif
29559 #else
29560 typedef struct IComputerInfoChangeNotifyVtbl {
29561     BEGIN_INTERFACE
29562 
29563     /*** IUnknown methods ***/
29564     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
29565         IComputerInfoChangeNotify *This,
29566         REFIID riid,
29567         void **ppvObject);
29568 
29569     ULONG (STDMETHODCALLTYPE *AddRef)(
29570         IComputerInfoChangeNotify *This);
29571 
29572     ULONG (STDMETHODCALLTYPE *Release)(
29573         IComputerInfoChangeNotify *This);
29574 
29575     /*** IComputerInfoChangeNotify methods ***/
29576     HRESULT (STDMETHODCALLTYPE *ComputerInfoChanged)(
29577         IComputerInfoChangeNotify *This);
29578 
29579     END_INTERFACE
29580 } IComputerInfoChangeNotifyVtbl;
29581 
29582 interface IComputerInfoChangeNotify {
29583     CONST_VTBL IComputerInfoChangeNotifyVtbl* lpVtbl;
29584 };
29585 
29586 #ifdef COBJMACROS
29587 #ifndef WIDL_C_INLINE_WRAPPERS
29588 /*** IUnknown methods ***/
29589 #define IComputerInfoChangeNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
29590 #define IComputerInfoChangeNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
29591 #define IComputerInfoChangeNotify_Release(This) (This)->lpVtbl->Release(This)
29592 /*** IComputerInfoChangeNotify methods ***/
29593 #define IComputerInfoChangeNotify_ComputerInfoChanged(This) (This)->lpVtbl->ComputerInfoChanged(This)
29594 #else
29595 /*** IUnknown methods ***/
29596 static FORCEINLINE HRESULT IComputerInfoChangeNotify_QueryInterface(IComputerInfoChangeNotify* This,REFIID riid,void **ppvObject) {
29597     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
29598 }
29599 static FORCEINLINE ULONG IComputerInfoChangeNotify_AddRef(IComputerInfoChangeNotify* This) {
29600     return This->lpVtbl->AddRef(This);
29601 }
29602 static FORCEINLINE ULONG IComputerInfoChangeNotify_Release(IComputerInfoChangeNotify* This) {
29603     return This->lpVtbl->Release(This);
29604 }
29605 /*** IComputerInfoChangeNotify methods ***/
29606 static FORCEINLINE HRESULT IComputerInfoChangeNotify_ComputerInfoChanged(IComputerInfoChangeNotify* This) {
29607     return This->lpVtbl->ComputerInfoChanged(This);
29608 }
29609 #endif
29610 #endif
29611 
29612 #endif
29613 
29614 
29615 #endif  /* __IComputerInfoChangeNotify_INTERFACE_DEFINED__ */
29616 
29617 
29618 #define STR_FILE_SYS_BIND_DATA L"File System Bind Data"
29619 
29620 /*****************************************************************************
29621  * IFileSystemBindData interface
29622  */
29623 #ifndef __IFileSystemBindData_INTERFACE_DEFINED__
29624 #define __IFileSystemBindData_INTERFACE_DEFINED__
29625 
29626 DEFINE_GUID(IID_IFileSystemBindData, 0x01e18d10, 0x4d8b, 0x11d2, 0x85,0x5d, 0x00,0x60,0x08,0x05,0x93,0x67);
29627 #if defined(__cplusplus) && !defined(CINTERFACE)
29628 MIDL_INTERFACE("01e18d10-4d8b-11d2-855d-006008059367")
29629 IFileSystemBindData : public IUnknown
29630 {
29631     virtual HRESULT STDMETHODCALLTYPE SetFindData(
29632         const WIN32_FIND_DATAW *pfd) = 0;
29633 
29634     virtual HRESULT STDMETHODCALLTYPE GetFindData(
29635         WIN32_FIND_DATAW *pfd) = 0;
29636 
29637 };
29638 #ifdef __CRT_UUID_DECL
29639 __CRT_UUID_DECL(IFileSystemBindData, 0x01e18d10, 0x4d8b, 0x11d2, 0x85,0x5d, 0x00,0x60,0x08,0x05,0x93,0x67)
29640 #endif
29641 #else
29642 typedef struct IFileSystemBindDataVtbl {
29643     BEGIN_INTERFACE
29644 
29645     /*** IUnknown methods ***/
29646     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
29647         IFileSystemBindData *This,
29648         REFIID riid,
29649         void **ppvObject);
29650 
29651     ULONG (STDMETHODCALLTYPE *AddRef)(
29652         IFileSystemBindData *This);
29653 
29654     ULONG (STDMETHODCALLTYPE *Release)(
29655         IFileSystemBindData *This);
29656 
29657     /*** IFileSystemBindData methods ***/
29658     HRESULT (STDMETHODCALLTYPE *SetFindData)(
29659         IFileSystemBindData *This,
29660         const WIN32_FIND_DATAW *pfd);
29661 
29662     HRESULT (STDMETHODCALLTYPE *GetFindData)(
29663         IFileSystemBindData *This,
29664         WIN32_FIND_DATAW *pfd);
29665 
29666     END_INTERFACE
29667 } IFileSystemBindDataVtbl;
29668 
29669 interface IFileSystemBindData {
29670     CONST_VTBL IFileSystemBindDataVtbl* lpVtbl;
29671 };
29672 
29673 #ifdef COBJMACROS
29674 #ifndef WIDL_C_INLINE_WRAPPERS
29675 /*** IUnknown methods ***/
29676 #define IFileSystemBindData_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
29677 #define IFileSystemBindData_AddRef(This) (This)->lpVtbl->AddRef(This)
29678 #define IFileSystemBindData_Release(This) (This)->lpVtbl->Release(This)
29679 /*** IFileSystemBindData methods ***/
29680 #define IFileSystemBindData_SetFindData(This,pfd) (This)->lpVtbl->SetFindData(This,pfd)
29681 #define IFileSystemBindData_GetFindData(This,pfd) (This)->lpVtbl->GetFindData(This,pfd)
29682 #else
29683 /*** IUnknown methods ***/
29684 static FORCEINLINE HRESULT IFileSystemBindData_QueryInterface(IFileSystemBindData* This,REFIID riid,void **ppvObject) {
29685     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
29686 }
29687 static FORCEINLINE ULONG IFileSystemBindData_AddRef(IFileSystemBindData* This) {
29688     return This->lpVtbl->AddRef(This);
29689 }
29690 static FORCEINLINE ULONG IFileSystemBindData_Release(IFileSystemBindData* This) {
29691     return This->lpVtbl->Release(This);
29692 }
29693 /*** IFileSystemBindData methods ***/
29694 static FORCEINLINE HRESULT IFileSystemBindData_SetFindData(IFileSystemBindData* This,const WIN32_FIND_DATAW *pfd) {
29695     return This->lpVtbl->SetFindData(This,pfd);
29696 }
29697 static FORCEINLINE HRESULT IFileSystemBindData_GetFindData(IFileSystemBindData* This,WIN32_FIND_DATAW *pfd) {
29698     return This->lpVtbl->GetFindData(This,pfd);
29699 }
29700 #endif
29701 #endif
29702 
29703 #endif
29704 
29705 
29706 #endif  /* __IFileSystemBindData_INTERFACE_DEFINED__ */
29707 
29708 
29709 /*****************************************************************************
29710  * IFileSystemBindData2 interface
29711  */
29712 #ifndef __IFileSystemBindData2_INTERFACE_DEFINED__
29713 #define __IFileSystemBindData2_INTERFACE_DEFINED__
29714 
29715 DEFINE_GUID(IID_IFileSystemBindData2, 0x3acf075f, 0x71db, 0x4afa, 0x81,0xf0, 0x3f,0xc4,0xfd,0xf2,0xa5,0xb8);
29716 #if defined(__cplusplus) && !defined(CINTERFACE)
29717 MIDL_INTERFACE("3acf075f-71db-4afa-81f0-3fc4fdf2a5b8")
29718 IFileSystemBindData2 : public IFileSystemBindData
29719 {
29720     virtual HRESULT STDMETHODCALLTYPE SetFileID(
29721         LARGE_INTEGER liFileID) = 0;
29722 
29723     virtual HRESULT STDMETHODCALLTYPE GetFileID(
29724         LARGE_INTEGER *pliFileID) = 0;
29725 
29726     virtual HRESULT STDMETHODCALLTYPE SetJunctionCLSID(
29727         REFCLSID clsid) = 0;
29728 
29729     virtual HRESULT STDMETHODCALLTYPE GetJunctionCLSID(
29730         CLSID *pclsid) = 0;
29731 
29732 };
29733 #ifdef __CRT_UUID_DECL
29734 __CRT_UUID_DECL(IFileSystemBindData2, 0x3acf075f, 0x71db, 0x4afa, 0x81,0xf0, 0x3f,0xc4,0xfd,0xf2,0xa5,0xb8)
29735 #endif
29736 #else
29737 typedef struct IFileSystemBindData2Vtbl {
29738     BEGIN_INTERFACE
29739 
29740     /*** IUnknown methods ***/
29741     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
29742         IFileSystemBindData2 *This,
29743         REFIID riid,
29744         void **ppvObject);
29745 
29746     ULONG (STDMETHODCALLTYPE *AddRef)(
29747         IFileSystemBindData2 *This);
29748 
29749     ULONG (STDMETHODCALLTYPE *Release)(
29750         IFileSystemBindData2 *This);
29751 
29752     /*** IFileSystemBindData methods ***/
29753     HRESULT (STDMETHODCALLTYPE *SetFindData)(
29754         IFileSystemBindData2 *This,
29755         const WIN32_FIND_DATAW *pfd);
29756 
29757     HRESULT (STDMETHODCALLTYPE *GetFindData)(
29758         IFileSystemBindData2 *This,
29759         WIN32_FIND_DATAW *pfd);
29760 
29761     /*** IFileSystemBindData2 methods ***/
29762     HRESULT (STDMETHODCALLTYPE *SetFileID)(
29763         IFileSystemBindData2 *This,
29764         LARGE_INTEGER liFileID);
29765 
29766     HRESULT (STDMETHODCALLTYPE *GetFileID)(
29767         IFileSystemBindData2 *This,
29768         LARGE_INTEGER *pliFileID);
29769 
29770     HRESULT (STDMETHODCALLTYPE *SetJunctionCLSID)(
29771         IFileSystemBindData2 *This,
29772         REFCLSID clsid);
29773 
29774     HRESULT (STDMETHODCALLTYPE *GetJunctionCLSID)(
29775         IFileSystemBindData2 *This,
29776         CLSID *pclsid);
29777 
29778     END_INTERFACE
29779 } IFileSystemBindData2Vtbl;
29780 
29781 interface IFileSystemBindData2 {
29782     CONST_VTBL IFileSystemBindData2Vtbl* lpVtbl;
29783 };
29784 
29785 #ifdef COBJMACROS
29786 #ifndef WIDL_C_INLINE_WRAPPERS
29787 /*** IUnknown methods ***/
29788 #define IFileSystemBindData2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
29789 #define IFileSystemBindData2_AddRef(This) (This)->lpVtbl->AddRef(This)
29790 #define IFileSystemBindData2_Release(This) (This)->lpVtbl->Release(This)
29791 /*** IFileSystemBindData methods ***/
29792 #define IFileSystemBindData2_SetFindData(This,pfd) (This)->lpVtbl->SetFindData(This,pfd)
29793 #define IFileSystemBindData2_GetFindData(This,pfd) (This)->lpVtbl->GetFindData(This,pfd)
29794 /*** IFileSystemBindData2 methods ***/
29795 #define IFileSystemBindData2_SetFileID(This,liFileID) (This)->lpVtbl->SetFileID(This,liFileID)
29796 #define IFileSystemBindData2_GetFileID(This,pliFileID) (This)->lpVtbl->GetFileID(This,pliFileID)
29797 #define IFileSystemBindData2_SetJunctionCLSID(This,clsid) (This)->lpVtbl->SetJunctionCLSID(This,clsid)
29798 #define IFileSystemBindData2_GetJunctionCLSID(This,pclsid) (This)->lpVtbl->GetJunctionCLSID(This,pclsid)
29799 #else
29800 /*** IUnknown methods ***/
29801 static FORCEINLINE HRESULT IFileSystemBindData2_QueryInterface(IFileSystemBindData2* This,REFIID riid,void **ppvObject) {
29802     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
29803 }
29804 static FORCEINLINE ULONG IFileSystemBindData2_AddRef(IFileSystemBindData2* This) {
29805     return This->lpVtbl->AddRef(This);
29806 }
29807 static FORCEINLINE ULONG IFileSystemBindData2_Release(IFileSystemBindData2* This) {
29808     return This->lpVtbl->Release(This);
29809 }
29810 /*** IFileSystemBindData methods ***/
29811 static FORCEINLINE HRESULT IFileSystemBindData2_SetFindData(IFileSystemBindData2* This,const WIN32_FIND_DATAW *pfd) {
29812     return This->lpVtbl->SetFindData(This,pfd);
29813 }
29814 static FORCEINLINE HRESULT IFileSystemBindData2_GetFindData(IFileSystemBindData2* This,WIN32_FIND_DATAW *pfd) {
29815     return This->lpVtbl->GetFindData(This,pfd);
29816 }
29817 /*** IFileSystemBindData2 methods ***/
29818 static FORCEINLINE HRESULT IFileSystemBindData2_SetFileID(IFileSystemBindData2* This,LARGE_INTEGER liFileID) {
29819     return This->lpVtbl->SetFileID(This,liFileID);
29820 }
29821 static FORCEINLINE HRESULT IFileSystemBindData2_GetFileID(IFileSystemBindData2* This,LARGE_INTEGER *pliFileID) {
29822     return This->lpVtbl->GetFileID(This,pliFileID);
29823 }
29824 static FORCEINLINE HRESULT IFileSystemBindData2_SetJunctionCLSID(IFileSystemBindData2* This,REFCLSID clsid) {
29825     return This->lpVtbl->SetJunctionCLSID(This,clsid);
29826 }
29827 static FORCEINLINE HRESULT IFileSystemBindData2_GetJunctionCLSID(IFileSystemBindData2* This,CLSID *pclsid) {
29828     return This->lpVtbl->GetJunctionCLSID(This,pclsid);
29829 }
29830 #endif
29831 #endif
29832 
29833 #endif
29834 
29835 
29836 #endif  /* __IFileSystemBindData2_INTERFACE_DEFINED__ */
29837 
29838 
29839 #if NTDDI_VERSION >= NTDDI_WIN7
29840 /*****************************************************************************
29841  * ICustomDestinationList interface
29842  */
29843 #ifndef __ICustomDestinationList_INTERFACE_DEFINED__
29844 #define __ICustomDestinationList_INTERFACE_DEFINED__
29845 
29846 typedef enum KNOWNDESTCATEGORY {
29847     KDC_FREQUENT = 1,
29848     KDC_RECENT = 2
29849 } KNOWNDESTCATEGORY;
29850 
29851 DEFINE_GUID(IID_ICustomDestinationList, 0x6332debf, 0x87b5, 0x4670, 0x90,0xc0, 0x5e,0x57,0xb4,0x08,0xa4,0x9e);
29852 #if defined(__cplusplus) && !defined(CINTERFACE)
29853 MIDL_INTERFACE("6332debf-87b5-4670-90c0-5e57b408a49e")
29854 ICustomDestinationList : public IUnknown
29855 {
29856     virtual HRESULT STDMETHODCALLTYPE SetAppID(
29857         LPCWSTR pszAppID) = 0;
29858 
29859     virtual HRESULT STDMETHODCALLTYPE BeginList(
29860         UINT *pcMinSlots,
29861         REFIID riid,
29862         void **ppv) = 0;
29863 
29864     virtual HRESULT STDMETHODCALLTYPE AppendCategory(
29865         LPCWSTR pszCategory,
29866         IObjectArray *poa) = 0;
29867 
29868     virtual HRESULT STDMETHODCALLTYPE AppendKnownCategory(
29869         KNOWNDESTCATEGORY category) = 0;
29870 
29871     virtual HRESULT STDMETHODCALLTYPE AddUserTasks(
29872         IObjectArray *poa) = 0;
29873 
29874     virtual HRESULT STDMETHODCALLTYPE CommitList(
29875         ) = 0;
29876 
29877     virtual HRESULT STDMETHODCALLTYPE GetRemovedDestinations(
29878         REFIID riid,
29879         void **ppv) = 0;
29880 
29881     virtual HRESULT STDMETHODCALLTYPE DeleteList(
29882         LPCWSTR pszAppID) = 0;
29883 
29884     virtual HRESULT STDMETHODCALLTYPE AbortList(
29885         ) = 0;
29886 
29887 };
29888 #ifdef __CRT_UUID_DECL
29889 __CRT_UUID_DECL(ICustomDestinationList, 0x6332debf, 0x87b5, 0x4670, 0x90,0xc0, 0x5e,0x57,0xb4,0x08,0xa4,0x9e)
29890 #endif
29891 #else
29892 typedef struct ICustomDestinationListVtbl {
29893     BEGIN_INTERFACE
29894 
29895     /*** IUnknown methods ***/
29896     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
29897         ICustomDestinationList *This,
29898         REFIID riid,
29899         void **ppvObject);
29900 
29901     ULONG (STDMETHODCALLTYPE *AddRef)(
29902         ICustomDestinationList *This);
29903 
29904     ULONG (STDMETHODCALLTYPE *Release)(
29905         ICustomDestinationList *This);
29906 
29907     /*** ICustomDestinationList methods ***/
29908     HRESULT (STDMETHODCALLTYPE *SetAppID)(
29909         ICustomDestinationList *This,
29910         LPCWSTR pszAppID);
29911 
29912     HRESULT (STDMETHODCALLTYPE *BeginList)(
29913         ICustomDestinationList *This,
29914         UINT *pcMinSlots,
29915         REFIID riid,
29916         void **ppv);
29917 
29918     HRESULT (STDMETHODCALLTYPE *AppendCategory)(
29919         ICustomDestinationList *This,
29920         LPCWSTR pszCategory,
29921         IObjectArray *poa);
29922 
29923     HRESULT (STDMETHODCALLTYPE *AppendKnownCategory)(
29924         ICustomDestinationList *This,
29925         KNOWNDESTCATEGORY category);
29926 
29927     HRESULT (STDMETHODCALLTYPE *AddUserTasks)(
29928         ICustomDestinationList *This,
29929         IObjectArray *poa);
29930 
29931     HRESULT (STDMETHODCALLTYPE *CommitList)(
29932         ICustomDestinationList *This);
29933 
29934     HRESULT (STDMETHODCALLTYPE *GetRemovedDestinations)(
29935         ICustomDestinationList *This,
29936         REFIID riid,
29937         void **ppv);
29938 
29939     HRESULT (STDMETHODCALLTYPE *DeleteList)(
29940         ICustomDestinationList *This,
29941         LPCWSTR pszAppID);
29942 
29943     HRESULT (STDMETHODCALLTYPE *AbortList)(
29944         ICustomDestinationList *This);
29945 
29946     END_INTERFACE
29947 } ICustomDestinationListVtbl;
29948 
29949 interface ICustomDestinationList {
29950     CONST_VTBL ICustomDestinationListVtbl* lpVtbl;
29951 };
29952 
29953 #ifdef COBJMACROS
29954 #ifndef WIDL_C_INLINE_WRAPPERS
29955 /*** IUnknown methods ***/
29956 #define ICustomDestinationList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
29957 #define ICustomDestinationList_AddRef(This) (This)->lpVtbl->AddRef(This)
29958 #define ICustomDestinationList_Release(This) (This)->lpVtbl->Release(This)
29959 /*** ICustomDestinationList methods ***/
29960 #define ICustomDestinationList_SetAppID(This,pszAppID) (This)->lpVtbl->SetAppID(This,pszAppID)
29961 #define ICustomDestinationList_BeginList(This,pcMinSlots,riid,ppv) (This)->lpVtbl->BeginList(This,pcMinSlots,riid,ppv)
29962 #define ICustomDestinationList_AppendCategory(This,pszCategory,poa) (This)->lpVtbl->AppendCategory(This,pszCategory,poa)
29963 #define ICustomDestinationList_AppendKnownCategory(This,category) (This)->lpVtbl->AppendKnownCategory(This,category)
29964 #define ICustomDestinationList_AddUserTasks(This,poa) (This)->lpVtbl->AddUserTasks(This,poa)
29965 #define ICustomDestinationList_CommitList(This) (This)->lpVtbl->CommitList(This)
29966 #define ICustomDestinationList_GetRemovedDestinations(This,riid,ppv) (This)->lpVtbl->GetRemovedDestinations(This,riid,ppv)
29967 #define ICustomDestinationList_DeleteList(This,pszAppID) (This)->lpVtbl->DeleteList(This,pszAppID)
29968 #define ICustomDestinationList_AbortList(This) (This)->lpVtbl->AbortList(This)
29969 #else
29970 /*** IUnknown methods ***/
29971 static FORCEINLINE HRESULT ICustomDestinationList_QueryInterface(ICustomDestinationList* This,REFIID riid,void **ppvObject) {
29972     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
29973 }
29974 static FORCEINLINE ULONG ICustomDestinationList_AddRef(ICustomDestinationList* This) {
29975     return This->lpVtbl->AddRef(This);
29976 }
29977 static FORCEINLINE ULONG ICustomDestinationList_Release(ICustomDestinationList* This) {
29978     return This->lpVtbl->Release(This);
29979 }
29980 /*** ICustomDestinationList methods ***/
29981 static FORCEINLINE HRESULT ICustomDestinationList_SetAppID(ICustomDestinationList* This,LPCWSTR pszAppID) {
29982     return This->lpVtbl->SetAppID(This,pszAppID);
29983 }
29984 static FORCEINLINE HRESULT ICustomDestinationList_BeginList(ICustomDestinationList* This,UINT *pcMinSlots,REFIID riid,void **ppv) {
29985     return This->lpVtbl->BeginList(This,pcMinSlots,riid,ppv);
29986 }
29987 static FORCEINLINE HRESULT ICustomDestinationList_AppendCategory(ICustomDestinationList* This,LPCWSTR pszCategory,IObjectArray *poa) {
29988     return This->lpVtbl->AppendCategory(This,pszCategory,poa);
29989 }
29990 static FORCEINLINE HRESULT ICustomDestinationList_AppendKnownCategory(ICustomDestinationList* This,KNOWNDESTCATEGORY category) {
29991     return This->lpVtbl->AppendKnownCategory(This,category);
29992 }
29993 static FORCEINLINE HRESULT ICustomDestinationList_AddUserTasks(ICustomDestinationList* This,IObjectArray *poa) {
29994     return This->lpVtbl->AddUserTasks(This,poa);
29995 }
29996 static FORCEINLINE HRESULT ICustomDestinationList_CommitList(ICustomDestinationList* This) {
29997     return This->lpVtbl->CommitList(This);
29998 }
29999 static FORCEINLINE HRESULT ICustomDestinationList_GetRemovedDestinations(ICustomDestinationList* This,REFIID riid,void **ppv) {
30000     return This->lpVtbl->GetRemovedDestinations(This,riid,ppv);
30001 }
30002 static FORCEINLINE HRESULT ICustomDestinationList_DeleteList(ICustomDestinationList* This,LPCWSTR pszAppID) {
30003     return This->lpVtbl->DeleteList(This,pszAppID);
30004 }
30005 static FORCEINLINE HRESULT ICustomDestinationList_AbortList(ICustomDestinationList* This) {
30006     return This->lpVtbl->AbortList(This);
30007 }
30008 #endif
30009 #endif
30010 
30011 #endif
30012 
30013 
30014 #endif  /* __ICustomDestinationList_INTERFACE_DEFINED__ */
30015 
30016 
30017 /*****************************************************************************
30018  * IApplicationDestinations interface
30019  */
30020 #ifndef __IApplicationDestinations_INTERFACE_DEFINED__
30021 #define __IApplicationDestinations_INTERFACE_DEFINED__
30022 
30023 DEFINE_GUID(IID_IApplicationDestinations, 0x12337d35, 0x94c6, 0x48a0, 0xbc,0xe7, 0x6a,0x9c,0x69,0xd4,0xd6,0x00);
30024 #if defined(__cplusplus) && !defined(CINTERFACE)
30025 MIDL_INTERFACE("12337d35-94c6-48a0-bce7-6a9c69d4d600")
30026 IApplicationDestinations : public IUnknown
30027 {
30028     virtual HRESULT STDMETHODCALLTYPE SetAppID(
30029         LPCWSTR pszAppID) = 0;
30030 
30031     virtual HRESULT STDMETHODCALLTYPE RemoveDestination(
30032         IUnknown *punk) = 0;
30033 
30034     virtual HRESULT STDMETHODCALLTYPE RemoveAllDestinations(
30035         ) = 0;
30036 
30037 };
30038 #ifdef __CRT_UUID_DECL
30039 __CRT_UUID_DECL(IApplicationDestinations, 0x12337d35, 0x94c6, 0x48a0, 0xbc,0xe7, 0x6a,0x9c,0x69,0xd4,0xd6,0x00)
30040 #endif
30041 #else
30042 typedef struct IApplicationDestinationsVtbl {
30043     BEGIN_INTERFACE
30044 
30045     /*** IUnknown methods ***/
30046     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
30047         IApplicationDestinations *This,
30048         REFIID riid,
30049         void **ppvObject);
30050 
30051     ULONG (STDMETHODCALLTYPE *AddRef)(
30052         IApplicationDestinations *This);
30053 
30054     ULONG (STDMETHODCALLTYPE *Release)(
30055         IApplicationDestinations *This);
30056 
30057     /*** IApplicationDestinations methods ***/
30058     HRESULT (STDMETHODCALLTYPE *SetAppID)(
30059         IApplicationDestinations *This,
30060         LPCWSTR pszAppID);
30061 
30062     HRESULT (STDMETHODCALLTYPE *RemoveDestination)(
30063         IApplicationDestinations *This,
30064         IUnknown *punk);
30065 
30066     HRESULT (STDMETHODCALLTYPE *RemoveAllDestinations)(
30067         IApplicationDestinations *This);
30068 
30069     END_INTERFACE
30070 } IApplicationDestinationsVtbl;
30071 
30072 interface IApplicationDestinations {
30073     CONST_VTBL IApplicationDestinationsVtbl* lpVtbl;
30074 };
30075 
30076 #ifdef COBJMACROS
30077 #ifndef WIDL_C_INLINE_WRAPPERS
30078 /*** IUnknown methods ***/
30079 #define IApplicationDestinations_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
30080 #define IApplicationDestinations_AddRef(This) (This)->lpVtbl->AddRef(This)
30081 #define IApplicationDestinations_Release(This) (This)->lpVtbl->Release(This)
30082 /*** IApplicationDestinations methods ***/
30083 #define IApplicationDestinations_SetAppID(This,pszAppID) (This)->lpVtbl->SetAppID(This,pszAppID)
30084 #define IApplicationDestinations_RemoveDestination(This,punk) (This)->lpVtbl->RemoveDestination(This,punk)
30085 #define IApplicationDestinations_RemoveAllDestinations(This) (This)->lpVtbl->RemoveAllDestinations(This)
30086 #else
30087 /*** IUnknown methods ***/
30088 static FORCEINLINE HRESULT IApplicationDestinations_QueryInterface(IApplicationDestinations* This,REFIID riid,void **ppvObject) {
30089     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
30090 }
30091 static FORCEINLINE ULONG IApplicationDestinations_AddRef(IApplicationDestinations* This) {
30092     return This->lpVtbl->AddRef(This);
30093 }
30094 static FORCEINLINE ULONG IApplicationDestinations_Release(IApplicationDestinations* This) {
30095     return This->lpVtbl->Release(This);
30096 }
30097 /*** IApplicationDestinations methods ***/
30098 static FORCEINLINE HRESULT IApplicationDestinations_SetAppID(IApplicationDestinations* This,LPCWSTR pszAppID) {
30099     return This->lpVtbl->SetAppID(This,pszAppID);
30100 }
30101 static FORCEINLINE HRESULT IApplicationDestinations_RemoveDestination(IApplicationDestinations* This,IUnknown *punk) {
30102     return This->lpVtbl->RemoveDestination(This,punk);
30103 }
30104 static FORCEINLINE HRESULT IApplicationDestinations_RemoveAllDestinations(IApplicationDestinations* This) {
30105     return This->lpVtbl->RemoveAllDestinations(This);
30106 }
30107 #endif
30108 #endif
30109 
30110 #endif
30111 
30112 
30113 #endif  /* __IApplicationDestinations_INTERFACE_DEFINED__ */
30114 
30115 
30116 /*****************************************************************************
30117  * IApplicationDocumentLists interface
30118  */
30119 #ifndef __IApplicationDocumentLists_INTERFACE_DEFINED__
30120 #define __IApplicationDocumentLists_INTERFACE_DEFINED__
30121 
30122 typedef enum APPDOCLISTTYPE {
30123     ADLT_RECENT = 0,
30124     ADLT_FREQUENT = 1
30125 } APPDOCLISTTYPE;
30126 
30127 DEFINE_GUID(IID_IApplicationDocumentLists, 0x3c594f9f, 0x9f30, 0x47a1, 0x97,0x9a, 0xc9,0xe8,0x3d,0x3d,0x0a,0x06);
30128 #if defined(__cplusplus) && !defined(CINTERFACE)
30129 MIDL_INTERFACE("3c594f9f-9f30-47a1-979a-c9e83d3d0a06")
30130 IApplicationDocumentLists : public IUnknown
30131 {
30132     virtual HRESULT STDMETHODCALLTYPE SetAppID(
30133         LPCWSTR pszAppID) = 0;
30134 
30135     virtual HRESULT STDMETHODCALLTYPE GetList(
30136         APPDOCLISTTYPE listtype,
30137         UINT cItemsDesired,
30138         REFIID riid,
30139         void **ppv) = 0;
30140 
30141 };
30142 #ifdef __CRT_UUID_DECL
30143 __CRT_UUID_DECL(IApplicationDocumentLists, 0x3c594f9f, 0x9f30, 0x47a1, 0x97,0x9a, 0xc9,0xe8,0x3d,0x3d,0x0a,0x06)
30144 #endif
30145 #else
30146 typedef struct IApplicationDocumentListsVtbl {
30147     BEGIN_INTERFACE
30148 
30149     /*** IUnknown methods ***/
30150     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
30151         IApplicationDocumentLists *This,
30152         REFIID riid,
30153         void **ppvObject);
30154 
30155     ULONG (STDMETHODCALLTYPE *AddRef)(
30156         IApplicationDocumentLists *This);
30157 
30158     ULONG (STDMETHODCALLTYPE *Release)(
30159         IApplicationDocumentLists *This);
30160 
30161     /*** IApplicationDocumentLists methods ***/
30162     HRESULT (STDMETHODCALLTYPE *SetAppID)(
30163         IApplicationDocumentLists *This,
30164         LPCWSTR pszAppID);
30165 
30166     HRESULT (STDMETHODCALLTYPE *GetList)(
30167         IApplicationDocumentLists *This,
30168         APPDOCLISTTYPE listtype,
30169         UINT cItemsDesired,
30170         REFIID riid,
30171         void **ppv);
30172 
30173     END_INTERFACE
30174 } IApplicationDocumentListsVtbl;
30175 
30176 interface IApplicationDocumentLists {
30177     CONST_VTBL IApplicationDocumentListsVtbl* lpVtbl;
30178 };
30179 
30180 #ifdef COBJMACROS
30181 #ifndef WIDL_C_INLINE_WRAPPERS
30182 /*** IUnknown methods ***/
30183 #define IApplicationDocumentLists_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
30184 #define IApplicationDocumentLists_AddRef(This) (This)->lpVtbl->AddRef(This)
30185 #define IApplicationDocumentLists_Release(This) (This)->lpVtbl->Release(This)
30186 /*** IApplicationDocumentLists methods ***/
30187 #define IApplicationDocumentLists_SetAppID(This,pszAppID) (This)->lpVtbl->SetAppID(This,pszAppID)
30188 #define IApplicationDocumentLists_GetList(This,listtype,cItemsDesired,riid,ppv) (This)->lpVtbl->GetList(This,listtype,cItemsDesired,riid,ppv)
30189 #else
30190 /*** IUnknown methods ***/
30191 static FORCEINLINE HRESULT IApplicationDocumentLists_QueryInterface(IApplicationDocumentLists* This,REFIID riid,void **ppvObject) {
30192     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
30193 }
30194 static FORCEINLINE ULONG IApplicationDocumentLists_AddRef(IApplicationDocumentLists* This) {
30195     return This->lpVtbl->AddRef(This);
30196 }
30197 static FORCEINLINE ULONG IApplicationDocumentLists_Release(IApplicationDocumentLists* This) {
30198     return This->lpVtbl->Release(This);
30199 }
30200 /*** IApplicationDocumentLists methods ***/
30201 static FORCEINLINE HRESULT IApplicationDocumentLists_SetAppID(IApplicationDocumentLists* This,LPCWSTR pszAppID) {
30202     return This->lpVtbl->SetAppID(This,pszAppID);
30203 }
30204 static FORCEINLINE HRESULT IApplicationDocumentLists_GetList(IApplicationDocumentLists* This,APPDOCLISTTYPE listtype,UINT cItemsDesired,REFIID riid,void **ppv) {
30205     return This->lpVtbl->GetList(This,listtype,cItemsDesired,riid,ppv);
30206 }
30207 #endif
30208 #endif
30209 
30210 #endif
30211 
30212 
30213 #endif  /* __IApplicationDocumentLists_INTERFACE_DEFINED__ */
30214 
30215 
30216 /*****************************************************************************
30217  * IObjectWithAppUserModelID interface
30218  */
30219 #ifndef __IObjectWithAppUserModelID_INTERFACE_DEFINED__
30220 #define __IObjectWithAppUserModelID_INTERFACE_DEFINED__
30221 
30222 DEFINE_GUID(IID_IObjectWithAppUserModelID, 0x36db0196, 0x9665, 0x46d1, 0x9b,0xa7, 0xd3,0x70,0x9e,0xec,0xf9,0xed);
30223 #if defined(__cplusplus) && !defined(CINTERFACE)
30224 MIDL_INTERFACE("36db0196-9665-46d1-9ba7-d3709eecf9ed")
30225 IObjectWithAppUserModelID : public IUnknown
30226 {
30227     virtual HRESULT STDMETHODCALLTYPE SetAppID(
30228         LPCWSTR pszAppID) = 0;
30229 
30230     virtual HRESULT STDMETHODCALLTYPE GetAppID(
30231         LPWSTR *ppszAppID) = 0;
30232 
30233 };
30234 #ifdef __CRT_UUID_DECL
30235 __CRT_UUID_DECL(IObjectWithAppUserModelID, 0x36db0196, 0x9665, 0x46d1, 0x9b,0xa7, 0xd3,0x70,0x9e,0xec,0xf9,0xed)
30236 #endif
30237 #else
30238 typedef struct IObjectWithAppUserModelIDVtbl {
30239     BEGIN_INTERFACE
30240 
30241     /*** IUnknown methods ***/
30242     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
30243         IObjectWithAppUserModelID *This,
30244         REFIID riid,
30245         void **ppvObject);
30246 
30247     ULONG (STDMETHODCALLTYPE *AddRef)(
30248         IObjectWithAppUserModelID *This);
30249 
30250     ULONG (STDMETHODCALLTYPE *Release)(
30251         IObjectWithAppUserModelID *This);
30252 
30253     /*** IObjectWithAppUserModelID methods ***/
30254     HRESULT (STDMETHODCALLTYPE *SetAppID)(
30255         IObjectWithAppUserModelID *This,
30256         LPCWSTR pszAppID);
30257 
30258     HRESULT (STDMETHODCALLTYPE *GetAppID)(
30259         IObjectWithAppUserModelID *This,
30260         LPWSTR *ppszAppID);
30261 
30262     END_INTERFACE
30263 } IObjectWithAppUserModelIDVtbl;
30264 
30265 interface IObjectWithAppUserModelID {
30266     CONST_VTBL IObjectWithAppUserModelIDVtbl* lpVtbl;
30267 };
30268 
30269 #ifdef COBJMACROS
30270 #ifndef WIDL_C_INLINE_WRAPPERS
30271 /*** IUnknown methods ***/
30272 #define IObjectWithAppUserModelID_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
30273 #define IObjectWithAppUserModelID_AddRef(This) (This)->lpVtbl->AddRef(This)
30274 #define IObjectWithAppUserModelID_Release(This) (This)->lpVtbl->Release(This)
30275 /*** IObjectWithAppUserModelID methods ***/
30276 #define IObjectWithAppUserModelID_SetAppID(This,pszAppID) (This)->lpVtbl->SetAppID(This,pszAppID)
30277 #define IObjectWithAppUserModelID_GetAppID(This,ppszAppID) (This)->lpVtbl->GetAppID(This,ppszAppID)
30278 #else
30279 /*** IUnknown methods ***/
30280 static FORCEINLINE HRESULT IObjectWithAppUserModelID_QueryInterface(IObjectWithAppUserModelID* This,REFIID riid,void **ppvObject) {
30281     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
30282 }
30283 static FORCEINLINE ULONG IObjectWithAppUserModelID_AddRef(IObjectWithAppUserModelID* This) {
30284     return This->lpVtbl->AddRef(This);
30285 }
30286 static FORCEINLINE ULONG IObjectWithAppUserModelID_Release(IObjectWithAppUserModelID* This) {
30287     return This->lpVtbl->Release(This);
30288 }
30289 /*** IObjectWithAppUserModelID methods ***/
30290 static FORCEINLINE HRESULT IObjectWithAppUserModelID_SetAppID(IObjectWithAppUserModelID* This,LPCWSTR pszAppID) {
30291     return This->lpVtbl->SetAppID(This,pszAppID);
30292 }
30293 static FORCEINLINE HRESULT IObjectWithAppUserModelID_GetAppID(IObjectWithAppUserModelID* This,LPWSTR *ppszAppID) {
30294     return This->lpVtbl->GetAppID(This,ppszAppID);
30295 }
30296 #endif
30297 #endif
30298 
30299 #endif
30300 
30301 
30302 #endif  /* __IObjectWithAppUserModelID_INTERFACE_DEFINED__ */
30303 
30304 
30305 /*****************************************************************************
30306  * IObjectWithProgID interface
30307  */
30308 #ifndef __IObjectWithProgID_INTERFACE_DEFINED__
30309 #define __IObjectWithProgID_INTERFACE_DEFINED__
30310 
30311 DEFINE_GUID(IID_IObjectWithProgID, 0x71e806fb, 0x8dee, 0x46fc, 0xbf,0x8c, 0x77,0x48,0xa8,0xa1,0xae,0x13);
30312 #if defined(__cplusplus) && !defined(CINTERFACE)
30313 MIDL_INTERFACE("71e806fb-8dee-46fc-bf8c-7748a8a1ae13")
30314 IObjectWithProgID : public IUnknown
30315 {
30316     virtual HRESULT STDMETHODCALLTYPE SetProgID(
30317         LPCWSTR pszProgID) = 0;
30318 
30319     virtual HRESULT STDMETHODCALLTYPE GetProgID(
30320         LPWSTR *ppszProgID) = 0;
30321 
30322 };
30323 #ifdef __CRT_UUID_DECL
30324 __CRT_UUID_DECL(IObjectWithProgID, 0x71e806fb, 0x8dee, 0x46fc, 0xbf,0x8c, 0x77,0x48,0xa8,0xa1,0xae,0x13)
30325 #endif
30326 #else
30327 typedef struct IObjectWithProgIDVtbl {
30328     BEGIN_INTERFACE
30329 
30330     /*** IUnknown methods ***/
30331     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
30332         IObjectWithProgID *This,
30333         REFIID riid,
30334         void **ppvObject);
30335 
30336     ULONG (STDMETHODCALLTYPE *AddRef)(
30337         IObjectWithProgID *This);
30338 
30339     ULONG (STDMETHODCALLTYPE *Release)(
30340         IObjectWithProgID *This);
30341 
30342     /*** IObjectWithProgID methods ***/
30343     HRESULT (STDMETHODCALLTYPE *SetProgID)(
30344         IObjectWithProgID *This,
30345         LPCWSTR pszProgID);
30346 
30347     HRESULT (STDMETHODCALLTYPE *GetProgID)(
30348         IObjectWithProgID *This,
30349         LPWSTR *ppszProgID);
30350 
30351     END_INTERFACE
30352 } IObjectWithProgIDVtbl;
30353 
30354 interface IObjectWithProgID {
30355     CONST_VTBL IObjectWithProgIDVtbl* lpVtbl;
30356 };
30357 
30358 #ifdef COBJMACROS
30359 #ifndef WIDL_C_INLINE_WRAPPERS
30360 /*** IUnknown methods ***/
30361 #define IObjectWithProgID_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
30362 #define IObjectWithProgID_AddRef(This) (This)->lpVtbl->AddRef(This)
30363 #define IObjectWithProgID_Release(This) (This)->lpVtbl->Release(This)
30364 /*** IObjectWithProgID methods ***/
30365 #define IObjectWithProgID_SetProgID(This,pszProgID) (This)->lpVtbl->SetProgID(This,pszProgID)
30366 #define IObjectWithProgID_GetProgID(This,ppszProgID) (This)->lpVtbl->GetProgID(This,ppszProgID)
30367 #else
30368 /*** IUnknown methods ***/
30369 static FORCEINLINE HRESULT IObjectWithProgID_QueryInterface(IObjectWithProgID* This,REFIID riid,void **ppvObject) {
30370     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
30371 }
30372 static FORCEINLINE ULONG IObjectWithProgID_AddRef(IObjectWithProgID* This) {
30373     return This->lpVtbl->AddRef(This);
30374 }
30375 static FORCEINLINE ULONG IObjectWithProgID_Release(IObjectWithProgID* This) {
30376     return This->lpVtbl->Release(This);
30377 }
30378 /*** IObjectWithProgID methods ***/
30379 static FORCEINLINE HRESULT IObjectWithProgID_SetProgID(IObjectWithProgID* This,LPCWSTR pszProgID) {
30380     return This->lpVtbl->SetProgID(This,pszProgID);
30381 }
30382 static FORCEINLINE HRESULT IObjectWithProgID_GetProgID(IObjectWithProgID* This,LPWSTR *ppszProgID) {
30383     return This->lpVtbl->GetProgID(This,ppszProgID);
30384 }
30385 #endif
30386 #endif
30387 
30388 #endif
30389 
30390 
30391 #endif  /* __IObjectWithProgID_INTERFACE_DEFINED__ */
30392 
30393 
30394 /*****************************************************************************
30395  * IUpdateIDList interface
30396  */
30397 #ifndef __IUpdateIDList_INTERFACE_DEFINED__
30398 #define __IUpdateIDList_INTERFACE_DEFINED__
30399 
30400 DEFINE_GUID(IID_IUpdateIDList, 0x6589b6d2, 0x5f8d, 0x4b9e, 0xb7,0xe0, 0x23,0xcd,0xd9,0x71,0x7d,0x8c);
30401 #if defined(__cplusplus) && !defined(CINTERFACE)
30402 MIDL_INTERFACE("6589b6d2-5f8d-4b9e-b7e0-23cdd9717d8c")
30403 IUpdateIDList : public IUnknown
30404 {
30405     virtual HRESULT STDMETHODCALLTYPE Update(
30406         IBindCtx *pbc,
30407         PCUITEMID_CHILD pidlIn,
30408         PITEMID_CHILD *ppidlOut) = 0;
30409 
30410 };
30411 #ifdef __CRT_UUID_DECL
30412 __CRT_UUID_DECL(IUpdateIDList, 0x6589b6d2, 0x5f8d, 0x4b9e, 0xb7,0xe0, 0x23,0xcd,0xd9,0x71,0x7d,0x8c)
30413 #endif
30414 #else
30415 typedef struct IUpdateIDListVtbl {
30416     BEGIN_INTERFACE
30417 
30418     /*** IUnknown methods ***/
30419     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
30420         IUpdateIDList *This,
30421         REFIID riid,
30422         void **ppvObject);
30423 
30424     ULONG (STDMETHODCALLTYPE *AddRef)(
30425         IUpdateIDList *This);
30426 
30427     ULONG (STDMETHODCALLTYPE *Release)(
30428         IUpdateIDList *This);
30429 
30430     /*** IUpdateIDList methods ***/
30431     HRESULT (STDMETHODCALLTYPE *Update)(
30432         IUpdateIDList *This,
30433         IBindCtx *pbc,
30434         PCUITEMID_CHILD pidlIn,
30435         PITEMID_CHILD *ppidlOut);
30436 
30437     END_INTERFACE
30438 } IUpdateIDListVtbl;
30439 
30440 interface IUpdateIDList {
30441     CONST_VTBL IUpdateIDListVtbl* lpVtbl;
30442 };
30443 
30444 #ifdef COBJMACROS
30445 #ifndef WIDL_C_INLINE_WRAPPERS
30446 /*** IUnknown methods ***/
30447 #define IUpdateIDList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
30448 #define IUpdateIDList_AddRef(This) (This)->lpVtbl->AddRef(This)
30449 #define IUpdateIDList_Release(This) (This)->lpVtbl->Release(This)
30450 /*** IUpdateIDList methods ***/
30451 #define IUpdateIDList_Update(This,pbc,pidlIn,ppidlOut) (This)->lpVtbl->Update(This,pbc,pidlIn,ppidlOut)
30452 #else
30453 /*** IUnknown methods ***/
30454 static FORCEINLINE HRESULT IUpdateIDList_QueryInterface(IUpdateIDList* This,REFIID riid,void **ppvObject) {
30455     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
30456 }
30457 static FORCEINLINE ULONG IUpdateIDList_AddRef(IUpdateIDList* This) {
30458     return This->lpVtbl->AddRef(This);
30459 }
30460 static FORCEINLINE ULONG IUpdateIDList_Release(IUpdateIDList* This) {
30461     return This->lpVtbl->Release(This);
30462 }
30463 /*** IUpdateIDList methods ***/
30464 static FORCEINLINE HRESULT IUpdateIDList_Update(IUpdateIDList* This,IBindCtx *pbc,PCUITEMID_CHILD pidlIn,PITEMID_CHILD *ppidlOut) {
30465     return This->lpVtbl->Update(This,pbc,pidlIn,ppidlOut);
30466 }
30467 #endif
30468 #endif
30469 
30470 #endif
30471 
30472 
30473 #endif  /* __IUpdateIDList_INTERFACE_DEFINED__ */
30474 
30475 
30476 SHSTDAPI SetCurrentProcessExplicitAppUserModelID(PCWSTR AppID);
30477 SHSTDAPI GetCurrentProcessExplicitAppUserModelID(PWSTR *AppID);
30478 #endif
30479 
30480 /*****************************************************************************
30481  * IDesktopGadget interface
30482  */
30483 #ifndef __IDesktopGadget_INTERFACE_DEFINED__
30484 #define __IDesktopGadget_INTERFACE_DEFINED__
30485 
30486 DEFINE_GUID(IID_IDesktopGadget, 0xc1646bc4, 0xf298, 0x4f91, 0xa2,0x04, 0xeb,0x2d,0xd1,0x70,0x9d,0x1a);
30487 #if defined(__cplusplus) && !defined(CINTERFACE)
30488 MIDL_INTERFACE("c1646bc4-f298-4f91-a204-eb2dd1709d1a")
30489 IDesktopGadget : public IUnknown
30490 {
30491     virtual HRESULT STDMETHODCALLTYPE RunGadget(
30492         LPCWSTR gadgetPath) = 0;
30493 
30494 };
30495 #ifdef __CRT_UUID_DECL
30496 __CRT_UUID_DECL(IDesktopGadget, 0xc1646bc4, 0xf298, 0x4f91, 0xa2,0x04, 0xeb,0x2d,0xd1,0x70,0x9d,0x1a)
30497 #endif
30498 #else
30499 typedef struct IDesktopGadgetVtbl {
30500     BEGIN_INTERFACE
30501 
30502     /*** IUnknown methods ***/
30503     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
30504         IDesktopGadget *This,
30505         REFIID riid,
30506         void **ppvObject);
30507 
30508     ULONG (STDMETHODCALLTYPE *AddRef)(
30509         IDesktopGadget *This);
30510 
30511     ULONG (STDMETHODCALLTYPE *Release)(
30512         IDesktopGadget *This);
30513 
30514     /*** IDesktopGadget methods ***/
30515     HRESULT (STDMETHODCALLTYPE *RunGadget)(
30516         IDesktopGadget *This,
30517         LPCWSTR gadgetPath);
30518 
30519     END_INTERFACE
30520 } IDesktopGadgetVtbl;
30521 
30522 interface IDesktopGadget {
30523     CONST_VTBL IDesktopGadgetVtbl* lpVtbl;
30524 };
30525 
30526 #ifdef COBJMACROS
30527 #ifndef WIDL_C_INLINE_WRAPPERS
30528 /*** IUnknown methods ***/
30529 #define IDesktopGadget_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
30530 #define IDesktopGadget_AddRef(This) (This)->lpVtbl->AddRef(This)
30531 #define IDesktopGadget_Release(This) (This)->lpVtbl->Release(This)
30532 /*** IDesktopGadget methods ***/
30533 #define IDesktopGadget_RunGadget(This,gadgetPath) (This)->lpVtbl->RunGadget(This,gadgetPath)
30534 #else
30535 /*** IUnknown methods ***/
30536 static FORCEINLINE HRESULT IDesktopGadget_QueryInterface(IDesktopGadget* This,REFIID riid,void **ppvObject) {
30537     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
30538 }
30539 static FORCEINLINE ULONG IDesktopGadget_AddRef(IDesktopGadget* This) {
30540     return This->lpVtbl->AddRef(This);
30541 }
30542 static FORCEINLINE ULONG IDesktopGadget_Release(IDesktopGadget* This) {
30543     return This->lpVtbl->Release(This);
30544 }
30545 /*** IDesktopGadget methods ***/
30546 static FORCEINLINE HRESULT IDesktopGadget_RunGadget(IDesktopGadget* This,LPCWSTR gadgetPath) {
30547     return This->lpVtbl->RunGadget(This,gadgetPath);
30548 }
30549 #endif
30550 #endif
30551 
30552 #endif
30553 
30554 
30555 #endif  /* __IDesktopGadget_INTERFACE_DEFINED__ */
30556 
30557 
30558 #if NTDDI_VERSION >= NTDDI_WIN8
30559 /*****************************************************************************
30560  * IDesktopWallpaper interface
30561  */
30562 #ifndef __IDesktopWallpaper_INTERFACE_DEFINED__
30563 #define __IDesktopWallpaper_INTERFACE_DEFINED__
30564 
30565 typedef enum DESKTOP_SLIDESHOW_OPTIONS {
30566     DSO_SHUFFLEIMAGES = 0x1
30567 } DESKTOP_SLIDESHOW_OPTIONS;
30568 
30569 DEFINE_ENUM_FLAG_OPERATORS(DESKTOP_SLIDESHOW_OPTIONS);
30570 
30571 typedef enum DESKTOP_SLIDESHOW_STATE {
30572     DSS_ENABLED = 0x1,
30573     DSS_SLIDESHOW = 0x2,
30574     DSS_DISABLED_BY_REMOTE_SESSION = 0x4
30575 } DESKTOP_SLIDESHOW_STATE;
30576 
30577 DEFINE_ENUM_FLAG_OPERATORS(DESKTOP_SLIDESHOW_STATE);
30578 
30579 typedef enum DESKTOP_SLIDESHOW_DIRECTION {
30580     DSD_FORWARD = 0,
30581     DSD_BACKWARD = 1
30582 } DESKTOP_SLIDESHOW_DIRECTION;
30583 
30584 typedef enum DESKTOP_WALLPAPER_POSITION {
30585     DWPOS_CENTER = 0,
30586     DWPOS_TILE = 1,
30587     DWPOS_STRETCH = 2,
30588     DWPOS_FIT = 3,
30589     DWPOS_FILL = 4,
30590     DWPOS_SPAN = 5
30591 } DESKTOP_WALLPAPER_POSITION;
30592 
30593 DEFINE_GUID(IID_IDesktopWallpaper, 0xb92b56a9, 0x8b55, 0x4e14, 0x9a,0x89, 0x01,0x99,0xbb,0xb6,0xf9,0x3b);
30594 #if defined(__cplusplus) && !defined(CINTERFACE)
30595 MIDL_INTERFACE("b92b56a9-8b55-4e14-9a89-0199bbb6f93b")
30596 IDesktopWallpaper : public IUnknown
30597 {
30598     virtual HRESULT STDMETHODCALLTYPE SetWallpaper(
30599         LPCWSTR monitorID,
30600         LPCWSTR wallpaper) = 0;
30601 
30602     virtual HRESULT STDMETHODCALLTYPE GetWallpaper(
30603         LPCWSTR monitorID,
30604         LPWSTR *wallpaper) = 0;
30605 
30606     virtual HRESULT STDMETHODCALLTYPE GetMonitorDevicePathAt(
30607         UINT monitorIndex,
30608         LPWSTR *monitorID) = 0;
30609 
30610     virtual HRESULT STDMETHODCALLTYPE GetMonitorDevicePathCount(
30611         UINT *count) = 0;
30612 
30613     virtual HRESULT STDMETHODCALLTYPE GetMonitorRECT(
30614         LPCWSTR monitorID,
30615         RECT *displayRect) = 0;
30616 
30617     virtual HRESULT STDMETHODCALLTYPE SetBackgroundColor(
30618         COLORREF color) = 0;
30619 
30620     virtual HRESULT STDMETHODCALLTYPE GetBackgroundColor(
30621         COLORREF *color) = 0;
30622 
30623     virtual HRESULT STDMETHODCALLTYPE SetPosition(
30624         DESKTOP_WALLPAPER_POSITION position) = 0;
30625 
30626     virtual HRESULT STDMETHODCALLTYPE GetPosition(
30627         DESKTOP_WALLPAPER_POSITION *position) = 0;
30628 
30629     virtual HRESULT STDMETHODCALLTYPE SetSlideshow(
30630         IShellItemArray *items) = 0;
30631 
30632     virtual HRESULT STDMETHODCALLTYPE GetSlideshow(
30633         IShellItemArray **items) = 0;
30634 
30635     virtual HRESULT STDMETHODCALLTYPE SetSlideshowOptions(
30636         DESKTOP_SLIDESHOW_OPTIONS options,
30637         UINT slideshowTick) = 0;
30638 
30639     virtual HRESULT STDMETHODCALLTYPE GetSlideshowOptions(
30640         DESKTOP_SLIDESHOW_OPTIONS *options,
30641         UINT *slideshowTick) = 0;
30642 
30643     virtual HRESULT STDMETHODCALLTYPE AdvanceSlideshow(
30644         LPCWSTR monitorID,
30645         DESKTOP_SLIDESHOW_DIRECTION direction) = 0;
30646 
30647     virtual HRESULT STDMETHODCALLTYPE GetStatus(
30648         DESKTOP_SLIDESHOW_STATE *state) = 0;
30649 
30650     virtual HRESULT STDMETHODCALLTYPE Enable(
30651         WINBOOL enable) = 0;
30652 
30653 };
30654 #ifdef __CRT_UUID_DECL
30655 __CRT_UUID_DECL(IDesktopWallpaper, 0xb92b56a9, 0x8b55, 0x4e14, 0x9a,0x89, 0x01,0x99,0xbb,0xb6,0xf9,0x3b)
30656 #endif
30657 #else
30658 typedef struct IDesktopWallpaperVtbl {
30659     BEGIN_INTERFACE
30660 
30661     /*** IUnknown methods ***/
30662     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
30663         IDesktopWallpaper *This,
30664         REFIID riid,
30665         void **ppvObject);
30666 
30667     ULONG (STDMETHODCALLTYPE *AddRef)(
30668         IDesktopWallpaper *This);
30669 
30670     ULONG (STDMETHODCALLTYPE *Release)(
30671         IDesktopWallpaper *This);
30672 
30673     /*** IDesktopWallpaper methods ***/
30674     HRESULT (STDMETHODCALLTYPE *SetWallpaper)(
30675         IDesktopWallpaper *This,
30676         LPCWSTR monitorID,
30677         LPCWSTR wallpaper);
30678 
30679     HRESULT (STDMETHODCALLTYPE *GetWallpaper)(
30680         IDesktopWallpaper *This,
30681         LPCWSTR monitorID,
30682         LPWSTR *wallpaper);
30683 
30684     HRESULT (STDMETHODCALLTYPE *GetMonitorDevicePathAt)(
30685         IDesktopWallpaper *This,
30686         UINT monitorIndex,
30687         LPWSTR *monitorID);
30688 
30689     HRESULT (STDMETHODCALLTYPE *GetMonitorDevicePathCount)(
30690         IDesktopWallpaper *This,
30691         UINT *count);
30692 
30693     HRESULT (STDMETHODCALLTYPE *GetMonitorRECT)(
30694         IDesktopWallpaper *This,
30695         LPCWSTR monitorID,
30696         RECT *displayRect);
30697 
30698     HRESULT (STDMETHODCALLTYPE *SetBackgroundColor)(
30699         IDesktopWallpaper *This,
30700         COLORREF color);
30701 
30702     HRESULT (STDMETHODCALLTYPE *GetBackgroundColor)(
30703         IDesktopWallpaper *This,
30704         COLORREF *color);
30705 
30706     HRESULT (STDMETHODCALLTYPE *SetPosition)(
30707         IDesktopWallpaper *This,
30708         DESKTOP_WALLPAPER_POSITION position);
30709 
30710     HRESULT (STDMETHODCALLTYPE *GetPosition)(
30711         IDesktopWallpaper *This,
30712         DESKTOP_WALLPAPER_POSITION *position);
30713 
30714     HRESULT (STDMETHODCALLTYPE *SetSlideshow)(
30715         IDesktopWallpaper *This,
30716         IShellItemArray *items);
30717 
30718     HRESULT (STDMETHODCALLTYPE *GetSlideshow)(
30719         IDesktopWallpaper *This,
30720         IShellItemArray **items);
30721 
30722     HRESULT (STDMETHODCALLTYPE *SetSlideshowOptions)(
30723         IDesktopWallpaper *This,
30724         DESKTOP_SLIDESHOW_OPTIONS options,
30725         UINT slideshowTick);
30726 
30727     HRESULT (STDMETHODCALLTYPE *GetSlideshowOptions)(
30728         IDesktopWallpaper *This,
30729         DESKTOP_SLIDESHOW_OPTIONS *options,
30730         UINT *slideshowTick);
30731 
30732     HRESULT (STDMETHODCALLTYPE *AdvanceSlideshow)(
30733         IDesktopWallpaper *This,
30734         LPCWSTR monitorID,
30735         DESKTOP_SLIDESHOW_DIRECTION direction);
30736 
30737     HRESULT (STDMETHODCALLTYPE *GetStatus)(
30738         IDesktopWallpaper *This,
30739         DESKTOP_SLIDESHOW_STATE *state);
30740 
30741     HRESULT (STDMETHODCALLTYPE *Enable)(
30742         IDesktopWallpaper *This,
30743         WINBOOL enable);
30744 
30745     END_INTERFACE
30746 } IDesktopWallpaperVtbl;
30747 
30748 interface IDesktopWallpaper {
30749     CONST_VTBL IDesktopWallpaperVtbl* lpVtbl;
30750 };
30751 
30752 #ifdef COBJMACROS
30753 #ifndef WIDL_C_INLINE_WRAPPERS
30754 /*** IUnknown methods ***/
30755 #define IDesktopWallpaper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
30756 #define IDesktopWallpaper_AddRef(This) (This)->lpVtbl->AddRef(This)
30757 #define IDesktopWallpaper_Release(This) (This)->lpVtbl->Release(This)
30758 /*** IDesktopWallpaper methods ***/
30759 #define IDesktopWallpaper_SetWallpaper(This,monitorID,wallpaper) (This)->lpVtbl->SetWallpaper(This,monitorID,wallpaper)
30760 #define IDesktopWallpaper_GetWallpaper(This,monitorID,wallpaper) (This)->lpVtbl->GetWallpaper(This,monitorID,wallpaper)
30761 #define IDesktopWallpaper_GetMonitorDevicePathAt(This,monitorIndex,monitorID) (This)->lpVtbl->GetMonitorDevicePathAt(This,monitorIndex,monitorID)
30762 #define IDesktopWallpaper_GetMonitorDevicePathCount(This,count) (This)->lpVtbl->GetMonitorDevicePathCount(This,count)
30763 #define IDesktopWallpaper_GetMonitorRECT(This,monitorID,displayRect) (This)->lpVtbl->GetMonitorRECT(This,monitorID,displayRect)
30764 #define IDesktopWallpaper_SetBackgroundColor(This,color) (This)->lpVtbl->SetBackgroundColor(This,color)
30765 #define IDesktopWallpaper_GetBackgroundColor(This,color) (This)->lpVtbl->GetBackgroundColor(This,color)
30766 #define IDesktopWallpaper_SetPosition(This,position) (This)->lpVtbl->SetPosition(This,position)
30767 #define IDesktopWallpaper_GetPosition(This,position) (This)->lpVtbl->GetPosition(This,position)
30768 #define IDesktopWallpaper_SetSlideshow(This,items) (This)->lpVtbl->SetSlideshow(This,items)
30769 #define IDesktopWallpaper_GetSlideshow(This,items) (This)->lpVtbl->GetSlideshow(This,items)
30770 #define IDesktopWallpaper_SetSlideshowOptions(This,options,slideshowTick) (This)->lpVtbl->SetSlideshowOptions(This,options,slideshowTick)
30771 #define IDesktopWallpaper_GetSlideshowOptions(This,options,slideshowTick) (This)->lpVtbl->GetSlideshowOptions(This,options,slideshowTick)
30772 #define IDesktopWallpaper_AdvanceSlideshow(This,monitorID,direction) (This)->lpVtbl->AdvanceSlideshow(This,monitorID,direction)
30773 #define IDesktopWallpaper_GetStatus(This,state) (This)->lpVtbl->GetStatus(This,state)
30774 #define IDesktopWallpaper_Enable(This,enable) (This)->lpVtbl->Enable(This,enable)
30775 #else
30776 /*** IUnknown methods ***/
30777 static FORCEINLINE HRESULT IDesktopWallpaper_QueryInterface(IDesktopWallpaper* This,REFIID riid,void **ppvObject) {
30778     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
30779 }
30780 static FORCEINLINE ULONG IDesktopWallpaper_AddRef(IDesktopWallpaper* This) {
30781     return This->lpVtbl->AddRef(This);
30782 }
30783 static FORCEINLINE ULONG IDesktopWallpaper_Release(IDesktopWallpaper* This) {
30784     return This->lpVtbl->Release(This);
30785 }
30786 /*** IDesktopWallpaper methods ***/
30787 static FORCEINLINE HRESULT IDesktopWallpaper_SetWallpaper(IDesktopWallpaper* This,LPCWSTR monitorID,LPCWSTR wallpaper) {
30788     return This->lpVtbl->SetWallpaper(This,monitorID,wallpaper);
30789 }
30790 static FORCEINLINE HRESULT IDesktopWallpaper_GetWallpaper(IDesktopWallpaper* This,LPCWSTR monitorID,LPWSTR *wallpaper) {
30791     return This->lpVtbl->GetWallpaper(This,monitorID,wallpaper);
30792 }
30793 static FORCEINLINE HRESULT IDesktopWallpaper_GetMonitorDevicePathAt(IDesktopWallpaper* This,UINT monitorIndex,LPWSTR *monitorID) {
30794     return This->lpVtbl->GetMonitorDevicePathAt(This,monitorIndex,monitorID);
30795 }
30796 static FORCEINLINE HRESULT IDesktopWallpaper_GetMonitorDevicePathCount(IDesktopWallpaper* This,UINT *count) {
30797     return This->lpVtbl->GetMonitorDevicePathCount(This,count);
30798 }
30799 static FORCEINLINE HRESULT IDesktopWallpaper_GetMonitorRECT(IDesktopWallpaper* This,LPCWSTR monitorID,RECT *displayRect) {
30800     return This->lpVtbl->GetMonitorRECT(This,monitorID,displayRect);
30801 }
30802 static FORCEINLINE HRESULT IDesktopWallpaper_SetBackgroundColor(IDesktopWallpaper* This,COLORREF color) {
30803     return This->lpVtbl->SetBackgroundColor(This,color);
30804 }
30805 static FORCEINLINE HRESULT IDesktopWallpaper_GetBackgroundColor(IDesktopWallpaper* This,COLORREF *color) {
30806     return This->lpVtbl->GetBackgroundColor(This,color);
30807 }
30808 static FORCEINLINE HRESULT IDesktopWallpaper_SetPosition(IDesktopWallpaper* This,DESKTOP_WALLPAPER_POSITION position) {
30809     return This->lpVtbl->SetPosition(This,position);
30810 }
30811 static FORCEINLINE HRESULT IDesktopWallpaper_GetPosition(IDesktopWallpaper* This,DESKTOP_WALLPAPER_POSITION *position) {
30812     return This->lpVtbl->GetPosition(This,position);
30813 }
30814 static FORCEINLINE HRESULT IDesktopWallpaper_SetSlideshow(IDesktopWallpaper* This,IShellItemArray *items) {
30815     return This->lpVtbl->SetSlideshow(This,items);
30816 }
30817 static FORCEINLINE HRESULT IDesktopWallpaper_GetSlideshow(IDesktopWallpaper* This,IShellItemArray **items) {
30818     return This->lpVtbl->GetSlideshow(This,items);
30819 }
30820 static FORCEINLINE HRESULT IDesktopWallpaper_SetSlideshowOptions(IDesktopWallpaper* This,DESKTOP_SLIDESHOW_OPTIONS options,UINT slideshowTick) {
30821     return This->lpVtbl->SetSlideshowOptions(This,options,slideshowTick);
30822 }
30823 static FORCEINLINE HRESULT IDesktopWallpaper_GetSlideshowOptions(IDesktopWallpaper* This,DESKTOP_SLIDESHOW_OPTIONS *options,UINT *slideshowTick) {
30824     return This->lpVtbl->GetSlideshowOptions(This,options,slideshowTick);
30825 }
30826 static FORCEINLINE HRESULT IDesktopWallpaper_AdvanceSlideshow(IDesktopWallpaper* This,LPCWSTR monitorID,DESKTOP_SLIDESHOW_DIRECTION direction) {
30827     return This->lpVtbl->AdvanceSlideshow(This,monitorID,direction);
30828 }
30829 static FORCEINLINE HRESULT IDesktopWallpaper_GetStatus(IDesktopWallpaper* This,DESKTOP_SLIDESHOW_STATE *state) {
30830     return This->lpVtbl->GetStatus(This,state);
30831 }
30832 static FORCEINLINE HRESULT IDesktopWallpaper_Enable(IDesktopWallpaper* This,WINBOOL enable) {
30833     return This->lpVtbl->Enable(This,enable);
30834 }
30835 #endif
30836 #endif
30837 
30838 #endif
30839 
30840 
30841 #endif  /* __IDesktopWallpaper_INTERFACE_DEFINED__ */
30842 
30843 #endif
30844 
30845 #define HOMEGROUP_SECURITY_GROUP_MULTI L"HUG"
30846 #define HOMEGROUP_SECURITY_GROUP L"HomeUsers"
30847 
30848 /*****************************************************************************
30849  * IHomeGroup interface
30850  */
30851 #ifndef __IHomeGroup_INTERFACE_DEFINED__
30852 #define __IHomeGroup_INTERFACE_DEFINED__
30853 
30854 typedef enum HOMEGROUPSHARINGCHOICES {
30855     HGSC_NONE = 0x0,
30856     HGSC_MUSICLIBRARY = 0x1,
30857     HGSC_PICTURESLIBRARY = 0x2,
30858     HGSC_VIDEOSLIBRARY = 0x4,
30859     HGSC_DOCUMENTSLIBRARY = 0x8,
30860     HGSC_PRINTERS = 0x10
30861 } HOMEGROUPSHARINGCHOICES;
30862 
30863 DEFINE_ENUM_FLAG_OPERATORS(HOMEGROUPSHARINGCHOICES)
30864 
30865 DEFINE_GUID(IID_IHomeGroup, 0x7a3bd1d9, 0x35a9, 0x4fb3, 0xa4,0x67, 0xf4,0x8c,0xac,0x35,0xe2,0xd0);
30866 #if defined(__cplusplus) && !defined(CINTERFACE)
30867 MIDL_INTERFACE("7a3bd1d9-35a9-4fb3-a467-f48cac35e2d0")
30868 IHomeGroup : public IUnknown
30869 {
30870     virtual HRESULT STDMETHODCALLTYPE IsMember(
30871         WINBOOL *member) = 0;
30872 
30873     virtual HRESULT STDMETHODCALLTYPE ShowSharingWizard(
30874         HWND owner,
30875         HOMEGROUPSHARINGCHOICES *sharingchoices) = 0;
30876 
30877 };
30878 #ifdef __CRT_UUID_DECL
30879 __CRT_UUID_DECL(IHomeGroup, 0x7a3bd1d9, 0x35a9, 0x4fb3, 0xa4,0x67, 0xf4,0x8c,0xac,0x35,0xe2,0xd0)
30880 #endif
30881 #else
30882 typedef struct IHomeGroupVtbl {
30883     BEGIN_INTERFACE
30884 
30885     /*** IUnknown methods ***/
30886     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
30887         IHomeGroup *This,
30888         REFIID riid,
30889         void **ppvObject);
30890 
30891     ULONG (STDMETHODCALLTYPE *AddRef)(
30892         IHomeGroup *This);
30893 
30894     ULONG (STDMETHODCALLTYPE *Release)(
30895         IHomeGroup *This);
30896 
30897     /*** IHomeGroup methods ***/
30898     HRESULT (STDMETHODCALLTYPE *IsMember)(
30899         IHomeGroup *This,
30900         WINBOOL *member);
30901 
30902     HRESULT (STDMETHODCALLTYPE *ShowSharingWizard)(
30903         IHomeGroup *This,
30904         HWND owner,
30905         HOMEGROUPSHARINGCHOICES *sharingchoices);
30906 
30907     END_INTERFACE
30908 } IHomeGroupVtbl;
30909 
30910 interface IHomeGroup {
30911     CONST_VTBL IHomeGroupVtbl* lpVtbl;
30912 };
30913 
30914 #ifdef COBJMACROS
30915 #ifndef WIDL_C_INLINE_WRAPPERS
30916 /*** IUnknown methods ***/
30917 #define IHomeGroup_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
30918 #define IHomeGroup_AddRef(This) (This)->lpVtbl->AddRef(This)
30919 #define IHomeGroup_Release(This) (This)->lpVtbl->Release(This)
30920 /*** IHomeGroup methods ***/
30921 #define IHomeGroup_IsMember(This,member) (This)->lpVtbl->IsMember(This,member)
30922 #define IHomeGroup_ShowSharingWizard(This,owner,sharingchoices) (This)->lpVtbl->ShowSharingWizard(This,owner,sharingchoices)
30923 #else
30924 /*** IUnknown methods ***/
30925 static FORCEINLINE HRESULT IHomeGroup_QueryInterface(IHomeGroup* This,REFIID riid,void **ppvObject) {
30926     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
30927 }
30928 static FORCEINLINE ULONG IHomeGroup_AddRef(IHomeGroup* This) {
30929     return This->lpVtbl->AddRef(This);
30930 }
30931 static FORCEINLINE ULONG IHomeGroup_Release(IHomeGroup* This) {
30932     return This->lpVtbl->Release(This);
30933 }
30934 /*** IHomeGroup methods ***/
30935 static FORCEINLINE HRESULT IHomeGroup_IsMember(IHomeGroup* This,WINBOOL *member) {
30936     return This->lpVtbl->IsMember(This,member);
30937 }
30938 static FORCEINLINE HRESULT IHomeGroup_ShowSharingWizard(IHomeGroup* This,HWND owner,HOMEGROUPSHARINGCHOICES *sharingchoices) {
30939     return This->lpVtbl->ShowSharingWizard(This,owner,sharingchoices);
30940 }
30941 #endif
30942 #endif
30943 
30944 #endif
30945 
30946 
30947 #endif  /* __IHomeGroup_INTERFACE_DEFINED__ */
30948 
30949 
30950 /*****************************************************************************
30951  * IInitializeWithPropertyStore interface
30952  */
30953 #ifndef __IInitializeWithPropertyStore_INTERFACE_DEFINED__
30954 #define __IInitializeWithPropertyStore_INTERFACE_DEFINED__
30955 
30956 DEFINE_GUID(IID_IInitializeWithPropertyStore, 0xc3e12eb5, 0x7d8d, 0x44f8, 0xb6,0xdd, 0x0e,0x77,0xb3,0x4d,0x6d,0xe4);
30957 #if defined(__cplusplus) && !defined(CINTERFACE)
30958 MIDL_INTERFACE("c3e12eb5-7d8d-44f8-b6dd-0e77b34d6de4")
30959 IInitializeWithPropertyStore : public IUnknown
30960 {
30961     virtual HRESULT STDMETHODCALLTYPE Initialize(
30962         IPropertyStore *pps) = 0;
30963 
30964 };
30965 #ifdef __CRT_UUID_DECL
30966 __CRT_UUID_DECL(IInitializeWithPropertyStore, 0xc3e12eb5, 0x7d8d, 0x44f8, 0xb6,0xdd, 0x0e,0x77,0xb3,0x4d,0x6d,0xe4)
30967 #endif
30968 #else
30969 typedef struct IInitializeWithPropertyStoreVtbl {
30970     BEGIN_INTERFACE
30971 
30972     /*** IUnknown methods ***/
30973     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
30974         IInitializeWithPropertyStore *This,
30975         REFIID riid,
30976         void **ppvObject);
30977 
30978     ULONG (STDMETHODCALLTYPE *AddRef)(
30979         IInitializeWithPropertyStore *This);
30980 
30981     ULONG (STDMETHODCALLTYPE *Release)(
30982         IInitializeWithPropertyStore *This);
30983 
30984     /*** IInitializeWithPropertyStore methods ***/
30985     HRESULT (STDMETHODCALLTYPE *Initialize)(
30986         IInitializeWithPropertyStore *This,
30987         IPropertyStore *pps);
30988 
30989     END_INTERFACE
30990 } IInitializeWithPropertyStoreVtbl;
30991 
30992 interface IInitializeWithPropertyStore {
30993     CONST_VTBL IInitializeWithPropertyStoreVtbl* lpVtbl;
30994 };
30995 
30996 #ifdef COBJMACROS
30997 #ifndef WIDL_C_INLINE_WRAPPERS
30998 /*** IUnknown methods ***/
30999 #define IInitializeWithPropertyStore_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
31000 #define IInitializeWithPropertyStore_AddRef(This) (This)->lpVtbl->AddRef(This)
31001 #define IInitializeWithPropertyStore_Release(This) (This)->lpVtbl->Release(This)
31002 /*** IInitializeWithPropertyStore methods ***/
31003 #define IInitializeWithPropertyStore_Initialize(This,pps) (This)->lpVtbl->Initialize(This,pps)
31004 #else
31005 /*** IUnknown methods ***/
31006 static FORCEINLINE HRESULT IInitializeWithPropertyStore_QueryInterface(IInitializeWithPropertyStore* This,REFIID riid,void **ppvObject) {
31007     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
31008 }
31009 static FORCEINLINE ULONG IInitializeWithPropertyStore_AddRef(IInitializeWithPropertyStore* This) {
31010     return This->lpVtbl->AddRef(This);
31011 }
31012 static FORCEINLINE ULONG IInitializeWithPropertyStore_Release(IInitializeWithPropertyStore* This) {
31013     return This->lpVtbl->Release(This);
31014 }
31015 /*** IInitializeWithPropertyStore methods ***/
31016 static FORCEINLINE HRESULT IInitializeWithPropertyStore_Initialize(IInitializeWithPropertyStore* This,IPropertyStore *pps) {
31017     return This->lpVtbl->Initialize(This,pps);
31018 }
31019 #endif
31020 #endif
31021 
31022 #endif
31023 
31024 
31025 #endif  /* __IInitializeWithPropertyStore_INTERFACE_DEFINED__ */
31026 
31027 
31028 /*****************************************************************************
31029  * IOpenSearchSource interface
31030  */
31031 #ifndef __IOpenSearchSource_INTERFACE_DEFINED__
31032 #define __IOpenSearchSource_INTERFACE_DEFINED__
31033 
31034 DEFINE_GUID(IID_IOpenSearchSource, 0xf0ee7333, 0xe6fc, 0x479b, 0x9f,0x25, 0xa8,0x60,0xc2,0x34,0xa3,0x8e);
31035 #if defined(__cplusplus) && !defined(CINTERFACE)
31036 MIDL_INTERFACE("f0ee7333-e6fc-479b-9f25-a860c234a38e")
31037 IOpenSearchSource : public IUnknown
31038 {
31039     virtual HRESULT STDMETHODCALLTYPE GetResults(
31040         HWND hwnd,
31041         LPCWSTR pszQuery,
31042         DWORD dwStartIndex,
31043         DWORD dwCount,
31044         REFIID riid,
31045         void **ppv) = 0;
31046 
31047 };
31048 #ifdef __CRT_UUID_DECL
31049 __CRT_UUID_DECL(IOpenSearchSource, 0xf0ee7333, 0xe6fc, 0x479b, 0x9f,0x25, 0xa8,0x60,0xc2,0x34,0xa3,0x8e)
31050 #endif
31051 #else
31052 typedef struct IOpenSearchSourceVtbl {
31053     BEGIN_INTERFACE
31054 
31055     /*** IUnknown methods ***/
31056     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
31057         IOpenSearchSource *This,
31058         REFIID riid,
31059         void **ppvObject);
31060 
31061     ULONG (STDMETHODCALLTYPE *AddRef)(
31062         IOpenSearchSource *This);
31063 
31064     ULONG (STDMETHODCALLTYPE *Release)(
31065         IOpenSearchSource *This);
31066 
31067     /*** IOpenSearchSource methods ***/
31068     HRESULT (STDMETHODCALLTYPE *GetResults)(
31069         IOpenSearchSource *This,
31070         HWND hwnd,
31071         LPCWSTR pszQuery,
31072         DWORD dwStartIndex,
31073         DWORD dwCount,
31074         REFIID riid,
31075         void **ppv);
31076 
31077     END_INTERFACE
31078 } IOpenSearchSourceVtbl;
31079 
31080 interface IOpenSearchSource {
31081     CONST_VTBL IOpenSearchSourceVtbl* lpVtbl;
31082 };
31083 
31084 #ifdef COBJMACROS
31085 #ifndef WIDL_C_INLINE_WRAPPERS
31086 /*** IUnknown methods ***/
31087 #define IOpenSearchSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
31088 #define IOpenSearchSource_AddRef(This) (This)->lpVtbl->AddRef(This)
31089 #define IOpenSearchSource_Release(This) (This)->lpVtbl->Release(This)
31090 /*** IOpenSearchSource methods ***/
31091 #define IOpenSearchSource_GetResults(This,hwnd,pszQuery,dwStartIndex,dwCount,riid,ppv) (This)->lpVtbl->GetResults(This,hwnd,pszQuery,dwStartIndex,dwCount,riid,ppv)
31092 #else
31093 /*** IUnknown methods ***/
31094 static FORCEINLINE HRESULT IOpenSearchSource_QueryInterface(IOpenSearchSource* This,REFIID riid,void **ppvObject) {
31095     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
31096 }
31097 static FORCEINLINE ULONG IOpenSearchSource_AddRef(IOpenSearchSource* This) {
31098     return This->lpVtbl->AddRef(This);
31099 }
31100 static FORCEINLINE ULONG IOpenSearchSource_Release(IOpenSearchSource* This) {
31101     return This->lpVtbl->Release(This);
31102 }
31103 /*** IOpenSearchSource methods ***/
31104 static FORCEINLINE HRESULT IOpenSearchSource_GetResults(IOpenSearchSource* This,HWND hwnd,LPCWSTR pszQuery,DWORD dwStartIndex,DWORD dwCount,REFIID riid,void **ppv) {
31105     return This->lpVtbl->GetResults(This,hwnd,pszQuery,dwStartIndex,dwCount,riid,ppv);
31106 }
31107 #endif
31108 #endif
31109 
31110 #endif
31111 
31112 
31113 #endif  /* __IOpenSearchSource_INTERFACE_DEFINED__ */
31114 
31115 
31116 /*****************************************************************************
31117  * IShellLibrary interface
31118  */
31119 #ifndef __IShellLibrary_INTERFACE_DEFINED__
31120 #define __IShellLibrary_INTERFACE_DEFINED__
31121 
31122 typedef enum LIBRARYFOLDERFILTER {
31123     LFF_FORCEFILESYSTEM = 1,
31124     LFF_STORAGEITEMS = 2,
31125     LFF_ALLITEMS = 3
31126 } LIBRARYFOLDERFILTER;
31127 
31128 typedef enum LIBRARYOPTIONFLAGS {
31129     LOF_DEFAULT = 0x0,
31130     LOF_PINNEDTONAVPANE = 0x1,
31131     LOF_MASK_ALL = 0x1
31132 } LIBRARYOPTIONFLAGS;
31133 
31134 DEFINE_ENUM_FLAG_OPERATORS(LIBRARYOPTIONFLAGS)
31135 
31136 typedef enum DEFAULTSAVEFOLDERTYPE {
31137     DSFT_DETECT = 1,
31138     DSFT_PRIVATE = 2,
31139     DSFT_PUBLIC = 3
31140 } DEFAULTSAVEFOLDERTYPE;
31141 
31142 typedef enum LIBRARYSAVEFLAGS {
31143     LSF_FAILIFTHERE = 0x0,
31144     LSF_OVERRIDEEXISTING = 0x1,
31145     LSF_MAKEUNIQUENAME = 0x2
31146 } LIBRARYSAVEFLAGS;
31147 
31148 DEFINE_ENUM_FLAG_OPERATORS(LIBRARYSAVEFLAGS)
31149 
31150 DEFINE_GUID(IID_IShellLibrary, 0x11a66efa, 0x382e, 0x451a, 0x92,0x34, 0x1e,0x0e,0x12,0xef,0x30,0x85);
31151 #if defined(__cplusplus) && !defined(CINTERFACE)
31152 MIDL_INTERFACE("11a66efa-382e-451a-9234-1e0e12ef3085")
31153 IShellLibrary : public IUnknown
31154 {
31155     virtual HRESULT STDMETHODCALLTYPE LoadLibraryFromItem(
31156         IShellItem *psiLibrary,
31157         DWORD grfMode) = 0;
31158 
31159     virtual HRESULT STDMETHODCALLTYPE LoadLibraryFromKnownFolder(
31160         REFKNOWNFOLDERID kfidLibrary,
31161         DWORD grfMode) = 0;
31162 
31163     virtual HRESULT STDMETHODCALLTYPE AddFolder(
31164         IShellItem *psiLocation) = 0;
31165 
31166     virtual HRESULT STDMETHODCALLTYPE RemoveFolder(
31167         IShellItem *psiLocation) = 0;
31168 
31169     virtual HRESULT STDMETHODCALLTYPE GetFolders(
31170         LIBRARYFOLDERFILTER lff,
31171         REFIID riid,
31172         void **ppv) = 0;
31173 
31174     virtual HRESULT STDMETHODCALLTYPE ResolveFolder(
31175         IShellItem *psiFolderToResolve,
31176         DWORD dwTimeout,
31177         REFIID riid,
31178         void **ppv) = 0;
31179 
31180     virtual HRESULT STDMETHODCALLTYPE GetDefaultSaveFolder(
31181         DEFAULTSAVEFOLDERTYPE dsft,
31182         REFIID riid,
31183         void **ppv) = 0;
31184 
31185     virtual HRESULT STDMETHODCALLTYPE SetDefaultSaveFolder(
31186         DEFAULTSAVEFOLDERTYPE dsft,
31187         IShellItem *psi) = 0;
31188 
31189     virtual HRESULT STDMETHODCALLTYPE GetOptions(
31190         LIBRARYOPTIONFLAGS *plofOptions) = 0;
31191 
31192     virtual HRESULT STDMETHODCALLTYPE SetOptions(
31193         LIBRARYOPTIONFLAGS lofMask,
31194         LIBRARYOPTIONFLAGS lofOptions) = 0;
31195 
31196     virtual HRESULT STDMETHODCALLTYPE GetFolderType(
31197         FOLDERTYPEID *pftid) = 0;
31198 
31199     virtual HRESULT STDMETHODCALLTYPE SetFolderType(
31200         REFFOLDERTYPEID ftid) = 0;
31201 
31202     virtual HRESULT STDMETHODCALLTYPE GetIcon(
31203         LPWSTR *ppszIcon) = 0;
31204 
31205     virtual HRESULT STDMETHODCALLTYPE SetIcon(
31206         LPCWSTR pszIcon) = 0;
31207 
31208     virtual HRESULT STDMETHODCALLTYPE Commit(
31209         ) = 0;
31210 
31211     virtual HRESULT STDMETHODCALLTYPE Save(
31212         IShellItem *psiFolderToSaveIn,
31213         LPCWSTR pszLibraryName,
31214         LIBRARYSAVEFLAGS lsf,
31215         IShellItem **ppsiSavedTo) = 0;
31216 
31217     virtual HRESULT STDMETHODCALLTYPE SaveInKnownFolder(
31218         REFKNOWNFOLDERID kfidToSaveIn,
31219         LPCWSTR pszLibraryName,
31220         LIBRARYSAVEFLAGS lsf,
31221         IShellItem **ppsiSavedTo) = 0;
31222 
31223 };
31224 #ifdef __CRT_UUID_DECL
31225 __CRT_UUID_DECL(IShellLibrary, 0x11a66efa, 0x382e, 0x451a, 0x92,0x34, 0x1e,0x0e,0x12,0xef,0x30,0x85)
31226 #endif
31227 #else
31228 typedef struct IShellLibraryVtbl {
31229     BEGIN_INTERFACE
31230 
31231     /*** IUnknown methods ***/
31232     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
31233         IShellLibrary *This,
31234         REFIID riid,
31235         void **ppvObject);
31236 
31237     ULONG (STDMETHODCALLTYPE *AddRef)(
31238         IShellLibrary *This);
31239 
31240     ULONG (STDMETHODCALLTYPE *Release)(
31241         IShellLibrary *This);
31242 
31243     /*** IShellLibrary methods ***/
31244     HRESULT (STDMETHODCALLTYPE *LoadLibraryFromItem)(
31245         IShellLibrary *This,
31246         IShellItem *psiLibrary,
31247         DWORD grfMode);
31248 
31249     HRESULT (STDMETHODCALLTYPE *LoadLibraryFromKnownFolder)(
31250         IShellLibrary *This,
31251         REFKNOWNFOLDERID kfidLibrary,
31252         DWORD grfMode);
31253 
31254     HRESULT (STDMETHODCALLTYPE *AddFolder)(
31255         IShellLibrary *This,
31256         IShellItem *psiLocation);
31257 
31258     HRESULT (STDMETHODCALLTYPE *RemoveFolder)(
31259         IShellLibrary *This,
31260         IShellItem *psiLocation);
31261 
31262     HRESULT (STDMETHODCALLTYPE *GetFolders)(
31263         IShellLibrary *This,
31264         LIBRARYFOLDERFILTER lff,
31265         REFIID riid,
31266         void **ppv);
31267 
31268     HRESULT (STDMETHODCALLTYPE *ResolveFolder)(
31269         IShellLibrary *This,
31270         IShellItem *psiFolderToResolve,
31271         DWORD dwTimeout,
31272         REFIID riid,
31273         void **ppv);
31274 
31275     HRESULT (STDMETHODCALLTYPE *GetDefaultSaveFolder)(
31276         IShellLibrary *This,
31277         DEFAULTSAVEFOLDERTYPE dsft,
31278         REFIID riid,
31279         void **ppv);
31280 
31281     HRESULT (STDMETHODCALLTYPE *SetDefaultSaveFolder)(
31282         IShellLibrary *This,
31283         DEFAULTSAVEFOLDERTYPE dsft,
31284         IShellItem *psi);
31285 
31286     HRESULT (STDMETHODCALLTYPE *GetOptions)(
31287         IShellLibrary *This,
31288         LIBRARYOPTIONFLAGS *plofOptions);
31289 
31290     HRESULT (STDMETHODCALLTYPE *SetOptions)(
31291         IShellLibrary *This,
31292         LIBRARYOPTIONFLAGS lofMask,
31293         LIBRARYOPTIONFLAGS lofOptions);
31294 
31295     HRESULT (STDMETHODCALLTYPE *GetFolderType)(
31296         IShellLibrary *This,
31297         FOLDERTYPEID *pftid);
31298 
31299     HRESULT (STDMETHODCALLTYPE *SetFolderType)(
31300         IShellLibrary *This,
31301         REFFOLDERTYPEID ftid);
31302 
31303     HRESULT (STDMETHODCALLTYPE *GetIcon)(
31304         IShellLibrary *This,
31305         LPWSTR *ppszIcon);
31306 
31307     HRESULT (STDMETHODCALLTYPE *SetIcon)(
31308         IShellLibrary *This,
31309         LPCWSTR pszIcon);
31310 
31311     HRESULT (STDMETHODCALLTYPE *Commit)(
31312         IShellLibrary *This);
31313 
31314     HRESULT (STDMETHODCALLTYPE *Save)(
31315         IShellLibrary *This,
31316         IShellItem *psiFolderToSaveIn,
31317         LPCWSTR pszLibraryName,
31318         LIBRARYSAVEFLAGS lsf,
31319         IShellItem **ppsiSavedTo);
31320 
31321     HRESULT (STDMETHODCALLTYPE *SaveInKnownFolder)(
31322         IShellLibrary *This,
31323         REFKNOWNFOLDERID kfidToSaveIn,
31324         LPCWSTR pszLibraryName,
31325         LIBRARYSAVEFLAGS lsf,
31326         IShellItem **ppsiSavedTo);
31327 
31328     END_INTERFACE
31329 } IShellLibraryVtbl;
31330 
31331 interface IShellLibrary {
31332     CONST_VTBL IShellLibraryVtbl* lpVtbl;
31333 };
31334 
31335 #ifdef COBJMACROS
31336 #ifndef WIDL_C_INLINE_WRAPPERS
31337 /*** IUnknown methods ***/
31338 #define IShellLibrary_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
31339 #define IShellLibrary_AddRef(This) (This)->lpVtbl->AddRef(This)
31340 #define IShellLibrary_Release(This) (This)->lpVtbl->Release(This)
31341 /*** IShellLibrary methods ***/
31342 #define IShellLibrary_LoadLibraryFromItem(This,psiLibrary,grfMode) (This)->lpVtbl->LoadLibraryFromItem(This,psiLibrary,grfMode)
31343 #define IShellLibrary_LoadLibraryFromKnownFolder(This,kfidLibrary,grfMode) (This)->lpVtbl->LoadLibraryFromKnownFolder(This,kfidLibrary,grfMode)
31344 #define IShellLibrary_AddFolder(This,psiLocation) (This)->lpVtbl->AddFolder(This,psiLocation)
31345 #define IShellLibrary_RemoveFolder(This,psiLocation) (This)->lpVtbl->RemoveFolder(This,psiLocation)
31346 #define IShellLibrary_GetFolders(This,lff,riid,ppv) (This)->lpVtbl->GetFolders(This,lff,riid,ppv)
31347 #define IShellLibrary_ResolveFolder(This,psiFolderToResolve,dwTimeout,riid,ppv) (This)->lpVtbl->ResolveFolder(This,psiFolderToResolve,dwTimeout,riid,ppv)
31348 #define IShellLibrary_GetDefaultSaveFolder(This,dsft,riid,ppv) (This)->lpVtbl->GetDefaultSaveFolder(This,dsft,riid,ppv)
31349 #define IShellLibrary_SetDefaultSaveFolder(This,dsft,psi) (This)->lpVtbl->SetDefaultSaveFolder(This,dsft,psi)
31350 #define IShellLibrary_GetOptions(This,plofOptions) (This)->lpVtbl->GetOptions(This,plofOptions)
31351 #define IShellLibrary_SetOptions(This,lofMask,lofOptions) (This)->lpVtbl->SetOptions(This,lofMask,lofOptions)
31352 #define IShellLibrary_GetFolderType(This,pftid) (This)->lpVtbl->GetFolderType(This,pftid)
31353 #define IShellLibrary_SetFolderType(This,ftid) (This)->lpVtbl->SetFolderType(This,ftid)
31354 #define IShellLibrary_GetIcon(This,ppszIcon) (This)->lpVtbl->GetIcon(This,ppszIcon)
31355 #define IShellLibrary_SetIcon(This,pszIcon) (This)->lpVtbl->SetIcon(This,pszIcon)
31356 #define IShellLibrary_Commit(This) (This)->lpVtbl->Commit(This)
31357 #define IShellLibrary_Save(This,psiFolderToSaveIn,pszLibraryName,lsf,ppsiSavedTo) (This)->lpVtbl->Save(This,psiFolderToSaveIn,pszLibraryName,lsf,ppsiSavedTo)
31358 #define IShellLibrary_SaveInKnownFolder(This,kfidToSaveIn,pszLibraryName,lsf,ppsiSavedTo) (This)->lpVtbl->SaveInKnownFolder(This,kfidToSaveIn,pszLibraryName,lsf,ppsiSavedTo)
31359 #else
31360 /*** IUnknown methods ***/
31361 static FORCEINLINE HRESULT IShellLibrary_QueryInterface(IShellLibrary* This,REFIID riid,void **ppvObject) {
31362     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
31363 }
31364 static FORCEINLINE ULONG IShellLibrary_AddRef(IShellLibrary* This) {
31365     return This->lpVtbl->AddRef(This);
31366 }
31367 static FORCEINLINE ULONG IShellLibrary_Release(IShellLibrary* This) {
31368     return This->lpVtbl->Release(This);
31369 }
31370 /*** IShellLibrary methods ***/
31371 static FORCEINLINE HRESULT IShellLibrary_LoadLibraryFromItem(IShellLibrary* This,IShellItem *psiLibrary,DWORD grfMode) {
31372     return This->lpVtbl->LoadLibraryFromItem(This,psiLibrary,grfMode);
31373 }
31374 static FORCEINLINE HRESULT IShellLibrary_LoadLibraryFromKnownFolder(IShellLibrary* This,REFKNOWNFOLDERID kfidLibrary,DWORD grfMode) {
31375     return This->lpVtbl->LoadLibraryFromKnownFolder(This,kfidLibrary,grfMode);
31376 }
31377 static FORCEINLINE HRESULT IShellLibrary_AddFolder(IShellLibrary* This,IShellItem *psiLocation) {
31378     return This->lpVtbl->AddFolder(This,psiLocation);
31379 }
31380 static FORCEINLINE HRESULT IShellLibrary_RemoveFolder(IShellLibrary* This,IShellItem *psiLocation) {
31381     return This->lpVtbl->RemoveFolder(This,psiLocation);
31382 }
31383 static FORCEINLINE HRESULT IShellLibrary_GetFolders(IShellLibrary* This,LIBRARYFOLDERFILTER lff,REFIID riid,void **ppv) {
31384     return This->lpVtbl->GetFolders(This,lff,riid,ppv);
31385 }
31386 static FORCEINLINE HRESULT IShellLibrary_ResolveFolder(IShellLibrary* This,IShellItem *psiFolderToResolve,DWORD dwTimeout,REFIID riid,void **ppv) {
31387     return This->lpVtbl->ResolveFolder(This,psiFolderToResolve,dwTimeout,riid,ppv);
31388 }
31389 static FORCEINLINE HRESULT IShellLibrary_GetDefaultSaveFolder(IShellLibrary* This,DEFAULTSAVEFOLDERTYPE dsft,REFIID riid,void **ppv) {
31390     return This->lpVtbl->GetDefaultSaveFolder(This,dsft,riid,ppv);
31391 }
31392 static FORCEINLINE HRESULT IShellLibrary_SetDefaultSaveFolder(IShellLibrary* This,DEFAULTSAVEFOLDERTYPE dsft,IShellItem *psi) {
31393     return This->lpVtbl->SetDefaultSaveFolder(This,dsft,psi);
31394 }
31395 static FORCEINLINE HRESULT IShellLibrary_GetOptions(IShellLibrary* This,LIBRARYOPTIONFLAGS *plofOptions) {
31396     return This->lpVtbl->GetOptions(This,plofOptions);
31397 }
31398 static FORCEINLINE HRESULT IShellLibrary_SetOptions(IShellLibrary* This,LIBRARYOPTIONFLAGS lofMask,LIBRARYOPTIONFLAGS lofOptions) {
31399     return This->lpVtbl->SetOptions(This,lofMask,lofOptions);
31400 }
31401 static FORCEINLINE HRESULT IShellLibrary_GetFolderType(IShellLibrary* This,FOLDERTYPEID *pftid) {
31402     return This->lpVtbl->GetFolderType(This,pftid);
31403 }
31404 static FORCEINLINE HRESULT IShellLibrary_SetFolderType(IShellLibrary* This,REFFOLDERTYPEID ftid) {
31405     return This->lpVtbl->SetFolderType(This,ftid);
31406 }
31407 static FORCEINLINE HRESULT IShellLibrary_GetIcon(IShellLibrary* This,LPWSTR *ppszIcon) {
31408     return This->lpVtbl->GetIcon(This,ppszIcon);
31409 }
31410 static FORCEINLINE HRESULT IShellLibrary_SetIcon(IShellLibrary* This,LPCWSTR pszIcon) {
31411     return This->lpVtbl->SetIcon(This,pszIcon);
31412 }
31413 static FORCEINLINE HRESULT IShellLibrary_Commit(IShellLibrary* This) {
31414     return This->lpVtbl->Commit(This);
31415 }
31416 static FORCEINLINE HRESULT IShellLibrary_Save(IShellLibrary* This,IShellItem *psiFolderToSaveIn,LPCWSTR pszLibraryName,LIBRARYSAVEFLAGS lsf,IShellItem **ppsiSavedTo) {
31417     return This->lpVtbl->Save(This,psiFolderToSaveIn,pszLibraryName,lsf,ppsiSavedTo);
31418 }
31419 static FORCEINLINE HRESULT IShellLibrary_SaveInKnownFolder(IShellLibrary* This,REFKNOWNFOLDERID kfidToSaveIn,LPCWSTR pszLibraryName,LIBRARYSAVEFLAGS lsf,IShellItem **ppsiSavedTo) {
31420     return This->lpVtbl->SaveInKnownFolder(This,kfidToSaveIn,pszLibraryName,lsf,ppsiSavedTo);
31421 }
31422 #endif
31423 #endif
31424 
31425 #endif
31426 
31427 
31428 #endif  /* __IShellLibrary_INTERFACE_DEFINED__ */
31429 
31430 
31431 typedef enum PBM_EVENT {
31432     PE_DUCKSESSION = 1,
31433     PE_UNDUCKSESSION = 2
31434 } PBM_EVENT;
31435 
31436 /*****************************************************************************
31437  * IPlaybackManagerEvents interface
31438  */
31439 #ifndef __IPlaybackManagerEvents_INTERFACE_DEFINED__
31440 #define __IPlaybackManagerEvents_INTERFACE_DEFINED__
31441 
31442 DEFINE_GUID(IID_IPlaybackManagerEvents, 0x385cfb7d, 0x4e0c, 0x4106, 0x91,0x2e, 0x8c,0xfb,0x4c,0x19,0x1f,0x45);
31443 #if defined(__cplusplus) && !defined(CINTERFACE)
31444 MIDL_INTERFACE("385cfb7d-4e0c-4106-912e-8cfb4c191f45")
31445 IPlaybackManagerEvents : public IUnknown
31446 {
31447     virtual HRESULT STDMETHODCALLTYPE OnPlaybackManagerEvent(
31448         DWORD dwSessionId,
31449         PBM_EVENT mediaEvent) = 0;
31450 
31451 };
31452 #ifdef __CRT_UUID_DECL
31453 __CRT_UUID_DECL(IPlaybackManagerEvents, 0x385cfb7d, 0x4e0c, 0x4106, 0x91,0x2e, 0x8c,0xfb,0x4c,0x19,0x1f,0x45)
31454 #endif
31455 #else
31456 typedef struct IPlaybackManagerEventsVtbl {
31457     BEGIN_INTERFACE
31458 
31459     /*** IUnknown methods ***/
31460     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
31461         IPlaybackManagerEvents *This,
31462         REFIID riid,
31463         void **ppvObject);
31464 
31465     ULONG (STDMETHODCALLTYPE *AddRef)(
31466         IPlaybackManagerEvents *This);
31467 
31468     ULONG (STDMETHODCALLTYPE *Release)(
31469         IPlaybackManagerEvents *This);
31470 
31471     /*** IPlaybackManagerEvents methods ***/
31472     HRESULT (STDMETHODCALLTYPE *OnPlaybackManagerEvent)(
31473         IPlaybackManagerEvents *This,
31474         DWORD dwSessionId,
31475         PBM_EVENT mediaEvent);
31476 
31477     END_INTERFACE
31478 } IPlaybackManagerEventsVtbl;
31479 
31480 interface IPlaybackManagerEvents {
31481     CONST_VTBL IPlaybackManagerEventsVtbl* lpVtbl;
31482 };
31483 
31484 #ifdef COBJMACROS
31485 #ifndef WIDL_C_INLINE_WRAPPERS
31486 /*** IUnknown methods ***/
31487 #define IPlaybackManagerEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
31488 #define IPlaybackManagerEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
31489 #define IPlaybackManagerEvents_Release(This) (This)->lpVtbl->Release(This)
31490 /*** IPlaybackManagerEvents methods ***/
31491 #define IPlaybackManagerEvents_OnPlaybackManagerEvent(This,dwSessionId,mediaEvent) (This)->lpVtbl->OnPlaybackManagerEvent(This,dwSessionId,mediaEvent)
31492 #else
31493 /*** IUnknown methods ***/
31494 static FORCEINLINE HRESULT IPlaybackManagerEvents_QueryInterface(IPlaybackManagerEvents* This,REFIID riid,void **ppvObject) {
31495     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
31496 }
31497 static FORCEINLINE ULONG IPlaybackManagerEvents_AddRef(IPlaybackManagerEvents* This) {
31498     return This->lpVtbl->AddRef(This);
31499 }
31500 static FORCEINLINE ULONG IPlaybackManagerEvents_Release(IPlaybackManagerEvents* This) {
31501     return This->lpVtbl->Release(This);
31502 }
31503 /*** IPlaybackManagerEvents methods ***/
31504 static FORCEINLINE HRESULT IPlaybackManagerEvents_OnPlaybackManagerEvent(IPlaybackManagerEvents* This,DWORD dwSessionId,PBM_EVENT mediaEvent) {
31505     return This->lpVtbl->OnPlaybackManagerEvent(This,dwSessionId,mediaEvent);
31506 }
31507 #endif
31508 #endif
31509 
31510 #endif
31511 
31512 
31513 #endif  /* __IPlaybackManagerEvents_INTERFACE_DEFINED__ */
31514 
31515 
31516 typedef enum PBM_SESSION_TYPE {
31517     ST_COMMUNICATION = 1,
31518     ST_MEDIA = 2
31519 } PBM_SESSION_TYPE;
31520 
31521 typedef enum PBM_PLAY_STATE {
31522     PS_PLAYING = 1,
31523     PS_PAUSED = 2,
31524     PS_STOPPED = 3
31525 } PBM_PLAY_STATE;
31526 
31527 typedef enum PBM_MUTE_STATE {
31528     MS_MUTED = 1,
31529     MS_UNMUTED = 2
31530 } PBM_MUTE_STATE;
31531 
31532 /*****************************************************************************
31533  * IPlaybackManager interface
31534  */
31535 #ifndef __IPlaybackManager_INTERFACE_DEFINED__
31536 #define __IPlaybackManager_INTERFACE_DEFINED__
31537 
31538 DEFINE_GUID(IID_IPlaybackManager, 0x0f3c1b01, 0x8199, 0x4173, 0xba,0x78, 0x98,0x58,0x82,0x26,0x6f,0x7a);
31539 #if defined(__cplusplus) && !defined(CINTERFACE)
31540 MIDL_INTERFACE("0f3c1b01-8199-4173-ba78-985882266f7a")
31541 IPlaybackManager : public IUnknown
31542 {
31543     virtual HRESULT STDMETHODCALLTYPE Advise(
31544         PBM_SESSION_TYPE type,
31545         IPlaybackManagerEvents *pEvents,
31546         DWORD *pdwSessionId) = 0;
31547 
31548     virtual HRESULT STDMETHODCALLTYPE Unadvise(
31549         DWORD dwSessionId) = 0;
31550 
31551     virtual HRESULT STDMETHODCALLTYPE ChangeSessionState(
31552         DWORD dwSessionId,
31553         PBM_PLAY_STATE state,
31554         PBM_MUTE_STATE mute) = 0;
31555 
31556 };
31557 #ifdef __CRT_UUID_DECL
31558 __CRT_UUID_DECL(IPlaybackManager, 0x0f3c1b01, 0x8199, 0x4173, 0xba,0x78, 0x98,0x58,0x82,0x26,0x6f,0x7a)
31559 #endif
31560 #else
31561 typedef struct IPlaybackManagerVtbl {
31562     BEGIN_INTERFACE
31563 
31564     /*** IUnknown methods ***/
31565     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
31566         IPlaybackManager *This,
31567         REFIID riid,
31568         void **ppvObject);
31569 
31570     ULONG (STDMETHODCALLTYPE *AddRef)(
31571         IPlaybackManager *This);
31572 
31573     ULONG (STDMETHODCALLTYPE *Release)(
31574         IPlaybackManager *This);
31575 
31576     /*** IPlaybackManager methods ***/
31577     HRESULT (STDMETHODCALLTYPE *Advise)(
31578         IPlaybackManager *This,
31579         PBM_SESSION_TYPE type,
31580         IPlaybackManagerEvents *pEvents,
31581         DWORD *pdwSessionId);
31582 
31583     HRESULT (STDMETHODCALLTYPE *Unadvise)(
31584         IPlaybackManager *This,
31585         DWORD dwSessionId);
31586 
31587     HRESULT (STDMETHODCALLTYPE *ChangeSessionState)(
31588         IPlaybackManager *This,
31589         DWORD dwSessionId,
31590         PBM_PLAY_STATE state,
31591         PBM_MUTE_STATE mute);
31592 
31593     END_INTERFACE
31594 } IPlaybackManagerVtbl;
31595 
31596 interface IPlaybackManager {
31597     CONST_VTBL IPlaybackManagerVtbl* lpVtbl;
31598 };
31599 
31600 #ifdef COBJMACROS
31601 #ifndef WIDL_C_INLINE_WRAPPERS
31602 /*** IUnknown methods ***/
31603 #define IPlaybackManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
31604 #define IPlaybackManager_AddRef(This) (This)->lpVtbl->AddRef(This)
31605 #define IPlaybackManager_Release(This) (This)->lpVtbl->Release(This)
31606 /*** IPlaybackManager methods ***/
31607 #define IPlaybackManager_Advise(This,type,pEvents,pdwSessionId) (This)->lpVtbl->Advise(This,type,pEvents,pdwSessionId)
31608 #define IPlaybackManager_Unadvise(This,dwSessionId) (This)->lpVtbl->Unadvise(This,dwSessionId)
31609 #define IPlaybackManager_ChangeSessionState(This,dwSessionId,state,mute) (This)->lpVtbl->ChangeSessionState(This,dwSessionId,state,mute)
31610 #else
31611 /*** IUnknown methods ***/
31612 static FORCEINLINE HRESULT IPlaybackManager_QueryInterface(IPlaybackManager* This,REFIID riid,void **ppvObject) {
31613     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
31614 }
31615 static FORCEINLINE ULONG IPlaybackManager_AddRef(IPlaybackManager* This) {
31616     return This->lpVtbl->AddRef(This);
31617 }
31618 static FORCEINLINE ULONG IPlaybackManager_Release(IPlaybackManager* This) {
31619     return This->lpVtbl->Release(This);
31620 }
31621 /*** IPlaybackManager methods ***/
31622 static FORCEINLINE HRESULT IPlaybackManager_Advise(IPlaybackManager* This,PBM_SESSION_TYPE type,IPlaybackManagerEvents *pEvents,DWORD *pdwSessionId) {
31623     return This->lpVtbl->Advise(This,type,pEvents,pdwSessionId);
31624 }
31625 static FORCEINLINE HRESULT IPlaybackManager_Unadvise(IPlaybackManager* This,DWORD dwSessionId) {
31626     return This->lpVtbl->Unadvise(This,dwSessionId);
31627 }
31628 static FORCEINLINE HRESULT IPlaybackManager_ChangeSessionState(IPlaybackManager* This,DWORD dwSessionId,PBM_PLAY_STATE state,PBM_MUTE_STATE mute) {
31629     return This->lpVtbl->ChangeSessionState(This,dwSessionId,state,mute);
31630 }
31631 #endif
31632 #endif
31633 
31634 #endif
31635 
31636 
31637 #endif  /* __IPlaybackManager_INTERFACE_DEFINED__ */
31638 
31639 
31640 typedef enum DEFAULT_FOLDER_MENU_RESTRICTIONS {
31641     DFMR_DEFAULT = 0x0,
31642     DFMR_NO_STATIC_VERBS = 0x8,
31643     DFMR_STATIC_VERBS_ONLY = 0x10,
31644     DFMR_NO_RESOURCE_VERBS = 0x20,
31645     DFMR_OPTIN_HANDLERS_ONLY = 0x40,
31646     DFMR_RESOURCE_AND_FOLDER_VERBS_ONLY = 0x80,
31647     DFMR_USE_SPECIFIED_HANDLERS = 0x100,
31648     DFMR_USE_SPECIFIED_VERBS = 0x200,
31649     DFMR_NO_ASYNC_VERBS = 0x400
31650 } DEFAULT_FOLDER_MENU_RESTRICTIONS;
31651 
31652 DEFINE_ENUM_FLAG_OPERATORS(DEFAULT_FOLDER_MENU_RESTRICTIONS)
31653 
31654 /*****************************************************************************
31655  * IDefaultFolderMenuInitialize interface
31656  */
31657 #ifndef __IDefaultFolderMenuInitialize_INTERFACE_DEFINED__
31658 #define __IDefaultFolderMenuInitialize_INTERFACE_DEFINED__
31659 
31660 DEFINE_GUID(IID_IDefaultFolderMenuInitialize, 0x7690aa79, 0xf8fc, 0x4615, 0xa3,0x27, 0x36,0xf7,0xd1,0x8f,0x5d,0x91);
31661 #if defined(__cplusplus) && !defined(CINTERFACE)
31662 MIDL_INTERFACE("7690aa79-f8fc-4615-a327-36f7d18f5d91")
31663 IDefaultFolderMenuInitialize : public IUnknown
31664 {
31665     virtual HRESULT STDMETHODCALLTYPE Initialize(
31666         HWND hwnd,
31667         IContextMenuCB *pcmcb,
31668         PCIDLIST_ABSOLUTE pidlFolder,
31669         IShellFolder *psf,
31670         UINT cidl,
31671         PCUITEMID_CHILD_ARRAY apidl,
31672         IUnknown *punkAssociation,
31673         UINT cKeys,
31674         const HKEY *aKeys) = 0;
31675 
31676     virtual HRESULT STDMETHODCALLTYPE SetMenuRestrictions(
31677         DEFAULT_FOLDER_MENU_RESTRICTIONS dfmrValues) = 0;
31678 
31679     virtual HRESULT STDMETHODCALLTYPE GetMenuRestrictions(
31680         DEFAULT_FOLDER_MENU_RESTRICTIONS dfmrMask,
31681         DEFAULT_FOLDER_MENU_RESTRICTIONS *pdfmrValues) = 0;
31682 
31683     virtual HRESULT STDMETHODCALLTYPE SetHandlerClsid(
31684         REFCLSID rclsid) = 0;
31685 
31686 };
31687 #ifdef __CRT_UUID_DECL
31688 __CRT_UUID_DECL(IDefaultFolderMenuInitialize, 0x7690aa79, 0xf8fc, 0x4615, 0xa3,0x27, 0x36,0xf7,0xd1,0x8f,0x5d,0x91)
31689 #endif
31690 #else
31691 typedef struct IDefaultFolderMenuInitializeVtbl {
31692     BEGIN_INTERFACE
31693 
31694     /*** IUnknown methods ***/
31695     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
31696         IDefaultFolderMenuInitialize *This,
31697         REFIID riid,
31698         void **ppvObject);
31699 
31700     ULONG (STDMETHODCALLTYPE *AddRef)(
31701         IDefaultFolderMenuInitialize *This);
31702 
31703     ULONG (STDMETHODCALLTYPE *Release)(
31704         IDefaultFolderMenuInitialize *This);
31705 
31706     /*** IDefaultFolderMenuInitialize methods ***/
31707     HRESULT (STDMETHODCALLTYPE *Initialize)(
31708         IDefaultFolderMenuInitialize *This,
31709         HWND hwnd,
31710         IContextMenuCB *pcmcb,
31711         PCIDLIST_ABSOLUTE pidlFolder,
31712         IShellFolder *psf,
31713         UINT cidl,
31714         PCUITEMID_CHILD_ARRAY apidl,
31715         IUnknown *punkAssociation,
31716         UINT cKeys,
31717         const HKEY *aKeys);
31718 
31719     HRESULT (STDMETHODCALLTYPE *SetMenuRestrictions)(
31720         IDefaultFolderMenuInitialize *This,
31721         DEFAULT_FOLDER_MENU_RESTRICTIONS dfmrValues);
31722 
31723     HRESULT (STDMETHODCALLTYPE *GetMenuRestrictions)(
31724         IDefaultFolderMenuInitialize *This,
31725         DEFAULT_FOLDER_MENU_RESTRICTIONS dfmrMask,
31726         DEFAULT_FOLDER_MENU_RESTRICTIONS *pdfmrValues);
31727 
31728     HRESULT (STDMETHODCALLTYPE *SetHandlerClsid)(
31729         IDefaultFolderMenuInitialize *This,
31730         REFCLSID rclsid);
31731 
31732     END_INTERFACE
31733 } IDefaultFolderMenuInitializeVtbl;
31734 
31735 interface IDefaultFolderMenuInitialize {
31736     CONST_VTBL IDefaultFolderMenuInitializeVtbl* lpVtbl;
31737 };
31738 
31739 #ifdef COBJMACROS
31740 #ifndef WIDL_C_INLINE_WRAPPERS
31741 /*** IUnknown methods ***/
31742 #define IDefaultFolderMenuInitialize_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
31743 #define IDefaultFolderMenuInitialize_AddRef(This) (This)->lpVtbl->AddRef(This)
31744 #define IDefaultFolderMenuInitialize_Release(This) (This)->lpVtbl->Release(This)
31745 /*** IDefaultFolderMenuInitialize methods ***/
31746 #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)
31747 #define IDefaultFolderMenuInitialize_SetMenuRestrictions(This,dfmrValues) (This)->lpVtbl->SetMenuRestrictions(This,dfmrValues)
31748 #define IDefaultFolderMenuInitialize_GetMenuRestrictions(This,dfmrMask,pdfmrValues) (This)->lpVtbl->GetMenuRestrictions(This,dfmrMask,pdfmrValues)
31749 #define IDefaultFolderMenuInitialize_SetHandlerClsid(This,rclsid) (This)->lpVtbl->SetHandlerClsid(This,rclsid)
31750 #else
31751 /*** IUnknown methods ***/
31752 static FORCEINLINE HRESULT IDefaultFolderMenuInitialize_QueryInterface(IDefaultFolderMenuInitialize* This,REFIID riid,void **ppvObject) {
31753     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
31754 }
31755 static FORCEINLINE ULONG IDefaultFolderMenuInitialize_AddRef(IDefaultFolderMenuInitialize* This) {
31756     return This->lpVtbl->AddRef(This);
31757 }
31758 static FORCEINLINE ULONG IDefaultFolderMenuInitialize_Release(IDefaultFolderMenuInitialize* This) {
31759     return This->lpVtbl->Release(This);
31760 }
31761 /*** IDefaultFolderMenuInitialize methods ***/
31762 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) {
31763     return This->lpVtbl->Initialize(This,hwnd,pcmcb,pidlFolder,psf,cidl,apidl,punkAssociation,cKeys,aKeys);
31764 }
31765 static FORCEINLINE HRESULT IDefaultFolderMenuInitialize_SetMenuRestrictions(IDefaultFolderMenuInitialize* This,DEFAULT_FOLDER_MENU_RESTRICTIONS dfmrValues) {
31766     return This->lpVtbl->SetMenuRestrictions(This,dfmrValues);
31767 }
31768 static FORCEINLINE HRESULT IDefaultFolderMenuInitialize_GetMenuRestrictions(IDefaultFolderMenuInitialize* This,DEFAULT_FOLDER_MENU_RESTRICTIONS dfmrMask,DEFAULT_FOLDER_MENU_RESTRICTIONS *pdfmrValues) {
31769     return This->lpVtbl->GetMenuRestrictions(This,dfmrMask,pdfmrValues);
31770 }
31771 static FORCEINLINE HRESULT IDefaultFolderMenuInitialize_SetHandlerClsid(IDefaultFolderMenuInitialize* This,REFCLSID rclsid) {
31772     return This->lpVtbl->SetHandlerClsid(This,rclsid);
31773 }
31774 #endif
31775 #endif
31776 
31777 #endif
31778 
31779 
31780 #endif  /* __IDefaultFolderMenuInitialize_INTERFACE_DEFINED__ */
31781 
31782 
31783 #if NTDDI_VERSION >= NTDDI_WIN8
31784 typedef enum ACTIVATEOPTIONS {
31785     AO_NONE = 0x0,
31786     AO_DESIGNMODE = 0x1,
31787     AO_NOERRORUI = 0x2,
31788     AO_NOSPLASHSCREEN = 0x4
31789 } ACTIVATEOPTIONS;
31790 
31791 DEFINE_ENUM_FLAG_OPERATORS(ACTIVATEOPTIONS)
31792 
31793 /*****************************************************************************
31794  * IApplicationActivationManager interface
31795  */
31796 #ifndef __IApplicationActivationManager_INTERFACE_DEFINED__
31797 #define __IApplicationActivationManager_INTERFACE_DEFINED__
31798 
31799 DEFINE_GUID(IID_IApplicationActivationManager, 0x2e941141, 0x7f97, 0x4756, 0xba,0x1d, 0x9d,0xec,0xde,0x89,0x4a,0x3d);
31800 #if defined(__cplusplus) && !defined(CINTERFACE)
31801 MIDL_INTERFACE("2e941141-7f97-4756-ba1d-9decde894a3d")
31802 IApplicationActivationManager : public IUnknown
31803 {
31804     virtual HRESULT STDMETHODCALLTYPE ActivateApplication(
31805         LPCWSTR appUserModelId,
31806         LPCWSTR arguments,
31807         ACTIVATEOPTIONS options,
31808         DWORD *processId) = 0;
31809 
31810     virtual HRESULT STDMETHODCALLTYPE ActivateForFile(
31811         LPCWSTR appUserModelId,
31812         IShellItemArray *itemArray,
31813         LPCWSTR verb,
31814         DWORD *processId) = 0;
31815 
31816     virtual HRESULT STDMETHODCALLTYPE ActivateForProtocol(
31817         LPCWSTR appUserModelId,
31818         IShellItemArray *itemArray,
31819         DWORD *processId) = 0;
31820 
31821 };
31822 #ifdef __CRT_UUID_DECL
31823 __CRT_UUID_DECL(IApplicationActivationManager, 0x2e941141, 0x7f97, 0x4756, 0xba,0x1d, 0x9d,0xec,0xde,0x89,0x4a,0x3d)
31824 #endif
31825 #else
31826 typedef struct IApplicationActivationManagerVtbl {
31827     BEGIN_INTERFACE
31828 
31829     /*** IUnknown methods ***/
31830     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
31831         IApplicationActivationManager *This,
31832         REFIID riid,
31833         void **ppvObject);
31834 
31835     ULONG (STDMETHODCALLTYPE *AddRef)(
31836         IApplicationActivationManager *This);
31837 
31838     ULONG (STDMETHODCALLTYPE *Release)(
31839         IApplicationActivationManager *This);
31840 
31841     /*** IApplicationActivationManager methods ***/
31842     HRESULT (STDMETHODCALLTYPE *ActivateApplication)(
31843         IApplicationActivationManager *This,
31844         LPCWSTR appUserModelId,
31845         LPCWSTR arguments,
31846         ACTIVATEOPTIONS options,
31847         DWORD *processId);
31848 
31849     HRESULT (STDMETHODCALLTYPE *ActivateForFile)(
31850         IApplicationActivationManager *This,
31851         LPCWSTR appUserModelId,
31852         IShellItemArray *itemArray,
31853         LPCWSTR verb,
31854         DWORD *processId);
31855 
31856     HRESULT (STDMETHODCALLTYPE *ActivateForProtocol)(
31857         IApplicationActivationManager *This,
31858         LPCWSTR appUserModelId,
31859         IShellItemArray *itemArray,
31860         DWORD *processId);
31861 
31862     END_INTERFACE
31863 } IApplicationActivationManagerVtbl;
31864 
31865 interface IApplicationActivationManager {
31866     CONST_VTBL IApplicationActivationManagerVtbl* lpVtbl;
31867 };
31868 
31869 #ifdef COBJMACROS
31870 #ifndef WIDL_C_INLINE_WRAPPERS
31871 /*** IUnknown methods ***/
31872 #define IApplicationActivationManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
31873 #define IApplicationActivationManager_AddRef(This) (This)->lpVtbl->AddRef(This)
31874 #define IApplicationActivationManager_Release(This) (This)->lpVtbl->Release(This)
31875 /*** IApplicationActivationManager methods ***/
31876 #define IApplicationActivationManager_ActivateApplication(This,appUserModelId,arguments,options,processId) (This)->lpVtbl->ActivateApplication(This,appUserModelId,arguments,options,processId)
31877 #define IApplicationActivationManager_ActivateForFile(This,appUserModelId,itemArray,verb,processId) (This)->lpVtbl->ActivateForFile(This,appUserModelId,itemArray,verb,processId)
31878 #define IApplicationActivationManager_ActivateForProtocol(This,appUserModelId,itemArray,processId) (This)->lpVtbl->ActivateForProtocol(This,appUserModelId,itemArray,processId)
31879 #else
31880 /*** IUnknown methods ***/
31881 static FORCEINLINE HRESULT IApplicationActivationManager_QueryInterface(IApplicationActivationManager* This,REFIID riid,void **ppvObject) {
31882     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
31883 }
31884 static FORCEINLINE ULONG IApplicationActivationManager_AddRef(IApplicationActivationManager* This) {
31885     return This->lpVtbl->AddRef(This);
31886 }
31887 static FORCEINLINE ULONG IApplicationActivationManager_Release(IApplicationActivationManager* This) {
31888     return This->lpVtbl->Release(This);
31889 }
31890 /*** IApplicationActivationManager methods ***/
31891 static FORCEINLINE HRESULT IApplicationActivationManager_ActivateApplication(IApplicationActivationManager* This,LPCWSTR appUserModelId,LPCWSTR arguments,ACTIVATEOPTIONS options,DWORD *processId) {
31892     return This->lpVtbl->ActivateApplication(This,appUserModelId,arguments,options,processId);
31893 }
31894 static FORCEINLINE HRESULT IApplicationActivationManager_ActivateForFile(IApplicationActivationManager* This,LPCWSTR appUserModelId,IShellItemArray *itemArray,LPCWSTR verb,DWORD *processId) {
31895     return This->lpVtbl->ActivateForFile(This,appUserModelId,itemArray,verb,processId);
31896 }
31897 static FORCEINLINE HRESULT IApplicationActivationManager_ActivateForProtocol(IApplicationActivationManager* This,LPCWSTR appUserModelId,IShellItemArray *itemArray,DWORD *processId) {
31898     return This->lpVtbl->ActivateForProtocol(This,appUserModelId,itemArray,processId);
31899 }
31900 #endif
31901 #endif
31902 
31903 #endif
31904 
31905 
31906 #endif  /* __IApplicationActivationManager_INTERFACE_DEFINED__ */
31907 
31908 #endif
31909 
31910 #ifndef __ShellObjects_LIBRARY_DEFINED__
31911 #define __ShellObjects_LIBRARY_DEFINED__
31912 
31913 DEFINE_GUID(LIBID_ShellObjects, 0x50a7e9b1, 0x70ef, 0x11d1, 0xb7,0x5a, 0x00,0xa0,0xc9,0x05,0x64,0xfe);
31914 
31915 /*****************************************************************************
31916  * DesktopWallpaper coclass
31917  */
31918 
31919 DEFINE_GUID(CLSID_DesktopWallpaper, 0xc2cf3110, 0x460e, 0x4fc1, 0xb9,0xd0, 0x8a,0x1c,0x0c,0x9c,0xc4,0xbd);
31920 
31921 #ifdef __cplusplus
31922 class DECLSPEC_UUID("c2cf3110-460e-4fc1-b9d0-8a1c0c9cc4bd") DesktopWallpaper;
31923 #ifdef __CRT_UUID_DECL
31924 __CRT_UUID_DECL(DesktopWallpaper, 0xc2cf3110, 0x460e, 0x4fc1, 0xb9,0xd0, 0x8a,0x1c,0x0c,0x9c,0xc4,0xbd)
31925 #endif
31926 #endif
31927 
31928 /*****************************************************************************
31929  * ShellDesktop coclass
31930  */
31931 
31932 DEFINE_GUID(CLSID_ShellDesktop, 0x00021400, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
31933 
31934 #ifdef __cplusplus
31935 class DECLSPEC_UUID("00021400-0000-0000-c000-000000000046") ShellDesktop;
31936 #ifdef __CRT_UUID_DECL
31937 __CRT_UUID_DECL(ShellDesktop, 0x00021400, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
31938 #endif
31939 #endif
31940 
31941 /*****************************************************************************
31942  * ShellFSFolder coclass
31943  */
31944 
31945 DEFINE_GUID(CLSID_ShellFSFolder, 0xf3364ba0, 0x65b9, 0x11ce, 0xa9,0xba, 0x00,0xaa,0x00,0x4a,0xe8,0x37);
31946 
31947 #ifdef __cplusplus
31948 class DECLSPEC_UUID("f3364ba0-65b9-11ce-a9ba-00aa004ae837") ShellFSFolder;
31949 #ifdef __CRT_UUID_DECL
31950 __CRT_UUID_DECL(ShellFSFolder, 0xf3364ba0, 0x65b9, 0x11ce, 0xa9,0xba, 0x00,0xaa,0x00,0x4a,0xe8,0x37)
31951 #endif
31952 #endif
31953 
31954 /*****************************************************************************
31955  * NetworkPlaces coclass
31956  */
31957 
31958 DEFINE_GUID(CLSID_NetworkPlaces, 0x208d2c60, 0x3aea, 0x1069, 0xa2,0xd7, 0x08,0x00,0x2b,0x30,0x30,0x9d);
31959 
31960 #ifdef __cplusplus
31961 class DECLSPEC_UUID("208d2c60-3aea-1069-a2d7-08002b30309d") NetworkPlaces;
31962 #ifdef __CRT_UUID_DECL
31963 __CRT_UUID_DECL(NetworkPlaces, 0x208d2c60, 0x3aea, 0x1069, 0xa2,0xd7, 0x08,0x00,0x2b,0x30,0x30,0x9d)
31964 #endif
31965 #endif
31966 
31967 /*****************************************************************************
31968  * ShellLink coclass
31969  */
31970 
31971 DEFINE_GUID(CLSID_ShellLink, 0x00021401, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
31972 
31973 #ifdef __cplusplus
31974 class DECLSPEC_UUID("00021401-0000-0000-c000-000000000046") ShellLink;
31975 #ifdef __CRT_UUID_DECL
31976 __CRT_UUID_DECL(ShellLink, 0x00021401, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
31977 #endif
31978 #endif
31979 
31980 /*****************************************************************************
31981  * QueryCancelAutoPlay coclass
31982  */
31983 
31984 DEFINE_GUID(CLSID_QueryCancelAutoPlay, 0x331f1768, 0x05a9, 0x4ddd, 0xb8,0x6e, 0xda,0xe3,0x4d,0xdc,0x99,0x8a);
31985 
31986 #ifdef __cplusplus
31987 class DECLSPEC_UUID("331f1768-05a9-4ddd-b86e-dae34ddc998a") QueryCancelAutoPlay;
31988 #ifdef __CRT_UUID_DECL
31989 __CRT_UUID_DECL(QueryCancelAutoPlay, 0x331f1768, 0x05a9, 0x4ddd, 0xb8,0x6e, 0xda,0xe3,0x4d,0xdc,0x99,0x8a)
31990 #endif
31991 #endif
31992 
31993 /*****************************************************************************
31994  * DriveSizeCategorizer coclass
31995  */
31996 
31997 DEFINE_GUID(CLSID_DriveSizeCategorizer, 0x94357b53, 0xca29, 0x4b78, 0x83,0xae, 0xe8,0xfe,0x74,0x09,0x13,0x4f);
31998 
31999 #ifdef __cplusplus
32000 class DECLSPEC_UUID("94357b53-ca29-4b78-83ae-e8fe7409134f") DriveSizeCategorizer;
32001 #ifdef __CRT_UUID_DECL
32002 __CRT_UUID_DECL(DriveSizeCategorizer, 0x94357b53, 0xca29, 0x4b78, 0x83,0xae, 0xe8,0xfe,0x74,0x09,0x13,0x4f)
32003 #endif
32004 #endif
32005 
32006 /*****************************************************************************
32007  * DriveTypeCategorizer coclass
32008  */
32009 
32010 DEFINE_GUID(CLSID_DriveTypeCategorizer, 0xb0a8f3cf, 0x4333, 0x4bab, 0x88,0x73, 0x1c,0xcb,0x1c,0xad,0xa4,0x8b);
32011 
32012 #ifdef __cplusplus
32013 class DECLSPEC_UUID("b0a8f3cf-4333-4bab-8873-1ccb1cada48b") DriveTypeCategorizer;
32014 #ifdef __CRT_UUID_DECL
32015 __CRT_UUID_DECL(DriveTypeCategorizer, 0xb0a8f3cf, 0x4333, 0x4bab, 0x88,0x73, 0x1c,0xcb,0x1c,0xad,0xa4,0x8b)
32016 #endif
32017 #endif
32018 
32019 /*****************************************************************************
32020  * FreeSpaceCategorizer coclass
32021  */
32022 
32023 DEFINE_GUID(CLSID_FreeSpaceCategorizer, 0xb5607793, 0x24ac, 0x44c7, 0x82,0xe2, 0x83,0x17,0x26,0xaa,0x6c,0xb7);
32024 
32025 #ifdef __cplusplus
32026 class DECLSPEC_UUID("b5607793-24ac-44c7-82e2-831726aa6cb7") FreeSpaceCategorizer;
32027 #ifdef __CRT_UUID_DECL
32028 __CRT_UUID_DECL(FreeSpaceCategorizer, 0xb5607793, 0x24ac, 0x44c7, 0x82,0xe2, 0x83,0x17,0x26,0xaa,0x6c,0xb7)
32029 #endif
32030 #endif
32031 
32032 /*****************************************************************************
32033  * TimeCategorizer coclass
32034  */
32035 
32036 DEFINE_GUID(CLSID_TimeCategorizer, 0x3bb4118f, 0xddfd, 0x4d30, 0xa3,0x48, 0x9f,0xb5,0xd6,0xbf,0x1a,0xfe);
32037 
32038 #ifdef __cplusplus
32039 class DECLSPEC_UUID("3bb4118f-ddfd-4d30-a348-9fb5d6bf1afe") TimeCategorizer;
32040 #ifdef __CRT_UUID_DECL
32041 __CRT_UUID_DECL(TimeCategorizer, 0x3bb4118f, 0xddfd, 0x4d30, 0xa3,0x48, 0x9f,0xb5,0xd6,0xbf,0x1a,0xfe)
32042 #endif
32043 #endif
32044 
32045 /*****************************************************************************
32046  * SizeCategorizer coclass
32047  */
32048 
32049 DEFINE_GUID(CLSID_SizeCategorizer, 0x55d7b852, 0xf6d1, 0x42f2, 0xaa,0x75, 0x87,0x28,0xa1,0xb2,0xd2,0x64);
32050 
32051 #ifdef __cplusplus
32052 class DECLSPEC_UUID("55d7b852-f6d1-42f2-aa75-8728a1b2d264") SizeCategorizer;
32053 #ifdef __CRT_UUID_DECL
32054 __CRT_UUID_DECL(SizeCategorizer, 0x55d7b852, 0xf6d1, 0x42f2, 0xaa,0x75, 0x87,0x28,0xa1,0xb2,0xd2,0x64)
32055 #endif
32056 #endif
32057 
32058 /*****************************************************************************
32059  * AlphabeticalCategorizer coclass
32060  */
32061 
32062 DEFINE_GUID(CLSID_AlphabeticalCategorizer, 0x3c2654c6, 0x7372, 0x4f6b, 0xb3,0x10, 0x55,0xd6,0x12,0x8f,0x49,0xd2);
32063 
32064 #ifdef __cplusplus
32065 class DECLSPEC_UUID("3c2654c6-7372-4f6b-b310-55d6128f49d2") AlphabeticalCategorizer;
32066 #ifdef __CRT_UUID_DECL
32067 __CRT_UUID_DECL(AlphabeticalCategorizer, 0x3c2654c6, 0x7372, 0x4f6b, 0xb3,0x10, 0x55,0xd6,0x12,0x8f,0x49,0xd2)
32068 #endif
32069 #endif
32070 
32071 /*****************************************************************************
32072  * MergedCategorizer coclass
32073  */
32074 
32075 DEFINE_GUID(CLSID_MergedCategorizer, 0x8e827c11, 0x33e7, 0x4bc1, 0xb2,0x42, 0x8c,0xd9,0xa1,0xc2,0xb3,0x04);
32076 
32077 #ifdef __cplusplus
32078 class DECLSPEC_UUID("8e827c11-33e7-4bc1-b242-8cd9a1c2b304") MergedCategorizer;
32079 #ifdef __CRT_UUID_DECL
32080 __CRT_UUID_DECL(MergedCategorizer, 0x8e827c11, 0x33e7, 0x4bc1, 0xb2,0x42, 0x8c,0xd9,0xa1,0xc2,0xb3,0x04)
32081 #endif
32082 #endif
32083 
32084 /*****************************************************************************
32085  * ImageProperties coclass
32086  */
32087 
32088 DEFINE_GUID(CLSID_ImageProperties, 0x7ab770c7, 0x0e23, 0x4d7a, 0x8a,0xa2, 0x19,0xbf,0xad,0x47,0x98,0x29);
32089 
32090 #ifdef __cplusplus
32091 class DECLSPEC_UUID("7ab770c7-0e23-4d7a-8aa2-19bfad479829") ImageProperties;
32092 #ifdef __CRT_UUID_DECL
32093 __CRT_UUID_DECL(ImageProperties, 0x7ab770c7, 0x0e23, 0x4d7a, 0x8a,0xa2, 0x19,0xbf,0xad,0x47,0x98,0x29)
32094 #endif
32095 #endif
32096 
32097 /*****************************************************************************
32098  * PropertiesUI coclass
32099  */
32100 
32101 DEFINE_GUID(CLSID_PropertiesUI, 0xd912f8cf, 0x0396, 0x4915, 0x88,0x4e, 0xfb,0x42,0x5d,0x32,0x94,0x3b);
32102 
32103 #ifdef __cplusplus
32104 class DECLSPEC_UUID("d912f8cf-0396-4915-884e-fb425d32943b") PropertiesUI;
32105 #ifdef __CRT_UUID_DECL
32106 __CRT_UUID_DECL(PropertiesUI, 0xd912f8cf, 0x0396, 0x4915, 0x88,0x4e, 0xfb,0x42,0x5d,0x32,0x94,0x3b)
32107 #endif
32108 #endif
32109 
32110 /*****************************************************************************
32111  * UserNotification coclass
32112  */
32113 
32114 DEFINE_GUID(CLSID_UserNotification, 0x0010890e, 0x8789, 0x413c, 0xad,0xbc, 0x48,0xf5,0xb5,0x11,0xb3,0xaf);
32115 
32116 #ifdef __cplusplus
32117 class DECLSPEC_UUID("0010890e-8789-413c-adbc-48f5b511b3af") UserNotification;
32118 #ifdef __CRT_UUID_DECL
32119 __CRT_UUID_DECL(UserNotification, 0x0010890e, 0x8789, 0x413c, 0xad,0xbc, 0x48,0xf5,0xb5,0x11,0xb3,0xaf)
32120 #endif
32121 #endif
32122 
32123 /*****************************************************************************
32124  * CDBurn coclass
32125  */
32126 
32127 DEFINE_GUID(CLSID_CDBurn, 0xfbeb8a05, 0xbeee, 0x4442, 0x80,0x4e, 0x40,0x9d,0x6c,0x45,0x15,0xe9);
32128 
32129 #ifdef __cplusplus
32130 class DECLSPEC_UUID("fbeb8a05-beee-4442-804e-409d6c4515e9") CDBurn;
32131 #ifdef __CRT_UUID_DECL
32132 __CRT_UUID_DECL(CDBurn, 0xfbeb8a05, 0xbeee, 0x4442, 0x80,0x4e, 0x40,0x9d,0x6c,0x45,0x15,0xe9)
32133 #endif
32134 #endif
32135 
32136 /*****************************************************************************
32137  * TaskbarList coclass
32138  */
32139 
32140 DEFINE_GUID(CLSID_TaskbarList, 0x56fdf344, 0xfd6d, 0x11d0, 0x95,0x8a, 0x00,0x60,0x97,0xc9,0xa0,0x90);
32141 
32142 #ifdef __cplusplus
32143 class DECLSPEC_UUID("56fdf344-fd6d-11d0-958a-006097c9a090") TaskbarList;
32144 #ifdef __CRT_UUID_DECL
32145 __CRT_UUID_DECL(TaskbarList, 0x56fdf344, 0xfd6d, 0x11d0, 0x95,0x8a, 0x00,0x60,0x97,0xc9,0xa0,0x90)
32146 #endif
32147 #endif
32148 
32149 /*****************************************************************************
32150  * StartMenuPin coclass
32151  */
32152 
32153 DEFINE_GUID(CLSID_StartMenuPin, 0xa2a9545d, 0xa0c2, 0x42b4, 0x97,0x08, 0xa0,0xb2,0xba,0xdd,0x77,0xc8);
32154 
32155 #ifdef __cplusplus
32156 class DECLSPEC_UUID("a2a9545d-a0c2-42b4-9708-a0b2badd77c8") StartMenuPin;
32157 #ifdef __CRT_UUID_DECL
32158 __CRT_UUID_DECL(StartMenuPin, 0xa2a9545d, 0xa0c2, 0x42b4, 0x97,0x08, 0xa0,0xb2,0xba,0xdd,0x77,0xc8)
32159 #endif
32160 #endif
32161 
32162 /*****************************************************************************
32163  * WebWizardHost coclass
32164  */
32165 
32166 DEFINE_GUID(CLSID_WebWizardHost, 0xc827f149, 0x55c1, 0x4d28, 0x93,0x5e, 0x57,0xe4,0x7c,0xae,0xd9,0x73);
32167 
32168 #ifdef __cplusplus
32169 class DECLSPEC_UUID("c827f149-55c1-4d28-935e-57e47caed973") WebWizardHost;
32170 #ifdef __CRT_UUID_DECL
32171 __CRT_UUID_DECL(WebWizardHost, 0xc827f149, 0x55c1, 0x4d28, 0x93,0x5e, 0x57,0xe4,0x7c,0xae,0xd9,0x73)
32172 #endif
32173 #endif
32174 
32175 /*****************************************************************************
32176  * PublishDropTarget coclass
32177  */
32178 
32179 DEFINE_GUID(CLSID_PublishDropTarget, 0xcc6eeffb, 0x43f6, 0x46c5, 0x96,0x19, 0x51,0xd5,0x71,0x96,0x7f,0x7d);
32180 
32181 #ifdef __cplusplus
32182 class DECLSPEC_UUID("cc6eeffb-43f6-46c5-9619-51d571967f7d") PublishDropTarget;
32183 #ifdef __CRT_UUID_DECL
32184 __CRT_UUID_DECL(PublishDropTarget, 0xcc6eeffb, 0x43f6, 0x46c5, 0x96,0x19, 0x51,0xd5,0x71,0x96,0x7f,0x7d)
32185 #endif
32186 #endif
32187 
32188 /*****************************************************************************
32189  * PublishingWizard coclass
32190  */
32191 
32192 DEFINE_GUID(CLSID_PublishingWizard, 0x6b33163c, 0x76a5, 0x4b6c, 0xbf,0x21, 0x45,0xde,0x9c,0xd5,0x03,0xa1);
32193 
32194 #ifdef __cplusplus
32195 class DECLSPEC_UUID("6b33163c-76a5-4b6c-bf21-45de9cd503a1") PublishingWizard;
32196 #ifdef __CRT_UUID_DECL
32197 __CRT_UUID_DECL(PublishingWizard, 0x6b33163c, 0x76a5, 0x4b6c, 0xbf,0x21, 0x45,0xde,0x9c,0xd5,0x03,0xa1)
32198 #endif
32199 #endif
32200 
32201 #define SID_PublishingWizard CLSID_PublishingWizard
32202 /*****************************************************************************
32203  * InternetPrintOrdering coclass
32204  */
32205 
32206 DEFINE_GUID(CLSID_InternetPrintOrdering, 0xadd36aa8, 0x751a, 0x4579, 0xa2,0x66, 0xd6,0x6f,0x52,0x02,0xcc,0xbb);
32207 
32208 #ifdef __cplusplus
32209 class DECLSPEC_UUID("add36aa8-751a-4579-a266-d66f5202ccbb") InternetPrintOrdering;
32210 #ifdef __CRT_UUID_DECL
32211 __CRT_UUID_DECL(InternetPrintOrdering, 0xadd36aa8, 0x751a, 0x4579, 0xa2,0x66, 0xd6,0x6f,0x52,0x02,0xcc,0xbb)
32212 #endif
32213 #endif
32214 
32215 /*****************************************************************************
32216  * FolderViewHost coclass
32217  */
32218 
32219 DEFINE_GUID(CLSID_FolderViewHost, 0x20b1cb23, 0x6968, 0x4eb9, 0xb7,0xd4, 0xa6,0x6d,0x00,0xd0,0x7c,0xee);
32220 
32221 #ifdef __cplusplus
32222 class DECLSPEC_UUID("20b1cb23-6968-4eb9-b7d4-a66d00d07cee") FolderViewHost;
32223 #ifdef __CRT_UUID_DECL
32224 __CRT_UUID_DECL(FolderViewHost, 0x20b1cb23, 0x6968, 0x4eb9, 0xb7,0xd4, 0xa6,0x6d,0x00,0xd0,0x7c,0xee)
32225 #endif
32226 #endif
32227 
32228 /*****************************************************************************
32229  * ExplorerBrowser coclass
32230  */
32231 
32232 DEFINE_GUID(CLSID_ExplorerBrowser, 0x71f96385, 0xddd6, 0x48d3, 0xa0,0xc1, 0xae,0x06,0xe8,0xb0,0x55,0xfb);
32233 
32234 #ifdef __cplusplus
32235 class DECLSPEC_UUID("71f96385-ddd6-48d3-a0c1-ae06e8b055fb") ExplorerBrowser;
32236 #ifdef __CRT_UUID_DECL
32237 __CRT_UUID_DECL(ExplorerBrowser, 0x71f96385, 0xddd6, 0x48d3, 0xa0,0xc1, 0xae,0x06,0xe8,0xb0,0x55,0xfb)
32238 #endif
32239 #endif
32240 
32241 /*****************************************************************************
32242  * ImageRecompress coclass
32243  */
32244 
32245 DEFINE_GUID(CLSID_ImageRecompress, 0x6e33091c, 0xd2f8, 0x4740, 0xb5,0x5e, 0x2e,0x11,0xd1,0x47,0x7a,0x2c);
32246 
32247 #ifdef __cplusplus
32248 class DECLSPEC_UUID("6e33091c-d2f8-4740-b55e-2e11d1477a2c") ImageRecompress;
32249 #ifdef __CRT_UUID_DECL
32250 __CRT_UUID_DECL(ImageRecompress, 0x6e33091c, 0xd2f8, 0x4740, 0xb5,0x5e, 0x2e,0x11,0xd1,0x47,0x7a,0x2c)
32251 #endif
32252 #endif
32253 
32254 /*****************************************************************************
32255  * TrayBandSiteService coclass
32256  */
32257 
32258 DEFINE_GUID(CLSID_TrayBandSiteService, 0xf60ad0a0, 0xe5e1, 0x45cb, 0xb5,0x1a, 0xe1,0x5b,0x9f,0x8b,0x29,0x34);
32259 
32260 #ifdef __cplusplus
32261 class DECLSPEC_UUID("f60ad0a0-e5e1-45cb-b51a-e15b9f8b2934") TrayBandSiteService;
32262 #ifdef __CRT_UUID_DECL
32263 __CRT_UUID_DECL(TrayBandSiteService, 0xf60ad0a0, 0xe5e1, 0x45cb, 0xb5,0x1a, 0xe1,0x5b,0x9f,0x8b,0x29,0x34)
32264 #endif
32265 #endif
32266 
32267 /*****************************************************************************
32268  * TrayDeskBand coclass
32269  */
32270 
32271 DEFINE_GUID(CLSID_TrayDeskBand, 0xe6442437, 0x6c68, 0x4f52, 0x94,0xdd, 0x2c,0xfe,0xd2,0x67,0xef,0xb9);
32272 
32273 #ifdef __cplusplus
32274 class DECLSPEC_UUID("e6442437-6c68-4f52-94dd-2cfed267efb9") TrayDeskBand;
32275 #ifdef __CRT_UUID_DECL
32276 __CRT_UUID_DECL(TrayDeskBand, 0xe6442437, 0x6c68, 0x4f52, 0x94,0xdd, 0x2c,0xfe,0xd2,0x67,0xef,0xb9)
32277 #endif
32278 #endif
32279 
32280 /*****************************************************************************
32281  * AttachmentServices coclass
32282  */
32283 
32284 DEFINE_GUID(CLSID_AttachmentServices, 0x4125dd96, 0xe03a, 0x4103, 0x8f,0x70, 0xe0,0x59,0x7d,0x80,0x3b,0x9c);
32285 
32286 #ifdef __cplusplus
32287 class DECLSPEC_UUID("4125dd96-e03a-4103-8f70-e0597d803b9c") AttachmentServices;
32288 #ifdef __CRT_UUID_DECL
32289 __CRT_UUID_DECL(AttachmentServices, 0x4125dd96, 0xe03a, 0x4103, 0x8f,0x70, 0xe0,0x59,0x7d,0x80,0x3b,0x9c)
32290 #endif
32291 #endif
32292 
32293 /*****************************************************************************
32294  * DocPropShellExtension coclass
32295  */
32296 
32297 DEFINE_GUID(CLSID_DocPropShellExtension, 0x883373c3, 0xbf89, 0x11d1, 0xbe,0x35, 0x08,0x00,0x36,0xb1,0x1a,0x03);
32298 
32299 #ifdef __cplusplus
32300 class DECLSPEC_UUID("883373c3-bf89-11d1-be35-080036b11a03") DocPropShellExtension;
32301 #ifdef __CRT_UUID_DECL
32302 __CRT_UUID_DECL(DocPropShellExtension, 0x883373c3, 0xbf89, 0x11d1, 0xbe,0x35, 0x08,0x00,0x36,0xb1,0x1a,0x03)
32303 #endif
32304 #endif
32305 
32306 /*****************************************************************************
32307  * ShellItem coclass
32308  */
32309 
32310 DEFINE_GUID(CLSID_ShellItem, 0x9ac9fbe1, 0xe0a2, 0x4ad6, 0xb4,0xee, 0xe2,0x12,0x01,0x3e,0xa9,0x17);
32311 
32312 #ifdef __cplusplus
32313 class DECLSPEC_UUID("9ac9fbe1-e0a2-4ad6-b4ee-e212013ea917") ShellItem;
32314 #ifdef __CRT_UUID_DECL
32315 __CRT_UUID_DECL(ShellItem, 0x9ac9fbe1, 0xe0a2, 0x4ad6, 0xb4,0xee, 0xe2,0x12,0x01,0x3e,0xa9,0x17)
32316 #endif
32317 #endif
32318 
32319 /*****************************************************************************
32320  * NamespaceWalker coclass
32321  */
32322 
32323 DEFINE_GUID(CLSID_NamespaceWalker, 0x72eb61e0, 0x8672, 0x4303, 0x91,0x75, 0xf2,0xe4,0xc6,0x8b,0x2e,0x7c);
32324 
32325 #ifdef __cplusplus
32326 class DECLSPEC_UUID("72eb61e0-8672-4303-9175-f2e4c68b2e7c") NamespaceWalker;
32327 #ifdef __CRT_UUID_DECL
32328 __CRT_UUID_DECL(NamespaceWalker, 0x72eb61e0, 0x8672, 0x4303, 0x91,0x75, 0xf2,0xe4,0xc6,0x8b,0x2e,0x7c)
32329 #endif
32330 #endif
32331 
32332 /*****************************************************************************
32333  * FileOperation coclass
32334  */
32335 
32336 DEFINE_GUID(CLSID_FileOperation, 0x3ad05575, 0x8857, 0x4850, 0x92,0x77, 0x11,0xb8,0x5b,0xdb,0x8e,0x09);
32337 
32338 #ifdef __cplusplus
32339 class DECLSPEC_UUID("3ad05575-8857-4850-9277-11b85bdb8e09") FileOperation;
32340 #ifdef __CRT_UUID_DECL
32341 __CRT_UUID_DECL(FileOperation, 0x3ad05575, 0x8857, 0x4850, 0x92,0x77, 0x11,0xb8,0x5b,0xdb,0x8e,0x09)
32342 #endif
32343 #endif
32344 
32345 /*****************************************************************************
32346  * FileOpenDialog coclass
32347  */
32348 
32349 DEFINE_GUID(CLSID_FileOpenDialog, 0xdc1c5a9c, 0xe88a, 0x4dde, 0xa5,0xa1, 0x60,0xf8,0x2a,0x20,0xae,0xf7);
32350 
32351 #ifdef __cplusplus
32352 class DECLSPEC_UUID("dc1c5a9c-e88a-4dde-a5a1-60f82a20aef7") FileOpenDialog;
32353 #ifdef __CRT_UUID_DECL
32354 __CRT_UUID_DECL(FileOpenDialog, 0xdc1c5a9c, 0xe88a, 0x4dde, 0xa5,0xa1, 0x60,0xf8,0x2a,0x20,0xae,0xf7)
32355 #endif
32356 #endif
32357 
32358 /*****************************************************************************
32359  * FileSaveDialog coclass
32360  */
32361 
32362 DEFINE_GUID(CLSID_FileSaveDialog, 0xc0b4e2f3, 0xba21, 0x4773, 0x8d,0xba, 0x33,0x5e,0xc9,0x46,0xeb,0x8b);
32363 
32364 #ifdef __cplusplus
32365 class DECLSPEC_UUID("c0b4e2f3-ba21-4773-8dba-335ec946eb8b") FileSaveDialog;
32366 #ifdef __CRT_UUID_DECL
32367 __CRT_UUID_DECL(FileSaveDialog, 0xc0b4e2f3, 0xba21, 0x4773, 0x8d,0xba, 0x33,0x5e,0xc9,0x46,0xeb,0x8b)
32368 #endif
32369 #endif
32370 
32371 /*****************************************************************************
32372  * KnownFolderManager coclass
32373  */
32374 
32375 DEFINE_GUID(CLSID_KnownFolderManager, 0x4df0c730, 0xdf9d, 0x4ae3, 0x91,0x53, 0xaa,0x6b,0x82,0xe9,0x79,0x5a);
32376 
32377 #ifdef __cplusplus
32378 class DECLSPEC_UUID("4df0c730-df9d-4ae3-9153-aa6b82e9795a") KnownFolderManager;
32379 #ifdef __CRT_UUID_DECL
32380 __CRT_UUID_DECL(KnownFolderManager, 0x4df0c730, 0xdf9d, 0x4ae3, 0x91,0x53, 0xaa,0x6b,0x82,0xe9,0x79,0x5a)
32381 #endif
32382 #endif
32383 
32384 /*****************************************************************************
32385  * FSCopyHandler coclass
32386  */
32387 
32388 DEFINE_GUID(CLSID_FSCopyHandler, 0xd197380a, 0x0a79, 0x4dc8, 0xa0,0x33, 0xed,0x88,0x2c,0x2f,0xa1,0x4b);
32389 
32390 #ifdef __cplusplus
32391 class DECLSPEC_UUID("d197380a-0a79-4dc8-a033-ed882c2fa14b") FSCopyHandler;
32392 #ifdef __CRT_UUID_DECL
32393 __CRT_UUID_DECL(FSCopyHandler, 0xd197380a, 0x0a79, 0x4dc8, 0xa0,0x33, 0xed,0x88,0x2c,0x2f,0xa1,0x4b)
32394 #endif
32395 #endif
32396 
32397 /*****************************************************************************
32398  * SharingConfigurationManager coclass
32399  */
32400 
32401 DEFINE_GUID(CLSID_SharingConfigurationManager, 0x49f371e1, 0x8c5c, 0x4d9c, 0x9a,0x3b, 0x54,0xa6,0x82,0x7f,0x51,0x3c);
32402 
32403 #ifdef __cplusplus
32404 class DECLSPEC_UUID("49f371e1-8c5c-4d9c-9a3b-54a6827f513c") SharingConfigurationManager;
32405 #ifdef __CRT_UUID_DECL
32406 __CRT_UUID_DECL(SharingConfigurationManager, 0x49f371e1, 0x8c5c, 0x4d9c, 0x9a,0x3b, 0x54,0xa6,0x82,0x7f,0x51,0x3c)
32407 #endif
32408 #endif
32409 
32410 /*****************************************************************************
32411  * PreviousVersions coclass
32412  */
32413 
32414 DEFINE_GUID(CLSID_PreviousVersions, 0x596ab062, 0xb4d2, 0x4215, 0x9f,0x74, 0xe9,0x10,0x9b,0x0a,0x81,0x53);
32415 
32416 #ifdef __cplusplus
32417 class DECLSPEC_UUID("596ab062-b4d2-4215-9f74-e9109b0a8153") PreviousVersions;
32418 #ifdef __CRT_UUID_DECL
32419 __CRT_UUID_DECL(PreviousVersions, 0x596ab062, 0xb4d2, 0x4215, 0x9f,0x74, 0xe9,0x10,0x9b,0x0a,0x81,0x53)
32420 #endif
32421 #endif
32422 
32423 /*****************************************************************************
32424  * NetworkConnections coclass
32425  */
32426 
32427 DEFINE_GUID(CLSID_NetworkConnections, 0x7007acc7, 0x3202, 0x11d1, 0xaa,0xd2, 0x00,0x80,0x5f,0xc1,0x27,0x0e);
32428 
32429 #ifdef __cplusplus
32430 class DECLSPEC_UUID("7007acc7-3202-11d1-aad2-00805fc1270e") NetworkConnections;
32431 #ifdef __CRT_UUID_DECL
32432 __CRT_UUID_DECL(NetworkConnections, 0x7007acc7, 0x3202, 0x11d1, 0xaa,0xd2, 0x00,0x80,0x5f,0xc1,0x27,0x0e)
32433 #endif
32434 #endif
32435 
32436 /*****************************************************************************
32437  * NamespaceTreeControl coclass
32438  */
32439 
32440 DEFINE_GUID(CLSID_NamespaceTreeControl, 0xae054212, 0x3535, 0x4430, 0x83,0xed, 0xd5,0x01,0xaa,0x66,0x80,0xe6);
32441 
32442 #ifdef __cplusplus
32443 class DECLSPEC_UUID("ae054212-3535-4430-83ed-d501aa6680e6") NamespaceTreeControl;
32444 #ifdef __CRT_UUID_DECL
32445 __CRT_UUID_DECL(NamespaceTreeControl, 0xae054212, 0x3535, 0x4430, 0x83,0xed, 0xd5,0x01,0xaa,0x66,0x80,0xe6)
32446 #endif
32447 #endif
32448 
32449 /*****************************************************************************
32450  * IENamespaceTreeControl coclass
32451  */
32452 
32453 DEFINE_GUID(CLSID_IENamespaceTreeControl, 0xace52d03, 0xe5cd, 0x4b20, 0x82,0xff, 0xe7,0x1b,0x11,0xbe,0xae,0x1d);
32454 
32455 #ifdef __cplusplus
32456 class DECLSPEC_UUID("ace52d03-e5cd-4b20-82ff-e71b11beae1d") IENamespaceTreeControl;
32457 #ifdef __CRT_UUID_DECL
32458 __CRT_UUID_DECL(IENamespaceTreeControl, 0xace52d03, 0xe5cd, 0x4b20, 0x82,0xff, 0xe7,0x1b,0x11,0xbe,0xae,0x1d)
32459 #endif
32460 #endif
32461 
32462 /*****************************************************************************
32463  * ScheduledTasks coclass
32464  */
32465 
32466 DEFINE_GUID(CLSID_ScheduledTasks, 0xd6277990, 0x4c6a, 0x11cf, 0x8d,0x87, 0x00,0xaa,0x00,0x60,0xf5,0xbf);
32467 
32468 #ifdef __cplusplus
32469 class DECLSPEC_UUID("d6277990-4c6a-11cf-8d87-00aa0060f5bf") ScheduledTasks;
32470 #ifdef __CRT_UUID_DECL
32471 __CRT_UUID_DECL(ScheduledTasks, 0xd6277990, 0x4c6a, 0x11cf, 0x8d,0x87, 0x00,0xaa,0x00,0x60,0xf5,0xbf)
32472 #endif
32473 #endif
32474 
32475 /*****************************************************************************
32476  * ApplicationAssociationRegistration coclass
32477  */
32478 
32479 DEFINE_GUID(CLSID_ApplicationAssociationRegistration, 0x591209c7, 0x767b, 0x42b2, 0x9f,0xba, 0x44,0xee,0x46,0x15,0xf2,0xc7);
32480 
32481 #ifdef __cplusplus
32482 class DECLSPEC_UUID("591209c7-767b-42b2-9fba-44ee4615f2c7") ApplicationAssociationRegistration;
32483 #ifdef __CRT_UUID_DECL
32484 __CRT_UUID_DECL(ApplicationAssociationRegistration, 0x591209c7, 0x767b, 0x42b2, 0x9f,0xba, 0x44,0xee,0x46,0x15,0xf2,0xc7)
32485 #endif
32486 #endif
32487 
32488 /*****************************************************************************
32489  * ApplicationAssociationRegistrationUI coclass
32490  */
32491 
32492 DEFINE_GUID(CLSID_ApplicationAssociationRegistrationUI, 0x1968106d, 0xf3b5, 0x44cf, 0x89,0x0e, 0x11,0x6f,0xcb,0x9e,0xce,0xf1);
32493 
32494 #ifdef __cplusplus
32495 class DECLSPEC_UUID("1968106d-f3b5-44cf-890e-116fcb9ecef1") ApplicationAssociationRegistrationUI;
32496 #ifdef __CRT_UUID_DECL
32497 __CRT_UUID_DECL(ApplicationAssociationRegistrationUI, 0x1968106d, 0xf3b5, 0x44cf, 0x89,0x0e, 0x11,0x6f,0xcb,0x9e,0xce,0xf1)
32498 #endif
32499 #endif
32500 
32501 /*****************************************************************************
32502  * SearchFolderItemFactory coclass
32503  */
32504 
32505 DEFINE_GUID(CLSID_SearchFolderItemFactory, 0x14010e02, 0xbbbd, 0x41f0, 0x88,0xe3, 0xed,0xa3,0x71,0x21,0x65,0x84);
32506 
32507 #ifdef __cplusplus
32508 class DECLSPEC_UUID("14010e02-bbbd-41f0-88e3-eda371216584") SearchFolderItemFactory;
32509 #ifdef __CRT_UUID_DECL
32510 __CRT_UUID_DECL(SearchFolderItemFactory, 0x14010e02, 0xbbbd, 0x41f0, 0x88,0xe3, 0xed,0xa3,0x71,0x21,0x65,0x84)
32511 #endif
32512 #endif
32513 
32514 /*****************************************************************************
32515  * OpenControlPanel coclass
32516  */
32517 
32518 DEFINE_GUID(CLSID_OpenControlPanel, 0x06622d85, 0x6856, 0x4460, 0x8d,0xe1, 0xa8,0x19,0x21,0xb4,0x1c,0x4b);
32519 
32520 #ifdef __cplusplus
32521 class DECLSPEC_UUID("06622d85-6856-4460-8de1-a81921b41c4b") OpenControlPanel;
32522 #ifdef __CRT_UUID_DECL
32523 __CRT_UUID_DECL(OpenControlPanel, 0x06622d85, 0x6856, 0x4460, 0x8d,0xe1, 0xa8,0x19,0x21,0xb4,0x1c,0x4b)
32524 #endif
32525 #endif
32526 
32527 /*****************************************************************************
32528  * MailRecipient coclass
32529  */
32530 
32531 DEFINE_GUID(CLSID_MailRecipient, 0x9e56be60, 0xc50f, 0x11cf, 0x9a,0x2c, 0x00,0xa0,0xc9,0x0a,0x90,0xce);
32532 
32533 #ifdef __cplusplus
32534 class DECLSPEC_UUID("9e56be60-c50f-11cf-9a2c-00a0c90a90ce") MailRecipient;
32535 #ifdef __CRT_UUID_DECL
32536 __CRT_UUID_DECL(MailRecipient, 0x9e56be60, 0xc50f, 0x11cf, 0x9a,0x2c, 0x00,0xa0,0xc9,0x0a,0x90,0xce)
32537 #endif
32538 #endif
32539 
32540 /*****************************************************************************
32541  * NetworkExplorerFolder coclass
32542  */
32543 
32544 DEFINE_GUID(CLSID_NetworkExplorerFolder, 0xf02c1a0d, 0xbe21, 0x4350, 0x88,0xb0, 0x73,0x67,0xfc,0x96,0xef,0x3c);
32545 
32546 #ifdef __cplusplus
32547 class DECLSPEC_UUID("f02c1a0d-be21-4350-88b0-7367fc96ef3c") NetworkExplorerFolder;
32548 #ifdef __CRT_UUID_DECL
32549 __CRT_UUID_DECL(NetworkExplorerFolder, 0xf02c1a0d, 0xbe21, 0x4350, 0x88,0xb0, 0x73,0x67,0xfc,0x96,0xef,0x3c)
32550 #endif
32551 #endif
32552 
32553 /*****************************************************************************
32554  * DestinationList coclass
32555  */
32556 
32557 DEFINE_GUID(CLSID_DestinationList, 0x77f10cf0, 0x3db5, 0x4966, 0xb5,0x20, 0xb7,0xc5,0x4f,0xd3,0x5e,0xd6);
32558 
32559 #ifdef __cplusplus
32560 class DECLSPEC_UUID("77f10cf0-3db5-4966-b520-b7c54fd35ed6") DestinationList;
32561 #ifdef __CRT_UUID_DECL
32562 __CRT_UUID_DECL(DestinationList, 0x77f10cf0, 0x3db5, 0x4966, 0xb5,0x20, 0xb7,0xc5,0x4f,0xd3,0x5e,0xd6)
32563 #endif
32564 #endif
32565 
32566 /*****************************************************************************
32567  * ApplicationDestinations coclass
32568  */
32569 
32570 DEFINE_GUID(CLSID_ApplicationDestinations, 0x86c14003, 0x4d6b, 0x4ef3, 0xa7,0xb4, 0x05,0x06,0x66,0x3b,0x2e,0x68);
32571 
32572 #ifdef __cplusplus
32573 class DECLSPEC_UUID("86c14003-4d6b-4ef3-a7b4-0506663b2e68") ApplicationDestinations;
32574 #ifdef __CRT_UUID_DECL
32575 __CRT_UUID_DECL(ApplicationDestinations, 0x86c14003, 0x4d6b, 0x4ef3, 0xa7,0xb4, 0x05,0x06,0x66,0x3b,0x2e,0x68)
32576 #endif
32577 #endif
32578 
32579 /*****************************************************************************
32580  * ApplicationDocumentLists coclass
32581  */
32582 
32583 DEFINE_GUID(CLSID_ApplicationDocumentLists, 0x86bec222, 0x30f2, 0x47e0, 0x9f,0x25, 0x60,0xd1,0x1c,0xd7,0x5c,0x28);
32584 
32585 #ifdef __cplusplus
32586 class DECLSPEC_UUID("86bec222-30f2-47e0-9f25-60d11cd75c28") ApplicationDocumentLists;
32587 #ifdef __CRT_UUID_DECL
32588 __CRT_UUID_DECL(ApplicationDocumentLists, 0x86bec222, 0x30f2, 0x47e0, 0x9f,0x25, 0x60,0xd1,0x1c,0xd7,0x5c,0x28)
32589 #endif
32590 #endif
32591 
32592 /*****************************************************************************
32593  * HomeGroup coclass
32594  */
32595 
32596 DEFINE_GUID(CLSID_HomeGroup, 0xde77ba04, 0x3c92, 0x4d11, 0xa1,0xa5, 0x42,0x35,0x2a,0x53,0xe0,0xe3);
32597 
32598 #ifdef __cplusplus
32599 class DECLSPEC_UUID("de77ba04-3c92-4d11-a1a5-42352a53e0e3") HomeGroup;
32600 #ifdef __CRT_UUID_DECL
32601 __CRT_UUID_DECL(HomeGroup, 0xde77ba04, 0x3c92, 0x4d11, 0xa1,0xa5, 0x42,0x35,0x2a,0x53,0xe0,0xe3)
32602 #endif
32603 #endif
32604 
32605 /*****************************************************************************
32606  * ShellLibrary coclass
32607  */
32608 
32609 DEFINE_GUID(CLSID_ShellLibrary, 0xd9b3211d, 0xe57f, 0x4426, 0xaa,0xef, 0x30,0xa8,0x06,0xad,0xd3,0x97);
32610 
32611 #ifdef __cplusplus
32612 class DECLSPEC_UUID("d9b3211d-e57f-4426-aaef-30a806add397") ShellLibrary;
32613 #ifdef __CRT_UUID_DECL
32614 __CRT_UUID_DECL(ShellLibrary, 0xd9b3211d, 0xe57f, 0x4426, 0xaa,0xef, 0x30,0xa8,0x06,0xad,0xd3,0x97)
32615 #endif
32616 #endif
32617 
32618 /*****************************************************************************
32619  * AppStartupLink coclass
32620  */
32621 
32622 DEFINE_GUID(CLSID_AppStartupLink, 0x273eb5e7, 0x88b0, 0x4843, 0xbf,0xef, 0xe2,0xc8,0x1d,0x43,0xaa,0xe5);
32623 
32624 #ifdef __cplusplus
32625 class DECLSPEC_UUID("273eb5e7-88b0-4843-bfef-e2c81d43aae5") AppStartupLink;
32626 #ifdef __CRT_UUID_DECL
32627 __CRT_UUID_DECL(AppStartupLink, 0x273eb5e7, 0x88b0, 0x4843, 0xbf,0xef, 0xe2,0xc8,0x1d,0x43,0xaa,0xe5)
32628 #endif
32629 #endif
32630 
32631 /*****************************************************************************
32632  * EnumerableObjectCollection coclass
32633  */
32634 
32635 DEFINE_GUID(CLSID_EnumerableObjectCollection, 0x2d3468c1, 0x36a7, 0x43b6, 0xac,0x24, 0xd3,0xf0,0x2f,0xd9,0x60,0x7a);
32636 
32637 #ifdef __cplusplus
32638 class DECLSPEC_UUID("2d3468c1-36a7-43b6-ac24-d3f02fd9607a") EnumerableObjectCollection;
32639 #ifdef __CRT_UUID_DECL
32640 __CRT_UUID_DECL(EnumerableObjectCollection, 0x2d3468c1, 0x36a7, 0x43b6, 0xac,0x24, 0xd3,0xf0,0x2f,0xd9,0x60,0x7a)
32641 #endif
32642 #endif
32643 
32644 /*****************************************************************************
32645  * DesktopGadget coclass
32646  */
32647 
32648 DEFINE_GUID(CLSID_DesktopGadget, 0x924ccc1b, 0x6562, 0x4c85, 0x86,0x57, 0xd1,0x77,0x92,0x52,0x22,0xb6);
32649 
32650 #ifdef __cplusplus
32651 class DECLSPEC_UUID("924ccc1b-6562-4c85-8657-d177925222b6") DesktopGadget;
32652 #ifdef __CRT_UUID_DECL
32653 __CRT_UUID_DECL(DesktopGadget, 0x924ccc1b, 0x6562, 0x4c85, 0x86,0x57, 0xd1,0x77,0x92,0x52,0x22,0xb6)
32654 #endif
32655 #endif
32656 
32657 /*****************************************************************************
32658  * PlaybackManager coclass
32659  */
32660 
32661 DEFINE_GUID(CLSID_PlaybackManager, 0x29dfa654, 0xa97f, 0x47f0, 0xbf,0x26, 0x9e,0x41,0xfb,0x94,0x88,0xd9);
32662 
32663 #ifdef __cplusplus
32664 class DECLSPEC_UUID("29dfa654-a97f-47f0-bf26-9e41fb9488d9") PlaybackManager;
32665 #ifdef __CRT_UUID_DECL
32666 __CRT_UUID_DECL(PlaybackManager, 0x29dfa654, 0xa97f, 0x47f0, 0xbf,0x26, 0x9e,0x41,0xfb,0x94,0x88,0xd9)
32667 #endif
32668 #endif
32669 
32670 /*****************************************************************************
32671  * AccessibilityDockingService coclass
32672  */
32673 
32674 DEFINE_GUID(CLSID_AccessibilityDockingService, 0x29ce1d46, 0xb481, 0x4aa0, 0xa0,0x8a, 0xd3,0xeb,0xc8,0xac,0xa4,0x02);
32675 
32676 #ifdef __cplusplus
32677 class DECLSPEC_UUID("29ce1d46-b481-4aa0-a08a-d3ebc8aca402") AccessibilityDockingService;
32678 #ifdef __CRT_UUID_DECL
32679 __CRT_UUID_DECL(AccessibilityDockingService, 0x29ce1d46, 0xb481, 0x4aa0, 0xa0,0x8a, 0xd3,0xeb,0xc8,0xac,0xa4,0x02)
32680 #endif
32681 #endif
32682 
32683 /*****************************************************************************
32684  * FrameworkInputPane coclass
32685  */
32686 
32687 DEFINE_GUID(CLSID_FrameworkInputPane, 0xd5120aa3, 0x46ba, 0x44c5, 0x82,0x2d, 0xca,0x80,0x92,0xc1,0xfc,0x72);
32688 
32689 #ifdef __cplusplus
32690 class DECLSPEC_UUID("d5120aa3-46ba-44c5-822d-ca8092c1fc72") FrameworkInputPane;
32691 #ifdef __CRT_UUID_DECL
32692 __CRT_UUID_DECL(FrameworkInputPane, 0xd5120aa3, 0x46ba, 0x44c5, 0x82,0x2d, 0xca,0x80,0x92,0xc1,0xfc,0x72)
32693 #endif
32694 #endif
32695 
32696 /*****************************************************************************
32697  * DefFolderMenu coclass
32698  */
32699 
32700 DEFINE_GUID(CLSID_DefFolderMenu, 0xc63382be, 0x7933, 0x48d0, 0x9a,0xc8, 0x85,0xfb,0x46,0xbe,0x2f,0xdd);
32701 
32702 #ifdef __cplusplus
32703 class DECLSPEC_UUID("c63382be-7933-48d0-9ac8-85fb46be2fdd") DefFolderMenu;
32704 #ifdef __CRT_UUID_DECL
32705 __CRT_UUID_DECL(DefFolderMenu, 0xc63382be, 0x7933, 0x48d0, 0x9a,0xc8, 0x85,0xfb,0x46,0xbe,0x2f,0xdd)
32706 #endif
32707 #endif
32708 
32709 /*****************************************************************************
32710  * AppVisibility coclass
32711  */
32712 
32713 DEFINE_GUID(CLSID_AppVisibility, 0x7e5fe3d9, 0x985f, 0x4908, 0x91,0xf9, 0xee,0x19,0xf9,0xfd,0x15,0x14);
32714 
32715 #ifdef __cplusplus
32716 class DECLSPEC_UUID("7e5fe3d9-985f-4908-91f9-ee19f9fd1514") AppVisibility;
32717 #ifdef __CRT_UUID_DECL
32718 __CRT_UUID_DECL(AppVisibility, 0x7e5fe3d9, 0x985f, 0x4908, 0x91,0xf9, 0xee,0x19,0xf9,0xfd,0x15,0x14)
32719 #endif
32720 #endif
32721 
32722 /*****************************************************************************
32723  * AppShellVerbHandler coclass
32724  */
32725 
32726 DEFINE_GUID(CLSID_AppShellVerbHandler, 0x4ed3a719, 0xcea8, 0x4bd9, 0x91,0x0d, 0xe2,0x52,0xf9,0x97,0xaf,0xc2);
32727 
32728 #ifdef __cplusplus
32729 class DECLSPEC_UUID("4ed3a719-cea8-4bd9-910d-e252f997afc2") AppShellVerbHandler;
32730 #ifdef __CRT_UUID_DECL
32731 __CRT_UUID_DECL(AppShellVerbHandler, 0x4ed3a719, 0xcea8, 0x4bd9, 0x91,0x0d, 0xe2,0x52,0xf9,0x97,0xaf,0xc2)
32732 #endif
32733 #endif
32734 
32735 /*****************************************************************************
32736  * ExecuteUnknown coclass
32737  */
32738 
32739 DEFINE_GUID(CLSID_ExecuteUnknown, 0xe44e9428, 0xbdbc, 0x4987, 0xa0,0x99, 0x40,0xdc,0x8f,0xd2,0x55,0xe7);
32740 
32741 #ifdef __cplusplus
32742 class DECLSPEC_UUID("e44e9428-bdbc-4987-a099-40dc8fd255e7") ExecuteUnknown;
32743 #ifdef __CRT_UUID_DECL
32744 __CRT_UUID_DECL(ExecuteUnknown, 0xe44e9428, 0xbdbc, 0x4987, 0xa0,0x99, 0x40,0xdc,0x8f,0xd2,0x55,0xe7)
32745 #endif
32746 #endif
32747 
32748 /*****************************************************************************
32749  * PackageDebugSettings coclass
32750  */
32751 
32752 DEFINE_GUID(CLSID_PackageDebugSettings, 0xb1aec16f, 0x2383, 0x4852, 0xb0,0xe9, 0x8f,0x0b,0x1d,0xc6,0x6b,0x4d);
32753 
32754 #ifdef __cplusplus
32755 class DECLSPEC_UUID("b1aec16f-2383-4852-b0e9-8f0b1dc66b4d") PackageDebugSettings;
32756 #ifdef __CRT_UUID_DECL
32757 __CRT_UUID_DECL(PackageDebugSettings, 0xb1aec16f, 0x2383, 0x4852, 0xb0,0xe9, 0x8f,0x0b,0x1d,0xc6,0x6b,0x4d)
32758 #endif
32759 #endif
32760 
32761 /*****************************************************************************
32762  * ApplicationActivationManager coclass
32763  */
32764 
32765 DEFINE_GUID(CLSID_ApplicationActivationManager, 0x45ba127d, 0x10a8, 0x46ea, 0x8a,0xb7, 0x56,0xea,0x90,0x78,0x94,0x3c);
32766 
32767 #ifdef __cplusplus
32768 class DECLSPEC_UUID("45ba127d-10a8-46ea-8ab7-56ea9078943c") ApplicationActivationManager;
32769 #ifdef __CRT_UUID_DECL
32770 __CRT_UUID_DECL(ApplicationActivationManager, 0x45ba127d, 0x10a8, 0x46ea, 0x8a,0xb7, 0x56,0xea,0x90,0x78,0x94,0x3c)
32771 #endif
32772 #endif
32773 
32774 /*****************************************************************************
32775  * ApplicationDesignModeSettings coclass
32776  */
32777 
32778 DEFINE_GUID(CLSID_ApplicationDesignModeSettings, 0x958a6fb5, 0xdcb2, 0x4faf, 0xaa,0xfd, 0x7f,0xb0,0x54,0xad,0x1a,0x3b);
32779 
32780 #ifdef __cplusplus
32781 class DECLSPEC_UUID("958a6fb5-dcb2-4faf-aafd-7fb054ad1a3b") ApplicationDesignModeSettings;
32782 #ifdef __CRT_UUID_DECL
32783 __CRT_UUID_DECL(ApplicationDesignModeSettings, 0x958a6fb5, 0xdcb2, 0x4faf, 0xaa,0xfd, 0x7f,0xb0,0x54,0xad,0x1a,0x3b)
32784 #endif
32785 #endif
32786 
32787 /*****************************************************************************
32788  * ExecuteFolder coclass
32789  */
32790 
32791 DEFINE_GUID(CLSID_ExecuteFolder, 0x11dbb47c, 0xa525, 0x400b, 0x9e,0x80, 0xa5,0x46,0x15,0xa0,0x90,0xc0);
32792 
32793 #ifdef __cplusplus
32794 class DECLSPEC_UUID("11dbb47c-a525-400b-9e80-a54615a090c0") ExecuteFolder;
32795 #ifdef __CRT_UUID_DECL
32796 __CRT_UUID_DECL(ExecuteFolder, 0x11dbb47c, 0xa525, 0x400b, 0x9e,0x80, 0xa5,0x46,0x15,0xa0,0x90,0xc0)
32797 #endif
32798 #endif
32799 
32800 #endif /* __ShellObjects_LIBRARY_DEFINED__ */
32801 
32802 #if NTDDI_VERSION >= NTDDI_VISTA
32803   SHSTDAPI SHGetTemporaryPropertyForItem(IShellItem *psi, REFPROPERTYKEY propkey, PROPVARIANT *ppropvar);
32804   SHSTDAPI SHSetTemporaryPropertyForItem(IShellItem *psi, REFPROPERTYKEY propkey, REFPROPVARIANT propvar);
32805 #endif
32806 
32807 #if NTDDI_VERSION >= NTDDI_WIN7
32808 #if _WIN32_IE >= _WIN32_IE_IE70
32809 typedef enum LIBRARYMANAGEDIALOGOPTIONS {
32810     LMD_DEFAULT = 0x0,
32811     LMD_ALLOWUNINDEXABLENETWORKLOCATIONS = 0x1
32812 } LIBRARYMANAGEDIALOGOPTIONS;
32813 
32814 DEFINE_ENUM_FLAG_OPERATORS(LIBRARYMANAGEDIALOGOPTIONS)
32815 
32816   SHSTDAPI SHShowManageLibraryUI(IShellItem *psiLibrary, HWND hwndOwner, LPCWSTR pszTitle, LPCWSTR pszInstruction, LIBRARYMANAGEDIALOGOPTIONS lmdOptions);
32817   SHSTDAPI SHResolveLibrary(IShellItem *psiLibrary);
32818 #if defined(__cplusplus) && !defined(CINTERFACE)
SHCreateLibrary(REFIID riid,void ** ppv)32819   __forceinline HRESULT SHCreateLibrary(REFIID riid, void **ppv) {
32820     return CoCreateInstance(CLSID_ShellLibrary, NULL, CLSCTX_INPROC_SERVER, riid, ppv);
32821   }
32822 
SHLoadLibraryFromItem(IShellItem * psiLibrary,DWORD grfMode,REFIID riid,void ** ppv)32823   __forceinline HRESULT SHLoadLibraryFromItem(IShellItem *psiLibrary, DWORD grfMode, REFIID riid, void **ppv) {
32824     IShellLibrary *plib;
32825     HRESULT hr;
32826 
32827     *ppv = NULL;
32828     hr = CoCreateInstance(CLSID_ShellLibrary, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&plib));
32829     if (SUCCEEDED(hr)) {
32830       hr = plib->LoadLibraryFromItem(psiLibrary, grfMode);
32831       if (SUCCEEDED(hr))
32832         hr = plib->QueryInterface(riid, ppv);
32833       plib->Release();
32834     }
32835     return hr;
32836   }
32837 
SHLoadLibraryFromKnownFolder(REFKNOWNFOLDERID kfidLibrary,DWORD grfMode,REFIID riid,void ** ppv)32838   __forceinline HRESULT SHLoadLibraryFromKnownFolder(REFKNOWNFOLDERID kfidLibrary, DWORD grfMode, REFIID riid, void **ppv) {
32839     IShellLibrary *plib;
32840     HRESULT hr;
32841 
32842     *ppv = NULL;
32843     hr = CoCreateInstance(CLSID_ShellLibrary, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&plib));
32844     if (SUCCEEDED(hr)) {
32845       hr = plib->LoadLibraryFromKnownFolder(kfidLibrary, grfMode);
32846       if (SUCCEEDED(hr))
32847         hr = plib->QueryInterface(riid, ppv);
32848       plib->Release();
32849     }
32850     return hr;
32851   }
32852 
SHLoadLibraryFromParsingName(PCWSTR pszParsingName,DWORD grfMode,REFIID riid,void ** ppv)32853   __forceinline HRESULT SHLoadLibraryFromParsingName(PCWSTR pszParsingName, DWORD grfMode, REFIID riid, void **ppv) {
32854     IShellItem *psiLibrary;
32855     HRESULT hr;
32856 
32857     *ppv = NULL;
32858     hr = SHCreateItemFromParsingName(pszParsingName, NULL, IID_PPV_ARGS(&psiLibrary));
32859     if (SUCCEEDED(hr)) {
32860       hr = SHLoadLibraryFromItem(psiLibrary, grfMode, riid, ppv);
32861       psiLibrary->Release();
32862     }
32863     return hr;
32864   }
32865 
SHAddFolderPathToLibrary(IShellLibrary * plib,PCWSTR pszFolderPath)32866    __forceinline HRESULT SHAddFolderPathToLibrary(IShellLibrary *plib, PCWSTR pszFolderPath) {
32867     IShellItem *psiFolder;
32868     HRESULT hr = SHCreateItemFromParsingName(pszFolderPath, NULL, IID_PPV_ARGS(&psiFolder));
32869 
32870     if (SUCCEEDED(hr)) {
32871       hr = plib->AddFolder(psiFolder);
32872       psiFolder->Release();
32873     }
32874     return hr;
32875   }
32876 
SHRemoveFolderPathFromLibrary(IShellLibrary * plib,PCWSTR pszFolderPath)32877   __forceinline HRESULT SHRemoveFolderPathFromLibrary(IShellLibrary *plib, PCWSTR pszFolderPath) {
32878     PIDLIST_ABSOLUTE pidlFolder = SHSimpleIDListFromPath(pszFolderPath);
32879     HRESULT hr = pidlFolder ? S_OK : E_INVALIDARG;
32880 
32881     if (SUCCEEDED(hr)) {
32882       IShellItem *psiFolder;
32883 
32884       hr = SHCreateItemFromIDList(pidlFolder, IID_PPV_ARGS(&psiFolder));
32885       if (SUCCEEDED(hr)) {
32886         hr = plib->RemoveFolder(psiFolder);
32887         psiFolder->Release();
32888       }
32889       CoTaskMemFree(pidlFolder);
32890     }
32891     return hr;
32892   }
32893 
SHResolveFolderPathInLibrary(IShellLibrary * plib,PCWSTR pszFolderPath,DWORD dwTimeout,PWSTR * ppszResolvedPath)32894   __forceinline HRESULT SHResolveFolderPathInLibrary(IShellLibrary *plib, PCWSTR pszFolderPath, DWORD dwTimeout, PWSTR *ppszResolvedPath) {
32895     *ppszResolvedPath = NULL;
32896     PIDLIST_ABSOLUTE pidlFolder = SHSimpleIDListFromPath(pszFolderPath);
32897     HRESULT hr = pidlFolder ? S_OK : E_INVALIDARG;
32898     if (SUCCEEDED(hr)) {
32899       IShellItem *psiFolder;
32900 
32901       hr = SHCreateItemFromIDList(pidlFolder, IID_PPV_ARGS(&psiFolder));
32902       if (SUCCEEDED(hr)) {
32903         IShellItem *psiResolved;
32904 
32905         hr = plib->ResolveFolder(psiFolder, dwTimeout, IID_PPV_ARGS(&psiResolved));
32906         if (SUCCEEDED(hr)) {
32907           hr = psiResolved->GetDisplayName(SIGDN_DESKTOPABSOLUTEPARSING, ppszResolvedPath);
32908           psiResolved->Release();
32909         }
32910         psiFolder->Release();
32911       }
32912       CoTaskMemFree(pidlFolder);
32913     }
32914     return hr;
32915   }
32916 
SHSaveLibraryInFolderPath(IShellLibrary * plib,PCWSTR pszFolderPath,PCWSTR pszLibraryName,LIBRARYSAVEFLAGS lsf,PWSTR * ppszSavedToPath)32917   __forceinline HRESULT SHSaveLibraryInFolderPath(IShellLibrary *plib, PCWSTR pszFolderPath, PCWSTR pszLibraryName, LIBRARYSAVEFLAGS lsf, PWSTR *ppszSavedToPath) {
32918     IShellItem *psiFolder;
32919     HRESULT hr;
32920 
32921     if (ppszSavedToPath)
32922       *ppszSavedToPath = NULL;
32923     hr = SHCreateItemFromParsingName(pszFolderPath, NULL, IID_PPV_ARGS(&psiFolder));
32924     if (SUCCEEDED(hr)) {
32925       IShellItem *psiSavedTo;
32926 
32927       hr = plib->Save(psiFolder, pszLibraryName, lsf, &psiSavedTo);
32928       if (SUCCEEDED(hr)) {
32929         if (ppszSavedToPath)
32930           hr = psiSavedTo->GetDisplayName(SIGDN_DESKTOPABSOLUTEPARSING, ppszSavedToPath);
32931         psiSavedTo->Release();
32932       }
32933       psiFolder->Release();
32934     }
32935     return hr;
32936   }
32937 #endif
32938 #endif
32939 #endif
32940 
32941 #if NTDDI_VERSION >= NTDDI_VISTA
32942 /*****************************************************************************
32943  * IAssocHandlerInvoker interface
32944  */
32945 #ifndef __IAssocHandlerInvoker_INTERFACE_DEFINED__
32946 #define __IAssocHandlerInvoker_INTERFACE_DEFINED__
32947 
32948 DEFINE_GUID(IID_IAssocHandlerInvoker, 0x92218cab, 0xecaa, 0x4335, 0x81,0x33, 0x80,0x7f,0xd2,0x34,0xc2,0xee);
32949 #if defined(__cplusplus) && !defined(CINTERFACE)
32950 MIDL_INTERFACE("92218cab-ecaa-4335-8133-807fd234c2ee")
32951 IAssocHandlerInvoker : public IUnknown
32952 {
32953     virtual HRESULT STDMETHODCALLTYPE SupportsSelection(
32954         ) = 0;
32955 
32956     virtual HRESULT STDMETHODCALLTYPE Invoke(
32957         ) = 0;
32958 
32959 };
32960 #ifdef __CRT_UUID_DECL
32961 __CRT_UUID_DECL(IAssocHandlerInvoker, 0x92218cab, 0xecaa, 0x4335, 0x81,0x33, 0x80,0x7f,0xd2,0x34,0xc2,0xee)
32962 #endif
32963 #else
32964 typedef struct IAssocHandlerInvokerVtbl {
32965     BEGIN_INTERFACE
32966 
32967     /*** IUnknown methods ***/
32968     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
32969         IAssocHandlerInvoker *This,
32970         REFIID riid,
32971         void **ppvObject);
32972 
32973     ULONG (STDMETHODCALLTYPE *AddRef)(
32974         IAssocHandlerInvoker *This);
32975 
32976     ULONG (STDMETHODCALLTYPE *Release)(
32977         IAssocHandlerInvoker *This);
32978 
32979     /*** IAssocHandlerInvoker methods ***/
32980     HRESULT (STDMETHODCALLTYPE *SupportsSelection)(
32981         IAssocHandlerInvoker *This);
32982 
32983     HRESULT (STDMETHODCALLTYPE *Invoke)(
32984         IAssocHandlerInvoker *This);
32985 
32986     END_INTERFACE
32987 } IAssocHandlerInvokerVtbl;
32988 
32989 interface IAssocHandlerInvoker {
32990     CONST_VTBL IAssocHandlerInvokerVtbl* lpVtbl;
32991 };
32992 
32993 #ifdef COBJMACROS
32994 #ifndef WIDL_C_INLINE_WRAPPERS
32995 /*** IUnknown methods ***/
32996 #define IAssocHandlerInvoker_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
32997 #define IAssocHandlerInvoker_AddRef(This) (This)->lpVtbl->AddRef(This)
32998 #define IAssocHandlerInvoker_Release(This) (This)->lpVtbl->Release(This)
32999 /*** IAssocHandlerInvoker methods ***/
33000 #define IAssocHandlerInvoker_SupportsSelection(This) (This)->lpVtbl->SupportsSelection(This)
33001 #define IAssocHandlerInvoker_Invoke(This) (This)->lpVtbl->Invoke(This)
33002 #else
33003 /*** IUnknown methods ***/
33004 static FORCEINLINE HRESULT IAssocHandlerInvoker_QueryInterface(IAssocHandlerInvoker* This,REFIID riid,void **ppvObject) {
33005     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
33006 }
33007 static FORCEINLINE ULONG IAssocHandlerInvoker_AddRef(IAssocHandlerInvoker* This) {
33008     return This->lpVtbl->AddRef(This);
33009 }
33010 static FORCEINLINE ULONG IAssocHandlerInvoker_Release(IAssocHandlerInvoker* This) {
33011     return This->lpVtbl->Release(This);
33012 }
33013 /*** IAssocHandlerInvoker methods ***/
33014 static FORCEINLINE HRESULT IAssocHandlerInvoker_SupportsSelection(IAssocHandlerInvoker* This) {
33015     return This->lpVtbl->SupportsSelection(This);
33016 }
33017 static FORCEINLINE HRESULT IAssocHandlerInvoker_Invoke(IAssocHandlerInvoker* This) {
33018     return This->lpVtbl->Invoke(This);
33019 }
33020 #endif
33021 #endif
33022 
33023 #endif
33024 
33025 
33026 #endif  /* __IAssocHandlerInvoker_INTERFACE_DEFINED__ */
33027 
33028 
33029 /*****************************************************************************
33030  * IAssocHandler interface
33031  */
33032 #ifndef __IAssocHandler_INTERFACE_DEFINED__
33033 #define __IAssocHandler_INTERFACE_DEFINED__
33034 
33035 DEFINE_GUID(IID_IAssocHandler, 0xf04061ac, 0x1659, 0x4a3f, 0xa9,0x54, 0x77,0x5a,0xa5,0x7f,0xc0,0x83);
33036 #if defined(__cplusplus) && !defined(CINTERFACE)
33037 MIDL_INTERFACE("f04061ac-1659-4a3f-a954-775aa57fc083")
33038 IAssocHandler : public IUnknown
33039 {
33040     virtual HRESULT STDMETHODCALLTYPE GetName(
33041         LPWSTR *ppsz) = 0;
33042 
33043     virtual HRESULT STDMETHODCALLTYPE GetUIName(
33044         LPWSTR *ppsz) = 0;
33045 
33046     virtual HRESULT STDMETHODCALLTYPE GetIconLocation(
33047         LPWSTR *ppszPath,
33048         int *pIndex) = 0;
33049 
33050     virtual HRESULT STDMETHODCALLTYPE IsRecommended(
33051         ) = 0;
33052 
33053     virtual HRESULT STDMETHODCALLTYPE MakeDefault(
33054         LPCWSTR pszDescription) = 0;
33055 
33056     virtual HRESULT STDMETHODCALLTYPE Invoke(
33057         IDataObject *pdo) = 0;
33058 
33059     virtual HRESULT STDMETHODCALLTYPE CreateInvoker(
33060         IDataObject *pdo,
33061         IAssocHandlerInvoker **ppInvoker) = 0;
33062 
33063 };
33064 #ifdef __CRT_UUID_DECL
33065 __CRT_UUID_DECL(IAssocHandler, 0xf04061ac, 0x1659, 0x4a3f, 0xa9,0x54, 0x77,0x5a,0xa5,0x7f,0xc0,0x83)
33066 #endif
33067 #else
33068 typedef struct IAssocHandlerVtbl {
33069     BEGIN_INTERFACE
33070 
33071     /*** IUnknown methods ***/
33072     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
33073         IAssocHandler *This,
33074         REFIID riid,
33075         void **ppvObject);
33076 
33077     ULONG (STDMETHODCALLTYPE *AddRef)(
33078         IAssocHandler *This);
33079 
33080     ULONG (STDMETHODCALLTYPE *Release)(
33081         IAssocHandler *This);
33082 
33083     /*** IAssocHandler methods ***/
33084     HRESULT (STDMETHODCALLTYPE *GetName)(
33085         IAssocHandler *This,
33086         LPWSTR *ppsz);
33087 
33088     HRESULT (STDMETHODCALLTYPE *GetUIName)(
33089         IAssocHandler *This,
33090         LPWSTR *ppsz);
33091 
33092     HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
33093         IAssocHandler *This,
33094         LPWSTR *ppszPath,
33095         int *pIndex);
33096 
33097     HRESULT (STDMETHODCALLTYPE *IsRecommended)(
33098         IAssocHandler *This);
33099 
33100     HRESULT (STDMETHODCALLTYPE *MakeDefault)(
33101         IAssocHandler *This,
33102         LPCWSTR pszDescription);
33103 
33104     HRESULT (STDMETHODCALLTYPE *Invoke)(
33105         IAssocHandler *This,
33106         IDataObject *pdo);
33107 
33108     HRESULT (STDMETHODCALLTYPE *CreateInvoker)(
33109         IAssocHandler *This,
33110         IDataObject *pdo,
33111         IAssocHandlerInvoker **ppInvoker);
33112 
33113     END_INTERFACE
33114 } IAssocHandlerVtbl;
33115 
33116 interface IAssocHandler {
33117     CONST_VTBL IAssocHandlerVtbl* lpVtbl;
33118 };
33119 
33120 #ifdef COBJMACROS
33121 #ifndef WIDL_C_INLINE_WRAPPERS
33122 /*** IUnknown methods ***/
33123 #define IAssocHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
33124 #define IAssocHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
33125 #define IAssocHandler_Release(This) (This)->lpVtbl->Release(This)
33126 /*** IAssocHandler methods ***/
33127 #define IAssocHandler_GetName(This,ppsz) (This)->lpVtbl->GetName(This,ppsz)
33128 #define IAssocHandler_GetUIName(This,ppsz) (This)->lpVtbl->GetUIName(This,ppsz)
33129 #define IAssocHandler_GetIconLocation(This,ppszPath,pIndex) (This)->lpVtbl->GetIconLocation(This,ppszPath,pIndex)
33130 #define IAssocHandler_IsRecommended(This) (This)->lpVtbl->IsRecommended(This)
33131 #define IAssocHandler_MakeDefault(This,pszDescription) (This)->lpVtbl->MakeDefault(This,pszDescription)
33132 #define IAssocHandler_Invoke(This,pdo) (This)->lpVtbl->Invoke(This,pdo)
33133 #define IAssocHandler_CreateInvoker(This,pdo,ppInvoker) (This)->lpVtbl->CreateInvoker(This,pdo,ppInvoker)
33134 #else
33135 /*** IUnknown methods ***/
33136 static FORCEINLINE HRESULT IAssocHandler_QueryInterface(IAssocHandler* This,REFIID riid,void **ppvObject) {
33137     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
33138 }
33139 static FORCEINLINE ULONG IAssocHandler_AddRef(IAssocHandler* This) {
33140     return This->lpVtbl->AddRef(This);
33141 }
33142 static FORCEINLINE ULONG IAssocHandler_Release(IAssocHandler* This) {
33143     return This->lpVtbl->Release(This);
33144 }
33145 /*** IAssocHandler methods ***/
33146 static FORCEINLINE HRESULT IAssocHandler_GetName(IAssocHandler* This,LPWSTR *ppsz) {
33147     return This->lpVtbl->GetName(This,ppsz);
33148 }
33149 static FORCEINLINE HRESULT IAssocHandler_GetUIName(IAssocHandler* This,LPWSTR *ppsz) {
33150     return This->lpVtbl->GetUIName(This,ppsz);
33151 }
33152 static FORCEINLINE HRESULT IAssocHandler_GetIconLocation(IAssocHandler* This,LPWSTR *ppszPath,int *pIndex) {
33153     return This->lpVtbl->GetIconLocation(This,ppszPath,pIndex);
33154 }
33155 static FORCEINLINE HRESULT IAssocHandler_IsRecommended(IAssocHandler* This) {
33156     return This->lpVtbl->IsRecommended(This);
33157 }
33158 static FORCEINLINE HRESULT IAssocHandler_MakeDefault(IAssocHandler* This,LPCWSTR pszDescription) {
33159     return This->lpVtbl->MakeDefault(This,pszDescription);
33160 }
33161 static FORCEINLINE HRESULT IAssocHandler_Invoke(IAssocHandler* This,IDataObject *pdo) {
33162     return This->lpVtbl->Invoke(This,pdo);
33163 }
33164 static FORCEINLINE HRESULT IAssocHandler_CreateInvoker(IAssocHandler* This,IDataObject *pdo,IAssocHandlerInvoker **ppInvoker) {
33165     return This->lpVtbl->CreateInvoker(This,pdo,ppInvoker);
33166 }
33167 #endif
33168 #endif
33169 
33170 #endif
33171 
33172 
33173 #endif  /* __IAssocHandler_INTERFACE_DEFINED__ */
33174 
33175 
33176 /*****************************************************************************
33177  * IEnumAssocHandlers interface
33178  */
33179 #ifndef __IEnumAssocHandlers_INTERFACE_DEFINED__
33180 #define __IEnumAssocHandlers_INTERFACE_DEFINED__
33181 
33182 DEFINE_GUID(IID_IEnumAssocHandlers, 0x973810ae, 0x9599, 0x4b88, 0x9e,0x4d, 0x6e,0xe9,0x8c,0x95,0x52,0xda);
33183 #if defined(__cplusplus) && !defined(CINTERFACE)
33184 MIDL_INTERFACE("973810ae-9599-4b88-9e4d-6ee98c9552da")
33185 IEnumAssocHandlers : public IUnknown
33186 {
33187     virtual HRESULT STDMETHODCALLTYPE Next(
33188         ULONG celt,
33189         IAssocHandler **rgelt,
33190         ULONG *pceltFetched) = 0;
33191 
33192 };
33193 #ifdef __CRT_UUID_DECL
33194 __CRT_UUID_DECL(IEnumAssocHandlers, 0x973810ae, 0x9599, 0x4b88, 0x9e,0x4d, 0x6e,0xe9,0x8c,0x95,0x52,0xda)
33195 #endif
33196 #else
33197 typedef struct IEnumAssocHandlersVtbl {
33198     BEGIN_INTERFACE
33199 
33200     /*** IUnknown methods ***/
33201     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
33202         IEnumAssocHandlers *This,
33203         REFIID riid,
33204         void **ppvObject);
33205 
33206     ULONG (STDMETHODCALLTYPE *AddRef)(
33207         IEnumAssocHandlers *This);
33208 
33209     ULONG (STDMETHODCALLTYPE *Release)(
33210         IEnumAssocHandlers *This);
33211 
33212     /*** IEnumAssocHandlers methods ***/
33213     HRESULT (STDMETHODCALLTYPE *Next)(
33214         IEnumAssocHandlers *This,
33215         ULONG celt,
33216         IAssocHandler **rgelt,
33217         ULONG *pceltFetched);
33218 
33219     END_INTERFACE
33220 } IEnumAssocHandlersVtbl;
33221 
33222 interface IEnumAssocHandlers {
33223     CONST_VTBL IEnumAssocHandlersVtbl* lpVtbl;
33224 };
33225 
33226 #ifdef COBJMACROS
33227 #ifndef WIDL_C_INLINE_WRAPPERS
33228 /*** IUnknown methods ***/
33229 #define IEnumAssocHandlers_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
33230 #define IEnumAssocHandlers_AddRef(This) (This)->lpVtbl->AddRef(This)
33231 #define IEnumAssocHandlers_Release(This) (This)->lpVtbl->Release(This)
33232 /*** IEnumAssocHandlers methods ***/
33233 #define IEnumAssocHandlers_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
33234 #else
33235 /*** IUnknown methods ***/
33236 static FORCEINLINE HRESULT IEnumAssocHandlers_QueryInterface(IEnumAssocHandlers* This,REFIID riid,void **ppvObject) {
33237     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
33238 }
33239 static FORCEINLINE ULONG IEnumAssocHandlers_AddRef(IEnumAssocHandlers* This) {
33240     return This->lpVtbl->AddRef(This);
33241 }
33242 static FORCEINLINE ULONG IEnumAssocHandlers_Release(IEnumAssocHandlers* This) {
33243     return This->lpVtbl->Release(This);
33244 }
33245 /*** IEnumAssocHandlers methods ***/
33246 static FORCEINLINE HRESULT IEnumAssocHandlers_Next(IEnumAssocHandlers* This,ULONG celt,IAssocHandler **rgelt,ULONG *pceltFetched) {
33247     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
33248 }
33249 #endif
33250 #endif
33251 
33252 #endif
33253 
33254 
33255 #endif  /* __IEnumAssocHandlers_INTERFACE_DEFINED__ */
33256 
33257 
33258 typedef enum ASSOC_FILTER {
33259     ASSOC_FILTER_NONE = 0x0,
33260     ASSOC_FILTER_RECOMMENDED = 0x1
33261 } ASSOC_FILTER;
33262 
33263 DEFINE_ENUM_FLAG_OPERATORS(ASSOC_FILTER)
33264 
33265   SHSTDAPI SHAssocEnumHandlers(PCWSTR pszExtra, ASSOC_FILTER afFilter, IEnumAssocHandlers **ppEnumHandler);
33266 #endif
33267 
33268 #if NTDDI_VERSION >= NTDDI_WIN7
33269 SHSTDAPI SHAssocEnumHandlersForProtocolByApplication(PCWSTR protocol, REFIID riid, void **enumHandlers);
33270 #endif
33271 
33272 #if NTDDI_VERSION >= NTDDI_WIN8
33273 /*****************************************************************************
33274  * IDataObjectProvider interface
33275  */
33276 #ifndef __IDataObjectProvider_INTERFACE_DEFINED__
33277 #define __IDataObjectProvider_INTERFACE_DEFINED__
33278 
33279 DEFINE_GUID(IID_IDataObjectProvider, 0x3d25f6d6, 0x4b2a, 0x433c, 0x91,0x84, 0x7c,0x33,0xad,0x35,0xd0,0x01);
33280 #if defined(__cplusplus) && !defined(CINTERFACE)
33281 MIDL_INTERFACE("3d25f6d6-4b2a-433c-9184-7c33ad35d001")
33282 IDataObjectProvider : public IUnknown
33283 {
33284     virtual HRESULT STDMETHODCALLTYPE GetDataObject(
33285         IDataObject **dataObject) = 0;
33286 
33287     virtual HRESULT STDMETHODCALLTYPE SetDataObject(
33288         IDataObject *dataObject) = 0;
33289 
33290 };
33291 #ifdef __CRT_UUID_DECL
33292 __CRT_UUID_DECL(IDataObjectProvider, 0x3d25f6d6, 0x4b2a, 0x433c, 0x91,0x84, 0x7c,0x33,0xad,0x35,0xd0,0x01)
33293 #endif
33294 #else
33295 typedef struct IDataObjectProviderVtbl {
33296     BEGIN_INTERFACE
33297 
33298     /*** IUnknown methods ***/
33299     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
33300         IDataObjectProvider *This,
33301         REFIID riid,
33302         void **ppvObject);
33303 
33304     ULONG (STDMETHODCALLTYPE *AddRef)(
33305         IDataObjectProvider *This);
33306 
33307     ULONG (STDMETHODCALLTYPE *Release)(
33308         IDataObjectProvider *This);
33309 
33310     /*** IDataObjectProvider methods ***/
33311     HRESULT (STDMETHODCALLTYPE *GetDataObject)(
33312         IDataObjectProvider *This,
33313         IDataObject **dataObject);
33314 
33315     HRESULT (STDMETHODCALLTYPE *SetDataObject)(
33316         IDataObjectProvider *This,
33317         IDataObject *dataObject);
33318 
33319     END_INTERFACE
33320 } IDataObjectProviderVtbl;
33321 
33322 interface IDataObjectProvider {
33323     CONST_VTBL IDataObjectProviderVtbl* lpVtbl;
33324 };
33325 
33326 #ifdef COBJMACROS
33327 #ifndef WIDL_C_INLINE_WRAPPERS
33328 /*** IUnknown methods ***/
33329 #define IDataObjectProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
33330 #define IDataObjectProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
33331 #define IDataObjectProvider_Release(This) (This)->lpVtbl->Release(This)
33332 /*** IDataObjectProvider methods ***/
33333 #define IDataObjectProvider_GetDataObject(This,dataObject) (This)->lpVtbl->GetDataObject(This,dataObject)
33334 #define IDataObjectProvider_SetDataObject(This,dataObject) (This)->lpVtbl->SetDataObject(This,dataObject)
33335 #else
33336 /*** IUnknown methods ***/
33337 static FORCEINLINE HRESULT IDataObjectProvider_QueryInterface(IDataObjectProvider* This,REFIID riid,void **ppvObject) {
33338     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
33339 }
33340 static FORCEINLINE ULONG IDataObjectProvider_AddRef(IDataObjectProvider* This) {
33341     return This->lpVtbl->AddRef(This);
33342 }
33343 static FORCEINLINE ULONG IDataObjectProvider_Release(IDataObjectProvider* This) {
33344     return This->lpVtbl->Release(This);
33345 }
33346 /*** IDataObjectProvider methods ***/
33347 static FORCEINLINE HRESULT IDataObjectProvider_GetDataObject(IDataObjectProvider* This,IDataObject **dataObject) {
33348     return This->lpVtbl->GetDataObject(This,dataObject);
33349 }
33350 static FORCEINLINE HRESULT IDataObjectProvider_SetDataObject(IDataObjectProvider* This,IDataObject *dataObject) {
33351     return This->lpVtbl->SetDataObject(This,dataObject);
33352 }
33353 #endif
33354 #endif
33355 
33356 #endif
33357 
33358 
33359 #endif  /* __IDataObjectProvider_INTERFACE_DEFINED__ */
33360 
33361 
33362 /*****************************************************************************
33363  * IDataTransferManagerInterop interface
33364  */
33365 #ifndef __IDataTransferManagerInterop_INTERFACE_DEFINED__
33366 #define __IDataTransferManagerInterop_INTERFACE_DEFINED__
33367 
33368 DEFINE_GUID(IID_IDataTransferManagerInterop, 0x3a3dcd6c, 0x3eab, 0x43dc, 0xbc,0xde, 0x45,0x67,0x1c,0xe8,0x00,0xc8);
33369 #if defined(__cplusplus) && !defined(CINTERFACE)
33370 MIDL_INTERFACE("3a3dcd6c-3eab-43dc-bcde-45671ce800c8")
33371 IDataTransferManagerInterop : public IUnknown
33372 {
33373     virtual HRESULT STDMETHODCALLTYPE GetForWindow(
33374         HWND appWindow,
33375         REFIID riid,
33376         void **dataTransferManager) = 0;
33377 
33378     virtual HRESULT STDMETHODCALLTYPE ShowShareUIForWindow(
33379         HWND appWindow) = 0;
33380 
33381 };
33382 #ifdef __CRT_UUID_DECL
33383 __CRT_UUID_DECL(IDataTransferManagerInterop, 0x3a3dcd6c, 0x3eab, 0x43dc, 0xbc,0xde, 0x45,0x67,0x1c,0xe8,0x00,0xc8)
33384 #endif
33385 #else
33386 typedef struct IDataTransferManagerInteropVtbl {
33387     BEGIN_INTERFACE
33388 
33389     /*** IUnknown methods ***/
33390     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
33391         IDataTransferManagerInterop *This,
33392         REFIID riid,
33393         void **ppvObject);
33394 
33395     ULONG (STDMETHODCALLTYPE *AddRef)(
33396         IDataTransferManagerInterop *This);
33397 
33398     ULONG (STDMETHODCALLTYPE *Release)(
33399         IDataTransferManagerInterop *This);
33400 
33401     /*** IDataTransferManagerInterop methods ***/
33402     HRESULT (STDMETHODCALLTYPE *GetForWindow)(
33403         IDataTransferManagerInterop *This,
33404         HWND appWindow,
33405         REFIID riid,
33406         void **dataTransferManager);
33407 
33408     HRESULT (STDMETHODCALLTYPE *ShowShareUIForWindow)(
33409         IDataTransferManagerInterop *This,
33410         HWND appWindow);
33411 
33412     END_INTERFACE
33413 } IDataTransferManagerInteropVtbl;
33414 
33415 interface IDataTransferManagerInterop {
33416     CONST_VTBL IDataTransferManagerInteropVtbl* lpVtbl;
33417 };
33418 
33419 #ifdef COBJMACROS
33420 #ifndef WIDL_C_INLINE_WRAPPERS
33421 /*** IUnknown methods ***/
33422 #define IDataTransferManagerInterop_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
33423 #define IDataTransferManagerInterop_AddRef(This) (This)->lpVtbl->AddRef(This)
33424 #define IDataTransferManagerInterop_Release(This) (This)->lpVtbl->Release(This)
33425 /*** IDataTransferManagerInterop methods ***/
33426 #define IDataTransferManagerInterop_GetForWindow(This,appWindow,riid,dataTransferManager) (This)->lpVtbl->GetForWindow(This,appWindow,riid,dataTransferManager)
33427 #define IDataTransferManagerInterop_ShowShareUIForWindow(This,appWindow) (This)->lpVtbl->ShowShareUIForWindow(This,appWindow)
33428 #else
33429 /*** IUnknown methods ***/
33430 static FORCEINLINE HRESULT IDataTransferManagerInterop_QueryInterface(IDataTransferManagerInterop* This,REFIID riid,void **ppvObject) {
33431     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
33432 }
33433 static FORCEINLINE ULONG IDataTransferManagerInterop_AddRef(IDataTransferManagerInterop* This) {
33434     return This->lpVtbl->AddRef(This);
33435 }
33436 static FORCEINLINE ULONG IDataTransferManagerInterop_Release(IDataTransferManagerInterop* This) {
33437     return This->lpVtbl->Release(This);
33438 }
33439 /*** IDataTransferManagerInterop methods ***/
33440 static FORCEINLINE HRESULT IDataTransferManagerInterop_GetForWindow(IDataTransferManagerInterop* This,HWND appWindow,REFIID riid,void **dataTransferManager) {
33441     return This->lpVtbl->GetForWindow(This,appWindow,riid,dataTransferManager);
33442 }
33443 static FORCEINLINE HRESULT IDataTransferManagerInterop_ShowShareUIForWindow(IDataTransferManagerInterop* This,HWND appWindow) {
33444     return This->lpVtbl->ShowShareUIForWindow(This,appWindow);
33445 }
33446 #endif
33447 #endif
33448 
33449 #endif
33450 
33451 
33452 #endif  /* __IDataTransferManagerInterop_INTERFACE_DEFINED__ */
33453 
33454 
33455 /*****************************************************************************
33456  * IFrameworkInputPaneHandler interface
33457  */
33458 #ifndef __IFrameworkInputPaneHandler_INTERFACE_DEFINED__
33459 #define __IFrameworkInputPaneHandler_INTERFACE_DEFINED__
33460 
33461 DEFINE_GUID(IID_IFrameworkInputPaneHandler, 0x226c537b, 0x1e76, 0x4d9e, 0xa7,0x60, 0x33,0xdb,0x29,0x92,0x2f,0x18);
33462 #if defined(__cplusplus) && !defined(CINTERFACE)
33463 MIDL_INTERFACE("226c537b-1e76-4d9e-a760-33db29922f18")
33464 IFrameworkInputPaneHandler : public IUnknown
33465 {
33466     virtual HRESULT STDMETHODCALLTYPE Showing(
33467         RECT *prcInputPaneScreenLocation,
33468         WINBOOL fEnsureFocusedElementInView) = 0;
33469 
33470     virtual HRESULT STDMETHODCALLTYPE Hiding(
33471         WINBOOL fEnsureFocusedElementInView) = 0;
33472 
33473 };
33474 #ifdef __CRT_UUID_DECL
33475 __CRT_UUID_DECL(IFrameworkInputPaneHandler, 0x226c537b, 0x1e76, 0x4d9e, 0xa7,0x60, 0x33,0xdb,0x29,0x92,0x2f,0x18)
33476 #endif
33477 #else
33478 typedef struct IFrameworkInputPaneHandlerVtbl {
33479     BEGIN_INTERFACE
33480 
33481     /*** IUnknown methods ***/
33482     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
33483         IFrameworkInputPaneHandler *This,
33484         REFIID riid,
33485         void **ppvObject);
33486 
33487     ULONG (STDMETHODCALLTYPE *AddRef)(
33488         IFrameworkInputPaneHandler *This);
33489 
33490     ULONG (STDMETHODCALLTYPE *Release)(
33491         IFrameworkInputPaneHandler *This);
33492 
33493     /*** IFrameworkInputPaneHandler methods ***/
33494     HRESULT (STDMETHODCALLTYPE *Showing)(
33495         IFrameworkInputPaneHandler *This,
33496         RECT *prcInputPaneScreenLocation,
33497         WINBOOL fEnsureFocusedElementInView);
33498 
33499     HRESULT (STDMETHODCALLTYPE *Hiding)(
33500         IFrameworkInputPaneHandler *This,
33501         WINBOOL fEnsureFocusedElementInView);
33502 
33503     END_INTERFACE
33504 } IFrameworkInputPaneHandlerVtbl;
33505 
33506 interface IFrameworkInputPaneHandler {
33507     CONST_VTBL IFrameworkInputPaneHandlerVtbl* lpVtbl;
33508 };
33509 
33510 #ifdef COBJMACROS
33511 #ifndef WIDL_C_INLINE_WRAPPERS
33512 /*** IUnknown methods ***/
33513 #define IFrameworkInputPaneHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
33514 #define IFrameworkInputPaneHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
33515 #define IFrameworkInputPaneHandler_Release(This) (This)->lpVtbl->Release(This)
33516 /*** IFrameworkInputPaneHandler methods ***/
33517 #define IFrameworkInputPaneHandler_Showing(This,prcInputPaneScreenLocation,fEnsureFocusedElementInView) (This)->lpVtbl->Showing(This,prcInputPaneScreenLocation,fEnsureFocusedElementInView)
33518 #define IFrameworkInputPaneHandler_Hiding(This,fEnsureFocusedElementInView) (This)->lpVtbl->Hiding(This,fEnsureFocusedElementInView)
33519 #else
33520 /*** IUnknown methods ***/
33521 static FORCEINLINE HRESULT IFrameworkInputPaneHandler_QueryInterface(IFrameworkInputPaneHandler* This,REFIID riid,void **ppvObject) {
33522     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
33523 }
33524 static FORCEINLINE ULONG IFrameworkInputPaneHandler_AddRef(IFrameworkInputPaneHandler* This) {
33525     return This->lpVtbl->AddRef(This);
33526 }
33527 static FORCEINLINE ULONG IFrameworkInputPaneHandler_Release(IFrameworkInputPaneHandler* This) {
33528     return This->lpVtbl->Release(This);
33529 }
33530 /*** IFrameworkInputPaneHandler methods ***/
33531 static FORCEINLINE HRESULT IFrameworkInputPaneHandler_Showing(IFrameworkInputPaneHandler* This,RECT *prcInputPaneScreenLocation,WINBOOL fEnsureFocusedElementInView) {
33532     return This->lpVtbl->Showing(This,prcInputPaneScreenLocation,fEnsureFocusedElementInView);
33533 }
33534 static FORCEINLINE HRESULT IFrameworkInputPaneHandler_Hiding(IFrameworkInputPaneHandler* This,WINBOOL fEnsureFocusedElementInView) {
33535     return This->lpVtbl->Hiding(This,fEnsureFocusedElementInView);
33536 }
33537 #endif
33538 #endif
33539 
33540 #endif
33541 
33542 
33543 #endif  /* __IFrameworkInputPaneHandler_INTERFACE_DEFINED__ */
33544 
33545 
33546 /*****************************************************************************
33547  * IFrameworkInputPane interface
33548  */
33549 #ifndef __IFrameworkInputPane_INTERFACE_DEFINED__
33550 #define __IFrameworkInputPane_INTERFACE_DEFINED__
33551 
33552 DEFINE_GUID(IID_IFrameworkInputPane, 0x5752238b, 0x24f0, 0x495a, 0x82,0xf1, 0x2f,0xd5,0x93,0x05,0x67,0x96);
33553 #if defined(__cplusplus) && !defined(CINTERFACE)
33554 MIDL_INTERFACE("5752238b-24f0-495a-82f1-2fd593056796")
33555 IFrameworkInputPane : public IUnknown
33556 {
33557     virtual HRESULT STDMETHODCALLTYPE Advise(
33558         IUnknown *pWindow,
33559         IFrameworkInputPaneHandler *pHandler,
33560         DWORD *pdwCookie) = 0;
33561 
33562     virtual HRESULT STDMETHODCALLTYPE AdviseWithHWND(
33563         HWND hwnd,
33564         IFrameworkInputPaneHandler *pHandler,
33565         DWORD *pdwCookie) = 0;
33566 
33567     virtual HRESULT STDMETHODCALLTYPE Unadvise(
33568         DWORD dwCookie) = 0;
33569 
33570     virtual HRESULT STDMETHODCALLTYPE Location(
33571         RECT *prcInputPaneScreenLocation) = 0;
33572 
33573 };
33574 #ifdef __CRT_UUID_DECL
33575 __CRT_UUID_DECL(IFrameworkInputPane, 0x5752238b, 0x24f0, 0x495a, 0x82,0xf1, 0x2f,0xd5,0x93,0x05,0x67,0x96)
33576 #endif
33577 #else
33578 typedef struct IFrameworkInputPaneVtbl {
33579     BEGIN_INTERFACE
33580 
33581     /*** IUnknown methods ***/
33582     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
33583         IFrameworkInputPane *This,
33584         REFIID riid,
33585         void **ppvObject);
33586 
33587     ULONG (STDMETHODCALLTYPE *AddRef)(
33588         IFrameworkInputPane *This);
33589 
33590     ULONG (STDMETHODCALLTYPE *Release)(
33591         IFrameworkInputPane *This);
33592 
33593     /*** IFrameworkInputPane methods ***/
33594     HRESULT (STDMETHODCALLTYPE *Advise)(
33595         IFrameworkInputPane *This,
33596         IUnknown *pWindow,
33597         IFrameworkInputPaneHandler *pHandler,
33598         DWORD *pdwCookie);
33599 
33600     HRESULT (STDMETHODCALLTYPE *AdviseWithHWND)(
33601         IFrameworkInputPane *This,
33602         HWND hwnd,
33603         IFrameworkInputPaneHandler *pHandler,
33604         DWORD *pdwCookie);
33605 
33606     HRESULT (STDMETHODCALLTYPE *Unadvise)(
33607         IFrameworkInputPane *This,
33608         DWORD dwCookie);
33609 
33610     HRESULT (STDMETHODCALLTYPE *Location)(
33611         IFrameworkInputPane *This,
33612         RECT *prcInputPaneScreenLocation);
33613 
33614     END_INTERFACE
33615 } IFrameworkInputPaneVtbl;
33616 
33617 interface IFrameworkInputPane {
33618     CONST_VTBL IFrameworkInputPaneVtbl* lpVtbl;
33619 };
33620 
33621 #ifdef COBJMACROS
33622 #ifndef WIDL_C_INLINE_WRAPPERS
33623 /*** IUnknown methods ***/
33624 #define IFrameworkInputPane_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
33625 #define IFrameworkInputPane_AddRef(This) (This)->lpVtbl->AddRef(This)
33626 #define IFrameworkInputPane_Release(This) (This)->lpVtbl->Release(This)
33627 /*** IFrameworkInputPane methods ***/
33628 #define IFrameworkInputPane_Advise(This,pWindow,pHandler,pdwCookie) (This)->lpVtbl->Advise(This,pWindow,pHandler,pdwCookie)
33629 #define IFrameworkInputPane_AdviseWithHWND(This,hwnd,pHandler,pdwCookie) (This)->lpVtbl->AdviseWithHWND(This,hwnd,pHandler,pdwCookie)
33630 #define IFrameworkInputPane_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
33631 #define IFrameworkInputPane_Location(This,prcInputPaneScreenLocation) (This)->lpVtbl->Location(This,prcInputPaneScreenLocation)
33632 #else
33633 /*** IUnknown methods ***/
33634 static FORCEINLINE HRESULT IFrameworkInputPane_QueryInterface(IFrameworkInputPane* This,REFIID riid,void **ppvObject) {
33635     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
33636 }
33637 static FORCEINLINE ULONG IFrameworkInputPane_AddRef(IFrameworkInputPane* This) {
33638     return This->lpVtbl->AddRef(This);
33639 }
33640 static FORCEINLINE ULONG IFrameworkInputPane_Release(IFrameworkInputPane* This) {
33641     return This->lpVtbl->Release(This);
33642 }
33643 /*** IFrameworkInputPane methods ***/
33644 static FORCEINLINE HRESULT IFrameworkInputPane_Advise(IFrameworkInputPane* This,IUnknown *pWindow,IFrameworkInputPaneHandler *pHandler,DWORD *pdwCookie) {
33645     return This->lpVtbl->Advise(This,pWindow,pHandler,pdwCookie);
33646 }
33647 static FORCEINLINE HRESULT IFrameworkInputPane_AdviseWithHWND(IFrameworkInputPane* This,HWND hwnd,IFrameworkInputPaneHandler *pHandler,DWORD *pdwCookie) {
33648     return This->lpVtbl->AdviseWithHWND(This,hwnd,pHandler,pdwCookie);
33649 }
33650 static FORCEINLINE HRESULT IFrameworkInputPane_Unadvise(IFrameworkInputPane* This,DWORD dwCookie) {
33651     return This->lpVtbl->Unadvise(This,dwCookie);
33652 }
33653 static FORCEINLINE HRESULT IFrameworkInputPane_Location(IFrameworkInputPane* This,RECT *prcInputPaneScreenLocation) {
33654     return This->lpVtbl->Location(This,prcInputPaneScreenLocation);
33655 }
33656 #endif
33657 #endif
33658 
33659 #endif
33660 
33661 
33662 #endif  /* __IFrameworkInputPane_INTERFACE_DEFINED__ */
33663 
33664 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
33665 
33666 #ifndef PROP_CONTRACT_DELEGATE
33667 #define PROP_CONTRACT_DELEGATE L"ContractDelegate"
33668 #endif
33669 
SetContractDelegateWindow(HWND hwndSource,HWND hwndDelegate)33670   __forceinline void SetContractDelegateWindow(HWND hwndSource, HWND hwndDelegate) {
33671     if (hwndDelegate != NULL)
33672       SetPropW (hwndSource, PROP_CONTRACT_DELEGATE, (HANDLE)hwndDelegate);
33673     else
33674       RemovePropW(hwndSource, PROP_CONTRACT_DELEGATE);
33675   }
33676 
33677 #ifndef PROP_CONTRACT_DELEGATE
33678 #define PROP_CONTRACT_DELEGATE L"ContractDelegate"
33679 #endif
33680 
GetContractDelegateWindow(HWND hwndSource)33681   __forceinline HWND GetContractDelegateWindow(HWND hwndSource) { return (HWND)GetPropW(hwndSource, PROP_CONTRACT_DELEGATE); }
33682 #endif
33683 #endif
33684 
33685 #if NTDDI_VERSION >= NTDDI_WIN8
33686 /*****************************************************************************
33687  * ISearchableApplication interface
33688  */
33689 #ifndef __ISearchableApplication_INTERFACE_DEFINED__
33690 #define __ISearchableApplication_INTERFACE_DEFINED__
33691 
33692 DEFINE_GUID(IID_ISearchableApplication, 0x08922f8d, 0x243a, 0x49e3, 0xa4,0x95, 0xbd,0x4f,0x9c,0xf8,0xab,0x9e);
33693 #if defined(__cplusplus) && !defined(CINTERFACE)
33694 MIDL_INTERFACE("08922f8d-243a-49e3-a495-bd4f9cf8ab9e")
33695 ISearchableApplication : public IUnknown
33696 {
33697     virtual HRESULT STDMETHODCALLTYPE GetSearchWindow(
33698         HWND *hwnd) = 0;
33699 
33700 };
33701 #ifdef __CRT_UUID_DECL
33702 __CRT_UUID_DECL(ISearchableApplication, 0x08922f8d, 0x243a, 0x49e3, 0xa4,0x95, 0xbd,0x4f,0x9c,0xf8,0xab,0x9e)
33703 #endif
33704 #else
33705 typedef struct ISearchableApplicationVtbl {
33706     BEGIN_INTERFACE
33707 
33708     /*** IUnknown methods ***/
33709     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
33710         ISearchableApplication *This,
33711         REFIID riid,
33712         void **ppvObject);
33713 
33714     ULONG (STDMETHODCALLTYPE *AddRef)(
33715         ISearchableApplication *This);
33716 
33717     ULONG (STDMETHODCALLTYPE *Release)(
33718         ISearchableApplication *This);
33719 
33720     /*** ISearchableApplication methods ***/
33721     HRESULT (STDMETHODCALLTYPE *GetSearchWindow)(
33722         ISearchableApplication *This,
33723         HWND *hwnd);
33724 
33725     END_INTERFACE
33726 } ISearchableApplicationVtbl;
33727 
33728 interface ISearchableApplication {
33729     CONST_VTBL ISearchableApplicationVtbl* lpVtbl;
33730 };
33731 
33732 #ifdef COBJMACROS
33733 #ifndef WIDL_C_INLINE_WRAPPERS
33734 /*** IUnknown methods ***/
33735 #define ISearchableApplication_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
33736 #define ISearchableApplication_AddRef(This) (This)->lpVtbl->AddRef(This)
33737 #define ISearchableApplication_Release(This) (This)->lpVtbl->Release(This)
33738 /*** ISearchableApplication methods ***/
33739 #define ISearchableApplication_GetSearchWindow(This,hwnd) (This)->lpVtbl->GetSearchWindow(This,hwnd)
33740 #else
33741 /*** IUnknown methods ***/
33742 static FORCEINLINE HRESULT ISearchableApplication_QueryInterface(ISearchableApplication* This,REFIID riid,void **ppvObject) {
33743     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
33744 }
33745 static FORCEINLINE ULONG ISearchableApplication_AddRef(ISearchableApplication* This) {
33746     return This->lpVtbl->AddRef(This);
33747 }
33748 static FORCEINLINE ULONG ISearchableApplication_Release(ISearchableApplication* This) {
33749     return This->lpVtbl->Release(This);
33750 }
33751 /*** ISearchableApplication methods ***/
33752 static FORCEINLINE HRESULT ISearchableApplication_GetSearchWindow(ISearchableApplication* This,HWND *hwnd) {
33753     return This->lpVtbl->GetSearchWindow(This,hwnd);
33754 }
33755 #endif
33756 #endif
33757 
33758 #endif
33759 
33760 
33761 #endif  /* __ISearchableApplication_INTERFACE_DEFINED__ */
33762 
33763 
33764 typedef enum UNDOCK_REASON {
33765     UR_RESOLUTION_CHANGE = 0,
33766     UR_MONITOR_DISCONNECT = 1
33767 } UNDOCK_REASON;
33768 
33769 /*****************************************************************************
33770  * IAccessibilityDockingServiceCallback interface
33771  */
33772 #ifndef __IAccessibilityDockingServiceCallback_INTERFACE_DEFINED__
33773 #define __IAccessibilityDockingServiceCallback_INTERFACE_DEFINED__
33774 
33775 DEFINE_GUID(IID_IAccessibilityDockingServiceCallback, 0x157733fd, 0xa592, 0x42e5, 0xb5,0x94, 0x24,0x84,0x68,0xc5,0xa8,0x1b);
33776 #if defined(__cplusplus) && !defined(CINTERFACE)
33777 MIDL_INTERFACE("157733fd-a592-42e5-b594-248468c5a81b")
33778 IAccessibilityDockingServiceCallback : public IUnknown
33779 {
33780     virtual HRESULT STDMETHODCALLTYPE Undocked(
33781         UNDOCK_REASON undockReason) = 0;
33782 
33783 };
33784 #ifdef __CRT_UUID_DECL
33785 __CRT_UUID_DECL(IAccessibilityDockingServiceCallback, 0x157733fd, 0xa592, 0x42e5, 0xb5,0x94, 0x24,0x84,0x68,0xc5,0xa8,0x1b)
33786 #endif
33787 #else
33788 typedef struct IAccessibilityDockingServiceCallbackVtbl {
33789     BEGIN_INTERFACE
33790 
33791     /*** IUnknown methods ***/
33792     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
33793         IAccessibilityDockingServiceCallback *This,
33794         REFIID riid,
33795         void **ppvObject);
33796 
33797     ULONG (STDMETHODCALLTYPE *AddRef)(
33798         IAccessibilityDockingServiceCallback *This);
33799 
33800     ULONG (STDMETHODCALLTYPE *Release)(
33801         IAccessibilityDockingServiceCallback *This);
33802 
33803     /*** IAccessibilityDockingServiceCallback methods ***/
33804     HRESULT (STDMETHODCALLTYPE *Undocked)(
33805         IAccessibilityDockingServiceCallback *This,
33806         UNDOCK_REASON undockReason);
33807 
33808     END_INTERFACE
33809 } IAccessibilityDockingServiceCallbackVtbl;
33810 
33811 interface IAccessibilityDockingServiceCallback {
33812     CONST_VTBL IAccessibilityDockingServiceCallbackVtbl* lpVtbl;
33813 };
33814 
33815 #ifdef COBJMACROS
33816 #ifndef WIDL_C_INLINE_WRAPPERS
33817 /*** IUnknown methods ***/
33818 #define IAccessibilityDockingServiceCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
33819 #define IAccessibilityDockingServiceCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
33820 #define IAccessibilityDockingServiceCallback_Release(This) (This)->lpVtbl->Release(This)
33821 /*** IAccessibilityDockingServiceCallback methods ***/
33822 #define IAccessibilityDockingServiceCallback_Undocked(This,undockReason) (This)->lpVtbl->Undocked(This,undockReason)
33823 #else
33824 /*** IUnknown methods ***/
33825 static FORCEINLINE HRESULT IAccessibilityDockingServiceCallback_QueryInterface(IAccessibilityDockingServiceCallback* This,REFIID riid,void **ppvObject) {
33826     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
33827 }
33828 static FORCEINLINE ULONG IAccessibilityDockingServiceCallback_AddRef(IAccessibilityDockingServiceCallback* This) {
33829     return This->lpVtbl->AddRef(This);
33830 }
33831 static FORCEINLINE ULONG IAccessibilityDockingServiceCallback_Release(IAccessibilityDockingServiceCallback* This) {
33832     return This->lpVtbl->Release(This);
33833 }
33834 /*** IAccessibilityDockingServiceCallback methods ***/
33835 static FORCEINLINE HRESULT IAccessibilityDockingServiceCallback_Undocked(IAccessibilityDockingServiceCallback* This,UNDOCK_REASON undockReason) {
33836     return This->lpVtbl->Undocked(This,undockReason);
33837 }
33838 #endif
33839 #endif
33840 
33841 #endif
33842 
33843 
33844 #endif  /* __IAccessibilityDockingServiceCallback_INTERFACE_DEFINED__ */
33845 
33846 
33847 /*****************************************************************************
33848  * IAccessibilityDockingService interface
33849  */
33850 #ifndef __IAccessibilityDockingService_INTERFACE_DEFINED__
33851 #define __IAccessibilityDockingService_INTERFACE_DEFINED__
33852 
33853 DEFINE_GUID(IID_IAccessibilityDockingService, 0x8849dc22, 0xcedf, 0x4c95, 0x99,0x8d, 0x05,0x14,0x19,0xdd,0x3f,0x76);
33854 #if defined(__cplusplus) && !defined(CINTERFACE)
33855 MIDL_INTERFACE("8849dc22-cedf-4c95-998d-051419dd3f76")
33856 IAccessibilityDockingService : public IUnknown
33857 {
33858     virtual HRESULT STDMETHODCALLTYPE GetAvailableSize(
33859         HMONITOR hMonitor,
33860         UINT *pcxFixed,
33861         UINT *pcyMax) = 0;
33862 
33863     virtual HRESULT STDMETHODCALLTYPE DockWindow(
33864         HWND hwnd,
33865         HMONITOR hMonitor,
33866         UINT cyRequested,
33867         IAccessibilityDockingServiceCallback *pCallback) = 0;
33868 
33869     virtual HRESULT STDMETHODCALLTYPE UndockWindow(
33870         HWND hwnd) = 0;
33871 
33872 };
33873 #ifdef __CRT_UUID_DECL
33874 __CRT_UUID_DECL(IAccessibilityDockingService, 0x8849dc22, 0xcedf, 0x4c95, 0x99,0x8d, 0x05,0x14,0x19,0xdd,0x3f,0x76)
33875 #endif
33876 #else
33877 typedef struct IAccessibilityDockingServiceVtbl {
33878     BEGIN_INTERFACE
33879 
33880     /*** IUnknown methods ***/
33881     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
33882         IAccessibilityDockingService *This,
33883         REFIID riid,
33884         void **ppvObject);
33885 
33886     ULONG (STDMETHODCALLTYPE *AddRef)(
33887         IAccessibilityDockingService *This);
33888 
33889     ULONG (STDMETHODCALLTYPE *Release)(
33890         IAccessibilityDockingService *This);
33891 
33892     /*** IAccessibilityDockingService methods ***/
33893     HRESULT (STDMETHODCALLTYPE *GetAvailableSize)(
33894         IAccessibilityDockingService *This,
33895         HMONITOR hMonitor,
33896         UINT *pcxFixed,
33897         UINT *pcyMax);
33898 
33899     HRESULT (STDMETHODCALLTYPE *DockWindow)(
33900         IAccessibilityDockingService *This,
33901         HWND hwnd,
33902         HMONITOR hMonitor,
33903         UINT cyRequested,
33904         IAccessibilityDockingServiceCallback *pCallback);
33905 
33906     HRESULT (STDMETHODCALLTYPE *UndockWindow)(
33907         IAccessibilityDockingService *This,
33908         HWND hwnd);
33909 
33910     END_INTERFACE
33911 } IAccessibilityDockingServiceVtbl;
33912 
33913 interface IAccessibilityDockingService {
33914     CONST_VTBL IAccessibilityDockingServiceVtbl* lpVtbl;
33915 };
33916 
33917 #ifdef COBJMACROS
33918 #ifndef WIDL_C_INLINE_WRAPPERS
33919 /*** IUnknown methods ***/
33920 #define IAccessibilityDockingService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
33921 #define IAccessibilityDockingService_AddRef(This) (This)->lpVtbl->AddRef(This)
33922 #define IAccessibilityDockingService_Release(This) (This)->lpVtbl->Release(This)
33923 /*** IAccessibilityDockingService methods ***/
33924 #define IAccessibilityDockingService_GetAvailableSize(This,hMonitor,pcxFixed,pcyMax) (This)->lpVtbl->GetAvailableSize(This,hMonitor,pcxFixed,pcyMax)
33925 #define IAccessibilityDockingService_DockWindow(This,hwnd,hMonitor,cyRequested,pCallback) (This)->lpVtbl->DockWindow(This,hwnd,hMonitor,cyRequested,pCallback)
33926 #define IAccessibilityDockingService_UndockWindow(This,hwnd) (This)->lpVtbl->UndockWindow(This,hwnd)
33927 #else
33928 /*** IUnknown methods ***/
33929 static FORCEINLINE HRESULT IAccessibilityDockingService_QueryInterface(IAccessibilityDockingService* This,REFIID riid,void **ppvObject) {
33930     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
33931 }
33932 static FORCEINLINE ULONG IAccessibilityDockingService_AddRef(IAccessibilityDockingService* This) {
33933     return This->lpVtbl->AddRef(This);
33934 }
33935 static FORCEINLINE ULONG IAccessibilityDockingService_Release(IAccessibilityDockingService* This) {
33936     return This->lpVtbl->Release(This);
33937 }
33938 /*** IAccessibilityDockingService methods ***/
33939 static FORCEINLINE HRESULT IAccessibilityDockingService_GetAvailableSize(IAccessibilityDockingService* This,HMONITOR hMonitor,UINT *pcxFixed,UINT *pcyMax) {
33940     return This->lpVtbl->GetAvailableSize(This,hMonitor,pcxFixed,pcyMax);
33941 }
33942 static FORCEINLINE HRESULT IAccessibilityDockingService_DockWindow(IAccessibilityDockingService* This,HWND hwnd,HMONITOR hMonitor,UINT cyRequested,IAccessibilityDockingServiceCallback *pCallback) {
33943     return This->lpVtbl->DockWindow(This,hwnd,hMonitor,cyRequested,pCallback);
33944 }
33945 static FORCEINLINE HRESULT IAccessibilityDockingService_UndockWindow(IAccessibilityDockingService* This,HWND hwnd) {
33946     return This->lpVtbl->UndockWindow(This,hwnd);
33947 }
33948 #endif
33949 #endif
33950 
33951 #endif
33952 
33953 
33954 #endif  /* __IAccessibilityDockingService_INTERFACE_DEFINED__ */
33955 
33956 
33957 typedef enum MONITOR_APP_VISIBILITY {
33958     MAV_UNKNOWN = 0,
33959     MAV_NO_APP_VISIBLE = 1,
33960     MAV_APP_VISIBLE = 2
33961 } MONITOR_APP_VISIBILITY;
33962 
33963 /*****************************************************************************
33964  * IAppVisibilityEvents interface
33965  */
33966 #ifndef __IAppVisibilityEvents_INTERFACE_DEFINED__
33967 #define __IAppVisibilityEvents_INTERFACE_DEFINED__
33968 
33969 DEFINE_GUID(IID_IAppVisibilityEvents, 0x6584ce6b, 0x7d82, 0x49c2, 0x89,0xc9, 0xc6,0xbc,0x02,0xba,0x8c,0x38);
33970 #if defined(__cplusplus) && !defined(CINTERFACE)
33971 MIDL_INTERFACE("6584ce6b-7d82-49c2-89c9-c6bc02ba8c38")
33972 IAppVisibilityEvents : public IUnknown
33973 {
33974     virtual HRESULT STDMETHODCALLTYPE AppVisibilityOnMonitorChanged(
33975         HMONITOR hMonitor,
33976         MONITOR_APP_VISIBILITY previousMode,
33977         MONITOR_APP_VISIBILITY currentMode) = 0;
33978 
33979     virtual HRESULT STDMETHODCALLTYPE LauncherVisibilityChange(
33980         WINBOOL currentVisibleState) = 0;
33981 
33982 };
33983 #ifdef __CRT_UUID_DECL
33984 __CRT_UUID_DECL(IAppVisibilityEvents, 0x6584ce6b, 0x7d82, 0x49c2, 0x89,0xc9, 0xc6,0xbc,0x02,0xba,0x8c,0x38)
33985 #endif
33986 #else
33987 typedef struct IAppVisibilityEventsVtbl {
33988     BEGIN_INTERFACE
33989 
33990     /*** IUnknown methods ***/
33991     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
33992         IAppVisibilityEvents *This,
33993         REFIID riid,
33994         void **ppvObject);
33995 
33996     ULONG (STDMETHODCALLTYPE *AddRef)(
33997         IAppVisibilityEvents *This);
33998 
33999     ULONG (STDMETHODCALLTYPE *Release)(
34000         IAppVisibilityEvents *This);
34001 
34002     /*** IAppVisibilityEvents methods ***/
34003     HRESULT (STDMETHODCALLTYPE *AppVisibilityOnMonitorChanged)(
34004         IAppVisibilityEvents *This,
34005         HMONITOR hMonitor,
34006         MONITOR_APP_VISIBILITY previousMode,
34007         MONITOR_APP_VISIBILITY currentMode);
34008 
34009     HRESULT (STDMETHODCALLTYPE *LauncherVisibilityChange)(
34010         IAppVisibilityEvents *This,
34011         WINBOOL currentVisibleState);
34012 
34013     END_INTERFACE
34014 } IAppVisibilityEventsVtbl;
34015 
34016 interface IAppVisibilityEvents {
34017     CONST_VTBL IAppVisibilityEventsVtbl* lpVtbl;
34018 };
34019 
34020 #ifdef COBJMACROS
34021 #ifndef WIDL_C_INLINE_WRAPPERS
34022 /*** IUnknown methods ***/
34023 #define IAppVisibilityEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
34024 #define IAppVisibilityEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
34025 #define IAppVisibilityEvents_Release(This) (This)->lpVtbl->Release(This)
34026 /*** IAppVisibilityEvents methods ***/
34027 #define IAppVisibilityEvents_AppVisibilityOnMonitorChanged(This,hMonitor,previousMode,currentMode) (This)->lpVtbl->AppVisibilityOnMonitorChanged(This,hMonitor,previousMode,currentMode)
34028 #define IAppVisibilityEvents_LauncherVisibilityChange(This,currentVisibleState) (This)->lpVtbl->LauncherVisibilityChange(This,currentVisibleState)
34029 #else
34030 /*** IUnknown methods ***/
34031 static FORCEINLINE HRESULT IAppVisibilityEvents_QueryInterface(IAppVisibilityEvents* This,REFIID riid,void **ppvObject) {
34032     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
34033 }
34034 static FORCEINLINE ULONG IAppVisibilityEvents_AddRef(IAppVisibilityEvents* This) {
34035     return This->lpVtbl->AddRef(This);
34036 }
34037 static FORCEINLINE ULONG IAppVisibilityEvents_Release(IAppVisibilityEvents* This) {
34038     return This->lpVtbl->Release(This);
34039 }
34040 /*** IAppVisibilityEvents methods ***/
34041 static FORCEINLINE HRESULT IAppVisibilityEvents_AppVisibilityOnMonitorChanged(IAppVisibilityEvents* This,HMONITOR hMonitor,MONITOR_APP_VISIBILITY previousMode,MONITOR_APP_VISIBILITY currentMode) {
34042     return This->lpVtbl->AppVisibilityOnMonitorChanged(This,hMonitor,previousMode,currentMode);
34043 }
34044 static FORCEINLINE HRESULT IAppVisibilityEvents_LauncherVisibilityChange(IAppVisibilityEvents* This,WINBOOL currentVisibleState) {
34045     return This->lpVtbl->LauncherVisibilityChange(This,currentVisibleState);
34046 }
34047 #endif
34048 #endif
34049 
34050 #endif
34051 
34052 
34053 #endif  /* __IAppVisibilityEvents_INTERFACE_DEFINED__ */
34054 
34055 
34056 /*****************************************************************************
34057  * IAppVisibility interface
34058  */
34059 #ifndef __IAppVisibility_INTERFACE_DEFINED__
34060 #define __IAppVisibility_INTERFACE_DEFINED__
34061 
34062 DEFINE_GUID(IID_IAppVisibility, 0x2246ea2d, 0xcaea, 0x4444, 0xa3,0xc4, 0x6d,0xe8,0x27,0xe4,0x43,0x13);
34063 #if defined(__cplusplus) && !defined(CINTERFACE)
34064 MIDL_INTERFACE("2246ea2d-caea-4444-a3c4-6de827e44313")
34065 IAppVisibility : public IUnknown
34066 {
34067     virtual HRESULT STDMETHODCALLTYPE GetAppVisibilityOnMonitor(
34068         HMONITOR hMonitor,
34069         MONITOR_APP_VISIBILITY *pMode) = 0;
34070 
34071     virtual HRESULT STDMETHODCALLTYPE IsLauncherVisible(
34072         WINBOOL *pfVisible) = 0;
34073 
34074     virtual HRESULT STDMETHODCALLTYPE Advise(
34075         IAppVisibilityEvents *pCallback,
34076         DWORD *pdwCookie) = 0;
34077 
34078     virtual HRESULT STDMETHODCALLTYPE Unadvise(
34079         DWORD dwCookie) = 0;
34080 
34081 };
34082 #ifdef __CRT_UUID_DECL
34083 __CRT_UUID_DECL(IAppVisibility, 0x2246ea2d, 0xcaea, 0x4444, 0xa3,0xc4, 0x6d,0xe8,0x27,0xe4,0x43,0x13)
34084 #endif
34085 #else
34086 typedef struct IAppVisibilityVtbl {
34087     BEGIN_INTERFACE
34088 
34089     /*** IUnknown methods ***/
34090     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
34091         IAppVisibility *This,
34092         REFIID riid,
34093         void **ppvObject);
34094 
34095     ULONG (STDMETHODCALLTYPE *AddRef)(
34096         IAppVisibility *This);
34097 
34098     ULONG (STDMETHODCALLTYPE *Release)(
34099         IAppVisibility *This);
34100 
34101     /*** IAppVisibility methods ***/
34102     HRESULT (STDMETHODCALLTYPE *GetAppVisibilityOnMonitor)(
34103         IAppVisibility *This,
34104         HMONITOR hMonitor,
34105         MONITOR_APP_VISIBILITY *pMode);
34106 
34107     HRESULT (STDMETHODCALLTYPE *IsLauncherVisible)(
34108         IAppVisibility *This,
34109         WINBOOL *pfVisible);
34110 
34111     HRESULT (STDMETHODCALLTYPE *Advise)(
34112         IAppVisibility *This,
34113         IAppVisibilityEvents *pCallback,
34114         DWORD *pdwCookie);
34115 
34116     HRESULT (STDMETHODCALLTYPE *Unadvise)(
34117         IAppVisibility *This,
34118         DWORD dwCookie);
34119 
34120     END_INTERFACE
34121 } IAppVisibilityVtbl;
34122 
34123 interface IAppVisibility {
34124     CONST_VTBL IAppVisibilityVtbl* lpVtbl;
34125 };
34126 
34127 #ifdef COBJMACROS
34128 #ifndef WIDL_C_INLINE_WRAPPERS
34129 /*** IUnknown methods ***/
34130 #define IAppVisibility_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
34131 #define IAppVisibility_AddRef(This) (This)->lpVtbl->AddRef(This)
34132 #define IAppVisibility_Release(This) (This)->lpVtbl->Release(This)
34133 /*** IAppVisibility methods ***/
34134 #define IAppVisibility_GetAppVisibilityOnMonitor(This,hMonitor,pMode) (This)->lpVtbl->GetAppVisibilityOnMonitor(This,hMonitor,pMode)
34135 #define IAppVisibility_IsLauncherVisible(This,pfVisible) (This)->lpVtbl->IsLauncherVisible(This,pfVisible)
34136 #define IAppVisibility_Advise(This,pCallback,pdwCookie) (This)->lpVtbl->Advise(This,pCallback,pdwCookie)
34137 #define IAppVisibility_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
34138 #else
34139 /*** IUnknown methods ***/
34140 static FORCEINLINE HRESULT IAppVisibility_QueryInterface(IAppVisibility* This,REFIID riid,void **ppvObject) {
34141     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
34142 }
34143 static FORCEINLINE ULONG IAppVisibility_AddRef(IAppVisibility* This) {
34144     return This->lpVtbl->AddRef(This);
34145 }
34146 static FORCEINLINE ULONG IAppVisibility_Release(IAppVisibility* This) {
34147     return This->lpVtbl->Release(This);
34148 }
34149 /*** IAppVisibility methods ***/
34150 static FORCEINLINE HRESULT IAppVisibility_GetAppVisibilityOnMonitor(IAppVisibility* This,HMONITOR hMonitor,MONITOR_APP_VISIBILITY *pMode) {
34151     return This->lpVtbl->GetAppVisibilityOnMonitor(This,hMonitor,pMode);
34152 }
34153 static FORCEINLINE HRESULT IAppVisibility_IsLauncherVisible(IAppVisibility* This,WINBOOL *pfVisible) {
34154     return This->lpVtbl->IsLauncherVisible(This,pfVisible);
34155 }
34156 static FORCEINLINE HRESULT IAppVisibility_Advise(IAppVisibility* This,IAppVisibilityEvents *pCallback,DWORD *pdwCookie) {
34157     return This->lpVtbl->Advise(This,pCallback,pdwCookie);
34158 }
34159 static FORCEINLINE HRESULT IAppVisibility_Unadvise(IAppVisibility* This,DWORD dwCookie) {
34160     return This->lpVtbl->Unadvise(This,dwCookie);
34161 }
34162 #endif
34163 #endif
34164 
34165 #endif
34166 
34167 
34168 #endif  /* __IAppVisibility_INTERFACE_DEFINED__ */
34169 
34170 
34171 #if 0
34172 typedef WCHAR *PZZWSTR;
34173 #endif
34174 
34175 typedef enum PACKAGE_EXECUTION_STATE {
34176     PES_UNKNOWN = 0,
34177     PES_RUNNING = 1,
34178     PES_SUSPENDING = 2,
34179     PES_SUSPENDED = 3,
34180     PES_TERMINATED = 4
34181 } PACKAGE_EXECUTION_STATE;
34182 
34183 /*****************************************************************************
34184  * IPackageExecutionStateChangeNotification interface
34185  */
34186 #ifndef __IPackageExecutionStateChangeNotification_INTERFACE_DEFINED__
34187 #define __IPackageExecutionStateChangeNotification_INTERFACE_DEFINED__
34188 
34189 DEFINE_GUID(IID_IPackageExecutionStateChangeNotification, 0x1bb12a62, 0x2ad8, 0x432b, 0x8c,0xcf, 0x0c,0x2c,0x52,0xaf,0xcd,0x5b);
34190 #if defined(__cplusplus) && !defined(CINTERFACE)
34191 MIDL_INTERFACE("1bb12a62-2ad8-432b-8ccf-0c2c52afcd5b")
34192 IPackageExecutionStateChangeNotification : public IUnknown
34193 {
34194     virtual HRESULT STDMETHODCALLTYPE OnStateChanged(
34195         LPCWSTR pszPackageFullName,
34196         PACKAGE_EXECUTION_STATE pesNewState) = 0;
34197 
34198 };
34199 #ifdef __CRT_UUID_DECL
34200 __CRT_UUID_DECL(IPackageExecutionStateChangeNotification, 0x1bb12a62, 0x2ad8, 0x432b, 0x8c,0xcf, 0x0c,0x2c,0x52,0xaf,0xcd,0x5b)
34201 #endif
34202 #else
34203 typedef struct IPackageExecutionStateChangeNotificationVtbl {
34204     BEGIN_INTERFACE
34205 
34206     /*** IUnknown methods ***/
34207     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
34208         IPackageExecutionStateChangeNotification *This,
34209         REFIID riid,
34210         void **ppvObject);
34211 
34212     ULONG (STDMETHODCALLTYPE *AddRef)(
34213         IPackageExecutionStateChangeNotification *This);
34214 
34215     ULONG (STDMETHODCALLTYPE *Release)(
34216         IPackageExecutionStateChangeNotification *This);
34217 
34218     /*** IPackageExecutionStateChangeNotification methods ***/
34219     HRESULT (STDMETHODCALLTYPE *OnStateChanged)(
34220         IPackageExecutionStateChangeNotification *This,
34221         LPCWSTR pszPackageFullName,
34222         PACKAGE_EXECUTION_STATE pesNewState);
34223 
34224     END_INTERFACE
34225 } IPackageExecutionStateChangeNotificationVtbl;
34226 
34227 interface IPackageExecutionStateChangeNotification {
34228     CONST_VTBL IPackageExecutionStateChangeNotificationVtbl* lpVtbl;
34229 };
34230 
34231 #ifdef COBJMACROS
34232 #ifndef WIDL_C_INLINE_WRAPPERS
34233 /*** IUnknown methods ***/
34234 #define IPackageExecutionStateChangeNotification_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
34235 #define IPackageExecutionStateChangeNotification_AddRef(This) (This)->lpVtbl->AddRef(This)
34236 #define IPackageExecutionStateChangeNotification_Release(This) (This)->lpVtbl->Release(This)
34237 /*** IPackageExecutionStateChangeNotification methods ***/
34238 #define IPackageExecutionStateChangeNotification_OnStateChanged(This,pszPackageFullName,pesNewState) (This)->lpVtbl->OnStateChanged(This,pszPackageFullName,pesNewState)
34239 #else
34240 /*** IUnknown methods ***/
34241 static FORCEINLINE HRESULT IPackageExecutionStateChangeNotification_QueryInterface(IPackageExecutionStateChangeNotification* This,REFIID riid,void **ppvObject) {
34242     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
34243 }
34244 static FORCEINLINE ULONG IPackageExecutionStateChangeNotification_AddRef(IPackageExecutionStateChangeNotification* This) {
34245     return This->lpVtbl->AddRef(This);
34246 }
34247 static FORCEINLINE ULONG IPackageExecutionStateChangeNotification_Release(IPackageExecutionStateChangeNotification* This) {
34248     return This->lpVtbl->Release(This);
34249 }
34250 /*** IPackageExecutionStateChangeNotification methods ***/
34251 static FORCEINLINE HRESULT IPackageExecutionStateChangeNotification_OnStateChanged(IPackageExecutionStateChangeNotification* This,LPCWSTR pszPackageFullName,PACKAGE_EXECUTION_STATE pesNewState) {
34252     return This->lpVtbl->OnStateChanged(This,pszPackageFullName,pesNewState);
34253 }
34254 #endif
34255 #endif
34256 
34257 #endif
34258 
34259 
34260 #endif  /* __IPackageExecutionStateChangeNotification_INTERFACE_DEFINED__ */
34261 
34262 
34263 /*****************************************************************************
34264  * IPackageDebugSettings interface
34265  */
34266 #ifndef __IPackageDebugSettings_INTERFACE_DEFINED__
34267 #define __IPackageDebugSettings_INTERFACE_DEFINED__
34268 
34269 DEFINE_GUID(IID_IPackageDebugSettings, 0xf27c3930, 0x8029, 0x4ad1, 0x94,0xe3, 0x3d,0xba,0x41,0x78,0x10,0xc1);
34270 #if defined(__cplusplus) && !defined(CINTERFACE)
34271 MIDL_INTERFACE("f27c3930-8029-4ad1-94e3-3dba417810c1")
34272 IPackageDebugSettings : public IUnknown
34273 {
34274     virtual HRESULT STDMETHODCALLTYPE EnableDebugging(
34275         LPCWSTR packageFullName,
34276         LPCWSTR debuggerCommandLine,
34277         PZZWSTR environment) = 0;
34278 
34279     virtual HRESULT STDMETHODCALLTYPE DisableDebugging(
34280         LPCWSTR packageFullName) = 0;
34281 
34282     virtual HRESULT STDMETHODCALLTYPE Suspend(
34283         LPCWSTR packageFullName) = 0;
34284 
34285     virtual HRESULT STDMETHODCALLTYPE Resume(
34286         LPCWSTR packageFullName) = 0;
34287 
34288     virtual HRESULT STDMETHODCALLTYPE TerminateAllProcesses(
34289         LPCWSTR packageFullName) = 0;
34290 
34291     virtual HRESULT STDMETHODCALLTYPE SetTargetSessionId(
34292         ULONG sessionId) = 0;
34293 
34294     virtual HRESULT STDMETHODCALLTYPE EnumerateBackgroundTasks(
34295         LPCWSTR packageFullName,
34296         ULONG *taskCount,
34297         LPCGUID *taskIds,
34298         LPCWSTR **taskNames) = 0;
34299 
34300     virtual HRESULT STDMETHODCALLTYPE ActivateBackgroundTask(
34301         LPCGUID taskId) = 0;
34302 
34303     virtual HRESULT STDMETHODCALLTYPE StartServicing(
34304         LPCWSTR packageFullName) = 0;
34305 
34306     virtual HRESULT STDMETHODCALLTYPE StopServicing(
34307         LPCWSTR packageFullName) = 0;
34308 
34309     virtual HRESULT STDMETHODCALLTYPE StartSessionRedirection(
34310         LPCWSTR packageFullName,
34311         ULONG sessionId) = 0;
34312 
34313     virtual HRESULT STDMETHODCALLTYPE StopSessionRedirection(
34314         LPCWSTR packageFullName) = 0;
34315 
34316     virtual HRESULT STDMETHODCALLTYPE GetPackageExecutionState(
34317         LPCWSTR packageFullName,
34318         PACKAGE_EXECUTION_STATE *packageExecutionState) = 0;
34319 
34320     virtual HRESULT STDMETHODCALLTYPE RegisterForPackageStateChanges(
34321         LPCWSTR packageFullName,
34322         IPackageExecutionStateChangeNotification *pPackageExecutionStateChangeNotification,
34323         DWORD *pdwCookie) = 0;
34324 
34325     virtual HRESULT STDMETHODCALLTYPE UnregisterForPackageStateChanges(
34326         DWORD dwCookie) = 0;
34327 
34328 };
34329 #ifdef __CRT_UUID_DECL
34330 __CRT_UUID_DECL(IPackageDebugSettings, 0xf27c3930, 0x8029, 0x4ad1, 0x94,0xe3, 0x3d,0xba,0x41,0x78,0x10,0xc1)
34331 #endif
34332 #else
34333 typedef struct IPackageDebugSettingsVtbl {
34334     BEGIN_INTERFACE
34335 
34336     /*** IUnknown methods ***/
34337     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
34338         IPackageDebugSettings *This,
34339         REFIID riid,
34340         void **ppvObject);
34341 
34342     ULONG (STDMETHODCALLTYPE *AddRef)(
34343         IPackageDebugSettings *This);
34344 
34345     ULONG (STDMETHODCALLTYPE *Release)(
34346         IPackageDebugSettings *This);
34347 
34348     /*** IPackageDebugSettings methods ***/
34349     HRESULT (STDMETHODCALLTYPE *EnableDebugging)(
34350         IPackageDebugSettings *This,
34351         LPCWSTR packageFullName,
34352         LPCWSTR debuggerCommandLine,
34353         PZZWSTR environment);
34354 
34355     HRESULT (STDMETHODCALLTYPE *DisableDebugging)(
34356         IPackageDebugSettings *This,
34357         LPCWSTR packageFullName);
34358 
34359     HRESULT (STDMETHODCALLTYPE *Suspend)(
34360         IPackageDebugSettings *This,
34361         LPCWSTR packageFullName);
34362 
34363     HRESULT (STDMETHODCALLTYPE *Resume)(
34364         IPackageDebugSettings *This,
34365         LPCWSTR packageFullName);
34366 
34367     HRESULT (STDMETHODCALLTYPE *TerminateAllProcesses)(
34368         IPackageDebugSettings *This,
34369         LPCWSTR packageFullName);
34370 
34371     HRESULT (STDMETHODCALLTYPE *SetTargetSessionId)(
34372         IPackageDebugSettings *This,
34373         ULONG sessionId);
34374 
34375     HRESULT (STDMETHODCALLTYPE *EnumerateBackgroundTasks)(
34376         IPackageDebugSettings *This,
34377         LPCWSTR packageFullName,
34378         ULONG *taskCount,
34379         LPCGUID *taskIds,
34380         LPCWSTR **taskNames);
34381 
34382     HRESULT (STDMETHODCALLTYPE *ActivateBackgroundTask)(
34383         IPackageDebugSettings *This,
34384         LPCGUID taskId);
34385 
34386     HRESULT (STDMETHODCALLTYPE *StartServicing)(
34387         IPackageDebugSettings *This,
34388         LPCWSTR packageFullName);
34389 
34390     HRESULT (STDMETHODCALLTYPE *StopServicing)(
34391         IPackageDebugSettings *This,
34392         LPCWSTR packageFullName);
34393 
34394     HRESULT (STDMETHODCALLTYPE *StartSessionRedirection)(
34395         IPackageDebugSettings *This,
34396         LPCWSTR packageFullName,
34397         ULONG sessionId);
34398 
34399     HRESULT (STDMETHODCALLTYPE *StopSessionRedirection)(
34400         IPackageDebugSettings *This,
34401         LPCWSTR packageFullName);
34402 
34403     HRESULT (STDMETHODCALLTYPE *GetPackageExecutionState)(
34404         IPackageDebugSettings *This,
34405         LPCWSTR packageFullName,
34406         PACKAGE_EXECUTION_STATE *packageExecutionState);
34407 
34408     HRESULT (STDMETHODCALLTYPE *RegisterForPackageStateChanges)(
34409         IPackageDebugSettings *This,
34410         LPCWSTR packageFullName,
34411         IPackageExecutionStateChangeNotification *pPackageExecutionStateChangeNotification,
34412         DWORD *pdwCookie);
34413 
34414     HRESULT (STDMETHODCALLTYPE *UnregisterForPackageStateChanges)(
34415         IPackageDebugSettings *This,
34416         DWORD dwCookie);
34417 
34418     END_INTERFACE
34419 } IPackageDebugSettingsVtbl;
34420 
34421 interface IPackageDebugSettings {
34422     CONST_VTBL IPackageDebugSettingsVtbl* lpVtbl;
34423 };
34424 
34425 #ifdef COBJMACROS
34426 #ifndef WIDL_C_INLINE_WRAPPERS
34427 /*** IUnknown methods ***/
34428 #define IPackageDebugSettings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
34429 #define IPackageDebugSettings_AddRef(This) (This)->lpVtbl->AddRef(This)
34430 #define IPackageDebugSettings_Release(This) (This)->lpVtbl->Release(This)
34431 /*** IPackageDebugSettings methods ***/
34432 #define IPackageDebugSettings_EnableDebugging(This,packageFullName,debuggerCommandLine,environment) (This)->lpVtbl->EnableDebugging(This,packageFullName,debuggerCommandLine,environment)
34433 #define IPackageDebugSettings_DisableDebugging(This,packageFullName) (This)->lpVtbl->DisableDebugging(This,packageFullName)
34434 #define IPackageDebugSettings_Suspend(This,packageFullName) (This)->lpVtbl->Suspend(This,packageFullName)
34435 #define IPackageDebugSettings_Resume(This,packageFullName) (This)->lpVtbl->Resume(This,packageFullName)
34436 #define IPackageDebugSettings_TerminateAllProcesses(This,packageFullName) (This)->lpVtbl->TerminateAllProcesses(This,packageFullName)
34437 #define IPackageDebugSettings_SetTargetSessionId(This,sessionId) (This)->lpVtbl->SetTargetSessionId(This,sessionId)
34438 #define IPackageDebugSettings_EnumerateBackgroundTasks(This,packageFullName,taskCount,taskIds,taskNames) (This)->lpVtbl->EnumerateBackgroundTasks(This,packageFullName,taskCount,taskIds,taskNames)
34439 #define IPackageDebugSettings_ActivateBackgroundTask(This,taskId) (This)->lpVtbl->ActivateBackgroundTask(This,taskId)
34440 #define IPackageDebugSettings_StartServicing(This,packageFullName) (This)->lpVtbl->StartServicing(This,packageFullName)
34441 #define IPackageDebugSettings_StopServicing(This,packageFullName) (This)->lpVtbl->StopServicing(This,packageFullName)
34442 #define IPackageDebugSettings_StartSessionRedirection(This,packageFullName,sessionId) (This)->lpVtbl->StartSessionRedirection(This,packageFullName,sessionId)
34443 #define IPackageDebugSettings_StopSessionRedirection(This,packageFullName) (This)->lpVtbl->StopSessionRedirection(This,packageFullName)
34444 #define IPackageDebugSettings_GetPackageExecutionState(This,packageFullName,packageExecutionState) (This)->lpVtbl->GetPackageExecutionState(This,packageFullName,packageExecutionState)
34445 #define IPackageDebugSettings_RegisterForPackageStateChanges(This,packageFullName,pPackageExecutionStateChangeNotification,pdwCookie) (This)->lpVtbl->RegisterForPackageStateChanges(This,packageFullName,pPackageExecutionStateChangeNotification,pdwCookie)
34446 #define IPackageDebugSettings_UnregisterForPackageStateChanges(This,dwCookie) (This)->lpVtbl->UnregisterForPackageStateChanges(This,dwCookie)
34447 #else
34448 /*** IUnknown methods ***/
34449 static FORCEINLINE HRESULT IPackageDebugSettings_QueryInterface(IPackageDebugSettings* This,REFIID riid,void **ppvObject) {
34450     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
34451 }
34452 static FORCEINLINE ULONG IPackageDebugSettings_AddRef(IPackageDebugSettings* This) {
34453     return This->lpVtbl->AddRef(This);
34454 }
34455 static FORCEINLINE ULONG IPackageDebugSettings_Release(IPackageDebugSettings* This) {
34456     return This->lpVtbl->Release(This);
34457 }
34458 /*** IPackageDebugSettings methods ***/
34459 static FORCEINLINE HRESULT IPackageDebugSettings_EnableDebugging(IPackageDebugSettings* This,LPCWSTR packageFullName,LPCWSTR debuggerCommandLine,PZZWSTR environment) {
34460     return This->lpVtbl->EnableDebugging(This,packageFullName,debuggerCommandLine,environment);
34461 }
34462 static FORCEINLINE HRESULT IPackageDebugSettings_DisableDebugging(IPackageDebugSettings* This,LPCWSTR packageFullName) {
34463     return This->lpVtbl->DisableDebugging(This,packageFullName);
34464 }
34465 static FORCEINLINE HRESULT IPackageDebugSettings_Suspend(IPackageDebugSettings* This,LPCWSTR packageFullName) {
34466     return This->lpVtbl->Suspend(This,packageFullName);
34467 }
34468 static FORCEINLINE HRESULT IPackageDebugSettings_Resume(IPackageDebugSettings* This,LPCWSTR packageFullName) {
34469     return This->lpVtbl->Resume(This,packageFullName);
34470 }
34471 static FORCEINLINE HRESULT IPackageDebugSettings_TerminateAllProcesses(IPackageDebugSettings* This,LPCWSTR packageFullName) {
34472     return This->lpVtbl->TerminateAllProcesses(This,packageFullName);
34473 }
34474 static FORCEINLINE HRESULT IPackageDebugSettings_SetTargetSessionId(IPackageDebugSettings* This,ULONG sessionId) {
34475     return This->lpVtbl->SetTargetSessionId(This,sessionId);
34476 }
34477 static FORCEINLINE HRESULT IPackageDebugSettings_EnumerateBackgroundTasks(IPackageDebugSettings* This,LPCWSTR packageFullName,ULONG *taskCount,LPCGUID *taskIds,LPCWSTR **taskNames) {
34478     return This->lpVtbl->EnumerateBackgroundTasks(This,packageFullName,taskCount,taskIds,taskNames);
34479 }
34480 static FORCEINLINE HRESULT IPackageDebugSettings_ActivateBackgroundTask(IPackageDebugSettings* This,LPCGUID taskId) {
34481     return This->lpVtbl->ActivateBackgroundTask(This,taskId);
34482 }
34483 static FORCEINLINE HRESULT IPackageDebugSettings_StartServicing(IPackageDebugSettings* This,LPCWSTR packageFullName) {
34484     return This->lpVtbl->StartServicing(This,packageFullName);
34485 }
34486 static FORCEINLINE HRESULT IPackageDebugSettings_StopServicing(IPackageDebugSettings* This,LPCWSTR packageFullName) {
34487     return This->lpVtbl->StopServicing(This,packageFullName);
34488 }
34489 static FORCEINLINE HRESULT IPackageDebugSettings_StartSessionRedirection(IPackageDebugSettings* This,LPCWSTR packageFullName,ULONG sessionId) {
34490     return This->lpVtbl->StartSessionRedirection(This,packageFullName,sessionId);
34491 }
34492 static FORCEINLINE HRESULT IPackageDebugSettings_StopSessionRedirection(IPackageDebugSettings* This,LPCWSTR packageFullName) {
34493     return This->lpVtbl->StopSessionRedirection(This,packageFullName);
34494 }
34495 static FORCEINLINE HRESULT IPackageDebugSettings_GetPackageExecutionState(IPackageDebugSettings* This,LPCWSTR packageFullName,PACKAGE_EXECUTION_STATE *packageExecutionState) {
34496     return This->lpVtbl->GetPackageExecutionState(This,packageFullName,packageExecutionState);
34497 }
34498 static FORCEINLINE HRESULT IPackageDebugSettings_RegisterForPackageStateChanges(IPackageDebugSettings* This,LPCWSTR packageFullName,IPackageExecutionStateChangeNotification *pPackageExecutionStateChangeNotification,DWORD *pdwCookie) {
34499     return This->lpVtbl->RegisterForPackageStateChanges(This,packageFullName,pPackageExecutionStateChangeNotification,pdwCookie);
34500 }
34501 static FORCEINLINE HRESULT IPackageDebugSettings_UnregisterForPackageStateChanges(IPackageDebugSettings* This,DWORD dwCookie) {
34502     return This->lpVtbl->UnregisterForPackageStateChanges(This,dwCookie);
34503 }
34504 #endif
34505 #endif
34506 
34507 #endif
34508 
34509 
34510 #endif  /* __IPackageDebugSettings_INTERFACE_DEFINED__ */
34511 
34512 
34513 typedef enum AHE_TYPE {
34514     AHE_DESKTOP = 0,
34515     AHE_IMMERSIVE = 1
34516 } AHE_TYPE;
34517 
34518 /*****************************************************************************
34519  * IExecuteCommandApplicationHostEnvironment interface
34520  */
34521 #ifndef __IExecuteCommandApplicationHostEnvironment_INTERFACE_DEFINED__
34522 #define __IExecuteCommandApplicationHostEnvironment_INTERFACE_DEFINED__
34523 
34524 DEFINE_GUID(IID_IExecuteCommandApplicationHostEnvironment, 0x18b21aa9, 0xe184, 0x4ff0, 0x9f,0x5e, 0xf8,0x82,0xd0,0x37,0x71,0xb3);
34525 #if defined(__cplusplus) && !defined(CINTERFACE)
34526 MIDL_INTERFACE("18b21aa9-e184-4ff0-9f5e-f882d03771b3")
34527 IExecuteCommandApplicationHostEnvironment : public IUnknown
34528 {
34529     virtual HRESULT STDMETHODCALLTYPE GetValue(
34530         AHE_TYPE *pahe) = 0;
34531 
34532 };
34533 #ifdef __CRT_UUID_DECL
34534 __CRT_UUID_DECL(IExecuteCommandApplicationHostEnvironment, 0x18b21aa9, 0xe184, 0x4ff0, 0x9f,0x5e, 0xf8,0x82,0xd0,0x37,0x71,0xb3)
34535 #endif
34536 #else
34537 typedef struct IExecuteCommandApplicationHostEnvironmentVtbl {
34538     BEGIN_INTERFACE
34539 
34540     /*** IUnknown methods ***/
34541     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
34542         IExecuteCommandApplicationHostEnvironment *This,
34543         REFIID riid,
34544         void **ppvObject);
34545 
34546     ULONG (STDMETHODCALLTYPE *AddRef)(
34547         IExecuteCommandApplicationHostEnvironment *This);
34548 
34549     ULONG (STDMETHODCALLTYPE *Release)(
34550         IExecuteCommandApplicationHostEnvironment *This);
34551 
34552     /*** IExecuteCommandApplicationHostEnvironment methods ***/
34553     HRESULT (STDMETHODCALLTYPE *GetValue)(
34554         IExecuteCommandApplicationHostEnvironment *This,
34555         AHE_TYPE *pahe);
34556 
34557     END_INTERFACE
34558 } IExecuteCommandApplicationHostEnvironmentVtbl;
34559 
34560 interface IExecuteCommandApplicationHostEnvironment {
34561     CONST_VTBL IExecuteCommandApplicationHostEnvironmentVtbl* lpVtbl;
34562 };
34563 
34564 #ifdef COBJMACROS
34565 #ifndef WIDL_C_INLINE_WRAPPERS
34566 /*** IUnknown methods ***/
34567 #define IExecuteCommandApplicationHostEnvironment_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
34568 #define IExecuteCommandApplicationHostEnvironment_AddRef(This) (This)->lpVtbl->AddRef(This)
34569 #define IExecuteCommandApplicationHostEnvironment_Release(This) (This)->lpVtbl->Release(This)
34570 /*** IExecuteCommandApplicationHostEnvironment methods ***/
34571 #define IExecuteCommandApplicationHostEnvironment_GetValue(This,pahe) (This)->lpVtbl->GetValue(This,pahe)
34572 #else
34573 /*** IUnknown methods ***/
34574 static FORCEINLINE HRESULT IExecuteCommandApplicationHostEnvironment_QueryInterface(IExecuteCommandApplicationHostEnvironment* This,REFIID riid,void **ppvObject) {
34575     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
34576 }
34577 static FORCEINLINE ULONG IExecuteCommandApplicationHostEnvironment_AddRef(IExecuteCommandApplicationHostEnvironment* This) {
34578     return This->lpVtbl->AddRef(This);
34579 }
34580 static FORCEINLINE ULONG IExecuteCommandApplicationHostEnvironment_Release(IExecuteCommandApplicationHostEnvironment* This) {
34581     return This->lpVtbl->Release(This);
34582 }
34583 /*** IExecuteCommandApplicationHostEnvironment methods ***/
34584 static FORCEINLINE HRESULT IExecuteCommandApplicationHostEnvironment_GetValue(IExecuteCommandApplicationHostEnvironment* This,AHE_TYPE *pahe) {
34585     return This->lpVtbl->GetValue(This,pahe);
34586 }
34587 #endif
34588 #endif
34589 
34590 #endif
34591 
34592 
34593 #endif  /* __IExecuteCommandApplicationHostEnvironment_INTERFACE_DEFINED__ */
34594 
34595 
34596 typedef enum EC_HOST_UI_MODE {
34597     ECHUIM_DESKTOP = 0,
34598     ECHUIM_IMMERSIVE = 1,
34599     ECHUIM_SYSTEM_LAUNCHER = 2
34600 } EC_HOST_UI_MODE;
34601 
34602 /*****************************************************************************
34603  * IExecuteCommandHost interface
34604  */
34605 #ifndef __IExecuteCommandHost_INTERFACE_DEFINED__
34606 #define __IExecuteCommandHost_INTERFACE_DEFINED__
34607 
34608 DEFINE_GUID(IID_IExecuteCommandHost, 0x4b6832a2, 0x5f04, 0x4c9d, 0xb8,0x9d, 0x72,0x7a,0x15,0xd1,0x03,0xe7);
34609 #if defined(__cplusplus) && !defined(CINTERFACE)
34610 MIDL_INTERFACE("4b6832a2-5f04-4c9d-b89d-727a15d103e7")
34611 IExecuteCommandHost : public IUnknown
34612 {
34613     virtual HRESULT STDMETHODCALLTYPE GetUIMode(
34614         EC_HOST_UI_MODE *pUIMode) = 0;
34615 
34616 };
34617 #ifdef __CRT_UUID_DECL
34618 __CRT_UUID_DECL(IExecuteCommandHost, 0x4b6832a2, 0x5f04, 0x4c9d, 0xb8,0x9d, 0x72,0x7a,0x15,0xd1,0x03,0xe7)
34619 #endif
34620 #else
34621 typedef struct IExecuteCommandHostVtbl {
34622     BEGIN_INTERFACE
34623 
34624     /*** IUnknown methods ***/
34625     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
34626         IExecuteCommandHost *This,
34627         REFIID riid,
34628         void **ppvObject);
34629 
34630     ULONG (STDMETHODCALLTYPE *AddRef)(
34631         IExecuteCommandHost *This);
34632 
34633     ULONG (STDMETHODCALLTYPE *Release)(
34634         IExecuteCommandHost *This);
34635 
34636     /*** IExecuteCommandHost methods ***/
34637     HRESULT (STDMETHODCALLTYPE *GetUIMode)(
34638         IExecuteCommandHost *This,
34639         EC_HOST_UI_MODE *pUIMode);
34640 
34641     END_INTERFACE
34642 } IExecuteCommandHostVtbl;
34643 
34644 interface IExecuteCommandHost {
34645     CONST_VTBL IExecuteCommandHostVtbl* lpVtbl;
34646 };
34647 
34648 #ifdef COBJMACROS
34649 #ifndef WIDL_C_INLINE_WRAPPERS
34650 /*** IUnknown methods ***/
34651 #define IExecuteCommandHost_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
34652 #define IExecuteCommandHost_AddRef(This) (This)->lpVtbl->AddRef(This)
34653 #define IExecuteCommandHost_Release(This) (This)->lpVtbl->Release(This)
34654 /*** IExecuteCommandHost methods ***/
34655 #define IExecuteCommandHost_GetUIMode(This,pUIMode) (This)->lpVtbl->GetUIMode(This,pUIMode)
34656 #else
34657 /*** IUnknown methods ***/
34658 static FORCEINLINE HRESULT IExecuteCommandHost_QueryInterface(IExecuteCommandHost* This,REFIID riid,void **ppvObject) {
34659     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
34660 }
34661 static FORCEINLINE ULONG IExecuteCommandHost_AddRef(IExecuteCommandHost* This) {
34662     return This->lpVtbl->AddRef(This);
34663 }
34664 static FORCEINLINE ULONG IExecuteCommandHost_Release(IExecuteCommandHost* This) {
34665     return This->lpVtbl->Release(This);
34666 }
34667 /*** IExecuteCommandHost methods ***/
34668 static FORCEINLINE HRESULT IExecuteCommandHost_GetUIMode(IExecuteCommandHost* This,EC_HOST_UI_MODE *pUIMode) {
34669     return This->lpVtbl->GetUIMode(This,pUIMode);
34670 }
34671 #endif
34672 #endif
34673 
34674 #endif
34675 
34676 
34677 #endif  /* __IExecuteCommandHost_INTERFACE_DEFINED__ */
34678 
34679 
34680 #define SID_ExecuteCommandHost IID_IExecuteCommandHost
34681 
34682 typedef enum APPLICATION_VIEW_STATE {
34683     AVS_FULLSCREEN_LANDSCAPE = 0,
34684     AVS_FILLED = 1,
34685     AVS_SNAPPED = 2,
34686     AVS_FULLSCREEN_PORTRAIT = 3
34687 } APPLICATION_VIEW_STATE;
34688 
34689 typedef enum EDGE_GESTURE_KIND {
34690     EGK_TOUCH = 0,
34691     EGK_KEYBOARD = 1,
34692     EGK_MOUSE = 2
34693 } EDGE_GESTURE_KIND;
34694 
34695 /*****************************************************************************
34696  * IApplicationDesignModeSettings interface
34697  */
34698 #ifndef __IApplicationDesignModeSettings_INTERFACE_DEFINED__
34699 #define __IApplicationDesignModeSettings_INTERFACE_DEFINED__
34700 
34701 DEFINE_GUID(IID_IApplicationDesignModeSettings, 0x2a3dee9a, 0xe31d, 0x46d6, 0x85,0x08, 0xbc,0xc5,0x97,0xdb,0x35,0x57);
34702 #if defined(__cplusplus) && !defined(CINTERFACE)
34703 MIDL_INTERFACE("2a3dee9a-e31d-46d6-8508-bcc597db3557")
34704 IApplicationDesignModeSettings : public IUnknown
34705 {
34706     virtual HRESULT STDMETHODCALLTYPE SetNativeDisplaySize(
34707         SIZE sizeNativeDisplay) = 0;
34708 
34709     virtual HRESULT STDMETHODCALLTYPE SetScaleFactor(
34710         DEVICE_SCALE_FACTOR scaleFactor) = 0;
34711 
34712     virtual HRESULT STDMETHODCALLTYPE SetApplicationViewState(
34713         APPLICATION_VIEW_STATE viewState) = 0;
34714 
34715     virtual HRESULT STDMETHODCALLTYPE ComputeApplicationSize(
34716         SIZE *psizeApplication) = 0;
34717 
34718     virtual HRESULT STDMETHODCALLTYPE IsApplicationViewStateSupported(
34719         APPLICATION_VIEW_STATE viewState,
34720         SIZE sizeNativeDisplay,
34721         DEVICE_SCALE_FACTOR scaleFactor,
34722         WINBOOL *pfSupported) = 0;
34723 
34724     virtual HRESULT STDMETHODCALLTYPE TriggerEdgeGesture(
34725         EDGE_GESTURE_KIND edgeGestureKind) = 0;
34726 
34727 };
34728 #ifdef __CRT_UUID_DECL
34729 __CRT_UUID_DECL(IApplicationDesignModeSettings, 0x2a3dee9a, 0xe31d, 0x46d6, 0x85,0x08, 0xbc,0xc5,0x97,0xdb,0x35,0x57)
34730 #endif
34731 #else
34732 typedef struct IApplicationDesignModeSettingsVtbl {
34733     BEGIN_INTERFACE
34734 
34735     /*** IUnknown methods ***/
34736     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
34737         IApplicationDesignModeSettings *This,
34738         REFIID riid,
34739         void **ppvObject);
34740 
34741     ULONG (STDMETHODCALLTYPE *AddRef)(
34742         IApplicationDesignModeSettings *This);
34743 
34744     ULONG (STDMETHODCALLTYPE *Release)(
34745         IApplicationDesignModeSettings *This);
34746 
34747     /*** IApplicationDesignModeSettings methods ***/
34748     HRESULT (STDMETHODCALLTYPE *SetNativeDisplaySize)(
34749         IApplicationDesignModeSettings *This,
34750         SIZE sizeNativeDisplay);
34751 
34752     HRESULT (STDMETHODCALLTYPE *SetScaleFactor)(
34753         IApplicationDesignModeSettings *This,
34754         DEVICE_SCALE_FACTOR scaleFactor);
34755 
34756     HRESULT (STDMETHODCALLTYPE *SetApplicationViewState)(
34757         IApplicationDesignModeSettings *This,
34758         APPLICATION_VIEW_STATE viewState);
34759 
34760     HRESULT (STDMETHODCALLTYPE *ComputeApplicationSize)(
34761         IApplicationDesignModeSettings *This,
34762         SIZE *psizeApplication);
34763 
34764     HRESULT (STDMETHODCALLTYPE *IsApplicationViewStateSupported)(
34765         IApplicationDesignModeSettings *This,
34766         APPLICATION_VIEW_STATE viewState,
34767         SIZE sizeNativeDisplay,
34768         DEVICE_SCALE_FACTOR scaleFactor,
34769         WINBOOL *pfSupported);
34770 
34771     HRESULT (STDMETHODCALLTYPE *TriggerEdgeGesture)(
34772         IApplicationDesignModeSettings *This,
34773         EDGE_GESTURE_KIND edgeGestureKind);
34774 
34775     END_INTERFACE
34776 } IApplicationDesignModeSettingsVtbl;
34777 
34778 interface IApplicationDesignModeSettings {
34779     CONST_VTBL IApplicationDesignModeSettingsVtbl* lpVtbl;
34780 };
34781 
34782 #ifdef COBJMACROS
34783 #ifndef WIDL_C_INLINE_WRAPPERS
34784 /*** IUnknown methods ***/
34785 #define IApplicationDesignModeSettings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
34786 #define IApplicationDesignModeSettings_AddRef(This) (This)->lpVtbl->AddRef(This)
34787 #define IApplicationDesignModeSettings_Release(This) (This)->lpVtbl->Release(This)
34788 /*** IApplicationDesignModeSettings methods ***/
34789 #define IApplicationDesignModeSettings_SetNativeDisplaySize(This,sizeNativeDisplay) (This)->lpVtbl->SetNativeDisplaySize(This,sizeNativeDisplay)
34790 #define IApplicationDesignModeSettings_SetScaleFactor(This,scaleFactor) (This)->lpVtbl->SetScaleFactor(This,scaleFactor)
34791 #define IApplicationDesignModeSettings_SetApplicationViewState(This,viewState) (This)->lpVtbl->SetApplicationViewState(This,viewState)
34792 #define IApplicationDesignModeSettings_ComputeApplicationSize(This,psizeApplication) (This)->lpVtbl->ComputeApplicationSize(This,psizeApplication)
34793 #define IApplicationDesignModeSettings_IsApplicationViewStateSupported(This,viewState,sizeNativeDisplay,scaleFactor,pfSupported) (This)->lpVtbl->IsApplicationViewStateSupported(This,viewState,sizeNativeDisplay,scaleFactor,pfSupported)
34794 #define IApplicationDesignModeSettings_TriggerEdgeGesture(This,edgeGestureKind) (This)->lpVtbl->TriggerEdgeGesture(This,edgeGestureKind)
34795 #else
34796 /*** IUnknown methods ***/
34797 static FORCEINLINE HRESULT IApplicationDesignModeSettings_QueryInterface(IApplicationDesignModeSettings* This,REFIID riid,void **ppvObject) {
34798     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
34799 }
34800 static FORCEINLINE ULONG IApplicationDesignModeSettings_AddRef(IApplicationDesignModeSettings* This) {
34801     return This->lpVtbl->AddRef(This);
34802 }
34803 static FORCEINLINE ULONG IApplicationDesignModeSettings_Release(IApplicationDesignModeSettings* This) {
34804     return This->lpVtbl->Release(This);
34805 }
34806 /*** IApplicationDesignModeSettings methods ***/
34807 static FORCEINLINE HRESULT IApplicationDesignModeSettings_SetNativeDisplaySize(IApplicationDesignModeSettings* This,SIZE sizeNativeDisplay) {
34808     return This->lpVtbl->SetNativeDisplaySize(This,sizeNativeDisplay);
34809 }
34810 static FORCEINLINE HRESULT IApplicationDesignModeSettings_SetScaleFactor(IApplicationDesignModeSettings* This,DEVICE_SCALE_FACTOR scaleFactor) {
34811     return This->lpVtbl->SetScaleFactor(This,scaleFactor);
34812 }
34813 static FORCEINLINE HRESULT IApplicationDesignModeSettings_SetApplicationViewState(IApplicationDesignModeSettings* This,APPLICATION_VIEW_STATE viewState) {
34814     return This->lpVtbl->SetApplicationViewState(This,viewState);
34815 }
34816 static FORCEINLINE HRESULT IApplicationDesignModeSettings_ComputeApplicationSize(IApplicationDesignModeSettings* This,SIZE *psizeApplication) {
34817     return This->lpVtbl->ComputeApplicationSize(This,psizeApplication);
34818 }
34819 static FORCEINLINE HRESULT IApplicationDesignModeSettings_IsApplicationViewStateSupported(IApplicationDesignModeSettings* This,APPLICATION_VIEW_STATE viewState,SIZE sizeNativeDisplay,DEVICE_SCALE_FACTOR scaleFactor,WINBOOL *pfSupported) {
34820     return This->lpVtbl->IsApplicationViewStateSupported(This,viewState,sizeNativeDisplay,scaleFactor,pfSupported);
34821 }
34822 static FORCEINLINE HRESULT IApplicationDesignModeSettings_TriggerEdgeGesture(IApplicationDesignModeSettings* This,EDGE_GESTURE_KIND edgeGestureKind) {
34823     return This->lpVtbl->TriggerEdgeGesture(This,edgeGestureKind);
34824 }
34825 #endif
34826 #endif
34827 
34828 #endif
34829 
34830 
34831 #endif  /* __IApplicationDesignModeSettings_INTERFACE_DEFINED__ */
34832 
34833 
34834 /*****************************************************************************
34835  * IInitializeWithWindow interface
34836  */
34837 #ifndef __IInitializeWithWindow_INTERFACE_DEFINED__
34838 #define __IInitializeWithWindow_INTERFACE_DEFINED__
34839 
34840 DEFINE_GUID(IID_IInitializeWithWindow, 0x3e68d4bd, 0x7135, 0x4d10, 0x80,0x18, 0x9f,0xb6,0xd9,0xf3,0x3f,0xa1);
34841 #if defined(__cplusplus) && !defined(CINTERFACE)
34842 MIDL_INTERFACE("3e68d4bd-7135-4d10-8018-9fb6d9f33fa1")
34843 IInitializeWithWindow : public IUnknown
34844 {
34845     virtual HRESULT STDMETHODCALLTYPE Initialize(
34846         HWND hwnd) = 0;
34847 
34848 };
34849 #ifdef __CRT_UUID_DECL
34850 __CRT_UUID_DECL(IInitializeWithWindow, 0x3e68d4bd, 0x7135, 0x4d10, 0x80,0x18, 0x9f,0xb6,0xd9,0xf3,0x3f,0xa1)
34851 #endif
34852 #else
34853 typedef struct IInitializeWithWindowVtbl {
34854     BEGIN_INTERFACE
34855 
34856     /*** IUnknown methods ***/
34857     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
34858         IInitializeWithWindow *This,
34859         REFIID riid,
34860         void **ppvObject);
34861 
34862     ULONG (STDMETHODCALLTYPE *AddRef)(
34863         IInitializeWithWindow *This);
34864 
34865     ULONG (STDMETHODCALLTYPE *Release)(
34866         IInitializeWithWindow *This);
34867 
34868     /*** IInitializeWithWindow methods ***/
34869     HRESULT (STDMETHODCALLTYPE *Initialize)(
34870         IInitializeWithWindow *This,
34871         HWND hwnd);
34872 
34873     END_INTERFACE
34874 } IInitializeWithWindowVtbl;
34875 
34876 interface IInitializeWithWindow {
34877     CONST_VTBL IInitializeWithWindowVtbl* lpVtbl;
34878 };
34879 
34880 #ifdef COBJMACROS
34881 #ifndef WIDL_C_INLINE_WRAPPERS
34882 /*** IUnknown methods ***/
34883 #define IInitializeWithWindow_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
34884 #define IInitializeWithWindow_AddRef(This) (This)->lpVtbl->AddRef(This)
34885 #define IInitializeWithWindow_Release(This) (This)->lpVtbl->Release(This)
34886 /*** IInitializeWithWindow methods ***/
34887 #define IInitializeWithWindow_Initialize(This,hwnd) (This)->lpVtbl->Initialize(This,hwnd)
34888 #else
34889 /*** IUnknown methods ***/
34890 static FORCEINLINE HRESULT IInitializeWithWindow_QueryInterface(IInitializeWithWindow* This,REFIID riid,void **ppvObject) {
34891     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
34892 }
34893 static FORCEINLINE ULONG IInitializeWithWindow_AddRef(IInitializeWithWindow* This) {
34894     return This->lpVtbl->AddRef(This);
34895 }
34896 static FORCEINLINE ULONG IInitializeWithWindow_Release(IInitializeWithWindow* This) {
34897     return This->lpVtbl->Release(This);
34898 }
34899 /*** IInitializeWithWindow methods ***/
34900 static FORCEINLINE HRESULT IInitializeWithWindow_Initialize(IInitializeWithWindow* This,HWND hwnd) {
34901     return This->lpVtbl->Initialize(This,hwnd);
34902 }
34903 #endif
34904 #endif
34905 
34906 #endif
34907 
34908 
34909 #endif  /* __IInitializeWithWindow_INTERFACE_DEFINED__ */
34910 
34911 
34912 /*****************************************************************************
34913  * IHandlerInfo interface
34914  */
34915 #ifndef __IHandlerInfo_INTERFACE_DEFINED__
34916 #define __IHandlerInfo_INTERFACE_DEFINED__
34917 
34918 DEFINE_GUID(IID_IHandlerInfo, 0x997706ef, 0xf880, 0x453b, 0x81,0x18, 0x39,0xe1,0xa2,0xd2,0x65,0x5a);
34919 #if defined(__cplusplus) && !defined(CINTERFACE)
34920 MIDL_INTERFACE("997706ef-f880-453b-8118-39e1a2d2655a")
34921 IHandlerInfo : public IUnknown
34922 {
34923     virtual HRESULT STDMETHODCALLTYPE GetApplicationDisplayName(
34924         LPWSTR *value) = 0;
34925 
34926     virtual HRESULT STDMETHODCALLTYPE GetApplicationPublisher(
34927         LPWSTR *value) = 0;
34928 
34929     virtual HRESULT STDMETHODCALLTYPE GetApplicationIconReference(
34930         LPWSTR *value) = 0;
34931 
34932 };
34933 #ifdef __CRT_UUID_DECL
34934 __CRT_UUID_DECL(IHandlerInfo, 0x997706ef, 0xf880, 0x453b, 0x81,0x18, 0x39,0xe1,0xa2,0xd2,0x65,0x5a)
34935 #endif
34936 #else
34937 typedef struct IHandlerInfoVtbl {
34938     BEGIN_INTERFACE
34939 
34940     /*** IUnknown methods ***/
34941     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
34942         IHandlerInfo *This,
34943         REFIID riid,
34944         void **ppvObject);
34945 
34946     ULONG (STDMETHODCALLTYPE *AddRef)(
34947         IHandlerInfo *This);
34948 
34949     ULONG (STDMETHODCALLTYPE *Release)(
34950         IHandlerInfo *This);
34951 
34952     /*** IHandlerInfo methods ***/
34953     HRESULT (STDMETHODCALLTYPE *GetApplicationDisplayName)(
34954         IHandlerInfo *This,
34955         LPWSTR *value);
34956 
34957     HRESULT (STDMETHODCALLTYPE *GetApplicationPublisher)(
34958         IHandlerInfo *This,
34959         LPWSTR *value);
34960 
34961     HRESULT (STDMETHODCALLTYPE *GetApplicationIconReference)(
34962         IHandlerInfo *This,
34963         LPWSTR *value);
34964 
34965     END_INTERFACE
34966 } IHandlerInfoVtbl;
34967 
34968 interface IHandlerInfo {
34969     CONST_VTBL IHandlerInfoVtbl* lpVtbl;
34970 };
34971 
34972 #ifdef COBJMACROS
34973 #ifndef WIDL_C_INLINE_WRAPPERS
34974 /*** IUnknown methods ***/
34975 #define IHandlerInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
34976 #define IHandlerInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
34977 #define IHandlerInfo_Release(This) (This)->lpVtbl->Release(This)
34978 /*** IHandlerInfo methods ***/
34979 #define IHandlerInfo_GetApplicationDisplayName(This,value) (This)->lpVtbl->GetApplicationDisplayName(This,value)
34980 #define IHandlerInfo_GetApplicationPublisher(This,value) (This)->lpVtbl->GetApplicationPublisher(This,value)
34981 #define IHandlerInfo_GetApplicationIconReference(This,value) (This)->lpVtbl->GetApplicationIconReference(This,value)
34982 #else
34983 /*** IUnknown methods ***/
34984 static FORCEINLINE HRESULT IHandlerInfo_QueryInterface(IHandlerInfo* This,REFIID riid,void **ppvObject) {
34985     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
34986 }
34987 static FORCEINLINE ULONG IHandlerInfo_AddRef(IHandlerInfo* This) {
34988     return This->lpVtbl->AddRef(This);
34989 }
34990 static FORCEINLINE ULONG IHandlerInfo_Release(IHandlerInfo* This) {
34991     return This->lpVtbl->Release(This);
34992 }
34993 /*** IHandlerInfo methods ***/
34994 static FORCEINLINE HRESULT IHandlerInfo_GetApplicationDisplayName(IHandlerInfo* This,LPWSTR *value) {
34995     return This->lpVtbl->GetApplicationDisplayName(This,value);
34996 }
34997 static FORCEINLINE HRESULT IHandlerInfo_GetApplicationPublisher(IHandlerInfo* This,LPWSTR *value) {
34998     return This->lpVtbl->GetApplicationPublisher(This,value);
34999 }
35000 static FORCEINLINE HRESULT IHandlerInfo_GetApplicationIconReference(IHandlerInfo* This,LPWSTR *value) {
35001     return This->lpVtbl->GetApplicationIconReference(This,value);
35002 }
35003 #endif
35004 #endif
35005 
35006 #endif
35007 
35008 
35009 #endif  /* __IHandlerInfo_INTERFACE_DEFINED__ */
35010 
35011 
35012 /*****************************************************************************
35013  * IHandlerActivationHost interface
35014  */
35015 #ifndef __IHandlerActivationHost_INTERFACE_DEFINED__
35016 #define __IHandlerActivationHost_INTERFACE_DEFINED__
35017 
35018 DEFINE_GUID(IID_IHandlerActivationHost, 0x35094a87, 0x8bb1, 0x4237, 0x96,0xc6, 0xc4,0x17,0xee,0xbd,0xb0,0x78);
35019 #if defined(__cplusplus) && !defined(CINTERFACE)
35020 MIDL_INTERFACE("35094a87-8bb1-4237-96c6-c417eebdb078")
35021 IHandlerActivationHost : public IUnknown
35022 {
35023     virtual HRESULT STDMETHODCALLTYPE BeforeCoCreateInstance(
35024         REFCLSID clsidHandler,
35025         IShellItemArray *itemsBeingActivated,
35026         IHandlerInfo *handlerInfo) = 0;
35027 
35028     virtual HRESULT STDMETHODCALLTYPE BeforeCreateProcess(
35029         LPCWSTR applicationPath,
35030         LPCWSTR commandLine,
35031         IHandlerInfo *handlerInfo) = 0;
35032 
35033 };
35034 #ifdef __CRT_UUID_DECL
35035 __CRT_UUID_DECL(IHandlerActivationHost, 0x35094a87, 0x8bb1, 0x4237, 0x96,0xc6, 0xc4,0x17,0xee,0xbd,0xb0,0x78)
35036 #endif
35037 #else
35038 typedef struct IHandlerActivationHostVtbl {
35039     BEGIN_INTERFACE
35040 
35041     /*** IUnknown methods ***/
35042     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
35043         IHandlerActivationHost *This,
35044         REFIID riid,
35045         void **ppvObject);
35046 
35047     ULONG (STDMETHODCALLTYPE *AddRef)(
35048         IHandlerActivationHost *This);
35049 
35050     ULONG (STDMETHODCALLTYPE *Release)(
35051         IHandlerActivationHost *This);
35052 
35053     /*** IHandlerActivationHost methods ***/
35054     HRESULT (STDMETHODCALLTYPE *BeforeCoCreateInstance)(
35055         IHandlerActivationHost *This,
35056         REFCLSID clsidHandler,
35057         IShellItemArray *itemsBeingActivated,
35058         IHandlerInfo *handlerInfo);
35059 
35060     HRESULT (STDMETHODCALLTYPE *BeforeCreateProcess)(
35061         IHandlerActivationHost *This,
35062         LPCWSTR applicationPath,
35063         LPCWSTR commandLine,
35064         IHandlerInfo *handlerInfo);
35065 
35066     END_INTERFACE
35067 } IHandlerActivationHostVtbl;
35068 
35069 interface IHandlerActivationHost {
35070     CONST_VTBL IHandlerActivationHostVtbl* lpVtbl;
35071 };
35072 
35073 #ifdef COBJMACROS
35074 #ifndef WIDL_C_INLINE_WRAPPERS
35075 /*** IUnknown methods ***/
35076 #define IHandlerActivationHost_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
35077 #define IHandlerActivationHost_AddRef(This) (This)->lpVtbl->AddRef(This)
35078 #define IHandlerActivationHost_Release(This) (This)->lpVtbl->Release(This)
35079 /*** IHandlerActivationHost methods ***/
35080 #define IHandlerActivationHost_BeforeCoCreateInstance(This,clsidHandler,itemsBeingActivated,handlerInfo) (This)->lpVtbl->BeforeCoCreateInstance(This,clsidHandler,itemsBeingActivated,handlerInfo)
35081 #define IHandlerActivationHost_BeforeCreateProcess(This,applicationPath,commandLine,handlerInfo) (This)->lpVtbl->BeforeCreateProcess(This,applicationPath,commandLine,handlerInfo)
35082 #else
35083 /*** IUnknown methods ***/
35084 static FORCEINLINE HRESULT IHandlerActivationHost_QueryInterface(IHandlerActivationHost* This,REFIID riid,void **ppvObject) {
35085     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
35086 }
35087 static FORCEINLINE ULONG IHandlerActivationHost_AddRef(IHandlerActivationHost* This) {
35088     return This->lpVtbl->AddRef(This);
35089 }
35090 static FORCEINLINE ULONG IHandlerActivationHost_Release(IHandlerActivationHost* This) {
35091     return This->lpVtbl->Release(This);
35092 }
35093 /*** IHandlerActivationHost methods ***/
35094 static FORCEINLINE HRESULT IHandlerActivationHost_BeforeCoCreateInstance(IHandlerActivationHost* This,REFCLSID clsidHandler,IShellItemArray *itemsBeingActivated,IHandlerInfo *handlerInfo) {
35095     return This->lpVtbl->BeforeCoCreateInstance(This,clsidHandler,itemsBeingActivated,handlerInfo);
35096 }
35097 static FORCEINLINE HRESULT IHandlerActivationHost_BeforeCreateProcess(IHandlerActivationHost* This,LPCWSTR applicationPath,LPCWSTR commandLine,IHandlerInfo *handlerInfo) {
35098     return This->lpVtbl->BeforeCreateProcess(This,applicationPath,commandLine,handlerInfo);
35099 }
35100 #endif
35101 #endif
35102 
35103 #endif
35104 
35105 
35106 #endif  /* __IHandlerActivationHost_INTERFACE_DEFINED__ */
35107 
35108 
35109 #define SID_SHandlerActivationHost IID_IHandlerActivationHost
35110 
35111 DEFINE_GUID(SID_ShellExecuteNamedPropertyStore, 0xeb84ada2, 0x00ff, 0x4992, 0x83, 0x24, 0xed, 0x5c, 0xe0, 0x61, 0xcb, 0x29);
35112 #endif
35113 
35114 #endif
35115 /* Begin additional prototypes for all interfaces */
35116 
35117 ULONG           __RPC_USER PCIDLIST_ABSOLUTE_UserSize     (ULONG *, ULONG, PCIDLIST_ABSOLUTE *);
35118 unsigned char * __RPC_USER PCIDLIST_ABSOLUTE_UserMarshal  (ULONG *, unsigned char *, PCIDLIST_ABSOLUTE *);
35119 unsigned char * __RPC_USER PCIDLIST_ABSOLUTE_UserUnmarshal(ULONG *, unsigned char *, PCIDLIST_ABSOLUTE *);
35120 void            __RPC_USER PCIDLIST_ABSOLUTE_UserFree     (ULONG *, PCIDLIST_ABSOLUTE *);
35121 ULONG           __RPC_USER PIDLIST_ABSOLUTE_UserSize     (ULONG *, ULONG, PIDLIST_ABSOLUTE *);
35122 unsigned char * __RPC_USER PIDLIST_ABSOLUTE_UserMarshal  (ULONG *, unsigned char *, PIDLIST_ABSOLUTE *);
35123 unsigned char * __RPC_USER PIDLIST_ABSOLUTE_UserUnmarshal(ULONG *, unsigned char *, PIDLIST_ABSOLUTE *);
35124 void            __RPC_USER PIDLIST_ABSOLUTE_UserFree     (ULONG *, PIDLIST_ABSOLUTE *);
35125 ULONG           __RPC_USER PITEMID_CHILD_UserSize     (ULONG *, ULONG, PITEMID_CHILD *);
35126 unsigned char * __RPC_USER PITEMID_CHILD_UserMarshal  (ULONG *, unsigned char *, PITEMID_CHILD *);
35127 unsigned char * __RPC_USER PITEMID_CHILD_UserUnmarshal(ULONG *, unsigned char *, PITEMID_CHILD *);
35128 void            __RPC_USER PITEMID_CHILD_UserFree     (ULONG *, PITEMID_CHILD *);
35129 ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
35130 unsigned char * __RPC_USER HWND_UserMarshal  (ULONG *, unsigned char *, HWND *);
35131 unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *);
35132 void            __RPC_USER HWND_UserFree     (ULONG *, HWND *);
35133 ULONG           __RPC_USER PIDLIST_RELATIVE_UserSize     (ULONG *, ULONG, PIDLIST_RELATIVE *);
35134 unsigned char * __RPC_USER PIDLIST_RELATIVE_UserMarshal  (ULONG *, unsigned char *, PIDLIST_RELATIVE *);
35135 unsigned char * __RPC_USER PIDLIST_RELATIVE_UserUnmarshal(ULONG *, unsigned char *, PIDLIST_RELATIVE *);
35136 void            __RPC_USER PIDLIST_RELATIVE_UserFree     (ULONG *, PIDLIST_RELATIVE *);
35137 ULONG           __RPC_USER PCUIDLIST_RELATIVE_UserSize     (ULONG *, ULONG, PCUIDLIST_RELATIVE *);
35138 unsigned char * __RPC_USER PCUIDLIST_RELATIVE_UserMarshal  (ULONG *, unsigned char *, PCUIDLIST_RELATIVE *);
35139 unsigned char * __RPC_USER PCUIDLIST_RELATIVE_UserUnmarshal(ULONG *, unsigned char *, PCUIDLIST_RELATIVE *);
35140 void            __RPC_USER PCUIDLIST_RELATIVE_UserFree     (ULONG *, PCUIDLIST_RELATIVE *);
35141 ULONG           __RPC_USER PCUITEMID_CHILD_UserSize     (ULONG *, ULONG, PCUITEMID_CHILD *);
35142 unsigned char * __RPC_USER PCUITEMID_CHILD_UserMarshal  (ULONG *, unsigned char *, PCUITEMID_CHILD *);
35143 unsigned char * __RPC_USER PCUITEMID_CHILD_UserUnmarshal(ULONG *, unsigned char *, PCUITEMID_CHILD *);
35144 void            __RPC_USER PCUITEMID_CHILD_UserFree     (ULONG *, PCUITEMID_CHILD *);
35145 ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
35146 unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
35147 unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
35148 void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
35149 ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
35150 unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
35151 unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
35152 void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
35153 ULONG           __RPC_USER LPSAFEARRAY_UserSize     (ULONG *, ULONG, LPSAFEARRAY *);
35154 unsigned char * __RPC_USER LPSAFEARRAY_UserMarshal  (ULONG *, unsigned char *, LPSAFEARRAY *);
35155 unsigned char * __RPC_USER LPSAFEARRAY_UserUnmarshal(ULONG *, unsigned char *, LPSAFEARRAY *);
35156 void            __RPC_USER LPSAFEARRAY_UserFree     (ULONG *, LPSAFEARRAY *);
35157 ULONG           __RPC_USER HBITMAP_UserSize     (ULONG *, ULONG, HBITMAP *);
35158 unsigned char * __RPC_USER HBITMAP_UserMarshal  (ULONG *, unsigned char *, HBITMAP *);
35159 unsigned char * __RPC_USER HBITMAP_UserUnmarshal(ULONG *, unsigned char *, HBITMAP *);
35160 void            __RPC_USER HBITMAP_UserFree     (ULONG *, HBITMAP *);
35161 ULONG           __RPC_USER HMENU_UserSize     (ULONG *, ULONG, HMENU *);
35162 unsigned char * __RPC_USER HMENU_UserMarshal  (ULONG *, unsigned char *, HMENU *);
35163 unsigned char * __RPC_USER HMENU_UserUnmarshal(ULONG *, unsigned char *, HMENU *);
35164 void            __RPC_USER HMENU_UserFree     (ULONG *, HMENU *);
35165 ULONG           __RPC_USER HGLOBAL_UserSize     (ULONG *, ULONG, HGLOBAL *);
35166 unsigned char * __RPC_USER HGLOBAL_UserMarshal  (ULONG *, unsigned char *, HGLOBAL *);
35167 unsigned char * __RPC_USER HGLOBAL_UserUnmarshal(ULONG *, unsigned char *, HGLOBAL *);
35168 void            __RPC_USER HGLOBAL_UserFree     (ULONG *, HGLOBAL *);
35169 ULONG           __RPC_USER HICON_UserSize     (ULONG *, ULONG, HICON *);
35170 unsigned char * __RPC_USER HICON_UserMarshal  (ULONG *, unsigned char *, HICON *);
35171 unsigned char * __RPC_USER HICON_UserUnmarshal(ULONG *, unsigned char *, HICON *);
35172 void            __RPC_USER HICON_UserFree     (ULONG *, HICON *);
35173 ULONG           __RPC_USER HACCEL_UserSize     (ULONG *, ULONG, HACCEL *);
35174 unsigned char * __RPC_USER HACCEL_UserMarshal  (ULONG *, unsigned char *, HACCEL *);
35175 unsigned char * __RPC_USER HACCEL_UserUnmarshal(ULONG *, unsigned char *, HACCEL *);
35176 void            __RPC_USER HACCEL_UserFree     (ULONG *, HACCEL *);
35177 ULONG           __RPC_USER HMONITOR_UserSize     (ULONG *, ULONG, HMONITOR *);
35178 unsigned char * __RPC_USER HMONITOR_UserMarshal  (ULONG *, unsigned char *, HMONITOR *);
35179 unsigned char * __RPC_USER HMONITOR_UserUnmarshal(ULONG *, unsigned char *, HMONITOR *);
35180 void            __RPC_USER HMONITOR_UserFree     (ULONG *, HMONITOR *);
35181 
35182 /* End additional prototypes */
35183 
35184 #ifdef __cplusplus
35185 }
35186 #endif
35187 
35188 #endif /* __shobjidl_h__ */
35189