Home | History | Annotate | Download | only in include
      1 /*** Autogenerated by WIDL 1.6 from include/shobjidl.idl - Do not edit ***/
      2 
      3 #ifndef __REQUIRED_RPCNDR_H_VERSION__
      4 #define __REQUIRED_RPCNDR_H_VERSION__ 475
      5 #endif
      6 
      7 #include <rpc.h>
      8 #include <rpcndr.h>
      9 
     10 #ifndef COM_NO_WINDOWS_H
     11 #include <windows.h>
     12 #include <ole2.h>
     13 #endif
     14 
     15 #ifndef __shobjidl_h__
     16 #define __shobjidl_h__
     17 
     18 /* Forward declarations */
     19 
     20 #ifndef __IContextMenu_FWD_DEFINED__
     21 #define __IContextMenu_FWD_DEFINED__
     22 typedef interface IContextMenu IContextMenu;
     23 #endif
     24 
     25 #ifndef __IContextMenu2_FWD_DEFINED__
     26 #define __IContextMenu2_FWD_DEFINED__
     27 typedef interface IContextMenu2 IContextMenu2;
     28 #endif
     29 
     30 #ifndef __IContextMenu3_FWD_DEFINED__
     31 #define __IContextMenu3_FWD_DEFINED__
     32 typedef interface IContextMenu3 IContextMenu3;
     33 #endif
     34 
     35 #ifndef __IExecuteCommand_FWD_DEFINED__
     36 #define __IExecuteCommand_FWD_DEFINED__
     37 typedef interface IExecuteCommand IExecuteCommand;
     38 #endif
     39 
     40 #ifndef __IPersistFolder_FWD_DEFINED__
     41 #define __IPersistFolder_FWD_DEFINED__
     42 typedef interface IPersistFolder IPersistFolder;
     43 #endif
     44 
     45 #ifndef __IRunnableTask_FWD_DEFINED__
     46 #define __IRunnableTask_FWD_DEFINED__
     47 typedef interface IRunnableTask IRunnableTask;
     48 #endif
     49 
     50 #ifndef __IShellTaskScheduler_FWD_DEFINED__
     51 #define __IShellTaskScheduler_FWD_DEFINED__
     52 typedef interface IShellTaskScheduler IShellTaskScheduler;
     53 #endif
     54 
     55 #ifndef __IQueryCodePage_FWD_DEFINED__
     56 #define __IQueryCodePage_FWD_DEFINED__
     57 typedef interface IQueryCodePage IQueryCodePage;
     58 #endif
     59 
     60 #ifndef __IPersistFolder2_FWD_DEFINED__
     61 #define __IPersistFolder2_FWD_DEFINED__
     62 typedef interface IPersistFolder2 IPersistFolder2;
     63 #endif
     64 
     65 #ifndef __IPersistFolder3_FWD_DEFINED__
     66 #define __IPersistFolder3_FWD_DEFINED__
     67 typedef interface IPersistFolder3 IPersistFolder3;
     68 #endif
     69 
     70 #ifndef __IPersistIDList_FWD_DEFINED__
     71 #define __IPersistIDList_FWD_DEFINED__
     72 typedef interface IPersistIDList IPersistIDList;
     73 #endif
     74 
     75 #ifndef __IEnumIDList_FWD_DEFINED__
     76 #define __IEnumIDList_FWD_DEFINED__
     77 typedef interface IEnumIDList IEnumIDList;
     78 #endif
     79 
     80 #ifndef __IEnumFullIDList_FWD_DEFINED__
     81 #define __IEnumFullIDList_FWD_DEFINED__
     82 typedef interface IEnumFullIDList IEnumFullIDList;
     83 #endif
     84 
     85 #ifndef __IObjectWithFolderEnumMode_FWD_DEFINED__
     86 #define __IObjectWithFolderEnumMode_FWD_DEFINED__
     87 typedef interface IObjectWithFolderEnumMode IObjectWithFolderEnumMode;
     88 #endif
     89 
     90 #ifndef __IParseAndCreateItem_FWD_DEFINED__
     91 #define __IParseAndCreateItem_FWD_DEFINED__
     92 typedef interface IParseAndCreateItem IParseAndCreateItem;
     93 #endif
     94 
     95 #ifndef __IShellFolder_FWD_DEFINED__
     96 #define __IShellFolder_FWD_DEFINED__
     97 typedef interface IShellFolder IShellFolder;
     98 #endif
     99 
    100 #ifndef __IEnumExtraSearch_FWD_DEFINED__
    101 #define __IEnumExtraSearch_FWD_DEFINED__
    102 typedef interface IEnumExtraSearch IEnumExtraSearch;
    103 #endif
    104 
    105 #ifndef __IShellFolder2_FWD_DEFINED__
    106 #define __IShellFolder2_FWD_DEFINED__
    107 typedef interface IShellFolder2 IShellFolder2;
    108 #endif
    109 
    110 #ifndef __IFolderViewOptions_FWD_DEFINED__
    111 #define __IFolderViewOptions_FWD_DEFINED__
    112 typedef interface IFolderViewOptions IFolderViewOptions;
    113 #endif
    114 
    115 #ifndef __IShellView_FWD_DEFINED__
    116 #define __IShellView_FWD_DEFINED__
    117 typedef interface IShellView IShellView;
    118 #endif
    119 
    120 #ifndef __IShellView2_FWD_DEFINED__
    121 #define __IShellView2_FWD_DEFINED__
    122 typedef interface IShellView2 IShellView2;
    123 #endif
    124 
    125 #ifndef __IShellView3_FWD_DEFINED__
    126 #define __IShellView3_FWD_DEFINED__
    127 typedef interface IShellView3 IShellView3;
    128 #endif
    129 
    130 #ifndef __IFolderView_FWD_DEFINED__
    131 #define __IFolderView_FWD_DEFINED__
    132 typedef interface IFolderView IFolderView;
    133 #endif
    134 
    135 #ifndef __ISearchBoxInfo_FWD_DEFINED__
    136 #define __ISearchBoxInfo_FWD_DEFINED__
    137 typedef interface ISearchBoxInfo ISearchBoxInfo;
    138 #endif
    139 
    140 #ifndef __IFolderView2_FWD_DEFINED__
    141 #define __IFolderView2_FWD_DEFINED__
    142 typedef interface IFolderView2 IFolderView2;
    143 #endif
    144 
    145 #ifndef __IFolderViewSettings_FWD_DEFINED__
    146 #define __IFolderViewSettings_FWD_DEFINED__
    147 typedef interface IFolderViewSettings IFolderViewSettings;
    148 #endif
    149 
    150 #ifndef __IPreviewHandlerVisuals_FWD_DEFINED__
    151 #define __IPreviewHandlerVisuals_FWD_DEFINED__
    152 typedef interface IPreviewHandlerVisuals IPreviewHandlerVisuals;
    153 #endif
    154 
    155 #ifndef __IVisualProperties_FWD_DEFINED__
    156 #define __IVisualProperties_FWD_DEFINED__
    157 typedef interface IVisualProperties IVisualProperties;
    158 #endif
    159 
    160 #ifndef __ICommDlgBrowser_FWD_DEFINED__
    161 #define __ICommDlgBrowser_FWD_DEFINED__
    162 typedef interface ICommDlgBrowser ICommDlgBrowser;
    163 #endif
    164 
    165 #ifndef __ICommDlgBrowser2_FWD_DEFINED__
    166 #define __ICommDlgBrowser2_FWD_DEFINED__
    167 typedef interface ICommDlgBrowser2 ICommDlgBrowser2;
    168 #endif
    169 
    170 #ifndef __ICommDlgBrowser3_FWD_DEFINED__
    171 #define __ICommDlgBrowser3_FWD_DEFINED__
    172 typedef interface ICommDlgBrowser3 ICommDlgBrowser3;
    173 #endif
    174 
    175 #ifndef __IColumnManager_FWD_DEFINED__
    176 #define __IColumnManager_FWD_DEFINED__
    177 typedef interface IColumnManager IColumnManager;
    178 #endif
    179 
    180 #ifndef __IFolderFilterSite_FWD_DEFINED__
    181 #define __IFolderFilterSite_FWD_DEFINED__
    182 typedef interface IFolderFilterSite IFolderFilterSite;
    183 #endif
    184 
    185 #ifndef __IFolderFilter_FWD_DEFINED__
    186 #define __IFolderFilter_FWD_DEFINED__
    187 typedef interface IFolderFilter IFolderFilter;
    188 #endif
    189 
    190 #ifndef __IInputObjectSite_FWD_DEFINED__
    191 #define __IInputObjectSite_FWD_DEFINED__
    192 typedef interface IInputObjectSite IInputObjectSite;
    193 #endif
    194 
    195 #ifndef __IInputObject_FWD_DEFINED__
    196 #define __IInputObject_FWD_DEFINED__
    197 typedef interface IInputObject IInputObject;
    198 #endif
    199 
    200 #ifndef __IInputObject2_FWD_DEFINED__
    201 #define __IInputObject2_FWD_DEFINED__
    202 typedef interface IInputObject2 IInputObject2;
    203 #endif
    204 
    205 #ifndef __IShellIcon_FWD_DEFINED__
    206 #define __IShellIcon_FWD_DEFINED__
    207 typedef interface IShellIcon IShellIcon;
    208 #endif
    209 
    210 #ifndef __IShellBrowser_FWD_DEFINED__
    211 #define __IShellBrowser_FWD_DEFINED__
    212 typedef interface IShellBrowser IShellBrowser;
    213 #endif
    214 
    215 #ifndef __IProfferService_FWD_DEFINED__
    216 #define __IProfferService_FWD_DEFINED__
    217 typedef interface IProfferService IProfferService;
    218 #endif
    219 
    220 #ifndef __IShellItem_FWD_DEFINED__
    221 #define __IShellItem_FWD_DEFINED__
    222 typedef interface IShellItem IShellItem;
    223 #endif
    224 
    225 #ifndef __IShellItem2_FWD_DEFINED__
    226 #define __IShellItem2_FWD_DEFINED__
    227 typedef interface IShellItem2 IShellItem2;
    228 #endif
    229 
    230 #ifndef __IShellItemImageFactory_FWD_DEFINED__
    231 #define __IShellItemImageFactory_FWD_DEFINED__
    232 typedef interface IShellItemImageFactory IShellItemImageFactory;
    233 #endif
    234 
    235 #ifndef __IUserAccountChangeCallback_FWD_DEFINED__
    236 #define __IUserAccountChangeCallback_FWD_DEFINED__
    237 typedef interface IUserAccountChangeCallback IUserAccountChangeCallback;
    238 #endif
    239 
    240 #ifndef __IEnumShellItems_FWD_DEFINED__
    241 #define __IEnumShellItems_FWD_DEFINED__
    242 typedef interface IEnumShellItems IEnumShellItems;
    243 #endif
    244 
    245 #ifndef __ITransferAdviseSink_FWD_DEFINED__
    246 #define __ITransferAdviseSink_FWD_DEFINED__
    247 typedef interface ITransferAdviseSink ITransferAdviseSink;
    248 #endif
    249 
    250 #ifndef __ITransferSource_FWD_DEFINED__
    251 #define __ITransferSource_FWD_DEFINED__
    252 typedef interface ITransferSource ITransferSource;
    253 #endif
    254 
    255 #ifndef __IEnumResources_FWD_DEFINED__
    256 #define __IEnumResources_FWD_DEFINED__
    257 typedef interface IEnumResources IEnumResources;
    258 #endif
    259 
    260 #ifndef __IShellItemResources_FWD_DEFINED__
    261 #define __IShellItemResources_FWD_DEFINED__
    262 typedef interface IShellItemResources IShellItemResources;
    263 #endif
    264 
    265 #ifndef __ITransferDestination_FWD_DEFINED__
    266 #define __ITransferDestination_FWD_DEFINED__
    267 typedef interface ITransferDestination ITransferDestination;
    268 #endif
    269 
    270 #ifndef __IStreamAsync_FWD_DEFINED__
    271 #define __IStreamAsync_FWD_DEFINED__
    272 typedef interface IStreamAsync IStreamAsync;
    273 #endif
    274 
    275 #ifndef __IStreamUnbufferedInfo_FWD_DEFINED__
    276 #define __IStreamUnbufferedInfo_FWD_DEFINED__
    277 typedef interface IStreamUnbufferedInfo IStreamUnbufferedInfo;
    278 #endif
    279 
    280 #ifndef __IFileOperationProgressSink_FWD_DEFINED__
    281 #define __IFileOperationProgressSink_FWD_DEFINED__
    282 typedef interface IFileOperationProgressSink IFileOperationProgressSink;
    283 #endif
    284 
    285 #ifndef __IShellItemArray_FWD_DEFINED__
    286 #define __IShellItemArray_FWD_DEFINED__
    287 typedef interface IShellItemArray IShellItemArray;
    288 #endif
    289 
    290 #ifndef __IInitializeWithItem_FWD_DEFINED__
    291 #define __IInitializeWithItem_FWD_DEFINED__
    292 typedef interface IInitializeWithItem IInitializeWithItem;
    293 #endif
    294 
    295 #ifndef __IObjectWithSelection_FWD_DEFINED__
    296 #define __IObjectWithSelection_FWD_DEFINED__
    297 typedef interface IObjectWithSelection IObjectWithSelection;
    298 #endif
    299 
    300 #ifndef __IObjectWithBackReferences_FWD_DEFINED__
    301 #define __IObjectWithBackReferences_FWD_DEFINED__
    302 typedef interface IObjectWithBackReferences IObjectWithBackReferences;
    303 #endif
    304 
    305 #ifndef __IPropertyUI_FWD_DEFINED__
    306 #define __IPropertyUI_FWD_DEFINED__
    307 typedef interface IPropertyUI IPropertyUI;
    308 #endif
    309 
    310 #ifndef __ICategoryProvider_FWD_DEFINED__
    311 #define __ICategoryProvider_FWD_DEFINED__
    312 typedef interface ICategoryProvider ICategoryProvider;
    313 #endif
    314 
    315 #ifndef __ICategorizer_FWD_DEFINED__
    316 #define __ICategorizer_FWD_DEFINED__
    317 typedef interface ICategorizer ICategorizer;
    318 #endif
    319 
    320 #ifndef __IDropTargetHelper_FWD_DEFINED__
    321 #define __IDropTargetHelper_FWD_DEFINED__
    322 typedef interface IDropTargetHelper IDropTargetHelper;
    323 #endif
    324 
    325 #ifndef __IDragSourceHelper_FWD_DEFINED__
    326 #define __IDragSourceHelper_FWD_DEFINED__
    327 typedef interface IDragSourceHelper IDragSourceHelper;
    328 #endif
    329 
    330 #ifndef __IDragSourceHelper2_FWD_DEFINED__
    331 #define __IDragSourceHelper2_FWD_DEFINED__
    332 typedef interface IDragSourceHelper2 IDragSourceHelper2;
    333 #endif
    334 
    335 #ifndef __IShellLinkA_FWD_DEFINED__
    336 #define __IShellLinkA_FWD_DEFINED__
    337 typedef interface IShellLinkA IShellLinkA;
    338 #endif
    339 
    340 #ifndef __IShellLinkW_FWD_DEFINED__
    341 #define __IShellLinkW_FWD_DEFINED__
    342 typedef interface IShellLinkW IShellLinkW;
    343 #endif
    344 
    345 #ifndef __IShellLinkDataList_FWD_DEFINED__
    346 #define __IShellLinkDataList_FWD_DEFINED__
    347 typedef interface IShellLinkDataList IShellLinkDataList;
    348 #endif
    349 
    350 #ifndef __IResolveShellLink_FWD_DEFINED__
    351 #define __IResolveShellLink_FWD_DEFINED__
    352 typedef interface IResolveShellLink IResolveShellLink;
    353 #endif
    354 
    355 #ifndef __IActionProgressDialog_FWD_DEFINED__
    356 #define __IActionProgressDialog_FWD_DEFINED__
    357 typedef interface IActionProgressDialog IActionProgressDialog;
    358 #endif
    359 
    360 #ifndef __IHWEventHandler_FWD_DEFINED__
    361 #define __IHWEventHandler_FWD_DEFINED__
    362 typedef interface IHWEventHandler IHWEventHandler;
    363 #endif
    364 
    365 #ifndef __IHWEventHandler2_FWD_DEFINED__
    366 #define __IHWEventHandler2_FWD_DEFINED__
    367 typedef interface IHWEventHandler2 IHWEventHandler2;
    368 #endif
    369 
    370 #ifndef __IQueryCancelAutoPlay_FWD_DEFINED__
    371 #define __IQueryCancelAutoPlay_FWD_DEFINED__
    372 typedef interface IQueryCancelAutoPlay IQueryCancelAutoPlay;
    373 #endif
    374 
    375 #ifndef __IDynamicHWHandler_FWD_DEFINED__
    376 #define __IDynamicHWHandler_FWD_DEFINED__
    377 typedef interface IDynamicHWHandler IDynamicHWHandler;
    378 #endif
    379 
    380 #ifndef __IActionProgress_FWD_DEFINED__
    381 #define __IActionProgress_FWD_DEFINED__
    382 typedef interface IActionProgress IActionProgress;
    383 #endif
    384 
    385 #ifndef __IShellExtInit_FWD_DEFINED__
    386 #define __IShellExtInit_FWD_DEFINED__
    387 typedef interface IShellExtInit IShellExtInit;
    388 #endif
    389 
    390 #ifndef __IShellPropSheetExt_FWD_DEFINED__
    391 #define __IShellPropSheetExt_FWD_DEFINED__
    392 typedef interface IShellPropSheetExt IShellPropSheetExt;
    393 #endif
    394 
    395 #ifndef __IRemoteComputer_FWD_DEFINED__
    396 #define __IRemoteComputer_FWD_DEFINED__
    397 typedef interface IRemoteComputer IRemoteComputer;
    398 #endif
    399 
    400 #ifndef __IQueryContinue_FWD_DEFINED__
    401 #define __IQueryContinue_FWD_DEFINED__
    402 typedef interface IQueryContinue IQueryContinue;
    403 #endif
    404 
    405 #ifndef __IObjectWithCancelEvent_FWD_DEFINED__
    406 #define __IObjectWithCancelEvent_FWD_DEFINED__
    407 typedef interface IObjectWithCancelEvent IObjectWithCancelEvent;
    408 #endif
    409 
    410 #ifndef __IUserNotification_FWD_DEFINED__
    411 #define __IUserNotification_FWD_DEFINED__
    412 typedef interface IUserNotification IUserNotification;
    413 #endif
    414 
    415 #ifndef __IUserNotificationCallback_FWD_DEFINED__
    416 #define __IUserNotificationCallback_FWD_DEFINED__
    417 typedef interface IUserNotificationCallback IUserNotificationCallback;
    418 #endif
    419 
    420 #ifndef __IUserNotification2_FWD_DEFINED__
    421 #define __IUserNotification2_FWD_DEFINED__
    422 typedef interface IUserNotification2 IUserNotification2;
    423 #endif
    424 
    425 #ifndef __IItemNameLimits_FWD_DEFINED__
    426 #define __IItemNameLimits_FWD_DEFINED__
    427 typedef interface IItemNameLimits IItemNameLimits;
    428 #endif
    429 
    430 #ifndef __ISearchFolderItemFactory_FWD_DEFINED__
    431 #define __ISearchFolderItemFactory_FWD_DEFINED__
    432 typedef interface ISearchFolderItemFactory ISearchFolderItemFactory;
    433 #endif
    434 
    435 #ifndef __IExtractImage_FWD_DEFINED__
    436 #define __IExtractImage_FWD_DEFINED__
    437 typedef interface IExtractImage IExtractImage;
    438 #endif
    439 
    440 #ifndef __IExtractImage2_FWD_DEFINED__
    441 #define __IExtractImage2_FWD_DEFINED__
    442 typedef interface IExtractImage2 IExtractImage2;
    443 #endif
    444 
    445 #ifndef __IThumbnailHandlerFactory_FWD_DEFINED__
    446 #define __IThumbnailHandlerFactory_FWD_DEFINED__
    447 typedef interface IThumbnailHandlerFactory IThumbnailHandlerFactory;
    448 #endif
    449 
    450 #ifndef __IParentAndItem_FWD_DEFINED__
    451 #define __IParentAndItem_FWD_DEFINED__
    452 typedef interface IParentAndItem IParentAndItem;
    453 #endif
    454 
    455 #ifndef __IDockingWindow_FWD_DEFINED__
    456 #define __IDockingWindow_FWD_DEFINED__
    457 typedef interface IDockingWindow IDockingWindow;
    458 #endif
    459 
    460 #ifndef __IDeskBand_FWD_DEFINED__
    461 #define __IDeskBand_FWD_DEFINED__
    462 typedef interface IDeskBand IDeskBand;
    463 #endif
    464 
    465 #ifndef __IDeskBandInfo_FWD_DEFINED__
    466 #define __IDeskBandInfo_FWD_DEFINED__
    467 typedef interface IDeskBandInfo IDeskBandInfo;
    468 #endif
    469 
    470 #ifndef __IDeskBand2_FWD_DEFINED__
    471 #define __IDeskBand2_FWD_DEFINED__
    472 typedef interface IDeskBand2 IDeskBand2;
    473 #endif
    474 
    475 #ifndef __ITaskbarList_FWD_DEFINED__
    476 #define __ITaskbarList_FWD_DEFINED__
    477 typedef interface ITaskbarList ITaskbarList;
    478 #endif
    479 
    480 #ifndef __ITaskbarList2_FWD_DEFINED__
    481 #define __ITaskbarList2_FWD_DEFINED__
    482 typedef interface ITaskbarList2 ITaskbarList2;
    483 #endif
    484 
    485 #ifndef __ITaskbarList3_FWD_DEFINED__
    486 #define __ITaskbarList3_FWD_DEFINED__
    487 typedef interface ITaskbarList3 ITaskbarList3;
    488 #endif
    489 
    490 #ifndef __ITaskbarList4_FWD_DEFINED__
    491 #define __ITaskbarList4_FWD_DEFINED__
    492 typedef interface ITaskbarList4 ITaskbarList4;
    493 #endif
    494 
    495 #ifndef __IStartMenuPinnedList_FWD_DEFINED__
    496 #define __IStartMenuPinnedList_FWD_DEFINED__
    497 typedef interface IStartMenuPinnedList IStartMenuPinnedList;
    498 #endif
    499 
    500 #ifndef __ICDBurn_FWD_DEFINED__
    501 #define __ICDBurn_FWD_DEFINED__
    502 typedef interface ICDBurn ICDBurn;
    503 #endif
    504 
    505 #ifndef __IWizardSite_FWD_DEFINED__
    506 #define __IWizardSite_FWD_DEFINED__
    507 typedef interface IWizardSite IWizardSite;
    508 #endif
    509 
    510 #ifndef __IWizardExtension_FWD_DEFINED__
    511 #define __IWizardExtension_FWD_DEFINED__
    512 typedef interface IWizardExtension IWizardExtension;
    513 #endif
    514 
    515 #ifndef __IWebWizardExtension_FWD_DEFINED__
    516 #define __IWebWizardExtension_FWD_DEFINED__
    517 typedef interface IWebWizardExtension IWebWizardExtension;
    518 #endif
    519 
    520 #ifndef __IPublishingWizard_FWD_DEFINED__
    521 #define __IPublishingWizard_FWD_DEFINED__
    522 typedef interface IPublishingWizard IPublishingWizard;
    523 #endif
    524 
    525 #ifndef __IFolderViewHost_FWD_DEFINED__
    526 #define __IFolderViewHost_FWD_DEFINED__
    527 typedef interface IFolderViewHost IFolderViewHost;
    528 #endif
    529 
    530 #ifndef __IExplorerBrowserEvents_FWD_DEFINED__
    531 #define __IExplorerBrowserEvents_FWD_DEFINED__
    532 typedef interface IExplorerBrowserEvents IExplorerBrowserEvents;
    533 #endif
    534 
    535 #ifndef __IExplorerBrowser_FWD_DEFINED__
    536 #define __IExplorerBrowser_FWD_DEFINED__
    537 typedef interface IExplorerBrowser IExplorerBrowser;
    538 #endif
    539 
    540 #ifndef __IAccessibleObject_FWD_DEFINED__
    541 #define __IAccessibleObject_FWD_DEFINED__
    542 typedef interface IAccessibleObject IAccessibleObject;
    543 #endif
    544 
    545 #ifndef __IResultsFolder_FWD_DEFINED__
    546 #define __IResultsFolder_FWD_DEFINED__
    547 typedef interface IResultsFolder IResultsFolder;
    548 #endif
    549 
    550 #ifndef __IEnumObjects_FWD_DEFINED__
    551 #define __IEnumObjects_FWD_DEFINED__
    552 typedef interface IEnumObjects IEnumObjects;
    553 #endif
    554 
    555 #ifndef __IOperationsProgressDialog_FWD_DEFINED__
    556 #define __IOperationsProgressDialog_FWD_DEFINED__
    557 typedef interface IOperationsProgressDialog IOperationsProgressDialog;
    558 #endif
    559 
    560 #ifndef __IIOCancelInformation_FWD_DEFINED__
    561 #define __IIOCancelInformation_FWD_DEFINED__
    562 typedef interface IIOCancelInformation IIOCancelInformation;
    563 #endif
    564 
    565 #ifndef __IFileOperation_FWD_DEFINED__
    566 #define __IFileOperation_FWD_DEFINED__
    567 typedef interface IFileOperation IFileOperation;
    568 #endif
    569 
    570 #ifndef __IObjectProvider_FWD_DEFINED__
    571 #define __IObjectProvider_FWD_DEFINED__
    572 typedef interface IObjectProvider IObjectProvider;
    573 #endif
    574 
    575 #ifndef __INamespaceWalkCB_FWD_DEFINED__
    576 #define __INamespaceWalkCB_FWD_DEFINED__
    577 typedef interface INamespaceWalkCB INamespaceWalkCB;
    578 #endif
    579 
    580 #ifndef __INamespaceWalkCB2_FWD_DEFINED__
    581 #define __INamespaceWalkCB2_FWD_DEFINED__
    582 typedef interface INamespaceWalkCB2 INamespaceWalkCB2;
    583 #endif
    584 
    585 #ifndef __INamespaceWalk_FWD_DEFINED__
    586 #define __INamespaceWalk_FWD_DEFINED__
    587 typedef interface INamespaceWalk INamespaceWalk;
    588 #endif
    589 
    590 #ifndef __IAutoCompleteDropDown_FWD_DEFINED__
    591 #define __IAutoCompleteDropDown_FWD_DEFINED__
    592 typedef interface IAutoCompleteDropDown IAutoCompleteDropDown;
    593 #endif
    594 
    595 #ifndef __IBandSite_FWD_DEFINED__
    596 #define __IBandSite_FWD_DEFINED__
    597 typedef interface IBandSite IBandSite;
    598 #endif
    599 
    600 #ifndef __IModalWindow_FWD_DEFINED__
    601 #define __IModalWindow_FWD_DEFINED__
    602 typedef interface IModalWindow IModalWindow;
    603 #endif
    604 
    605 #ifndef __ICDBurnExt_FWD_DEFINED__
    606 #define __ICDBurnExt_FWD_DEFINED__
    607 typedef interface ICDBurnExt ICDBurnExt;
    608 #endif
    609 
    610 #ifndef __IContextMenuSite_FWD_DEFINED__
    611 #define __IContextMenuSite_FWD_DEFINED__
    612 typedef interface IContextMenuSite IContextMenuSite;
    613 #endif
    614 
    615 #ifndef __IEnumReadyCallback_FWD_DEFINED__
    616 #define __IEnumReadyCallback_FWD_DEFINED__
    617 typedef interface IEnumReadyCallback IEnumReadyCallback;
    618 #endif
    619 
    620 #ifndef __IEnumerableView_FWD_DEFINED__
    621 #define __IEnumerableView_FWD_DEFINED__
    622 typedef interface IEnumerableView IEnumerableView;
    623 #endif
    624 
    625 #ifndef __IInsertItem_FWD_DEFINED__
    626 #define __IInsertItem_FWD_DEFINED__
    627 typedef interface IInsertItem IInsertItem;
    628 #endif
    629 
    630 #ifndef __IMenuBand_FWD_DEFINED__
    631 #define __IMenuBand_FWD_DEFINED__
    632 typedef interface IMenuBand IMenuBand;
    633 #endif
    634 
    635 #ifndef __IFolderBandPriv_FWD_DEFINED__
    636 #define __IFolderBandPriv_FWD_DEFINED__
    637 typedef interface IFolderBandPriv IFolderBandPriv;
    638 #endif
    639 
    640 #ifndef __IRegTreeItem_FWD_DEFINED__
    641 #define __IRegTreeItem_FWD_DEFINED__
    642 typedef interface IRegTreeItem IRegTreeItem;
    643 #endif
    644 
    645 #ifndef __IImageRecompress_FWD_DEFINED__
    646 #define __IImageRecompress_FWD_DEFINED__
    647 typedef interface IImageRecompress IImageRecompress;
    648 #endif
    649 
    650 #ifndef __IDeskBar_FWD_DEFINED__
    651 #define __IDeskBar_FWD_DEFINED__
    652 typedef interface IDeskBar IDeskBar;
    653 #endif
    654 
    655 #ifndef __IMenuPopup_FWD_DEFINED__
    656 #define __IMenuPopup_FWD_DEFINED__
    657 typedef interface IMenuPopup IMenuPopup;
    658 #endif
    659 
    660 #ifndef __IFileIsInUse_FWD_DEFINED__
    661 #define __IFileIsInUse_FWD_DEFINED__
    662 typedef interface IFileIsInUse IFileIsInUse;
    663 #endif
    664 
    665 #ifndef __IFileDialogEvents_FWD_DEFINED__
    666 #define __IFileDialogEvents_FWD_DEFINED__
    667 typedef interface IFileDialogEvents IFileDialogEvents;
    668 #endif
    669 
    670 #ifndef __IFileDialog_FWD_DEFINED__
    671 #define __IFileDialog_FWD_DEFINED__
    672 typedef interface IFileDialog IFileDialog;
    673 #endif
    674 
    675 #ifndef __IFileSaveDialog_FWD_DEFINED__
    676 #define __IFileSaveDialog_FWD_DEFINED__
    677 typedef interface IFileSaveDialog IFileSaveDialog;
    678 #endif
    679 
    680 #ifndef __IFileOpenDialog_FWD_DEFINED__
    681 #define __IFileOpenDialog_FWD_DEFINED__
    682 typedef interface IFileOpenDialog IFileOpenDialog;
    683 #endif
    684 
    685 #ifndef __IFileDialogCustomize_FWD_DEFINED__
    686 #define __IFileDialogCustomize_FWD_DEFINED__
    687 typedef interface IFileDialogCustomize IFileDialogCustomize;
    688 #endif
    689 
    690 #ifndef __IFileDialogControlEvents_FWD_DEFINED__
    691 #define __IFileDialogControlEvents_FWD_DEFINED__
    692 typedef interface IFileDialogControlEvents IFileDialogControlEvents;
    693 #endif
    694 
    695 #ifndef __IFileDialog2_FWD_DEFINED__
    696 #define __IFileDialog2_FWD_DEFINED__
    697 typedef interface IFileDialog2 IFileDialog2;
    698 #endif
    699 
    700 #ifndef __IApplicationAssociationRegistration_FWD_DEFINED__
    701 #define __IApplicationAssociationRegistration_FWD_DEFINED__
    702 typedef interface IApplicationAssociationRegistration IApplicationAssociationRegistration;
    703 #endif
    704 
    705 #ifndef __IApplicationAssociationRegistrationUI_FWD_DEFINED__
    706 #define __IApplicationAssociationRegistrationUI_FWD_DEFINED__
    707 typedef interface IApplicationAssociationRegistrationUI IApplicationAssociationRegistrationUI;
    708 #endif
    709 
    710 #ifndef __IDelegateFolder_FWD_DEFINED__
    711 #define __IDelegateFolder_FWD_DEFINED__
    712 typedef interface IDelegateFolder IDelegateFolder;
    713 #endif
    714 
    715 #ifndef __IBrowserFrameOptions_FWD_DEFINED__
    716 #define __IBrowserFrameOptions_FWD_DEFINED__
    717 typedef interface IBrowserFrameOptions IBrowserFrameOptions;
    718 #endif
    719 
    720 #ifndef __INewWindowManager_FWD_DEFINED__
    721 #define __INewWindowManager_FWD_DEFINED__
    722 typedef interface INewWindowManager INewWindowManager;
    723 #endif
    724 
    725 #ifndef __IAttachmentExecute_FWD_DEFINED__
    726 #define __IAttachmentExecute_FWD_DEFINED__
    727 typedef interface IAttachmentExecute IAttachmentExecute;
    728 #endif
    729 
    730 #ifndef __IShellMenuCallback_FWD_DEFINED__
    731 #define __IShellMenuCallback_FWD_DEFINED__
    732 typedef interface IShellMenuCallback IShellMenuCallback;
    733 #endif
    734 
    735 #ifndef __IShellMenu_FWD_DEFINED__
    736 #define __IShellMenu_FWD_DEFINED__
    737 typedef interface IShellMenu IShellMenu;
    738 #endif
    739 
    740 #ifndef __IShellRunDll_FWD_DEFINED__
    741 #define __IShellRunDll_FWD_DEFINED__
    742 typedef interface IShellRunDll IShellRunDll;
    743 #endif
    744 
    745 #ifndef __IKnownFolder_FWD_DEFINED__
    746 #define __IKnownFolder_FWD_DEFINED__
    747 typedef interface IKnownFolder IKnownFolder;
    748 #endif
    749 
    750 #ifndef __IKnownFolderManager_FWD_DEFINED__
    751 #define __IKnownFolderManager_FWD_DEFINED__
    752 typedef interface IKnownFolderManager IKnownFolderManager;
    753 #endif
    754 
    755 #ifndef __ISharingConfigurationManager_FWD_DEFINED__
    756 #define __ISharingConfigurationManager_FWD_DEFINED__
    757 typedef interface ISharingConfigurationManager ISharingConfigurationManager;
    758 #endif
    759 
    760 #ifndef __IPreviousVersionsInfo_FWD_DEFINED__
    761 #define __IPreviousVersionsInfo_FWD_DEFINED__
    762 typedef interface IPreviousVersionsInfo IPreviousVersionsInfo;
    763 #endif
    764 
    765 #ifndef __IRelatedItem_FWD_DEFINED__
    766 #define __IRelatedItem_FWD_DEFINED__
    767 typedef interface IRelatedItem IRelatedItem;
    768 #endif
    769 
    770 #ifndef __IIdentityName_FWD_DEFINED__
    771 #define __IIdentityName_FWD_DEFINED__
    772 typedef interface IIdentityName IIdentityName;
    773 #endif
    774 
    775 #ifndef __IDelegateItem_FWD_DEFINED__
    776 #define __IDelegateItem_FWD_DEFINED__
    777 typedef interface IDelegateItem IDelegateItem;
    778 #endif
    779 
    780 #ifndef __ICurrentItem_FWD_DEFINED__
    781 #define __ICurrentItem_FWD_DEFINED__
    782 typedef interface ICurrentItem ICurrentItem;
    783 #endif
    784 
    785 #ifndef __ITransferMediumItem_FWD_DEFINED__
    786 #define __ITransferMediumItem_FWD_DEFINED__
    787 typedef interface ITransferMediumItem ITransferMediumItem;
    788 #endif
    789 
    790 #ifndef __IUseToBrowseItem_FWD_DEFINED__
    791 #define __IUseToBrowseItem_FWD_DEFINED__
    792 typedef interface IUseToBrowseItem IUseToBrowseItem;
    793 #endif
    794 
    795 #ifndef __IDisplayItem_FWD_DEFINED__
    796 #define __IDisplayItem_FWD_DEFINED__
    797 typedef interface IDisplayItem IDisplayItem;
    798 #endif
    799 
    800 #ifndef __IViewStateIdentityItem_FWD_DEFINED__
    801 #define __IViewStateIdentityItem_FWD_DEFINED__
    802 typedef interface IViewStateIdentityItem IViewStateIdentityItem;
    803 #endif
    804 
    805 #ifndef __IPreviewItem_FWD_DEFINED__
    806 #define __IPreviewItem_FWD_DEFINED__
    807 typedef interface IPreviewItem IPreviewItem;
    808 #endif
    809 
    810 #ifndef __IDestinationStreamFactory_FWD_DEFINED__
    811 #define __IDestinationStreamFactory_FWD_DEFINED__
    812 typedef interface IDestinationStreamFactory IDestinationStreamFactory;
    813 #endif
    814 
    815 #ifndef __INewMenuClient_FWD_DEFINED__
    816 #define __INewMenuClient_FWD_DEFINED__
    817 typedef interface INewMenuClient INewMenuClient;
    818 #endif
    819 
    820 #ifndef __IInitializeWithBindCtx_FWD_DEFINED__
    821 #define __IInitializeWithBindCtx_FWD_DEFINED__
    822 typedef interface IInitializeWithBindCtx IInitializeWithBindCtx;
    823 #endif
    824 
    825 #ifndef __IShellItemFilter_FWD_DEFINED__
    826 #define __IShellItemFilter_FWD_DEFINED__
    827 typedef interface IShellItemFilter IShellItemFilter;
    828 #endif
    829 
    830 #ifndef __INameSpaceTreeControl_FWD_DEFINED__
    831 #define __INameSpaceTreeControl_FWD_DEFINED__
    832 typedef interface INameSpaceTreeControl INameSpaceTreeControl;
    833 #endif
    834 
    835 #ifndef __INameSpaceTreeControl2_FWD_DEFINED__
    836 #define __INameSpaceTreeControl2_FWD_DEFINED__
    837 typedef interface INameSpaceTreeControl2 INameSpaceTreeControl2;
    838 #endif
    839 
    840 #ifndef __INameSpaceTreeControlEvents_FWD_DEFINED__
    841 #define __INameSpaceTreeControlEvents_FWD_DEFINED__
    842 typedef interface INameSpaceTreeControlEvents INameSpaceTreeControlEvents;
    843 #endif
    844 
    845 #ifndef __INameSpaceTreeControlDropHandler_FWD_DEFINED__
    846 #define __INameSpaceTreeControlDropHandler_FWD_DEFINED__
    847 typedef interface INameSpaceTreeControlDropHandler INameSpaceTreeControlDropHandler;
    848 #endif
    849 
    850 #ifndef __INameSpaceTreeAccessible_FWD_DEFINED__
    851 #define __INameSpaceTreeAccessible_FWD_DEFINED__
    852 typedef interface INameSpaceTreeAccessible INameSpaceTreeAccessible;
    853 #endif
    854 
    855 #ifndef __INameSpaceTreeControlCustomDraw_FWD_DEFINED__
    856 #define __INameSpaceTreeControlCustomDraw_FWD_DEFINED__
    857 typedef interface INameSpaceTreeControlCustomDraw INameSpaceTreeControlCustomDraw;
    858 #endif
    859 
    860 #ifndef __INameSpaceTreeControlFolderCapabilities_FWD_DEFINED__
    861 #define __INameSpaceTreeControlFolderCapabilities_FWD_DEFINED__
    862 typedef interface INameSpaceTreeControlFolderCapabilities INameSpaceTreeControlFolderCapabilities;
    863 #endif
    864 
    865 #ifndef __IPreviewHandler_FWD_DEFINED__
    866 #define __IPreviewHandler_FWD_DEFINED__
    867 typedef interface IPreviewHandler IPreviewHandler;
    868 #endif
    869 
    870 #ifndef __IPreviewHandlerFrame_FWD_DEFINED__
    871 #define __IPreviewHandlerFrame_FWD_DEFINED__
    872 typedef interface IPreviewHandlerFrame IPreviewHandlerFrame;
    873 #endif
    874 
    875 #ifndef __ITrayDeskBand_FWD_DEFINED__
    876 #define __ITrayDeskBand_FWD_DEFINED__
    877 typedef interface ITrayDeskBand ITrayDeskBand;
    878 #endif
    879 
    880 #ifndef __IBandHost_FWD_DEFINED__
    881 #define __IBandHost_FWD_DEFINED__
    882 typedef interface IBandHost IBandHost;
    883 #endif
    884 
    885 #ifndef __IExplorerPaneVisibility_FWD_DEFINED__
    886 #define __IExplorerPaneVisibility_FWD_DEFINED__
    887 typedef interface IExplorerPaneVisibility IExplorerPaneVisibility;
    888 #endif
    889 
    890 #ifndef __IContextMenuCB_FWD_DEFINED__
    891 #define __IContextMenuCB_FWD_DEFINED__
    892 typedef interface IContextMenuCB IContextMenuCB;
    893 #endif
    894 
    895 #ifndef __IDefaultExtractIconInit_FWD_DEFINED__
    896 #define __IDefaultExtractIconInit_FWD_DEFINED__
    897 typedef interface IDefaultExtractIconInit IDefaultExtractIconInit;
    898 #endif
    899 
    900 #ifndef __IExplorerCommand_FWD_DEFINED__
    901 #define __IExplorerCommand_FWD_DEFINED__
    902 typedef interface IExplorerCommand IExplorerCommand;
    903 #endif
    904 
    905 #ifndef __IExplorerCommandState_FWD_DEFINED__
    906 #define __IExplorerCommandState_FWD_DEFINED__
    907 typedef interface IExplorerCommandState IExplorerCommandState;
    908 #endif
    909 
    910 #ifndef __IInitializeCommand_FWD_DEFINED__
    911 #define __IInitializeCommand_FWD_DEFINED__
    912 typedef interface IInitializeCommand IInitializeCommand;
    913 #endif
    914 
    915 #ifndef __IEnumExplorerCommand_FWD_DEFINED__
    916 #define __IEnumExplorerCommand_FWD_DEFINED__
    917 typedef interface IEnumExplorerCommand IEnumExplorerCommand;
    918 #endif
    919 
    920 #ifndef __IExplorerCommandProvider_FWD_DEFINED__
    921 #define __IExplorerCommandProvider_FWD_DEFINED__
    922 typedef interface IExplorerCommandProvider IExplorerCommandProvider;
    923 #endif
    924 
    925 #ifndef __IInitializeNetworkFolder_FWD_DEFINED__
    926 #define __IInitializeNetworkFolder_FWD_DEFINED__
    927 typedef interface IInitializeNetworkFolder IInitializeNetworkFolder;
    928 #endif
    929 
    930 #ifndef __IOpenControlPanel_FWD_DEFINED__
    931 #define __IOpenControlPanel_FWD_DEFINED__
    932 typedef interface IOpenControlPanel IOpenControlPanel;
    933 #endif
    934 
    935 #ifndef __IComputerInfoChangeNotify_FWD_DEFINED__
    936 #define __IComputerInfoChangeNotify_FWD_DEFINED__
    937 typedef interface IComputerInfoChangeNotify IComputerInfoChangeNotify;
    938 #endif
    939 
    940 #ifndef __IFileSystemBindData_FWD_DEFINED__
    941 #define __IFileSystemBindData_FWD_DEFINED__
    942 typedef interface IFileSystemBindData IFileSystemBindData;
    943 #endif
    944 
    945 #ifndef __IFileSystemBindData2_FWD_DEFINED__
    946 #define __IFileSystemBindData2_FWD_DEFINED__
    947 typedef interface IFileSystemBindData2 IFileSystemBindData2;
    948 #endif
    949 
    950 #ifndef __ICustomDestinationList_FWD_DEFINED__
    951 #define __ICustomDestinationList_FWD_DEFINED__
    952 typedef interface ICustomDestinationList ICustomDestinationList;
    953 #endif
    954 
    955 #ifndef __IApplicationDestinations_FWD_DEFINED__
    956 #define __IApplicationDestinations_FWD_DEFINED__
    957 typedef interface IApplicationDestinations IApplicationDestinations;
    958 #endif
    959 
    960 #ifndef __IApplicationDocumentLists_FWD_DEFINED__
    961 #define __IApplicationDocumentLists_FWD_DEFINED__
    962 typedef interface IApplicationDocumentLists IApplicationDocumentLists;
    963 #endif
    964 
    965 #ifndef __IObjectWithAppUserModelID_FWD_DEFINED__
    966 #define __IObjectWithAppUserModelID_FWD_DEFINED__
    967 typedef interface IObjectWithAppUserModelID IObjectWithAppUserModelID;
    968 #endif
    969 
    970 #ifndef __IObjectWithProgID_FWD_DEFINED__
    971 #define __IObjectWithProgID_FWD_DEFINED__
    972 typedef interface IObjectWithProgID IObjectWithProgID;
    973 #endif
    974 
    975 #ifndef __IUpdateIDList_FWD_DEFINED__
    976 #define __IUpdateIDList_FWD_DEFINED__
    977 typedef interface IUpdateIDList IUpdateIDList;
    978 #endif
    979 
    980 #ifndef __IDesktopGadget_FWD_DEFINED__
    981 #define __IDesktopGadget_FWD_DEFINED__
    982 typedef interface IDesktopGadget IDesktopGadget;
    983 #endif
    984 
    985 #ifndef __IDesktopWallpaper_FWD_DEFINED__
    986 #define __IDesktopWallpaper_FWD_DEFINED__
    987 typedef interface IDesktopWallpaper IDesktopWallpaper;
    988 #endif
    989 
    990 #ifndef __IHomeGroup_FWD_DEFINED__
    991 #define __IHomeGroup_FWD_DEFINED__
    992 typedef interface IHomeGroup IHomeGroup;
    993 #endif
    994 
    995 #ifndef __IInitializeWithPropertyStore_FWD_DEFINED__
    996 #define __IInitializeWithPropertyStore_FWD_DEFINED__
    997 typedef interface IInitializeWithPropertyStore IInitializeWithPropertyStore;
    998 #endif
    999 
   1000 #ifndef __IOpenSearchSource_FWD_DEFINED__
   1001 #define __IOpenSearchSource_FWD_DEFINED__
   1002 typedef interface IOpenSearchSource IOpenSearchSource;
   1003 #endif
   1004 
   1005 #ifndef __IShellLibrary_FWD_DEFINED__
   1006 #define __IShellLibrary_FWD_DEFINED__
   1007 typedef interface IShellLibrary IShellLibrary;
   1008 #endif
   1009 
   1010 #ifndef __IPlaybackManagerEvents_FWD_DEFINED__
   1011 #define __IPlaybackManagerEvents_FWD_DEFINED__
   1012 typedef interface IPlaybackManagerEvents IPlaybackManagerEvents;
   1013 #endif
   1014 
   1015 #ifndef __IPlaybackManager_FWD_DEFINED__
   1016 #define __IPlaybackManager_FWD_DEFINED__
   1017 typedef interface IPlaybackManager IPlaybackManager;
   1018 #endif
   1019 
   1020 #ifndef __IDefaultFolderMenuInitialize_FWD_DEFINED__
   1021 #define __IDefaultFolderMenuInitialize_FWD_DEFINED__
   1022 typedef interface IDefaultFolderMenuInitialize IDefaultFolderMenuInitialize;
   1023 #endif
   1024 
   1025 #ifndef __IApplicationActivationManager_FWD_DEFINED__
   1026 #define __IApplicationActivationManager_FWD_DEFINED__
   1027 typedef interface IApplicationActivationManager IApplicationActivationManager;
   1028 #endif
   1029 
   1030 #ifndef __DesktopWallpaper_FWD_DEFINED__
   1031 #define __DesktopWallpaper_FWD_DEFINED__
   1032 #ifdef __cplusplus
   1033 typedef class DesktopWallpaper DesktopWallpaper;
   1034 #else
   1035 typedef struct DesktopWallpaper DesktopWallpaper;
   1036 #endif /* defined __cplusplus */
   1037 #endif /* defined __DesktopWallpaper_FWD_DEFINED__ */
   1038 
   1039 #ifndef __ShellDesktop_FWD_DEFINED__
   1040 #define __ShellDesktop_FWD_DEFINED__
   1041 #ifdef __cplusplus
   1042 typedef class ShellDesktop ShellDesktop;
   1043 #else
   1044 typedef struct ShellDesktop ShellDesktop;
   1045 #endif /* defined __cplusplus */
   1046 #endif /* defined __ShellDesktop_FWD_DEFINED__ */
   1047 
   1048 #ifndef __ShellFSFolder_FWD_DEFINED__
   1049 #define __ShellFSFolder_FWD_DEFINED__
   1050 #ifdef __cplusplus
   1051 typedef class ShellFSFolder ShellFSFolder;
   1052 #else
   1053 typedef struct ShellFSFolder ShellFSFolder;
   1054 #endif /* defined __cplusplus */
   1055 #endif /* defined __ShellFSFolder_FWD_DEFINED__ */
   1056 
   1057 #ifndef __NetworkPlaces_FWD_DEFINED__
   1058 #define __NetworkPlaces_FWD_DEFINED__
   1059 #ifdef __cplusplus
   1060 typedef class NetworkPlaces NetworkPlaces;
   1061 #else
   1062 typedef struct NetworkPlaces NetworkPlaces;
   1063 #endif /* defined __cplusplus */
   1064 #endif /* defined __NetworkPlaces_FWD_DEFINED__ */
   1065 
   1066 #ifndef __ShellLink_FWD_DEFINED__
   1067 #define __ShellLink_FWD_DEFINED__
   1068 #ifdef __cplusplus
   1069 typedef class ShellLink ShellLink;
   1070 #else
   1071 typedef struct ShellLink ShellLink;
   1072 #endif /* defined __cplusplus */
   1073 #endif /* defined __ShellLink_FWD_DEFINED__ */
   1074 
   1075 #ifndef __QueryCancelAutoPlay_FWD_DEFINED__
   1076 #define __QueryCancelAutoPlay_FWD_DEFINED__
   1077 #ifdef __cplusplus
   1078 typedef class QueryCancelAutoPlay QueryCancelAutoPlay;
   1079 #else
   1080 typedef struct QueryCancelAutoPlay QueryCancelAutoPlay;
   1081 #endif /* defined __cplusplus */
   1082 #endif /* defined __QueryCancelAutoPlay_FWD_DEFINED__ */
   1083 
   1084 #ifndef __DriveSizeCategorizer_FWD_DEFINED__
   1085 #define __DriveSizeCategorizer_FWD_DEFINED__
   1086 #ifdef __cplusplus
   1087 typedef class DriveSizeCategorizer DriveSizeCategorizer;
   1088 #else
   1089 typedef struct DriveSizeCategorizer DriveSizeCategorizer;
   1090 #endif /* defined __cplusplus */
   1091 #endif /* defined __DriveSizeCategorizer_FWD_DEFINED__ */
   1092 
   1093 #ifndef __DriveTypeCategorizer_FWD_DEFINED__
   1094 #define __DriveTypeCategorizer_FWD_DEFINED__
   1095 #ifdef __cplusplus
   1096 typedef class DriveTypeCategorizer DriveTypeCategorizer;
   1097 #else
   1098 typedef struct DriveTypeCategorizer DriveTypeCategorizer;
   1099 #endif /* defined __cplusplus */
   1100 #endif /* defined __DriveTypeCategorizer_FWD_DEFINED__ */
   1101 
   1102 #ifndef __FreeSpaceCategorizer_FWD_DEFINED__
   1103 #define __FreeSpaceCategorizer_FWD_DEFINED__
   1104 #ifdef __cplusplus
   1105 typedef class FreeSpaceCategorizer FreeSpaceCategorizer;
   1106 #else
   1107 typedef struct FreeSpaceCategorizer FreeSpaceCategorizer;
   1108 #endif /* defined __cplusplus */
   1109 #endif /* defined __FreeSpaceCategorizer_FWD_DEFINED__ */
   1110 
   1111 #ifndef __TimeCategorizer_FWD_DEFINED__
   1112 #define __TimeCategorizer_FWD_DEFINED__
   1113 #ifdef __cplusplus
   1114 typedef class TimeCategorizer TimeCategorizer;
   1115 #else
   1116 typedef struct TimeCategorizer TimeCategorizer;
   1117 #endif /* defined __cplusplus */
   1118 #endif /* defined __TimeCategorizer_FWD_DEFINED__ */
   1119 
   1120 #ifndef __SizeCategorizer_FWD_DEFINED__
   1121 #define __SizeCategorizer_FWD_DEFINED__
   1122 #ifdef __cplusplus
   1123 typedef class SizeCategorizer SizeCategorizer;
   1124 #else
   1125 typedef struct SizeCategorizer SizeCategorizer;
   1126 #endif /* defined __cplusplus */
   1127 #endif /* defined __SizeCategorizer_FWD_DEFINED__ */
   1128 
   1129 #ifndef __AlphabeticalCategorizer_FWD_DEFINED__
   1130 #define __AlphabeticalCategorizer_FWD_DEFINED__
   1131 #ifdef __cplusplus
   1132 typedef class AlphabeticalCategorizer AlphabeticalCategorizer;
   1133 #else
   1134 typedef struct AlphabeticalCategorizer AlphabeticalCategorizer;
   1135 #endif /* defined __cplusplus */
   1136 #endif /* defined __AlphabeticalCategorizer_FWD_DEFINED__ */
   1137 
   1138 #ifndef __MergedCategorizer_FWD_DEFINED__
   1139 #define __MergedCategorizer_FWD_DEFINED__
   1140 #ifdef __cplusplus
   1141 typedef class MergedCategorizer MergedCategorizer;
   1142 #else
   1143 typedef struct MergedCategorizer MergedCategorizer;
   1144 #endif /* defined __cplusplus */
   1145 #endif /* defined __MergedCategorizer_FWD_DEFINED__ */
   1146 
   1147 #ifndef __ImageProperties_FWD_DEFINED__
   1148 #define __ImageProperties_FWD_DEFINED__
   1149 #ifdef __cplusplus
   1150 typedef class ImageProperties ImageProperties;
   1151 #else
   1152 typedef struct ImageProperties ImageProperties;
   1153 #endif /* defined __cplusplus */
   1154 #endif /* defined __ImageProperties_FWD_DEFINED__ */
   1155 
   1156 #ifndef __PropertiesUI_FWD_DEFINED__
   1157 #define __PropertiesUI_FWD_DEFINED__
   1158 #ifdef __cplusplus
   1159 typedef class PropertiesUI PropertiesUI;
   1160 #else
   1161 typedef struct PropertiesUI PropertiesUI;
   1162 #endif /* defined __cplusplus */
   1163 #endif /* defined __PropertiesUI_FWD_DEFINED__ */
   1164 
   1165 #ifndef __UserNotification_FWD_DEFINED__
   1166 #define __UserNotification_FWD_DEFINED__
   1167 #ifdef __cplusplus
   1168 typedef class UserNotification UserNotification;
   1169 #else
   1170 typedef struct UserNotification UserNotification;
   1171 #endif /* defined __cplusplus */
   1172 #endif /* defined __UserNotification_FWD_DEFINED__ */
   1173 
   1174 #ifndef __CDBurn_FWD_DEFINED__
   1175 #define __CDBurn_FWD_DEFINED__
   1176 #ifdef __cplusplus
   1177 typedef class CDBurn CDBurn;
   1178 #else
   1179 typedef struct CDBurn CDBurn;
   1180 #endif /* defined __cplusplus */
   1181 #endif /* defined __CDBurn_FWD_DEFINED__ */
   1182 
   1183 #ifndef __TaskbarList_FWD_DEFINED__
   1184 #define __TaskbarList_FWD_DEFINED__
   1185 #ifdef __cplusplus
   1186 typedef class TaskbarList TaskbarList;
   1187 #else
   1188 typedef struct TaskbarList TaskbarList;
   1189 #endif /* defined __cplusplus */
   1190 #endif /* defined __TaskbarList_FWD_DEFINED__ */
   1191 
   1192 #ifndef __StartMenuPin_FWD_DEFINED__
   1193 #define __StartMenuPin_FWD_DEFINED__
   1194 #ifdef __cplusplus
   1195 typedef class StartMenuPin StartMenuPin;
   1196 #else
   1197 typedef struct StartMenuPin StartMenuPin;
   1198 #endif /* defined __cplusplus */
   1199 #endif /* defined __StartMenuPin_FWD_DEFINED__ */
   1200 
   1201 #ifndef __WebWizardHost_FWD_DEFINED__
   1202 #define __WebWizardHost_FWD_DEFINED__
   1203 #ifdef __cplusplus
   1204 typedef class WebWizardHost WebWizardHost;
   1205 #else
   1206 typedef struct WebWizardHost WebWizardHost;
   1207 #endif /* defined __cplusplus */
   1208 #endif /* defined __WebWizardHost_FWD_DEFINED__ */
   1209 
   1210 #ifndef __PublishDropTarget_FWD_DEFINED__
   1211 #define __PublishDropTarget_FWD_DEFINED__
   1212 #ifdef __cplusplus
   1213 typedef class PublishDropTarget PublishDropTarget;
   1214 #else
   1215 typedef struct PublishDropTarget PublishDropTarget;
   1216 #endif /* defined __cplusplus */
   1217 #endif /* defined __PublishDropTarget_FWD_DEFINED__ */
   1218 
   1219 #ifndef __PublishingWizard_FWD_DEFINED__
   1220 #define __PublishingWizard_FWD_DEFINED__
   1221 #ifdef __cplusplus
   1222 typedef class PublishingWizard PublishingWizard;
   1223 #else
   1224 typedef struct PublishingWizard PublishingWizard;
   1225 #endif /* defined __cplusplus */
   1226 #endif /* defined __PublishingWizard_FWD_DEFINED__ */
   1227 
   1228 #ifndef __InternetPrintOrdering_FWD_DEFINED__
   1229 #define __InternetPrintOrdering_FWD_DEFINED__
   1230 #ifdef __cplusplus
   1231 typedef class InternetPrintOrdering InternetPrintOrdering;
   1232 #else
   1233 typedef struct InternetPrintOrdering InternetPrintOrdering;
   1234 #endif /* defined __cplusplus */
   1235 #endif /* defined __InternetPrintOrdering_FWD_DEFINED__ */
   1236 
   1237 #ifndef __FolderViewHost_FWD_DEFINED__
   1238 #define __FolderViewHost_FWD_DEFINED__
   1239 #ifdef __cplusplus
   1240 typedef class FolderViewHost FolderViewHost;
   1241 #else
   1242 typedef struct FolderViewHost FolderViewHost;
   1243 #endif /* defined __cplusplus */
   1244 #endif /* defined __FolderViewHost_FWD_DEFINED__ */
   1245 
   1246 #ifndef __ExplorerBrowser_FWD_DEFINED__
   1247 #define __ExplorerBrowser_FWD_DEFINED__
   1248 #ifdef __cplusplus
   1249 typedef class ExplorerBrowser ExplorerBrowser;
   1250 #else
   1251 typedef struct ExplorerBrowser ExplorerBrowser;
   1252 #endif /* defined __cplusplus */
   1253 #endif /* defined __ExplorerBrowser_FWD_DEFINED__ */
   1254 
   1255 #ifndef __ImageRecompress_FWD_DEFINED__
   1256 #define __ImageRecompress_FWD_DEFINED__
   1257 #ifdef __cplusplus
   1258 typedef class ImageRecompress ImageRecompress;
   1259 #else
   1260 typedef struct ImageRecompress ImageRecompress;
   1261 #endif /* defined __cplusplus */
   1262 #endif /* defined __ImageRecompress_FWD_DEFINED__ */
   1263 
   1264 #ifndef __TrayBandSiteService_FWD_DEFINED__
   1265 #define __TrayBandSiteService_FWD_DEFINED__
   1266 #ifdef __cplusplus
   1267 typedef class TrayBandSiteService TrayBandSiteService;
   1268 #else
   1269 typedef struct TrayBandSiteService TrayBandSiteService;
   1270 #endif /* defined __cplusplus */
   1271 #endif /* defined __TrayBandSiteService_FWD_DEFINED__ */
   1272 
   1273 #ifndef __TrayDeskBand_FWD_DEFINED__
   1274 #define __TrayDeskBand_FWD_DEFINED__
   1275 #ifdef __cplusplus
   1276 typedef class TrayDeskBand TrayDeskBand;
   1277 #else
   1278 typedef struct TrayDeskBand TrayDeskBand;
   1279 #endif /* defined __cplusplus */
   1280 #endif /* defined __TrayDeskBand_FWD_DEFINED__ */
   1281 
   1282 #ifndef __AttachmentServices_FWD_DEFINED__
   1283 #define __AttachmentServices_FWD_DEFINED__
   1284 #ifdef __cplusplus
   1285 typedef class AttachmentServices AttachmentServices;
   1286 #else
   1287 typedef struct AttachmentServices AttachmentServices;
   1288 #endif /* defined __cplusplus */
   1289 #endif /* defined __AttachmentServices_FWD_DEFINED__ */
   1290 
   1291 #ifndef __DocPropShellExtension_FWD_DEFINED__
   1292 #define __DocPropShellExtension_FWD_DEFINED__
   1293 #ifdef __cplusplus
   1294 typedef class DocPropShellExtension DocPropShellExtension;
   1295 #else
   1296 typedef struct DocPropShellExtension DocPropShellExtension;
   1297 #endif /* defined __cplusplus */
   1298 #endif /* defined __DocPropShellExtension_FWD_DEFINED__ */
   1299 
   1300 #ifndef __ShellItem_FWD_DEFINED__
   1301 #define __ShellItem_FWD_DEFINED__
   1302 #ifdef __cplusplus
   1303 typedef class ShellItem ShellItem;
   1304 #else
   1305 typedef struct ShellItem ShellItem;
   1306 #endif /* defined __cplusplus */
   1307 #endif /* defined __ShellItem_FWD_DEFINED__ */
   1308 
   1309 #ifndef __NamespaceWalker_FWD_DEFINED__
   1310 #define __NamespaceWalker_FWD_DEFINED__
   1311 #ifdef __cplusplus
   1312 typedef class NamespaceWalker NamespaceWalker;
   1313 #else
   1314 typedef struct NamespaceWalker NamespaceWalker;
   1315 #endif /* defined __cplusplus */
   1316 #endif /* defined __NamespaceWalker_FWD_DEFINED__ */
   1317 
   1318 #ifndef __FileOperation_FWD_DEFINED__
   1319 #define __FileOperation_FWD_DEFINED__
   1320 #ifdef __cplusplus
   1321 typedef class FileOperation FileOperation;
   1322 #else
   1323 typedef struct FileOperation FileOperation;
   1324 #endif /* defined __cplusplus */
   1325 #endif /* defined __FileOperation_FWD_DEFINED__ */
   1326 
   1327 #ifndef __FileOpenDialog_FWD_DEFINED__
   1328 #define __FileOpenDialog_FWD_DEFINED__
   1329 #ifdef __cplusplus
   1330 typedef class FileOpenDialog FileOpenDialog;
   1331 #else
   1332 typedef struct FileOpenDialog FileOpenDialog;
   1333 #endif /* defined __cplusplus */
   1334 #endif /* defined __FileOpenDialog_FWD_DEFINED__ */
   1335 
   1336 #ifndef __FileSaveDialog_FWD_DEFINED__
   1337 #define __FileSaveDialog_FWD_DEFINED__
   1338 #ifdef __cplusplus
   1339 typedef class FileSaveDialog FileSaveDialog;
   1340 #else
   1341 typedef struct FileSaveDialog FileSaveDialog;
   1342 #endif /* defined __cplusplus */
   1343 #endif /* defined __FileSaveDialog_FWD_DEFINED__ */
   1344 
   1345 #ifndef __KnownFolderManager_FWD_DEFINED__
   1346 #define __KnownFolderManager_FWD_DEFINED__
   1347 #ifdef __cplusplus
   1348 typedef class KnownFolderManager KnownFolderManager;
   1349 #else
   1350 typedef struct KnownFolderManager KnownFolderManager;
   1351 #endif /* defined __cplusplus */
   1352 #endif /* defined __KnownFolderManager_FWD_DEFINED__ */
   1353 
   1354 #ifndef __FSCopyHandler_FWD_DEFINED__
   1355 #define __FSCopyHandler_FWD_DEFINED__
   1356 #ifdef __cplusplus
   1357 typedef class FSCopyHandler FSCopyHandler;
   1358 #else
   1359 typedef struct FSCopyHandler FSCopyHandler;
   1360 #endif /* defined __cplusplus */
   1361 #endif /* defined __FSCopyHandler_FWD_DEFINED__ */
   1362 
   1363 #ifndef __SharingConfigurationManager_FWD_DEFINED__
   1364 #define __SharingConfigurationManager_FWD_DEFINED__
   1365 #ifdef __cplusplus
   1366 typedef class SharingConfigurationManager SharingConfigurationManager;
   1367 #else
   1368 typedef struct SharingConfigurationManager SharingConfigurationManager;
   1369 #endif /* defined __cplusplus */
   1370 #endif /* defined __SharingConfigurationManager_FWD_DEFINED__ */
   1371 
   1372 #ifndef __PreviousVersions_FWD_DEFINED__
   1373 #define __PreviousVersions_FWD_DEFINED__
   1374 #ifdef __cplusplus
   1375 typedef class PreviousVersions PreviousVersions;
   1376 #else
   1377 typedef struct PreviousVersions PreviousVersions;
   1378 #endif /* defined __cplusplus */
   1379 #endif /* defined __PreviousVersions_FWD_DEFINED__ */
   1380 
   1381 #ifndef __NetworkConnections_FWD_DEFINED__
   1382 #define __NetworkConnections_FWD_DEFINED__
   1383 #ifdef __cplusplus
   1384 typedef class NetworkConnections NetworkConnections;
   1385 #else
   1386 typedef struct NetworkConnections NetworkConnections;
   1387 #endif /* defined __cplusplus */
   1388 #endif /* defined __NetworkConnections_FWD_DEFINED__ */
   1389 
   1390 #ifndef __NamespaceTreeControl_FWD_DEFINED__
   1391 #define __NamespaceTreeControl_FWD_DEFINED__
   1392 #ifdef __cplusplus
   1393 typedef class NamespaceTreeControl NamespaceTreeControl;
   1394 #else
   1395 typedef struct NamespaceTreeControl NamespaceTreeControl;
   1396 #endif /* defined __cplusplus */
   1397 #endif /* defined __NamespaceTreeControl_FWD_DEFINED__ */
   1398 
   1399 #ifndef __IENamespaceTreeControl_FWD_DEFINED__
   1400 #define __IENamespaceTreeControl_FWD_DEFINED__
   1401 #ifdef __cplusplus
   1402 typedef class IENamespaceTreeControl IENamespaceTreeControl;
   1403 #else
   1404 typedef struct IENamespaceTreeControl IENamespaceTreeControl;
   1405 #endif /* defined __cplusplus */
   1406 #endif /* defined __IENamespaceTreeControl_FWD_DEFINED__ */
   1407 
   1408 #ifndef __ScheduledTasks_FWD_DEFINED__
   1409 #define __ScheduledTasks_FWD_DEFINED__
   1410 #ifdef __cplusplus
   1411 typedef class ScheduledTasks ScheduledTasks;
   1412 #else
   1413 typedef struct ScheduledTasks ScheduledTasks;
   1414 #endif /* defined __cplusplus */
   1415 #endif /* defined __ScheduledTasks_FWD_DEFINED__ */
   1416 
   1417 #ifndef __ApplicationAssociationRegistration_FWD_DEFINED__
   1418 #define __ApplicationAssociationRegistration_FWD_DEFINED__
   1419 #ifdef __cplusplus
   1420 typedef class ApplicationAssociationRegistration ApplicationAssociationRegistration;
   1421 #else
   1422 typedef struct ApplicationAssociationRegistration ApplicationAssociationRegistration;
   1423 #endif /* defined __cplusplus */
   1424 #endif /* defined __ApplicationAssociationRegistration_FWD_DEFINED__ */
   1425 
   1426 #ifndef __ApplicationAssociationRegistrationUI_FWD_DEFINED__
   1427 #define __ApplicationAssociationRegistrationUI_FWD_DEFINED__
   1428 #ifdef __cplusplus
   1429 typedef class ApplicationAssociationRegistrationUI ApplicationAssociationRegistrationUI;
   1430 #else
   1431 typedef struct ApplicationAssociationRegistrationUI ApplicationAssociationRegistrationUI;
   1432 #endif /* defined __cplusplus */
   1433 #endif /* defined __ApplicationAssociationRegistrationUI_FWD_DEFINED__ */
   1434 
   1435 #ifndef __SearchFolderItemFactory_FWD_DEFINED__
   1436 #define __SearchFolderItemFactory_FWD_DEFINED__
   1437 #ifdef __cplusplus
   1438 typedef class SearchFolderItemFactory SearchFolderItemFactory;
   1439 #else
   1440 typedef struct SearchFolderItemFactory SearchFolderItemFactory;
   1441 #endif /* defined __cplusplus */
   1442 #endif /* defined __SearchFolderItemFactory_FWD_DEFINED__ */
   1443 
   1444 #ifndef __OpenControlPanel_FWD_DEFINED__
   1445 #define __OpenControlPanel_FWD_DEFINED__
   1446 #ifdef __cplusplus
   1447 typedef class OpenControlPanel OpenControlPanel;
   1448 #else
   1449 typedef struct OpenControlPanel OpenControlPanel;
   1450 #endif /* defined __cplusplus */
   1451 #endif /* defined __OpenControlPanel_FWD_DEFINED__ */
   1452 
   1453 #ifndef __MailRecipient_FWD_DEFINED__
   1454 #define __MailRecipient_FWD_DEFINED__
   1455 #ifdef __cplusplus
   1456 typedef class MailRecipient MailRecipient;
   1457 #else
   1458 typedef struct MailRecipient MailRecipient;
   1459 #endif /* defined __cplusplus */
   1460 #endif /* defined __MailRecipient_FWD_DEFINED__ */
   1461 
   1462 #ifndef __NetworkExplorerFolder_FWD_DEFINED__
   1463 #define __NetworkExplorerFolder_FWD_DEFINED__
   1464 #ifdef __cplusplus
   1465 typedef class NetworkExplorerFolder NetworkExplorerFolder;
   1466 #else
   1467 typedef struct NetworkExplorerFolder NetworkExplorerFolder;
   1468 #endif /* defined __cplusplus */
   1469 #endif /* defined __NetworkExplorerFolder_FWD_DEFINED__ */
   1470 
   1471 #ifndef __DestinationList_FWD_DEFINED__
   1472 #define __DestinationList_FWD_DEFINED__
   1473 #ifdef __cplusplus
   1474 typedef class DestinationList DestinationList;
   1475 #else
   1476 typedef struct DestinationList DestinationList;
   1477 #endif /* defined __cplusplus */
   1478 #endif /* defined __DestinationList_FWD_DEFINED__ */
   1479 
   1480 #ifndef __ApplicationDestinations_FWD_DEFINED__
   1481 #define __ApplicationDestinations_FWD_DEFINED__
   1482 #ifdef __cplusplus
   1483 typedef class ApplicationDestinations ApplicationDestinations;
   1484 #else
   1485 typedef struct ApplicationDestinations ApplicationDestinations;
   1486 #endif /* defined __cplusplus */
   1487 #endif /* defined __ApplicationDestinations_FWD_DEFINED__ */
   1488 
   1489 #ifndef __ApplicationDocumentLists_FWD_DEFINED__
   1490 #define __ApplicationDocumentLists_FWD_DEFINED__
   1491 #ifdef __cplusplus
   1492 typedef class ApplicationDocumentLists ApplicationDocumentLists;
   1493 #else
   1494 typedef struct ApplicationDocumentLists ApplicationDocumentLists;
   1495 #endif /* defined __cplusplus */
   1496 #endif /* defined __ApplicationDocumentLists_FWD_DEFINED__ */
   1497 
   1498 #ifndef __HomeGroup_FWD_DEFINED__
   1499 #define __HomeGroup_FWD_DEFINED__
   1500 #ifdef __cplusplus
   1501 typedef class HomeGroup HomeGroup;
   1502 #else
   1503 typedef struct HomeGroup HomeGroup;
   1504 #endif /* defined __cplusplus */
   1505 #endif /* defined __HomeGroup_FWD_DEFINED__ */
   1506 
   1507 #ifndef __ShellLibrary_FWD_DEFINED__
   1508 #define __ShellLibrary_FWD_DEFINED__
   1509 #ifdef __cplusplus
   1510 typedef class ShellLibrary ShellLibrary;
   1511 #else
   1512 typedef struct ShellLibrary ShellLibrary;
   1513 #endif /* defined __cplusplus */
   1514 #endif /* defined __ShellLibrary_FWD_DEFINED__ */
   1515 
   1516 #ifndef __AppStartupLink_FWD_DEFINED__
   1517 #define __AppStartupLink_FWD_DEFINED__
   1518 #ifdef __cplusplus
   1519 typedef class AppStartupLink AppStartupLink;
   1520 #else
   1521 typedef struct AppStartupLink AppStartupLink;
   1522 #endif /* defined __cplusplus */
   1523 #endif /* defined __AppStartupLink_FWD_DEFINED__ */
   1524 
   1525 #ifndef __EnumerableObjectCollection_FWD_DEFINED__
   1526 #define __EnumerableObjectCollection_FWD_DEFINED__
   1527 #ifdef __cplusplus
   1528 typedef class EnumerableObjectCollection EnumerableObjectCollection;
   1529 #else
   1530 typedef struct EnumerableObjectCollection EnumerableObjectCollection;
   1531 #endif /* defined __cplusplus */
   1532 #endif /* defined __EnumerableObjectCollection_FWD_DEFINED__ */
   1533 
   1534 #ifndef __DesktopGadget_FWD_DEFINED__
   1535 #define __DesktopGadget_FWD_DEFINED__
   1536 #ifdef __cplusplus
   1537 typedef class DesktopGadget DesktopGadget;
   1538 #else
   1539 typedef struct DesktopGadget DesktopGadget;
   1540 #endif /* defined __cplusplus */
   1541 #endif /* defined __DesktopGadget_FWD_DEFINED__ */
   1542 
   1543 #ifndef __PlaybackManager_FWD_DEFINED__
   1544 #define __PlaybackManager_FWD_DEFINED__
   1545 #ifdef __cplusplus
   1546 typedef class PlaybackManager PlaybackManager;
   1547 #else
   1548 typedef struct PlaybackManager PlaybackManager;
   1549 #endif /* defined __cplusplus */
   1550 #endif /* defined __PlaybackManager_FWD_DEFINED__ */
   1551 
   1552 #ifndef __AccessibilityDockingService_FWD_DEFINED__
   1553 #define __AccessibilityDockingService_FWD_DEFINED__
   1554 #ifdef __cplusplus
   1555 typedef class AccessibilityDockingService AccessibilityDockingService;
   1556 #else
   1557 typedef struct AccessibilityDockingService AccessibilityDockingService;
   1558 #endif /* defined __cplusplus */
   1559 #endif /* defined __AccessibilityDockingService_FWD_DEFINED__ */
   1560 
   1561 #ifndef __FrameworkInputPane_FWD_DEFINED__
   1562 #define __FrameworkInputPane_FWD_DEFINED__
   1563 #ifdef __cplusplus
   1564 typedef class FrameworkInputPane FrameworkInputPane;
   1565 #else
   1566 typedef struct FrameworkInputPane FrameworkInputPane;
   1567 #endif /* defined __cplusplus */
   1568 #endif /* defined __FrameworkInputPane_FWD_DEFINED__ */
   1569 
   1570 #ifndef __DefFolderMenu_FWD_DEFINED__
   1571 #define __DefFolderMenu_FWD_DEFINED__
   1572 #ifdef __cplusplus
   1573 typedef class DefFolderMenu DefFolderMenu;
   1574 #else
   1575 typedef struct DefFolderMenu DefFolderMenu;
   1576 #endif /* defined __cplusplus */
   1577 #endif /* defined __DefFolderMenu_FWD_DEFINED__ */
   1578 
   1579 #ifndef __AppVisibility_FWD_DEFINED__
   1580 #define __AppVisibility_FWD_DEFINED__
   1581 #ifdef __cplusplus
   1582 typedef class AppVisibility AppVisibility;
   1583 #else
   1584 typedef struct AppVisibility AppVisibility;
   1585 #endif /* defined __cplusplus */
   1586 #endif /* defined __AppVisibility_FWD_DEFINED__ */
   1587 
   1588 #ifndef __AppShellVerbHandler_FWD_DEFINED__
   1589 #define __AppShellVerbHandler_FWD_DEFINED__
   1590 #ifdef __cplusplus
   1591 typedef class AppShellVerbHandler AppShellVerbHandler;
   1592 #else
   1593 typedef struct AppShellVerbHandler AppShellVerbHandler;
   1594 #endif /* defined __cplusplus */
   1595 #endif /* defined __AppShellVerbHandler_FWD_DEFINED__ */
   1596 
   1597 #ifndef __ExecuteUnknown_FWD_DEFINED__
   1598 #define __ExecuteUnknown_FWD_DEFINED__
   1599 #ifdef __cplusplus
   1600 typedef class ExecuteUnknown ExecuteUnknown;
   1601 #else
   1602 typedef struct ExecuteUnknown ExecuteUnknown;
   1603 #endif /* defined __cplusplus */
   1604 #endif /* defined __ExecuteUnknown_FWD_DEFINED__ */
   1605 
   1606 #ifndef __PackageDebugSettings_FWD_DEFINED__
   1607 #define __PackageDebugSettings_FWD_DEFINED__
   1608 #ifdef __cplusplus
   1609 typedef class PackageDebugSettings PackageDebugSettings;
   1610 #else
   1611 typedef struct PackageDebugSettings PackageDebugSettings;
   1612 #endif /* defined __cplusplus */
   1613 #endif /* defined __PackageDebugSettings_FWD_DEFINED__ */
   1614 
   1615 #ifndef __ApplicationActivationManager_FWD_DEFINED__
   1616 #define __ApplicationActivationManager_FWD_DEFINED__
   1617 #ifdef __cplusplus
   1618 typedef class ApplicationActivationManager ApplicationActivationManager;
   1619 #else
   1620 typedef struct ApplicationActivationManager ApplicationActivationManager;
   1621 #endif /* defined __cplusplus */
   1622 #endif /* defined __ApplicationActivationManager_FWD_DEFINED__ */
   1623 
   1624 #ifndef __ApplicationDesignModeSettings_FWD_DEFINED__
   1625 #define __ApplicationDesignModeSettings_FWD_DEFINED__
   1626 #ifdef __cplusplus
   1627 typedef class ApplicationDesignModeSettings ApplicationDesignModeSettings;
   1628 #else
   1629 typedef struct ApplicationDesignModeSettings ApplicationDesignModeSettings;
   1630 #endif /* defined __cplusplus */
   1631 #endif /* defined __ApplicationDesignModeSettings_FWD_DEFINED__ */
   1632 
   1633 #ifndef __ExecuteFolder_FWD_DEFINED__
   1634 #define __ExecuteFolder_FWD_DEFINED__
   1635 #ifdef __cplusplus
   1636 typedef class ExecuteFolder ExecuteFolder;
   1637 #else
   1638 typedef struct ExecuteFolder ExecuteFolder;
   1639 #endif /* defined __cplusplus */
   1640 #endif /* defined __ExecuteFolder_FWD_DEFINED__ */
   1641 
   1642 #ifndef __IAssocHandlerInvoker_FWD_DEFINED__
   1643 #define __IAssocHandlerInvoker_FWD_DEFINED__
   1644 typedef interface IAssocHandlerInvoker IAssocHandlerInvoker;
   1645 #endif
   1646 
   1647 #ifndef __IAssocHandler_FWD_DEFINED__
   1648 #define __IAssocHandler_FWD_DEFINED__
   1649 typedef interface IAssocHandler IAssocHandler;
   1650 #endif
   1651 
   1652 #ifndef __IEnumAssocHandlers_FWD_DEFINED__
   1653 #define __IEnumAssocHandlers_FWD_DEFINED__
   1654 typedef interface IEnumAssocHandlers IEnumAssocHandlers;
   1655 #endif
   1656 
   1657 #ifndef __IDataObjectProvider_FWD_DEFINED__
   1658 #define __IDataObjectProvider_FWD_DEFINED__
   1659 typedef interface IDataObjectProvider IDataObjectProvider;
   1660 #endif
   1661 
   1662 #ifndef __IDataTransferManagerInterop_FWD_DEFINED__
   1663 #define __IDataTransferManagerInterop_FWD_DEFINED__
   1664 typedef interface IDataTransferManagerInterop IDataTransferManagerInterop;
   1665 #endif
   1666 
   1667 #ifndef __IFrameworkInputPaneHandler_FWD_DEFINED__
   1668 #define __IFrameworkInputPaneHandler_FWD_DEFINED__
   1669 typedef interface IFrameworkInputPaneHandler IFrameworkInputPaneHandler;
   1670 #endif
   1671 
   1672 #ifndef __IFrameworkInputPane_FWD_DEFINED__
   1673 #define __IFrameworkInputPane_FWD_DEFINED__
   1674 typedef interface IFrameworkInputPane IFrameworkInputPane;
   1675 #endif
   1676 
   1677 #ifndef __ISearchableApplication_FWD_DEFINED__
   1678 #define __ISearchableApplication_FWD_DEFINED__
   1679 typedef interface ISearchableApplication ISearchableApplication;
   1680 #endif
   1681 
   1682 #ifndef __IAccessibilityDockingServiceCallback_FWD_DEFINED__
   1683 #define __IAccessibilityDockingServiceCallback_FWD_DEFINED__
   1684 typedef interface IAccessibilityDockingServiceCallback IAccessibilityDockingServiceCallback;
   1685 #endif
   1686 
   1687 #ifndef __IAccessibilityDockingService_FWD_DEFINED__
   1688 #define __IAccessibilityDockingService_FWD_DEFINED__
   1689 typedef interface IAccessibilityDockingService IAccessibilityDockingService;
   1690 #endif
   1691 
   1692 #ifndef __IAppVisibilityEvents_FWD_DEFINED__
   1693 #define __IAppVisibilityEvents_FWD_DEFINED__
   1694 typedef interface IAppVisibilityEvents IAppVisibilityEvents;
   1695 #endif
   1696 
   1697 #ifndef __IAppVisibility_FWD_DEFINED__
   1698 #define __IAppVisibility_FWD_DEFINED__
   1699 typedef interface IAppVisibility IAppVisibility;
   1700 #endif
   1701 
   1702 #ifndef __IPackageExecutionStateChangeNotification_FWD_DEFINED__
   1703 #define __IPackageExecutionStateChangeNotification_FWD_DEFINED__
   1704 typedef interface IPackageExecutionStateChangeNotification IPackageExecutionStateChangeNotification;
   1705 #endif
   1706 
   1707 #ifndef __IPackageDebugSettings_FWD_DEFINED__
   1708 #define __IPackageDebugSettings_FWD_DEFINED__
   1709 typedef interface IPackageDebugSettings IPackageDebugSettings;
   1710 #endif
   1711 
   1712 #ifndef __IExecuteCommandApplicationHostEnvironment_FWD_DEFINED__
   1713 #define __IExecuteCommandApplicationHostEnvironment_FWD_DEFINED__
   1714 typedef interface IExecuteCommandApplicationHostEnvironment IExecuteCommandApplicationHostEnvironment;
   1715 #endif
   1716 
   1717 #ifndef __IExecuteCommandHost_FWD_DEFINED__
   1718 #define __IExecuteCommandHost_FWD_DEFINED__
   1719 typedef interface IExecuteCommandHost IExecuteCommandHost;
   1720 #endif
   1721 
   1722 #ifndef __IApplicationDesignModeSettings_FWD_DEFINED__
   1723 #define __IApplicationDesignModeSettings_FWD_DEFINED__
   1724 typedef interface IApplicationDesignModeSettings IApplicationDesignModeSettings;
   1725 #endif
   1726 
   1727 #ifndef __IInitializeWithWindow_FWD_DEFINED__
   1728 #define __IInitializeWithWindow_FWD_DEFINED__
   1729 typedef interface IInitializeWithWindow IInitializeWithWindow;
   1730 #endif
   1731 
   1732 #ifndef __IHandlerInfo_FWD_DEFINED__
   1733 #define __IHandlerInfo_FWD_DEFINED__
   1734 typedef interface IHandlerInfo IHandlerInfo;
   1735 #endif
   1736 
   1737 #ifndef __IHandlerActivationHost_FWD_DEFINED__
   1738 #define __IHandlerActivationHost_FWD_DEFINED__
   1739 typedef interface IHandlerActivationHost IHandlerActivationHost;
   1740 #endif
   1741 
   1742 /* Headers for imported files */
   1743 
   1744 #include <objidl.h>
   1745 #include <oleidl.h>
   1746 #include <oaidl.h>
   1747 #include <docobj.h>
   1748 #include <shtypes.h>
   1749 #include <servprov.h>
   1750 #include <comcat.h>
   1751 #include <propidl.h>
   1752 #include <prsht.h>
   1753 #include <msxml.h>
   1754 #include <wtypes.h>
   1755 #include <propsys.h>
   1756 #include <objectarray.h>
   1757 #include <structuredquerycondition.h>
   1758 
   1759 #ifdef __cplusplus
   1760 extern "C" {
   1761 #endif
   1762 
   1763 /**
   1764  * This file is part of the mingw-w64 runtime package.
   1765  * No warranty is given; refer to the file DISCLAIMER within this package.
   1766  */
   1767 
   1768 #include <winapifamily.h>
   1769 
   1770 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
   1771 
   1772 #include <_mingw_unicode.h>
   1773 
   1774 
   1775 #include <sherrors.h>
   1776 
   1777 #ifndef SHSTDAPI
   1778 #ifdef _SHELL32_
   1779 #define SHSTDAPI STDAPI
   1780 #define SHSTDAPI_(type) STDAPI_(type)
   1781 #else
   1782 #define SHSTDAPI EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE
   1783 #define SHSTDAPI_(type) EXTERN_C DECLSPEC_IMPORT type STDAPICALLTYPE
   1784 #endif
   1785 #endif
   1786 
   1787 #define CMF_NORMAL 0x0
   1788 #define CMF_DEFAULTONLY 0x1
   1789 #define CMF_VERBSONLY 0x2
   1790 #define CMF_EXPLORE 0x4
   1791 #define CMF_NOVERBS 0x8
   1792 #define CMF_CANRENAME 0x10
   1793 #define CMF_NODEFAULT 0x20
   1794 #if NTDDI_VERSION < NTDDI_VISTA
   1795 #define CMF_INCLUDESTATIC 0x40
   1796 #endif
   1797 #if NTDDI_VERSION >= NTDDI_VISTA
   1798 #define CMF_ITEMMENU 0x80
   1799 #endif
   1800 #define CMF_EXTENDEDVERBS 0x100
   1801 #if NTDDI_VERSION >= NTDDI_VISTA
   1802 #define CMF_DISABLEDVERBS 0x200
   1803 #endif
   1804 #define CMF_ASYNCVERBSTATE 0x400
   1805 #define CMF_OPTIMIZEFORINVOKE 0x800
   1806 #define CMF_SYNCCASCADEMENU 0x1000
   1807 #define CMF_DONOTPICKDEFAULT 0x2000
   1808 #define CMF_RESERVED 0xffff0000
   1809 
   1810 #define GCS_VERBA 0x0
   1811 #define GCS_HELPTEXTA 0x1
   1812 #define GCS_VALIDATEA 0x2
   1813 #define GCS_VERBW 0x4
   1814 #define GCS_HELPTEXTW 0x5
   1815 #define GCS_VALIDATEW 0x6
   1816 #define GCS_VERBICONW 0x14
   1817 #define GCS_UNICODE 0x4
   1818 
   1819 #define GCS_VERB __MINGW_NAME_AW(GCS_VERB)
   1820 #define GCS_HELPTEXT __MINGW_NAME_AW(GCS_HELPTEXT)
   1821 #define GCS_VALIDATE __MINGW_NAME_AW(GCS_VALIDATE)
   1822 
   1823 #define CMDSTR_NEWFOLDERA "NewFolder"
   1824 #define CMDSTR_VIEWLISTA "ViewList"
   1825 #define CMDSTR_VIEWDETAILSA "ViewDetails"
   1826 #define CMDSTR_NEWFOLDERW L"NewFolder"
   1827 #define CMDSTR_VIEWLISTW L"ViewList"
   1828 #define CMDSTR_VIEWDETAILSW L"ViewDetails"
   1829 
   1830 #define CMDSTR_NEWFOLDER __MINGW_NAME_AW(CMDSTR_NEWFOLDER)
   1831 #define CMDSTR_VIEWLIST __MINGW_NAME_AW(CMDSTR_VIEWLIST)
   1832 #define CMDSTR_VIEWDETAILS __MINGW_NAME_AW(CMDSTR_VIEWDETAILS)
   1833 
   1834 #define CMIC_MASK_HOTKEY SEE_MASK_HOTKEY
   1835 #define CMIC_MASK_ICON SEE_MASK_ICON
   1836 #define CMIC_MASK_FLAG_NO_UI SEE_MASK_FLAG_NO_UI
   1837 #define CMIC_MASK_UNICODE SEE_MASK_UNICODE
   1838 #define CMIC_MASK_NO_CONSOLE SEE_MASK_NO_CONSOLE
   1839 #if NTDDI_VERSION < NTDDI_VISTA
   1840 #define CMIC_MASK_HASLINKNAME SEE_MASK_HASLINKNAME
   1841 #define CMIC_MASK_HASTITLE SEE_MASK_HASTITLE
   1842 #endif
   1843 #define CMIC_MASK_FLAG_SEP_VDM SEE_MASK_FLAG_SEPVDM
   1844 #define CMIC_MASK_ASYNCOK SEE_MASK_ASYNCOK
   1845 #if NTDDI_VERSION >= NTDDI_VISTA
   1846 #define CMIC_MASK_NOASYNC SEE_MASK_NOASYNC
   1847 #endif
   1848 #define CMIC_MASK_SHIFT_DOWN 0x10000000
   1849 #define CMIC_MASK_CONTROL_DOWN 0x40000000
   1850 #define CMIC_MASK_FLAG_LOG_USAGE SEE_MASK_FLAG_LOG_USAGE
   1851 #define CMIC_MASK_NOZONECHECKS SEE_MASK_NOZONECHECKS
   1852 #define CMIC_MASK_PTINVOKE 0x20000000
   1853 
   1854 #include <pshpack8.h>
   1855 typedef struct _CMINVOKECOMMANDINFO {
   1856     DWORD cbSize;
   1857     DWORD fMask;
   1858     HWND hwnd;
   1859     LPCSTR lpVerb;
   1860     LPCSTR lpParameters;
   1861     LPCSTR lpDirectory;
   1862     int nShow;
   1863     DWORD dwHotKey;
   1864     HANDLE hIcon;
   1865 } CMINVOKECOMMANDINFO;
   1866 
   1867 typedef CMINVOKECOMMANDINFO *LPCMINVOKECOMMANDINFO;
   1868 typedef const CMINVOKECOMMANDINFO *PCCMINVOKECOMMANDINFO;
   1869 
   1870 typedef struct _CMINVOKECOMMANDINFOEX {
   1871     DWORD cbSize;
   1872     DWORD fMask;
   1873     HWND hwnd;
   1874     LPCSTR lpVerb;
   1875     LPCSTR lpParameters;
   1876     LPCSTR lpDirectory;
   1877     int nShow;
   1878     DWORD dwHotKey;
   1879     HANDLE hIcon;
   1880     LPCSTR lpTitle;
   1881     LPCWSTR lpVerbW;
   1882     LPCWSTR lpParametersW;
   1883     LPCWSTR lpDirectoryW;
   1884     LPCWSTR lpTitleW;
   1885     POINT ptInvoke;
   1886 } CMINVOKECOMMANDINFOEX;
   1887 
   1888 typedef CMINVOKECOMMANDINFOEX *LPCMINVOKECOMMANDINFOEX;
   1889 typedef const CMINVOKECOMMANDINFOEX *PCCMINVOKECOMMANDINFOEX;
   1890 #include <poppack.h>
   1891 
   1892 /*****************************************************************************
   1893  * IContextMenu interface
   1894  */
   1895 #ifndef __IContextMenu_INTERFACE_DEFINED__
   1896 #define __IContextMenu_INTERFACE_DEFINED__
   1897 
   1898 DEFINE_GUID(IID_IContextMenu, 0x000214e4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   1899 #if defined(__cplusplus) && !defined(CINTERFACE)
   1900 MIDL_INTERFACE("000214e4-0000-0000-c000-000000000046")
   1901 IContextMenu : public IUnknown
   1902 {
   1903     virtual HRESULT STDMETHODCALLTYPE QueryContextMenu(
   1904         HMENU hmenu,
   1905         UINT indexMenu,
   1906         UINT idCmdFirst,
   1907         UINT idCmdLast,
   1908         UINT uFlags) = 0;
   1909 
   1910     virtual HRESULT STDMETHODCALLTYPE InvokeCommand(
   1911         CMINVOKECOMMANDINFO *pici) = 0;
   1912 
   1913     virtual HRESULT STDMETHODCALLTYPE GetCommandString(
   1914         UINT_PTR idCmd,
   1915         UINT uType,
   1916         UINT *pReserved,
   1917         CHAR *pszName,
   1918         UINT cchMax) = 0;
   1919 
   1920 };
   1921 #ifdef __CRT_UUID_DECL
   1922 __CRT_UUID_DECL(IContextMenu, 0x000214e4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   1923 #endif
   1924 #else
   1925 typedef struct IContextMenuVtbl {
   1926     BEGIN_INTERFACE
   1927 
   1928     /*** IUnknown methods ***/
   1929     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1930         IContextMenu* This,
   1931         REFIID riid,
   1932         void **ppvObject);
   1933 
   1934     ULONG (STDMETHODCALLTYPE *AddRef)(
   1935         IContextMenu* This);
   1936 
   1937     ULONG (STDMETHODCALLTYPE *Release)(
   1938         IContextMenu* This);
   1939 
   1940     /*** IContextMenu methods ***/
   1941     HRESULT (STDMETHODCALLTYPE *QueryContextMenu)(
   1942         IContextMenu* This,
   1943         HMENU hmenu,
   1944         UINT indexMenu,
   1945         UINT idCmdFirst,
   1946         UINT idCmdLast,
   1947         UINT uFlags);
   1948 
   1949     HRESULT (STDMETHODCALLTYPE *InvokeCommand)(
   1950         IContextMenu* This,
   1951         CMINVOKECOMMANDINFO *pici);
   1952 
   1953     HRESULT (STDMETHODCALLTYPE *GetCommandString)(
   1954         IContextMenu* This,
   1955         UINT_PTR idCmd,
   1956         UINT uType,
   1957         UINT *pReserved,
   1958         CHAR *pszName,
   1959         UINT cchMax);
   1960 
   1961     END_INTERFACE
   1962 } IContextMenuVtbl;
   1963 interface IContextMenu {
   1964     CONST_VTBL IContextMenuVtbl* lpVtbl;
   1965 };
   1966 
   1967 #ifdef COBJMACROS
   1968 #ifndef WIDL_C_INLINE_WRAPPERS
   1969 /*** IUnknown methods ***/
   1970 #define IContextMenu_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1971 #define IContextMenu_AddRef(This) (This)->lpVtbl->AddRef(This)
   1972 #define IContextMenu_Release(This) (This)->lpVtbl->Release(This)
   1973 /*** IContextMenu methods ***/
   1974 #define IContextMenu_QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags) (This)->lpVtbl->QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags)
   1975 #define IContextMenu_InvokeCommand(This,pici) (This)->lpVtbl->InvokeCommand(This,pici)
   1976 #define IContextMenu_GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax) (This)->lpVtbl->GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax)
   1977 #else
   1978 /*** IUnknown methods ***/
   1979 static FORCEINLINE HRESULT IContextMenu_QueryInterface(IContextMenu* This,REFIID riid,void **ppvObject) {
   1980     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1981 }
   1982 static FORCEINLINE ULONG IContextMenu_AddRef(IContextMenu* This) {
   1983     return This->lpVtbl->AddRef(This);
   1984 }
   1985 static FORCEINLINE ULONG IContextMenu_Release(IContextMenu* This) {
   1986     return This->lpVtbl->Release(This);
   1987 }
   1988 /*** IContextMenu methods ***/
   1989 static FORCEINLINE HRESULT IContextMenu_QueryContextMenu(IContextMenu* This,HMENU hmenu,UINT indexMenu,UINT idCmdFirst,UINT idCmdLast,UINT uFlags) {
   1990     return This->lpVtbl->QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags);
   1991 }
   1992 static FORCEINLINE HRESULT IContextMenu_InvokeCommand(IContextMenu* This,CMINVOKECOMMANDINFO *pici) {
   1993     return This->lpVtbl->InvokeCommand(This,pici);
   1994 }
   1995 static FORCEINLINE HRESULT IContextMenu_GetCommandString(IContextMenu* This,UINT_PTR idCmd,UINT uType,UINT *pReserved,CHAR *pszName,UINT cchMax) {
   1996     return This->lpVtbl->GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax);
   1997 }
   1998 #endif
   1999 #endif
   2000 
   2001 #endif
   2002 
   2003 HRESULT STDMETHODCALLTYPE IContextMenu_QueryContextMenu_Proxy(
   2004     IContextMenu* This,
   2005     HMENU hmenu,
   2006     UINT indexMenu,
   2007     UINT idCmdFirst,
   2008     UINT idCmdLast,
   2009     UINT uFlags);
   2010 void __RPC_STUB IContextMenu_QueryContextMenu_Stub(
   2011     IRpcStubBuffer* This,
   2012     IRpcChannelBuffer* pRpcChannelBuffer,
   2013     PRPC_MESSAGE pRpcMessage,
   2014     DWORD* pdwStubPhase);
   2015 HRESULT STDMETHODCALLTYPE IContextMenu_InvokeCommand_Proxy(
   2016     IContextMenu* This,
   2017     CMINVOKECOMMANDINFO *pici);
   2018 void __RPC_STUB IContextMenu_InvokeCommand_Stub(
   2019     IRpcStubBuffer* This,
   2020     IRpcChannelBuffer* pRpcChannelBuffer,
   2021     PRPC_MESSAGE pRpcMessage,
   2022     DWORD* pdwStubPhase);
   2023 HRESULT STDMETHODCALLTYPE IContextMenu_GetCommandString_Proxy(
   2024     IContextMenu* This,
   2025     UINT_PTR idCmd,
   2026     UINT uType,
   2027     UINT *pReserved,
   2028     CHAR *pszName,
   2029     UINT cchMax);
   2030 void __RPC_STUB IContextMenu_GetCommandString_Stub(
   2031     IRpcStubBuffer* This,
   2032     IRpcChannelBuffer* pRpcChannelBuffer,
   2033     PRPC_MESSAGE pRpcMessage,
   2034     DWORD* pdwStubPhase);
   2035 
   2036 #endif  /* __IContextMenu_INTERFACE_DEFINED__ */
   2037 
   2038 typedef IContextMenu *LPCONTEXTMENU;
   2039 
   2040 /*****************************************************************************
   2041  * IContextMenu2 interface
   2042  */
   2043 #ifndef __IContextMenu2_INTERFACE_DEFINED__
   2044 #define __IContextMenu2_INTERFACE_DEFINED__
   2045 
   2046 DEFINE_GUID(IID_IContextMenu2, 0x000214f4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   2047 #if defined(__cplusplus) && !defined(CINTERFACE)
   2048 MIDL_INTERFACE("000214f4-0000-0000-c000-000000000046")
   2049 IContextMenu2 : public IContextMenu
   2050 {
   2051     virtual HRESULT STDMETHODCALLTYPE HandleMenuMsg(
   2052         UINT uMsg,
   2053         WPARAM wParam,
   2054         LPARAM lParam) = 0;
   2055 
   2056 };
   2057 #ifdef __CRT_UUID_DECL
   2058 __CRT_UUID_DECL(IContextMenu2, 0x000214f4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   2059 #endif
   2060 #else
   2061 typedef struct IContextMenu2Vtbl {
   2062     BEGIN_INTERFACE
   2063 
   2064     /*** IUnknown methods ***/
   2065     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2066         IContextMenu2* This,
   2067         REFIID riid,
   2068         void **ppvObject);
   2069 
   2070     ULONG (STDMETHODCALLTYPE *AddRef)(
   2071         IContextMenu2* This);
   2072 
   2073     ULONG (STDMETHODCALLTYPE *Release)(
   2074         IContextMenu2* This);
   2075 
   2076     /*** IContextMenu methods ***/
   2077     HRESULT (STDMETHODCALLTYPE *QueryContextMenu)(
   2078         IContextMenu2* This,
   2079         HMENU hmenu,
   2080         UINT indexMenu,
   2081         UINT idCmdFirst,
   2082         UINT idCmdLast,
   2083         UINT uFlags);
   2084 
   2085     HRESULT (STDMETHODCALLTYPE *InvokeCommand)(
   2086         IContextMenu2* This,
   2087         CMINVOKECOMMANDINFO *pici);
   2088 
   2089     HRESULT (STDMETHODCALLTYPE *GetCommandString)(
   2090         IContextMenu2* This,
   2091         UINT_PTR idCmd,
   2092         UINT uType,
   2093         UINT *pReserved,
   2094         CHAR *pszName,
   2095         UINT cchMax);
   2096 
   2097     /*** IContextMenu2 methods ***/
   2098     HRESULT (STDMETHODCALLTYPE *HandleMenuMsg)(
   2099         IContextMenu2* This,
   2100         UINT uMsg,
   2101         WPARAM wParam,
   2102         LPARAM lParam);
   2103 
   2104     END_INTERFACE
   2105 } IContextMenu2Vtbl;
   2106 interface IContextMenu2 {
   2107     CONST_VTBL IContextMenu2Vtbl* lpVtbl;
   2108 };
   2109 
   2110 #ifdef COBJMACROS
   2111 #ifndef WIDL_C_INLINE_WRAPPERS
   2112 /*** IUnknown methods ***/
   2113 #define IContextMenu2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2114 #define IContextMenu2_AddRef(This) (This)->lpVtbl->AddRef(This)
   2115 #define IContextMenu2_Release(This) (This)->lpVtbl->Release(This)
   2116 /*** IContextMenu methods ***/
   2117 #define IContextMenu2_QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags) (This)->lpVtbl->QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags)
   2118 #define IContextMenu2_InvokeCommand(This,pici) (This)->lpVtbl->InvokeCommand(This,pici)
   2119 #define IContextMenu2_GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax) (This)->lpVtbl->GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax)
   2120 /*** IContextMenu2 methods ***/
   2121 #define IContextMenu2_HandleMenuMsg(This,uMsg,wParam,lParam) (This)->lpVtbl->HandleMenuMsg(This,uMsg,wParam,lParam)
   2122 #else
   2123 /*** IUnknown methods ***/
   2124 static FORCEINLINE HRESULT IContextMenu2_QueryInterface(IContextMenu2* This,REFIID riid,void **ppvObject) {
   2125     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2126 }
   2127 static FORCEINLINE ULONG IContextMenu2_AddRef(IContextMenu2* This) {
   2128     return This->lpVtbl->AddRef(This);
   2129 }
   2130 static FORCEINLINE ULONG IContextMenu2_Release(IContextMenu2* This) {
   2131     return This->lpVtbl->Release(This);
   2132 }
   2133 /*** IContextMenu methods ***/
   2134 static FORCEINLINE HRESULT IContextMenu2_QueryContextMenu(IContextMenu2* This,HMENU hmenu,UINT indexMenu,UINT idCmdFirst,UINT idCmdLast,UINT uFlags) {
   2135     return This->lpVtbl->QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags);
   2136 }
   2137 static FORCEINLINE HRESULT IContextMenu2_InvokeCommand(IContextMenu2* This,CMINVOKECOMMANDINFO *pici) {
   2138     return This->lpVtbl->InvokeCommand(This,pici);
   2139 }
   2140 static FORCEINLINE HRESULT IContextMenu2_GetCommandString(IContextMenu2* This,UINT_PTR idCmd,UINT uType,UINT *pReserved,CHAR *pszName,UINT cchMax) {
   2141     return This->lpVtbl->GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax);
   2142 }
   2143 /*** IContextMenu2 methods ***/
   2144 static FORCEINLINE HRESULT IContextMenu2_HandleMenuMsg(IContextMenu2* This,UINT uMsg,WPARAM wParam,LPARAM lParam) {
   2145     return This->lpVtbl->HandleMenuMsg(This,uMsg,wParam,lParam);
   2146 }
   2147 #endif
   2148 #endif
   2149 
   2150 #endif
   2151 
   2152 HRESULT STDMETHODCALLTYPE IContextMenu2_HandleMenuMsg_Proxy(
   2153     IContextMenu2* This,
   2154     UINT uMsg,
   2155     WPARAM wParam,
   2156     LPARAM lParam);
   2157 void __RPC_STUB IContextMenu2_HandleMenuMsg_Stub(
   2158     IRpcStubBuffer* This,
   2159     IRpcChannelBuffer* pRpcChannelBuffer,
   2160     PRPC_MESSAGE pRpcMessage,
   2161     DWORD* pdwStubPhase);
   2162 
   2163 #endif  /* __IContextMenu2_INTERFACE_DEFINED__ */
   2164 
   2165 typedef IContextMenu2 *LPCONTEXTMENU2;
   2166 
   2167 /*****************************************************************************
   2168  * IContextMenu3 interface
   2169  */
   2170 #ifndef __IContextMenu3_INTERFACE_DEFINED__
   2171 #define __IContextMenu3_INTERFACE_DEFINED__
   2172 
   2173 DEFINE_GUID(IID_IContextMenu3, 0xbcfce0a0, 0xec17, 0x11d0, 0x8d,0x10, 0x00,0xa0,0xc9,0x0f,0x27,0x19);
   2174 #if defined(__cplusplus) && !defined(CINTERFACE)
   2175 MIDL_INTERFACE("bcfce0a0-ec17-11d0-8d10-00a0c90f2719")
   2176 IContextMenu3 : public IContextMenu2
   2177 {
   2178     virtual HRESULT STDMETHODCALLTYPE HandleMenuMsg2(
   2179         UINT uMsg,
   2180         WPARAM wParam,
   2181         LPARAM lParam,
   2182         LRESULT *plResult) = 0;
   2183 
   2184 };
   2185 #ifdef __CRT_UUID_DECL
   2186 __CRT_UUID_DECL(IContextMenu3, 0xbcfce0a0, 0xec17, 0x11d0, 0x8d,0x10, 0x00,0xa0,0xc9,0x0f,0x27,0x19)
   2187 #endif
   2188 #else
   2189 typedef struct IContextMenu3Vtbl {
   2190     BEGIN_INTERFACE
   2191 
   2192     /*** IUnknown methods ***/
   2193     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2194         IContextMenu3* This,
   2195         REFIID riid,
   2196         void **ppvObject);
   2197 
   2198     ULONG (STDMETHODCALLTYPE *AddRef)(
   2199         IContextMenu3* This);
   2200 
   2201     ULONG (STDMETHODCALLTYPE *Release)(
   2202         IContextMenu3* This);
   2203 
   2204     /*** IContextMenu methods ***/
   2205     HRESULT (STDMETHODCALLTYPE *QueryContextMenu)(
   2206         IContextMenu3* This,
   2207         HMENU hmenu,
   2208         UINT indexMenu,
   2209         UINT idCmdFirst,
   2210         UINT idCmdLast,
   2211         UINT uFlags);
   2212 
   2213     HRESULT (STDMETHODCALLTYPE *InvokeCommand)(
   2214         IContextMenu3* This,
   2215         CMINVOKECOMMANDINFO *pici);
   2216 
   2217     HRESULT (STDMETHODCALLTYPE *GetCommandString)(
   2218         IContextMenu3* This,
   2219         UINT_PTR idCmd,
   2220         UINT uType,
   2221         UINT *pReserved,
   2222         CHAR *pszName,
   2223         UINT cchMax);
   2224 
   2225     /*** IContextMenu2 methods ***/
   2226     HRESULT (STDMETHODCALLTYPE *HandleMenuMsg)(
   2227         IContextMenu3* This,
   2228         UINT uMsg,
   2229         WPARAM wParam,
   2230         LPARAM lParam);
   2231 
   2232     /*** IContextMenu3 methods ***/
   2233     HRESULT (STDMETHODCALLTYPE *HandleMenuMsg2)(
   2234         IContextMenu3* This,
   2235         UINT uMsg,
   2236         WPARAM wParam,
   2237         LPARAM lParam,
   2238         LRESULT *plResult);
   2239 
   2240     END_INTERFACE
   2241 } IContextMenu3Vtbl;
   2242 interface IContextMenu3 {
   2243     CONST_VTBL IContextMenu3Vtbl* lpVtbl;
   2244 };
   2245 
   2246 #ifdef COBJMACROS
   2247 #ifndef WIDL_C_INLINE_WRAPPERS
   2248 /*** IUnknown methods ***/
   2249 #define IContextMenu3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2250 #define IContextMenu3_AddRef(This) (This)->lpVtbl->AddRef(This)
   2251 #define IContextMenu3_Release(This) (This)->lpVtbl->Release(This)
   2252 /*** IContextMenu methods ***/
   2253 #define IContextMenu3_QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags) (This)->lpVtbl->QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags)
   2254 #define IContextMenu3_InvokeCommand(This,pici) (This)->lpVtbl->InvokeCommand(This,pici)
   2255 #define IContextMenu3_GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax) (This)->lpVtbl->GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax)
   2256 /*** IContextMenu2 methods ***/
   2257 #define IContextMenu3_HandleMenuMsg(This,uMsg,wParam,lParam) (This)->lpVtbl->HandleMenuMsg(This,uMsg,wParam,lParam)
   2258 /*** IContextMenu3 methods ***/
   2259 #define IContextMenu3_HandleMenuMsg2(This,uMsg,wParam,lParam,plResult) (This)->lpVtbl->HandleMenuMsg2(This,uMsg,wParam,lParam,plResult)
   2260 #else
   2261 /*** IUnknown methods ***/
   2262 static FORCEINLINE HRESULT IContextMenu3_QueryInterface(IContextMenu3* This,REFIID riid,void **ppvObject) {
   2263     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2264 }
   2265 static FORCEINLINE ULONG IContextMenu3_AddRef(IContextMenu3* This) {
   2266     return This->lpVtbl->AddRef(This);
   2267 }
   2268 static FORCEINLINE ULONG IContextMenu3_Release(IContextMenu3* This) {
   2269     return This->lpVtbl->Release(This);
   2270 }
   2271 /*** IContextMenu methods ***/
   2272 static FORCEINLINE HRESULT IContextMenu3_QueryContextMenu(IContextMenu3* This,HMENU hmenu,UINT indexMenu,UINT idCmdFirst,UINT idCmdLast,UINT uFlags) {
   2273     return This->lpVtbl->QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags);
   2274 }
   2275 static FORCEINLINE HRESULT IContextMenu3_InvokeCommand(IContextMenu3* This,CMINVOKECOMMANDINFO *pici) {
   2276     return This->lpVtbl->InvokeCommand(This,pici);
   2277 }
   2278 static FORCEINLINE HRESULT IContextMenu3_GetCommandString(IContextMenu3* This,UINT_PTR idCmd,UINT uType,UINT *pReserved,CHAR *pszName,UINT cchMax) {
   2279     return This->lpVtbl->GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax);
   2280 }
   2281 /*** IContextMenu2 methods ***/
   2282 static FORCEINLINE HRESULT IContextMenu3_HandleMenuMsg(IContextMenu3* This,UINT uMsg,WPARAM wParam,LPARAM lParam) {
   2283     return This->lpVtbl->HandleMenuMsg(This,uMsg,wParam,lParam);
   2284 }
   2285 /*** IContextMenu3 methods ***/
   2286 static FORCEINLINE HRESULT IContextMenu3_HandleMenuMsg2(IContextMenu3* This,UINT uMsg,WPARAM wParam,LPARAM lParam,LRESULT *plResult) {
   2287     return This->lpVtbl->HandleMenuMsg2(This,uMsg,wParam,lParam,plResult);
   2288 }
   2289 #endif
   2290 #endif
   2291 
   2292 #endif
   2293 
   2294 HRESULT STDMETHODCALLTYPE IContextMenu3_HandleMenuMsg2_Proxy(
   2295     IContextMenu3* This,
   2296     UINT uMsg,
   2297     WPARAM wParam,
   2298     LPARAM lParam,
   2299     LRESULT *plResult);
   2300 void __RPC_STUB IContextMenu3_HandleMenuMsg2_Stub(
   2301     IRpcStubBuffer* This,
   2302     IRpcChannelBuffer* pRpcChannelBuffer,
   2303     PRPC_MESSAGE pRpcMessage,
   2304     DWORD* pdwStubPhase);
   2305 
   2306 #endif  /* __IContextMenu3_INTERFACE_DEFINED__ */
   2307 
   2308 typedef IContextMenu3 *LPCONTEXTMENU3;
   2309 
   2310 /*****************************************************************************
   2311  * IExecuteCommand interface
   2312  */
   2313 #ifndef __IExecuteCommand_INTERFACE_DEFINED__
   2314 #define __IExecuteCommand_INTERFACE_DEFINED__
   2315 
   2316 DEFINE_GUID(IID_IExecuteCommand, 0x7f9185b0, 0xcb92, 0x43c5, 0x80,0xa9, 0x92,0x27,0x7a,0x4f,0x7b,0x54);
   2317 #if defined(__cplusplus) && !defined(CINTERFACE)
   2318 MIDL_INTERFACE("7f9185b0-cb92-43c5-80a9-92277a4f7b54")
   2319 IExecuteCommand : public IUnknown
   2320 {
   2321     virtual HRESULT STDMETHODCALLTYPE SetKeyState(
   2322         DWORD grfKeyState) = 0;
   2323 
   2324     virtual HRESULT STDMETHODCALLTYPE SetParameters(
   2325         LPCWSTR pszParameters) = 0;
   2326 
   2327     virtual HRESULT STDMETHODCALLTYPE SetPosition(
   2328         POINT pt) = 0;
   2329 
   2330     virtual HRESULT STDMETHODCALLTYPE SetShowWindow(
   2331         int nShow) = 0;
   2332 
   2333     virtual HRESULT STDMETHODCALLTYPE SetNoShowUI(
   2334         WINBOOL fNoShowUI) = 0;
   2335 
   2336     virtual HRESULT STDMETHODCALLTYPE SetDirectory(
   2337         LPCWSTR pszDirectory) = 0;
   2338 
   2339     virtual HRESULT STDMETHODCALLTYPE Execute(
   2340         ) = 0;
   2341 
   2342 };
   2343 #ifdef __CRT_UUID_DECL
   2344 __CRT_UUID_DECL(IExecuteCommand, 0x7f9185b0, 0xcb92, 0x43c5, 0x80,0xa9, 0x92,0x27,0x7a,0x4f,0x7b,0x54)
   2345 #endif
   2346 #else
   2347 typedef struct IExecuteCommandVtbl {
   2348     BEGIN_INTERFACE
   2349 
   2350     /*** IUnknown methods ***/
   2351     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2352         IExecuteCommand* This,
   2353         REFIID riid,
   2354         void **ppvObject);
   2355 
   2356     ULONG (STDMETHODCALLTYPE *AddRef)(
   2357         IExecuteCommand* This);
   2358 
   2359     ULONG (STDMETHODCALLTYPE *Release)(
   2360         IExecuteCommand* This);
   2361 
   2362     /*** IExecuteCommand methods ***/
   2363     HRESULT (STDMETHODCALLTYPE *SetKeyState)(
   2364         IExecuteCommand* This,
   2365         DWORD grfKeyState);
   2366 
   2367     HRESULT (STDMETHODCALLTYPE *SetParameters)(
   2368         IExecuteCommand* This,
   2369         LPCWSTR pszParameters);
   2370 
   2371     HRESULT (STDMETHODCALLTYPE *SetPosition)(
   2372         IExecuteCommand* This,
   2373         POINT pt);
   2374 
   2375     HRESULT (STDMETHODCALLTYPE *SetShowWindow)(
   2376         IExecuteCommand* This,
   2377         int nShow);
   2378 
   2379     HRESULT (STDMETHODCALLTYPE *SetNoShowUI)(
   2380         IExecuteCommand* This,
   2381         WINBOOL fNoShowUI);
   2382 
   2383     HRESULT (STDMETHODCALLTYPE *SetDirectory)(
   2384         IExecuteCommand* This,
   2385         LPCWSTR pszDirectory);
   2386 
   2387     HRESULT (STDMETHODCALLTYPE *Execute)(
   2388         IExecuteCommand* This);
   2389 
   2390     END_INTERFACE
   2391 } IExecuteCommandVtbl;
   2392 interface IExecuteCommand {
   2393     CONST_VTBL IExecuteCommandVtbl* lpVtbl;
   2394 };
   2395 
   2396 #ifdef COBJMACROS
   2397 #ifndef WIDL_C_INLINE_WRAPPERS
   2398 /*** IUnknown methods ***/
   2399 #define IExecuteCommand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2400 #define IExecuteCommand_AddRef(This) (This)->lpVtbl->AddRef(This)
   2401 #define IExecuteCommand_Release(This) (This)->lpVtbl->Release(This)
   2402 /*** IExecuteCommand methods ***/
   2403 #define IExecuteCommand_SetKeyState(This,grfKeyState) (This)->lpVtbl->SetKeyState(This,grfKeyState)
   2404 #define IExecuteCommand_SetParameters(This,pszParameters) (This)->lpVtbl->SetParameters(This,pszParameters)
   2405 #define IExecuteCommand_SetPosition(This,pt) (This)->lpVtbl->SetPosition(This,pt)
   2406 #define IExecuteCommand_SetShowWindow(This,nShow) (This)->lpVtbl->SetShowWindow(This,nShow)
   2407 #define IExecuteCommand_SetNoShowUI(This,fNoShowUI) (This)->lpVtbl->SetNoShowUI(This,fNoShowUI)
   2408 #define IExecuteCommand_SetDirectory(This,pszDirectory) (This)->lpVtbl->SetDirectory(This,pszDirectory)
   2409 #define IExecuteCommand_Execute(This) (This)->lpVtbl->Execute(This)
   2410 #else
   2411 /*** IUnknown methods ***/
   2412 static FORCEINLINE HRESULT IExecuteCommand_QueryInterface(IExecuteCommand* This,REFIID riid,void **ppvObject) {
   2413     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2414 }
   2415 static FORCEINLINE ULONG IExecuteCommand_AddRef(IExecuteCommand* This) {
   2416     return This->lpVtbl->AddRef(This);
   2417 }
   2418 static FORCEINLINE ULONG IExecuteCommand_Release(IExecuteCommand* This) {
   2419     return This->lpVtbl->Release(This);
   2420 }
   2421 /*** IExecuteCommand methods ***/
   2422 static FORCEINLINE HRESULT IExecuteCommand_SetKeyState(IExecuteCommand* This,DWORD grfKeyState) {
   2423     return This->lpVtbl->SetKeyState(This,grfKeyState);
   2424 }
   2425 static FORCEINLINE HRESULT IExecuteCommand_SetParameters(IExecuteCommand* This,LPCWSTR pszParameters) {
   2426     return This->lpVtbl->SetParameters(This,pszParameters);
   2427 }
   2428 static FORCEINLINE HRESULT IExecuteCommand_SetPosition(IExecuteCommand* This,POINT pt) {
   2429     return This->lpVtbl->SetPosition(This,pt);
   2430 }
   2431 static FORCEINLINE HRESULT IExecuteCommand_SetShowWindow(IExecuteCommand* This,int nShow) {
   2432     return This->lpVtbl->SetShowWindow(This,nShow);
   2433 }
   2434 static FORCEINLINE HRESULT IExecuteCommand_SetNoShowUI(IExecuteCommand* This,WINBOOL fNoShowUI) {
   2435     return This->lpVtbl->SetNoShowUI(This,fNoShowUI);
   2436 }
   2437 static FORCEINLINE HRESULT IExecuteCommand_SetDirectory(IExecuteCommand* This,LPCWSTR pszDirectory) {
   2438     return This->lpVtbl->SetDirectory(This,pszDirectory);
   2439 }
   2440 static FORCEINLINE HRESULT IExecuteCommand_Execute(IExecuteCommand* This) {
   2441     return This->lpVtbl->Execute(This);
   2442 }
   2443 #endif
   2444 #endif
   2445 
   2446 #endif
   2447 
   2448 HRESULT STDMETHODCALLTYPE IExecuteCommand_SetKeyState_Proxy(
   2449     IExecuteCommand* This,
   2450     DWORD grfKeyState);
   2451 void __RPC_STUB IExecuteCommand_SetKeyState_Stub(
   2452     IRpcStubBuffer* This,
   2453     IRpcChannelBuffer* pRpcChannelBuffer,
   2454     PRPC_MESSAGE pRpcMessage,
   2455     DWORD* pdwStubPhase);
   2456 HRESULT STDMETHODCALLTYPE IExecuteCommand_SetParameters_Proxy(
   2457     IExecuteCommand* This,
   2458     LPCWSTR pszParameters);
   2459 void __RPC_STUB IExecuteCommand_SetParameters_Stub(
   2460     IRpcStubBuffer* This,
   2461     IRpcChannelBuffer* pRpcChannelBuffer,
   2462     PRPC_MESSAGE pRpcMessage,
   2463     DWORD* pdwStubPhase);
   2464 HRESULT STDMETHODCALLTYPE IExecuteCommand_SetPosition_Proxy(
   2465     IExecuteCommand* This,
   2466     POINT pt);
   2467 void __RPC_STUB IExecuteCommand_SetPosition_Stub(
   2468     IRpcStubBuffer* This,
   2469     IRpcChannelBuffer* pRpcChannelBuffer,
   2470     PRPC_MESSAGE pRpcMessage,
   2471     DWORD* pdwStubPhase);
   2472 HRESULT STDMETHODCALLTYPE IExecuteCommand_SetShowWindow_Proxy(
   2473     IExecuteCommand* This,
   2474     int nShow);
   2475 void __RPC_STUB IExecuteCommand_SetShowWindow_Stub(
   2476     IRpcStubBuffer* This,
   2477     IRpcChannelBuffer* pRpcChannelBuffer,
   2478     PRPC_MESSAGE pRpcMessage,
   2479     DWORD* pdwStubPhase);
   2480 HRESULT STDMETHODCALLTYPE IExecuteCommand_SetNoShowUI_Proxy(
   2481     IExecuteCommand* This,
   2482     WINBOOL fNoShowUI);
   2483 void __RPC_STUB IExecuteCommand_SetNoShowUI_Stub(
   2484     IRpcStubBuffer* This,
   2485     IRpcChannelBuffer* pRpcChannelBuffer,
   2486     PRPC_MESSAGE pRpcMessage,
   2487     DWORD* pdwStubPhase);
   2488 HRESULT STDMETHODCALLTYPE IExecuteCommand_SetDirectory_Proxy(
   2489     IExecuteCommand* This,
   2490     LPCWSTR pszDirectory);
   2491 void __RPC_STUB IExecuteCommand_SetDirectory_Stub(
   2492     IRpcStubBuffer* This,
   2493     IRpcChannelBuffer* pRpcChannelBuffer,
   2494     PRPC_MESSAGE pRpcMessage,
   2495     DWORD* pdwStubPhase);
   2496 HRESULT STDMETHODCALLTYPE IExecuteCommand_Execute_Proxy(
   2497     IExecuteCommand* This);
   2498 void __RPC_STUB IExecuteCommand_Execute_Stub(
   2499     IRpcStubBuffer* This,
   2500     IRpcChannelBuffer* pRpcChannelBuffer,
   2501     PRPC_MESSAGE pRpcMessage,
   2502     DWORD* pdwStubPhase);
   2503 
   2504 #endif  /* __IExecuteCommand_INTERFACE_DEFINED__ */
   2505 
   2506 
   2507 /*****************************************************************************
   2508  * IPersistFolder interface
   2509  */
   2510 #ifndef __IPersistFolder_INTERFACE_DEFINED__
   2511 #define __IPersistFolder_INTERFACE_DEFINED__
   2512 
   2513 DEFINE_GUID(IID_IPersistFolder, 0x000214ea, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   2514 #if defined(__cplusplus) && !defined(CINTERFACE)
   2515 MIDL_INTERFACE("000214ea-0000-0000-c000-000000000046")
   2516 IPersistFolder : public IPersist
   2517 {
   2518     virtual HRESULT STDMETHODCALLTYPE Initialize(
   2519         PCIDLIST_ABSOLUTE pidl) = 0;
   2520 
   2521 };
   2522 #ifdef __CRT_UUID_DECL
   2523 __CRT_UUID_DECL(IPersistFolder, 0x000214ea, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   2524 #endif
   2525 #else
   2526 typedef struct IPersistFolderVtbl {
   2527     BEGIN_INTERFACE
   2528 
   2529     /*** IUnknown methods ***/
   2530     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2531         IPersistFolder* This,
   2532         REFIID riid,
   2533         void **ppvObject);
   2534 
   2535     ULONG (STDMETHODCALLTYPE *AddRef)(
   2536         IPersistFolder* This);
   2537 
   2538     ULONG (STDMETHODCALLTYPE *Release)(
   2539         IPersistFolder* This);
   2540 
   2541     /*** IPersist methods ***/
   2542     HRESULT (STDMETHODCALLTYPE *GetClassID)(
   2543         IPersistFolder* This,
   2544         CLSID *pClassID);
   2545 
   2546     /*** IPersistFolder methods ***/
   2547     HRESULT (STDMETHODCALLTYPE *Initialize)(
   2548         IPersistFolder* This,
   2549         PCIDLIST_ABSOLUTE pidl);
   2550 
   2551     END_INTERFACE
   2552 } IPersistFolderVtbl;
   2553 interface IPersistFolder {
   2554     CONST_VTBL IPersistFolderVtbl* lpVtbl;
   2555 };
   2556 
   2557 #ifdef COBJMACROS
   2558 #ifndef WIDL_C_INLINE_WRAPPERS
   2559 /*** IUnknown methods ***/
   2560 #define IPersistFolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2561 #define IPersistFolder_AddRef(This) (This)->lpVtbl->AddRef(This)
   2562 #define IPersistFolder_Release(This) (This)->lpVtbl->Release(This)
   2563 /*** IPersist methods ***/
   2564 #define IPersistFolder_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
   2565 /*** IPersistFolder methods ***/
   2566 #define IPersistFolder_Initialize(This,pidl) (This)->lpVtbl->Initialize(This,pidl)
   2567 #else
   2568 /*** IUnknown methods ***/
   2569 static FORCEINLINE HRESULT IPersistFolder_QueryInterface(IPersistFolder* This,REFIID riid,void **ppvObject) {
   2570     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2571 }
   2572 static FORCEINLINE ULONG IPersistFolder_AddRef(IPersistFolder* This) {
   2573     return This->lpVtbl->AddRef(This);
   2574 }
   2575 static FORCEINLINE ULONG IPersistFolder_Release(IPersistFolder* This) {
   2576     return This->lpVtbl->Release(This);
   2577 }
   2578 /*** IPersist methods ***/
   2579 static FORCEINLINE HRESULT IPersistFolder_GetClassID(IPersistFolder* This,CLSID *pClassID) {
   2580     return This->lpVtbl->GetClassID(This,pClassID);
   2581 }
   2582 /*** IPersistFolder methods ***/
   2583 static FORCEINLINE HRESULT IPersistFolder_Initialize(IPersistFolder* This,PCIDLIST_ABSOLUTE pidl) {
   2584     return This->lpVtbl->Initialize(This,pidl);
   2585 }
   2586 #endif
   2587 #endif
   2588 
   2589 #endif
   2590 
   2591 HRESULT STDMETHODCALLTYPE IPersistFolder_Initialize_Proxy(
   2592     IPersistFolder* This,
   2593     PCIDLIST_ABSOLUTE pidl);
   2594 void __RPC_STUB IPersistFolder_Initialize_Stub(
   2595     IRpcStubBuffer* This,
   2596     IRpcChannelBuffer* pRpcChannelBuffer,
   2597     PRPC_MESSAGE pRpcMessage,
   2598     DWORD* pdwStubPhase);
   2599 
   2600 #endif  /* __IPersistFolder_INTERFACE_DEFINED__ */
   2601 
   2602 typedef IPersistFolder *LPPERSISTFOLDER;
   2603 
   2604 #define IRTIR_TASK_NOT_RUNNING   0
   2605 #define IRTIR_TASK_RUNNING       1
   2606 #define IRTIR_TASK_SUSPENDED     2
   2607 #define IRTIR_TASK_PENDING       3
   2608 #define IRTIR_TASK_FINISHED      4
   2609 
   2610 /*****************************************************************************
   2611  * IRunnableTask interface
   2612  */
   2613 #ifndef __IRunnableTask_INTERFACE_DEFINED__
   2614 #define __IRunnableTask_INTERFACE_DEFINED__
   2615 
   2616 DEFINE_GUID(IID_IRunnableTask, 0x85788d00, 0x6807, 0x11d0, 0xb8,0x10, 0x00,0xc0,0x4f,0xd7,0x06,0xec);
   2617 #if defined(__cplusplus) && !defined(CINTERFACE)
   2618 MIDL_INTERFACE("85788d00-6807-11d0-b810-00c04fd706ec")
   2619 IRunnableTask : public IUnknown
   2620 {
   2621     virtual HRESULT STDMETHODCALLTYPE Run(
   2622         ) = 0;
   2623 
   2624     virtual HRESULT STDMETHODCALLTYPE Kill(
   2625         WINBOOL bWait) = 0;
   2626 
   2627     virtual HRESULT STDMETHODCALLTYPE Suspend(
   2628         ) = 0;
   2629 
   2630     virtual HRESULT STDMETHODCALLTYPE Resume(
   2631         ) = 0;
   2632 
   2633     virtual ULONG STDMETHODCALLTYPE IsRunning(
   2634         ) = 0;
   2635 
   2636 };
   2637 #ifdef __CRT_UUID_DECL
   2638 __CRT_UUID_DECL(IRunnableTask, 0x85788d00, 0x6807, 0x11d0, 0xb8,0x10, 0x00,0xc0,0x4f,0xd7,0x06,0xec)
   2639 #endif
   2640 #else
   2641 typedef struct IRunnableTaskVtbl {
   2642     BEGIN_INTERFACE
   2643 
   2644     /*** IUnknown methods ***/
   2645     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2646         IRunnableTask* This,
   2647         REFIID riid,
   2648         void **ppvObject);
   2649 
   2650     ULONG (STDMETHODCALLTYPE *AddRef)(
   2651         IRunnableTask* This);
   2652 
   2653     ULONG (STDMETHODCALLTYPE *Release)(
   2654         IRunnableTask* This);
   2655 
   2656     /*** IRunnableTask methods ***/
   2657     HRESULT (STDMETHODCALLTYPE *Run)(
   2658         IRunnableTask* This);
   2659 
   2660     HRESULT (STDMETHODCALLTYPE *Kill)(
   2661         IRunnableTask* This,
   2662         WINBOOL bWait);
   2663 
   2664     HRESULT (STDMETHODCALLTYPE *Suspend)(
   2665         IRunnableTask* This);
   2666 
   2667     HRESULT (STDMETHODCALLTYPE *Resume)(
   2668         IRunnableTask* This);
   2669 
   2670     ULONG (STDMETHODCALLTYPE *IsRunning)(
   2671         IRunnableTask* This);
   2672 
   2673     END_INTERFACE
   2674 } IRunnableTaskVtbl;
   2675 interface IRunnableTask {
   2676     CONST_VTBL IRunnableTaskVtbl* lpVtbl;
   2677 };
   2678 
   2679 #ifdef COBJMACROS
   2680 #ifndef WIDL_C_INLINE_WRAPPERS
   2681 /*** IUnknown methods ***/
   2682 #define IRunnableTask_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2683 #define IRunnableTask_AddRef(This) (This)->lpVtbl->AddRef(This)
   2684 #define IRunnableTask_Release(This) (This)->lpVtbl->Release(This)
   2685 /*** IRunnableTask methods ***/
   2686 #define IRunnableTask_Run(This) (This)->lpVtbl->Run(This)
   2687 #define IRunnableTask_Kill(This,bWait) (This)->lpVtbl->Kill(This,bWait)
   2688 #define IRunnableTask_Suspend(This) (This)->lpVtbl->Suspend(This)
   2689 #define IRunnableTask_Resume(This) (This)->lpVtbl->Resume(This)
   2690 #define IRunnableTask_IsRunning(This) (This)->lpVtbl->IsRunning(This)
   2691 #else
   2692 /*** IUnknown methods ***/
   2693 static FORCEINLINE HRESULT IRunnableTask_QueryInterface(IRunnableTask* This,REFIID riid,void **ppvObject) {
   2694     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2695 }
   2696 static FORCEINLINE ULONG IRunnableTask_AddRef(IRunnableTask* This) {
   2697     return This->lpVtbl->AddRef(This);
   2698 }
   2699 static FORCEINLINE ULONG IRunnableTask_Release(IRunnableTask* This) {
   2700     return This->lpVtbl->Release(This);
   2701 }
   2702 /*** IRunnableTask methods ***/
   2703 static FORCEINLINE HRESULT IRunnableTask_Run(IRunnableTask* This) {
   2704     return This->lpVtbl->Run(This);
   2705 }
   2706 static FORCEINLINE HRESULT IRunnableTask_Kill(IRunnableTask* This,WINBOOL bWait) {
   2707     return This->lpVtbl->Kill(This,bWait);
   2708 }
   2709 static FORCEINLINE HRESULT IRunnableTask_Suspend(IRunnableTask* This) {
   2710     return This->lpVtbl->Suspend(This);
   2711 }
   2712 static FORCEINLINE HRESULT IRunnableTask_Resume(IRunnableTask* This) {
   2713     return This->lpVtbl->Resume(This);
   2714 }
   2715 static FORCEINLINE ULONG IRunnableTask_IsRunning(IRunnableTask* This) {
   2716     return This->lpVtbl->IsRunning(This);
   2717 }
   2718 #endif
   2719 #endif
   2720 
   2721 #endif
   2722 
   2723 HRESULT STDMETHODCALLTYPE IRunnableTask_Run_Proxy(
   2724     IRunnableTask* This);
   2725 void __RPC_STUB IRunnableTask_Run_Stub(
   2726     IRpcStubBuffer* This,
   2727     IRpcChannelBuffer* pRpcChannelBuffer,
   2728     PRPC_MESSAGE pRpcMessage,
   2729     DWORD* pdwStubPhase);
   2730 HRESULT STDMETHODCALLTYPE IRunnableTask_Kill_Proxy(
   2731     IRunnableTask* This,
   2732     WINBOOL bWait);
   2733 void __RPC_STUB IRunnableTask_Kill_Stub(
   2734     IRpcStubBuffer* This,
   2735     IRpcChannelBuffer* pRpcChannelBuffer,
   2736     PRPC_MESSAGE pRpcMessage,
   2737     DWORD* pdwStubPhase);
   2738 HRESULT STDMETHODCALLTYPE IRunnableTask_Suspend_Proxy(
   2739     IRunnableTask* This);
   2740 void __RPC_STUB IRunnableTask_Suspend_Stub(
   2741     IRpcStubBuffer* This,
   2742     IRpcChannelBuffer* pRpcChannelBuffer,
   2743     PRPC_MESSAGE pRpcMessage,
   2744     DWORD* pdwStubPhase);
   2745 HRESULT STDMETHODCALLTYPE IRunnableTask_Resume_Proxy(
   2746     IRunnableTask* This);
   2747 void __RPC_STUB IRunnableTask_Resume_Stub(
   2748     IRpcStubBuffer* This,
   2749     IRpcChannelBuffer* pRpcChannelBuffer,
   2750     PRPC_MESSAGE pRpcMessage,
   2751     DWORD* pdwStubPhase);
   2752 ULONG STDMETHODCALLTYPE IRunnableTask_IsRunning_Proxy(
   2753     IRunnableTask* This);
   2754 void __RPC_STUB IRunnableTask_IsRunning_Stub(
   2755     IRpcStubBuffer* This,
   2756     IRpcChannelBuffer* pRpcChannelBuffer,
   2757     PRPC_MESSAGE pRpcMessage,
   2758     DWORD* pdwStubPhase);
   2759 
   2760 #endif  /* __IRunnableTask_INTERFACE_DEFINED__ */
   2761 
   2762 
   2763 #define TOID_NULL GUID_NULL
   2764 #define ITSAT_DEFAULT_LPARAM ((DWORD_PTR)-1)
   2765 
   2766 #define ITSAT_DEFAULT_PRIORITY 0x10000000
   2767 #define ITSAT_MAX_PRIORITY 0x7fffffff
   2768 #define ITSAT_MIN_PRIORITY 0x00000000
   2769 
   2770 #define ITSSFLAG_COMPLETE_ON_DESTROY 0x0
   2771 #define ITSSFLAG_KILL_ON_DESTROY 0x1
   2772 
   2773 #define ITSSFLAG_FLAGS_MASK 0x3
   2774 
   2775 #define ITSS_THREAD_DESTROY_DEFAULT_TIMEOUT (10 * 1000)
   2776 #define ITSS_THREAD_TERMINATE_TIMEOUT (INFINITE)
   2777 #define ITSS_THREAD_TIMEOUT_NO_CHANGE (INFINITE - 1)
   2778 
   2779 /*****************************************************************************
   2780  * IShellTaskScheduler interface
   2781  */
   2782 #ifndef __IShellTaskScheduler_INTERFACE_DEFINED__
   2783 #define __IShellTaskScheduler_INTERFACE_DEFINED__
   2784 
   2785 DEFINE_GUID(IID_IShellTaskScheduler, 0x6ccb7be0, 0x6807, 0x11d0, 0xb8,0x10, 0x00,0xc0,0x4f,0xd7,0x06,0xec);
   2786 #if defined(__cplusplus) && !defined(CINTERFACE)
   2787 MIDL_INTERFACE("6ccb7be0-6807-11d0-b810-00c04fd706ec")
   2788 IShellTaskScheduler : public IUnknown
   2789 {
   2790     virtual HRESULT STDMETHODCALLTYPE AddTask(
   2791         IRunnableTask *prt,
   2792         REFTASKOWNERID rtoid,
   2793         DWORD_PTR lParam,
   2794         DWORD dwPriority) = 0;
   2795 
   2796     virtual HRESULT STDMETHODCALLTYPE RemoveTasks(
   2797         REFTASKOWNERID rtoid,
   2798         DWORD_PTR lParam,
   2799         WINBOOL bWaitIfRunning) = 0;
   2800 
   2801     virtual UINT STDMETHODCALLTYPE CountTasks(
   2802         REFTASKOWNERID rtoid) = 0;
   2803 
   2804     virtual HRESULT STDMETHODCALLTYPE Status(
   2805         DWORD dwReleaseStatus,
   2806         DWORD dwThreadTimeout) = 0;
   2807 
   2808 };
   2809 #ifdef __CRT_UUID_DECL
   2810 __CRT_UUID_DECL(IShellTaskScheduler, 0x6ccb7be0, 0x6807, 0x11d0, 0xb8,0x10, 0x00,0xc0,0x4f,0xd7,0x06,0xec)
   2811 #endif
   2812 #else
   2813 typedef struct IShellTaskSchedulerVtbl {
   2814     BEGIN_INTERFACE
   2815 
   2816     /*** IUnknown methods ***/
   2817     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2818         IShellTaskScheduler* This,
   2819         REFIID riid,
   2820         void **ppvObject);
   2821 
   2822     ULONG (STDMETHODCALLTYPE *AddRef)(
   2823         IShellTaskScheduler* This);
   2824 
   2825     ULONG (STDMETHODCALLTYPE *Release)(
   2826         IShellTaskScheduler* This);
   2827 
   2828     /*** IShellTaskScheduler methods ***/
   2829     HRESULT (STDMETHODCALLTYPE *AddTask)(
   2830         IShellTaskScheduler* This,
   2831         IRunnableTask *prt,
   2832         REFTASKOWNERID rtoid,
   2833         DWORD_PTR lParam,
   2834         DWORD dwPriority);
   2835 
   2836     HRESULT (STDMETHODCALLTYPE *RemoveTasks)(
   2837         IShellTaskScheduler* This,
   2838         REFTASKOWNERID rtoid,
   2839         DWORD_PTR lParam,
   2840         WINBOOL bWaitIfRunning);
   2841 
   2842     UINT (STDMETHODCALLTYPE *CountTasks)(
   2843         IShellTaskScheduler* This,
   2844         REFTASKOWNERID rtoid);
   2845 
   2846     HRESULT (STDMETHODCALLTYPE *Status)(
   2847         IShellTaskScheduler* This,
   2848         DWORD dwReleaseStatus,
   2849         DWORD dwThreadTimeout);
   2850 
   2851     END_INTERFACE
   2852 } IShellTaskSchedulerVtbl;
   2853 interface IShellTaskScheduler {
   2854     CONST_VTBL IShellTaskSchedulerVtbl* lpVtbl;
   2855 };
   2856 
   2857 #ifdef COBJMACROS
   2858 #ifndef WIDL_C_INLINE_WRAPPERS
   2859 /*** IUnknown methods ***/
   2860 #define IShellTaskScheduler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2861 #define IShellTaskScheduler_AddRef(This) (This)->lpVtbl->AddRef(This)
   2862 #define IShellTaskScheduler_Release(This) (This)->lpVtbl->Release(This)
   2863 /*** IShellTaskScheduler methods ***/
   2864 #define IShellTaskScheduler_AddTask(This,prt,rtoid,lParam,dwPriority) (This)->lpVtbl->AddTask(This,prt,rtoid,lParam,dwPriority)
   2865 #define IShellTaskScheduler_RemoveTasks(This,rtoid,lParam,bWaitIfRunning) (This)->lpVtbl->RemoveTasks(This,rtoid,lParam,bWaitIfRunning)
   2866 #define IShellTaskScheduler_CountTasks(This,rtoid) (This)->lpVtbl->CountTasks(This,rtoid)
   2867 #define IShellTaskScheduler_Status(This,dwReleaseStatus,dwThreadTimeout) (This)->lpVtbl->Status(This,dwReleaseStatus,dwThreadTimeout)
   2868 #else
   2869 /*** IUnknown methods ***/
   2870 static FORCEINLINE HRESULT IShellTaskScheduler_QueryInterface(IShellTaskScheduler* This,REFIID riid,void **ppvObject) {
   2871     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2872 }
   2873 static FORCEINLINE ULONG IShellTaskScheduler_AddRef(IShellTaskScheduler* This) {
   2874     return This->lpVtbl->AddRef(This);
   2875 }
   2876 static FORCEINLINE ULONG IShellTaskScheduler_Release(IShellTaskScheduler* This) {
   2877     return This->lpVtbl->Release(This);
   2878 }
   2879 /*** IShellTaskScheduler methods ***/
   2880 static FORCEINLINE HRESULT IShellTaskScheduler_AddTask(IShellTaskScheduler* This,IRunnableTask *prt,REFTASKOWNERID rtoid,DWORD_PTR lParam,DWORD dwPriority) {
   2881     return This->lpVtbl->AddTask(This,prt,rtoid,lParam,dwPriority);
   2882 }
   2883 static FORCEINLINE HRESULT IShellTaskScheduler_RemoveTasks(IShellTaskScheduler* This,REFTASKOWNERID rtoid,DWORD_PTR lParam,WINBOOL bWaitIfRunning) {
   2884     return This->lpVtbl->RemoveTasks(This,rtoid,lParam,bWaitIfRunning);
   2885 }
   2886 static FORCEINLINE UINT IShellTaskScheduler_CountTasks(IShellTaskScheduler* This,REFTASKOWNERID rtoid) {
   2887     return This->lpVtbl->CountTasks(This,rtoid);
   2888 }
   2889 static FORCEINLINE HRESULT IShellTaskScheduler_Status(IShellTaskScheduler* This,DWORD dwReleaseStatus,DWORD dwThreadTimeout) {
   2890     return This->lpVtbl->Status(This,dwReleaseStatus,dwThreadTimeout);
   2891 }
   2892 #endif
   2893 #endif
   2894 
   2895 #endif
   2896 
   2897 HRESULT STDMETHODCALLTYPE IShellTaskScheduler_AddTask_Proxy(
   2898     IShellTaskScheduler* This,
   2899     IRunnableTask *prt,
   2900     REFTASKOWNERID rtoid,
   2901     DWORD_PTR lParam,
   2902     DWORD dwPriority);
   2903 void __RPC_STUB IShellTaskScheduler_AddTask_Stub(
   2904     IRpcStubBuffer* This,
   2905     IRpcChannelBuffer* pRpcChannelBuffer,
   2906     PRPC_MESSAGE pRpcMessage,
   2907     DWORD* pdwStubPhase);
   2908 HRESULT STDMETHODCALLTYPE IShellTaskScheduler_RemoveTasks_Proxy(
   2909     IShellTaskScheduler* This,
   2910     REFTASKOWNERID rtoid,
   2911     DWORD_PTR lParam,
   2912     WINBOOL bWaitIfRunning);
   2913 void __RPC_STUB IShellTaskScheduler_RemoveTasks_Stub(
   2914     IRpcStubBuffer* This,
   2915     IRpcChannelBuffer* pRpcChannelBuffer,
   2916     PRPC_MESSAGE pRpcMessage,
   2917     DWORD* pdwStubPhase);
   2918 UINT STDMETHODCALLTYPE IShellTaskScheduler_CountTasks_Proxy(
   2919     IShellTaskScheduler* This,
   2920     REFTASKOWNERID rtoid);
   2921 void __RPC_STUB IShellTaskScheduler_CountTasks_Stub(
   2922     IRpcStubBuffer* This,
   2923     IRpcChannelBuffer* pRpcChannelBuffer,
   2924     PRPC_MESSAGE pRpcMessage,
   2925     DWORD* pdwStubPhase);
   2926 HRESULT STDMETHODCALLTYPE IShellTaskScheduler_Status_Proxy(
   2927     IShellTaskScheduler* This,
   2928     DWORD dwReleaseStatus,
   2929     DWORD dwThreadTimeout);
   2930 void __RPC_STUB IShellTaskScheduler_Status_Stub(
   2931     IRpcStubBuffer* This,
   2932     IRpcChannelBuffer* pRpcChannelBuffer,
   2933     PRPC_MESSAGE pRpcMessage,
   2934     DWORD* pdwStubPhase);
   2935 
   2936 #endif  /* __IShellTaskScheduler_INTERFACE_DEFINED__ */
   2937 
   2938 
   2939 #define SID_ShellTaskScheduler IID_IShellTaskScheduler
   2940 
   2941 /*****************************************************************************
   2942  * IQueryCodePage interface
   2943  */
   2944 #ifndef __IQueryCodePage_INTERFACE_DEFINED__
   2945 #define __IQueryCodePage_INTERFACE_DEFINED__
   2946 
   2947 DEFINE_GUID(IID_IQueryCodePage, 0xc7b236ce, 0xee80, 0x11d0, 0x98,0x5f, 0x00,0x60,0x08,0x05,0x93,0x82);
   2948 #if defined(__cplusplus) && !defined(CINTERFACE)
   2949 MIDL_INTERFACE("c7b236ce-ee80-11d0-985f-006008059382")
   2950 IQueryCodePage : public IUnknown
   2951 {
   2952     virtual HRESULT STDMETHODCALLTYPE GetCodePage(
   2953         UINT *puiCodePage) = 0;
   2954 
   2955     virtual HRESULT STDMETHODCALLTYPE SetCodePage(
   2956         UINT uiCodePage) = 0;
   2957 
   2958 };
   2959 #ifdef __CRT_UUID_DECL
   2960 __CRT_UUID_DECL(IQueryCodePage, 0xc7b236ce, 0xee80, 0x11d0, 0x98,0x5f, 0x00,0x60,0x08,0x05,0x93,0x82)
   2961 #endif
   2962 #else
   2963 typedef struct IQueryCodePageVtbl {
   2964     BEGIN_INTERFACE
   2965 
   2966     /*** IUnknown methods ***/
   2967     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2968         IQueryCodePage* This,
   2969         REFIID riid,
   2970         void **ppvObject);
   2971 
   2972     ULONG (STDMETHODCALLTYPE *AddRef)(
   2973         IQueryCodePage* This);
   2974 
   2975     ULONG (STDMETHODCALLTYPE *Release)(
   2976         IQueryCodePage* This);
   2977 
   2978     /*** IQueryCodePage methods ***/
   2979     HRESULT (STDMETHODCALLTYPE *GetCodePage)(
   2980         IQueryCodePage* This,
   2981         UINT *puiCodePage);
   2982 
   2983     HRESULT (STDMETHODCALLTYPE *SetCodePage)(
   2984         IQueryCodePage* This,
   2985         UINT uiCodePage);
   2986 
   2987     END_INTERFACE
   2988 } IQueryCodePageVtbl;
   2989 interface IQueryCodePage {
   2990     CONST_VTBL IQueryCodePageVtbl* lpVtbl;
   2991 };
   2992 
   2993 #ifdef COBJMACROS
   2994 #ifndef WIDL_C_INLINE_WRAPPERS
   2995 /*** IUnknown methods ***/
   2996 #define IQueryCodePage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2997 #define IQueryCodePage_AddRef(This) (This)->lpVtbl->AddRef(This)
   2998 #define IQueryCodePage_Release(This) (This)->lpVtbl->Release(This)
   2999 /*** IQueryCodePage methods ***/
   3000 #define IQueryCodePage_GetCodePage(This,puiCodePage) (This)->lpVtbl->GetCodePage(This,puiCodePage)
   3001 #define IQueryCodePage_SetCodePage(This,uiCodePage) (This)->lpVtbl->SetCodePage(This,uiCodePage)
   3002 #else
   3003 /*** IUnknown methods ***/
   3004 static FORCEINLINE HRESULT IQueryCodePage_QueryInterface(IQueryCodePage* This,REFIID riid,void **ppvObject) {
   3005     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3006 }
   3007 static FORCEINLINE ULONG IQueryCodePage_AddRef(IQueryCodePage* This) {
   3008     return This->lpVtbl->AddRef(This);
   3009 }
   3010 static FORCEINLINE ULONG IQueryCodePage_Release(IQueryCodePage* This) {
   3011     return This->lpVtbl->Release(This);
   3012 }
   3013 /*** IQueryCodePage methods ***/
   3014 static FORCEINLINE HRESULT IQueryCodePage_GetCodePage(IQueryCodePage* This,UINT *puiCodePage) {
   3015     return This->lpVtbl->GetCodePage(This,puiCodePage);
   3016 }
   3017 static FORCEINLINE HRESULT IQueryCodePage_SetCodePage(IQueryCodePage* This,UINT uiCodePage) {
   3018     return This->lpVtbl->SetCodePage(This,uiCodePage);
   3019 }
   3020 #endif
   3021 #endif
   3022 
   3023 #endif
   3024 
   3025 HRESULT STDMETHODCALLTYPE IQueryCodePage_GetCodePage_Proxy(
   3026     IQueryCodePage* This,
   3027     UINT *puiCodePage);
   3028 void __RPC_STUB IQueryCodePage_GetCodePage_Stub(
   3029     IRpcStubBuffer* This,
   3030     IRpcChannelBuffer* pRpcChannelBuffer,
   3031     PRPC_MESSAGE pRpcMessage,
   3032     DWORD* pdwStubPhase);
   3033 HRESULT STDMETHODCALLTYPE IQueryCodePage_SetCodePage_Proxy(
   3034     IQueryCodePage* This,
   3035     UINT uiCodePage);
   3036 void __RPC_STUB IQueryCodePage_SetCodePage_Stub(
   3037     IRpcStubBuffer* This,
   3038     IRpcChannelBuffer* pRpcChannelBuffer,
   3039     PRPC_MESSAGE pRpcMessage,
   3040     DWORD* pdwStubPhase);
   3041 
   3042 #endif  /* __IQueryCodePage_INTERFACE_DEFINED__ */
   3043 
   3044 
   3045 /*****************************************************************************
   3046  * IPersistFolder2 interface
   3047  */
   3048 #ifndef __IPersistFolder2_INTERFACE_DEFINED__
   3049 #define __IPersistFolder2_INTERFACE_DEFINED__
   3050 
   3051 DEFINE_GUID(IID_IPersistFolder2, 0x1ac3d9f0, 0x175c, 0x11d1, 0x95,0xbe, 0x00,0x60,0x97,0x97,0xea,0x4f);
   3052 #if defined(__cplusplus) && !defined(CINTERFACE)
   3053 MIDL_INTERFACE("1ac3d9f0-175c-11d1-95be-00609797ea4f")
   3054 IPersistFolder2 : public IPersistFolder
   3055 {
   3056     virtual HRESULT STDMETHODCALLTYPE GetCurFolder(
   3057         PIDLIST_ABSOLUTE *ppidl) = 0;
   3058 
   3059 };
   3060 #ifdef __CRT_UUID_DECL
   3061 __CRT_UUID_DECL(IPersistFolder2, 0x1ac3d9f0, 0x175c, 0x11d1, 0x95,0xbe, 0x00,0x60,0x97,0x97,0xea,0x4f)
   3062 #endif
   3063 #else
   3064 typedef struct IPersistFolder2Vtbl {
   3065     BEGIN_INTERFACE
   3066 
   3067     /*** IUnknown methods ***/
   3068     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3069         IPersistFolder2* This,
   3070         REFIID riid,
   3071         void **ppvObject);
   3072 
   3073     ULONG (STDMETHODCALLTYPE *AddRef)(
   3074         IPersistFolder2* This);
   3075 
   3076     ULONG (STDMETHODCALLTYPE *Release)(
   3077         IPersistFolder2* This);
   3078 
   3079     /*** IPersist methods ***/
   3080     HRESULT (STDMETHODCALLTYPE *GetClassID)(
   3081         IPersistFolder2* This,
   3082         CLSID *pClassID);
   3083 
   3084     /*** IPersistFolder methods ***/
   3085     HRESULT (STDMETHODCALLTYPE *Initialize)(
   3086         IPersistFolder2* This,
   3087         PCIDLIST_ABSOLUTE pidl);
   3088 
   3089     /*** IPersistFolder2 methods ***/
   3090     HRESULT (STDMETHODCALLTYPE *GetCurFolder)(
   3091         IPersistFolder2* This,
   3092         PIDLIST_ABSOLUTE *ppidl);
   3093 
   3094     END_INTERFACE
   3095 } IPersistFolder2Vtbl;
   3096 interface IPersistFolder2 {
   3097     CONST_VTBL IPersistFolder2Vtbl* lpVtbl;
   3098 };
   3099 
   3100 #ifdef COBJMACROS
   3101 #ifndef WIDL_C_INLINE_WRAPPERS
   3102 /*** IUnknown methods ***/
   3103 #define IPersistFolder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3104 #define IPersistFolder2_AddRef(This) (This)->lpVtbl->AddRef(This)
   3105 #define IPersistFolder2_Release(This) (This)->lpVtbl->Release(This)
   3106 /*** IPersist methods ***/
   3107 #define IPersistFolder2_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
   3108 /*** IPersistFolder methods ***/
   3109 #define IPersistFolder2_Initialize(This,pidl) (This)->lpVtbl->Initialize(This,pidl)
   3110 /*** IPersistFolder2 methods ***/
   3111 #define IPersistFolder2_GetCurFolder(This,ppidl) (This)->lpVtbl->GetCurFolder(This,ppidl)
   3112 #else
   3113 /*** IUnknown methods ***/
   3114 static FORCEINLINE HRESULT IPersistFolder2_QueryInterface(IPersistFolder2* This,REFIID riid,void **ppvObject) {
   3115     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3116 }
   3117 static FORCEINLINE ULONG IPersistFolder2_AddRef(IPersistFolder2* This) {
   3118     return This->lpVtbl->AddRef(This);
   3119 }
   3120 static FORCEINLINE ULONG IPersistFolder2_Release(IPersistFolder2* This) {
   3121     return This->lpVtbl->Release(This);
   3122 }
   3123 /*** IPersist methods ***/
   3124 static FORCEINLINE HRESULT IPersistFolder2_GetClassID(IPersistFolder2* This,CLSID *pClassID) {
   3125     return This->lpVtbl->GetClassID(This,pClassID);
   3126 }
   3127 /*** IPersistFolder methods ***/
   3128 static FORCEINLINE HRESULT IPersistFolder2_Initialize(IPersistFolder2* This,PCIDLIST_ABSOLUTE pidl) {
   3129     return This->lpVtbl->Initialize(This,pidl);
   3130 }
   3131 /*** IPersistFolder2 methods ***/
   3132 static FORCEINLINE HRESULT IPersistFolder2_GetCurFolder(IPersistFolder2* This,PIDLIST_ABSOLUTE *ppidl) {
   3133     return This->lpVtbl->GetCurFolder(This,ppidl);
   3134 }
   3135 #endif
   3136 #endif
   3137 
   3138 #endif
   3139 
   3140 HRESULT STDMETHODCALLTYPE IPersistFolder2_GetCurFolder_Proxy(
   3141     IPersistFolder2* This,
   3142     PIDLIST_ABSOLUTE *ppidl);
   3143 void __RPC_STUB IPersistFolder2_GetCurFolder_Stub(
   3144     IRpcStubBuffer* This,
   3145     IRpcChannelBuffer* pRpcChannelBuffer,
   3146     PRPC_MESSAGE pRpcMessage,
   3147     DWORD* pdwStubPhase);
   3148 
   3149 #endif  /* __IPersistFolder2_INTERFACE_DEFINED__ */
   3150 
   3151 
   3152 #define CSIDL_FLAG_PFTI_TRACKTARGET CSIDL_FLAG_DONT_VERIFY
   3153 
   3154 #include <pshpack8.h>
   3155 typedef struct _PERSIST_FOLDER_TARGET_INFO {
   3156     PIDLIST_ABSOLUTE pidlTargetFolder;
   3157     WCHAR szTargetParsingName[260];
   3158     WCHAR szNetworkProvider[260];
   3159     DWORD dwAttributes;
   3160     int csidl;
   3161 } PERSIST_FOLDER_TARGET_INFO;
   3162 #include <poppack.h>
   3163 
   3164 /*****************************************************************************
   3165  * IPersistFolder3 interface
   3166  */
   3167 #ifndef __IPersistFolder3_INTERFACE_DEFINED__
   3168 #define __IPersistFolder3_INTERFACE_DEFINED__
   3169 
   3170 DEFINE_GUID(IID_IPersistFolder3, 0xcef04fdf, 0xfe72, 0x11d2, 0x87,0xa5, 0x00,0xc0,0x4f,0x68,0x37,0xcf);
   3171 #if defined(__cplusplus) && !defined(CINTERFACE)
   3172 MIDL_INTERFACE("cef04fdf-fe72-11d2-87a5-00c04f6837cf")
   3173 IPersistFolder3 : public IPersistFolder2
   3174 {
   3175     virtual HRESULT STDMETHODCALLTYPE InitializeEx(
   3176         IBindCtx *pbc,
   3177         PCIDLIST_ABSOLUTE pidlRoot,
   3178         const PERSIST_FOLDER_TARGET_INFO *ppfti) = 0;
   3179 
   3180     virtual HRESULT STDMETHODCALLTYPE GetFolderTargetInfo(
   3181         PERSIST_FOLDER_TARGET_INFO *ppfti) = 0;
   3182 
   3183 };
   3184 #ifdef __CRT_UUID_DECL
   3185 __CRT_UUID_DECL(IPersistFolder3, 0xcef04fdf, 0xfe72, 0x11d2, 0x87,0xa5, 0x00,0xc0,0x4f,0x68,0x37,0xcf)
   3186 #endif
   3187 #else
   3188 typedef struct IPersistFolder3Vtbl {
   3189     BEGIN_INTERFACE
   3190 
   3191     /*** IUnknown methods ***/
   3192     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3193         IPersistFolder3* This,
   3194         REFIID riid,
   3195         void **ppvObject);
   3196 
   3197     ULONG (STDMETHODCALLTYPE *AddRef)(
   3198         IPersistFolder3* This);
   3199 
   3200     ULONG (STDMETHODCALLTYPE *Release)(
   3201         IPersistFolder3* This);
   3202 
   3203     /*** IPersist methods ***/
   3204     HRESULT (STDMETHODCALLTYPE *GetClassID)(
   3205         IPersistFolder3* This,
   3206         CLSID *pClassID);
   3207 
   3208     /*** IPersistFolder methods ***/
   3209     HRESULT (STDMETHODCALLTYPE *Initialize)(
   3210         IPersistFolder3* This,
   3211         PCIDLIST_ABSOLUTE pidl);
   3212 
   3213     /*** IPersistFolder2 methods ***/
   3214     HRESULT (STDMETHODCALLTYPE *GetCurFolder)(
   3215         IPersistFolder3* This,
   3216         PIDLIST_ABSOLUTE *ppidl);
   3217 
   3218     /*** IPersistFolder3 methods ***/
   3219     HRESULT (STDMETHODCALLTYPE *InitializeEx)(
   3220         IPersistFolder3* This,
   3221         IBindCtx *pbc,
   3222         PCIDLIST_ABSOLUTE pidlRoot,
   3223         const PERSIST_FOLDER_TARGET_INFO *ppfti);
   3224 
   3225     HRESULT (STDMETHODCALLTYPE *GetFolderTargetInfo)(
   3226         IPersistFolder3* This,
   3227         PERSIST_FOLDER_TARGET_INFO *ppfti);
   3228 
   3229     END_INTERFACE
   3230 } IPersistFolder3Vtbl;
   3231 interface IPersistFolder3 {
   3232     CONST_VTBL IPersistFolder3Vtbl* lpVtbl;
   3233 };
   3234 
   3235 #ifdef COBJMACROS
   3236 #ifndef WIDL_C_INLINE_WRAPPERS
   3237 /*** IUnknown methods ***/
   3238 #define IPersistFolder3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3239 #define IPersistFolder3_AddRef(This) (This)->lpVtbl->AddRef(This)
   3240 #define IPersistFolder3_Release(This) (This)->lpVtbl->Release(This)
   3241 /*** IPersist methods ***/
   3242 #define IPersistFolder3_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
   3243 /*** IPersistFolder methods ***/
   3244 #define IPersistFolder3_Initialize(This,pidl) (This)->lpVtbl->Initialize(This,pidl)
   3245 /*** IPersistFolder2 methods ***/
   3246 #define IPersistFolder3_GetCurFolder(This,ppidl) (This)->lpVtbl->GetCurFolder(This,ppidl)
   3247 /*** IPersistFolder3 methods ***/
   3248 #define IPersistFolder3_InitializeEx(This,pbc,pidlRoot,ppfti) (This)->lpVtbl->InitializeEx(This,pbc,pidlRoot,ppfti)
   3249 #define IPersistFolder3_GetFolderTargetInfo(This,ppfti) (This)->lpVtbl->GetFolderTargetInfo(This,ppfti)
   3250 #else
   3251 /*** IUnknown methods ***/
   3252 static FORCEINLINE HRESULT IPersistFolder3_QueryInterface(IPersistFolder3* This,REFIID riid,void **ppvObject) {
   3253     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3254 }
   3255 static FORCEINLINE ULONG IPersistFolder3_AddRef(IPersistFolder3* This) {
   3256     return This->lpVtbl->AddRef(This);
   3257 }
   3258 static FORCEINLINE ULONG IPersistFolder3_Release(IPersistFolder3* This) {
   3259     return This->lpVtbl->Release(This);
   3260 }
   3261 /*** IPersist methods ***/
   3262 static FORCEINLINE HRESULT IPersistFolder3_GetClassID(IPersistFolder3* This,CLSID *pClassID) {
   3263     return This->lpVtbl->GetClassID(This,pClassID);
   3264 }
   3265 /*** IPersistFolder methods ***/
   3266 static FORCEINLINE HRESULT IPersistFolder3_Initialize(IPersistFolder3* This,PCIDLIST_ABSOLUTE pidl) {
   3267     return This->lpVtbl->Initialize(This,pidl);
   3268 }
   3269 /*** IPersistFolder2 methods ***/
   3270 static FORCEINLINE HRESULT IPersistFolder3_GetCurFolder(IPersistFolder3* This,PIDLIST_ABSOLUTE *ppidl) {
   3271     return This->lpVtbl->GetCurFolder(This,ppidl);
   3272 }
   3273 /*** IPersistFolder3 methods ***/
   3274 static FORCEINLINE HRESULT IPersistFolder3_InitializeEx(IPersistFolder3* This,IBindCtx *pbc,PCIDLIST_ABSOLUTE pidlRoot,const PERSIST_FOLDER_TARGET_INFO *ppfti) {
   3275     return This->lpVtbl->InitializeEx(This,pbc,pidlRoot,ppfti);
   3276 }
   3277 static FORCEINLINE HRESULT IPersistFolder3_GetFolderTargetInfo(IPersistFolder3* This,PERSIST_FOLDER_TARGET_INFO *ppfti) {
   3278     return This->lpVtbl->GetFolderTargetInfo(This,ppfti);
   3279 }
   3280 #endif
   3281 #endif
   3282 
   3283 #endif
   3284 
   3285 HRESULT STDMETHODCALLTYPE IPersistFolder3_InitializeEx_Proxy(
   3286     IPersistFolder3* This,
   3287     IBindCtx *pbc,
   3288     PCIDLIST_ABSOLUTE pidlRoot,
   3289     const PERSIST_FOLDER_TARGET_INFO *ppfti);
   3290 void __RPC_STUB IPersistFolder3_InitializeEx_Stub(
   3291     IRpcStubBuffer* This,
   3292     IRpcChannelBuffer* pRpcChannelBuffer,
   3293     PRPC_MESSAGE pRpcMessage,
   3294     DWORD* pdwStubPhase);
   3295 HRESULT STDMETHODCALLTYPE IPersistFolder3_GetFolderTargetInfo_Proxy(
   3296     IPersistFolder3* This,
   3297     PERSIST_FOLDER_TARGET_INFO *ppfti);
   3298 void __RPC_STUB IPersistFolder3_GetFolderTargetInfo_Stub(
   3299     IRpcStubBuffer* This,
   3300     IRpcChannelBuffer* pRpcChannelBuffer,
   3301     PRPC_MESSAGE pRpcMessage,
   3302     DWORD* pdwStubPhase);
   3303 
   3304 #endif  /* __IPersistFolder3_INTERFACE_DEFINED__ */
   3305 
   3306 
   3307 /*****************************************************************************
   3308  * IPersistIDList interface
   3309  */
   3310 #ifndef __IPersistIDList_INTERFACE_DEFINED__
   3311 #define __IPersistIDList_INTERFACE_DEFINED__
   3312 
   3313 DEFINE_GUID(IID_IPersistIDList, 0x1079acfc, 0x29bd, 0x11d3, 0x8e,0x0d, 0x00,0xc0,0x4f,0x68,0x37,0xd5);
   3314 #if defined(__cplusplus) && !defined(CINTERFACE)
   3315 MIDL_INTERFACE("1079acfc-29bd-11d3-8e0d-00c04f6837d5")
   3316 IPersistIDList : public IPersist
   3317 {
   3318     virtual HRESULT STDMETHODCALLTYPE SetIDList(
   3319         PCIDLIST_ABSOLUTE pidl) = 0;
   3320 
   3321     virtual HRESULT STDMETHODCALLTYPE GetIDList(
   3322         PIDLIST_ABSOLUTE *ppidl) = 0;
   3323 
   3324 };
   3325 #ifdef __CRT_UUID_DECL
   3326 __CRT_UUID_DECL(IPersistIDList, 0x1079acfc, 0x29bd, 0x11d3, 0x8e,0x0d, 0x00,0xc0,0x4f,0x68,0x37,0xd5)
   3327 #endif
   3328 #else
   3329 typedef struct IPersistIDListVtbl {
   3330     BEGIN_INTERFACE
   3331 
   3332     /*** IUnknown methods ***/
   3333     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3334         IPersistIDList* This,
   3335         REFIID riid,
   3336         void **ppvObject);
   3337 
   3338     ULONG (STDMETHODCALLTYPE *AddRef)(
   3339         IPersistIDList* This);
   3340 
   3341     ULONG (STDMETHODCALLTYPE *Release)(
   3342         IPersistIDList* This);
   3343 
   3344     /*** IPersist methods ***/
   3345     HRESULT (STDMETHODCALLTYPE *GetClassID)(
   3346         IPersistIDList* This,
   3347         CLSID *pClassID);
   3348 
   3349     /*** IPersistIDList methods ***/
   3350     HRESULT (STDMETHODCALLTYPE *SetIDList)(
   3351         IPersistIDList* This,
   3352         PCIDLIST_ABSOLUTE pidl);
   3353 
   3354     HRESULT (STDMETHODCALLTYPE *GetIDList)(
   3355         IPersistIDList* This,
   3356         PIDLIST_ABSOLUTE *ppidl);
   3357 
   3358     END_INTERFACE
   3359 } IPersistIDListVtbl;
   3360 interface IPersistIDList {
   3361     CONST_VTBL IPersistIDListVtbl* lpVtbl;
   3362 };
   3363 
   3364 #ifdef COBJMACROS
   3365 #ifndef WIDL_C_INLINE_WRAPPERS
   3366 /*** IUnknown methods ***/
   3367 #define IPersistIDList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3368 #define IPersistIDList_AddRef(This) (This)->lpVtbl->AddRef(This)
   3369 #define IPersistIDList_Release(This) (This)->lpVtbl->Release(This)
   3370 /*** IPersist methods ***/
   3371 #define IPersistIDList_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
   3372 /*** IPersistIDList methods ***/
   3373 #define IPersistIDList_SetIDList(This,pidl) (This)->lpVtbl->SetIDList(This,pidl)
   3374 #define IPersistIDList_GetIDList(This,ppidl) (This)->lpVtbl->GetIDList(This,ppidl)
   3375 #else
   3376 /*** IUnknown methods ***/
   3377 static FORCEINLINE HRESULT IPersistIDList_QueryInterface(IPersistIDList* This,REFIID riid,void **ppvObject) {
   3378     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3379 }
   3380 static FORCEINLINE ULONG IPersistIDList_AddRef(IPersistIDList* This) {
   3381     return This->lpVtbl->AddRef(This);
   3382 }
   3383 static FORCEINLINE ULONG IPersistIDList_Release(IPersistIDList* This) {
   3384     return This->lpVtbl->Release(This);
   3385 }
   3386 /*** IPersist methods ***/
   3387 static FORCEINLINE HRESULT IPersistIDList_GetClassID(IPersistIDList* This,CLSID *pClassID) {
   3388     return This->lpVtbl->GetClassID(This,pClassID);
   3389 }
   3390 /*** IPersistIDList methods ***/
   3391 static FORCEINLINE HRESULT IPersistIDList_SetIDList(IPersistIDList* This,PCIDLIST_ABSOLUTE pidl) {
   3392     return This->lpVtbl->SetIDList(This,pidl);
   3393 }
   3394 static FORCEINLINE HRESULT IPersistIDList_GetIDList(IPersistIDList* This,PIDLIST_ABSOLUTE *ppidl) {
   3395     return This->lpVtbl->GetIDList(This,ppidl);
   3396 }
   3397 #endif
   3398 #endif
   3399 
   3400 #endif
   3401 
   3402 HRESULT STDMETHODCALLTYPE IPersistIDList_SetIDList_Proxy(
   3403     IPersistIDList* This,
   3404     PCIDLIST_ABSOLUTE pidl);
   3405 void __RPC_STUB IPersistIDList_SetIDList_Stub(
   3406     IRpcStubBuffer* This,
   3407     IRpcChannelBuffer* pRpcChannelBuffer,
   3408     PRPC_MESSAGE pRpcMessage,
   3409     DWORD* pdwStubPhase);
   3410 HRESULT STDMETHODCALLTYPE IPersistIDList_GetIDList_Proxy(
   3411     IPersistIDList* This,
   3412     PIDLIST_ABSOLUTE *ppidl);
   3413 void __RPC_STUB IPersistIDList_GetIDList_Stub(
   3414     IRpcStubBuffer* This,
   3415     IRpcChannelBuffer* pRpcChannelBuffer,
   3416     PRPC_MESSAGE pRpcMessage,
   3417     DWORD* pdwStubPhase);
   3418 
   3419 #endif  /* __IPersistIDList_INTERFACE_DEFINED__ */
   3420 
   3421 
   3422 /*****************************************************************************
   3423  * IEnumIDList interface
   3424  */
   3425 #ifndef __IEnumIDList_INTERFACE_DEFINED__
   3426 #define __IEnumIDList_INTERFACE_DEFINED__
   3427 
   3428 DEFINE_GUID(IID_IEnumIDList, 0x000214f2, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   3429 #if defined(__cplusplus) && !defined(CINTERFACE)
   3430 MIDL_INTERFACE("000214f2-0000-0000-c000-000000000046")
   3431 IEnumIDList : public IUnknown
   3432 {
   3433     virtual HRESULT STDMETHODCALLTYPE Next(
   3434         ULONG celt,
   3435         PITEMID_CHILD *rgelt,
   3436         ULONG *pceltFetched) = 0;
   3437 
   3438     virtual HRESULT STDMETHODCALLTYPE Skip(
   3439         ULONG celt) = 0;
   3440 
   3441     virtual HRESULT STDMETHODCALLTYPE Reset(
   3442         ) = 0;
   3443 
   3444     virtual HRESULT STDMETHODCALLTYPE Clone(
   3445         IEnumIDList **ppenum) = 0;
   3446 
   3447 };
   3448 #ifdef __CRT_UUID_DECL
   3449 __CRT_UUID_DECL(IEnumIDList, 0x000214f2, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   3450 #endif
   3451 #else
   3452 typedef struct IEnumIDListVtbl {
   3453     BEGIN_INTERFACE
   3454 
   3455     /*** IUnknown methods ***/
   3456     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3457         IEnumIDList* This,
   3458         REFIID riid,
   3459         void **ppvObject);
   3460 
   3461     ULONG (STDMETHODCALLTYPE *AddRef)(
   3462         IEnumIDList* This);
   3463 
   3464     ULONG (STDMETHODCALLTYPE *Release)(
   3465         IEnumIDList* This);
   3466 
   3467     /*** IEnumIDList methods ***/
   3468     HRESULT (STDMETHODCALLTYPE *Next)(
   3469         IEnumIDList* This,
   3470         ULONG celt,
   3471         PITEMID_CHILD *rgelt,
   3472         ULONG *pceltFetched);
   3473 
   3474     HRESULT (STDMETHODCALLTYPE *Skip)(
   3475         IEnumIDList* This,
   3476         ULONG celt);
   3477 
   3478     HRESULT (STDMETHODCALLTYPE *Reset)(
   3479         IEnumIDList* This);
   3480 
   3481     HRESULT (STDMETHODCALLTYPE *Clone)(
   3482         IEnumIDList* This,
   3483         IEnumIDList **ppenum);
   3484 
   3485     END_INTERFACE
   3486 } IEnumIDListVtbl;
   3487 interface IEnumIDList {
   3488     CONST_VTBL IEnumIDListVtbl* lpVtbl;
   3489 };
   3490 
   3491 #ifdef COBJMACROS
   3492 #ifndef WIDL_C_INLINE_WRAPPERS
   3493 /*** IUnknown methods ***/
   3494 #define IEnumIDList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3495 #define IEnumIDList_AddRef(This) (This)->lpVtbl->AddRef(This)
   3496 #define IEnumIDList_Release(This) (This)->lpVtbl->Release(This)
   3497 /*** IEnumIDList methods ***/
   3498 #define IEnumIDList_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
   3499 #define IEnumIDList_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
   3500 #define IEnumIDList_Reset(This) (This)->lpVtbl->Reset(This)
   3501 #define IEnumIDList_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
   3502 #else
   3503 /*** IUnknown methods ***/
   3504 static FORCEINLINE HRESULT IEnumIDList_QueryInterface(IEnumIDList* This,REFIID riid,void **ppvObject) {
   3505     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3506 }
   3507 static FORCEINLINE ULONG IEnumIDList_AddRef(IEnumIDList* This) {
   3508     return This->lpVtbl->AddRef(This);
   3509 }
   3510 static FORCEINLINE ULONG IEnumIDList_Release(IEnumIDList* This) {
   3511     return This->lpVtbl->Release(This);
   3512 }
   3513 /*** IEnumIDList methods ***/
   3514 static FORCEINLINE HRESULT IEnumIDList_Next(IEnumIDList* This,ULONG celt,PITEMID_CHILD *rgelt,ULONG *pceltFetched) {
   3515     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
   3516 }
   3517 static FORCEINLINE HRESULT IEnumIDList_Skip(IEnumIDList* This,ULONG celt) {
   3518     return This->lpVtbl->Skip(This,celt);
   3519 }
   3520 static FORCEINLINE HRESULT IEnumIDList_Reset(IEnumIDList* This) {
   3521     return This->lpVtbl->Reset(This);
   3522 }
   3523 static FORCEINLINE HRESULT IEnumIDList_Clone(IEnumIDList* This,IEnumIDList **ppenum) {
   3524     return This->lpVtbl->Clone(This,ppenum);
   3525 }
   3526 #endif
   3527 #endif
   3528 
   3529 #endif
   3530 
   3531 HRESULT STDMETHODCALLTYPE IEnumIDList_RemoteNext_Proxy(
   3532     IEnumIDList* This,
   3533     ULONG celt,
   3534     PITEMID_CHILD *rgelt,
   3535     ULONG *pceltFetched);
   3536 void __RPC_STUB IEnumIDList_RemoteNext_Stub(
   3537     IRpcStubBuffer* This,
   3538     IRpcChannelBuffer* pRpcChannelBuffer,
   3539     PRPC_MESSAGE pRpcMessage,
   3540     DWORD* pdwStubPhase);
   3541 HRESULT STDMETHODCALLTYPE IEnumIDList_Skip_Proxy(
   3542     IEnumIDList* This,
   3543     ULONG celt);
   3544 void __RPC_STUB IEnumIDList_Skip_Stub(
   3545     IRpcStubBuffer* This,
   3546     IRpcChannelBuffer* pRpcChannelBuffer,
   3547     PRPC_MESSAGE pRpcMessage,
   3548     DWORD* pdwStubPhase);
   3549 HRESULT STDMETHODCALLTYPE IEnumIDList_Reset_Proxy(
   3550     IEnumIDList* This);
   3551 void __RPC_STUB IEnumIDList_Reset_Stub(
   3552     IRpcStubBuffer* This,
   3553     IRpcChannelBuffer* pRpcChannelBuffer,
   3554     PRPC_MESSAGE pRpcMessage,
   3555     DWORD* pdwStubPhase);
   3556 HRESULT STDMETHODCALLTYPE IEnumIDList_Clone_Proxy(
   3557     IEnumIDList* This,
   3558     IEnumIDList **ppenum);
   3559 void __RPC_STUB IEnumIDList_Clone_Stub(
   3560     IRpcStubBuffer* This,
   3561     IRpcChannelBuffer* pRpcChannelBuffer,
   3562     PRPC_MESSAGE pRpcMessage,
   3563     DWORD* pdwStubPhase);
   3564 HRESULT CALLBACK IEnumIDList_Next_Proxy(
   3565     IEnumIDList* This,
   3566     ULONG celt,
   3567     PITEMID_CHILD *rgelt,
   3568     ULONG *pceltFetched);
   3569 HRESULT __RPC_STUB IEnumIDList_Next_Stub(
   3570     IEnumIDList* This,
   3571     ULONG celt,
   3572     PITEMID_CHILD *rgelt,
   3573     ULONG *pceltFetched);
   3574 
   3575 #endif  /* __IEnumIDList_INTERFACE_DEFINED__ */
   3576 
   3577 typedef IEnumIDList *LPENUMIDLIST;
   3578 
   3579 /*****************************************************************************
   3580  * IEnumFullIDList interface
   3581  */
   3582 #ifndef __IEnumFullIDList_INTERFACE_DEFINED__
   3583 #define __IEnumFullIDList_INTERFACE_DEFINED__
   3584 
   3585 DEFINE_GUID(IID_IEnumFullIDList, 0xd0191542, 0x7954, 0x4908, 0xbc,0x06, 0xb2,0x36,0x0b,0xbe,0x45,0xba);
   3586 #if defined(__cplusplus) && !defined(CINTERFACE)
   3587 MIDL_INTERFACE("d0191542-7954-4908-bc06-b2360bbe45ba")
   3588 IEnumFullIDList : public IUnknown
   3589 {
   3590     virtual HRESULT STDMETHODCALLTYPE Next(
   3591         ULONG celt,
   3592         PIDLIST_ABSOLUTE *rgelt,
   3593         ULONG *pceltFetched) = 0;
   3594 
   3595     virtual HRESULT STDMETHODCALLTYPE Skip(
   3596         ULONG celt) = 0;
   3597 
   3598     virtual HRESULT STDMETHODCALLTYPE Reset(
   3599         ) = 0;
   3600 
   3601     virtual HRESULT STDMETHODCALLTYPE Clone(
   3602         IEnumFullIDList **ppenum) = 0;
   3603 
   3604 };
   3605 #ifdef __CRT_UUID_DECL
   3606 __CRT_UUID_DECL(IEnumFullIDList, 0xd0191542, 0x7954, 0x4908, 0xbc,0x06, 0xb2,0x36,0x0b,0xbe,0x45,0xba)
   3607 #endif
   3608 #else
   3609 typedef struct IEnumFullIDListVtbl {
   3610     BEGIN_INTERFACE
   3611 
   3612     /*** IUnknown methods ***/
   3613     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3614         IEnumFullIDList* This,
   3615         REFIID riid,
   3616         void **ppvObject);
   3617 
   3618     ULONG (STDMETHODCALLTYPE *AddRef)(
   3619         IEnumFullIDList* This);
   3620 
   3621     ULONG (STDMETHODCALLTYPE *Release)(
   3622         IEnumFullIDList* This);
   3623 
   3624     /*** IEnumFullIDList methods ***/
   3625     HRESULT (STDMETHODCALLTYPE *Next)(
   3626         IEnumFullIDList* This,
   3627         ULONG celt,
   3628         PIDLIST_ABSOLUTE *rgelt,
   3629         ULONG *pceltFetched);
   3630 
   3631     HRESULT (STDMETHODCALLTYPE *Skip)(
   3632         IEnumFullIDList* This,
   3633         ULONG celt);
   3634 
   3635     HRESULT (STDMETHODCALLTYPE *Reset)(
   3636         IEnumFullIDList* This);
   3637 
   3638     HRESULT (STDMETHODCALLTYPE *Clone)(
   3639         IEnumFullIDList* This,
   3640         IEnumFullIDList **ppenum);
   3641 
   3642     END_INTERFACE
   3643 } IEnumFullIDListVtbl;
   3644 interface IEnumFullIDList {
   3645     CONST_VTBL IEnumFullIDListVtbl* lpVtbl;
   3646 };
   3647 
   3648 #ifdef COBJMACROS
   3649 #ifndef WIDL_C_INLINE_WRAPPERS
   3650 /*** IUnknown methods ***/
   3651 #define IEnumFullIDList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3652 #define IEnumFullIDList_AddRef(This) (This)->lpVtbl->AddRef(This)
   3653 #define IEnumFullIDList_Release(This) (This)->lpVtbl->Release(This)
   3654 /*** IEnumFullIDList methods ***/
   3655 #define IEnumFullIDList_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
   3656 #define IEnumFullIDList_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
   3657 #define IEnumFullIDList_Reset(This) (This)->lpVtbl->Reset(This)
   3658 #define IEnumFullIDList_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
   3659 #else
   3660 /*** IUnknown methods ***/
   3661 static FORCEINLINE HRESULT IEnumFullIDList_QueryInterface(IEnumFullIDList* This,REFIID riid,void **ppvObject) {
   3662     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3663 }
   3664 static FORCEINLINE ULONG IEnumFullIDList_AddRef(IEnumFullIDList* This) {
   3665     return This->lpVtbl->AddRef(This);
   3666 }
   3667 static FORCEINLINE ULONG IEnumFullIDList_Release(IEnumFullIDList* This) {
   3668     return This->lpVtbl->Release(This);
   3669 }
   3670 /*** IEnumFullIDList methods ***/
   3671 static FORCEINLINE HRESULT IEnumFullIDList_Next(IEnumFullIDList* This,ULONG celt,PIDLIST_ABSOLUTE *rgelt,ULONG *pceltFetched) {
   3672     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
   3673 }
   3674 static FORCEINLINE HRESULT IEnumFullIDList_Skip(IEnumFullIDList* This,ULONG celt) {
   3675     return This->lpVtbl->Skip(This,celt);
   3676 }
   3677 static FORCEINLINE HRESULT IEnumFullIDList_Reset(IEnumFullIDList* This) {
   3678     return This->lpVtbl->Reset(This);
   3679 }
   3680 static FORCEINLINE HRESULT IEnumFullIDList_Clone(IEnumFullIDList* This,IEnumFullIDList **ppenum) {
   3681     return This->lpVtbl->Clone(This,ppenum);
   3682 }
   3683 #endif
   3684 #endif
   3685 
   3686 #endif
   3687 
   3688 HRESULT STDMETHODCALLTYPE IEnumFullIDList_RemoteNext_Proxy(
   3689     IEnumFullIDList* This,
   3690     ULONG celt,
   3691     PIDLIST_ABSOLUTE *rgelt,
   3692     ULONG *pceltFetched);
   3693 void __RPC_STUB IEnumFullIDList_RemoteNext_Stub(
   3694     IRpcStubBuffer* This,
   3695     IRpcChannelBuffer* pRpcChannelBuffer,
   3696     PRPC_MESSAGE pRpcMessage,
   3697     DWORD* pdwStubPhase);
   3698 HRESULT STDMETHODCALLTYPE IEnumFullIDList_Skip_Proxy(
   3699     IEnumFullIDList* This,
   3700     ULONG celt);
   3701 void __RPC_STUB IEnumFullIDList_Skip_Stub(
   3702     IRpcStubBuffer* This,
   3703     IRpcChannelBuffer* pRpcChannelBuffer,
   3704     PRPC_MESSAGE pRpcMessage,
   3705     DWORD* pdwStubPhase);
   3706 HRESULT STDMETHODCALLTYPE IEnumFullIDList_Reset_Proxy(
   3707     IEnumFullIDList* This);
   3708 void __RPC_STUB IEnumFullIDList_Reset_Stub(
   3709     IRpcStubBuffer* This,
   3710     IRpcChannelBuffer* pRpcChannelBuffer,
   3711     PRPC_MESSAGE pRpcMessage,
   3712     DWORD* pdwStubPhase);
   3713 HRESULT STDMETHODCALLTYPE IEnumFullIDList_Clone_Proxy(
   3714     IEnumFullIDList* This,
   3715     IEnumFullIDList **ppenum);
   3716 void __RPC_STUB IEnumFullIDList_Clone_Stub(
   3717     IRpcStubBuffer* This,
   3718     IRpcChannelBuffer* pRpcChannelBuffer,
   3719     PRPC_MESSAGE pRpcMessage,
   3720     DWORD* pdwStubPhase);
   3721 HRESULT CALLBACK IEnumFullIDList_Next_Proxy(
   3722     IEnumFullIDList* This,
   3723     ULONG celt,
   3724     PIDLIST_ABSOLUTE *rgelt,
   3725     ULONG *pceltFetched);
   3726 HRESULT __RPC_STUB IEnumFullIDList_Next_Stub(
   3727     IEnumFullIDList* This,
   3728     ULONG celt,
   3729     PIDLIST_ABSOLUTE *rgelt,
   3730     ULONG *pceltFetched);
   3731 
   3732 #endif  /* __IEnumFullIDList_INTERFACE_DEFINED__ */
   3733 
   3734 
   3735 enum _SHGDNF {
   3736     SHGDN_NORMAL = 0x0,
   3737     SHGDN_INFOLDER = 0x1,
   3738     SHGDN_FOREDITING = 0x1000,
   3739     SHGDN_FORADDRESSBAR = 0x4000,
   3740     SHGDN_FORPARSING = 0x8000
   3741 };
   3742 
   3743 
   3744 typedef DWORD SHGDNF;
   3745 
   3746 enum _SHCONTF {
   3747     SHCONTF_CHECKING_FOR_CHILDREN = 0x10,
   3748     SHCONTF_FOLDERS = 0x20,
   3749     SHCONTF_NONFOLDERS = 0x40,
   3750     SHCONTF_INCLUDEHIDDEN = 0x80,
   3751     SHCONTF_INIT_ON_FIRST_NEXT = 0x100,
   3752     SHCONTF_NETPRINTERSRCH = 0x200,
   3753     SHCONTF_SHAREABLE = 0x400,
   3754     SHCONTF_STORAGE = 0x800,
   3755     SHCONTF_NAVIGATION_ENUM = 0x1000,
   3756     SHCONTF_FASTITEMS = 0x2000,
   3757     SHCONTF_FLATLIST = 0x4000,
   3758     SHCONTF_ENABLE_ASYNC = 0x8000,
   3759     SHCONTF_INCLUDESUPERHIDDEN = 0x10000
   3760 };
   3761 
   3762 
   3763 typedef DWORD SHCONTF;
   3764 
   3765 #define SHCIDS_ALLFIELDS __MSABI_LONG(0x80000000)
   3766 #define SHCIDS_CANONICALONLY __MSABI_LONG(0x10000000)
   3767 #define SHCIDS_BITMASK __MSABI_LONG(0xffff0000)
   3768 #define SHCIDS_COLUMNMASK __MSABI_LONG(0x0000ffff)
   3769 
   3770 #define SFGAO_CANCOPY DROPEFFECT_COPY
   3771 #define SFGAO_CANMOVE DROPEFFECT_MOVE
   3772 #define SFGAO_CANLINK DROPEFFECT_LINK
   3773 #define SFGAO_STORAGE __MSABI_LONG(0x8)
   3774 #define SFGAO_CANRENAME __MSABI_LONG(0x10)
   3775 #define SFGAO_CANDELETE __MSABI_LONG(0x20)
   3776 #define SFGAO_HASPROPSHEET __MSABI_LONG(0x40)
   3777 #define SFGAO_DROPTARGET __MSABI_LONG(0x100)
   3778 
   3779 #define SFGAO_CAPABILITYMASK __MSABI_LONG(0x177)
   3780 
   3781 #define SFGAO_SYSTEM __MSABI_LONG(0x1000)
   3782 #define SFGAO_ENCRYPTED __MSABI_LONG(0x2000)
   3783 #define SFGAO_ISSLOW __MSABI_LONG(0x4000)
   3784 #define SFGAO_GHOSTED __MSABI_LONG(0x8000)
   3785 #define SFGAO_LINK __MSABI_LONG(0x10000)
   3786 #define SFGAO_SHARE __MSABI_LONG(0x20000)
   3787 #define SFGAO_READONLY __MSABI_LONG(0x40000)
   3788 #define SFGAO_HIDDEN __MSABI_LONG(0x80000)
   3789 
   3790 #define SFGAO_DISPLAYATTRMASK __MSABI_LONG(0xfc000)
   3791 
   3792 #define SFGAO_FILESYSANCESTOR __MSABI_LONG(0x10000000)
   3793 #define SFGAO_FOLDER __MSABI_LONG(0x20000000)
   3794 #define SFGAO_FILESYSTEM __MSABI_LONG(0x40000000)
   3795 #define SFGAO_HASSUBFOLDER __MSABI_LONG(0x80000000)
   3796 
   3797 #define SFGAO_CONTENTSMASK __MSABI_LONG(0x80000000)
   3798 
   3799 #define SFGAO_VALIDATE __MSABI_LONG(0x1000000)
   3800 #define SFGAO_REMOVABLE __MSABI_LONG(0x2000000)
   3801 #define SFGAO_COMPRESSED __MSABI_LONG(0x4000000)
   3802 #define SFGAO_BROWSABLE __MSABI_LONG(0x8000000)
   3803 #define SFGAO_NONENUMERATED __MSABI_LONG(0x100000)
   3804 #define SFGAO_NEWCONTENT __MSABI_LONG(0x200000)
   3805 #define SFGAO_CANMONIKER __MSABI_LONG(0x400000)
   3806 #define SFGAO_HASSTORAGE __MSABI_LONG(0x400000)
   3807 #define SFGAO_STREAM __MSABI_LONG(0x400000)
   3808 #define SFGAO_STORAGEANCESTOR __MSABI_LONG(0x00800000)
   3809 
   3810 #define SFGAO_STORAGECAPMASK __MSABI_LONG(0x70c50008)
   3811 #define SFGAO_PKEYSFGAOMASK __MSABI_LONG(0x81044000)
   3812 
   3813 typedef ULONG SFGAOF;
   3814 
   3815 #define STR_BIND_FORCE_FOLDER_SHORTCUT_RESOLVE L"Force Folder Shortcut Resolve"
   3816 #define STR_AVOID_DRIVE_RESTRICTION_POLICY L"Avoid Drive Restriction Policy"
   3817 #define STR_AVOID_DRIVE_RESTRICTION_POLICY L"Avoid Drive Restriction Policy"
   3818 #define STR_SKIP_BINDING_CLSID L"Skip Binding CLSID"
   3819 #define STR_PARSE_PREFER_FOLDER_BROWSING L"Parse Prefer Folder Browsing"
   3820 #define STR_DONT_PARSE_RELATIVE L"Don't Parse Relative"
   3821 #define STR_PARSE_TRANSLATE_ALIASES L"Parse Translate Aliases"
   3822 #define STR_PARSE_SKIP_NET_CACHE L"Skip Net Resource Cache"
   3823 #define STR_PARSE_SHELL_PROTOCOL_TO_FILE_OBJECTS L"Parse Shell Protocol To File Objects"
   3824 #if _WIN32_IE >= 0x0700
   3825 #define STR_TRACK_CLSID L"Track the CLSID"
   3826 #define STR_INTERNAL_NAVIGATE L"Internal Navigation"
   3827 #define STR_PARSE_PROPERTYSTORE L"DelegateNamedProperties"
   3828 #define STR_NO_VALIDATE_FILENAME_CHARS L"NoValidateFilenameChars"
   3829 #define STR_BIND_DELEGATE_CREATE_OBJECT L"Delegate Object Creation"
   3830 #define STR_PARSE_ALLOW_INTERNET_SHELL_FOLDERS L"Allow binding to Internet shell folder handlers and negate STR_PARSE_PREFER_WEB_BROWSING"
   3831 #define STR_PARSE_PREFER_WEB_BROWSING L"Do not bind to Internet shell folder handlers"
   3832 #define STR_PARSE_SHOW_NET_DIAGNOSTICS_UI L"Show network diagnostics UI"
   3833 #define STR_PARSE_DONT_REQUIRE_VALIDATED_URLS L"Do not require validated URLs"
   3834 #define STR_INTERNETFOLDER_PARSE_ONLY_URLMON_BINDABLE L"Validate URL"
   3835 #endif
   3836 
   3837 #if NTDDI_VERSION >= NTDDI_WIN8
   3838 #define BIND_INTERRUPTABLE 0xffffffff
   3839 #endif
   3840 
   3841 #if NTDDI_VERSION >= NTDDI_WIN7
   3842 #define STR_BIND_FOLDERS_READ_ONLY L"Folders As Read Only"
   3843 #define STR_BIND_FOLDER_ENUM_MODE L"Folder Enum Mode"
   3844 
   3845 typedef enum FOLDER_ENUM_MODE {
   3846     FEM_VIEWRESULT = 0,
   3847     FEM_NAVIGATION = 1
   3848 } FOLDER_ENUM_MODE;
   3849 
   3850 /*****************************************************************************
   3851  * IObjectWithFolderEnumMode interface
   3852  */
   3853 #ifndef __IObjectWithFolderEnumMode_INTERFACE_DEFINED__
   3854 #define __IObjectWithFolderEnumMode_INTERFACE_DEFINED__
   3855 
   3856 DEFINE_GUID(IID_IObjectWithFolderEnumMode, 0x6a9d9026, 0x0e6e, 0x464c, 0xb0,0x00, 0x42,0xec,0xc0,0x7d,0xe6,0x73);
   3857 #if defined(__cplusplus) && !defined(CINTERFACE)
   3858 MIDL_INTERFACE("6a9d9026-0e6e-464c-b000-42ecc07de673")
   3859 IObjectWithFolderEnumMode : public IUnknown
   3860 {
   3861     virtual HRESULT STDMETHODCALLTYPE SetMode(
   3862         FOLDER_ENUM_MODE feMode) = 0;
   3863 
   3864     virtual HRESULT STDMETHODCALLTYPE GetMode(
   3865         FOLDER_ENUM_MODE *pfeMode) = 0;
   3866 
   3867 };
   3868 #ifdef __CRT_UUID_DECL
   3869 __CRT_UUID_DECL(IObjectWithFolderEnumMode, 0x6a9d9026, 0x0e6e, 0x464c, 0xb0,0x00, 0x42,0xec,0xc0,0x7d,0xe6,0x73)
   3870 #endif
   3871 #else
   3872 typedef struct IObjectWithFolderEnumModeVtbl {
   3873     BEGIN_INTERFACE
   3874 
   3875     /*** IUnknown methods ***/
   3876     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3877         IObjectWithFolderEnumMode* This,
   3878         REFIID riid,
   3879         void **ppvObject);
   3880 
   3881     ULONG (STDMETHODCALLTYPE *AddRef)(
   3882         IObjectWithFolderEnumMode* This);
   3883 
   3884     ULONG (STDMETHODCALLTYPE *Release)(
   3885         IObjectWithFolderEnumMode* This);
   3886 
   3887     /*** IObjectWithFolderEnumMode methods ***/
   3888     HRESULT (STDMETHODCALLTYPE *SetMode)(
   3889         IObjectWithFolderEnumMode* This,
   3890         FOLDER_ENUM_MODE feMode);
   3891 
   3892     HRESULT (STDMETHODCALLTYPE *GetMode)(
   3893         IObjectWithFolderEnumMode* This,
   3894         FOLDER_ENUM_MODE *pfeMode);
   3895 
   3896     END_INTERFACE
   3897 } IObjectWithFolderEnumModeVtbl;
   3898 interface IObjectWithFolderEnumMode {
   3899     CONST_VTBL IObjectWithFolderEnumModeVtbl* lpVtbl;
   3900 };
   3901 
   3902 #ifdef COBJMACROS
   3903 #ifndef WIDL_C_INLINE_WRAPPERS
   3904 /*** IUnknown methods ***/
   3905 #define IObjectWithFolderEnumMode_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3906 #define IObjectWithFolderEnumMode_AddRef(This) (This)->lpVtbl->AddRef(This)
   3907 #define IObjectWithFolderEnumMode_Release(This) (This)->lpVtbl->Release(This)
   3908 /*** IObjectWithFolderEnumMode methods ***/
   3909 #define IObjectWithFolderEnumMode_SetMode(This,feMode) (This)->lpVtbl->SetMode(This,feMode)
   3910 #define IObjectWithFolderEnumMode_GetMode(This,pfeMode) (This)->lpVtbl->GetMode(This,pfeMode)
   3911 #else
   3912 /*** IUnknown methods ***/
   3913 static FORCEINLINE HRESULT IObjectWithFolderEnumMode_QueryInterface(IObjectWithFolderEnumMode* This,REFIID riid,void **ppvObject) {
   3914     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3915 }
   3916 static FORCEINLINE ULONG IObjectWithFolderEnumMode_AddRef(IObjectWithFolderEnumMode* This) {
   3917     return This->lpVtbl->AddRef(This);
   3918 }
   3919 static FORCEINLINE ULONG IObjectWithFolderEnumMode_Release(IObjectWithFolderEnumMode* This) {
   3920     return This->lpVtbl->Release(This);
   3921 }
   3922 /*** IObjectWithFolderEnumMode methods ***/
   3923 static FORCEINLINE HRESULT IObjectWithFolderEnumMode_SetMode(IObjectWithFolderEnumMode* This,FOLDER_ENUM_MODE feMode) {
   3924     return This->lpVtbl->SetMode(This,feMode);
   3925 }
   3926 static FORCEINLINE HRESULT IObjectWithFolderEnumMode_GetMode(IObjectWithFolderEnumMode* This,FOLDER_ENUM_MODE *pfeMode) {
   3927     return This->lpVtbl->GetMode(This,pfeMode);
   3928 }
   3929 #endif
   3930 #endif
   3931 
   3932 #endif
   3933 
   3934 HRESULT STDMETHODCALLTYPE IObjectWithFolderEnumMode_SetMode_Proxy(
   3935     IObjectWithFolderEnumMode* This,
   3936     FOLDER_ENUM_MODE feMode);
   3937 void __RPC_STUB IObjectWithFolderEnumMode_SetMode_Stub(
   3938     IRpcStubBuffer* This,
   3939     IRpcChannelBuffer* pRpcChannelBuffer,
   3940     PRPC_MESSAGE pRpcMessage,
   3941     DWORD* pdwStubPhase);
   3942 HRESULT STDMETHODCALLTYPE IObjectWithFolderEnumMode_GetMode_Proxy(
   3943     IObjectWithFolderEnumMode* This,
   3944     FOLDER_ENUM_MODE *pfeMode);
   3945 void __RPC_STUB IObjectWithFolderEnumMode_GetMode_Stub(
   3946     IRpcStubBuffer* This,
   3947     IRpcChannelBuffer* pRpcChannelBuffer,
   3948     PRPC_MESSAGE pRpcMessage,
   3949     DWORD* pdwStubPhase);
   3950 
   3951 #endif  /* __IObjectWithFolderEnumMode_INTERFACE_DEFINED__ */
   3952 
   3953 
   3954 #define STR_PARSE_WITH_EXPLICIT_PROGID L"ExplicitProgid"
   3955 #define STR_PARSE_WITH_EXPLICIT_ASSOCAPP L"ExplicitAssociationApp"
   3956 #define STR_PARSE_EXPLICIT_ASSOCIATION_SUCCESSFUL L"ExplicitAssociationSuccessful"
   3957 #define STR_PARSE_AND_CREATE_ITEM L"ParseAndCreateItem"
   3958 #define STR_PROPERTYBAG_PARAM L"SHBindCtxPropertyBag"
   3959 #define STR_ENUM_ITEMS_FLAGS L"SHCONTF"
   3960 
   3961 #ifndef __IShellItem_FWD_DEFINED__
   3962 #define __IShellItem_FWD_DEFINED__
   3963 typedef interface IShellItem IShellItem;
   3964 #endif
   3965 
   3966 
   3967 /*****************************************************************************
   3968  * IParseAndCreateItem interface
   3969  */
   3970 #ifndef __IParseAndCreateItem_INTERFACE_DEFINED__
   3971 #define __IParseAndCreateItem_INTERFACE_DEFINED__
   3972 
   3973 DEFINE_GUID(IID_IParseAndCreateItem, 0x67efed0e, 0xe827, 0x4408, 0xb4,0x93, 0x78,0xf3,0x98,0x2b,0x68,0x5c);
   3974 #if defined(__cplusplus) && !defined(CINTERFACE)
   3975 MIDL_INTERFACE("67efed0e-e827-4408-b493-78f3982b685c")
   3976 IParseAndCreateItem : public IUnknown
   3977 {
   3978     virtual HRESULT STDMETHODCALLTYPE SetItem(
   3979         IShellItem *psi) = 0;
   3980 
   3981     virtual HRESULT STDMETHODCALLTYPE GetItem(
   3982         REFIID riid,
   3983         void **ppv) = 0;
   3984 
   3985 };
   3986 #ifdef __CRT_UUID_DECL
   3987 __CRT_UUID_DECL(IParseAndCreateItem, 0x67efed0e, 0xe827, 0x4408, 0xb4,0x93, 0x78,0xf3,0x98,0x2b,0x68,0x5c)
   3988 #endif
   3989 #else
   3990 typedef struct IParseAndCreateItemVtbl {
   3991     BEGIN_INTERFACE
   3992 
   3993     /*** IUnknown methods ***/
   3994     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3995         IParseAndCreateItem* This,
   3996         REFIID riid,
   3997         void **ppvObject);
   3998 
   3999     ULONG (STDMETHODCALLTYPE *AddRef)(
   4000         IParseAndCreateItem* This);
   4001 
   4002     ULONG (STDMETHODCALLTYPE *Release)(
   4003         IParseAndCreateItem* This);
   4004 
   4005     /*** IParseAndCreateItem methods ***/
   4006     HRESULT (STDMETHODCALLTYPE *SetItem)(
   4007         IParseAndCreateItem* This,
   4008         IShellItem *psi);
   4009 
   4010     HRESULT (STDMETHODCALLTYPE *GetItem)(
   4011         IParseAndCreateItem* This,
   4012         REFIID riid,
   4013         void **ppv);
   4014 
   4015     END_INTERFACE
   4016 } IParseAndCreateItemVtbl;
   4017 interface IParseAndCreateItem {
   4018     CONST_VTBL IParseAndCreateItemVtbl* lpVtbl;
   4019 };
   4020 
   4021 #ifdef COBJMACROS
   4022 #ifndef WIDL_C_INLINE_WRAPPERS
   4023 /*** IUnknown methods ***/
   4024 #define IParseAndCreateItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4025 #define IParseAndCreateItem_AddRef(This) (This)->lpVtbl->AddRef(This)
   4026 #define IParseAndCreateItem_Release(This) (This)->lpVtbl->Release(This)
   4027 /*** IParseAndCreateItem methods ***/
   4028 #define IParseAndCreateItem_SetItem(This,psi) (This)->lpVtbl->SetItem(This,psi)
   4029 #define IParseAndCreateItem_GetItem(This,riid,ppv) (This)->lpVtbl->GetItem(This,riid,ppv)
   4030 #else
   4031 /*** IUnknown methods ***/
   4032 static FORCEINLINE HRESULT IParseAndCreateItem_QueryInterface(IParseAndCreateItem* This,REFIID riid,void **ppvObject) {
   4033     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4034 }
   4035 static FORCEINLINE ULONG IParseAndCreateItem_AddRef(IParseAndCreateItem* This) {
   4036     return This->lpVtbl->AddRef(This);
   4037 }
   4038 static FORCEINLINE ULONG IParseAndCreateItem_Release(IParseAndCreateItem* This) {
   4039     return This->lpVtbl->Release(This);
   4040 }
   4041 /*** IParseAndCreateItem methods ***/
   4042 static FORCEINLINE HRESULT IParseAndCreateItem_SetItem(IParseAndCreateItem* This,IShellItem *psi) {
   4043     return This->lpVtbl->SetItem(This,psi);
   4044 }
   4045 static FORCEINLINE HRESULT IParseAndCreateItem_GetItem(IParseAndCreateItem* This,REFIID riid,void **ppv) {
   4046     return This->lpVtbl->GetItem(This,riid,ppv);
   4047 }
   4048 #endif
   4049 #endif
   4050 
   4051 #endif
   4052 
   4053 HRESULT STDMETHODCALLTYPE IParseAndCreateItem_SetItem_Proxy(
   4054     IParseAndCreateItem* This,
   4055     IShellItem *psi);
   4056 void __RPC_STUB IParseAndCreateItem_SetItem_Stub(
   4057     IRpcStubBuffer* This,
   4058     IRpcChannelBuffer* pRpcChannelBuffer,
   4059     PRPC_MESSAGE pRpcMessage,
   4060     DWORD* pdwStubPhase);
   4061 HRESULT STDMETHODCALLTYPE IParseAndCreateItem_GetItem_Proxy(
   4062     IParseAndCreateItem* This,
   4063     REFIID riid,
   4064     void **ppv);
   4065 void __RPC_STUB IParseAndCreateItem_GetItem_Stub(
   4066     IRpcStubBuffer* This,
   4067     IRpcChannelBuffer* pRpcChannelBuffer,
   4068     PRPC_MESSAGE pRpcMessage,
   4069     DWORD* pdwStubPhase);
   4070 
   4071 #endif  /* __IParseAndCreateItem_INTERFACE_DEFINED__ */
   4072 
   4073 
   4074 #define STR_ITEM_CACHE_CONTEXT L"ItemCacheContext"
   4075 #endif
   4076 
   4077 #ifndef __IShellFolder_FWD_DEFINED__
   4078 #define __IShellFolder_FWD_DEFINED__
   4079 typedef interface IShellFolder IShellFolder;
   4080 #endif
   4081 
   4082 
   4083 /*****************************************************************************
   4084  * IShellFolder interface
   4085  */
   4086 #ifndef __IShellFolder_INTERFACE_DEFINED__
   4087 #define __IShellFolder_INTERFACE_DEFINED__
   4088 
   4089 DEFINE_GUID(IID_IShellFolder, 0x000214e6, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   4090 #if defined(__cplusplus) && !defined(CINTERFACE)
   4091 MIDL_INTERFACE("000214e6-0000-0000-c000-000000000046")
   4092 IShellFolder : public IUnknown
   4093 {
   4094     virtual HRESULT STDMETHODCALLTYPE ParseDisplayName(
   4095         HWND hwnd,
   4096         IBindCtx *pbc,
   4097         LPWSTR pszDisplayName,
   4098         ULONG *pchEaten,
   4099         PIDLIST_RELATIVE *ppidl,
   4100         ULONG *pdwAttributes) = 0;
   4101 
   4102     virtual HRESULT STDMETHODCALLTYPE EnumObjects(
   4103         HWND hwnd,
   4104         SHCONTF grfFlags,
   4105         IEnumIDList **ppenumIDList) = 0;
   4106 
   4107     virtual HRESULT STDMETHODCALLTYPE BindToObject(
   4108         PCUIDLIST_RELATIVE pidl,
   4109         IBindCtx *pbc,
   4110         REFIID riid,
   4111         void **ppv) = 0;
   4112 
   4113     virtual HRESULT STDMETHODCALLTYPE BindToStorage(
   4114         PCUIDLIST_RELATIVE pidl,
   4115         IBindCtx *pbc,
   4116         REFIID riid,
   4117         void **ppv) = 0;
   4118 
   4119     virtual HRESULT STDMETHODCALLTYPE CompareIDs(
   4120         LPARAM lParam,
   4121         PCUIDLIST_RELATIVE pidl1,
   4122         PCUIDLIST_RELATIVE pidl2) = 0;
   4123 
   4124     virtual HRESULT STDMETHODCALLTYPE CreateViewObject(
   4125         HWND hwndOwner,
   4126         REFIID riid,
   4127         void **ppv) = 0;
   4128 
   4129     virtual HRESULT STDMETHODCALLTYPE GetAttributesOf(
   4130         UINT cidl,
   4131         PCUITEMID_CHILD_ARRAY apidl,
   4132         SFGAOF *rgfInOut) = 0;
   4133 
   4134     virtual HRESULT STDMETHODCALLTYPE GetUIObjectOf(
   4135         HWND hwndOwner,
   4136         UINT cidl,
   4137         PCUITEMID_CHILD_ARRAY apidl,
   4138         REFIID riid,
   4139         UINT *rgfReserved,
   4140         void **ppv) = 0;
   4141 
   4142     virtual HRESULT STDMETHODCALLTYPE GetDisplayNameOf(
   4143         PCUITEMID_CHILD pidl,
   4144         SHGDNF uFlags,
   4145         STRRET *pName) = 0;
   4146 
   4147     virtual HRESULT STDMETHODCALLTYPE SetNameOf(
   4148         HWND hwnd,
   4149         PCUITEMID_CHILD pidl,
   4150         LPCWSTR pszName,
   4151         SHGDNF uFlags,
   4152         PITEMID_CHILD *ppidlOut) = 0;
   4153 
   4154 };
   4155 #ifdef __CRT_UUID_DECL
   4156 __CRT_UUID_DECL(IShellFolder, 0x000214e6, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   4157 #endif
   4158 #else
   4159 typedef struct IShellFolderVtbl {
   4160     BEGIN_INTERFACE
   4161 
   4162     /*** IUnknown methods ***/
   4163     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4164         IShellFolder* This,
   4165         REFIID riid,
   4166         void **ppvObject);
   4167 
   4168     ULONG (STDMETHODCALLTYPE *AddRef)(
   4169         IShellFolder* This);
   4170 
   4171     ULONG (STDMETHODCALLTYPE *Release)(
   4172         IShellFolder* This);
   4173 
   4174     /*** IShellFolder methods ***/
   4175     HRESULT (STDMETHODCALLTYPE *ParseDisplayName)(
   4176         IShellFolder* This,
   4177         HWND hwnd,
   4178         IBindCtx *pbc,
   4179         LPWSTR pszDisplayName,
   4180         ULONG *pchEaten,
   4181         PIDLIST_RELATIVE *ppidl,
   4182         ULONG *pdwAttributes);
   4183 
   4184     HRESULT (STDMETHODCALLTYPE *EnumObjects)(
   4185         IShellFolder* This,
   4186         HWND hwnd,
   4187         SHCONTF grfFlags,
   4188         IEnumIDList **ppenumIDList);
   4189 
   4190     HRESULT (STDMETHODCALLTYPE *BindToObject)(
   4191         IShellFolder* This,
   4192         PCUIDLIST_RELATIVE pidl,
   4193         IBindCtx *pbc,
   4194         REFIID riid,
   4195         void **ppv);
   4196 
   4197     HRESULT (STDMETHODCALLTYPE *BindToStorage)(
   4198         IShellFolder* This,
   4199         PCUIDLIST_RELATIVE pidl,
   4200         IBindCtx *pbc,
   4201         REFIID riid,
   4202         void **ppv);
   4203 
   4204     HRESULT (STDMETHODCALLTYPE *CompareIDs)(
   4205         IShellFolder* This,
   4206         LPARAM lParam,
   4207         PCUIDLIST_RELATIVE pidl1,
   4208         PCUIDLIST_RELATIVE pidl2);
   4209 
   4210     HRESULT (STDMETHODCALLTYPE *CreateViewObject)(
   4211         IShellFolder* This,
   4212         HWND hwndOwner,
   4213         REFIID riid,
   4214         void **ppv);
   4215 
   4216     HRESULT (STDMETHODCALLTYPE *GetAttributesOf)(
   4217         IShellFolder* This,
   4218         UINT cidl,
   4219         PCUITEMID_CHILD_ARRAY apidl,
   4220         SFGAOF *rgfInOut);
   4221 
   4222     HRESULT (STDMETHODCALLTYPE *GetUIObjectOf)(
   4223         IShellFolder* This,
   4224         HWND hwndOwner,
   4225         UINT cidl,
   4226         PCUITEMID_CHILD_ARRAY apidl,
   4227         REFIID riid,
   4228         UINT *rgfReserved,
   4229         void **ppv);
   4230 
   4231     HRESULT (STDMETHODCALLTYPE *GetDisplayNameOf)(
   4232         IShellFolder* This,
   4233         PCUITEMID_CHILD pidl,
   4234         SHGDNF uFlags,
   4235         STRRET *pName);
   4236 
   4237     HRESULT (STDMETHODCALLTYPE *SetNameOf)(
   4238         IShellFolder* This,
   4239         HWND hwnd,
   4240         PCUITEMID_CHILD pidl,
   4241         LPCWSTR pszName,
   4242         SHGDNF uFlags,
   4243         PITEMID_CHILD *ppidlOut);
   4244 
   4245     END_INTERFACE
   4246 } IShellFolderVtbl;
   4247 interface IShellFolder {
   4248     CONST_VTBL IShellFolderVtbl* lpVtbl;
   4249 };
   4250 
   4251 #ifdef COBJMACROS
   4252 #ifndef WIDL_C_INLINE_WRAPPERS
   4253 /*** IUnknown methods ***/
   4254 #define IShellFolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4255 #define IShellFolder_AddRef(This) (This)->lpVtbl->AddRef(This)
   4256 #define IShellFolder_Release(This) (This)->lpVtbl->Release(This)
   4257 /*** IShellFolder methods ***/
   4258 #define IShellFolder_ParseDisplayName(This,hwnd,pbc,pszDisplayName,pchEaten,ppidl,pdwAttributes) (This)->lpVtbl->ParseDisplayName(This,hwnd,pbc,pszDisplayName,pchEaten,ppidl,pdwAttributes)
   4259 #define IShellFolder_EnumObjects(This,hwnd,grfFlags,ppenumIDList) (This)->lpVtbl->EnumObjects(This,hwnd,grfFlags,ppenumIDList)
   4260 #define IShellFolder_BindToObject(This,pidl,pbc,riid,ppv) (This)->lpVtbl->BindToObject(This,pidl,pbc,riid,ppv)
   4261 #define IShellFolder_BindToStorage(This,pidl,pbc,riid,ppv) (This)->lpVtbl->BindToStorage(This,pidl,pbc,riid,ppv)
   4262 #define IShellFolder_CompareIDs(This,lParam,pidl1,pidl2) (This)->lpVtbl->CompareIDs(This,lParam,pidl1,pidl2)
   4263 #define IShellFolder_CreateViewObject(This,hwndOwner,riid,ppv) (This)->lpVtbl->CreateViewObject(This,hwndOwner,riid,ppv)
   4264 #define IShellFolder_GetAttributesOf(This,cidl,apidl,rgfInOut) (This)->lpVtbl->GetAttributesOf(This,cidl,apidl,rgfInOut)
   4265 #define IShellFolder_GetUIObjectOf(This,hwndOwner,cidl,apidl,riid,rgfReserved,ppv) (This)->lpVtbl->GetUIObjectOf(This,hwndOwner,cidl,apidl,riid,rgfReserved,ppv)
   4266 #define IShellFolder_GetDisplayNameOf(This,pidl,uFlags,pName) (This)->lpVtbl->GetDisplayNameOf(This,pidl,uFlags,pName)
   4267 #define IShellFolder_SetNameOf(This,hwnd,pidl,pszName,uFlags,ppidlOut) (This)->lpVtbl->SetNameOf(This,hwnd,pidl,pszName,uFlags,ppidlOut)
   4268 #else
   4269 /*** IUnknown methods ***/
   4270 static FORCEINLINE HRESULT IShellFolder_QueryInterface(IShellFolder* This,REFIID riid,void **ppvObject) {
   4271     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4272 }
   4273 static FORCEINLINE ULONG IShellFolder_AddRef(IShellFolder* This) {
   4274     return This->lpVtbl->AddRef(This);
   4275 }
   4276 static FORCEINLINE ULONG IShellFolder_Release(IShellFolder* This) {
   4277     return This->lpVtbl->Release(This);
   4278 }
   4279 /*** IShellFolder methods ***/
   4280 static FORCEINLINE HRESULT IShellFolder_ParseDisplayName(IShellFolder* This,HWND hwnd,IBindCtx *pbc,LPWSTR pszDisplayName,ULONG *pchEaten,PIDLIST_RELATIVE *ppidl,ULONG *pdwAttributes) {
   4281     return This->lpVtbl->ParseDisplayName(This,hwnd,pbc,pszDisplayName,pchEaten,ppidl,pdwAttributes);
   4282 }
   4283 static FORCEINLINE HRESULT IShellFolder_EnumObjects(IShellFolder* This,HWND hwnd,SHCONTF grfFlags,IEnumIDList **ppenumIDList) {
   4284     return This->lpVtbl->EnumObjects(This,hwnd,grfFlags,ppenumIDList);
   4285 }
   4286 static FORCEINLINE HRESULT IShellFolder_BindToObject(IShellFolder* This,PCUIDLIST_RELATIVE pidl,IBindCtx *pbc,REFIID riid,void **ppv) {
   4287     return This->lpVtbl->BindToObject(This,pidl,pbc,riid,ppv);
   4288 }
   4289 static FORCEINLINE HRESULT IShellFolder_BindToStorage(IShellFolder* This,PCUIDLIST_RELATIVE pidl,IBindCtx *pbc,REFIID riid,void **ppv) {
   4290     return This->lpVtbl->BindToStorage(This,pidl,pbc,riid,ppv);
   4291 }
   4292 static FORCEINLINE HRESULT IShellFolder_CompareIDs(IShellFolder* This,LPARAM lParam,PCUIDLIST_RELATIVE pidl1,PCUIDLIST_RELATIVE pidl2) {
   4293     return This->lpVtbl->CompareIDs(This,lParam,pidl1,pidl2);
   4294 }
   4295 static FORCEINLINE HRESULT IShellFolder_CreateViewObject(IShellFolder* This,HWND hwndOwner,REFIID riid,void **ppv) {
   4296     return This->lpVtbl->CreateViewObject(This,hwndOwner,riid,ppv);
   4297 }
   4298 static FORCEINLINE HRESULT IShellFolder_GetAttributesOf(IShellFolder* This,UINT cidl,PCUITEMID_CHILD_ARRAY apidl,SFGAOF *rgfInOut) {
   4299     return This->lpVtbl->GetAttributesOf(This,cidl,apidl,rgfInOut);
   4300 }
   4301 static FORCEINLINE HRESULT IShellFolder_GetUIObjectOf(IShellFolder* This,HWND hwndOwner,UINT cidl,PCUITEMID_CHILD_ARRAY apidl,REFIID riid,UINT *rgfReserved,void **ppv) {
   4302     return This->lpVtbl->GetUIObjectOf(This,hwndOwner,cidl,apidl,riid,rgfReserved,ppv);
   4303 }
   4304 static FORCEINLINE HRESULT IShellFolder_GetDisplayNameOf(IShellFolder* This,PCUITEMID_CHILD pidl,SHGDNF uFlags,STRRET *pName) {
   4305     return This->lpVtbl->GetDisplayNameOf(This,pidl,uFlags,pName);
   4306 }
   4307 static FORCEINLINE HRESULT IShellFolder_SetNameOf(IShellFolder* This,HWND hwnd,PCUITEMID_CHILD pidl,LPCWSTR pszName,SHGDNF uFlags,PITEMID_CHILD *ppidlOut) {
   4308     return This->lpVtbl->SetNameOf(This,hwnd,pidl,pszName,uFlags,ppidlOut);
   4309 }
   4310 #endif
   4311 #endif
   4312 
   4313 #endif
   4314 
   4315 HRESULT STDMETHODCALLTYPE IShellFolder_ParseDisplayName_Proxy(
   4316     IShellFolder* This,
   4317     HWND hwnd,
   4318     IBindCtx *pbc,
   4319     LPWSTR pszDisplayName,
   4320     ULONG *pchEaten,
   4321     PIDLIST_RELATIVE *ppidl,
   4322     ULONG *pdwAttributes);
   4323 void __RPC_STUB IShellFolder_ParseDisplayName_Stub(
   4324     IRpcStubBuffer* This,
   4325     IRpcChannelBuffer* pRpcChannelBuffer,
   4326     PRPC_MESSAGE pRpcMessage,
   4327     DWORD* pdwStubPhase);
   4328 HRESULT STDMETHODCALLTYPE IShellFolder_EnumObjects_Proxy(
   4329     IShellFolder* This,
   4330     HWND hwnd,
   4331     SHCONTF grfFlags,
   4332     IEnumIDList **ppenumIDList);
   4333 void __RPC_STUB IShellFolder_EnumObjects_Stub(
   4334     IRpcStubBuffer* This,
   4335     IRpcChannelBuffer* pRpcChannelBuffer,
   4336     PRPC_MESSAGE pRpcMessage,
   4337     DWORD* pdwStubPhase);
   4338 HRESULT STDMETHODCALLTYPE IShellFolder_BindToObject_Proxy(
   4339     IShellFolder* This,
   4340     PCUIDLIST_RELATIVE pidl,
   4341     IBindCtx *pbc,
   4342     REFIID riid,
   4343     void **ppv);
   4344 void __RPC_STUB IShellFolder_BindToObject_Stub(
   4345     IRpcStubBuffer* This,
   4346     IRpcChannelBuffer* pRpcChannelBuffer,
   4347     PRPC_MESSAGE pRpcMessage,
   4348     DWORD* pdwStubPhase);
   4349 HRESULT STDMETHODCALLTYPE IShellFolder_BindToStorage_Proxy(
   4350     IShellFolder* This,
   4351     PCUIDLIST_RELATIVE pidl,
   4352     IBindCtx *pbc,
   4353     REFIID riid,
   4354     void **ppv);
   4355 void __RPC_STUB IShellFolder_BindToStorage_Stub(
   4356     IRpcStubBuffer* This,
   4357     IRpcChannelBuffer* pRpcChannelBuffer,
   4358     PRPC_MESSAGE pRpcMessage,
   4359     DWORD* pdwStubPhase);
   4360 HRESULT STDMETHODCALLTYPE IShellFolder_CompareIDs_Proxy(
   4361     IShellFolder* This,
   4362     LPARAM lParam,
   4363     PCUIDLIST_RELATIVE pidl1,
   4364     PCUIDLIST_RELATIVE pidl2);
   4365 void __RPC_STUB IShellFolder_CompareIDs_Stub(
   4366     IRpcStubBuffer* This,
   4367     IRpcChannelBuffer* pRpcChannelBuffer,
   4368     PRPC_MESSAGE pRpcMessage,
   4369     DWORD* pdwStubPhase);
   4370 HRESULT STDMETHODCALLTYPE IShellFolder_CreateViewObject_Proxy(
   4371     IShellFolder* This,
   4372     HWND hwndOwner,
   4373     REFIID riid,
   4374     void **ppv);
   4375 void __RPC_STUB IShellFolder_CreateViewObject_Stub(
   4376     IRpcStubBuffer* This,
   4377     IRpcChannelBuffer* pRpcChannelBuffer,
   4378     PRPC_MESSAGE pRpcMessage,
   4379     DWORD* pdwStubPhase);
   4380 HRESULT STDMETHODCALLTYPE IShellFolder_GetAttributesOf_Proxy(
   4381     IShellFolder* This,
   4382     UINT cidl,
   4383     PCUITEMID_CHILD_ARRAY apidl,
   4384     SFGAOF *rgfInOut);
   4385 void __RPC_STUB IShellFolder_GetAttributesOf_Stub(
   4386     IRpcStubBuffer* This,
   4387     IRpcChannelBuffer* pRpcChannelBuffer,
   4388     PRPC_MESSAGE pRpcMessage,
   4389     DWORD* pdwStubPhase);
   4390 HRESULT STDMETHODCALLTYPE IShellFolder_GetUIObjectOf_Proxy(
   4391     IShellFolder* This,
   4392     HWND hwndOwner,
   4393     UINT cidl,
   4394     PCUITEMID_CHILD_ARRAY apidl,
   4395     REFIID riid,
   4396     UINT *rgfReserved,
   4397     void **ppv);
   4398 void __RPC_STUB IShellFolder_GetUIObjectOf_Stub(
   4399     IRpcStubBuffer* This,
   4400     IRpcChannelBuffer* pRpcChannelBuffer,
   4401     PRPC_MESSAGE pRpcMessage,
   4402     DWORD* pdwStubPhase);
   4403 HRESULT STDMETHODCALLTYPE IShellFolder_GetDisplayNameOf_Proxy(
   4404     IShellFolder* This,
   4405     PCUITEMID_CHILD pidl,
   4406     SHGDNF uFlags,
   4407     STRRET *pName);
   4408 void __RPC_STUB IShellFolder_GetDisplayNameOf_Stub(
   4409     IRpcStubBuffer* This,
   4410     IRpcChannelBuffer* pRpcChannelBuffer,
   4411     PRPC_MESSAGE pRpcMessage,
   4412     DWORD* pdwStubPhase);
   4413 HRESULT STDMETHODCALLTYPE IShellFolder_RemoteSetNameOf_Proxy(
   4414     IShellFolder* This,
   4415     HWND hwnd,
   4416     PCUITEMID_CHILD pidl,
   4417     LPCWSTR pszName,
   4418     SHGDNF uFlags,
   4419     PITEMID_CHILD *ppidlOut);
   4420 void __RPC_STUB IShellFolder_RemoteSetNameOf_Stub(
   4421     IRpcStubBuffer* This,
   4422     IRpcChannelBuffer* pRpcChannelBuffer,
   4423     PRPC_MESSAGE pRpcMessage,
   4424     DWORD* pdwStubPhase);
   4425 HRESULT CALLBACK IShellFolder_SetNameOf_Proxy(
   4426     IShellFolder* This,
   4427     HWND hwnd,
   4428     PCUITEMID_CHILD pidl,
   4429     LPCWSTR pszName,
   4430     SHGDNF uFlags,
   4431     PITEMID_CHILD *ppidlOut);
   4432 HRESULT __RPC_STUB IShellFolder_SetNameOf_Stub(
   4433     IShellFolder* This,
   4434     HWND hwnd,
   4435     PCUITEMID_CHILD pidl,
   4436     LPCWSTR pszName,
   4437     SHGDNF uFlags,
   4438     PITEMID_CHILD *ppidlOut);
   4439 
   4440 #endif  /* __IShellFolder_INTERFACE_DEFINED__ */
   4441 
   4442 typedef IShellFolder *LPSHELLFOLDER;
   4443 
   4444 typedef struct EXTRASEARCH {
   4445     GUID guidSearch;
   4446     WCHAR wszFriendlyName[80];
   4447     WCHAR wszUrl[2084];
   4448 } EXTRASEARCH;
   4449 typedef struct EXTRASEARCH *LPEXTRASEARCH;
   4450 
   4451 /*****************************************************************************
   4452  * IEnumExtraSearch interface
   4453  */
   4454 #ifndef __IEnumExtraSearch_INTERFACE_DEFINED__
   4455 #define __IEnumExtraSearch_INTERFACE_DEFINED__
   4456 
   4457 DEFINE_GUID(IID_IEnumExtraSearch, 0x0e700be1, 0x9db6, 0x11d1, 0xa1,0xce, 0x00,0xc0,0x4f,0xd7,0x5d,0x13);
   4458 #if defined(__cplusplus) && !defined(CINTERFACE)
   4459 MIDL_INTERFACE("0e700be1-9db6-11d1-a1ce-00c04fd75d13")
   4460 IEnumExtraSearch : public IUnknown
   4461 {
   4462     virtual HRESULT STDMETHODCALLTYPE Next(
   4463         ULONG celt,
   4464         EXTRASEARCH *rgelt,
   4465         ULONG *pceltFetched) = 0;
   4466 
   4467     virtual HRESULT STDMETHODCALLTYPE Skip(
   4468         ULONG celt) = 0;
   4469 
   4470     virtual HRESULT STDMETHODCALLTYPE Reset(
   4471         ) = 0;
   4472 
   4473     virtual HRESULT STDMETHODCALLTYPE Clone(
   4474         IEnumExtraSearch **ppenum) = 0;
   4475 
   4476 };
   4477 #ifdef __CRT_UUID_DECL
   4478 __CRT_UUID_DECL(IEnumExtraSearch, 0x0e700be1, 0x9db6, 0x11d1, 0xa1,0xce, 0x00,0xc0,0x4f,0xd7,0x5d,0x13)
   4479 #endif
   4480 #else
   4481 typedef struct IEnumExtraSearchVtbl {
   4482     BEGIN_INTERFACE
   4483 
   4484     /*** IUnknown methods ***/
   4485     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4486         IEnumExtraSearch* This,
   4487         REFIID riid,
   4488         void **ppvObject);
   4489 
   4490     ULONG (STDMETHODCALLTYPE *AddRef)(
   4491         IEnumExtraSearch* This);
   4492 
   4493     ULONG (STDMETHODCALLTYPE *Release)(
   4494         IEnumExtraSearch* This);
   4495 
   4496     /*** IEnumExtraSearch methods ***/
   4497     HRESULT (STDMETHODCALLTYPE *Next)(
   4498         IEnumExtraSearch* This,
   4499         ULONG celt,
   4500         EXTRASEARCH *rgelt,
   4501         ULONG *pceltFetched);
   4502 
   4503     HRESULT (STDMETHODCALLTYPE *Skip)(
   4504         IEnumExtraSearch* This,
   4505         ULONG celt);
   4506 
   4507     HRESULT (STDMETHODCALLTYPE *Reset)(
   4508         IEnumExtraSearch* This);
   4509 
   4510     HRESULT (STDMETHODCALLTYPE *Clone)(
   4511         IEnumExtraSearch* This,
   4512         IEnumExtraSearch **ppenum);
   4513 
   4514     END_INTERFACE
   4515 } IEnumExtraSearchVtbl;
   4516 interface IEnumExtraSearch {
   4517     CONST_VTBL IEnumExtraSearchVtbl* lpVtbl;
   4518 };
   4519 
   4520 #ifdef COBJMACROS
   4521 #ifndef WIDL_C_INLINE_WRAPPERS
   4522 /*** IUnknown methods ***/
   4523 #define IEnumExtraSearch_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4524 #define IEnumExtraSearch_AddRef(This) (This)->lpVtbl->AddRef(This)
   4525 #define IEnumExtraSearch_Release(This) (This)->lpVtbl->Release(This)
   4526 /*** IEnumExtraSearch methods ***/
   4527 #define IEnumExtraSearch_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
   4528 #define IEnumExtraSearch_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
   4529 #define IEnumExtraSearch_Reset(This) (This)->lpVtbl->Reset(This)
   4530 #define IEnumExtraSearch_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
   4531 #else
   4532 /*** IUnknown methods ***/
   4533 static FORCEINLINE HRESULT IEnumExtraSearch_QueryInterface(IEnumExtraSearch* This,REFIID riid,void **ppvObject) {
   4534     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4535 }
   4536 static FORCEINLINE ULONG IEnumExtraSearch_AddRef(IEnumExtraSearch* This) {
   4537     return This->lpVtbl->AddRef(This);
   4538 }
   4539 static FORCEINLINE ULONG IEnumExtraSearch_Release(IEnumExtraSearch* This) {
   4540     return This->lpVtbl->Release(This);
   4541 }
   4542 /*** IEnumExtraSearch methods ***/
   4543 static FORCEINLINE HRESULT IEnumExtraSearch_Next(IEnumExtraSearch* This,ULONG celt,EXTRASEARCH *rgelt,ULONG *pceltFetched) {
   4544     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
   4545 }
   4546 static FORCEINLINE HRESULT IEnumExtraSearch_Skip(IEnumExtraSearch* This,ULONG celt) {
   4547     return This->lpVtbl->Skip(This,celt);
   4548 }
   4549 static FORCEINLINE HRESULT IEnumExtraSearch_Reset(IEnumExtraSearch* This) {
   4550     return This->lpVtbl->Reset(This);
   4551 }
   4552 static FORCEINLINE HRESULT IEnumExtraSearch_Clone(IEnumExtraSearch* This,IEnumExtraSearch **ppenum) {
   4553     return This->lpVtbl->Clone(This,ppenum);
   4554 }
   4555 #endif
   4556 #endif
   4557 
   4558 #endif
   4559 
   4560 HRESULT STDMETHODCALLTYPE IEnumExtraSearch_Next_Proxy(
   4561     IEnumExtraSearch* This,
   4562     ULONG celt,
   4563     EXTRASEARCH *rgelt,
   4564     ULONG *pceltFetched);
   4565 void __RPC_STUB IEnumExtraSearch_Next_Stub(
   4566     IRpcStubBuffer* This,
   4567     IRpcChannelBuffer* pRpcChannelBuffer,
   4568     PRPC_MESSAGE pRpcMessage,
   4569     DWORD* pdwStubPhase);
   4570 HRESULT STDMETHODCALLTYPE IEnumExtraSearch_Skip_Proxy(
   4571     IEnumExtraSearch* This,
   4572     ULONG celt);
   4573 void __RPC_STUB IEnumExtraSearch_Skip_Stub(
   4574     IRpcStubBuffer* This,
   4575     IRpcChannelBuffer* pRpcChannelBuffer,
   4576     PRPC_MESSAGE pRpcMessage,
   4577     DWORD* pdwStubPhase);
   4578 HRESULT STDMETHODCALLTYPE IEnumExtraSearch_Reset_Proxy(
   4579     IEnumExtraSearch* This);
   4580 void __RPC_STUB IEnumExtraSearch_Reset_Stub(
   4581     IRpcStubBuffer* This,
   4582     IRpcChannelBuffer* pRpcChannelBuffer,
   4583     PRPC_MESSAGE pRpcMessage,
   4584     DWORD* pdwStubPhase);
   4585 HRESULT STDMETHODCALLTYPE IEnumExtraSearch_Clone_Proxy(
   4586     IEnumExtraSearch* This,
   4587     IEnumExtraSearch **ppenum);
   4588 void __RPC_STUB IEnumExtraSearch_Clone_Stub(
   4589     IRpcStubBuffer* This,
   4590     IRpcChannelBuffer* pRpcChannelBuffer,
   4591     PRPC_MESSAGE pRpcMessage,
   4592     DWORD* pdwStubPhase);
   4593 
   4594 #endif  /* __IEnumExtraSearch_INTERFACE_DEFINED__ */
   4595 
   4596 typedef IEnumExtraSearch *LPENUMEXTRASEARCH;
   4597 
   4598 /*****************************************************************************
   4599  * IShellFolder2 interface
   4600  */
   4601 #ifndef __IShellFolder2_INTERFACE_DEFINED__
   4602 #define __IShellFolder2_INTERFACE_DEFINED__
   4603 
   4604 DEFINE_GUID(IID_IShellFolder2, 0x93f2f68c, 0x1d1b, 0x11d3, 0xa3,0x0e, 0x00,0xc0,0x4f,0x79,0xab,0xd1);
   4605 #if defined(__cplusplus) && !defined(CINTERFACE)
   4606 MIDL_INTERFACE("93f2f68c-1d1b-11d3-a30e-00c04f79abd1")
   4607 IShellFolder2 : public IShellFolder
   4608 {
   4609     virtual HRESULT STDMETHODCALLTYPE GetDefaultSearchGUID(
   4610         GUID *pguid) = 0;
   4611 
   4612     virtual HRESULT STDMETHODCALLTYPE EnumSearches(
   4613         IEnumExtraSearch **ppenum) = 0;
   4614 
   4615     virtual HRESULT STDMETHODCALLTYPE GetDefaultColumn(
   4616         DWORD dwRes,
   4617         ULONG *pSort,
   4618         ULONG *pDisplay) = 0;
   4619 
   4620     virtual HRESULT STDMETHODCALLTYPE GetDefaultColumnState(
   4621         UINT iColumn,
   4622         SHCOLSTATEF *pcsFlags) = 0;
   4623 
   4624     virtual HRESULT STDMETHODCALLTYPE GetDetailsEx(
   4625         PCUITEMID_CHILD pidl,
   4626         const SHCOLUMNID *pscid,
   4627         VARIANT *pv) = 0;
   4628 
   4629     virtual HRESULT STDMETHODCALLTYPE GetDetailsOf(
   4630         PCUITEMID_CHILD pidl,
   4631         UINT iColumn,
   4632         SHELLDETAILS *psd) = 0;
   4633 
   4634     virtual HRESULT STDMETHODCALLTYPE MapColumnToSCID(
   4635         UINT iColumn,
   4636         SHCOLUMNID *pscid) = 0;
   4637 
   4638 };
   4639 #ifdef __CRT_UUID_DECL
   4640 __CRT_UUID_DECL(IShellFolder2, 0x93f2f68c, 0x1d1b, 0x11d3, 0xa3,0x0e, 0x00,0xc0,0x4f,0x79,0xab,0xd1)
   4641 #endif
   4642 #else
   4643 typedef struct IShellFolder2Vtbl {
   4644     BEGIN_INTERFACE
   4645 
   4646     /*** IUnknown methods ***/
   4647     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4648         IShellFolder2* This,
   4649         REFIID riid,
   4650         void **ppvObject);
   4651 
   4652     ULONG (STDMETHODCALLTYPE *AddRef)(
   4653         IShellFolder2* This);
   4654 
   4655     ULONG (STDMETHODCALLTYPE *Release)(
   4656         IShellFolder2* This);
   4657 
   4658     /*** IShellFolder methods ***/
   4659     HRESULT (STDMETHODCALLTYPE *ParseDisplayName)(
   4660         IShellFolder2* This,
   4661         HWND hwnd,
   4662         IBindCtx *pbc,
   4663         LPWSTR pszDisplayName,
   4664         ULONG *pchEaten,
   4665         PIDLIST_RELATIVE *ppidl,
   4666         ULONG *pdwAttributes);
   4667 
   4668     HRESULT (STDMETHODCALLTYPE *EnumObjects)(
   4669         IShellFolder2* This,
   4670         HWND hwnd,
   4671         SHCONTF grfFlags,
   4672         IEnumIDList **ppenumIDList);
   4673 
   4674     HRESULT (STDMETHODCALLTYPE *BindToObject)(
   4675         IShellFolder2* This,
   4676         PCUIDLIST_RELATIVE pidl,
   4677         IBindCtx *pbc,
   4678         REFIID riid,
   4679         void **ppv);
   4680 
   4681     HRESULT (STDMETHODCALLTYPE *BindToStorage)(
   4682         IShellFolder2* This,
   4683         PCUIDLIST_RELATIVE pidl,
   4684         IBindCtx *pbc,
   4685         REFIID riid,
   4686         void **ppv);
   4687 
   4688     HRESULT (STDMETHODCALLTYPE *CompareIDs)(
   4689         IShellFolder2* This,
   4690         LPARAM lParam,
   4691         PCUIDLIST_RELATIVE pidl1,
   4692         PCUIDLIST_RELATIVE pidl2);
   4693 
   4694     HRESULT (STDMETHODCALLTYPE *CreateViewObject)(
   4695         IShellFolder2* This,
   4696         HWND hwndOwner,
   4697         REFIID riid,
   4698         void **ppv);
   4699 
   4700     HRESULT (STDMETHODCALLTYPE *GetAttributesOf)(
   4701         IShellFolder2* This,
   4702         UINT cidl,
   4703         PCUITEMID_CHILD_ARRAY apidl,
   4704         SFGAOF *rgfInOut);
   4705 
   4706     HRESULT (STDMETHODCALLTYPE *GetUIObjectOf)(
   4707         IShellFolder2* This,
   4708         HWND hwndOwner,
   4709         UINT cidl,
   4710         PCUITEMID_CHILD_ARRAY apidl,
   4711         REFIID riid,
   4712         UINT *rgfReserved,
   4713         void **ppv);
   4714 
   4715     HRESULT (STDMETHODCALLTYPE *GetDisplayNameOf)(
   4716         IShellFolder2* This,
   4717         PCUITEMID_CHILD pidl,
   4718         SHGDNF uFlags,
   4719         STRRET *pName);
   4720 
   4721     HRESULT (STDMETHODCALLTYPE *SetNameOf)(
   4722         IShellFolder2* This,
   4723         HWND hwnd,
   4724         PCUITEMID_CHILD pidl,
   4725         LPCWSTR pszName,
   4726         SHGDNF uFlags,
   4727         PITEMID_CHILD *ppidlOut);
   4728 
   4729     /*** IShellFolder2 methods ***/
   4730     HRESULT (STDMETHODCALLTYPE *GetDefaultSearchGUID)(
   4731         IShellFolder2* This,
   4732         GUID *pguid);
   4733 
   4734     HRESULT (STDMETHODCALLTYPE *EnumSearches)(
   4735         IShellFolder2* This,
   4736         IEnumExtraSearch **ppenum);
   4737 
   4738     HRESULT (STDMETHODCALLTYPE *GetDefaultColumn)(
   4739         IShellFolder2* This,
   4740         DWORD dwRes,
   4741         ULONG *pSort,
   4742         ULONG *pDisplay);
   4743 
   4744     HRESULT (STDMETHODCALLTYPE *GetDefaultColumnState)(
   4745         IShellFolder2* This,
   4746         UINT iColumn,
   4747         SHCOLSTATEF *pcsFlags);
   4748 
   4749     HRESULT (STDMETHODCALLTYPE *GetDetailsEx)(
   4750         IShellFolder2* This,
   4751         PCUITEMID_CHILD pidl,
   4752         const SHCOLUMNID *pscid,
   4753         VARIANT *pv);
   4754 
   4755     HRESULT (STDMETHODCALLTYPE *GetDetailsOf)(
   4756         IShellFolder2* This,
   4757         PCUITEMID_CHILD pidl,
   4758         UINT iColumn,
   4759         SHELLDETAILS *psd);
   4760 
   4761     HRESULT (STDMETHODCALLTYPE *MapColumnToSCID)(
   4762         IShellFolder2* This,
   4763         UINT iColumn,
   4764         SHCOLUMNID *pscid);
   4765 
   4766     END_INTERFACE
   4767 } IShellFolder2Vtbl;
   4768 interface IShellFolder2 {
   4769     CONST_VTBL IShellFolder2Vtbl* lpVtbl;
   4770 };
   4771 
   4772 #ifdef COBJMACROS
   4773 #ifndef WIDL_C_INLINE_WRAPPERS
   4774 /*** IUnknown methods ***/
   4775 #define IShellFolder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4776 #define IShellFolder2_AddRef(This) (This)->lpVtbl->AddRef(This)
   4777 #define IShellFolder2_Release(This) (This)->lpVtbl->Release(This)
   4778 /*** IShellFolder methods ***/
   4779 #define IShellFolder2_ParseDisplayName(This,hwnd,pbc,pszDisplayName,pchEaten,ppidl,pdwAttributes) (This)->lpVtbl->ParseDisplayName(This,hwnd,pbc,pszDisplayName,pchEaten,ppidl,pdwAttributes)
   4780 #define IShellFolder2_EnumObjects(This,hwnd,grfFlags,ppenumIDList) (This)->lpVtbl->EnumObjects(This,hwnd,grfFlags,ppenumIDList)
   4781 #define IShellFolder2_BindToObject(This,pidl,pbc,riid,ppv) (This)->lpVtbl->BindToObject(This,pidl,pbc,riid,ppv)
   4782 #define IShellFolder2_BindToStorage(This,pidl,pbc,riid,ppv) (This)->lpVtbl->BindToStorage(This,pidl,pbc,riid,ppv)
   4783 #define IShellFolder2_CompareIDs(This,lParam,pidl1,pidl2) (This)->lpVtbl->CompareIDs(This,lParam,pidl1,pidl2)
   4784 #define IShellFolder2_CreateViewObject(This,hwndOwner,riid,ppv) (This)->lpVtbl->CreateViewObject(This,hwndOwner,riid,ppv)
   4785 #define IShellFolder2_GetAttributesOf(This,cidl,apidl,rgfInOut) (This)->lpVtbl->GetAttributesOf(This,cidl,apidl,rgfInOut)
   4786 #define IShellFolder2_GetUIObjectOf(This,hwndOwner,cidl,apidl,riid,rgfReserved,ppv) (This)->lpVtbl->GetUIObjectOf(This,hwndOwner,cidl,apidl,riid,rgfReserved,ppv)
   4787 #define IShellFolder2_GetDisplayNameOf(This,pidl,uFlags,pName) (This)->lpVtbl->GetDisplayNameOf(This,pidl,uFlags,pName)
   4788 #define IShellFolder2_SetNameOf(This,hwnd,pidl,pszName,uFlags,ppidlOut) (This)->lpVtbl->SetNameOf(This,hwnd,pidl,pszName,uFlags,ppidlOut)
   4789 /*** IShellFolder2 methods ***/
   4790 #define IShellFolder2_GetDefaultSearchGUID(This,pguid) (This)->lpVtbl->GetDefaultSearchGUID(This,pguid)
   4791 #define IShellFolder2_EnumSearches(This,ppenum) (This)->lpVtbl->EnumSearches(This,ppenum)
   4792 #define IShellFolder2_GetDefaultColumn(This,dwRes,pSort,pDisplay) (This)->lpVtbl->GetDefaultColumn(This,dwRes,pSort,pDisplay)
   4793 #define IShellFolder2_GetDefaultColumnState(This,iColumn,pcsFlags) (This)->lpVtbl->GetDefaultColumnState(This,iColumn,pcsFlags)
   4794 #define IShellFolder2_GetDetailsEx(This,pidl,pscid,pv) (This)->lpVtbl->GetDetailsEx(This,pidl,pscid,pv)
   4795 #define IShellFolder2_GetDetailsOf(This,pidl,iColumn,psd) (This)->lpVtbl->GetDetailsOf(This,pidl,iColumn,psd)
   4796 #define IShellFolder2_MapColumnToSCID(This,iColumn,pscid) (This)->lpVtbl->MapColumnToSCID(This,iColumn,pscid)
   4797 #else
   4798 /*** IUnknown methods ***/
   4799 static FORCEINLINE HRESULT IShellFolder2_QueryInterface(IShellFolder2* This,REFIID riid,void **ppvObject) {
   4800     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4801 }
   4802 static FORCEINLINE ULONG IShellFolder2_AddRef(IShellFolder2* This) {
   4803     return This->lpVtbl->AddRef(This);
   4804 }
   4805 static FORCEINLINE ULONG IShellFolder2_Release(IShellFolder2* This) {
   4806     return This->lpVtbl->Release(This);
   4807 }
   4808 /*** IShellFolder methods ***/
   4809 static FORCEINLINE HRESULT IShellFolder2_ParseDisplayName(IShellFolder2* This,HWND hwnd,IBindCtx *pbc,LPWSTR pszDisplayName,ULONG *pchEaten,PIDLIST_RELATIVE *ppidl,ULONG *pdwAttributes) {
   4810     return This->lpVtbl->ParseDisplayName(This,hwnd,pbc,pszDisplayName,pchEaten,ppidl,pdwAttributes);
   4811 }
   4812 static FORCEINLINE HRESULT IShellFolder2_EnumObjects(IShellFolder2* This,HWND hwnd,SHCONTF grfFlags,IEnumIDList **ppenumIDList) {
   4813     return This->lpVtbl->EnumObjects(This,hwnd,grfFlags,ppenumIDList);
   4814 }
   4815 static FORCEINLINE HRESULT IShellFolder2_BindToObject(IShellFolder2* This,PCUIDLIST_RELATIVE pidl,IBindCtx *pbc,REFIID riid,void **ppv) {
   4816     return This->lpVtbl->BindToObject(This,pidl,pbc,riid,ppv);
   4817 }
   4818 static FORCEINLINE HRESULT IShellFolder2_BindToStorage(IShellFolder2* This,PCUIDLIST_RELATIVE pidl,IBindCtx *pbc,REFIID riid,void **ppv) {
   4819     return This->lpVtbl->BindToStorage(This,pidl,pbc,riid,ppv);
   4820 }
   4821 static FORCEINLINE HRESULT IShellFolder2_CompareIDs(IShellFolder2* This,LPARAM lParam,PCUIDLIST_RELATIVE pidl1,PCUIDLIST_RELATIVE pidl2) {
   4822     return This->lpVtbl->CompareIDs(This,lParam,pidl1,pidl2);
   4823 }
   4824 static FORCEINLINE HRESULT IShellFolder2_CreateViewObject(IShellFolder2* This,HWND hwndOwner,REFIID riid,void **ppv) {
   4825     return This->lpVtbl->CreateViewObject(This,hwndOwner,riid,ppv);
   4826 }
   4827 static FORCEINLINE HRESULT IShellFolder2_GetAttributesOf(IShellFolder2* This,UINT cidl,PCUITEMID_CHILD_ARRAY apidl,SFGAOF *rgfInOut) {
   4828     return This->lpVtbl->GetAttributesOf(This,cidl,apidl,rgfInOut);
   4829 }
   4830 static FORCEINLINE HRESULT IShellFolder2_GetUIObjectOf(IShellFolder2* This,HWND hwndOwner,UINT cidl,PCUITEMID_CHILD_ARRAY apidl,REFIID riid,UINT *rgfReserved,void **ppv) {
   4831     return This->lpVtbl->GetUIObjectOf(This,hwndOwner,cidl,apidl,riid,rgfReserved,ppv);
   4832 }
   4833 static FORCEINLINE HRESULT IShellFolder2_GetDisplayNameOf(IShellFolder2* This,PCUITEMID_CHILD pidl,SHGDNF uFlags,STRRET *pName) {
   4834     return This->lpVtbl->GetDisplayNameOf(This,pidl,uFlags,pName);
   4835 }
   4836 static FORCEINLINE HRESULT IShellFolder2_SetNameOf(IShellFolder2* This,HWND hwnd,PCUITEMID_CHILD pidl,LPCWSTR pszName,SHGDNF uFlags,PITEMID_CHILD *ppidlOut) {
   4837     return This->lpVtbl->SetNameOf(This,hwnd,pidl,pszName,uFlags,ppidlOut);
   4838 }
   4839 /*** IShellFolder2 methods ***/
   4840 static FORCEINLINE HRESULT IShellFolder2_GetDefaultSearchGUID(IShellFolder2* This,GUID *pguid) {
   4841     return This->lpVtbl->GetDefaultSearchGUID(This,pguid);
   4842 }
   4843 static FORCEINLINE HRESULT IShellFolder2_EnumSearches(IShellFolder2* This,IEnumExtraSearch **ppenum) {
   4844     return This->lpVtbl->EnumSearches(This,ppenum);
   4845 }
   4846 static FORCEINLINE HRESULT IShellFolder2_GetDefaultColumn(IShellFolder2* This,DWORD dwRes,ULONG *pSort,ULONG *pDisplay) {
   4847     return This->lpVtbl->GetDefaultColumn(This,dwRes,pSort,pDisplay);
   4848 }
   4849 static FORCEINLINE HRESULT IShellFolder2_GetDefaultColumnState(IShellFolder2* This,UINT iColumn,SHCOLSTATEF *pcsFlags) {
   4850     return This->lpVtbl->GetDefaultColumnState(This,iColumn,pcsFlags);
   4851 }
   4852 static FORCEINLINE HRESULT IShellFolder2_GetDetailsEx(IShellFolder2* This,PCUITEMID_CHILD pidl,const SHCOLUMNID *pscid,VARIANT *pv) {
   4853     return This->lpVtbl->GetDetailsEx(This,pidl,pscid,pv);
   4854 }
   4855 static FORCEINLINE HRESULT IShellFolder2_GetDetailsOf(IShellFolder2* This,PCUITEMID_CHILD pidl,UINT iColumn,SHELLDETAILS *psd) {
   4856     return This->lpVtbl->GetDetailsOf(This,pidl,iColumn,psd);
   4857 }
   4858 static FORCEINLINE HRESULT IShellFolder2_MapColumnToSCID(IShellFolder2* This,UINT iColumn,SHCOLUMNID *pscid) {
   4859     return This->lpVtbl->MapColumnToSCID(This,iColumn,pscid);
   4860 }
   4861 #endif
   4862 #endif
   4863 
   4864 #endif
   4865 
   4866 HRESULT STDMETHODCALLTYPE IShellFolder2_GetDefaultSearchGUID_Proxy(
   4867     IShellFolder2* This,
   4868     GUID *pguid);
   4869 void __RPC_STUB IShellFolder2_GetDefaultSearchGUID_Stub(
   4870     IRpcStubBuffer* This,
   4871     IRpcChannelBuffer* pRpcChannelBuffer,
   4872     PRPC_MESSAGE pRpcMessage,
   4873     DWORD* pdwStubPhase);
   4874 HRESULT STDMETHODCALLTYPE IShellFolder2_EnumSearches_Proxy(
   4875     IShellFolder2* This,
   4876     IEnumExtraSearch **ppenum);
   4877 void __RPC_STUB IShellFolder2_EnumSearches_Stub(
   4878     IRpcStubBuffer* This,
   4879     IRpcChannelBuffer* pRpcChannelBuffer,
   4880     PRPC_MESSAGE pRpcMessage,
   4881     DWORD* pdwStubPhase);
   4882 HRESULT STDMETHODCALLTYPE IShellFolder2_GetDefaultColumn_Proxy(
   4883     IShellFolder2* This,
   4884     DWORD dwRes,
   4885     ULONG *pSort,
   4886     ULONG *pDisplay);
   4887 void __RPC_STUB IShellFolder2_GetDefaultColumn_Stub(
   4888     IRpcStubBuffer* This,
   4889     IRpcChannelBuffer* pRpcChannelBuffer,
   4890     PRPC_MESSAGE pRpcMessage,
   4891     DWORD* pdwStubPhase);
   4892 HRESULT STDMETHODCALLTYPE IShellFolder2_GetDefaultColumnState_Proxy(
   4893     IShellFolder2* This,
   4894     UINT iColumn,
   4895     SHCOLSTATEF *pcsFlags);
   4896 void __RPC_STUB IShellFolder2_GetDefaultColumnState_Stub(
   4897     IRpcStubBuffer* This,
   4898     IRpcChannelBuffer* pRpcChannelBuffer,
   4899     PRPC_MESSAGE pRpcMessage,
   4900     DWORD* pdwStubPhase);
   4901 HRESULT STDMETHODCALLTYPE IShellFolder2_GetDetailsEx_Proxy(
   4902     IShellFolder2* This,
   4903     PCUITEMID_CHILD pidl,
   4904     const SHCOLUMNID *pscid,
   4905     VARIANT *pv);
   4906 void __RPC_STUB IShellFolder2_GetDetailsEx_Stub(
   4907     IRpcStubBuffer* This,
   4908     IRpcChannelBuffer* pRpcChannelBuffer,
   4909     PRPC_MESSAGE pRpcMessage,
   4910     DWORD* pdwStubPhase);
   4911 HRESULT STDMETHODCALLTYPE IShellFolder2_GetDetailsOf_Proxy(
   4912     IShellFolder2* This,
   4913     PCUITEMID_CHILD pidl,
   4914     UINT iColumn,
   4915     SHELLDETAILS *psd);
   4916 void __RPC_STUB IShellFolder2_GetDetailsOf_Stub(
   4917     IRpcStubBuffer* This,
   4918     IRpcChannelBuffer* pRpcChannelBuffer,
   4919     PRPC_MESSAGE pRpcMessage,
   4920     DWORD* pdwStubPhase);
   4921 HRESULT STDMETHODCALLTYPE IShellFolder2_MapColumnToSCID_Proxy(
   4922     IShellFolder2* This,
   4923     UINT iColumn,
   4924     SHCOLUMNID *pscid);
   4925 void __RPC_STUB IShellFolder2_MapColumnToSCID_Stub(
   4926     IRpcStubBuffer* This,
   4927     IRpcChannelBuffer* pRpcChannelBuffer,
   4928     PRPC_MESSAGE pRpcMessage,
   4929     DWORD* pdwStubPhase);
   4930 
   4931 #endif  /* __IShellFolder2_INTERFACE_DEFINED__ */
   4932 
   4933 typedef char *LPVIEWSETTINGS;
   4934 
   4935 typedef enum FOLDERFLAGS {
   4936     FWF_NONE = 0x0,
   4937     FWF_AUTOARRANGE = 0x1,
   4938     FWF_ABBREVIATEDNAMES = 0x2,
   4939     FWF_SNAPTOGRID = 0x4,
   4940     FWF_OWNERDATA = 0x8,
   4941     FWF_BESTFITWINDOW = 0x10,
   4942     FWF_DESKTOP = 0x20,
   4943     FWF_SINGLESEL = 0x40,
   4944     FWF_NOSUBFOLDERS = 0x80,
   4945     FWF_TRANSPARENT = 0x100,
   4946     FWF_NOCLIENTEDGE = 0x200,
   4947     FWF_NOSCROLL = 0x400,
   4948     FWF_ALIGNLEFT = 0x800,
   4949     FWF_NOICONS = 0x1000,
   4950     FWF_SHOWSELALWAYS = 0x2000,
   4951     FWF_NOVISIBLE = 0x4000,
   4952     FWF_SINGLECLICKACTIVATE = 0x8000,
   4953     FWF_NOWEBVIEW = 0x10000,
   4954     FWF_HIDEFILENAMES = 0x20000,
   4955     FWF_CHECKSELECT = 0x40000,
   4956     FWF_NOENUMREFRESH = 0x80000,
   4957     FWF_NOGROUPING = 0x100000,
   4958     FWF_FULLROWSELECT = 0x200000,
   4959     FWF_NOFILTERS = 0x400000,
   4960     FWF_NOCOLUMNHEADER = 0x800000,
   4961     FWF_NOHEADERINALLVIEWS = 0x1000000,
   4962     FWF_EXTENDEDTILES = 0x2000000,
   4963     FWF_TRICHECKSELECT = 0x4000000,
   4964     FWF_AUTOCHECKSELECT = 0x8000000,
   4965     FWF_NOBROWSERVIEWSTATE = 0x10000000,
   4966     FWF_SUBSETGROUPS = 0x20000000,
   4967     FWF_USESEARCHFOLDER = 0x40000000,
   4968     FWF_ALLOWRTLREADING = 0x80000000
   4969 } FOLDERFLAGS;
   4970 
   4971 DEFINE_ENUM_FLAG_OPERATORS(FOLDERFLAGS)
   4972 
   4973 typedef enum FOLDERVIEWMODE {
   4974     FVM_AUTO = -1,
   4975     FVM_FIRST = 1,
   4976     FVM_ICON = 1,
   4977     FVM_SMALLICON = 2,
   4978     FVM_LIST = 3,
   4979     FVM_DETAILS = 4,
   4980     FVM_THUMBNAIL = 5,
   4981     FVM_TILE = 6,
   4982     FVM_THUMBSTRIP = 7,
   4983     FVM_CONTENT = 8,
   4984     FVM_LAST = 8
   4985 } FOLDERVIEWMODE;
   4986 
   4987 #if NTDDI_VERSION >= NTDDI_VISTA
   4988 typedef enum FOLDERLOGICALVIEWMODE {
   4989     FLVM_UNSPECIFIED = -1,
   4990     FLVM_FIRST = 1,
   4991     FLVM_DETAILS = 1,
   4992     FLVM_TILES = 2,
   4993     FLVM_ICONS = 3,
   4994     FLVM_LIST = 4,
   4995     FLVM_CONTENT = 5,
   4996     FLVM_LAST = 5
   4997 } FOLDERLOGICALVIEWMODE;
   4998 #endif
   4999 typedef struct FOLDERSETTINGS {
   5000     UINT ViewMode;
   5001     UINT fFlags;
   5002 } FOLDERSETTINGS;
   5003 
   5004 typedef FOLDERSETTINGS *LPFOLDERSETTINGS;
   5005 typedef const FOLDERSETTINGS *LPCFOLDERSETTINGS;
   5006 typedef FOLDERSETTINGS *PFOLDERSETTINGS;
   5007 
   5008 /*****************************************************************************
   5009  * IFolderViewOptions interface
   5010  */
   5011 #ifndef __IFolderViewOptions_INTERFACE_DEFINED__
   5012 #define __IFolderViewOptions_INTERFACE_DEFINED__
   5013 
   5014 typedef enum FOLDERVIEWOPTIONS {
   5015     FVO_DEFAULT = 0x0,
   5016     FVO_VISTALAYOUT = 0x1,
   5017     FVO_CUSTOMPOSITION = 0x2,
   5018     FVO_CUSTOMORDERING = 0x4,
   5019     FVO_SUPPORTHYPERLINKS = 0x8,
   5020     FVO_NOANIMATIONS = 0x10,
   5021     FVO_NOSCROLLTIPS = 0x20
   5022 } FOLDERVIEWOPTIONS;
   5023 
   5024 DEFINE_ENUM_FLAG_OPERATORS(FOLDERVIEWOPTIONS)
   5025 
   5026 DEFINE_GUID(IID_IFolderViewOptions, 0x3cc974d2, 0xb302, 0x4d36, 0xad,0x3e, 0x06,0xd9,0x3f,0x69,0x5d,0x3f);
   5027 #if defined(__cplusplus) && !defined(CINTERFACE)
   5028 MIDL_INTERFACE("3cc974d2-b302-4d36-ad3e-06d93f695d3f")
   5029 IFolderViewOptions : public IUnknown
   5030 {
   5031     virtual HRESULT STDMETHODCALLTYPE SetFolderViewOptions(
   5032         FOLDERVIEWOPTIONS fvoMask,
   5033         FOLDERVIEWOPTIONS fvoFlags) = 0;
   5034 
   5035     virtual HRESULT STDMETHODCALLTYPE GetFolderViewOptions(
   5036         FOLDERVIEWOPTIONS *pfvoFlags) = 0;
   5037 
   5038 };
   5039 #ifdef __CRT_UUID_DECL
   5040 __CRT_UUID_DECL(IFolderViewOptions, 0x3cc974d2, 0xb302, 0x4d36, 0xad,0x3e, 0x06,0xd9,0x3f,0x69,0x5d,0x3f)
   5041 #endif
   5042 #else
   5043 typedef struct IFolderViewOptionsVtbl {
   5044     BEGIN_INTERFACE
   5045 
   5046     /*** IUnknown methods ***/
   5047     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5048         IFolderViewOptions* This,
   5049         REFIID riid,
   5050         void **ppvObject);
   5051 
   5052     ULONG (STDMETHODCALLTYPE *AddRef)(
   5053         IFolderViewOptions* This);
   5054 
   5055     ULONG (STDMETHODCALLTYPE *Release)(
   5056         IFolderViewOptions* This);
   5057 
   5058     /*** IFolderViewOptions methods ***/
   5059     HRESULT (STDMETHODCALLTYPE *SetFolderViewOptions)(
   5060         IFolderViewOptions* This,
   5061         FOLDERVIEWOPTIONS fvoMask,
   5062         FOLDERVIEWOPTIONS fvoFlags);
   5063 
   5064     HRESULT (STDMETHODCALLTYPE *GetFolderViewOptions)(
   5065         IFolderViewOptions* This,
   5066         FOLDERVIEWOPTIONS *pfvoFlags);
   5067 
   5068     END_INTERFACE
   5069 } IFolderViewOptionsVtbl;
   5070 interface IFolderViewOptions {
   5071     CONST_VTBL IFolderViewOptionsVtbl* lpVtbl;
   5072 };
   5073 
   5074 #ifdef COBJMACROS
   5075 #ifndef WIDL_C_INLINE_WRAPPERS
   5076 /*** IUnknown methods ***/
   5077 #define IFolderViewOptions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5078 #define IFolderViewOptions_AddRef(This) (This)->lpVtbl->AddRef(This)
   5079 #define IFolderViewOptions_Release(This) (This)->lpVtbl->Release(This)
   5080 /*** IFolderViewOptions methods ***/
   5081 #define IFolderViewOptions_SetFolderViewOptions(This,fvoMask,fvoFlags) (This)->lpVtbl->SetFolderViewOptions(This,fvoMask,fvoFlags)
   5082 #define IFolderViewOptions_GetFolderViewOptions(This,pfvoFlags) (This)->lpVtbl->GetFolderViewOptions(This,pfvoFlags)
   5083 #else
   5084 /*** IUnknown methods ***/
   5085 static FORCEINLINE HRESULT IFolderViewOptions_QueryInterface(IFolderViewOptions* This,REFIID riid,void **ppvObject) {
   5086     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5087 }
   5088 static FORCEINLINE ULONG IFolderViewOptions_AddRef(IFolderViewOptions* This) {
   5089     return This->lpVtbl->AddRef(This);
   5090 }
   5091 static FORCEINLINE ULONG IFolderViewOptions_Release(IFolderViewOptions* This) {
   5092     return This->lpVtbl->Release(This);
   5093 }
   5094 /*** IFolderViewOptions methods ***/
   5095 static FORCEINLINE HRESULT IFolderViewOptions_SetFolderViewOptions(IFolderViewOptions* This,FOLDERVIEWOPTIONS fvoMask,FOLDERVIEWOPTIONS fvoFlags) {
   5096     return This->lpVtbl->SetFolderViewOptions(This,fvoMask,fvoFlags);
   5097 }
   5098 static FORCEINLINE HRESULT IFolderViewOptions_GetFolderViewOptions(IFolderViewOptions* This,FOLDERVIEWOPTIONS *pfvoFlags) {
   5099     return This->lpVtbl->GetFolderViewOptions(This,pfvoFlags);
   5100 }
   5101 #endif
   5102 #endif
   5103 
   5104 #endif
   5105 
   5106 HRESULT STDMETHODCALLTYPE IFolderViewOptions_SetFolderViewOptions_Proxy(
   5107     IFolderViewOptions* This,
   5108     FOLDERVIEWOPTIONS fvoMask,
   5109     FOLDERVIEWOPTIONS fvoFlags);
   5110 void __RPC_STUB IFolderViewOptions_SetFolderViewOptions_Stub(
   5111     IRpcStubBuffer* This,
   5112     IRpcChannelBuffer* pRpcChannelBuffer,
   5113     PRPC_MESSAGE pRpcMessage,
   5114     DWORD* pdwStubPhase);
   5115 HRESULT STDMETHODCALLTYPE IFolderViewOptions_GetFolderViewOptions_Proxy(
   5116     IFolderViewOptions* This,
   5117     FOLDERVIEWOPTIONS *pfvoFlags);
   5118 void __RPC_STUB IFolderViewOptions_GetFolderViewOptions_Stub(
   5119     IRpcStubBuffer* This,
   5120     IRpcChannelBuffer* pRpcChannelBuffer,
   5121     PRPC_MESSAGE pRpcMessage,
   5122     DWORD* pdwStubPhase);
   5123 
   5124 #endif  /* __IFolderViewOptions_INTERFACE_DEFINED__ */
   5125 
   5126 typedef enum _SVSIF {
   5127     SVSI_DESELECT = 0x0,
   5128     SVSI_SELECT = 0x1,
   5129     SVSI_EDIT = 0x3,
   5130     SVSI_DESELECTOTHERS = 0x4,
   5131     SVSI_ENSUREVISIBLE = 0x8,
   5132     SVSI_FOCUSED = 0x10,
   5133     SVSI_TRANSLATEPT = 0x20,
   5134     SVSI_SELECTIONMARK = 0x40,
   5135     SVSI_POSITIONITEM = 0x80,
   5136     SVSI_CHECK = 0x100,
   5137     SVSI_CHECK2 = 0x200,
   5138     SVSI_KEYBOARDSELECT = 0x401,
   5139     SVSI_NOTAKEFOCUS = 0x40000000
   5140 } _SVSIF;
   5141 
   5142 #define SVSI_NOSTATECHANGE   ((UINT)0x80000000)
   5143 
   5144 typedef UINT SVSIF;
   5145 
   5146 typedef enum _SVGIO {
   5147     SVGIO_BACKGROUND = 0x0,
   5148     SVGIO_SELECTION = 0x1,
   5149     SVGIO_ALLVIEW = 0x2,
   5150     SVGIO_CHECKED = 0x3,
   5151     SVGIO_TYPE_MASK = 0xf,
   5152     SVGIO_FLAG_VIEWORDER = 0x80000000
   5153 } _SVGIO;
   5154 
   5155 DEFINE_ENUM_FLAG_OPERATORS(_SVGIO)
   5156 
   5157 typedef int SVGIO;
   5158 
   5159 typedef enum SVUIA_STATUS {
   5160     SVUIA_DEACTIVATE = 0,
   5161     SVUIA_ACTIVATE_NOFOCUS = 1,
   5162     SVUIA_ACTIVATE_FOCUS = 2,
   5163     SVUIA_INPLACEACTIVATE = 3
   5164 } SVUIA_STATUS;
   5165 
   5166 #ifdef _FIX_ENABLEMODELESS_CONFLICT
   5167 #define EnableModeless EnableModelessSV
   5168 #endif
   5169 
   5170 #if 0
   5171 typedef LPARAM LPFNSVADDPROPSHEETPAGE;
   5172 #else
   5173 #include <prsht.h>
   5174 typedef LPFNADDPROPSHEETPAGE LPFNSVADDPROPSHEETPAGE;
   5175 #endif
   5176 
   5177 #ifndef __IShellBrowser_FWD_DEFINED__
   5178 #define __IShellBrowser_FWD_DEFINED__
   5179 typedef interface IShellBrowser IShellBrowser;
   5180 #endif
   5181 
   5182 
   5183 /*****************************************************************************
   5184  * IShellView interface
   5185  */
   5186 #ifndef __IShellView_INTERFACE_DEFINED__
   5187 #define __IShellView_INTERFACE_DEFINED__
   5188 
   5189 DEFINE_GUID(IID_IShellView, 0x000214e3, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   5190 #if defined(__cplusplus) && !defined(CINTERFACE)
   5191 MIDL_INTERFACE("000214e3-0000-0000-c000-000000000046")
   5192 IShellView : public IOleWindow
   5193 {
   5194     virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator(
   5195         MSG *pmsg) = 0;
   5196 
   5197     virtual HRESULT STDMETHODCALLTYPE EnableModeless(
   5198         WINBOOL fEnable) = 0;
   5199 
   5200     virtual HRESULT STDMETHODCALLTYPE UIActivate(
   5201         UINT uState) = 0;
   5202 
   5203     virtual HRESULT STDMETHODCALLTYPE Refresh(
   5204         ) = 0;
   5205 
   5206     virtual HRESULT STDMETHODCALLTYPE CreateViewWindow(
   5207         IShellView *psvPrevious,
   5208         LPCFOLDERSETTINGS pfs,
   5209         IShellBrowser *psb,
   5210         RECT *prcView,
   5211         HWND *phWnd) = 0;
   5212 
   5213     virtual HRESULT STDMETHODCALLTYPE DestroyViewWindow(
   5214         ) = 0;
   5215 
   5216     virtual HRESULT STDMETHODCALLTYPE GetCurrentInfo(
   5217         LPFOLDERSETTINGS pfs) = 0;
   5218 
   5219     virtual HRESULT STDMETHODCALLTYPE AddPropertySheetPages(
   5220         DWORD dwReserved,
   5221         LPFNSVADDPROPSHEETPAGE pfn,
   5222         LPARAM lparam) = 0;
   5223 
   5224     virtual HRESULT STDMETHODCALLTYPE SaveViewState(
   5225         ) = 0;
   5226 
   5227     virtual HRESULT STDMETHODCALLTYPE SelectItem(
   5228         PCUITEMID_CHILD pidlItem,
   5229         SVSIF uFlags) = 0;
   5230 
   5231     virtual HRESULT STDMETHODCALLTYPE GetItemObject(
   5232         UINT uItem,
   5233         REFIID riid,
   5234         void **ppv) = 0;
   5235 
   5236 };
   5237 #ifdef __CRT_UUID_DECL
   5238 __CRT_UUID_DECL(IShellView, 0x000214e3, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   5239 #endif
   5240 #else
   5241 typedef struct IShellViewVtbl {
   5242     BEGIN_INTERFACE
   5243 
   5244     /*** IUnknown methods ***/
   5245     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5246         IShellView* This,
   5247         REFIID riid,
   5248         void **ppvObject);
   5249 
   5250     ULONG (STDMETHODCALLTYPE *AddRef)(
   5251         IShellView* This);
   5252 
   5253     ULONG (STDMETHODCALLTYPE *Release)(
   5254         IShellView* This);
   5255 
   5256     /*** IOleWindow methods ***/
   5257     HRESULT (STDMETHODCALLTYPE *GetWindow)(
   5258         IShellView* This,
   5259         HWND *phwnd);
   5260 
   5261     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
   5262         IShellView* This,
   5263         WINBOOL fEnterMode);
   5264 
   5265     /*** IShellView methods ***/
   5266     HRESULT (STDMETHODCALLTYPE *TranslateAccelerator)(
   5267         IShellView* This,
   5268         MSG *pmsg);
   5269 
   5270     HRESULT (STDMETHODCALLTYPE *EnableModeless)(
   5271         IShellView* This,
   5272         WINBOOL fEnable);
   5273 
   5274     HRESULT (STDMETHODCALLTYPE *UIActivate)(
   5275         IShellView* This,
   5276         UINT uState);
   5277 
   5278     HRESULT (STDMETHODCALLTYPE *Refresh)(
   5279         IShellView* This);
   5280 
   5281     HRESULT (STDMETHODCALLTYPE *CreateViewWindow)(
   5282         IShellView* This,
   5283         IShellView *psvPrevious,
   5284         LPCFOLDERSETTINGS pfs,
   5285         IShellBrowser *psb,
   5286         RECT *prcView,
   5287         HWND *phWnd);
   5288 
   5289     HRESULT (STDMETHODCALLTYPE *DestroyViewWindow)(
   5290         IShellView* This);
   5291 
   5292     HRESULT (STDMETHODCALLTYPE *GetCurrentInfo)(
   5293         IShellView* This,
   5294         LPFOLDERSETTINGS pfs);
   5295 
   5296     HRESULT (STDMETHODCALLTYPE *AddPropertySheetPages)(
   5297         IShellView* This,
   5298         DWORD dwReserved,
   5299         LPFNSVADDPROPSHEETPAGE pfn,
   5300         LPARAM lparam);
   5301 
   5302     HRESULT (STDMETHODCALLTYPE *SaveViewState)(
   5303         IShellView* This);
   5304 
   5305     HRESULT (STDMETHODCALLTYPE *SelectItem)(
   5306         IShellView* This,
   5307         PCUITEMID_CHILD pidlItem,
   5308         SVSIF uFlags);
   5309 
   5310     HRESULT (STDMETHODCALLTYPE *GetItemObject)(
   5311         IShellView* This,
   5312         UINT uItem,
   5313         REFIID riid,
   5314         void **ppv);
   5315 
   5316     END_INTERFACE
   5317 } IShellViewVtbl;
   5318 interface IShellView {
   5319     CONST_VTBL IShellViewVtbl* lpVtbl;
   5320 };
   5321 
   5322 #ifdef COBJMACROS
   5323 #ifndef WIDL_C_INLINE_WRAPPERS
   5324 /*** IUnknown methods ***/
   5325 #define IShellView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5326 #define IShellView_AddRef(This) (This)->lpVtbl->AddRef(This)
   5327 #define IShellView_Release(This) (This)->lpVtbl->Release(This)
   5328 /*** IOleWindow methods ***/
   5329 #define IShellView_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
   5330 #define IShellView_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
   5331 /*** IShellView methods ***/
   5332 #define IShellView_TranslateAccelerator(This,pmsg) (This)->lpVtbl->TranslateAccelerator(This,pmsg)
   5333 #define IShellView_EnableModeless(This,fEnable) (This)->lpVtbl->EnableModeless(This,fEnable)
   5334 #define IShellView_UIActivate(This,uState) (This)->lpVtbl->UIActivate(This,uState)
   5335 #define IShellView_Refresh(This) (This)->lpVtbl->Refresh(This)
   5336 #define IShellView_CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd) (This)->lpVtbl->CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd)
   5337 #define IShellView_DestroyViewWindow(This) (This)->lpVtbl->DestroyViewWindow(This)
   5338 #define IShellView_GetCurrentInfo(This,pfs) (This)->lpVtbl->GetCurrentInfo(This,pfs)
   5339 #define IShellView_AddPropertySheetPages(This,dwReserved,pfn,lparam) (This)->lpVtbl->AddPropertySheetPages(This,dwReserved,pfn,lparam)
   5340 #define IShellView_SaveViewState(This) (This)->lpVtbl->SaveViewState(This)
   5341 #define IShellView_SelectItem(This,pidlItem,uFlags) (This)->lpVtbl->SelectItem(This,pidlItem,uFlags)
   5342 #define IShellView_GetItemObject(This,uItem,riid,ppv) (This)->lpVtbl->GetItemObject(This,uItem,riid,ppv)
   5343 #else
   5344 /*** IUnknown methods ***/
   5345 static FORCEINLINE HRESULT IShellView_QueryInterface(IShellView* This,REFIID riid,void **ppvObject) {
   5346     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5347 }
   5348 static FORCEINLINE ULONG IShellView_AddRef(IShellView* This) {
   5349     return This->lpVtbl->AddRef(This);
   5350 }
   5351 static FORCEINLINE ULONG IShellView_Release(IShellView* This) {
   5352     return This->lpVtbl->Release(This);
   5353 }
   5354 /*** IOleWindow methods ***/
   5355 static FORCEINLINE HRESULT IShellView_GetWindow(IShellView* This,HWND *phwnd) {
   5356     return This->lpVtbl->GetWindow(This,phwnd);
   5357 }
   5358 static FORCEINLINE HRESULT IShellView_ContextSensitiveHelp(IShellView* This,WINBOOL fEnterMode) {
   5359     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
   5360 }
   5361 /*** IShellView methods ***/
   5362 static FORCEINLINE HRESULT IShellView_TranslateAccelerator(IShellView* This,MSG *pmsg) {
   5363     return This->lpVtbl->TranslateAccelerator(This,pmsg);
   5364 }
   5365 static FORCEINLINE HRESULT IShellView_EnableModeless(IShellView* This,WINBOOL fEnable) {
   5366     return This->lpVtbl->EnableModeless(This,fEnable);
   5367 }
   5368 static FORCEINLINE HRESULT IShellView_UIActivate(IShellView* This,UINT uState) {
   5369     return This->lpVtbl->UIActivate(This,uState);
   5370 }
   5371 static FORCEINLINE HRESULT IShellView_Refresh(IShellView* This) {
   5372     return This->lpVtbl->Refresh(This);
   5373 }
   5374 static FORCEINLINE HRESULT IShellView_CreateViewWindow(IShellView* This,IShellView *psvPrevious,LPCFOLDERSETTINGS pfs,IShellBrowser *psb,RECT *prcView,HWND *phWnd) {
   5375     return This->lpVtbl->CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd);
   5376 }
   5377 static FORCEINLINE HRESULT IShellView_DestroyViewWindow(IShellView* This) {
   5378     return This->lpVtbl->DestroyViewWindow(This);
   5379 }
   5380 static FORCEINLINE HRESULT IShellView_GetCurrentInfo(IShellView* This,LPFOLDERSETTINGS pfs) {
   5381     return This->lpVtbl->GetCurrentInfo(This,pfs);
   5382 }
   5383 static FORCEINLINE HRESULT IShellView_AddPropertySheetPages(IShellView* This,DWORD dwReserved,LPFNSVADDPROPSHEETPAGE pfn,LPARAM lparam) {
   5384     return This->lpVtbl->AddPropertySheetPages(This,dwReserved,pfn,lparam);
   5385 }
   5386 static FORCEINLINE HRESULT IShellView_SaveViewState(IShellView* This) {
   5387     return This->lpVtbl->SaveViewState(This);
   5388 }
   5389 static FORCEINLINE HRESULT IShellView_SelectItem(IShellView* This,PCUITEMID_CHILD pidlItem,SVSIF uFlags) {
   5390     return This->lpVtbl->SelectItem(This,pidlItem,uFlags);
   5391 }
   5392 static FORCEINLINE HRESULT IShellView_GetItemObject(IShellView* This,UINT uItem,REFIID riid,void **ppv) {
   5393     return This->lpVtbl->GetItemObject(This,uItem,riid,ppv);
   5394 }
   5395 #endif
   5396 #endif
   5397 
   5398 #endif
   5399 
   5400 HRESULT STDMETHODCALLTYPE IShellView_TranslateAccelerator_Proxy(
   5401     IShellView* This,
   5402     MSG *pmsg);
   5403 void __RPC_STUB IShellView_TranslateAccelerator_Stub(
   5404     IRpcStubBuffer* This,
   5405     IRpcChannelBuffer* pRpcChannelBuffer,
   5406     PRPC_MESSAGE pRpcMessage,
   5407     DWORD* pdwStubPhase);
   5408 HRESULT STDMETHODCALLTYPE IShellView_EnableModeless_Proxy(
   5409     IShellView* This,
   5410     WINBOOL fEnable);
   5411 void __RPC_STUB IShellView_EnableModeless_Stub(
   5412     IRpcStubBuffer* This,
   5413     IRpcChannelBuffer* pRpcChannelBuffer,
   5414     PRPC_MESSAGE pRpcMessage,
   5415     DWORD* pdwStubPhase);
   5416 HRESULT STDMETHODCALLTYPE IShellView_UIActivate_Proxy(
   5417     IShellView* This,
   5418     UINT uState);
   5419 void __RPC_STUB IShellView_UIActivate_Stub(
   5420     IRpcStubBuffer* This,
   5421     IRpcChannelBuffer* pRpcChannelBuffer,
   5422     PRPC_MESSAGE pRpcMessage,
   5423     DWORD* pdwStubPhase);
   5424 HRESULT STDMETHODCALLTYPE IShellView_Refresh_Proxy(
   5425     IShellView* This);
   5426 void __RPC_STUB IShellView_Refresh_Stub(
   5427     IRpcStubBuffer* This,
   5428     IRpcChannelBuffer* pRpcChannelBuffer,
   5429     PRPC_MESSAGE pRpcMessage,
   5430     DWORD* pdwStubPhase);
   5431 HRESULT STDMETHODCALLTYPE IShellView_CreateViewWindow_Proxy(
   5432     IShellView* This,
   5433     IShellView *psvPrevious,
   5434     LPCFOLDERSETTINGS pfs,
   5435     IShellBrowser *psb,
   5436     RECT *prcView,
   5437     HWND *phWnd);
   5438 void __RPC_STUB IShellView_CreateViewWindow_Stub(
   5439     IRpcStubBuffer* This,
   5440     IRpcChannelBuffer* pRpcChannelBuffer,
   5441     PRPC_MESSAGE pRpcMessage,
   5442     DWORD* pdwStubPhase);
   5443 HRESULT STDMETHODCALLTYPE IShellView_DestroyViewWindow_Proxy(
   5444     IShellView* This);
   5445 void __RPC_STUB IShellView_DestroyViewWindow_Stub(
   5446     IRpcStubBuffer* This,
   5447     IRpcChannelBuffer* pRpcChannelBuffer,
   5448     PRPC_MESSAGE pRpcMessage,
   5449     DWORD* pdwStubPhase);
   5450 HRESULT STDMETHODCALLTYPE IShellView_GetCurrentInfo_Proxy(
   5451     IShellView* This,
   5452     LPFOLDERSETTINGS pfs);
   5453 void __RPC_STUB IShellView_GetCurrentInfo_Stub(
   5454     IRpcStubBuffer* This,
   5455     IRpcChannelBuffer* pRpcChannelBuffer,
   5456     PRPC_MESSAGE pRpcMessage,
   5457     DWORD* pdwStubPhase);
   5458 HRESULT STDMETHODCALLTYPE IShellView_SaveViewState_Proxy(
   5459     IShellView* This);
   5460 void __RPC_STUB IShellView_SaveViewState_Stub(
   5461     IRpcStubBuffer* This,
   5462     IRpcChannelBuffer* pRpcChannelBuffer,
   5463     PRPC_MESSAGE pRpcMessage,
   5464     DWORD* pdwStubPhase);
   5465 HRESULT STDMETHODCALLTYPE IShellView_SelectItem_Proxy(
   5466     IShellView* This,
   5467     PCUITEMID_CHILD pidlItem,
   5468     SVSIF uFlags);
   5469 void __RPC_STUB IShellView_SelectItem_Stub(
   5470     IRpcStubBuffer* This,
   5471     IRpcChannelBuffer* pRpcChannelBuffer,
   5472     PRPC_MESSAGE pRpcMessage,
   5473     DWORD* pdwStubPhase);
   5474 HRESULT STDMETHODCALLTYPE IShellView_GetItemObject_Proxy(
   5475     IShellView* This,
   5476     UINT uItem,
   5477     REFIID riid,
   5478     void **ppv);
   5479 void __RPC_STUB IShellView_GetItemObject_Stub(
   5480     IRpcStubBuffer* This,
   5481     IRpcChannelBuffer* pRpcChannelBuffer,
   5482     PRPC_MESSAGE pRpcMessage,
   5483     DWORD* pdwStubPhase);
   5484 
   5485 #endif  /* __IShellView_INTERFACE_DEFINED__ */
   5486 
   5487 typedef IShellView *LPSHELLVIEW;
   5488 
   5489 /*****************************************************************************
   5490  * IShellView2 interface
   5491  */
   5492 #ifndef __IShellView2_INTERFACE_DEFINED__
   5493 #define __IShellView2_INTERFACE_DEFINED__
   5494 
   5495 typedef GUID SHELLVIEWID;
   5496 
   5497 #define SV2GV_CURRENTVIEW ((UINT)-1)
   5498 #define SV2GV_DEFAULTVIEW ((UINT)-2)
   5499 
   5500 #include <pshpack8.h>
   5501 typedef struct _SV2CVW2_PARAMS {
   5502     DWORD cbSize;
   5503     IShellView *psvPrev;
   5504     LPCFOLDERSETTINGS pfs;
   5505     IShellBrowser *psbOwner;
   5506     RECT *prcView;
   5507     const SHELLVIEWID *pvid;
   5508     HWND hwndView;
   5509 } SV2CVW2_PARAMS;
   5510 typedef struct _SV2CVW2_PARAMS *LPSV2CVW2_PARAMS;
   5511 #include <poppack.h>
   5512 
   5513 DEFINE_GUID(IID_IShellView2, 0x88e39e80, 0x3578, 0x11cf, 0xae,0x69, 0x08,0x00,0x2b,0x2e,0x12,0x62);
   5514 #if defined(__cplusplus) && !defined(CINTERFACE)
   5515 MIDL_INTERFACE("88e39e80-3578-11cf-ae69-08002b2e1262")
   5516 IShellView2 : public IShellView
   5517 {
   5518     virtual HRESULT STDMETHODCALLTYPE GetView(
   5519         SHELLVIEWID *pvid,
   5520         ULONG uView) = 0;
   5521 
   5522     virtual HRESULT STDMETHODCALLTYPE CreateViewWindow2(
   5523         LPSV2CVW2_PARAMS lpParams) = 0;
   5524 
   5525     virtual HRESULT STDMETHODCALLTYPE HandleRename(
   5526         PCUITEMID_CHILD pidlNew) = 0;
   5527 
   5528     virtual HRESULT STDMETHODCALLTYPE SelectAndPositionItem(
   5529         PCUITEMID_CHILD pidlItem,
   5530         UINT uFlags,
   5531         POINT *ppt) = 0;
   5532 
   5533 };
   5534 #ifdef __CRT_UUID_DECL
   5535 __CRT_UUID_DECL(IShellView2, 0x88e39e80, 0x3578, 0x11cf, 0xae,0x69, 0x08,0x00,0x2b,0x2e,0x12,0x62)
   5536 #endif
   5537 #else
   5538 typedef struct IShellView2Vtbl {
   5539     BEGIN_INTERFACE
   5540 
   5541     /*** IUnknown methods ***/
   5542     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5543         IShellView2* This,
   5544         REFIID riid,
   5545         void **ppvObject);
   5546 
   5547     ULONG (STDMETHODCALLTYPE *AddRef)(
   5548         IShellView2* This);
   5549 
   5550     ULONG (STDMETHODCALLTYPE *Release)(
   5551         IShellView2* This);
   5552 
   5553     /*** IOleWindow methods ***/
   5554     HRESULT (STDMETHODCALLTYPE *GetWindow)(
   5555         IShellView2* This,
   5556         HWND *phwnd);
   5557 
   5558     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
   5559         IShellView2* This,
   5560         WINBOOL fEnterMode);
   5561 
   5562     /*** IShellView methods ***/
   5563     HRESULT (STDMETHODCALLTYPE *TranslateAccelerator)(
   5564         IShellView2* This,
   5565         MSG *pmsg);
   5566 
   5567     HRESULT (STDMETHODCALLTYPE *EnableModeless)(
   5568         IShellView2* This,
   5569         WINBOOL fEnable);
   5570 
   5571     HRESULT (STDMETHODCALLTYPE *UIActivate)(
   5572         IShellView2* This,
   5573         UINT uState);
   5574 
   5575     HRESULT (STDMETHODCALLTYPE *Refresh)(
   5576         IShellView2* This);
   5577 
   5578     HRESULT (STDMETHODCALLTYPE *CreateViewWindow)(
   5579         IShellView2* This,
   5580         IShellView *psvPrevious,
   5581         LPCFOLDERSETTINGS pfs,
   5582         IShellBrowser *psb,
   5583         RECT *prcView,
   5584         HWND *phWnd);
   5585 
   5586     HRESULT (STDMETHODCALLTYPE *DestroyViewWindow)(
   5587         IShellView2* This);
   5588 
   5589     HRESULT (STDMETHODCALLTYPE *GetCurrentInfo)(
   5590         IShellView2* This,
   5591         LPFOLDERSETTINGS pfs);
   5592 
   5593     HRESULT (STDMETHODCALLTYPE *AddPropertySheetPages)(
   5594         IShellView2* This,
   5595         DWORD dwReserved,
   5596         LPFNSVADDPROPSHEETPAGE pfn,
   5597         LPARAM lparam);
   5598 
   5599     HRESULT (STDMETHODCALLTYPE *SaveViewState)(
   5600         IShellView2* This);
   5601 
   5602     HRESULT (STDMETHODCALLTYPE *SelectItem)(
   5603         IShellView2* This,
   5604         PCUITEMID_CHILD pidlItem,
   5605         SVSIF uFlags);
   5606 
   5607     HRESULT (STDMETHODCALLTYPE *GetItemObject)(
   5608         IShellView2* This,
   5609         UINT uItem,
   5610         REFIID riid,
   5611         void **ppv);
   5612 
   5613     /*** IShellView2 methods ***/
   5614     HRESULT (STDMETHODCALLTYPE *GetView)(
   5615         IShellView2* This,
   5616         SHELLVIEWID *pvid,
   5617         ULONG uView);
   5618 
   5619     HRESULT (STDMETHODCALLTYPE *CreateViewWindow2)(
   5620         IShellView2* This,
   5621         LPSV2CVW2_PARAMS lpParams);
   5622 
   5623     HRESULT (STDMETHODCALLTYPE *HandleRename)(
   5624         IShellView2* This,
   5625         PCUITEMID_CHILD pidlNew);
   5626 
   5627     HRESULT (STDMETHODCALLTYPE *SelectAndPositionItem)(
   5628         IShellView2* This,
   5629         PCUITEMID_CHILD pidlItem,
   5630         UINT uFlags,
   5631         POINT *ppt);
   5632 
   5633     END_INTERFACE
   5634 } IShellView2Vtbl;
   5635 interface IShellView2 {
   5636     CONST_VTBL IShellView2Vtbl* lpVtbl;
   5637 };
   5638 
   5639 #ifdef COBJMACROS
   5640 #ifndef WIDL_C_INLINE_WRAPPERS
   5641 /*** IUnknown methods ***/
   5642 #define IShellView2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5643 #define IShellView2_AddRef(This) (This)->lpVtbl->AddRef(This)
   5644 #define IShellView2_Release(This) (This)->lpVtbl->Release(This)
   5645 /*** IOleWindow methods ***/
   5646 #define IShellView2_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
   5647 #define IShellView2_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
   5648 /*** IShellView methods ***/
   5649 #define IShellView2_TranslateAccelerator(This,pmsg) (This)->lpVtbl->TranslateAccelerator(This,pmsg)
   5650 #define IShellView2_EnableModeless(This,fEnable) (This)->lpVtbl->EnableModeless(This,fEnable)
   5651 #define IShellView2_UIActivate(This,uState) (This)->lpVtbl->UIActivate(This,uState)
   5652 #define IShellView2_Refresh(This) (This)->lpVtbl->Refresh(This)
   5653 #define IShellView2_CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd) (This)->lpVtbl->CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd)
   5654 #define IShellView2_DestroyViewWindow(This) (This)->lpVtbl->DestroyViewWindow(This)
   5655 #define IShellView2_GetCurrentInfo(This,pfs) (This)->lpVtbl->GetCurrentInfo(This,pfs)
   5656 #define IShellView2_AddPropertySheetPages(This,dwReserved,pfn,lparam) (This)->lpVtbl->AddPropertySheetPages(This,dwReserved,pfn,lparam)
   5657 #define IShellView2_SaveViewState(This) (This)->lpVtbl->SaveViewState(This)
   5658 #define IShellView2_SelectItem(This,pidlItem,uFlags) (This)->lpVtbl->SelectItem(This,pidlItem,uFlags)
   5659 #define IShellView2_GetItemObject(This,uItem,riid,ppv) (This)->lpVtbl->GetItemObject(This,uItem,riid,ppv)
   5660 /*** IShellView2 methods ***/
   5661 #define IShellView2_GetView(This,pvid,uView) (This)->lpVtbl->GetView(This,pvid,uView)
   5662 #define IShellView2_CreateViewWindow2(This,lpParams) (This)->lpVtbl->CreateViewWindow2(This,lpParams)
   5663 #define IShellView2_HandleRename(This,pidlNew) (This)->lpVtbl->HandleRename(This,pidlNew)
   5664 #define IShellView2_SelectAndPositionItem(This,pidlItem,uFlags,ppt) (This)->lpVtbl->SelectAndPositionItem(This,pidlItem,uFlags,ppt)
   5665 #else
   5666 /*** IUnknown methods ***/
   5667 static FORCEINLINE HRESULT IShellView2_QueryInterface(IShellView2* This,REFIID riid,void **ppvObject) {
   5668     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5669 }
   5670 static FORCEINLINE ULONG IShellView2_AddRef(IShellView2* This) {
   5671     return This->lpVtbl->AddRef(This);
   5672 }
   5673 static FORCEINLINE ULONG IShellView2_Release(IShellView2* This) {
   5674     return This->lpVtbl->Release(This);
   5675 }
   5676 /*** IOleWindow methods ***/
   5677 static FORCEINLINE HRESULT IShellView2_GetWindow(IShellView2* This,HWND *phwnd) {
   5678     return This->lpVtbl->GetWindow(This,phwnd);
   5679 }
   5680 static FORCEINLINE HRESULT IShellView2_ContextSensitiveHelp(IShellView2* This,WINBOOL fEnterMode) {
   5681     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
   5682 }
   5683 /*** IShellView methods ***/
   5684 static FORCEINLINE HRESULT IShellView2_TranslateAccelerator(IShellView2* This,MSG *pmsg) {
   5685     return This->lpVtbl->TranslateAccelerator(This,pmsg);
   5686 }
   5687 static FORCEINLINE HRESULT IShellView2_EnableModeless(IShellView2* This,WINBOOL fEnable) {
   5688     return This->lpVtbl->EnableModeless(This,fEnable);
   5689 }
   5690 static FORCEINLINE HRESULT IShellView2_UIActivate(IShellView2* This,UINT uState) {
   5691     return This->lpVtbl->UIActivate(This,uState);
   5692 }
   5693 static FORCEINLINE HRESULT IShellView2_Refresh(IShellView2* This) {
   5694     return This->lpVtbl->Refresh(This);
   5695 }
   5696 static FORCEINLINE HRESULT IShellView2_CreateViewWindow(IShellView2* This,IShellView *psvPrevious,LPCFOLDERSETTINGS pfs,IShellBrowser *psb,RECT *prcView,HWND *phWnd) {
   5697     return This->lpVtbl->CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd);
   5698 }
   5699 static FORCEINLINE HRESULT IShellView2_DestroyViewWindow(IShellView2* This) {
   5700     return This->lpVtbl->DestroyViewWindow(This);
   5701 }
   5702 static FORCEINLINE HRESULT IShellView2_GetCurrentInfo(IShellView2* This,LPFOLDERSETTINGS pfs) {
   5703     return This->lpVtbl->GetCurrentInfo(This,pfs);
   5704 }
   5705 static FORCEINLINE HRESULT IShellView2_AddPropertySheetPages(IShellView2* This,DWORD dwReserved,LPFNSVADDPROPSHEETPAGE pfn,LPARAM lparam) {
   5706     return This->lpVtbl->AddPropertySheetPages(This,dwReserved,pfn,lparam);
   5707 }
   5708 static FORCEINLINE HRESULT IShellView2_SaveViewState(IShellView2* This) {
   5709     return This->lpVtbl->SaveViewState(This);
   5710 }
   5711 static FORCEINLINE HRESULT IShellView2_SelectItem(IShellView2* This,PCUITEMID_CHILD pidlItem,SVSIF uFlags) {
   5712     return This->lpVtbl->SelectItem(This,pidlItem,uFlags);
   5713 }
   5714 static FORCEINLINE HRESULT IShellView2_GetItemObject(IShellView2* This,UINT uItem,REFIID riid,void **ppv) {
   5715     return This->lpVtbl->GetItemObject(This,uItem,riid,ppv);
   5716 }
   5717 /*** IShellView2 methods ***/
   5718 static FORCEINLINE HRESULT IShellView2_GetView(IShellView2* This,SHELLVIEWID *pvid,ULONG uView) {
   5719     return This->lpVtbl->GetView(This,pvid,uView);
   5720 }
   5721 static FORCEINLINE HRESULT IShellView2_CreateViewWindow2(IShellView2* This,LPSV2CVW2_PARAMS lpParams) {
   5722     return This->lpVtbl->CreateViewWindow2(This,lpParams);
   5723 }
   5724 static FORCEINLINE HRESULT IShellView2_HandleRename(IShellView2* This,PCUITEMID_CHILD pidlNew) {
   5725     return This->lpVtbl->HandleRename(This,pidlNew);
   5726 }
   5727 static FORCEINLINE HRESULT IShellView2_SelectAndPositionItem(IShellView2* This,PCUITEMID_CHILD pidlItem,UINT uFlags,POINT *ppt) {
   5728     return This->lpVtbl->SelectAndPositionItem(This,pidlItem,uFlags,ppt);
   5729 }
   5730 #endif
   5731 #endif
   5732 
   5733 #endif
   5734 
   5735 HRESULT STDMETHODCALLTYPE IShellView2_GetView_Proxy(
   5736     IShellView2* This,
   5737     SHELLVIEWID *pvid,
   5738     ULONG uView);
   5739 void __RPC_STUB IShellView2_GetView_Stub(
   5740     IRpcStubBuffer* This,
   5741     IRpcChannelBuffer* pRpcChannelBuffer,
   5742     PRPC_MESSAGE pRpcMessage,
   5743     DWORD* pdwStubPhase);
   5744 HRESULT STDMETHODCALLTYPE IShellView2_CreateViewWindow2_Proxy(
   5745     IShellView2* This,
   5746     LPSV2CVW2_PARAMS lpParams);
   5747 void __RPC_STUB IShellView2_CreateViewWindow2_Stub(
   5748     IRpcStubBuffer* This,
   5749     IRpcChannelBuffer* pRpcChannelBuffer,
   5750     PRPC_MESSAGE pRpcMessage,
   5751     DWORD* pdwStubPhase);
   5752 HRESULT STDMETHODCALLTYPE IShellView2_HandleRename_Proxy(
   5753     IShellView2* This,
   5754     PCUITEMID_CHILD pidlNew);
   5755 void __RPC_STUB IShellView2_HandleRename_Stub(
   5756     IRpcStubBuffer* This,
   5757     IRpcChannelBuffer* pRpcChannelBuffer,
   5758     PRPC_MESSAGE pRpcMessage,
   5759     DWORD* pdwStubPhase);
   5760 HRESULT STDMETHODCALLTYPE IShellView2_SelectAndPositionItem_Proxy(
   5761     IShellView2* This,
   5762     PCUITEMID_CHILD pidlItem,
   5763     UINT uFlags,
   5764     POINT *ppt);
   5765 void __RPC_STUB IShellView2_SelectAndPositionItem_Stub(
   5766     IRpcStubBuffer* This,
   5767     IRpcChannelBuffer* pRpcChannelBuffer,
   5768     PRPC_MESSAGE pRpcMessage,
   5769     DWORD* pdwStubPhase);
   5770 
   5771 #endif  /* __IShellView2_INTERFACE_DEFINED__ */
   5772 
   5773 
   5774 #if NTDDI_VERSION >= NTDDI_VISTA
   5775 /*****************************************************************************
   5776  * IShellView3 interface
   5777  */
   5778 #ifndef __IShellView3_INTERFACE_DEFINED__
   5779 #define __IShellView3_INTERFACE_DEFINED__
   5780 
   5781 enum _SV3CVW3_FLAGS {
   5782     SV3CVW3_DEFAULT = 0x0,
   5783     SV3CVW3_NONINTERACTIVE = 0x1,
   5784     SV3CVW3_FORCEVIEWMODE = 0x2,
   5785     SV3CVW3_FORCEFOLDERFLAGS = 0x4
   5786 };
   5787 
   5788 
   5789 typedef DWORD SV3CVW3_FLAGS;
   5790 
   5791 DEFINE_GUID(IID_IShellView3, 0xec39fa88, 0xf8af, 0x41c5, 0x84,0x21, 0x38,0xbe,0xd2,0x8f,0x46,0x73);
   5792 #if defined(__cplusplus) && !defined(CINTERFACE)
   5793 MIDL_INTERFACE("ec39fa88-f8af-41c5-8421-38bed28f4673")
   5794 IShellView3 : public IShellView2
   5795 {
   5796     virtual HRESULT STDMETHODCALLTYPE CreateViewWindow3(
   5797         IShellBrowser *psbOwner,
   5798         IShellView *psvPrev,
   5799         SV3CVW3_FLAGS dwViewFlags,
   5800         FOLDERFLAGS dwMask,
   5801         FOLDERFLAGS dwFlags,
   5802         FOLDERVIEWMODE fvMode,
   5803         const SHELLVIEWID *pvid,
   5804         const RECT *prcView,
   5805         HWND *phwndView) = 0;
   5806 
   5807 };
   5808 #ifdef __CRT_UUID_DECL
   5809 __CRT_UUID_DECL(IShellView3, 0xec39fa88, 0xf8af, 0x41c5, 0x84,0x21, 0x38,0xbe,0xd2,0x8f,0x46,0x73)
   5810 #endif
   5811 #else
   5812 typedef struct IShellView3Vtbl {
   5813     BEGIN_INTERFACE
   5814 
   5815     /*** IUnknown methods ***/
   5816     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5817         IShellView3* This,
   5818         REFIID riid,
   5819         void **ppvObject);
   5820 
   5821     ULONG (STDMETHODCALLTYPE *AddRef)(
   5822         IShellView3* This);
   5823 
   5824     ULONG (STDMETHODCALLTYPE *Release)(
   5825         IShellView3* This);
   5826 
   5827     /*** IOleWindow methods ***/
   5828     HRESULT (STDMETHODCALLTYPE *GetWindow)(
   5829         IShellView3* This,
   5830         HWND *phwnd);
   5831 
   5832     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
   5833         IShellView3* This,
   5834         WINBOOL fEnterMode);
   5835 
   5836     /*** IShellView methods ***/
   5837     HRESULT (STDMETHODCALLTYPE *TranslateAccelerator)(
   5838         IShellView3* This,
   5839         MSG *pmsg);
   5840 
   5841     HRESULT (STDMETHODCALLTYPE *EnableModeless)(
   5842         IShellView3* This,
   5843         WINBOOL fEnable);
   5844 
   5845     HRESULT (STDMETHODCALLTYPE *UIActivate)(
   5846         IShellView3* This,
   5847         UINT uState);
   5848 
   5849     HRESULT (STDMETHODCALLTYPE *Refresh)(
   5850         IShellView3* This);
   5851 
   5852     HRESULT (STDMETHODCALLTYPE *CreateViewWindow)(
   5853         IShellView3* This,
   5854         IShellView *psvPrevious,
   5855         LPCFOLDERSETTINGS pfs,
   5856         IShellBrowser *psb,
   5857         RECT *prcView,
   5858         HWND *phWnd);
   5859 
   5860     HRESULT (STDMETHODCALLTYPE *DestroyViewWindow)(
   5861         IShellView3* This);
   5862 
   5863     HRESULT (STDMETHODCALLTYPE *GetCurrentInfo)(
   5864         IShellView3* This,
   5865         LPFOLDERSETTINGS pfs);
   5866 
   5867     HRESULT (STDMETHODCALLTYPE *AddPropertySheetPages)(
   5868         IShellView3* This,
   5869         DWORD dwReserved,
   5870         LPFNSVADDPROPSHEETPAGE pfn,
   5871         LPARAM lparam);
   5872 
   5873     HRESULT (STDMETHODCALLTYPE *SaveViewState)(
   5874         IShellView3* This);
   5875 
   5876     HRESULT (STDMETHODCALLTYPE *SelectItem)(
   5877         IShellView3* This,
   5878         PCUITEMID_CHILD pidlItem,
   5879         SVSIF uFlags);
   5880 
   5881     HRESULT (STDMETHODCALLTYPE *GetItemObject)(
   5882         IShellView3* This,
   5883         UINT uItem,
   5884         REFIID riid,
   5885         void **ppv);
   5886 
   5887     /*** IShellView2 methods ***/
   5888     HRESULT (STDMETHODCALLTYPE *GetView)(
   5889         IShellView3* This,
   5890         SHELLVIEWID *pvid,
   5891         ULONG uView);
   5892 
   5893     HRESULT (STDMETHODCALLTYPE *CreateViewWindow2)(
   5894         IShellView3* This,
   5895         LPSV2CVW2_PARAMS lpParams);
   5896 
   5897     HRESULT (STDMETHODCALLTYPE *HandleRename)(
   5898         IShellView3* This,
   5899         PCUITEMID_CHILD pidlNew);
   5900 
   5901     HRESULT (STDMETHODCALLTYPE *SelectAndPositionItem)(
   5902         IShellView3* This,
   5903         PCUITEMID_CHILD pidlItem,
   5904         UINT uFlags,
   5905         POINT *ppt);
   5906 
   5907     /*** IShellView3 methods ***/
   5908     HRESULT (STDMETHODCALLTYPE *CreateViewWindow3)(
   5909         IShellView3* This,
   5910         IShellBrowser *psbOwner,
   5911         IShellView *psvPrev,
   5912         SV3CVW3_FLAGS dwViewFlags,
   5913         FOLDERFLAGS dwMask,
   5914         FOLDERFLAGS dwFlags,
   5915         FOLDERVIEWMODE fvMode,
   5916         const SHELLVIEWID *pvid,
   5917         const RECT *prcView,
   5918         HWND *phwndView);
   5919 
   5920     END_INTERFACE
   5921 } IShellView3Vtbl;
   5922 interface IShellView3 {
   5923     CONST_VTBL IShellView3Vtbl* lpVtbl;
   5924 };
   5925 
   5926 #ifdef COBJMACROS
   5927 #ifndef WIDL_C_INLINE_WRAPPERS
   5928 /*** IUnknown methods ***/
   5929 #define IShellView3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5930 #define IShellView3_AddRef(This) (This)->lpVtbl->AddRef(This)
   5931 #define IShellView3_Release(This) (This)->lpVtbl->Release(This)
   5932 /*** IOleWindow methods ***/
   5933 #define IShellView3_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
   5934 #define IShellView3_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
   5935 /*** IShellView methods ***/
   5936 #define IShellView3_TranslateAccelerator(This,pmsg) (This)->lpVtbl->TranslateAccelerator(This,pmsg)
   5937 #define IShellView3_EnableModeless(This,fEnable) (This)->lpVtbl->EnableModeless(This,fEnable)
   5938 #define IShellView3_UIActivate(This,uState) (This)->lpVtbl->UIActivate(This,uState)
   5939 #define IShellView3_Refresh(This) (This)->lpVtbl->Refresh(This)
   5940 #define IShellView3_CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd) (This)->lpVtbl->CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd)
   5941 #define IShellView3_DestroyViewWindow(This) (This)->lpVtbl->DestroyViewWindow(This)
   5942 #define IShellView3_GetCurrentInfo(This,pfs) (This)->lpVtbl->GetCurrentInfo(This,pfs)
   5943 #define IShellView3_AddPropertySheetPages(This,dwReserved,pfn,lparam) (This)->lpVtbl->AddPropertySheetPages(This,dwReserved,pfn,lparam)
   5944 #define IShellView3_SaveViewState(This) (This)->lpVtbl->SaveViewState(This)
   5945 #define IShellView3_SelectItem(This,pidlItem,uFlags) (This)->lpVtbl->SelectItem(This,pidlItem,uFlags)
   5946 #define IShellView3_GetItemObject(This,uItem,riid,ppv) (This)->lpVtbl->GetItemObject(This,uItem,riid,ppv)
   5947 /*** IShellView2 methods ***/
   5948 #define IShellView3_GetView(This,pvid,uView) (This)->lpVtbl->GetView(This,pvid,uView)
   5949 #define IShellView3_CreateViewWindow2(This,lpParams) (This)->lpVtbl->CreateViewWindow2(This,lpParams)
   5950 #define IShellView3_HandleRename(This,pidlNew) (This)->lpVtbl->HandleRename(This,pidlNew)
   5951 #define IShellView3_SelectAndPositionItem(This,pidlItem,uFlags,ppt) (This)->lpVtbl->SelectAndPositionItem(This,pidlItem,uFlags,ppt)
   5952 /*** IShellView3 methods ***/
   5953 #define IShellView3_CreateViewWindow3(This,psbOwner,psvPrev,dwViewFlags,dwMask,dwFlags,fvMode,pvid,prcView,phwndView) (This)->lpVtbl->CreateViewWindow3(This,psbOwner,psvPrev,dwViewFlags,dwMask,dwFlags,fvMode,pvid,prcView,phwndView)
   5954 #else
   5955 /*** IUnknown methods ***/
   5956 static FORCEINLINE HRESULT IShellView3_QueryInterface(IShellView3* This,REFIID riid,void **ppvObject) {
   5957     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5958 }
   5959 static FORCEINLINE ULONG IShellView3_AddRef(IShellView3* This) {
   5960     return This->lpVtbl->AddRef(This);
   5961 }
   5962 static FORCEINLINE ULONG IShellView3_Release(IShellView3* This) {
   5963     return This->lpVtbl->Release(This);
   5964 }
   5965 /*** IOleWindow methods ***/
   5966 static FORCEINLINE HRESULT IShellView3_GetWindow(IShellView3* This,HWND *phwnd) {
   5967     return This->lpVtbl->GetWindow(This,phwnd);
   5968 }
   5969 static FORCEINLINE HRESULT IShellView3_ContextSensitiveHelp(IShellView3* This,WINBOOL fEnterMode) {
   5970     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
   5971 }
   5972 /*** IShellView methods ***/
   5973 static FORCEINLINE HRESULT IShellView3_TranslateAccelerator(IShellView3* This,MSG *pmsg) {
   5974     return This->lpVtbl->TranslateAccelerator(This,pmsg);
   5975 }
   5976 static FORCEINLINE HRESULT IShellView3_EnableModeless(IShellView3* This,WINBOOL fEnable) {
   5977     return This->lpVtbl->EnableModeless(This,fEnable);
   5978 }
   5979 static FORCEINLINE HRESULT IShellView3_UIActivate(IShellView3* This,UINT uState) {
   5980     return This->lpVtbl->UIActivate(This,uState);
   5981 }
   5982 static FORCEINLINE HRESULT IShellView3_Refresh(IShellView3* This) {
   5983     return This->lpVtbl->Refresh(This);
   5984 }
   5985 static FORCEINLINE HRESULT IShellView3_CreateViewWindow(IShellView3* This,IShellView *psvPrevious,LPCFOLDERSETTINGS pfs,IShellBrowser *psb,RECT *prcView,HWND *phWnd) {
   5986     return This->lpVtbl->CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd);
   5987 }
   5988 static FORCEINLINE HRESULT IShellView3_DestroyViewWindow(IShellView3* This) {
   5989     return This->lpVtbl->DestroyViewWindow(This);
   5990 }
   5991 static FORCEINLINE HRESULT IShellView3_GetCurrentInfo(IShellView3* This,LPFOLDERSETTINGS pfs) {
   5992     return This->lpVtbl->GetCurrentInfo(This,pfs);
   5993 }
   5994 static FORCEINLINE HRESULT IShellView3_AddPropertySheetPages(IShellView3* This,DWORD dwReserved,LPFNSVADDPROPSHEETPAGE pfn,LPARAM lparam) {
   5995     return This->lpVtbl->AddPropertySheetPages(This,dwReserved,pfn,lparam);
   5996 }
   5997 static FORCEINLINE HRESULT IShellView3_SaveViewState(IShellView3* This) {
   5998     return This->lpVtbl->SaveViewState(This);
   5999 }
   6000 static FORCEINLINE HRESULT IShellView3_SelectItem(IShellView3* This,PCUITEMID_CHILD pidlItem,SVSIF uFlags) {
   6001     return This->lpVtbl->SelectItem(This,pidlItem,uFlags);
   6002 }
   6003 static FORCEINLINE HRESULT IShellView3_GetItemObject(IShellView3* This,UINT uItem,REFIID riid,void **ppv) {
   6004     return This->lpVtbl->GetItemObject(This,uItem,riid,ppv);
   6005 }
   6006 /*** IShellView2 methods ***/
   6007 static FORCEINLINE HRESULT IShellView3_GetView(IShellView3* This,SHELLVIEWID *pvid,ULONG uView) {
   6008     return This->lpVtbl->GetView(This,pvid,uView);
   6009 }
   6010 static FORCEINLINE HRESULT IShellView3_CreateViewWindow2(IShellView3* This,LPSV2CVW2_PARAMS lpParams) {
   6011     return This->lpVtbl->CreateViewWindow2(This,lpParams);
   6012 }
   6013 static FORCEINLINE HRESULT IShellView3_HandleRename(IShellView3* This,PCUITEMID_CHILD pidlNew) {
   6014     return This->lpVtbl->HandleRename(This,pidlNew);
   6015 }
   6016 static FORCEINLINE HRESULT IShellView3_SelectAndPositionItem(IShellView3* This,PCUITEMID_CHILD pidlItem,UINT uFlags,POINT *ppt) {
   6017     return This->lpVtbl->SelectAndPositionItem(This,pidlItem,uFlags,ppt);
   6018 }
   6019 /*** IShellView3 methods ***/
   6020 static FORCEINLINE HRESULT IShellView3_CreateViewWindow3(IShellView3* This,IShellBrowser *psbOwner,IShellView *psvPrev,SV3CVW3_FLAGS dwViewFlags,FOLDERFLAGS dwMask,FOLDERFLAGS dwFlags,FOLDERVIEWMODE fvMode,const SHELLVIEWID *pvid,const RECT *prcView,HWND *phwndView) {
   6021     return This->lpVtbl->CreateViewWindow3(This,psbOwner,psvPrev,dwViewFlags,dwMask,dwFlags,fvMode,pvid,prcView,phwndView);
   6022 }
   6023 #endif
   6024 #endif
   6025 
   6026 #endif
   6027 
   6028 HRESULT STDMETHODCALLTYPE IShellView3_CreateViewWindow3_Proxy(
   6029     IShellView3* This,
   6030     IShellBrowser *psbOwner,
   6031     IShellView *psvPrev,
   6032     SV3CVW3_FLAGS dwViewFlags,
   6033     FOLDERFLAGS dwMask,
   6034     FOLDERFLAGS dwFlags,
   6035     FOLDERVIEWMODE fvMode,
   6036     const SHELLVIEWID *pvid,
   6037     const RECT *prcView,
   6038     HWND *phwndView);
   6039 void __RPC_STUB IShellView3_CreateViewWindow3_Stub(
   6040     IRpcStubBuffer* This,
   6041     IRpcChannelBuffer* pRpcChannelBuffer,
   6042     PRPC_MESSAGE pRpcMessage,
   6043     DWORD* pdwStubPhase);
   6044 
   6045 #endif  /* __IShellView3_INTERFACE_DEFINED__ */
   6046 
   6047 #endif
   6048 #ifdef _FIX_ENABLEMODELESS_CONFLICT
   6049 #undef EnableModeless
   6050 #endif
   6051 
   6052 /*****************************************************************************
   6053  * IFolderView interface
   6054  */
   6055 #ifndef __IFolderView_INTERFACE_DEFINED__
   6056 #define __IFolderView_INTERFACE_DEFINED__
   6057 
   6058 DEFINE_GUID(IID_IFolderView, 0xcde725b0, 0xccc9, 0x4519, 0x91,0x7e, 0x32,0x5d,0x72,0xfa,0xb4,0xce);
   6059 #if defined(__cplusplus) && !defined(CINTERFACE)
   6060 MIDL_INTERFACE("cde725b0-ccc9-4519-917e-325d72fab4ce")
   6061 IFolderView : public IUnknown
   6062 {
   6063     virtual HRESULT STDMETHODCALLTYPE GetCurrentViewMode(
   6064         UINT *pViewMode) = 0;
   6065 
   6066     virtual HRESULT STDMETHODCALLTYPE SetCurrentViewMode(
   6067         UINT ViewMode) = 0;
   6068 
   6069     virtual HRESULT STDMETHODCALLTYPE GetFolder(
   6070         REFIID riid,
   6071         void **ppv) = 0;
   6072 
   6073     virtual HRESULT STDMETHODCALLTYPE Item(
   6074         int iItemIndex,
   6075         PITEMID_CHILD *ppidl) = 0;
   6076 
   6077     virtual HRESULT STDMETHODCALLTYPE ItemCount(
   6078         UINT uFlags,
   6079         int *pcItems) = 0;
   6080 
   6081     virtual HRESULT STDMETHODCALLTYPE Items(
   6082         UINT uFlags,
   6083         REFIID riid,
   6084         void **ppv) = 0;
   6085 
   6086     virtual HRESULT STDMETHODCALLTYPE GetSelectionMarkedItem(
   6087         int *piItem) = 0;
   6088 
   6089     virtual HRESULT STDMETHODCALLTYPE GetFocusedItem(
   6090         int *piItem) = 0;
   6091 
   6092     virtual HRESULT STDMETHODCALLTYPE GetItemPosition(
   6093         PCUITEMID_CHILD pidl,
   6094         POINT *ppt) = 0;
   6095 
   6096     virtual HRESULT STDMETHODCALLTYPE GetSpacing(
   6097         POINT *ppt) = 0;
   6098 
   6099     virtual HRESULT STDMETHODCALLTYPE GetDefaultSpacing(
   6100         POINT *ppt) = 0;
   6101 
   6102     virtual HRESULT STDMETHODCALLTYPE GetAutoArrange(
   6103         ) = 0;
   6104 
   6105     virtual HRESULT STDMETHODCALLTYPE SelectItem(
   6106         int iItem,
   6107         DWORD dwFlags) = 0;
   6108 
   6109     virtual HRESULT STDMETHODCALLTYPE SelectAndPositionItems(
   6110         UINT cidl,
   6111         PCUITEMID_CHILD_ARRAY apidl,
   6112         POINT *apt,
   6113         DWORD dwFlags) = 0;
   6114 
   6115 };
   6116 #ifdef __CRT_UUID_DECL
   6117 __CRT_UUID_DECL(IFolderView, 0xcde725b0, 0xccc9, 0x4519, 0x91,0x7e, 0x32,0x5d,0x72,0xfa,0xb4,0xce)
   6118 #endif
   6119 #else
   6120 typedef struct IFolderViewVtbl {
   6121     BEGIN_INTERFACE
   6122 
   6123     /*** IUnknown methods ***/
   6124     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6125         IFolderView* This,
   6126         REFIID riid,
   6127         void **ppvObject);
   6128 
   6129     ULONG (STDMETHODCALLTYPE *AddRef)(
   6130         IFolderView* This);
   6131 
   6132     ULONG (STDMETHODCALLTYPE *Release)(
   6133         IFolderView* This);
   6134 
   6135     /*** IFolderView methods ***/
   6136     HRESULT (STDMETHODCALLTYPE *GetCurrentViewMode)(
   6137         IFolderView* This,
   6138         UINT *pViewMode);
   6139 
   6140     HRESULT (STDMETHODCALLTYPE *SetCurrentViewMode)(
   6141         IFolderView* This,
   6142         UINT ViewMode);
   6143 
   6144     HRESULT (STDMETHODCALLTYPE *GetFolder)(
   6145         IFolderView* This,
   6146         REFIID riid,
   6147         void **ppv);
   6148 
   6149     HRESULT (STDMETHODCALLTYPE *Item)(
   6150         IFolderView* This,
   6151         int iItemIndex,
   6152         PITEMID_CHILD *ppidl);
   6153 
   6154     HRESULT (STDMETHODCALLTYPE *ItemCount)(
   6155         IFolderView* This,
   6156         UINT uFlags,
   6157         int *pcItems);
   6158 
   6159     HRESULT (STDMETHODCALLTYPE *Items)(
   6160         IFolderView* This,
   6161         UINT uFlags,
   6162         REFIID riid,
   6163         void **ppv);
   6164 
   6165     HRESULT (STDMETHODCALLTYPE *GetSelectionMarkedItem)(
   6166         IFolderView* This,
   6167         int *piItem);
   6168 
   6169     HRESULT (STDMETHODCALLTYPE *GetFocusedItem)(
   6170         IFolderView* This,
   6171         int *piItem);
   6172 
   6173     HRESULT (STDMETHODCALLTYPE *GetItemPosition)(
   6174         IFolderView* This,
   6175         PCUITEMID_CHILD pidl,
   6176         POINT *ppt);
   6177 
   6178     HRESULT (STDMETHODCALLTYPE *GetSpacing)(
   6179         IFolderView* This,
   6180         POINT *ppt);
   6181 
   6182     HRESULT (STDMETHODCALLTYPE *GetDefaultSpacing)(
   6183         IFolderView* This,
   6184         POINT *ppt);
   6185 
   6186     HRESULT (STDMETHODCALLTYPE *GetAutoArrange)(
   6187         IFolderView* This);
   6188 
   6189     HRESULT (STDMETHODCALLTYPE *SelectItem)(
   6190         IFolderView* This,
   6191         int iItem,
   6192         DWORD dwFlags);
   6193 
   6194     HRESULT (STDMETHODCALLTYPE *SelectAndPositionItems)(
   6195         IFolderView* This,
   6196         UINT cidl,
   6197         PCUITEMID_CHILD_ARRAY apidl,
   6198         POINT *apt,
   6199         DWORD dwFlags);
   6200 
   6201     END_INTERFACE
   6202 } IFolderViewVtbl;
   6203 interface IFolderView {
   6204     CONST_VTBL IFolderViewVtbl* lpVtbl;
   6205 };
   6206 
   6207 #ifdef COBJMACROS
   6208 #ifndef WIDL_C_INLINE_WRAPPERS
   6209 /*** IUnknown methods ***/
   6210 #define IFolderView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6211 #define IFolderView_AddRef(This) (This)->lpVtbl->AddRef(This)
   6212 #define IFolderView_Release(This) (This)->lpVtbl->Release(This)
   6213 /*** IFolderView methods ***/
   6214 #define IFolderView_GetCurrentViewMode(This,pViewMode) (This)->lpVtbl->GetCurrentViewMode(This,pViewMode)
   6215 #define IFolderView_SetCurrentViewMode(This,ViewMode) (This)->lpVtbl->SetCurrentViewMode(This,ViewMode)
   6216 #define IFolderView_GetFolder(This,riid,ppv) (This)->lpVtbl->GetFolder(This,riid,ppv)
   6217 #define IFolderView_Item(This,iItemIndex,ppidl) (This)->lpVtbl->Item(This,iItemIndex,ppidl)
   6218 #define IFolderView_ItemCount(This,uFlags,pcItems) (This)->lpVtbl->ItemCount(This,uFlags,pcItems)
   6219 #define IFolderView_Items(This,uFlags,riid,ppv) (This)->lpVtbl->Items(This,uFlags,riid,ppv)
   6220 #define IFolderView_GetSelectionMarkedItem(This,piItem) (This)->lpVtbl->GetSelectionMarkedItem(This,piItem)
   6221 #define IFolderView_GetFocusedItem(This,piItem) (This)->lpVtbl->GetFocusedItem(This,piItem)
   6222 #define IFolderView_GetItemPosition(This,pidl,ppt) (This)->lpVtbl->GetItemPosition(This,pidl,ppt)
   6223 #define IFolderView_GetSpacing(This,ppt) (This)->lpVtbl->GetSpacing(This,ppt)
   6224 #define IFolderView_GetDefaultSpacing(This,ppt) (This)->lpVtbl->GetDefaultSpacing(This,ppt)
   6225 #define IFolderView_GetAutoArrange(This) (This)->lpVtbl->GetAutoArrange(This)
   6226 #define IFolderView_SelectItem(This,iItem,dwFlags) (This)->lpVtbl->SelectItem(This,iItem,dwFlags)
   6227 #define IFolderView_SelectAndPositionItems(This,cidl,apidl,apt,dwFlags) (This)->lpVtbl->SelectAndPositionItems(This,cidl,apidl,apt,dwFlags)
   6228 #else
   6229 /*** IUnknown methods ***/
   6230 static FORCEINLINE HRESULT IFolderView_QueryInterface(IFolderView* This,REFIID riid,void **ppvObject) {
   6231     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6232 }
   6233 static FORCEINLINE ULONG IFolderView_AddRef(IFolderView* This) {
   6234     return This->lpVtbl->AddRef(This);
   6235 }
   6236 static FORCEINLINE ULONG IFolderView_Release(IFolderView* This) {
   6237     return This->lpVtbl->Release(This);
   6238 }
   6239 /*** IFolderView methods ***/
   6240 static FORCEINLINE HRESULT IFolderView_GetCurrentViewMode(IFolderView* This,UINT *pViewMode) {
   6241     return This->lpVtbl->GetCurrentViewMode(This,pViewMode);
   6242 }
   6243 static FORCEINLINE HRESULT IFolderView_SetCurrentViewMode(IFolderView* This,UINT ViewMode) {
   6244     return This->lpVtbl->SetCurrentViewMode(This,ViewMode);
   6245 }
   6246 static FORCEINLINE HRESULT IFolderView_GetFolder(IFolderView* This,REFIID riid,void **ppv) {
   6247     return This->lpVtbl->GetFolder(This,riid,ppv);
   6248 }
   6249 static FORCEINLINE HRESULT IFolderView_Item(IFolderView* This,int iItemIndex,PITEMID_CHILD *ppidl) {
   6250     return This->lpVtbl->Item(This,iItemIndex,ppidl);
   6251 }
   6252 static FORCEINLINE HRESULT IFolderView_ItemCount(IFolderView* This,UINT uFlags,int *pcItems) {
   6253     return This->lpVtbl->ItemCount(This,uFlags,pcItems);
   6254 }
   6255 static FORCEINLINE HRESULT IFolderView_Items(IFolderView* This,UINT uFlags,REFIID riid,void **ppv) {
   6256     return This->lpVtbl->Items(This,uFlags,riid,ppv);
   6257 }
   6258 static FORCEINLINE HRESULT IFolderView_GetSelectionMarkedItem(IFolderView* This,int *piItem) {
   6259     return This->lpVtbl->GetSelectionMarkedItem(This,piItem);
   6260 }
   6261 static FORCEINLINE HRESULT IFolderView_GetFocusedItem(IFolderView* This,int *piItem) {
   6262     return This->lpVtbl->GetFocusedItem(This,piItem);
   6263 }
   6264 static FORCEINLINE HRESULT IFolderView_GetItemPosition(IFolderView* This,PCUITEMID_CHILD pidl,POINT *ppt) {
   6265     return This->lpVtbl->GetItemPosition(This,pidl,ppt);
   6266 }
   6267 static FORCEINLINE HRESULT IFolderView_GetSpacing(IFolderView* This,POINT *ppt) {
   6268     return This->lpVtbl->GetSpacing(This,ppt);
   6269 }
   6270 static FORCEINLINE HRESULT IFolderView_GetDefaultSpacing(IFolderView* This,POINT *ppt) {
   6271     return This->lpVtbl->GetDefaultSpacing(This,ppt);
   6272 }
   6273 static FORCEINLINE HRESULT IFolderView_GetAutoArrange(IFolderView* This) {
   6274     return This->lpVtbl->GetAutoArrange(This);
   6275 }
   6276 static FORCEINLINE HRESULT IFolderView_SelectItem(IFolderView* This,int iItem,DWORD dwFlags) {
   6277     return This->lpVtbl->SelectItem(This,iItem,dwFlags);
   6278 }
   6279 static FORCEINLINE HRESULT IFolderView_SelectAndPositionItems(IFolderView* This,UINT cidl,PCUITEMID_CHILD_ARRAY apidl,POINT *apt,DWORD dwFlags) {
   6280     return This->lpVtbl->SelectAndPositionItems(This,cidl,apidl,apt,dwFlags);
   6281 }
   6282 #endif
   6283 #endif
   6284 
   6285 #endif
   6286 
   6287 HRESULT STDMETHODCALLTYPE IFolderView_GetCurrentViewMode_Proxy(
   6288     IFolderView* This,
   6289     UINT *pViewMode);
   6290 void __RPC_STUB IFolderView_GetCurrentViewMode_Stub(
   6291     IRpcStubBuffer* This,
   6292     IRpcChannelBuffer* pRpcChannelBuffer,
   6293     PRPC_MESSAGE pRpcMessage,
   6294     DWORD* pdwStubPhase);
   6295 HRESULT STDMETHODCALLTYPE IFolderView_SetCurrentViewMode_Proxy(
   6296     IFolderView* This,
   6297     UINT ViewMode);
   6298 void __RPC_STUB IFolderView_SetCurrentViewMode_Stub(
   6299     IRpcStubBuffer* This,
   6300     IRpcChannelBuffer* pRpcChannelBuffer,
   6301     PRPC_MESSAGE pRpcMessage,
   6302     DWORD* pdwStubPhase);
   6303 HRESULT STDMETHODCALLTYPE IFolderView_GetFolder_Proxy(
   6304     IFolderView* This,
   6305     REFIID riid,
   6306     void **ppv);
   6307 void __RPC_STUB IFolderView_GetFolder_Stub(
   6308     IRpcStubBuffer* This,
   6309     IRpcChannelBuffer* pRpcChannelBuffer,
   6310     PRPC_MESSAGE pRpcMessage,
   6311     DWORD* pdwStubPhase);
   6312 HRESULT STDMETHODCALLTYPE IFolderView_Item_Proxy(
   6313     IFolderView* This,
   6314     int iItemIndex,
   6315     PITEMID_CHILD *ppidl);
   6316 void __RPC_STUB IFolderView_Item_Stub(
   6317     IRpcStubBuffer* This,
   6318     IRpcChannelBuffer* pRpcChannelBuffer,
   6319     PRPC_MESSAGE pRpcMessage,
   6320     DWORD* pdwStubPhase);
   6321 HRESULT STDMETHODCALLTYPE IFolderView_ItemCount_Proxy(
   6322     IFolderView* This,
   6323     UINT uFlags,
   6324     int *pcItems);
   6325 void __RPC_STUB IFolderView_ItemCount_Stub(
   6326     IRpcStubBuffer* This,
   6327     IRpcChannelBuffer* pRpcChannelBuffer,
   6328     PRPC_MESSAGE pRpcMessage,
   6329     DWORD* pdwStubPhase);
   6330 HRESULT STDMETHODCALLTYPE IFolderView_Items_Proxy(
   6331     IFolderView* This,
   6332     UINT uFlags,
   6333     REFIID riid,
   6334     void **ppv);
   6335 void __RPC_STUB IFolderView_Items_Stub(
   6336     IRpcStubBuffer* This,
   6337     IRpcChannelBuffer* pRpcChannelBuffer,
   6338     PRPC_MESSAGE pRpcMessage,
   6339     DWORD* pdwStubPhase);
   6340 HRESULT STDMETHODCALLTYPE IFolderView_GetSelectionMarkedItem_Proxy(
   6341     IFolderView* This,
   6342     int *piItem);
   6343 void __RPC_STUB IFolderView_GetSelectionMarkedItem_Stub(
   6344     IRpcStubBuffer* This,
   6345     IRpcChannelBuffer* pRpcChannelBuffer,
   6346     PRPC_MESSAGE pRpcMessage,
   6347     DWORD* pdwStubPhase);
   6348 HRESULT STDMETHODCALLTYPE IFolderView_GetFocusedItem_Proxy(
   6349     IFolderView* This,
   6350     int *piItem);
   6351 void __RPC_STUB IFolderView_GetFocusedItem_Stub(
   6352     IRpcStubBuffer* This,
   6353     IRpcChannelBuffer* pRpcChannelBuffer,
   6354     PRPC_MESSAGE pRpcMessage,
   6355     DWORD* pdwStubPhase);
   6356 HRESULT STDMETHODCALLTYPE IFolderView_GetItemPosition_Proxy(
   6357     IFolderView* This,
   6358     PCUITEMID_CHILD pidl,
   6359     POINT *ppt);
   6360 void __RPC_STUB IFolderView_GetItemPosition_Stub(
   6361     IRpcStubBuffer* This,
   6362     IRpcChannelBuffer* pRpcChannelBuffer,
   6363     PRPC_MESSAGE pRpcMessage,
   6364     DWORD* pdwStubPhase);
   6365 HRESULT STDMETHODCALLTYPE IFolderView_GetSpacing_Proxy(
   6366     IFolderView* This,
   6367     POINT *ppt);
   6368 void __RPC_STUB IFolderView_GetSpacing_Stub(
   6369     IRpcStubBuffer* This,
   6370     IRpcChannelBuffer* pRpcChannelBuffer,
   6371     PRPC_MESSAGE pRpcMessage,
   6372     DWORD* pdwStubPhase);
   6373 HRESULT STDMETHODCALLTYPE IFolderView_GetDefaultSpacing_Proxy(
   6374     IFolderView* This,
   6375     POINT *ppt);
   6376 void __RPC_STUB IFolderView_GetDefaultSpacing_Stub(
   6377     IRpcStubBuffer* This,
   6378     IRpcChannelBuffer* pRpcChannelBuffer,
   6379     PRPC_MESSAGE pRpcMessage,
   6380     DWORD* pdwStubPhase);
   6381 HRESULT STDMETHODCALLTYPE IFolderView_GetAutoArrange_Proxy(
   6382     IFolderView* This);
   6383 void __RPC_STUB IFolderView_GetAutoArrange_Stub(
   6384     IRpcStubBuffer* This,
   6385     IRpcChannelBuffer* pRpcChannelBuffer,
   6386     PRPC_MESSAGE pRpcMessage,
   6387     DWORD* pdwStubPhase);
   6388 HRESULT STDMETHODCALLTYPE IFolderView_SelectItem_Proxy(
   6389     IFolderView* This,
   6390     int iItem,
   6391     DWORD dwFlags);
   6392 void __RPC_STUB IFolderView_SelectItem_Stub(
   6393     IRpcStubBuffer* This,
   6394     IRpcChannelBuffer* pRpcChannelBuffer,
   6395     PRPC_MESSAGE pRpcMessage,
   6396     DWORD* pdwStubPhase);
   6397 HRESULT STDMETHODCALLTYPE IFolderView_SelectAndPositionItems_Proxy(
   6398     IFolderView* This,
   6399     UINT cidl,
   6400     PCUITEMID_CHILD_ARRAY apidl,
   6401     POINT *apt,
   6402     DWORD dwFlags);
   6403 void __RPC_STUB IFolderView_SelectAndPositionItems_Stub(
   6404     IRpcStubBuffer* This,
   6405     IRpcChannelBuffer* pRpcChannelBuffer,
   6406     PRPC_MESSAGE pRpcMessage,
   6407     DWORD* pdwStubPhase);
   6408 
   6409 #endif  /* __IFolderView_INTERFACE_DEFINED__ */
   6410 
   6411 
   6412 #define SID_SFolderView IID_IFolderView
   6413 
   6414 #if NTDDI_VERSION >= NTDDI_WIN7
   6415 /*****************************************************************************
   6416  * ISearchBoxInfo interface
   6417  */
   6418 #ifndef __ISearchBoxInfo_INTERFACE_DEFINED__
   6419 #define __ISearchBoxInfo_INTERFACE_DEFINED__
   6420 
   6421 DEFINE_GUID(IID_ISearchBoxInfo, 0x6af6e03f, 0xd664, 0x4ef4, 0x96,0x26, 0xf7,0xe0,0xed,0x36,0x75,0x5e);
   6422 #if defined(__cplusplus) && !defined(CINTERFACE)
   6423 MIDL_INTERFACE("6af6e03f-d664-4ef4-9626-f7e0ed36755e")
   6424 ISearchBoxInfo : public IUnknown
   6425 {
   6426     virtual HRESULT STDMETHODCALLTYPE GetCondition(
   6427         REFIID riid,
   6428         void **ppv) = 0;
   6429 
   6430     virtual HRESULT STDMETHODCALLTYPE GetText(
   6431         LPWSTR *ppsz) = 0;
   6432 
   6433 };
   6434 #ifdef __CRT_UUID_DECL
   6435 __CRT_UUID_DECL(ISearchBoxInfo, 0x6af6e03f, 0xd664, 0x4ef4, 0x96,0x26, 0xf7,0xe0,0xed,0x36,0x75,0x5e)
   6436 #endif
   6437 #else
   6438 typedef struct ISearchBoxInfoVtbl {
   6439     BEGIN_INTERFACE
   6440 
   6441     /*** IUnknown methods ***/
   6442     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6443         ISearchBoxInfo* This,
   6444         REFIID riid,
   6445         void **ppvObject);
   6446 
   6447     ULONG (STDMETHODCALLTYPE *AddRef)(
   6448         ISearchBoxInfo* This);
   6449 
   6450     ULONG (STDMETHODCALLTYPE *Release)(
   6451         ISearchBoxInfo* This);
   6452 
   6453     /*** ISearchBoxInfo methods ***/
   6454     HRESULT (STDMETHODCALLTYPE *GetCondition)(
   6455         ISearchBoxInfo* This,
   6456         REFIID riid,
   6457         void **ppv);
   6458 
   6459     HRESULT (STDMETHODCALLTYPE *GetText)(
   6460         ISearchBoxInfo* This,
   6461         LPWSTR *ppsz);
   6462 
   6463     END_INTERFACE
   6464 } ISearchBoxInfoVtbl;
   6465 interface ISearchBoxInfo {
   6466     CONST_VTBL ISearchBoxInfoVtbl* lpVtbl;
   6467 };
   6468 
   6469 #ifdef COBJMACROS
   6470 #ifndef WIDL_C_INLINE_WRAPPERS
   6471 /*** IUnknown methods ***/
   6472 #define ISearchBoxInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6473 #define ISearchBoxInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
   6474 #define ISearchBoxInfo_Release(This) (This)->lpVtbl->Release(This)
   6475 /*** ISearchBoxInfo methods ***/
   6476 #define ISearchBoxInfo_GetCondition(This,riid,ppv) (This)->lpVtbl->GetCondition(This,riid,ppv)
   6477 #define ISearchBoxInfo_GetText(This,ppsz) (This)->lpVtbl->GetText(This,ppsz)
   6478 #else
   6479 /*** IUnknown methods ***/
   6480 static FORCEINLINE HRESULT ISearchBoxInfo_QueryInterface(ISearchBoxInfo* This,REFIID riid,void **ppvObject) {
   6481     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6482 }
   6483 static FORCEINLINE ULONG ISearchBoxInfo_AddRef(ISearchBoxInfo* This) {
   6484     return This->lpVtbl->AddRef(This);
   6485 }
   6486 static FORCEINLINE ULONG ISearchBoxInfo_Release(ISearchBoxInfo* This) {
   6487     return This->lpVtbl->Release(This);
   6488 }
   6489 /*** ISearchBoxInfo methods ***/
   6490 static FORCEINLINE HRESULT ISearchBoxInfo_GetCondition(ISearchBoxInfo* This,REFIID riid,void **ppv) {
   6491     return This->lpVtbl->GetCondition(This,riid,ppv);
   6492 }
   6493 static FORCEINLINE HRESULT ISearchBoxInfo_GetText(ISearchBoxInfo* This,LPWSTR *ppsz) {
   6494     return This->lpVtbl->GetText(This,ppsz);
   6495 }
   6496 #endif
   6497 #endif
   6498 
   6499 #endif
   6500 
   6501 HRESULT STDMETHODCALLTYPE ISearchBoxInfo_GetCondition_Proxy(
   6502     ISearchBoxInfo* This,
   6503     REFIID riid,
   6504     void **ppv);
   6505 void __RPC_STUB ISearchBoxInfo_GetCondition_Stub(
   6506     IRpcStubBuffer* This,
   6507     IRpcChannelBuffer* pRpcChannelBuffer,
   6508     PRPC_MESSAGE pRpcMessage,
   6509     DWORD* pdwStubPhase);
   6510 HRESULT STDMETHODCALLTYPE ISearchBoxInfo_GetText_Proxy(
   6511     ISearchBoxInfo* This,
   6512     LPWSTR *ppsz);
   6513 void __RPC_STUB ISearchBoxInfo_GetText_Stub(
   6514     IRpcStubBuffer* This,
   6515     IRpcChannelBuffer* pRpcChannelBuffer,
   6516     PRPC_MESSAGE pRpcMessage,
   6517     DWORD* pdwStubPhase);
   6518 
   6519 #endif  /* __ISearchBoxInfo_INTERFACE_DEFINED__ */
   6520 
   6521 #endif
   6522 
   6523 #if NTDDI_VERSION >= NTDDI_VISTA || _WIN32_IE >= _WIN32_IE_IE70
   6524 #ifndef NO_SHOBJIDL_SORTDIRECTION
   6525 enum tagSORTDIRECTION {
   6526     SORT_DESCENDING = -1,
   6527     SORT_ASCENDING = 1
   6528 };
   6529 
   6530 #endif
   6531 
   6532 typedef int SORTDIRECTION;
   6533 
   6534 typedef struct SORTCOLUMN {
   6535     PROPERTYKEY propkey;
   6536     SORTDIRECTION direction;
   6537 } SORTCOLUMN;
   6538 
   6539 typedef enum FVTEXTTYPE {
   6540     FVST_EMPTYTEXT = 0
   6541 } FVTEXTTYPE;
   6542 
   6543 #ifndef __IShellItemArray_FWD_DEFINED__
   6544 #define __IShellItemArray_FWD_DEFINED__
   6545 typedef interface IShellItemArray IShellItemArray;
   6546 #endif
   6547 
   6548 
   6549 typedef HRESULT DEPRECATED_HRESULT;
   6550 
   6551 #ifdef __cplusplus
   6552 #define DEPRECATED_HRESULT HRESULT
   6553 #endif
   6554 
   6555 /*****************************************************************************
   6556  * IFolderView2 interface
   6557  */
   6558 #ifndef __IFolderView2_INTERFACE_DEFINED__
   6559 #define __IFolderView2_INTERFACE_DEFINED__
   6560 
   6561 DEFINE_GUID(IID_IFolderView2, 0x1af3a467, 0x214f, 0x4298, 0x90,0x8e, 0x06,0xb0,0x3e,0x0b,0x39,0xf9);
   6562 #if defined(__cplusplus) && !defined(CINTERFACE)
   6563 MIDL_INTERFACE("1af3a467-214f-4298-908e-06b03e0b39f9")
   6564 IFolderView2 : public IFolderView
   6565 {
   6566     virtual HRESULT STDMETHODCALLTYPE SetGroupBy(
   6567         REFPROPERTYKEY key,
   6568         WINBOOL fAscending) = 0;
   6569 
   6570     virtual HRESULT STDMETHODCALLTYPE GetGroupBy(
   6571         PROPERTYKEY *pkey,
   6572         WINBOOL *pfAscending) = 0;
   6573 
   6574     virtual HRESULT STDMETHODCALLTYPE SetViewProperty(
   6575         PCUITEMID_CHILD pidl,
   6576         REFPROPERTYKEY propkey,
   6577         REFPROPVARIANT propvar) = 0;
   6578 
   6579     virtual HRESULT STDMETHODCALLTYPE GetViewProperty(
   6580         PCUITEMID_CHILD pidl,
   6581         REFPROPERTYKEY propkey,
   6582         PROPVARIANT *ppropvar) = 0;
   6583 
   6584     virtual HRESULT STDMETHODCALLTYPE SetTileViewProperties(
   6585         PCUITEMID_CHILD pidl,
   6586         LPCWSTR pszPropList) = 0;
   6587 
   6588     virtual HRESULT STDMETHODCALLTYPE SetExtendedTileViewProperties(
   6589         PCUITEMID_CHILD pidl,
   6590         LPCWSTR pszPropList) = 0;
   6591 
   6592     virtual HRESULT STDMETHODCALLTYPE SetText(
   6593         FVTEXTTYPE iType,
   6594         LPCWSTR pwszText) = 0;
   6595 
   6596     virtual HRESULT STDMETHODCALLTYPE SetCurrentFolderFlags(
   6597         DWORD dwMask,
   6598         DWORD dwFlags) = 0;
   6599 
   6600     virtual HRESULT STDMETHODCALLTYPE GetCurrentFolderFlags(
   6601         DWORD *pdwFlags) = 0;
   6602 
   6603     virtual HRESULT STDMETHODCALLTYPE GetSortColumnCount(
   6604         int *pcColumns) = 0;
   6605 
   6606     virtual HRESULT STDMETHODCALLTYPE SetSortColumns(
   6607         const SORTCOLUMN *rgSortColumns,
   6608         int cColumns) = 0;
   6609 
   6610     virtual HRESULT STDMETHODCALLTYPE GetSortColumns(
   6611         SORTCOLUMN *rgSortColumns,
   6612         int cColumns) = 0;
   6613 
   6614     virtual HRESULT STDMETHODCALLTYPE GetItem(
   6615         int iItem,
   6616         REFIID riid,
   6617         void **ppv) = 0;
   6618 
   6619     virtual HRESULT STDMETHODCALLTYPE GetVisibleItem(
   6620         int iStart,
   6621         WINBOOL fPrevious,
   6622         int *piItem) = 0;
   6623 
   6624     virtual HRESULT STDMETHODCALLTYPE GetSelectedItem(
   6625         int iStart,
   6626         int *piItem) = 0;
   6627 
   6628     virtual HRESULT STDMETHODCALLTYPE GetSelection(
   6629         WINBOOL fNoneImpliesFolder,
   6630         IShellItemArray **ppsia) = 0;
   6631 
   6632     virtual HRESULT STDMETHODCALLTYPE GetSelectionState(
   6633         PCUITEMID_CHILD pidl,
   6634         DWORD *pdwFlags) = 0;
   6635 
   6636     virtual HRESULT STDMETHODCALLTYPE InvokeVerbOnSelection(
   6637         LPCSTR pszVerb) = 0;
   6638 
   6639     virtual HRESULT STDMETHODCALLTYPE SetViewModeAndIconSize(
   6640         FOLDERVIEWMODE uViewMode,
   6641         int iImageSize) = 0;
   6642 
   6643     virtual HRESULT STDMETHODCALLTYPE GetViewModeAndIconSize(
   6644         FOLDERVIEWMODE *puViewMode,
   6645         int *piImageSize) = 0;
   6646 
   6647     virtual HRESULT STDMETHODCALLTYPE SetGroupSubsetCount(
   6648         UINT cVisibleRows) = 0;
   6649 
   6650     virtual HRESULT STDMETHODCALLTYPE GetGroupSubsetCount(
   6651         UINT *pcVisibleRows) = 0;
   6652 
   6653     virtual HRESULT STDMETHODCALLTYPE SetRedraw(
   6654         WINBOOL fRedrawOn) = 0;
   6655 
   6656     virtual HRESULT STDMETHODCALLTYPE IsMoveInSameFolder(
   6657         ) = 0;
   6658 
   6659     virtual HRESULT STDMETHODCALLTYPE DoRename(
   6660         ) = 0;
   6661 
   6662 };
   6663 #ifdef __CRT_UUID_DECL
   6664 __CRT_UUID_DECL(IFolderView2, 0x1af3a467, 0x214f, 0x4298, 0x90,0x8e, 0x06,0xb0,0x3e,0x0b,0x39,0xf9)
   6665 #endif
   6666 #else
   6667 typedef struct IFolderView2Vtbl {
   6668     BEGIN_INTERFACE
   6669 
   6670     /*** IUnknown methods ***/
   6671     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6672         IFolderView2* This,
   6673         REFIID riid,
   6674         void **ppvObject);
   6675 
   6676     ULONG (STDMETHODCALLTYPE *AddRef)(
   6677         IFolderView2* This);
   6678 
   6679     ULONG (STDMETHODCALLTYPE *Release)(
   6680         IFolderView2* This);
   6681 
   6682     /*** IFolderView methods ***/
   6683     HRESULT (STDMETHODCALLTYPE *GetCurrentViewMode)(
   6684         IFolderView2* This,
   6685         UINT *pViewMode);
   6686 
   6687     HRESULT (STDMETHODCALLTYPE *SetCurrentViewMode)(
   6688         IFolderView2* This,
   6689         UINT ViewMode);
   6690 
   6691     HRESULT (STDMETHODCALLTYPE *GetFolder)(
   6692         IFolderView2* This,
   6693         REFIID riid,
   6694         void **ppv);
   6695 
   6696     HRESULT (STDMETHODCALLTYPE *Item)(
   6697         IFolderView2* This,
   6698         int iItemIndex,
   6699         PITEMID_CHILD *ppidl);
   6700 
   6701     HRESULT (STDMETHODCALLTYPE *ItemCount)(
   6702         IFolderView2* This,
   6703         UINT uFlags,
   6704         int *pcItems);
   6705 
   6706     HRESULT (STDMETHODCALLTYPE *Items)(
   6707         IFolderView2* This,
   6708         UINT uFlags,
   6709         REFIID riid,
   6710         void **ppv);
   6711 
   6712     HRESULT (STDMETHODCALLTYPE *GetSelectionMarkedItem)(
   6713         IFolderView2* This,
   6714         int *piItem);
   6715 
   6716     HRESULT (STDMETHODCALLTYPE *GetFocusedItem)(
   6717         IFolderView2* This,
   6718         int *piItem);
   6719 
   6720     HRESULT (STDMETHODCALLTYPE *GetItemPosition)(
   6721         IFolderView2* This,
   6722         PCUITEMID_CHILD pidl,
   6723         POINT *ppt);
   6724 
   6725     HRESULT (STDMETHODCALLTYPE *GetSpacing)(
   6726         IFolderView2* This,
   6727         POINT *ppt);
   6728 
   6729     HRESULT (STDMETHODCALLTYPE *GetDefaultSpacing)(
   6730         IFolderView2* This,
   6731         POINT *ppt);
   6732 
   6733     HRESULT (STDMETHODCALLTYPE *GetAutoArrange)(
   6734         IFolderView2* This);
   6735 
   6736     HRESULT (STDMETHODCALLTYPE *SelectItem)(
   6737         IFolderView2* This,
   6738         int iItem,
   6739         DWORD dwFlags);
   6740 
   6741     HRESULT (STDMETHODCALLTYPE *SelectAndPositionItems)(
   6742         IFolderView2* This,
   6743         UINT cidl,
   6744         PCUITEMID_CHILD_ARRAY apidl,
   6745         POINT *apt,
   6746         DWORD dwFlags);
   6747 
   6748     /*** IFolderView2 methods ***/
   6749     HRESULT (STDMETHODCALLTYPE *SetGroupBy)(
   6750         IFolderView2* This,
   6751         REFPROPERTYKEY key,
   6752         WINBOOL fAscending);
   6753 
   6754     HRESULT (STDMETHODCALLTYPE *GetGroupBy)(
   6755         IFolderView2* This,
   6756         PROPERTYKEY *pkey,
   6757         WINBOOL *pfAscending);
   6758 
   6759     HRESULT (STDMETHODCALLTYPE *SetViewProperty)(
   6760         IFolderView2* This,
   6761         PCUITEMID_CHILD pidl,
   6762         REFPROPERTYKEY propkey,
   6763         REFPROPVARIANT propvar);
   6764 
   6765     HRESULT (STDMETHODCALLTYPE *GetViewProperty)(
   6766         IFolderView2* This,
   6767         PCUITEMID_CHILD pidl,
   6768         REFPROPERTYKEY propkey,
   6769         PROPVARIANT *ppropvar);
   6770 
   6771     HRESULT (STDMETHODCALLTYPE *SetTileViewProperties)(
   6772         IFolderView2* This,
   6773         PCUITEMID_CHILD pidl,
   6774         LPCWSTR pszPropList);
   6775 
   6776     HRESULT (STDMETHODCALLTYPE *SetExtendedTileViewProperties)(
   6777         IFolderView2* This,
   6778         PCUITEMID_CHILD pidl,
   6779         LPCWSTR pszPropList);
   6780 
   6781     HRESULT (STDMETHODCALLTYPE *SetText)(
   6782         IFolderView2* This,
   6783         FVTEXTTYPE iType,
   6784         LPCWSTR pwszText);
   6785 
   6786     HRESULT (STDMETHODCALLTYPE *SetCurrentFolderFlags)(
   6787         IFolderView2* This,
   6788         DWORD dwMask,
   6789         DWORD dwFlags);
   6790 
   6791     HRESULT (STDMETHODCALLTYPE *GetCurrentFolderFlags)(
   6792         IFolderView2* This,
   6793         DWORD *pdwFlags);
   6794 
   6795     HRESULT (STDMETHODCALLTYPE *GetSortColumnCount)(
   6796         IFolderView2* This,
   6797         int *pcColumns);
   6798 
   6799     HRESULT (STDMETHODCALLTYPE *SetSortColumns)(
   6800         IFolderView2* This,
   6801         const SORTCOLUMN *rgSortColumns,
   6802         int cColumns);
   6803 
   6804     HRESULT (STDMETHODCALLTYPE *GetSortColumns)(
   6805         IFolderView2* This,
   6806         SORTCOLUMN *rgSortColumns,
   6807         int cColumns);
   6808 
   6809     HRESULT (STDMETHODCALLTYPE *GetItem)(
   6810         IFolderView2* This,
   6811         int iItem,
   6812         REFIID riid,
   6813         void **ppv);
   6814 
   6815     HRESULT (STDMETHODCALLTYPE *GetVisibleItem)(
   6816         IFolderView2* This,
   6817         int iStart,
   6818         WINBOOL fPrevious,
   6819         int *piItem);
   6820 
   6821     HRESULT (STDMETHODCALLTYPE *GetSelectedItem)(
   6822         IFolderView2* This,
   6823         int iStart,
   6824         int *piItem);
   6825 
   6826     HRESULT (STDMETHODCALLTYPE *GetSelection)(
   6827         IFolderView2* This,
   6828         WINBOOL fNoneImpliesFolder,
   6829         IShellItemArray **ppsia);
   6830 
   6831     HRESULT (STDMETHODCALLTYPE *GetSelectionState)(
   6832         IFolderView2* This,
   6833         PCUITEMID_CHILD pidl,
   6834         DWORD *pdwFlags);
   6835 
   6836     HRESULT (STDMETHODCALLTYPE *InvokeVerbOnSelection)(
   6837         IFolderView2* This,
   6838         LPCSTR pszVerb);
   6839 
   6840     HRESULT (STDMETHODCALLTYPE *SetViewModeAndIconSize)(
   6841         IFolderView2* This,
   6842         FOLDERVIEWMODE uViewMode,
   6843         int iImageSize);
   6844 
   6845     HRESULT (STDMETHODCALLTYPE *GetViewModeAndIconSize)(
   6846         IFolderView2* This,
   6847         FOLDERVIEWMODE *puViewMode,
   6848         int *piImageSize);
   6849 
   6850     HRESULT (STDMETHODCALLTYPE *SetGroupSubsetCount)(
   6851         IFolderView2* This,
   6852         UINT cVisibleRows);
   6853 
   6854     HRESULT (STDMETHODCALLTYPE *GetGroupSubsetCount)(
   6855         IFolderView2* This,
   6856         UINT *pcVisibleRows);
   6857 
   6858     HRESULT (STDMETHODCALLTYPE *SetRedraw)(
   6859         IFolderView2* This,
   6860         WINBOOL fRedrawOn);
   6861 
   6862     HRESULT (STDMETHODCALLTYPE *IsMoveInSameFolder)(
   6863         IFolderView2* This);
   6864 
   6865     HRESULT (STDMETHODCALLTYPE *DoRename)(
   6866         IFolderView2* This);
   6867 
   6868     END_INTERFACE
   6869 } IFolderView2Vtbl;
   6870 interface IFolderView2 {
   6871     CONST_VTBL IFolderView2Vtbl* lpVtbl;
   6872 };
   6873 
   6874 #ifdef COBJMACROS
   6875 #ifndef WIDL_C_INLINE_WRAPPERS
   6876 /*** IUnknown methods ***/
   6877 #define IFolderView2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6878 #define IFolderView2_AddRef(This) (This)->lpVtbl->AddRef(This)
   6879 #define IFolderView2_Release(This) (This)->lpVtbl->Release(This)
   6880 /*** IFolderView methods ***/
   6881 #define IFolderView2_GetCurrentViewMode(This,pViewMode) (This)->lpVtbl->GetCurrentViewMode(This,pViewMode)
   6882 #define IFolderView2_SetCurrentViewMode(This,ViewMode) (This)->lpVtbl->SetCurrentViewMode(This,ViewMode)
   6883 #define IFolderView2_GetFolder(This,riid,ppv) (This)->lpVtbl->GetFolder(This,riid,ppv)
   6884 #define IFolderView2_Item(This,iItemIndex,ppidl) (This)->lpVtbl->Item(This,iItemIndex,ppidl)
   6885 #define IFolderView2_ItemCount(This,uFlags,pcItems) (This)->lpVtbl->ItemCount(This,uFlags,pcItems)
   6886 #define IFolderView2_Items(This,uFlags,riid,ppv) (This)->lpVtbl->Items(This,uFlags,riid,ppv)
   6887 #define IFolderView2_GetSelectionMarkedItem(This,piItem) (This)->lpVtbl->GetSelectionMarkedItem(This,piItem)
   6888 #define IFolderView2_GetFocusedItem(This,piItem) (This)->lpVtbl->GetFocusedItem(This,piItem)
   6889 #define IFolderView2_GetItemPosition(This,pidl,ppt) (This)->lpVtbl->GetItemPosition(This,pidl,ppt)
   6890 #define IFolderView2_GetSpacing(This,ppt) (This)->lpVtbl->GetSpacing(This,ppt)
   6891 #define IFolderView2_GetDefaultSpacing(This,ppt) (This)->lpVtbl->GetDefaultSpacing(This,ppt)
   6892 #define IFolderView2_GetAutoArrange(This) (This)->lpVtbl->GetAutoArrange(This)
   6893 #define IFolderView2_SelectItem(This,iItem,dwFlags) (This)->lpVtbl->SelectItem(This,iItem,dwFlags)
   6894 #define IFolderView2_SelectAndPositionItems(This,cidl,apidl,apt,dwFlags) (This)->lpVtbl->SelectAndPositionItems(This,cidl,apidl,apt,dwFlags)
   6895 /*** IFolderView2 methods ***/
   6896 #define IFolderView2_SetGroupBy(This,key,fAscending) (This)->lpVtbl->SetGroupBy(This,key,fAscending)
   6897 #define IFolderView2_GetGroupBy(This,pkey,pfAscending) (This)->lpVtbl->GetGroupBy(This,pkey,pfAscending)
   6898 #define IFolderView2_SetViewProperty(This,pidl,propkey,propvar) (This)->lpVtbl->SetViewProperty(This,pidl,propkey,propvar)
   6899 #define IFolderView2_GetViewProperty(This,pidl,propkey,ppropvar) (This)->lpVtbl->GetViewProperty(This,pidl,propkey,ppropvar)
   6900 #define IFolderView2_SetTileViewProperties(This,pidl,pszPropList) (This)->lpVtbl->SetTileViewProperties(This,pidl,pszPropList)
   6901 #define IFolderView2_SetExtendedTileViewProperties(This,pidl,pszPropList) (This)->lpVtbl->SetExtendedTileViewProperties(This,pidl,pszPropList)
   6902 #define IFolderView2_SetText(This,iType,pwszText) (This)->lpVtbl->SetText(This,iType,pwszText)
   6903 #define IFolderView2_SetCurrentFolderFlags(This,dwMask,dwFlags) (This)->lpVtbl->SetCurrentFolderFlags(This,dwMask,dwFlags)
   6904 #define IFolderView2_GetCurrentFolderFlags(This,pdwFlags) (This)->lpVtbl->GetCurrentFolderFlags(This,pdwFlags)
   6905 #define IFolderView2_GetSortColumnCount(This,pcColumns) (This)->lpVtbl->GetSortColumnCount(This,pcColumns)
   6906 #define IFolderView2_SetSortColumns(This,rgSortColumns,cColumns) (This)->lpVtbl->SetSortColumns(This,rgSortColumns,cColumns)
   6907 #define IFolderView2_GetSortColumns(This,rgSortColumns,cColumns) (This)->lpVtbl->GetSortColumns(This,rgSortColumns,cColumns)
   6908 #define IFolderView2_GetItem(This,iItem,riid,ppv) (This)->lpVtbl->GetItem(This,iItem,riid,ppv)
   6909 #define IFolderView2_GetVisibleItem(This,iStart,fPrevious,piItem) (This)->lpVtbl->GetVisibleItem(This,iStart,fPrevious,piItem)
   6910 #define IFolderView2_GetSelectedItem(This,iStart,piItem) (This)->lpVtbl->GetSelectedItem(This,iStart,piItem)
   6911 #define IFolderView2_GetSelection(This,fNoneImpliesFolder,ppsia) (This)->lpVtbl->GetSelection(This,fNoneImpliesFolder,ppsia)
   6912 #define IFolderView2_GetSelectionState(This,pidl,pdwFlags) (This)->lpVtbl->GetSelectionState(This,pidl,pdwFlags)
   6913 #define IFolderView2_InvokeVerbOnSelection(This,pszVerb) (This)->lpVtbl->InvokeVerbOnSelection(This,pszVerb)
   6914 #define IFolderView2_SetViewModeAndIconSize(This,uViewMode,iImageSize) (This)->lpVtbl->SetViewModeAndIconSize(This,uViewMode,iImageSize)
   6915 #define IFolderView2_GetViewModeAndIconSize(This,puViewMode,piImageSize) (This)->lpVtbl->GetViewModeAndIconSize(This,puViewMode,piImageSize)
   6916 #define IFolderView2_SetGroupSubsetCount(This,cVisibleRows) (This)->lpVtbl->SetGroupSubsetCount(This,cVisibleRows)
   6917 #define IFolderView2_GetGroupSubsetCount(This,pcVisibleRows) (This)->lpVtbl->GetGroupSubsetCount(This,pcVisibleRows)
   6918 #define IFolderView2_SetRedraw(This,fRedrawOn) (This)->lpVtbl->SetRedraw(This,fRedrawOn)
   6919 #define IFolderView2_IsMoveInSameFolder(This) (This)->lpVtbl->IsMoveInSameFolder(This)
   6920 #define IFolderView2_DoRename(This) (This)->lpVtbl->DoRename(This)
   6921 #else
   6922 /*** IUnknown methods ***/
   6923 static FORCEINLINE HRESULT IFolderView2_QueryInterface(IFolderView2* This,REFIID riid,void **ppvObject) {
   6924     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6925 }
   6926 static FORCEINLINE ULONG IFolderView2_AddRef(IFolderView2* This) {
   6927     return This->lpVtbl->AddRef(This);
   6928 }
   6929 static FORCEINLINE ULONG IFolderView2_Release(IFolderView2* This) {
   6930     return This->lpVtbl->Release(This);
   6931 }
   6932 /*** IFolderView methods ***/
   6933 static FORCEINLINE HRESULT IFolderView2_GetCurrentViewMode(IFolderView2* This,UINT *pViewMode) {
   6934     return This->lpVtbl->GetCurrentViewMode(This,pViewMode);
   6935 }
   6936 static FORCEINLINE HRESULT IFolderView2_SetCurrentViewMode(IFolderView2* This,UINT ViewMode) {
   6937     return This->lpVtbl->SetCurrentViewMode(This,ViewMode);
   6938 }
   6939 static FORCEINLINE HRESULT IFolderView2_GetFolder(IFolderView2* This,REFIID riid,void **ppv) {
   6940     return This->lpVtbl->GetFolder(This,riid,ppv);
   6941 }
   6942 static FORCEINLINE HRESULT IFolderView2_Item(IFolderView2* This,int iItemIndex,PITEMID_CHILD *ppidl) {
   6943     return This->lpVtbl->Item(This,iItemIndex,ppidl);
   6944 }
   6945 static FORCEINLINE HRESULT IFolderView2_ItemCount(IFolderView2* This,UINT uFlags,int *pcItems) {
   6946     return This->lpVtbl->ItemCount(This,uFlags,pcItems);
   6947 }
   6948 static FORCEINLINE HRESULT IFolderView2_Items(IFolderView2* This,UINT uFlags,REFIID riid,void **ppv) {
   6949     return This->lpVtbl->Items(This,uFlags,riid,ppv);
   6950 }
   6951 static FORCEINLINE HRESULT IFolderView2_GetSelectionMarkedItem(IFolderView2* This,int *piItem) {
   6952     return This->lpVtbl->GetSelectionMarkedItem(This,piItem);
   6953 }
   6954 static FORCEINLINE HRESULT IFolderView2_GetFocusedItem(IFolderView2* This,int *piItem) {
   6955     return This->lpVtbl->GetFocusedItem(This,piItem);
   6956 }
   6957 static FORCEINLINE HRESULT IFolderView2_GetItemPosition(IFolderView2* This,PCUITEMID_CHILD pidl,POINT *ppt) {
   6958     return This->lpVtbl->GetItemPosition(This,pidl,ppt);
   6959 }
   6960 static FORCEINLINE HRESULT IFolderView2_GetSpacing(IFolderView2* This,POINT *ppt) {
   6961     return This->lpVtbl->GetSpacing(This,ppt);
   6962 }
   6963 static FORCEINLINE HRESULT IFolderView2_GetDefaultSpacing(IFolderView2* This,POINT *ppt) {
   6964     return This->lpVtbl->GetDefaultSpacing(This,ppt);
   6965 }
   6966 static FORCEINLINE HRESULT IFolderView2_GetAutoArrange(IFolderView2* This) {
   6967     return This->lpVtbl->GetAutoArrange(This);
   6968 }
   6969 static FORCEINLINE HRESULT IFolderView2_SelectItem(IFolderView2* This,int iItem,DWORD dwFlags) {
   6970     return This->lpVtbl->SelectItem(This,iItem,dwFlags);
   6971 }
   6972 static FORCEINLINE HRESULT IFolderView2_SelectAndPositionItems(IFolderView2* This,UINT cidl,PCUITEMID_CHILD_ARRAY apidl,POINT *apt,DWORD dwFlags) {
   6973     return This->lpVtbl->SelectAndPositionItems(This,cidl,apidl,apt,dwFlags);
   6974 }
   6975 /*** IFolderView2 methods ***/
   6976 static FORCEINLINE HRESULT IFolderView2_SetGroupBy(IFolderView2* This,REFPROPERTYKEY key,WINBOOL fAscending) {
   6977     return This->lpVtbl->SetGroupBy(This,key,fAscending);
   6978 }
   6979 static FORCEINLINE HRESULT IFolderView2_GetGroupBy(IFolderView2* This,PROPERTYKEY *pkey,WINBOOL *pfAscending) {
   6980     return This->lpVtbl->GetGroupBy(This,pkey,pfAscending);
   6981 }
   6982 static FORCEINLINE HRESULT IFolderView2_SetViewProperty(IFolderView2* This,PCUITEMID_CHILD pidl,REFPROPERTYKEY propkey,REFPROPVARIANT propvar) {
   6983     return This->lpVtbl->SetViewProperty(This,pidl,propkey,propvar);
   6984 }
   6985 static FORCEINLINE HRESULT IFolderView2_GetViewProperty(IFolderView2* This,PCUITEMID_CHILD pidl,REFPROPERTYKEY propkey,PROPVARIANT *ppropvar) {
   6986     return This->lpVtbl->GetViewProperty(This,pidl,propkey,ppropvar);
   6987 }
   6988 static FORCEINLINE HRESULT IFolderView2_SetTileViewProperties(IFolderView2* This,PCUITEMID_CHILD pidl,LPCWSTR pszPropList) {
   6989     return This->lpVtbl->SetTileViewProperties(This,pidl,pszPropList);
   6990 }
   6991 static FORCEINLINE HRESULT IFolderView2_SetExtendedTileViewProperties(IFolderView2* This,PCUITEMID_CHILD pidl,LPCWSTR pszPropList) {
   6992     return This->lpVtbl->SetExtendedTileViewProperties(This,pidl,pszPropList);
   6993 }
   6994 static FORCEINLINE HRESULT IFolderView2_SetText(IFolderView2* This,FVTEXTTYPE iType,LPCWSTR pwszText) {
   6995     return This->lpVtbl->SetText(This,iType,pwszText);
   6996 }
   6997 static FORCEINLINE HRESULT IFolderView2_SetCurrentFolderFlags(IFolderView2* This,DWORD dwMask,DWORD dwFlags) {
   6998     return This->lpVtbl->SetCurrentFolderFlags(This,dwMask,dwFlags);
   6999 }
   7000 static FORCEINLINE HRESULT IFolderView2_GetCurrentFolderFlags(IFolderView2* This,DWORD *pdwFlags) {
   7001     return This->lpVtbl->GetCurrentFolderFlags(This,pdwFlags);
   7002 }
   7003 static FORCEINLINE HRESULT IFolderView2_GetSortColumnCount(IFolderView2* This,int *pcColumns) {
   7004     return This->lpVtbl->GetSortColumnCount(This,pcColumns);
   7005 }
   7006 static FORCEINLINE HRESULT IFolderView2_SetSortColumns(IFolderView2* This,const SORTCOLUMN *rgSortColumns,int cColumns) {
   7007     return This->lpVtbl->SetSortColumns(This,rgSortColumns,cColumns);
   7008 }
   7009 static FORCEINLINE HRESULT IFolderView2_GetSortColumns(IFolderView2* This,SORTCOLUMN *rgSortColumns,int cColumns) {
   7010     return This->lpVtbl->GetSortColumns(This,rgSortColumns,cColumns);
   7011 }
   7012 static FORCEINLINE HRESULT IFolderView2_GetItem(IFolderView2* This,int iItem,REFIID riid,void **ppv) {
   7013     return This->lpVtbl->GetItem(This,iItem,riid,ppv);
   7014 }
   7015 static FORCEINLINE HRESULT IFolderView2_GetVisibleItem(IFolderView2* This,int iStart,WINBOOL fPrevious,int *piItem) {
   7016     return This->lpVtbl->GetVisibleItem(This,iStart,fPrevious,piItem);
   7017 }
   7018 static FORCEINLINE HRESULT IFolderView2_GetSelectedItem(IFolderView2* This,int iStart,int *piItem) {
   7019     return This->lpVtbl->GetSelectedItem(This,iStart,piItem);
   7020 }
   7021 static FORCEINLINE HRESULT IFolderView2_GetSelection(IFolderView2* This,WINBOOL fNoneImpliesFolder,IShellItemArray **ppsia) {
   7022     return This->lpVtbl->GetSelection(This,fNoneImpliesFolder,ppsia);
   7023 }
   7024 static FORCEINLINE HRESULT IFolderView2_GetSelectionState(IFolderView2* This,PCUITEMID_CHILD pidl,DWORD *pdwFlags) {
   7025     return This->lpVtbl->GetSelectionState(This,pidl,pdwFlags);
   7026 }
   7027 static FORCEINLINE HRESULT IFolderView2_InvokeVerbOnSelection(IFolderView2* This,LPCSTR pszVerb) {
   7028     return This->lpVtbl->InvokeVerbOnSelection(This,pszVerb);
   7029 }
   7030 static FORCEINLINE HRESULT IFolderView2_SetViewModeAndIconSize(IFolderView2* This,FOLDERVIEWMODE uViewMode,int iImageSize) {
   7031     return This->lpVtbl->SetViewModeAndIconSize(This,uViewMode,iImageSize);
   7032 }
   7033 static FORCEINLINE HRESULT IFolderView2_GetViewModeAndIconSize(IFolderView2* This,FOLDERVIEWMODE *puViewMode,int *piImageSize) {
   7034     return This->lpVtbl->GetViewModeAndIconSize(This,puViewMode,piImageSize);
   7035 }
   7036 static FORCEINLINE HRESULT IFolderView2_SetGroupSubsetCount(IFolderView2* This,UINT cVisibleRows) {
   7037     return This->lpVtbl->SetGroupSubsetCount(This,cVisibleRows);
   7038 }
   7039 static FORCEINLINE HRESULT IFolderView2_GetGroupSubsetCount(IFolderView2* This,UINT *pcVisibleRows) {
   7040     return This->lpVtbl->GetGroupSubsetCount(This,pcVisibleRows);
   7041 }
   7042 static FORCEINLINE HRESULT IFolderView2_SetRedraw(IFolderView2* This,WINBOOL fRedrawOn) {
   7043     return This->lpVtbl->SetRedraw(This,fRedrawOn);
   7044 }
   7045 static FORCEINLINE HRESULT IFolderView2_IsMoveInSameFolder(IFolderView2* This) {
   7046     return This->lpVtbl->IsMoveInSameFolder(This);
   7047 }
   7048 static FORCEINLINE HRESULT IFolderView2_DoRename(IFolderView2* This) {
   7049     return This->lpVtbl->DoRename(This);
   7050 }
   7051 #endif
   7052 #endif
   7053 
   7054 #endif
   7055 
   7056 HRESULT STDMETHODCALLTYPE IFolderView2_SetGroupBy_Proxy(
   7057     IFolderView2* This,
   7058     REFPROPERTYKEY key,
   7059     WINBOOL fAscending);
   7060 void __RPC_STUB IFolderView2_SetGroupBy_Stub(
   7061     IRpcStubBuffer* This,
   7062     IRpcChannelBuffer* pRpcChannelBuffer,
   7063     PRPC_MESSAGE pRpcMessage,
   7064     DWORD* pdwStubPhase);
   7065 HRESULT STDMETHODCALLTYPE IFolderView2_RemoteGetGroupBy_Proxy(
   7066     IFolderView2* This,
   7067     PROPERTYKEY *pkey,
   7068     WINBOOL *pfAscending);
   7069 void __RPC_STUB IFolderView2_RemoteGetGroupBy_Stub(
   7070     IRpcStubBuffer* This,
   7071     IRpcChannelBuffer* pRpcChannelBuffer,
   7072     PRPC_MESSAGE pRpcMessage,
   7073     DWORD* pdwStubPhase);
   7074 HRESULT STDMETHODCALLTYPE IFolderView2_SetViewProperty_Proxy(
   7075     IFolderView2* This,
   7076     PCUITEMID_CHILD pidl,
   7077     REFPROPERTYKEY propkey,
   7078     REFPROPVARIANT propvar);
   7079 void __RPC_STUB IFolderView2_SetViewProperty_Stub(
   7080     IRpcStubBuffer* This,
   7081     IRpcChannelBuffer* pRpcChannelBuffer,
   7082     PRPC_MESSAGE pRpcMessage,
   7083     DWORD* pdwStubPhase);
   7084 HRESULT STDMETHODCALLTYPE IFolderView2_GetViewProperty_Proxy(
   7085     IFolderView2* This,
   7086     PCUITEMID_CHILD pidl,
   7087     REFPROPERTYKEY propkey,
   7088     PROPVARIANT *ppropvar);
   7089 void __RPC_STUB IFolderView2_GetViewProperty_Stub(
   7090     IRpcStubBuffer* This,
   7091     IRpcChannelBuffer* pRpcChannelBuffer,
   7092     PRPC_MESSAGE pRpcMessage,
   7093     DWORD* pdwStubPhase);
   7094 HRESULT STDMETHODCALLTYPE IFolderView2_SetTileViewProperties_Proxy(
   7095     IFolderView2* This,
   7096     PCUITEMID_CHILD pidl,
   7097     LPCWSTR pszPropList);
   7098 void __RPC_STUB IFolderView2_SetTileViewProperties_Stub(
   7099     IRpcStubBuffer* This,
   7100     IRpcChannelBuffer* pRpcChannelBuffer,
   7101     PRPC_MESSAGE pRpcMessage,
   7102     DWORD* pdwStubPhase);
   7103 HRESULT STDMETHODCALLTYPE IFolderView2_SetExtendedTileViewProperties_Proxy(
   7104     IFolderView2* This,
   7105     PCUITEMID_CHILD pidl,
   7106     LPCWSTR pszPropList);
   7107 void __RPC_STUB IFolderView2_SetExtendedTileViewProperties_Stub(
   7108     IRpcStubBuffer* This,
   7109     IRpcChannelBuffer* pRpcChannelBuffer,
   7110     PRPC_MESSAGE pRpcMessage,
   7111     DWORD* pdwStubPhase);
   7112 HRESULT STDMETHODCALLTYPE IFolderView2_SetText_Proxy(
   7113     IFolderView2* This,
   7114     FVTEXTTYPE iType,
   7115     LPCWSTR pwszText);
   7116 void __RPC_STUB IFolderView2_SetText_Stub(
   7117     IRpcStubBuffer* This,
   7118     IRpcChannelBuffer* pRpcChannelBuffer,
   7119     PRPC_MESSAGE pRpcMessage,
   7120     DWORD* pdwStubPhase);
   7121 HRESULT STDMETHODCALLTYPE IFolderView2_SetCurrentFolderFlags_Proxy(
   7122     IFolderView2* This,
   7123     DWORD dwMask,
   7124     DWORD dwFlags);
   7125 void __RPC_STUB IFolderView2_SetCurrentFolderFlags_Stub(
   7126     IRpcStubBuffer* This,
   7127     IRpcChannelBuffer* pRpcChannelBuffer,
   7128     PRPC_MESSAGE pRpcMessage,
   7129     DWORD* pdwStubPhase);
   7130 HRESULT STDMETHODCALLTYPE IFolderView2_GetCurrentFolderFlags_Proxy(
   7131     IFolderView2* This,
   7132     DWORD *pdwFlags);
   7133 void __RPC_STUB IFolderView2_GetCurrentFolderFlags_Stub(
   7134     IRpcStubBuffer* This,
   7135     IRpcChannelBuffer* pRpcChannelBuffer,
   7136     PRPC_MESSAGE pRpcMessage,
   7137     DWORD* pdwStubPhase);
   7138 HRESULT STDMETHODCALLTYPE IFolderView2_GetSortColumnCount_Proxy(
   7139     IFolderView2* This,
   7140     int *pcColumns);
   7141 void __RPC_STUB IFolderView2_GetSortColumnCount_Stub(
   7142     IRpcStubBuffer* This,
   7143     IRpcChannelBuffer* pRpcChannelBuffer,
   7144     PRPC_MESSAGE pRpcMessage,
   7145     DWORD* pdwStubPhase);
   7146 HRESULT STDMETHODCALLTYPE IFolderView2_SetSortColumns_Proxy(
   7147     IFolderView2* This,
   7148     const SORTCOLUMN *rgSortColumns,
   7149     int cColumns);
   7150 void __RPC_STUB IFolderView2_SetSortColumns_Stub(
   7151     IRpcStubBuffer* This,
   7152     IRpcChannelBuffer* pRpcChannelBuffer,
   7153     PRPC_MESSAGE pRpcMessage,
   7154     DWORD* pdwStubPhase);
   7155 HRESULT STDMETHODCALLTYPE IFolderView2_GetSortColumns_Proxy(
   7156     IFolderView2* This,
   7157     SORTCOLUMN *rgSortColumns,
   7158     int cColumns);
   7159 void __RPC_STUB IFolderView2_GetSortColumns_Stub(
   7160     IRpcStubBuffer* This,
   7161     IRpcChannelBuffer* pRpcChannelBuffer,
   7162     PRPC_MESSAGE pRpcMessage,
   7163     DWORD* pdwStubPhase);
   7164 HRESULT STDMETHODCALLTYPE IFolderView2_GetItem_Proxy(
   7165     IFolderView2* This,
   7166     int iItem,
   7167     REFIID riid,
   7168     void **ppv);
   7169 void __RPC_STUB IFolderView2_GetItem_Stub(
   7170     IRpcStubBuffer* This,
   7171     IRpcChannelBuffer* pRpcChannelBuffer,
   7172     PRPC_MESSAGE pRpcMessage,
   7173     DWORD* pdwStubPhase);
   7174 HRESULT STDMETHODCALLTYPE IFolderView2_GetVisibleItem_Proxy(
   7175     IFolderView2* This,
   7176     int iStart,
   7177     WINBOOL fPrevious,
   7178     int *piItem);
   7179 void __RPC_STUB IFolderView2_GetVisibleItem_Stub(
   7180     IRpcStubBuffer* This,
   7181     IRpcChannelBuffer* pRpcChannelBuffer,
   7182     PRPC_MESSAGE pRpcMessage,
   7183     DWORD* pdwStubPhase);
   7184 HRESULT STDMETHODCALLTYPE IFolderView2_GetSelectedItem_Proxy(
   7185     IFolderView2* This,
   7186     int iStart,
   7187     int *piItem);
   7188 void __RPC_STUB IFolderView2_GetSelectedItem_Stub(
   7189     IRpcStubBuffer* This,
   7190     IRpcChannelBuffer* pRpcChannelBuffer,
   7191     PRPC_MESSAGE pRpcMessage,
   7192     DWORD* pdwStubPhase);
   7193 HRESULT STDMETHODCALLTYPE IFolderView2_GetSelection_Proxy(
   7194     IFolderView2* This,
   7195     WINBOOL fNoneImpliesFolder,
   7196     IShellItemArray **ppsia);
   7197 void __RPC_STUB IFolderView2_GetSelection_Stub(
   7198     IRpcStubBuffer* This,
   7199     IRpcChannelBuffer* pRpcChannelBuffer,
   7200     PRPC_MESSAGE pRpcMessage,
   7201     DWORD* pdwStubPhase);
   7202 HRESULT STDMETHODCALLTYPE IFolderView2_GetSelectionState_Proxy(
   7203     IFolderView2* This,
   7204     PCUITEMID_CHILD pidl,
   7205     DWORD *pdwFlags);
   7206 void __RPC_STUB IFolderView2_GetSelectionState_Stub(
   7207     IRpcStubBuffer* This,
   7208     IRpcChannelBuffer* pRpcChannelBuffer,
   7209     PRPC_MESSAGE pRpcMessage,
   7210     DWORD* pdwStubPhase);
   7211 HRESULT STDMETHODCALLTYPE IFolderView2_InvokeVerbOnSelection_Proxy(
   7212     IFolderView2* This,
   7213     LPCSTR pszVerb);
   7214 void __RPC_STUB IFolderView2_InvokeVerbOnSelection_Stub(
   7215     IRpcStubBuffer* This,
   7216     IRpcChannelBuffer* pRpcChannelBuffer,
   7217     PRPC_MESSAGE pRpcMessage,
   7218     DWORD* pdwStubPhase);
   7219 HRESULT STDMETHODCALLTYPE IFolderView2_SetViewModeAndIconSize_Proxy(
   7220     IFolderView2* This,
   7221     FOLDERVIEWMODE uViewMode,
   7222     int iImageSize);
   7223 void __RPC_STUB IFolderView2_SetViewModeAndIconSize_Stub(
   7224     IRpcStubBuffer* This,
   7225     IRpcChannelBuffer* pRpcChannelBuffer,
   7226     PRPC_MESSAGE pRpcMessage,
   7227     DWORD* pdwStubPhase);
   7228 HRESULT STDMETHODCALLTYPE IFolderView2_GetViewModeAndIconSize_Proxy(
   7229     IFolderView2* This,
   7230     FOLDERVIEWMODE *puViewMode,
   7231     int *piImageSize);
   7232 void __RPC_STUB IFolderView2_GetViewModeAndIconSize_Stub(
   7233     IRpcStubBuffer* This,
   7234     IRpcChannelBuffer* pRpcChannelBuffer,
   7235     PRPC_MESSAGE pRpcMessage,
   7236     DWORD* pdwStubPhase);
   7237 HRESULT STDMETHODCALLTYPE IFolderView2_SetGroupSubsetCount_Proxy(
   7238     IFolderView2* This,
   7239     UINT cVisibleRows);
   7240 void __RPC_STUB IFolderView2_SetGroupSubsetCount_Stub(
   7241     IRpcStubBuffer* This,
   7242     IRpcChannelBuffer* pRpcChannelBuffer,
   7243     PRPC_MESSAGE pRpcMessage,
   7244     DWORD* pdwStubPhase);
   7245 HRESULT STDMETHODCALLTYPE IFolderView2_GetGroupSubsetCount_Proxy(
   7246     IFolderView2* This,
   7247     UINT *pcVisibleRows);
   7248 void __RPC_STUB IFolderView2_GetGroupSubsetCount_Stub(
   7249     IRpcStubBuffer* This,
   7250     IRpcChannelBuffer* pRpcChannelBuffer,
   7251     PRPC_MESSAGE pRpcMessage,
   7252     DWORD* pdwStubPhase);
   7253 HRESULT STDMETHODCALLTYPE IFolderView2_SetRedraw_Proxy(
   7254     IFolderView2* This,
   7255     WINBOOL fRedrawOn);
   7256 void __RPC_STUB IFolderView2_SetRedraw_Stub(
   7257     IRpcStubBuffer* This,
   7258     IRpcChannelBuffer* pRpcChannelBuffer,
   7259     PRPC_MESSAGE pRpcMessage,
   7260     DWORD* pdwStubPhase);
   7261 HRESULT STDMETHODCALLTYPE IFolderView2_IsMoveInSameFolder_Proxy(
   7262     IFolderView2* This);
   7263 void __RPC_STUB IFolderView2_IsMoveInSameFolder_Stub(
   7264     IRpcStubBuffer* This,
   7265     IRpcChannelBuffer* pRpcChannelBuffer,
   7266     PRPC_MESSAGE pRpcMessage,
   7267     DWORD* pdwStubPhase);
   7268 HRESULT STDMETHODCALLTYPE IFolderView2_DoRename_Proxy(
   7269     IFolderView2* This);
   7270 void __RPC_STUB IFolderView2_DoRename_Stub(
   7271     IRpcStubBuffer* This,
   7272     IRpcChannelBuffer* pRpcChannelBuffer,
   7273     PRPC_MESSAGE pRpcMessage,
   7274     DWORD* pdwStubPhase);
   7275 HRESULT CALLBACK IFolderView2_GetGroupBy_Proxy(
   7276     IFolderView2* This,
   7277     PROPERTYKEY *pkey,
   7278     WINBOOL *pfAscending);
   7279 HRESULT __RPC_STUB IFolderView2_GetGroupBy_Stub(
   7280     IFolderView2* This,
   7281     PROPERTYKEY *pkey,
   7282     WINBOOL *pfAscending);
   7283 
   7284 #endif  /* __IFolderView2_INTERFACE_DEFINED__ */
   7285 
   7286 
   7287 #if NTDDI_VERSION >= NTDDI_VISTA
   7288 /*****************************************************************************
   7289  * IFolderViewSettings interface
   7290  */
   7291 #ifndef __IFolderViewSettings_INTERFACE_DEFINED__
   7292 #define __IFolderViewSettings_INTERFACE_DEFINED__
   7293 
   7294 DEFINE_GUID(IID_IFolderViewSettings, 0xae8c987d, 0x8797, 0x4ed3, 0xbe,0x72, 0x2a,0x47,0xdd,0x93,0x8d,0xb0);
   7295 #if defined(__cplusplus) && !defined(CINTERFACE)
   7296 MIDL_INTERFACE("ae8c987d-8797-4ed3-be72-2a47dd938db0")
   7297 IFolderViewSettings : public IUnknown
   7298 {
   7299     virtual HRESULT STDMETHODCALLTYPE GetColumnPropertyList(
   7300         REFIID riid,
   7301         void **ppv) = 0;
   7302 
   7303     virtual HRESULT STDMETHODCALLTYPE GetGroupByProperty(
   7304         PROPERTYKEY *pkey,
   7305         WINBOOL *pfGroupAscending) = 0;
   7306 
   7307     virtual HRESULT STDMETHODCALLTYPE GetViewMode(
   7308         FOLDERLOGICALVIEWMODE *plvm) = 0;
   7309 
   7310     virtual HRESULT STDMETHODCALLTYPE GetIconSize(
   7311         UINT *puIconSize) = 0;
   7312 
   7313     virtual HRESULT STDMETHODCALLTYPE GetFolderFlags(
   7314         FOLDERFLAGS *pfolderMask,
   7315         FOLDERFLAGS *pfolderFlags) = 0;
   7316 
   7317     virtual HRESULT STDMETHODCALLTYPE GetSortColumns(
   7318         SORTCOLUMN *rgSortColumns,
   7319         UINT cColumnsIn,
   7320         UINT *pcColumnsOut) = 0;
   7321 
   7322     virtual HRESULT STDMETHODCALLTYPE GetGroupSubsetCount(
   7323         UINT *pcVisibleRows) = 0;
   7324 
   7325 };
   7326 #ifdef __CRT_UUID_DECL
   7327 __CRT_UUID_DECL(IFolderViewSettings, 0xae8c987d, 0x8797, 0x4ed3, 0xbe,0x72, 0x2a,0x47,0xdd,0x93,0x8d,0xb0)
   7328 #endif
   7329 #else
   7330 typedef struct IFolderViewSettingsVtbl {
   7331     BEGIN_INTERFACE
   7332 
   7333     /*** IUnknown methods ***/
   7334     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7335         IFolderViewSettings* This,
   7336         REFIID riid,
   7337         void **ppvObject);
   7338 
   7339     ULONG (STDMETHODCALLTYPE *AddRef)(
   7340         IFolderViewSettings* This);
   7341 
   7342     ULONG (STDMETHODCALLTYPE *Release)(
   7343         IFolderViewSettings* This);
   7344 
   7345     /*** IFolderViewSettings methods ***/
   7346     HRESULT (STDMETHODCALLTYPE *GetColumnPropertyList)(
   7347         IFolderViewSettings* This,
   7348         REFIID riid,
   7349         void **ppv);
   7350 
   7351     HRESULT (STDMETHODCALLTYPE *GetGroupByProperty)(
   7352         IFolderViewSettings* This,
   7353         PROPERTYKEY *pkey,
   7354         WINBOOL *pfGroupAscending);
   7355 
   7356     HRESULT (STDMETHODCALLTYPE *GetViewMode)(
   7357         IFolderViewSettings* This,
   7358         FOLDERLOGICALVIEWMODE *plvm);
   7359 
   7360     HRESULT (STDMETHODCALLTYPE *GetIconSize)(
   7361         IFolderViewSettings* This,
   7362         UINT *puIconSize);
   7363 
   7364     HRESULT (STDMETHODCALLTYPE *GetFolderFlags)(
   7365         IFolderViewSettings* This,
   7366         FOLDERFLAGS *pfolderMask,
   7367         FOLDERFLAGS *pfolderFlags);
   7368 
   7369     HRESULT (STDMETHODCALLTYPE *GetSortColumns)(
   7370         IFolderViewSettings* This,
   7371         SORTCOLUMN *rgSortColumns,
   7372         UINT cColumnsIn,
   7373         UINT *pcColumnsOut);
   7374 
   7375     HRESULT (STDMETHODCALLTYPE *GetGroupSubsetCount)(
   7376         IFolderViewSettings* This,
   7377         UINT *pcVisibleRows);
   7378 
   7379     END_INTERFACE
   7380 } IFolderViewSettingsVtbl;
   7381 interface IFolderViewSettings {
   7382     CONST_VTBL IFolderViewSettingsVtbl* lpVtbl;
   7383 };
   7384 
   7385 #ifdef COBJMACROS
   7386 #ifndef WIDL_C_INLINE_WRAPPERS
   7387 /*** IUnknown methods ***/
   7388 #define IFolderViewSettings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7389 #define IFolderViewSettings_AddRef(This) (This)->lpVtbl->AddRef(This)
   7390 #define IFolderViewSettings_Release(This) (This)->lpVtbl->Release(This)
   7391 /*** IFolderViewSettings methods ***/
   7392 #define IFolderViewSettings_GetColumnPropertyList(This,riid,ppv) (This)->lpVtbl->GetColumnPropertyList(This,riid,ppv)
   7393 #define IFolderViewSettings_GetGroupByProperty(This,pkey,pfGroupAscending) (This)->lpVtbl->GetGroupByProperty(This,pkey,pfGroupAscending)
   7394 #define IFolderViewSettings_GetViewMode(This,plvm) (This)->lpVtbl->GetViewMode(This,plvm)
   7395 #define IFolderViewSettings_GetIconSize(This,puIconSize) (This)->lpVtbl->GetIconSize(This,puIconSize)
   7396 #define IFolderViewSettings_GetFolderFlags(This,pfolderMask,pfolderFlags) (This)->lpVtbl->GetFolderFlags(This,pfolderMask,pfolderFlags)
   7397 #define IFolderViewSettings_GetSortColumns(This,rgSortColumns,cColumnsIn,pcColumnsOut) (This)->lpVtbl->GetSortColumns(This,rgSortColumns,cColumnsIn,pcColumnsOut)
   7398 #define IFolderViewSettings_GetGroupSubsetCount(This,pcVisibleRows) (This)->lpVtbl->GetGroupSubsetCount(This,pcVisibleRows)
   7399 #else
   7400 /*** IUnknown methods ***/
   7401 static FORCEINLINE HRESULT IFolderViewSettings_QueryInterface(IFolderViewSettings* This,REFIID riid,void **ppvObject) {
   7402     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7403 }
   7404 static FORCEINLINE ULONG IFolderViewSettings_AddRef(IFolderViewSettings* This) {
   7405     return This->lpVtbl->AddRef(This);
   7406 }
   7407 static FORCEINLINE ULONG IFolderViewSettings_Release(IFolderViewSettings* This) {
   7408     return This->lpVtbl->Release(This);
   7409 }
   7410 /*** IFolderViewSettings methods ***/
   7411 static FORCEINLINE HRESULT IFolderViewSettings_GetColumnPropertyList(IFolderViewSettings* This,REFIID riid,void **ppv) {
   7412     return This->lpVtbl->GetColumnPropertyList(This,riid,ppv);
   7413 }
   7414 static FORCEINLINE HRESULT IFolderViewSettings_GetGroupByProperty(IFolderViewSettings* This,PROPERTYKEY *pkey,WINBOOL *pfGroupAscending) {
   7415     return This->lpVtbl->GetGroupByProperty(This,pkey,pfGroupAscending);
   7416 }
   7417 static FORCEINLINE HRESULT IFolderViewSettings_GetViewMode(IFolderViewSettings* This,FOLDERLOGICALVIEWMODE *plvm) {
   7418     return This->lpVtbl->GetViewMode(This,plvm);
   7419 }
   7420 static FORCEINLINE HRESULT IFolderViewSettings_GetIconSize(IFolderViewSettings* This,UINT *puIconSize) {
   7421     return This->lpVtbl->GetIconSize(This,puIconSize);
   7422 }
   7423 static FORCEINLINE HRESULT IFolderViewSettings_GetFolderFlags(IFolderViewSettings* This,FOLDERFLAGS *pfolderMask,FOLDERFLAGS *pfolderFlags) {
   7424     return This->lpVtbl->GetFolderFlags(This,pfolderMask,pfolderFlags);
   7425 }
   7426 static FORCEINLINE HRESULT IFolderViewSettings_GetSortColumns(IFolderViewSettings* This,SORTCOLUMN *rgSortColumns,UINT cColumnsIn,UINT *pcColumnsOut) {
   7427     return This->lpVtbl->GetSortColumns(This,rgSortColumns,cColumnsIn,pcColumnsOut);
   7428 }
   7429 static FORCEINLINE HRESULT IFolderViewSettings_GetGroupSubsetCount(IFolderViewSettings* This,UINT *pcVisibleRows) {
   7430     return This->lpVtbl->GetGroupSubsetCount(This,pcVisibleRows);
   7431 }
   7432 #endif
   7433 #endif
   7434 
   7435 #endif
   7436 
   7437 HRESULT STDMETHODCALLTYPE IFolderViewSettings_GetColumnPropertyList_Proxy(
   7438     IFolderViewSettings* This,
   7439     REFIID riid,
   7440     void **ppv);
   7441 void __RPC_STUB IFolderViewSettings_GetColumnPropertyList_Stub(
   7442     IRpcStubBuffer* This,
   7443     IRpcChannelBuffer* pRpcChannelBuffer,
   7444     PRPC_MESSAGE pRpcMessage,
   7445     DWORD* pdwStubPhase);
   7446 HRESULT STDMETHODCALLTYPE IFolderViewSettings_GetGroupByProperty_Proxy(
   7447     IFolderViewSettings* This,
   7448     PROPERTYKEY *pkey,
   7449     WINBOOL *pfGroupAscending);
   7450 void __RPC_STUB IFolderViewSettings_GetGroupByProperty_Stub(
   7451     IRpcStubBuffer* This,
   7452     IRpcChannelBuffer* pRpcChannelBuffer,
   7453     PRPC_MESSAGE pRpcMessage,
   7454     DWORD* pdwStubPhase);
   7455 HRESULT STDMETHODCALLTYPE IFolderViewSettings_GetViewMode_Proxy(
   7456     IFolderViewSettings* This,
   7457     FOLDERLOGICALVIEWMODE *plvm);
   7458 void __RPC_STUB IFolderViewSettings_GetViewMode_Stub(
   7459     IRpcStubBuffer* This,
   7460     IRpcChannelBuffer* pRpcChannelBuffer,
   7461     PRPC_MESSAGE pRpcMessage,
   7462     DWORD* pdwStubPhase);
   7463 HRESULT STDMETHODCALLTYPE IFolderViewSettings_GetIconSize_Proxy(
   7464     IFolderViewSettings* This,
   7465     UINT *puIconSize);
   7466 void __RPC_STUB IFolderViewSettings_GetIconSize_Stub(
   7467     IRpcStubBuffer* This,
   7468     IRpcChannelBuffer* pRpcChannelBuffer,
   7469     PRPC_MESSAGE pRpcMessage,
   7470     DWORD* pdwStubPhase);
   7471 HRESULT STDMETHODCALLTYPE IFolderViewSettings_GetFolderFlags_Proxy(
   7472     IFolderViewSettings* This,
   7473     FOLDERFLAGS *pfolderMask,
   7474     FOLDERFLAGS *pfolderFlags);
   7475 void __RPC_STUB IFolderViewSettings_GetFolderFlags_Stub(
   7476     IRpcStubBuffer* This,
   7477     IRpcChannelBuffer* pRpcChannelBuffer,
   7478     PRPC_MESSAGE pRpcMessage,
   7479     DWORD* pdwStubPhase);
   7480 HRESULT STDMETHODCALLTYPE IFolderViewSettings_GetSortColumns_Proxy(
   7481     IFolderViewSettings* This,
   7482     SORTCOLUMN *rgSortColumns,
   7483     UINT cColumnsIn,
   7484     UINT *pcColumnsOut);
   7485 void __RPC_STUB IFolderViewSettings_GetSortColumns_Stub(
   7486     IRpcStubBuffer* This,
   7487     IRpcChannelBuffer* pRpcChannelBuffer,
   7488     PRPC_MESSAGE pRpcMessage,
   7489     DWORD* pdwStubPhase);
   7490 HRESULT STDMETHODCALLTYPE IFolderViewSettings_GetGroupSubsetCount_Proxy(
   7491     IFolderViewSettings* This,
   7492     UINT *pcVisibleRows);
   7493 void __RPC_STUB IFolderViewSettings_GetGroupSubsetCount_Stub(
   7494     IRpcStubBuffer* This,
   7495     IRpcChannelBuffer* pRpcChannelBuffer,
   7496     PRPC_MESSAGE pRpcMessage,
   7497     DWORD* pdwStubPhase);
   7498 
   7499 #endif  /* __IFolderViewSettings_INTERFACE_DEFINED__ */
   7500 
   7501 #endif
   7502 #endif
   7503 
   7504 #if _WIN32_IE >= _WIN32_IE_IE70
   7505 /*****************************************************************************
   7506  * IPreviewHandlerVisuals interface
   7507  */
   7508 #ifndef __IPreviewHandlerVisuals_INTERFACE_DEFINED__
   7509 #define __IPreviewHandlerVisuals_INTERFACE_DEFINED__
   7510 
   7511 DEFINE_GUID(IID_IPreviewHandlerVisuals, 0x196bf9a5, 0xb346, 0x4ef0, 0xaa,0x1e, 0x5d,0xcd,0xb7,0x67,0x68,0xb1);
   7512 #if defined(__cplusplus) && !defined(CINTERFACE)
   7513 MIDL_INTERFACE("196bf9a5-b346-4ef0-aa1e-5dcdb76768b1")
   7514 IPreviewHandlerVisuals : public IUnknown
   7515 {
   7516     virtual HRESULT STDMETHODCALLTYPE SetBackgroundColor(
   7517         COLORREF color) = 0;
   7518 
   7519     virtual HRESULT STDMETHODCALLTYPE SetFont(
   7520         const LOGFONTW *plf) = 0;
   7521 
   7522     virtual HRESULT STDMETHODCALLTYPE SetTextColor(
   7523         COLORREF color) = 0;
   7524 
   7525 };
   7526 #ifdef __CRT_UUID_DECL
   7527 __CRT_UUID_DECL(IPreviewHandlerVisuals, 0x196bf9a5, 0xb346, 0x4ef0, 0xaa,0x1e, 0x5d,0xcd,0xb7,0x67,0x68,0xb1)
   7528 #endif
   7529 #else
   7530 typedef struct IPreviewHandlerVisualsVtbl {
   7531     BEGIN_INTERFACE
   7532 
   7533     /*** IUnknown methods ***/
   7534     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7535         IPreviewHandlerVisuals* This,
   7536         REFIID riid,
   7537         void **ppvObject);
   7538 
   7539     ULONG (STDMETHODCALLTYPE *AddRef)(
   7540         IPreviewHandlerVisuals* This);
   7541 
   7542     ULONG (STDMETHODCALLTYPE *Release)(
   7543         IPreviewHandlerVisuals* This);
   7544 
   7545     /*** IPreviewHandlerVisuals methods ***/
   7546     HRESULT (STDMETHODCALLTYPE *SetBackgroundColor)(
   7547         IPreviewHandlerVisuals* This,
   7548         COLORREF color);
   7549 
   7550     HRESULT (STDMETHODCALLTYPE *SetFont)(
   7551         IPreviewHandlerVisuals* This,
   7552         const LOGFONTW *plf);
   7553 
   7554     HRESULT (STDMETHODCALLTYPE *SetTextColor)(
   7555         IPreviewHandlerVisuals* This,
   7556         COLORREF color);
   7557 
   7558     END_INTERFACE
   7559 } IPreviewHandlerVisualsVtbl;
   7560 interface IPreviewHandlerVisuals {
   7561     CONST_VTBL IPreviewHandlerVisualsVtbl* lpVtbl;
   7562 };
   7563 
   7564 #ifdef COBJMACROS
   7565 #ifndef WIDL_C_INLINE_WRAPPERS
   7566 /*** IUnknown methods ***/
   7567 #define IPreviewHandlerVisuals_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7568 #define IPreviewHandlerVisuals_AddRef(This) (This)->lpVtbl->AddRef(This)
   7569 #define IPreviewHandlerVisuals_Release(This) (This)->lpVtbl->Release(This)
   7570 /*** IPreviewHandlerVisuals methods ***/
   7571 #define IPreviewHandlerVisuals_SetBackgroundColor(This,color) (This)->lpVtbl->SetBackgroundColor(This,color)
   7572 #define IPreviewHandlerVisuals_SetFont(This,plf) (This)->lpVtbl->SetFont(This,plf)
   7573 #define IPreviewHandlerVisuals_SetTextColor(This,color) (This)->lpVtbl->SetTextColor(This,color)
   7574 #else
   7575 /*** IUnknown methods ***/
   7576 static FORCEINLINE HRESULT IPreviewHandlerVisuals_QueryInterface(IPreviewHandlerVisuals* This,REFIID riid,void **ppvObject) {
   7577     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7578 }
   7579 static FORCEINLINE ULONG IPreviewHandlerVisuals_AddRef(IPreviewHandlerVisuals* This) {
   7580     return This->lpVtbl->AddRef(This);
   7581 }
   7582 static FORCEINLINE ULONG IPreviewHandlerVisuals_Release(IPreviewHandlerVisuals* This) {
   7583     return This->lpVtbl->Release(This);
   7584 }
   7585 /*** IPreviewHandlerVisuals methods ***/
   7586 static FORCEINLINE HRESULT IPreviewHandlerVisuals_SetBackgroundColor(IPreviewHandlerVisuals* This,COLORREF color) {
   7587     return This->lpVtbl->SetBackgroundColor(This,color);
   7588 }
   7589 static FORCEINLINE HRESULT IPreviewHandlerVisuals_SetFont(IPreviewHandlerVisuals* This,const LOGFONTW *plf) {
   7590     return This->lpVtbl->SetFont(This,plf);
   7591 }
   7592 static FORCEINLINE HRESULT IPreviewHandlerVisuals_SetTextColor(IPreviewHandlerVisuals* This,COLORREF color) {
   7593     return This->lpVtbl->SetTextColor(This,color);
   7594 }
   7595 #endif
   7596 #endif
   7597 
   7598 #endif
   7599 
   7600 HRESULT STDMETHODCALLTYPE IPreviewHandlerVisuals_SetBackgroundColor_Proxy(
   7601     IPreviewHandlerVisuals* This,
   7602     COLORREF color);
   7603 void __RPC_STUB IPreviewHandlerVisuals_SetBackgroundColor_Stub(
   7604     IRpcStubBuffer* This,
   7605     IRpcChannelBuffer* pRpcChannelBuffer,
   7606     PRPC_MESSAGE pRpcMessage,
   7607     DWORD* pdwStubPhase);
   7608 HRESULT STDMETHODCALLTYPE IPreviewHandlerVisuals_SetFont_Proxy(
   7609     IPreviewHandlerVisuals* This,
   7610     const LOGFONTW *plf);
   7611 void __RPC_STUB IPreviewHandlerVisuals_SetFont_Stub(
   7612     IRpcStubBuffer* This,
   7613     IRpcChannelBuffer* pRpcChannelBuffer,
   7614     PRPC_MESSAGE pRpcMessage,
   7615     DWORD* pdwStubPhase);
   7616 HRESULT STDMETHODCALLTYPE IPreviewHandlerVisuals_SetTextColor_Proxy(
   7617     IPreviewHandlerVisuals* This,
   7618     COLORREF color);
   7619 void __RPC_STUB IPreviewHandlerVisuals_SetTextColor_Stub(
   7620     IRpcStubBuffer* This,
   7621     IRpcChannelBuffer* pRpcChannelBuffer,
   7622     PRPC_MESSAGE pRpcMessage,
   7623     DWORD* pdwStubPhase);
   7624 
   7625 #endif  /* __IPreviewHandlerVisuals_INTERFACE_DEFINED__ */
   7626 
   7627 
   7628 /*****************************************************************************
   7629  * IVisualProperties interface
   7630  */
   7631 #ifndef __IVisualProperties_INTERFACE_DEFINED__
   7632 #define __IVisualProperties_INTERFACE_DEFINED__
   7633 
   7634 typedef enum VPWATERMARKFLAGS {
   7635     VPWF_DEFAULT = 0x0,
   7636     VPWF_ALPHABLEND = 0x1
   7637 } VPWATERMARKFLAGS;
   7638 
   7639 typedef enum VPCOLORFLAGS {
   7640     VPCF_TEXT = 1,
   7641     VPCF_BACKGROUND = 2,
   7642     VPCF_SORTCOLUMN = 3,
   7643     VPCF_SUBTEXT = 4,
   7644     VPCF_TEXTBACKGROUND = 5
   7645 } VPCOLORFLAGS;
   7646 
   7647 DEFINE_ENUM_FLAG_OPERATORS(VPWATERMARKFLAGS)
   7648 
   7649 DEFINE_GUID(IID_IVisualProperties, 0xe693cf68, 0xd967, 0x4112, 0x87,0x63, 0x99,0x17,0x2a,0xee,0x5e,0x5a);
   7650 #if defined(__cplusplus) && !defined(CINTERFACE)
   7651 MIDL_INTERFACE("e693cf68-d967-4112-8763-99172aee5e5a")
   7652 IVisualProperties : public IUnknown
   7653 {
   7654     virtual HRESULT STDMETHODCALLTYPE SetWatermark(
   7655         HBITMAP hbmp,
   7656         VPWATERMARKFLAGS vpwf) = 0;
   7657 
   7658     virtual HRESULT STDMETHODCALLTYPE SetColor(
   7659         VPCOLORFLAGS vpcf,
   7660         COLORREF cr) = 0;
   7661 
   7662     virtual HRESULT STDMETHODCALLTYPE GetColor(
   7663         VPCOLORFLAGS vpcf,
   7664         COLORREF *pcr) = 0;
   7665 
   7666     virtual HRESULT STDMETHODCALLTYPE SetItemHeight(
   7667         int cyItemInPixels) = 0;
   7668 
   7669     virtual HRESULT STDMETHODCALLTYPE GetItemHeight(
   7670         int *cyItemInPixels) = 0;
   7671 
   7672     virtual HRESULT STDMETHODCALLTYPE SetFont(
   7673         const LOGFONTW *plf,
   7674         WINBOOL bRedraw) = 0;
   7675 
   7676     virtual HRESULT STDMETHODCALLTYPE GetFont(
   7677         LOGFONTW *plf) = 0;
   7678 
   7679     virtual HRESULT STDMETHODCALLTYPE SetTheme(
   7680         LPCWSTR pszSubAppName,
   7681         LPCWSTR pszSubIdList) = 0;
   7682 
   7683 };
   7684 #ifdef __CRT_UUID_DECL
   7685 __CRT_UUID_DECL(IVisualProperties, 0xe693cf68, 0xd967, 0x4112, 0x87,0x63, 0x99,0x17,0x2a,0xee,0x5e,0x5a)
   7686 #endif
   7687 #else
   7688 typedef struct IVisualPropertiesVtbl {
   7689     BEGIN_INTERFACE
   7690 
   7691     /*** IUnknown methods ***/
   7692     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7693         IVisualProperties* This,
   7694         REFIID riid,
   7695         void **ppvObject);
   7696 
   7697     ULONG (STDMETHODCALLTYPE *AddRef)(
   7698         IVisualProperties* This);
   7699 
   7700     ULONG (STDMETHODCALLTYPE *Release)(
   7701         IVisualProperties* This);
   7702 
   7703     /*** IVisualProperties methods ***/
   7704     HRESULT (STDMETHODCALLTYPE *SetWatermark)(
   7705         IVisualProperties* This,
   7706         HBITMAP hbmp,
   7707         VPWATERMARKFLAGS vpwf);
   7708 
   7709     HRESULT (STDMETHODCALLTYPE *SetColor)(
   7710         IVisualProperties* This,
   7711         VPCOLORFLAGS vpcf,
   7712         COLORREF cr);
   7713 
   7714     HRESULT (STDMETHODCALLTYPE *GetColor)(
   7715         IVisualProperties* This,
   7716         VPCOLORFLAGS vpcf,
   7717         COLORREF *pcr);
   7718 
   7719     HRESULT (STDMETHODCALLTYPE *SetItemHeight)(
   7720         IVisualProperties* This,
   7721         int cyItemInPixels);
   7722 
   7723     HRESULT (STDMETHODCALLTYPE *GetItemHeight)(
   7724         IVisualProperties* This,
   7725         int *cyItemInPixels);
   7726 
   7727     HRESULT (STDMETHODCALLTYPE *SetFont)(
   7728         IVisualProperties* This,
   7729         const LOGFONTW *plf,
   7730         WINBOOL bRedraw);
   7731 
   7732     HRESULT (STDMETHODCALLTYPE *GetFont)(
   7733         IVisualProperties* This,
   7734         LOGFONTW *plf);
   7735 
   7736     HRESULT (STDMETHODCALLTYPE *SetTheme)(
   7737         IVisualProperties* This,
   7738         LPCWSTR pszSubAppName,
   7739         LPCWSTR pszSubIdList);
   7740 
   7741     END_INTERFACE
   7742 } IVisualPropertiesVtbl;
   7743 interface IVisualProperties {
   7744     CONST_VTBL IVisualPropertiesVtbl* lpVtbl;
   7745 };
   7746 
   7747 #ifdef COBJMACROS
   7748 #ifndef WIDL_C_INLINE_WRAPPERS
   7749 /*** IUnknown methods ***/
   7750 #define IVisualProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7751 #define IVisualProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
   7752 #define IVisualProperties_Release(This) (This)->lpVtbl->Release(This)
   7753 /*** IVisualProperties methods ***/
   7754 #define IVisualProperties_SetWatermark(This,hbmp,vpwf) (This)->lpVtbl->SetWatermark(This,hbmp,vpwf)
   7755 #define IVisualProperties_SetColor(This,vpcf,cr) (This)->lpVtbl->SetColor(This,vpcf,cr)
   7756 #define IVisualProperties_GetColor(This,vpcf,pcr) (This)->lpVtbl->GetColor(This,vpcf,pcr)
   7757 #define IVisualProperties_SetItemHeight(This,cyItemInPixels) (This)->lpVtbl->SetItemHeight(This,cyItemInPixels)
   7758 #define IVisualProperties_GetItemHeight(This,cyItemInPixels) (This)->lpVtbl->GetItemHeight(This,cyItemInPixels)
   7759 #define IVisualProperties_SetFont(This,plf,bRedraw) (This)->lpVtbl->SetFont(This,plf,bRedraw)
   7760 #define IVisualProperties_GetFont(This,plf) (This)->lpVtbl->GetFont(This,plf)
   7761 #define IVisualProperties_SetTheme(This,pszSubAppName,pszSubIdList) (This)->lpVtbl->SetTheme(This,pszSubAppName,pszSubIdList)
   7762 #else
   7763 /*** IUnknown methods ***/
   7764 static FORCEINLINE HRESULT IVisualProperties_QueryInterface(IVisualProperties* This,REFIID riid,void **ppvObject) {
   7765     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7766 }
   7767 static FORCEINLINE ULONG IVisualProperties_AddRef(IVisualProperties* This) {
   7768     return This->lpVtbl->AddRef(This);
   7769 }
   7770 static FORCEINLINE ULONG IVisualProperties_Release(IVisualProperties* This) {
   7771     return This->lpVtbl->Release(This);
   7772 }
   7773 /*** IVisualProperties methods ***/
   7774 static FORCEINLINE HRESULT IVisualProperties_SetWatermark(IVisualProperties* This,HBITMAP hbmp,VPWATERMARKFLAGS vpwf) {
   7775     return This->lpVtbl->SetWatermark(This,hbmp,vpwf);
   7776 }
   7777 static FORCEINLINE HRESULT IVisualProperties_SetColor(IVisualProperties* This,VPCOLORFLAGS vpcf,COLORREF cr) {
   7778     return This->lpVtbl->SetColor(This,vpcf,cr);
   7779 }
   7780 static FORCEINLINE HRESULT IVisualProperties_GetColor(IVisualProperties* This,VPCOLORFLAGS vpcf,COLORREF *pcr) {
   7781     return This->lpVtbl->GetColor(This,vpcf,pcr);
   7782 }
   7783 static FORCEINLINE HRESULT IVisualProperties_SetItemHeight(IVisualProperties* This,int cyItemInPixels) {
   7784     return This->lpVtbl->SetItemHeight(This,cyItemInPixels);
   7785 }
   7786 static FORCEINLINE HRESULT IVisualProperties_GetItemHeight(IVisualProperties* This,int *cyItemInPixels) {
   7787     return This->lpVtbl->GetItemHeight(This,cyItemInPixels);
   7788 }
   7789 static FORCEINLINE HRESULT IVisualProperties_SetFont(IVisualProperties* This,const LOGFONTW *plf,WINBOOL bRedraw) {
   7790     return This->lpVtbl->SetFont(This,plf,bRedraw);
   7791 }
   7792 static FORCEINLINE HRESULT IVisualProperties_GetFont(IVisualProperties* This,LOGFONTW *plf) {
   7793     return This->lpVtbl->GetFont(This,plf);
   7794 }
   7795 static FORCEINLINE HRESULT IVisualProperties_SetTheme(IVisualProperties* This,LPCWSTR pszSubAppName,LPCWSTR pszSubIdList) {
   7796     return This->lpVtbl->SetTheme(This,pszSubAppName,pszSubIdList);
   7797 }
   7798 #endif
   7799 #endif
   7800 
   7801 #endif
   7802 
   7803 HRESULT STDMETHODCALLTYPE IVisualProperties_SetWatermark_Proxy(
   7804     IVisualProperties* This,
   7805     HBITMAP hbmp,
   7806     VPWATERMARKFLAGS vpwf);
   7807 void __RPC_STUB IVisualProperties_SetWatermark_Stub(
   7808     IRpcStubBuffer* This,
   7809     IRpcChannelBuffer* pRpcChannelBuffer,
   7810     PRPC_MESSAGE pRpcMessage,
   7811     DWORD* pdwStubPhase);
   7812 HRESULT STDMETHODCALLTYPE IVisualProperties_SetColor_Proxy(
   7813     IVisualProperties* This,
   7814     VPCOLORFLAGS vpcf,
   7815     COLORREF cr);
   7816 void __RPC_STUB IVisualProperties_SetColor_Stub(
   7817     IRpcStubBuffer* This,
   7818     IRpcChannelBuffer* pRpcChannelBuffer,
   7819     PRPC_MESSAGE pRpcMessage,
   7820     DWORD* pdwStubPhase);
   7821 HRESULT STDMETHODCALLTYPE IVisualProperties_GetColor_Proxy(
   7822     IVisualProperties* This,
   7823     VPCOLORFLAGS vpcf,
   7824     COLORREF *pcr);
   7825 void __RPC_STUB IVisualProperties_GetColor_Stub(
   7826     IRpcStubBuffer* This,
   7827     IRpcChannelBuffer* pRpcChannelBuffer,
   7828     PRPC_MESSAGE pRpcMessage,
   7829     DWORD* pdwStubPhase);
   7830 HRESULT STDMETHODCALLTYPE IVisualProperties_SetItemHeight_Proxy(
   7831     IVisualProperties* This,
   7832     int cyItemInPixels);
   7833 void __RPC_STUB IVisualProperties_SetItemHeight_Stub(
   7834     IRpcStubBuffer* This,
   7835     IRpcChannelBuffer* pRpcChannelBuffer,
   7836     PRPC_MESSAGE pRpcMessage,
   7837     DWORD* pdwStubPhase);
   7838 HRESULT STDMETHODCALLTYPE IVisualProperties_GetItemHeight_Proxy(
   7839     IVisualProperties* This,
   7840     int *cyItemInPixels);
   7841 void __RPC_STUB IVisualProperties_GetItemHeight_Stub(
   7842     IRpcStubBuffer* This,
   7843     IRpcChannelBuffer* pRpcChannelBuffer,
   7844     PRPC_MESSAGE pRpcMessage,
   7845     DWORD* pdwStubPhase);
   7846 HRESULT STDMETHODCALLTYPE IVisualProperties_SetFont_Proxy(
   7847     IVisualProperties* This,
   7848     const LOGFONTW *plf,
   7849     WINBOOL bRedraw);
   7850 void __RPC_STUB IVisualProperties_SetFont_Stub(
   7851     IRpcStubBuffer* This,
   7852     IRpcChannelBuffer* pRpcChannelBuffer,
   7853     PRPC_MESSAGE pRpcMessage,
   7854     DWORD* pdwStubPhase);
   7855 HRESULT STDMETHODCALLTYPE IVisualProperties_GetFont_Proxy(
   7856     IVisualProperties* This,
   7857     LOGFONTW *plf);
   7858 void __RPC_STUB IVisualProperties_GetFont_Stub(
   7859     IRpcStubBuffer* This,
   7860     IRpcChannelBuffer* pRpcChannelBuffer,
   7861     PRPC_MESSAGE pRpcMessage,
   7862     DWORD* pdwStubPhase);
   7863 HRESULT STDMETHODCALLTYPE IVisualProperties_SetTheme_Proxy(
   7864     IVisualProperties* This,
   7865     LPCWSTR pszSubAppName,
   7866     LPCWSTR pszSubIdList);
   7867 void __RPC_STUB IVisualProperties_SetTheme_Stub(
   7868     IRpcStubBuffer* This,
   7869     IRpcChannelBuffer* pRpcChannelBuffer,
   7870     PRPC_MESSAGE pRpcMessage,
   7871     DWORD* pdwStubPhase);
   7872 
   7873 #endif  /* __IVisualProperties_INTERFACE_DEFINED__ */
   7874 
   7875 #endif
   7876 
   7877 #define CDBOSC_SETFOCUS 0x00000000
   7878 #define CDBOSC_KILLFOCUS 0x00000001
   7879 #define CDBOSC_SELCHANGE 0x00000002
   7880 #define CDBOSC_RENAME 0x00000003
   7881 #define CDBOSC_STATECHANGE 0x00000004
   7882 
   7883 /*****************************************************************************
   7884  * ICommDlgBrowser interface
   7885  */
   7886 #ifndef __ICommDlgBrowser_INTERFACE_DEFINED__
   7887 #define __ICommDlgBrowser_INTERFACE_DEFINED__
   7888 
   7889 DEFINE_GUID(IID_ICommDlgBrowser, 0x000214f1, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   7890 #if defined(__cplusplus) && !defined(CINTERFACE)
   7891 MIDL_INTERFACE("000214f1-0000-0000-c000-000000000046")
   7892 ICommDlgBrowser : public IUnknown
   7893 {
   7894     virtual HRESULT STDMETHODCALLTYPE OnDefaultCommand(
   7895         IShellView *ppshv) = 0;
   7896 
   7897     virtual HRESULT STDMETHODCALLTYPE OnStateChange(
   7898         IShellView *ppshv,
   7899         ULONG uChange) = 0;
   7900 
   7901     virtual HRESULT STDMETHODCALLTYPE IncludeObject(
   7902         IShellView *ppshv,
   7903         PCUITEMID_CHILD pidl) = 0;
   7904 
   7905 };
   7906 #ifdef __CRT_UUID_DECL
   7907 __CRT_UUID_DECL(ICommDlgBrowser, 0x000214f1, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   7908 #endif
   7909 #else
   7910 typedef struct ICommDlgBrowserVtbl {
   7911     BEGIN_INTERFACE
   7912 
   7913     /*** IUnknown methods ***/
   7914     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7915         ICommDlgBrowser* This,
   7916         REFIID riid,
   7917         void **ppvObject);
   7918 
   7919     ULONG (STDMETHODCALLTYPE *AddRef)(
   7920         ICommDlgBrowser* This);
   7921 
   7922     ULONG (STDMETHODCALLTYPE *Release)(
   7923         ICommDlgBrowser* This);
   7924 
   7925     /*** ICommDlgBrowser methods ***/
   7926     HRESULT (STDMETHODCALLTYPE *OnDefaultCommand)(
   7927         ICommDlgBrowser* This,
   7928         IShellView *ppshv);
   7929 
   7930     HRESULT (STDMETHODCALLTYPE *OnStateChange)(
   7931         ICommDlgBrowser* This,
   7932         IShellView *ppshv,
   7933         ULONG uChange);
   7934 
   7935     HRESULT (STDMETHODCALLTYPE *IncludeObject)(
   7936         ICommDlgBrowser* This,
   7937         IShellView *ppshv,
   7938         PCUITEMID_CHILD pidl);
   7939 
   7940     END_INTERFACE
   7941 } ICommDlgBrowserVtbl;
   7942 interface ICommDlgBrowser {
   7943     CONST_VTBL ICommDlgBrowserVtbl* lpVtbl;
   7944 };
   7945 
   7946 #ifdef COBJMACROS
   7947 #ifndef WIDL_C_INLINE_WRAPPERS
   7948 /*** IUnknown methods ***/
   7949 #define ICommDlgBrowser_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7950 #define ICommDlgBrowser_AddRef(This) (This)->lpVtbl->AddRef(This)
   7951 #define ICommDlgBrowser_Release(This) (This)->lpVtbl->Release(This)
   7952 /*** ICommDlgBrowser methods ***/
   7953 #define ICommDlgBrowser_OnDefaultCommand(This,ppshv) (This)->lpVtbl->OnDefaultCommand(This,ppshv)
   7954 #define ICommDlgBrowser_OnStateChange(This,ppshv,uChange) (This)->lpVtbl->OnStateChange(This,ppshv,uChange)
   7955 #define ICommDlgBrowser_IncludeObject(This,ppshv,pidl) (This)->lpVtbl->IncludeObject(This,ppshv,pidl)
   7956 #else
   7957 /*** IUnknown methods ***/
   7958 static FORCEINLINE HRESULT ICommDlgBrowser_QueryInterface(ICommDlgBrowser* This,REFIID riid,void **ppvObject) {
   7959     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7960 }
   7961 static FORCEINLINE ULONG ICommDlgBrowser_AddRef(ICommDlgBrowser* This) {
   7962     return This->lpVtbl->AddRef(This);
   7963 }
   7964 static FORCEINLINE ULONG ICommDlgBrowser_Release(ICommDlgBrowser* This) {
   7965     return This->lpVtbl->Release(This);
   7966 }
   7967 /*** ICommDlgBrowser methods ***/
   7968 static FORCEINLINE HRESULT ICommDlgBrowser_OnDefaultCommand(ICommDlgBrowser* This,IShellView *ppshv) {
   7969     return This->lpVtbl->OnDefaultCommand(This,ppshv);
   7970 }
   7971 static FORCEINLINE HRESULT ICommDlgBrowser_OnStateChange(ICommDlgBrowser* This,IShellView *ppshv,ULONG uChange) {
   7972     return This->lpVtbl->OnStateChange(This,ppshv,uChange);
   7973 }
   7974 static FORCEINLINE HRESULT ICommDlgBrowser_IncludeObject(ICommDlgBrowser* This,IShellView *ppshv,PCUITEMID_CHILD pidl) {
   7975     return This->lpVtbl->IncludeObject(This,ppshv,pidl);
   7976 }
   7977 #endif
   7978 #endif
   7979 
   7980 #endif
   7981 
   7982 HRESULT STDMETHODCALLTYPE ICommDlgBrowser_OnDefaultCommand_Proxy(
   7983     ICommDlgBrowser* This,
   7984     IShellView *ppshv);
   7985 void __RPC_STUB ICommDlgBrowser_OnDefaultCommand_Stub(
   7986     IRpcStubBuffer* This,
   7987     IRpcChannelBuffer* pRpcChannelBuffer,
   7988     PRPC_MESSAGE pRpcMessage,
   7989     DWORD* pdwStubPhase);
   7990 HRESULT STDMETHODCALLTYPE ICommDlgBrowser_OnStateChange_Proxy(
   7991     ICommDlgBrowser* This,
   7992     IShellView *ppshv,
   7993     ULONG uChange);
   7994 void __RPC_STUB ICommDlgBrowser_OnStateChange_Stub(
   7995     IRpcStubBuffer* This,
   7996     IRpcChannelBuffer* pRpcChannelBuffer,
   7997     PRPC_MESSAGE pRpcMessage,
   7998     DWORD* pdwStubPhase);
   7999 HRESULT STDMETHODCALLTYPE ICommDlgBrowser_IncludeObject_Proxy(
   8000     ICommDlgBrowser* This,
   8001     IShellView *ppshv,
   8002     PCUITEMID_CHILD pidl);
   8003 void __RPC_STUB ICommDlgBrowser_IncludeObject_Stub(
   8004     IRpcStubBuffer* This,
   8005     IRpcChannelBuffer* pRpcChannelBuffer,
   8006     PRPC_MESSAGE pRpcMessage,
   8007     DWORD* pdwStubPhase);
   8008 
   8009 #endif  /* __ICommDlgBrowser_INTERFACE_DEFINED__ */
   8010 
   8011 typedef ICommDlgBrowser *LPCOMMDLGBROWSER;
   8012 
   8013 #define SID_SExplorerBrowserFrame IID_ICommDlgBrowser
   8014 
   8015 #define CDB2N_CONTEXTMENU_DONE 0x00000001
   8016 #define CDB2N_CONTEXTMENU_START 0x00000002
   8017 
   8018 #define CDB2GVF_SHOWALLFILES 0x1
   8019 #if NTDDI_VERSION >= NTDDI_VISTA
   8020 #define CDB2GVF_ISFILESAVE 0x2
   8021 #define CDB2GVF_ALLOWPREVIEWPANE 0x4
   8022 #define CDB2GVF_NOSELECTVERB 0x8
   8023 #define CDB2GVF_NOINCLUDEITEM 0x10
   8024 #define CDB2GVF_ISFOLDERPICKER 0x20
   8025 #define CDB2GVF_ADDSHIELD 0x40
   8026 #endif
   8027 
   8028 /*****************************************************************************
   8029  * ICommDlgBrowser2 interface
   8030  */
   8031 #ifndef __ICommDlgBrowser2_INTERFACE_DEFINED__
   8032 #define __ICommDlgBrowser2_INTERFACE_DEFINED__
   8033 
   8034 DEFINE_GUID(IID_ICommDlgBrowser2, 0x10339516, 0x2894, 0x11d2, 0x90,0x39, 0x00,0xc0,0x4f,0x8e,0xeb,0x3e);
   8035 #if defined(__cplusplus) && !defined(CINTERFACE)
   8036 MIDL_INTERFACE("10339516-2894-11d2-9039-00c04f8eeb3e")
   8037 ICommDlgBrowser2 : public ICommDlgBrowser
   8038 {
   8039     virtual HRESULT STDMETHODCALLTYPE Notify(
   8040         IShellView *ppshv,
   8041         DWORD dwNotifyType) = 0;
   8042 
   8043     virtual HRESULT STDMETHODCALLTYPE GetDefaultMenuText(
   8044         IShellView *ppshv,
   8045         LPWSTR pszText,
   8046         int cchMax) = 0;
   8047 
   8048     virtual HRESULT STDMETHODCALLTYPE GetViewFlags(
   8049         DWORD *pdwFlags) = 0;
   8050 
   8051 };
   8052 #ifdef __CRT_UUID_DECL
   8053 __CRT_UUID_DECL(ICommDlgBrowser2, 0x10339516, 0x2894, 0x11d2, 0x90,0x39, 0x00,0xc0,0x4f,0x8e,0xeb,0x3e)
   8054 #endif
   8055 #else
   8056 typedef struct ICommDlgBrowser2Vtbl {
   8057     BEGIN_INTERFACE
   8058 
   8059     /*** IUnknown methods ***/
   8060     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8061         ICommDlgBrowser2* This,
   8062         REFIID riid,
   8063         void **ppvObject);
   8064 
   8065     ULONG (STDMETHODCALLTYPE *AddRef)(
   8066         ICommDlgBrowser2* This);
   8067 
   8068     ULONG (STDMETHODCALLTYPE *Release)(
   8069         ICommDlgBrowser2* This);
   8070 
   8071     /*** ICommDlgBrowser methods ***/
   8072     HRESULT (STDMETHODCALLTYPE *OnDefaultCommand)(
   8073         ICommDlgBrowser2* This,
   8074         IShellView *ppshv);
   8075 
   8076     HRESULT (STDMETHODCALLTYPE *OnStateChange)(
   8077         ICommDlgBrowser2* This,
   8078         IShellView *ppshv,
   8079         ULONG uChange);
   8080 
   8081     HRESULT (STDMETHODCALLTYPE *IncludeObject)(
   8082         ICommDlgBrowser2* This,
   8083         IShellView *ppshv,
   8084         PCUITEMID_CHILD pidl);
   8085 
   8086     /*** ICommDlgBrowser2 methods ***/
   8087     HRESULT (STDMETHODCALLTYPE *Notify)(
   8088         ICommDlgBrowser2* This,
   8089         IShellView *ppshv,
   8090         DWORD dwNotifyType);
   8091 
   8092     HRESULT (STDMETHODCALLTYPE *GetDefaultMenuText)(
   8093         ICommDlgBrowser2* This,
   8094         IShellView *ppshv,
   8095         LPWSTR pszText,
   8096         int cchMax);
   8097 
   8098     HRESULT (STDMETHODCALLTYPE *GetViewFlags)(
   8099         ICommDlgBrowser2* This,
   8100         DWORD *pdwFlags);
   8101 
   8102     END_INTERFACE
   8103 } ICommDlgBrowser2Vtbl;
   8104 interface ICommDlgBrowser2 {
   8105     CONST_VTBL ICommDlgBrowser2Vtbl* lpVtbl;
   8106 };
   8107 
   8108 #ifdef COBJMACROS
   8109 #ifndef WIDL_C_INLINE_WRAPPERS
   8110 /*** IUnknown methods ***/
   8111 #define ICommDlgBrowser2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8112 #define ICommDlgBrowser2_AddRef(This) (This)->lpVtbl->AddRef(This)
   8113 #define ICommDlgBrowser2_Release(This) (This)->lpVtbl->Release(This)
   8114 /*** ICommDlgBrowser methods ***/
   8115 #define ICommDlgBrowser2_OnDefaultCommand(This,ppshv) (This)->lpVtbl->OnDefaultCommand(This,ppshv)
   8116 #define ICommDlgBrowser2_OnStateChange(This,ppshv,uChange) (This)->lpVtbl->OnStateChange(This,ppshv,uChange)
   8117 #define ICommDlgBrowser2_IncludeObject(This,ppshv,pidl) (This)->lpVtbl->IncludeObject(This,ppshv,pidl)
   8118 /*** ICommDlgBrowser2 methods ***/
   8119 #define ICommDlgBrowser2_Notify(This,ppshv,dwNotifyType) (This)->lpVtbl->Notify(This,ppshv,dwNotifyType)
   8120 #define ICommDlgBrowser2_GetDefaultMenuText(This,ppshv,pszText,cchMax) (This)->lpVtbl->GetDefaultMenuText(This,ppshv,pszText,cchMax)
   8121 #define ICommDlgBrowser2_GetViewFlags(This,pdwFlags) (This)->lpVtbl->GetViewFlags(This,pdwFlags)
   8122 #else
   8123 /*** IUnknown methods ***/
   8124 static FORCEINLINE HRESULT ICommDlgBrowser2_QueryInterface(ICommDlgBrowser2* This,REFIID riid,void **ppvObject) {
   8125     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8126 }
   8127 static FORCEINLINE ULONG ICommDlgBrowser2_AddRef(ICommDlgBrowser2* This) {
   8128     return This->lpVtbl->AddRef(This);
   8129 }
   8130 static FORCEINLINE ULONG ICommDlgBrowser2_Release(ICommDlgBrowser2* This) {
   8131     return This->lpVtbl->Release(This);
   8132 }
   8133 /*** ICommDlgBrowser methods ***/
   8134 static FORCEINLINE HRESULT ICommDlgBrowser2_OnDefaultCommand(ICommDlgBrowser2* This,IShellView *ppshv) {
   8135     return This->lpVtbl->OnDefaultCommand(This,ppshv);
   8136 }
   8137 static FORCEINLINE HRESULT ICommDlgBrowser2_OnStateChange(ICommDlgBrowser2* This,IShellView *ppshv,ULONG uChange) {
   8138     return This->lpVtbl->OnStateChange(This,ppshv,uChange);
   8139 }
   8140 static FORCEINLINE HRESULT ICommDlgBrowser2_IncludeObject(ICommDlgBrowser2* This,IShellView *ppshv,PCUITEMID_CHILD pidl) {
   8141     return This->lpVtbl->IncludeObject(This,ppshv,pidl);
   8142 }
   8143 /*** ICommDlgBrowser2 methods ***/
   8144 static FORCEINLINE HRESULT ICommDlgBrowser2_Notify(ICommDlgBrowser2* This,IShellView *ppshv,DWORD dwNotifyType) {
   8145     return This->lpVtbl->Notify(This,ppshv,dwNotifyType);
   8146 }
   8147 static FORCEINLINE HRESULT ICommDlgBrowser2_GetDefaultMenuText(ICommDlgBrowser2* This,IShellView *ppshv,LPWSTR pszText,int cchMax) {
   8148     return This->lpVtbl->GetDefaultMenuText(This,ppshv,pszText,cchMax);
   8149 }
   8150 static FORCEINLINE HRESULT ICommDlgBrowser2_GetViewFlags(ICommDlgBrowser2* This,DWORD *pdwFlags) {
   8151     return This->lpVtbl->GetViewFlags(This,pdwFlags);
   8152 }
   8153 #endif
   8154 #endif
   8155 
   8156 #endif
   8157 
   8158 HRESULT STDMETHODCALLTYPE ICommDlgBrowser2_Notify_Proxy(
   8159     ICommDlgBrowser2* This,
   8160     IShellView *ppshv,
   8161     DWORD dwNotifyType);
   8162 void __RPC_STUB ICommDlgBrowser2_Notify_Stub(
   8163     IRpcStubBuffer* This,
   8164     IRpcChannelBuffer* pRpcChannelBuffer,
   8165     PRPC_MESSAGE pRpcMessage,
   8166     DWORD* pdwStubPhase);
   8167 HRESULT STDMETHODCALLTYPE ICommDlgBrowser2_GetDefaultMenuText_Proxy(
   8168     ICommDlgBrowser2* This,
   8169     IShellView *ppshv,
   8170     LPWSTR pszText,
   8171     int cchMax);
   8172 void __RPC_STUB ICommDlgBrowser2_GetDefaultMenuText_Stub(
   8173     IRpcStubBuffer* This,
   8174     IRpcChannelBuffer* pRpcChannelBuffer,
   8175     PRPC_MESSAGE pRpcMessage,
   8176     DWORD* pdwStubPhase);
   8177 HRESULT STDMETHODCALLTYPE ICommDlgBrowser2_GetViewFlags_Proxy(
   8178     ICommDlgBrowser2* This,
   8179     DWORD *pdwFlags);
   8180 void __RPC_STUB ICommDlgBrowser2_GetViewFlags_Stub(
   8181     IRpcStubBuffer* This,
   8182     IRpcChannelBuffer* pRpcChannelBuffer,
   8183     PRPC_MESSAGE pRpcMessage,
   8184     DWORD* pdwStubPhase);
   8185 
   8186 #endif  /* __ICommDlgBrowser2_INTERFACE_DEFINED__ */
   8187 
   8188 typedef ICommDlgBrowser2 *LPCOMMDLGBROWSER2;
   8189 
   8190 #if _WIN32_IE >= _WIN32_IE_IE70
   8191 /*****************************************************************************
   8192  * ICommDlgBrowser3 interface
   8193  */
   8194 #ifndef __ICommDlgBrowser3_INTERFACE_DEFINED__
   8195 #define __ICommDlgBrowser3_INTERFACE_DEFINED__
   8196 
   8197 DEFINE_GUID(IID_ICommDlgBrowser3, 0xc8ad25a1, 0x3294, 0x41ee, 0x81,0x65, 0x71,0x17,0x4b,0xd0,0x1c,0x57);
   8198 #if defined(__cplusplus) && !defined(CINTERFACE)
   8199 MIDL_INTERFACE("c8ad25a1-3294-41ee-8165-71174bd01c57")
   8200 ICommDlgBrowser3 : public ICommDlgBrowser2
   8201 {
   8202     virtual HRESULT STDMETHODCALLTYPE OnColumnClicked(
   8203         IShellView *ppshv,
   8204         int iColumn) = 0;
   8205 
   8206     virtual HRESULT STDMETHODCALLTYPE GetCurrentFilter(
   8207         LPWSTR pszFileSpec,
   8208         int cchFileSpec) = 0;
   8209 
   8210     virtual HRESULT STDMETHODCALLTYPE OnPreViewCreated(
   8211         IShellView *ppshv) = 0;
   8212 
   8213 };
   8214 #ifdef __CRT_UUID_DECL
   8215 __CRT_UUID_DECL(ICommDlgBrowser3, 0xc8ad25a1, 0x3294, 0x41ee, 0x81,0x65, 0x71,0x17,0x4b,0xd0,0x1c,0x57)
   8216 #endif
   8217 #else
   8218 typedef struct ICommDlgBrowser3Vtbl {
   8219     BEGIN_INTERFACE
   8220 
   8221     /*** IUnknown methods ***/
   8222     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8223         ICommDlgBrowser3* This,
   8224         REFIID riid,
   8225         void **ppvObject);
   8226 
   8227     ULONG (STDMETHODCALLTYPE *AddRef)(
   8228         ICommDlgBrowser3* This);
   8229 
   8230     ULONG (STDMETHODCALLTYPE *Release)(
   8231         ICommDlgBrowser3* This);
   8232 
   8233     /*** ICommDlgBrowser methods ***/
   8234     HRESULT (STDMETHODCALLTYPE *OnDefaultCommand)(
   8235         ICommDlgBrowser3* This,
   8236         IShellView *ppshv);
   8237 
   8238     HRESULT (STDMETHODCALLTYPE *OnStateChange)(
   8239         ICommDlgBrowser3* This,
   8240         IShellView *ppshv,
   8241         ULONG uChange);
   8242 
   8243     HRESULT (STDMETHODCALLTYPE *IncludeObject)(
   8244         ICommDlgBrowser3* This,
   8245         IShellView *ppshv,
   8246         PCUITEMID_CHILD pidl);
   8247 
   8248     /*** ICommDlgBrowser2 methods ***/
   8249     HRESULT (STDMETHODCALLTYPE *Notify)(
   8250         ICommDlgBrowser3* This,
   8251         IShellView *ppshv,
   8252         DWORD dwNotifyType);
   8253 
   8254     HRESULT (STDMETHODCALLTYPE *GetDefaultMenuText)(
   8255         ICommDlgBrowser3* This,
   8256         IShellView *ppshv,
   8257         LPWSTR pszText,
   8258         int cchMax);
   8259 
   8260     HRESULT (STDMETHODCALLTYPE *GetViewFlags)(
   8261         ICommDlgBrowser3* This,
   8262         DWORD *pdwFlags);
   8263 
   8264     /*** ICommDlgBrowser3 methods ***/
   8265     HRESULT (STDMETHODCALLTYPE *OnColumnClicked)(
   8266         ICommDlgBrowser3* This,
   8267         IShellView *ppshv,
   8268         int iColumn);
   8269 
   8270     HRESULT (STDMETHODCALLTYPE *GetCurrentFilter)(
   8271         ICommDlgBrowser3* This,
   8272         LPWSTR pszFileSpec,
   8273         int cchFileSpec);
   8274 
   8275     HRESULT (STDMETHODCALLTYPE *OnPreViewCreated)(
   8276         ICommDlgBrowser3* This,
   8277         IShellView *ppshv);
   8278 
   8279     END_INTERFACE
   8280 } ICommDlgBrowser3Vtbl;
   8281 interface ICommDlgBrowser3 {
   8282     CONST_VTBL ICommDlgBrowser3Vtbl* lpVtbl;
   8283 };
   8284 
   8285 #ifdef COBJMACROS
   8286 #ifndef WIDL_C_INLINE_WRAPPERS
   8287 /*** IUnknown methods ***/
   8288 #define ICommDlgBrowser3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8289 #define ICommDlgBrowser3_AddRef(This) (This)->lpVtbl->AddRef(This)
   8290 #define ICommDlgBrowser3_Release(This) (This)->lpVtbl->Release(This)
   8291 /*** ICommDlgBrowser methods ***/
   8292 #define ICommDlgBrowser3_OnDefaultCommand(This,ppshv) (This)->lpVtbl->OnDefaultCommand(This,ppshv)
   8293 #define ICommDlgBrowser3_OnStateChange(This,ppshv,uChange) (This)->lpVtbl->OnStateChange(This,ppshv,uChange)
   8294 #define ICommDlgBrowser3_IncludeObject(This,ppshv,pidl) (This)->lpVtbl->IncludeObject(This,ppshv,pidl)
   8295 /*** ICommDlgBrowser2 methods ***/
   8296 #define ICommDlgBrowser3_Notify(This,ppshv,dwNotifyType) (This)->lpVtbl->Notify(This,ppshv,dwNotifyType)
   8297 #define ICommDlgBrowser3_GetDefaultMenuText(This,ppshv,pszText,cchMax) (This)->lpVtbl->GetDefaultMenuText(This,ppshv,pszText,cchMax)
   8298 #define ICommDlgBrowser3_GetViewFlags(This,pdwFlags) (This)->lpVtbl->GetViewFlags(This,pdwFlags)
   8299 /*** ICommDlgBrowser3 methods ***/
   8300 #define ICommDlgBrowser3_OnColumnClicked(This,ppshv,iColumn) (This)->lpVtbl->OnColumnClicked(This,ppshv,iColumn)
   8301 #define ICommDlgBrowser3_GetCurrentFilter(This,pszFileSpec,cchFileSpec) (This)->lpVtbl->GetCurrentFilter(This,pszFileSpec,cchFileSpec)
   8302 #define ICommDlgBrowser3_OnPreViewCreated(This,ppshv) (This)->lpVtbl->OnPreViewCreated(This,ppshv)
   8303 #else
   8304 /*** IUnknown methods ***/
   8305 static FORCEINLINE HRESULT ICommDlgBrowser3_QueryInterface(ICommDlgBrowser3* This,REFIID riid,void **ppvObject) {
   8306     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8307 }
   8308 static FORCEINLINE ULONG ICommDlgBrowser3_AddRef(ICommDlgBrowser3* This) {
   8309     return This->lpVtbl->AddRef(This);
   8310 }
   8311 static FORCEINLINE ULONG ICommDlgBrowser3_Release(ICommDlgBrowser3* This) {
   8312     return This->lpVtbl->Release(This);
   8313 }
   8314 /*** ICommDlgBrowser methods ***/
   8315 static FORCEINLINE HRESULT ICommDlgBrowser3_OnDefaultCommand(ICommDlgBrowser3* This,IShellView *ppshv) {
   8316     return This->lpVtbl->OnDefaultCommand(This,ppshv);
   8317 }
   8318 static FORCEINLINE HRESULT ICommDlgBrowser3_OnStateChange(ICommDlgBrowser3* This,IShellView *ppshv,ULONG uChange) {
   8319     return This->lpVtbl->OnStateChange(This,ppshv,uChange);
   8320 }
   8321 static FORCEINLINE HRESULT ICommDlgBrowser3_IncludeObject(ICommDlgBrowser3* This,IShellView *ppshv,PCUITEMID_CHILD pidl) {
   8322     return This->lpVtbl->IncludeObject(This,ppshv,pidl);
   8323 }
   8324 /*** ICommDlgBrowser2 methods ***/
   8325 static FORCEINLINE HRESULT ICommDlgBrowser3_Notify(ICommDlgBrowser3* This,IShellView *ppshv,DWORD dwNotifyType) {
   8326     return This->lpVtbl->Notify(This,ppshv,dwNotifyType);
   8327 }
   8328 static FORCEINLINE HRESULT ICommDlgBrowser3_GetDefaultMenuText(ICommDlgBrowser3* This,IShellView *ppshv,LPWSTR pszText,int cchMax) {
   8329     return This->lpVtbl->GetDefaultMenuText(This,ppshv,pszText,cchMax);
   8330 }
   8331 static FORCEINLINE HRESULT ICommDlgBrowser3_GetViewFlags(ICommDlgBrowser3* This,DWORD *pdwFlags) {
   8332     return This->lpVtbl->GetViewFlags(This,pdwFlags);
   8333 }
   8334 /*** ICommDlgBrowser3 methods ***/
   8335 static FORCEINLINE HRESULT ICommDlgBrowser3_OnColumnClicked(ICommDlgBrowser3* This,IShellView *ppshv,int iColumn) {
   8336     return This->lpVtbl->OnColumnClicked(This,ppshv,iColumn);
   8337 }
   8338 static FORCEINLINE HRESULT ICommDlgBrowser3_GetCurrentFilter(ICommDlgBrowser3* This,LPWSTR pszFileSpec,int cchFileSpec) {
   8339     return This->lpVtbl->GetCurrentFilter(This,pszFileSpec,cchFileSpec);
   8340 }
   8341 static FORCEINLINE HRESULT ICommDlgBrowser3_OnPreViewCreated(ICommDlgBrowser3* This,IShellView *ppshv) {
   8342     return This->lpVtbl->OnPreViewCreated(This,ppshv);
   8343 }
   8344 #endif
   8345 #endif
   8346 
   8347 #endif
   8348 
   8349 HRESULT STDMETHODCALLTYPE ICommDlgBrowser3_OnColumnClicked_Proxy(
   8350     ICommDlgBrowser3* This,
   8351     IShellView *ppshv,
   8352     int iColumn);
   8353 void __RPC_STUB ICommDlgBrowser3_OnColumnClicked_Stub(
   8354     IRpcStubBuffer* This,
   8355     IRpcChannelBuffer* pRpcChannelBuffer,
   8356     PRPC_MESSAGE pRpcMessage,
   8357     DWORD* pdwStubPhase);
   8358 HRESULT STDMETHODCALLTYPE ICommDlgBrowser3_GetCurrentFilter_Proxy(
   8359     ICommDlgBrowser3* This,
   8360     LPWSTR pszFileSpec,
   8361     int cchFileSpec);
   8362 void __RPC_STUB ICommDlgBrowser3_GetCurrentFilter_Stub(
   8363     IRpcStubBuffer* This,
   8364     IRpcChannelBuffer* pRpcChannelBuffer,
   8365     PRPC_MESSAGE pRpcMessage,
   8366     DWORD* pdwStubPhase);
   8367 HRESULT STDMETHODCALLTYPE ICommDlgBrowser3_OnPreViewCreated_Proxy(
   8368     ICommDlgBrowser3* This,
   8369     IShellView *ppshv);
   8370 void __RPC_STUB ICommDlgBrowser3_OnPreViewCreated_Stub(
   8371     IRpcStubBuffer* This,
   8372     IRpcChannelBuffer* pRpcChannelBuffer,
   8373     PRPC_MESSAGE pRpcMessage,
   8374     DWORD* pdwStubPhase);
   8375 
   8376 #endif  /* __ICommDlgBrowser3_INTERFACE_DEFINED__ */
   8377 
   8378 
   8379 typedef enum CM_MASK {
   8380     CM_MASK_WIDTH = 0x1,
   8381     CM_MASK_DEFAULTWIDTH = 0x2,
   8382     CM_MASK_IDEALWIDTH = 0x4,
   8383     CM_MASK_NAME = 0x8,
   8384     CM_MASK_STATE = 0x10
   8385 } CM_MASK;
   8386 
   8387 DEFINE_ENUM_FLAG_OPERATORS(CM_MASK)
   8388 
   8389 typedef enum CM_STATE {
   8390     CM_STATE_NONE = 0x0,
   8391     CM_STATE_VISIBLE = 0x1,
   8392     CM_STATE_FIXEDWIDTH = 0x2,
   8393     CM_STATE_NOSORTBYFOLDERNESS = 0x4,
   8394     CM_STATE_ALWAYSVISIBLE = 0x8
   8395 } CM_STATE;
   8396 
   8397 DEFINE_ENUM_FLAG_OPERATORS(CM_STATE)
   8398 
   8399 typedef enum CM_ENUM_FLAGS {
   8400     CM_ENUM_ALL = 0x1,
   8401     CM_ENUM_VISIBLE = 0x2
   8402 } CM_ENUM_FLAGS;
   8403 
   8404 DEFINE_ENUM_FLAG_OPERATORS(CM_ENUM_FLAGS)
   8405 
   8406 typedef enum CM_SET_WIDTH_VALUE {
   8407     CM_WIDTH_USEDEFAULT = -1,
   8408     CM_WIDTH_AUTOSIZE = -2
   8409 } CM_SET_WIDTH_VALUE;
   8410 
   8411 typedef struct CM_COLUMNINFO {
   8412     DWORD cbSize;
   8413     DWORD dwMask;
   8414     DWORD dwState;
   8415     UINT uWidth;
   8416     UINT uDefaultWidth;
   8417     UINT uIdealWidth;
   8418     WCHAR wszName[80];
   8419 } CM_COLUMNINFO;
   8420 
   8421 /*****************************************************************************
   8422  * IColumnManager interface
   8423  */
   8424 #ifndef __IColumnManager_INTERFACE_DEFINED__
   8425 #define __IColumnManager_INTERFACE_DEFINED__
   8426 
   8427 DEFINE_GUID(IID_IColumnManager, 0xd8ec27bb, 0x3f3b, 0x4042, 0xb1,0x0a, 0x4a,0xcf,0xd9,0x24,0xd4,0x53);
   8428 #if defined(__cplusplus) && !defined(CINTERFACE)
   8429 MIDL_INTERFACE("d8ec27bb-3f3b-4042-b10a-4acfd924d453")
   8430 IColumnManager : public IUnknown
   8431 {
   8432     virtual HRESULT STDMETHODCALLTYPE SetColumnInfo(
   8433         REFPROPERTYKEY propkey,
   8434         const CM_COLUMNINFO *pcmci) = 0;
   8435 
   8436     virtual HRESULT STDMETHODCALLTYPE GetColumnInfo(
   8437         REFPROPERTYKEY propkey,
   8438         CM_COLUMNINFO *pcmci) = 0;
   8439 
   8440     virtual HRESULT STDMETHODCALLTYPE GetColumnCount(
   8441         CM_ENUM_FLAGS dwFlags,
   8442         UINT *puCount) = 0;
   8443 
   8444     virtual HRESULT STDMETHODCALLTYPE GetColumns(
   8445         CM_ENUM_FLAGS dwFlags,
   8446         PROPERTYKEY *rgkeyOrder,
   8447         UINT cColumns) = 0;
   8448 
   8449     virtual HRESULT STDMETHODCALLTYPE SetColumns(
   8450         const PROPERTYKEY *rgkeyOrder,
   8451         UINT cVisible) = 0;
   8452 
   8453 };
   8454 #ifdef __CRT_UUID_DECL
   8455 __CRT_UUID_DECL(IColumnManager, 0xd8ec27bb, 0x3f3b, 0x4042, 0xb1,0x0a, 0x4a,0xcf,0xd9,0x24,0xd4,0x53)
   8456 #endif
   8457 #else
   8458 typedef struct IColumnManagerVtbl {
   8459     BEGIN_INTERFACE
   8460 
   8461     /*** IUnknown methods ***/
   8462     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8463         IColumnManager* This,
   8464         REFIID riid,
   8465         void **ppvObject);
   8466 
   8467     ULONG (STDMETHODCALLTYPE *AddRef)(
   8468         IColumnManager* This);
   8469 
   8470     ULONG (STDMETHODCALLTYPE *Release)(
   8471         IColumnManager* This);
   8472 
   8473     /*** IColumnManager methods ***/
   8474     HRESULT (STDMETHODCALLTYPE *SetColumnInfo)(
   8475         IColumnManager* This,
   8476         REFPROPERTYKEY propkey,
   8477         const CM_COLUMNINFO *pcmci);
   8478 
   8479     HRESULT (STDMETHODCALLTYPE *GetColumnInfo)(
   8480         IColumnManager* This,
   8481         REFPROPERTYKEY propkey,
   8482         CM_COLUMNINFO *pcmci);
   8483 
   8484     HRESULT (STDMETHODCALLTYPE *GetColumnCount)(
   8485         IColumnManager* This,
   8486         CM_ENUM_FLAGS dwFlags,
   8487         UINT *puCount);
   8488 
   8489     HRESULT (STDMETHODCALLTYPE *GetColumns)(
   8490         IColumnManager* This,
   8491         CM_ENUM_FLAGS dwFlags,
   8492         PROPERTYKEY *rgkeyOrder,
   8493         UINT cColumns);
   8494 
   8495     HRESULT (STDMETHODCALLTYPE *SetColumns)(
   8496         IColumnManager* This,
   8497         const PROPERTYKEY *rgkeyOrder,
   8498         UINT cVisible);
   8499 
   8500     END_INTERFACE
   8501 } IColumnManagerVtbl;
   8502 interface IColumnManager {
   8503     CONST_VTBL IColumnManagerVtbl* lpVtbl;
   8504 };
   8505 
   8506 #ifdef COBJMACROS
   8507 #ifndef WIDL_C_INLINE_WRAPPERS
   8508 /*** IUnknown methods ***/
   8509 #define IColumnManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8510 #define IColumnManager_AddRef(This) (This)->lpVtbl->AddRef(This)
   8511 #define IColumnManager_Release(This) (This)->lpVtbl->Release(This)
   8512 /*** IColumnManager methods ***/
   8513 #define IColumnManager_SetColumnInfo(This,propkey,pcmci) (This)->lpVtbl->SetColumnInfo(This,propkey,pcmci)
   8514 #define IColumnManager_GetColumnInfo(This,propkey,pcmci) (This)->lpVtbl->GetColumnInfo(This,propkey,pcmci)
   8515 #define IColumnManager_GetColumnCount(This,dwFlags,puCount) (This)->lpVtbl->GetColumnCount(This,dwFlags,puCount)
   8516 #define IColumnManager_GetColumns(This,dwFlags,rgkeyOrder,cColumns) (This)->lpVtbl->GetColumns(This,dwFlags,rgkeyOrder,cColumns)
   8517 #define IColumnManager_SetColumns(This,rgkeyOrder,cVisible) (This)->lpVtbl->SetColumns(This,rgkeyOrder,cVisible)
   8518 #else
   8519 /*** IUnknown methods ***/
   8520 static FORCEINLINE HRESULT IColumnManager_QueryInterface(IColumnManager* This,REFIID riid,void **ppvObject) {
   8521     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8522 }
   8523 static FORCEINLINE ULONG IColumnManager_AddRef(IColumnManager* This) {
   8524     return This->lpVtbl->AddRef(This);
   8525 }
   8526 static FORCEINLINE ULONG IColumnManager_Release(IColumnManager* This) {
   8527     return This->lpVtbl->Release(This);
   8528 }
   8529 /*** IColumnManager methods ***/
   8530 static FORCEINLINE HRESULT IColumnManager_SetColumnInfo(IColumnManager* This,REFPROPERTYKEY propkey,const CM_COLUMNINFO *pcmci) {
   8531     return This->lpVtbl->SetColumnInfo(This,propkey,pcmci);
   8532 }
   8533 static FORCEINLINE HRESULT IColumnManager_GetColumnInfo(IColumnManager* This,REFPROPERTYKEY propkey,CM_COLUMNINFO *pcmci) {
   8534     return This->lpVtbl->GetColumnInfo(This,propkey,pcmci);
   8535 }
   8536 static FORCEINLINE HRESULT IColumnManager_GetColumnCount(IColumnManager* This,CM_ENUM_FLAGS dwFlags,UINT *puCount) {
   8537     return This->lpVtbl->GetColumnCount(This,dwFlags,puCount);
   8538 }
   8539 static FORCEINLINE HRESULT IColumnManager_GetColumns(IColumnManager* This,CM_ENUM_FLAGS dwFlags,PROPERTYKEY *rgkeyOrder,UINT cColumns) {
   8540     return This->lpVtbl->GetColumns(This,dwFlags,rgkeyOrder,cColumns);
   8541 }
   8542 static FORCEINLINE HRESULT IColumnManager_SetColumns(IColumnManager* This,const PROPERTYKEY *rgkeyOrder,UINT cVisible) {
   8543     return This->lpVtbl->SetColumns(This,rgkeyOrder,cVisible);
   8544 }
   8545 #endif
   8546 #endif
   8547 
   8548 #endif
   8549 
   8550 HRESULT STDMETHODCALLTYPE IColumnManager_SetColumnInfo_Proxy(
   8551     IColumnManager* This,
   8552     REFPROPERTYKEY propkey,
   8553     const CM_COLUMNINFO *pcmci);
   8554 void __RPC_STUB IColumnManager_SetColumnInfo_Stub(
   8555     IRpcStubBuffer* This,
   8556     IRpcChannelBuffer* pRpcChannelBuffer,
   8557     PRPC_MESSAGE pRpcMessage,
   8558     DWORD* pdwStubPhase);
   8559 HRESULT STDMETHODCALLTYPE IColumnManager_GetColumnInfo_Proxy(
   8560     IColumnManager* This,
   8561     REFPROPERTYKEY propkey,
   8562     CM_COLUMNINFO *pcmci);
   8563 void __RPC_STUB IColumnManager_GetColumnInfo_Stub(
   8564     IRpcStubBuffer* This,
   8565     IRpcChannelBuffer* pRpcChannelBuffer,
   8566     PRPC_MESSAGE pRpcMessage,
   8567     DWORD* pdwStubPhase);
   8568 HRESULT STDMETHODCALLTYPE IColumnManager_GetColumnCount_Proxy(
   8569     IColumnManager* This,
   8570     CM_ENUM_FLAGS dwFlags,
   8571     UINT *puCount);
   8572 void __RPC_STUB IColumnManager_GetColumnCount_Stub(
   8573     IRpcStubBuffer* This,
   8574     IRpcChannelBuffer* pRpcChannelBuffer,
   8575     PRPC_MESSAGE pRpcMessage,
   8576     DWORD* pdwStubPhase);
   8577 HRESULT STDMETHODCALLTYPE IColumnManager_GetColumns_Proxy(
   8578     IColumnManager* This,
   8579     CM_ENUM_FLAGS dwFlags,
   8580     PROPERTYKEY *rgkeyOrder,
   8581     UINT cColumns);
   8582 void __RPC_STUB IColumnManager_GetColumns_Stub(
   8583     IRpcStubBuffer* This,
   8584     IRpcChannelBuffer* pRpcChannelBuffer,
   8585     PRPC_MESSAGE pRpcMessage,
   8586     DWORD* pdwStubPhase);
   8587 HRESULT STDMETHODCALLTYPE IColumnManager_SetColumns_Proxy(
   8588     IColumnManager* This,
   8589     const PROPERTYKEY *rgkeyOrder,
   8590     UINT cVisible);
   8591 void __RPC_STUB IColumnManager_SetColumns_Stub(
   8592     IRpcStubBuffer* This,
   8593     IRpcChannelBuffer* pRpcChannelBuffer,
   8594     PRPC_MESSAGE pRpcMessage,
   8595     DWORD* pdwStubPhase);
   8596 
   8597 #endif  /* __IColumnManager_INTERFACE_DEFINED__ */
   8598 
   8599 #endif
   8600 
   8601 /*****************************************************************************
   8602  * IFolderFilterSite interface
   8603  */
   8604 #ifndef __IFolderFilterSite_INTERFACE_DEFINED__
   8605 #define __IFolderFilterSite_INTERFACE_DEFINED__
   8606 
   8607 DEFINE_GUID(IID_IFolderFilterSite, 0xc0a651f5, 0xb48b, 0x11d2, 0xb5,0xed, 0x00,0x60,0x97,0xc6,0x86,0xf6);
   8608 #if defined(__cplusplus) && !defined(CINTERFACE)
   8609 MIDL_INTERFACE("c0a651f5-b48b-11d2-b5ed-006097c686f6")
   8610 IFolderFilterSite : public IUnknown
   8611 {
   8612     virtual HRESULT STDMETHODCALLTYPE SetFilter(
   8613         IUnknown *punk) = 0;
   8614 
   8615 };
   8616 #ifdef __CRT_UUID_DECL
   8617 __CRT_UUID_DECL(IFolderFilterSite, 0xc0a651f5, 0xb48b, 0x11d2, 0xb5,0xed, 0x00,0x60,0x97,0xc6,0x86,0xf6)
   8618 #endif
   8619 #else
   8620 typedef struct IFolderFilterSiteVtbl {
   8621     BEGIN_INTERFACE
   8622 
   8623     /*** IUnknown methods ***/
   8624     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8625         IFolderFilterSite* This,
   8626         REFIID riid,
   8627         void **ppvObject);
   8628 
   8629     ULONG (STDMETHODCALLTYPE *AddRef)(
   8630         IFolderFilterSite* This);
   8631 
   8632     ULONG (STDMETHODCALLTYPE *Release)(
   8633         IFolderFilterSite* This);
   8634 
   8635     /*** IFolderFilterSite methods ***/
   8636     HRESULT (STDMETHODCALLTYPE *SetFilter)(
   8637         IFolderFilterSite* This,
   8638         IUnknown *punk);
   8639 
   8640     END_INTERFACE
   8641 } IFolderFilterSiteVtbl;
   8642 interface IFolderFilterSite {
   8643     CONST_VTBL IFolderFilterSiteVtbl* lpVtbl;
   8644 };
   8645 
   8646 #ifdef COBJMACROS
   8647 #ifndef WIDL_C_INLINE_WRAPPERS
   8648 /*** IUnknown methods ***/
   8649 #define IFolderFilterSite_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8650 #define IFolderFilterSite_AddRef(This) (This)->lpVtbl->AddRef(This)
   8651 #define IFolderFilterSite_Release(This) (This)->lpVtbl->Release(This)
   8652 /*** IFolderFilterSite methods ***/
   8653 #define IFolderFilterSite_SetFilter(This,punk) (This)->lpVtbl->SetFilter(This,punk)
   8654 #else
   8655 /*** IUnknown methods ***/
   8656 static FORCEINLINE HRESULT IFolderFilterSite_QueryInterface(IFolderFilterSite* This,REFIID riid,void **ppvObject) {
   8657     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8658 }
   8659 static FORCEINLINE ULONG IFolderFilterSite_AddRef(IFolderFilterSite* This) {
   8660     return This->lpVtbl->AddRef(This);
   8661 }
   8662 static FORCEINLINE ULONG IFolderFilterSite_Release(IFolderFilterSite* This) {
   8663     return This->lpVtbl->Release(This);
   8664 }
   8665 /*** IFolderFilterSite methods ***/
   8666 static FORCEINLINE HRESULT IFolderFilterSite_SetFilter(IFolderFilterSite* This,IUnknown *punk) {
   8667     return This->lpVtbl->SetFilter(This,punk);
   8668 }
   8669 #endif
   8670 #endif
   8671 
   8672 #endif
   8673 
   8674 HRESULT STDMETHODCALLTYPE IFolderFilterSite_SetFilter_Proxy(
   8675     IFolderFilterSite* This,
   8676     IUnknown *punk);
   8677 void __RPC_STUB IFolderFilterSite_SetFilter_Stub(
   8678     IRpcStubBuffer* This,
   8679     IRpcChannelBuffer* pRpcChannelBuffer,
   8680     PRPC_MESSAGE pRpcMessage,
   8681     DWORD* pdwStubPhase);
   8682 
   8683 #endif  /* __IFolderFilterSite_INTERFACE_DEFINED__ */
   8684 
   8685 
   8686 /*****************************************************************************
   8687  * IFolderFilter interface
   8688  */
   8689 #ifndef __IFolderFilter_INTERFACE_DEFINED__
   8690 #define __IFolderFilter_INTERFACE_DEFINED__
   8691 
   8692 DEFINE_GUID(IID_IFolderFilter, 0x9cc22886, 0xdc8e, 0x11d2, 0xb1,0xd0, 0x00,0xc0,0x4f,0x8e,0xeb,0x3e);
   8693 #if defined(__cplusplus) && !defined(CINTERFACE)
   8694 MIDL_INTERFACE("9cc22886-dc8e-11d2-b1d0-00c04f8eeb3e")
   8695 IFolderFilter : public IUnknown
   8696 {
   8697     virtual HRESULT STDMETHODCALLTYPE ShouldShow(
   8698         IShellFolder *psf,
   8699         PCIDLIST_ABSOLUTE pidlFolder,
   8700         PCUITEMID_CHILD pidlItem) = 0;
   8701 
   8702     virtual HRESULT STDMETHODCALLTYPE GetEnumFlags(
   8703         IShellFolder *psf,
   8704         PCIDLIST_ABSOLUTE pidlFolder,
   8705         HWND *phwnd,
   8706         DWORD *pgrfFlags) = 0;
   8707 
   8708 };
   8709 #ifdef __CRT_UUID_DECL
   8710 __CRT_UUID_DECL(IFolderFilter, 0x9cc22886, 0xdc8e, 0x11d2, 0xb1,0xd0, 0x00,0xc0,0x4f,0x8e,0xeb,0x3e)
   8711 #endif
   8712 #else
   8713 typedef struct IFolderFilterVtbl {
   8714     BEGIN_INTERFACE
   8715 
   8716     /*** IUnknown methods ***/
   8717     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8718         IFolderFilter* This,
   8719         REFIID riid,
   8720         void **ppvObject);
   8721 
   8722     ULONG (STDMETHODCALLTYPE *AddRef)(
   8723         IFolderFilter* This);
   8724 
   8725     ULONG (STDMETHODCALLTYPE *Release)(
   8726         IFolderFilter* This);
   8727 
   8728     /*** IFolderFilter methods ***/
   8729     HRESULT (STDMETHODCALLTYPE *ShouldShow)(
   8730         IFolderFilter* This,
   8731         IShellFolder *psf,
   8732         PCIDLIST_ABSOLUTE pidlFolder,
   8733         PCUITEMID_CHILD pidlItem);
   8734 
   8735     HRESULT (STDMETHODCALLTYPE *GetEnumFlags)(
   8736         IFolderFilter* This,
   8737         IShellFolder *psf,
   8738         PCIDLIST_ABSOLUTE pidlFolder,
   8739         HWND *phwnd,
   8740         DWORD *pgrfFlags);
   8741 
   8742     END_INTERFACE
   8743 } IFolderFilterVtbl;
   8744 interface IFolderFilter {
   8745     CONST_VTBL IFolderFilterVtbl* lpVtbl;
   8746 };
   8747 
   8748 #ifdef COBJMACROS
   8749 #ifndef WIDL_C_INLINE_WRAPPERS
   8750 /*** IUnknown methods ***/
   8751 #define IFolderFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8752 #define IFolderFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
   8753 #define IFolderFilter_Release(This) (This)->lpVtbl->Release(This)
   8754 /*** IFolderFilter methods ***/
   8755 #define IFolderFilter_ShouldShow(This,psf,pidlFolder,pidlItem) (This)->lpVtbl->ShouldShow(This,psf,pidlFolder,pidlItem)
   8756 #define IFolderFilter_GetEnumFlags(This,psf,pidlFolder,phwnd,pgrfFlags) (This)->lpVtbl->GetEnumFlags(This,psf,pidlFolder,phwnd,pgrfFlags)
   8757 #else
   8758 /*** IUnknown methods ***/
   8759 static FORCEINLINE HRESULT IFolderFilter_QueryInterface(IFolderFilter* This,REFIID riid,void **ppvObject) {
   8760     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8761 }
   8762 static FORCEINLINE ULONG IFolderFilter_AddRef(IFolderFilter* This) {
   8763     return This->lpVtbl->AddRef(This);
   8764 }
   8765 static FORCEINLINE ULONG IFolderFilter_Release(IFolderFilter* This) {
   8766     return This->lpVtbl->Release(This);
   8767 }
   8768 /*** IFolderFilter methods ***/
   8769 static FORCEINLINE HRESULT IFolderFilter_ShouldShow(IFolderFilter* This,IShellFolder *psf,PCIDLIST_ABSOLUTE pidlFolder,PCUITEMID_CHILD pidlItem) {
   8770     return This->lpVtbl->ShouldShow(This,psf,pidlFolder,pidlItem);
   8771 }
   8772 static FORCEINLINE HRESULT IFolderFilter_GetEnumFlags(IFolderFilter* This,IShellFolder *psf,PCIDLIST_ABSOLUTE pidlFolder,HWND *phwnd,DWORD *pgrfFlags) {
   8773     return This->lpVtbl->GetEnumFlags(This,psf,pidlFolder,phwnd,pgrfFlags);
   8774 }
   8775 #endif
   8776 #endif
   8777 
   8778 #endif
   8779 
   8780 HRESULT STDMETHODCALLTYPE IFolderFilter_ShouldShow_Proxy(
   8781     IFolderFilter* This,
   8782     IShellFolder *psf,
   8783     PCIDLIST_ABSOLUTE pidlFolder,
   8784     PCUITEMID_CHILD pidlItem);
   8785 void __RPC_STUB IFolderFilter_ShouldShow_Stub(
   8786     IRpcStubBuffer* This,
   8787     IRpcChannelBuffer* pRpcChannelBuffer,
   8788     PRPC_MESSAGE pRpcMessage,
   8789     DWORD* pdwStubPhase);
   8790 HRESULT STDMETHODCALLTYPE IFolderFilter_GetEnumFlags_Proxy(
   8791     IFolderFilter* This,
   8792     IShellFolder *psf,
   8793     PCIDLIST_ABSOLUTE pidlFolder,
   8794     HWND *phwnd,
   8795     DWORD *pgrfFlags);
   8796 void __RPC_STUB IFolderFilter_GetEnumFlags_Stub(
   8797     IRpcStubBuffer* This,
   8798     IRpcChannelBuffer* pRpcChannelBuffer,
   8799     PRPC_MESSAGE pRpcMessage,
   8800     DWORD* pdwStubPhase);
   8801 
   8802 #endif  /* __IFolderFilter_INTERFACE_DEFINED__ */
   8803 
   8804 
   8805 /*****************************************************************************
   8806  * IInputObjectSite interface
   8807  */
   8808 #ifndef __IInputObjectSite_INTERFACE_DEFINED__
   8809 #define __IInputObjectSite_INTERFACE_DEFINED__
   8810 
   8811 DEFINE_GUID(IID_IInputObjectSite, 0xf1db8392, 0x7331, 0x11d0, 0x8c,0x99, 0x00,0xa0,0xc9,0x2d,0xbf,0xe8);
   8812 #if defined(__cplusplus) && !defined(CINTERFACE)
   8813 MIDL_INTERFACE("f1db8392-7331-11d0-8c99-00a0c92dbfe8")
   8814 IInputObjectSite : public IUnknown
   8815 {
   8816     virtual HRESULT STDMETHODCALLTYPE OnFocusChangeIS(
   8817         IUnknown *punkObj,
   8818         WINBOOL fSetFocus) = 0;
   8819 
   8820 };
   8821 #ifdef __CRT_UUID_DECL
   8822 __CRT_UUID_DECL(IInputObjectSite, 0xf1db8392, 0x7331, 0x11d0, 0x8c,0x99, 0x00,0xa0,0xc9,0x2d,0xbf,0xe8)
   8823 #endif
   8824 #else
   8825 typedef struct IInputObjectSiteVtbl {
   8826     BEGIN_INTERFACE
   8827 
   8828     /*** IUnknown methods ***/
   8829     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8830         IInputObjectSite* This,
   8831         REFIID riid,
   8832         void **ppvObject);
   8833 
   8834     ULONG (STDMETHODCALLTYPE *AddRef)(
   8835         IInputObjectSite* This);
   8836 
   8837     ULONG (STDMETHODCALLTYPE *Release)(
   8838         IInputObjectSite* This);
   8839 
   8840     /*** IInputObjectSite methods ***/
   8841     HRESULT (STDMETHODCALLTYPE *OnFocusChangeIS)(
   8842         IInputObjectSite* This,
   8843         IUnknown *punkObj,
   8844         WINBOOL fSetFocus);
   8845 
   8846     END_INTERFACE
   8847 } IInputObjectSiteVtbl;
   8848 interface IInputObjectSite {
   8849     CONST_VTBL IInputObjectSiteVtbl* lpVtbl;
   8850 };
   8851 
   8852 #ifdef COBJMACROS
   8853 #ifndef WIDL_C_INLINE_WRAPPERS
   8854 /*** IUnknown methods ***/
   8855 #define IInputObjectSite_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8856 #define IInputObjectSite_AddRef(This) (This)->lpVtbl->AddRef(This)
   8857 #define IInputObjectSite_Release(This) (This)->lpVtbl->Release(This)
   8858 /*** IInputObjectSite methods ***/
   8859 #define IInputObjectSite_OnFocusChangeIS(This,punkObj,fSetFocus) (This)->lpVtbl->OnFocusChangeIS(This,punkObj,fSetFocus)
   8860 #else
   8861 /*** IUnknown methods ***/
   8862 static FORCEINLINE HRESULT IInputObjectSite_QueryInterface(IInputObjectSite* This,REFIID riid,void **ppvObject) {
   8863     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8864 }
   8865 static FORCEINLINE ULONG IInputObjectSite_AddRef(IInputObjectSite* This) {
   8866     return This->lpVtbl->AddRef(This);
   8867 }
   8868 static FORCEINLINE ULONG IInputObjectSite_Release(IInputObjectSite* This) {
   8869     return This->lpVtbl->Release(This);
   8870 }
   8871 /*** IInputObjectSite methods ***/
   8872 static FORCEINLINE HRESULT IInputObjectSite_OnFocusChangeIS(IInputObjectSite* This,IUnknown *punkObj,WINBOOL fSetFocus) {
   8873     return This->lpVtbl->OnFocusChangeIS(This,punkObj,fSetFocus);
   8874 }
   8875 #endif
   8876 #endif
   8877 
   8878 #endif
   8879 
   8880 HRESULT STDMETHODCALLTYPE IInputObjectSite_OnFocusChangeIS_Proxy(
   8881     IInputObjectSite* This,
   8882     IUnknown *punkObj,
   8883     WINBOOL fSetFocus);
   8884 void __RPC_STUB IInputObjectSite_OnFocusChangeIS_Stub(
   8885     IRpcStubBuffer* This,
   8886     IRpcChannelBuffer* pRpcChannelBuffer,
   8887     PRPC_MESSAGE pRpcMessage,
   8888     DWORD* pdwStubPhase);
   8889 
   8890 #endif  /* __IInputObjectSite_INTERFACE_DEFINED__ */
   8891 
   8892 
   8893 /*****************************************************************************
   8894  * IInputObject interface
   8895  */
   8896 #ifndef __IInputObject_INTERFACE_DEFINED__
   8897 #define __IInputObject_INTERFACE_DEFINED__
   8898 
   8899 DEFINE_GUID(IID_IInputObject, 0x68284faa, 0x6a48, 0x11d0, 0x8c,0x78, 0x00,0xc0,0x4f,0xd9,0x18,0xb4);
   8900 #if defined(__cplusplus) && !defined(CINTERFACE)
   8901 MIDL_INTERFACE("68284faa-6a48-11d0-8c78-00c04fd918b4")
   8902 IInputObject : public IUnknown
   8903 {
   8904     virtual HRESULT STDMETHODCALLTYPE UIActivateIO(
   8905         WINBOOL fActivate,
   8906         MSG *pMsg) = 0;
   8907 
   8908     virtual HRESULT STDMETHODCALLTYPE HasFocusIO(
   8909         ) = 0;
   8910 
   8911     virtual HRESULT STDMETHODCALLTYPE TranslateAcceleratorIO(
   8912         MSG *pMsg) = 0;
   8913 
   8914 };
   8915 #ifdef __CRT_UUID_DECL
   8916 __CRT_UUID_DECL(IInputObject, 0x68284faa, 0x6a48, 0x11d0, 0x8c,0x78, 0x00,0xc0,0x4f,0xd9,0x18,0xb4)
   8917 #endif
   8918 #else
   8919 typedef struct IInputObjectVtbl {
   8920     BEGIN_INTERFACE
   8921 
   8922     /*** IUnknown methods ***/
   8923     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8924         IInputObject* This,
   8925         REFIID riid,
   8926         void **ppvObject);
   8927 
   8928     ULONG (STDMETHODCALLTYPE *AddRef)(
   8929         IInputObject* This);
   8930 
   8931     ULONG (STDMETHODCALLTYPE *Release)(
   8932         IInputObject* This);
   8933 
   8934     /*** IInputObject methods ***/
   8935     HRESULT (STDMETHODCALLTYPE *UIActivateIO)(
   8936         IInputObject* This,
   8937         WINBOOL fActivate,
   8938         MSG *pMsg);
   8939 
   8940     HRESULT (STDMETHODCALLTYPE *HasFocusIO)(
   8941         IInputObject* This);
   8942 
   8943     HRESULT (STDMETHODCALLTYPE *TranslateAcceleratorIO)(
   8944         IInputObject* This,
   8945         MSG *pMsg);
   8946 
   8947     END_INTERFACE
   8948 } IInputObjectVtbl;
   8949 interface IInputObject {
   8950     CONST_VTBL IInputObjectVtbl* lpVtbl;
   8951 };
   8952 
   8953 #ifdef COBJMACROS
   8954 #ifndef WIDL_C_INLINE_WRAPPERS
   8955 /*** IUnknown methods ***/
   8956 #define IInputObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8957 #define IInputObject_AddRef(This) (This)->lpVtbl->AddRef(This)
   8958 #define IInputObject_Release(This) (This)->lpVtbl->Release(This)
   8959 /*** IInputObject methods ***/
   8960 #define IInputObject_UIActivateIO(This,fActivate,pMsg) (This)->lpVtbl->UIActivateIO(This,fActivate,pMsg)
   8961 #define IInputObject_HasFocusIO(This) (This)->lpVtbl->HasFocusIO(This)
   8962 #define IInputObject_TranslateAcceleratorIO(This,pMsg) (This)->lpVtbl->TranslateAcceleratorIO(This,pMsg)
   8963 #else
   8964 /*** IUnknown methods ***/
   8965 static FORCEINLINE HRESULT IInputObject_QueryInterface(IInputObject* This,REFIID riid,void **ppvObject) {
   8966     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8967 }
   8968 static FORCEINLINE ULONG IInputObject_AddRef(IInputObject* This) {
   8969     return This->lpVtbl->AddRef(This);
   8970 }
   8971 static FORCEINLINE ULONG IInputObject_Release(IInputObject* This) {
   8972     return This->lpVtbl->Release(This);
   8973 }
   8974 /*** IInputObject methods ***/
   8975 static FORCEINLINE HRESULT IInputObject_UIActivateIO(IInputObject* This,WINBOOL fActivate,MSG *pMsg) {
   8976     return This->lpVtbl->UIActivateIO(This,fActivate,pMsg);
   8977 }
   8978 static FORCEINLINE HRESULT IInputObject_HasFocusIO(IInputObject* This) {
   8979     return This->lpVtbl->HasFocusIO(This);
   8980 }
   8981 static FORCEINLINE HRESULT IInputObject_TranslateAcceleratorIO(IInputObject* This,MSG *pMsg) {
   8982     return This->lpVtbl->TranslateAcceleratorIO(This,pMsg);
   8983 }
   8984 #endif
   8985 #endif
   8986 
   8987 #endif
   8988 
   8989 HRESULT STDMETHODCALLTYPE IInputObject_UIActivateIO_Proxy(
   8990     IInputObject* This,
   8991     WINBOOL fActivate,
   8992     MSG *pMsg);
   8993 void __RPC_STUB IInputObject_UIActivateIO_Stub(
   8994     IRpcStubBuffer* This,
   8995     IRpcChannelBuffer* pRpcChannelBuffer,
   8996     PRPC_MESSAGE pRpcMessage,
   8997     DWORD* pdwStubPhase);
   8998 HRESULT STDMETHODCALLTYPE IInputObject_HasFocusIO_Proxy(
   8999     IInputObject* This);
   9000 void __RPC_STUB IInputObject_HasFocusIO_Stub(
   9001     IRpcStubBuffer* This,
   9002     IRpcChannelBuffer* pRpcChannelBuffer,
   9003     PRPC_MESSAGE pRpcMessage,
   9004     DWORD* pdwStubPhase);
   9005 HRESULT STDMETHODCALLTYPE IInputObject_TranslateAcceleratorIO_Proxy(
   9006     IInputObject* This,
   9007     MSG *pMsg);
   9008 void __RPC_STUB IInputObject_TranslateAcceleratorIO_Stub(
   9009     IRpcStubBuffer* This,
   9010     IRpcChannelBuffer* pRpcChannelBuffer,
   9011     PRPC_MESSAGE pRpcMessage,
   9012     DWORD* pdwStubPhase);
   9013 
   9014 #endif  /* __IInputObject_INTERFACE_DEFINED__ */
   9015 
   9016 
   9017 /*****************************************************************************
   9018  * IInputObject2 interface
   9019  */
   9020 #ifndef __IInputObject2_INTERFACE_DEFINED__
   9021 #define __IInputObject2_INTERFACE_DEFINED__
   9022 
   9023 DEFINE_GUID(IID_IInputObject2, 0x6915c085, 0x510b, 0x44cd, 0x94,0xaf, 0x28,0xdf,0xa5,0x6c,0xf9,0x2b);
   9024 #if defined(__cplusplus) && !defined(CINTERFACE)
   9025 MIDL_INTERFACE("6915c085-510b-44cd-94af-28dfa56cf92b")
   9026 IInputObject2 : public IInputObject
   9027 {
   9028     virtual HRESULT STDMETHODCALLTYPE TranslateAcceleratorGlobal(
   9029         MSG *pMsg) = 0;
   9030 
   9031 };
   9032 #ifdef __CRT_UUID_DECL
   9033 __CRT_UUID_DECL(IInputObject2, 0x6915c085, 0x510b, 0x44cd, 0x94,0xaf, 0x28,0xdf,0xa5,0x6c,0xf9,0x2b)
   9034 #endif
   9035 #else
   9036 typedef struct IInputObject2Vtbl {
   9037     BEGIN_INTERFACE
   9038 
   9039     /*** IUnknown methods ***/
   9040     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9041         IInputObject2* This,
   9042         REFIID riid,
   9043         void **ppvObject);
   9044 
   9045     ULONG (STDMETHODCALLTYPE *AddRef)(
   9046         IInputObject2* This);
   9047 
   9048     ULONG (STDMETHODCALLTYPE *Release)(
   9049         IInputObject2* This);
   9050 
   9051     /*** IInputObject methods ***/
   9052     HRESULT (STDMETHODCALLTYPE *UIActivateIO)(
   9053         IInputObject2* This,
   9054         WINBOOL fActivate,
   9055         MSG *pMsg);
   9056 
   9057     HRESULT (STDMETHODCALLTYPE *HasFocusIO)(
   9058         IInputObject2* This);
   9059 
   9060     HRESULT (STDMETHODCALLTYPE *TranslateAcceleratorIO)(
   9061         IInputObject2* This,
   9062         MSG *pMsg);
   9063 
   9064     /*** IInputObject2 methods ***/
   9065     HRESULT (STDMETHODCALLTYPE *TranslateAcceleratorGlobal)(
   9066         IInputObject2* This,
   9067         MSG *pMsg);
   9068 
   9069     END_INTERFACE
   9070 } IInputObject2Vtbl;
   9071 interface IInputObject2 {
   9072     CONST_VTBL IInputObject2Vtbl* lpVtbl;
   9073 };
   9074 
   9075 #ifdef COBJMACROS
   9076 #ifndef WIDL_C_INLINE_WRAPPERS
   9077 /*** IUnknown methods ***/
   9078 #define IInputObject2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9079 #define IInputObject2_AddRef(This) (This)->lpVtbl->AddRef(This)
   9080 #define IInputObject2_Release(This) (This)->lpVtbl->Release(This)
   9081 /*** IInputObject methods ***/
   9082 #define IInputObject2_UIActivateIO(This,fActivate,pMsg) (This)->lpVtbl->UIActivateIO(This,fActivate,pMsg)
   9083 #define IInputObject2_HasFocusIO(This) (This)->lpVtbl->HasFocusIO(This)
   9084 #define IInputObject2_TranslateAcceleratorIO(This,pMsg) (This)->lpVtbl->TranslateAcceleratorIO(This,pMsg)
   9085 /*** IInputObject2 methods ***/
   9086 #define IInputObject2_TranslateAcceleratorGlobal(This,pMsg) (This)->lpVtbl->TranslateAcceleratorGlobal(This,pMsg)
   9087 #else
   9088 /*** IUnknown methods ***/
   9089 static FORCEINLINE HRESULT IInputObject2_QueryInterface(IInputObject2* This,REFIID riid,void **ppvObject) {
   9090     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9091 }
   9092 static FORCEINLINE ULONG IInputObject2_AddRef(IInputObject2* This) {
   9093     return This->lpVtbl->AddRef(This);
   9094 }
   9095 static FORCEINLINE ULONG IInputObject2_Release(IInputObject2* This) {
   9096     return This->lpVtbl->Release(This);
   9097 }
   9098 /*** IInputObject methods ***/
   9099 static FORCEINLINE HRESULT IInputObject2_UIActivateIO(IInputObject2* This,WINBOOL fActivate,MSG *pMsg) {
   9100     return This->lpVtbl->UIActivateIO(This,fActivate,pMsg);
   9101 }
   9102 static FORCEINLINE HRESULT IInputObject2_HasFocusIO(IInputObject2* This) {
   9103     return This->lpVtbl->HasFocusIO(This);
   9104 }
   9105 static FORCEINLINE HRESULT IInputObject2_TranslateAcceleratorIO(IInputObject2* This,MSG *pMsg) {
   9106     return This->lpVtbl->TranslateAcceleratorIO(This,pMsg);
   9107 }
   9108 /*** IInputObject2 methods ***/
   9109 static FORCEINLINE HRESULT IInputObject2_TranslateAcceleratorGlobal(IInputObject2* This,MSG *pMsg) {
   9110     return This->lpVtbl->TranslateAcceleratorGlobal(This,pMsg);
   9111 }
   9112 #endif
   9113 #endif
   9114 
   9115 #endif
   9116 
   9117 HRESULT STDMETHODCALLTYPE IInputObject2_TranslateAcceleratorGlobal_Proxy(
   9118     IInputObject2* This,
   9119     MSG *pMsg);
   9120 void __RPC_STUB IInputObject2_TranslateAcceleratorGlobal_Stub(
   9121     IRpcStubBuffer* This,
   9122     IRpcChannelBuffer* pRpcChannelBuffer,
   9123     PRPC_MESSAGE pRpcMessage,
   9124     DWORD* pdwStubPhase);
   9125 
   9126 #endif  /* __IInputObject2_INTERFACE_DEFINED__ */
   9127 
   9128 
   9129 /*****************************************************************************
   9130  * IShellIcon interface
   9131  */
   9132 #ifndef __IShellIcon_INTERFACE_DEFINED__
   9133 #define __IShellIcon_INTERFACE_DEFINED__
   9134 
   9135 DEFINE_GUID(IID_IShellIcon, 0x000214e5, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   9136 #if defined(__cplusplus) && !defined(CINTERFACE)
   9137 MIDL_INTERFACE("000214e5-0000-0000-c000-000000000046")
   9138 IShellIcon : public IUnknown
   9139 {
   9140     virtual HRESULT STDMETHODCALLTYPE GetIconOf(
   9141         PCUITEMID_CHILD pidl,
   9142         UINT flags,
   9143         int *pIconIndex) = 0;
   9144 
   9145 };
   9146 #ifdef __CRT_UUID_DECL
   9147 __CRT_UUID_DECL(IShellIcon, 0x000214e5, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   9148 #endif
   9149 #else
   9150 typedef struct IShellIconVtbl {
   9151     BEGIN_INTERFACE
   9152 
   9153     /*** IUnknown methods ***/
   9154     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9155         IShellIcon* This,
   9156         REFIID riid,
   9157         void **ppvObject);
   9158 
   9159     ULONG (STDMETHODCALLTYPE *AddRef)(
   9160         IShellIcon* This);
   9161 
   9162     ULONG (STDMETHODCALLTYPE *Release)(
   9163         IShellIcon* This);
   9164 
   9165     /*** IShellIcon methods ***/
   9166     HRESULT (STDMETHODCALLTYPE *GetIconOf)(
   9167         IShellIcon* This,
   9168         PCUITEMID_CHILD pidl,
   9169         UINT flags,
   9170         int *pIconIndex);
   9171 
   9172     END_INTERFACE
   9173 } IShellIconVtbl;
   9174 interface IShellIcon {
   9175     CONST_VTBL IShellIconVtbl* lpVtbl;
   9176 };
   9177 
   9178 #ifdef COBJMACROS
   9179 #ifndef WIDL_C_INLINE_WRAPPERS
   9180 /*** IUnknown methods ***/
   9181 #define IShellIcon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9182 #define IShellIcon_AddRef(This) (This)->lpVtbl->AddRef(This)
   9183 #define IShellIcon_Release(This) (This)->lpVtbl->Release(This)
   9184 /*** IShellIcon methods ***/
   9185 #define IShellIcon_GetIconOf(This,pidl,flags,pIconIndex) (This)->lpVtbl->GetIconOf(This,pidl,flags,pIconIndex)
   9186 #else
   9187 /*** IUnknown methods ***/
   9188 static FORCEINLINE HRESULT IShellIcon_QueryInterface(IShellIcon* This,REFIID riid,void **ppvObject) {
   9189     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9190 }
   9191 static FORCEINLINE ULONG IShellIcon_AddRef(IShellIcon* This) {
   9192     return This->lpVtbl->AddRef(This);
   9193 }
   9194 static FORCEINLINE ULONG IShellIcon_Release(IShellIcon* This) {
   9195     return This->lpVtbl->Release(This);
   9196 }
   9197 /*** IShellIcon methods ***/
   9198 static FORCEINLINE HRESULT IShellIcon_GetIconOf(IShellIcon* This,PCUITEMID_CHILD pidl,UINT flags,int *pIconIndex) {
   9199     return This->lpVtbl->GetIconOf(This,pidl,flags,pIconIndex);
   9200 }
   9201 #endif
   9202 #endif
   9203 
   9204 #endif
   9205 
   9206 HRESULT STDMETHODCALLTYPE IShellIcon_GetIconOf_Proxy(
   9207     IShellIcon* This,
   9208     PCUITEMID_CHILD pidl,
   9209     UINT flags,
   9210     int *pIconIndex);
   9211 void __RPC_STUB IShellIcon_GetIconOf_Stub(
   9212     IRpcStubBuffer* This,
   9213     IRpcChannelBuffer* pRpcChannelBuffer,
   9214     PRPC_MESSAGE pRpcMessage,
   9215     DWORD* pdwStubPhase);
   9216 
   9217 #endif  /* __IShellIcon_INTERFACE_DEFINED__ */
   9218 
   9219 
   9220 #define SBSP_DEFBROWSER 0x0000
   9221 #define SBSP_SAMEBROWSER 0x0001
   9222 #define SBSP_NEWBROWSER 0x0002
   9223 
   9224 #define SBSP_DEFMODE 0x0000
   9225 #define SBSP_OPENMODE 0x0010
   9226 #define SBSP_EXPLOREMODE 0x0020
   9227 #define SBSP_HELPMODE 0x0040
   9228 #define SBSP_NOTRANSFERHIST 0x0080
   9229 
   9230 #define SBSP_ABSOLUTE 0x0000
   9231 #define SBSP_RELATIVE 0x1000
   9232 #define SBSP_PARENT 0x2000
   9233 #define SBSP_NAVIGATEBACK 0x4000
   9234 #define SBSP_NAVIGATEFORWARD 0x8000
   9235 #define SBSP_ALLOW_AUTONAVIGATE 0x00010000
   9236 #if NTDDI_VERSION >= NTDDI_VISTA
   9237 #define SBSP_KEEPSAMETEMPLATE 0x00020000
   9238 #define SBSP_KEEPWORDWHEELTEXT 0x00040000
   9239 #define SBSP_ACTIVATE_NOFOCUS 0x00080000
   9240 #define SBSP_CREATENOHISTORY 0x00100000
   9241 #define SBSP_PLAYNOSOUND 0x00200000
   9242 #endif
   9243 #if _WIN32_IE >= _WIN32_IE_IE60SP2
   9244 #define SBSP_CALLERUNTRUSTED 0x00800000
   9245 #define SBSP_TRUSTFIRSTDOWNLOAD 0x01000000
   9246 #define SBSP_UNTRUSTEDFORDOWNLOAD 0x02000000
   9247 #endif
   9248 #define SBSP_NOAUTOSELECT 0x04000000
   9249 #define SBSP_WRITENOHISTORY 0x08000000
   9250 #if _WIN32_IE >= _WIN32_IE_IE60SP2
   9251 #define SBSP_TRUSTEDFORACTIVEX 0x10000000
   9252 #endif
   9253 #if _WIN32_IE >= _WIN32_IE_IE70
   9254 #define SBSP_FEEDNAVIGATION 0x20000000
   9255 #endif
   9256 #define SBSP_REDIRECT 0x40000000
   9257 #define SBSP_INITIATEDBYHLINKFRAME 0x80000000
   9258 
   9259 #define FCW_STATUS 0x0001
   9260 #define FCW_TOOLBAR 0x0002
   9261 #define FCW_TREE 0x0003
   9262 #define FCW_INTERNETBAR 0x0006
   9263 #define FCW_PROGRESS 0x0008
   9264 
   9265 #define FCT_MERGE 0x0001
   9266 #define FCT_CONFIGABLE 0x0002
   9267 #define FCT_ADDTOEND 0x0004
   9268 
   9269 #if 0
   9270 typedef LPARAM LPTBBUTTONSB;
   9271 #else
   9272 #include <commctrl.h>
   9273 
   9274 typedef LPTBBUTTON LPTBBUTTONSB;
   9275 #endif
   9276 
   9277 /*****************************************************************************
   9278  * IShellBrowser interface
   9279  */
   9280 #ifndef __IShellBrowser_INTERFACE_DEFINED__
   9281 #define __IShellBrowser_INTERFACE_DEFINED__
   9282 
   9283 DEFINE_GUID(IID_IShellBrowser, 0x000214e2, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   9284 #if defined(__cplusplus) && !defined(CINTERFACE)
   9285 MIDL_INTERFACE("000214e2-0000-0000-c000-000000000046")
   9286 IShellBrowser : public IOleWindow
   9287 {
   9288     virtual HRESULT STDMETHODCALLTYPE InsertMenusSB(
   9289         HMENU hmenuShared,
   9290         LPOLEMENUGROUPWIDTHS lpMenuWidths) = 0;
   9291 
   9292     virtual HRESULT STDMETHODCALLTYPE SetMenuSB(
   9293         HMENU hmenuShared,
   9294         HOLEMENU holemenuRes,
   9295         HWND hwndActiveObject) = 0;
   9296 
   9297     virtual HRESULT STDMETHODCALLTYPE RemoveMenusSB(
   9298         HMENU hmenuShared) = 0;
   9299 
   9300     virtual HRESULT STDMETHODCALLTYPE SetStatusTextSB(
   9301         LPCWSTR pszStatusText) = 0;
   9302 
   9303     virtual HRESULT STDMETHODCALLTYPE EnableModelessSB(
   9304         WINBOOL fEnable) = 0;
   9305 
   9306     virtual HRESULT STDMETHODCALLTYPE TranslateAcceleratorSB(
   9307         MSG *pmsg,
   9308         WORD wID) = 0;
   9309 
   9310     virtual HRESULT STDMETHODCALLTYPE BrowseObject(
   9311         PCUIDLIST_RELATIVE pidl,
   9312         UINT wFlags) = 0;
   9313 
   9314     virtual HRESULT STDMETHODCALLTYPE GetViewStateStream(
   9315         DWORD grfMode,
   9316         IStream **ppStrm) = 0;
   9317 
   9318     virtual HRESULT STDMETHODCALLTYPE GetControlWindow(
   9319         UINT id,
   9320         HWND *phwnd) = 0;
   9321 
   9322     virtual HRESULT STDMETHODCALLTYPE SendControlMsg(
   9323         UINT id,
   9324         UINT uMsg,
   9325         WPARAM wParam,
   9326         LPARAM lParam,
   9327         LRESULT *pret) = 0;
   9328 
   9329     virtual HRESULT STDMETHODCALLTYPE QueryActiveShellView(
   9330         IShellView **ppshv) = 0;
   9331 
   9332     virtual HRESULT STDMETHODCALLTYPE OnViewWindowActive(
   9333         IShellView *pshv) = 0;
   9334 
   9335     virtual HRESULT STDMETHODCALLTYPE SetToolbarItems(
   9336         LPTBBUTTONSB lpButtons,
   9337         UINT nButtons,
   9338         UINT uFlags) = 0;
   9339 
   9340 };
   9341 #ifdef __CRT_UUID_DECL
   9342 __CRT_UUID_DECL(IShellBrowser, 0x000214e2, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   9343 #endif
   9344 #else
   9345 typedef struct IShellBrowserVtbl {
   9346     BEGIN_INTERFACE
   9347 
   9348     /*** IUnknown methods ***/
   9349     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9350         IShellBrowser* This,
   9351         REFIID riid,
   9352         void **ppvObject);
   9353 
   9354     ULONG (STDMETHODCALLTYPE *AddRef)(
   9355         IShellBrowser* This);
   9356 
   9357     ULONG (STDMETHODCALLTYPE *Release)(
   9358         IShellBrowser* This);
   9359 
   9360     /*** IOleWindow methods ***/
   9361     HRESULT (STDMETHODCALLTYPE *GetWindow)(
   9362         IShellBrowser* This,
   9363         HWND *phwnd);
   9364 
   9365     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
   9366         IShellBrowser* This,
   9367         WINBOOL fEnterMode);
   9368 
   9369     /*** IShellBrowser methods ***/
   9370     HRESULT (STDMETHODCALLTYPE *InsertMenusSB)(
   9371         IShellBrowser* This,
   9372         HMENU hmenuShared,
   9373         LPOLEMENUGROUPWIDTHS lpMenuWidths);
   9374 
   9375     HRESULT (STDMETHODCALLTYPE *SetMenuSB)(
   9376         IShellBrowser* This,
   9377         HMENU hmenuShared,
   9378         HOLEMENU holemenuRes,
   9379         HWND hwndActiveObject);
   9380 
   9381     HRESULT (STDMETHODCALLTYPE *RemoveMenusSB)(
   9382         IShellBrowser* This,
   9383         HMENU hmenuShared);
   9384 
   9385     HRESULT (STDMETHODCALLTYPE *SetStatusTextSB)(
   9386         IShellBrowser* This,
   9387         LPCWSTR pszStatusText);
   9388 
   9389     HRESULT (STDMETHODCALLTYPE *EnableModelessSB)(
   9390         IShellBrowser* This,
   9391         WINBOOL fEnable);
   9392 
   9393     HRESULT (STDMETHODCALLTYPE *TranslateAcceleratorSB)(
   9394         IShellBrowser* This,
   9395         MSG *pmsg,
   9396         WORD wID);
   9397 
   9398     HRESULT (STDMETHODCALLTYPE *BrowseObject)(
   9399         IShellBrowser* This,
   9400         PCUIDLIST_RELATIVE pidl,
   9401         UINT wFlags);
   9402 
   9403     HRESULT (STDMETHODCALLTYPE *GetViewStateStream)(
   9404         IShellBrowser* This,
   9405         DWORD grfMode,
   9406         IStream **ppStrm);
   9407 
   9408     HRESULT (STDMETHODCALLTYPE *GetControlWindow)(
   9409         IShellBrowser* This,
   9410         UINT id,
   9411         HWND *phwnd);
   9412 
   9413     HRESULT (STDMETHODCALLTYPE *SendControlMsg)(
   9414         IShellBrowser* This,
   9415         UINT id,
   9416         UINT uMsg,
   9417         WPARAM wParam,
   9418         LPARAM lParam,
   9419         LRESULT *pret);
   9420 
   9421     HRESULT (STDMETHODCALLTYPE *QueryActiveShellView)(
   9422         IShellBrowser* This,
   9423         IShellView **ppshv);
   9424 
   9425     HRESULT (STDMETHODCALLTYPE *OnViewWindowActive)(
   9426         IShellBrowser* This,
   9427         IShellView *pshv);
   9428 
   9429     HRESULT (STDMETHODCALLTYPE *SetToolbarItems)(
   9430         IShellBrowser* This,
   9431         LPTBBUTTONSB lpButtons,
   9432         UINT nButtons,
   9433         UINT uFlags);
   9434 
   9435     END_INTERFACE
   9436 } IShellBrowserVtbl;
   9437 interface IShellBrowser {
   9438     CONST_VTBL IShellBrowserVtbl* lpVtbl;
   9439 };
   9440 
   9441 #ifdef COBJMACROS
   9442 #ifndef WIDL_C_INLINE_WRAPPERS
   9443 /*** IUnknown methods ***/
   9444 #define IShellBrowser_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9445 #define IShellBrowser_AddRef(This) (This)->lpVtbl->AddRef(This)
   9446 #define IShellBrowser_Release(This) (This)->lpVtbl->Release(This)
   9447 /*** IOleWindow methods ***/
   9448 #define IShellBrowser_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
   9449 #define IShellBrowser_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
   9450 /*** IShellBrowser methods ***/
   9451 #define IShellBrowser_InsertMenusSB(This,hmenuShared,lpMenuWidths) (This)->lpVtbl->InsertMenusSB(This,hmenuShared,lpMenuWidths)
   9452 #define IShellBrowser_SetMenuSB(This,hmenuShared,holemenuRes,hwndActiveObject) (This)->lpVtbl->SetMenuSB(This,hmenuShared,holemenuRes,hwndActiveObject)
   9453 #define IShellBrowser_RemoveMenusSB(This,hmenuShared) (This)->lpVtbl->RemoveMenusSB(This,hmenuShared)
   9454 #define IShellBrowser_SetStatusTextSB(This,pszStatusText) (This)->lpVtbl->SetStatusTextSB(This,pszStatusText)
   9455 #define IShellBrowser_EnableModelessSB(This,fEnable) (This)->lpVtbl->EnableModelessSB(This,fEnable)
   9456 #define IShellBrowser_TranslateAcceleratorSB(This,pmsg,wID) (This)->lpVtbl->TranslateAcceleratorSB(This,pmsg,wID)
   9457 #define IShellBrowser_BrowseObject(This,pidl,wFlags) (This)->lpVtbl->BrowseObject(This,pidl,wFlags)
   9458 #define IShellBrowser_GetViewStateStream(This,grfMode,ppStrm) (This)->lpVtbl->GetViewStateStream(This,grfMode,ppStrm)
   9459 #define IShellBrowser_GetControlWindow(This,id,phwnd) (This)->lpVtbl->GetControlWindow(This,id,phwnd)
   9460 #define IShellBrowser_SendControlMsg(This,id,uMsg,wParam,lParam,pret) (This)->lpVtbl->SendControlMsg(This,id,uMsg,wParam,lParam,pret)
   9461 #define IShellBrowser_QueryActiveShellView(This,ppshv) (This)->lpVtbl->QueryActiveShellView(This,ppshv)
   9462 #define IShellBrowser_OnViewWindowActive(This,pshv) (This)->lpVtbl->OnViewWindowActive(This,pshv)
   9463 #define IShellBrowser_SetToolbarItems(This,lpButtons,nButtons,uFlags) (This)->lpVtbl->SetToolbarItems(This,lpButtons,nButtons,uFlags)
   9464 #else
   9465 /*** IUnknown methods ***/
   9466 static FORCEINLINE HRESULT IShellBrowser_QueryInterface(IShellBrowser* This,REFIID riid,void **ppvObject) {
   9467     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9468 }
   9469 static FORCEINLINE ULONG IShellBrowser_AddRef(IShellBrowser* This) {
   9470     return This->lpVtbl->AddRef(This);
   9471 }
   9472 static FORCEINLINE ULONG IShellBrowser_Release(IShellBrowser* This) {
   9473     return This->lpVtbl->Release(This);
   9474 }
   9475 /*** IOleWindow methods ***/
   9476 static FORCEINLINE HRESULT IShellBrowser_GetWindow(IShellBrowser* This,HWND *phwnd) {
   9477     return This->lpVtbl->GetWindow(This,phwnd);
   9478 }
   9479 static FORCEINLINE HRESULT IShellBrowser_ContextSensitiveHelp(IShellBrowser* This,WINBOOL fEnterMode) {
   9480     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
   9481 }
   9482 /*** IShellBrowser methods ***/
   9483 static FORCEINLINE HRESULT IShellBrowser_InsertMenusSB(IShellBrowser* This,HMENU hmenuShared,LPOLEMENUGROUPWIDTHS lpMenuWidths) {
   9484     return This->lpVtbl->InsertMenusSB(This,hmenuShared,lpMenuWidths);
   9485 }
   9486 static FORCEINLINE HRESULT IShellBrowser_SetMenuSB(IShellBrowser* This,HMENU hmenuShared,HOLEMENU holemenuRes,HWND hwndActiveObject) {
   9487     return This->lpVtbl->SetMenuSB(This,hmenuShared,holemenuRes,hwndActiveObject);
   9488 }
   9489 static FORCEINLINE HRESULT IShellBrowser_RemoveMenusSB(IShellBrowser* This,HMENU hmenuShared) {
   9490     return This->lpVtbl->RemoveMenusSB(This,hmenuShared);
   9491 }
   9492 static FORCEINLINE HRESULT IShellBrowser_SetStatusTextSB(IShellBrowser* This,LPCWSTR pszStatusText) {
   9493     return This->lpVtbl->SetStatusTextSB(This,pszStatusText);
   9494 }
   9495 static FORCEINLINE HRESULT IShellBrowser_EnableModelessSB(IShellBrowser* This,WINBOOL fEnable) {
   9496     return This->lpVtbl->EnableModelessSB(This,fEnable);
   9497 }
   9498 static FORCEINLINE HRESULT IShellBrowser_TranslateAcceleratorSB(IShellBrowser* This,MSG *pmsg,WORD wID) {
   9499     return This->lpVtbl->TranslateAcceleratorSB(This,pmsg,wID);
   9500 }
   9501 static FORCEINLINE HRESULT IShellBrowser_BrowseObject(IShellBrowser* This,PCUIDLIST_RELATIVE pidl,UINT wFlags) {
   9502     return This->lpVtbl->BrowseObject(This,pidl,wFlags);
   9503 }
   9504 static FORCEINLINE HRESULT IShellBrowser_GetViewStateStream(IShellBrowser* This,DWORD grfMode,IStream **ppStrm) {
   9505     return This->lpVtbl->GetViewStateStream(This,grfMode,ppStrm);
   9506 }
   9507 static FORCEINLINE HRESULT IShellBrowser_GetControlWindow(IShellBrowser* This,UINT id,HWND *phwnd) {
   9508     return This->lpVtbl->GetControlWindow(This,id,phwnd);
   9509 }
   9510 static FORCEINLINE HRESULT IShellBrowser_SendControlMsg(IShellBrowser* This,UINT id,UINT uMsg,WPARAM wParam,LPARAM lParam,LRESULT *pret) {
   9511     return This->lpVtbl->SendControlMsg(This,id,uMsg,wParam,lParam,pret);
   9512 }
   9513 static FORCEINLINE HRESULT IShellBrowser_QueryActiveShellView(IShellBrowser* This,IShellView **ppshv) {
   9514     return This->lpVtbl->QueryActiveShellView(This,ppshv);
   9515 }
   9516 static FORCEINLINE HRESULT IShellBrowser_OnViewWindowActive(IShellBrowser* This,IShellView *pshv) {
   9517     return This->lpVtbl->OnViewWindowActive(This,pshv);
   9518 }
   9519 static FORCEINLINE HRESULT IShellBrowser_SetToolbarItems(IShellBrowser* This,LPTBBUTTONSB lpButtons,UINT nButtons,UINT uFlags) {
   9520     return This->lpVtbl->SetToolbarItems(This,lpButtons,nButtons,uFlags);
   9521 }
   9522 #endif
   9523 #endif
   9524 
   9525 #endif
   9526 
   9527 HRESULT STDMETHODCALLTYPE IShellBrowser_InsertMenusSB_Proxy(
   9528     IShellBrowser* This,
   9529     HMENU hmenuShared,
   9530     LPOLEMENUGROUPWIDTHS lpMenuWidths);
   9531 void __RPC_STUB IShellBrowser_InsertMenusSB_Stub(
   9532     IRpcStubBuffer* This,
   9533     IRpcChannelBuffer* pRpcChannelBuffer,
   9534     PRPC_MESSAGE pRpcMessage,
   9535     DWORD* pdwStubPhase);
   9536 HRESULT STDMETHODCALLTYPE IShellBrowser_SetMenuSB_Proxy(
   9537     IShellBrowser* This,
   9538     HMENU hmenuShared,
   9539     HOLEMENU holemenuRes,
   9540     HWND hwndActiveObject);
   9541 void __RPC_STUB IShellBrowser_SetMenuSB_Stub(
   9542     IRpcStubBuffer* This,
   9543     IRpcChannelBuffer* pRpcChannelBuffer,
   9544     PRPC_MESSAGE pRpcMessage,
   9545     DWORD* pdwStubPhase);
   9546 HRESULT STDMETHODCALLTYPE IShellBrowser_RemoveMenusSB_Proxy(
   9547     IShellBrowser* This,
   9548     HMENU hmenuShared);
   9549 void __RPC_STUB IShellBrowser_RemoveMenusSB_Stub(
   9550     IRpcStubBuffer* This,
   9551     IRpcChannelBuffer* pRpcChannelBuffer,
   9552     PRPC_MESSAGE pRpcMessage,
   9553     DWORD* pdwStubPhase);
   9554 HRESULT STDMETHODCALLTYPE IShellBrowser_SetStatusTextSB_Proxy(
   9555     IShellBrowser* This,
   9556     LPCWSTR pszStatusText);
   9557 void __RPC_STUB IShellBrowser_SetStatusTextSB_Stub(
   9558     IRpcStubBuffer* This,
   9559     IRpcChannelBuffer* pRpcChannelBuffer,
   9560     PRPC_MESSAGE pRpcMessage,
   9561     DWORD* pdwStubPhase);
   9562 HRESULT STDMETHODCALLTYPE IShellBrowser_EnableModelessSB_Proxy(
   9563     IShellBrowser* This,
   9564     WINBOOL fEnable);
   9565 void __RPC_STUB IShellBrowser_EnableModelessSB_Stub(
   9566     IRpcStubBuffer* This,
   9567     IRpcChannelBuffer* pRpcChannelBuffer,
   9568     PRPC_MESSAGE pRpcMessage,
   9569     DWORD* pdwStubPhase);
   9570 HRESULT STDMETHODCALLTYPE IShellBrowser_TranslateAcceleratorSB_Proxy(
   9571     IShellBrowser* This,
   9572     MSG *pmsg,
   9573     WORD wID);
   9574 void __RPC_STUB IShellBrowser_TranslateAcceleratorSB_Stub(
   9575     IRpcStubBuffer* This,
   9576     IRpcChannelBuffer* pRpcChannelBuffer,
   9577     PRPC_MESSAGE pRpcMessage,
   9578     DWORD* pdwStubPhase);
   9579 HRESULT STDMETHODCALLTYPE IShellBrowser_BrowseObject_Proxy(
   9580     IShellBrowser* This,
   9581     PCUIDLIST_RELATIVE pidl,
   9582     UINT wFlags);
   9583 void __RPC_STUB IShellBrowser_BrowseObject_Stub(
   9584     IRpcStubBuffer* This,
   9585     IRpcChannelBuffer* pRpcChannelBuffer,
   9586     PRPC_MESSAGE pRpcMessage,
   9587     DWORD* pdwStubPhase);
   9588 HRESULT STDMETHODCALLTYPE IShellBrowser_GetViewStateStream_Proxy(
   9589     IShellBrowser* This,
   9590     DWORD grfMode,
   9591     IStream **ppStrm);
   9592 void __RPC_STUB IShellBrowser_GetViewStateStream_Stub(
   9593     IRpcStubBuffer* This,
   9594     IRpcChannelBuffer* pRpcChannelBuffer,
   9595     PRPC_MESSAGE pRpcMessage,
   9596     DWORD* pdwStubPhase);
   9597 HRESULT STDMETHODCALLTYPE IShellBrowser_GetControlWindow_Proxy(
   9598     IShellBrowser* This,
   9599     UINT id,
   9600     HWND *phwnd);
   9601 void __RPC_STUB IShellBrowser_GetControlWindow_Stub(
   9602     IRpcStubBuffer* This,
   9603     IRpcChannelBuffer* pRpcChannelBuffer,
   9604     PRPC_MESSAGE pRpcMessage,
   9605     DWORD* pdwStubPhase);
   9606 HRESULT STDMETHODCALLTYPE IShellBrowser_QueryActiveShellView_Proxy(
   9607     IShellBrowser* This,
   9608     IShellView **ppshv);
   9609 void __RPC_STUB IShellBrowser_QueryActiveShellView_Stub(
   9610     IRpcStubBuffer* This,
   9611     IRpcChannelBuffer* pRpcChannelBuffer,
   9612     PRPC_MESSAGE pRpcMessage,
   9613     DWORD* pdwStubPhase);
   9614 HRESULT STDMETHODCALLTYPE IShellBrowser_OnViewWindowActive_Proxy(
   9615     IShellBrowser* This,
   9616     IShellView *pshv);
   9617 void __RPC_STUB IShellBrowser_OnViewWindowActive_Stub(
   9618     IRpcStubBuffer* This,
   9619     IRpcChannelBuffer* pRpcChannelBuffer,
   9620     PRPC_MESSAGE pRpcMessage,
   9621     DWORD* pdwStubPhase);
   9622 
   9623 #endif  /* __IShellBrowser_INTERFACE_DEFINED__ */
   9624 
   9625 
   9626 typedef IShellBrowser *LPSHELLBROWSER;
   9627 
   9628 /*****************************************************************************
   9629  * IProfferService interface
   9630  */
   9631 #ifndef __IProfferService_INTERFACE_DEFINED__
   9632 #define __IProfferService_INTERFACE_DEFINED__
   9633 
   9634 DEFINE_GUID(IID_IProfferService, 0xcb728b20, 0xf786, 0x11ce, 0x92,0xad, 0x00,0xaa,0x00,0xa7,0x4c,0xd0);
   9635 #if defined(__cplusplus) && !defined(CINTERFACE)
   9636 MIDL_INTERFACE("cb728b20-f786-11ce-92ad-00aa00a74cd0")
   9637 IProfferService : public IUnknown
   9638 {
   9639     virtual HRESULT STDMETHODCALLTYPE ProfferService(
   9640         REFGUID guidService,
   9641         IServiceProvider *psp,
   9642         DWORD *pdwCookie) = 0;
   9643 
   9644     virtual HRESULT STDMETHODCALLTYPE RevokeService(
   9645         DWORD dwCookie) = 0;
   9646 
   9647 };
   9648 #ifdef __CRT_UUID_DECL
   9649 __CRT_UUID_DECL(IProfferService, 0xcb728b20, 0xf786, 0x11ce, 0x92,0xad, 0x00,0xaa,0x00,0xa7,0x4c,0xd0)
   9650 #endif
   9651 #else
   9652 typedef struct IProfferServiceVtbl {
   9653     BEGIN_INTERFACE
   9654 
   9655     /*** IUnknown methods ***/
   9656     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9657         IProfferService* This,
   9658         REFIID riid,
   9659         void **ppvObject);
   9660 
   9661     ULONG (STDMETHODCALLTYPE *AddRef)(
   9662         IProfferService* This);
   9663 
   9664     ULONG (STDMETHODCALLTYPE *Release)(
   9665         IProfferService* This);
   9666 
   9667     /*** IProfferService methods ***/
   9668     HRESULT (STDMETHODCALLTYPE *ProfferService)(
   9669         IProfferService* This,
   9670         REFGUID guidService,
   9671         IServiceProvider *psp,
   9672         DWORD *pdwCookie);
   9673 
   9674     HRESULT (STDMETHODCALLTYPE *RevokeService)(
   9675         IProfferService* This,
   9676         DWORD dwCookie);
   9677 
   9678     END_INTERFACE
   9679 } IProfferServiceVtbl;
   9680 interface IProfferService {
   9681     CONST_VTBL IProfferServiceVtbl* lpVtbl;
   9682 };
   9683 
   9684 #ifdef COBJMACROS
   9685 #ifndef WIDL_C_INLINE_WRAPPERS
   9686 /*** IUnknown methods ***/
   9687 #define IProfferService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9688 #define IProfferService_AddRef(This) (This)->lpVtbl->AddRef(This)
   9689 #define IProfferService_Release(This) (This)->lpVtbl->Release(This)
   9690 /*** IProfferService methods ***/
   9691 #define IProfferService_ProfferService(This,guidService,psp,pdwCookie) (This)->lpVtbl->ProfferService(This,guidService,psp,pdwCookie)
   9692 #define IProfferService_RevokeService(This,dwCookie) (This)->lpVtbl->RevokeService(This,dwCookie)
   9693 #else
   9694 /*** IUnknown methods ***/
   9695 static FORCEINLINE HRESULT IProfferService_QueryInterface(IProfferService* This,REFIID riid,void **ppvObject) {
   9696     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9697 }
   9698 static FORCEINLINE ULONG IProfferService_AddRef(IProfferService* This) {
   9699     return This->lpVtbl->AddRef(This);
   9700 }
   9701 static FORCEINLINE ULONG IProfferService_Release(IProfferService* This) {
   9702     return This->lpVtbl->Release(This);
   9703 }
   9704 /*** IProfferService methods ***/
   9705 static FORCEINLINE HRESULT IProfferService_ProfferService(IProfferService* This,REFGUID guidService,IServiceProvider *psp,DWORD *pdwCookie) {
   9706     return This->lpVtbl->ProfferService(This,guidService,psp,pdwCookie);
   9707 }
   9708 static FORCEINLINE HRESULT IProfferService_RevokeService(IProfferService* This,DWORD dwCookie) {
   9709     return This->lpVtbl->RevokeService(This,dwCookie);
   9710 }
   9711 #endif
   9712 #endif
   9713 
   9714 #endif
   9715 
   9716 HRESULT STDMETHODCALLTYPE IProfferService_ProfferService_Proxy(
   9717     IProfferService* This,
   9718     REFGUID guidService,
   9719     IServiceProvider *psp,
   9720     DWORD *pdwCookie);
   9721 void __RPC_STUB IProfferService_ProfferService_Stub(
   9722     IRpcStubBuffer* This,
   9723     IRpcChannelBuffer* pRpcChannelBuffer,
   9724     PRPC_MESSAGE pRpcMessage,
   9725     DWORD* pdwStubPhase);
   9726 HRESULT STDMETHODCALLTYPE IProfferService_RevokeService_Proxy(
   9727     IProfferService* This,
   9728     DWORD dwCookie);
   9729 void __RPC_STUB IProfferService_RevokeService_Stub(
   9730     IRpcStubBuffer* This,
   9731     IRpcChannelBuffer* pRpcChannelBuffer,
   9732     PRPC_MESSAGE pRpcMessage,
   9733     DWORD* pdwStubPhase);
   9734 
   9735 #endif  /* __IProfferService_INTERFACE_DEFINED__ */
   9736 
   9737 
   9738 #define SID_SProfferService IID_IProfferService
   9739 #define STR_DONT_RESOLVE_LINK L"Don't Resolve Link"
   9740 #define STR_GET_ASYNC_HANDLER L"GetAsyncHandler"
   9741 
   9742 /*****************************************************************************
   9743  * IShellItem interface
   9744  */
   9745 #ifndef __IShellItem_INTERFACE_DEFINED__
   9746 #define __IShellItem_INTERFACE_DEFINED__
   9747 
   9748 typedef enum _SIGDN {
   9749     SIGDN_NORMALDISPLAY = 0x0,
   9750     SIGDN_PARENTRELATIVEPARSING = (int)0x80018001,
   9751     SIGDN_DESKTOPABSOLUTEPARSING = (int)0x80028000,
   9752     SIGDN_PARENTRELATIVEEDITING = (int)0x80031001,
   9753     SIGDN_DESKTOPABSOLUTEEDITING = (int)0x8004c000,
   9754     SIGDN_FILESYSPATH = (int)0x80058000,
   9755     SIGDN_URL = (int)0x80068000,
   9756     SIGDN_PARENTRELATIVEFORADDRESSBAR = (int)0x8007c001,
   9757     SIGDN_PARENTRELATIVE = (int)0x80080001,
   9758     SIGDN_PARENTRELATIVEFORUI = (int)0x80094001
   9759 } SIGDN;
   9760 
   9761 enum _SICHINTF {
   9762     SICHINT_DISPLAY = 0x0,
   9763     SICHINT_ALLFIELDS = (int)0x80000000,
   9764     SICHINT_CANONICAL = 0x10000000,
   9765     SICHINT_TEST_FILESYSPATH_IF_NOT_EQUAL = 0x20000000
   9766 };
   9767 
   9768 
   9769 typedef DWORD SICHINTF;
   9770 
   9771 DEFINE_GUID(IID_IShellItem, 0x43826d1e, 0xe718, 0x42ee, 0xbc,0x55, 0xa1,0xe2,0x61,0xc3,0x7b,0xfe);
   9772 #if defined(__cplusplus) && !defined(CINTERFACE)
   9773 MIDL_INTERFACE("43826d1e-e718-42ee-bc55-a1e261c37bfe")
   9774 IShellItem : public IUnknown
   9775 {
   9776     virtual HRESULT STDMETHODCALLTYPE BindToHandler(
   9777         IBindCtx *pbc,
   9778         REFGUID bhid,
   9779         REFIID riid,
   9780         void **ppv) = 0;
   9781 
   9782     virtual HRESULT STDMETHODCALLTYPE GetParent(
   9783         IShellItem **ppsi) = 0;
   9784 
   9785     virtual HRESULT STDMETHODCALLTYPE GetDisplayName(
   9786         SIGDN sigdnName,
   9787         LPWSTR *ppszName) = 0;
   9788 
   9789     virtual HRESULT STDMETHODCALLTYPE GetAttributes(
   9790         SFGAOF sfgaoMask,
   9791         SFGAOF *psfgaoAttribs) = 0;
   9792 
   9793     virtual HRESULT STDMETHODCALLTYPE Compare(
   9794         IShellItem *psi,
   9795         SICHINTF hint,
   9796         int *piOrder) = 0;
   9797 
   9798 };
   9799 #ifdef __CRT_UUID_DECL
   9800 __CRT_UUID_DECL(IShellItem, 0x43826d1e, 0xe718, 0x42ee, 0xbc,0x55, 0xa1,0xe2,0x61,0xc3,0x7b,0xfe)
   9801 #endif
   9802 #else
   9803 typedef struct IShellItemVtbl {
   9804     BEGIN_INTERFACE
   9805 
   9806     /*** IUnknown methods ***/
   9807     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9808         IShellItem* This,
   9809         REFIID riid,
   9810         void **ppvObject);
   9811 
   9812     ULONG (STDMETHODCALLTYPE *AddRef)(
   9813         IShellItem* This);
   9814 
   9815     ULONG (STDMETHODCALLTYPE *Release)(
   9816         IShellItem* This);
   9817 
   9818     /*** IShellItem methods ***/
   9819     HRESULT (STDMETHODCALLTYPE *BindToHandler)(
   9820         IShellItem* This,
   9821         IBindCtx *pbc,
   9822         REFGUID bhid,
   9823         REFIID riid,
   9824         void **ppv);
   9825 
   9826     HRESULT (STDMETHODCALLTYPE *GetParent)(
   9827         IShellItem* This,
   9828         IShellItem **ppsi);
   9829 
   9830     HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
   9831         IShellItem* This,
   9832         SIGDN sigdnName,
   9833         LPWSTR *ppszName);
   9834 
   9835     HRESULT (STDMETHODCALLTYPE *GetAttributes)(
   9836         IShellItem* This,
   9837         SFGAOF sfgaoMask,
   9838         SFGAOF *psfgaoAttribs);
   9839 
   9840     HRESULT (STDMETHODCALLTYPE *Compare)(
   9841         IShellItem* This,
   9842         IShellItem *psi,
   9843         SICHINTF hint,
   9844         int *piOrder);
   9845 
   9846     END_INTERFACE
   9847 } IShellItemVtbl;
   9848 interface IShellItem {
   9849     CONST_VTBL IShellItemVtbl* lpVtbl;
   9850 };
   9851 
   9852 #ifdef COBJMACROS
   9853 #ifndef WIDL_C_INLINE_WRAPPERS
   9854 /*** IUnknown methods ***/
   9855 #define IShellItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9856 #define IShellItem_AddRef(This) (This)->lpVtbl->AddRef(This)
   9857 #define IShellItem_Release(This) (This)->lpVtbl->Release(This)
   9858 /*** IShellItem methods ***/
   9859 #define IShellItem_BindToHandler(This,pbc,bhid,riid,ppv) (This)->lpVtbl->BindToHandler(This,pbc,bhid,riid,ppv)
   9860 #define IShellItem_GetParent(This,ppsi) (This)->lpVtbl->GetParent(This,ppsi)
   9861 #define IShellItem_GetDisplayName(This,sigdnName,ppszName) (This)->lpVtbl->GetDisplayName(This,sigdnName,ppszName)
   9862 #define IShellItem_GetAttributes(This,sfgaoMask,psfgaoAttribs) (This)->lpVtbl->GetAttributes(This,sfgaoMask,psfgaoAttribs)
   9863 #define IShellItem_Compare(This,psi,hint,piOrder) (This)->lpVtbl->Compare(This,psi,hint,piOrder)
   9864 #else
   9865 /*** IUnknown methods ***/
   9866 static FORCEINLINE HRESULT IShellItem_QueryInterface(IShellItem* This,REFIID riid,void **ppvObject) {
   9867     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9868 }
   9869 static FORCEINLINE ULONG IShellItem_AddRef(IShellItem* This) {
   9870     return This->lpVtbl->AddRef(This);
   9871 }
   9872 static FORCEINLINE ULONG IShellItem_Release(IShellItem* This) {
   9873     return This->lpVtbl->Release(This);
   9874 }
   9875 /*** IShellItem methods ***/
   9876 static FORCEINLINE HRESULT IShellItem_BindToHandler(IShellItem* This,IBindCtx *pbc,REFGUID bhid,REFIID riid,void **ppv) {
   9877     return This->lpVtbl->BindToHandler(This,pbc,bhid,riid,ppv);
   9878 }
   9879 static FORCEINLINE HRESULT IShellItem_GetParent(IShellItem* This,IShellItem **ppsi) {
   9880     return This->lpVtbl->GetParent(This,ppsi);
   9881 }
   9882 static FORCEINLINE HRESULT IShellItem_GetDisplayName(IShellItem* This,SIGDN sigdnName,LPWSTR *ppszName) {
   9883     return This->lpVtbl->GetDisplayName(This,sigdnName,ppszName);
   9884 }
   9885 static FORCEINLINE HRESULT IShellItem_GetAttributes(IShellItem* This,SFGAOF sfgaoMask,SFGAOF *psfgaoAttribs) {
   9886     return This->lpVtbl->GetAttributes(This,sfgaoMask,psfgaoAttribs);
   9887 }
   9888 static FORCEINLINE HRESULT IShellItem_Compare(IShellItem* This,IShellItem *psi,SICHINTF hint,int *piOrder) {
   9889     return This->lpVtbl->Compare(This,psi,hint,piOrder);
   9890 }
   9891 #endif
   9892 #endif
   9893 
   9894 #endif
   9895 
   9896 HRESULT STDMETHODCALLTYPE IShellItem_BindToHandler_Proxy(
   9897     IShellItem* This,
   9898     IBindCtx *pbc,
   9899     REFGUID bhid,
   9900     REFIID riid,
   9901     void **ppv);
   9902 void __RPC_STUB IShellItem_BindToHandler_Stub(
   9903     IRpcStubBuffer* This,
   9904     IRpcChannelBuffer* pRpcChannelBuffer,
   9905     PRPC_MESSAGE pRpcMessage,
   9906     DWORD* pdwStubPhase);
   9907 HRESULT STDMETHODCALLTYPE IShellItem_GetParent_Proxy(
   9908     IShellItem* This,
   9909     IShellItem **ppsi);
   9910 void __RPC_STUB IShellItem_GetParent_Stub(
   9911     IRpcStubBuffer* This,
   9912     IRpcChannelBuffer* pRpcChannelBuffer,
   9913     PRPC_MESSAGE pRpcMessage,
   9914     DWORD* pdwStubPhase);
   9915 HRESULT STDMETHODCALLTYPE IShellItem_GetDisplayName_Proxy(
   9916     IShellItem* This,
   9917     SIGDN sigdnName,
   9918     LPWSTR *ppszName);
   9919 void __RPC_STUB IShellItem_GetDisplayName_Stub(
   9920     IRpcStubBuffer* This,
   9921     IRpcChannelBuffer* pRpcChannelBuffer,
   9922     PRPC_MESSAGE pRpcMessage,
   9923     DWORD* pdwStubPhase);
   9924 HRESULT STDMETHODCALLTYPE IShellItem_GetAttributes_Proxy(
   9925     IShellItem* This,
   9926     SFGAOF sfgaoMask,
   9927     SFGAOF *psfgaoAttribs);
   9928 void __RPC_STUB IShellItem_GetAttributes_Stub(
   9929     IRpcStubBuffer* This,
   9930     IRpcChannelBuffer* pRpcChannelBuffer,
   9931     PRPC_MESSAGE pRpcMessage,
   9932     DWORD* pdwStubPhase);
   9933 HRESULT STDMETHODCALLTYPE IShellItem_Compare_Proxy(
   9934     IShellItem* This,
   9935     IShellItem *psi,
   9936     SICHINTF hint,
   9937     int *piOrder);
   9938 void __RPC_STUB IShellItem_Compare_Stub(
   9939     IRpcStubBuffer* This,
   9940     IRpcChannelBuffer* pRpcChannelBuffer,
   9941     PRPC_MESSAGE pRpcMessage,
   9942     DWORD* pdwStubPhase);
   9943 
   9944 #endif  /* __IShellItem_INTERFACE_DEFINED__ */
   9945 
   9946 
   9947 SHSTDAPI_(PIDLIST_ABSOLUTE) SHSimpleIDListFromPath(PCWSTR pszPath);
   9948 
   9949 #if _WIN32_IE >= _WIN32_IE_IE70
   9950   SHSTDAPI SHCreateItemFromIDList(PCIDLIST_ABSOLUTE pidl, REFIID riid, void **ppv);
   9951   SHSTDAPI SHCreateItemFromParsingName(PCWSTR pszPath, IBindCtx *pbc, REFIID riid, void **ppv);
   9952   SHSTDAPI SHCreateItemWithParent(PCIDLIST_ABSOLUTE pidlParent, IShellFolder *psfParent, PCUITEMID_CHILD pidl, REFIID riid, void **ppvItem);
   9953   SHSTDAPI SHCreateItemFromRelativeName(IShellItem *psiParent, PCWSTR pszName, IBindCtx *pbc, REFIID riid, void **ppv);
   9954 #endif
   9955 #if NTDDI_VERSION >= NTDDI_VISTA
   9956   SHSTDAPI SHCreateItemInKnownFolder(REFKNOWNFOLDERID kfid, DWORD dwKFFlags, PCWSTR pszItem, REFIID riid, void **ppv);
   9957   SHSTDAPI SHGetIDListFromObject(IUnknown *punk, PIDLIST_ABSOLUTE *ppidl);
   9958   SHSTDAPI SHGetItemFromObject(IUnknown *punk, REFIID riid, void **ppv);
   9959   SHSTDAPI SHGetPropertyStoreFromIDList(PCIDLIST_ABSOLUTE pidl, GETPROPERTYSTOREFLAGS flags, REFIID riid, void **ppv);
   9960   SHSTDAPI SHGetPropertyStoreFromParsingName(PCWSTR pszPath, IBindCtx *pbc, GETPROPERTYSTOREFLAGS flags, REFIID riid, void **ppv);
   9961   SHSTDAPI SHGetNameFromIDList(PCIDLIST_ABSOLUTE pidl, SIGDN sigdnName, PWSTR *ppszName);
   9962 #endif
   9963 #if NTDDI_VERSION >= NTDDI_WIN7
   9964 typedef enum DATAOBJ_GET_ITEM_FLAGS {
   9965     DOGIF_DEFAULT = 0x0,
   9966     DOGIF_TRAVERSE_LINK = 0x1,
   9967     DOGIF_NO_HDROP = 0x2,
   9968     DOGIF_NO_URL = 0x4,
   9969     DOGIF_ONLY_IF_ONE = 0x8
   9970 } DATAOBJ_GET_ITEM_FLAGS;
   9971 
   9972 DEFINE_ENUM_FLAG_OPERATORS(DATAOBJ_GET_ITEM_FLAGS)
   9973 
   9974   STDAPI SHGetItemFromDataObject(IDataObject *pdtobj, DATAOBJ_GET_ITEM_FLAGS dwFlags, REFIID riid, void **ppv);
   9975 #endif
   9976 
   9977 #define STR_GPS_HANDLERPROPERTIESONLY L"GPS_HANDLERPROPERTIESONLY"
   9978 #define STR_GPS_FASTPROPERTIESONLY L"GPS_FASTPROPERTIESONLY"
   9979 #define STR_GPS_OPENSLOWITEM L"GPS_OPENSLOWITEM"
   9980 #define STR_GPS_DELAYCREATION L"GPS_DELAYCREATION"
   9981 #define STR_GPS_BESTEFFORT L"GPS_BESTEFFORT"
   9982 #define STR_GPS_NO_OPLOCK L"GPS_NO_OPLOCK"
   9983 
   9984 /*****************************************************************************
   9985  * IShellItem2 interface
   9986  */
   9987 #ifndef __IShellItem2_INTERFACE_DEFINED__
   9988 #define __IShellItem2_INTERFACE_DEFINED__
   9989 
   9990 DEFINE_GUID(IID_IShellItem2, 0x7e9fb0d3, 0x919f, 0x4307, 0xab,0x2e, 0x9b,0x18,0x60,0x31,0x0c,0x93);
   9991 #if defined(__cplusplus) && !defined(CINTERFACE)
   9992 MIDL_INTERFACE("7e9fb0d3-919f-4307-ab2e-9b1860310c93")
   9993 IShellItem2 : public IShellItem
   9994 {
   9995     virtual HRESULT STDMETHODCALLTYPE GetPropertyStore(
   9996         GETPROPERTYSTOREFLAGS flags,
   9997         REFIID riid,
   9998         void **ppv) = 0;
   9999 
   10000     virtual HRESULT STDMETHODCALLTYPE GetPropertyStoreWithCreateObject(
   10001         GETPROPERTYSTOREFLAGS flags,
   10002         IUnknown *punkCreateObject,
   10003         REFIID riid,
   10004         void **ppv) = 0;
   10005 
   10006     virtual HRESULT STDMETHODCALLTYPE GetPropertyStoreForKeys(
   10007         const PROPERTYKEY *rgKeys,
   10008         UINT cKeys,
   10009         GETPROPERTYSTOREFLAGS flags,
   10010         REFIID riid,
   10011         void **ppv) = 0;
   10012 
   10013     virtual HRESULT STDMETHODCALLTYPE GetPropertyDescriptionList(
   10014         REFPROPERTYKEY keyType,
   10015         REFIID riid,
   10016         void **ppv) = 0;
   10017 
   10018     virtual HRESULT STDMETHODCALLTYPE Update(
   10019         IBindCtx *pbc) = 0;
   10020 
   10021     virtual HRESULT STDMETHODCALLTYPE GetProperty(
   10022         REFPROPERTYKEY key,
   10023         PROPVARIANT *ppropvar) = 0;
   10024 
   10025     virtual HRESULT STDMETHODCALLTYPE GetCLSID(
   10026         REFPROPERTYKEY key,
   10027         CLSID *pclsid) = 0;
   10028 
   10029     virtual HRESULT STDMETHODCALLTYPE GetFileTime(
   10030         REFPROPERTYKEY key,
   10031         FILETIME *pft) = 0;
   10032 
   10033     virtual HRESULT STDMETHODCALLTYPE GetInt32(
   10034         REFPROPERTYKEY key,
   10035         int *pi) = 0;
   10036 
   10037     virtual HRESULT STDMETHODCALLTYPE GetString(
   10038         REFPROPERTYKEY key,
   10039         LPWSTR *ppsz) = 0;
   10040 
   10041     virtual HRESULT STDMETHODCALLTYPE GetUInt32(
   10042         REFPROPERTYKEY key,
   10043         ULONG *pui) = 0;
   10044 
   10045     virtual HRESULT STDMETHODCALLTYPE GetUInt64(
   10046         REFPROPERTYKEY key,
   10047         ULONGLONG *pull) = 0;
   10048 
   10049     virtual HRESULT STDMETHODCALLTYPE GetBool(
   10050         REFPROPERTYKEY key,
   10051         WINBOOL *pf) = 0;
   10052 
   10053 };
   10054 #ifdef __CRT_UUID_DECL
   10055 __CRT_UUID_DECL(IShellItem2, 0x7e9fb0d3, 0x919f, 0x4307, 0xab,0x2e, 0x9b,0x18,0x60,0x31,0x0c,0x93)
   10056 #endif
   10057 #else
   10058 typedef struct IShellItem2Vtbl {
   10059     BEGIN_INTERFACE
   10060 
   10061     /*** IUnknown methods ***/
   10062     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   10063         IShellItem2* This,
   10064         REFIID riid,
   10065         void **ppvObject);
   10066 
   10067     ULONG (STDMETHODCALLTYPE *AddRef)(
   10068         IShellItem2* This);
   10069 
   10070     ULONG (STDMETHODCALLTYPE *Release)(
   10071         IShellItem2* This);
   10072 
   10073     /*** IShellItem methods ***/
   10074     HRESULT (STDMETHODCALLTYPE *BindToHandler)(
   10075         IShellItem2* This,
   10076         IBindCtx *pbc,
   10077         REFGUID bhid,
   10078         REFIID riid,
   10079         void **ppv);
   10080 
   10081     HRESULT (STDMETHODCALLTYPE *GetParent)(
   10082         IShellItem2* This,
   10083         IShellItem **ppsi);
   10084 
   10085     HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
   10086         IShellItem2* This,
   10087         SIGDN sigdnName,
   10088         LPWSTR *ppszName);
   10089 
   10090     HRESULT (STDMETHODCALLTYPE *GetAttributes)(
   10091         IShellItem2* This,
   10092         SFGAOF sfgaoMask,
   10093         SFGAOF *psfgaoAttribs);
   10094 
   10095     HRESULT (STDMETHODCALLTYPE *Compare)(
   10096         IShellItem2* This,
   10097         IShellItem *psi,
   10098         SICHINTF hint,
   10099         int *piOrder);
   10100 
   10101     /*** IShellItem2 methods ***/
   10102     HRESULT (STDMETHODCALLTYPE *GetPropertyStore)(
   10103         IShellItem2* This,
   10104         GETPROPERTYSTOREFLAGS flags,
   10105         REFIID riid,
   10106         void **ppv);
   10107 
   10108     HRESULT (STDMETHODCALLTYPE *GetPropertyStoreWithCreateObject)(
   10109         IShellItem2* This,
   10110         GETPROPERTYSTOREFLAGS flags,
   10111         IUnknown *punkCreateObject,
   10112         REFIID riid,
   10113         void **ppv);
   10114 
   10115     HRESULT (STDMETHODCALLTYPE *GetPropertyStoreForKeys)(
   10116         IShellItem2* This,
   10117         const PROPERTYKEY *rgKeys,
   10118         UINT cKeys,
   10119         GETPROPERTYSTOREFLAGS flags,
   10120         REFIID riid,
   10121         void **ppv);
   10122 
   10123     HRESULT (STDMETHODCALLTYPE *GetPropertyDescriptionList)(
   10124         IShellItem2* This,
   10125         REFPROPERTYKEY keyType,
   10126         REFIID riid,
   10127         void **ppv);
   10128 
   10129     HRESULT (STDMETHODCALLTYPE *Update)(
   10130         IShellItem2* This,
   10131         IBindCtx *pbc);
   10132 
   10133     HRESULT (STDMETHODCALLTYPE *GetProperty)(
   10134         IShellItem2* This,
   10135         REFPROPERTYKEY key,
   10136         PROPVARIANT *ppropvar);
   10137 
   10138     HRESULT (STDMETHODCALLTYPE *GetCLSID)(
   10139         IShellItem2* This,
   10140         REFPROPERTYKEY key,
   10141         CLSID *pclsid);
   10142 
   10143     HRESULT (STDMETHODCALLTYPE *GetFileTime)(
   10144         IShellItem2* This,
   10145         REFPROPERTYKEY key,
   10146         FILETIME *pft);
   10147 
   10148     HRESULT (STDMETHODCALLTYPE *GetInt32)(
   10149         IShellItem2* This,
   10150         REFPROPERTYKEY key,
   10151         int *pi);
   10152 
   10153     HRESULT (STDMETHODCALLTYPE *GetString)(
   10154         IShellItem2* This,
   10155         REFPROPERTYKEY key,
   10156         LPWSTR *ppsz);
   10157 
   10158     HRESULT (STDMETHODCALLTYPE *GetUInt32)(
   10159         IShellItem2* This,
   10160         REFPROPERTYKEY key,
   10161         ULONG *pui);
   10162 
   10163     HRESULT (STDMETHODCALLTYPE *GetUInt64)(
   10164         IShellItem2* This,
   10165         REFPROPERTYKEY key,
   10166         ULONGLONG *pull);
   10167 
   10168     HRESULT (STDMETHODCALLTYPE *GetBool)(
   10169         IShellItem2* This,
   10170         REFPROPERTYKEY key,
   10171         WINBOOL *pf);
   10172 
   10173     END_INTERFACE
   10174 } IShellItem2Vtbl;
   10175 interface IShellItem2 {
   10176     CONST_VTBL IShellItem2Vtbl* lpVtbl;
   10177 };
   10178 
   10179 #ifdef COBJMACROS
   10180 #ifndef WIDL_C_INLINE_WRAPPERS
   10181 /*** IUnknown methods ***/
   10182 #define IShellItem2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   10183 #define IShellItem2_AddRef(This) (This)->lpVtbl->AddRef(This)
   10184 #define IShellItem2_Release(This) (This)->lpVtbl->Release(This)
   10185 /*** IShellItem methods ***/
   10186 #define IShellItem2_BindToHandler(This,pbc,bhid,riid,ppv) (This)->lpVtbl->BindToHandler(This,pbc,bhid,riid,ppv)
   10187 #define IShellItem2_GetParent(This,ppsi) (This)->lpVtbl->GetParent(This,ppsi)
   10188 #define IShellItem2_GetDisplayName(This,sigdnName,ppszName) (This)->lpVtbl->GetDisplayName(This,sigdnName,ppszName)
   10189 #define IShellItem2_GetAttributes(This,sfgaoMask,psfgaoAttribs) (This)->lpVtbl->GetAttributes(This,sfgaoMask,psfgaoAttribs)
   10190 #define IShellItem2_Compare(This,psi,hint,piOrder) (This)->lpVtbl->Compare(This,psi,hint,piOrder)
   10191 /*** IShellItem2 methods ***/
   10192 #define IShellItem2_GetPropertyStore(This,flags,riid,ppv) (This)->lpVtbl->GetPropertyStore(This,flags,riid,ppv)
   10193 #define IShellItem2_GetPropertyStoreWithCreateObject(This,flags,punkCreateObject,riid,ppv) (This)->lpVtbl->GetPropertyStoreWithCreateObject(This,flags,punkCreateObject,riid,ppv)
   10194 #define IShellItem2_GetPropertyStoreForKeys(This,rgKeys,cKeys,flags,riid,ppv) (This)->lpVtbl->GetPropertyStoreForKeys(This,rgKeys,cKeys,flags,riid,ppv)
   10195 #define IShellItem2_GetPropertyDescriptionList(This,keyType,riid,ppv) (This)->lpVtbl->GetPropertyDescriptionList(This,keyType,riid,ppv)
   10196 #define IShellItem2_Update(This,pbc) (This)->lpVtbl->Update(This,pbc)
   10197 #define IShellItem2_GetProperty(This,key,ppropvar) (This)->lpVtbl->GetProperty(This,key,ppropvar)
   10198 #define IShellItem2_GetCLSID(This,key,pclsid) (This)->lpVtbl->GetCLSID(This,key,pclsid)
   10199 #define IShellItem2_GetFileTime(This,key,pft) (This)->lpVtbl->GetFileTime(This,key,pft)
   10200 #define IShellItem2_GetInt32(This,key,pi) (This)->lpVtbl->GetInt32(This,key,pi)
   10201 #define IShellItem2_GetString(This,key,ppsz) (This)->lpVtbl->GetString(This,key,ppsz)
   10202 #define IShellItem2_GetUInt32(This,key,pui) (This)->lpVtbl->GetUInt32(This,key,pui)
   10203 #define IShellItem2_GetUInt64(This,key,pull) (This)->lpVtbl->GetUInt64(This,key,pull)
   10204 #define IShellItem2_GetBool(This,key,pf) (This)->lpVtbl->GetBool(This,key,pf)
   10205 #else
   10206 /*** IUnknown methods ***/
   10207 static FORCEINLINE HRESULT IShellItem2_QueryInterface(IShellItem2* This,REFIID riid,void **ppvObject) {
   10208     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   10209 }
   10210 static FORCEINLINE ULONG IShellItem2_AddRef(IShellItem2* This) {
   10211     return This->lpVtbl->AddRef(This);
   10212 }
   10213 static FORCEINLINE ULONG IShellItem2_Release(IShellItem2* This) {
   10214     return This->lpVtbl->Release(This);
   10215 }
   10216 /*** IShellItem methods ***/
   10217 static FORCEINLINE HRESULT IShellItem2_BindToHandler(IShellItem2* This,IBindCtx *pbc,REFGUID bhid,REFIID riid,void **ppv) {
   10218     return This->lpVtbl->BindToHandler(This,pbc,bhid,riid,ppv);
   10219 }
   10220 static FORCEINLINE HRESULT IShellItem2_GetParent(IShellItem2* This,IShellItem **ppsi) {
   10221     return This->lpVtbl->GetParent(This,ppsi);
   10222 }
   10223 static FORCEINLINE HRESULT IShellItem2_GetDisplayName(IShellItem2* This,SIGDN sigdnName,LPWSTR *ppszName) {
   10224     return This->lpVtbl->GetDisplayName(This,sigdnName,ppszName);
   10225 }
   10226 static FORCEINLINE HRESULT IShellItem2_GetAttributes(IShellItem2* This,SFGAOF sfgaoMask,SFGAOF *psfgaoAttribs) {
   10227     return This->lpVtbl->GetAttributes(This,sfgaoMask,psfgaoAttribs);
   10228 }
   10229 static FORCEINLINE HRESULT IShellItem2_Compare(IShellItem2* This,IShellItem *psi,SICHINTF hint,int *piOrder) {
   10230     return This->lpVtbl->Compare(This,psi,hint,piOrder);
   10231 }
   10232 /*** IShellItem2 methods ***/
   10233 static FORCEINLINE HRESULT IShellItem2_GetPropertyStore(IShellItem2* This,GETPROPERTYSTOREFLAGS flags,REFIID riid,void **ppv) {
   10234     return This->lpVtbl->GetPropertyStore(This,flags,riid,ppv);
   10235 }
   10236 static FORCEINLINE HRESULT IShellItem2_GetPropertyStoreWithCreateObject(IShellItem2* This,GETPROPERTYSTOREFLAGS flags,IUnknown *punkCreateObject,REFIID riid,void **ppv) {
   10237     return This->lpVtbl->GetPropertyStoreWithCreateObject(This,flags,punkCreateObject,riid,ppv);
   10238 }
   10239 static FORCEINLINE HRESULT IShellItem2_GetPropertyStoreForKeys(IShellItem2* This,const PROPERTYKEY *rgKeys,UINT cKeys,GETPROPERTYSTOREFLAGS flags,REFIID riid,void **ppv) {
   10240     return This->lpVtbl->GetPropertyStoreForKeys(This,rgKeys,cKeys,flags,riid,ppv);
   10241 }
   10242 static FORCEINLINE HRESULT IShellItem2_GetPropertyDescriptionList(IShellItem2* This,REFPROPERTYKEY keyType,REFIID riid,void **ppv) {
   10243     return This->lpVtbl->GetPropertyDescriptionList(This,keyType,riid,ppv);
   10244 }
   10245 static FORCEINLINE HRESULT IShellItem2_Update(IShellItem2* This,IBindCtx *pbc) {
   10246     return This->lpVtbl->Update(This,pbc);
   10247 }
   10248 static FORCEINLINE HRESULT IShellItem2_GetProperty(IShellItem2* This,REFPROPERTYKEY key,PROPVARIANT *ppropvar) {
   10249     return This->lpVtbl->GetProperty(This,key,ppropvar);
   10250 }
   10251 static FORCEINLINE HRESULT IShellItem2_GetCLSID(IShellItem2* This,REFPROPERTYKEY key,CLSID *pclsid) {
   10252     return This->lpVtbl->GetCLSID(This,key,pclsid);
   10253 }
   10254 static FORCEINLINE HRESULT IShellItem2_GetFileTime(IShellItem2* This,REFPROPERTYKEY key,FILETIME *pft) {
   10255     return This->lpVtbl->GetFileTime(This,key,pft);
   10256 }
   10257 static FORCEINLINE HRESULT IShellItem2_GetInt32(IShellItem2* This,REFPROPERTYKEY key,int *pi) {
   10258     return This->lpVtbl->GetInt32(This,key,pi);
   10259 }
   10260 static FORCEINLINE HRESULT IShellItem2_GetString(IShellItem2* This,REFPROPERTYKEY key,LPWSTR *ppsz) {
   10261     return This->lpVtbl->GetString(This,key,ppsz);
   10262 }
   10263 static FORCEINLINE HRESULT IShellItem2_GetUInt32(IShellItem2* This,REFPROPERTYKEY key,ULONG *pui) {
   10264     return This->lpVtbl->GetUInt32(This,key,pui);
   10265 }
   10266 static FORCEINLINE HRESULT IShellItem2_GetUInt64(IShellItem2* This,REFPROPERTYKEY key,ULONGLONG *pull) {
   10267     return This->lpVtbl->GetUInt64(This,key,pull);
   10268 }
   10269 static FORCEINLINE HRESULT IShellItem2_GetBool(IShellItem2* This,REFPROPERTYKEY key,WINBOOL *pf) {
   10270     return This->lpVtbl->GetBool(This,key,pf);
   10271 }
   10272 #endif
   10273 #endif
   10274 
   10275 #endif
   10276 
   10277 HRESULT STDMETHODCALLTYPE IShellItem2_GetPropertyStore_Proxy(
   10278     IShellItem2* This,
   10279     GETPROPERTYSTOREFLAGS flags,
   10280     REFIID riid,
   10281     void **ppv);
   10282 void __RPC_STUB IShellItem2_GetPropertyStore_Stub(
   10283     IRpcStubBuffer* This,
   10284     IRpcChannelBuffer* pRpcChannelBuffer,
   10285     PRPC_MESSAGE pRpcMessage,
   10286     DWORD* pdwStubPhase);
   10287 HRESULT STDMETHODCALLTYPE IShellItem2_GetPropertyStoreWithCreateObject_Proxy(
   10288     IShellItem2* This,
   10289     GETPROPERTYSTOREFLAGS flags,
   10290     IUnknown *punkCreateObject,
   10291     REFIID riid,
   10292     void **ppv);
   10293 void __RPC_STUB IShellItem2_GetPropertyStoreWithCreateObject_Stub(
   10294     IRpcStubBuffer* This,
   10295     IRpcChannelBuffer* pRpcChannelBuffer,
   10296     PRPC_MESSAGE pRpcMessage,
   10297     DWORD* pdwStubPhase);
   10298 HRESULT STDMETHODCALLTYPE IShellItem2_GetPropertyStoreForKeys_Proxy(
   10299     IShellItem2* This,
   10300     const PROPERTYKEY *rgKeys,
   10301     UINT cKeys,
   10302     GETPROPERTYSTOREFLAGS flags,
   10303     REFIID riid,
   10304     void **ppv);
   10305 void __RPC_STUB IShellItem2_GetPropertyStoreForKeys_Stub(
   10306     IRpcStubBuffer* This,
   10307     IRpcChannelBuffer* pRpcChannelBuffer,
   10308     PRPC_MESSAGE pRpcMessage,
   10309     DWORD* pdwStubPhase);
   10310 HRESULT STDMETHODCALLTYPE IShellItem2_GetPropertyDescriptionList_Proxy(
   10311     IShellItem2* This,
   10312     REFPROPERTYKEY keyType,
   10313     REFIID riid,
   10314     void **ppv);
   10315 void __RPC_STUB IShellItem2_GetPropertyDescriptionList_Stub(
   10316     IRpcStubBuffer* This,
   10317     IRpcChannelBuffer* pRpcChannelBuffer,
   10318     PRPC_MESSAGE pRpcMessage,
   10319     DWORD* pdwStubPhase);
   10320 HRESULT STDMETHODCALLTYPE IShellItem2_Update_Proxy(
   10321     IShellItem2* This,
   10322     IBindCtx *pbc);
   10323 void __RPC_STUB IShellItem2_Update_Stub(
   10324     IRpcStubBuffer* This,
   10325     IRpcChannelBuffer* pRpcChannelBuffer,
   10326     PRPC_MESSAGE pRpcMessage,
   10327     DWORD* pdwStubPhase);
   10328 HRESULT STDMETHODCALLTYPE IShellItem2_GetProperty_Proxy(
   10329     IShellItem2* This,
   10330     REFPROPERTYKEY key,
   10331     PROPVARIANT *ppropvar);
   10332 void __RPC_STUB IShellItem2_GetProperty_Stub(
   10333     IRpcStubBuffer* This,
   10334     IRpcChannelBuffer* pRpcChannelBuffer,
   10335     PRPC_MESSAGE pRpcMessage,
   10336     DWORD* pdwStubPhase);
   10337 HRESULT STDMETHODCALLTYPE IShellItem2_GetCLSID_Proxy(
   10338     IShellItem2* This,
   10339     REFPROPERTYKEY key,
   10340     CLSID *pclsid);
   10341 void __RPC_STUB IShellItem2_GetCLSID_Stub(
   10342     IRpcStubBuffer* This,
   10343     IRpcChannelBuffer* pRpcChannelBuffer,
   10344     PRPC_MESSAGE pRpcMessage,
   10345     DWORD* pdwStubPhase);
   10346 HRESULT STDMETHODCALLTYPE IShellItem2_GetFileTime_Proxy(
   10347     IShellItem2* This,
   10348     REFPROPERTYKEY key,
   10349     FILETIME *pft);
   10350 void __RPC_STUB IShellItem2_GetFileTime_Stub(
   10351     IRpcStubBuffer* This,
   10352     IRpcChannelBuffer* pRpcChannelBuffer,
   10353     PRPC_MESSAGE pRpcMessage,
   10354     DWORD* pdwStubPhase);
   10355 HRESULT STDMETHODCALLTYPE IShellItem2_GetInt32_Proxy(
   10356     IShellItem2* This,
   10357     REFPROPERTYKEY key,
   10358     int *pi);
   10359 void __RPC_STUB IShellItem2_GetInt32_Stub(
   10360     IRpcStubBuffer* This,
   10361     IRpcChannelBuffer* pRpcChannelBuffer,
   10362     PRPC_MESSAGE pRpcMessage,
   10363     DWORD* pdwStubPhase);
   10364 HRESULT STDMETHODCALLTYPE IShellItem2_GetString_Proxy(
   10365     IShellItem2* This,
   10366     REFPROPERTYKEY key,
   10367     LPWSTR *ppsz);
   10368 void __RPC_STUB IShellItem2_GetString_Stub(
   10369     IRpcStubBuffer* This,
   10370     IRpcChannelBuffer* pRpcChannelBuffer,
   10371     PRPC_MESSAGE pRpcMessage,
   10372     DWORD* pdwStubPhase);
   10373 HRESULT STDMETHODCALLTYPE IShellItem2_GetUInt32_Proxy(
   10374     IShellItem2* This,
   10375     REFPROPERTYKEY key,
   10376     ULONG *pui);
   10377 void __RPC_STUB IShellItem2_GetUInt32_Stub(
   10378     IRpcStubBuffer* This,
   10379     IRpcChannelBuffer* pRpcChannelBuffer,
   10380     PRPC_MESSAGE pRpcMessage,
   10381     DWORD* pdwStubPhase);
   10382 HRESULT STDMETHODCALLTYPE IShellItem2_GetUInt64_Proxy(
   10383     IShellItem2* This,
   10384     REFPROPERTYKEY key,
   10385     ULONGLONG *pull);
   10386 void __RPC_STUB IShellItem2_GetUInt64_Stub(
   10387     IRpcStubBuffer* This,
   10388     IRpcChannelBuffer* pRpcChannelBuffer,
   10389     PRPC_MESSAGE pRpcMessage,
   10390     DWORD* pdwStubPhase);
   10391 HRESULT STDMETHODCALLTYPE IShellItem2_GetBool_Proxy(
   10392     IShellItem2* This,
   10393     REFPROPERTYKEY key,
   10394     WINBOOL *pf);
   10395 void __RPC_STUB IShellItem2_GetBool_Stub(
   10396     IRpcStubBuffer* This,
   10397     IRpcChannelBuffer* pRpcChannelBuffer,
   10398     PRPC_MESSAGE pRpcMessage,
   10399     DWORD* pdwStubPhase);
   10400 
   10401 #endif  /* __IShellItem2_INTERFACE_DEFINED__ */
   10402 
   10403 
   10404 enum _SIIGBF {
   10405     SIIGBF_RESIZETOFIT = 0x0,
   10406     SIIGBF_BIGGERSIZEOK = 0x1,
   10407     SIIGBF_MEMORYONLY = 0x2,
   10408     SIIGBF_ICONONLY = 0x4,
   10409     SIIGBF_THUMBNAILONLY = 0x8,
   10410     SIIGBF_INCACHEONLY = 0x10,
   10411     SIIGBF_CROPTOSQUARE = 0x20,
   10412     SIIGBF_WIDETHUMBNAILS = 0x40,
   10413     SIIGBF_ICONBACKGROUND = 0x80,
   10414     SIIGBF_SCALEUP = 0x100
   10415 };
   10416 
   10417 
   10418 typedef int SIIGBF;
   10419 
   10420 /*****************************************************************************
   10421  * IShellItemImageFactory interface
   10422  */
   10423 #ifndef __IShellItemImageFactory_INTERFACE_DEFINED__
   10424 #define __IShellItemImageFactory_INTERFACE_DEFINED__
   10425 
   10426 DEFINE_GUID(IID_IShellItemImageFactory, 0xbcc18b79, 0xba16, 0x442f, 0x80,0xc4, 0x8a,0x59,0xc3,0x0c,0x46,0x3b);
   10427 #if defined(__cplusplus) && !defined(CINTERFACE)
   10428 MIDL_INTERFACE("bcc18b79-ba16-442f-80c4-8a59c30c463b")
   10429 IShellItemImageFactory : public IUnknown
   10430 {
   10431     virtual HRESULT STDMETHODCALLTYPE GetImage(
   10432         SIZE size,
   10433         SIIGBF flags,
   10434         HBITMAP *phbm) = 0;
   10435 
   10436 };
   10437 #ifdef __CRT_UUID_DECL
   10438 __CRT_UUID_DECL(IShellItemImageFactory, 0xbcc18b79, 0xba16, 0x442f, 0x80,0xc4, 0x8a,0x59,0xc3,0x0c,0x46,0x3b)
   10439 #endif
   10440 #else
   10441 typedef struct IShellItemImageFactoryVtbl {
   10442     BEGIN_INTERFACE
   10443 
   10444     /*** IUnknown methods ***/
   10445     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   10446         IShellItemImageFactory* This,
   10447         REFIID riid,
   10448         void **ppvObject);
   10449 
   10450     ULONG (STDMETHODCALLTYPE *AddRef)(
   10451         IShellItemImageFactory* This);
   10452 
   10453     ULONG (STDMETHODCALLTYPE *Release)(
   10454         IShellItemImageFactory* This);
   10455 
   10456     /*** IShellItemImageFactory methods ***/
   10457     HRESULT (STDMETHODCALLTYPE *GetImage)(
   10458         IShellItemImageFactory* This,
   10459         SIZE size,
   10460         SIIGBF flags,
   10461         HBITMAP *phbm);
   10462 
   10463     END_INTERFACE
   10464 } IShellItemImageFactoryVtbl;
   10465 interface IShellItemImageFactory {
   10466     CONST_VTBL IShellItemImageFactoryVtbl* lpVtbl;
   10467 };
   10468 
   10469 #ifdef COBJMACROS
   10470 #ifndef WIDL_C_INLINE_WRAPPERS
   10471 /*** IUnknown methods ***/
   10472 #define IShellItemImageFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   10473 #define IShellItemImageFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
   10474 #define IShellItemImageFactory_Release(This) (This)->lpVtbl->Release(This)
   10475 /*** IShellItemImageFactory methods ***/
   10476 #define IShellItemImageFactory_GetImage(This,size,flags,phbm) (This)->lpVtbl->GetImage(This,size,flags,phbm)
   10477 #else
   10478 /*** IUnknown methods ***/
   10479 static FORCEINLINE HRESULT IShellItemImageFactory_QueryInterface(IShellItemImageFactory* This,REFIID riid,void **ppvObject) {
   10480     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   10481 }
   10482 static FORCEINLINE ULONG IShellItemImageFactory_AddRef(IShellItemImageFactory* This) {
   10483     return This->lpVtbl->AddRef(This);
   10484 }
   10485 static FORCEINLINE ULONG IShellItemImageFactory_Release(IShellItemImageFactory* This) {
   10486     return This->lpVtbl->Release(This);
   10487 }
   10488 /*** IShellItemImageFactory methods ***/
   10489 static FORCEINLINE HRESULT IShellItemImageFactory_GetImage(IShellItemImageFactory* This,SIZE size,SIIGBF flags,HBITMAP *phbm) {
   10490     return This->lpVtbl->GetImage(This,size,flags,phbm);
   10491 }
   10492 #endif
   10493 #endif
   10494 
   10495 #endif
   10496 
   10497 HRESULT STDMETHODCALLTYPE IShellItemImageFactory_GetImage_Proxy(
   10498     IShellItemImageFactory* This,
   10499     SIZE size,
   10500     SIIGBF flags,
   10501     HBITMAP *phbm);
   10502 void __RPC_STUB IShellItemImageFactory_GetImage_Stub(
   10503     IRpcStubBuffer* This,
   10504     IRpcChannelBuffer* pRpcChannelBuffer,
   10505     PRPC_MESSAGE pRpcMessage,
   10506     DWORD* pdwStubPhase);
   10507 
   10508 #endif  /* __IShellItemImageFactory_INTERFACE_DEFINED__ */
   10509 
   10510 
   10511 /*****************************************************************************
   10512  * IUserAccountChangeCallback interface
   10513  */
   10514 #ifndef __IUserAccountChangeCallback_INTERFACE_DEFINED__
   10515 #define __IUserAccountChangeCallback_INTERFACE_DEFINED__
   10516 
   10517 DEFINE_GUID(IID_IUserAccountChangeCallback, 0xa561e69a, 0xb4b8, 0x4113, 0x91,0xa5, 0x64,0xc6,0xbc,0xca,0x34,0x30);
   10518 #if defined(__cplusplus) && !defined(CINTERFACE)
   10519 MIDL_INTERFACE("a561e69a-b4b8-4113-91a5-64c6bcca3430")
   10520 IUserAccountChangeCallback : public IUnknown
   10521 {
   10522     virtual HRESULT STDMETHODCALLTYPE OnPictureChange(
   10523         LPCWSTR pszUserName) = 0;
   10524 
   10525 };
   10526 #ifdef __CRT_UUID_DECL
   10527 __CRT_UUID_DECL(IUserAccountChangeCallback, 0xa561e69a, 0xb4b8, 0x4113, 0x91,0xa5, 0x64,0xc6,0xbc,0xca,0x34,0x30)
   10528 #endif
   10529 #else
   10530 typedef struct IUserAccountChangeCallbackVtbl {
   10531     BEGIN_INTERFACE
   10532 
   10533     /*** IUnknown methods ***/
   10534     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   10535         IUserAccountChangeCallback* This,
   10536         REFIID riid,
   10537         void **ppvObject);
   10538 
   10539     ULONG (STDMETHODCALLTYPE *AddRef)(
   10540         IUserAccountChangeCallback* This);
   10541 
   10542     ULONG (STDMETHODCALLTYPE *Release)(
   10543         IUserAccountChangeCallback* This);
   10544 
   10545     /*** IUserAccountChangeCallback methods ***/
   10546     HRESULT (STDMETHODCALLTYPE *OnPictureChange)(
   10547         IUserAccountChangeCallback* This,
   10548         LPCWSTR pszUserName);
   10549 
   10550     END_INTERFACE
   10551 } IUserAccountChangeCallbackVtbl;
   10552 interface IUserAccountChangeCallback {
   10553     CONST_VTBL IUserAccountChangeCallbackVtbl* lpVtbl;
   10554 };
   10555 
   10556 #ifdef COBJMACROS
   10557 #ifndef WIDL_C_INLINE_WRAPPERS
   10558 /*** IUnknown methods ***/
   10559 #define IUserAccountChangeCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   10560 #define IUserAccountChangeCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
   10561 #define IUserAccountChangeCallback_Release(This) (This)->lpVtbl->Release(This)
   10562 /*** IUserAccountChangeCallback methods ***/
   10563 #define IUserAccountChangeCallback_OnPictureChange(This,pszUserName) (This)->lpVtbl->OnPictureChange(This,pszUserName)
   10564 #else
   10565 /*** IUnknown methods ***/
   10566 static FORCEINLINE HRESULT IUserAccountChangeCallback_QueryInterface(IUserAccountChangeCallback* This,REFIID riid,void **ppvObject) {
   10567     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   10568 }
   10569 static FORCEINLINE ULONG IUserAccountChangeCallback_AddRef(IUserAccountChangeCallback* This) {
   10570     return This->lpVtbl->AddRef(This);
   10571 }
   10572 static FORCEINLINE ULONG IUserAccountChangeCallback_Release(IUserAccountChangeCallback* This) {
   10573     return This->lpVtbl->Release(This);
   10574 }
   10575 /*** IUserAccountChangeCallback methods ***/
   10576 static FORCEINLINE HRESULT IUserAccountChangeCallback_OnPictureChange(IUserAccountChangeCallback* This,LPCWSTR pszUserName) {
   10577     return This->lpVtbl->OnPictureChange(This,pszUserName);
   10578 }
   10579 #endif
   10580 #endif
   10581 
   10582 #endif
   10583 
   10584 HRESULT STDMETHODCALLTYPE IUserAccountChangeCallback_OnPictureChange_Proxy(
   10585     IUserAccountChangeCallback* This,
   10586     LPCWSTR pszUserName);
   10587 void __RPC_STUB IUserAccountChangeCallback_OnPictureChange_Stub(
   10588     IRpcStubBuffer* This,
   10589     IRpcChannelBuffer* pRpcChannelBuffer,
   10590     PRPC_MESSAGE pRpcMessage,
   10591     DWORD* pdwStubPhase);
   10592 
   10593 #endif  /* __IUserAccountChangeCallback_INTERFACE_DEFINED__ */
   10594 
   10595 
   10596 /*****************************************************************************
   10597  * IEnumShellItems interface
   10598  */
   10599 #ifndef __IEnumShellItems_INTERFACE_DEFINED__
   10600 #define __IEnumShellItems_INTERFACE_DEFINED__
   10601 
   10602 DEFINE_GUID(IID_IEnumShellItems, 0x70629033, 0xe363, 0x4a28, 0xa5,0x67, 0x0d,0xb7,0x80,0x06,0xe6,0xd7);
   10603 #if defined(__cplusplus) && !defined(CINTERFACE)
   10604 MIDL_INTERFACE("70629033-e363-4a28-a567-0db78006e6d7")
   10605 IEnumShellItems : public IUnknown
   10606 {
   10607     virtual HRESULT STDMETHODCALLTYPE Next(
   10608         ULONG celt,
   10609         IShellItem **rgelt,
   10610         ULONG *pceltFetched) = 0;
   10611 
   10612     virtual HRESULT STDMETHODCALLTYPE Skip(
   10613         ULONG celt) = 0;
   10614 
   10615     virtual HRESULT STDMETHODCALLTYPE Reset(
   10616         ) = 0;
   10617 
   10618     virtual HRESULT STDMETHODCALLTYPE Clone(
   10619         IEnumShellItems **ppenum) = 0;
   10620 
   10621 };
   10622 #ifdef __CRT_UUID_DECL
   10623 __CRT_UUID_DECL(IEnumShellItems, 0x70629033, 0xe363, 0x4a28, 0xa5,0x67, 0x0d,0xb7,0x80,0x06,0xe6,0xd7)
   10624 #endif
   10625 #else
   10626 typedef struct IEnumShellItemsVtbl {
   10627     BEGIN_INTERFACE
   10628 
   10629     /*** IUnknown methods ***/
   10630     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   10631         IEnumShellItems* This,
   10632         REFIID riid,
   10633         void **ppvObject);
   10634 
   10635     ULONG (STDMETHODCALLTYPE *AddRef)(
   10636         IEnumShellItems* This);
   10637 
   10638     ULONG (STDMETHODCALLTYPE *Release)(
   10639         IEnumShellItems* This);
   10640 
   10641     /*** IEnumShellItems methods ***/
   10642     HRESULT (STDMETHODCALLTYPE *Next)(
   10643         IEnumShellItems* This,
   10644         ULONG celt,
   10645         IShellItem **rgelt,
   10646         ULONG *pceltFetched);
   10647 
   10648     HRESULT (STDMETHODCALLTYPE *Skip)(
   10649         IEnumShellItems* This,
   10650         ULONG celt);
   10651 
   10652     HRESULT (STDMETHODCALLTYPE *Reset)(
   10653         IEnumShellItems* This);
   10654 
   10655     HRESULT (STDMETHODCALLTYPE *Clone)(
   10656         IEnumShellItems* This,
   10657         IEnumShellItems **ppenum);
   10658 
   10659     END_INTERFACE
   10660 } IEnumShellItemsVtbl;
   10661 interface IEnumShellItems {
   10662     CONST_VTBL IEnumShellItemsVtbl* lpVtbl;
   10663 };
   10664 
   10665 #ifdef COBJMACROS
   10666 #ifndef WIDL_C_INLINE_WRAPPERS
   10667 /*** IUnknown methods ***/
   10668 #define IEnumShellItems_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   10669 #define IEnumShellItems_AddRef(This) (This)->lpVtbl->AddRef(This)
   10670 #define IEnumShellItems_Release(This) (This)->lpVtbl->Release(This)
   10671 /*** IEnumShellItems methods ***/
   10672 #define IEnumShellItems_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
   10673 #define IEnumShellItems_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
   10674 #define IEnumShellItems_Reset(This) (This)->lpVtbl->Reset(This)
   10675 #define IEnumShellItems_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
   10676 #else
   10677 /*** IUnknown methods ***/
   10678 static FORCEINLINE HRESULT IEnumShellItems_QueryInterface(IEnumShellItems* This,REFIID riid,void **ppvObject) {
   10679     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   10680 }
   10681 static FORCEINLINE ULONG IEnumShellItems_AddRef(IEnumShellItems* This) {
   10682     return This->lpVtbl->AddRef(This);
   10683 }
   10684 static FORCEINLINE ULONG IEnumShellItems_Release(IEnumShellItems* This) {
   10685     return This->lpVtbl->Release(This);
   10686 }
   10687 /*** IEnumShellItems methods ***/
   10688 static FORCEINLINE HRESULT IEnumShellItems_Next(IEnumShellItems* This,ULONG celt,IShellItem **rgelt,ULONG *pceltFetched) {
   10689     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
   10690 }
   10691 static FORCEINLINE HRESULT IEnumShellItems_Skip(IEnumShellItems* This,ULONG celt) {
   10692     return This->lpVtbl->Skip(This,celt);
   10693 }
   10694 static FORCEINLINE HRESULT IEnumShellItems_Reset(IEnumShellItems* This) {
   10695     return This->lpVtbl->Reset(This);
   10696 }
   10697 static FORCEINLINE HRESULT IEnumShellItems_Clone(IEnumShellItems* This,IEnumShellItems **ppenum) {
   10698     return This->lpVtbl->Clone(This,ppenum);
   10699 }
   10700 #endif
   10701 #endif
   10702 
   10703 #endif
   10704 
   10705 HRESULT STDMETHODCALLTYPE IEnumShellItems_RemoteNext_Proxy(
   10706     IEnumShellItems* This,
   10707     ULONG celt,
   10708     IShellItem **rgelt,
   10709     ULONG *pceltFetched);
   10710 void __RPC_STUB IEnumShellItems_RemoteNext_Stub(
   10711     IRpcStubBuffer* This,
   10712     IRpcChannelBuffer* pRpcChannelBuffer,
   10713     PRPC_MESSAGE pRpcMessage,
   10714     DWORD* pdwStubPhase);
   10715 HRESULT STDMETHODCALLTYPE IEnumShellItems_Skip_Proxy(
   10716     IEnumShellItems* This,
   10717     ULONG celt);
   10718 void __RPC_STUB IEnumShellItems_Skip_Stub(
   10719     IRpcStubBuffer* This,
   10720     IRpcChannelBuffer* pRpcChannelBuffer,
   10721     PRPC_MESSAGE pRpcMessage,
   10722     DWORD* pdwStubPhase);
   10723 HRESULT STDMETHODCALLTYPE IEnumShellItems_Reset_Proxy(
   10724     IEnumShellItems* This);
   10725 void __RPC_STUB IEnumShellItems_Reset_Stub(
   10726     IRpcStubBuffer* This,
   10727     IRpcChannelBuffer* pRpcChannelBuffer,
   10728     PRPC_MESSAGE pRpcMessage,
   10729     DWORD* pdwStubPhase);
   10730 HRESULT STDMETHODCALLTYPE IEnumShellItems_Clone_Proxy(
   10731     IEnumShellItems* This,
   10732     IEnumShellItems **ppenum);
   10733 void __RPC_STUB IEnumShellItems_Clone_Stub(
   10734     IRpcStubBuffer* This,
   10735     IRpcChannelBuffer* pRpcChannelBuffer,
   10736     PRPC_MESSAGE pRpcMessage,
   10737     DWORD* pdwStubPhase);
   10738 HRESULT CALLBACK IEnumShellItems_Next_Proxy(
   10739     IEnumShellItems* This,
   10740     ULONG celt,
   10741     IShellItem **rgelt,
   10742     ULONG *pceltFetched);
   10743 HRESULT __RPC_STUB IEnumShellItems_Next_Stub(
   10744     IEnumShellItems* This,
   10745     ULONG celt,
   10746     IShellItem **rgelt,
   10747     ULONG *pceltFetched);
   10748 
   10749 #endif  /* __IEnumShellItems_INTERFACE_DEFINED__ */
   10750 
   10751 
   10752 typedef GUID STGTRANSCONFIRMATION;
   10753 typedef GUID *LPSTGTRANSCONFIRMATION;
   10754 
   10755 typedef enum STGOP {
   10756     STGOP_MOVE = 1,
   10757     STGOP_COPY = 2,
   10758     STGOP_SYNC = 3,
   10759     STGOP_REMOVE = 5,
   10760     STGOP_RENAME = 6,
   10761     STGOP_APPLYPROPERTIES = 8,
   10762     STGOP_NEW = 10
   10763 } STGOP;
   10764 
   10765 enum _TRANSFER_SOURCE_FLAGS {
   10766     TSF_NORMAL = 0x0,
   10767     TSF_FAIL_EXIST = 0x0,
   10768     TSF_RENAME_EXIST = 0x1,
   10769     TSF_OVERWRITE_EXIST = 0x2,
   10770     TSF_ALLOW_DECRYPTION = 0x4,
   10771     TSF_NO_SECURITY = 0x8,
   10772     TSF_COPY_CREATION_TIME = 0x10,
   10773     TSF_COPY_WRITE_TIME = 0x20,
   10774     TSF_USE_FULL_ACCESS = 0x40,
   10775     TSF_DELETE_RECYCLE_IF_POSSIBLE = 0x80,
   10776     TSF_COPY_HARD_LINK = 0x100,
   10777     TSF_COPY_LOCALIZED_NAME = 0x200,
   10778     TSF_MOVE_AS_COPY_DELETE = 0x400,
   10779     TSF_SUSPEND_SHELLEVENTS = 0x800
   10780 };
   10781 
   10782 
   10783 typedef DWORD TRANSFER_SOURCE_FLAGS;
   10784 
   10785 #if _WIN32_IE >= _WIN32_IE_IE70
   10786 /*****************************************************************************
   10787  * ITransferAdviseSink interface
   10788  */
   10789 #ifndef __ITransferAdviseSink_INTERFACE_DEFINED__
   10790 #define __ITransferAdviseSink_INTERFACE_DEFINED__
   10791 
   10792 enum _TRANSFER_ADVISE_STATE {
   10793     TS_NONE = 0x0,
   10794     TS_PERFORMING = 0x1,
   10795     TS_PREPARING = 0x2,
   10796     TS_INDETERMINATE = 0x4
   10797 };
   10798 
   10799 
   10800 typedef DWORD TRANSFER_ADVISE_STATE;
   10801 
   10802 DEFINE_GUID(IID_ITransferAdviseSink, 0xd594d0d8, 0x8da7, 0x457b, 0xb3,0xb4, 0xce,0x5d,0xba,0xac,0x0b,0x88);
   10803 #if defined(__cplusplus) && !defined(CINTERFACE)
   10804 MIDL_INTERFACE("d594d0d8-8da7-457b-b3b4-ce5dbaac0b88")
   10805 ITransferAdviseSink : public IUnknown
   10806 {
   10807     virtual HRESULT STDMETHODCALLTYPE UpdateProgress(
   10808         ULONGLONG ullSizeCurrent,
   10809         ULONGLONG ullSizeTotal,
   10810         int nFilesCurrent,
   10811         int nFilesTotal,
   10812         int nFoldersCurrent,
   10813         int nFoldersTotal) = 0;
   10814 
   10815     virtual HRESULT STDMETHODCALLTYPE UpdateTransferState(
   10816         TRANSFER_ADVISE_STATE ts) = 0;
   10817 
   10818     virtual HRESULT STDMETHODCALLTYPE ConfirmOverwrite(
   10819         IShellItem *psiSource,
   10820         IShellItem *psiDestParent,
   10821         LPCWSTR pszName) = 0;
   10822 
   10823     virtual HRESULT STDMETHODCALLTYPE ConfirmEncryptionLoss(
   10824         IShellItem *psiSource) = 0;
   10825 
   10826     virtual HRESULT STDMETHODCALLTYPE FileFailure(
   10827         IShellItem *psi,
   10828         LPCWSTR pszItem,
   10829         HRESULT hrError,
   10830         LPWSTR pszRename,
   10831         ULONG cchRename) = 0;
   10832 
   10833     virtual HRESULT STDMETHODCALLTYPE SubStreamFailure(
   10834         IShellItem *psi,
   10835         LPCWSTR pszStreamName,
   10836         HRESULT hrError) = 0;
   10837 
   10838     virtual HRESULT STDMETHODCALLTYPE PropertyFailure(
   10839         IShellItem *psi,
   10840         const PROPERTYKEY *pkey,
   10841         HRESULT hrError) = 0;
   10842 
   10843 };
   10844 #ifdef __CRT_UUID_DECL
   10845 __CRT_UUID_DECL(ITransferAdviseSink, 0xd594d0d8, 0x8da7, 0x457b, 0xb3,0xb4, 0xce,0x5d,0xba,0xac,0x0b,0x88)
   10846 #endif
   10847 #else
   10848 typedef struct ITransferAdviseSinkVtbl {
   10849     BEGIN_INTERFACE
   10850 
   10851     /*** IUnknown methods ***/
   10852     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   10853         ITransferAdviseSink* This,
   10854         REFIID riid,
   10855         void **ppvObject);
   10856 
   10857     ULONG (STDMETHODCALLTYPE *AddRef)(
   10858         ITransferAdviseSink* This);
   10859 
   10860     ULONG (STDMETHODCALLTYPE *Release)(
   10861         ITransferAdviseSink* This);
   10862 
   10863     /*** ITransferAdviseSink methods ***/
   10864     HRESULT (STDMETHODCALLTYPE *UpdateProgress)(
   10865         ITransferAdviseSink* This,
   10866         ULONGLONG ullSizeCurrent,
   10867         ULONGLONG ullSizeTotal,
   10868         int nFilesCurrent,
   10869         int nFilesTotal,
   10870         int nFoldersCurrent,
   10871         int nFoldersTotal);
   10872 
   10873     HRESULT (STDMETHODCALLTYPE *UpdateTransferState)(
   10874         ITransferAdviseSink* This,
   10875         TRANSFER_ADVISE_STATE ts);
   10876 
   10877     HRESULT (STDMETHODCALLTYPE *ConfirmOverwrite)(
   10878         ITransferAdviseSink* This,
   10879         IShellItem *psiSource,
   10880         IShellItem *psiDestParent,
   10881         LPCWSTR pszName);
   10882 
   10883     HRESULT (STDMETHODCALLTYPE *ConfirmEncryptionLoss)(
   10884         ITransferAdviseSink* This,
   10885         IShellItem *psiSource);
   10886 
   10887     HRESULT (STDMETHODCALLTYPE *FileFailure)(
   10888         ITransferAdviseSink* This,
   10889         IShellItem *psi,
   10890         LPCWSTR pszItem,
   10891         HRESULT hrError,
   10892         LPWSTR pszRename,
   10893         ULONG cchRename);
   10894 
   10895     HRESULT (STDMETHODCALLTYPE *SubStreamFailure)(
   10896         ITransferAdviseSink* This,
   10897         IShellItem *psi,
   10898         LPCWSTR pszStreamName,
   10899         HRESULT hrError);
   10900 
   10901     HRESULT (STDMETHODCALLTYPE *PropertyFailure)(
   10902         ITransferAdviseSink* This,
   10903         IShellItem *psi,
   10904         const PROPERTYKEY *pkey,
   10905         HRESULT hrError);
   10906 
   10907     END_INTERFACE
   10908 } ITransferAdviseSinkVtbl;
   10909 interface ITransferAdviseSink {
   10910     CONST_VTBL ITransferAdviseSinkVtbl* lpVtbl;
   10911 };
   10912 
   10913 #ifdef COBJMACROS
   10914 #ifndef WIDL_C_INLINE_WRAPPERS
   10915 /*** IUnknown methods ***/
   10916 #define ITransferAdviseSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   10917 #define ITransferAdviseSink_AddRef(This) (This)->lpVtbl->AddRef(This)
   10918 #define ITransferAdviseSink_Release(This) (This)->lpVtbl->Release(This)
   10919 /*** ITransferAdviseSink methods ***/
   10920 #define ITransferAdviseSink_UpdateProgress(This,ullSizeCurrent,ullSizeTotal,nFilesCurrent,nFilesTotal,nFoldersCurrent,nFoldersTotal) (This)->lpVtbl->UpdateProgress(This,ullSizeCurrent,ullSizeTotal,nFilesCurrent,nFilesTotal,nFoldersCurrent,nFoldersTotal)
   10921 #define ITransferAdviseSink_UpdateTransferState(This,ts) (This)->lpVtbl->UpdateTransferState(This,ts)
   10922 #define ITransferAdviseSink_ConfirmOverwrite(This,psiSource,psiDestParent,pszName) (This)->lpVtbl->ConfirmOverwrite(This,psiSource,psiDestParent,pszName)
   10923 #define ITransferAdviseSink_ConfirmEncryptionLoss(This,psiSource) (This)->lpVtbl->ConfirmEncryptionLoss(This,psiSource)
   10924 #define ITransferAdviseSink_FileFailure(This,psi,pszItem,hrError,pszRename,cchRename) (This)->lpVtbl->FileFailure(This,psi,pszItem,hrError,pszRename,cchRename)
   10925 #define ITransferAdviseSink_SubStreamFailure(This,psi,pszStreamName,hrError) (This)->lpVtbl->SubStreamFailure(This,psi,pszStreamName,hrError)
   10926 #define ITransferAdviseSink_PropertyFailure(This,psi,pkey,hrError) (This)->lpVtbl->PropertyFailure(This,psi,pkey,hrError)
   10927 #else
   10928 /*** IUnknown methods ***/
   10929 static FORCEINLINE HRESULT ITransferAdviseSink_QueryInterface(ITransferAdviseSink* This,REFIID riid,void **ppvObject) {
   10930     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   10931 }
   10932 static FORCEINLINE ULONG ITransferAdviseSink_AddRef(ITransferAdviseSink* This) {
   10933     return This->lpVtbl->AddRef(This);
   10934 }
   10935 static FORCEINLINE ULONG ITransferAdviseSink_Release(ITransferAdviseSink* This) {
   10936     return This->lpVtbl->Release(This);
   10937 }
   10938 /*** ITransferAdviseSink methods ***/
   10939 static FORCEINLINE HRESULT ITransferAdviseSink_UpdateProgress(ITransferAdviseSink* This,ULONGLONG ullSizeCurrent,ULONGLONG ullSizeTotal,int nFilesCurrent,int nFilesTotal,int nFoldersCurrent,int nFoldersTotal) {
   10940     return This->lpVtbl->UpdateProgress(This,ullSizeCurrent,ullSizeTotal,nFilesCurrent,nFilesTotal,nFoldersCurrent,nFoldersTotal);
   10941 }
   10942 static FORCEINLINE HRESULT ITransferAdviseSink_UpdateTransferState(ITransferAdviseSink* This,TRANSFER_ADVISE_STATE ts) {
   10943     return This->lpVtbl->UpdateTransferState(This,ts);
   10944 }
   10945 static FORCEINLINE HRESULT ITransferAdviseSink_ConfirmOverwrite(ITransferAdviseSink* This,IShellItem *psiSource,IShellItem *psiDestParent,LPCWSTR pszName) {
   10946     return This->lpVtbl->ConfirmOverwrite(This,psiSource,psiDestParent,pszName);
   10947 }
   10948 static FORCEINLINE HRESULT ITransferAdviseSink_ConfirmEncryptionLoss(ITransferAdviseSink* This,IShellItem *psiSource) {
   10949     return This->lpVtbl->ConfirmEncryptionLoss(This,psiSource);
   10950 }
   10951 static FORCEINLINE HRESULT ITransferAdviseSink_FileFailure(ITransferAdviseSink* This,IShellItem *psi,LPCWSTR pszItem,HRESULT hrError,LPWSTR pszRename,ULONG cchRename) {
   10952     return This->lpVtbl->FileFailure(This,psi,pszItem,hrError,pszRename,cchRename);
   10953 }
   10954 static FORCEINLINE HRESULT ITransferAdviseSink_SubStreamFailure(ITransferAdviseSink* This,IShellItem *psi,LPCWSTR pszStreamName,HRESULT hrError) {
   10955     return This->lpVtbl->SubStreamFailure(This,psi,pszStreamName,hrError);
   10956 }
   10957 static FORCEINLINE HRESULT ITransferAdviseSink_PropertyFailure(ITransferAdviseSink* This,IShellItem *psi,const PROPERTYKEY *pkey,HRESULT hrError) {
   10958     return This->lpVtbl->PropertyFailure(This,psi,pkey,hrError);
   10959 }
   10960 #endif
   10961 #endif
   10962 
   10963 #endif
   10964 
   10965 HRESULT STDMETHODCALLTYPE ITransferAdviseSink_UpdateProgress_Proxy(
   10966     ITransferAdviseSink* This,
   10967     ULONGLONG ullSizeCurrent,
   10968     ULONGLONG ullSizeTotal,
   10969     int nFilesCurrent,
   10970     int nFilesTotal,
   10971     int nFoldersCurrent,
   10972     int nFoldersTotal);
   10973 void __RPC_STUB ITransferAdviseSink_UpdateProgress_Stub(
   10974     IRpcStubBuffer* This,
   10975     IRpcChannelBuffer* pRpcChannelBuffer,
   10976     PRPC_MESSAGE pRpcMessage,
   10977     DWORD* pdwStubPhase);
   10978 HRESULT STDMETHODCALLTYPE ITransferAdviseSink_UpdateTransferState_Proxy(
   10979     ITransferAdviseSink* This,
   10980     TRANSFER_ADVISE_STATE ts);
   10981 void __RPC_STUB ITransferAdviseSink_UpdateTransferState_Stub(
   10982     IRpcStubBuffer* This,
   10983     IRpcChannelBuffer* pRpcChannelBuffer,
   10984     PRPC_MESSAGE pRpcMessage,
   10985     DWORD* pdwStubPhase);
   10986 HRESULT STDMETHODCALLTYPE ITransferAdviseSink_ConfirmOverwrite_Proxy(
   10987     ITransferAdviseSink* This,
   10988     IShellItem *psiSource,
   10989     IShellItem *psiDestParent,
   10990     LPCWSTR pszName);
   10991 void __RPC_STUB ITransferAdviseSink_ConfirmOverwrite_Stub(
   10992     IRpcStubBuffer* This,
   10993     IRpcChannelBuffer* pRpcChannelBuffer,
   10994     PRPC_MESSAGE pRpcMessage,
   10995     DWORD* pdwStubPhase);
   10996 HRESULT STDMETHODCALLTYPE ITransferAdviseSink_ConfirmEncryptionLoss_Proxy(
   10997     ITransferAdviseSink* This,
   10998     IShellItem *psiSource);
   10999 void __RPC_STUB ITransferAdviseSink_ConfirmEncryptionLoss_Stub(
   11000     IRpcStubBuffer* This,
   11001     IRpcChannelBuffer* pRpcChannelBuffer,
   11002     PRPC_MESSAGE pRpcMessage,
   11003     DWORD* pdwStubPhase);
   11004 HRESULT STDMETHODCALLTYPE ITransferAdviseSink_FileFailure_Proxy(
   11005     ITransferAdviseSink* This,
   11006     IShellItem *psi,
   11007     LPCWSTR pszItem,
   11008     HRESULT hrError,
   11009     LPWSTR pszRename,
   11010     ULONG cchRename);
   11011 void __RPC_STUB ITransferAdviseSink_FileFailure_Stub(
   11012     IRpcStubBuffer* This,
   11013     IRpcChannelBuffer* pRpcChannelBuffer,
   11014     PRPC_MESSAGE pRpcMessage,
   11015     DWORD* pdwStubPhase);
   11016 HRESULT STDMETHODCALLTYPE ITransferAdviseSink_SubStreamFailure_Proxy(
   11017     ITransferAdviseSink* This,
   11018     IShellItem *psi,
   11019     LPCWSTR pszStreamName,
   11020     HRESULT hrError);
   11021 void __RPC_STUB ITransferAdviseSink_SubStreamFailure_Stub(
   11022     IRpcStubBuffer* This,
   11023     IRpcChannelBuffer* pRpcChannelBuffer,
   11024     PRPC_MESSAGE pRpcMessage,
   11025     DWORD* pdwStubPhase);
   11026 HRESULT STDMETHODCALLTYPE ITransferAdviseSink_PropertyFailure_Proxy(
   11027     ITransferAdviseSink* This,
   11028     IShellItem *psi,
   11029     const PROPERTYKEY *pkey,
   11030     HRESULT hrError);
   11031 void __RPC_STUB ITransferAdviseSink_PropertyFailure_Stub(
   11032     IRpcStubBuffer* This,
   11033     IRpcChannelBuffer* pRpcChannelBuffer,
   11034     PRPC_MESSAGE pRpcMessage,
   11035     DWORD* pdwStubPhase);
   11036 
   11037 #endif  /* __ITransferAdviseSink_INTERFACE_DEFINED__ */
   11038 
   11039 #endif
   11040 
   11041 #if NTDDI_VERSION >= NTDDI_VISTA
   11042 /*****************************************************************************
   11043  * ITransferSource interface
   11044  */
   11045 #ifndef __ITransferSource_INTERFACE_DEFINED__
   11046 #define __ITransferSource_INTERFACE_DEFINED__
   11047 
   11048 DEFINE_GUID(IID_ITransferSource, 0x00adb003, 0xbde9, 0x45c6, 0x8e,0x29, 0xd0,0x9f,0x93,0x53,0xe1,0x08);
   11049 #if defined(__cplusplus) && !defined(CINTERFACE)
   11050 MIDL_INTERFACE("00adb003-bde9-45c6-8e29-d09f9353e108")
   11051 ITransferSource : public IUnknown
   11052 {
   11053     virtual HRESULT STDMETHODCALLTYPE Advise(
   11054         ITransferAdviseSink *psink,
   11055         DWORD *pdwCookie) = 0;
   11056 
   11057     virtual HRESULT STDMETHODCALLTYPE Unadvise(
   11058         DWORD dwCookie) = 0;
   11059 
   11060     virtual HRESULT STDMETHODCALLTYPE SetProperties(
   11061         IPropertyChangeArray *pproparray) = 0;
   11062 
   11063     virtual HRESULT STDMETHODCALLTYPE OpenItem(
   11064         IShellItem *psi,
   11065         TRANSFER_SOURCE_FLAGS flags,
   11066         REFIID riid,
   11067         void **ppv) = 0;
   11068 
   11069     virtual HRESULT STDMETHODCALLTYPE MoveItem(
   11070         IShellItem *psi,
   11071         IShellItem *psiParentDst,
   11072         LPCWSTR pszNameDst,
   11073         TRANSFER_SOURCE_FLAGS flags,
   11074         IShellItem **ppsiNew) = 0;
   11075 
   11076     virtual HRESULT STDMETHODCALLTYPE RecycleItem(
   11077         IShellItem *psiSource,
   11078         IShellItem *psiParentDest,
   11079         TRANSFER_SOURCE_FLAGS flags,
   11080         IShellItem **ppsiNewDest) = 0;
   11081 
   11082     virtual HRESULT STDMETHODCALLTYPE RemoveItem(
   11083         IShellItem *psiSource,
   11084         TRANSFER_SOURCE_FLAGS flags) = 0;
   11085 
   11086     virtual HRESULT STDMETHODCALLTYPE RenameItem(
   11087         IShellItem *psiSource,
   11088         LPCWSTR pszNewName,
   11089         TRANSFER_SOURCE_FLAGS flags,
   11090         IShellItem **ppsiNewDest) = 0;
   11091 
   11092     virtual HRESULT STDMETHODCALLTYPE LinkItem(
   11093         IShellItem *psiSource,
   11094         IShellItem *psiParentDest,
   11095         LPCWSTR pszNewName,
   11096         TRANSFER_SOURCE_FLAGS flags,
   11097         IShellItem **ppsiNewDest) = 0;
   11098 
   11099     virtual HRESULT STDMETHODCALLTYPE ApplyPropertiesToItem(
   11100         IShellItem *psiSource,
   11101         IShellItem **ppsiNew) = 0;
   11102 
   11103     virtual HRESULT STDMETHODCALLTYPE GetDefaultDestinationName(
   11104         IShellItem *psiSource,
   11105         IShellItem *psiParentDest,
   11106         LPWSTR *ppszDestinationName) = 0;
   11107 
   11108     virtual HRESULT STDMETHODCALLTYPE EnterFolder(
   11109         IShellItem *psiChildFolderDest) = 0;
   11110 
   11111     virtual HRESULT STDMETHODCALLTYPE LeaveFolder(
   11112         IShellItem *psiChildFolderDest) = 0;
   11113 
   11114 };
   11115 #ifdef __CRT_UUID_DECL
   11116 __CRT_UUID_DECL(ITransferSource, 0x00adb003, 0xbde9, 0x45c6, 0x8e,0x29, 0xd0,0x9f,0x93,0x53,0xe1,0x08)
   11117 #endif
   11118 #else
   11119 typedef struct ITransferSourceVtbl {
   11120     BEGIN_INTERFACE
   11121 
   11122     /*** IUnknown methods ***/
   11123     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   11124         ITransferSource* This,
   11125         REFIID riid,
   11126         void **ppvObject);
   11127 
   11128     ULONG (STDMETHODCALLTYPE *AddRef)(
   11129         ITransferSource* This);
   11130 
   11131     ULONG (STDMETHODCALLTYPE *Release)(
   11132         ITransferSource* This);
   11133 
   11134     /*** ITransferSource methods ***/
   11135     HRESULT (STDMETHODCALLTYPE *Advise)(
   11136         ITransferSource* This,
   11137         ITransferAdviseSink *psink,
   11138         DWORD *pdwCookie);
   11139 
   11140     HRESULT (STDMETHODCALLTYPE *Unadvise)(
   11141         ITransferSource* This,
   11142         DWORD dwCookie);
   11143 
   11144     HRESULT (STDMETHODCALLTYPE *SetProperties)(
   11145         ITransferSource* This,
   11146         IPropertyChangeArray *pproparray);
   11147 
   11148     HRESULT (STDMETHODCALLTYPE *OpenItem)(
   11149         ITransferSource* This,
   11150         IShellItem *psi,
   11151         TRANSFER_SOURCE_FLAGS flags,
   11152         REFIID riid,
   11153         void **ppv);
   11154 
   11155     HRESULT (STDMETHODCALLTYPE *MoveItem)(
   11156         ITransferSource* This,
   11157         IShellItem *psi,
   11158         IShellItem *psiParentDst,
   11159         LPCWSTR pszNameDst,
   11160         TRANSFER_SOURCE_FLAGS flags,
   11161         IShellItem **ppsiNew);
   11162 
   11163     HRESULT (STDMETHODCALLTYPE *RecycleItem)(
   11164         ITransferSource* This,
   11165         IShellItem *psiSource,
   11166         IShellItem *psiParentDest,
   11167         TRANSFER_SOURCE_FLAGS flags,
   11168         IShellItem **ppsiNewDest);
   11169 
   11170     HRESULT (STDMETHODCALLTYPE *RemoveItem)(
   11171         ITransferSource* This,
   11172         IShellItem *psiSource,
   11173         TRANSFER_SOURCE_FLAGS flags);
   11174 
   11175     HRESULT (STDMETHODCALLTYPE *RenameItem)(
   11176         ITransferSource* This,
   11177         IShellItem *psiSource,
   11178         LPCWSTR pszNewName,
   11179         TRANSFER_SOURCE_FLAGS flags,
   11180         IShellItem **ppsiNewDest);
   11181 
   11182     HRESULT (STDMETHODCALLTYPE *LinkItem)(
   11183         ITransferSource* This,
   11184         IShellItem *psiSource,
   11185         IShellItem *psiParentDest,
   11186         LPCWSTR pszNewName,
   11187         TRANSFER_SOURCE_FLAGS flags,
   11188         IShellItem **ppsiNewDest);
   11189 
   11190     HRESULT (STDMETHODCALLTYPE *ApplyPropertiesToItem)(
   11191         ITransferSource* This,
   11192         IShellItem *psiSource,
   11193         IShellItem **ppsiNew);
   11194 
   11195     HRESULT (STDMETHODCALLTYPE *GetDefaultDestinationName)(
   11196         ITransferSource* This,
   11197         IShellItem *psiSource,
   11198         IShellItem *psiParentDest,
   11199         LPWSTR *ppszDestinationName);
   11200 
   11201     HRESULT (STDMETHODCALLTYPE *EnterFolder)(
   11202         ITransferSource* This,
   11203         IShellItem *psiChildFolderDest);
   11204 
   11205     HRESULT (STDMETHODCALLTYPE *LeaveFolder)(
   11206         ITransferSource* This,
   11207         IShellItem *psiChildFolderDest);
   11208 
   11209     END_INTERFACE
   11210 } ITransferSourceVtbl;
   11211 interface ITransferSource {
   11212     CONST_VTBL ITransferSourceVtbl* lpVtbl;
   11213 };
   11214 
   11215 #ifdef COBJMACROS
   11216 #ifndef WIDL_C_INLINE_WRAPPERS
   11217 /*** IUnknown methods ***/
   11218 #define ITransferSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   11219 #define ITransferSource_AddRef(This) (This)->lpVtbl->AddRef(This)
   11220 #define ITransferSource_Release(This) (This)->lpVtbl->Release(This)
   11221 /*** ITransferSource methods ***/
   11222 #define ITransferSource_Advise(This,psink,pdwCookie) (This)->lpVtbl->Advise(This,psink,pdwCookie)
   11223 #define ITransferSource_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
   11224 #define ITransferSource_SetProperties(This,pproparray) (This)->lpVtbl->SetProperties(This,pproparray)
   11225 #define ITransferSource_OpenItem(This,psi,flags,riid,ppv) (This)->lpVtbl->OpenItem(This,psi,flags,riid,ppv)
   11226 #define ITransferSource_MoveItem(This,psi,psiParentDst,pszNameDst,flags,ppsiNew) (This)->lpVtbl->MoveItem(This,psi,psiParentDst,pszNameDst,flags,ppsiNew)
   11227 #define ITransferSource_RecycleItem(This,psiSource,psiParentDest,flags,ppsiNewDest) (This)->lpVtbl->RecycleItem(This,psiSource,psiParentDest,flags,ppsiNewDest)
   11228 #define ITransferSource_RemoveItem(This,psiSource,flags) (This)->lpVtbl->RemoveItem(This,psiSource,flags)
   11229 #define ITransferSource_RenameItem(This,psiSource,pszNewName,flags,ppsiNewDest) (This)->lpVtbl->RenameItem(This,psiSource,pszNewName,flags,ppsiNewDest)
   11230 #define ITransferSource_LinkItem(This,psiSource,psiParentDest,pszNewName,flags,ppsiNewDest) (This)->lpVtbl->LinkItem(This,psiSource,psiParentDest,pszNewName,flags,ppsiNewDest)
   11231 #define ITransferSource_ApplyPropertiesToItem(This,psiSource,ppsiNew) (This)->lpVtbl->ApplyPropertiesToItem(This,psiSource,ppsiNew)
   11232 #define ITransferSource_GetDefaultDestinationName(This,psiSource,psiParentDest,ppszDestinationName) (This)->lpVtbl->GetDefaultDestinationName(This,psiSource,psiParentDest,ppszDestinationName)
   11233 #define ITransferSource_EnterFolder(This,psiChildFolderDest) (This)->lpVtbl->EnterFolder(This,psiChildFolderDest)
   11234 #define ITransferSource_LeaveFolder(This,psiChildFolderDest) (This)->lpVtbl->LeaveFolder(This,psiChildFolderDest)
   11235 #else
   11236 /*** IUnknown methods ***/
   11237 static FORCEINLINE HRESULT ITransferSource_QueryInterface(ITransferSource* This,REFIID riid,void **ppvObject) {
   11238     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   11239 }
   11240 static FORCEINLINE ULONG ITransferSource_AddRef(ITransferSource* This) {
   11241     return This->lpVtbl->AddRef(This);
   11242 }
   11243 static FORCEINLINE ULONG ITransferSource_Release(ITransferSource* This) {
   11244     return This->lpVtbl->Release(This);
   11245 }
   11246 /*** ITransferSource methods ***/
   11247 static FORCEINLINE HRESULT ITransferSource_Advise(ITransferSource* This,ITransferAdviseSink *psink,DWORD *pdwCookie) {
   11248     return This->lpVtbl->Advise(This,psink,pdwCookie);
   11249 }
   11250 static FORCEINLINE HRESULT ITransferSource_Unadvise(ITransferSource* This,DWORD dwCookie) {
   11251     return This->lpVtbl->Unadvise(This,dwCookie);
   11252 }
   11253 static FORCEINLINE HRESULT ITransferSource_SetProperties(ITransferSource* This,IPropertyChangeArray *pproparray) {
   11254     return This->lpVtbl->SetProperties(This,pproparray);
   11255 }
   11256 static FORCEINLINE HRESULT ITransferSource_OpenItem(ITransferSource* This,IShellItem *psi,TRANSFER_SOURCE_FLAGS flags,REFIID riid,void **ppv) {
   11257     return This->lpVtbl->OpenItem(This,psi,flags,riid,ppv);
   11258 }
   11259 static FORCEINLINE HRESULT ITransferSource_MoveItem(ITransferSource* This,IShellItem *psi,IShellItem *psiParentDst,LPCWSTR pszNameDst,TRANSFER_SOURCE_FLAGS flags,IShellItem **ppsiNew) {
   11260     return This->lpVtbl->MoveItem(This,psi,psiParentDst,pszNameDst,flags,ppsiNew);
   11261 }
   11262 static FORCEINLINE HRESULT ITransferSource_RecycleItem(ITransferSource* This,IShellItem *psiSource,IShellItem *psiParentDest,TRANSFER_SOURCE_FLAGS flags,IShellItem **ppsiNewDest) {
   11263     return This->lpVtbl->RecycleItem(This,psiSource,psiParentDest,flags,ppsiNewDest);
   11264 }
   11265 static FORCEINLINE HRESULT ITransferSource_RemoveItem(ITransferSource* This,IShellItem *psiSource,TRANSFER_SOURCE_FLAGS flags) {
   11266     return This->lpVtbl->RemoveItem(This,psiSource,flags);
   11267 }
   11268 static FORCEINLINE HRESULT ITransferSource_RenameItem(ITransferSource* This,IShellItem *psiSource,LPCWSTR pszNewName,TRANSFER_SOURCE_FLAGS flags,IShellItem **ppsiNewDest) {
   11269     return This->lpVtbl->RenameItem(This,psiSource,pszNewName,flags,ppsiNewDest);
   11270 }
   11271 static FORCEINLINE HRESULT ITransferSource_LinkItem(ITransferSource* This,IShellItem *psiSource,IShellItem *psiParentDest,LPCWSTR pszNewName,TRANSFER_SOURCE_FLAGS flags,IShellItem **ppsiNewDest) {
   11272     return This->lpVtbl->LinkItem(This,psiSource,psiParentDest,pszNewName,flags,ppsiNewDest);
   11273 }
   11274 static FORCEINLINE HRESULT ITransferSource_ApplyPropertiesToItem(ITransferSource* This,IShellItem *psiSource,IShellItem **ppsiNew) {
   11275     return This->lpVtbl->ApplyPropertiesToItem(This,psiSource,ppsiNew);
   11276 }
   11277 static FORCEINLINE HRESULT ITransferSource_GetDefaultDestinationName(ITransferSource* This,IShellItem *psiSource,IShellItem *psiParentDest,LPWSTR *ppszDestinationName) {
   11278     return This->lpVtbl->GetDefaultDestinationName(This,psiSource,psiParentDest,ppszDestinationName);
   11279 }
   11280 static FORCEINLINE HRESULT ITransferSource_EnterFolder(ITransferSource* This,IShellItem *psiChildFolderDest) {
   11281     return This->lpVtbl->EnterFolder(This,psiChildFolderDest);
   11282 }
   11283 static FORCEINLINE HRESULT ITransferSource_LeaveFolder(ITransferSource* This,IShellItem *psiChildFolderDest) {
   11284     return This->lpVtbl->LeaveFolder(This,psiChildFolderDest);
   11285 }
   11286 #endif
   11287 #endif
   11288 
   11289 #endif
   11290 
   11291 HRESULT STDMETHODCALLTYPE ITransferSource_Advise_Proxy(
   11292     ITransferSource* This,
   11293     ITransferAdviseSink *psink,
   11294     DWORD *pdwCookie);
   11295 void __RPC_STUB ITransferSource_Advise_Stub(
   11296     IRpcStubBuffer* This,
   11297     IRpcChannelBuffer* pRpcChannelBuffer,
   11298     PRPC_MESSAGE pRpcMessage,
   11299     DWORD* pdwStubPhase);
   11300 HRESULT STDMETHODCALLTYPE ITransferSource_Unadvise_Proxy(
   11301     ITransferSource* This,
   11302     DWORD dwCookie);
   11303 void __RPC_STUB ITransferSource_Unadvise_Stub(
   11304     IRpcStubBuffer* This,
   11305     IRpcChannelBuffer* pRpcChannelBuffer,
   11306     PRPC_MESSAGE pRpcMessage,
   11307     DWORD* pdwStubPhase);
   11308 HRESULT STDMETHODCALLTYPE ITransferSource_SetProperties_Proxy(
   11309     ITransferSource* This,
   11310     IPropertyChangeArray *pproparray);
   11311 void __RPC_STUB ITransferSource_SetProperties_Stub(
   11312     IRpcStubBuffer* This,
   11313     IRpcChannelBuffer* pRpcChannelBuffer,
   11314     PRPC_MESSAGE pRpcMessage,
   11315     DWORD* pdwStubPhase);
   11316 HRESULT STDMETHODCALLTYPE ITransferSource_OpenItem_Proxy(
   11317     ITransferSource* This,
   11318     IShellItem *psi,
   11319     TRANSFER_SOURCE_FLAGS flags,
   11320     REFIID riid,
   11321     void **ppv);
   11322 void __RPC_STUB ITransferSource_OpenItem_Stub(
   11323     IRpcStubBuffer* This,
   11324     IRpcChannelBuffer* pRpcChannelBuffer,
   11325     PRPC_MESSAGE pRpcMessage,
   11326     DWORD* pdwStubPhase);
   11327 HRESULT STDMETHODCALLTYPE ITransferSource_MoveItem_Proxy(
   11328     ITransferSource* This,
   11329     IShellItem *psi,
   11330     IShellItem *psiParentDst,
   11331     LPCWSTR pszNameDst,
   11332     TRANSFER_SOURCE_FLAGS flags,
   11333     IShellItem **ppsiNew);
   11334 void __RPC_STUB ITransferSource_MoveItem_Stub(
   11335     IRpcStubBuffer* This,
   11336     IRpcChannelBuffer* pRpcChannelBuffer,
   11337     PRPC_MESSAGE pRpcMessage,
   11338     DWORD* pdwStubPhase);
   11339 HRESULT STDMETHODCALLTYPE ITransferSource_RecycleItem_Proxy(
   11340     ITransferSource* This,
   11341     IShellItem *psiSource,
   11342     IShellItem *psiParentDest,
   11343     TRANSFER_SOURCE_FLAGS flags,
   11344     IShellItem **ppsiNewDest);
   11345 void __RPC_STUB ITransferSource_RecycleItem_Stub(
   11346     IRpcStubBuffer* This,
   11347     IRpcChannelBuffer* pRpcChannelBuffer,
   11348     PRPC_MESSAGE pRpcMessage,
   11349     DWORD* pdwStubPhase);
   11350 HRESULT STDMETHODCALLTYPE ITransferSource_RemoveItem_Proxy(
   11351     ITransferSource* This,
   11352     IShellItem *psiSource,
   11353     TRANSFER_SOURCE_FLAGS flags);
   11354 void __RPC_STUB ITransferSource_RemoveItem_Stub(
   11355     IRpcStubBuffer* This,
   11356     IRpcChannelBuffer* pRpcChannelBuffer,
   11357     PRPC_MESSAGE pRpcMessage,
   11358     DWORD* pdwStubPhase);
   11359 HRESULT STDMETHODCALLTYPE ITransferSource_RenameItem_Proxy(
   11360     ITransferSource* This,
   11361     IShellItem *psiSource,
   11362     LPCWSTR pszNewName,
   11363     TRANSFER_SOURCE_FLAGS flags,
   11364     IShellItem **ppsiNewDest);
   11365 void __RPC_STUB ITransferSource_RenameItem_Stub(
   11366     IRpcStubBuffer* This,
   11367     IRpcChannelBuffer* pRpcChannelBuffer,
   11368     PRPC_MESSAGE pRpcMessage,
   11369     DWORD* pdwStubPhase);
   11370 HRESULT STDMETHODCALLTYPE ITransferSource_LinkItem_Proxy(
   11371     ITransferSource* This,
   11372     IShellItem *psiSource,
   11373     IShellItem *psiParentDest,
   11374     LPCWSTR pszNewName,
   11375     TRANSFER_SOURCE_FLAGS flags,
   11376     IShellItem **ppsiNewDest);
   11377 void __RPC_STUB ITransferSource_LinkItem_Stub(
   11378     IRpcStubBuffer* This,
   11379     IRpcChannelBuffer* pRpcChannelBuffer,
   11380     PRPC_MESSAGE pRpcMessage,
   11381     DWORD* pdwStubPhase);
   11382 HRESULT STDMETHODCALLTYPE ITransferSource_ApplyPropertiesToItem_Proxy(
   11383     ITransferSource* This,
   11384     IShellItem *psiSource,
   11385     IShellItem **ppsiNew);
   11386 void __RPC_STUB ITransferSource_ApplyPropertiesToItem_Stub(
   11387     IRpcStubBuffer* This,
   11388     IRpcChannelBuffer* pRpcChannelBuffer,
   11389     PRPC_MESSAGE pRpcMessage,
   11390     DWORD* pdwStubPhase);
   11391 HRESULT STDMETHODCALLTYPE ITransferSource_GetDefaultDestinationName_Proxy(
   11392     ITransferSource* This,
   11393     IShellItem *psiSource,
   11394     IShellItem *psiParentDest,
   11395     LPWSTR *ppszDestinationName);
   11396 void __RPC_STUB ITransferSource_GetDefaultDestinationName_Stub(
   11397     IRpcStubBuffer* This,
   11398     IRpcChannelBuffer* pRpcChannelBuffer,
   11399     PRPC_MESSAGE pRpcMessage,
   11400     DWORD* pdwStubPhase);
   11401 HRESULT STDMETHODCALLTYPE ITransferSource_EnterFolder_Proxy(
   11402     ITransferSource* This,
   11403     IShellItem *psiChildFolderDest);
   11404 void __RPC_STUB ITransferSource_EnterFolder_Stub(
   11405     IRpcStubBuffer* This,
   11406     IRpcChannelBuffer* pRpcChannelBuffer,
   11407     PRPC_MESSAGE pRpcMessage,
   11408     DWORD* pdwStubPhase);
   11409 HRESULT STDMETHODCALLTYPE ITransferSource_LeaveFolder_Proxy(
   11410     ITransferSource* This,
   11411     IShellItem *psiChildFolderDest);
   11412 void __RPC_STUB ITransferSource_LeaveFolder_Stub(
   11413     IRpcStubBuffer* This,
   11414     IRpcChannelBuffer* pRpcChannelBuffer,
   11415     PRPC_MESSAGE pRpcMessage,
   11416     DWORD* pdwStubPhase);
   11417 
   11418 #endif  /* __ITransferSource_INTERFACE_DEFINED__ */
   11419 
   11420 #endif
   11421 
   11422 typedef struct SHELL_ITEM_RESOURCE {
   11423     GUID guidType;
   11424     WCHAR szName[260];
   11425 } SHELL_ITEM_RESOURCE;
   11426 
   11427 /*****************************************************************************
   11428  * IEnumResources interface
   11429  */
   11430 #ifndef __IEnumResources_INTERFACE_DEFINED__
   11431 #define __IEnumResources_INTERFACE_DEFINED__
   11432 
   11433 DEFINE_GUID(IID_IEnumResources, 0x2dd81fe3, 0xa83c, 0x4da9, 0xa3,0x30, 0x47,0x24,0x9d,0x34,0x5b,0xa1);
   11434 #if defined(__cplusplus) && !defined(CINTERFACE)
   11435 MIDL_INTERFACE("2dd81fe3-a83c-4da9-a330-47249d345ba1")
   11436 IEnumResources : public IUnknown
   11437 {
   11438     virtual HRESULT STDMETHODCALLTYPE Next(
   11439         ULONG celt,
   11440         SHELL_ITEM_RESOURCE *psir,
   11441         ULONG *pceltFetched) = 0;
   11442 
   11443     virtual HRESULT STDMETHODCALLTYPE Skip(
   11444         ULONG celt) = 0;
   11445 
   11446     virtual HRESULT STDMETHODCALLTYPE Reset(
   11447         ) = 0;
   11448 
   11449     virtual HRESULT STDMETHODCALLTYPE Clone(
   11450         IEnumResources **ppenumr) = 0;
   11451 
   11452 };
   11453 #ifdef __CRT_UUID_DECL
   11454 __CRT_UUID_DECL(IEnumResources, 0x2dd81fe3, 0xa83c, 0x4da9, 0xa3,0x30, 0x47,0x24,0x9d,0x34,0x5b,0xa1)
   11455 #endif
   11456 #else
   11457 typedef struct IEnumResourcesVtbl {
   11458     BEGIN_INTERFACE
   11459 
   11460     /*** IUnknown methods ***/
   11461     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   11462         IEnumResources* This,
   11463         REFIID riid,
   11464         void **ppvObject);
   11465 
   11466     ULONG (STDMETHODCALLTYPE *AddRef)(
   11467         IEnumResources* This);
   11468 
   11469     ULONG (STDMETHODCALLTYPE *Release)(
   11470         IEnumResources* This);
   11471 
   11472     /*** IEnumResources methods ***/
   11473     HRESULT (STDMETHODCALLTYPE *Next)(
   11474         IEnumResources* This,
   11475         ULONG celt,
   11476         SHELL_ITEM_RESOURCE *psir,
   11477         ULONG *pceltFetched);
   11478 
   11479     HRESULT (STDMETHODCALLTYPE *Skip)(
   11480         IEnumResources* This,
   11481         ULONG celt);
   11482 
   11483     HRESULT (STDMETHODCALLTYPE *Reset)(
   11484         IEnumResources* This);
   11485 
   11486     HRESULT (STDMETHODCALLTYPE *Clone)(
   11487         IEnumResources* This,
   11488         IEnumResources **ppenumr);
   11489 
   11490     END_INTERFACE
   11491 } IEnumResourcesVtbl;
   11492 interface IEnumResources {
   11493     CONST_VTBL IEnumResourcesVtbl* lpVtbl;
   11494 };
   11495 
   11496 #ifdef COBJMACROS
   11497 #ifndef WIDL_C_INLINE_WRAPPERS
   11498 /*** IUnknown methods ***/
   11499 #define IEnumResources_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   11500 #define IEnumResources_AddRef(This) (This)->lpVtbl->AddRef(This)
   11501 #define IEnumResources_Release(This) (This)->lpVtbl->Release(This)
   11502 /*** IEnumResources methods ***/
   11503 #define IEnumResources_Next(This,celt,psir,pceltFetched) (This)->lpVtbl->Next(This,celt,psir,pceltFetched)
   11504 #define IEnumResources_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
   11505 #define IEnumResources_Reset(This) (This)->lpVtbl->Reset(This)
   11506 #define IEnumResources_Clone(This,ppenumr) (This)->lpVtbl->Clone(This,ppenumr)
   11507 #else
   11508 /*** IUnknown methods ***/
   11509 static FORCEINLINE HRESULT IEnumResources_QueryInterface(IEnumResources* This,REFIID riid,void **ppvObject) {
   11510     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   11511 }
   11512 static FORCEINLINE ULONG IEnumResources_AddRef(IEnumResources* This) {
   11513     return This->lpVtbl->AddRef(This);
   11514 }
   11515 static FORCEINLINE ULONG IEnumResources_Release(IEnumResources* This) {
   11516     return This->lpVtbl->Release(This);
   11517 }
   11518 /*** IEnumResources methods ***/
   11519 static FORCEINLINE HRESULT IEnumResources_Next(IEnumResources* This,ULONG celt,SHELL_ITEM_RESOURCE *psir,ULONG *pceltFetched) {
   11520     return This->lpVtbl->Next(This,celt,psir,pceltFetched);
   11521 }
   11522 static FORCEINLINE HRESULT IEnumResources_Skip(IEnumResources* This,ULONG celt) {
   11523     return This->lpVtbl->Skip(This,celt);
   11524 }
   11525 static FORCEINLINE HRESULT IEnumResources_Reset(IEnumResources* This) {
   11526     return This->lpVtbl->Reset(This);
   11527 }
   11528 static FORCEINLINE HRESULT IEnumResources_Clone(IEnumResources* This,IEnumResources **ppenumr) {
   11529     return This->lpVtbl->Clone(This,ppenumr);
   11530 }
   11531 #endif
   11532 #endif
   11533 
   11534 #endif
   11535 
   11536 HRESULT STDMETHODCALLTYPE IEnumResources_Next_Proxy(
   11537     IEnumResources* This,
   11538     ULONG celt,
   11539     SHELL_ITEM_RESOURCE *psir,
   11540     ULONG *pceltFetched);
   11541 void __RPC_STUB IEnumResources_Next_Stub(
   11542     IRpcStubBuffer* This,
   11543     IRpcChannelBuffer* pRpcChannelBuffer,
   11544     PRPC_MESSAGE pRpcMessage,
   11545     DWORD* pdwStubPhase);
   11546 HRESULT STDMETHODCALLTYPE IEnumResources_Skip_Proxy(
   11547     IEnumResources* This,
   11548     ULONG celt);
   11549 void __RPC_STUB IEnumResources_Skip_Stub(
   11550     IRpcStubBuffer* This,
   11551     IRpcChannelBuffer* pRpcChannelBuffer,
   11552     PRPC_MESSAGE pRpcMessage,
   11553     DWORD* pdwStubPhase);
   11554 HRESULT STDMETHODCALLTYPE IEnumResources_Reset_Proxy(
   11555     IEnumResources* This);
   11556 void __RPC_STUB IEnumResources_Reset_Stub(
   11557     IRpcStubBuffer* This,
   11558     IRpcChannelBuffer* pRpcChannelBuffer,
   11559     PRPC_MESSAGE pRpcMessage,
   11560     DWORD* pdwStubPhase);
   11561 HRESULT STDMETHODCALLTYPE IEnumResources_Clone_Proxy(
   11562     IEnumResources* This,
   11563     IEnumResources **ppenumr);
   11564 void __RPC_STUB IEnumResources_Clone_Stub(
   11565     IRpcStubBuffer* This,
   11566     IRpcChannelBuffer* pRpcChannelBuffer,
   11567     PRPC_MESSAGE pRpcMessage,
   11568     DWORD* pdwStubPhase);
   11569 
   11570 #endif  /* __IEnumResources_INTERFACE_DEFINED__ */
   11571 
   11572 
   11573 /*****************************************************************************
   11574  * IShellItemResources interface
   11575  */
   11576 #ifndef __IShellItemResources_INTERFACE_DEFINED__
   11577 #define __IShellItemResources_INTERFACE_DEFINED__
   11578 
   11579 DEFINE_GUID(IID_IShellItemResources, 0xff5693be, 0x2ce0, 0x4d48, 0xb5,0xc5, 0x40,0x81,0x7d,0x1a,0xcd,0xb9);
   11580 #if defined(__cplusplus) && !defined(CINTERFACE)
   11581 MIDL_INTERFACE("ff5693be-2ce0-4d48-b5c5-40817d1acdb9")
   11582 IShellItemResources : public IUnknown
   11583 {
   11584     virtual HRESULT STDMETHODCALLTYPE GetAttributes(
   11585         DWORD *pdwAttributes) = 0;
   11586 
   11587     virtual HRESULT STDMETHODCALLTYPE GetSize(
   11588         ULONGLONG *pullSize) = 0;
   11589 
   11590     virtual HRESULT STDMETHODCALLTYPE GetTimes(
   11591         FILETIME *pftCreation,
   11592         FILETIME *pftWrite,
   11593         FILETIME *pftAccess) = 0;
   11594 
   11595     virtual HRESULT STDMETHODCALLTYPE SetTimes(
   11596         const FILETIME *pftCreation,
   11597         const FILETIME *pftWrite,
   11598         const FILETIME *pftAccess) = 0;
   11599 
   11600     virtual HRESULT STDMETHODCALLTYPE GetResourceDescription(
   11601         const SHELL_ITEM_RESOURCE *pcsir,
   11602         LPWSTR *ppszDescription) = 0;
   11603 
   11604     virtual HRESULT STDMETHODCALLTYPE EnumResources(
   11605         IEnumResources **ppenumr) = 0;
   11606 
   11607     virtual HRESULT STDMETHODCALLTYPE SupportsResource(
   11608         const SHELL_ITEM_RESOURCE *pcsir) = 0;
   11609 
   11610     virtual HRESULT STDMETHODCALLTYPE OpenResource(
   11611         const SHELL_ITEM_RESOURCE *pcsir,
   11612         REFIID riid,
   11613         void **ppv) = 0;
   11614 
   11615     virtual HRESULT STDMETHODCALLTYPE CreateResource(
   11616         const SHELL_ITEM_RESOURCE *pcsir,
   11617         REFIID riid,
   11618         void **ppv) = 0;
   11619 
   11620     virtual HRESULT STDMETHODCALLTYPE MarkForDelete(
   11621         ) = 0;
   11622 
   11623 };
   11624 #ifdef __CRT_UUID_DECL
   11625 __CRT_UUID_DECL(IShellItemResources, 0xff5693be, 0x2ce0, 0x4d48, 0xb5,0xc5, 0x40,0x81,0x7d,0x1a,0xcd,0xb9)
   11626 #endif
   11627 #else
   11628 typedef struct IShellItemResourcesVtbl {
   11629     BEGIN_INTERFACE
   11630 
   11631     /*** IUnknown methods ***/
   11632     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   11633         IShellItemResources* This,
   11634         REFIID riid,
   11635         void **ppvObject);
   11636 
   11637     ULONG (STDMETHODCALLTYPE *AddRef)(
   11638         IShellItemResources* This);
   11639 
   11640     ULONG (STDMETHODCALLTYPE *Release)(
   11641         IShellItemResources* This);
   11642 
   11643     /*** IShellItemResources methods ***/
   11644     HRESULT (STDMETHODCALLTYPE *GetAttributes)(
   11645         IShellItemResources* This,
   11646         DWORD *pdwAttributes);
   11647 
   11648     HRESULT (STDMETHODCALLTYPE *GetSize)(
   11649         IShellItemResources* This,
   11650         ULONGLONG *pullSize);
   11651 
   11652     HRESULT (STDMETHODCALLTYPE *GetTimes)(
   11653         IShellItemResources* This,
   11654         FILETIME *pftCreation,
   11655         FILETIME *pftWrite,
   11656         FILETIME *pftAccess);
   11657 
   11658     HRESULT (STDMETHODCALLTYPE *SetTimes)(
   11659         IShellItemResources* This,
   11660         const FILETIME *pftCreation,
   11661         const FILETIME *pftWrite,
   11662         const FILETIME *pftAccess);
   11663 
   11664     HRESULT (STDMETHODCALLTYPE *GetResourceDescription)(
   11665         IShellItemResources* This,
   11666         const SHELL_ITEM_RESOURCE *pcsir,
   11667         LPWSTR *ppszDescription);
   11668 
   11669     HRESULT (STDMETHODCALLTYPE *EnumResources)(
   11670         IShellItemResources* This,
   11671         IEnumResources **ppenumr);
   11672 
   11673     HRESULT (STDMETHODCALLTYPE *SupportsResource)(
   11674         IShellItemResources* This,
   11675         const SHELL_ITEM_RESOURCE *pcsir);
   11676 
   11677     HRESULT (STDMETHODCALLTYPE *OpenResource)(
   11678         IShellItemResources* This,
   11679         const SHELL_ITEM_RESOURCE *pcsir,
   11680         REFIID riid,
   11681         void **ppv);
   11682 
   11683     HRESULT (STDMETHODCALLTYPE *CreateResource)(
   11684         IShellItemResources* This,
   11685         const SHELL_ITEM_RESOURCE *pcsir,
   11686         REFIID riid,
   11687         void **ppv);
   11688 
   11689     HRESULT (STDMETHODCALLTYPE *MarkForDelete)(
   11690         IShellItemResources* This);
   11691 
   11692     END_INTERFACE
   11693 } IShellItemResourcesVtbl;
   11694 interface IShellItemResources {
   11695     CONST_VTBL IShellItemResourcesVtbl* lpVtbl;
   11696 };
   11697 
   11698 #ifdef COBJMACROS
   11699 #ifndef WIDL_C_INLINE_WRAPPERS
   11700 /*** IUnknown methods ***/
   11701 #define IShellItemResources_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   11702 #define IShellItemResources_AddRef(This) (This)->lpVtbl->AddRef(This)
   11703 #define IShellItemResources_Release(This) (This)->lpVtbl->Release(This)
   11704 /*** IShellItemResources methods ***/
   11705 #define IShellItemResources_GetAttributes(This,pdwAttributes) (This)->lpVtbl->GetAttributes(This,pdwAttributes)
   11706 #define IShellItemResources_GetSize(This,pullSize) (This)->lpVtbl->GetSize(This,pullSize)
   11707 #define IShellItemResources_GetTimes(This,pftCreation,pftWrite,pftAccess) (This)->lpVtbl->GetTimes(This,pftCreation,pftWrite,pftAccess)
   11708 #define IShellItemResources_SetTimes(This,pftCreation,pftWrite,pftAccess) (This)->lpVtbl->SetTimes(This,pftCreation,pftWrite,pftAccess)
   11709 #define IShellItemResources_GetResourceDescription(This,pcsir,ppszDescription) (This)->lpVtbl->GetResourceDescription(This,pcsir,ppszDescription)
   11710 #define IShellItemResources_EnumResources(This,ppenumr) (This)->lpVtbl->EnumResources(This,ppenumr)
   11711 #define IShellItemResources_SupportsResource(This,pcsir) (This)->lpVtbl->SupportsResource(This,pcsir)
   11712 #define IShellItemResources_OpenResource(This,pcsir,riid,ppv) (This)->lpVtbl->OpenResource(This,pcsir,riid,ppv)
   11713 #define IShellItemResources_CreateResource(This,pcsir,riid,ppv) (This)->lpVtbl->CreateResource(This,pcsir,riid,ppv)
   11714 #define IShellItemResources_MarkForDelete(This) (This)->lpVtbl->MarkForDelete(This)
   11715 #else
   11716 /*** IUnknown methods ***/
   11717 static FORCEINLINE HRESULT IShellItemResources_QueryInterface(IShellItemResources* This,REFIID riid,void **ppvObject) {
   11718     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   11719 }
   11720 static FORCEINLINE ULONG IShellItemResources_AddRef(IShellItemResources* This) {
   11721     return This->lpVtbl->AddRef(This);
   11722 }
   11723 static FORCEINLINE ULONG IShellItemResources_Release(IShellItemResources* This) {
   11724     return This->lpVtbl->Release(This);
   11725 }
   11726 /*** IShellItemResources methods ***/
   11727 static FORCEINLINE HRESULT IShellItemResources_GetAttributes(IShellItemResources* This,DWORD *pdwAttributes) {
   11728     return This->lpVtbl->GetAttributes(This,pdwAttributes);
   11729 }
   11730 static FORCEINLINE HRESULT IShellItemResources_GetSize(IShellItemResources* This,ULONGLONG *pullSize) {
   11731     return This->lpVtbl->GetSize(This,pullSize);
   11732 }
   11733 static FORCEINLINE HRESULT IShellItemResources_GetTimes(IShellItemResources* This,FILETIME *pftCreation,FILETIME *pftWrite,FILETIME *pftAccess) {
   11734     return This->lpVtbl->GetTimes(This,pftCreation,pftWrite,pftAccess);
   11735 }
   11736 static FORCEINLINE HRESULT IShellItemResources_SetTimes(IShellItemResources* This,const FILETIME *pftCreation,const FILETIME *pftWrite,const FILETIME *pftAccess) {
   11737     return This->lpVtbl->SetTimes(This,pftCreation,pftWrite,pftAccess);
   11738 }
   11739 static FORCEINLINE HRESULT IShellItemResources_GetResourceDescription(IShellItemResources* This,const SHELL_ITEM_RESOURCE *pcsir,LPWSTR *ppszDescription) {
   11740     return This->lpVtbl->GetResourceDescription(This,pcsir,ppszDescription);
   11741 }
   11742 static FORCEINLINE HRESULT IShellItemResources_EnumResources(IShellItemResources* This,IEnumResources **ppenumr) {
   11743     return This->lpVtbl->EnumResources(This,ppenumr);
   11744 }
   11745 static FORCEINLINE HRESULT IShellItemResources_SupportsResource(IShellItemResources* This,const SHELL_ITEM_RESOURCE *pcsir) {
   11746     return This->lpVtbl->SupportsResource(This,pcsir);
   11747 }
   11748 static FORCEINLINE HRESULT IShellItemResources_OpenResource(IShellItemResources* This,const SHELL_ITEM_RESOURCE *pcsir,REFIID riid,void **ppv) {
   11749     return This->lpVtbl->OpenResource(This,pcsir,riid,ppv);
   11750 }
   11751 static FORCEINLINE HRESULT IShellItemResources_CreateResource(IShellItemResources* This,const SHELL_ITEM_RESOURCE *pcsir,REFIID riid,void **ppv) {
   11752     return This->lpVtbl->CreateResource(This,pcsir,riid,ppv);
   11753 }
   11754 static FORCEINLINE HRESULT IShellItemResources_MarkForDelete(IShellItemResources* This) {
   11755     return This->lpVtbl->MarkForDelete(This);
   11756 }
   11757 #endif
   11758 #endif
   11759 
   11760 #endif
   11761 
   11762 HRESULT STDMETHODCALLTYPE IShellItemResources_GetAttributes_Proxy(
   11763     IShellItemResources* This,
   11764     DWORD *pdwAttributes);
   11765 void __RPC_STUB IShellItemResources_GetAttributes_Stub(
   11766     IRpcStubBuffer* This,
   11767     IRpcChannelBuffer* pRpcChannelBuffer,
   11768     PRPC_MESSAGE pRpcMessage,
   11769     DWORD* pdwStubPhase);
   11770 HRESULT STDMETHODCALLTYPE IShellItemResources_GetSize_Proxy(
   11771     IShellItemResources* This,
   11772     ULONGLONG *pullSize);
   11773 void __RPC_STUB IShellItemResources_GetSize_Stub(
   11774     IRpcStubBuffer* This,
   11775     IRpcChannelBuffer* pRpcChannelBuffer,
   11776     PRPC_MESSAGE pRpcMessage,
   11777     DWORD* pdwStubPhase);
   11778 HRESULT STDMETHODCALLTYPE IShellItemResources_GetTimes_Proxy(
   11779     IShellItemResources* This,
   11780     FILETIME *pftCreation,
   11781     FILETIME *pftWrite,
   11782     FILETIME *pftAccess);
   11783 void __RPC_STUB IShellItemResources_GetTimes_Stub(
   11784     IRpcStubBuffer* This,
   11785     IRpcChannelBuffer* pRpcChannelBuffer,
   11786     PRPC_MESSAGE pRpcMessage,
   11787     DWORD* pdwStubPhase);
   11788 HRESULT STDMETHODCALLTYPE IShellItemResources_SetTimes_Proxy(
   11789     IShellItemResources* This,
   11790     const FILETIME *pftCreation,
   11791     const FILETIME *pftWrite,
   11792     const FILETIME *pftAccess);
   11793 void __RPC_STUB IShellItemResources_SetTimes_Stub(
   11794     IRpcStubBuffer* This,
   11795     IRpcChannelBuffer* pRpcChannelBuffer,
   11796     PRPC_MESSAGE pRpcMessage,
   11797     DWORD* pdwStubPhase);
   11798 HRESULT STDMETHODCALLTYPE IShellItemResources_GetResourceDescription_Proxy(
   11799     IShellItemResources* This,
   11800     const SHELL_ITEM_RESOURCE *pcsir,
   11801     LPWSTR *ppszDescription);
   11802 void __RPC_STUB IShellItemResources_GetResourceDescription_Stub(
   11803     IRpcStubBuffer* This,
   11804     IRpcChannelBuffer* pRpcChannelBuffer,
   11805     PRPC_MESSAGE pRpcMessage,
   11806     DWORD* pdwStubPhase);
   11807 HRESULT STDMETHODCALLTYPE IShellItemResources_EnumResources_Proxy(
   11808     IShellItemResources* This,
   11809     IEnumResources **ppenumr);
   11810 void __RPC_STUB IShellItemResources_EnumResources_Stub(
   11811     IRpcStubBuffer* This,
   11812     IRpcChannelBuffer* pRpcChannelBuffer,
   11813     PRPC_MESSAGE pRpcMessage,
   11814     DWORD* pdwStubPhase);
   11815 HRESULT STDMETHODCALLTYPE IShellItemResources_SupportsResource_Proxy(
   11816     IShellItemResources* This,
   11817     const SHELL_ITEM_RESOURCE *pcsir);
   11818 void __RPC_STUB IShellItemResources_SupportsResource_Stub(
   11819     IRpcStubBuffer* This,
   11820     IRpcChannelBuffer* pRpcChannelBuffer,
   11821     PRPC_MESSAGE pRpcMessage,
   11822     DWORD* pdwStubPhase);
   11823 HRESULT STDMETHODCALLTYPE IShellItemResources_OpenResource_Proxy(
   11824     IShellItemResources* This,
   11825     const SHELL_ITEM_RESOURCE *pcsir,
   11826     REFIID riid,
   11827     void **ppv);
   11828 void __RPC_STUB IShellItemResources_OpenResource_Stub(
   11829     IRpcStubBuffer* This,
   11830     IRpcChannelBuffer* pRpcChannelBuffer,
   11831     PRPC_MESSAGE pRpcMessage,
   11832     DWORD* pdwStubPhase);
   11833 HRESULT STDMETHODCALLTYPE IShellItemResources_CreateResource_Proxy(
   11834     IShellItemResources* This,
   11835     const SHELL_ITEM_RESOURCE *pcsir,
   11836     REFIID riid,
   11837     void **ppv);
   11838 void __RPC_STUB IShellItemResources_CreateResource_Stub(
   11839     IRpcStubBuffer* This,
   11840     IRpcChannelBuffer* pRpcChannelBuffer,
   11841     PRPC_MESSAGE pRpcMessage,
   11842     DWORD* pdwStubPhase);
   11843 HRESULT STDMETHODCALLTYPE IShellItemResources_MarkForDelete_Proxy(
   11844     IShellItemResources* This);
   11845 void __RPC_STUB IShellItemResources_MarkForDelete_Stub(
   11846     IRpcStubBuffer* This,
   11847     IRpcChannelBuffer* pRpcChannelBuffer,
   11848     PRPC_MESSAGE pRpcMessage,
   11849     DWORD* pdwStubPhase);
   11850 
   11851 #endif  /* __IShellItemResources_INTERFACE_DEFINED__ */
   11852 
   11853 
   11854 /*****************************************************************************
   11855  * ITransferDestination interface
   11856  */
   11857 #ifndef __ITransferDestination_INTERFACE_DEFINED__
   11858 #define __ITransferDestination_INTERFACE_DEFINED__
   11859 
   11860 DEFINE_GUID(IID_ITransferDestination, 0x48addd32, 0x3ca5, 0x4124, 0xab,0xe3, 0xb5,0xa7,0x25,0x31,0xb2,0x07);
   11861 #if defined(__cplusplus) && !defined(CINTERFACE)
   11862 MIDL_INTERFACE("48addd32-3ca5-4124-abe3-b5a72531b207")
   11863 ITransferDestination : public IUnknown
   11864 {
   11865     virtual HRESULT STDMETHODCALLTYPE Advise(
   11866         ITransferAdviseSink *psink,
   11867         DWORD *pdwCookie) = 0;
   11868 
   11869     virtual HRESULT STDMETHODCALLTYPE Unadvise(
   11870         DWORD dwCookie) = 0;
   11871 
   11872     virtual HRESULT STDMETHODCALLTYPE CreateItem(
   11873         LPCWSTR pszName,
   11874         DWORD dwAttributes,
   11875         ULONGLONG ullSize,
   11876         TRANSFER_SOURCE_FLAGS flags,
   11877         REFIID riidItem,
   11878         void **ppvItem,
   11879         REFIID riidResources,
   11880         void **ppvResources) = 0;
   11881 
   11882 };
   11883 #ifdef __CRT_UUID_DECL
   11884 __CRT_UUID_DECL(ITransferDestination, 0x48addd32, 0x3ca5, 0x4124, 0xab,0xe3, 0xb5,0xa7,0x25,0x31,0xb2,0x07)
   11885 #endif
   11886 #else
   11887 typedef struct ITransferDestinationVtbl {
   11888     BEGIN_INTERFACE
   11889 
   11890     /*** IUnknown methods ***/
   11891     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   11892         ITransferDestination* This,
   11893         REFIID riid,
   11894         void **ppvObject);
   11895 
   11896     ULONG (STDMETHODCALLTYPE *AddRef)(
   11897         ITransferDestination* This);
   11898 
   11899     ULONG (STDMETHODCALLTYPE *Release)(
   11900         ITransferDestination* This);
   11901 
   11902     /*** ITransferDestination methods ***/
   11903     HRESULT (STDMETHODCALLTYPE *Advise)(
   11904         ITransferDestination* This,
   11905         ITransferAdviseSink *psink,
   11906         DWORD *pdwCookie);
   11907 
   11908     HRESULT (STDMETHODCALLTYPE *Unadvise)(
   11909         ITransferDestination* This,
   11910         DWORD dwCookie);
   11911 
   11912     HRESULT (STDMETHODCALLTYPE *CreateItem)(
   11913         ITransferDestination* This,
   11914         LPCWSTR pszName,
   11915         DWORD dwAttributes,
   11916         ULONGLONG ullSize,
   11917         TRANSFER_SOURCE_FLAGS flags,
   11918         REFIID riidItem,
   11919         void **ppvItem,
   11920         REFIID riidResources,
   11921         void **ppvResources);
   11922 
   11923     END_INTERFACE
   11924 } ITransferDestinationVtbl;
   11925 interface ITransferDestination {
   11926     CONST_VTBL ITransferDestinationVtbl* lpVtbl;
   11927 };
   11928 
   11929 #ifdef COBJMACROS
   11930 #ifndef WIDL_C_INLINE_WRAPPERS
   11931 /*** IUnknown methods ***/
   11932 #define ITransferDestination_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   11933 #define ITransferDestination_AddRef(This) (This)->lpVtbl->AddRef(This)
   11934 #define ITransferDestination_Release(This) (This)->lpVtbl->Release(This)
   11935 /*** ITransferDestination methods ***/
   11936 #define