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 ITransferDestination_Advise(This,psink,pdwCookie) (This)->lpVtbl->Advise(This,psink,pdwCookie)
   11937 #define ITransferDestination_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
   11938 #define ITransferDestination_CreateItem(This,pszName,dwAttributes,ullSize,flags,riidItem,ppvItem,riidResources,ppvResources) (This)->lpVtbl->CreateItem(This,pszName,dwAttributes,ullSize,flags,riidItem,ppvItem,riidResources,ppvResources)
   11939 #else
   11940 /*** IUnknown methods ***/
   11941 static FORCEINLINE HRESULT ITransferDestination_QueryInterface(ITransferDestination* This,REFIID riid,void **ppvObject) {
   11942     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   11943 }
   11944 static FORCEINLINE ULONG ITransferDestination_AddRef(ITransferDestination* This) {
   11945     return This->lpVtbl->AddRef(This);
   11946 }
   11947 static FORCEINLINE ULONG ITransferDestination_Release(ITransferDestination* This) {
   11948     return This->lpVtbl->Release(This);
   11949 }
   11950 /*** ITransferDestination methods ***/
   11951 static FORCEINLINE HRESULT ITransferDestination_Advise(ITransferDestination* This,ITransferAdviseSink *psink,DWORD *pdwCookie) {
   11952     return This->lpVtbl->Advise(This,psink,pdwCookie);
   11953 }
   11954 static FORCEINLINE HRESULT ITransferDestination_Unadvise(ITransferDestination* This,DWORD dwCookie) {
   11955     return This->lpVtbl->Unadvise(This,dwCookie);
   11956 }
   11957 static FORCEINLINE HRESULT ITransferDestination_CreateItem(ITransferDestination* This,LPCWSTR pszName,DWORD dwAttributes,ULONGLONG ullSize,TRANSFER_SOURCE_FLAGS flags,REFIID riidItem,void **ppvItem,REFIID riidResources,void **ppvResources) {
   11958     return This->lpVtbl->CreateItem(This,pszName,dwAttributes,ullSize,flags,riidItem,ppvItem,riidResources,ppvResources);
   11959 }
   11960 #endif
   11961 #endif
   11962 
   11963 #endif
   11964 
   11965 HRESULT STDMETHODCALLTYPE ITransferDestination_Advise_Proxy(
   11966     ITransferDestination* This,
   11967     ITransferAdviseSink *psink,
   11968     DWORD *pdwCookie);
   11969 void __RPC_STUB ITransferDestination_Advise_Stub(
   11970     IRpcStubBuffer* This,
   11971     IRpcChannelBuffer* pRpcChannelBuffer,
   11972     PRPC_MESSAGE pRpcMessage,
   11973     DWORD* pdwStubPhase);
   11974 HRESULT STDMETHODCALLTYPE ITransferDestination_Unadvise_Proxy(
   11975     ITransferDestination* This,
   11976     DWORD dwCookie);
   11977 void __RPC_STUB ITransferDestination_Unadvise_Stub(
   11978     IRpcStubBuffer* This,
   11979     IRpcChannelBuffer* pRpcChannelBuffer,
   11980     PRPC_MESSAGE pRpcMessage,
   11981     DWORD* pdwStubPhase);
   11982 HRESULT STDMETHODCALLTYPE ITransferDestination_CreateItem_Proxy(
   11983     ITransferDestination* This,
   11984     LPCWSTR pszName,
   11985     DWORD dwAttributes,
   11986     ULONGLONG ullSize,
   11987     TRANSFER_SOURCE_FLAGS flags,
   11988     REFIID riidItem,
   11989     void **ppvItem,
   11990     REFIID riidResources,
   11991     void **ppvResources);
   11992 void __RPC_STUB ITransferDestination_CreateItem_Stub(
   11993     IRpcStubBuffer* This,
   11994     IRpcChannelBuffer* pRpcChannelBuffer,
   11995     PRPC_MESSAGE pRpcMessage,
   11996     DWORD* pdwStubPhase);
   11997 
   11998 #endif  /* __ITransferDestination_INTERFACE_DEFINED__ */
   11999 
   12000 #if 0
   12001 typedef struct _OVERLAPPED {
   12002     ULONG_PTR Internal;
   12003     ULONG_PTR InternalHigh;
   12004     __C89_NAMELESS union {
   12005         __C89_NAMELESS struct {
   12006             DWORD Offset;
   12007             DWORD OffsetHigh;
   12008         } __C89_NAMELESSSTRUCTNAME;
   12009         PVOID Pointer;
   12010     } __C89_NAMELESSUNIONNAME;
   12011     HANDLE hEvent;
   12012 } OVERLAPPED;
   12013 typedef struct _OVERLAPPED *LPOVERLAPPED;
   12014 #endif
   12015 
   12016 /*****************************************************************************
   12017  * IStreamAsync interface
   12018  */
   12019 #ifndef __IStreamAsync_INTERFACE_DEFINED__
   12020 #define __IStreamAsync_INTERFACE_DEFINED__
   12021 
   12022 DEFINE_GUID(IID_IStreamAsync, 0xfe0b6665, 0xe0ca, 0x49b9, 0xa1,0x78, 0x2b,0x5c,0xb4,0x8d,0x92,0xa5);
   12023 #if defined(__cplusplus) && !defined(CINTERFACE)
   12024 MIDL_INTERFACE("fe0b6665-e0ca-49b9-a178-2b5cb48d92a5")
   12025 IStreamAsync : public IStream
   12026 {
   12027     virtual HRESULT STDMETHODCALLTYPE ReadAsync(
   12028         void *pv,
   12029         DWORD cb,
   12030         LPDWORD pcbRead,
   12031         LPOVERLAPPED lpOverlapped) = 0;
   12032 
   12033     virtual HRESULT STDMETHODCALLTYPE WriteAsync(
   12034         const void *lpBuffer,
   12035         DWORD cb,
   12036         LPDWORD pcbWritten,
   12037         LPOVERLAPPED lpOverlapped) = 0;
   12038 
   12039     virtual HRESULT STDMETHODCALLTYPE OverlappedResult(
   12040         LPOVERLAPPED lpOverlapped,
   12041         LPDWORD lpNumberOfBytesTransferred,
   12042         WINBOOL bWait) = 0;
   12043 
   12044     virtual HRESULT STDMETHODCALLTYPE CancelIo(
   12045         ) = 0;
   12046 
   12047 };
   12048 #ifdef __CRT_UUID_DECL
   12049 __CRT_UUID_DECL(IStreamAsync, 0xfe0b6665, 0xe0ca, 0x49b9, 0xa1,0x78, 0x2b,0x5c,0xb4,0x8d,0x92,0xa5)
   12050 #endif
   12051 #else
   12052 typedef struct IStreamAsyncVtbl {
   12053     BEGIN_INTERFACE
   12054 
   12055     /*** IUnknown methods ***/
   12056     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   12057         IStreamAsync* This,
   12058         REFIID riid,
   12059         void **ppvObject);
   12060 
   12061     ULONG (STDMETHODCALLTYPE *AddRef)(
   12062         IStreamAsync* This);
   12063 
   12064     ULONG (STDMETHODCALLTYPE *Release)(
   12065         IStreamAsync* This);
   12066 
   12067     /*** ISequentialStream methods ***/
   12068     HRESULT (STDMETHODCALLTYPE *Read)(
   12069         IStreamAsync* This,
   12070         void *pv,
   12071         ULONG cb,
   12072         ULONG *pcbRead);
   12073 
   12074     HRESULT (STDMETHODCALLTYPE *Write)(
   12075         IStreamAsync* This,
   12076         const void *pv,
   12077         ULONG cb,
   12078         ULONG *pcbWritten);
   12079 
   12080     /*** IStream methods ***/
   12081     HRESULT (STDMETHODCALLTYPE *Seek)(
   12082         IStreamAsync* This,
   12083         LARGE_INTEGER dlibMove,
   12084         DWORD dwOrigin,
   12085         ULARGE_INTEGER *plibNewPosition);
   12086 
   12087     HRESULT (STDMETHODCALLTYPE *SetSize)(
   12088         IStreamAsync* This,
   12089         ULARGE_INTEGER libNewSize);
   12090 
   12091     HRESULT (STDMETHODCALLTYPE *CopyTo)(
   12092         IStreamAsync* This,
   12093         IStream *pstm,
   12094         ULARGE_INTEGER cb,
   12095         ULARGE_INTEGER *pcbRead,
   12096         ULARGE_INTEGER *pcbWritten);
   12097 
   12098     HRESULT (STDMETHODCALLTYPE *Commit)(
   12099         IStreamAsync* This,
   12100         DWORD grfCommitFlags);
   12101 
   12102     HRESULT (STDMETHODCALLTYPE *Revert)(
   12103         IStreamAsync* This);
   12104 
   12105     HRESULT (STDMETHODCALLTYPE *LockRegion)(
   12106         IStreamAsync* This,
   12107         ULARGE_INTEGER libOffset,
   12108         ULARGE_INTEGER cb,
   12109         DWORD dwLockType);
   12110 
   12111     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
   12112         IStreamAsync* This,
   12113         ULARGE_INTEGER libOffset,
   12114         ULARGE_INTEGER cb,
   12115         DWORD dwLockType);
   12116 
   12117     HRESULT (STDMETHODCALLTYPE *Stat)(
   12118         IStreamAsync* This,
   12119         STATSTG *pstatstg,
   12120         DWORD grfStatFlag);
   12121 
   12122     HRESULT (STDMETHODCALLTYPE *Clone)(
   12123         IStreamAsync* This,
   12124         IStream **ppstm);
   12125 
   12126     /*** IStreamAsync methods ***/
   12127     HRESULT (STDMETHODCALLTYPE *ReadAsync)(
   12128         IStreamAsync* This,
   12129         void *pv,
   12130         DWORD cb,
   12131         LPDWORD pcbRead,
   12132         LPOVERLAPPED lpOverlapped);
   12133 
   12134     HRESULT (STDMETHODCALLTYPE *WriteAsync)(
   12135         IStreamAsync* This,
   12136         const void *lpBuffer,
   12137         DWORD cb,
   12138         LPDWORD pcbWritten,
   12139         LPOVERLAPPED lpOverlapped);
   12140 
   12141     HRESULT (STDMETHODCALLTYPE *OverlappedResult)(
   12142         IStreamAsync* This,
   12143         LPOVERLAPPED lpOverlapped,
   12144         LPDWORD lpNumberOfBytesTransferred,
   12145         WINBOOL bWait);
   12146 
   12147     HRESULT (STDMETHODCALLTYPE *CancelIo)(
   12148         IStreamAsync* This);
   12149 
   12150     END_INTERFACE
   12151 } IStreamAsyncVtbl;
   12152 interface IStreamAsync {
   12153     CONST_VTBL IStreamAsyncVtbl* lpVtbl;
   12154 };
   12155 
   12156 #ifdef COBJMACROS
   12157 #ifndef WIDL_C_INLINE_WRAPPERS
   12158 /*** IUnknown methods ***/
   12159 #define IStreamAsync_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   12160 #define IStreamAsync_AddRef(This) (This)->lpVtbl->AddRef(This)
   12161 #define IStreamAsync_Release(This) (This)->lpVtbl->Release(This)
   12162 /*** ISequentialStream methods ***/
   12163 #define IStreamAsync_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
   12164 #define IStreamAsync_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
   12165 /*** IStream methods ***/
   12166 #define IStreamAsync_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
   12167 #define IStreamAsync_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
   12168 #define IStreamAsync_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
   12169 #define IStreamAsync_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
   12170 #define IStreamAsync_Revert(This) (This)->lpVtbl->Revert(This)
   12171 #define IStreamAsync_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
   12172 #define IStreamAsync_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
   12173 #define IStreamAsync_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
   12174 #define IStreamAsync_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
   12175 /*** IStreamAsync methods ***/
   12176 #define IStreamAsync_ReadAsync(This,pv,cb,pcbRead,lpOverlapped) (This)->lpVtbl->ReadAsync(This,pv,cb,pcbRead,lpOverlapped)
   12177 #define IStreamAsync_WriteAsync(This,lpBuffer,cb,pcbWritten,lpOverlapped) (This)->lpVtbl->WriteAsync(This,lpBuffer,cb,pcbWritten,lpOverlapped)
   12178 #define IStreamAsync_OverlappedResult(This,lpOverlapped,lpNumberOfBytesTransferred,bWait) (This)->lpVtbl->OverlappedResult(This,lpOverlapped,lpNumberOfBytesTransferred,bWait)
   12179 #define IStreamAsync_CancelIo(This) (This)->lpVtbl->CancelIo(This)
   12180 #else
   12181 /*** IUnknown methods ***/
   12182 static FORCEINLINE HRESULT IStreamAsync_QueryInterface(IStreamAsync* This,REFIID riid,void **ppvObject) {
   12183     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   12184 }
   12185 static FORCEINLINE ULONG IStreamAsync_AddRef(IStreamAsync* This) {
   12186     return This->lpVtbl->AddRef(This);
   12187 }
   12188 static FORCEINLINE ULONG IStreamAsync_Release(IStreamAsync* This) {
   12189     return This->lpVtbl->Release(This);
   12190 }
   12191 /*** ISequentialStream methods ***/
   12192 static FORCEINLINE HRESULT IStreamAsync_Read(IStreamAsync* This,void *pv,ULONG cb,ULONG *pcbRead) {
   12193     return This->lpVtbl->Read(This,pv,cb,pcbRead);
   12194 }
   12195 static FORCEINLINE HRESULT IStreamAsync_Write(IStreamAsync* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
   12196     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
   12197 }
   12198 /*** IStream methods ***/
   12199 static FORCEINLINE HRESULT IStreamAsync_Seek(IStreamAsync* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
   12200     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
   12201 }
   12202 static FORCEINLINE HRESULT IStreamAsync_SetSize(IStreamAsync* This,ULARGE_INTEGER libNewSize) {
   12203     return This->lpVtbl->SetSize(This,libNewSize);
   12204 }
   12205 static FORCEINLINE HRESULT IStreamAsync_CopyTo(IStreamAsync* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
   12206     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
   12207 }
   12208 static FORCEINLINE HRESULT IStreamAsync_Commit(IStreamAsync* This,DWORD grfCommitFlags) {
   12209     return This->lpVtbl->Commit(This,grfCommitFlags);
   12210 }
   12211 static FORCEINLINE HRESULT IStreamAsync_Revert(IStreamAsync* This) {
   12212     return This->lpVtbl->Revert(This);
   12213 }
   12214 static FORCEINLINE HRESULT IStreamAsync_LockRegion(IStreamAsync* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   12215     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
   12216 }
   12217 static FORCEINLINE HRESULT IStreamAsync_UnlockRegion(IStreamAsync* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   12218     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
   12219 }
   12220 static FORCEINLINE HRESULT IStreamAsync_Stat(IStreamAsync* This,STATSTG *pstatstg,DWORD grfStatFlag) {
   12221     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
   12222 }
   12223 static FORCEINLINE HRESULT IStreamAsync_Clone(IStreamAsync* This,IStream **ppstm) {
   12224     return This->lpVtbl->Clone(This,ppstm);
   12225 }
   12226 /*** IStreamAsync methods ***/
   12227 static FORCEINLINE HRESULT IStreamAsync_ReadAsync(IStreamAsync* This,void *pv,DWORD cb,LPDWORD pcbRead,LPOVERLAPPED lpOverlapped) {
   12228     return This->lpVtbl->ReadAsync(This,pv,cb,pcbRead,lpOverlapped);
   12229 }
   12230 static FORCEINLINE HRESULT IStreamAsync_WriteAsync(IStreamAsync* This,const void *lpBuffer,DWORD cb,LPDWORD pcbWritten,LPOVERLAPPED lpOverlapped) {
   12231     return This->lpVtbl->WriteAsync(This,lpBuffer,cb,pcbWritten,lpOverlapped);
   12232 }
   12233 static FORCEINLINE HRESULT IStreamAsync_OverlappedResult(IStreamAsync* This,LPOVERLAPPED lpOverlapped,LPDWORD lpNumberOfBytesTransferred,WINBOOL bWait) {
   12234     return This->lpVtbl->OverlappedResult(This,lpOverlapped,lpNumberOfBytesTransferred,bWait);
   12235 }
   12236 static FORCEINLINE HRESULT IStreamAsync_CancelIo(IStreamAsync* This) {
   12237     return This->lpVtbl->CancelIo(This);
   12238 }
   12239 #endif
   12240 #endif
   12241 
   12242 #endif
   12243 
   12244 HRESULT STDMETHODCALLTYPE IStreamAsync_ReadAsync_Proxy(
   12245     IStreamAsync* This,
   12246     void *pv,
   12247     DWORD cb,
   12248     LPDWORD pcbRead,
   12249     LPOVERLAPPED lpOverlapped);
   12250 void __RPC_STUB IStreamAsync_ReadAsync_Stub(
   12251     IRpcStubBuffer* This,
   12252     IRpcChannelBuffer* pRpcChannelBuffer,
   12253     PRPC_MESSAGE pRpcMessage,
   12254     DWORD* pdwStubPhase);
   12255 HRESULT STDMETHODCALLTYPE IStreamAsync_WriteAsync_Proxy(
   12256     IStreamAsync* This,
   12257     const void *lpBuffer,
   12258     DWORD cb,
   12259     LPDWORD pcbWritten,
   12260     LPOVERLAPPED lpOverlapped);
   12261 void __RPC_STUB IStreamAsync_WriteAsync_Stub(
   12262     IRpcStubBuffer* This,
   12263     IRpcChannelBuffer* pRpcChannelBuffer,
   12264     PRPC_MESSAGE pRpcMessage,
   12265     DWORD* pdwStubPhase);
   12266 HRESULT STDMETHODCALLTYPE IStreamAsync_OverlappedResult_Proxy(
   12267     IStreamAsync* This,
   12268     LPOVERLAPPED lpOverlapped,
   12269     LPDWORD lpNumberOfBytesTransferred,
   12270     WINBOOL bWait);
   12271 void __RPC_STUB IStreamAsync_OverlappedResult_Stub(
   12272     IRpcStubBuffer* This,
   12273     IRpcChannelBuffer* pRpcChannelBuffer,
   12274     PRPC_MESSAGE pRpcMessage,
   12275     DWORD* pdwStubPhase);
   12276 HRESULT STDMETHODCALLTYPE IStreamAsync_CancelIo_Proxy(
   12277     IStreamAsync* This);
   12278 void __RPC_STUB IStreamAsync_CancelIo_Stub(
   12279     IRpcStubBuffer* This,
   12280     IRpcChannelBuffer* pRpcChannelBuffer,
   12281     PRPC_MESSAGE pRpcMessage,
   12282     DWORD* pdwStubPhase);
   12283 
   12284 #endif  /* __IStreamAsync_INTERFACE_DEFINED__ */
   12285 
   12286 
   12287 /*****************************************************************************
   12288  * IStreamUnbufferedInfo interface
   12289  */
   12290 #ifndef __IStreamUnbufferedInfo_INTERFACE_DEFINED__
   12291 #define __IStreamUnbufferedInfo_INTERFACE_DEFINED__
   12292 
   12293 DEFINE_GUID(IID_IStreamUnbufferedInfo, 0x8a68fdda, 0x1fdc, 0x4c20, 0x8c,0xeb, 0x41,0x66,0x43,0xb5,0xa6,0x25);
   12294 #if defined(__cplusplus) && !defined(CINTERFACE)
   12295 MIDL_INTERFACE("8a68fdda-1fdc-4c20-8ceb-416643b5a625")
   12296 IStreamUnbufferedInfo : public IUnknown
   12297 {
   12298     virtual HRESULT STDMETHODCALLTYPE GetSectorSize(
   12299         ULONG *pcbSectorSize) = 0;
   12300 
   12301 };
   12302 #ifdef __CRT_UUID_DECL
   12303 __CRT_UUID_DECL(IStreamUnbufferedInfo, 0x8a68fdda, 0x1fdc, 0x4c20, 0x8c,0xeb, 0x41,0x66,0x43,0xb5,0xa6,0x25)
   12304 #endif
   12305 #else
   12306 typedef struct IStreamUnbufferedInfoVtbl {
   12307     BEGIN_INTERFACE
   12308 
   12309     /*** IUnknown methods ***/
   12310     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   12311         IStreamUnbufferedInfo* This,
   12312         REFIID riid,
   12313         void **ppvObject);
   12314 
   12315     ULONG (STDMETHODCALLTYPE *AddRef)(
   12316         IStreamUnbufferedInfo* This);
   12317 
   12318     ULONG (STDMETHODCALLTYPE *Release)(
   12319         IStreamUnbufferedInfo* This);
   12320 
   12321     /*** IStreamUnbufferedInfo methods ***/
   12322     HRESULT (STDMETHODCALLTYPE *GetSectorSize)(
   12323         IStreamUnbufferedInfo* This,
   12324         ULONG *pcbSectorSize);
   12325 
   12326     END_INTERFACE
   12327 } IStreamUnbufferedInfoVtbl;
   12328 interface IStreamUnbufferedInfo {
   12329     CONST_VTBL IStreamUnbufferedInfoVtbl* lpVtbl;
   12330 };
   12331 
   12332 #ifdef COBJMACROS
   12333 #ifndef WIDL_C_INLINE_WRAPPERS
   12334 /*** IUnknown methods ***/
   12335 #define IStreamUnbufferedInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   12336 #define IStreamUnbufferedInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
   12337 #define IStreamUnbufferedInfo_Release(This) (This)->lpVtbl->Release(This)
   12338 /*** IStreamUnbufferedInfo methods ***/
   12339 #define IStreamUnbufferedInfo_GetSectorSize(This,pcbSectorSize) (This)->lpVtbl->GetSectorSize(This,pcbSectorSize)
   12340 #else
   12341 /*** IUnknown methods ***/
   12342 static FORCEINLINE HRESULT IStreamUnbufferedInfo_QueryInterface(IStreamUnbufferedInfo* This,REFIID riid,void **ppvObject) {
   12343     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   12344 }
   12345 static FORCEINLINE ULONG IStreamUnbufferedInfo_AddRef(IStreamUnbufferedInfo* This) {
   12346     return This->lpVtbl->AddRef(This);
   12347 }
   12348 static FORCEINLINE ULONG IStreamUnbufferedInfo_Release(IStreamUnbufferedInfo* This) {
   12349     return This->lpVtbl->Release(This);
   12350 }
   12351 /*** IStreamUnbufferedInfo methods ***/
   12352 static FORCEINLINE HRESULT IStreamUnbufferedInfo_GetSectorSize(IStreamUnbufferedInfo* This,ULONG *pcbSectorSize) {
   12353     return This->lpVtbl->GetSectorSize(This,pcbSectorSize);
   12354 }
   12355 #endif
   12356 #endif
   12357 
   12358 #endif
   12359 
   12360 HRESULT STDMETHODCALLTYPE IStreamUnbufferedInfo_GetSectorSize_Proxy(
   12361     IStreamUnbufferedInfo* This,
   12362     ULONG *pcbSectorSize);
   12363 void __RPC_STUB IStreamUnbufferedInfo_GetSectorSize_Stub(
   12364     IRpcStubBuffer* This,
   12365     IRpcChannelBuffer* pRpcChannelBuffer,
   12366     PRPC_MESSAGE pRpcMessage,
   12367     DWORD* pdwStubPhase);
   12368 
   12369 #endif  /* __IStreamUnbufferedInfo_INTERFACE_DEFINED__ */
   12370 
   12371 
   12372 #if _WIN32_IE >= _WIN32_IE_IE70
   12373 /*****************************************************************************
   12374  * IFileOperationProgressSink interface
   12375  */
   12376 #ifndef __IFileOperationProgressSink_INTERFACE_DEFINED__
   12377 #define __IFileOperationProgressSink_INTERFACE_DEFINED__
   12378 
   12379 DEFINE_GUID(IID_IFileOperationProgressSink, 0x04b0f1a7, 0x9490, 0x44bc, 0x96,0xe1, 0x42,0x96,0xa3,0x12,0x52,0xe2);
   12380 #if defined(__cplusplus) && !defined(CINTERFACE)
   12381 MIDL_INTERFACE("04b0f1a7-9490-44bc-96e1-4296a31252e2")
   12382 IFileOperationProgressSink : public IUnknown
   12383 {
   12384     virtual HRESULT STDMETHODCALLTYPE StartOperations(
   12385         ) = 0;
   12386 
   12387     virtual HRESULT STDMETHODCALLTYPE FinishOperations(
   12388         HRESULT hrResult) = 0;
   12389 
   12390     virtual HRESULT STDMETHODCALLTYPE PreRenameItem(
   12391         DWORD dwFlags,
   12392         IShellItem *psiItem,
   12393         LPCWSTR pszNewName) = 0;
   12394 
   12395     virtual HRESULT STDMETHODCALLTYPE PostRenameItem(
   12396         DWORD dwFlags,
   12397         IShellItem *psiItem,
   12398         LPCWSTR pszNewName,
   12399         HRESULT hrRename,
   12400         IShellItem *psiNewlyCreated) = 0;
   12401 
   12402     virtual HRESULT STDMETHODCALLTYPE PreMoveItem(
   12403         DWORD dwFlags,
   12404         IShellItem *psiItem,
   12405         IShellItem *psiDestinationFolder,
   12406         LPCWSTR pszNewName) = 0;
   12407 
   12408     virtual HRESULT STDMETHODCALLTYPE PostMoveItem(
   12409         DWORD dwFlags,
   12410         IShellItem *psiItem,
   12411         IShellItem *psiDestinationFolder,
   12412         LPCWSTR pszNewName,
   12413         HRESULT hrMove,
   12414         IShellItem *psiNewlyCreated) = 0;
   12415 
   12416     virtual HRESULT STDMETHODCALLTYPE PreCopyItem(
   12417         DWORD dwFlags,
   12418         IShellItem *psiItem,
   12419         IShellItem *psiDestinationFolder,
   12420         LPCWSTR pszNewName) = 0;
   12421 
   12422     virtual HRESULT STDMETHODCALLTYPE PostCopyItem(
   12423         DWORD dwFlags,
   12424         IShellItem *psiItem,
   12425         IShellItem *psiDestinationFolder,
   12426         LPCWSTR pszNewName,
   12427         HRESULT hrCopy,
   12428         IShellItem *psiNewlyCreated) = 0;
   12429 
   12430     virtual HRESULT STDMETHODCALLTYPE PreDeleteItem(
   12431         DWORD dwFlags,
   12432         IShellItem *psiItem) = 0;
   12433 
   12434     virtual HRESULT STDMETHODCALLTYPE PostDeleteItem(
   12435         DWORD dwFlags,
   12436         IShellItem *psiItem,
   12437         HRESULT hrDelete,
   12438         IShellItem *psiNewlyCreated) = 0;
   12439 
   12440     virtual HRESULT STDMETHODCALLTYPE PreNewItem(
   12441         DWORD dwFlags,
   12442         IShellItem *psiDestinationFolder,
   12443         LPCWSTR pszNewName) = 0;
   12444 
   12445     virtual HRESULT STDMETHODCALLTYPE PostNewItem(
   12446         DWORD dwFlags,
   12447         IShellItem *psiDestinationFolder,
   12448         LPCWSTR pszNewName,
   12449         LPCWSTR pszTemplateName,
   12450         DWORD dwFileAttributes,
   12451         HRESULT hrNew,
   12452         IShellItem *psiNewItem) = 0;
   12453 
   12454     virtual HRESULT STDMETHODCALLTYPE UpdateProgress(
   12455         UINT iWorkTotal,
   12456         UINT iWorkSoFar) = 0;
   12457 
   12458     virtual HRESULT STDMETHODCALLTYPE ResetTimer(
   12459         ) = 0;
   12460 
   12461     virtual HRESULT STDMETHODCALLTYPE PauseTimer(
   12462         ) = 0;
   12463 
   12464     virtual HRESULT STDMETHODCALLTYPE ResumeTimer(
   12465         ) = 0;
   12466 
   12467 };
   12468 #ifdef __CRT_UUID_DECL
   12469 __CRT_UUID_DECL(IFileOperationProgressSink, 0x04b0f1a7, 0x9490, 0x44bc, 0x96,0xe1, 0x42,0x96,0xa3,0x12,0x52,0xe2)
   12470 #endif
   12471 #else
   12472 typedef struct IFileOperationProgressSinkVtbl {
   12473     BEGIN_INTERFACE
   12474 
   12475     /*** IUnknown methods ***/
   12476     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   12477         IFileOperationProgressSink* This,
   12478         REFIID riid,
   12479         void **ppvObject);
   12480 
   12481     ULONG (STDMETHODCALLTYPE *AddRef)(
   12482         IFileOperationProgressSink* This);
   12483 
   12484     ULONG (STDMETHODCALLTYPE *Release)(
   12485         IFileOperationProgressSink* This);
   12486 
   12487     /*** IFileOperationProgressSink methods ***/
   12488     HRESULT (STDMETHODCALLTYPE *StartOperations)(
   12489         IFileOperationProgressSink* This);
   12490 
   12491     HRESULT (STDMETHODCALLTYPE *FinishOperations)(
   12492         IFileOperationProgressSink* This,
   12493         HRESULT hrResult);
   12494 
   12495     HRESULT (STDMETHODCALLTYPE *PreRenameItem)(
   12496         IFileOperationProgressSink* This,
   12497         DWORD dwFlags,
   12498         IShellItem *psiItem,
   12499         LPCWSTR pszNewName);
   12500 
   12501     HRESULT (STDMETHODCALLTYPE *PostRenameItem)(
   12502         IFileOperationProgressSink* This,
   12503         DWORD dwFlags,
   12504         IShellItem *psiItem,
   12505         LPCWSTR pszNewName,
   12506         HRESULT hrRename,
   12507         IShellItem *psiNewlyCreated);
   12508 
   12509     HRESULT (STDMETHODCALLTYPE *PreMoveItem)(
   12510         IFileOperationProgressSink* This,
   12511         DWORD dwFlags,
   12512         IShellItem *psiItem,
   12513         IShellItem *psiDestinationFolder,
   12514         LPCWSTR pszNewName);
   12515 
   12516     HRESULT (STDMETHODCALLTYPE *PostMoveItem)(
   12517         IFileOperationProgressSink* This,
   12518         DWORD dwFlags,
   12519         IShellItem *psiItem,
   12520         IShellItem *psiDestinationFolder,
   12521         LPCWSTR pszNewName,
   12522         HRESULT hrMove,
   12523         IShellItem *psiNewlyCreated);
   12524 
   12525     HRESULT (STDMETHODCALLTYPE *PreCopyItem)(
   12526         IFileOperationProgressSink* This,
   12527         DWORD dwFlags,
   12528         IShellItem *psiItem,
   12529         IShellItem *psiDestinationFolder,
   12530         LPCWSTR pszNewName);
   12531 
   12532     HRESULT (STDMETHODCALLTYPE *PostCopyItem)(
   12533         IFileOperationProgressSink* This,
   12534         DWORD dwFlags,
   12535         IShellItem *psiItem,
   12536         IShellItem *psiDestinationFolder,
   12537         LPCWSTR pszNewName,
   12538         HRESULT hrCopy,
   12539         IShellItem *psiNewlyCreated);
   12540 
   12541     HRESULT (STDMETHODCALLTYPE *PreDeleteItem)(
   12542         IFileOperationProgressSink* This,
   12543         DWORD dwFlags,
   12544         IShellItem *psiItem);
   12545 
   12546     HRESULT (STDMETHODCALLTYPE *PostDeleteItem)(
   12547         IFileOperationProgressSink* This,
   12548         DWORD dwFlags,
   12549         IShellItem *psiItem,
   12550         HRESULT hrDelete,
   12551         IShellItem *psiNewlyCreated);
   12552 
   12553     HRESULT (STDMETHODCALLTYPE *PreNewItem)(
   12554         IFileOperationProgressSink* This,
   12555         DWORD dwFlags,
   12556         IShellItem *psiDestinationFolder,
   12557         LPCWSTR pszNewName);
   12558 
   12559     HRESULT (STDMETHODCALLTYPE *PostNewItem)(
   12560         IFileOperationProgressSink* This,
   12561         DWORD dwFlags,
   12562         IShellItem *psiDestinationFolder,
   12563         LPCWSTR pszNewName,
   12564         LPCWSTR pszTemplateName,
   12565         DWORD dwFileAttributes,
   12566         HRESULT hrNew,
   12567         IShellItem *psiNewItem);
   12568 
   12569     HRESULT (STDMETHODCALLTYPE *UpdateProgress)(
   12570         IFileOperationProgressSink* This,
   12571         UINT iWorkTotal,
   12572         UINT iWorkSoFar);
   12573 
   12574     HRESULT (STDMETHODCALLTYPE *ResetTimer)(
   12575         IFileOperationProgressSink* This);
   12576 
   12577     HRESULT (STDMETHODCALLTYPE *PauseTimer)(
   12578         IFileOperationProgressSink* This);
   12579 
   12580     HRESULT (STDMETHODCALLTYPE *ResumeTimer)(
   12581         IFileOperationProgressSink* This);
   12582 
   12583     END_INTERFACE
   12584 } IFileOperationProgressSinkVtbl;
   12585 interface IFileOperationProgressSink {
   12586     CONST_VTBL IFileOperationProgressSinkVtbl* lpVtbl;
   12587 };
   12588 
   12589 #ifdef COBJMACROS
   12590 #ifndef WIDL_C_INLINE_WRAPPERS
   12591 /*** IUnknown methods ***/
   12592 #define IFileOperationProgressSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   12593 #define IFileOperationProgressSink_AddRef(This) (This)->lpVtbl->AddRef(This)
   12594 #define IFileOperationProgressSink_Release(This) (This)->lpVtbl->Release(This)
   12595 /*** IFileOperationProgressSink methods ***/
   12596 #define IFileOperationProgressSink_StartOperations(This) (This)->lpVtbl->StartOperations(This)
   12597 #define IFileOperationProgressSink_FinishOperations(This,hrResult) (This)->lpVtbl->FinishOperations(This,hrResult)
   12598 #define IFileOperationProgressSink_PreRenameItem(This,dwFlags,psiItem,pszNewName) (This)->lpVtbl->PreRenameItem(This,dwFlags,psiItem,pszNewName)
   12599 #define IFileOperationProgressSink_PostRenameItem(This,dwFlags,psiItem,pszNewName,hrRename,psiNewlyCreated) (This)->lpVtbl->PostRenameItem(This,dwFlags,psiItem,pszNewName,hrRename,psiNewlyCreated)
   12600 #define IFileOperationProgressSink_PreMoveItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName) (This)->lpVtbl->PreMoveItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName)
   12601 #define IFileOperationProgressSink_PostMoveItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName,hrMove,psiNewlyCreated) (This)->lpVtbl->PostMoveItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName,hrMove,psiNewlyCreated)
   12602 #define IFileOperationProgressSink_PreCopyItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName) (This)->lpVtbl->PreCopyItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName)
   12603 #define IFileOperationProgressSink_PostCopyItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName,hrCopy,psiNewlyCreated) (This)->lpVtbl->PostCopyItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName,hrCopy,psiNewlyCreated)
   12604 #define IFileOperationProgressSink_PreDeleteItem(This,dwFlags,psiItem) (This)->lpVtbl->PreDeleteItem(This,dwFlags,psiItem)
   12605 #define IFileOperationProgressSink_PostDeleteItem(This,dwFlags,psiItem,hrDelete,psiNewlyCreated) (This)->lpVtbl->PostDeleteItem(This,dwFlags,psiItem,hrDelete,psiNewlyCreated)
   12606 #define IFileOperationProgressSink_PreNewItem(This,dwFlags,psiDestinationFolder,pszNewName) (This)->lpVtbl->PreNewItem(This,dwFlags,psiDestinationFolder,pszNewName)
   12607 #define IFileOperationProgressSink_PostNewItem(This,dwFlags,psiDestinationFolder,pszNewName,pszTemplateName,dwFileAttributes,hrNew,psiNewItem) (This)->lpVtbl->PostNewItem(This,dwFlags,psiDestinationFolder,pszNewName,pszTemplateName,dwFileAttributes,hrNew,psiNewItem)
   12608 #define IFileOperationProgressSink_UpdateProgress(This,iWorkTotal,iWorkSoFar) (This)->lpVtbl->UpdateProgress(This,iWorkTotal,iWorkSoFar)
   12609 #define IFileOperationProgressSink_ResetTimer(This) (This)->lpVtbl->ResetTimer(This)
   12610 #define IFileOperationProgressSink_PauseTimer(This) (This)->lpVtbl->PauseTimer(This)
   12611 #define IFileOperationProgressSink_ResumeTimer(This) (This)->lpVtbl->ResumeTimer(This)
   12612 #else
   12613 /*** IUnknown methods ***/
   12614 static FORCEINLINE HRESULT IFileOperationProgressSink_QueryInterface(IFileOperationProgressSink* This,REFIID riid,void **ppvObject) {
   12615     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   12616 }
   12617 static FORCEINLINE ULONG IFileOperationProgressSink_AddRef(IFileOperationProgressSink* This) {
   12618     return This->lpVtbl->AddRef(This);
   12619 }
   12620 static FORCEINLINE ULONG IFileOperationProgressSink_Release(IFileOperationProgressSink* This) {
   12621     return This->lpVtbl->Release(This);
   12622 }
   12623 /*** IFileOperationProgressSink methods ***/
   12624 static FORCEINLINE HRESULT IFileOperationProgressSink_StartOperations(IFileOperationProgressSink* This) {
   12625     return This->lpVtbl->StartOperations(This);
   12626 }
   12627 static FORCEINLINE HRESULT IFileOperationProgressSink_FinishOperations(IFileOperationProgressSink* This,HRESULT hrResult) {
   12628     return This->lpVtbl->FinishOperations(This,hrResult);
   12629 }
   12630 static FORCEINLINE HRESULT IFileOperationProgressSink_PreRenameItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem,LPCWSTR pszNewName) {
   12631     return This->lpVtbl->PreRenameItem(This,dwFlags,psiItem,pszNewName);
   12632 }
   12633 static FORCEINLINE HRESULT IFileOperationProgressSink_PostRenameItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem,LPCWSTR pszNewName,HRESULT hrRename,IShellItem *psiNewlyCreated) {
   12634     return This->lpVtbl->PostRenameItem(This,dwFlags,psiItem,pszNewName,hrRename,psiNewlyCreated);
   12635 }
   12636 static FORCEINLINE HRESULT IFileOperationProgressSink_PreMoveItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem,IShellItem *psiDestinationFolder,LPCWSTR pszNewName) {
   12637     return This->lpVtbl->PreMoveItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName);
   12638 }
   12639 static FORCEINLINE HRESULT IFileOperationProgressSink_PostMoveItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem,IShellItem *psiDestinationFolder,LPCWSTR pszNewName,HRESULT hrMove,IShellItem *psiNewlyCreated) {
   12640     return This->lpVtbl->PostMoveItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName,hrMove,psiNewlyCreated);
   12641 }
   12642 static FORCEINLINE HRESULT IFileOperationProgressSink_PreCopyItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem,IShellItem *psiDestinationFolder,LPCWSTR pszNewName) {
   12643     return This->lpVtbl->PreCopyItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName);
   12644 }
   12645 static FORCEINLINE HRESULT IFileOperationProgressSink_PostCopyItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem,IShellItem *psiDestinationFolder,LPCWSTR pszNewName,HRESULT hrCopy,IShellItem *psiNewlyCreated) {
   12646     return This->lpVtbl->PostCopyItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName,hrCopy,psiNewlyCreated);
   12647 }
   12648 static FORCEINLINE HRESULT IFileOperationProgressSink_PreDeleteItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem) {
   12649     return This->lpVtbl->PreDeleteItem(This,dwFlags,psiItem);
   12650 }
   12651 static FORCEINLINE HRESULT IFileOperationProgressSink_PostDeleteItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem,HRESULT hrDelete,IShellItem *psiNewlyCreated) {
   12652     return This->lpVtbl->PostDeleteItem(This,dwFlags,psiItem,hrDelete,psiNewlyCreated);
   12653 }
   12654 static FORCEINLINE HRESULT IFileOperationProgressSink_PreNewItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiDestinationFolder,LPCWSTR pszNewName) {
   12655     return This->lpVtbl->PreNewItem(This,dwFlags,psiDestinationFolder,pszNewName);
   12656 }
   12657 static FORCEINLINE HRESULT IFileOperationProgressSink_PostNewItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiDestinationFolder,LPCWSTR pszNewName,LPCWSTR pszTemplateName,DWORD dwFileAttributes,HRESULT hrNew,IShellItem *psiNewItem) {
   12658     return This->lpVtbl->PostNewItem(This,dwFlags,psiDestinationFolder,pszNewName,pszTemplateName,dwFileAttributes,hrNew,psiNewItem);
   12659 }
   12660 static FORCEINLINE HRESULT IFileOperationProgressSink_UpdateProgress(IFileOperationProgressSink* This,UINT iWorkTotal,UINT iWorkSoFar) {
   12661     return This->lpVtbl->UpdateProgress(This,iWorkTotal,iWorkSoFar);
   12662 }
   12663 static FORCEINLINE HRESULT IFileOperationProgressSink_ResetTimer(IFileOperationProgressSink* This) {
   12664     return This->lpVtbl->ResetTimer(This);
   12665 }
   12666 static FORCEINLINE HRESULT IFileOperationProgressSink_PauseTimer(IFileOperationProgressSink* This) {
   12667     return This->lpVtbl->PauseTimer(This);
   12668 }
   12669 static FORCEINLINE HRESULT IFileOperationProgressSink_ResumeTimer(IFileOperationProgressSink* This) {
   12670     return This->lpVtbl->ResumeTimer(This);
   12671 }
   12672 #endif
   12673 #endif
   12674 
   12675 #endif
   12676 
   12677 HRESULT STDMETHODCALLTYPE IFileOperationProgressSink_StartOperations_Proxy(
   12678     IFileOperationProgressSink* This);
   12679 void __RPC_STUB IFileOperationProgressSink_StartOperations_Stub(
   12680     IRpcStubBuffer* This,
   12681     IRpcChannelBuffer* pRpcChannelBuffer,
   12682     PRPC_MESSAGE pRpcMessage,
   12683     DWORD* pdwStubPhase);
   12684 HRESULT STDMETHODCALLTYPE IFileOperationProgressSink_FinishOperations_Proxy(
   12685     IFileOperationProgressSink* This,
   12686     HRESULT hrResult);
   12687 void __RPC_STUB IFileOperationProgressSink_FinishOperations_Stub(
   12688     IRpcStubBuffer* This,
   12689     IRpcChannelBuffer* pRpcChannelBuffer,
   12690     PRPC_MESSAGE pRpcMessage,
   12691     DWORD* pdwStubPhase);
   12692 HRESULT STDMETHODCALLTYPE IFileOperationProgressSink_PreRenameItem_Proxy(
   12693     IFileOperationProgressSink* This,
   12694     DWORD dwFlags,
   12695     IShellItem *psiItem,
   12696     LPCWSTR pszNewName);
   12697 void __RPC_STUB IFileOperationProgressSink_PreRenameItem_Stub(
   12698     IRpcStubBuffer* This,
   12699     IRpcChannelBuffer* pRpcChannelBuffer,
   12700     PRPC_MESSAGE pRpcMessage,
   12701     DWORD* pdwStubPhase);
   12702 HRESULT STDMETHODCALLTYPE IFileOperationProgressSink_PostRenameItem_Proxy(
   12703     IFileOperationProgressSink* This,
   12704     DWORD dwFlags,
   12705     IShellItem *psiItem,
   12706     LPCWSTR pszNewName,
   12707     HRESULT hrRename,
   12708     IShellItem *psiNewlyCreated);
   12709 void __RPC_STUB IFileOperationProgressSink_PostRenameItem_Stub(
   12710     IRpcStubBuffer* This,
   12711     IRpcChannelBuffer* pRpcChannelBuffer,
   12712     PRPC_MESSAGE pRpcMessage,
   12713     DWORD* pdwStubPhase);
   12714 HRESULT STDMETHODCALLTYPE IFileOperationProgressSink_PreMoveItem_Proxy(
   12715     IFileOperationProgressSink* This,
   12716     DWORD dwFlags,
   12717     IShellItem *psiItem,
   12718     IShellItem *psiDestinationFolder,
   12719     LPCWSTR pszNewName);
   12720 void __RPC_STUB IFileOperationProgressSink_PreMoveItem_Stub(
   12721     IRpcStubBuffer* This,
   12722     IRpcChannelBuffer* pRpcChannelBuffer,
   12723     PRPC_MESSAGE pRpcMessage,
   12724     DWORD* pdwStubPhase);
   12725 HRESULT STDMETHODCALLTYPE IFileOperationProgressSink_PostMoveItem_Proxy(
   12726     IFileOperationProgressSink* This,
   12727     DWORD dwFlags,
   12728     IShellItem *psiItem,
   12729     IShellItem *psiDestinationFolder,
   12730     LPCWSTR pszNewName,
   12731     HRESULT hrMove,
   12732     IShellItem *psiNewlyCreated);
   12733 void __RPC_STUB IFileOperationProgressSink_PostMoveItem_Stub(
   12734     IRpcStubBuffer* This,
   12735     IRpcChannelBuffer* pRpcChannelBuffer,
   12736     PRPC_MESSAGE pRpcMessage,
   12737     DWORD* pdwStubPhase);
   12738 HRESULT STDMETHODCALLTYPE IFileOperationProgressSink_PreCopyItem_Proxy(
   12739     IFileOperationProgressSink* This,
   12740     DWORD dwFlags,
   12741     IShellItem *psiItem,
   12742     IShellItem *psiDestinationFolder,
   12743     LPCWSTR pszNewName);
   12744 void __RPC_STUB IFileOperationProgressSink_PreCopyItem_Stub(
   12745     IRpcStubBuffer* This,
   12746     IRpcChannelBuffer* pRpcChannelBuffer,
   12747     PRPC_MESSAGE pRpcMessage,
   12748     DWORD* pdwStubPhase);
   12749 HRESULT STDMETHODCALLTYPE IFileOperationProgressSink_PostCopyItem_Proxy(
   12750     IFileOperationProgressSink* This,
   12751     DWORD dwFlags,
   12752     IShellItem *psiItem,
   12753     IShellItem *psiDestinationFolder,
   12754     LPCWSTR pszNewName,
   12755     HRESULT hrCopy,
   12756     IShellItem *psiNewlyCreated);
   12757 void __RPC_STUB IFileOperationProgressSink_PostCopyItem_Stub(
   12758     IRpcStubBuffer* This,
   12759     IRpcChannelBuffer* pRpcChannelBuffer,
   12760     PRPC_MESSAGE pRpcMessage,
   12761     DWORD* pdwStubPhase);
   12762 HRESULT STDMETHODCALLTYPE IFileOperationProgressSink_PreDeleteItem_Proxy(
   12763     IFileOperationProgressSink* This,
   12764     DWORD dwFlags,
   12765     IShellItem *psiItem);
   12766 void __RPC_STUB IFileOperationProgressSink_PreDeleteItem_Stub(
   12767     IRpcStubBuffer* This,
   12768     IRpcChannelBuffer* pRpcChannelBuffer,
   12769     PRPC_MESSAGE pRpcMessage,
   12770     DWORD* pdwStubPhase);
   12771 HRESULT STDMETHODCALLTYPE IFileOperationProgressSink_PostDeleteItem_Proxy(
   12772     IFileOperationProgressSink* This,
   12773     DWORD dwFlags,
   12774     IShellItem *psiItem,
   12775     HRESULT hrDelete,
   12776     IShellItem *psiNewlyCreated);
   12777 void __RPC_STUB IFileOperationProgressSink_PostDeleteItem_Stub(
   12778     IRpcStubBuffer* This,
   12779     IRpcChannelBuffer* pRpcChannelBuffer,
   12780     PRPC_MESSAGE pRpcMessage,
   12781     DWORD* pdwStubPhase);
   12782 HRESULT STDMETHODCALLTYPE IFileOperationProgressSink_PreNewItem_Proxy(
   12783     IFileOperationProgressSink* This,
   12784     DWORD dwFlags,
   12785     IShellItem *psiDestinationFolder,
   12786     LPCWSTR pszNewName);
   12787 void __RPC_STUB IFileOperationProgressSink_PreNewItem_Stub(
   12788     IRpcStubBuffer* This,
   12789     IRpcChannelBuffer* pRpcChannelBuffer,
   12790     PRPC_MESSAGE pRpcMessage,
   12791     DWORD* pdwStubPhase);
   12792 HRESULT STDMETHODCALLTYPE IFileOperationProgressSink_PostNewItem_Proxy(
   12793     IFileOperationProgressSink* This,
   12794     DWORD dwFlags,
   12795     IShellItem *psiDestinationFolder,
   12796     LPCWSTR pszNewName,
   12797     LPCWSTR pszTemplateName,
   12798     DWORD dwFileAttributes,
   12799     HRESULT hrNew,
   12800     IShellItem *psiNewItem);
   12801 void __RPC_STUB IFileOperationProgressSink_PostNewItem_Stub(
   12802     IRpcStubBuffer* This,
   12803     IRpcChannelBuffer* pRpcChannelBuffer,
   12804     PRPC_MESSAGE pRpcMessage,
   12805     DWORD* pdwStubPhase);
   12806 HRESULT STDMETHODCALLTYPE IFileOperationProgressSink_UpdateProgress_Proxy(
   12807     IFileOperationProgressSink* This,
   12808     UINT iWorkTotal,
   12809     UINT iWorkSoFar);
   12810 void __RPC_STUB IFileOperationProgressSink_UpdateProgress_Stub(
   12811     IRpcStubBuffer* This,
   12812     IRpcChannelBuffer* pRpcChannelBuffer,
   12813     PRPC_MESSAGE pRpcMessage,
   12814     DWORD* pdwStubPhase);
   12815 HRESULT STDMETHODCALLTYPE IFileOperationProgressSink_ResetTimer_Proxy(
   12816     IFileOperationProgressSink* This);
   12817 void __RPC_STUB IFileOperationProgressSink_ResetTimer_Stub(
   12818     IRpcStubBuffer* This,
   12819     IRpcChannelBuffer* pRpcChannelBuffer,
   12820     PRPC_MESSAGE pRpcMessage,
   12821     DWORD* pdwStubPhase);
   12822 HRESULT STDMETHODCALLTYPE IFileOperationProgressSink_PauseTimer_Proxy(
   12823     IFileOperationProgressSink* This);
   12824 void __RPC_STUB IFileOperationProgressSink_PauseTimer_Stub(
   12825     IRpcStubBuffer* This,
   12826     IRpcChannelBuffer* pRpcChannelBuffer,
   12827     PRPC_MESSAGE pRpcMessage,
   12828     DWORD* pdwStubPhase);
   12829 HRESULT STDMETHODCALLTYPE IFileOperationProgressSink_ResumeTimer_Proxy(
   12830     IFileOperationProgressSink* This);
   12831 void __RPC_STUB IFileOperationProgressSink_ResumeTimer_Stub(
   12832     IRpcStubBuffer* This,
   12833     IRpcChannelBuffer* pRpcChannelBuffer,
   12834     PRPC_MESSAGE pRpcMessage,
   12835     DWORD* pdwStubPhase);
   12836 
   12837 #endif  /* __IFileOperationProgressSink_INTERFACE_DEFINED__ */
   12838 
   12839 #endif
   12840 
   12841 /*****************************************************************************
   12842  * IShellItemArray interface
   12843  */
   12844 #ifndef __IShellItemArray_INTERFACE_DEFINED__
   12845 #define __IShellItemArray_INTERFACE_DEFINED__
   12846 
   12847 typedef enum SIATTRIBFLAGS {
   12848     SIATTRIBFLAGS_AND = 0x1,
   12849     SIATTRIBFLAGS_OR = 0x2,
   12850     SIATTRIBFLAGS_APPCOMPAT = 0x3,
   12851     SIATTRIBFLAGS_MASK = 0x3,
   12852     SIATTRIBFLAGS_ALLITEMS = 0x4000
   12853 } SIATTRIBFLAGS;
   12854 
   12855 DEFINE_ENUM_FLAG_OPERATORS(SIATTRIBFLAGS)
   12856 
   12857 DEFINE_GUID(IID_IShellItemArray, 0xb63ea76d, 0x1f85, 0x456f, 0xa1,0x9c, 0x48,0x15,0x9e,0xfa,0x85,0x8b);
   12858 #if defined(__cplusplus) && !defined(CINTERFACE)
   12859 MIDL_INTERFACE("b63ea76d-1f85-456f-a19c-48159efa858b")
   12860 IShellItemArray : public IUnknown
   12861 {
   12862     virtual HRESULT STDMETHODCALLTYPE BindToHandler(
   12863         IBindCtx *pbc,
   12864         REFGUID bhid,
   12865         REFIID riid,
   12866         void **ppvOut) = 0;
   12867 
   12868     virtual HRESULT STDMETHODCALLTYPE GetPropertyStore(
   12869         GETPROPERTYSTOREFLAGS flags,
   12870         REFIID riid,
   12871         void **ppv) = 0;
   12872 
   12873     virtual HRESULT STDMETHODCALLTYPE GetPropertyDescriptionList(
   12874         REFPROPERTYKEY keyType,
   12875         REFIID riid,
   12876         void **ppv) = 0;
   12877 
   12878     virtual HRESULT STDMETHODCALLTYPE GetAttributes(
   12879         SIATTRIBFLAGS AttribFlags,
   12880         SFGAOF sfgaoMask,
   12881         SFGAOF *psfgaoAttribs) = 0;
   12882 
   12883     virtual HRESULT STDMETHODCALLTYPE GetCount(
   12884         DWORD *pdwNumItems) = 0;
   12885 
   12886     virtual HRESULT STDMETHODCALLTYPE GetItemAt(
   12887         DWORD dwIndex,
   12888         IShellItem **ppsi) = 0;
   12889 
   12890     virtual HRESULT STDMETHODCALLTYPE EnumItems(
   12891         IEnumShellItems **ppenumShellItems) = 0;
   12892 
   12893 };
   12894 #ifdef __CRT_UUID_DECL
   12895 __CRT_UUID_DECL(IShellItemArray, 0xb63ea76d, 0x1f85, 0x456f, 0xa1,0x9c, 0x48,0x15,0x9e,0xfa,0x85,0x8b)
   12896 #endif
   12897 #else
   12898 typedef struct IShellItemArrayVtbl {
   12899     BEGIN_INTERFACE
   12900 
   12901     /*** IUnknown methods ***/
   12902     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   12903         IShellItemArray* This,
   12904         REFIID riid,
   12905         void **ppvObject);
   12906 
   12907     ULONG (STDMETHODCALLTYPE *AddRef)(
   12908         IShellItemArray* This);
   12909 
   12910     ULONG (STDMETHODCALLTYPE *Release)(
   12911         IShellItemArray* This);
   12912 
   12913     /*** IShellItemArray methods ***/
   12914     HRESULT (STDMETHODCALLTYPE *BindToHandler)(
   12915         IShellItemArray* This,
   12916         IBindCtx *pbc,
   12917         REFGUID bhid,
   12918         REFIID riid,
   12919         void **ppvOut);
   12920 
   12921     HRESULT (STDMETHODCALLTYPE *GetPropertyStore)(
   12922         IShellItemArray* This,
   12923         GETPROPERTYSTOREFLAGS flags,
   12924         REFIID riid,
   12925         void **ppv);
   12926 
   12927     HRESULT (STDMETHODCALLTYPE *GetPropertyDescriptionList)(
   12928         IShellItemArray* This,
   12929         REFPROPERTYKEY keyType,
   12930         REFIID riid,
   12931         void **ppv);
   12932 
   12933     HRESULT (STDMETHODCALLTYPE *GetAttributes)(
   12934         IShellItemArray* This,
   12935         SIATTRIBFLAGS AttribFlags,
   12936         SFGAOF sfgaoMask,
   12937         SFGAOF *psfgaoAttribs);
   12938 
   12939     HRESULT (STDMETHODCALLTYPE *GetCount)(
   12940         IShellItemArray* This,
   12941         DWORD *pdwNumItems);
   12942 
   12943     HRESULT (STDMETHODCALLTYPE *GetItemAt)(
   12944         IShellItemArray* This,
   12945         DWORD dwIndex,
   12946         IShellItem **ppsi);
   12947 
   12948     HRESULT (STDMETHODCALLTYPE *EnumItems)(
   12949         IShellItemArray* This,
   12950         IEnumShellItems **ppenumShellItems);
   12951 
   12952     END_INTERFACE
   12953 } IShellItemArrayVtbl;
   12954 interface IShellItemArray {
   12955     CONST_VTBL IShellItemArrayVtbl* lpVtbl;
   12956 };
   12957 
   12958 #ifdef COBJMACROS
   12959 #ifndef WIDL_C_INLINE_WRAPPERS
   12960 /*** IUnknown methods ***/
   12961 #define IShellItemArray_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   12962 #define IShellItemArray_AddRef(This) (This)->lpVtbl->AddRef(This)
   12963 #define IShellItemArray_Release(This) (This)->lpVtbl->Release(This)
   12964 /*** IShellItemArray methods ***/
   12965 #define IShellItemArray_BindToHandler(This,pbc,bhid,riid,ppvOut) (This)->lpVtbl->BindToHandler(This,pbc,bhid,riid,ppvOut)
   12966 #define IShellItemArray_GetPropertyStore(This,flags,riid,ppv) (This)->lpVtbl->GetPropertyStore(This,flags,riid,ppv)
   12967 #define IShellItemArray_GetPropertyDescriptionList(This,keyType,riid,ppv) (This)->lpVtbl->GetPropertyDescriptionList(This,keyType,riid,ppv)
   12968 #define IShellItemArray_GetAttributes(This,AttribFlags,sfgaoMask,psfgaoAttribs) (This)->lpVtbl->GetAttributes(This,AttribFlags,sfgaoMask,psfgaoAttribs)
   12969 #define IShellItemArray_GetCount(This,pdwNumItems) (This)->lpVtbl->GetCount(This,pdwNumItems)
   12970 #define IShellItemArray_GetItemAt(This,dwIndex,ppsi) (This)->lpVtbl->GetItemAt(This,dwIndex,ppsi)
   12971 #define IShellItemArray_EnumItems(This,ppenumShellItems) (This)->lpVtbl->EnumItems(This,ppenumShellItems)
   12972 #else
   12973 /*** IUnknown methods ***/
   12974 static FORCEINLINE HRESULT IShellItemArray_QueryInterface(IShellItemArray* This,REFIID riid,void **ppvObject) {
   12975     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   12976 }
   12977 static FORCEINLINE ULONG IShellItemArray_AddRef(IShellItemArray* This) {
   12978     return This->lpVtbl->AddRef(This);
   12979 }
   12980 static FORCEINLINE ULONG IShellItemArray_Release(IShellItemArray* This) {
   12981     return This->lpVtbl->Release(This);
   12982 }
   12983 /*** IShellItemArray methods ***/
   12984 static FORCEINLINE HRESULT IShellItemArray_BindToHandler(IShellItemArray* This,IBindCtx *pbc,REFGUID bhid,REFIID riid,void **ppvOut) {
   12985     return This->lpVtbl->BindToHandler(This,pbc,bhid,riid,ppvOut);
   12986 }
   12987 static FORCEINLINE HRESULT IShellItemArray_GetPropertyStore(IShellItemArray* This,GETPROPERTYSTOREFLAGS flags,REFIID riid,void **ppv) {
   12988     return This->lpVtbl->GetPropertyStore(This,flags,riid,ppv);
   12989 }
   12990 static FORCEINLINE HRESULT IShellItemArray_GetPropertyDescriptionList(IShellItemArray* This,REFPROPERTYKEY keyType,REFIID riid,void **ppv) {
   12991     return This->lpVtbl->GetPropertyDescriptionList(This,keyType,riid,ppv);
   12992 }
   12993 static FORCEINLINE HRESULT IShellItemArray_GetAttributes(IShellItemArray* This,SIATTRIBFLAGS AttribFlags,SFGAOF sfgaoMask,SFGAOF *psfgaoAttribs) {
   12994     return This->lpVtbl->GetAttributes(This,AttribFlags,sfgaoMask,psfgaoAttribs);
   12995 }
   12996 static FORCEINLINE HRESULT IShellItemArray_GetCount(IShellItemArray* This,DWORD *pdwNumItems) {
   12997     return This->lpVtbl->GetCount(This,pdwNumItems);
   12998 }
   12999 static FORCEINLINE HRESULT IShellItemArray_GetItemAt(IShellItemArray* This,DWORD dwIndex,IShellItem **ppsi) {
   13000     return This->lpVtbl->GetItemAt(This,dwIndex,ppsi);
   13001 }
   13002 static FORCEINLINE HRESULT IShellItemArray_EnumItems(IShellItemArray* This,IEnumShellItems **ppenumShellItems) {
   13003     return This->lpVtbl->EnumItems(This,ppenumShellItems);
   13004 }
   13005 #endif
   13006 #endif
   13007 
   13008 #endif
   13009 
   13010 HRESULT STDMETHODCALLTYPE IShellItemArray_BindToHandler_Proxy(
   13011     IShellItemArray* This,
   13012     IBindCtx *pbc,
   13013     REFGUID bhid,
   13014     REFIID riid,
   13015     void **ppvOut);
   13016 void __RPC_STUB IShellItemArray_BindToHandler_Stub(
   13017     IRpcStubBuffer* This,
   13018     IRpcChannelBuffer* pRpcChannelBuffer,
   13019     PRPC_MESSAGE pRpcMessage,
   13020     DWORD* pdwStubPhase);
   13021 HRESULT STDMETHODCALLTYPE IShellItemArray_GetPropertyStore_Proxy(
   13022     IShellItemArray* This,
   13023     GETPROPERTYSTOREFLAGS flags,
   13024     REFIID riid,
   13025     void **ppv);
   13026 void __RPC_STUB IShellItemArray_GetPropertyStore_Stub(
   13027     IRpcStubBuffer* This,
   13028     IRpcChannelBuffer* pRpcChannelBuffer,
   13029     PRPC_MESSAGE pRpcMessage,
   13030     DWORD* pdwStubPhase);
   13031 HRESULT STDMETHODCALLTYPE IShellItemArray_GetPropertyDescriptionList_Proxy(
   13032     IShellItemArray* This,
   13033     REFPROPERTYKEY keyType,
   13034     REFIID riid,
   13035     void **ppv);
   13036 void __RPC_STUB IShellItemArray_GetPropertyDescriptionList_Stub(
   13037     IRpcStubBuffer* This,
   13038     IRpcChannelBuffer* pRpcChannelBuffer,
   13039     PRPC_MESSAGE pRpcMessage,
   13040     DWORD* pdwStubPhase);
   13041 HRESULT STDMETHODCALLTYPE IShellItemArray_GetAttributes_Proxy(
   13042     IShellItemArray* This,
   13043     SIATTRIBFLAGS AttribFlags,
   13044     SFGAOF sfgaoMask,
   13045     SFGAOF *psfgaoAttribs);
   13046 void __RPC_STUB IShellItemArray_GetAttributes_Stub(
   13047     IRpcStubBuffer* This,
   13048     IRpcChannelBuffer* pRpcChannelBuffer,
   13049     PRPC_MESSAGE pRpcMessage,
   13050     DWORD* pdwStubPhase);
   13051 HRESULT STDMETHODCALLTYPE IShellItemArray_GetCount_Proxy(
   13052     IShellItemArray* This,
   13053     DWORD *pdwNumItems);
   13054 void __RPC_STUB IShellItemArray_GetCount_Stub(
   13055     IRpcStubBuffer* This,
   13056     IRpcChannelBuffer* pRpcChannelBuffer,
   13057     PRPC_MESSAGE pRpcMessage,
   13058     DWORD* pdwStubPhase);
   13059 HRESULT STDMETHODCALLTYPE IShellItemArray_GetItemAt_Proxy(
   13060     IShellItemArray* This,
   13061     DWORD dwIndex,
   13062     IShellItem **ppsi);
   13063 void __RPC_STUB IShellItemArray_GetItemAt_Stub(
   13064     IRpcStubBuffer* This,
   13065     IRpcChannelBuffer* pRpcChannelBuffer,
   13066     PRPC_MESSAGE pRpcMessage,
   13067     DWORD* pdwStubPhase);
   13068 HRESULT STDMETHODCALLTYPE IShellItemArray_EnumItems_Proxy(
   13069     IShellItemArray* This,
   13070     IEnumShellItems **ppenumShellItems);
   13071 void __RPC_STUB IShellItemArray_EnumItems_Stub(
   13072     IRpcStubBuffer* This,
   13073     IRpcChannelBuffer* pRpcChannelBuffer,
   13074     PRPC_MESSAGE pRpcMessage,
   13075     DWORD* pdwStubPhase);
   13076 
   13077 #endif  /* __IShellItemArray_INTERFACE_DEFINED__ */
   13078 
   13079 
   13080 #if _WIN32_IE >= _WIN32_IE_IE70
   13081   SHSTDAPI SHCreateShellItemArray(PCIDLIST_ABSOLUTE pidlParent, IShellFolder *psf, UINT cidl, PCUITEMID_CHILD_ARRAY ppidl, IShellItemArray **ppsiItemArray);
   13082   SHSTDAPI SHCreateShellItemArrayFromDataObject(IDataObject *pdo, REFIID riid, void **ppv);
   13083   SHSTDAPI SHCreateShellItemArrayFromIDLists(UINT cidl, PCIDLIST_ABSOLUTE_ARRAY rgpidl, IShellItemArray **ppsiItemArray);
   13084   SHSTDAPI SHCreateShellItemArrayFromShellItem(IShellItem *psi, REFIID riid, void **ppv);
   13085 #endif
   13086 
   13087 /*****************************************************************************
   13088  * IInitializeWithItem interface
   13089  */
   13090 #ifndef __IInitializeWithItem_INTERFACE_DEFINED__
   13091 #define __IInitializeWithItem_INTERFACE_DEFINED__
   13092 
   13093 DEFINE_GUID(IID_IInitializeWithItem, 0x7f73be3f, 0xfb79, 0x493c, 0xa6,0xc7, 0x7e,0xe1,0x4e,0x24,0x58,0x41);
   13094 #if defined(__cplusplus) && !defined(CINTERFACE)
   13095 MIDL_INTERFACE("7f73be3f-fb79-493c-a6c7-7ee14e245841")
   13096 IInitializeWithItem : public IUnknown
   13097 {
   13098     virtual HRESULT STDMETHODCALLTYPE Initialize(
   13099         IShellItem *psi,
   13100         DWORD grfMode) = 0;
   13101 
   13102 };
   13103 #ifdef __CRT_UUID_DECL
   13104 __CRT_UUID_DECL(IInitializeWithItem, 0x7f73be3f, 0xfb79, 0x493c, 0xa6,0xc7, 0x7e,0xe1,0x4e,0x24,0x58,0x41)
   13105 #endif
   13106 #else
   13107 typedef struct IInitializeWithItemVtbl {
   13108     BEGIN_INTERFACE
   13109 
   13110     /*** IUnknown methods ***/
   13111     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   13112         IInitializeWithItem* This,
   13113         REFIID riid,
   13114         void **ppvObject);
   13115 
   13116     ULONG (STDMETHODCALLTYPE *AddRef)(
   13117         IInitializeWithItem* This);
   13118 
   13119     ULONG (STDMETHODCALLTYPE *Release)(
   13120         IInitializeWithItem* This);
   13121 
   13122     /*** IInitializeWithItem methods ***/
   13123     HRESULT (STDMETHODCALLTYPE *Initialize)(
   13124         IInitializeWithItem* This,
   13125         IShellItem *psi,
   13126         DWORD grfMode);
   13127 
   13128     END_INTERFACE
   13129 } IInitializeWithItemVtbl;
   13130 interface IInitializeWithItem {
   13131     CONST_VTBL IInitializeWithItemVtbl* lpVtbl;
   13132 };
   13133 
   13134 #ifdef COBJMACROS
   13135 #ifndef WIDL_C_INLINE_WRAPPERS
   13136 /*** IUnknown methods ***/
   13137 #define IInitializeWithItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   13138 #define IInitializeWithItem_AddRef(This) (This)->lpVtbl->AddRef(This)
   13139 #define IInitializeWithItem_Release(This) (This)->lpVtbl->Release(This)
   13140 /*** IInitializeWithItem methods ***/
   13141 #define IInitializeWithItem_Initialize(This,psi,grfMode) (This)->lpVtbl->Initialize(This,psi,grfMode)
   13142 #else
   13143 /*** IUnknown methods ***/
   13144 static FORCEINLINE HRESULT IInitializeWithItem_QueryInterface(IInitializeWithItem* This,REFIID riid,void **ppvObject) {
   13145     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   13146 }
   13147 static FORCEINLINE ULONG IInitializeWithItem_AddRef(IInitializeWithItem* This) {
   13148     return This->lpVtbl->AddRef(This);
   13149 }
   13150 static FORCEINLINE ULONG IInitializeWithItem_Release(IInitializeWithItem* This) {
   13151     return This->lpVtbl->Release(This);
   13152 }
   13153 /*** IInitializeWithItem methods ***/
   13154 static FORCEINLINE HRESULT IInitializeWithItem_Initialize(IInitializeWithItem* This,IShellItem *psi,DWORD grfMode) {
   13155     return This->lpVtbl->Initialize(This,psi,grfMode);
   13156 }
   13157 #endif
   13158 #endif
   13159 
   13160 #endif
   13161 
   13162 HRESULT STDMETHODCALLTYPE IInitializeWithItem_Initialize_Proxy(
   13163     IInitializeWithItem* This,
   13164     IShellItem *psi,
   13165     DWORD grfMode);
   13166 void __RPC_STUB IInitializeWithItem_Initialize_Stub(
   13167     IRpcStubBuffer* This,
   13168     IRpcChannelBuffer* pRpcChannelBuffer,
   13169     PRPC_MESSAGE pRpcMessage,
   13170     DWORD* pdwStubPhase);
   13171 
   13172 #endif  /* __IInitializeWithItem_INTERFACE_DEFINED__ */
   13173 
   13174 
   13175 /*****************************************************************************
   13176  * IObjectWithSelection interface
   13177  */
   13178 #ifndef __IObjectWithSelection_INTERFACE_DEFINED__
   13179 #define __IObjectWithSelection_INTERFACE_DEFINED__
   13180 
   13181 DEFINE_GUID(IID_IObjectWithSelection, 0x1c9cd5bb, 0x98e9, 0x4491, 0xa6,0x0f, 0x31,0xaa,0xcc,0x72,0xb8,0x3c);
   13182 #if defined(__cplusplus) && !defined(CINTERFACE)
   13183 MIDL_INTERFACE("1c9cd5bb-98e9-4491-a60f-31aacc72b83c")
   13184 IObjectWithSelection : public IUnknown
   13185 {
   13186     virtual HRESULT STDMETHODCALLTYPE SetSelection(
   13187         IShellItemArray *psia) = 0;
   13188 
   13189     virtual HRESULT STDMETHODCALLTYPE GetSelection(
   13190         REFIID riid,
   13191         void **ppv) = 0;
   13192 
   13193 };
   13194 #ifdef __CRT_UUID_DECL
   13195 __CRT_UUID_DECL(IObjectWithSelection, 0x1c9cd5bb, 0x98e9, 0x4491, 0xa6,0x0f, 0x31,0xaa,0xcc,0x72,0xb8,0x3c)
   13196 #endif
   13197 #else
   13198 typedef struct IObjectWithSelectionVtbl {
   13199     BEGIN_INTERFACE
   13200 
   13201     /*** IUnknown methods ***/
   13202     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   13203         IObjectWithSelection* This,
   13204         REFIID riid,
   13205         void **ppvObject);
   13206 
   13207     ULONG (STDMETHODCALLTYPE *AddRef)(
   13208         IObjectWithSelection* This);
   13209 
   13210     ULONG (STDMETHODCALLTYPE *Release)(
   13211         IObjectWithSelection* This);
   13212 
   13213     /*** IObjectWithSelection methods ***/
   13214     HRESULT (STDMETHODCALLTYPE *SetSelection)(
   13215         IObjectWithSelection* This,
   13216         IShellItemArray *psia);
   13217 
   13218     HRESULT (STDMETHODCALLTYPE *GetSelection)(
   13219         IObjectWithSelection* This,
   13220         REFIID riid,
   13221         void **ppv);
   13222 
   13223     END_INTERFACE
   13224 } IObjectWithSelectionVtbl;
   13225 interface IObjectWithSelection {
   13226     CONST_VTBL IObjectWithSelectionVtbl* lpVtbl;
   13227 };
   13228 
   13229 #ifdef COBJMACROS
   13230 #ifndef WIDL_C_INLINE_WRAPPERS
   13231 /*** IUnknown methods ***/
   13232 #define IObjectWithSelection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   13233 #define IObjectWithSelection_AddRef(This) (This)->lpVtbl->AddRef(This)
   13234 #define IObjectWithSelection_Release(This) (This)->lpVtbl->Release(This)
   13235 /*** IObjectWithSelection methods ***/
   13236 #define IObjectWithSelection_SetSelection(This,psia) (This)->lpVtbl->SetSelection(This,psia)
   13237 #define IObjectWithSelection_GetSelection(This,riid,ppv) (This)->lpVtbl->GetSelection(This,riid,ppv)
   13238 #else
   13239 /*** IUnknown methods ***/
   13240 static FORCEINLINE HRESULT IObjectWithSelection_QueryInterface(IObjectWithSelection* This,REFIID riid,void **ppvObject) {
   13241     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   13242 }
   13243 static FORCEINLINE ULONG IObjectWithSelection_AddRef(IObjectWithSelection* This) {
   13244     return This->lpVtbl->AddRef(This);
   13245 }
   13246 static FORCEINLINE ULONG IObjectWithSelection_Release(IObjectWithSelection* This) {
   13247     return This->lpVtbl->Release(This);
   13248 }
   13249 /*** IObjectWithSelection methods ***/
   13250 static FORCEINLINE HRESULT IObjectWithSelection_SetSelection(IObjectWithSelection* This,IShellItemArray *psia) {
   13251     return This->lpVtbl->SetSelection(This,psia);
   13252 }
   13253 static FORCEINLINE HRESULT IObjectWithSelection_GetSelection(IObjectWithSelection* This,REFIID riid,void **ppv) {
   13254     return This->lpVtbl->GetSelection(This,riid,ppv);
   13255 }
   13256 #endif
   13257 #endif
   13258 
   13259 #endif
   13260 
   13261 HRESULT STDMETHODCALLTYPE IObjectWithSelection_SetSelection_Proxy(
   13262     IObjectWithSelection* This,
   13263     IShellItemArray *psia);
   13264 void __RPC_STUB IObjectWithSelection_SetSelection_Stub(
   13265     IRpcStubBuffer* This,
   13266     IRpcChannelBuffer* pRpcChannelBuffer,
   13267     PRPC_MESSAGE pRpcMessage,
   13268     DWORD* pdwStubPhase);
   13269 HRESULT STDMETHODCALLTYPE IObjectWithSelection_GetSelection_Proxy(
   13270     IObjectWithSelection* This,
   13271     REFIID riid,
   13272     void **ppv);
   13273 void __RPC_STUB IObjectWithSelection_GetSelection_Stub(
   13274     IRpcStubBuffer* This,
   13275     IRpcChannelBuffer* pRpcChannelBuffer,
   13276     PRPC_MESSAGE pRpcMessage,
   13277     DWORD* pdwStubPhase);
   13278 
   13279 #endif  /* __IObjectWithSelection_INTERFACE_DEFINED__ */
   13280 
   13281 
   13282 /*****************************************************************************
   13283  * IObjectWithBackReferences interface
   13284  */
   13285 #ifndef __IObjectWithBackReferences_INTERFACE_DEFINED__
   13286 #define __IObjectWithBackReferences_INTERFACE_DEFINED__
   13287 
   13288 DEFINE_GUID(IID_IObjectWithBackReferences, 0x321a6a6a, 0xd61f, 0x4bf3, 0x97,0xae, 0x14,0xbe,0x29,0x86,0xbb,0x36);
   13289 #if defined(__cplusplus) && !defined(CINTERFACE)
   13290 MIDL_INTERFACE("321a6a6a-d61f-4bf3-97ae-14be2986bb36")
   13291 IObjectWithBackReferences : public IUnknown
   13292 {
   13293     virtual HRESULT STDMETHODCALLTYPE RemoveBackReferences(
   13294         ) = 0;
   13295 
   13296 };
   13297 #ifdef __CRT_UUID_DECL
   13298 __CRT_UUID_DECL(IObjectWithBackReferences, 0x321a6a6a, 0xd61f, 0x4bf3, 0x97,0xae, 0x14,0xbe,0x29,0x86,0xbb,0x36)
   13299 #endif
   13300 #else
   13301 typedef struct IObjectWithBackReferencesVtbl {
   13302     BEGIN_INTERFACE
   13303 
   13304     /*** IUnknown methods ***/
   13305     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   13306         IObjectWithBackReferences* This,
   13307         REFIID riid,
   13308         void **ppvObject);
   13309 
   13310     ULONG (STDMETHODCALLTYPE *AddRef)(
   13311         IObjectWithBackReferences* This);
   13312 
   13313     ULONG (STDMETHODCALLTYPE *Release)(
   13314         IObjectWithBackReferences* This);
   13315 
   13316     /*** IObjectWithBackReferences methods ***/
   13317     HRESULT (STDMETHODCALLTYPE *RemoveBackReferences)(
   13318         IObjectWithBackReferences* This);
   13319 
   13320     END_INTERFACE
   13321 } IObjectWithBackReferencesVtbl;
   13322 interface IObjectWithBackReferences {
   13323     CONST_VTBL IObjectWithBackReferencesVtbl* lpVtbl;
   13324 };
   13325 
   13326 #ifdef COBJMACROS
   13327 #ifndef WIDL_C_INLINE_WRAPPERS
   13328 /*** IUnknown methods ***/
   13329 #define IObjectWithBackReferences_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   13330 #define IObjectWithBackReferences_AddRef(This) (This)->lpVtbl->AddRef(This)
   13331 #define IObjectWithBackReferences_Release(This) (This)->lpVtbl->Release(This)
   13332 /*** IObjectWithBackReferences methods ***/
   13333 #define IObjectWithBackReferences_RemoveBackReferences(This) (This)->lpVtbl->RemoveBackReferences(This)
   13334 #else
   13335 /*** IUnknown methods ***/
   13336 static FORCEINLINE HRESULT IObjectWithBackReferences_QueryInterface(IObjectWithBackReferences* This,REFIID riid,void **ppvObject) {
   13337     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   13338 }
   13339 static FORCEINLINE ULONG IObjectWithBackReferences_AddRef(IObjectWithBackReferences* This) {
   13340     return This->lpVtbl->AddRef(This);
   13341 }
   13342 static FORCEINLINE ULONG IObjectWithBackReferences_Release(IObjectWithBackReferences* This) {
   13343     return This->lpVtbl->Release(This);
   13344 }
   13345 /*** IObjectWithBackReferences methods ***/
   13346 static FORCEINLINE HRESULT IObjectWithBackReferences_RemoveBackReferences(IObjectWithBackReferences* This) {
   13347     return This->lpVtbl->RemoveBackReferences(This);
   13348 }
   13349 #endif
   13350 #endif
   13351 
   13352 #endif
   13353 
   13354 HRESULT STDMETHODCALLTYPE IObjectWithBackReferences_RemoveBackReferences_Proxy(
   13355     IObjectWithBackReferences* This);
   13356 void __RPC_STUB IObjectWithBackReferences_RemoveBackReferences_Stub(
   13357     IRpcStubBuffer* This,
   13358     IRpcChannelBuffer* pRpcChannelBuffer,
   13359     PRPC_MESSAGE pRpcMessage,
   13360     DWORD* pdwStubPhase);
   13361 
   13362 #endif  /* __IObjectWithBackReferences_INTERFACE_DEFINED__ */
   13363 
   13364 
   13365 enum _PROPERTYUI_NAME_FLAGS {
   13366     PUIFNF_DEFAULT = 0x0,
   13367     PUIFNF_MNEMONIC = 0x1
   13368 };
   13369 
   13370 
   13371 typedef DWORD PROPERTYUI_NAME_FLAGS;
   13372 
   13373 enum _PROPERTYUI_FLAGS {
   13374     PUIF_DEFAULT = 0x0,
   13375     PUIF_RIGHTALIGN = 0x1,
   13376     PUIF_NOLABELININFOTIP = 0x2
   13377 };
   13378 
   13379 
   13380 typedef DWORD PROPERTYUI_FLAGS;
   13381 
   13382 enum _PROPERTYUI_FORMAT_FLAGS {
   13383     PUIFFDF_DEFAULT = 0x0,
   13384     PUIFFDF_RIGHTTOLEFT = 0x1,
   13385     PUIFFDF_SHORTFORMAT = 0x2,
   13386     PUIFFDF_NOTIME = 0x4,
   13387     PUIFFDF_FRIENDLYDATE = 0x8
   13388 };
   13389 
   13390 
   13391 typedef DWORD PROPERTYUI_FORMAT_FLAGS;
   13392 
   13393 /*****************************************************************************
   13394  * IPropertyUI interface
   13395  */
   13396 #ifndef __IPropertyUI_INTERFACE_DEFINED__
   13397 #define __IPropertyUI_INTERFACE_DEFINED__
   13398 
   13399 DEFINE_GUID(IID_IPropertyUI, 0x757a7d9f, 0x919a, 0x4118, 0x99,0xd7, 0xdb,0xb2,0x08,0xc8,0xcc,0x66);
   13400 #if defined(__cplusplus) && !defined(CINTERFACE)
   13401 MIDL_INTERFACE("757a7d9f-919a-4118-99d7-dbb208c8cc66")
   13402 IPropertyUI : public IUnknown
   13403 {
   13404     virtual HRESULT STDMETHODCALLTYPE ParsePropertyName(
   13405         LPCWSTR pszName,
   13406         FMTID *pfmtid,
   13407         PROPID *ppid,
   13408         ULONG *pchEaten) = 0;
   13409 
   13410     virtual HRESULT STDMETHODCALLTYPE GetCannonicalName(
   13411         REFFMTID fmtid,
   13412         PROPID pid,
   13413         LPWSTR pwszText,
   13414         DWORD cchText) = 0;
   13415 
   13416     virtual HRESULT STDMETHODCALLTYPE GetDisplayName(
   13417         REFFMTID fmtid,
   13418         PROPID pid,
   13419         PROPERTYUI_NAME_FLAGS flags,
   13420         LPWSTR pwszText,
   13421         DWORD cchText) = 0;
   13422 
   13423     virtual HRESULT STDMETHODCALLTYPE GetPropertyDescription(
   13424         REFFMTID fmtid,
   13425         PROPID pid,
   13426         LPWSTR pwszText,
   13427         DWORD cchText) = 0;
   13428 
   13429     virtual HRESULT STDMETHODCALLTYPE GetDefaultWidth(
   13430         REFFMTID fmtid,
   13431         PROPID pid,
   13432         ULONG *pcxChars) = 0;
   13433 
   13434     virtual HRESULT STDMETHODCALLTYPE GetFlags(
   13435         REFFMTID fmtid,
   13436         PROPID pid,
   13437         PROPERTYUI_FLAGS *pflags) = 0;
   13438 
   13439     virtual HRESULT STDMETHODCALLTYPE FormatForDisplay(
   13440         REFFMTID fmtid,
   13441         PROPID pid,
   13442         const PROPVARIANT *ppropvar,
   13443         PROPERTYUI_FORMAT_FLAGS puiff,
   13444         LPWSTR pwszText,
   13445         DWORD cchText) = 0;
   13446 
   13447     virtual HRESULT STDMETHODCALLTYPE GetHelpInfo(
   13448         REFFMTID fmtid,
   13449         PROPID pid,
   13450         LPWSTR pwszHelpFile,
   13451         DWORD cch,
   13452         UINT *puHelpID) = 0;
   13453 
   13454 };
   13455 #ifdef __CRT_UUID_DECL
   13456 __CRT_UUID_DECL(IPropertyUI, 0x757a7d9f, 0x919a, 0x4118, 0x99,0xd7, 0xdb,0xb2,0x08,0xc8,0xcc,0x66)
   13457 #endif
   13458 #else
   13459 typedef struct IPropertyUIVtbl {
   13460     BEGIN_INTERFACE
   13461 
   13462     /*** IUnknown methods ***/
   13463     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   13464         IPropertyUI* This,
   13465         REFIID riid,
   13466         void **ppvObject);
   13467 
   13468     ULONG (STDMETHODCALLTYPE *AddRef)(
   13469         IPropertyUI* This);
   13470 
   13471     ULONG (STDMETHODCALLTYPE *Release)(
   13472         IPropertyUI* This);
   13473 
   13474     /*** IPropertyUI methods ***/
   13475     HRESULT (STDMETHODCALLTYPE *ParsePropertyName)(
   13476         IPropertyUI* This,
   13477         LPCWSTR pszName,
   13478         FMTID *pfmtid,
   13479         PROPID *ppid,
   13480         ULONG *pchEaten);
   13481 
   13482     HRESULT (STDMETHODCALLTYPE *GetCannonicalName)(
   13483         IPropertyUI* This,
   13484         REFFMTID fmtid,
   13485         PROPID pid,
   13486         LPWSTR pwszText,
   13487         DWORD cchText);
   13488 
   13489     HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
   13490         IPropertyUI* This,
   13491         REFFMTID fmtid,
   13492         PROPID pid,
   13493         PROPERTYUI_NAME_FLAGS flags,
   13494         LPWSTR pwszText,
   13495         DWORD cchText);
   13496 
   13497     HRESULT (STDMETHODCALLTYPE *GetPropertyDescription)(
   13498         IPropertyUI* This,
   13499         REFFMTID fmtid,
   13500         PROPID pid,
   13501         LPWSTR pwszText,
   13502         DWORD cchText);
   13503 
   13504     HRESULT (STDMETHODCALLTYPE *GetDefaultWidth)(
   13505         IPropertyUI* This,
   13506         REFFMTID fmtid,
   13507         PROPID pid,
   13508         ULONG *pcxChars);
   13509 
   13510     HRESULT (STDMETHODCALLTYPE *GetFlags)(
   13511         IPropertyUI* This,
   13512         REFFMTID fmtid,
   13513         PROPID pid,
   13514         PROPERTYUI_FLAGS *pflags);
   13515 
   13516     HRESULT (STDMETHODCALLTYPE *FormatForDisplay)(
   13517         IPropertyUI* This,
   13518         REFFMTID fmtid,
   13519         PROPID pid,
   13520         const PROPVARIANT *ppropvar,
   13521         PROPERTYUI_FORMAT_FLAGS puiff,
   13522         LPWSTR pwszText,
   13523         DWORD cchText);
   13524 
   13525     HRESULT (STDMETHODCALLTYPE *GetHelpInfo)(
   13526         IPropertyUI* This,
   13527         REFFMTID fmtid,
   13528         PROPID pid,
   13529         LPWSTR pwszHelpFile,
   13530         DWORD cch,
   13531         UINT *puHelpID);
   13532 
   13533     END_INTERFACE
   13534 } IPropertyUIVtbl;
   13535 interface IPropertyUI {
   13536     CONST_VTBL IPropertyUIVtbl* lpVtbl;
   13537 };
   13538 
   13539 #ifdef COBJMACROS
   13540 #ifndef WIDL_C_INLINE_WRAPPERS
   13541 /*** IUnknown methods ***/
   13542 #define IPropertyUI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   13543 #define IPropertyUI_AddRef(This) (This)->lpVtbl->AddRef(This)
   13544 #define IPropertyUI_Release(This) (This)->lpVtbl->Release(This)
   13545 /*** IPropertyUI methods ***/
   13546 #define IPropertyUI_ParsePropertyName(This,pszName,pfmtid,ppid,pchEaten) (This)->lpVtbl->ParsePropertyName(This,pszName,pfmtid,ppid,pchEaten)
   13547 #define IPropertyUI_GetCannonicalName(This,fmtid,pid,pwszText,cchText) (This)->lpVtbl->GetCannonicalName(This,fmtid,pid,pwszText,cchText)
   13548 #define IPropertyUI_GetDisplayName(This,fmtid,pid,flags,pwszText,cchText) (This)->lpVtbl->GetDisplayName(This,fmtid,pid,flags,pwszText,cchText)
   13549 #define IPropertyUI_GetPropertyDescription(This,fmtid,pid,pwszText,cchText) (This)->lpVtbl->GetPropertyDescription(This,fmtid,pid,pwszText,cchText)
   13550 #define IPropertyUI_GetDefaultWidth(This,fmtid,pid,pcxChars) (This)->lpVtbl->GetDefaultWidth(This,fmtid,pid,pcxChars)
   13551 #define IPropertyUI_GetFlags(This,fmtid,pid,pflags) (This)->lpVtbl->GetFlags(This,fmtid,pid,pflags)
   13552 #define IPropertyUI_FormatForDisplay(This,fmtid,pid,ppropvar,puiff,pwszText,cchText) (This)->lpVtbl->FormatForDisplay(This,fmtid,pid,ppropvar,puiff,pwszText,cchText)
   13553 #define IPropertyUI_GetHelpInfo(This,fmtid,pid,pwszHelpFile,cch,puHelpID) (This)->lpVtbl->GetHelpInfo(This,fmtid,pid,pwszHelpFile,cch,puHelpID)
   13554 #else
   13555 /*** IUnknown methods ***/
   13556 static FORCEINLINE HRESULT IPropertyUI_QueryInterface(IPropertyUI* This,REFIID riid,void **ppvObject) {
   13557     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   13558 }
   13559 static FORCEINLINE ULONG IPropertyUI_AddRef(IPropertyUI* This) {
   13560     return This->lpVtbl->AddRef(This);
   13561 }
   13562 static FORCEINLINE ULONG IPropertyUI_Release(IPropertyUI* This) {
   13563     return This->lpVtbl->Release(This);
   13564 }
   13565 /*** IPropertyUI methods ***/
   13566 static FORCEINLINE HRESULT IPropertyUI_ParsePropertyName(IPropertyUI* This,LPCWSTR pszName,FMTID *pfmtid,PROPID *ppid,ULONG *pchEaten) {
   13567     return This->lpVtbl->ParsePropertyName(This,pszName,pfmtid,ppid,pchEaten);
   13568 }
   13569 static FORCEINLINE HRESULT IPropertyUI_GetCannonicalName(IPropertyUI* This,REFFMTID fmtid,PROPID pid,LPWSTR pwszText,DWORD cchText) {
   13570     return This->lpVtbl->GetCannonicalName(This,fmtid,pid,pwszText,cchText);
   13571 }
   13572 static FORCEINLINE HRESULT IPropertyUI_GetDisplayName(IPropertyUI* This,REFFMTID fmtid,PROPID pid,PROPERTYUI_NAME_FLAGS flags,LPWSTR pwszText,DWORD cchText) {
   13573     return This->lpVtbl->GetDisplayName(This,fmtid,pid,flags,pwszText,cchText);
   13574 }
   13575 static FORCEINLINE HRESULT IPropertyUI_GetPropertyDescription(IPropertyUI* This,REFFMTID fmtid,PROPID pid,LPWSTR pwszText,DWORD cchText) {
   13576     return This->lpVtbl->GetPropertyDescription(This,fmtid,pid,pwszText,cchText);
   13577 }
   13578 static FORCEINLINE HRESULT IPropertyUI_GetDefaultWidth(IPropertyUI* This,REFFMTID fmtid,PROPID pid,ULONG *pcxChars) {
   13579     return This->lpVtbl->GetDefaultWidth(This,fmtid,pid,pcxChars);
   13580 }
   13581 static FORCEINLINE HRESULT IPropertyUI_GetFlags(IPropertyUI* This,REFFMTID fmtid,PROPID pid,PROPERTYUI_FLAGS *pflags) {
   13582     return This->lpVtbl->GetFlags(This,fmtid,pid,pflags);
   13583 }
   13584 static FORCEINLINE HRESULT IPropertyUI_FormatForDisplay(IPropertyUI* This,REFFMTID fmtid,PROPID pid,const PROPVARIANT *ppropvar,PROPERTYUI_FORMAT_FLAGS puiff,LPWSTR pwszText,DWORD cchText) {
   13585     return This->lpVtbl->FormatForDisplay(This,fmtid,pid,ppropvar,puiff,pwszText,cchText);
   13586 }
   13587 static FORCEINLINE HRESULT IPropertyUI_GetHelpInfo(IPropertyUI* This,REFFMTID fmtid,PROPID pid,LPWSTR pwszHelpFile,DWORD cch,UINT *puHelpID) {
   13588     return This->lpVtbl->GetHelpInfo(This,fmtid,pid,pwszHelpFile,cch,puHelpID);
   13589 }
   13590 #endif
   13591 #endif
   13592 
   13593 #endif
   13594 
   13595 HRESULT STDMETHODCALLTYPE IPropertyUI_ParsePropertyName_Proxy(
   13596     IPropertyUI* This,
   13597     LPCWSTR pszName,
   13598     FMTID *pfmtid,
   13599     PROPID *ppid,
   13600     ULONG *pchEaten);
   13601 void __RPC_STUB IPropertyUI_ParsePropertyName_Stub(
   13602     IRpcStubBuffer* This,
   13603     IRpcChannelBuffer* pRpcChannelBuffer,
   13604     PRPC_MESSAGE pRpcMessage,
   13605     DWORD* pdwStubPhase);
   13606 HRESULT STDMETHODCALLTYPE IPropertyUI_GetCannonicalName_Proxy(
   13607     IPropertyUI* This,
   13608     REFFMTID fmtid,
   13609     PROPID pid,
   13610     LPWSTR pwszText,
   13611     DWORD cchText);
   13612 void __RPC_STUB IPropertyUI_GetCannonicalName_Stub(
   13613     IRpcStubBuffer* This,
   13614     IRpcChannelBuffer* pRpcChannelBuffer,
   13615     PRPC_MESSAGE pRpcMessage,
   13616     DWORD* pdwStubPhase);
   13617 HRESULT STDMETHODCALLTYPE IPropertyUI_GetDisplayName_Proxy(
   13618     IPropertyUI* This,
   13619     REFFMTID fmtid,
   13620     PROPID pid,
   13621     PROPERTYUI_NAME_FLAGS flags,
   13622     LPWSTR pwszText,
   13623     DWORD cchText);
   13624 void __RPC_STUB IPropertyUI_GetDisplayName_Stub(
   13625     IRpcStubBuffer* This,
   13626     IRpcChannelBuffer* pRpcChannelBuffer,
   13627     PRPC_MESSAGE pRpcMessage,
   13628     DWORD* pdwStubPhase);
   13629 HRESULT STDMETHODCALLTYPE IPropertyUI_GetPropertyDescription_Proxy(
   13630     IPropertyUI* This,
   13631     REFFMTID fmtid,
   13632     PROPID pid,
   13633     LPWSTR pwszText,
   13634     DWORD cchText);
   13635 void __RPC_STUB IPropertyUI_GetPropertyDescription_Stub(
   13636     IRpcStubBuffer* This,
   13637     IRpcChannelBuffer* pRpcChannelBuffer,
   13638     PRPC_MESSAGE pRpcMessage,
   13639     DWORD* pdwStubPhase);
   13640 HRESULT STDMETHODCALLTYPE IPropertyUI_GetDefaultWidth_Proxy(
   13641     IPropertyUI* This,
   13642     REFFMTID fmtid,
   13643     PROPID pid,
   13644     ULONG *pcxChars);
   13645 void __RPC_STUB IPropertyUI_GetDefaultWidth_Stub(
   13646     IRpcStubBuffer* This,
   13647     IRpcChannelBuffer* pRpcChannelBuffer,
   13648     PRPC_MESSAGE pRpcMessage,
   13649     DWORD* pdwStubPhase);
   13650 HRESULT STDMETHODCALLTYPE IPropertyUI_GetFlags_Proxy(
   13651     IPropertyUI* This,
   13652     REFFMTID fmtid,
   13653     PROPID pid,
   13654     PROPERTYUI_FLAGS *pflags);
   13655 void __RPC_STUB IPropertyUI_GetFlags_Stub(
   13656     IRpcStubBuffer* This,
   13657     IRpcChannelBuffer* pRpcChannelBuffer,
   13658     PRPC_MESSAGE pRpcMessage,
   13659     DWORD* pdwStubPhase);
   13660 HRESULT STDMETHODCALLTYPE IPropertyUI_FormatForDisplay_Proxy(
   13661     IPropertyUI* This,
   13662     REFFMTID fmtid,
   13663     PROPID pid,
   13664     const PROPVARIANT *ppropvar,
   13665     PROPERTYUI_FORMAT_FLAGS puiff,
   13666     LPWSTR pwszText,
   13667     DWORD cchText);
   13668 void __RPC_STUB IPropertyUI_FormatForDisplay_Stub(
   13669     IRpcStubBuffer* This,
   13670     IRpcChannelBuffer* pRpcChannelBuffer,
   13671     PRPC_MESSAGE pRpcMessage,
   13672     DWORD* pdwStubPhase);
   13673 HRESULT STDMETHODCALLTYPE IPropertyUI_GetHelpInfo_Proxy(
   13674     IPropertyUI* This,
   13675     REFFMTID fmtid,
   13676     PROPID pid,
   13677     LPWSTR pwszHelpFile,
   13678     DWORD cch,
   13679     UINT *puHelpID);
   13680 void __RPC_STUB IPropertyUI_GetHelpInfo_Stub(
   13681     IRpcStubBuffer* This,
   13682     IRpcChannelBuffer* pRpcChannelBuffer,
   13683     PRPC_MESSAGE pRpcMessage,
   13684     DWORD* pdwStubPhase);
   13685 
   13686 #endif  /* __IPropertyUI_INTERFACE_DEFINED__ */
   13687 
   13688 
   13689 #if _WIN32_IE >= _WIN32_IE_IE70
   13690   SHSTDAPI SHRemovePersonalPropertyValues(IShellItemArray *psia);
   13691   SHSTDAPI SHAddDefaultPropertiesByExt(PCWSTR pszExt, IPropertyStore *pPropStore);
   13692   SHSTDAPI SHCreateDefaultPropertiesOp(IShellItem *psi, IFileOperation **ppFileOp);
   13693   SHSTDAPI SHSetDefaultProperties(HWND hwnd, IShellItem *psi, DWORD dwFileOpFlags, IFileOperationProgressSink *pfops);
   13694 #endif
   13695 
   13696 /*****************************************************************************
   13697  * ICategoryProvider interface
   13698  */
   13699 #ifndef __ICategoryProvider_INTERFACE_DEFINED__
   13700 #define __ICategoryProvider_INTERFACE_DEFINED__
   13701 
   13702 DEFINE_GUID(IID_ICategoryProvider, 0x9af64809, 0x5864, 0x4c26, 0xa7,0x20, 0xc1,0xf7,0x8c,0x08,0x6e,0xe3);
   13703 #if defined(__cplusplus) && !defined(CINTERFACE)
   13704 MIDL_INTERFACE("9af64809-5864-4c26-a720-c1f78c086ee3")
   13705 ICategoryProvider : public IUnknown
   13706 {
   13707     virtual HRESULT STDMETHODCALLTYPE CanCategorizeOnSCID(
   13708         const SHCOLUMNID *pscid) = 0;
   13709 
   13710     virtual HRESULT STDMETHODCALLTYPE GetDefaultCategory(
   13711         GUID *pguid,
   13712         SHCOLUMNID *pscid) = 0;
   13713 
   13714     virtual HRESULT STDMETHODCALLTYPE GetCategoryForSCID(
   13715         const SHCOLUMNID *pscid,
   13716         GUID *pguid) = 0;
   13717 
   13718     virtual HRESULT STDMETHODCALLTYPE EnumCategories(
   13719         IEnumGUID **penum) = 0;
   13720 
   13721     virtual HRESULT STDMETHODCALLTYPE GetCategoryName(
   13722         const GUID *pguid,
   13723         LPWSTR pszName,
   13724         UINT cch) = 0;
   13725 
   13726     virtual HRESULT STDMETHODCALLTYPE CreateCategory(
   13727         const GUID *pguid,
   13728         REFIID riid,
   13729         void **ppv) = 0;
   13730 
   13731 };
   13732 #ifdef __CRT_UUID_DECL
   13733 __CRT_UUID_DECL(ICategoryProvider, 0x9af64809, 0x5864, 0x4c26, 0xa7,0x20, 0xc1,0xf7,0x8c,0x08,0x6e,0xe3)
   13734 #endif
   13735 #else
   13736 typedef struct ICategoryProviderVtbl {
   13737     BEGIN_INTERFACE
   13738 
   13739     /*** IUnknown methods ***/
   13740     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   13741         ICategoryProvider* This,
   13742         REFIID riid,
   13743         void **ppvObject);
   13744 
   13745     ULONG (STDMETHODCALLTYPE *AddRef)(
   13746         ICategoryProvider* This);
   13747 
   13748     ULONG (STDMETHODCALLTYPE *Release)(
   13749         ICategoryProvider* This);
   13750 
   13751     /*** ICategoryProvider methods ***/
   13752     HRESULT (STDMETHODCALLTYPE *CanCategorizeOnSCID)(
   13753         ICategoryProvider* This,
   13754         const SHCOLUMNID *pscid);
   13755 
   13756     HRESULT (STDMETHODCALLTYPE *GetDefaultCategory)(
   13757         ICategoryProvider* This,
   13758         GUID *pguid,
   13759         SHCOLUMNID *pscid);
   13760 
   13761     HRESULT (STDMETHODCALLTYPE *GetCategoryForSCID)(
   13762         ICategoryProvider* This,
   13763         const SHCOLUMNID *pscid,
   13764         GUID *pguid);
   13765 
   13766     HRESULT (STDMETHODCALLTYPE *EnumCategories)(
   13767         ICategoryProvider* This,
   13768         IEnumGUID **penum);
   13769 
   13770     HRESULT (STDMETHODCALLTYPE *GetCategoryName)(
   13771         ICategoryProvider* This,
   13772         const GUID *pguid,
   13773         LPWSTR pszName,
   13774         UINT cch);
   13775 
   13776     HRESULT (STDMETHODCALLTYPE *CreateCategory)(
   13777         ICategoryProvider* This,
   13778         const GUID *pguid,
   13779         REFIID riid,
   13780         void **ppv);
   13781 
   13782     END_INTERFACE
   13783 } ICategoryProviderVtbl;
   13784 interface ICategoryProvider {
   13785     CONST_VTBL ICategoryProviderVtbl* lpVtbl;
   13786 };
   13787 
   13788 #ifdef COBJMACROS
   13789 #ifndef WIDL_C_INLINE_WRAPPERS
   13790 /*** IUnknown methods ***/
   13791 #define ICategoryProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   13792 #define ICategoryProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
   13793 #define ICategoryProvider_Release(This) (This)->lpVtbl->Release(This)
   13794 /*** ICategoryProvider methods ***/
   13795 #define ICategoryProvider_CanCategorizeOnSCID(This,pscid) (This)->lpVtbl->CanCategorizeOnSCID(This,pscid)
   13796 #define ICategoryProvider_GetDefaultCategory(This,pguid,pscid) (This)->lpVtbl->GetDefaultCategory(This,pguid,pscid)
   13797 #define ICategoryProvider_GetCategoryForSCID(This,pscid,pguid) (This)->lpVtbl->GetCategoryForSCID(This,pscid,pguid)
   13798 #define ICategoryProvider_EnumCategories(This,penum) (This)->lpVtbl->EnumCategories(This,penum)
   13799 #define ICategoryProvider_GetCategoryName(This,pguid,pszName,cch) (This)->lpVtbl->GetCategoryName(This,pguid,pszName,cch)
   13800 #define ICategoryProvider_CreateCategory(This,pguid,riid,ppv) (This)->lpVtbl->CreateCategory(This,pguid,riid,ppv)
   13801 #else
   13802 /*** IUnknown methods ***/
   13803 static FORCEINLINE HRESULT ICategoryProvider_QueryInterface(ICategoryProvider* This,REFIID riid,void **ppvObject) {
   13804     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   13805 }
   13806 static FORCEINLINE ULONG ICategoryProvider_AddRef(ICategoryProvider* This) {
   13807     return This->lpVtbl->AddRef(This);
   13808 }
   13809 static FORCEINLINE ULONG ICategoryProvider_Release(ICategoryProvider* This) {
   13810     return This->lpVtbl->Release(This);
   13811 }
   13812 /*** ICategoryProvider methods ***/
   13813 static FORCEINLINE HRESULT ICategoryProvider_CanCategorizeOnSCID(ICategoryProvider* This,const SHCOLUMNID *pscid) {
   13814     return This->lpVtbl->CanCategorizeOnSCID(This,pscid);
   13815 }
   13816 static FORCEINLINE HRESULT ICategoryProvider_GetDefaultCategory(ICategoryProvider* This,GUID *pguid,SHCOLUMNID *pscid) {
   13817     return This->lpVtbl->GetDefaultCategory(This,pguid,pscid);
   13818 }
   13819 static FORCEINLINE HRESULT ICategoryProvider_GetCategoryForSCID(ICategoryProvider* This,const SHCOLUMNID *pscid,GUID *pguid) {
   13820     return This->lpVtbl->GetCategoryForSCID(This,pscid,pguid);
   13821 }
   13822 static FORCEINLINE HRESULT ICategoryProvider_EnumCategories(ICategoryProvider* This,IEnumGUID **penum) {
   13823     return This->lpVtbl->EnumCategories(This,penum);
   13824 }
   13825 static FORCEINLINE HRESULT ICategoryProvider_GetCategoryName(ICategoryProvider* This,const GUID *pguid,LPWSTR pszName,UINT cch) {
   13826     return This->lpVtbl->GetCategoryName(This,pguid,pszName,cch);
   13827 }
   13828 static FORCEINLINE HRESULT ICategoryProvider_CreateCategory(ICategoryProvider* This,const GUID *pguid,REFIID riid,void **ppv) {
   13829     return This->lpVtbl->CreateCategory(This,pguid,riid,ppv);
   13830 }
   13831 #endif
   13832 #endif
   13833 
   13834 #endif
   13835 
   13836 HRESULT STDMETHODCALLTYPE ICategoryProvider_CanCategorizeOnSCID_Proxy(
   13837     ICategoryProvider* This,
   13838     const SHCOLUMNID *pscid);
   13839 void __RPC_STUB ICategoryProvider_CanCategorizeOnSCID_Stub(
   13840     IRpcStubBuffer* This,
   13841     IRpcChannelBuffer* pRpcChannelBuffer,
   13842     PRPC_MESSAGE pRpcMessage,
   13843     DWORD* pdwStubPhase);
   13844 HRESULT STDMETHODCALLTYPE ICategoryProvider_GetDefaultCategory_Proxy(
   13845     ICategoryProvider* This,
   13846     GUID *pguid,
   13847     SHCOLUMNID *pscid);
   13848 void __RPC_STUB ICategoryProvider_GetDefaultCategory_Stub(
   13849     IRpcStubBuffer* This,
   13850     IRpcChannelBuffer* pRpcChannelBuffer,
   13851     PRPC_MESSAGE pRpcMessage,
   13852     DWORD* pdwStubPhase);
   13853 HRESULT STDMETHODCALLTYPE ICategoryProvider_GetCategoryForSCID_Proxy(
   13854     ICategoryProvider* This,
   13855     const SHCOLUMNID *pscid,
   13856     GUID *pguid);
   13857 void __RPC_STUB ICategoryProvider_GetCategoryForSCID_Stub(
   13858     IRpcStubBuffer* This,
   13859     IRpcChannelBuffer* pRpcChannelBuffer,
   13860     PRPC_MESSAGE pRpcMessage,
   13861     DWORD* pdwStubPhase);
   13862 HRESULT STDMETHODCALLTYPE ICategoryProvider_EnumCategories_Proxy(
   13863     ICategoryProvider* This,
   13864     IEnumGUID **penum);
   13865 void __RPC_STUB ICategoryProvider_EnumCategories_Stub(
   13866     IRpcStubBuffer* This,
   13867     IRpcChannelBuffer* pRpcChannelBuffer,
   13868     PRPC_MESSAGE pRpcMessage,
   13869     DWORD* pdwStubPhase);
   13870 HRESULT STDMETHODCALLTYPE ICategoryProvider_GetCategoryName_Proxy(
   13871     ICategoryProvider* This,
   13872     const GUID *pguid,
   13873     LPWSTR pszName,
   13874     UINT cch);
   13875 void __RPC_STUB ICategoryProvider_GetCategoryName_Stub(
   13876     IRpcStubBuffer* This,
   13877     IRpcChannelBuffer* pRpcChannelBuffer,
   13878     PRPC_MESSAGE pRpcMessage,
   13879     DWORD* pdwStubPhase);
   13880 HRESULT STDMETHODCALLTYPE ICategoryProvider_CreateCategory_Proxy(
   13881     ICategoryProvider* This,
   13882     const GUID *pguid,
   13883     REFIID riid,
   13884     void **ppv);
   13885 void __RPC_STUB ICategoryProvider_CreateCategory_Stub(
   13886     IRpcStubBuffer* This,
   13887     IRpcChannelBuffer* pRpcChannelBuffer,
   13888     PRPC_MESSAGE pRpcMessage,
   13889     DWORD* pdwStubPhase);
   13890 
   13891 #endif  /* __ICategoryProvider_INTERFACE_DEFINED__ */
   13892 
   13893 
   13894 typedef enum CATEGORYINFO_FLAGS {
   13895     CATINFO_NORMAL = 0x0,
   13896     CATINFO_COLLAPSED = 0x1,
   13897     CATINFO_HIDDEN = 0x2,
   13898     CATINFO_EXPANDED = 0x4,
   13899     CATINFO_NOHEADER = 0x8,
   13900     CATINFO_NOTCOLLAPSIBLE = 0x10,
   13901     CATINFO_NOHEADERCOUNT = 0x20,
   13902     CATINFO_SUBSETTED = 0x40
   13903 } CATEGORYINFO_FLAGS;
   13904 
   13905 DEFINE_ENUM_FLAG_OPERATORS(CATEGORYINFO_FLAGS)
   13906 
   13907 typedef enum CATSORT_FLAGS {
   13908     CATSORT_DEFAULT = 0x0,
   13909     CATSORT_NAME = 0x1
   13910 } CATSORT_FLAGS;
   13911 
   13912 DEFINE_ENUM_FLAG_OPERATORS(CATSORT_FLAGS)
   13913 
   13914 typedef struct CATEGORY_INFO {
   13915     CATEGORYINFO_FLAGS cif;
   13916     WCHAR wszName[260];
   13917 } CATEGORY_INFO;
   13918 
   13919 /*****************************************************************************
   13920  * ICategorizer interface
   13921  */
   13922 #ifndef __ICategorizer_INTERFACE_DEFINED__
   13923 #define __ICategorizer_INTERFACE_DEFINED__
   13924 
   13925 DEFINE_GUID(IID_ICategorizer, 0xa3b14589, 0x9174, 0x49a8, 0x89,0xa3, 0x06,0xa1,0xae,0x2b,0x9b,0xa7);
   13926 #if defined(__cplusplus) && !defined(CINTERFACE)
   13927 MIDL_INTERFACE("a3b14589-9174-49a8-89a3-06a1ae2b9ba7")
   13928 ICategorizer : public IUnknown
   13929 {
   13930     virtual HRESULT STDMETHODCALLTYPE GetDescription(
   13931         LPWSTR pszDesc,
   13932         UINT cch) = 0;
   13933 
   13934     virtual HRESULT STDMETHODCALLTYPE GetCategory(
   13935         UINT cidl,
   13936         PCUITEMID_CHILD_ARRAY apidl,
   13937         DWORD *rgCategoryIds) = 0;
   13938 
   13939     virtual HRESULT STDMETHODCALLTYPE GetCategoryInfo(
   13940         DWORD dwCategoryId,
   13941         CATEGORY_INFO *pci) = 0;
   13942 
   13943     virtual HRESULT STDMETHODCALLTYPE CompareCategory(
   13944         CATSORT_FLAGS csfFlags,
   13945         DWORD dwCategoryId1,
   13946         DWORD dwCategoryId2) = 0;
   13947 
   13948 };
   13949 #ifdef __CRT_UUID_DECL
   13950 __CRT_UUID_DECL(ICategorizer, 0xa3b14589, 0x9174, 0x49a8, 0x89,0xa3, 0x06,0xa1,0xae,0x2b,0x9b,0xa7)
   13951 #endif
   13952 #else
   13953 typedef struct ICategorizerVtbl {
   13954     BEGIN_INTERFACE
   13955 
   13956     /*** IUnknown methods ***/
   13957     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   13958         ICategorizer* This,
   13959         REFIID riid,
   13960         void **ppvObject);
   13961 
   13962     ULONG (STDMETHODCALLTYPE *AddRef)(
   13963         ICategorizer* This);
   13964 
   13965     ULONG (STDMETHODCALLTYPE *Release)(
   13966         ICategorizer* This);
   13967 
   13968     /*** ICategorizer methods ***/
   13969     HRESULT (STDMETHODCALLTYPE *GetDescription)(
   13970         ICategorizer* This,
   13971         LPWSTR pszDesc,
   13972         UINT cch);
   13973 
   13974     HRESULT (STDMETHODCALLTYPE *GetCategory)(
   13975         ICategorizer* This,
   13976         UINT cidl,
   13977         PCUITEMID_CHILD_ARRAY apidl,
   13978         DWORD *rgCategoryIds);
   13979 
   13980     HRESULT (STDMETHODCALLTYPE *GetCategoryInfo)(
   13981         ICategorizer* This,
   13982         DWORD dwCategoryId,
   13983         CATEGORY_INFO *pci);
   13984 
   13985     HRESULT (STDMETHODCALLTYPE *CompareCategory)(
   13986         ICategorizer* This,
   13987         CATSORT_FLAGS csfFlags,
   13988         DWORD dwCategoryId1,
   13989         DWORD dwCategoryId2);
   13990 
   13991     END_INTERFACE
   13992 } ICategorizerVtbl;
   13993 interface ICategorizer {
   13994     CONST_VTBL ICategorizerVtbl* lpVtbl;
   13995 };
   13996 
   13997 #ifdef COBJMACROS
   13998 #ifndef WIDL_C_INLINE_WRAPPERS
   13999 /*** IUnknown methods ***/
   14000 #define ICategorizer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   14001 #define ICategorizer_AddRef(This) (This)->lpVtbl->AddRef(This)
   14002 #define ICategorizer_Release(This) (This)->lpVtbl->Release(This)
   14003 /*** ICategorizer methods ***/
   14004 #define ICategorizer_GetDescription(This,pszDesc,cch) (This)->lpVtbl->GetDescription(This,pszDesc,cch)
   14005 #define ICategorizer_GetCategory(This,cidl,apidl,rgCategoryIds) (This)->lpVtbl->GetCategory(This,cidl,apidl,rgCategoryIds)
   14006 #define ICategorizer_GetCategoryInfo(This,dwCategoryId,pci) (This)->lpVtbl->GetCategoryInfo(This,dwCategoryId,pci)
   14007 #define ICategorizer_CompareCategory(This,csfFlags,dwCategoryId1,dwCategoryId2) (This)->lpVtbl->CompareCategory(This,csfFlags,dwCategoryId1,dwCategoryId2)
   14008 #else
   14009 /*** IUnknown methods ***/
   14010 static FORCEINLINE HRESULT ICategorizer_QueryInterface(ICategorizer* This,REFIID riid,void **ppvObject) {
   14011     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   14012 }
   14013 static FORCEINLINE ULONG ICategorizer_AddRef(ICategorizer* This) {
   14014     return This->lpVtbl->AddRef(This);
   14015 }
   14016 static FORCEINLINE ULONG ICategorizer_Release(ICategorizer* This) {
   14017     return This->lpVtbl->Release(This);
   14018 }
   14019 /*** ICategorizer methods ***/
   14020 static FORCEINLINE HRESULT ICategorizer_GetDescription(ICategorizer* This,LPWSTR pszDesc,UINT cch) {
   14021     return This->lpVtbl->GetDescription(This,pszDesc,cch);
   14022 }
   14023 static FORCEINLINE HRESULT ICategorizer_GetCategory(ICategorizer* This,UINT cidl,PCUITEMID_CHILD_ARRAY apidl,DWORD *rgCategoryIds) {
   14024     return This->lpVtbl->GetCategory(This,cidl,apidl,rgCategoryIds);
   14025 }
   14026 static FORCEINLINE HRESULT ICategorizer_GetCategoryInfo(ICategorizer* This,DWORD dwCategoryId,CATEGORY_INFO *pci) {
   14027     return This->lpVtbl->GetCategoryInfo(This,dwCategoryId,pci);
   14028 }
   14029 static FORCEINLINE HRESULT ICategorizer_CompareCategory(ICategorizer* This,CATSORT_FLAGS csfFlags,DWORD dwCategoryId1,DWORD dwCategoryId2) {
   14030     return This->lpVtbl->CompareCategory(This,csfFlags,dwCategoryId1,dwCategoryId2);
   14031 }
   14032 #endif
   14033 #endif
   14034 
   14035 #endif
   14036 
   14037 HRESULT STDMETHODCALLTYPE ICategorizer_GetDescription_Proxy(
   14038     ICategorizer* This,
   14039     LPWSTR pszDesc,
   14040     UINT cch);
   14041 void __RPC_STUB ICategorizer_GetDescription_Stub(
   14042     IRpcStubBuffer* This,
   14043     IRpcChannelBuffer* pRpcChannelBuffer,
   14044     PRPC_MESSAGE pRpcMessage,
   14045     DWORD* pdwStubPhase);
   14046 HRESULT STDMETHODCALLTYPE ICategorizer_GetCategory_Proxy(
   14047     ICategorizer* This,
   14048     UINT cidl,
   14049     PCUITEMID_CHILD_ARRAY apidl,
   14050     DWORD *rgCategoryIds);
   14051 void __RPC_STUB ICategorizer_GetCategory_Stub(
   14052     IRpcStubBuffer* This,
   14053     IRpcChannelBuffer* pRpcChannelBuffer,
   14054     PRPC_MESSAGE pRpcMessage,
   14055     DWORD* pdwStubPhase);
   14056 HRESULT STDMETHODCALLTYPE ICategorizer_GetCategoryInfo_Proxy(
   14057     ICategorizer* This,
   14058     DWORD dwCategoryId,
   14059     CATEGORY_INFO *pci);
   14060 void __RPC_STUB ICategorizer_GetCategoryInfo_Stub(
   14061     IRpcStubBuffer* This,
   14062     IRpcChannelBuffer* pRpcChannelBuffer,
   14063     PRPC_MESSAGE pRpcMessage,
   14064     DWORD* pdwStubPhase);
   14065 HRESULT STDMETHODCALLTYPE ICategorizer_CompareCategory_Proxy(
   14066     ICategorizer* This,
   14067     CATSORT_FLAGS csfFlags,
   14068     DWORD dwCategoryId1,
   14069     DWORD dwCategoryId2);
   14070 void __RPC_STUB ICategorizer_CompareCategory_Stub(
   14071     IRpcStubBuffer* This,
   14072     IRpcChannelBuffer* pRpcChannelBuffer,
   14073     PRPC_MESSAGE pRpcMessage,
   14074     DWORD* pdwStubPhase);
   14075 
   14076 #endif  /* __ICategorizer_INTERFACE_DEFINED__ */
   14077 
   14078 
   14079 #include <pshpack8.h>
   14080 typedef struct SHDRAGIMAGE {
   14081     SIZE sizeDragImage;
   14082     POINT ptOffset;
   14083     HBITMAP hbmpDragImage;
   14084     COLORREF crColorKey;
   14085 } SHDRAGIMAGE;
   14086 typedef struct SHDRAGIMAGE *LPSHDRAGIMAGE;
   14087 #include <poppack.h>
   14088 
   14089 #define DI_GETDRAGIMAGE     TEXT("ShellGetDragImage")
   14090 
   14091 /*****************************************************************************
   14092  * IDropTargetHelper interface
   14093  */
   14094 #ifndef __IDropTargetHelper_INTERFACE_DEFINED__
   14095 #define __IDropTargetHelper_INTERFACE_DEFINED__
   14096 
   14097 DEFINE_GUID(IID_IDropTargetHelper, 0x4657278b, 0x411b, 0x11d2, 0x83,0x9a, 0x00,0xc0,0x4f,0xd9,0x18,0xd0);
   14098 #if defined(__cplusplus) && !defined(CINTERFACE)
   14099 MIDL_INTERFACE("4657278b-411b-11d2-839a-00c04fd918d0")
   14100 IDropTargetHelper : public IUnknown
   14101 {
   14102     virtual HRESULT STDMETHODCALLTYPE DragEnter(
   14103         HWND hwndTarget,
   14104         IDataObject *pDataObject,
   14105         POINT *ppt,
   14106         DWORD dwEffect) = 0;
   14107 
   14108     virtual HRESULT STDMETHODCALLTYPE DragLeave(
   14109         ) = 0;
   14110 
   14111     virtual HRESULT STDMETHODCALLTYPE DragOver(
   14112         POINT *ppt,
   14113         DWORD dwEffect) = 0;
   14114 
   14115     virtual HRESULT STDMETHODCALLTYPE Drop(
   14116         IDataObject *pDataObject,
   14117         POINT *ppt,
   14118         DWORD dwEffect) = 0;
   14119 
   14120     virtual HRESULT STDMETHODCALLTYPE Show(
   14121         WINBOOL fShow) = 0;
   14122 
   14123 };
   14124 #ifdef __CRT_UUID_DECL
   14125 __CRT_UUID_DECL(IDropTargetHelper, 0x4657278b, 0x411b, 0x11d2, 0x83,0x9a, 0x00,0xc0,0x4f,0xd9,0x18,0xd0)
   14126 #endif
   14127 #else
   14128 typedef struct IDropTargetHelperVtbl {
   14129     BEGIN_INTERFACE
   14130 
   14131     /*** IUnknown methods ***/
   14132     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   14133         IDropTargetHelper* This,
   14134         REFIID riid,
   14135         void **ppvObject);
   14136 
   14137     ULONG (STDMETHODCALLTYPE *AddRef)(
   14138         IDropTargetHelper* This);
   14139 
   14140     ULONG (STDMETHODCALLTYPE *Release)(
   14141         IDropTargetHelper* This);
   14142 
   14143     /*** IDropTargetHelper methods ***/
   14144     HRESULT (STDMETHODCALLTYPE *DragEnter)(
   14145         IDropTargetHelper* This,
   14146         HWND hwndTarget,
   14147         IDataObject *pDataObject,
   14148         POINT *ppt,
   14149         DWORD dwEffect);
   14150 
   14151     HRESULT (STDMETHODCALLTYPE *DragLeave)(
   14152         IDropTargetHelper* This);
   14153 
   14154     HRESULT (STDMETHODCALLTYPE *DragOver)(
   14155         IDropTargetHelper* This,
   14156         POINT *ppt,
   14157         DWORD dwEffect);
   14158 
   14159     HRESULT (STDMETHODCALLTYPE *Drop)(
   14160         IDropTargetHelper* This,
   14161         IDataObject *pDataObject,
   14162         POINT *ppt,
   14163         DWORD dwEffect);
   14164 
   14165     HRESULT (STDMETHODCALLTYPE *Show)(
   14166         IDropTargetHelper* This,
   14167         WINBOOL fShow);
   14168 
   14169     END_INTERFACE
   14170 } IDropTargetHelperVtbl;
   14171 interface IDropTargetHelper {
   14172     CONST_VTBL IDropTargetHelperVtbl* lpVtbl;
   14173 };
   14174 
   14175 #ifdef COBJMACROS
   14176 #ifndef WIDL_C_INLINE_WRAPPERS
   14177 /*** IUnknown methods ***/
   14178 #define IDropTargetHelper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   14179 #define IDropTargetHelper_AddRef(This) (This)->lpVtbl->AddRef(This)
   14180 #define IDropTargetHelper_Release(This) (This)->lpVtbl->Release(This)
   14181 /*** IDropTargetHelper methods ***/
   14182 #define IDropTargetHelper_DragEnter(This,hwndTarget,pDataObject,ppt,dwEffect) (This)->lpVtbl->DragEnter(This,hwndTarget,pDataObject,ppt,dwEffect)
   14183 #define IDropTargetHelper_DragLeave(This) (This)->lpVtbl->DragLeave(This)
   14184 #define IDropTargetHelper_DragOver(This,ppt,dwEffect) (This)->lpVtbl->DragOver(This,ppt,dwEffect)
   14185 #define IDropTargetHelper_Drop(This,pDataObject,ppt,dwEffect) (This)->lpVtbl->Drop(This,pDataObject,ppt,dwEffect)
   14186 #define IDropTargetHelper_Show(This,fShow) (This)->lpVtbl->Show(This,fShow)
   14187 #else
   14188 /*** IUnknown methods ***/
   14189 static FORCEINLINE HRESULT IDropTargetHelper_QueryInterface(IDropTargetHelper* This,REFIID riid,void **ppvObject) {
   14190     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   14191 }
   14192 static FORCEINLINE ULONG IDropTargetHelper_AddRef(IDropTargetHelper* This) {
   14193     return This->lpVtbl->AddRef(This);
   14194 }
   14195 static FORCEINLINE ULONG IDropTargetHelper_Release(IDropTargetHelper* This) {
   14196     return This->lpVtbl->Release(This);
   14197 }
   14198 /*** IDropTargetHelper methods ***/
   14199 static FORCEINLINE HRESULT IDropTargetHelper_DragEnter(IDropTargetHelper* This,HWND hwndTarget,IDataObject *pDataObject,POINT *ppt,DWORD dwEffect) {
   14200     return This->lpVtbl->DragEnter(This,hwndTarget,pDataObject,ppt,dwEffect);
   14201 }
   14202 static FORCEINLINE HRESULT IDropTargetHelper_DragLeave(IDropTargetHelper* This) {
   14203     return This->lpVtbl->DragLeave(This);
   14204 }
   14205 static FORCEINLINE HRESULT IDropTargetHelper_DragOver(IDropTargetHelper* This,POINT *ppt,DWORD dwEffect) {
   14206     return This->lpVtbl->DragOver(This,ppt,dwEffect);
   14207 }
   14208 static FORCEINLINE HRESULT IDropTargetHelper_Drop(IDropTargetHelper* This,IDataObject *pDataObject,POINT *ppt,DWORD dwEffect) {
   14209     return This->lpVtbl->Drop(This,pDataObject,ppt,dwEffect);
   14210 }
   14211 static FORCEINLINE HRESULT IDropTargetHelper_Show(IDropTargetHelper* This,WINBOOL fShow) {
   14212     return This->lpVtbl->Show(This,fShow);
   14213 }
   14214 #endif
   14215 #endif
   14216 
   14217 #endif
   14218 
   14219 HRESULT STDMETHODCALLTYPE IDropTargetHelper_DragEnter_Proxy(
   14220     IDropTargetHelper* This,
   14221     HWND hwndTarget,
   14222     IDataObject *pDataObject,
   14223     POINT *ppt,
   14224     DWORD dwEffect);
   14225 void __RPC_STUB IDropTargetHelper_DragEnter_Stub(
   14226     IRpcStubBuffer* This,
   14227     IRpcChannelBuffer* pRpcChannelBuffer,
   14228     PRPC_MESSAGE pRpcMessage,
   14229     DWORD* pdwStubPhase);
   14230 HRESULT STDMETHODCALLTYPE IDropTargetHelper_DragLeave_Proxy(
   14231     IDropTargetHelper* This);
   14232 void __RPC_STUB IDropTargetHelper_DragLeave_Stub(
   14233     IRpcStubBuffer* This,
   14234     IRpcChannelBuffer* pRpcChannelBuffer,
   14235     PRPC_MESSAGE pRpcMessage,
   14236     DWORD* pdwStubPhase);
   14237 HRESULT STDMETHODCALLTYPE IDropTargetHelper_DragOver_Proxy(
   14238     IDropTargetHelper* This,
   14239     POINT *ppt,
   14240     DWORD dwEffect);
   14241 void __RPC_STUB IDropTargetHelper_DragOver_Stub(
   14242     IRpcStubBuffer* This,
   14243     IRpcChannelBuffer* pRpcChannelBuffer,
   14244     PRPC_MESSAGE pRpcMessage,
   14245     DWORD* pdwStubPhase);
   14246 HRESULT STDMETHODCALLTYPE IDropTargetHelper_Drop_Proxy(
   14247     IDropTargetHelper* This,
   14248     IDataObject *pDataObject,
   14249     POINT *ppt,
   14250     DWORD dwEffect);
   14251 void __RPC_STUB IDropTargetHelper_Drop_Stub(
   14252     IRpcStubBuffer* This,
   14253     IRpcChannelBuffer* pRpcChannelBuffer,
   14254     PRPC_MESSAGE pRpcMessage,
   14255     DWORD* pdwStubPhase);
   14256 HRESULT STDMETHODCALLTYPE IDropTargetHelper_Show_Proxy(
   14257     IDropTargetHelper* This,
   14258     WINBOOL fShow);
   14259 void __RPC_STUB IDropTargetHelper_Show_Stub(
   14260     IRpcStubBuffer* This,
   14261     IRpcChannelBuffer* pRpcChannelBuffer,
   14262     PRPC_MESSAGE pRpcMessage,
   14263     DWORD* pdwStubPhase);
   14264 
   14265 #endif  /* __IDropTargetHelper_INTERFACE_DEFINED__ */
   14266 
   14267 
   14268 /*****************************************************************************
   14269  * IDragSourceHelper interface
   14270  */
   14271 #ifndef __IDragSourceHelper_INTERFACE_DEFINED__
   14272 #define __IDragSourceHelper_INTERFACE_DEFINED__
   14273 
   14274 DEFINE_GUID(IID_IDragSourceHelper, 0xde5bf786, 0x477a, 0x11d2, 0x83,0x9d, 0x00,0xc0,0x4f,0xd9,0x18,0xd0);
   14275 #if defined(__cplusplus) && !defined(CINTERFACE)
   14276 MIDL_INTERFACE("de5bf786-477a-11d2-839d-00c04fd918d0")
   14277 IDragSourceHelper : public IUnknown
   14278 {
   14279     virtual HRESULT STDMETHODCALLTYPE InitializeFromBitmap(
   14280         LPSHDRAGIMAGE pshdi,
   14281         IDataObject *pDataObject) = 0;
   14282 
   14283     virtual HRESULT STDMETHODCALLTYPE InitializeFromWindow(
   14284         HWND hwnd,
   14285         POINT *ppt,
   14286         IDataObject *pDataObject) = 0;
   14287 
   14288 };
   14289 #ifdef __CRT_UUID_DECL
   14290 __CRT_UUID_DECL(IDragSourceHelper, 0xde5bf786, 0x477a, 0x11d2, 0x83,0x9d, 0x00,0xc0,0x4f,0xd9,0x18,0xd0)
   14291 #endif
   14292 #else
   14293 typedef struct IDragSourceHelperVtbl {
   14294     BEGIN_INTERFACE
   14295 
   14296     /*** IUnknown methods ***/
   14297     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   14298         IDragSourceHelper* This,
   14299         REFIID riid,
   14300         void **ppvObject);
   14301 
   14302     ULONG (STDMETHODCALLTYPE *AddRef)(
   14303         IDragSourceHelper* This);
   14304 
   14305     ULONG (STDMETHODCALLTYPE *Release)(
   14306         IDragSourceHelper* This);
   14307 
   14308     /*** IDragSourceHelper methods ***/
   14309     HRESULT (STDMETHODCALLTYPE *InitializeFromBitmap)(
   14310         IDragSourceHelper* This,
   14311         LPSHDRAGIMAGE pshdi,
   14312         IDataObject *pDataObject);
   14313 
   14314     HRESULT (STDMETHODCALLTYPE *InitializeFromWindow)(
   14315         IDragSourceHelper* This,
   14316         HWND hwnd,
   14317         POINT *ppt,
   14318         IDataObject *pDataObject);
   14319 
   14320     END_INTERFACE
   14321 } IDragSourceHelperVtbl;
   14322 interface IDragSourceHelper {
   14323     CONST_VTBL IDragSourceHelperVtbl* lpVtbl;
   14324 };
   14325 
   14326 #ifdef COBJMACROS
   14327 #ifndef WIDL_C_INLINE_WRAPPERS
   14328 /*** IUnknown methods ***/
   14329 #define IDragSourceHelper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   14330 #define IDragSourceHelper_AddRef(This) (This)->lpVtbl->AddRef(This)
   14331 #define IDragSourceHelper_Release(This) (This)->lpVtbl->Release(This)
   14332 /*** IDragSourceHelper methods ***/
   14333 #define IDragSourceHelper_InitializeFromBitmap(This,pshdi,pDataObject) (This)->lpVtbl->InitializeFromBitmap(This,pshdi,pDataObject)
   14334 #define IDragSourceHelper_InitializeFromWindow(This,hwnd,ppt,pDataObject) (This)->lpVtbl->InitializeFromWindow(This,hwnd,ppt,pDataObject)
   14335 #else
   14336 /*** IUnknown methods ***/
   14337 static FORCEINLINE HRESULT IDragSourceHelper_QueryInterface(IDragSourceHelper* This,REFIID riid,void **ppvObject) {
   14338     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   14339 }
   14340 static FORCEINLINE ULONG IDragSourceHelper_AddRef(IDragSourceHelper* This) {
   14341     return This->lpVtbl->AddRef(This);
   14342 }
   14343 static FORCEINLINE ULONG IDragSourceHelper_Release(IDragSourceHelper* This) {
   14344     return This->lpVtbl->Release(This);
   14345 }
   14346 /*** IDragSourceHelper methods ***/
   14347 static FORCEINLINE HRESULT IDragSourceHelper_InitializeFromBitmap(IDragSourceHelper* This,LPSHDRAGIMAGE pshdi,IDataObject *pDataObject) {
   14348     return This->lpVtbl->InitializeFromBitmap(This,pshdi,pDataObject);
   14349 }
   14350 static FORCEINLINE HRESULT IDragSourceHelper_InitializeFromWindow(IDragSourceHelper* This,HWND hwnd,POINT *ppt,IDataObject *pDataObject) {
   14351     return This->lpVtbl->InitializeFromWindow(This,hwnd,ppt,pDataObject);
   14352 }
   14353 #endif
   14354 #endif
   14355 
   14356 #endif
   14357 
   14358 HRESULT STDMETHODCALLTYPE IDragSourceHelper_InitializeFromBitmap_Proxy(
   14359     IDragSourceHelper* This,
   14360     LPSHDRAGIMAGE pshdi,
   14361     IDataObject *pDataObject);
   14362 void __RPC_STUB IDragSourceHelper_InitializeFromBitmap_Stub(
   14363     IRpcStubBuffer* This,
   14364     IRpcChannelBuffer* pRpcChannelBuffer,
   14365     PRPC_MESSAGE pRpcMessage,
   14366     DWORD* pdwStubPhase);
   14367 HRESULT STDMETHODCALLTYPE IDragSourceHelper_InitializeFromWindow_Proxy(
   14368     IDragSourceHelper* This,
   14369     HWND hwnd,
   14370     POINT *ppt,
   14371     IDataObject *pDataObject);
   14372 void __RPC_STUB IDragSourceHelper_InitializeFromWindow_Stub(
   14373     IRpcStubBuffer* This,
   14374     IRpcChannelBuffer* pRpcChannelBuffer,
   14375     PRPC_MESSAGE pRpcMessage,
   14376     DWORD* pdwStubPhase);
   14377 
   14378 #endif  /* __IDragSourceHelper_INTERFACE_DEFINED__ */
   14379 
   14380 
   14381 #if NTDDI_VERSION >= NTDDI_VISTA
   14382 typedef enum DSH_FLAGS {
   14383     DSH_ALLOWDROPDESCRIPTIONTEXT = 0x1
   14384 } DSH_FLAGS;
   14385 
   14386 DEFINE_ENUM_FLAG_OPERATORS(DSH_FLAGS)
   14387 
   14388 /*****************************************************************************
   14389  * IDragSourceHelper2 interface
   14390  */
   14391 #ifndef __IDragSourceHelper2_INTERFACE_DEFINED__
   14392 #define __IDragSourceHelper2_INTERFACE_DEFINED__
   14393 
   14394 DEFINE_GUID(IID_IDragSourceHelper2, 0x83e07d0d, 0x0c5f, 0x4163, 0xbf,0x1a, 0x60,0xb2,0x74,0x05,0x1e,0x40);
   14395 #if defined(__cplusplus) && !defined(CINTERFACE)
   14396 MIDL_INTERFACE("83e07d0d-0c5f-4163-bf1a-60b274051e40")
   14397 IDragSourceHelper2 : public IDragSourceHelper
   14398 {
   14399     virtual HRESULT STDMETHODCALLTYPE SetFlags(
   14400         DWORD dwFlags) = 0;
   14401 
   14402 };
   14403 #ifdef __CRT_UUID_DECL
   14404 __CRT_UUID_DECL(IDragSourceHelper2, 0x83e07d0d, 0x0c5f, 0x4163, 0xbf,0x1a, 0x60,0xb2,0x74,0x05,0x1e,0x40)
   14405 #endif
   14406 #else
   14407 typedef struct IDragSourceHelper2Vtbl {
   14408     BEGIN_INTERFACE
   14409 
   14410     /*** IUnknown methods ***/
   14411     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   14412         IDragSourceHelper2* This,
   14413         REFIID riid,
   14414         void **ppvObject);
   14415 
   14416     ULONG (STDMETHODCALLTYPE *AddRef)(
   14417         IDragSourceHelper2* This);
   14418 
   14419     ULONG (STDMETHODCALLTYPE *Release)(
   14420         IDragSourceHelper2* This);
   14421 
   14422     /*** IDragSourceHelper methods ***/
   14423     HRESULT (STDMETHODCALLTYPE *InitializeFromBitmap)(
   14424         IDragSourceHelper2* This,
   14425         LPSHDRAGIMAGE pshdi,
   14426         IDataObject *pDataObject);
   14427 
   14428     HRESULT (STDMETHODCALLTYPE *InitializeFromWindow)(
   14429         IDragSourceHelper2* This,
   14430         HWND hwnd,
   14431         POINT *ppt,
   14432         IDataObject *pDataObject);
   14433 
   14434     /*** IDragSourceHelper2 methods ***/
   14435     HRESULT (STDMETHODCALLTYPE *SetFlags)(
   14436         IDragSourceHelper2* This,
   14437         DWORD dwFlags);
   14438 
   14439     END_INTERFACE
   14440 } IDragSourceHelper2Vtbl;
   14441 interface IDragSourceHelper2 {
   14442     CONST_VTBL IDragSourceHelper2Vtbl* lpVtbl;
   14443 };
   14444 
   14445 #ifdef COBJMACROS
   14446 #ifndef WIDL_C_INLINE_WRAPPERS
   14447 /*** IUnknown methods ***/
   14448 #define IDragSourceHelper2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   14449 #define IDragSourceHelper2_AddRef(This) (This)->lpVtbl->AddRef(This)
   14450 #define IDragSourceHelper2_Release(This) (This)->lpVtbl->Release(This)
   14451 /*** IDragSourceHelper methods ***/
   14452 #define IDragSourceHelper2_InitializeFromBitmap(This,pshdi,pDataObject) (This)->lpVtbl->InitializeFromBitmap(This,pshdi,pDataObject)
   14453 #define IDragSourceHelper2_InitializeFromWindow(This,hwnd,ppt,pDataObject) (This)->lpVtbl->InitializeFromWindow(This,hwnd,ppt,pDataObject)
   14454 /*** IDragSourceHelper2 methods ***/
   14455 #define IDragSourceHelper2_SetFlags(This,dwFlags) (This)->lpVtbl->SetFlags(This,dwFlags)
   14456 #else
   14457 /*** IUnknown methods ***/
   14458 static FORCEINLINE HRESULT IDragSourceHelper2_QueryInterface(IDragSourceHelper2* This,REFIID riid,void **ppvObject) {
   14459     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   14460 }
   14461 static FORCEINLINE ULONG IDragSourceHelper2_AddRef(IDragSourceHelper2* This) {
   14462     return This->lpVtbl->AddRef(This);
   14463 }
   14464 static FORCEINLINE ULONG IDragSourceHelper2_Release(IDragSourceHelper2* This) {
   14465     return This->lpVtbl->Release(This);
   14466 }
   14467 /*** IDragSourceHelper methods ***/
   14468 static FORCEINLINE HRESULT IDragSourceHelper2_InitializeFromBitmap(IDragSourceHelper2* This,LPSHDRAGIMAGE pshdi,IDataObject *pDataObject) {
   14469     return This->lpVtbl->InitializeFromBitmap(This,pshdi,pDataObject);
   14470 }
   14471 static FORCEINLINE HRESULT IDragSourceHelper2_InitializeFromWindow(IDragSourceHelper2* This,HWND hwnd,POINT *ppt,IDataObject *pDataObject) {
   14472     return This->lpVtbl->InitializeFromWindow(This,hwnd,ppt,pDataObject);
   14473 }
   14474 /*** IDragSourceHelper2 methods ***/
   14475 static FORCEINLINE HRESULT IDragSourceHelper2_SetFlags(IDragSourceHelper2* This,DWORD dwFlags) {
   14476     return This->lpVtbl->SetFlags(This,dwFlags);
   14477 }
   14478 #endif
   14479 #endif
   14480 
   14481 #endif
   14482 
   14483 HRESULT STDMETHODCALLTYPE IDragSourceHelper2_SetFlags_Proxy(
   14484     IDragSourceHelper2* This,
   14485     DWORD dwFlags);
   14486 void __RPC_STUB IDragSourceHelper2_SetFlags_Stub(
   14487     IRpcStubBuffer* This,
   14488     IRpcChannelBuffer* pRpcChannelBuffer,
   14489     PRPC_MESSAGE pRpcMessage,
   14490     DWORD* pdwStubPhase);
   14491 
   14492 #endif  /* __IDragSourceHelper2_INTERFACE_DEFINED__ */
   14493 
   14494 #endif
   14495 
   14496 #define IShellLink __MINGW_NAME_AW(IShellLink)
   14497 
   14498 typedef enum SLR_FLAGS {
   14499     SLR_NO_UI = 0x1,
   14500     SLR_ANY_MATCH = 0x2,
   14501     SLR_UPDATE = 0x4,
   14502     SLR_NOUPDATE = 0x8,
   14503     SLR_NOSEARCH = 0x10,
   14504     SLR_NOTRACK = 0x20,
   14505     SLR_NOLINKINFO = 0x40,
   14506     SLR_INVOKE_MSI = 0x80,
   14507     SLR_NO_UI_WITH_MSG_PUMP = 0x101,
   14508     SLR_OFFER_DELETE_WITHOUT_FILE = 0x200,
   14509     SLR_KNOWNFOLDER = 0x400,
   14510     SLR_MACHINE_IN_LOCAL_TARGET = 0x800,
   14511     SLR_UPDATE_MACHINE_AND_SID = 0x1000
   14512 } SLR_FLAGS;
   14513 
   14514 DEFINE_ENUM_FLAG_OPERATORS(SLR_FLAGS)
   14515 
   14516 typedef enum SLGP_FLAGS {
   14517     SLGP_SHORTPATH = 0x1,
   14518     SLGP_UNCPRIORITY = 0x2,
   14519     SLGP_RAWPATH = 0x4,
   14520     SLGP_RELATIVEPRIORITY = 0x8
   14521 } SLGP_FLAGS;
   14522 
   14523 DEFINE_ENUM_FLAG_OPERATORS(SLGP_FLAGS)
   14524 
   14525 /*****************************************************************************
   14526  * IShellLinkA interface
   14527  */
   14528 #ifndef __IShellLinkA_INTERFACE_DEFINED__
   14529 #define __IShellLinkA_INTERFACE_DEFINED__
   14530 
   14531 DEFINE_GUID(IID_IShellLinkA, 0x000214ee, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   14532 #if defined(__cplusplus) && !defined(CINTERFACE)
   14533 MIDL_INTERFACE("000214ee-0000-0000-c000-000000000046")
   14534 IShellLinkA : public IUnknown
   14535 {
   14536     virtual HRESULT STDMETHODCALLTYPE GetPath(
   14537         LPSTR pszFile,
   14538         int cch,
   14539         WIN32_FIND_DATAA *pfd,
   14540         DWORD fFlags) = 0;
   14541 
   14542     virtual HRESULT STDMETHODCALLTYPE GetIDList(
   14543         PIDLIST_ABSOLUTE *ppidl) = 0;
   14544 
   14545     virtual HRESULT STDMETHODCALLTYPE SetIDList(
   14546         PCIDLIST_ABSOLUTE pidl) = 0;
   14547 
   14548     virtual HRESULT STDMETHODCALLTYPE GetDescription(
   14549         LPSTR pszName,
   14550         int cch) = 0;
   14551 
   14552     virtual HRESULT STDMETHODCALLTYPE SetDescription(
   14553         LPCSTR pszName) = 0;
   14554 
   14555     virtual HRESULT STDMETHODCALLTYPE GetWorkingDirectory(
   14556         LPSTR pszDir,
   14557         int cch) = 0;
   14558 
   14559     virtual HRESULT STDMETHODCALLTYPE SetWorkingDirectory(
   14560         LPCSTR pszDir) = 0;
   14561 
   14562     virtual HRESULT STDMETHODCALLTYPE GetArguments(
   14563         LPSTR pszArgs,
   14564         int cch) = 0;
   14565 
   14566     virtual HRESULT STDMETHODCALLTYPE SetArguments(
   14567         LPCSTR pszArgs) = 0;
   14568 
   14569     virtual HRESULT STDMETHODCALLTYPE GetHotkey(
   14570         WORD *pwHotkey) = 0;
   14571 
   14572     virtual HRESULT STDMETHODCALLTYPE SetHotkey(
   14573         WORD wHotkey) = 0;
   14574 
   14575     virtual HRESULT STDMETHODCALLTYPE GetShowCmd(
   14576         int *piShowCmd) = 0;
   14577 
   14578     virtual HRESULT STDMETHODCALLTYPE SetShowCmd(
   14579         int iShowCmd) = 0;
   14580 
   14581     virtual HRESULT STDMETHODCALLTYPE GetIconLocation(
   14582         LPSTR pszIconPath,
   14583         int cch,
   14584         int *piIcon) = 0;
   14585 
   14586     virtual HRESULT STDMETHODCALLTYPE SetIconLocation(
   14587         LPCSTR pszIconPath,
   14588         int iIcon) = 0;
   14589 
   14590     virtual HRESULT STDMETHODCALLTYPE SetRelativePath(
   14591         LPCSTR pszPathRel,
   14592         DWORD dwReserved) = 0;
   14593 
   14594     virtual HRESULT STDMETHODCALLTYPE Resolve(
   14595         HWND hwnd,
   14596         DWORD fFlags) = 0;
   14597 
   14598     virtual HRESULT STDMETHODCALLTYPE SetPath(
   14599         LPCSTR pszFile) = 0;
   14600 
   14601 };
   14602 #ifdef __CRT_UUID_DECL
   14603 __CRT_UUID_DECL(IShellLinkA, 0x000214ee, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   14604 #endif
   14605 #else
   14606 typedef struct IShellLinkAVtbl {
   14607     BEGIN_INTERFACE
   14608 
   14609     /*** IUnknown methods ***/
   14610     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   14611         IShellLinkA* This,
   14612         REFIID riid,
   14613         void **ppvObject);
   14614 
   14615     ULONG (STDMETHODCALLTYPE *AddRef)(
   14616         IShellLinkA* This);
   14617 
   14618     ULONG (STDMETHODCALLTYPE *Release)(
   14619         IShellLinkA* This);
   14620 
   14621     /*** IShellLinkA methods ***/
   14622     HRESULT (STDMETHODCALLTYPE *GetPath)(
   14623         IShellLinkA* This,
   14624         LPSTR pszFile,
   14625         int cch,
   14626         WIN32_FIND_DATAA *pfd,
   14627         DWORD fFlags);
   14628 
   14629     HRESULT (STDMETHODCALLTYPE *GetIDList)(
   14630         IShellLinkA* This,
   14631         PIDLIST_ABSOLUTE *ppidl);
   14632 
   14633     HRESULT (STDMETHODCALLTYPE *SetIDList)(
   14634         IShellLinkA* This,
   14635         PCIDLIST_ABSOLUTE pidl);
   14636 
   14637     HRESULT (STDMETHODCALLTYPE *GetDescription)(
   14638         IShellLinkA* This,
   14639         LPSTR pszName,
   14640         int cch);
   14641 
   14642     HRESULT (STDMETHODCALLTYPE *SetDescription)(
   14643         IShellLinkA* This,
   14644         LPCSTR pszName);
   14645 
   14646     HRESULT (STDMETHODCALLTYPE *GetWorkingDirectory)(
   14647         IShellLinkA* This,
   14648         LPSTR pszDir,
   14649         int cch);
   14650 
   14651     HRESULT (STDMETHODCALLTYPE *SetWorkingDirectory)(
   14652         IShellLinkA* This,
   14653         LPCSTR pszDir);
   14654 
   14655     HRESULT (STDMETHODCALLTYPE *GetArguments)(
   14656         IShellLinkA* This,
   14657         LPSTR pszArgs,
   14658         int cch);
   14659 
   14660     HRESULT (STDMETHODCALLTYPE *SetArguments)(
   14661         IShellLinkA* This,
   14662         LPCSTR pszArgs);
   14663 
   14664     HRESULT (STDMETHODCALLTYPE *GetHotkey)(
   14665         IShellLinkA* This,
   14666         WORD *pwHotkey);
   14667 
   14668     HRESULT (STDMETHODCALLTYPE *SetHotkey)(
   14669         IShellLinkA* This,
   14670         WORD wHotkey);
   14671 
   14672     HRESULT (STDMETHODCALLTYPE *GetShowCmd)(
   14673         IShellLinkA* This,
   14674         int *piShowCmd);
   14675 
   14676     HRESULT (STDMETHODCALLTYPE *SetShowCmd)(
   14677         IShellLinkA* This,
   14678         int iShowCmd);
   14679 
   14680     HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
   14681         IShellLinkA* This,
   14682         LPSTR pszIconPath,
   14683         int cch,
   14684         int *piIcon);
   14685 
   14686     HRESULT (STDMETHODCALLTYPE *SetIconLocation)(
   14687         IShellLinkA* This,
   14688         LPCSTR pszIconPath,
   14689         int iIcon);
   14690 
   14691     HRESULT (STDMETHODCALLTYPE *SetRelativePath)(
   14692         IShellLinkA* This,
   14693         LPCSTR pszPathRel,
   14694         DWORD dwReserved);
   14695 
   14696     HRESULT (STDMETHODCALLTYPE *Resolve)(
   14697         IShellLinkA* This,
   14698         HWND hwnd,
   14699         DWORD fFlags);
   14700 
   14701     HRESULT (STDMETHODCALLTYPE *SetPath)(
   14702         IShellLinkA* This,
   14703         LPCSTR pszFile);
   14704 
   14705     END_INTERFACE
   14706 } IShellLinkAVtbl;
   14707 interface IShellLinkA {
   14708     CONST_VTBL IShellLinkAVtbl* lpVtbl;
   14709 };
   14710 
   14711 #ifdef COBJMACROS
   14712 #ifndef WIDL_C_INLINE_WRAPPERS
   14713 /*** IUnknown methods ***/
   14714 #define IShellLinkA_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   14715 #define IShellLinkA_AddRef(This) (This)->lpVtbl->AddRef(This)
   14716 #define IShellLinkA_Release(This) (This)->lpVtbl->Release(This)
   14717 /*** IShellLinkA methods ***/
   14718 #define IShellLinkA_GetPath(This,pszFile,cch,pfd,fFlags) (This)->lpVtbl->GetPath(This,pszFile,cch,pfd,fFlags)
   14719 #define IShellLinkA_GetIDList(This,ppidl) (This)->lpVtbl->GetIDList(This,ppidl)
   14720 #define IShellLinkA_SetIDList(This,pidl) (This)->lpVtbl->SetIDList(This,pidl)
   14721 #define IShellLinkA_GetDescription(This,pszName,cch) (This)->lpVtbl->GetDescription(This,pszName,cch)
   14722 #define IShellLinkA_SetDescription(This,pszName) (This)->lpVtbl->SetDescription(This,pszName)
   14723 #define IShellLinkA_GetWorkingDirectory(This,pszDir,cch) (This)->lpVtbl->GetWorkingDirectory(This,pszDir,cch)
   14724 #define IShellLinkA_SetWorkingDirectory(This,pszDir) (This)->lpVtbl->SetWorkingDirectory(This,pszDir)
   14725 #define IShellLinkA_GetArguments(This,pszArgs,cch) (This)->lpVtbl->GetArguments(This,pszArgs,cch)
   14726 #define IShellLinkA_SetArguments(This,pszArgs) (This)->lpVtbl->SetArguments(This,pszArgs)
   14727 #define IShellLinkA_GetHotkey(This,pwHotkey) (This)->lpVtbl->GetHotkey(This,pwHotkey)
   14728 #define IShellLinkA_SetHotkey(This,wHotkey) (This)->lpVtbl->SetHotkey(This,wHotkey)
   14729 #define IShellLinkA_GetShowCmd(This,piShowCmd) (This)->lpVtbl->GetShowCmd(This,piShowCmd)
   14730 #define IShellLinkA_SetShowCmd(This,iShowCmd) (This)->lpVtbl->SetShowCmd(This,iShowCmd)
   14731 #define IShellLinkA_GetIconLocation(This,pszIconPath,cch,piIcon) (This)->lpVtbl->GetIconLocation(This,pszIconPath,cch,piIcon)
   14732 #define IShellLinkA_SetIconLocation(This,pszIconPath,iIcon) (This)->lpVtbl->SetIconLocation(This,pszIconPath,iIcon)
   14733 #define IShellLinkA_SetRelativePath(This,pszPathRel,dwReserved) (This)->lpVtbl->SetRelativePath(This,pszPathRel,dwReserved)
   14734 #define IShellLinkA_Resolve(This,hwnd,fFlags) (This)->lpVtbl->Resolve(This,hwnd,fFlags)
   14735 #define IShellLinkA_SetPath(This,pszFile) (This)->lpVtbl->SetPath(This,pszFile)
   14736 #else
   14737 /*** IUnknown methods ***/
   14738 static FORCEINLINE HRESULT IShellLinkA_QueryInterface(IShellLinkA* This,REFIID riid,void **ppvObject) {
   14739     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   14740 }
   14741 static FORCEINLINE ULONG IShellLinkA_AddRef(IShellLinkA* This) {
   14742     return This->lpVtbl->AddRef(This);
   14743 }
   14744 static FORCEINLINE ULONG IShellLinkA_Release(IShellLinkA* This) {
   14745     return This->lpVtbl->Release(This);
   14746 }
   14747 /*** IShellLinkA methods ***/
   14748 static FORCEINLINE HRESULT IShellLinkA_GetPath(IShellLinkA* This,LPSTR pszFile,int cch,WIN32_FIND_DATAA *pfd,DWORD fFlags) {
   14749     return This->lpVtbl->GetPath(This,pszFile,cch,pfd,fFlags);
   14750 }
   14751 static FORCEINLINE HRESULT IShellLinkA_GetIDList(IShellLinkA* This,PIDLIST_ABSOLUTE *ppidl) {
   14752     return This->lpVtbl->GetIDList(This,ppidl);
   14753 }
   14754 static FORCEINLINE HRESULT IShellLinkA_SetIDList(IShellLinkA* This,PCIDLIST_ABSOLUTE pidl) {
   14755     return This->lpVtbl->SetIDList(This,pidl);
   14756 }
   14757 static FORCEINLINE HRESULT IShellLinkA_GetDescription(IShellLinkA* This,LPSTR pszName,int cch) {
   14758     return This->lpVtbl->GetDescription(This,pszName,cch);
   14759 }
   14760 static FORCEINLINE HRESULT IShellLinkA_SetDescription(IShellLinkA* This,LPCSTR pszName) {
   14761     return This->lpVtbl->SetDescription(This,pszName);
   14762 }
   14763 static FORCEINLINE HRESULT IShellLinkA_GetWorkingDirectory(IShellLinkA* This,LPSTR pszDir,int cch) {
   14764     return This->lpVtbl->GetWorkingDirectory(This,pszDir,cch);
   14765 }
   14766 static FORCEINLINE HRESULT IShellLinkA_SetWorkingDirectory(IShellLinkA* This,LPCSTR pszDir) {
   14767     return This->lpVtbl->SetWorkingDirectory(This,pszDir);
   14768 }
   14769 static FORCEINLINE HRESULT IShellLinkA_GetArguments(IShellLinkA* This,LPSTR pszArgs,int cch) {
   14770     return This->lpVtbl->GetArguments(This,pszArgs,cch);
   14771 }
   14772 static FORCEINLINE HRESULT IShellLinkA_SetArguments(IShellLinkA* This,LPCSTR pszArgs) {
   14773     return This->lpVtbl->SetArguments(This,pszArgs);
   14774 }
   14775 static FORCEINLINE HRESULT IShellLinkA_GetHotkey(IShellLinkA* This,WORD *pwHotkey) {
   14776     return This->lpVtbl->GetHotkey(This,pwHotkey);
   14777 }
   14778 static FORCEINLINE HRESULT IShellLinkA_SetHotkey(IShellLinkA* This,WORD wHotkey) {
   14779     return This->lpVtbl->SetHotkey(This,wHotkey);
   14780 }
   14781 static FORCEINLINE HRESULT IShellLinkA_GetShowCmd(IShellLinkA* This,int *piShowCmd) {
   14782     return This->lpVtbl->GetShowCmd(This,piShowCmd);
   14783 }
   14784 static FORCEINLINE HRESULT IShellLinkA_SetShowCmd(IShellLinkA* This,int iShowCmd) {
   14785     return This->lpVtbl->SetShowCmd(This,iShowCmd);
   14786 }
   14787 static FORCEINLINE HRESULT IShellLinkA_GetIconLocation(IShellLinkA* This,LPSTR pszIconPath,int cch,int *piIcon) {
   14788     return This->lpVtbl->GetIconLocation(This,pszIconPath,cch,piIcon);
   14789 }
   14790 static FORCEINLINE HRESULT IShellLinkA_SetIconLocation(IShellLinkA* This,LPCSTR pszIconPath,int iIcon) {
   14791     return This->lpVtbl->SetIconLocation(This,pszIconPath,iIcon);
   14792 }
   14793 static FORCEINLINE HRESULT IShellLinkA_SetRelativePath(IShellLinkA* This,LPCSTR pszPathRel,DWORD dwReserved) {
   14794     return This->lpVtbl->SetRelativePath(This,pszPathRel,dwReserved);
   14795 }
   14796 static FORCEINLINE HRESULT IShellLinkA_Resolve(IShellLinkA* This,HWND hwnd,DWORD fFlags) {
   14797     return This->lpVtbl->Resolve(This,hwnd,fFlags);
   14798 }
   14799 static FORCEINLINE HRESULT IShellLinkA_SetPath(IShellLinkA* This,LPCSTR pszFile) {
   14800     return This->lpVtbl->SetPath(This,pszFile);
   14801 }
   14802 #endif
   14803 #endif
   14804 
   14805 #endif
   14806 
   14807 HRESULT STDMETHODCALLTYPE IShellLinkA_GetPath_Proxy(
   14808     IShellLinkA* This,
   14809     LPSTR pszFile,
   14810     int cch,
   14811     WIN32_FIND_DATAA *pfd,
   14812     DWORD fFlags);
   14813 void __RPC_STUB IShellLinkA_GetPath_Stub(
   14814     IRpcStubBuffer* This,
   14815     IRpcChannelBuffer* pRpcChannelBuffer,
   14816     PRPC_MESSAGE pRpcMessage,
   14817     DWORD* pdwStubPhase);
   14818 HRESULT STDMETHODCALLTYPE IShellLinkA_GetIDList_Proxy(
   14819     IShellLinkA* This,
   14820     PIDLIST_ABSOLUTE *ppidl);
   14821 void __RPC_STUB IShellLinkA_GetIDList_Stub(
   14822     IRpcStubBuffer* This,
   14823     IRpcChannelBuffer* pRpcChannelBuffer,
   14824     PRPC_MESSAGE pRpcMessage,
   14825     DWORD* pdwStubPhase);
   14826 HRESULT STDMETHODCALLTYPE IShellLinkA_SetIDList_Proxy(
   14827     IShellLinkA* This,
   14828     PCIDLIST_ABSOLUTE pidl);
   14829 void __RPC_STUB IShellLinkA_SetIDList_Stub(
   14830     IRpcStubBuffer* This,
   14831     IRpcChannelBuffer* pRpcChannelBuffer,
   14832     PRPC_MESSAGE pRpcMessage,
   14833     DWORD* pdwStubPhase);
   14834 HRESULT STDMETHODCALLTYPE IShellLinkA_GetDescription_Proxy(
   14835     IShellLinkA* This,
   14836     LPSTR pszName,
   14837     int cch);
   14838 void __RPC_STUB IShellLinkA_GetDescription_Stub(
   14839     IRpcStubBuffer* This,
   14840     IRpcChannelBuffer* pRpcChannelBuffer,
   14841     PRPC_MESSAGE pRpcMessage,
   14842     DWORD* pdwStubPhase);
   14843 HRESULT STDMETHODCALLTYPE IShellLinkA_SetDescription_Proxy(
   14844     IShellLinkA* This,
   14845     LPCSTR pszName);
   14846 void __RPC_STUB IShellLinkA_SetDescription_Stub(
   14847     IRpcStubBuffer* This,
   14848     IRpcChannelBuffer* pRpcChannelBuffer,
   14849     PRPC_MESSAGE pRpcMessage,
   14850     DWORD* pdwStubPhase);
   14851 HRESULT STDMETHODCALLTYPE IShellLinkA_GetWorkingDirectory_Proxy(
   14852     IShellLinkA* This,
   14853     LPSTR pszDir,
   14854     int cch);
   14855 void __RPC_STUB IShellLinkA_GetWorkingDirectory_Stub(
   14856     IRpcStubBuffer* This,
   14857     IRpcChannelBuffer* pRpcChannelBuffer,
   14858     PRPC_MESSAGE pRpcMessage,
   14859     DWORD* pdwStubPhase);
   14860 HRESULT STDMETHODCALLTYPE IShellLinkA_SetWorkingDirectory_Proxy(
   14861     IShellLinkA* This,
   14862     LPCSTR pszDir);
   14863 void __RPC_STUB IShellLinkA_SetWorkingDirectory_Stub(
   14864     IRpcStubBuffer* This,
   14865     IRpcChannelBuffer* pRpcChannelBuffer,
   14866     PRPC_MESSAGE pRpcMessage,
   14867     DWORD* pdwStubPhase);
   14868 HRESULT STDMETHODCALLTYPE IShellLinkA_GetArguments_Proxy(
   14869     IShellLinkA* This,
   14870     LPSTR pszArgs,
   14871     int cch);
   14872 void __RPC_STUB IShellLinkA_GetArguments_Stub(
   14873     IRpcStubBuffer* This,
   14874     IRpcChannelBuffer* pRpcChannelBuffer,
   14875     PRPC_MESSAGE pRpcMessage,
   14876     DWORD* pdwStubPhase);
   14877 HRESULT STDMETHODCALLTYPE IShellLinkA_SetArguments_Proxy(
   14878     IShellLinkA* This,
   14879     LPCSTR pszArgs);
   14880 void __RPC_STUB IShellLinkA_SetArguments_Stub(
   14881     IRpcStubBuffer* This,
   14882     IRpcChannelBuffer* pRpcChannelBuffer,
   14883     PRPC_MESSAGE pRpcMessage,
   14884     DWORD* pdwStubPhase);
   14885 HRESULT STDMETHODCALLTYPE IShellLinkA_GetHotkey_Proxy(
   14886     IShellLinkA* This,
   14887     WORD *pwHotkey);
   14888 void __RPC_STUB IShellLinkA_GetHotkey_Stub(
   14889     IRpcStubBuffer* This,
   14890     IRpcChannelBuffer* pRpcChannelBuffer,
   14891     PRPC_MESSAGE pRpcMessage,
   14892     DWORD* pdwStubPhase);
   14893 HRESULT STDMETHODCALLTYPE IShellLinkA_SetHotkey_Proxy(
   14894     IShellLinkA* This,
   14895     WORD wHotkey);
   14896 void __RPC_STUB IShellLinkA_SetHotkey_Stub(
   14897     IRpcStubBuffer* This,
   14898     IRpcChannelBuffer* pRpcChannelBuffer,
   14899     PRPC_MESSAGE pRpcMessage,
   14900     DWORD* pdwStubPhase);
   14901 HRESULT STDMETHODCALLTYPE IShellLinkA_GetShowCmd_Proxy(
   14902     IShellLinkA* This,
   14903     int *piShowCmd);
   14904 void __RPC_STUB IShellLinkA_GetShowCmd_Stub(
   14905     IRpcStubBuffer* This,
   14906     IRpcChannelBuffer* pRpcChannelBuffer,
   14907     PRPC_MESSAGE pRpcMessage,
   14908     DWORD* pdwStubPhase);
   14909 HRESULT STDMETHODCALLTYPE IShellLinkA_SetShowCmd_Proxy(
   14910     IShellLinkA* This,
   14911     int iShowCmd);
   14912 void __RPC_STUB IShellLinkA_SetShowCmd_Stub(
   14913     IRpcStubBuffer* This,
   14914     IRpcChannelBuffer* pRpcChannelBuffer,
   14915     PRPC_MESSAGE pRpcMessage,
   14916     DWORD* pdwStubPhase);
   14917 HRESULT STDMETHODCALLTYPE IShellLinkA_GetIconLocation_Proxy(
   14918     IShellLinkA* This,
   14919     LPSTR pszIconPath,
   14920     int cch,
   14921     int *piIcon);
   14922 void __RPC_STUB IShellLinkA_GetIconLocation_Stub(
   14923     IRpcStubBuffer* This,
   14924     IRpcChannelBuffer* pRpcChannelBuffer,
   14925     PRPC_MESSAGE pRpcMessage,
   14926     DWORD* pdwStubPhase);
   14927 HRESULT STDMETHODCALLTYPE IShellLinkA_SetIconLocation_Proxy(
   14928     IShellLinkA* This,
   14929     LPCSTR pszIconPath,
   14930     int iIcon);
   14931 void __RPC_STUB IShellLinkA_SetIconLocation_Stub(
   14932     IRpcStubBuffer* This,
   14933     IRpcChannelBuffer* pRpcChannelBuffer,
   14934     PRPC_MESSAGE pRpcMessage,
   14935     DWORD* pdwStubPhase);
   14936 HRESULT STDMETHODCALLTYPE IShellLinkA_SetRelativePath_Proxy(
   14937     IShellLinkA* This,
   14938     LPCSTR pszPathRel,
   14939     DWORD dwReserved);
   14940 void __RPC_STUB IShellLinkA_SetRelativePath_Stub(
   14941     IRpcStubBuffer* This,
   14942     IRpcChannelBuffer* pRpcChannelBuffer,
   14943     PRPC_MESSAGE pRpcMessage,
   14944     DWORD* pdwStubPhase);
   14945 HRESULT STDMETHODCALLTYPE IShellLinkA_Resolve_Proxy(
   14946     IShellLinkA* This,
   14947     HWND hwnd,
   14948     DWORD fFlags);
   14949 void __RPC_STUB IShellLinkA_Resolve_Stub(
   14950     IRpcStubBuffer* This,
   14951     IRpcChannelBuffer* pRpcChannelBuffer,
   14952     PRPC_MESSAGE pRpcMessage,
   14953     DWORD* pdwStubPhase);
   14954 HRESULT STDMETHODCALLTYPE IShellLinkA_SetPath_Proxy(
   14955     IShellLinkA* This,
   14956     LPCSTR pszFile);
   14957 void __RPC_STUB IShellLinkA_SetPath_Stub(
   14958     IRpcStubBuffer* This,
   14959     IRpcChannelBuffer* pRpcChannelBuffer,
   14960     PRPC_MESSAGE pRpcMessage,
   14961     DWORD* pdwStubPhase);
   14962 
   14963 #endif  /* __IShellLinkA_INTERFACE_DEFINED__ */
   14964 
   14965 
   14966 /*****************************************************************************
   14967  * IShellLinkW interface
   14968  */
   14969 #ifndef __IShellLinkW_INTERFACE_DEFINED__
   14970 #define __IShellLinkW_INTERFACE_DEFINED__
   14971 
   14972 DEFINE_GUID(IID_IShellLinkW, 0x000214f9, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   14973 #if defined(__cplusplus) && !defined(CINTERFACE)
   14974 MIDL_INTERFACE("000214f9-0000-0000-c000-000000000046")
   14975 IShellLinkW : public IUnknown
   14976 {
   14977     virtual HRESULT STDMETHODCALLTYPE GetPath(
   14978         LPWSTR pszFile,
   14979         int cch,
   14980         WIN32_FIND_DATAW *pfd,
   14981         DWORD fFlags) = 0;
   14982 
   14983     virtual HRESULT STDMETHODCALLTYPE GetIDList(
   14984         PIDLIST_ABSOLUTE *ppidl) = 0;
   14985 
   14986     virtual HRESULT STDMETHODCALLTYPE SetIDList(
   14987         PCIDLIST_ABSOLUTE pidl) = 0;
   14988 
   14989     virtual HRESULT STDMETHODCALLTYPE GetDescription(
   14990         LPWSTR pszName,
   14991         int cch) = 0;
   14992 
   14993     virtual HRESULT STDMETHODCALLTYPE SetDescription(
   14994         LPCWSTR pszName) = 0;
   14995 
   14996     virtual HRESULT STDMETHODCALLTYPE GetWorkingDirectory(
   14997         LPWSTR pszDir,
   14998         int cch) = 0;
   14999 
   15000     virtual HRESULT STDMETHODCALLTYPE SetWorkingDirectory(
   15001         LPCWSTR pszDir) = 0;
   15002 
   15003     virtual HRESULT STDMETHODCALLTYPE GetArguments(
   15004         LPWSTR pszArgs,
   15005         int cch) = 0;
   15006 
   15007     virtual HRESULT STDMETHODCALLTYPE SetArguments(
   15008         LPCWSTR pszArgs) = 0;
   15009 
   15010     virtual HRESULT STDMETHODCALLTYPE GetHotkey(
   15011         WORD *pwHotkey) = 0;
   15012 
   15013     virtual HRESULT STDMETHODCALLTYPE SetHotkey(
   15014         WORD wHotkey) = 0;
   15015 
   15016     virtual HRESULT STDMETHODCALLTYPE GetShowCmd(
   15017         int *piShowCmd) = 0;
   15018 
   15019     virtual HRESULT STDMETHODCALLTYPE SetShowCmd(
   15020         int iShowCmd) = 0;
   15021 
   15022     virtual HRESULT STDMETHODCALLTYPE GetIconLocation(
   15023         LPWSTR pszIconPath,
   15024         int cch,
   15025         int *piIcon) = 0;
   15026 
   15027     virtual HRESULT STDMETHODCALLTYPE SetIconLocation(
   15028         LPCWSTR pszIconPath,
   15029         int iIcon) = 0;
   15030 
   15031     virtual HRESULT STDMETHODCALLTYPE SetRelativePath(
   15032         LPCWSTR pszPathRel,
   15033         DWORD dwReserved) = 0;
   15034 
   15035     virtual HRESULT STDMETHODCALLTYPE Resolve(
   15036         HWND hwnd,
   15037         DWORD fFlags) = 0;
   15038 
   15039     virtual HRESULT STDMETHODCALLTYPE SetPath(
   15040         LPCWSTR pszFile) = 0;
   15041 
   15042 };
   15043 #ifdef __CRT_UUID_DECL
   15044 __CRT_UUID_DECL(IShellLinkW, 0x000214f9, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   15045 #endif
   15046 #else
   15047 typedef struct IShellLinkWVtbl {
   15048     BEGIN_INTERFACE
   15049 
   15050     /*** IUnknown methods ***/
   15051     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   15052         IShellLinkW* This,
   15053         REFIID riid,
   15054         void **ppvObject);
   15055 
   15056     ULONG (STDMETHODCALLTYPE *AddRef)(
   15057         IShellLinkW* This);
   15058 
   15059     ULONG (STDMETHODCALLTYPE *Release)(
   15060         IShellLinkW* This);
   15061 
   15062     /*** IShellLinkW methods ***/
   15063     HRESULT (STDMETHODCALLTYPE *GetPath)(
   15064         IShellLinkW* This,
   15065         LPWSTR pszFile,
   15066         int cch,
   15067         WIN32_FIND_DATAW *pfd,
   15068         DWORD fFlags);
   15069 
   15070     HRESULT (STDMETHODCALLTYPE *GetIDList)(
   15071         IShellLinkW* This,
   15072         PIDLIST_ABSOLUTE *ppidl);
   15073 
   15074     HRESULT (STDMETHODCALLTYPE *SetIDList)(
   15075         IShellLinkW* This,
   15076         PCIDLIST_ABSOLUTE pidl);
   15077 
   15078     HRESULT (STDMETHODCALLTYPE *GetDescription)(
   15079         IShellLinkW* This,
   15080         LPWSTR pszName,
   15081         int cch);
   15082 
   15083     HRESULT (STDMETHODCALLTYPE *SetDescription)(
   15084         IShellLinkW* This,
   15085         LPCWSTR pszName);
   15086 
   15087     HRESULT (STDMETHODCALLTYPE *GetWorkingDirectory)(
   15088         IShellLinkW* This,
   15089         LPWSTR pszDir,
   15090         int cch);
   15091 
   15092     HRESULT (STDMETHODCALLTYPE *SetWorkingDirectory)(
   15093         IShellLinkW* This,
   15094         LPCWSTR pszDir);
   15095 
   15096     HRESULT (STDMETHODCALLTYPE *GetArguments)(
   15097         IShellLinkW* This,
   15098         LPWSTR pszArgs,
   15099         int cch);
   15100 
   15101     HRESULT (STDMETHODCALLTYPE *SetArguments)(
   15102         IShellLinkW* This,
   15103         LPCWSTR pszArgs);
   15104 
   15105     HRESULT (STDMETHODCALLTYPE *GetHotkey)(
   15106         IShellLinkW* This,
   15107         WORD *pwHotkey);
   15108 
   15109     HRESULT (STDMETHODCALLTYPE *SetHotkey)(
   15110         IShellLinkW* This,
   15111         WORD wHotkey);
   15112 
   15113     HRESULT (STDMETHODCALLTYPE *GetShowCmd)(
   15114         IShellLinkW* This,
   15115         int *piShowCmd);
   15116 
   15117     HRESULT (STDMETHODCALLTYPE *SetShowCmd)(
   15118         IShellLinkW* This,
   15119         int iShowCmd);
   15120 
   15121     HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
   15122         IShellLinkW* This,
   15123         LPWSTR pszIconPath,
   15124         int cch,
   15125         int *piIcon);
   15126 
   15127     HRESULT (STDMETHODCALLTYPE *SetIconLocation)(
   15128         IShellLinkW* This,
   15129         LPCWSTR pszIconPath,
   15130         int iIcon);
   15131 
   15132     HRESULT (STDMETHODCALLTYPE *SetRelativePath)(
   15133         IShellLinkW* This,
   15134         LPCWSTR pszPathRel,
   15135         DWORD dwReserved);
   15136 
   15137     HRESULT (STDMETHODCALLTYPE *Resolve)(
   15138         IShellLinkW* This,
   15139         HWND hwnd,
   15140         DWORD fFlags);
   15141 
   15142     HRESULT (STDMETHODCALLTYPE *SetPath)(
   15143         IShellLinkW* This,
   15144         LPCWSTR pszFile);
   15145 
   15146     END_INTERFACE
   15147 } IShellLinkWVtbl;
   15148 interface IShellLinkW {
   15149     CONST_VTBL IShellLinkWVtbl* lpVtbl;
   15150 };
   15151 
   15152 #ifdef COBJMACROS
   15153 #ifndef WIDL_C_INLINE_WRAPPERS
   15154 /*** IUnknown methods ***/
   15155 #define IShellLinkW_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   15156 #define IShellLinkW_AddRef(This) (This)->lpVtbl->AddRef(This)
   15157 #define IShellLinkW_Release(This) (This)->lpVtbl->Release(This)
   15158 /*** IShellLinkW methods ***/
   15159 #define IShellLinkW_GetPath(This,pszFile,cch,pfd,fFlags) (This)->lpVtbl->GetPath(This,pszFile,cch,pfd,fFlags)
   15160 #define IShellLinkW_GetIDList(This,ppidl) (This)->lpVtbl->GetIDList(This,ppidl)
   15161 #define IShellLinkW_SetIDList(This,pidl) (This)->lpVtbl->SetIDList(This,pidl)
   15162 #define IShellLinkW_GetDescription(This,pszName,cch) (This)->lpVtbl->GetDescription(This,pszName,cch)
   15163 #define IShellLinkW_SetDescription(This,pszName) (This)->lpVtbl->SetDescription(This,pszName)
   15164 #define IShellLinkW_GetWorkingDirectory(This,pszDir,cch) (This)->lpVtbl->GetWorkingDirectory(This,pszDir,cch)
   15165 #define IShellLinkW_SetWorkingDirectory(This,pszDir) (This)->lpVtbl->SetWorkingDirectory(This,pszDir)
   15166 #define IShellLinkW_GetArguments(This,pszArgs,cch) (This)->lpVtbl->GetArguments(This,pszArgs,cch)
   15167 #define IShellLinkW_SetArguments(This,pszArgs) (This)->lpVtbl->SetArguments(This,pszArgs)
   15168 #define IShellLinkW_GetHotkey(This,pwHotkey) (This)->lpVtbl->GetHotkey(This,pwHotkey)
   15169 #define IShellLinkW_SetHotkey(This,wHotkey) (This)->lpVtbl->SetHotkey(This,wHotkey)
   15170 #define IShellLinkW_GetShowCmd(This,piShowCmd) (This)->lpVtbl->GetShowCmd(This,piShowCmd)
   15171 #define IShellLinkW_SetShowCmd(This,iShowCmd) (This)->lpVtbl->SetShowCmd(This,iShowCmd)
   15172 #define IShellLinkW_GetIconLocation(This,pszIconPath,cch,piIcon) (This)->lpVtbl->GetIconLocation(This,pszIconPath,cch,piIcon)
   15173 #define IShellLinkW_SetIconLocation(This,pszIconPath,iIcon) (This)->lpVtbl->SetIconLocation(This,pszIconPath,iIcon)
   15174 #define IShellLinkW_SetRelativePath(This,pszPathRel,dwReserved) (This)->lpVtbl->SetRelativePath(This,pszPathRel,dwReserved)
   15175 #define IShellLinkW_Resolve(This,hwnd,fFlags) (This)->lpVtbl->Resolve(This,hwnd,fFlags)
   15176 #define IShellLinkW_SetPath(This,pszFile) (This)->lpVtbl->SetPath(This,pszFile)
   15177 #else
   15178 /*** IUnknown methods ***/
   15179 static FORCEINLINE HRESULT IShellLinkW_QueryInterface(IShellLinkW* This,REFIID riid,void **ppvObject) {
   15180     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   15181 }
   15182 static FORCEINLINE ULONG IShellLinkW_AddRef(IShellLinkW* This) {
   15183     return This->lpVtbl->AddRef(This);
   15184 }
   15185 static FORCEINLINE ULONG IShellLinkW_Release(IShellLinkW* This) {
   15186     return This->lpVtbl->Release(This);
   15187 }
   15188 /*** IShellLinkW methods ***/
   15189 static FORCEINLINE HRESULT IShellLinkW_GetPath(IShellLinkW* This,LPWSTR pszFile,int cch,WIN32_FIND_DATAW *pfd,DWORD fFlags) {
   15190     return This->lpVtbl->GetPath(This,pszFile,cch,pfd,fFlags);
   15191 }
   15192 static FORCEINLINE HRESULT IShellLinkW_GetIDList(IShellLinkW* This,PIDLIST_ABSOLUTE *ppidl) {
   15193     return This->lpVtbl->GetIDList(This,ppidl);
   15194 }
   15195 static FORCEINLINE HRESULT IShellLinkW_SetIDList(IShellLinkW* This,PCIDLIST_ABSOLUTE pidl) {
   15196     return This->lpVtbl->SetIDList(This,pidl);
   15197 }
   15198 static FORCEINLINE HRESULT IShellLinkW_GetDescription(IShellLinkW* This,LPWSTR pszName,int cch) {
   15199     return This->lpVtbl->GetDescription(This,pszName,cch);
   15200 }
   15201 static FORCEINLINE HRESULT IShellLinkW_SetDescription(IShellLinkW* This,LPCWSTR pszName) {
   15202     return This->lpVtbl->SetDescription(This,pszName);
   15203 }
   15204 static FORCEINLINE HRESULT IShellLinkW_GetWorkingDirectory(IShellLinkW* This,LPWSTR pszDir,int cch) {
   15205     return This->lpVtbl->GetWorkingDirectory(This,pszDir,cch);
   15206 }
   15207 static FORCEINLINE HRESULT IShellLinkW_SetWorkingDirectory(IShellLinkW* This,LPCWSTR pszDir) {
   15208     return This->lpVtbl->SetWorkingDirectory(This,pszDir);
   15209 }
   15210 static FORCEINLINE HRESULT IShellLinkW_GetArguments(IShellLinkW* This,LPWSTR pszArgs,int cch) {
   15211     return This->lpVtbl->GetArguments(This,pszArgs,cch);
   15212 }
   15213 static FORCEINLINE HRESULT IShellLinkW_SetArguments(IShellLinkW* This,LPCWSTR pszArgs) {
   15214     return This->lpVtbl->SetArguments(This,pszArgs);
   15215 }
   15216 static FORCEINLINE HRESULT IShellLinkW_GetHotkey(IShellLinkW* This,WORD *pwHotkey) {
   15217     return This->lpVtbl->GetHotkey(This,pwHotkey);
   15218 }
   15219 static FORCEINLINE HRESULT IShellLinkW_SetHotkey(IShellLinkW* This,WORD wHotkey) {
   15220     return This->lpVtbl->SetHotkey(This,wHotkey);
   15221 }
   15222 static FORCEINLINE HRESULT IShellLinkW_GetShowCmd(IShellLinkW* This,int *piShowCmd) {
   15223     return This->lpVtbl->GetShowCmd(This,piShowCmd);
   15224 }
   15225 static FORCEINLINE HRESULT IShellLinkW_SetShowCmd(IShellLinkW* This,int iShowCmd) {
   15226     return This->lpVtbl->SetShowCmd(This,iShowCmd);
   15227 }
   15228 static FORCEINLINE HRESULT IShellLinkW_GetIconLocation(IShellLinkW* This,LPWSTR pszIconPath,int cch,int *piIcon) {
   15229     return This->lpVtbl->GetIconLocation(This,pszIconPath,cch,piIcon);
   15230 }
   15231 static FORCEINLINE HRESULT IShellLinkW_SetIconLocation(IShellLinkW* This,LPCWSTR pszIconPath,int iIcon) {
   15232     return This->lpVtbl->SetIconLocation(This,pszIconPath,iIcon);
   15233 }
   15234 static FORCEINLINE HRESULT IShellLinkW_SetRelativePath(IShellLinkW* This,LPCWSTR pszPathRel,DWORD dwReserved) {
   15235     return This->lpVtbl->SetRelativePath(This,pszPathRel,dwReserved);
   15236 }
   15237 static FORCEINLINE HRESULT IShellLinkW_Resolve(IShellLinkW* This,HWND hwnd,DWORD fFlags) {
   15238     return This->lpVtbl->Resolve(This,hwnd,fFlags);
   15239 }
   15240 static FORCEINLINE HRESULT IShellLinkW_SetPath(IShellLinkW* This,LPCWSTR pszFile) {
   15241     return This->lpVtbl->SetPath(This,pszFile);
   15242 }
   15243 #endif
   15244 #endif
   15245 
   15246 #endif
   15247 
   15248 HRESULT STDMETHODCALLTYPE IShellLinkW_GetPath_Proxy(
   15249     IShellLinkW* This,
   15250     LPWSTR pszFile,
   15251     int cch,
   15252     WIN32_FIND_DATAW *pfd,
   15253     DWORD fFlags);
   15254 void __RPC_STUB IShellLinkW_GetPath_Stub(
   15255     IRpcStubBuffer* This,
   15256     IRpcChannelBuffer* pRpcChannelBuffer,
   15257     PRPC_MESSAGE pRpcMessage,
   15258     DWORD* pdwStubPhase);
   15259 HRESULT STDMETHODCALLTYPE IShellLinkW_GetIDList_Proxy(
   15260     IShellLinkW* This,
   15261     PIDLIST_ABSOLUTE *ppidl);
   15262 void __RPC_STUB IShellLinkW_GetIDList_Stub(
   15263     IRpcStubBuffer* This,
   15264     IRpcChannelBuffer* pRpcChannelBuffer,
   15265     PRPC_MESSAGE pRpcMessage,
   15266     DWORD* pdwStubPhase);
   15267 HRESULT STDMETHODCALLTYPE IShellLinkW_SetIDList_Proxy(
   15268     IShellLinkW* This,
   15269     PCIDLIST_ABSOLUTE pidl);
   15270 void __RPC_STUB IShellLinkW_SetIDList_Stub(
   15271     IRpcStubBuffer* This,
   15272     IRpcChannelBuffer* pRpcChannelBuffer,
   15273     PRPC_MESSAGE pRpcMessage,
   15274     DWORD* pdwStubPhase);
   15275 HRESULT STDMETHODCALLTYPE IShellLinkW_GetDescription_Proxy(
   15276     IShellLinkW* This,
   15277     LPWSTR pszName,
   15278     int cch);
   15279 void __RPC_STUB IShellLinkW_GetDescription_Stub(
   15280     IRpcStubBuffer* This,
   15281     IRpcChannelBuffer* pRpcChannelBuffer,
   15282     PRPC_MESSAGE pRpcMessage,
   15283     DWORD* pdwStubPhase);
   15284 HRESULT STDMETHODCALLTYPE IShellLinkW_SetDescription_Proxy(
   15285     IShellLinkW* This,
   15286     LPCWSTR pszName);
   15287 void __RPC_STUB IShellLinkW_SetDescription_Stub(
   15288     IRpcStubBuffer* This,
   15289     IRpcChannelBuffer* pRpcChannelBuffer,
   15290     PRPC_MESSAGE pRpcMessage,
   15291     DWORD* pdwStubPhase);
   15292 HRESULT STDMETHODCALLTYPE IShellLinkW_GetWorkingDirectory_Proxy(
   15293     IShellLinkW* This,
   15294     LPWSTR pszDir,
   15295     int cch);
   15296 void __RPC_STUB IShellLinkW_GetWorkingDirectory_Stub(
   15297     IRpcStubBuffer* This,
   15298     IRpcChannelBuffer* pRpcChannelBuffer,
   15299     PRPC_MESSAGE pRpcMessage,
   15300     DWORD* pdwStubPhase);
   15301 HRESULT STDMETHODCALLTYPE IShellLinkW_SetWorkingDirectory_Proxy(
   15302     IShellLinkW* This,
   15303     LPCWSTR pszDir);
   15304 void __RPC_STUB IShellLinkW_SetWorkingDirectory_Stub(
   15305     IRpcStubBuffer* This,
   15306     IRpcChannelBuffer* pRpcChannelBuffer,
   15307     PRPC_MESSAGE pRpcMessage,
   15308     DWORD* pdwStubPhase);
   15309 HRESULT STDMETHODCALLTYPE IShellLinkW_GetArguments_Proxy(
   15310     IShellLinkW* This,
   15311     LPWSTR pszArgs,
   15312     int cch);
   15313 void __RPC_STUB IShellLinkW_GetArguments_Stub(
   15314     IRpcStubBuffer* This,
   15315     IRpcChannelBuffer* pRpcChannelBuffer,
   15316     PRPC_MESSAGE pRpcMessage,
   15317     DWORD* pdwStubPhase);
   15318 HRESULT STDMETHODCALLTYPE IShellLinkW_SetArguments_Proxy(
   15319     IShellLinkW* This,
   15320     LPCWSTR pszArgs);
   15321 void __RPC_STUB IShellLinkW_SetArguments_Stub(
   15322     IRpcStubBuffer* This,
   15323     IRpcChannelBuffer* pRpcChannelBuffer,
   15324     PRPC_MESSAGE pRpcMessage,
   15325     DWORD* pdwStubPhase);
   15326 HRESULT STDMETHODCALLTYPE IShellLinkW_GetHotkey_Proxy(
   15327     IShellLinkW* This,
   15328     WORD *pwHotkey);
   15329 void __RPC_STUB IShellLinkW_GetHotkey_Stub(
   15330     IRpcStubBuffer* This,
   15331     IRpcChannelBuffer* pRpcChannelBuffer,
   15332     PRPC_MESSAGE pRpcMessage,
   15333     DWORD* pdwStubPhase);
   15334 HRESULT STDMETHODCALLTYPE IShellLinkW_SetHotkey_Proxy(
   15335     IShellLinkW* This,
   15336     WORD wHotkey);
   15337 void __RPC_STUB IShellLinkW_SetHotkey_Stub(
   15338     IRpcStubBuffer* This,
   15339     IRpcChannelBuffer* pRpcChannelBuffer,
   15340     PRPC_MESSAGE pRpcMessage,
   15341     DWORD* pdwStubPhase);
   15342 HRESULT STDMETHODCALLTYPE IShellLinkW_GetShowCmd_Proxy(
   15343     IShellLinkW* This,
   15344     int *piShowCmd);
   15345 void __RPC_STUB IShellLinkW_GetShowCmd_Stub(
   15346     IRpcStubBuffer* This,
   15347     IRpcChannelBuffer* pRpcChannelBuffer,
   15348     PRPC_MESSAGE pRpcMessage,
   15349     DWORD* pdwStubPhase);
   15350 HRESULT STDMETHODCALLTYPE IShellLinkW_SetShowCmd_Proxy(
   15351     IShellLinkW* This,
   15352     int iShowCmd);
   15353 void __RPC_STUB IShellLinkW_SetShowCmd_Stub(
   15354     IRpcStubBuffer* This,
   15355     IRpcChannelBuffer* pRpcChannelBuffer,
   15356     PRPC_MESSAGE pRpcMessage,
   15357     DWORD* pdwStubPhase);
   15358 HRESULT STDMETHODCALLTYPE IShellLinkW_GetIconLocation_Proxy(
   15359     IShellLinkW* This,
   15360     LPWSTR pszIconPath,
   15361     int cch,
   15362     int *piIcon);
   15363 void __RPC_STUB IShellLinkW_GetIconLocation_Stub(
   15364     IRpcStubBuffer* This,
   15365     IRpcChannelBuffer* pRpcChannelBuffer,
   15366     PRPC_MESSAGE pRpcMessage,
   15367     DWORD* pdwStubPhase);
   15368 HRESULT STDMETHODCALLTYPE IShellLinkW_SetIconLocation_Proxy(
   15369     IShellLinkW* This,
   15370     LPCWSTR pszIconPath,
   15371     int iIcon);
   15372 void __RPC_STUB IShellLinkW_SetIconLocation_Stub(
   15373     IRpcStubBuffer* This,
   15374     IRpcChannelBuffer* pRpcChannelBuffer,
   15375     PRPC_MESSAGE pRpcMessage,
   15376     DWORD* pdwStubPhase);
   15377 HRESULT STDMETHODCALLTYPE IShellLinkW_SetRelativePath_Proxy(
   15378     IShellLinkW* This,
   15379     LPCWSTR pszPathRel,
   15380     DWORD dwReserved);
   15381 void __RPC_STUB IShellLinkW_SetRelativePath_Stub(
   15382     IRpcStubBuffer* This,
   15383     IRpcChannelBuffer* pRpcChannelBuffer,
   15384     PRPC_MESSAGE pRpcMessage,
   15385     DWORD* pdwStubPhase);
   15386 HRESULT STDMETHODCALLTYPE IShellLinkW_Resolve_Proxy(
   15387     IShellLinkW* This,
   15388     HWND hwnd,
   15389     DWORD fFlags);
   15390 void __RPC_STUB IShellLinkW_Resolve_Stub(
   15391     IRpcStubBuffer* This,
   15392     IRpcChannelBuffer* pRpcChannelBuffer,
   15393     PRPC_MESSAGE pRpcMessage,
   15394     DWORD* pdwStubPhase);
   15395 HRESULT STDMETHODCALLTYPE IShellLinkW_SetPath_Proxy(
   15396     IShellLinkW* This,
   15397     LPCWSTR pszFile);
   15398 void __RPC_STUB IShellLinkW_SetPath_Stub(
   15399     IRpcStubBuffer* This,
   15400     IRpcChannelBuffer* pRpcChannelBuffer,
   15401     PRPC_MESSAGE pRpcMessage,
   15402     DWORD* pdwStubPhase);
   15403 
   15404 #endif  /* __IShellLinkW_INTERFACE_DEFINED__ */
   15405 
   15406 
   15407 /*****************************************************************************
   15408  * IShellLinkDataList interface
   15409  */
   15410 #ifndef __IShellLinkDataList_INTERFACE_DEFINED__
   15411 #define __IShellLinkDataList_INTERFACE_DEFINED__
   15412 
   15413 DEFINE_GUID(IID_IShellLinkDataList, 0x45e2b4ae, 0xb1c3, 0x11d0, 0xb9,0x2f, 0x00,0xa0,0xc9,0x03,0x12,0xe1);
   15414 #if defined(__cplusplus) && !defined(CINTERFACE)
   15415 MIDL_INTERFACE("45e2b4ae-b1c3-11d0-b92f-00a0c90312e1")
   15416 IShellLinkDataList : public IUnknown
   15417 {
   15418     virtual HRESULT STDMETHODCALLTYPE AddDataBlock(
   15419         void *pDataBlock) = 0;
   15420 
   15421     virtual HRESULT STDMETHODCALLTYPE CopyDataBlock(
   15422         DWORD dwSig,
   15423         void **ppDataBlock) = 0;
   15424 
   15425     virtual HRESULT STDMETHODCALLTYPE RemoveDataBlock(
   15426         DWORD dwSig) = 0;
   15427 
   15428     virtual HRESULT STDMETHODCALLTYPE GetFlags(
   15429         DWORD *pdwFlags) = 0;
   15430 
   15431     virtual HRESULT STDMETHODCALLTYPE SetFlags(
   15432         DWORD dwFlags) = 0;
   15433 
   15434 };
   15435 #ifdef __CRT_UUID_DECL
   15436 __CRT_UUID_DECL(IShellLinkDataList, 0x45e2b4ae, 0xb1c3, 0x11d0, 0xb9,0x2f, 0x00,0xa0,0xc9,0x03,0x12,0xe1)
   15437 #endif
   15438 #else
   15439 typedef struct IShellLinkDataListVtbl {
   15440     BEGIN_INTERFACE
   15441 
   15442     /*** IUnknown methods ***/
   15443     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   15444         IShellLinkDataList* This,
   15445         REFIID riid,
   15446         void **ppvObject);
   15447 
   15448     ULONG (STDMETHODCALLTYPE *AddRef)(
   15449         IShellLinkDataList* This);
   15450 
   15451     ULONG (STDMETHODCALLTYPE *Release)(
   15452         IShellLinkDataList* This);
   15453 
   15454     /*** IShellLinkDataList methods ***/
   15455     HRESULT (STDMETHODCALLTYPE *AddDataBlock)(
   15456         IShellLinkDataList* This,
   15457         void *pDataBlock);
   15458 
   15459     HRESULT (STDMETHODCALLTYPE *CopyDataBlock)(
   15460         IShellLinkDataList* This,
   15461         DWORD dwSig,
   15462         void **ppDataBlock);
   15463 
   15464     HRESULT (STDMETHODCALLTYPE *RemoveDataBlock)(
   15465         IShellLinkDataList* This,
   15466         DWORD dwSig);
   15467 
   15468     HRESULT (STDMETHODCALLTYPE *GetFlags)(
   15469         IShellLinkDataList* This,
   15470         DWORD *pdwFlags);
   15471 
   15472     HRESULT (STDMETHODCALLTYPE *SetFlags)(
   15473         IShellLinkDataList* This,
   15474         DWORD dwFlags);
   15475 
   15476     END_INTERFACE
   15477 } IShellLinkDataListVtbl;
   15478 interface IShellLinkDataList {
   15479     CONST_VTBL IShellLinkDataListVtbl* lpVtbl;
   15480 };
   15481 
   15482 #ifdef COBJMACROS
   15483 #ifndef WIDL_C_INLINE_WRAPPERS
   15484 /*** IUnknown methods ***/
   15485 #define IShellLinkDataList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   15486 #define IShellLinkDataList_AddRef(This) (This)->lpVtbl->AddRef(This)
   15487 #define IShellLinkDataList_Release(This) (This)->lpVtbl->Release(This)
   15488 /*** IShellLinkDataList methods ***/
   15489 #define IShellLinkDataList_AddDataBlock(This,pDataBlock) (This)->lpVtbl->AddDataBlock(This,pDataBlock)
   15490 #define IShellLinkDataList_CopyDataBlock(This,dwSig,ppDataBlock) (This)->lpVtbl->CopyDataBlock(This,dwSig,ppDataBlock)
   15491 #define IShellLinkDataList_RemoveDataBlock(This,dwSig) (This)->lpVtbl->RemoveDataBlock(This,dwSig)
   15492 #define IShellLinkDataList_GetFlags(This,pdwFlags) (This)->lpVtbl->GetFlags(This,pdwFlags)
   15493 #define IShellLinkDataList_SetFlags(This,dwFlags) (This)->lpVtbl->SetFlags(This,dwFlags)
   15494 #else
   15495 /*** IUnknown methods ***/
   15496 static FORCEINLINE HRESULT IShellLinkDataList_QueryInterface(IShellLinkDataList* This,REFIID riid,void **ppvObject) {
   15497     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   15498 }
   15499 static FORCEINLINE ULONG IShellLinkDataList_AddRef(IShellLinkDataList* This) {
   15500     return This->lpVtbl->AddRef(This);
   15501 }
   15502 static FORCEINLINE ULONG IShellLinkDataList_Release(IShellLinkDataList* This) {
   15503     return This->lpVtbl->Release(This);
   15504 }
   15505 /*** IShellLinkDataList methods ***/
   15506 static FORCEINLINE HRESULT IShellLinkDataList_AddDataBlock(IShellLinkDataList* This,void *pDataBlock) {
   15507     return This->lpVtbl->AddDataBlock(This,pDataBlock);
   15508 }
   15509 static FORCEINLINE HRESULT IShellLinkDataList_CopyDataBlock(IShellLinkDataList* This,DWORD dwSig,void **ppDataBlock) {
   15510     return This->lpVtbl->CopyDataBlock(This,dwSig,ppDataBlock);
   15511 }
   15512 static FORCEINLINE HRESULT IShellLinkDataList_RemoveDataBlock(IShellLinkDataList* This,DWORD dwSig) {
   15513     return This->lpVtbl->RemoveDataBlock(This,dwSig);
   15514 }
   15515 static FORCEINLINE HRESULT IShellLinkDataList_GetFlags(IShellLinkDataList* This,DWORD *pdwFlags) {
   15516     return This->lpVtbl->GetFlags(This,pdwFlags);
   15517 }
   15518 static FORCEINLINE HRESULT IShellLinkDataList_SetFlags(IShellLinkDataList* This,DWORD dwFlags) {
   15519     return This->lpVtbl->SetFlags(This,dwFlags);
   15520 }
   15521 #endif
   15522 #endif
   15523 
   15524 #endif
   15525 
   15526 HRESULT STDMETHODCALLTYPE IShellLinkDataList_RemoveDataBlock_Proxy(
   15527     IShellLinkDataList* This,
   15528     DWORD dwSig);
   15529 void __RPC_STUB IShellLinkDataList_RemoveDataBlock_Stub(
   15530     IRpcStubBuffer* This,
   15531     IRpcChannelBuffer* pRpcChannelBuffer,
   15532     PRPC_MESSAGE pRpcMessage,
   15533     DWORD* pdwStubPhase);
   15534 HRESULT STDMETHODCALLTYPE IShellLinkDataList_GetFlags_Proxy(
   15535     IShellLinkDataList* This,
   15536     DWORD *pdwFlags);
   15537 void __RPC_STUB IShellLinkDataList_GetFlags_Stub(
   15538     IRpcStubBuffer* This,
   15539     IRpcChannelBuffer* pRpcChannelBuffer,
   15540     PRPC_MESSAGE pRpcMessage,
   15541     DWORD* pdwStubPhase);
   15542 HRESULT STDMETHODCALLTYPE IShellLinkDataList_SetFlags_Proxy(
   15543     IShellLinkDataList* This,
   15544     DWORD dwFlags);
   15545 void __RPC_STUB IShellLinkDataList_SetFlags_Stub(
   15546     IRpcStubBuffer* This,
   15547     IRpcChannelBuffer* pRpcChannelBuffer,
   15548     PRPC_MESSAGE pRpcMessage,
   15549     DWORD* pdwStubPhase);
   15550 
   15551 #endif  /* __IShellLinkDataList_INTERFACE_DEFINED__ */
   15552 
   15553 
   15554 /*****************************************************************************
   15555  * IResolveShellLink interface
   15556  */
   15557 #ifndef __IResolveShellLink_INTERFACE_DEFINED__
   15558 #define __IResolveShellLink_INTERFACE_DEFINED__
   15559 
   15560 DEFINE_GUID(IID_IResolveShellLink, 0x5cd52983, 0x9449, 0x11d2, 0x96,0x3a, 0x00,0xc0,0x4f,0x79,0xad,0xf0);
   15561 #if defined(__cplusplus) && !defined(CINTERFACE)
   15562 MIDL_INTERFACE("5cd52983-9449-11d2-963a-00c04f79adf0")
   15563 IResolveShellLink : public IUnknown
   15564 {
   15565     virtual HRESULT STDMETHODCALLTYPE ResolveShellLink(
   15566         IUnknown *punkLink,
   15567         HWND hwnd,
   15568         DWORD fFlags) = 0;
   15569 
   15570 };
   15571 #ifdef __CRT_UUID_DECL
   15572 __CRT_UUID_DECL(IResolveShellLink, 0x5cd52983, 0x9449, 0x11d2, 0x96,0x3a, 0x00,0xc0,0x4f,0x79,0xad,0xf0)
   15573 #endif
   15574 #else
   15575 typedef struct IResolveShellLinkVtbl {
   15576     BEGIN_INTERFACE
   15577 
   15578     /*** IUnknown methods ***/
   15579     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   15580         IResolveShellLink* This,
   15581         REFIID riid,
   15582         void **ppvObject);
   15583 
   15584     ULONG (STDMETHODCALLTYPE *AddRef)(
   15585         IResolveShellLink* This);
   15586 
   15587     ULONG (STDMETHODCALLTYPE *Release)(
   15588         IResolveShellLink* This);
   15589 
   15590     /*** IResolveShellLink methods ***/
   15591     HRESULT (STDMETHODCALLTYPE *ResolveShellLink)(
   15592         IResolveShellLink* This,
   15593         IUnknown *punkLink,
   15594         HWND hwnd,
   15595         DWORD fFlags);
   15596 
   15597     END_INTERFACE
   15598 } IResolveShellLinkVtbl;
   15599 interface IResolveShellLink {
   15600     CONST_VTBL IResolveShellLinkVtbl* lpVtbl;
   15601 };
   15602 
   15603 #ifdef COBJMACROS
   15604 #ifndef WIDL_C_INLINE_WRAPPERS
   15605 /*** IUnknown methods ***/
   15606 #define IResolveShellLink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   15607 #define IResolveShellLink_AddRef(This) (This)->lpVtbl->AddRef(This)
   15608 #define IResolveShellLink_Release(This) (This)->lpVtbl->Release(This)
   15609 /*** IResolveShellLink methods ***/
   15610 #define IResolveShellLink_ResolveShellLink(This,punkLink,hwnd,fFlags) (This)->lpVtbl->ResolveShellLink(This,punkLink,hwnd,fFlags)
   15611 #else
   15612 /*** IUnknown methods ***/
   15613 static FORCEINLINE HRESULT IResolveShellLink_QueryInterface(IResolveShellLink* This,REFIID riid,void **ppvObject) {
   15614     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   15615 }
   15616 static FORCEINLINE ULONG IResolveShellLink_AddRef(IResolveShellLink* This) {
   15617     return This->lpVtbl->AddRef(This);
   15618 }
   15619 static FORCEINLINE ULONG IResolveShellLink_Release(IResolveShellLink* This) {
   15620     return This->lpVtbl->Release(This);
   15621 }
   15622 /*** IResolveShellLink methods ***/
   15623 static FORCEINLINE HRESULT IResolveShellLink_ResolveShellLink(IResolveShellLink* This,IUnknown *punkLink,HWND hwnd,DWORD fFlags) {
   15624     return This->lpVtbl->ResolveShellLink(This,punkLink,hwnd,fFlags);
   15625 }
   15626 #endif
   15627 #endif
   15628 
   15629 #endif
   15630 
   15631 HRESULT STDMETHODCALLTYPE IResolveShellLink_ResolveShellLink_Proxy(
   15632     IResolveShellLink* This,
   15633     IUnknown *punkLink,
   15634     HWND hwnd,
   15635     DWORD fFlags);
   15636 void __RPC_STUB IResolveShellLink_ResolveShellLink_Stub(
   15637     IRpcStubBuffer* This,
   15638     IRpcChannelBuffer* pRpcChannelBuffer,
   15639     PRPC_MESSAGE pRpcMessage,
   15640     DWORD* pdwStubPhase);
   15641 
   15642 #endif  /* __IResolveShellLink_INTERFACE_DEFINED__ */
   15643 
   15644 
   15645 /*****************************************************************************
   15646  * IActionProgressDialog interface
   15647  */
   15648 #ifndef __IActionProgressDialog_INTERFACE_DEFINED__
   15649 #define __IActionProgressDialog_INTERFACE_DEFINED__
   15650 
   15651 enum _SPINITF {
   15652     SPINITF_NORMAL = 0x0,
   15653     SPINITF_MODAL = 0x1,
   15654     SPINITF_NOMINIMIZE = 0x8
   15655 };
   15656 
   15657 
   15658 typedef DWORD SPINITF;
   15659 
   15660 DEFINE_GUID(IID_IActionProgressDialog, 0x49ff1172, 0xeadc, 0x446d, 0x92,0x85, 0x15,0x64,0x53,0xa6,0x43,0x1c);
   15661 #if defined(__cplusplus) && !defined(CINTERFACE)
   15662 MIDL_INTERFACE("49ff1172-eadc-446d-9285-156453a6431c")
   15663 IActionProgressDialog : public IUnknown
   15664 {
   15665     virtual HRESULT STDMETHODCALLTYPE Initialize(
   15666         SPINITF flags,
   15667         LPCWSTR pszTitle,
   15668         LPCWSTR pszCancel) = 0;
   15669 
   15670     virtual HRESULT STDMETHODCALLTYPE Stop(
   15671         ) = 0;
   15672 
   15673 };
   15674 #ifdef __CRT_UUID_DECL
   15675 __CRT_UUID_DECL(IActionProgressDialog, 0x49ff1172, 0xeadc, 0x446d, 0x92,0x85, 0x15,0x64,0x53,0xa6,0x43,0x1c)
   15676 #endif
   15677 #else
   15678 typedef struct IActionProgressDialogVtbl {
   15679     BEGIN_INTERFACE
   15680 
   15681     /*** IUnknown methods ***/
   15682     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   15683         IActionProgressDialog* This,
   15684         REFIID riid,
   15685         void **ppvObject);
   15686 
   15687     ULONG (STDMETHODCALLTYPE *AddRef)(
   15688         IActionProgressDialog* This);
   15689 
   15690     ULONG (STDMETHODCALLTYPE *Release)(
   15691         IActionProgressDialog* This);
   15692 
   15693     /*** IActionProgressDialog methods ***/
   15694     HRESULT (STDMETHODCALLTYPE *Initialize)(
   15695         IActionProgressDialog* This,
   15696         SPINITF flags,
   15697         LPCWSTR pszTitle,
   15698         LPCWSTR pszCancel);
   15699 
   15700     HRESULT (STDMETHODCALLTYPE *Stop)(
   15701         IActionProgressDialog* This);
   15702 
   15703     END_INTERFACE
   15704 } IActionProgressDialogVtbl;
   15705 interface IActionProgressDialog {
   15706     CONST_VTBL IActionProgressDialogVtbl* lpVtbl;
   15707 };
   15708 
   15709 #ifdef COBJMACROS
   15710 #ifndef WIDL_C_INLINE_WRAPPERS
   15711 /*** IUnknown methods ***/
   15712 #define IActionProgressDialog_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   15713 #define IActionProgressDialog_AddRef(This) (This)->lpVtbl->AddRef(This)
   15714 #define IActionProgressDialog_Release(This) (This)->lpVtbl->Release(This)
   15715 /*** IActionProgressDialog methods ***/
   15716 #define IActionProgressDialog_Initialize(This,flags,pszTitle,pszCancel) (This)->lpVtbl->Initialize(This,flags,pszTitle,pszCancel)
   15717 #define IActionProgressDialog_Stop(This) (This)->lpVtbl->Stop(This)
   15718 #else
   15719 /*** IUnknown methods ***/
   15720 static FORCEINLINE HRESULT IActionProgressDialog_QueryInterface(IActionProgressDialog* This,REFIID riid,void **ppvObject) {
   15721     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   15722 }
   15723 static FORCEINLINE ULONG IActionProgressDialog_AddRef(IActionProgressDialog* This) {
   15724     return This->lpVtbl->AddRef(This);
   15725 }
   15726 static FORCEINLINE ULONG IActionProgressDialog_Release(IActionProgressDialog* This) {
   15727     return This->lpVtbl->Release(This);
   15728 }
   15729 /*** IActionProgressDialog methods ***/
   15730 static FORCEINLINE HRESULT IActionProgressDialog_Initialize(IActionProgressDialog* This,SPINITF flags,LPCWSTR pszTitle,LPCWSTR pszCancel) {
   15731     return This->lpVtbl->Initialize(This,flags,pszTitle,pszCancel);
   15732 }
   15733 static FORCEINLINE HRESULT IActionProgressDialog_Stop(IActionProgressDialog* This) {
   15734     return This->lpVtbl->Stop(This);
   15735 }
   15736 #endif
   15737 #endif
   15738 
   15739 #endif
   15740 
   15741 HRESULT STDMETHODCALLTYPE IActionProgressDialog_Initialize_Proxy(
   15742     IActionProgressDialog* This,
   15743     SPINITF flags,
   15744     LPCWSTR pszTitle,
   15745     LPCWSTR pszCancel);
   15746 void __RPC_STUB IActionProgressDialog_Initialize_Stub(
   15747     IRpcStubBuffer* This,
   15748     IRpcChannelBuffer* pRpcChannelBuffer,
   15749     PRPC_MESSAGE pRpcMessage,
   15750     DWORD* pdwStubPhase);
   15751 HRESULT STDMETHODCALLTYPE IActionProgressDialog_Stop_Proxy(
   15752     IActionProgressDialog* This);
   15753 void __RPC_STUB IActionProgressDialog_Stop_Stub(
   15754     IRpcStubBuffer* This,
   15755     IRpcChannelBuffer* pRpcChannelBuffer,
   15756     PRPC_MESSAGE pRpcMessage,
   15757     DWORD* pdwStubPhase);
   15758 
   15759 #endif  /* __IActionProgressDialog_INTERFACE_DEFINED__ */
   15760 
   15761 
   15762 /*****************************************************************************
   15763  * IHWEventHandler interface
   15764  */
   15765 #ifndef __IHWEventHandler_INTERFACE_DEFINED__
   15766 #define __IHWEventHandler_INTERFACE_DEFINED__
   15767 
   15768 DEFINE_GUID(IID_IHWEventHandler, 0xc1fb73d0, 0xec3a, 0x4ba2, 0xb5,0x12, 0x8c,0xdb,0x91,0x87,0xb6,0xd1);
   15769 #if defined(__cplusplus) && !defined(CINTERFACE)
   15770 MIDL_INTERFACE("c1fb73d0-ec3a-4ba2-b512-8cdb9187b6d1")
   15771 IHWEventHandler : public IUnknown
   15772 {
   15773     virtual HRESULT STDMETHODCALLTYPE Initialize(
   15774         LPCWSTR pszParams) = 0;
   15775 
   15776     virtual HRESULT STDMETHODCALLTYPE HandleEvent(
   15777         LPCWSTR pszDeviceID,
   15778         LPCWSTR pszAltDeviceID,
   15779         LPCWSTR pszEventType) = 0;
   15780 
   15781     virtual HRESULT STDMETHODCALLTYPE HandleEventWithContent(
   15782         LPCWSTR pszDeviceID,
   15783         LPCWSTR pszAltDeviceID,
   15784         LPCWSTR pszEventType,
   15785         LPCWSTR pszContentTypeHandler,
   15786         IDataObject *pdataobject) = 0;
   15787 
   15788 };
   15789 #ifdef __CRT_UUID_DECL
   15790 __CRT_UUID_DECL(IHWEventHandler, 0xc1fb73d0, 0xec3a, 0x4ba2, 0xb5,0x12, 0x8c,0xdb,0x91,0x87,0xb6,0xd1)
   15791 #endif
   15792 #else
   15793 typedef struct IHWEventHandlerVtbl {
   15794     BEGIN_INTERFACE
   15795 
   15796     /*** IUnknown methods ***/
   15797     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   15798         IHWEventHandler* This,
   15799         REFIID riid,
   15800         void **ppvObject);
   15801 
   15802     ULONG (STDMETHODCALLTYPE *AddRef)(
   15803         IHWEventHandler* This);
   15804 
   15805     ULONG (STDMETHODCALLTYPE *Release)(
   15806         IHWEventHandler* This);
   15807 
   15808     /*** IHWEventHandler methods ***/
   15809     HRESULT (STDMETHODCALLTYPE *Initialize)(
   15810         IHWEventHandler* This,
   15811         LPCWSTR pszParams);
   15812 
   15813     HRESULT (STDMETHODCALLTYPE *HandleEvent)(
   15814         IHWEventHandler* This,
   15815         LPCWSTR pszDeviceID,
   15816         LPCWSTR pszAltDeviceID,
   15817         LPCWSTR pszEventType);
   15818 
   15819     HRESULT (STDMETHODCALLTYPE *HandleEventWithContent)(
   15820         IHWEventHandler* This,
   15821         LPCWSTR pszDeviceID,
   15822         LPCWSTR pszAltDeviceID,
   15823         LPCWSTR pszEventType,
   15824         LPCWSTR pszContentTypeHandler,
   15825         IDataObject *pdataobject);
   15826 
   15827     END_INTERFACE
   15828 } IHWEventHandlerVtbl;
   15829 interface IHWEventHandler {
   15830     CONST_VTBL IHWEventHandlerVtbl* lpVtbl;
   15831 };
   15832 
   15833 #ifdef COBJMACROS
   15834 #ifndef WIDL_C_INLINE_WRAPPERS
   15835 /*** IUnknown methods ***/
   15836 #define IHWEventHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   15837 #define IHWEventHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
   15838 #define IHWEventHandler_Release(This) (This)->lpVtbl->Release(This)
   15839 /*** IHWEventHandler methods ***/
   15840 #define IHWEventHandler_Initialize(This,pszParams) (This)->lpVtbl->Initialize(This,pszParams)
   15841 #define IHWEventHandler_HandleEvent(This,pszDeviceID,pszAltDeviceID,pszEventType) (This)->lpVtbl->HandleEvent(This,pszDeviceID,pszAltDeviceID,pszEventType)
   15842 #define IHWEventHandler_HandleEventWithContent(This,pszDeviceID,pszAltDeviceID,pszEventType,pszContentTypeHandler,pdataobject) (This)->lpVtbl->HandleEventWithContent(This,pszDeviceID,pszAltDeviceID,pszEventType,pszContentTypeHandler,pdataobject)
   15843 #else
   15844 /*** IUnknown methods ***/
   15845 static FORCEINLINE HRESULT IHWEventHandler_QueryInterface(IHWEventHandler* This,REFIID riid,void **ppvObject) {
   15846     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   15847 }
   15848 static FORCEINLINE ULONG IHWEventHandler_AddRef(IHWEventHandler* This) {
   15849     return This->lpVtbl->AddRef(This);
   15850 }
   15851 static FORCEINLINE ULONG IHWEventHandler_Release(IHWEventHandler* This) {
   15852     return This->lpVtbl->Release(This);
   15853 }
   15854 /*** IHWEventHandler methods ***/
   15855 static FORCEINLINE HRESULT IHWEventHandler_Initialize(IHWEventHandler* This,LPCWSTR pszParams) {
   15856     return This->lpVtbl->Initialize(This,pszParams);
   15857 }
   15858 static FORCEINLINE HRESULT IHWEventHandler_HandleEvent(IHWEventHandler* This,LPCWSTR pszDeviceID,LPCWSTR pszAltDeviceID,LPCWSTR pszEventType) {
   15859     return This->lpVtbl->HandleEvent(This,pszDeviceID,pszAltDeviceID,pszEventType);
   15860 }
   15861 static FORCEINLINE HRESULT IHWEventHandler_HandleEventWithContent(IHWEventHandler* This,LPCWSTR pszDeviceID,LPCWSTR pszAltDeviceID,LPCWSTR pszEventType,LPCWSTR pszContentTypeHandler,IDataObject *pdataobject) {
   15862     return This->lpVtbl->HandleEventWithContent(This,pszDeviceID,pszAltDeviceID,pszEventType,pszContentTypeHandler,pdataobject);
   15863 }
   15864 #endif
   15865 #endif
   15866 
   15867 #endif
   15868 
   15869 HRESULT STDMETHODCALLTYPE IHWEventHandler_Initialize_Proxy(
   15870     IHWEventHandler* This,
   15871     LPCWSTR pszParams);
   15872 void __RPC_STUB IHWEventHandler_Initialize_Stub(
   15873     IRpcStubBuffer* This,
   15874     IRpcChannelBuffer* pRpcChannelBuffer,
   15875     PRPC_MESSAGE pRpcMessage,
   15876     DWORD* pdwStubPhase);
   15877 HRESULT STDMETHODCALLTYPE IHWEventHandler_HandleEvent_Proxy(
   15878     IHWEventHandler* This,
   15879     LPCWSTR pszDeviceID,
   15880     LPCWSTR pszAltDeviceID,
   15881     LPCWSTR pszEventType);
   15882 void __RPC_STUB IHWEventHandler_HandleEvent_Stub(
   15883     IRpcStubBuffer* This,
   15884     IRpcChannelBuffer* pRpcChannelBuffer,
   15885     PRPC_MESSAGE pRpcMessage,
   15886     DWORD* pdwStubPhase);
   15887 HRESULT STDMETHODCALLTYPE IHWEventHandler_HandleEventWithContent_Proxy(
   15888     IHWEventHandler* This,
   15889     LPCWSTR pszDeviceID,
   15890     LPCWSTR pszAltDeviceID,
   15891     LPCWSTR pszEventType,
   15892     LPCWSTR pszContentTypeHandler,
   15893     IDataObject *pdataobject);
   15894 void __RPC_STUB IHWEventHandler_HandleEventWithContent_Stub(
   15895     IRpcStubBuffer* This,
   15896     IRpcChannelBuffer* pRpcChannelBuffer,
   15897     PRPC_MESSAGE pRpcMessage,
   15898     DWORD* pdwStubPhase);
   15899 
   15900 #endif  /* __IHWEventHandler_INTERFACE_DEFINED__ */
   15901 
   15902 
   15903 /*****************************************************************************
   15904  * IHWEventHandler2 interface
   15905  */
   15906 #ifndef __IHWEventHandler2_INTERFACE_DEFINED__
   15907 #define __IHWEventHandler2_INTERFACE_DEFINED__
   15908 
   15909 DEFINE_GUID(IID_IHWEventHandler2, 0xcfcc809f, 0x295d, 0x42e8, 0x9f,0xfc, 0x42,0x4b,0x33,0xc4,0x87,0xe6);
   15910 #if defined(__cplusplus) && !defined(CINTERFACE)
   15911 MIDL_INTERFACE("cfcc809f-295d-42e8-9ffc-424b33c487e6")
   15912 IHWEventHandler2 : public IHWEventHandler
   15913 {
   15914     virtual HRESULT STDMETHODCALLTYPE HandleEventWithHWND(
   15915         LPCWSTR pszDeviceID,
   15916         LPCWSTR pszAltDeviceID,
   15917         LPCWSTR pszEventType,
   15918         HWND hwndOwner) = 0;
   15919 
   15920 };
   15921 #ifdef __CRT_UUID_DECL
   15922 __CRT_UUID_DECL(IHWEventHandler2, 0xcfcc809f, 0x295d, 0x42e8, 0x9f,0xfc, 0x42,0x4b,0x33,0xc4,0x87,0xe6)
   15923 #endif
   15924 #else
   15925 typedef struct IHWEventHandler2Vtbl {
   15926     BEGIN_INTERFACE
   15927 
   15928     /*** IUnknown methods ***/
   15929     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   15930         IHWEventHandler2* This,
   15931         REFIID riid,
   15932         void **ppvObject);
   15933 
   15934     ULONG (STDMETHODCALLTYPE *AddRef)(
   15935         IHWEventHandler2* This);
   15936 
   15937     ULONG (STDMETHODCALLTYPE *Release)(
   15938         IHWEventHandler2* This);
   15939 
   15940     /*** IHWEventHandler methods ***/
   15941     HRESULT (STDMETHODCALLTYPE *Initialize)(
   15942         IHWEventHandler2* This,
   15943         LPCWSTR pszParams);
   15944 
   15945     HRESULT (STDMETHODCALLTYPE *HandleEvent)(
   15946         IHWEventHandler2* This,
   15947         LPCWSTR pszDeviceID,
   15948         LPCWSTR pszAltDeviceID,
   15949         LPCWSTR pszEventType);
   15950 
   15951     HRESULT (STDMETHODCALLTYPE *HandleEventWithContent)(
   15952         IHWEventHandler2* This,
   15953         LPCWSTR pszDeviceID,
   15954         LPCWSTR pszAltDeviceID,
   15955         LPCWSTR pszEventType,
   15956         LPCWSTR pszContentTypeHandler,
   15957         IDataObject *pdataobject);
   15958 
   15959     /*** IHWEventHandler2 methods ***/
   15960     HRESULT (STDMETHODCALLTYPE *HandleEventWithHWND)(
   15961         IHWEventHandler2* This,
   15962         LPCWSTR pszDeviceID,
   15963         LPCWSTR pszAltDeviceID,
   15964         LPCWSTR pszEventType,
   15965         HWND hwndOwner);
   15966 
   15967     END_INTERFACE
   15968 } IHWEventHandler2Vtbl;
   15969 interface IHWEventHandler2 {
   15970     CONST_VTBL IHWEventHandler2Vtbl* lpVtbl;
   15971 };
   15972 
   15973 #ifdef COBJMACROS
   15974 #ifndef WIDL_C_INLINE_WRAPPERS
   15975 /*** IUnknown methods ***/
   15976 #define IHWEventHandler2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   15977 #define IHWEventHandler2_AddRef(This) (This)->lpVtbl->AddRef(This)
   15978 #define IHWEventHandler2_Release(This) (This)->lpVtbl->Release(This)
   15979 /*** IHWEventHandler methods ***/
   15980 #define IHWEventHandler2_Initialize(This,pszParams) (This)->lpVtbl->Initialize(This,pszParams)
   15981 #define IHWEventHandler2_HandleEvent(This,pszDeviceID,pszAltDeviceID,pszEventType) (This)->lpVtbl->HandleEvent(This,pszDeviceID,pszAltDeviceID,pszEventType)
   15982 #define IHWEventHandler2_HandleEventWithContent(This,pszDeviceID,pszAltDeviceID,pszEventType,pszContentTypeHandler,pdataobject) (This)->lpVtbl->HandleEventWithContent(This,pszDeviceID,pszAltDeviceID,pszEventType,pszContentTypeHandler,pdataobject)
   15983 /*** IHWEventHandler2 methods ***/
   15984 #define IHWEventHandler2_HandleEventWithHWND(This,pszDeviceID,pszAltDeviceID,pszEventType,hwndOwner) (This)->lpVtbl->HandleEventWithHWND(This,pszDeviceID,pszAltDeviceID,pszEventType,hwndOwner)
   15985 #else
   15986 /*** IUnknown methods ***/
   15987 static FORCEINLINE HRESULT IHWEventHandler2_QueryInterface(IHWEventHandler2* This,REFIID riid,void **ppvObject) {
   15988     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   15989 }
   15990 static FORCEINLINE ULONG IHWEventHandler2_AddRef(IHWEventHandler2* This) {
   15991     return This->lpVtbl->AddRef(This);
   15992 }
   15993 static FORCEINLINE ULONG IHWEventHandler2_Release(IHWEventHandler2* This) {
   15994     return This->lpVtbl->Release(This);
   15995 }
   15996 /*** IHWEventHandler methods ***/
   15997 static FORCEINLINE HRESULT IHWEventHandler2_Initialize(IHWEventHandler2* This,LPCWSTR pszParams) {
   15998     return This->lpVtbl->Initialize(This,pszParams);
   15999 }
   16000 static FORCEINLINE HRESULT IHWEventHandler2_HandleEvent(IHWEventHandler2* This,LPCWSTR pszDeviceID,LPCWSTR pszAltDeviceID,LPCWSTR pszEventType) {
   16001     return This->lpVtbl->HandleEvent(This,pszDeviceID,pszAltDeviceID,pszEventType);
   16002 }
   16003 static FORCEINLINE HRESULT IHWEventHandler2_HandleEventWithContent(IHWEventHandler2* This,LPCWSTR pszDeviceID,LPCWSTR pszAltDeviceID,LPCWSTR pszEventType,LPCWSTR pszContentTypeHandler,IDataObject *pdataobject) {
   16004     return This->lpVtbl->HandleEventWithContent(This,pszDeviceID,pszAltDeviceID,pszEventType,pszContentTypeHandler,pdataobject);
   16005 }
   16006 /*** IHWEventHandler2 methods ***/
   16007 static FORCEINLINE HRESULT IHWEventHandler2_HandleEventWithHWND(IHWEventHandler2* This,LPCWSTR pszDeviceID,LPCWSTR pszAltDeviceID,LPCWSTR pszEventType,HWND hwndOwner) {
   16008     return This->lpVtbl->HandleEventWithHWND(This,pszDeviceID,pszAltDeviceID,pszEventType,hwndOwner);
   16009 }
   16010 #endif
   16011 #endif
   16012 
   16013 #endif
   16014 
   16015 HRESULT STDMETHODCALLTYPE IHWEventHandler2_HandleEventWithHWND_Proxy(
   16016     IHWEventHandler2* This,
   16017     LPCWSTR pszDeviceID,
   16018     LPCWSTR pszAltDeviceID,
   16019     LPCWSTR pszEventType,
   16020     HWND hwndOwner);
   16021 void __RPC_STUB IHWEventHandler2_HandleEventWithHWND_Stub(
   16022     IRpcStubBuffer* This,
   16023     IRpcChannelBuffer* pRpcChannelBuffer,
   16024     PRPC_MESSAGE pRpcMessage,
   16025     DWORD* pdwStubPhase);
   16026 
   16027 #endif  /* __IHWEventHandler2_INTERFACE_DEFINED__ */
   16028 
   16029 
   16030 #define ARCONTENT_AUTORUNINF 0x00000002
   16031 #define ARCONTENT_AUDIOCD 0x00000004
   16032 #define ARCONTENT_DVDMOVIE 0x00000008
   16033 #define ARCONTENT_BLANKCD 0x00000010
   16034 #define ARCONTENT_BLANKDVD 0x00000020
   16035 #define ARCONTENT_UNKNOWNCONTENT 0x00000040
   16036 #define ARCONTENT_AUTOPLAYPIX 0x00000080
   16037 #define ARCONTENT_AUTOPLAYMUSIC 0x00000100
   16038 #define ARCONTENT_AUTOPLAYVIDEO 0x00000200
   16039 
   16040 #if NTDDI_VERSION >= NTDDI_VISTA
   16041 #define ARCONTENT_VCD 0x00000400
   16042 #define ARCONTENT_SVCD 0x00000800
   16043 #define ARCONTENT_DVDAUDIO 0x00001000
   16044 #define ARCONTENT_BLANKBD 0x00002000
   16045 #define ARCONTENT_BLURAY 0x00004000
   16046 #define ARCONTENT_CAMERASTORAGE 0x00008000
   16047 #define ARCONTENT_CUSTOMEVENT 0x00010000
   16048 #define ARCONTENT_NONE 0x00000000
   16049 #define ARCONTENT_MASK 0x0001FFFE
   16050 
   16051 #define ARCONTENT_PHASE_UNKNOWN 0x00000000
   16052 #define ARCONTENT_PHASE_PRESNIFF 0x10000000
   16053 #define ARCONTENT_PHASE_SNIFFING 0x20000000
   16054 #define ARCONTENT_PHASE_FINAL 0x40000000
   16055 #define ARCONTENT_PHASE_MASK 0x70000000
   16056 #endif
   16057 
   16058 /*****************************************************************************
   16059  * IQueryCancelAutoPlay interface
   16060  */
   16061 #ifndef __IQueryCancelAutoPlay_INTERFACE_DEFINED__
   16062 #define __IQueryCancelAutoPlay_INTERFACE_DEFINED__
   16063 
   16064 DEFINE_GUID(IID_IQueryCancelAutoPlay, 0xddefe873, 0x6997, 0x4e68, 0xbe,0x26, 0x39,0xb6,0x33,0xad,0xbe,0x12);
   16065 #if defined(__cplusplus) && !defined(CINTERFACE)
   16066 MIDL_INTERFACE("ddefe873-6997-4e68-be26-39b633adbe12")
   16067 IQueryCancelAutoPlay : public IUnknown
   16068 {
   16069     virtual HRESULT STDMETHODCALLTYPE AllowAutoPlay(
   16070         LPCWSTR pszPath,
   16071         DWORD dwContentType,
   16072         LPCWSTR pszLabel,
   16073         DWORD dwSerialNumber) = 0;
   16074 
   16075 };
   16076 #ifdef __CRT_UUID_DECL
   16077 __CRT_UUID_DECL(IQueryCancelAutoPlay, 0xddefe873, 0x6997, 0x4e68, 0xbe,0x26, 0x39,0xb6,0x33,0xad,0xbe,0x12)
   16078 #endif
   16079 #else
   16080 typedef struct IQueryCancelAutoPlayVtbl {
   16081     BEGIN_INTERFACE
   16082 
   16083     /*** IUnknown methods ***/
   16084     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   16085         IQueryCancelAutoPlay* This,
   16086         REFIID riid,
   16087         void **ppvObject);
   16088 
   16089     ULONG (STDMETHODCALLTYPE *AddRef)(
   16090         IQueryCancelAutoPlay* This);
   16091 
   16092     ULONG (STDMETHODCALLTYPE *Release)(
   16093         IQueryCancelAutoPlay* This);
   16094 
   16095     /*** IQueryCancelAutoPlay methods ***/
   16096     HRESULT (STDMETHODCALLTYPE *AllowAutoPlay)(
   16097         IQueryCancelAutoPlay* This,
   16098         LPCWSTR pszPath,
   16099         DWORD dwContentType,
   16100         LPCWSTR pszLabel,
   16101         DWORD dwSerialNumber);
   16102 
   16103     END_INTERFACE
   16104 } IQueryCancelAutoPlayVtbl;
   16105 interface IQueryCancelAutoPlay {
   16106     CONST_VTBL IQueryCancelAutoPlayVtbl* lpVtbl;
   16107 };
   16108 
   16109 #ifdef COBJMACROS
   16110 #ifndef WIDL_C_INLINE_WRAPPERS
   16111 /*** IUnknown methods ***/
   16112 #define IQueryCancelAutoPlay_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   16113 #define IQueryCancelAutoPlay_AddRef(This) (This)->lpVtbl->AddRef(This)
   16114 #define IQueryCancelAutoPlay_Release(This) (This)->lpVtbl->Release(This)
   16115 /*** IQueryCancelAutoPlay methods ***/
   16116 #define IQueryCancelAutoPlay_AllowAutoPlay(This,pszPath,dwContentType,pszLabel,dwSerialNumber) (This)->lpVtbl->AllowAutoPlay(This,pszPath,dwContentType,pszLabel,dwSerialNumber)
   16117 #else
   16118 /*** IUnknown methods ***/
   16119 static FORCEINLINE HRESULT IQueryCancelAutoPlay_QueryInterface(IQueryCancelAutoPlay* This,REFIID riid,void **ppvObject) {
   16120     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   16121 }
   16122 static FORCEINLINE ULONG IQueryCancelAutoPlay_AddRef(IQueryCancelAutoPlay* This) {
   16123     return This->lpVtbl->AddRef(This);
   16124 }
   16125 static FORCEINLINE ULONG IQueryCancelAutoPlay_Release(IQueryCancelAutoPlay* This) {
   16126     return This->lpVtbl->Release(This);
   16127 }
   16128 /*** IQueryCancelAutoPlay methods ***/
   16129 static FORCEINLINE HRESULT IQueryCancelAutoPlay_AllowAutoPlay(IQueryCancelAutoPlay* This,LPCWSTR pszPath,DWORD dwContentType,LPCWSTR pszLabel,DWORD dwSerialNumber) {
   16130     return This->lpVtbl->AllowAutoPlay(This,pszPath,dwContentType,pszLabel,dwSerialNumber);
   16131 }
   16132 #endif
   16133 #endif
   16134 
   16135 #endif
   16136 
   16137 HRESULT STDMETHODCALLTYPE IQueryCancelAutoPlay_AllowAutoPlay_Proxy(
   16138     IQueryCancelAutoPlay* This,
   16139     LPCWSTR pszPath,
   16140     DWORD dwContentType,
   16141     LPCWSTR pszLabel,
   16142     DWORD dwSerialNumber);
   16143 void __RPC_STUB IQueryCancelAutoPlay_AllowAutoPlay_Stub(
   16144     IRpcStubBuffer* This,
   16145     IRpcChannelBuffer* pRpcChannelBuffer,
   16146     PRPC_MESSAGE pRpcMessage,
   16147     DWORD* pdwStubPhase);
   16148 
   16149 #endif  /* __IQueryCancelAutoPlay_INTERFACE_DEFINED__ */
   16150 
   16151 
   16152 #if NTDDI_VERSION >= NTDDI_VISTA
   16153 /*****************************************************************************
   16154  * IDynamicHWHandler interface
   16155  */
   16156 #ifndef __IDynamicHWHandler_INTERFACE_DEFINED__
   16157 #define __IDynamicHWHandler_INTERFACE_DEFINED__
   16158 
   16159 DEFINE_GUID(IID_IDynamicHWHandler, 0xdc2601d7, 0x059e, 0x42fc, 0xa0,0x9d, 0x2a,0xfd,0x21,0xb6,0xd5,0xf7);
   16160 #if defined(__cplusplus) && !defined(CINTERFACE)
   16161 MIDL_INTERFACE("dc2601d7-059e-42fc-a09d-2afd21b6d5f7")
   16162 IDynamicHWHandler : public IUnknown
   16163 {
   16164     virtual HRESULT STDMETHODCALLTYPE GetDynamicInfo(
   16165         LPCWSTR pszDeviceID,
   16166         DWORD dwContentType,
   16167         LPWSTR *ppszAction) = 0;
   16168 
   16169 };
   16170 #ifdef __CRT_UUID_DECL
   16171 __CRT_UUID_DECL(IDynamicHWHandler, 0xdc2601d7, 0x059e, 0x42fc, 0xa0,0x9d, 0x2a,0xfd,0x21,0xb6,0xd5,0xf7)
   16172 #endif
   16173 #else
   16174 typedef struct IDynamicHWHandlerVtbl {
   16175     BEGIN_INTERFACE
   16176 
   16177     /*** IUnknown methods ***/
   16178     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   16179         IDynamicHWHandler* This,
   16180         REFIID riid,
   16181         void **ppvObject);
   16182 
   16183     ULONG (STDMETHODCALLTYPE *AddRef)(
   16184         IDynamicHWHandler* This);
   16185 
   16186     ULONG (STDMETHODCALLTYPE *Release)(
   16187         IDynamicHWHandler* This);
   16188 
   16189     /*** IDynamicHWHandler methods ***/
   16190     HRESULT (STDMETHODCALLTYPE *GetDynamicInfo)(
   16191         IDynamicHWHandler* This,
   16192         LPCWSTR pszDeviceID,
   16193         DWORD dwContentType,
   16194         LPWSTR *ppszAction);
   16195 
   16196     END_INTERFACE
   16197 } IDynamicHWHandlerVtbl;
   16198 interface IDynamicHWHandler {
   16199     CONST_VTBL IDynamicHWHandlerVtbl* lpVtbl;
   16200 };
   16201 
   16202 #ifdef COBJMACROS
   16203 #ifndef WIDL_C_INLINE_WRAPPERS
   16204 /*** IUnknown methods ***/
   16205 #define IDynamicHWHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   16206 #define IDynamicHWHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
   16207 #define IDynamicHWHandler_Release(This) (This)->lpVtbl->Release(This)
   16208 /*** IDynamicHWHandler methods ***/
   16209 #define IDynamicHWHandler_GetDynamicInfo(This,pszDeviceID,dwContentType,ppszAction) (This)->lpVtbl->GetDynamicInfo(This,pszDeviceID,dwContentType,ppszAction)
   16210 #else
   16211 /*** IUnknown methods ***/
   16212 static FORCEINLINE HRESULT IDynamicHWHandler_QueryInterface(IDynamicHWHandler* This,REFIID riid,void **ppvObject) {
   16213     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   16214 }
   16215 static FORCEINLINE ULONG IDynamicHWHandler_AddRef(IDynamicHWHandler* This) {
   16216     return This->lpVtbl->AddRef(This);
   16217 }
   16218 static FORCEINLINE ULONG IDynamicHWHandler_Release(IDynamicHWHandler* This) {
   16219     return This->lpVtbl->Release(This);
   16220 }
   16221 /*** IDynamicHWHandler methods ***/
   16222 static FORCEINLINE HRESULT IDynamicHWHandler_GetDynamicInfo(IDynamicHWHandler* This,LPCWSTR pszDeviceID,DWORD dwContentType,LPWSTR *ppszAction) {
   16223     return This->lpVtbl->GetDynamicInfo(This,pszDeviceID,dwContentType,ppszAction);
   16224 }
   16225 #endif
   16226 #endif
   16227 
   16228 #endif
   16229 
   16230 HRESULT STDMETHODCALLTYPE IDynamicHWHandler_GetDynamicInfo_Proxy(
   16231     IDynamicHWHandler* This,
   16232     LPCWSTR pszDeviceID,
   16233     DWORD dwContentType,
   16234     LPWSTR *ppszAction);
   16235 void __RPC_STUB IDynamicHWHandler_GetDynamicInfo_Stub(
   16236     IRpcStubBuffer* This,
   16237     IRpcChannelBuffer* pRpcChannelBuffer,
   16238     PRPC_MESSAGE pRpcMessage,
   16239     DWORD* pdwStubPhase);
   16240 
   16241 #endif  /* __IDynamicHWHandler_INTERFACE_DEFINED__ */
   16242 
   16243 #endif
   16244 
   16245 /*****************************************************************************
   16246  * IActionProgress interface
   16247  */
   16248 #ifndef __IActionProgress_INTERFACE_DEFINED__
   16249 #define __IActionProgress_INTERFACE_DEFINED__
   16250 
   16251 enum _SPBEGINF {
   16252     SPBEGINF_NORMAL = 0x0,
   16253     SPBEGINF_AUTOTIME = 0x2,
   16254     SPBEGINF_NOPROGRESSBAR = 0x10,
   16255     SPBEGINF_MARQUEEPROGRESS = 0x20,
   16256     SPBEGINF_NOCANCELBUTTON = 0x40
   16257 };
   16258 
   16259 
   16260 typedef DWORD SPBEGINF;
   16261 
   16262 typedef enum _SPACTION {
   16263     SPACTION_NONE = 0,
   16264     SPACTION_MOVING = 1,
   16265     SPACTION_COPYING = 2,
   16266     SPACTION_RECYCLING = 3,
   16267     SPACTION_APPLYINGATTRIBS = 4,
   16268     SPACTION_DOWNLOADING = 5,
   16269     SPACTION_SEARCHING_INTERNET = 6,
   16270     SPACTION_CALCULATING = 7,
   16271     SPACTION_UPLOADING = 8,
   16272     SPACTION_SEARCHING_FILES = 9,
   16273     SPACTION_DELETING = 10,
   16274     SPACTION_RENAMING = 11,
   16275     SPACTION_FORMATTING = 12,
   16276     SPACTION_COPY_MOVING = 13
   16277 } SPACTION;
   16278 
   16279 typedef enum _SPTEXT {
   16280     SPTEXT_ACTIONDESCRIPTION = 1,
   16281     SPTEXT_ACTIONDETAIL = 2
   16282 } SPTEXT;
   16283 
   16284 DEFINE_GUID(IID_IActionProgress, 0x49ff1173, 0xeadc, 0x446d, 0x92,0x85, 0x15,0x64,0x53,0xa6,0x43,0x1c);
   16285 #if defined(__cplusplus) && !defined(CINTERFACE)
   16286 MIDL_INTERFACE("49ff1173-eadc-446d-9285-156453a6431c")
   16287 IActionProgress : public IUnknown
   16288 {
   16289     virtual HRESULT STDMETHODCALLTYPE Begin(
   16290         SPACTION action,
   16291         SPBEGINF flags) = 0;
   16292 
   16293     virtual HRESULT STDMETHODCALLTYPE UpdateProgress(
   16294         ULONGLONG ulCompleted,
   16295         ULONGLONG ulTotal) = 0;
   16296 
   16297     virtual HRESULT STDMETHODCALLTYPE UpdateText(
   16298         SPTEXT sptext,
   16299         LPCWSTR pszText,
   16300         WINBOOL fMayCompact) = 0;
   16301 
   16302     virtual HRESULT STDMETHODCALLTYPE QueryCancel(
   16303         WINBOOL *pfCancelled) = 0;
   16304 
   16305     virtual HRESULT STDMETHODCALLTYPE ResetCancel(
   16306         ) = 0;
   16307 
   16308     virtual HRESULT STDMETHODCALLTYPE End(
   16309         ) = 0;
   16310 
   16311 };
   16312 #ifdef __CRT_UUID_DECL
   16313 __CRT_UUID_DECL(IActionProgress, 0x49ff1173, 0xeadc, 0x446d, 0x92,0x85, 0x15,0x64,0x53,0xa6,0x43,0x1c)
   16314 #endif
   16315 #else
   16316 typedef struct IActionProgressVtbl {
   16317     BEGIN_INTERFACE
   16318 
   16319     /*** IUnknown methods ***/
   16320     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   16321         IActionProgress* This,
   16322         REFIID riid,
   16323         void **ppvObject);
   16324 
   16325     ULONG (STDMETHODCALLTYPE *AddRef)(
   16326         IActionProgress* This);
   16327 
   16328     ULONG (STDMETHODCALLTYPE *Release)(
   16329         IActionProgress* This);
   16330 
   16331     /*** IActionProgress methods ***/
   16332     HRESULT (STDMETHODCALLTYPE *Begin)(
   16333         IActionProgress* This,
   16334         SPACTION action,
   16335         SPBEGINF flags);
   16336 
   16337     HRESULT (STDMETHODCALLTYPE *UpdateProgress)(
   16338         IActionProgress* This,
   16339         ULONGLONG ulCompleted,
   16340         ULONGLONG ulTotal);
   16341 
   16342     HRESULT (STDMETHODCALLTYPE *UpdateText)(
   16343         IActionProgress* This,
   16344         SPTEXT sptext,
   16345         LPCWSTR pszText,
   16346         WINBOOL fMayCompact);
   16347 
   16348     HRESULT (STDMETHODCALLTYPE *QueryCancel)(
   16349         IActionProgress* This,
   16350         WINBOOL *pfCancelled);
   16351 
   16352     HRESULT (STDMETHODCALLTYPE *ResetCancel)(
   16353         IActionProgress* This);
   16354 
   16355     HRESULT (STDMETHODCALLTYPE *End)(
   16356         IActionProgress* This);
   16357 
   16358     END_INTERFACE
   16359 } IActionProgressVtbl;
   16360 interface IActionProgress {
   16361     CONST_VTBL IActionProgressVtbl* lpVtbl;
   16362 };
   16363 
   16364 #ifdef COBJMACROS
   16365 #ifndef WIDL_C_INLINE_WRAPPERS
   16366 /*** IUnknown methods ***/
   16367 #define IActionProgress_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   16368 #define IActionProgress_AddRef(This) (This)->lpVtbl->AddRef(This)
   16369 #define IActionProgress_Release(This) (This)->lpVtbl->Release(This)
   16370 /*** IActionProgress methods ***/
   16371 #define IActionProgress_Begin(This,action,flags) (This)->lpVtbl->Begin(This,action,flags)
   16372 #define IActionProgress_UpdateProgress(This,ulCompleted,ulTotal) (This)->lpVtbl->UpdateProgress(This,ulCompleted,ulTotal)
   16373 #define IActionProgress_UpdateText(This,sptext,pszText,fMayCompact) (This)->lpVtbl->UpdateText(This,sptext,pszText,fMayCompact)
   16374 #define IActionProgress_QueryCancel(This,pfCancelled) (This)->lpVtbl->QueryCancel(This,pfCancelled)
   16375 #define IActionProgress_ResetCancel(This) (This)->lpVtbl->ResetCancel(This)
   16376 #define IActionProgress_End(This) (This)->lpVtbl->End(This)
   16377 #else
   16378 /*** IUnknown methods ***/
   16379 static FORCEINLINE HRESULT IActionProgress_QueryInterface(IActionProgress* This,REFIID riid,void **ppvObject) {
   16380     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   16381 }
   16382 static FORCEINLINE ULONG IActionProgress_AddRef(IActionProgress* This) {
   16383     return This->lpVtbl->AddRef(This);
   16384 }
   16385 static FORCEINLINE ULONG IActionProgress_Release(IActionProgress* This) {
   16386     return This->lpVtbl->Release(This);
   16387 }
   16388 /*** IActionProgress methods ***/
   16389 static FORCEINLINE HRESULT IActionProgress_Begin(IActionProgress* This,SPACTION action,SPBEGINF flags) {
   16390     return This->lpVtbl->Begin(This,action,flags);
   16391 }
   16392 static FORCEINLINE HRESULT IActionProgress_UpdateProgress(IActionProgress* This,ULONGLONG ulCompleted,ULONGLONG ulTotal) {
   16393     return This->lpVtbl->UpdateProgress(This,ulCompleted,ulTotal);
   16394 }
   16395 static FORCEINLINE HRESULT IActionProgress_UpdateText(IActionProgress* This,SPTEXT sptext,LPCWSTR pszText,WINBOOL fMayCompact) {
   16396     return This->lpVtbl->UpdateText(This,sptext,pszText,fMayCompact);
   16397 }
   16398 static FORCEINLINE HRESULT IActionProgress_QueryCancel(IActionProgress* This,WINBOOL *pfCancelled) {
   16399     return This->lpVtbl->QueryCancel(This,pfCancelled);
   16400 }
   16401 static FORCEINLINE HRESULT IActionProgress_ResetCancel(IActionProgress* This) {
   16402     return This->lpVtbl->ResetCancel(This);
   16403 }
   16404 static FORCEINLINE HRESULT IActionProgress_End(IActionProgress* This) {
   16405     return This->lpVtbl->End(This);
   16406 }
   16407 #endif
   16408 #endif
   16409 
   16410 #endif
   16411 
   16412 HRESULT STDMETHODCALLTYPE IActionProgress_Begin_Proxy(
   16413     IActionProgress* This,
   16414     SPACTION action,
   16415     SPBEGINF flags);
   16416 void __RPC_STUB IActionProgress_Begin_Stub(
   16417     IRpcStubBuffer* This,
   16418     IRpcChannelBuffer* pRpcChannelBuffer,
   16419     PRPC_MESSAGE pRpcMessage,
   16420     DWORD* pdwStubPhase);
   16421 HRESULT STDMETHODCALLTYPE IActionProgress_UpdateProgress_Proxy(
   16422     IActionProgress* This,
   16423     ULONGLONG ulCompleted,
   16424     ULONGLONG ulTotal);
   16425 void __RPC_STUB IActionProgress_UpdateProgress_Stub(
   16426     IRpcStubBuffer* This,
   16427     IRpcChannelBuffer* pRpcChannelBuffer,
   16428     PRPC_MESSAGE pRpcMessage,
   16429     DWORD* pdwStubPhase);
   16430 HRESULT STDMETHODCALLTYPE IActionProgress_UpdateText_Proxy(
   16431     IActionProgress* This,
   16432     SPTEXT sptext,
   16433     LPCWSTR pszText,
   16434     WINBOOL fMayCompact);
   16435 void __RPC_STUB IActionProgress_UpdateText_Stub(
   16436     IRpcStubBuffer* This,
   16437     IRpcChannelBuffer* pRpcChannelBuffer,
   16438     PRPC_MESSAGE pRpcMessage,
   16439     DWORD* pdwStubPhase);
   16440 HRESULT STDMETHODCALLTYPE IActionProgress_QueryCancel_Proxy(
   16441     IActionProgress* This,
   16442     WINBOOL *pfCancelled);
   16443 void __RPC_STUB IActionProgress_QueryCancel_Stub(
   16444     IRpcStubBuffer* This,
   16445     IRpcChannelBuffer* pRpcChannelBuffer,
   16446     PRPC_MESSAGE pRpcMessage,
   16447     DWORD* pdwStubPhase);
   16448 HRESULT STDMETHODCALLTYPE IActionProgress_ResetCancel_Proxy(
   16449     IActionProgress* This);
   16450 void __RPC_STUB IActionProgress_ResetCancel_Stub(
   16451     IRpcStubBuffer* This,
   16452     IRpcChannelBuffer* pRpcChannelBuffer,
   16453     PRPC_MESSAGE pRpcMessage,
   16454     DWORD* pdwStubPhase);
   16455 HRESULT STDMETHODCALLTYPE IActionProgress_End_Proxy(
   16456     IActionProgress* This);
   16457 void __RPC_STUB IActionProgress_End_Stub(
   16458     IRpcStubBuffer* This,
   16459     IRpcChannelBuffer* pRpcChannelBuffer,
   16460     PRPC_MESSAGE pRpcMessage,
   16461     DWORD* pdwStubPhase);
   16462 
   16463 #endif  /* __IActionProgress_INTERFACE_DEFINED__ */
   16464 
   16465 
   16466 /*****************************************************************************
   16467  * IShellExtInit interface
   16468  */
   16469 #ifndef __IShellExtInit_INTERFACE_DEFINED__
   16470 #define __IShellExtInit_INTERFACE_DEFINED__
   16471 
   16472 DEFINE_GUID(IID_IShellExtInit, 0x000214e8, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   16473 #if defined(__cplusplus) && !defined(CINTERFACE)
   16474 MIDL_INTERFACE("000214e8-0000-0000-c000-000000000046")
   16475 IShellExtInit : public IUnknown
   16476 {
   16477     virtual HRESULT STDMETHODCALLTYPE Initialize(
   16478         PCIDLIST_ABSOLUTE pidlFolder,
   16479         IDataObject *pdtobj,
   16480         HKEY hkeyProgID) = 0;
   16481 
   16482 };
   16483 #ifdef __CRT_UUID_DECL
   16484 __CRT_UUID_DECL(IShellExtInit, 0x000214e8, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   16485 #endif
   16486 #else
   16487 typedef struct IShellExtInitVtbl {
   16488     BEGIN_INTERFACE
   16489 
   16490     /*** IUnknown methods ***/
   16491     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   16492         IShellExtInit* This,
   16493         REFIID riid,
   16494         void **ppvObject);
   16495 
   16496     ULONG (STDMETHODCALLTYPE *AddRef)(
   16497         IShellExtInit* This);
   16498 
   16499     ULONG (STDMETHODCALLTYPE *Release)(
   16500         IShellExtInit* This);
   16501 
   16502     /*** IShellExtInit methods ***/
   16503     HRESULT (STDMETHODCALLTYPE *Initialize)(
   16504         IShellExtInit* This,
   16505         PCIDLIST_ABSOLUTE pidlFolder,
   16506         IDataObject *pdtobj,
   16507         HKEY hkeyProgID);
   16508 
   16509     END_INTERFACE
   16510 } IShellExtInitVtbl;
   16511 interface IShellExtInit {
   16512     CONST_VTBL IShellExtInitVtbl* lpVtbl;
   16513 };
   16514 
   16515 #ifdef COBJMACROS
   16516 #ifndef WIDL_C_INLINE_WRAPPERS
   16517 /*** IUnknown methods ***/
   16518 #define IShellExtInit_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   16519 #define IShellExtInit_AddRef(This) (This)->lpVtbl->AddRef(This)
   16520 #define IShellExtInit_Release(This) (This)->lpVtbl->Release(This)
   16521 /*** IShellExtInit methods ***/
   16522 #define IShellExtInit_Initialize(This,pidlFolder,pdtobj,hkeyProgID) (This)->lpVtbl->Initialize(This,pidlFolder,pdtobj,hkeyProgID)
   16523 #else
   16524 /*** IUnknown methods ***/
   16525 static FORCEINLINE HRESULT IShellExtInit_QueryInterface(IShellExtInit* This,REFIID riid,void **ppvObject) {
   16526     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   16527 }
   16528 static FORCEINLINE ULONG IShellExtInit_AddRef(IShellExtInit* This) {
   16529     return This->lpVtbl->AddRef(This);
   16530 }
   16531 static FORCEINLINE ULONG IShellExtInit_Release(IShellExtInit* This) {
   16532     return This->lpVtbl->Release(This);
   16533 }
   16534 /*** IShellExtInit methods ***/
   16535 static FORCEINLINE HRESULT IShellExtInit_Initialize(IShellExtInit* This,PCIDLIST_ABSOLUTE pidlFolder,IDataObject *pdtobj,HKEY hkeyProgID) {
   16536     return This->lpVtbl->Initialize(This,pidlFolder,pdtobj,hkeyProgID);
   16537 }
   16538 #endif
   16539 #endif
   16540 
   16541 #endif
   16542 
   16543 HRESULT STDMETHODCALLTYPE IShellExtInit_Initialize_Proxy(
   16544     IShellExtInit* This,
   16545     PCIDLIST_ABSOLUTE pidlFolder,
   16546     IDataObject *pdtobj,
   16547     HKEY hkeyProgID);
   16548 void __RPC_STUB IShellExtInit_Initialize_Stub(
   16549     IRpcStubBuffer* This,
   16550     IRpcChannelBuffer* pRpcChannelBuffer,
   16551     PRPC_MESSAGE pRpcMessage,
   16552     DWORD* pdwStubPhase);
   16553 
   16554 #endif  /* __IShellExtInit_INTERFACE_DEFINED__ */
   16555 
   16556 typedef IShellExtInit *LPSHELLEXTINIT;
   16557 
   16558 /*****************************************************************************
   16559  * IShellPropSheetExt interface
   16560  */
   16561 #ifndef __IShellPropSheetExt_INTERFACE_DEFINED__
   16562 #define __IShellPropSheetExt_INTERFACE_DEFINED__
   16563 
   16564 enum _EXPPS {
   16565     EXPPS_FILETYPES = 0x1
   16566 };
   16567 
   16568 
   16569 typedef UINT EXPPS;
   16570 
   16571 DEFINE_GUID(IID_IShellPropSheetExt, 0x000214e9, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   16572 #if defined(__cplusplus) && !defined(CINTERFACE)
   16573 MIDL_INTERFACE("000214e9-0000-0000-c000-000000000046")
   16574 IShellPropSheetExt : public IUnknown
   16575 {
   16576     virtual HRESULT STDMETHODCALLTYPE AddPages(
   16577         LPFNSVADDPROPSHEETPAGE pfnAddPage,
   16578         LPARAM lParam) = 0;
   16579 
   16580     virtual HRESULT STDMETHODCALLTYPE ReplacePage(
   16581         EXPPS uPageID,
   16582         LPFNSVADDPROPSHEETPAGE pfnReplaceWith,
   16583         LPARAM lParam) = 0;
   16584 
   16585 };
   16586 #ifdef __CRT_UUID_DECL
   16587 __CRT_UUID_DECL(IShellPropSheetExt, 0x000214e9, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   16588 #endif
   16589 #else
   16590 typedef struct IShellPropSheetExtVtbl {
   16591     BEGIN_INTERFACE
   16592 
   16593     /*** IUnknown methods ***/
   16594     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   16595         IShellPropSheetExt* This,
   16596         REFIID riid,
   16597         void **ppvObject);
   16598 
   16599     ULONG (STDMETHODCALLTYPE *AddRef)(
   16600         IShellPropSheetExt* This);
   16601 
   16602     ULONG (STDMETHODCALLTYPE *Release)(
   16603         IShellPropSheetExt* This);
   16604 
   16605     /*** IShellPropSheetExt methods ***/
   16606     HRESULT (STDMETHODCALLTYPE *AddPages)(
   16607         IShellPropSheetExt* This,
   16608         LPFNSVADDPROPSHEETPAGE pfnAddPage,
   16609         LPARAM lParam);
   16610 
   16611     HRESULT (STDMETHODCALLTYPE *ReplacePage)(
   16612         IShellPropSheetExt* This,
   16613         EXPPS uPageID,
   16614         LPFNSVADDPROPSHEETPAGE pfnReplaceWith,
   16615         LPARAM lParam);
   16616 
   16617     END_INTERFACE
   16618 } IShellPropSheetExtVtbl;
   16619 interface IShellPropSheetExt {
   16620     CONST_VTBL IShellPropSheetExtVtbl* lpVtbl;
   16621 };
   16622 
   16623 #ifdef COBJMACROS
   16624 #ifndef WIDL_C_INLINE_WRAPPERS
   16625 /*** IUnknown methods ***/
   16626 #define IShellPropSheetExt_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   16627 #define IShellPropSheetExt_AddRef(This) (This)->lpVtbl->AddRef(This)
   16628 #define IShellPropSheetExt_Release(This) (This)->lpVtbl->Release(This)
   16629 /*** IShellPropSheetExt methods ***/
   16630 #define IShellPropSheetExt_AddPages(This,pfnAddPage,lParam) (This)->lpVtbl->AddPages(This,pfnAddPage,lParam)
   16631 #define IShellPropSheetExt_ReplacePage(This,uPageID,pfnReplaceWith,lParam) (This)->lpVtbl->ReplacePage(This,uPageID,pfnReplaceWith,lParam)
   16632 #else
   16633 /*** IUnknown methods ***/
   16634 static FORCEINLINE HRESULT IShellPropSheetExt_QueryInterface(IShellPropSheetExt* This,REFIID riid,void **ppvObject) {
   16635     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   16636 }
   16637 static FORCEINLINE ULONG IShellPropSheetExt_AddRef(IShellPropSheetExt* This) {
   16638     return This->lpVtbl->AddRef(This);
   16639 }
   16640 static FORCEINLINE ULONG IShellPropSheetExt_Release(IShellPropSheetExt* This) {
   16641     return This->lpVtbl->Release(This);
   16642 }
   16643 /*** IShellPropSheetExt methods ***/
   16644 static FORCEINLINE HRESULT IShellPropSheetExt_AddPages(IShellPropSheetExt* This,LPFNSVADDPROPSHEETPAGE pfnAddPage,LPARAM lParam) {
   16645     return This->lpVtbl->AddPages(This,pfnAddPage,lParam);
   16646 }
   16647 static FORCEINLINE HRESULT IShellPropSheetExt_ReplacePage(IShellPropSheetExt* This,EXPPS uPageID,LPFNSVADDPROPSHEETPAGE pfnReplaceWith,LPARAM lParam) {
   16648     return This->lpVtbl->ReplacePage(This,uPageID,pfnReplaceWith,lParam);
   16649 }
   16650 #endif
   16651 #endif
   16652 
   16653 #endif
   16654 
   16655 HRESULT STDMETHODCALLTYPE IShellPropSheetExt_AddPages_Proxy(
   16656     IShellPropSheetExt* This,
   16657     LPFNSVADDPROPSHEETPAGE pfnAddPage,
   16658     LPARAM lParam);
   16659 void __RPC_STUB IShellPropSheetExt_AddPages_Stub(
   16660     IRpcStubBuffer* This,
   16661     IRpcChannelBuffer* pRpcChannelBuffer,
   16662     PRPC_MESSAGE pRpcMessage,
   16663     DWORD* pdwStubPhase);
   16664 HRESULT STDMETHODCALLTYPE IShellPropSheetExt_ReplacePage_Proxy(
   16665     IShellPropSheetExt* This,
   16666     EXPPS uPageID,
   16667     LPFNSVADDPROPSHEETPAGE pfnReplaceWith,
   16668     LPARAM lParam);
   16669 void __RPC_STUB IShellPropSheetExt_ReplacePage_Stub(
   16670     IRpcStubBuffer* This,
   16671     IRpcChannelBuffer* pRpcChannelBuffer,
   16672     PRPC_MESSAGE pRpcMessage,
   16673     DWORD* pdwStubPhase);
   16674 
   16675 #endif  /* __IShellPropSheetExt_INTERFACE_DEFINED__ */
   16676 
   16677 typedef IShellPropSheetExt *LPSHELLPROPSHEETEXT;
   16678 
   16679 /*****************************************************************************
   16680  * IRemoteComputer interface
   16681  */
   16682 #ifndef __IRemoteComputer_INTERFACE_DEFINED__
   16683 #define __IRemoteComputer_INTERFACE_DEFINED__
   16684 
   16685 DEFINE_GUID(IID_IRemoteComputer, 0x000214fe, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   16686 #if defined(__cplusplus) && !defined(CINTERFACE)
   16687 MIDL_INTERFACE("000214fe-0000-0000-c000-000000000046")
   16688 IRemoteComputer : public IUnknown
   16689 {
   16690     virtual HRESULT STDMETHODCALLTYPE Initialize(
   16691         LPCWSTR pszMachine,
   16692         WINBOOL bEnumerating) = 0;
   16693 
   16694 };
   16695 #ifdef __CRT_UUID_DECL
   16696 __CRT_UUID_DECL(IRemoteComputer, 0x000214fe, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   16697 #endif
   16698 #else
   16699 typedef struct IRemoteComputerVtbl {
   16700     BEGIN_INTERFACE
   16701 
   16702     /*** IUnknown methods ***/
   16703     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   16704         IRemoteComputer* This,
   16705         REFIID riid,
   16706         void **ppvObject);
   16707 
   16708     ULONG (STDMETHODCALLTYPE *AddRef)(
   16709         IRemoteComputer* This);
   16710 
   16711     ULONG (STDMETHODCALLTYPE *Release)(
   16712         IRemoteComputer* This);
   16713 
   16714     /*** IRemoteComputer methods ***/
   16715     HRESULT (STDMETHODCALLTYPE *Initialize)(
   16716         IRemoteComputer* This,
   16717         LPCWSTR pszMachine,
   16718         WINBOOL bEnumerating);
   16719 
   16720     END_INTERFACE
   16721 } IRemoteComputerVtbl;
   16722 interface IRemoteComputer {
   16723     CONST_VTBL IRemoteComputerVtbl* lpVtbl;
   16724 };
   16725 
   16726 #ifdef COBJMACROS
   16727 #ifndef WIDL_C_INLINE_WRAPPERS
   16728 /*** IUnknown methods ***/
   16729 #define IRemoteComputer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   16730 #define IRemoteComputer_AddRef(This) (This)->lpVtbl->AddRef(This)
   16731 #define IRemoteComputer_Release(This) (This)->lpVtbl->Release(This)
   16732 /*** IRemoteComputer methods ***/
   16733 #define IRemoteComputer_Initialize(This,pszMachine,bEnumerating) (This)->lpVtbl->Initialize(This,pszMachine,bEnumerating)
   16734 #else
   16735 /*** IUnknown methods ***/
   16736 static FORCEINLINE HRESULT IRemoteComputer_QueryInterface(IRemoteComputer* This,REFIID riid,void **ppvObject) {
   16737     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   16738 }
   16739 static FORCEINLINE ULONG IRemoteComputer_AddRef(IRemoteComputer* This) {
   16740     return This->lpVtbl->AddRef(This);
   16741 }
   16742 static FORCEINLINE ULONG IRemoteComputer_Release(IRemoteComputer* This) {
   16743     return This->lpVtbl->Release(This);
   16744 }
   16745 /*** IRemoteComputer methods ***/
   16746 static FORCEINLINE HRESULT IRemoteComputer_Initialize(IRemoteComputer* This,LPCWSTR pszMachine,WINBOOL bEnumerating) {
   16747     return This->lpVtbl->Initialize(This,pszMachine,bEnumerating);
   16748 }
   16749 #endif
   16750 #endif
   16751 
   16752 #endif
   16753 
   16754 HRESULT STDMETHODCALLTYPE IRemoteComputer_Initialize_Proxy(
   16755     IRemoteComputer* This,
   16756     LPCWSTR pszMachine,
   16757     WINBOOL bEnumerating);
   16758 void __RPC_STUB IRemoteComputer_Initialize_Stub(
   16759     IRpcStubBuffer* This,
   16760     IRpcChannelBuffer* pRpcChannelBuffer,
   16761     PRPC_MESSAGE pRpcMessage,
   16762     DWORD* pdwStubPhase);
   16763 
   16764 #endif  /* __IRemoteComputer_INTERFACE_DEFINED__ */
   16765 
   16766 
   16767 /*****************************************************************************
   16768  * IQueryContinue interface
   16769  */
   16770 #ifndef __IQueryContinue_INTERFACE_DEFINED__
   16771 #define __IQueryContinue_INTERFACE_DEFINED__
   16772 
   16773 DEFINE_GUID(IID_IQueryContinue, 0x7307055c, 0xb24a, 0x486b, 0x9f,0x25, 0x16,0x3e,0x59,0x7a,0x28,0xa9);
   16774 #if defined(__cplusplus) && !defined(CINTERFACE)
   16775 MIDL_INTERFACE("7307055c-b24a-486b-9f25-163e597a28a9")
   16776 IQueryContinue : public IUnknown
   16777 {
   16778     virtual HRESULT STDMETHODCALLTYPE QueryContinue(
   16779         ) = 0;
   16780 
   16781 };
   16782 #ifdef __CRT_UUID_DECL
   16783 __CRT_UUID_DECL(IQueryContinue, 0x7307055c, 0xb24a, 0x486b, 0x9f,0x25, 0x16,0x3e,0x59,0x7a,0x28,0xa9)
   16784 #endif
   16785 #else
   16786 typedef struct IQueryContinueVtbl {
   16787     BEGIN_INTERFACE
   16788 
   16789     /*** IUnknown methods ***/
   16790     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   16791         IQueryContinue* This,
   16792         REFIID riid,
   16793         void **ppvObject);
   16794 
   16795     ULONG (STDMETHODCALLTYPE *AddRef)(
   16796         IQueryContinue* This);
   16797 
   16798     ULONG (STDMETHODCALLTYPE *Release)(
   16799         IQueryContinue* This);
   16800 
   16801     /*** IQueryContinue methods ***/
   16802     HRESULT (STDMETHODCALLTYPE *QueryContinue)(
   16803         IQueryContinue* This);
   16804 
   16805     END_INTERFACE
   16806 } IQueryContinueVtbl;
   16807 interface IQueryContinue {
   16808     CONST_VTBL IQueryContinueVtbl* lpVtbl;
   16809 };
   16810 
   16811 #ifdef COBJMACROS
   16812 #ifndef WIDL_C_INLINE_WRAPPERS
   16813 /*** IUnknown methods ***/
   16814 #define IQueryContinue_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   16815 #define IQueryContinue_AddRef(This) (This)->lpVtbl->AddRef(This)
   16816 #define IQueryContinue_Release(This) (This)->lpVtbl->Release(This)
   16817 /*** IQueryContinue methods ***/
   16818 #define IQueryContinue_QueryContinue(This) (This)->lpVtbl->QueryContinue(This)
   16819 #else
   16820 /*** IUnknown methods ***/
   16821 static FORCEINLINE HRESULT IQueryContinue_QueryInterface(IQueryContinue* This,REFIID riid,void **ppvObject) {
   16822     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   16823 }
   16824 static FORCEINLINE ULONG IQueryContinue_AddRef(IQueryContinue* This) {
   16825     return This->lpVtbl->AddRef(This);
   16826 }
   16827 static FORCEINLINE ULONG IQueryContinue_Release(IQueryContinue* This) {
   16828     return This->lpVtbl->Release(This);
   16829 }
   16830 /*** IQueryContinue methods ***/
   16831 static FORCEINLINE HRESULT IQueryContinue_QueryContinue(IQueryContinue* This) {
   16832     return This->lpVtbl->QueryContinue(This);
   16833 }
   16834 #endif
   16835 #endif
   16836 
   16837 #endif
   16838 
   16839 HRESULT STDMETHODCALLTYPE IQueryContinue_QueryContinue_Proxy(
   16840     IQueryContinue* This);
   16841 void __RPC_STUB IQueryContinue_QueryContinue_Stub(
   16842     IRpcStubBuffer* This,
   16843     IRpcChannelBuffer* pRpcChannelBuffer,
   16844     PRPC_MESSAGE pRpcMessage,
   16845     DWORD* pdwStubPhase);
   16846 
   16847 #endif  /* __IQueryContinue_INTERFACE_DEFINED__ */
   16848 
   16849 
   16850 /*****************************************************************************
   16851  * IObjectWithCancelEvent interface
   16852  */
   16853 #ifndef __IObjectWithCancelEvent_INTERFACE_DEFINED__
   16854 #define __IObjectWithCancelEvent_INTERFACE_DEFINED__
   16855 
   16856 DEFINE_GUID(IID_IObjectWithCancelEvent, 0xf279b885, 0x0ae9, 0x4b85, 0xac,0x06, 0xdd,0xec,0xf9,0x40,0x89,0x41);
   16857 #if defined(__cplusplus) && !defined(CINTERFACE)
   16858 MIDL_INTERFACE("f279b885-0ae9-4b85-ac06-ddecf9408941")
   16859 IObjectWithCancelEvent : public IUnknown
   16860 {
   16861     virtual HRESULT STDMETHODCALLTYPE GetCancelEvent(
   16862         HANDLE *phEvent) = 0;
   16863 
   16864 };
   16865 #ifdef __CRT_UUID_DECL
   16866 __CRT_UUID_DECL(IObjectWithCancelEvent, 0xf279b885, 0x0ae9, 0x4b85, 0xac,0x06, 0xdd,0xec,0xf9,0x40,0x89,0x41)
   16867 #endif
   16868 #else
   16869 typedef struct IObjectWithCancelEventVtbl {
   16870     BEGIN_INTERFACE
   16871 
   16872     /*** IUnknown methods ***/
   16873     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   16874         IObjectWithCancelEvent* This,
   16875         REFIID riid,
   16876         void **ppvObject);
   16877 
   16878     ULONG (STDMETHODCALLTYPE *AddRef)(
   16879         IObjectWithCancelEvent* This);
   16880 
   16881     ULONG (STDMETHODCALLTYPE *Release)(
   16882         IObjectWithCancelEvent* This);
   16883 
   16884     /*** IObjectWithCancelEvent methods ***/
   16885     HRESULT (STDMETHODCALLTYPE *GetCancelEvent)(
   16886         IObjectWithCancelEvent* This,
   16887         HANDLE *phEvent);
   16888 
   16889     END_INTERFACE
   16890 } IObjectWithCancelEventVtbl;
   16891 interface IObjectWithCancelEvent {
   16892     CONST_VTBL IObjectWithCancelEventVtbl* lpVtbl;
   16893 };
   16894 
   16895 #ifdef COBJMACROS
   16896 #ifndef WIDL_C_INLINE_WRAPPERS
   16897 /*** IUnknown methods ***/
   16898 #define IObjectWithCancelEvent_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   16899 #define IObjectWithCancelEvent_AddRef(This) (This)->lpVtbl->AddRef(This)
   16900 #define IObjectWithCancelEvent_Release(This) (This)->lpVtbl->Release(This)
   16901 /*** IObjectWithCancelEvent methods ***/
   16902 #define IObjectWithCancelEvent_GetCancelEvent(This,phEvent) (This)->lpVtbl->GetCancelEvent(This,phEvent)
   16903 #else
   16904 /*** IUnknown methods ***/
   16905 static FORCEINLINE HRESULT IObjectWithCancelEvent_QueryInterface(IObjectWithCancelEvent* This,REFIID riid,void **ppvObject) {
   16906     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   16907 }
   16908 static FORCEINLINE ULONG IObjectWithCancelEvent_AddRef(IObjectWithCancelEvent* This) {
   16909     return This->lpVtbl->AddRef(This);
   16910 }
   16911 static FORCEINLINE ULONG IObjectWithCancelEvent_Release(IObjectWithCancelEvent* This) {
   16912     return This->lpVtbl->Release(This);
   16913 }
   16914 /*** IObjectWithCancelEvent methods ***/
   16915 static FORCEINLINE HRESULT IObjectWithCancelEvent_GetCancelEvent(IObjectWithCancelEvent* This,HANDLE *phEvent) {
   16916     return This->lpVtbl->GetCancelEvent(This,phEvent);
   16917 }
   16918 #endif
   16919 #endif
   16920 
   16921 #endif
   16922 
   16923 HRESULT STDMETHODCALLTYPE IObjectWithCancelEvent_GetCancelEvent_Proxy(
   16924     IObjectWithCancelEvent* This,
   16925     HANDLE *phEvent);
   16926 void __RPC_STUB IObjectWithCancelEvent_GetCancelEvent_Stub(
   16927     IRpcStubBuffer* This,
   16928     IRpcChannelBuffer* pRpcChannelBuffer,
   16929     PRPC_MESSAGE pRpcMessage,
   16930     DWORD* pdwStubPhase);
   16931 
   16932 #endif  /* __IObjectWithCancelEvent_INTERFACE_DEFINED__ */
   16933 
   16934 
   16935 /*****************************************************************************
   16936  * IUserNotification interface
   16937  */
   16938 #ifndef __IUserNotification_INTERFACE_DEFINED__
   16939 #define __IUserNotification_INTERFACE_DEFINED__
   16940 
   16941 DEFINE_GUID(IID_IUserNotification, 0xba9711ba, 0x5893, 0x4787, 0xa7,0xe1, 0x41,0x27,0x71,0x51,0x55,0x0b);
   16942 #if defined(__cplusplus) && !defined(CINTERFACE)
   16943 MIDL_INTERFACE("ba9711ba-5893-4787-a7e1-41277151550b")
   16944 IUserNotification : public IUnknown
   16945 {
   16946     virtual HRESULT STDMETHODCALLTYPE SetBalloonInfo(
   16947         LPCWSTR pszTitle,
   16948         LPCWSTR pszText,
   16949         DWORD dwInfoFlags) = 0;
   16950 
   16951     virtual HRESULT STDMETHODCALLTYPE SetBalloonRetry(
   16952         DWORD dwShowTime,
   16953         DWORD dwInterval,
   16954         UINT cRetryCount) = 0;
   16955 
   16956     virtual HRESULT STDMETHODCALLTYPE SetIconInfo(
   16957         HICON hIcon,
   16958         LPCWSTR pszToolTip) = 0;
   16959 
   16960     virtual HRESULT STDMETHODCALLTYPE Show(
   16961         IQueryContinue *pqc,
   16962         DWORD dwContinuePollInterval) = 0;
   16963 
   16964     virtual HRESULT STDMETHODCALLTYPE PlaySound(
   16965         LPCWSTR pszSoundName) = 0;
   16966 
   16967 };
   16968 #ifdef __CRT_UUID_DECL
   16969 __CRT_UUID_DECL(IUserNotification, 0xba9711ba, 0x5893, 0x4787, 0xa7,0xe1, 0x41,0x27,0x71,0x51,0x55,0x0b)
   16970 #endif
   16971 #else
   16972 typedef struct IUserNotificationVtbl {
   16973     BEGIN_INTERFACE
   16974 
   16975     /*** IUnknown methods ***/
   16976     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   16977         IUserNotification* This,
   16978         REFIID riid,
   16979         void **ppvObject);
   16980 
   16981     ULONG (STDMETHODCALLTYPE *AddRef)(
   16982         IUserNotification* This);
   16983 
   16984     ULONG (STDMETHODCALLTYPE *Release)(
   16985         IUserNotification* This);
   16986 
   16987     /*** IUserNotification methods ***/
   16988     HRESULT (STDMETHODCALLTYPE *SetBalloonInfo)(
   16989         IUserNotification* This,
   16990         LPCWSTR pszTitle,
   16991         LPCWSTR pszText,
   16992         DWORD dwInfoFlags);
   16993 
   16994     HRESULT (STDMETHODCALLTYPE *SetBalloonRetry)(
   16995         IUserNotification* This,
   16996         DWORD dwShowTime,
   16997         DWORD dwInterval,
   16998         UINT cRetryCount);
   16999 
   17000     HRESULT (STDMETHODCALLTYPE *SetIconInfo)(
   17001         IUserNotification* This,
   17002         HICON hIcon,
   17003         LPCWSTR pszToolTip);
   17004 
   17005     HRESULT (STDMETHODCALLTYPE *Show)(
   17006         IUserNotification* This,
   17007         IQueryContinue *pqc,
   17008         DWORD dwContinuePollInterval);
   17009 
   17010     HRESULT (STDMETHODCALLTYPE *PlaySound)(
   17011         IUserNotification* This,
   17012         LPCWSTR pszSoundName);
   17013 
   17014     END_INTERFACE
   17015 } IUserNotificationVtbl;
   17016 interface IUserNotification {
   17017     CONST_VTBL IUserNotificationVtbl* lpVtbl;
   17018 };
   17019 
   17020 #ifdef COBJMACROS
   17021 #ifndef WIDL_C_INLINE_WRAPPERS
   17022 /*** IUnknown methods ***/
   17023 #define IUserNotification_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   17024 #define IUserNotification_AddRef(This) (This)->lpVtbl->AddRef(This)
   17025 #define IUserNotification_Release(This) (This)->lpVtbl->Release(This)
   17026 /*** IUserNotification methods ***/
   17027 #define IUserNotification_SetBalloonInfo(This,pszTitle,pszText,dwInfoFlags) (This)->lpVtbl->SetBalloonInfo(This,pszTitle,pszText,dwInfoFlags)
   17028 #define IUserNotification_SetBalloonRetry(This,dwShowTime,dwInterval,cRetryCount) (This)->lpVtbl->SetBalloonRetry(This,dwShowTime,dwInterval,cRetryCount)
   17029 #define IUserNotification_SetIconInfo(This,hIcon,pszToolTip) (This)->lpVtbl->SetIconInfo(This,hIcon,pszToolTip)
   17030 #define IUserNotification_Show(This,pqc,dwContinuePollInterval) (This)->lpVtbl->Show(This,pqc,dwContinuePollInterval)
   17031 #define IUserNotification_PlaySound(This,pszSoundName) (This)->lpVtbl->PlaySound(This,pszSoundName)
   17032 #else
   17033 /*** IUnknown methods ***/
   17034 static FORCEINLINE HRESULT IUserNotification_QueryInterface(IUserNotification* This,REFIID riid,void **ppvObject) {
   17035     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   17036 }
   17037 static FORCEINLINE ULONG IUserNotification_AddRef(IUserNotification* This) {
   17038     return This->lpVtbl->AddRef(This);
   17039 }
   17040 static FORCEINLINE ULONG IUserNotification_Release(IUserNotification* This) {
   17041     return This->lpVtbl->Release(This);
   17042 }
   17043 /*** IUserNotification methods ***/
   17044 static FORCEINLINE HRESULT IUserNotification_SetBalloonInfo(IUserNotification* This,LPCWSTR pszTitle,LPCWSTR pszText,DWORD dwInfoFlags) {
   17045     return This->lpVtbl->SetBalloonInfo(This,pszTitle,pszText,dwInfoFlags);
   17046 }
   17047 static FORCEINLINE HRESULT IUserNotification_SetBalloonRetry(IUserNotification* This,DWORD dwShowTime,DWORD dwInterval,UINT cRetryCount) {
   17048     return This->lpVtbl->SetBalloonRetry(This,dwShowTime,dwInterval,cRetryCount);
   17049 }
   17050 static FORCEINLINE HRESULT IUserNotification_SetIconInfo(IUserNotification* This,HICON hIcon,LPCWSTR pszToolTip) {
   17051     return This->lpVtbl->SetIconInfo(This,hIcon,pszToolTip);
   17052 }
   17053 static FORCEINLINE HRESULT IUserNotification_Show(IUserNotification* This,IQueryContinue *pqc,DWORD dwContinuePollInterval) {
   17054     return This->lpVtbl->Show(This,pqc,dwContinuePollInterval);
   17055 }
   17056 static FORCEINLINE HRESULT IUserNotification_PlaySound(IUserNotification* This,LPCWSTR pszSoundName) {
   17057     return This->lpVtbl->PlaySound(This,pszSoundName);
   17058 }
   17059 #endif
   17060 #endif
   17061 
   17062 #endif
   17063 
   17064 HRESULT STDMETHODCALLTYPE IUserNotification_SetBalloonInfo_Proxy(
   17065     IUserNotification* This,
   17066     LPCWSTR pszTitle,
   17067     LPCWSTR pszText,
   17068     DWORD dwInfoFlags);
   17069 void __RPC_STUB IUserNotification_SetBalloonInfo_Stub(
   17070     IRpcStubBuffer* This,
   17071     IRpcChannelBuffer* pRpcChannelBuffer,
   17072     PRPC_MESSAGE pRpcMessage,
   17073     DWORD* pdwStubPhase);
   17074 HRESULT STDMETHODCALLTYPE IUserNotification_SetBalloonRetry_Proxy(
   17075     IUserNotification* This,
   17076     DWORD dwShowTime,
   17077     DWORD dwInterval,
   17078     UINT cRetryCount);
   17079 void __RPC_STUB IUserNotification_SetBalloonRetry_Stub(
   17080     IRpcStubBuffer* This,
   17081     IRpcChannelBuffer* pRpcChannelBuffer,
   17082     PRPC_MESSAGE pRpcMessage,
   17083     DWORD* pdwStubPhase);
   17084 HRESULT STDMETHODCALLTYPE IUserNotification_SetIconInfo_Proxy(
   17085     IUserNotification* This,
   17086     HICON hIcon,
   17087     LPCWSTR pszToolTip);
   17088 void __RPC_STUB IUserNotification_SetIconInfo_Stub(
   17089     IRpcStubBuffer* This,
   17090     IRpcChannelBuffer* pRpcChannelBuffer,
   17091     PRPC_MESSAGE pRpcMessage,
   17092     DWORD* pdwStubPhase);
   17093 HRESULT STDMETHODCALLTYPE IUserNotification_Show_Proxy(
   17094     IUserNotification* This,
   17095     IQueryContinue *pqc,
   17096     DWORD dwContinuePollInterval);
   17097 void __RPC_STUB IUserNotification_Show_Stub(
   17098     IRpcStubBuffer* This,
   17099     IRpcChannelBuffer* pRpcChannelBuffer,
   17100     PRPC_MESSAGE pRpcMessage,
   17101     DWORD* pdwStubPhase);
   17102 HRESULT STDMETHODCALLTYPE IUserNotification_PlaySound_Proxy(
   17103     IUserNotification* This,
   17104     LPCWSTR pszSoundName);
   17105 void __RPC_STUB IUserNotification_PlaySound_Stub(
   17106     IRpcStubBuffer* This,
   17107     IRpcChannelBuffer* pRpcChannelBuffer,
   17108     PRPC_MESSAGE pRpcMessage,
   17109     DWORD* pdwStubPhase);
   17110 
   17111 #endif  /* __IUserNotification_INTERFACE_DEFINED__ */
   17112 
   17113 
   17114 /*****************************************************************************
   17115  * IUserNotificationCallback interface
   17116  */
   17117 #ifndef __IUserNotificationCallback_INTERFACE_DEFINED__
   17118 #define __IUserNotificationCallback_INTERFACE_DEFINED__
   17119 
   17120 DEFINE_GUID(IID_IUserNotificationCallback, 0x19108294, 0x0441, 0x4aff, 0x80,0x13, 0xfa,0x0a,0x73,0x0b,0x0b,0xea);
   17121 #if defined(__cplusplus) && !defined(CINTERFACE)
   17122 MIDL_INTERFACE("19108294-0441-4aff-8013-fa0a730b0bea")
   17123 IUserNotificationCallback : public IUnknown
   17124 {
   17125     virtual HRESULT STDMETHODCALLTYPE OnBalloonUserClick(
   17126         POINT *pt) = 0;
   17127 
   17128     virtual HRESULT STDMETHODCALLTYPE OnLeftClick(
   17129         POINT *pt) = 0;
   17130 
   17131     virtual HRESULT STDMETHODCALLTYPE OnContextMenu(
   17132         POINT *pt) = 0;
   17133 
   17134 };
   17135 #ifdef __CRT_UUID_DECL
   17136 __CRT_UUID_DECL(IUserNotificationCallback, 0x19108294, 0x0441, 0x4aff, 0x80,0x13, 0xfa,0x0a,0x73,0x0b,0x0b,0xea)
   17137 #endif
   17138 #else
   17139 typedef struct IUserNotificationCallbackVtbl {
   17140     BEGIN_INTERFACE
   17141 
   17142     /*** IUnknown methods ***/
   17143     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   17144         IUserNotificationCallback* This,
   17145         REFIID riid,
   17146         void **ppvObject);
   17147 
   17148     ULONG (STDMETHODCALLTYPE *AddRef)(
   17149         IUserNotificationCallback* This);
   17150 
   17151     ULONG (STDMETHODCALLTYPE *Release)(
   17152         IUserNotificationCallback* This);
   17153 
   17154     /*** IUserNotificationCallback methods ***/
   17155     HRESULT (STDMETHODCALLTYPE *OnBalloonUserClick)(
   17156         IUserNotificationCallback* This,
   17157         POINT *pt);
   17158 
   17159     HRESULT (STDMETHODCALLTYPE *OnLeftClick)(
   17160         IUserNotificationCallback* This,
   17161         POINT *pt);
   17162 
   17163     HRESULT (STDMETHODCALLTYPE *OnContextMenu)(
   17164         IUserNotificationCallback* This,
   17165         POINT *pt);
   17166 
   17167     END_INTERFACE
   17168 } IUserNotificationCallbackVtbl;
   17169 interface IUserNotificationCallback {
   17170     CONST_VTBL IUserNotificationCallbackVtbl* lpVtbl;
   17171 };
   17172 
   17173 #ifdef COBJMACROS
   17174 #ifndef WIDL_C_INLINE_WRAPPERS
   17175 /*** IUnknown methods ***/
   17176 #define IUserNotificationCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   17177 #define IUserNotificationCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
   17178 #define IUserNotificationCallback_Release(This) (This)->lpVtbl->Release(This)
   17179 /*** IUserNotificationCallback methods ***/
   17180 #define IUserNotificationCallback_OnBalloonUserClick(This,pt) (This)->lpVtbl->OnBalloonUserClick(This,pt)
   17181 #define IUserNotificationCallback_OnLeftClick(This,pt) (This)->lpVtbl->OnLeftClick(This,pt)
   17182 #define IUserNotificationCallback_OnContextMenu(This,pt) (This)->lpVtbl->OnContextMenu(This,pt)
   17183 #else
   17184 /*** IUnknown methods ***/
   17185 static FORCEINLINE HRESULT IUserNotificationCallback_QueryInterface(IUserNotificationCallback* This,REFIID riid,void **ppvObject) {
   17186     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   17187 }
   17188 static FORCEINLINE ULONG IUserNotificationCallback_AddRef(IUserNotificationCallback* This) {
   17189     return This->lpVtbl->AddRef(This);
   17190 }
   17191 static FORCEINLINE ULONG IUserNotificationCallback_Release(IUserNotificationCallback* This) {
   17192     return This->lpVtbl->Release(This);
   17193 }
   17194 /*** IUserNotificationCallback methods ***/
   17195 static FORCEINLINE HRESULT IUserNotificationCallback_OnBalloonUserClick(IUserNotificationCallback* This,POINT *pt) {
   17196     return This->lpVtbl->OnBalloonUserClick(This,pt);
   17197 }
   17198 static FORCEINLINE HRESULT IUserNotificationCallback_OnLeftClick(IUserNotificationCallback* This,POINT *pt) {
   17199     return This->lpVtbl->OnLeftClick(This,pt);
   17200 }
   17201 static FORCEINLINE HRESULT IUserNotificationCallback_OnContextMenu(IUserNotificationCallback* This,POINT *pt) {
   17202     return This->lpVtbl->OnContextMenu(This,pt);
   17203 }
   17204 #endif
   17205 #endif
   17206 
   17207 #endif
   17208 
   17209 HRESULT STDMETHODCALLTYPE IUserNotificationCallback_OnBalloonUserClick_Proxy(
   17210     IUserNotificationCallback* This,
   17211     POINT *pt);
   17212 void __RPC_STUB IUserNotificationCallback_OnBalloonUserClick_Stub(
   17213     IRpcStubBuffer* This,
   17214     IRpcChannelBuffer* pRpcChannelBuffer,
   17215     PRPC_MESSAGE pRpcMessage,
   17216     DWORD* pdwStubPhase);
   17217 HRESULT STDMETHODCALLTYPE IUserNotificationCallback_OnLeftClick_Proxy(
   17218     IUserNotificationCallback* This,
   17219     POINT *pt);
   17220 void __RPC_STUB IUserNotificationCallback_OnLeftClick_Stub(
   17221     IRpcStubBuffer* This,
   17222     IRpcChannelBuffer* pRpcChannelBuffer,
   17223     PRPC_MESSAGE pRpcMessage,
   17224     DWORD* pdwStubPhase);
   17225 HRESULT STDMETHODCALLTYPE IUserNotificationCallback_OnContextMenu_Proxy(
   17226     IUserNotificationCallback* This,
   17227     POINT *pt);
   17228 void __RPC_STUB IUserNotificationCallback_OnContextMenu_Stub(
   17229     IRpcStubBuffer* This,
   17230     IRpcChannelBuffer* pRpcChannelBuffer,
   17231     PRPC_MESSAGE pRpcMessage,
   17232     DWORD* pdwStubPhase);
   17233 
   17234 #endif  /* __IUserNotificationCallback_INTERFACE_DEFINED__ */
   17235 
   17236 
   17237 /*****************************************************************************
   17238  * IUserNotification2 interface
   17239  */
   17240 #ifndef __IUserNotification2_INTERFACE_DEFINED__
   17241 #define __IUserNotification2_INTERFACE_DEFINED__
   17242 
   17243 DEFINE_GUID(IID_IUserNotification2, 0x215913cc, 0x57eb, 0x4fab, 0xab,0x5a, 0xe5,0xfa,0x7b,0xea,0x2a,0x6c);
   17244 #if defined(__cplusplus) && !defined(CINTERFACE)
   17245 MIDL_INTERFACE("215913cc-57eb-4fab-ab5a-e5fa7bea2a6c")
   17246 IUserNotification2 : public IUnknown
   17247 {
   17248     virtual HRESULT STDMETHODCALLTYPE SetBalloonInfo(
   17249         LPCWSTR pszTitle,
   17250         LPCWSTR pszText,
   17251         DWORD dwInfoFlags) = 0;
   17252 
   17253     virtual HRESULT STDMETHODCALLTYPE SetBalloonRetry(
   17254         DWORD dwShowTime,
   17255         DWORD dwInterval,
   17256         UINT cRetryCount) = 0;
   17257 
   17258     virtual HRESULT STDMETHODCALLTYPE SetIconInfo(
   17259         HICON hIcon,
   17260         LPCWSTR pszToolTip) = 0;
   17261 
   17262     virtual HRESULT STDMETHODCALLTYPE Show(
   17263         IQueryContinue *pqc,
   17264         DWORD dwContinuePollInterval,
   17265         IUserNotificationCallback *pSink) = 0;
   17266 
   17267     virtual HRESULT STDMETHODCALLTYPE PlaySound(
   17268         LPCWSTR pszSoundName) = 0;
   17269 
   17270 };
   17271 #ifdef __CRT_UUID_DECL
   17272 __CRT_UUID_DECL(IUserNotification2, 0x215913cc, 0x57eb, 0x4fab, 0xab,0x5a, 0xe5,0xfa,0x7b,0xea,0x2a,0x6c)
   17273 #endif
   17274 #else
   17275 typedef struct IUserNotification2Vtbl {
   17276     BEGIN_INTERFACE
   17277 
   17278     /*** IUnknown methods ***/
   17279     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   17280         IUserNotification2* This,
   17281         REFIID riid,
   17282         void **ppvObject);
   17283 
   17284     ULONG (STDMETHODCALLTYPE *AddRef)(
   17285         IUserNotification2* This);
   17286 
   17287     ULONG (STDMETHODCALLTYPE *Release)(
   17288         IUserNotification2* This);
   17289 
   17290     /*** IUserNotification2 methods ***/
   17291     HRESULT (STDMETHODCALLTYPE *SetBalloonInfo)(
   17292         IUserNotification2* This,
   17293         LPCWSTR pszTitle,
   17294         LPCWSTR pszText,
   17295         DWORD dwInfoFlags);
   17296 
   17297     HRESULT (STDMETHODCALLTYPE *SetBalloonRetry)(
   17298         IUserNotification2* This,
   17299         DWORD dwShowTime,
   17300         DWORD dwInterval,
   17301         UINT cRetryCount);
   17302 
   17303     HRESULT (STDMETHODCALLTYPE *SetIconInfo)(
   17304         IUserNotification2* This,
   17305         HICON hIcon,
   17306         LPCWSTR pszToolTip);
   17307 
   17308     HRESULT (STDMETHODCALLTYPE *Show)(
   17309         IUserNotification2* This,
   17310         IQueryContinue *pqc,
   17311         DWORD dwContinuePollInterval,
   17312         IUserNotificationCallback *pSink);
   17313 
   17314     HRESULT (STDMETHODCALLTYPE *PlaySound)(
   17315         IUserNotification2* This,
   17316         LPCWSTR pszSoundName);
   17317 
   17318     END_INTERFACE
   17319 } IUserNotification2Vtbl;
   17320 interface IUserNotification2 {
   17321     CONST_VTBL IUserNotification2Vtbl* lpVtbl;
   17322 };
   17323 
   17324 #ifdef COBJMACROS
   17325 #ifndef WIDL_C_INLINE_WRAPPERS
   17326 /*** IUnknown methods ***/
   17327 #define IUserNotification2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   17328 #define IUserNotification2_AddRef(This) (This)->lpVtbl->AddRef(This)
   17329 #define IUserNotification2_Release(This) (This)->lpVtbl->Release(This)
   17330 /*** IUserNotification2 methods ***/
   17331 #define IUserNotification2_SetBalloonInfo(This,pszTitle,pszText,dwInfoFlags) (This)->lpVtbl->SetBalloonInfo(This,pszTitle,pszText,dwInfoFlags)
   17332 #define IUserNotification2_SetBalloonRetry(This,dwShowTime,dwInterval,cRetryCount) (This)->lpVtbl->SetBalloonRetry(This,dwShowTime,dwInterval,cRetryCount)
   17333 #define IUserNotification2_SetIconInfo(This,hIcon,pszToolTip) (This)->lpVtbl->SetIconInfo(This,hIcon,pszToolTip)
   17334 #define IUserNotification2_Show(This,pqc,dwContinuePollInterval,pSink) (This)->lpVtbl->Show(This,pqc,dwContinuePollInterval,pSink)
   17335 #define IUserNotification2_PlaySound(This,pszSoundName) (This)->lpVtbl->PlaySound(This,pszSoundName)
   17336 #else
   17337 /*** IUnknown methods ***/
   17338 static FORCEINLINE HRESULT IUserNotification2_QueryInterface(IUserNotification2* This,REFIID riid,void **ppvObject) {
   17339     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   17340 }
   17341 static FORCEINLINE ULONG IUserNotification2_AddRef(IUserNotification2* This) {
   17342     return This->lpVtbl->AddRef(This);
   17343 }
   17344 static FORCEINLINE ULONG IUserNotification2_Release(IUserNotification2* This) {
   17345     return This->lpVtbl->Release(This);
   17346 }
   17347 /*** IUserNotification2 methods ***/
   17348 static FORCEINLINE HRESULT IUserNotification2_SetBalloonInfo(IUserNotification2* This,LPCWSTR pszTitle,LPCWSTR pszText,DWORD dwInfoFlags) {
   17349     return This->lpVtbl->SetBalloonInfo(This,pszTitle,pszText,dwInfoFlags);
   17350 }
   17351 static FORCEINLINE HRESULT IUserNotification2_SetBalloonRetry(IUserNotification2* This,DWORD dwShowTime,DWORD dwInterval,UINT cRetryCount) {
   17352     return This->lpVtbl->SetBalloonRetry(This,dwShowTime,dwInterval,cRetryCount);
   17353 }
   17354 static FORCEINLINE HRESULT IUserNotification2_SetIconInfo(IUserNotification2* This,HICON hIcon,LPCWSTR pszToolTip) {
   17355     return This->lpVtbl->SetIconInfo(This,hIcon,pszToolTip);
   17356 }
   17357 static FORCEINLINE HRESULT IUserNotification2_Show(IUserNotification2* This,IQueryContinue *pqc,DWORD dwContinuePollInterval,IUserNotificationCallback *pSink) {
   17358     return This->lpVtbl->Show(This,pqc,dwContinuePollInterval,pSink);
   17359 }
   17360 static FORCEINLINE HRESULT IUserNotification2_PlaySound(IUserNotification2* This,LPCWSTR pszSoundName) {
   17361     return This->lpVtbl->PlaySound(This,pszSoundName);
   17362 }
   17363 #endif
   17364 #endif
   17365 
   17366 #endif
   17367 
   17368 HRESULT STDMETHODCALLTYPE IUserNotification2_SetBalloonInfo_Proxy(
   17369     IUserNotification2* This,
   17370     LPCWSTR pszTitle,
   17371     LPCWSTR pszText,
   17372     DWORD dwInfoFlags);
   17373 void __RPC_STUB IUserNotification2_SetBalloonInfo_Stub(
   17374     IRpcStubBuffer* This,
   17375     IRpcChannelBuffer* pRpcChannelBuffer,
   17376     PRPC_MESSAGE pRpcMessage,
   17377     DWORD* pdwStubPhase);
   17378 HRESULT STDMETHODCALLTYPE IUserNotification2_SetBalloonRetry_Proxy(
   17379     IUserNotification2* This,
   17380     DWORD dwShowTime,
   17381     DWORD dwInterval,
   17382     UINT cRetryCount);
   17383 void __RPC_STUB IUserNotification2_SetBalloonRetry_Stub(
   17384     IRpcStubBuffer* This,
   17385     IRpcChannelBuffer* pRpcChannelBuffer,
   17386     PRPC_MESSAGE pRpcMessage,
   17387     DWORD* pdwStubPhase);
   17388 HRESULT STDMETHODCALLTYPE IUserNotification2_SetIconInfo_Proxy(
   17389     IUserNotification2* This,
   17390     HICON hIcon,
   17391     LPCWSTR pszToolTip);
   17392 void __RPC_STUB IUserNotification2_SetIconInfo_Stub(
   17393     IRpcStubBuffer* This,
   17394     IRpcChannelBuffer* pRpcChannelBuffer,
   17395     PRPC_MESSAGE pRpcMessage,
   17396     DWORD* pdwStubPhase);
   17397 HRESULT STDMETHODCALLTYPE IUserNotification2_Show_Proxy(
   17398     IUserNotification2* This,
   17399     IQueryContinue *pqc,
   17400     DWORD dwContinuePollInterval,
   17401     IUserNotificationCallback *pSink);
   17402 void __RPC_STUB IUserNotification2_Show_Stub(
   17403     IRpcStubBuffer* This,
   17404     IRpcChannelBuffer* pRpcChannelBuffer,
   17405     PRPC_MESSAGE pRpcMessage,
   17406     DWORD* pdwStubPhase);
   17407 HRESULT STDMETHODCALLTYPE IUserNotification2_PlaySound_Proxy(
   17408     IUserNotification2* This,
   17409     LPCWSTR pszSoundName);
   17410 void __RPC_STUB IUserNotification2_PlaySound_Stub(
   17411     IRpcStubBuffer* This,
   17412     IRpcChannelBuffer* pRpcChannelBuffer,
   17413     PRPC_MESSAGE pRpcMessage,
   17414     DWORD* pdwStubPhase);
   17415 
   17416 #endif  /* __IUserNotification2_INTERFACE_DEFINED__ */
   17417 
   17418 
   17419 /*****************************************************************************
   17420  * IItemNameLimits interface
   17421  */
   17422 #ifndef __IItemNameLimits_INTERFACE_DEFINED__
   17423 #define __IItemNameLimits_INTERFACE_DEFINED__
   17424 
   17425 DEFINE_GUID(IID_IItemNameLimits, 0x1df0d7f1, 0xb267, 0x4d28, 0x8b,0x10, 0x12,0xe2,0x32,0x02,0xa5,0xc4);
   17426 #if defined(__cplusplus) && !defined(CINTERFACE)
   17427 MIDL_INTERFACE("1df0d7f1-b267-4d28-8b10-12e23202a5c4")
   17428 IItemNameLimits : public IUnknown
   17429 {
   17430     virtual HRESULT STDMETHODCALLTYPE GetValidCharacters(
   17431         LPWSTR *ppwszValidChars,
   17432         LPWSTR *ppwszInvalidChars) = 0;
   17433 
   17434     virtual HRESULT STDMETHODCALLTYPE GetMaxLength(
   17435         LPCWSTR pszName,
   17436         int *piMaxNameLen) = 0;
   17437 
   17438 };
   17439 #ifdef __CRT_UUID_DECL
   17440 __CRT_UUID_DECL(IItemNameLimits, 0x1df0d7f1, 0xb267, 0x4d28, 0x8b,0x10, 0x12,0xe2,0x32,0x02,0xa5,0xc4)
   17441 #endif
   17442 #else
   17443 typedef struct IItemNameLimitsVtbl {
   17444     BEGIN_INTERFACE
   17445 
   17446     /*** IUnknown methods ***/
   17447     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   17448         IItemNameLimits* This,
   17449         REFIID riid,
   17450         void **ppvObject);
   17451 
   17452     ULONG (STDMETHODCALLTYPE *AddRef)(
   17453         IItemNameLimits* This);
   17454 
   17455     ULONG (STDMETHODCALLTYPE *Release)(
   17456         IItemNameLimits* This);
   17457 
   17458     /*** IItemNameLimits methods ***/
   17459     HRESULT (STDMETHODCALLTYPE *GetValidCharacters)(
   17460         IItemNameLimits* This,
   17461         LPWSTR *ppwszValidChars,
   17462         LPWSTR *ppwszInvalidChars);
   17463 
   17464     HRESULT (STDMETHODCALLTYPE *GetMaxLength)(
   17465         IItemNameLimits* This,
   17466         LPCWSTR pszName,
   17467         int *piMaxNameLen);
   17468 
   17469     END_INTERFACE
   17470 } IItemNameLimitsVtbl;
   17471 interface IItemNameLimits {
   17472     CONST_VTBL IItemNameLimitsVtbl* lpVtbl;
   17473 };
   17474 
   17475 #ifdef COBJMACROS
   17476 #ifndef WIDL_C_INLINE_WRAPPERS
   17477 /*** IUnknown methods ***/
   17478 #define IItemNameLimits_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   17479 #define IItemNameLimits_AddRef(This) (This)->lpVtbl->AddRef(This)
   17480 #define IItemNameLimits_Release(This) (This)->lpVtbl->Release(This)
   17481 /*** IItemNameLimits methods ***/
   17482 #define IItemNameLimits_GetValidCharacters(This,ppwszValidChars,ppwszInvalidChars) (This)->lpVtbl->GetValidCharacters(This,ppwszValidChars,ppwszInvalidChars)
   17483 #define IItemNameLimits_GetMaxLength(This,pszName,piMaxNameLen) (This)->lpVtbl->GetMaxLength(This,pszName,piMaxNameLen)
   17484 #else
   17485 /*** IUnknown methods ***/
   17486 static FORCEINLINE HRESULT IItemNameLimits_QueryInterface(IItemNameLimits* This,REFIID riid,void **ppvObject) {
   17487     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   17488 }
   17489 static FORCEINLINE ULONG IItemNameLimits_AddRef(IItemNameLimits* This) {
   17490     return This->lpVtbl->AddRef(This);
   17491 }
   17492 static FORCEINLINE ULONG IItemNameLimits_Release(IItemNameLimits* This) {
   17493     return This->lpVtbl->Release(This);
   17494 }
   17495 /*** IItemNameLimits methods ***/
   17496 static FORCEINLINE HRESULT IItemNameLimits_GetValidCharacters(IItemNameLimits* This,LPWSTR *ppwszValidChars,LPWSTR *ppwszInvalidChars) {
   17497     return This->lpVtbl->GetValidCharacters(This,ppwszValidChars,ppwszInvalidChars);
   17498 }
   17499 static FORCEINLINE HRESULT IItemNameLimits_GetMaxLength(IItemNameLimits* This,LPCWSTR pszName,int *piMaxNameLen) {
   17500     return This->lpVtbl->GetMaxLength(This,pszName,piMaxNameLen);
   17501 }
   17502 #endif
   17503 #endif
   17504 
   17505 #endif
   17506 
   17507 HRESULT STDMETHODCALLTYPE IItemNameLimits_GetValidCharacters_Proxy(
   17508     IItemNameLimits* This,
   17509     LPWSTR *ppwszValidChars,
   17510     LPWSTR *ppwszInvalidChars);
   17511 void __RPC_STUB IItemNameLimits_GetValidCharacters_Stub(
   17512     IRpcStubBuffer* This,
   17513     IRpcChannelBuffer* pRpcChannelBuffer,
   17514     PRPC_MESSAGE pRpcMessage,
   17515     DWORD* pdwStubPhase);
   17516 HRESULT STDMETHODCALLTYPE IItemNameLimits_GetMaxLength_Proxy(
   17517     IItemNameLimits* This,
   17518     LPCWSTR pszName,
   17519     int *piMaxNameLen);
   17520 void __RPC_STUB IItemNameLimits_GetMaxLength_Stub(
   17521     IRpcStubBuffer* This,
   17522     IRpcChannelBuffer* pRpcChannelBuffer,
   17523     PRPC_MESSAGE pRpcMessage,
   17524     DWORD* pdwStubPhase);
   17525 
   17526 #endif  /* __IItemNameLimits_INTERFACE_DEFINED__ */
   17527 
   17528 
   17529 #if NTDDI_VERSION >= NTDDI_VISTA
   17530 #ifndef __ICondition_FWD_DEFINED__
   17531 #define __ICondition_FWD_DEFINED__
   17532 typedef interface ICondition ICondition;
   17533 #endif
   17534 
   17535 
   17536 /*****************************************************************************
   17537  * ISearchFolderItemFactory interface
   17538  */
   17539 #ifndef __ISearchFolderItemFactory_INTERFACE_DEFINED__
   17540 #define __ISearchFolderItemFactory_INTERFACE_DEFINED__
   17541 
   17542 DEFINE_GUID(IID_ISearchFolderItemFactory, 0xa0ffbc28, 0x5482, 0x4366, 0xbe,0x27, 0x3e,0x81,0xe7,0x8e,0x06,0xc2);
   17543 #if defined(__cplusplus) && !defined(CINTERFACE)
   17544 MIDL_INTERFACE("a0ffbc28-5482-4366-be27-3e81e78e06c2")
   17545 ISearchFolderItemFactory : public IUnknown
   17546 {
   17547     virtual HRESULT STDMETHODCALLTYPE SetDisplayName(
   17548         LPCWSTR pszDisplayName) = 0;
   17549 
   17550     virtual HRESULT STDMETHODCALLTYPE SetFolderTypeID(
   17551         FOLDERTYPEID ftid) = 0;
   17552 
   17553     virtual HRESULT STDMETHODCALLTYPE SetFolderLogicalViewMode(
   17554         FOLDERLOGICALVIEWMODE flvm) = 0;
   17555 
   17556     virtual HRESULT STDMETHODCALLTYPE SetIconSize(
   17557         int iIconSize) = 0;
   17558 
   17559     virtual HRESULT STDMETHODCALLTYPE SetVisibleColumns(
   17560         UINT cVisibleColumns,
   17561         PROPERTYKEY *rgKey) = 0;
   17562 
   17563     virtual HRESULT STDMETHODCALLTYPE SetSortColumns(
   17564         UINT cSortColumns,
   17565         SORTCOLUMN *rgSortColumns) = 0;
   17566 
   17567     virtual HRESULT STDMETHODCALLTYPE SetGroupColumn(
   17568         REFPROPERTYKEY keyGroup) = 0;
   17569 
   17570     virtual HRESULT STDMETHODCALLTYPE SetStacks(
   17571         UINT cStackKeys,
   17572         PROPERTYKEY *rgStackKeys) = 0;
   17573 
   17574     virtual HRESULT STDMETHODCALLTYPE SetScope(
   17575         IShellItemArray *psiaScope) = 0;
   17576 
   17577     virtual HRESULT STDMETHODCALLTYPE SetCondition(
   17578         ICondition *pCondition) = 0;
   17579 
   17580     virtual HRESULT STDMETHODCALLTYPE GetShellItem(
   17581         REFIID riid,
   17582         void **ppv) = 0;
   17583 
   17584     virtual HRESULT STDMETHODCALLTYPE GetIDList(
   17585         PIDLIST_ABSOLUTE *ppidl) = 0;
   17586 
   17587 };
   17588 #ifdef __CRT_UUID_DECL
   17589 __CRT_UUID_DECL(ISearchFolderItemFactory, 0xa0ffbc28, 0x5482, 0x4366, 0xbe,0x27, 0x3e,0x81,0xe7,0x8e,0x06,0xc2)
   17590 #endif
   17591 #else
   17592 typedef struct ISearchFolderItemFactoryVtbl {
   17593     BEGIN_INTERFACE
   17594 
   17595     /*** IUnknown methods ***/
   17596     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   17597         ISearchFolderItemFactory* This,
   17598         REFIID riid,
   17599         void **ppvObject);
   17600 
   17601     ULONG (STDMETHODCALLTYPE *AddRef)(
   17602         ISearchFolderItemFactory* This);
   17603 
   17604     ULONG (STDMETHODCALLTYPE *Release)(
   17605         ISearchFolderItemFactory* This);
   17606 
   17607     /*** ISearchFolderItemFactory methods ***/
   17608     HRESULT (STDMETHODCALLTYPE *SetDisplayName)(
   17609         ISearchFolderItemFactory* This,
   17610         LPCWSTR pszDisplayName);
   17611 
   17612     HRESULT (STDMETHODCALLTYPE *SetFolderTypeID)(
   17613         ISearchFolderItemFactory* This,
   17614         FOLDERTYPEID ftid);
   17615 
   17616     HRESULT (STDMETHODCALLTYPE *SetFolderLogicalViewMode)(
   17617         ISearchFolderItemFactory* This,
   17618         FOLDERLOGICALVIEWMODE flvm);
   17619 
   17620     HRESULT (STDMETHODCALLTYPE *SetIconSize)(
   17621         ISearchFolderItemFactory* This,
   17622         int iIconSize);
   17623 
   17624     HRESULT (STDMETHODCALLTYPE *SetVisibleColumns)(
   17625         ISearchFolderItemFactory* This,
   17626         UINT cVisibleColumns,
   17627         PROPERTYKEY *rgKey);
   17628 
   17629     HRESULT (STDMETHODCALLTYPE *SetSortColumns)(
   17630         ISearchFolderItemFactory* This,
   17631         UINT cSortColumns,
   17632         SORTCOLUMN *rgSortColumns);
   17633 
   17634     HRESULT (STDMETHODCALLTYPE *SetGroupColumn)(
   17635         ISearchFolderItemFactory* This,
   17636         REFPROPERTYKEY keyGroup);
   17637 
   17638     HRESULT (STDMETHODCALLTYPE *SetStacks)(
   17639         ISearchFolderItemFactory* This,
   17640         UINT cStackKeys,
   17641         PROPERTYKEY *rgStackKeys);
   17642 
   17643     HRESULT (STDMETHODCALLTYPE *SetScope)(
   17644         ISearchFolderItemFactory* This,
   17645         IShellItemArray *psiaScope);
   17646 
   17647     HRESULT (STDMETHODCALLTYPE *SetCondition)(
   17648         ISearchFolderItemFactory* This,
   17649         ICondition *pCondition);
   17650 
   17651     HRESULT (STDMETHODCALLTYPE *GetShellItem)(
   17652         ISearchFolderItemFactory* This,
   17653         REFIID riid,
   17654         void **ppv);
   17655 
   17656     HRESULT (STDMETHODCALLTYPE *GetIDList)(
   17657         ISearchFolderItemFactory* This,
   17658         PIDLIST_ABSOLUTE *ppidl);
   17659 
   17660     END_INTERFACE
   17661 } ISearchFolderItemFactoryVtbl;
   17662 interface ISearchFolderItemFactory {
   17663     CONST_VTBL ISearchFolderItemFactoryVtbl* lpVtbl;
   17664 };
   17665 
   17666 #ifdef COBJMACROS
   17667 #ifndef WIDL_C_INLINE_WRAPPERS
   17668 /*** IUnknown methods ***/
   17669 #define ISearchFolderItemFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   17670 #define ISearchFolderItemFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
   17671 #define ISearchFolderItemFactory_Release(This) (This)->lpVtbl->Release(This)
   17672 /*** ISearchFolderItemFactory methods ***/
   17673 #define ISearchFolderItemFactory_SetDisplayName(This,pszDisplayName) (This)->lpVtbl->SetDisplayName(This,pszDisplayName)
   17674 #define ISearchFolderItemFactory_SetFolderTypeID(This,ftid) (This)->lpVtbl->SetFolderTypeID(This,ftid)
   17675 #define ISearchFolderItemFactory_SetFolderLogicalViewMode(This,flvm) (This)->lpVtbl->SetFolderLogicalViewMode(This,flvm)
   17676 #define ISearchFolderItemFactory_SetIconSize(This,iIconSize) (This)->lpVtbl->SetIconSize(This,iIconSize)
   17677 #define ISearchFolderItemFactory_SetVisibleColumns(This,cVisibleColumns,rgKey) (This)->lpVtbl->SetVisibleColumns(This,cVisibleColumns,rgKey)
   17678 #define ISearchFolderItemFactory_SetSortColumns(This,cSortColumns,rgSortColumns) (This)->lpVtbl->SetSortColumns(This,cSortColumns,rgSortColumns)
   17679 #define ISearchFolderItemFactory_SetGroupColumn(This,keyGroup) (This)->lpVtbl->SetGroupColumn(This,keyGroup)
   17680 #define ISearchFolderItemFactory_SetStacks(This,cStackKeys,rgStackKeys) (This)->lpVtbl->SetStacks(This,cStackKeys,rgStackKeys)
   17681 #define ISearchFolderItemFactory_SetScope(This,psiaScope) (This)->lpVtbl->SetScope(This,psiaScope)
   17682 #define ISearchFolderItemFactory_SetCondition(This,pCondition) (This)->lpVtbl->SetCondition(This,pCondition)
   17683 #define ISearchFolderItemFactory_GetShellItem(This,riid,ppv) (This)->lpVtbl->GetShellItem(This,riid,ppv)
   17684 #define ISearchFolderItemFactory_GetIDList(This,ppidl) (This)->lpVtbl->GetIDList(This,ppidl)
   17685 #else
   17686 /*** IUnknown methods ***/
   17687 static FORCEINLINE HRESULT ISearchFolderItemFactory_QueryInterface(ISearchFolderItemFactory* This,REFIID riid,void **ppvObject) {
   17688     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   17689 }
   17690 static FORCEINLINE ULONG ISearchFolderItemFactory_AddRef(ISearchFolderItemFactory* This) {
   17691     return This->lpVtbl->AddRef(This);
   17692 }
   17693 static FORCEINLINE ULONG ISearchFolderItemFactory_Release(ISearchFolderItemFactory* This) {
   17694     return This->lpVtbl->Release(This);
   17695 }
   17696 /*** ISearchFolderItemFactory methods ***/
   17697 static FORCEINLINE HRESULT ISearchFolderItemFactory_SetDisplayName(ISearchFolderItemFactory* This,LPCWSTR pszDisplayName) {
   17698     return This->lpVtbl->SetDisplayName(This,pszDisplayName);
   17699 }
   17700 static FORCEINLINE HRESULT ISearchFolderItemFactory_SetFolderTypeID(ISearchFolderItemFactory* This,FOLDERTYPEID ftid) {
   17701     return This->lpVtbl->SetFolderTypeID(This,ftid);
   17702 }
   17703 static FORCEINLINE HRESULT ISearchFolderItemFactory_SetFolderLogicalViewMode(ISearchFolderItemFactory* This,FOLDERLOGICALVIEWMODE flvm) {
   17704     return This->lpVtbl->SetFolderLogicalViewMode(This,flvm);
   17705 }
   17706 static FORCEINLINE HRESULT ISearchFolderItemFactory_SetIconSize(ISearchFolderItemFactory* This,int iIconSize) {
   17707     return This->lpVtbl->SetIconSize(This,iIconSize);
   17708 }
   17709 static FORCEINLINE HRESULT ISearchFolderItemFactory_SetVisibleColumns(ISearchFolderItemFactory* This,UINT cVisibleColumns,PROPERTYKEY *rgKey) {
   17710     return This->lpVtbl->SetVisibleColumns(This,cVisibleColumns,rgKey);
   17711 }
   17712 static FORCEINLINE HRESULT ISearchFolderItemFactory_SetSortColumns(ISearchFolderItemFactory* This,UINT cSortColumns,SORTCOLUMN *rgSortColumns) {
   17713     return This->lpVtbl->SetSortColumns(This,cSortColumns,rgSortColumns);
   17714 }
   17715 static FORCEINLINE HRESULT ISearchFolderItemFactory_SetGroupColumn(ISearchFolderItemFactory* This,REFPROPERTYKEY keyGroup) {
   17716     return This->lpVtbl->SetGroupColumn(This,keyGroup);
   17717 }
   17718 static FORCEINLINE HRESULT ISearchFolderItemFactory_SetStacks(ISearchFolderItemFactory* This,UINT cStackKeys,PROPERTYKEY *rgStackKeys) {
   17719     return This->lpVtbl->SetStacks(This,cStackKeys,rgStackKeys);
   17720 }
   17721 static FORCEINLINE HRESULT ISearchFolderItemFactory_SetScope(ISearchFolderItemFactory* This,IShellItemArray *psiaScope) {
   17722     return This->lpVtbl->SetScope(This,psiaScope);
   17723 }
   17724 static FORCEINLINE HRESULT ISearchFolderItemFactory_SetCondition(ISearchFolderItemFactory* This,ICondition *pCondition) {
   17725     return This->lpVtbl->SetCondition(This,pCondition);
   17726 }
   17727 static FORCEINLINE HRESULT ISearchFolderItemFactory_GetShellItem(ISearchFolderItemFactory* This,REFIID riid,void **ppv) {
   17728     return This->lpVtbl->GetShellItem(This,riid,ppv);
   17729 }
   17730 static FORCEINLINE HRESULT ISearchFolderItemFactory_GetIDList(ISearchFolderItemFactory* This,PIDLIST_ABSOLUTE *ppidl) {
   17731     return This->lpVtbl->GetIDList(This,ppidl);
   17732 }
   17733 #endif
   17734 #endif
   17735 
   17736 #endif
   17737 
   17738 HRESULT STDMETHODCALLTYPE ISearchFolderItemFactory_SetDisplayName_Proxy(
   17739     ISearchFolderItemFactory* This,
   17740     LPCWSTR pszDisplayName);
   17741 void __RPC_STUB ISearchFolderItemFactory_SetDisplayName_Stub(
   17742     IRpcStubBuffer* This,
   17743     IRpcChannelBuffer* pRpcChannelBuffer,
   17744     PRPC_MESSAGE pRpcMessage,
   17745     DWORD* pdwStubPhase);
   17746 HRESULT STDMETHODCALLTYPE ISearchFolderItemFactory_SetFolderTypeID_Proxy(
   17747     ISearchFolderItemFactory* This,
   17748     FOLDERTYPEID ftid);
   17749 void __RPC_STUB ISearchFolderItemFactory_SetFolderTypeID_Stub(
   17750     IRpcStubBuffer* This,
   17751     IRpcChannelBuffer* pRpcChannelBuffer,
   17752     PRPC_MESSAGE pRpcMessage,
   17753     DWORD* pdwStubPhase);
   17754 HRESULT STDMETHODCALLTYPE ISearchFolderItemFactory_SetFolderLogicalViewMode_Proxy(
   17755     ISearchFolderItemFactory* This,
   17756     FOLDERLOGICALVIEWMODE flvm);
   17757 void __RPC_STUB ISearchFolderItemFactory_SetFolderLogicalViewMode_Stub(
   17758     IRpcStubBuffer* This,
   17759     IRpcChannelBuffer* pRpcChannelBuffer,
   17760     PRPC_MESSAGE pRpcMessage,
   17761     DWORD* pdwStubPhase);
   17762 HRESULT STDMETHODCALLTYPE ISearchFolderItemFactory_SetIconSize_Proxy(
   17763     ISearchFolderItemFactory* This,
   17764     int iIconSize);
   17765 void __RPC_STUB ISearchFolderItemFactory_SetIconSize_Stub(
   17766     IRpcStubBuffer* This,
   17767     IRpcChannelBuffer* pRpcChannelBuffer,
   17768     PRPC_MESSAGE pRpcMessage,
   17769     DWORD* pdwStubPhase);
   17770 HRESULT STDMETHODCALLTYPE ISearchFolderItemFactory_SetVisibleColumns_Proxy(
   17771     ISearchFolderItemFactory* This,
   17772     UINT cVisibleColumns,
   17773     PROPERTYKEY *rgKey);
   17774 void __RPC_STUB ISearchFolderItemFactory_SetVisibleColumns_Stub(
   17775     IRpcStubBuffer* This,
   17776     IRpcChannelBuffer* pRpcChannelBuffer,
   17777     PRPC_MESSAGE pRpcMessage,
   17778     DWORD* pdwStubPhase);
   17779 HRESULT STDMETHODCALLTYPE ISearchFolderItemFactory_SetSortColumns_Proxy(
   17780     ISearchFolderItemFactory* This,
   17781     UINT cSortColumns,
   17782     SORTCOLUMN *rgSortColumns);
   17783 void __RPC_STUB ISearchFolderItemFactory_SetSortColumns_Stub(
   17784     IRpcStubBuffer* This,
   17785     IRpcChannelBuffer* pRpcChannelBuffer,
   17786     PRPC_MESSAGE pRpcMessage,
   17787     DWORD* pdwStubPhase);
   17788 HRESULT STDMETHODCALLTYPE ISearchFolderItemFactory_SetGroupColumn_Proxy(
   17789     ISearchFolderItemFactory* This,
   17790     REFPROPERTYKEY keyGroup);
   17791 void __RPC_STUB ISearchFolderItemFactory_SetGroupColumn_Stub(
   17792     IRpcStubBuffer* This,
   17793     IRpcChannelBuffer* pRpcChannelBuffer,
   17794     PRPC_MESSAGE pRpcMessage,
   17795     DWORD* pdwStubPhase);
   17796 HRESULT STDMETHODCALLTYPE ISearchFolderItemFactory_SetStacks_Proxy(
   17797     ISearchFolderItemFactory* This,
   17798     UINT cStackKeys,
   17799     PROPERTYKEY *rgStackKeys);
   17800 void __RPC_STUB ISearchFolderItemFactory_SetStacks_Stub(
   17801     IRpcStubBuffer* This,
   17802     IRpcChannelBuffer* pRpcChannelBuffer,
   17803     PRPC_MESSAGE pRpcMessage,
   17804     DWORD* pdwStubPhase);
   17805 HRESULT STDMETHODCALLTYPE ISearchFolderItemFactory_SetScope_Proxy(
   17806     ISearchFolderItemFactory* This,
   17807     IShellItemArray *psiaScope);
   17808 void __RPC_STUB ISearchFolderItemFactory_SetScope_Stub(
   17809     IRpcStubBuffer* This,
   17810     IRpcChannelBuffer* pRpcChannelBuffer,
   17811     PRPC_MESSAGE pRpcMessage,
   17812     DWORD* pdwStubPhase);
   17813 HRESULT STDMETHODCALLTYPE ISearchFolderItemFactory_SetCondition_Proxy(
   17814     ISearchFolderItemFactory* This,
   17815     ICondition *pCondition);
   17816 void __RPC_STUB ISearchFolderItemFactory_SetCondition_Stub(
   17817     IRpcStubBuffer* This,
   17818     IRpcChannelBuffer* pRpcChannelBuffer,
   17819     PRPC_MESSAGE pRpcMessage,
   17820     DWORD* pdwStubPhase);
   17821 HRESULT STDMETHODCALLTYPE ISearchFolderItemFactory_GetShellItem_Proxy(
   17822     ISearchFolderItemFactory* This,
   17823     REFIID riid,
   17824     void **ppv);
   17825 void __RPC_STUB ISearchFolderItemFactory_GetShellItem_Stub(
   17826     IRpcStubBuffer* This,
   17827     IRpcChannelBuffer* pRpcChannelBuffer,
   17828     PRPC_MESSAGE pRpcMessage,
   17829     DWORD* pdwStubPhase);
   17830 HRESULT STDMETHODCALLTYPE ISearchFolderItemFactory_GetIDList_Proxy(
   17831     ISearchFolderItemFactory* This,
   17832     PIDLIST_ABSOLUTE *ppidl);
   17833 void __RPC_STUB ISearchFolderItemFactory_GetIDList_Stub(
   17834     IRpcStubBuffer* This,
   17835     IRpcChannelBuffer* pRpcChannelBuffer,
   17836     PRPC_MESSAGE pRpcMessage,
   17837     DWORD* pdwStubPhase);
   17838 
   17839 #endif  /* __ISearchFolderItemFactory_INTERFACE_DEFINED__ */
   17840 
   17841 #endif
   17842 
   17843 #define IEI_PRIORITY_MAX ITSAT_MAX_PRIORITY
   17844 #define IEI_PRIORITY_MIN ITSAT_MIN_PRIORITY
   17845 #define IEIT_PRIORITY_NORMAL ITSAT_DEFAULT_PRIORITY
   17846 
   17847 #define IEIFLAG_ASYNC 0x0001
   17848 #define IEIFLAG_CACHE 0x0002
   17849 #define IEIFLAG_ASPECT 0x0004
   17850 #define IEIFLAG_OFFLINE 0x0008
   17851 #define IEIFLAG_GLEAM 0x0010
   17852 #define IEIFLAG_SCREEN 0x0020
   17853 #define IEIFLAG_ORIGSIZE 0x0040
   17854 #define IEIFLAG_NOSTAMP 0x0080
   17855 #define IEIFLAG_NOBORDER 0x0100
   17856 #define IEIFLAG_QUALITY 0x0200
   17857 #define IEIFLAG_REFRESH 0x0400
   17858 
   17859 /*****************************************************************************
   17860  * IExtractImage interface
   17861  */
   17862 #ifndef __IExtractImage_INTERFACE_DEFINED__
   17863 #define __IExtractImage_INTERFACE_DEFINED__
   17864 
   17865 DEFINE_GUID(IID_IExtractImage, 0xbb2e617c, 0x0920, 0x11d1, 0x9a,0x0b, 0x00,0xc0,0x4f,0xc2,0xd6,0xc1);
   17866 #if defined(__cplusplus) && !defined(CINTERFACE)
   17867 MIDL_INTERFACE("bb2e617c-0920-11d1-9a0b-00c04fc2d6c1")
   17868 IExtractImage : public IUnknown
   17869 {
   17870     virtual HRESULT STDMETHODCALLTYPE GetLocation(
   17871         LPWSTR pszPathBuffer,
   17872         DWORD cch,
   17873         DWORD *pdwPriority,
   17874         const SIZE *prgSize,
   17875         DWORD dwRecClrDepth,
   17876         DWORD *pdwFlags) = 0;
   17877 
   17878     virtual HRESULT STDMETHODCALLTYPE Extract(
   17879         HBITMAP *phBmpThumbnail) = 0;
   17880 
   17881 };
   17882 #ifdef __CRT_UUID_DECL
   17883 __CRT_UUID_DECL(IExtractImage, 0xbb2e617c, 0x0920, 0x11d1, 0x9a,0x0b, 0x00,0xc0,0x4f,0xc2,0xd6,0xc1)
   17884 #endif
   17885 #else
   17886 typedef struct IExtractImageVtbl {
   17887     BEGIN_INTERFACE
   17888 
   17889     /*** IUnknown methods ***/
   17890     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   17891         IExtractImage* This,
   17892         REFIID riid,
   17893         void **ppvObject);
   17894 
   17895     ULONG (STDMETHODCALLTYPE *AddRef)(
   17896         IExtractImage* This);
   17897 
   17898     ULONG (STDMETHODCALLTYPE *Release)(
   17899         IExtractImage* This);
   17900 
   17901     /*** IExtractImage methods ***/
   17902     HRESULT (STDMETHODCALLTYPE *GetLocation)(
   17903         IExtractImage* This,
   17904         LPWSTR pszPathBuffer,
   17905         DWORD cch,
   17906         DWORD *pdwPriority,
   17907         const SIZE *prgSize,
   17908         DWORD dwRecClrDepth,
   17909         DWORD *pdwFlags);
   17910 
   17911     HRESULT (STDMETHODCALLTYPE *Extract)(
   17912         IExtractImage* This,
   17913         HBITMAP *phBmpThumbnail);
   17914 
   17915     END_INTERFACE
   17916 } IExtractImageVtbl;
   17917 interface IExtractImage {
   17918     CONST_VTBL IExtractImageVtbl* lpVtbl;
   17919 };
   17920 
   17921 #ifdef COBJMACROS
   17922 #ifndef WIDL_C_INLINE_WRAPPERS
   17923 /*** IUnknown methods ***/
   17924 #define IExtractImage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   17925 #define IExtractImage_AddRef(This) (This)->lpVtbl->AddRef(This)
   17926 #define IExtractImage_Release(This) (This)->lpVtbl->Release(This)
   17927 /*** IExtractImage methods ***/
   17928 #define IExtractImage_GetLocation(This,pszPathBuffer,cch,pdwPriority,prgSize,dwRecClrDepth,pdwFlags) (This)->lpVtbl->GetLocation(This,pszPathBuffer,cch,pdwPriority,prgSize,dwRecClrDepth,pdwFlags)
   17929 #define IExtractImage_Extract(This,phBmpThumbnail) (This)->lpVtbl->Extract(This,phBmpThumbnail)
   17930 #else
   17931 /*** IUnknown methods ***/
   17932 static FORCEINLINE HRESULT IExtractImage_QueryInterface(IExtractImage* This,REFIID riid,void **ppvObject) {
   17933     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   17934 }
   17935 static FORCEINLINE ULONG IExtractImage_AddRef(IExtractImage* This) {
   17936     return This->lpVtbl->AddRef(This);
   17937 }
   17938 static FORCEINLINE ULONG IExtractImage_Release(IExtractImage* This) {
   17939     return This->lpVtbl->Release(This);
   17940 }
   17941 /*** IExtractImage methods ***/
   17942 static FORCEINLINE HRESULT IExtractImage_GetLocation(IExtractImage* This,LPWSTR pszPathBuffer,DWORD cch,DWORD *pdwPriority,const SIZE *prgSize,DWORD dwRecClrDepth,DWORD *pdwFlags) {
   17943     return This->lpVtbl->GetLocation(This,pszPathBuffer,cch,pdwPriority,prgSize,dwRecClrDepth,pdwFlags);
   17944 }
   17945 static FORCEINLINE HRESULT IExtractImage_Extract(IExtractImage* This,HBITMAP *phBmpThumbnail) {
   17946     return This->lpVtbl->Extract(This,phBmpThumbnail);
   17947 }
   17948 #endif
   17949 #endif
   17950 
   17951 #endif
   17952 
   17953 HRESULT STDMETHODCALLTYPE IExtractImage_GetLocation_Proxy(
   17954     IExtractImage* This,
   17955     LPWSTR pszPathBuffer,
   17956     DWORD cch,
   17957     DWORD *pdwPriority,
   17958     const SIZE *prgSize,
   17959     DWORD dwRecClrDepth,
   17960     DWORD *pdwFlags);
   17961 void __RPC_STUB IExtractImage_GetLocation_Stub(
   17962     IRpcStubBuffer* This,
   17963     IRpcChannelBuffer* pRpcChannelBuffer,
   17964     PRPC_MESSAGE pRpcMessage,
   17965     DWORD* pdwStubPhase);
   17966 HRESULT STDMETHODCALLTYPE IExtractImage_Extract_Proxy(
   17967     IExtractImage* This,
   17968     HBITMAP *phBmpThumbnail);
   17969 void __RPC_STUB IExtractImage_Extract_Stub(
   17970     IRpcStubBuffer* This,
   17971     IRpcChannelBuffer* pRpcChannelBuffer,
   17972     PRPC_MESSAGE pRpcMessage,
   17973     DWORD* pdwStubPhase);
   17974 
   17975 #endif  /* __IExtractImage_INTERFACE_DEFINED__ */
   17976 
   17977 typedef IExtractImage *LPEXTRACTIMAGE;
   17978 
   17979 /*****************************************************************************
   17980  * IExtractImage2 interface
   17981  */
   17982 #ifndef __IExtractImage2_INTERFACE_DEFINED__
   17983 #define __IExtractImage2_INTERFACE_DEFINED__
   17984 
   17985 DEFINE_GUID(IID_IExtractImage2, 0x953bb1ee, 0x93b4, 0x11d1, 0x98,0xa3, 0x00,0xc0,0x4f,0xb6,0x87,0xda);
   17986 #if defined(__cplusplus) && !defined(CINTERFACE)
   17987 MIDL_INTERFACE("953bb1ee-93b4-11d1-98a3-00c04fb687da")
   17988 IExtractImage2 : public IExtractImage
   17989 {
   17990     virtual HRESULT STDMETHODCALLTYPE GetDateStamp(
   17991         FILETIME *pDateStamp) = 0;
   17992 
   17993 };
   17994 #ifdef __CRT_UUID_DECL
   17995 __CRT_UUID_DECL(IExtractImage2, 0x953bb1ee, 0x93b4, 0x11d1, 0x98,0xa3, 0x00,0xc0,0x4f,0xb6,0x87,0xda)
   17996 #endif
   17997 #else
   17998 typedef struct IExtractImage2Vtbl {
   17999     BEGIN_INTERFACE
   18000 
   18001     /*** IUnknown methods ***/
   18002     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   18003         IExtractImage2* This,
   18004         REFIID riid,
   18005         void **ppvObject);
   18006 
   18007     ULONG (STDMETHODCALLTYPE *AddRef)(
   18008         IExtractImage2* This);
   18009 
   18010     ULONG (STDMETHODCALLTYPE *Release)(
   18011         IExtractImage2* This);
   18012 
   18013     /*** IExtractImage methods ***/
   18014     HRESULT (STDMETHODCALLTYPE *GetLocation)(
   18015         IExtractImage2* This,
   18016         LPWSTR pszPathBuffer,
   18017         DWORD cch,
   18018         DWORD *pdwPriority,
   18019         const SIZE *prgSize,
   18020         DWORD dwRecClrDepth,
   18021         DWORD *pdwFlags);
   18022 
   18023     HRESULT (STDMETHODCALLTYPE *Extract)(
   18024         IExtractImage2* This,
   18025         HBITMAP *phBmpThumbnail);
   18026 
   18027     /*** IExtractImage2 methods ***/
   18028     HRESULT (STDMETHODCALLTYPE *GetDateStamp)(
   18029         IExtractImage2* This,
   18030         FILETIME *pDateStamp);
   18031 
   18032     END_INTERFACE
   18033 } IExtractImage2Vtbl;
   18034 interface IExtractImage2 {
   18035     CONST_VTBL IExtractImage2Vtbl* lpVtbl;
   18036 };
   18037 
   18038 #ifdef COBJMACROS
   18039 #ifndef WIDL_C_INLINE_WRAPPERS
   18040 /*** IUnknown methods ***/
   18041 #define IExtractImage2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   18042 #define IExtractImage2_AddRef(This) (This)->lpVtbl->AddRef(This)
   18043 #define IExtractImage2_Release(This) (This)->lpVtbl->Release(This)
   18044 /*** IExtractImage methods ***/
   18045 #define IExtractImage2_GetLocation(This,pszPathBuffer,cch,pdwPriority,prgSize,dwRecClrDepth,pdwFlags) (This)->lpVtbl->GetLocation(This,pszPathBuffer,cch,pdwPriority,prgSize,dwRecClrDepth,pdwFlags)
   18046 #define IExtractImage2_Extract(This,phBmpThumbnail) (This)->lpVtbl->Extract(This,phBmpThumbnail)
   18047 /*** IExtractImage2 methods ***/
   18048 #define IExtractImage2_GetDateStamp(This,pDateStamp) (This)->lpVtbl->GetDateStamp(This,pDateStamp)
   18049 #else
   18050 /*** IUnknown methods ***/
   18051 static FORCEINLINE HRESULT IExtractImage2_QueryInterface(IExtractImage2* This,REFIID riid,void **ppvObject) {
   18052     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   18053 }
   18054 static FORCEINLINE ULONG IExtractImage2_AddRef(IExtractImage2* This) {
   18055     return This->lpVtbl->AddRef(This);
   18056 }
   18057 static FORCEINLINE ULONG IExtractImage2_Release(IExtractImage2* This) {
   18058     return This->lpVtbl->Release(This);
   18059 }
   18060 /*** IExtractImage methods ***/
   18061 static FORCEINLINE HRESULT IExtractImage2_GetLocation(IExtractImage2* This,LPWSTR pszPathBuffer,DWORD cch,DWORD *pdwPriority,const SIZE *prgSize,DWORD dwRecClrDepth,DWORD *pdwFlags) {
   18062     return This->lpVtbl->GetLocation(This,pszPathBuffer,cch,pdwPriority,prgSize,dwRecClrDepth,pdwFlags);
   18063 }
   18064 static FORCEINLINE HRESULT IExtractImage2_Extract(IExtractImage2* This,HBITMAP *phBmpThumbnail) {
   18065     return This->lpVtbl->Extract(This,phBmpThumbnail);
   18066 }
   18067 /*** IExtractImage2 methods ***/
   18068 static FORCEINLINE HRESULT IExtractImage2_GetDateStamp(IExtractImage2* This,FILETIME *pDateStamp) {
   18069     return This->lpVtbl->GetDateStamp(This,pDateStamp);
   18070 }
   18071 #endif
   18072 #endif
   18073 
   18074 #endif
   18075 
   18076 HRESULT STDMETHODCALLTYPE IExtractImage2_GetDateStamp_Proxy(
   18077     IExtractImage2* This,
   18078     FILETIME *pDateStamp);
   18079 void __RPC_STUB IExtractImage2_GetDateStamp_Stub(
   18080     IRpcStubBuffer* This,
   18081     IRpcChannelBuffer* pRpcChannelBuffer,
   18082     PRPC_MESSAGE pRpcMessage,
   18083     DWORD* pdwStubPhase);
   18084 
   18085 #endif  /* __IExtractImage2_INTERFACE_DEFINED__ */
   18086 
   18087 typedef IExtractImage2 *LPEXTRACTIMAGE2;
   18088 
   18089 /*****************************************************************************
   18090  * IThumbnailHandlerFactory interface
   18091  */
   18092 #ifndef __IThumbnailHandlerFactory_INTERFACE_DEFINED__
   18093 #define __IThumbnailHandlerFactory_INTERFACE_DEFINED__
   18094 
   18095 DEFINE_GUID(IID_IThumbnailHandlerFactory, 0xe35b4b2e, 0x00da, 0x4bc1, 0x9f,0x13, 0x38,0xbc,0x11,0xf5,0xd4,0x17);
   18096 #if defined(__cplusplus) && !defined(CINTERFACE)
   18097 MIDL_INTERFACE("e35b4b2e-00da-4bc1-9f13-38bc11f5d417")
   18098 IThumbnailHandlerFactory : public IUnknown
   18099 {
   18100     virtual HRESULT STDMETHODCALLTYPE GetThumbnailHandler(
   18101         PCUITEMID_CHILD pidlChild,
   18102         IBindCtx *pbc,
   18103         REFIID riid,
   18104         void **ppv) = 0;
   18105 
   18106 };
   18107 #ifdef __CRT_UUID_DECL
   18108 __CRT_UUID_DECL(IThumbnailHandlerFactory, 0xe35b4b2e, 0x00da, 0x4bc1, 0x9f,0x13, 0x38,0xbc,0x11,0xf5,0xd4,0x17)
   18109 #endif
   18110 #else
   18111 typedef struct IThumbnailHandlerFactoryVtbl {
   18112     BEGIN_INTERFACE
   18113 
   18114     /*** IUnknown methods ***/
   18115     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   18116         IThumbnailHandlerFactory* This,
   18117         REFIID riid,
   18118         void **ppvObject);
   18119 
   18120     ULONG (STDMETHODCALLTYPE *AddRef)(
   18121         IThumbnailHandlerFactory* This);
   18122 
   18123     ULONG (STDMETHODCALLTYPE *Release)(
   18124         IThumbnailHandlerFactory* This);
   18125 
   18126     /*** IThumbnailHandlerFactory methods ***/
   18127     HRESULT (STDMETHODCALLTYPE *GetThumbnailHandler)(
   18128         IThumbnailHandlerFactory* This,
   18129         PCUITEMID_CHILD pidlChild,
   18130         IBindCtx *pbc,
   18131         REFIID riid,
   18132         void **ppv);
   18133 
   18134     END_INTERFACE
   18135 } IThumbnailHandlerFactoryVtbl;
   18136 interface IThumbnailHandlerFactory {
   18137     CONST_VTBL IThumbnailHandlerFactoryVtbl* lpVtbl;
   18138 };
   18139 
   18140 #ifdef COBJMACROS
   18141 #ifndef WIDL_C_INLINE_WRAPPERS
   18142 /*** IUnknown methods ***/
   18143 #define IThumbnailHandlerFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   18144 #define IThumbnailHandlerFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
   18145 #define IThumbnailHandlerFactory_Release(This) (This)->lpVtbl->Release(This)
   18146 /*** IThumbnailHandlerFactory methods ***/
   18147 #define IThumbnailHandlerFactory_GetThumbnailHandler(This,pidlChild,pbc,riid,ppv) (This)->lpVtbl->GetThumbnailHandler(This,pidlChild,pbc,riid,ppv)
   18148 #else
   18149 /*** IUnknown methods ***/
   18150 static FORCEINLINE HRESULT IThumbnailHandlerFactory_QueryInterface(IThumbnailHandlerFactory* This,REFIID riid,void **ppvObject) {
   18151     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   18152 }
   18153 static FORCEINLINE ULONG IThumbnailHandlerFactory_AddRef(IThumbnailHandlerFactory* This) {
   18154     return This->lpVtbl->AddRef(This);
   18155 }
   18156 static FORCEINLINE ULONG IThumbnailHandlerFactory_Release(IThumbnailHandlerFactory* This) {
   18157     return This->lpVtbl->Release(This);
   18158 }
   18159 /*** IThumbnailHandlerFactory methods ***/
   18160 static FORCEINLINE HRESULT IThumbnailHandlerFactory_GetThumbnailHandler(IThumbnailHandlerFactory* This,PCUITEMID_CHILD pidlChild,IBindCtx *pbc,REFIID riid,void **ppv) {
   18161     return This->lpVtbl->GetThumbnailHandler(This,pidlChild,pbc,riid,ppv);
   18162 }
   18163 #endif
   18164 #endif
   18165 
   18166 #endif
   18167 
   18168 HRESULT STDMETHODCALLTYPE IThumbnailHandlerFactory_GetThumbnailHandler_Proxy(
   18169     IThumbnailHandlerFactory* This,
   18170     PCUITEMID_CHILD pidlChild,
   18171     IBindCtx *pbc,
   18172     REFIID riid,
   18173     void **ppv);
   18174 void __RPC_STUB IThumbnailHandlerFactory_GetThumbnailHandler_Stub(
   18175     IRpcStubBuffer* This,
   18176     IRpcChannelBuffer* pRpcChannelBuffer,
   18177     PRPC_MESSAGE pRpcMessage,
   18178     DWORD* pdwStubPhase);
   18179 
   18180 #endif  /* __IThumbnailHandlerFactory_INTERFACE_DEFINED__ */
   18181 
   18182 
   18183 /*****************************************************************************
   18184  * IParentAndItem interface
   18185  */
   18186 #ifndef __IParentAndItem_INTERFACE_DEFINED__
   18187 #define __IParentAndItem_INTERFACE_DEFINED__
   18188 
   18189 DEFINE_GUID(IID_IParentAndItem, 0xb3a4b685, 0xb685, 0x4805, 0x99,0xd9, 0x5d,0xea,0xd2,0x87,0x32,0x36);
   18190 #if defined(__cplusplus) && !defined(CINTERFACE)
   18191 MIDL_INTERFACE("b3a4b685-b685-4805-99d9-5dead2873236")
   18192 IParentAndItem : public IUnknown
   18193 {
   18194     virtual HRESULT STDMETHODCALLTYPE SetParentAndItem(
   18195         PCIDLIST_ABSOLUTE pidlParent,
   18196         IShellFolder *psf,
   18197         PCUITEMID_CHILD pidlChild) = 0;
   18198 
   18199     virtual HRESULT STDMETHODCALLTYPE GetParentAndItem(
   18200         PIDLIST_ABSOLUTE *ppidlParent,
   18201         IShellFolder **ppsf,
   18202         PITEMID_CHILD *ppidlChild) = 0;
   18203 
   18204 };
   18205 #ifdef __CRT_UUID_DECL
   18206 __CRT_UUID_DECL(IParentAndItem, 0xb3a4b685, 0xb685, 0x4805, 0x99,0xd9, 0x5d,0xea,0xd2,0x87,0x32,0x36)
   18207 #endif
   18208 #else
   18209 typedef struct IParentAndItemVtbl {
   18210     BEGIN_INTERFACE
   18211 
   18212     /*** IUnknown methods ***/
   18213     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   18214         IParentAndItem* This,
   18215         REFIID riid,
   18216         void **ppvObject);
   18217 
   18218     ULONG (STDMETHODCALLTYPE *AddRef)(
   18219         IParentAndItem* This);
   18220 
   18221     ULONG (STDMETHODCALLTYPE *Release)(
   18222         IParentAndItem* This);
   18223 
   18224     /*** IParentAndItem methods ***/
   18225     HRESULT (STDMETHODCALLTYPE *SetParentAndItem)(
   18226         IParentAndItem* This,
   18227         PCIDLIST_ABSOLUTE pidlParent,
   18228         IShellFolder *psf,
   18229         PCUITEMID_CHILD pidlChild);
   18230 
   18231     HRESULT (STDMETHODCALLTYPE *GetParentAndItem)(
   18232         IParentAndItem* This,
   18233         PIDLIST_ABSOLUTE *ppidlParent,
   18234         IShellFolder **ppsf,
   18235         PITEMID_CHILD *ppidlChild);
   18236 
   18237     END_INTERFACE
   18238 } IParentAndItemVtbl;
   18239 interface IParentAndItem {
   18240     CONST_VTBL IParentAndItemVtbl* lpVtbl;
   18241 };
   18242 
   18243 #ifdef COBJMACROS
   18244 #ifndef WIDL_C_INLINE_WRAPPERS
   18245 /*** IUnknown methods ***/
   18246 #define IParentAndItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   18247 #define IParentAndItem_AddRef(This) (This)->lpVtbl->AddRef(This)
   18248 #define IParentAndItem_Release(This) (This)->lpVtbl->Release(This)
   18249 /*** IParentAndItem methods ***/
   18250 #define IParentAndItem_SetParentAndItem(This,pidlParent,psf,pidlChild) (This)->lpVtbl->SetParentAndItem(This,pidlParent,psf,pidlChild)
   18251 #define IParentAndItem_GetParentAndItem(This,ppidlParent,ppsf,ppidlChild) (This)->lpVtbl->GetParentAndItem(This,ppidlParent,ppsf,ppidlChild)
   18252 #else
   18253 /*** IUnknown methods ***/
   18254 static FORCEINLINE HRESULT IParentAndItem_QueryInterface(IParentAndItem* This,REFIID riid,void **ppvObject) {
   18255     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   18256 }
   18257 static FORCEINLINE ULONG IParentAndItem_AddRef(IParentAndItem* This) {
   18258     return This->lpVtbl->AddRef(This);
   18259 }
   18260 static FORCEINLINE ULONG IParentAndItem_Release(IParentAndItem* This) {
   18261     return This->lpVtbl->Release(This);
   18262 }
   18263 /*** IParentAndItem methods ***/
   18264 static FORCEINLINE HRESULT IParentAndItem_SetParentAndItem(IParentAndItem* This,PCIDLIST_ABSOLUTE pidlParent,IShellFolder *psf,PCUITEMID_CHILD pidlChild) {
   18265     return This->lpVtbl->SetParentAndItem(This,pidlParent,psf,pidlChild);
   18266 }
   18267 static FORCEINLINE HRESULT IParentAndItem_GetParentAndItem(IParentAndItem* This,PIDLIST_ABSOLUTE *ppidlParent,IShellFolder **ppsf,PITEMID_CHILD *ppidlChild) {
   18268     return This->lpVtbl->GetParentAndItem(This,ppidlParent,ppsf,ppidlChild);
   18269 }
   18270 #endif
   18271 #endif
   18272 
   18273 #endif
   18274 
   18275 HRESULT STDMETHODCALLTYPE IParentAndItem_SetParentAndItem_Proxy(
   18276     IParentAndItem* This,
   18277     PCIDLIST_ABSOLUTE pidlParent,
   18278     IShellFolder *psf,
   18279     PCUITEMID_CHILD pidlChild);
   18280 void __RPC_STUB IParentAndItem_SetParentAndItem_Stub(
   18281     IRpcStubBuffer* This,
   18282     IRpcChannelBuffer* pRpcChannelBuffer,
   18283     PRPC_MESSAGE pRpcMessage,
   18284     DWORD* pdwStubPhase);
   18285 HRESULT STDMETHODCALLTYPE IParentAndItem_RemoteGetParentAndItem_Proxy(
   18286     IParentAndItem* This,
   18287     PIDLIST_ABSOLUTE *ppidlParent,
   18288     IShellFolder **ppsf,
   18289     PITEMID_CHILD *ppidlChild);
   18290 void __RPC_STUB IParentAndItem_RemoteGetParentAndItem_Stub(
   18291     IRpcStubBuffer* This,
   18292     IRpcChannelBuffer* pRpcChannelBuffer,
   18293     PRPC_MESSAGE pRpcMessage,
   18294     DWORD* pdwStubPhase);
   18295 HRESULT CALLBACK IParentAndItem_GetParentAndItem_Proxy(
   18296     IParentAndItem* This,
   18297     PIDLIST_ABSOLUTE *ppidlParent,
   18298     IShellFolder **ppsf,
   18299     PITEMID_CHILD *ppidlChild);
   18300 HRESULT __RPC_STUB IParentAndItem_GetParentAndItem_Stub(
   18301     IParentAndItem* This,
   18302     PIDLIST_ABSOLUTE *ppidlParent,
   18303     IShellFolder **ppsf,
   18304     PITEMID_CHILD *ppidlChild);
   18305 
   18306 #endif  /* __IParentAndItem_INTERFACE_DEFINED__ */
   18307 
   18308 
   18309 /*****************************************************************************
   18310  * IDockingWindow interface
   18311  */
   18312 #ifndef __IDockingWindow_INTERFACE_DEFINED__
   18313 #define __IDockingWindow_INTERFACE_DEFINED__
   18314 
   18315 DEFINE_GUID(IID_IDockingWindow, 0x012dd920, 0x7b26, 0x11d0, 0x8c,0xa9, 0x00,0xa0,0xc9,0x2d,0xbf,0xe8);
   18316 #if defined(__cplusplus) && !defined(CINTERFACE)
   18317 MIDL_INTERFACE("012dd920-7b26-11d0-8ca9-00a0c92dbfe8")
   18318 IDockingWindow : public IOleWindow
   18319 {
   18320     virtual HRESULT STDMETHODCALLTYPE ShowDW(
   18321         WINBOOL fShow) = 0;
   18322 
   18323     virtual HRESULT STDMETHODCALLTYPE CloseDW(
   18324         DWORD dwReserved) = 0;
   18325 
   18326     virtual HRESULT STDMETHODCALLTYPE ResizeBorderDW(
   18327         LPCRECT prcBorder,
   18328         IUnknown *punkToolbarSite,
   18329         WINBOOL fReserved) = 0;
   18330 
   18331 };
   18332 #ifdef __CRT_UUID_DECL
   18333 __CRT_UUID_DECL(IDockingWindow, 0x012dd920, 0x7b26, 0x11d0, 0x8c,0xa9, 0x00,0xa0,0xc9,0x2d,0xbf,0xe8)
   18334 #endif
   18335 #else
   18336 typedef struct IDockingWindowVtbl {
   18337     BEGIN_INTERFACE
   18338 
   18339     /*** IUnknown methods ***/
   18340     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   18341         IDockingWindow* This,
   18342         REFIID riid,
   18343         void **ppvObject);
   18344 
   18345     ULONG (STDMETHODCALLTYPE *AddRef)(
   18346         IDockingWindow* This);
   18347 
   18348     ULONG (STDMETHODCALLTYPE *Release)(
   18349         IDockingWindow* This);
   18350 
   18351     /*** IOleWindow methods ***/
   18352     HRESULT (STDMETHODCALLTYPE *GetWindow)(
   18353         IDockingWindow* This,
   18354         HWND *phwnd);
   18355 
   18356     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
   18357         IDockingWindow* This,
   18358         WINBOOL fEnterMode);
   18359 
   18360     /*** IDockingWindow methods ***/
   18361     HRESULT (STDMETHODCALLTYPE *ShowDW)(
   18362         IDockingWindow* This,
   18363         WINBOOL fShow);
   18364 
   18365     HRESULT (STDMETHODCALLTYPE *CloseDW)(
   18366         IDockingWindow* This,
   18367         DWORD dwReserved);
   18368 
   18369     HRESULT (STDMETHODCALLTYPE *ResizeBorderDW)(
   18370         IDockingWindow* This,
   18371         LPCRECT prcBorder,
   18372         IUnknown *punkToolbarSite,
   18373         WINBOOL fReserved);
   18374 
   18375     END_INTERFACE
   18376 } IDockingWindowVtbl;
   18377 interface IDockingWindow {
   18378     CONST_VTBL IDockingWindowVtbl* lpVtbl;
   18379 };
   18380 
   18381 #ifdef COBJMACROS
   18382 #ifndef WIDL_C_INLINE_WRAPPERS
   18383 /*** IUnknown methods ***/
   18384 #define IDockingWindow_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   18385 #define IDockingWindow_AddRef(This) (This)->lpVtbl->AddRef(This)
   18386 #define IDockingWindow_Release(This) (This)->lpVtbl->Release(This)
   18387 /*** IOleWindow methods ***/
   18388 #define IDockingWindow_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
   18389 #define IDockingWindow_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
   18390 /*** IDockingWindow methods ***/
   18391 #define IDockingWindow_ShowDW(This,fShow) (This)->lpVtbl->ShowDW(This,fShow)
   18392 #define IDockingWindow_CloseDW(This,dwReserved) (This)->lpVtbl->CloseDW(This,dwReserved)
   18393 #define IDockingWindow_ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved) (This)->lpVtbl->ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved)
   18394 #else
   18395 /*** IUnknown methods ***/
   18396 static FORCEINLINE HRESULT IDockingWindow_QueryInterface(IDockingWindow* This,REFIID riid,void **ppvObject) {
   18397     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   18398 }
   18399 static FORCEINLINE ULONG IDockingWindow_AddRef(IDockingWindow* This) {
   18400     return This->lpVtbl->AddRef(This);
   18401 }
   18402 static FORCEINLINE ULONG IDockingWindow_Release(IDockingWindow* This) {
   18403     return This->lpVtbl->Release(This);
   18404 }
   18405 /*** IOleWindow methods ***/
   18406 static FORCEINLINE HRESULT IDockingWindow_GetWindow(IDockingWindow* This,HWND *phwnd) {
   18407     return This->lpVtbl->GetWindow(This,phwnd);
   18408 }
   18409 static FORCEINLINE HRESULT IDockingWindow_ContextSensitiveHelp(IDockingWindow* This,WINBOOL fEnterMode) {
   18410     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
   18411 }
   18412 /*** IDockingWindow methods ***/
   18413 static FORCEINLINE HRESULT IDockingWindow_ShowDW(IDockingWindow* This,WINBOOL fShow) {
   18414     return This->lpVtbl->ShowDW(This,fShow);
   18415 }
   18416 static FORCEINLINE HRESULT IDockingWindow_CloseDW(IDockingWindow* This,DWORD dwReserved) {
   18417     return This->lpVtbl->CloseDW(This,dwReserved);
   18418 }
   18419 static FORCEINLINE HRESULT IDockingWindow_ResizeBorderDW(IDockingWindow* This,LPCRECT prcBorder,IUnknown *punkToolbarSite,WINBOOL fReserved) {
   18420     return This->lpVtbl->ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved);
   18421 }
   18422 #endif
   18423 #endif
   18424 
   18425 #endif
   18426 
   18427 HRESULT STDMETHODCALLTYPE IDockingWindow_ShowDW_Proxy(
   18428     IDockingWindow* This,
   18429     WINBOOL fShow);
   18430 void __RPC_STUB IDockingWindow_ShowDW_Stub(
   18431     IRpcStubBuffer* This,
   18432     IRpcChannelBuffer* pRpcChannelBuffer,
   18433     PRPC_MESSAGE pRpcMessage,
   18434     DWORD* pdwStubPhase);
   18435 HRESULT STDMETHODCALLTYPE IDockingWindow_CloseDW_Proxy(
   18436     IDockingWindow* This,
   18437     DWORD dwReserved);
   18438 void __RPC_STUB IDockingWindow_CloseDW_Stub(
   18439     IRpcStubBuffer* This,
   18440     IRpcChannelBuffer* pRpcChannelBuffer,
   18441     PRPC_MESSAGE pRpcMessage,
   18442     DWORD* pdwStubPhase);
   18443 HRESULT STDMETHODCALLTYPE IDockingWindow_ResizeBorderDW_Proxy(
   18444     IDockingWindow* This,
   18445     LPCRECT prcBorder,
   18446     IUnknown *punkToolbarSite,
   18447     WINBOOL fReserved);
   18448 void __RPC_STUB IDockingWindow_ResizeBorderDW_Stub(
   18449     IRpcStubBuffer* This,
   18450     IRpcChannelBuffer* pRpcChannelBuffer,
   18451     PRPC_MESSAGE pRpcMessage,
   18452     DWORD* pdwStubPhase);
   18453 
   18454 #endif  /* __IDockingWindow_INTERFACE_DEFINED__ */
   18455 
   18456 
   18457 #define DBIM_MINSIZE 0x0001
   18458 #define DBIM_MAXSIZE 0x0002
   18459 #define DBIM_INTEGRAL 0x0004
   18460 #define DBIM_ACTUAL 0x0008
   18461 #define DBIM_TITLE 0x0010
   18462 #define DBIM_MODEFLAGS 0x0020
   18463 #define DBIM_BKCOLOR 0x0040
   18464 
   18465 #include <pshpack8.h>
   18466 typedef struct DESKBANDINFO {
   18467     DWORD dwMask;
   18468     POINTL ptMinSize;
   18469     POINTL ptMaxSize;
   18470     POINTL ptIntegral;
   18471     POINTL ptActual;
   18472     WCHAR wszTitle[256];
   18473     DWORD dwModeFlags;
   18474     COLORREF crBkgnd;
   18475 } DESKBANDINFO;
   18476 #include <poppack.h>
   18477 
   18478 #define DBIMF_NORMAL 0x0000
   18479 #define DBIMF_FIXED 0x0001
   18480 #define DBIMF_FIXEDBMP 0x0004
   18481 #define DBIMF_VARIABLEHEIGHT 0x0008
   18482 #define DBIMF_UNDELETEABLE 0x0010
   18483 #define DBIMF_DEBOSSED 0x0020
   18484 #define DBIMF_BKCOLOR 0x0040
   18485 #define DBIMF_USECHEVRON 0x0080
   18486 #define DBIMF_BREAK 0x0100
   18487 #define DBIMF_ADDTOFRONT 0x0200
   18488 #define DBIMF_TOPALIGN 0x0400
   18489 #if NTDDI_VERSION >= NTDDI_VISTA
   18490 #define DBIMF_NOGRIPPER 0x0800
   18491 #define DBIMF_ALWAYSGRIPPER 0x1000
   18492 #define DBIMF_NOMARGINS 0x2000
   18493 #endif
   18494 
   18495 #define DBIF_VIEWMODE_NORMAL 0x0000
   18496 #define DBIF_VIEWMODE_VERTICAL 0x0001
   18497 #define DBIF_VIEWMODE_FLOATING 0x0002
   18498 #define DBIF_VIEWMODE_TRANSPARENT 0x0004
   18499 
   18500 enum tagDESKBANDCID {
   18501     DBID_BANDINFOCHANGED = 0,
   18502     DBID_SHOWONLY = 1,
   18503     DBID_MAXIMIZEBAND = 2,
   18504     DBID_PUSHCHEVRON = 3,
   18505     DBID_DELAYINIT = 4,
   18506     DBID_FINISHINIT = 5,
   18507     DBID_SETWINDOWTHEME = 6,
   18508     DBID_PERMITAUTOHIDE = 7
   18509 };
   18510 
   18511 
   18512 #define DBPC_SELECTFIRST    (DWORD)-1
   18513 #define DBPC_SELECTLAST     (DWORD)-2
   18514 
   18515 #define CGID_DeskBand IID_IDeskBand
   18516 
   18517 /*****************************************************************************
   18518  * IDeskBand interface
   18519  */
   18520 #ifndef __IDeskBand_INTERFACE_DEFINED__
   18521 #define __IDeskBand_INTERFACE_DEFINED__
   18522 
   18523 DEFINE_GUID(IID_IDeskBand, 0xeb0fe172, 0x1a3a, 0x11d0, 0x89,0xb3, 0x00,0xa0,0xc9,0x0a,0x90,0xac);
   18524 #if defined(__cplusplus) && !defined(CINTERFACE)
   18525 MIDL_INTERFACE("eb0fe172-1a3a-11d0-89b3-00a0c90a90ac")
   18526 IDeskBand : public IDockingWindow
   18527 {
   18528     virtual HRESULT STDMETHODCALLTYPE GetBandInfo(
   18529         DWORD dwBandID,
   18530         DWORD dwViewMode,
   18531         DESKBANDINFO *pdbi) = 0;
   18532 
   18533 };
   18534 #ifdef __CRT_UUID_DECL
   18535 __CRT_UUID_DECL(IDeskBand, 0xeb0fe172, 0x1a3a, 0x11d0, 0x89,0xb3, 0x00,0xa0,0xc9,0x0a,0x90,0xac)
   18536 #endif
   18537 #else
   18538 typedef struct IDeskBandVtbl {
   18539     BEGIN_INTERFACE
   18540 
   18541     /*** IUnknown methods ***/
   18542     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   18543         IDeskBand* This,
   18544         REFIID riid,
   18545         void **ppvObject);
   18546 
   18547     ULONG (STDMETHODCALLTYPE *AddRef)(
   18548         IDeskBand* This);
   18549 
   18550     ULONG (STDMETHODCALLTYPE *Release)(
   18551         IDeskBand* This);
   18552 
   18553     /*** IOleWindow methods ***/
   18554     HRESULT (STDMETHODCALLTYPE *GetWindow)(
   18555         IDeskBand* This,
   18556         HWND *phwnd);
   18557 
   18558     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
   18559         IDeskBand* This,
   18560         WINBOOL fEnterMode);
   18561 
   18562     /*** IDockingWindow methods ***/
   18563     HRESULT (STDMETHODCALLTYPE *ShowDW)(
   18564         IDeskBand* This,
   18565         WINBOOL fShow);
   18566 
   18567     HRESULT (STDMETHODCALLTYPE *CloseDW)(
   18568         IDeskBand* This,
   18569         DWORD dwReserved);
   18570 
   18571     HRESULT (STDMETHODCALLTYPE *ResizeBorderDW)(
   18572         IDeskBand* This,
   18573         LPCRECT prcBorder,
   18574         IUnknown *punkToolbarSite,
   18575         WINBOOL fReserved);
   18576 
   18577     /*** IDeskBand methods ***/
   18578     HRESULT (STDMETHODCALLTYPE *GetBandInfo)(
   18579         IDeskBand* This,
   18580         DWORD dwBandID,
   18581         DWORD dwViewMode,
   18582         DESKBANDINFO *pdbi);
   18583 
   18584     END_INTERFACE
   18585 } IDeskBandVtbl;
   18586 interface IDeskBand {
   18587     CONST_VTBL IDeskBandVtbl* lpVtbl;
   18588 };
   18589 
   18590 #ifdef COBJMACROS
   18591 #ifndef WIDL_C_INLINE_WRAPPERS
   18592 /*** IUnknown methods ***/
   18593 #define IDeskBand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   18594 #define IDeskBand_AddRef(This) (This)->lpVtbl->AddRef(This)
   18595 #define IDeskBand_Release(This) (This)->lpVtbl->Release(This)
   18596 /*** IOleWindow methods ***/
   18597 #define IDeskBand_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
   18598 #define IDeskBand_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
   18599 /*** IDockingWindow methods ***/
   18600 #define IDeskBand_ShowDW(This,fShow) (This)->lpVtbl->ShowDW(This,fShow)
   18601 #define IDeskBand_CloseDW(This,dwReserved) (This)->lpVtbl->CloseDW(This,dwReserved)
   18602 #define IDeskBand_ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved) (This)->lpVtbl->ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved)
   18603 /*** IDeskBand methods ***/
   18604 #define IDeskBand_GetBandInfo(This,dwBandID,dwViewMode,pdbi) (This)->lpVtbl->GetBandInfo(This,dwBandID,dwViewMode,pdbi)
   18605 #else
   18606 /*** IUnknown methods ***/
   18607 static FORCEINLINE HRESULT IDeskBand_QueryInterface(IDeskBand* This,REFIID riid,void **ppvObject) {
   18608     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   18609 }
   18610 static FORCEINLINE ULONG IDeskBand_AddRef(IDeskBand* This) {
   18611     return This->lpVtbl->AddRef(This);
   18612 }
   18613 static FORCEINLINE ULONG IDeskBand_Release(IDeskBand* This) {
   18614     return This->lpVtbl->Release(This);
   18615 }
   18616 /*** IOleWindow methods ***/
   18617 static FORCEINLINE HRESULT IDeskBand_GetWindow(IDeskBand* This,HWND *phwnd) {
   18618     return This->lpVtbl->GetWindow(This,phwnd);
   18619 }
   18620 static FORCEINLINE HRESULT IDeskBand_ContextSensitiveHelp(IDeskBand* This,WINBOOL fEnterMode) {
   18621     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
   18622 }
   18623 /*** IDockingWindow methods ***/
   18624 static FORCEINLINE HRESULT IDeskBand_ShowDW(IDeskBand* This,WINBOOL fShow) {
   18625     return This->lpVtbl->ShowDW(This,fShow);
   18626 }
   18627 static FORCEINLINE HRESULT IDeskBand_CloseDW(IDeskBand* This,DWORD dwReserved) {
   18628     return This->lpVtbl->CloseDW(This,dwReserved);
   18629 }
   18630 static FORCEINLINE HRESULT IDeskBand_ResizeBorderDW(IDeskBand* This,LPCRECT prcBorder,IUnknown *punkToolbarSite,WINBOOL fReserved) {
   18631     return This->lpVtbl->ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved);
   18632 }
   18633 /*** IDeskBand methods ***/
   18634 static FORCEINLINE HRESULT IDeskBand_GetBandInfo(IDeskBand* This,DWORD dwBandID,DWORD dwViewMode,DESKBANDINFO *pdbi) {
   18635     return This->lpVtbl->GetBandInfo(This,dwBandID,dwViewMode,pdbi);
   18636 }
   18637 #endif
   18638 #endif
   18639 
   18640 #endif
   18641 
   18642 HRESULT STDMETHODCALLTYPE IDeskBand_GetBandInfo_Proxy(
   18643     IDeskBand* This,
   18644     DWORD dwBandID,
   18645     DWORD dwViewMode,
   18646     DESKBANDINFO *pdbi);
   18647 void __RPC_STUB IDeskBand_GetBandInfo_Stub(
   18648     IRpcStubBuffer* This,
   18649     IRpcChannelBuffer* pRpcChannelBuffer,
   18650     PRPC_MESSAGE pRpcMessage,
   18651     DWORD* pdwStubPhase);
   18652 
   18653 #endif  /* __IDeskBand_INTERFACE_DEFINED__ */
   18654 
   18655 
   18656 #if NTDDI_VERSION >= NTDDI_VISTA
   18657 /*****************************************************************************
   18658  * IDeskBandInfo interface
   18659  */
   18660 #ifndef __IDeskBandInfo_INTERFACE_DEFINED__
   18661 #define __IDeskBandInfo_INTERFACE_DEFINED__
   18662 
   18663 DEFINE_GUID(IID_IDeskBandInfo, 0x77e425fc, 0xcbf9, 0x4307, 0xba,0x6a, 0xbb,0x57,0x27,0x74,0x56,0x61);
   18664 #if defined(__cplusplus) && !defined(CINTERFACE)
   18665 MIDL_INTERFACE("77e425fc-cbf9-4307-ba6a-bb5727745661")
   18666 IDeskBandInfo : public IUnknown
   18667 {
   18668     virtual HRESULT STDMETHODCALLTYPE GetDefaultBandWidth(
   18669         DWORD dwBandID,
   18670         DWORD dwViewMode,
   18671         int *pnWidth) = 0;
   18672 
   18673 };
   18674 #ifdef __CRT_UUID_DECL
   18675 __CRT_UUID_DECL(IDeskBandInfo, 0x77e425fc, 0xcbf9, 0x4307, 0xba,0x6a, 0xbb,0x57,0x27,0x74,0x56,0x61)
   18676 #endif
   18677 #else
   18678 typedef struct IDeskBandInfoVtbl {
   18679     BEGIN_INTERFACE
   18680 
   18681     /*** IUnknown methods ***/
   18682     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   18683         IDeskBandInfo* This,
   18684         REFIID riid,
   18685         void **ppvObject);
   18686 
   18687     ULONG (STDMETHODCALLTYPE *AddRef)(
   18688         IDeskBandInfo* This);
   18689 
   18690     ULONG (STDMETHODCALLTYPE *Release)(
   18691         IDeskBandInfo* This);
   18692 
   18693     /*** IDeskBandInfo methods ***/
   18694     HRESULT (STDMETHODCALLTYPE *GetDefaultBandWidth)(
   18695         IDeskBandInfo* This,
   18696         DWORD dwBandID,
   18697         DWORD dwViewMode,
   18698         int *pnWidth);
   18699 
   18700     END_INTERFACE
   18701 } IDeskBandInfoVtbl;
   18702 interface IDeskBandInfo {
   18703     CONST_VTBL IDeskBandInfoVtbl* lpVtbl;
   18704 };
   18705 
   18706 #ifdef COBJMACROS
   18707 #ifndef WIDL_C_INLINE_WRAPPERS
   18708 /*** IUnknown methods ***/
   18709 #define IDeskBandInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   18710 #define IDeskBandInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
   18711 #define IDeskBandInfo_Release(This) (This)->lpVtbl->Release(This)
   18712 /*** IDeskBandInfo methods ***/
   18713 #define IDeskBandInfo_GetDefaultBandWidth(This,dwBandID,dwViewMode,pnWidth) (This)->lpVtbl->GetDefaultBandWidth(This,dwBandID,dwViewMode,pnWidth)
   18714 #else
   18715 /*** IUnknown methods ***/
   18716 static FORCEINLINE HRESULT IDeskBandInfo_QueryInterface(IDeskBandInfo* This,REFIID riid,void **ppvObject) {
   18717     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   18718 }
   18719 static FORCEINLINE ULONG IDeskBandInfo_AddRef(IDeskBandInfo* This) {
   18720     return This->lpVtbl->AddRef(This);
   18721 }
   18722 static FORCEINLINE ULONG IDeskBandInfo_Release(IDeskBandInfo* This) {
   18723     return This->lpVtbl->Release(This);
   18724 }
   18725 /*** IDeskBandInfo methods ***/
   18726 static FORCEINLINE HRESULT IDeskBandInfo_GetDefaultBandWidth(IDeskBandInfo* This,DWORD dwBandID,DWORD dwViewMode,int *pnWidth) {
   18727     return This->lpVtbl->GetDefaultBandWidth(This,dwBandID,dwViewMode,pnWidth);
   18728 }
   18729 #endif
   18730 #endif
   18731 
   18732 #endif
   18733 
   18734 HRESULT STDMETHODCALLTYPE IDeskBandInfo_GetDefaultBandWidth_Proxy(
   18735     IDeskBandInfo* This,
   18736     DWORD dwBandID,
   18737     DWORD dwViewMode,
   18738     int *pnWidth);
   18739 void __RPC_STUB IDeskBandInfo_GetDefaultBandWidth_Stub(
   18740     IRpcStubBuffer* This,
   18741     IRpcChannelBuffer* pRpcChannelBuffer,
   18742     PRPC_MESSAGE pRpcMessage,
   18743     DWORD* pdwStubPhase);
   18744 
   18745 #endif  /* __IDeskBandInfo_INTERFACE_DEFINED__ */
   18746 
   18747 
   18748 /*****************************************************************************
   18749  * IDeskBand2 interface
   18750  */
   18751 #ifndef __IDeskBand2_INTERFACE_DEFINED__
   18752 #define __IDeskBand2_INTERFACE_DEFINED__
   18753 
   18754 DEFINE_GUID(IID_IDeskBand2, 0x79d16de4, 0xabee, 0x4021, 0x8d,0x9d, 0x91,0x69,0xb2,0x61,0xd6,0x57);
   18755 #if defined(__cplusplus) && !defined(CINTERFACE)
   18756 MIDL_INTERFACE("79d16de4-abee-4021-8d9d-9169b261d657")
   18757 IDeskBand2 : public IDeskBand
   18758 {
   18759     virtual HRESULT STDMETHODCALLTYPE CanRenderComposited(
   18760         WINBOOL *pfCanRenderComposited) = 0;
   18761 
   18762     virtual HRESULT STDMETHODCALLTYPE SetCompositionState(
   18763         WINBOOL fCompositionEnabled) = 0;
   18764 
   18765     virtual HRESULT STDMETHODCALLTYPE GetCompositionState(
   18766         WINBOOL *pfCompositionEnabled) = 0;
   18767 
   18768 };
   18769 #ifdef __CRT_UUID_DECL
   18770 __CRT_UUID_DECL(IDeskBand2, 0x79d16de4, 0xabee, 0x4021, 0x8d,0x9d, 0x91,0x69,0xb2,0x61,0xd6,0x57)
   18771 #endif
   18772 #else
   18773 typedef struct IDeskBand2Vtbl {
   18774     BEGIN_INTERFACE
   18775 
   18776     /*** IUnknown methods ***/
   18777     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   18778         IDeskBand2* This,
   18779         REFIID riid,
   18780         void **ppvObject);
   18781 
   18782     ULONG (STDMETHODCALLTYPE *AddRef)(
   18783         IDeskBand2* This);
   18784 
   18785     ULONG (STDMETHODCALLTYPE *Release)(
   18786         IDeskBand2* This);
   18787 
   18788     /*** IOleWindow methods ***/
   18789     HRESULT (STDMETHODCALLTYPE *GetWindow)(
   18790         IDeskBand2* This,
   18791         HWND *phwnd);
   18792 
   18793     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
   18794         IDeskBand2* This,
   18795         WINBOOL fEnterMode);
   18796 
   18797     /*** IDockingWindow methods ***/
   18798     HRESULT (STDMETHODCALLTYPE *ShowDW)(
   18799         IDeskBand2* This,
   18800         WINBOOL fShow);
   18801 
   18802     HRESULT (STDMETHODCALLTYPE *CloseDW)(
   18803         IDeskBand2* This,
   18804         DWORD dwReserved);
   18805 
   18806     HRESULT (STDMETHODCALLTYPE *ResizeBorderDW)(
   18807         IDeskBand2* This,
   18808         LPCRECT prcBorder,
   18809         IUnknown *punkToolbarSite,
   18810         WINBOOL fReserved);
   18811 
   18812     /*** IDeskBand methods ***/
   18813     HRESULT (STDMETHODCALLTYPE *GetBandInfo)(
   18814         IDeskBand2* This,
   18815         DWORD dwBandID,
   18816         DWORD dwViewMode,
   18817         DESKBANDINFO *pdbi);
   18818 
   18819     /*** IDeskBand2 methods ***/
   18820     HRESULT (STDMETHODCALLTYPE *CanRenderComposited)(
   18821         IDeskBand2* This,
   18822         WINBOOL *pfCanRenderComposited);
   18823 
   18824     HRESULT (STDMETHODCALLTYPE *SetCompositionState)(
   18825         IDeskBand2* This,
   18826         WINBOOL fCompositionEnabled);
   18827 
   18828     HRESULT (STDMETHODCALLTYPE *GetCompositionState)(
   18829         IDeskBand2* This,
   18830         WINBOOL *pfCompositionEnabled);
   18831 
   18832     END_INTERFACE
   18833 } IDeskBand2Vtbl;
   18834 interface IDeskBand2 {
   18835     CONST_VTBL IDeskBand2Vtbl* lpVtbl;
   18836 };
   18837 
   18838 #ifdef COBJMACROS
   18839 #ifndef WIDL_C_INLINE_WRAPPERS
   18840 /*** IUnknown methods ***/
   18841 #define IDeskBand2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   18842 #define IDeskBand2_AddRef(This) (This)->lpVtbl->AddRef(This)
   18843 #define IDeskBand2_Release(This) (This)->lpVtbl->Release(This)
   18844 /*** IOleWindow methods ***/
   18845 #define IDeskBand2_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
   18846 #define IDeskBand2_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
   18847 /*** IDockingWindow methods ***/
   18848 #define IDeskBand2_ShowDW(This,fShow) (This)->lpVtbl->ShowDW(This,fShow)
   18849 #define IDeskBand2_CloseDW(This,dwReserved) (This)->lpVtbl->CloseDW(This,dwReserved)
   18850 #define IDeskBand2_ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved) (This)->lpVtbl->ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved)
   18851 /*** IDeskBand methods ***/
   18852 #define IDeskBand2_GetBandInfo(This,dwBandID,dwViewMode,pdbi) (This)->lpVtbl->GetBandInfo(This,dwBandID,dwViewMode,pdbi)
   18853 /*** IDeskBand2 methods ***/
   18854 #define IDeskBand2_CanRenderComposited(This,pfCanRenderComposited) (This)->lpVtbl->CanRenderComposited(This,pfCanRenderComposited)
   18855 #define IDeskBand2_SetCompositionState(This,fCompositionEnabled) (This)->lpVtbl->SetCompositionState(This,fCompositionEnabled)
   18856 #define IDeskBand2_GetCompositionState(This,pfCompositionEnabled) (This)->lpVtbl->GetCompositionState(This,pfCompositionEnabled)
   18857 #else
   18858 /*** IUnknown methods ***/
   18859 static FORCEINLINE HRESULT IDeskBand2_QueryInterface(IDeskBand2* This,REFIID riid,void **ppvObject) {
   18860     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   18861 }
   18862 static FORCEINLINE ULONG IDeskBand2_AddRef(IDeskBand2* This) {
   18863     return This->lpVtbl->AddRef(This);
   18864 }
   18865 static FORCEINLINE ULONG IDeskBand2_Release(IDeskBand2* This) {
   18866     return This->lpVtbl->Release(This);
   18867 }
   18868 /*** IOleWindow methods ***/
   18869 static FORCEINLINE HRESULT IDeskBand2_GetWindow(IDeskBand2* This,HWND *phwnd) {
   18870     return This->lpVtbl->GetWindow(This,phwnd);
   18871 }
   18872 static FORCEINLINE HRESULT IDeskBand2_ContextSensitiveHelp(IDeskBand2* This,WINBOOL fEnterMode) {
   18873     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
   18874 }
   18875 /*** IDockingWindow methods ***/
   18876 static FORCEINLINE HRESULT IDeskBand2_ShowDW(IDeskBand2* This,WINBOOL fShow) {
   18877     return This->lpVtbl->ShowDW(This,fShow);
   18878 }
   18879 static FORCEINLINE HRESULT IDeskBand2_CloseDW(IDeskBand2* This,DWORD dwReserved) {
   18880     return This->lpVtbl->CloseDW(This,dwReserved);
   18881 }
   18882 static FORCEINLINE HRESULT IDeskBand2_ResizeBorderDW(IDeskBand2* This,LPCRECT prcBorder,IUnknown *punkToolbarSite,WINBOOL fReserved) {
   18883     return This->lpVtbl->ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved);
   18884 }
   18885 /*** IDeskBand methods ***/
   18886 static FORCEINLINE HRESULT IDeskBand2_GetBandInfo(IDeskBand2* This,DWORD dwBandID,DWORD dwViewMode,DESKBANDINFO *pdbi) {
   18887     return This->lpVtbl->GetBandInfo(This,dwBandID,dwViewMode,pdbi);
   18888 }
   18889 /*** IDeskBand2 methods ***/
   18890 static FORCEINLINE HRESULT IDeskBand2_CanRenderComposited(IDeskBand2* This,WINBOOL *pfCanRenderComposited) {
   18891     return This->lpVtbl->CanRenderComposited(This,pfCanRenderComposited);
   18892 }
   18893 static FORCEINLINE HRESULT IDeskBand2_SetCompositionState(IDeskBand2* This,WINBOOL fCompositionEnabled) {
   18894     return This->lpVtbl->SetCompositionState(This,fCompositionEnabled);
   18895 }
   18896 static FORCEINLINE HRESULT IDeskBand2_GetCompositionState(IDeskBand2* This,WINBOOL *pfCompositionEnabled) {
   18897     return This->lpVtbl->GetCompositionState(This,pfCompositionEnabled);
   18898 }
   18899 #endif
   18900 #endif
   18901 
   18902 #endif
   18903 
   18904 HRESULT STDMETHODCALLTYPE IDeskBand2_CanRenderComposited_Proxy(
   18905     IDeskBand2* This,
   18906     WINBOOL *pfCanRenderComposited);
   18907 void __RPC_STUB IDeskBand2_CanRenderComposited_Stub(
   18908     IRpcStubBuffer* This,
   18909     IRpcChannelBuffer* pRpcChannelBuffer,
   18910     PRPC_MESSAGE pRpcMessage,
   18911     DWORD* pdwStubPhase);
   18912 HRESULT STDMETHODCALLTYPE IDeskBand2_SetCompositionState_Proxy(
   18913     IDeskBand2* This,
   18914     WINBOOL fCompositionEnabled);
   18915 void __RPC_STUB IDeskBand2_SetCompositionState_Stub(
   18916     IRpcStubBuffer* This,
   18917     IRpcChannelBuffer* pRpcChannelBuffer,
   18918     PRPC_MESSAGE pRpcMessage,
   18919     DWORD* pdwStubPhase);
   18920 HRESULT STDMETHODCALLTYPE IDeskBand2_GetCompositionState_Proxy(
   18921     IDeskBand2* This,
   18922     WINBOOL *pfCompositionEnabled);
   18923 void __RPC_STUB IDeskBand2_GetCompositionState_Stub(
   18924     IRpcStubBuffer* This,
   18925     IRpcChannelBuffer* pRpcChannelBuffer,
   18926     PRPC_MESSAGE pRpcMessage,
   18927     DWORD* pdwStubPhase);
   18928 
   18929 #endif  /* __IDeskBand2_INTERFACE_DEFINED__ */
   18930 
   18931 #endif
   18932 
   18933 /*****************************************************************************
   18934  * ITaskbarList interface
   18935  */
   18936 #ifndef __ITaskbarList_INTERFACE_DEFINED__
   18937 #define __ITaskbarList_INTERFACE_DEFINED__
   18938 
   18939 DEFINE_GUID(IID_ITaskbarList, 0x56fdf342, 0xfd6d, 0x11d0, 0x95,0x8a, 0x00,0x60,0x97,0xc9,0xa0,0x90);
   18940 #if defined(__cplusplus) && !defined(CINTERFACE)
   18941 MIDL_INTERFACE("56fdf342-fd6d-11d0-958a-006097c9a090")
   18942 ITaskbarList : public IUnknown
   18943 {
   18944     virtual HRESULT STDMETHODCALLTYPE HrInit(
   18945         ) = 0;
   18946 
   18947     virtual HRESULT STDMETHODCALLTYPE AddTab(
   18948         HWND hwnd) = 0;
   18949 
   18950     virtual HRESULT STDMETHODCALLTYPE DeleteTab(
   18951         HWND hwnd) = 0;
   18952 
   18953     virtual HRESULT STDMETHODCALLTYPE ActivateTab(
   18954         HWND hwnd) = 0;
   18955 
   18956     virtual HRESULT STDMETHODCALLTYPE SetActiveAlt(
   18957         HWND hwnd) = 0;
   18958 
   18959 };
   18960 #ifdef __CRT_UUID_DECL
   18961 __CRT_UUID_DECL(ITaskbarList, 0x56fdf342, 0xfd6d, 0x11d0, 0x95,0x8a, 0x00,0x60,0x97,0xc9,0xa0,0x90)
   18962 #endif
   18963 #else
   18964 typedef struct ITaskbarListVtbl {
   18965     BEGIN_INTERFACE
   18966 
   18967     /*** IUnknown methods ***/
   18968     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   18969         ITaskbarList* This,
   18970         REFIID riid,
   18971         void **ppvObject);
   18972 
   18973     ULONG (STDMETHODCALLTYPE *AddRef)(
   18974         ITaskbarList* This);
   18975 
   18976     ULONG (STDMETHODCALLTYPE *Release)(
   18977         ITaskbarList* This);
   18978 
   18979     /*** ITaskbarList methods ***/
   18980     HRESULT (STDMETHODCALLTYPE *HrInit)(
   18981         ITaskbarList* This);
   18982 
   18983     HRESULT (STDMETHODCALLTYPE *AddTab)(
   18984         ITaskbarList* This,
   18985         HWND hwnd);
   18986 
   18987     HRESULT (STDMETHODCALLTYPE *DeleteTab)(
   18988         ITaskbarList* This,
   18989         HWND hwnd);
   18990 
   18991     HRESULT (STDMETHODCALLTYPE *ActivateTab)(
   18992         ITaskbarList* This,
   18993         HWND hwnd);
   18994 
   18995     HRESULT (STDMETHODCALLTYPE *SetActiveAlt)(
   18996         ITaskbarList* This,
   18997         HWND hwnd);
   18998 
   18999     END_INTERFACE
   19000 } ITaskbarListVtbl;
   19001 interface ITaskbarList {
   19002     CONST_VTBL ITaskbarListVtbl* lpVtbl;
   19003 };
   19004 
   19005 #ifdef COBJMACROS
   19006 #ifndef WIDL_C_INLINE_WRAPPERS
   19007 /*** IUnknown methods ***/
   19008 #define ITaskbarList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   19009 #define ITaskbarList_AddRef(This) (This)->lpVtbl->AddRef(This)
   19010 #define ITaskbarList_Release(This) (This)->lpVtbl->Release(This)
   19011 /*** ITaskbarList methods ***/
   19012 #define ITaskbarList_HrInit(This) (This)->lpVtbl->HrInit(This)
   19013 #define ITaskbarList_AddTab(This,hwnd) (This)->lpVtbl->AddTab(This,hwnd)
   19014 #define ITaskbarList_DeleteTab(This,hwnd) (This)->lpVtbl->DeleteTab(This,hwnd)
   19015 #define ITaskbarList_ActivateTab(This,hwnd) (This)->lpVtbl->ActivateTab(This,hwnd)
   19016 #define ITaskbarList_SetActiveAlt(This,hwnd) (This)->lpVtbl->SetActiveAlt(This,hwnd)
   19017 #else
   19018 /*** IUnknown methods ***/
   19019 static FORCEINLINE HRESULT ITaskbarList_QueryInterface(ITaskbarList* This,REFIID riid,void **ppvObject) {
   19020     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   19021 }
   19022 static FORCEINLINE ULONG ITaskbarList_AddRef(ITaskbarList* This) {
   19023     return This->lpVtbl->AddRef(This);
   19024 }
   19025 static FORCEINLINE ULONG ITaskbarList_Release(ITaskbarList* This) {
   19026     return This->lpVtbl->Release(This);
   19027 }
   19028 /*** ITaskbarList methods ***/
   19029 static FORCEINLINE HRESULT ITaskbarList_HrInit(ITaskbarList* This) {
   19030     return This->lpVtbl->HrInit(This);
   19031 }
   19032 static FORCEINLINE HRESULT ITaskbarList_AddTab(ITaskbarList* This,HWND hwnd) {
   19033     return This->lpVtbl->AddTab(This,hwnd);
   19034 }
   19035 static FORCEINLINE HRESULT ITaskbarList_DeleteTab(ITaskbarList* This,HWND hwnd) {
   19036     return This->lpVtbl->DeleteTab(This,hwnd);
   19037 }
   19038 static FORCEINLINE HRESULT ITaskbarList_ActivateTab(ITaskbarList* This,HWND hwnd) {
   19039     return This->lpVtbl->ActivateTab(This,hwnd);
   19040 }
   19041 static FORCEINLINE HRESULT ITaskbarList_SetActiveAlt(ITaskbarList* This,HWND hwnd) {
   19042     return This->lpVtbl->SetActiveAlt(This,hwnd);
   19043 }
   19044 #endif
   19045 #endif
   19046 
   19047 #endif
   19048 
   19049 HRESULT STDMETHODCALLTYPE ITaskbarList_HrInit_Proxy(
   19050     ITaskbarList* This);
   19051 void __RPC_STUB ITaskbarList_HrInit_Stub(
   19052     IRpcStubBuffer* This,
   19053     IRpcChannelBuffer* pRpcChannelBuffer,
   19054     PRPC_MESSAGE pRpcMessage,
   19055     DWORD* pdwStubPhase);
   19056 HRESULT STDMETHODCALLTYPE ITaskbarList_AddTab_Proxy(
   19057     ITaskbarList* This,
   19058     HWND hwnd);
   19059 void __RPC_STUB ITaskbarList_AddTab_Stub(
   19060     IRpcStubBuffer* This,
   19061     IRpcChannelBuffer* pRpcChannelBuffer,
   19062     PRPC_MESSAGE pRpcMessage,
   19063     DWORD* pdwStubPhase);
   19064 HRESULT STDMETHODCALLTYPE ITaskbarList_DeleteTab_Proxy(
   19065     ITaskbarList* This,
   19066     HWND hwnd);
   19067 void __RPC_STUB ITaskbarList_DeleteTab_Stub(
   19068     IRpcStubBuffer* This,
   19069     IRpcChannelBuffer* pRpcChannelBuffer,
   19070     PRPC_MESSAGE pRpcMessage,
   19071     DWORD* pdwStubPhase);
   19072 HRESULT STDMETHODCALLTYPE ITaskbarList_ActivateTab_Proxy(
   19073     ITaskbarList* This,
   19074     HWND hwnd);
   19075 void __RPC_STUB ITaskbarList_ActivateTab_Stub(
   19076     IRpcStubBuffer* This,
   19077     IRpcChannelBuffer* pRpcChannelBuffer,
   19078     PRPC_MESSAGE pRpcMessage,
   19079     DWORD* pdwStubPhase);
   19080 HRESULT STDMETHODCALLTYPE ITaskbarList_SetActiveAlt_Proxy(
   19081     ITaskbarList* This,
   19082     HWND hwnd);
   19083 void __RPC_STUB ITaskbarList_SetActiveAlt_Stub(
   19084     IRpcStubBuffer* This,
   19085     IRpcChannelBuffer* pRpcChannelBuffer,
   19086     PRPC_MESSAGE pRpcMessage,
   19087     DWORD* pdwStubPhase);
   19088 
   19089 #endif  /* __ITaskbarList_INTERFACE_DEFINED__ */
   19090 
   19091 
   19092 /*****************************************************************************
   19093  * ITaskbarList2 interface
   19094  */
   19095 #ifndef __ITaskbarList2_INTERFACE_DEFINED__
   19096 #define __ITaskbarList2_INTERFACE_DEFINED__
   19097 
   19098 DEFINE_GUID(IID_ITaskbarList2, 0x602d4995, 0xb13a, 0x429b, 0xa6,0x6e, 0x19,0x35,0xe4,0x4f,0x43,0x17);
   19099 #if defined(__cplusplus) && !defined(CINTERFACE)
   19100 MIDL_INTERFACE("602d4995-b13a-429b-a66e-1935e44f4317")
   19101 ITaskbarList2 : public ITaskbarList
   19102 {
   19103     virtual HRESULT STDMETHODCALLTYPE MarkFullscreenWindow(
   19104         HWND hwnd,
   19105         WINBOOL fFullscreen) = 0;
   19106 
   19107 };
   19108 #ifdef __CRT_UUID_DECL
   19109 __CRT_UUID_DECL(ITaskbarList2, 0x602d4995, 0xb13a, 0x429b, 0xa6,0x6e, 0x19,0x35,0xe4,0x4f,0x43,0x17)
   19110 #endif
   19111 #else
   19112 typedef struct ITaskbarList2Vtbl {
   19113     BEGIN_INTERFACE
   19114 
   19115     /*** IUnknown methods ***/
   19116     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   19117         ITaskbarList2* This,
   19118         REFIID riid,
   19119         void **ppvObject);
   19120 
   19121     ULONG (STDMETHODCALLTYPE *AddRef)(
   19122         ITaskbarList2* This);
   19123 
   19124     ULONG (STDMETHODCALLTYPE *Release)(
   19125         ITaskbarList2* This);
   19126 
   19127     /*** ITaskbarList methods ***/
   19128     HRESULT (STDMETHODCALLTYPE *HrInit)(
   19129         ITaskbarList2* This);
   19130 
   19131     HRESULT (STDMETHODCALLTYPE *AddTab)(
   19132         ITaskbarList2* This,
   19133         HWND hwnd);
   19134 
   19135     HRESULT (STDMETHODCALLTYPE *DeleteTab)(
   19136         ITaskbarList2* This,
   19137         HWND hwnd);
   19138 
   19139     HRESULT (STDMETHODCALLTYPE *ActivateTab)(
   19140         ITaskbarList2* This,
   19141         HWND hwnd);
   19142 
   19143     HRESULT (STDMETHODCALLTYPE *SetActiveAlt)(
   19144         ITaskbarList2* This,
   19145         HWND hwnd);
   19146 
   19147     /*** ITaskbarList2 methods ***/
   19148     HRESULT (STDMETHODCALLTYPE *MarkFullscreenWindow)(
   19149         ITaskbarList2* This,
   19150         HWND hwnd,
   19151         WINBOOL fFullscreen);
   19152 
   19153     END_INTERFACE
   19154 } ITaskbarList2Vtbl;
   19155 interface ITaskbarList2 {
   19156     CONST_VTBL ITaskbarList2Vtbl* lpVtbl;
   19157 };
   19158 
   19159 #ifdef COBJMACROS
   19160 #ifndef WIDL_C_INLINE_WRAPPERS
   19161 /*** IUnknown methods ***/
   19162 #define ITaskbarList2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   19163 #define ITaskbarList2_AddRef(This) (This)->lpVtbl->AddRef(This)
   19164 #define ITaskbarList2_Release(This) (This)->lpVtbl->Release(This)
   19165 /*** ITaskbarList methods ***/
   19166 #define ITaskbarList2_HrInit(This) (This)->lpVtbl->HrInit(This)
   19167 #define ITaskbarList2_AddTab(This,hwnd) (This)->lpVtbl->AddTab(This,hwnd)
   19168 #define ITaskbarList2_DeleteTab(This,hwnd) (This)->lpVtbl->DeleteTab(This,hwnd)
   19169 #define ITaskbarList2_ActivateTab(This,hwnd) (This)->lpVtbl->ActivateTab(This,hwnd)
   19170 #define ITaskbarList2_SetActiveAlt(This,hwnd) (This)->lpVtbl->SetActiveAlt(This,hwnd)
   19171 /*** ITaskbarList2 methods ***/
   19172 #define ITaskbarList2_MarkFullscreenWindow(This,hwnd,fFullscreen) (This)->lpVtbl->MarkFullscreenWindow(This,hwnd,fFullscreen)
   19173 #else
   19174 /*** IUnknown methods ***/
   19175 static FORCEINLINE HRESULT ITaskbarList2_QueryInterface(ITaskbarList2* This,REFIID riid,void **ppvObject) {
   19176     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   19177 }
   19178 static FORCEINLINE ULONG ITaskbarList2_AddRef(ITaskbarList2* This) {
   19179     return This->lpVtbl->AddRef(This);
   19180 }
   19181 static FORCEINLINE ULONG ITaskbarList2_Release(ITaskbarList2* This) {
   19182     return This->lpVtbl->Release(This);
   19183 }
   19184 /*** ITaskbarList methods ***/
   19185 static FORCEINLINE HRESULT ITaskbarList2_HrInit(ITaskbarList2* This) {
   19186     return This->lpVtbl->HrInit(This);
   19187 }
   19188 static FORCEINLINE HRESULT ITaskbarList2_AddTab(ITaskbarList2* This,HWND hwnd) {
   19189     return This->lpVtbl->AddTab(This,hwnd);
   19190 }
   19191 static FORCEINLINE HRESULT ITaskbarList2_DeleteTab(ITaskbarList2* This,HWND hwnd) {
   19192     return This->lpVtbl->DeleteTab(This,hwnd);
   19193 }
   19194 static FORCEINLINE HRESULT ITaskbarList2_ActivateTab(ITaskbarList2* This,HWND hwnd) {
   19195     return This->lpVtbl->ActivateTab(This,hwnd);
   19196 }
   19197 static FORCEINLINE HRESULT ITaskbarList2_SetActiveAlt(ITaskbarList2* This,HWND hwnd) {
   19198     return This->lpVtbl->SetActiveAlt(This,hwnd);
   19199 }
   19200 /*** ITaskbarList2 methods ***/
   19201 static FORCEINLINE HRESULT ITaskbarList2_MarkFullscreenWindow(ITaskbarList2* This,HWND hwnd,WINBOOL fFullscreen) {
   19202     return This->lpVtbl->MarkFullscreenWindow(This,hwnd,fFullscreen);
   19203 }
   19204 #endif
   19205 #endif
   19206 
   19207 #endif
   19208 
   19209 HRESULT STDMETHODCALLTYPE ITaskbarList2_MarkFullscreenWindow_Proxy(
   19210     ITaskbarList2* This,
   19211     HWND hwnd,
   19212     WINBOOL fFullscreen);
   19213 void __RPC_STUB ITaskbarList2_MarkFullscreenWindow_Stub(
   19214     IRpcStubBuffer* This,
   19215     IRpcChannelBuffer* pRpcChannelBuffer,
   19216     PRPC_MESSAGE pRpcMessage,
   19217     DWORD* pdwStubPhase);
   19218 
   19219 #endif  /* __ITaskbarList2_INTERFACE_DEFINED__ */
   19220 
   19221 
   19222 #if 0
   19223 typedef IUnknown *HIMAGELIST;
   19224 #endif
   19225 
   19226 typedef enum THUMBBUTTONFLAGS {
   19227     THBF_ENABLED = 0x0,
   19228     THBF_DISABLED = 0x1,
   19229     THBF_DISMISSONCLICK = 0x2,
   19230     THBF_NOBACKGROUND = 0x4,
   19231     THBF_HIDDEN = 0x8,
   19232     THBF_NONINTERACTIVE = 0x10
   19233 } THUMBBUTTONFLAGS;
   19234 
   19235 DEFINE_ENUM_FLAG_OPERATORS(THUMBBUTTONFLAGS)
   19236 
   19237 
   19238 typedef enum THUMBBUTTONMASK {
   19239     THB_BITMAP = 0x1,
   19240     THB_ICON = 0x2,
   19241     THB_TOOLTIP = 0x4,
   19242     THB_FLAGS = 0x8
   19243 } THUMBBUTTONMASK;
   19244 
   19245 DEFINE_ENUM_FLAG_OPERATORS(THUMBBUTTONMASK)
   19246 
   19247 #include <pshpack8.h>
   19248 typedef struct THUMBBUTTON {
   19249     THUMBBUTTONMASK dwMask;
   19250     UINT iId;
   19251     UINT iBitmap;
   19252     HICON hIcon;
   19253     WCHAR szTip[260];
   19254     THUMBBUTTONFLAGS dwFlags;
   19255 } THUMBBUTTON;
   19256 typedef struct THUMBBUTTON *LPTHUMBBUTTON;
   19257 #include <poppack.h>
   19258 
   19259 #define THBN_CLICKED 0x1800
   19260 
   19261 /*****************************************************************************
   19262  * ITaskbarList3 interface
   19263  */
   19264 #ifndef __ITaskbarList3_INTERFACE_DEFINED__
   19265 #define __ITaskbarList3_INTERFACE_DEFINED__
   19266 
   19267 typedef enum TBPFLAG {
   19268     TBPF_NOPROGRESS = 0x0,
   19269     TBPF_INDETERMINATE = 0x1,
   19270     TBPF_NORMAL = 0x2,
   19271     TBPF_ERROR = 0x4,
   19272     TBPF_PAUSED = 0x8
   19273 } TBPFLAG;
   19274 
   19275 DEFINE_ENUM_FLAG_OPERATORS(TBPFLAG)
   19276 
   19277 DEFINE_GUID(IID_ITaskbarList3, 0xea1afb91, 0x9e28, 0x4b86, 0x90,0xe9, 0x9e,0x9f,0x8a,0x5e,0xef,0xaf);
   19278 #if defined(__cplusplus) && !defined(CINTERFACE)
   19279 MIDL_INTERFACE("ea1afb91-9e28-4b86-90e9-9e9f8a5eefaf")
   19280 ITaskbarList3 : public ITaskbarList2
   19281 {
   19282     virtual HRESULT STDMETHODCALLTYPE SetProgressValue(
   19283         HWND hwnd,
   19284         ULONGLONG ullCompleted,
   19285         ULONGLONG ullTotal) = 0;
   19286 
   19287     virtual HRESULT STDMETHODCALLTYPE SetProgressState(
   19288         HWND hwnd,
   19289         TBPFLAG tbpFlags) = 0;
   19290 
   19291     virtual HRESULT STDMETHODCALLTYPE RegisterTab(
   19292         HWND hwndTab,
   19293         HWND hwndMDI) = 0;
   19294 
   19295     virtual HRESULT STDMETHODCALLTYPE UnregisterTab(
   19296         HWND hwndTab) = 0;
   19297 
   19298     virtual HRESULT STDMETHODCALLTYPE SetTabOrder(
   19299         HWND hwndTab,
   19300         HWND hwndInsertBefore) = 0;
   19301 
   19302     virtual HRESULT STDMETHODCALLTYPE SetTabActive(
   19303         HWND hwndTab,
   19304         HWND hwndMDI,
   19305         DWORD dwReserved) = 0;
   19306 
   19307     virtual HRESULT STDMETHODCALLTYPE ThumbBarAddButtons(
   19308         HWND hwnd,
   19309         UINT cButtons,
   19310         LPTHUMBBUTTON pButton) = 0;
   19311 
   19312     virtual HRESULT STDMETHODCALLTYPE ThumbBarUpdateButtons(
   19313         HWND hwnd,
   19314         UINT cButtons,
   19315         LPTHUMBBUTTON pButton) = 0;
   19316 
   19317     virtual HRESULT STDMETHODCALLTYPE ThumbBarSetImageList(
   19318         HWND hwnd,
   19319         HIMAGELIST himl) = 0;
   19320 
   19321     virtual HRESULT STDMETHODCALLTYPE SetOverlayIcon(
   19322         HWND hwnd,
   19323         HICON hIcon,
   19324         LPCWSTR pszDescription) = 0;
   19325 
   19326     virtual HRESULT STDMETHODCALLTYPE SetThumbnailTooltip(
   19327         HWND hwnd,
   19328         LPCWSTR pszTip) = 0;
   19329 
   19330     virtual HRESULT STDMETHODCALLTYPE SetThumbnailClip(
   19331         HWND hwnd,
   19332         RECT *prcClip) = 0;
   19333 
   19334 };
   19335 #ifdef __CRT_UUID_DECL
   19336 __CRT_UUID_DECL(ITaskbarList3, 0xea1afb91, 0x9e28, 0x4b86, 0x90,0xe9, 0x9e,0x9f,0x8a,0x5e,0xef,0xaf)
   19337 #endif
   19338 #else
   19339 typedef struct ITaskbarList3Vtbl {
   19340     BEGIN_INTERFACE
   19341 
   19342     /*** IUnknown methods ***/
   19343     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   19344         ITaskbarList3* This,
   19345         REFIID riid,
   19346         void **ppvObject);
   19347 
   19348     ULONG (STDMETHODCALLTYPE *AddRef)(
   19349         ITaskbarList3* This);
   19350 
   19351     ULONG (STDMETHODCALLTYPE *Release)(
   19352         ITaskbarList3* This);
   19353 
   19354     /*** ITaskbarList methods ***/
   19355     HRESULT (STDMETHODCALLTYPE *HrInit)(
   19356         ITaskbarList3* This);
   19357 
   19358     HRESULT (STDMETHODCALLTYPE *AddTab)(
   19359         ITaskbarList3* This,
   19360         HWND hwnd);
   19361 
   19362     HRESULT (STDMETHODCALLTYPE *DeleteTab)(
   19363         ITaskbarList3* This,
   19364         HWND hwnd);
   19365 
   19366     HRESULT (STDMETHODCALLTYPE *ActivateTab)(
   19367         ITaskbarList3* This,
   19368         HWND hwnd);
   19369 
   19370     HRESULT (STDMETHODCALLTYPE *SetActiveAlt)(
   19371         ITaskbarList3* This,
   19372         HWND hwnd);
   19373 
   19374     /*** ITaskbarList2 methods ***/
   19375     HRESULT (STDMETHODCALLTYPE *MarkFullscreenWindow)(
   19376         ITaskbarList3* This,
   19377         HWND hwnd,
   19378         WINBOOL fFullscreen);
   19379 
   19380     /*** ITaskbarList3 methods ***/
   19381     HRESULT (STDMETHODCALLTYPE *SetProgressValue)(
   19382         ITaskbarList3* This,
   19383         HWND hwnd,
   19384         ULONGLONG ullCompleted,
   19385         ULONGLONG ullTotal);
   19386 
   19387     HRESULT (STDMETHODCALLTYPE *SetProgressState)(
   19388         ITaskbarList3* This,
   19389         HWND hwnd,
   19390         TBPFLAG tbpFlags);
   19391 
   19392     HRESULT (STDMETHODCALLTYPE *RegisterTab)(
   19393         ITaskbarList3* This,
   19394         HWND hwndTab,
   19395         HWND hwndMDI);
   19396 
   19397     HRESULT (STDMETHODCALLTYPE *UnregisterTab)(
   19398         ITaskbarList3* This,
   19399         HWND hwndTab);
   19400 
   19401     HRESULT (STDMETHODCALLTYPE *SetTabOrder)(
   19402         ITaskbarList3* This,
   19403         HWND hwndTab,
   19404         HWND hwndInsertBefore);
   19405 
   19406     HRESULT (STDMETHODCALLTYPE *SetTabActive)(
   19407         ITaskbarList3* This,
   19408         HWND hwndTab,
   19409         HWND hwndMDI,
   19410         DWORD dwReserved);
   19411 
   19412     HRESULT (STDMETHODCALLTYPE *ThumbBarAddButtons)(
   19413         ITaskbarList3* This,
   19414         HWND hwnd,
   19415         UINT cButtons,
   19416         LPTHUMBBUTTON pButton);
   19417 
   19418     HRESULT (STDMETHODCALLTYPE *ThumbBarUpdateButtons)(
   19419         ITaskbarList3* This,
   19420         HWND hwnd,
   19421         UINT cButtons,
   19422         LPTHUMBBUTTON pButton);
   19423 
   19424     HRESULT (STDMETHODCALLTYPE *ThumbBarSetImageList)(
   19425         ITaskbarList3* This,
   19426         HWND hwnd,
   19427         HIMAGELIST himl);
   19428 
   19429     HRESULT (STDMETHODCALLTYPE *SetOverlayIcon)(
   19430         ITaskbarList3* This,
   19431         HWND hwnd,
   19432         HICON hIcon,
   19433         LPCWSTR pszDescription);
   19434 
   19435     HRESULT (STDMETHODCALLTYPE *SetThumbnailTooltip)(
   19436         ITaskbarList3* This,
   19437         HWND hwnd,
   19438         LPCWSTR pszTip);
   19439 
   19440     HRESULT (STDMETHODCALLTYPE *SetThumbnailClip)(
   19441         ITaskbarList3* This,
   19442         HWND hwnd,
   19443         RECT *prcClip);
   19444 
   19445     END_INTERFACE
   19446 } ITaskbarList3Vtbl;
   19447 interface ITaskbarList3 {
   19448     CONST_VTBL ITaskbarList3Vtbl* lpVtbl;
   19449 };
   19450 
   19451 #ifdef COBJMACROS
   19452 #ifndef WIDL_C_INLINE_WRAPPERS
   19453 /*** IUnknown methods ***/
   19454 #define ITaskbarList3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   19455 #define ITaskbarList3_AddRef(This) (This)->lpVtbl->AddRef(This)
   19456 #define ITaskbarList3_Release(This) (This)->lpVtbl->Release(This)
   19457 /*** ITaskbarList methods ***/
   19458 #define ITaskbarList3_HrInit(This) (This)->lpVtbl->HrInit(This)
   19459 #define ITaskbarList3_AddTab(This,hwnd) (This)->lpVtbl->AddTab(This,hwnd)
   19460 #define ITaskbarList3_DeleteTab(This,hwnd) (This)->lpVtbl->DeleteTab(This,hwnd)
   19461 #define ITaskbarList3_ActivateTab(This,hwnd) (This)->lpVtbl->ActivateTab(This,hwnd)
   19462 #define ITaskbarList3_SetActiveAlt(This,hwnd) (This)->lpVtbl->SetActiveAlt(This,hwnd)
   19463 /*** ITaskbarList2 methods ***/
   19464 #define ITaskbarList3_MarkFullscreenWindow(This,hwnd,fFullscreen) (This)->lpVtbl->MarkFullscreenWindow(This,hwnd,fFullscreen)
   19465 /*** ITaskbarList3 methods ***/
   19466 #define ITaskbarList3_SetProgressValue(This,hwnd,ullCompleted,ullTotal) (This)->lpVtbl->SetProgressValue(This,hwnd,ullCompleted,ullTotal)
   19467 #define ITaskbarList3_SetProgressState(This,hwnd,tbpFlags) (This)->lpVtbl->SetProgressState(This,hwnd,tbpFlags)
   19468 #define ITaskbarList3_RegisterTab(This,hwndTab,hwndMDI) (This)->lpVtbl->RegisterTab(This,hwndTab,hwndMDI)
   19469 #define ITaskbarList3_UnregisterTab(This,hwndTab) (This)->lpVtbl->UnregisterTab(This,hwndTab)
   19470 #define ITaskbarList3_SetTabOrder(This,hwndTab,hwndInsertBefore) (This)->lpVtbl->SetTabOrder(This,hwndTab,hwndInsertBefore)
   19471 #define ITaskbarList3_SetTabActive(This,hwndTab,hwndMDI,dwReserved) (This)->lpVtbl->SetTabActive(This,hwndTab,hwndMDI,dwReserved)
   19472 #define ITaskbarList3_ThumbBarAddButtons(This,hwnd,cButtons,pButton) (This)->lpVtbl->ThumbBarAddButtons(This,hwnd,cButtons,pButton)
   19473 #define ITaskbarList3_ThumbBarUpdateButtons(This,hwnd,cButtons,pButton) (This)->lpVtbl->ThumbBarUpdateButtons(This,hwnd,cButtons,pButton)
   19474 #define ITaskbarList3_ThumbBarSetImageList(This,hwnd,himl) (This)->lpVtbl->ThumbBarSetImageList(This,hwnd,himl)
   19475 #define ITaskbarList3_SetOverlayIcon(This,hwnd,hIcon,pszDescription) (This)->lpVtbl->SetOverlayIcon(This,hwnd,hIcon,pszDescription)
   19476 #define ITaskbarList3_SetThumbnailTooltip(This,hwnd,pszTip) (This)->lpVtbl->SetThumbnailTooltip(This,hwnd,pszTip)
   19477 #define ITaskbarList3_SetThumbnailClip(This,hwnd,prcClip) (This)->lpVtbl->SetThumbnailClip(This,hwnd,prcClip)
   19478 #else
   19479 /*** IUnknown methods ***/
   19480 static FORCEINLINE HRESULT ITaskbarList3_QueryInterface(ITaskbarList3* This,REFIID riid,void **ppvObject) {
   19481     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   19482 }
   19483 static FORCEINLINE ULONG ITaskbarList3_AddRef(ITaskbarList3* This) {
   19484     return This->lpVtbl->AddRef(This);
   19485 }
   19486 static FORCEINLINE ULONG ITaskbarList3_Release(ITaskbarList3* This) {
   19487     return This->lpVtbl->Release(This);
   19488 }
   19489 /*** ITaskbarList methods ***/
   19490 static FORCEINLINE HRESULT ITaskbarList3_HrInit(ITaskbarList3* This) {
   19491     return This->lpVtbl->HrInit(This);
   19492 }
   19493 static FORCEINLINE HRESULT ITaskbarList3_AddTab(ITaskbarList3* This,HWND hwnd) {
   19494     return This->lpVtbl->AddTab(This,hwnd);
   19495 }
   19496 static FORCEINLINE HRESULT ITaskbarList3_DeleteTab(ITaskbarList3* This,HWND hwnd) {
   19497     return This->lpVtbl->DeleteTab(This,hwnd);
   19498 }
   19499 static FORCEINLINE HRESULT ITaskbarList3_ActivateTab(ITaskbarList3* This,HWND hwnd) {
   19500     return This->lpVtbl->ActivateTab(This,hwnd);
   19501 }
   19502 static FORCEINLINE HRESULT ITaskbarList3_SetActiveAlt(ITaskbarList3* This,HWND hwnd) {
   19503     return This->lpVtbl->SetActiveAlt(This,hwnd);
   19504 }
   19505 /*** ITaskbarList2 methods ***/
   19506 static FORCEINLINE HRESULT ITaskbarList3_MarkFullscreenWindow(ITaskbarList3* This,HWND hwnd,WINBOOL fFullscreen) {
   19507     return This->lpVtbl->MarkFullscreenWindow(This,hwnd,fFullscreen);
   19508 }
   19509 /*** ITaskbarList3 methods ***/
   19510 static FORCEINLINE HRESULT ITaskbarList3_SetProgressValue(ITaskbarList3* This,HWND hwnd,ULONGLONG ullCompleted,ULONGLONG ullTotal) {
   19511     return This->lpVtbl->SetProgressValue(This,hwnd,ullCompleted,ullTotal);
   19512 }
   19513 static FORCEINLINE HRESULT ITaskbarList3_SetProgressState(ITaskbarList3* This,HWND hwnd,TBPFLAG tbpFlags) {
   19514     return This->lpVtbl->SetProgressState(This,hwnd,tbpFlags);
   19515 }
   19516 static FORCEINLINE HRESULT ITaskbarList3_RegisterTab(ITaskbarList3* This,HWND hwndTab,HWND hwndMDI) {
   19517     return This->lpVtbl->RegisterTab(This,hwndTab,hwndMDI);
   19518 }
   19519 static FORCEINLINE HRESULT ITaskbarList3_UnregisterTab(ITaskbarList3* This,HWND hwndTab) {
   19520     return This->lpVtbl->UnregisterTab(This,hwndTab);
   19521 }
   19522 static FORCEINLINE HRESULT ITaskbarList3_SetTabOrder(ITaskbarList3* This,HWND hwndTab,HWND hwndInsertBefore) {
   19523     return This->lpVtbl->SetTabOrder(This,hwndTab,hwndInsertBefore);
   19524 }
   19525 static FORCEINLINE HRESULT ITaskbarList3_SetTabActive(ITaskbarList3* This,HWND hwndTab,HWND hwndMDI,DWORD dwReserved) {
   19526     return This->lpVtbl->SetTabActive(This,hwndTab,hwndMDI,dwReserved);
   19527 }
   19528 static FORCEINLINE HRESULT ITaskbarList3_ThumbBarAddButtons(ITaskbarList3* This,HWND hwnd,UINT cButtons,LPTHUMBBUTTON pButton) {
   19529     return This->lpVtbl->ThumbBarAddButtons(This,hwnd,cButtons,pButton);
   19530 }
   19531 static FORCEINLINE HRESULT ITaskbarList3_ThumbBarUpdateButtons(ITaskbarList3* This,HWND hwnd,UINT cButtons,LPTHUMBBUTTON pButton) {
   19532     return This->lpVtbl->ThumbBarUpdateButtons(This,hwnd,cButtons,pButton);
   19533 }
   19534 static FORCEINLINE HRESULT ITaskbarList3_ThumbBarSetImageList(ITaskbarList3* This,HWND hwnd,HIMAGELIST himl) {
   19535     return This->lpVtbl->ThumbBarSetImageList(This,hwnd,himl);
   19536 }
   19537 static FORCEINLINE HRESULT ITaskbarList3_SetOverlayIcon(ITaskbarList3* This,HWND hwnd,HICON hIcon,LPCWSTR pszDescription) {
   19538     return This->lpVtbl->SetOverlayIcon(This,hwnd,hIcon,pszDescription);
   19539 }
   19540 static FORCEINLINE HRESULT ITaskbarList3_SetThumbnailTooltip(ITaskbarList3* This,HWND hwnd,LPCWSTR pszTip) {
   19541     return This->lpVtbl->SetThumbnailTooltip(This,hwnd,pszTip);
   19542 }
   19543 static FORCEINLINE HRESULT ITaskbarList3_SetThumbnailClip(ITaskbarList3* This,HWND hwnd,RECT *prcClip) {
   19544     return This->lpVtbl->SetThumbnailClip(This,hwnd,prcClip);
   19545 }
   19546 #endif
   19547 #endif
   19548 
   19549 #endif
   19550 
   19551 HRESULT STDMETHODCALLTYPE ITaskbarList3_SetProgressValue_Proxy(
   19552     ITaskbarList3* This,
   19553     HWND hwnd,
   19554     ULONGLONG ullCompleted,
   19555     ULONGLONG ullTotal);
   19556 void __RPC_STUB ITaskbarList3_SetProgressValue_Stub(
   19557     IRpcStubBuffer* This,
   19558     IRpcChannelBuffer* pRpcChannelBuffer,
   19559     PRPC_MESSAGE pRpcMessage,
   19560     DWORD* pdwStubPhase);
   19561 HRESULT STDMETHODCALLTYPE ITaskbarList3_SetProgressState_Proxy(
   19562     ITaskbarList3* This,
   19563     HWND hwnd,
   19564     TBPFLAG tbpFlags);
   19565 void __RPC_STUB ITaskbarList3_SetProgressState_Stub(
   19566     IRpcStubBuffer* This,
   19567     IRpcChannelBuffer* pRpcChannelBuffer,
   19568     PRPC_MESSAGE pRpcMessage,
   19569     DWORD* pdwStubPhase);
   19570 HRESULT STDMETHODCALLTYPE ITaskbarList3_RegisterTab_Proxy(
   19571     ITaskbarList3* This,
   19572     HWND hwndTab,
   19573     HWND hwndMDI);
   19574 void __RPC_STUB ITaskbarList3_RegisterTab_Stub(
   19575     IRpcStubBuffer* This,
   19576     IRpcChannelBuffer* pRpcChannelBuffer,
   19577     PRPC_MESSAGE pRpcMessage,
   19578     DWORD* pdwStubPhase);
   19579 HRESULT STDMETHODCALLTYPE ITaskbarList3_UnregisterTab_Proxy(
   19580     ITaskbarList3* This,
   19581     HWND hwndTab);
   19582 void __RPC_STUB ITaskbarList3_UnregisterTab_Stub(
   19583     IRpcStubBuffer* This,
   19584     IRpcChannelBuffer* pRpcChannelBuffer,
   19585     PRPC_MESSAGE pRpcMessage,
   19586     DWORD* pdwStubPhase);
   19587 HRESULT STDMETHODCALLTYPE ITaskbarList3_SetTabOrder_Proxy(
   19588     ITaskbarList3* This,
   19589     HWND hwndTab,
   19590     HWND hwndInsertBefore);
   19591 void __RPC_STUB ITaskbarList3_SetTabOrder_Stub(
   19592     IRpcStubBuffer* This,
   19593     IRpcChannelBuffer* pRpcChannelBuffer,
   19594     PRPC_MESSAGE pRpcMessage,
   19595     DWORD* pdwStubPhase);
   19596 HRESULT STDMETHODCALLTYPE ITaskbarList3_SetTabActive_Proxy(
   19597     ITaskbarList3* This,
   19598     HWND hwndTab,
   19599     HWND hwndMDI,
   19600     DWORD dwReserved);
   19601 void __RPC_STUB ITaskbarList3_SetTabActive_Stub(
   19602     IRpcStubBuffer* This,
   19603     IRpcChannelBuffer* pRpcChannelBuffer,
   19604     PRPC_MESSAGE pRpcMessage,
   19605     DWORD* pdwStubPhase);
   19606 HRESULT STDMETHODCALLTYPE ITaskbarList3_ThumbBarAddButtons_Proxy(
   19607     ITaskbarList3* This,
   19608     HWND hwnd,
   19609     UINT cButtons,
   19610     LPTHUMBBUTTON pButton);
   19611 void __RPC_STUB ITaskbarList3_ThumbBarAddButtons_Stub(
   19612     IRpcStubBuffer* This,
   19613     IRpcChannelBuffer* pRpcChannelBuffer,
   19614     PRPC_MESSAGE pRpcMessage,
   19615     DWORD* pdwStubPhase);
   19616 HRESULT STDMETHODCALLTYPE ITaskbarList3_ThumbBarUpdateButtons_Proxy(
   19617     ITaskbarList3* This,
   19618     HWND hwnd,
   19619     UINT cButtons,
   19620     LPTHUMBBUTTON pButton);
   19621 void __RPC_STUB ITaskbarList3_ThumbBarUpdateButtons_Stub(
   19622     IRpcStubBuffer* This,
   19623     IRpcChannelBuffer* pRpcChannelBuffer,
   19624     PRPC_MESSAGE pRpcMessage,
   19625     DWORD* pdwStubPhase);
   19626 HRESULT STDMETHODCALLTYPE ITaskbarList3_ThumbBarSetImageList_Proxy(
   19627     ITaskbarList3* This,
   19628     HWND hwnd,
   19629     HIMAGELIST himl);
   19630 void __RPC_STUB ITaskbarList3_ThumbBarSetImageList_Stub(
   19631     IRpcStubBuffer* This,
   19632     IRpcChannelBuffer* pRpcChannelBuffer,
   19633     PRPC_MESSAGE pRpcMessage,
   19634     DWORD* pdwStubPhase);
   19635 HRESULT STDMETHODCALLTYPE ITaskbarList3_SetOverlayIcon_Proxy(
   19636     ITaskbarList3* This,
   19637     HWND hwnd,
   19638     HICON hIcon,
   19639     LPCWSTR pszDescription);
   19640 void __RPC_STUB ITaskbarList3_SetOverlayIcon_Stub(
   19641     IRpcStubBuffer* This,
   19642     IRpcChannelBuffer* pRpcChannelBuffer,
   19643     PRPC_MESSAGE pRpcMessage,
   19644     DWORD* pdwStubPhase);
   19645 HRESULT STDMETHODCALLTYPE ITaskbarList3_SetThumbnailTooltip_Proxy(
   19646     ITaskbarList3* This,
   19647     HWND hwnd,
   19648     LPCWSTR pszTip);
   19649 void __RPC_STUB ITaskbarList3_SetThumbnailTooltip_Stub(
   19650     IRpcStubBuffer* This,
   19651     IRpcChannelBuffer* pRpcChannelBuffer,
   19652     PRPC_MESSAGE pRpcMessage,
   19653     DWORD* pdwStubPhase);
   19654 HRESULT STDMETHODCALLTYPE ITaskbarList3_SetThumbnailClip_Proxy(
   19655     ITaskbarList3* This,
   19656     HWND hwnd,
   19657     RECT *prcClip);
   19658 void __RPC_STUB ITaskbarList3_SetThumbnailClip_Stub(
   19659     IRpcStubBuffer* This,
   19660     IRpcChannelBuffer* pRpcChannelBuffer,
   19661     PRPC_MESSAGE pRpcMessage,
   19662     DWORD* pdwStubPhase);
   19663 
   19664 #endif  /* __ITaskbarList3_INTERFACE_DEFINED__ */
   19665 
   19666 
   19667 /*****************************************************************************
   19668  * ITaskbarList4 interface
   19669  */
   19670 #ifndef __ITaskbarList4_INTERFACE_DEFINED__
   19671 #define __ITaskbarList4_INTERFACE_DEFINED__
   19672 
   19673 typedef enum STPFLAG {
   19674     STPF_NONE = 0x0,
   19675     STPF_USEAPPTHUMBNAILALWAYS = 0x1,
   19676     STPF_USEAPPTHUMBNAILWHENACTIVE = 0x2,
   19677     STPF_USEAPPPEEKALWAYS = 0x4,
   19678     STPF_USEAPPPEEKWHENACTIVE = 0x8
   19679 } STPFLAG;
   19680 
   19681 DEFINE_ENUM_FLAG_OPERATORS(STPFLAG)
   19682 
   19683 DEFINE_GUID(IID_ITaskbarList4, 0xc43dc798, 0x95d1, 0x4bea, 0x90,0x30, 0xbb,0x99,0xe2,0x98,0x3a,0x1a);
   19684 #if defined(__cplusplus) && !defined(CINTERFACE)
   19685 MIDL_INTERFACE("c43dc798-95d1-4bea-9030-bb99e2983a1a")
   19686 ITaskbarList4 : public ITaskbarList3
   19687 {
   19688     virtual HRESULT STDMETHODCALLTYPE SetTabProperties(
   19689         HWND hwndTab,
   19690         STPFLAG stpFlags) = 0;
   19691 
   19692 };
   19693 #ifdef __CRT_UUID_DECL
   19694 __CRT_UUID_DECL(ITaskbarList4, 0xc43dc798, 0x95d1, 0x4bea, 0x90,0x30, 0xbb,0x99,0xe2,0x98,0x3a,0x1a)
   19695 #endif
   19696 #else
   19697 typedef struct ITaskbarList4Vtbl {
   19698     BEGIN_INTERFACE
   19699 
   19700     /*** IUnknown methods ***/
   19701     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   19702         ITaskbarList4* This,
   19703         REFIID riid,
   19704         void **ppvObject);
   19705 
   19706     ULONG (STDMETHODCALLTYPE *AddRef)(
   19707         ITaskbarList4* This);
   19708 
   19709     ULONG (STDMETHODCALLTYPE *Release)(
   19710         ITaskbarList4* This);
   19711 
   19712     /*** ITaskbarList methods ***/
   19713     HRESULT (STDMETHODCALLTYPE *HrInit)(
   19714         ITaskbarList4* This);
   19715 
   19716     HRESULT (STDMETHODCALLTYPE *AddTab)(
   19717         ITaskbarList4* This,
   19718         HWND hwnd);
   19719 
   19720     HRESULT (STDMETHODCALLTYPE *DeleteTab)(
   19721         ITaskbarList4* This,
   19722         HWND hwnd);
   19723 
   19724     HRESULT (STDMETHODCALLTYPE *ActivateTab)(
   19725         ITaskbarList4* This,
   19726         HWND hwnd);
   19727 
   19728     HRESULT (STDMETHODCALLTYPE *SetActiveAlt)(
   19729         ITaskbarList4* This,
   19730         HWND hwnd);
   19731 
   19732     /*** ITaskbarList2 methods ***/
   19733     HRESULT (STDMETHODCALLTYPE *MarkFullscreenWindow)(
   19734         ITaskbarList4* This,
   19735         HWND hwnd,
   19736         WINBOOL fFullscreen);
   19737 
   19738     /*** ITaskbarList3 methods ***/
   19739     HRESULT (STDMETHODCALLTYPE *SetProgressValue)(
   19740         ITaskbarList4* This,
   19741         HWND hwnd,
   19742         ULONGLONG ullCompleted,
   19743         ULONGLONG ullTotal);
   19744 
   19745     HRESULT (STDMETHODCALLTYPE *SetProgressState)(
   19746         ITaskbarList4* This,
   19747         HWND hwnd,
   19748         TBPFLAG tbpFlags);
   19749 
   19750     HRESULT (STDMETHODCALLTYPE *RegisterTab)(
   19751         ITaskbarList4* This,
   19752         HWND hwndTab,
   19753         HWND hwndMDI);
   19754 
   19755     HRESULT (STDMETHODCALLTYPE *UnregisterTab)(
   19756         ITaskbarList4* This,
   19757         HWND hwndTab);
   19758 
   19759     HRESULT (STDMETHODCALLTYPE *SetTabOrder)(
   19760         ITaskbarList4* This,
   19761         HWND hwndTab,
   19762         HWND hwndInsertBefore);
   19763 
   19764     HRESULT (STDMETHODCALLTYPE *SetTabActive)(
   19765         ITaskbarList4* This,
   19766         HWND hwndTab,
   19767         HWND hwndMDI,
   19768         DWORD dwReserved);
   19769 
   19770     HRESULT (STDMETHODCALLTYPE *ThumbBarAddButtons)(
   19771         ITaskbarList4* This,
   19772         HWND hwnd,
   19773         UINT cButtons,
   19774         LPTHUMBBUTTON pButton);
   19775 
   19776     HRESULT (STDMETHODCALLTYPE *ThumbBarUpdateButtons)(
   19777         ITaskbarList4* This,
   19778         HWND hwnd,
   19779         UINT cButtons,
   19780         LPTHUMBBUTTON pButton);
   19781 
   19782     HRESULT (STDMETHODCALLTYPE *ThumbBarSetImageList)(
   19783         ITaskbarList4* This,
   19784         HWND hwnd,
   19785         HIMAGELIST himl);
   19786 
   19787     HRESULT (STDMETHODCALLTYPE *SetOverlayIcon)(
   19788         ITaskbarList4* This,
   19789         HWND hwnd,
   19790         HICON hIcon,
   19791         LPCWSTR pszDescription);
   19792 
   19793     HRESULT (STDMETHODCALLTYPE *SetThumbnailTooltip)(
   19794         ITaskbarList4* This,
   19795         HWND hwnd,
   19796         LPCWSTR pszTip);
   19797 
   19798     HRESULT (STDMETHODCALLTYPE *SetThumbnailClip)(
   19799         ITaskbarList4* This,
   19800         HWND hwnd,
   19801         RECT *prcClip);
   19802 
   19803     /*** ITaskbarList4 methods ***/
   19804     HRESULT (STDMETHODCALLTYPE *SetTabProperties)(
   19805         ITaskbarList4* This,
   19806         HWND hwndTab,
   19807         STPFLAG stpFlags);
   19808 
   19809     END_INTERFACE
   19810 } ITaskbarList4Vtbl;
   19811 interface ITaskbarList4 {
   19812     CONST_VTBL ITaskbarList4Vtbl* lpVtbl;
   19813 };
   19814 
   19815 #ifdef COBJMACROS
   19816 #ifndef WIDL_C_INLINE_WRAPPERS
   19817 /*** IUnknown methods ***/
   19818 #define ITaskbarList4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   19819 #define ITaskbarList4_AddRef(This) (This)->lpVtbl->AddRef(This)
   19820 #define ITaskbarList4_Release(This) (This)->lpVtbl->Release(This)
   19821 /*** ITaskbarList methods ***/
   19822 #define ITaskbarList4_HrInit(This) (This)->lpVtbl->HrInit(This)
   19823 #define ITaskbarList4_AddTab(This,hwnd) (This)->lpVtbl->AddTab(This,hwnd)
   19824 #define ITaskbarList4_DeleteTab(This,hwnd) (This)->lpVtbl->DeleteTab(This,hwnd)
   19825 #define ITaskbarList4_ActivateTab(This,hwnd) (This)->lpVtbl->ActivateTab(This,hwnd)
   19826 #define ITaskbarList4_SetActiveAlt(This,hwnd) (This)->lpVtbl->SetActiveAlt(This,hwnd)
   19827 /*** ITaskbarList2 methods ***/
   19828 #define ITaskbarList4_MarkFullscreenWindow(This,hwnd,fFullscreen) (This)->lpVtbl->MarkFullscreenWindow(This,hwnd,fFullscreen)
   19829 /*** ITaskbarList3 methods ***/
   19830 #define ITaskbarList4_SetProgressValue(This,hwnd,ullCompleted,ullTotal) (This)->lpVtbl->SetProgressValue(This,hwnd,ullCompleted,ullTotal)
   19831 #define ITaskbarList4_SetProgressState(This,hwnd,tbpFlags) (This)->lpVtbl->SetProgressState(This,hwnd,tbpFlags)
   19832 #define ITaskbarList4_RegisterTab(This,hwndTab,hwndMDI) (This)->lpVtbl->RegisterTab(This,hwndTab,hwndMDI)
   19833 #define ITaskbarList4_UnregisterTab(This,hwndTab) (This)->lpVtbl->UnregisterTab(This,hwndTab)
   19834 #define ITaskbarList4_SetTabOrder(This,hwndTab,hwndInsertBefore) (This)->lpVtbl->SetTabOrder(This,hwndTab,hwndInsertBefore)
   19835 #define ITaskbarList4_SetTabActive(This,hwndTab,hwndMDI,dwReserved) (This)->lpVtbl->SetTabActive(This,hwndTab,hwndMDI,dwReserved)
   19836 #define ITaskbarList4_ThumbBarAddButtons(This,hwnd,cButtons,pButton) (This)->lpVtbl->ThumbBarAddButtons(This,hwnd,cButtons,pButton)
   19837 #define ITaskbarList4_ThumbBarUpdateButtons(This,hwnd,cButtons,pButton) (This)->lpVtbl->ThumbBarUpdateButtons(This,hwnd,cButtons,pButton)
   19838 #define ITaskbarList4_ThumbBarSetImageList(This,hwnd,himl) (This)->lpVtbl->ThumbBarSetImageList(This,hwnd,himl)
   19839 #define ITaskbarList4_SetOverlayIcon(This,hwnd,hIcon,pszDescription) (This)->lpVtbl->SetOverlayIcon(This,hwnd,hIcon,pszDescription)
   19840 #define ITaskbarList4_SetThumbnailTooltip(This,hwnd,pszTip) (This)->lpVtbl->SetThumbnailTooltip(This,hwnd,pszTip)
   19841 #define ITaskbarList4_SetThumbnailClip(This,hwnd,prcClip) (This)->lpVtbl->SetThumbnailClip(This,hwnd,prcClip)
   19842 /*** ITaskbarList4 methods ***/
   19843 #define ITaskbarList4_SetTabProperties(This,hwndTab,stpFlags) (This)->lpVtbl->SetTabProperties(This,hwndTab,stpFlags)
   19844 #else
   19845 /*** IUnknown methods ***/
   19846 static FORCEINLINE HRESULT ITaskbarList4_QueryInterface(ITaskbarList4* This,REFIID riid,void **ppvObject) {
   19847     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   19848 }
   19849 static FORCEINLINE ULONG ITaskbarList4_AddRef(ITaskbarList4* This) {
   19850     return This->lpVtbl->AddRef(This);
   19851 }
   19852 static FORCEINLINE ULONG ITaskbarList4_Release(ITaskbarList4* This) {
   19853     return This->lpVtbl->Release(This);
   19854 }
   19855 /*** ITaskbarList methods ***/
   19856 static FORCEINLINE HRESULT ITaskbarList4_HrInit(ITaskbarList4* This) {
   19857     return This->lpVtbl->HrInit(This);
   19858 }
   19859 static FORCEINLINE HRESULT ITaskbarList4_AddTab(ITaskbarList4* This,HWND hwnd) {
   19860     return This->lpVtbl->AddTab(This,hwnd);
   19861 }
   19862 static FORCEINLINE HRESULT ITaskbarList4_DeleteTab(ITaskbarList4* This,HWND hwnd) {
   19863     return This->lpVtbl->DeleteTab(This,hwnd);
   19864 }
   19865 static FORCEINLINE HRESULT ITaskbarList4_ActivateTab(ITaskbarList4* This,HWND hwnd) {
   19866     return This->lpVtbl->ActivateTab(This,hwnd);
   19867 }
   19868 static FORCEINLINE HRESULT ITaskbarList4_SetActiveAlt(ITaskbarList4* This,HWND hwnd) {
   19869     return This->lpVtbl->SetActiveAlt(This,hwnd);
   19870 }
   19871 /*** ITaskbarList2 methods ***/
   19872 static FORCEINLINE HRESULT ITaskbarList4_MarkFullscreenWindow(ITaskbarList4* This,HWND hwnd,WINBOOL fFullscreen) {
   19873     return This->lpVtbl->MarkFullscreenWindow(This,hwnd,fFullscreen);
   19874 }
   19875 /*** ITaskbarList3 methods ***/
   19876 static FORCEINLINE HRESULT ITaskbarList4_SetProgressValue(ITaskbarList4* This,HWND hwnd,ULONGLONG ullCompleted,ULONGLONG ullTotal) {
   19877     return This->lpVtbl->SetProgressValue(This,hwnd,ullCompleted,ullTotal);
   19878 }
   19879 static FORCEINLINE HRESULT ITaskbarList4_SetProgressState(ITaskbarList4* This,HWND hwnd,TBPFLAG tbpFlags) {
   19880     return This->lpVtbl->SetProgressState(This,hwnd,tbpFlags);
   19881 }
   19882 static FORCEINLINE HRESULT ITaskbarList4_RegisterTab(ITaskbarList4* This,HWND hwndTab,HWND hwndMDI) {
   19883     return This->lpVtbl->RegisterTab(This,hwndTab,hwndMDI);
   19884 }
   19885 static FORCEINLINE HRESULT ITaskbarList4_UnregisterTab(ITaskbarList4* This,HWND hwndTab) {
   19886     return This->lpVtbl->UnregisterTab(This,hwndTab);
   19887 }
   19888 static FORCEINLINE HRESULT ITaskbarList4_SetTabOrder(ITaskbarList4* This,HWND hwndTab,HWND hwndInsertBefore) {
   19889     return This->lpVtbl->SetTabOrder(This,hwndTab,hwndInsertBefore);
   19890 }
   19891 static FORCEINLINE HRESULT ITaskbarList4_SetTabActive(ITaskbarList4* This,HWND hwndTab,HWND hwndMDI,DWORD dwReserved) {
   19892     return This->lpVtbl->SetTabActive(This,hwndTab,hwndMDI,dwReserved);
   19893 }
   19894 static FORCEINLINE HRESULT ITaskbarList4_ThumbBarAddButtons(ITaskbarList4* This,HWND hwnd,UINT cButtons,LPTHUMBBUTTON pButton) {
   19895     return This->lpVtbl->ThumbBarAddButtons(This,hwnd,cButtons,pButton);
   19896 }
   19897 static FORCEINLINE HRESULT ITaskbarList4_ThumbBarUpdateButtons(ITaskbarList4* This,HWND hwnd,UINT cButtons,LPTHUMBBUTTON pButton) {
   19898     return This->lpVtbl->ThumbBarUpdateButtons(This,hwnd,cButtons,pButton);
   19899 }
   19900 static FORCEINLINE HRESULT ITaskbarList4_ThumbBarSetImageList(ITaskbarList4* This,HWND hwnd,HIMAGELIST himl) {
   19901     return This->lpVtbl->ThumbBarSetImageList(This,hwnd,himl);
   19902 }
   19903 static FORCEINLINE HRESULT ITaskbarList4_SetOverlayIcon(ITaskbarList4* This,HWND hwnd,HICON hIcon,LPCWSTR pszDescription) {
   19904     return This->lpVtbl->SetOverlayIcon(This,hwnd,hIcon,pszDescription);
   19905 }
   19906 static FORCEINLINE HRESULT ITaskbarList4_SetThumbnailTooltip(ITaskbarList4* This,HWND hwnd,LPCWSTR pszTip) {
   19907     return This->lpVtbl->SetThumbnailTooltip(This,hwnd,pszTip);
   19908 }
   19909 static FORCEINLINE HRESULT ITaskbarList4_SetThumbnailClip(ITaskbarList4* This,HWND hwnd,RECT *prcClip) {
   19910     return This->lpVtbl->SetThumbnailClip(This,hwnd,prcClip);
   19911 }
   19912 /*** ITaskbarList4 methods ***/
   19913 static FORCEINLINE HRESULT ITaskbarList4_SetTabProperties(ITaskbarList4* This,HWND hwndTab,STPFLAG stpFlags) {
   19914     return This->lpVtbl->SetTabProperties(This,hwndTab,stpFlags);
   19915 }
   19916 #endif
   19917 #endif
   19918 
   19919 #endif
   19920 
   19921 HRESULT STDMETHODCALLTYPE ITaskbarList4_SetTabProperties_Proxy(
   19922     ITaskbarList4* This,
   19923     HWND hwndTab,
   19924     STPFLAG stpFlags);
   19925 void __RPC_STUB ITaskbarList4_SetTabProperties_Stub(
   19926     IRpcStubBuffer* This,
   19927     IRpcChannelBuffer* pRpcChannelBuffer,
   19928     PRPC_MESSAGE pRpcMessage,
   19929     DWORD* pdwStubPhase);
   19930 
   19931 #endif  /* __ITaskbarList4_INTERFACE_DEFINED__ */
   19932 
   19933 
   19934 /*****************************************************************************
   19935  * IStartMenuPinnedList interface
   19936  */
   19937 #ifndef __IStartMenuPinnedList_INTERFACE_DEFINED__
   19938 #define __IStartMenuPinnedList_INTERFACE_DEFINED__
   19939 
   19940 DEFINE_GUID(IID_IStartMenuPinnedList, 0x4cd19ada, 0x25a5, 0x4a32, 0xb3,0xb7, 0x34,0x7b,0xee,0x5b,0xe3,0x6b);
   19941 #if defined(__cplusplus) && !defined(CINTERFACE)
   19942 MIDL_INTERFACE("4cd19ada-25a5-4a32-b3b7-347bee5be36b")
   19943 IStartMenuPinnedList : public IUnknown
   19944 {
   19945     virtual HRESULT STDMETHODCALLTYPE RemoveFromList(
   19946         IShellItem *pitem) = 0;
   19947 
   19948 };
   19949 #ifdef __CRT_UUID_DECL
   19950 __CRT_UUID_DECL(IStartMenuPinnedList, 0x4cd19ada, 0x25a5, 0x4a32, 0xb3,0xb7, 0x34,0x7b,0xee,0x5b,0xe3,0x6b)
   19951 #endif
   19952 #else
   19953 typedef struct IStartMenuPinnedListVtbl {
   19954     BEGIN_INTERFACE
   19955 
   19956     /*** IUnknown methods ***/
   19957     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   19958         IStartMenuPinnedList* This,
   19959         REFIID riid,
   19960         void **ppvObject);
   19961 
   19962     ULONG (STDMETHODCALLTYPE *AddRef)(
   19963         IStartMenuPinnedList* This);
   19964 
   19965     ULONG (STDMETHODCALLTYPE *Release)(
   19966         IStartMenuPinnedList* This);
   19967 
   19968     /*** IStartMenuPinnedList methods ***/
   19969     HRESULT (STDMETHODCALLTYPE *RemoveFromList)(
   19970         IStartMenuPinnedList* This,
   19971         IShellItem *pitem);
   19972 
   19973     END_INTERFACE
   19974 } IStartMenuPinnedListVtbl;
   19975 interface IStartMenuPinnedList {
   19976     CONST_VTBL IStartMenuPinnedListVtbl* lpVtbl;
   19977 };
   19978 
   19979 #ifdef COBJMACROS
   19980 #ifndef WIDL_C_INLINE_WRAPPERS
   19981 /*** IUnknown methods ***/
   19982 #define IStartMenuPinnedList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   19983 #define IStartMenuPinnedList_AddRef(This) (This)->lpVtbl->AddRef(This)
   19984 #define IStartMenuPinnedList_Release(This) (This)->lpVtbl->Release(This)
   19985 /*** IStartMenuPinnedList methods ***/
   19986 #define IStartMenuPinnedList_RemoveFromList(This,pitem) (This)->lpVtbl->RemoveFromList(This,pitem)
   19987 #else
   19988 /*** IUnknown methods ***/
   19989 static FORCEINLINE HRESULT IStartMenuPinnedList_QueryInterface(IStartMenuPinnedList* This,REFIID riid,void **ppvObject) {
   19990     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   19991 }
   19992 static FORCEINLINE ULONG IStartMenuPinnedList_AddRef(IStartMenuPinnedList* This) {
   19993     return This->lpVtbl->AddRef(This);
   19994 }
   19995 static FORCEINLINE ULONG IStartMenuPinnedList_Release(IStartMenuPinnedList* This) {
   19996     return This->lpVtbl->Release(This);
   19997 }
   19998 /*** IStartMenuPinnedList methods ***/
   19999 static FORCEINLINE HRESULT IStartMenuPinnedList_RemoveFromList(IStartMenuPinnedList* This,IShellItem *pitem) {
   20000     return This->lpVtbl->RemoveFromList(This,pitem);
   20001 }
   20002 #endif
   20003 #endif
   20004 
   20005 #endif
   20006 
   20007 HRESULT STDMETHODCALLTYPE IStartMenuPinnedList_RemoveFromList_Proxy(
   20008     IStartMenuPinnedList* This,
   20009     IShellItem *pitem);
   20010 void __RPC_STUB IStartMenuPinnedList_RemoveFromList_Stub(
   20011     IRpcStubBuffer* This,
   20012     IRpcChannelBuffer* pRpcChannelBuffer,
   20013     PRPC_MESSAGE pRpcMessage,
   20014     DWORD* pdwStubPhase);
   20015 
   20016 #endif  /* __IStartMenuPinnedList_INTERFACE_DEFINED__ */
   20017 
   20018 
   20019 /*****************************************************************************
   20020  * ICDBurn interface
   20021  */
   20022 #ifndef __ICDBurn_INTERFACE_DEFINED__
   20023 #define __ICDBurn_INTERFACE_DEFINED__
   20024 
   20025 DEFINE_GUID(IID_ICDBurn, 0x3d73a659, 0xe5d0, 0x4d42, 0xaf,0xc0, 0x51,0x21,0xba,0x42,0x5c,0x8d);
   20026 #if defined(__cplusplus) && !defined(CINTERFACE)
   20027 MIDL_INTERFACE("3d73a659-e5d0-4d42-afc0-5121ba425c8d")
   20028 ICDBurn : public IUnknown
   20029 {
   20030     virtual HRESULT STDMETHODCALLTYPE GetRecorderDriveLetter(
   20031         LPWSTR pszDrive,
   20032         UINT cch) = 0;
   20033 
   20034     virtual HRESULT STDMETHODCALLTYPE Burn(
   20035         HWND hwnd) = 0;
   20036 
   20037     virtual HRESULT STDMETHODCALLTYPE HasRecordableDrive(
   20038         WINBOOL *pfHasRecorder) = 0;
   20039 
   20040 };
   20041 #ifdef __CRT_UUID_DECL
   20042 __CRT_UUID_DECL(ICDBurn, 0x3d73a659, 0xe5d0, 0x4d42, 0xaf,0xc0, 0x51,0x21,0xba,0x42,0x5c,0x8d)
   20043 #endif
   20044 #else
   20045 typedef struct ICDBurnVtbl {
   20046     BEGIN_INTERFACE
   20047 
   20048     /*** IUnknown methods ***/
   20049     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   20050         ICDBurn* This,
   20051         REFIID riid,
   20052         void **ppvObject);
   20053 
   20054     ULONG (STDMETHODCALLTYPE *AddRef)(
   20055         ICDBurn* This);
   20056 
   20057     ULONG (STDMETHODCALLTYPE *Release)(
   20058         ICDBurn* This);
   20059 
   20060     /*** ICDBurn methods ***/
   20061     HRESULT (STDMETHODCALLTYPE *GetRecorderDriveLetter)(
   20062         ICDBurn* This,
   20063         LPWSTR pszDrive,
   20064         UINT cch);
   20065 
   20066     HRESULT (STDMETHODCALLTYPE *Burn)(
   20067         ICDBurn* This,
   20068         HWND hwnd);
   20069 
   20070     HRESULT (STDMETHODCALLTYPE *HasRecordableDrive)(
   20071         ICDBurn* This,
   20072         WINBOOL *pfHasRecorder);
   20073 
   20074     END_INTERFACE
   20075 } ICDBurnVtbl;
   20076 interface ICDBurn {
   20077     CONST_VTBL ICDBurnVtbl* lpVtbl;
   20078 };
   20079 
   20080 #ifdef COBJMACROS
   20081 #ifndef WIDL_C_INLINE_WRAPPERS
   20082 /*** IUnknown methods ***/
   20083 #define ICDBurn_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   20084 #define ICDBurn_AddRef(This) (This)->lpVtbl->AddRef(This)
   20085 #define ICDBurn_Release(This) (This)->lpVtbl->Release(This)
   20086 /*** ICDBurn methods ***/
   20087 #define ICDBurn_GetRecorderDriveLetter(This,pszDrive,cch) (This)->lpVtbl->GetRecorderDriveLetter(This,pszDrive,cch)
   20088 #define ICDBurn_Burn(This,hwnd) (This)->lpVtbl->Burn(This,hwnd)
   20089 #define ICDBurn_HasRecordableDrive(This,pfHasRecorder) (This)->lpVtbl->HasRecordableDrive(This,pfHasRecorder)
   20090 #else
   20091 /*** IUnknown methods ***/
   20092 static FORCEINLINE HRESULT ICDBurn_QueryInterface(ICDBurn* This,REFIID riid,void **ppvObject) {
   20093     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   20094 }
   20095 static FORCEINLINE ULONG ICDBurn_AddRef(ICDBurn* This) {
   20096     return This->lpVtbl->AddRef(This);
   20097 }
   20098 static FORCEINLINE ULONG ICDBurn_Release(ICDBurn* This) {
   20099     return This->lpVtbl->Release(This);
   20100 }
   20101 /*** ICDBurn methods ***/
   20102 static FORCEINLINE HRESULT ICDBurn_GetRecorderDriveLetter(ICDBurn* This,LPWSTR pszDrive,UINT cch) {
   20103     return This->lpVtbl->GetRecorderDriveLetter(This,pszDrive,cch);
   20104 }
   20105 static FORCEINLINE HRESULT ICDBurn_Burn(ICDBurn* This,HWND hwnd) {
   20106     return This->lpVtbl->Burn(This,hwnd);
   20107 }
   20108 static FORCEINLINE HRESULT ICDBurn_HasRecordableDrive(ICDBurn* This,WINBOOL *pfHasRecorder) {
   20109     return This->lpVtbl->HasRecordableDrive(This,pfHasRecorder);
   20110 }
   20111 #endif
   20112 #endif
   20113 
   20114 #endif
   20115 
   20116 HRESULT STDMETHODCALLTYPE ICDBurn_GetRecorderDriveLetter_Proxy(
   20117     ICDBurn* This,
   20118     LPWSTR pszDrive,
   20119     UINT cch);
   20120 void __RPC_STUB ICDBurn_GetRecorderDriveLetter_Stub(
   20121     IRpcStubBuffer* This,
   20122     IRpcChannelBuffer* pRpcChannelBuffer,
   20123     PRPC_MESSAGE pRpcMessage,
   20124     DWORD* pdwStubPhase);
   20125 HRESULT STDMETHODCALLTYPE ICDBurn_Burn_Proxy(
   20126     ICDBurn* This,
   20127     HWND hwnd);
   20128 void __RPC_STUB ICDBurn_Burn_Stub(
   20129     IRpcStubBuffer* This,
   20130     IRpcChannelBuffer* pRpcChannelBuffer,
   20131     PRPC_MESSAGE pRpcMessage,
   20132     DWORD* pdwStubPhase);
   20133 HRESULT STDMETHODCALLTYPE ICDBurn_HasRecordableDrive_Proxy(
   20134     ICDBurn* This,
   20135     WINBOOL *pfHasRecorder);
   20136 void __RPC_STUB ICDBurn_HasRecordableDrive_Stub(
   20137     IRpcStubBuffer* This,
   20138     IRpcChannelBuffer* pRpcChannelBuffer,
   20139     PRPC_MESSAGE pRpcMessage,
   20140     DWORD* pdwStubPhase);
   20141 
   20142 #endif  /* __ICDBurn_INTERFACE_DEFINED__ */
   20143 
   20144 
   20145 #define IDD_WIZEXTN_FIRST 0x5000
   20146 #define IDD_WIZEXTN_LAST 0x5100
   20147 
   20148 /*****************************************************************************
   20149  * IWizardSite interface
   20150  */
   20151 #ifndef __IWizardSite_INTERFACE_DEFINED__
   20152 #define __IWizardSite_INTERFACE_DEFINED__
   20153 
   20154 DEFINE_GUID(IID_IWizardSite, 0x88960f5b, 0x422f, 0x4e7b, 0x80,0x13, 0x73,0x41,0x53,0x81,0xc3,0xc3);
   20155 #if defined(__cplusplus) && !defined(CINTERFACE)
   20156 MIDL_INTERFACE("88960f5b-422f-4e7b-8013-73415381c3c3")
   20157 IWizardSite : public IUnknown
   20158 {
   20159     virtual HRESULT STDMETHODCALLTYPE GetPreviousPage(
   20160         HPROPSHEETPAGE *phpage) = 0;
   20161 
   20162     virtual HRESULT STDMETHODCALLTYPE GetNextPage(
   20163         HPROPSHEETPAGE *phpage) = 0;
   20164 
   20165     virtual HRESULT STDMETHODCALLTYPE GetCancelledPage(
   20166         HPROPSHEETPAGE *phpage) = 0;
   20167 
   20168 };
   20169 #ifdef __CRT_UUID_DECL
   20170 __CRT_UUID_DECL(IWizardSite, 0x88960f5b, 0x422f, 0x4e7b, 0x80,0x13, 0x73,0x41,0x53,0x81,0xc3,0xc3)
   20171 #endif
   20172 #else
   20173 typedef struct IWizardSiteVtbl {
   20174     BEGIN_INTERFACE
   20175 
   20176     /*** IUnknown methods ***/
   20177     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   20178         IWizardSite* This,
   20179         REFIID riid,
   20180         void **ppvObject);
   20181 
   20182     ULONG (STDMETHODCALLTYPE *AddRef)(
   20183         IWizardSite* This);
   20184 
   20185     ULONG (STDMETHODCALLTYPE *Release)(
   20186         IWizardSite* This);
   20187 
   20188     /*** IWizardSite methods ***/
   20189     HRESULT (STDMETHODCALLTYPE *GetPreviousPage)(
   20190         IWizardSite* This,
   20191         HPROPSHEETPAGE *phpage);
   20192 
   20193     HRESULT (STDMETHODCALLTYPE *GetNextPage)(
   20194         IWizardSite* This,
   20195         HPROPSHEETPAGE *phpage);
   20196 
   20197     HRESULT (STDMETHODCALLTYPE *GetCancelledPage)(
   20198         IWizardSite* This,
   20199         HPROPSHEETPAGE *phpage);
   20200 
   20201     END_INTERFACE
   20202 } IWizardSiteVtbl;
   20203 interface IWizardSite {
   20204     CONST_VTBL IWizardSiteVtbl* lpVtbl;
   20205 };
   20206 
   20207 #ifdef COBJMACROS
   20208 #ifndef WIDL_C_INLINE_WRAPPERS
   20209 /*** IUnknown methods ***/
   20210 #define IWizardSite_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   20211 #define IWizardSite_AddRef(This) (This)->lpVtbl->AddRef(This)
   20212 #define IWizardSite_Release(This) (This)->lpVtbl->Release(This)
   20213 /*** IWizardSite methods ***/
   20214 #define IWizardSite_GetPreviousPage(This,phpage) (This)->lpVtbl->GetPreviousPage(This,phpage)
   20215 #define IWizardSite_GetNextPage(This,phpage) (This)->lpVtbl->GetNextPage(This,phpage)
   20216 #define IWizardSite_GetCancelledPage(This,phpage) (This)->lpVtbl->GetCancelledPage(This,phpage)
   20217 #else
   20218 /*** IUnknown methods ***/
   20219 static FORCEINLINE HRESULT IWizardSite_QueryInterface(IWizardSite* This,REFIID riid,void **ppvObject) {
   20220     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   20221 }
   20222 static FORCEINLINE ULONG IWizardSite_AddRef(IWizardSite* This) {
   20223     return This->lpVtbl->AddRef(This);
   20224 }
   20225 static FORCEINLINE ULONG IWizardSite_Release(IWizardSite* This) {
   20226     return This->lpVtbl->Release(This);
   20227 }
   20228 /*** IWizardSite methods ***/
   20229 static FORCEINLINE HRESULT IWizardSite_GetPreviousPage(IWizardSite* This,HPROPSHEETPAGE *phpage) {
   20230     return This->lpVtbl->GetPreviousPage(This,phpage);
   20231 }
   20232 static FORCEINLINE HRESULT IWizardSite_GetNextPage(IWizardSite* This,HPROPSHEETPAGE *phpage) {
   20233     return This->lpVtbl->GetNextPage(This,phpage);
   20234 }
   20235 static FORCEINLINE HRESULT IWizardSite_GetCancelledPage(IWizardSite* This,HPROPSHEETPAGE *phpage) {
   20236     return This->lpVtbl->GetCancelledPage(This,phpage);
   20237 }
   20238 #endif
   20239 #endif
   20240 
   20241 #endif
   20242 
   20243 HRESULT STDMETHODCALLTYPE IWizardSite_GetPreviousPage_Proxy(
   20244     IWizardSite* This,
   20245     HPROPSHEETPAGE *phpage);
   20246 void __RPC_STUB IWizardSite_GetPreviousPage_Stub(
   20247     IRpcStubBuffer* This,
   20248     IRpcChannelBuffer* pRpcChannelBuffer,
   20249     PRPC_MESSAGE pRpcMessage,
   20250     DWORD* pdwStubPhase);
   20251 HRESULT STDMETHODCALLTYPE IWizardSite_GetNextPage_Proxy(
   20252     IWizardSite* This,
   20253     HPROPSHEETPAGE *phpage);
   20254 void __RPC_STUB IWizardSite_GetNextPage_Stub(
   20255     IRpcStubBuffer* This,
   20256     IRpcChannelBuffer* pRpcChannelBuffer,
   20257     PRPC_MESSAGE pRpcMessage,
   20258     DWORD* pdwStubPhase);
   20259 HRESULT STDMETHODCALLTYPE IWizardSite_GetCancelledPage_Proxy(
   20260     IWizardSite* This,
   20261     HPROPSHEETPAGE *phpage);
   20262 void __RPC_STUB IWizardSite_GetCancelledPage_Stub(
   20263     IRpcStubBuffer* This,
   20264     IRpcChannelBuffer* pRpcChannelBuffer,
   20265     PRPC_MESSAGE pRpcMessage,
   20266     DWORD* pdwStubPhase);
   20267 
   20268 #endif  /* __IWizardSite_INTERFACE_DEFINED__ */
   20269 
   20270 
   20271 #define SID_WizardSite IID_IWizardSite
   20272 
   20273 /*****************************************************************************
   20274  * IWizardExtension interface
   20275  */
   20276 #ifndef __IWizardExtension_INTERFACE_DEFINED__
   20277 #define __IWizardExtension_INTERFACE_DEFINED__
   20278 
   20279 DEFINE_GUID(IID_IWizardExtension, 0xc02ea696, 0x86cc, 0x491e, 0x9b,0x23, 0x74,0x39,0x4a,0x04,0x44,0xa8);
   20280 #if defined(__cplusplus) && !defined(CINTERFACE)
   20281 MIDL_INTERFACE("c02ea696-86cc-491e-9b23-74394a0444a8")
   20282 IWizardExtension : public IUnknown
   20283 {
   20284     virtual HRESULT STDMETHODCALLTYPE AddPages(
   20285         HPROPSHEETPAGE *aPages,
   20286         UINT cPages,
   20287         UINT *pnPagesAdded) = 0;
   20288 
   20289     virtual HRESULT STDMETHODCALLTYPE GetFirstPage(
   20290         HPROPSHEETPAGE *phpage) = 0;
   20291 
   20292     virtual HRESULT STDMETHODCALLTYPE GetLastPage(
   20293         HPROPSHEETPAGE *phpage) = 0;
   20294 
   20295 };
   20296 #ifdef __CRT_UUID_DECL
   20297 __CRT_UUID_DECL(IWizardExtension, 0xc02ea696, 0x86cc, 0x491e, 0x9b,0x23, 0x74,0x39,0x4a,0x04,0x44,0xa8)
   20298 #endif
   20299 #else
   20300 typedef struct IWizardExtensionVtbl {
   20301     BEGIN_INTERFACE
   20302 
   20303     /*** IUnknown methods ***/
   20304     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   20305         IWizardExtension* This,
   20306         REFIID riid,
   20307         void **ppvObject);
   20308 
   20309     ULONG (STDMETHODCALLTYPE *AddRef)(
   20310         IWizardExtension* This);
   20311 
   20312     ULONG (STDMETHODCALLTYPE *Release)(
   20313         IWizardExtension* This);
   20314 
   20315     /*** IWizardExtension methods ***/
   20316     HRESULT (STDMETHODCALLTYPE *AddPages)(
   20317         IWizardExtension* This,
   20318         HPROPSHEETPAGE *aPages,
   20319         UINT cPages,
   20320         UINT *pnPagesAdded);
   20321 
   20322     HRESULT (STDMETHODCALLTYPE *GetFirstPage)(
   20323         IWizardExtension* This,
   20324         HPROPSHEETPAGE *phpage);
   20325 
   20326     HRESULT (STDMETHODCALLTYPE *GetLastPage)(
   20327         IWizardExtension* This,
   20328         HPROPSHEETPAGE *phpage);
   20329 
   20330     END_INTERFACE
   20331 } IWizardExtensionVtbl;
   20332 interface IWizardExtension {
   20333     CONST_VTBL IWizardExtensionVtbl* lpVtbl;
   20334 };
   20335 
   20336 #ifdef COBJMACROS
   20337 #ifndef WIDL_C_INLINE_WRAPPERS
   20338 /*** IUnknown methods ***/
   20339 #define IWizardExtension_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   20340 #define IWizardExtension_AddRef(This) (This)->lpVtbl->AddRef(This)
   20341 #define IWizardExtension_Release(This) (This)->lpVtbl->Release(This)
   20342 /*** IWizardExtension methods ***/
   20343 #define IWizardExtension_AddPages(This,aPages,cPages,pnPagesAdded) (This)->lpVtbl->AddPages(This,aPages,cPages,pnPagesAdded)
   20344 #define IWizardExtension_GetFirstPage(This,phpage) (This)->lpVtbl->GetFirstPage(This,phpage)
   20345 #define IWizardExtension_GetLastPage(This,phpage) (This)->lpVtbl->GetLastPage(This,phpage)
   20346 #else
   20347 /*** IUnknown methods ***/
   20348 static FORCEINLINE HRESULT IWizardExtension_QueryInterface(IWizardExtension* This,REFIID riid,void **ppvObject) {
   20349     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   20350 }
   20351 static FORCEINLINE ULONG IWizardExtension_AddRef(IWizardExtension* This) {
   20352     return This->lpVtbl->AddRef(This);
   20353 }
   20354 static FORCEINLINE ULONG IWizardExtension_Release(IWizardExtension* This) {
   20355     return This->lpVtbl->Release(This);
   20356 }
   20357 /*** IWizardExtension methods ***/
   20358 static FORCEINLINE HRESULT IWizardExtension_AddPages(IWizardExtension* This,HPROPSHEETPAGE *aPages,UINT cPages,UINT *pnPagesAdded) {
   20359     return This->lpVtbl->AddPages(This,aPages,cPages,pnPagesAdded);
   20360 }
   20361 static FORCEINLINE HRESULT IWizardExtension_GetFirstPage(IWizardExtension* This,HPROPSHEETPAGE *phpage) {
   20362     return This->lpVtbl->GetFirstPage(This,phpage);
   20363 }
   20364 static FORCEINLINE HRESULT IWizardExtension_GetLastPage(IWizardExtension* This,HPROPSHEETPAGE *phpage) {
   20365     return This->lpVtbl->GetLastPage(This,phpage);
   20366 }
   20367 #endif
   20368 #endif
   20369 
   20370 #endif
   20371 
   20372 HRESULT STDMETHODCALLTYPE IWizardExtension_AddPages_Proxy(
   20373     IWizardExtension* This,
   20374     HPROPSHEETPAGE *aPages,
   20375     UINT cPages,
   20376     UINT *pnPagesAdded);
   20377 void __RPC_STUB IWizardExtension_AddPages_Stub(
   20378     IRpcStubBuffer* This,
   20379     IRpcChannelBuffer* pRpcChannelBuffer,
   20380     PRPC_MESSAGE pRpcMessage,
   20381     DWORD* pdwStubPhase);
   20382 HRESULT STDMETHODCALLTYPE IWizardExtension_GetFirstPage_Proxy(
   20383     IWizardExtension* This,
   20384     HPROPSHEETPAGE *phpage);
   20385 void __RPC_STUB IWizardExtension_GetFirstPage_Stub(
   20386     IRpcStubBuffer* This,
   20387     IRpcChannelBuffer* pRpcChannelBuffer,
   20388     PRPC_MESSAGE pRpcMessage,
   20389     DWORD* pdwStubPhase);
   20390 HRESULT STDMETHODCALLTYPE IWizardExtension_GetLastPage_Proxy(
   20391     IWizardExtension* This,
   20392     HPROPSHEETPAGE *phpage);
   20393 void __RPC_STUB IWizardExtension_GetLastPage_Stub(
   20394     IRpcStubBuffer* This,
   20395     IRpcChannelBuffer* pRpcChannelBuffer,
   20396     PRPC_MESSAGE pRpcMessage,
   20397     DWORD* pdwStubPhase);
   20398 
   20399 #endif  /* __IWizardExtension_INTERFACE_DEFINED__ */
   20400 
   20401 
   20402 /*****************************************************************************
   20403  * IWebWizardExtension interface
   20404  */
   20405 #ifndef __IWebWizardExtension_INTERFACE_DEFINED__
   20406 #define __IWebWizardExtension_INTERFACE_DEFINED__
   20407 
   20408 DEFINE_GUID(IID_IWebWizardExtension, 0x0e6b3f66, 0x98d1, 0x48c0, 0xa2,0x22, 0xfb,0xde,0x74,0xe2,0xfb,0xc5);
   20409 #if defined(__cplusplus) && !defined(CINTERFACE)
   20410 MIDL_INTERFACE("0e6b3f66-98d1-48c0-a222-fbde74e2fbc5")
   20411 IWebWizardExtension : public IWizardExtension
   20412 {
   20413     virtual HRESULT STDMETHODCALLTYPE SetInitialURL(
   20414         LPCWSTR pszURL) = 0;
   20415 
   20416     virtual HRESULT STDMETHODCALLTYPE SetErrorURL(
   20417         LPCWSTR pszErrorURL) = 0;
   20418 
   20419 };
   20420 #ifdef __CRT_UUID_DECL
   20421 __CRT_UUID_DECL(IWebWizardExtension, 0x0e6b3f66, 0x98d1, 0x48c0, 0xa2,0x22, 0xfb,0xde,0x74,0xe2,0xfb,0xc5)
   20422 #endif
   20423 #else
   20424 typedef struct IWebWizardExtensionVtbl {
   20425     BEGIN_INTERFACE
   20426 
   20427     /*** IUnknown methods ***/
   20428     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   20429         IWebWizardExtension* This,
   20430         REFIID riid,
   20431         void **ppvObject);
   20432 
   20433     ULONG (STDMETHODCALLTYPE *AddRef)(
   20434         IWebWizardExtension* This);
   20435 
   20436     ULONG (STDMETHODCALLTYPE *Release)(
   20437         IWebWizardExtension* This);
   20438 
   20439     /*** IWizardExtension methods ***/
   20440     HRESULT (STDMETHODCALLTYPE *AddPages)(
   20441         IWebWizardExtension* This,
   20442         HPROPSHEETPAGE *aPages,
   20443         UINT cPages,
   20444         UINT *pnPagesAdded);
   20445 
   20446     HRESULT (STDMETHODCALLTYPE *GetFirstPage)(
   20447         IWebWizardExtension* This,
   20448         HPROPSHEETPAGE *phpage);
   20449 
   20450     HRESULT (STDMETHODCALLTYPE *GetLastPage)(
   20451         IWebWizardExtension* This,
   20452         HPROPSHEETPAGE *phpage);
   20453 
   20454     /*** IWebWizardExtension methods ***/
   20455     HRESULT (STDMETHODCALLTYPE *SetInitialURL)(
   20456         IWebWizardExtension* This,
   20457         LPCWSTR pszURL);
   20458 
   20459     HRESULT (STDMETHODCALLTYPE *SetErrorURL)(
   20460         IWebWizardExtension* This,
   20461         LPCWSTR pszErrorURL);
   20462 
   20463     END_INTERFACE
   20464 } IWebWizardExtensionVtbl;
   20465 interface IWebWizardExtension {
   20466     CONST_VTBL IWebWizardExtensionVtbl* lpVtbl;
   20467 };
   20468 
   20469 #ifdef COBJMACROS
   20470 #ifndef WIDL_C_INLINE_WRAPPERS
   20471 /*** IUnknown methods ***/
   20472 #define IWebWizardExtension_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   20473 #define IWebWizardExtension_AddRef(This) (This)->lpVtbl->AddRef(This)
   20474 #define IWebWizardExtension_Release(This) (This)->lpVtbl->Release(This)
   20475 /*** IWizardExtension methods ***/
   20476 #define IWebWizardExtension_AddPages(This,aPages,cPages,pnPagesAdded) (This)->lpVtbl->AddPages(This,aPages,cPages,pnPagesAdded)
   20477 #define IWebWizardExtension_GetFirstPage(This,phpage) (This)->lpVtbl->GetFirstPage(This,phpage)
   20478 #define IWebWizardExtension_GetLastPage(This,phpage) (This)->lpVtbl->GetLastPage(This,phpage)
   20479 /*** IWebWizardExtension methods ***/
   20480 #define IWebWizardExtension_SetInitialURL(This,pszURL) (This)->lpVtbl->SetInitialURL(This,pszURL)
   20481 #define IWebWizardExtension_SetErrorURL(This,pszErrorURL) (This)->lpVtbl->SetErrorURL(This,pszErrorURL)
   20482 #else
   20483 /*** IUnknown methods ***/
   20484 static FORCEINLINE HRESULT IWebWizardExtension_QueryInterface(IWebWizardExtension* This,REFIID riid,void **ppvObject) {
   20485     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   20486 }
   20487 static FORCEINLINE ULONG IWebWizardExtension_AddRef(IWebWizardExtension* This) {
   20488     return This->lpVtbl->AddRef(This);
   20489 }
   20490 static FORCEINLINE ULONG IWebWizardExtension_Release(IWebWizardExtension* This) {
   20491     return This->lpVtbl->Release(This);
   20492 }
   20493 /*** IWizardExtension methods ***/
   20494 static FORCEINLINE HRESULT IWebWizardExtension_AddPages(IWebWizardExtension* This,HPROPSHEETPAGE *aPages,UINT cPages,UINT *pnPagesAdded) {
   20495     return This->lpVtbl->AddPages(This,aPages,cPages,pnPagesAdded);
   20496 }
   20497 static FORCEINLINE HRESULT IWebWizardExtension_GetFirstPage(IWebWizardExtension* This,HPROPSHEETPAGE *phpage) {
   20498     return This->lpVtbl->GetFirstPage(This,phpage);
   20499 }
   20500 static FORCEINLINE HRESULT IWebWizardExtension_GetLastPage(IWebWizardExtension* This,HPROPSHEETPAGE *phpage) {
   20501     return This->lpVtbl->GetLastPage(This,phpage);
   20502 }
   20503 /*** IWebWizardExtension methods ***/
   20504 static FORCEINLINE HRESULT IWebWizardExtension_SetInitialURL(IWebWizardExtension* This,LPCWSTR pszURL) {
   20505     return This->lpVtbl->SetInitialURL(This,pszURL);
   20506 }
   20507 static FORCEINLINE HRESULT IWebWizardExtension_SetErrorURL(IWebWizardExtension* This,LPCWSTR pszErrorURL) {
   20508     return This->lpVtbl->SetErrorURL(This,pszErrorURL);
   20509 }
   20510 #endif
   20511 #endif
   20512 
   20513 #endif
   20514 
   20515 HRESULT STDMETHODCALLTYPE IWebWizardExtension_SetInitialURL_Proxy(
   20516     IWebWizardExtension* This,
   20517     LPCWSTR pszURL);
   20518 void __RPC_STUB IWebWizardExtension_SetInitialURL_Stub(
   20519     IRpcStubBuffer* This,
   20520     IRpcChannelBuffer* pRpcChannelBuffer,
   20521     PRPC_MESSAGE pRpcMessage,
   20522     DWORD* pdwStubPhase);
   20523 HRESULT STDMETHODCALLTYPE IWebWizardExtension_SetErrorURL_Proxy(
   20524     IWebWizardExtension* This,
   20525     LPCWSTR pszErrorURL);
   20526 void __RPC_STUB IWebWizardExtension_SetErrorURL_Stub(
   20527     IRpcStubBuffer* This,
   20528     IRpcChannelBuffer* pRpcChannelBuffer,
   20529     PRPC_MESSAGE pRpcMessage,
   20530     DWORD* pdwStubPhase);
   20531 
   20532 #endif  /* __IWebWizardExtension_INTERFACE_DEFINED__ */
   20533 
   20534 
   20535 #define SID_WebWizardHost IID_IWebWizardExtension
   20536 
   20537 #define SHPWHF_NORECOMPRESS 0x00000001
   20538 #define SHPWHF_NONETPLACECREATE 0x00000002
   20539 #define SHPWHF_NOFILESELECTOR 0x00000004
   20540 #define SHPWHF_USEMRU 0x00000008
   20541 #if NTDDI_VERSION >= NTDDI_VISTA
   20542 #define SHPWHF_ANYLOCATION 0x00000100
   20543 #endif
   20544 #define SHPWHF_VALIDATEVIAWEBFOLDERS 0x00010000
   20545 
   20546 #ifndef __IXMLDOMDocument_FWD_DEFINED__
   20547 #define __IXMLDOMDocument_FWD_DEFINED__
   20548 typedef interface IXMLDOMDocument IXMLDOMDocument;
   20549 #endif
   20550 
   20551 
   20552 /*****************************************************************************
   20553  * IPublishingWizard interface
   20554  */
   20555 #ifndef __IPublishingWizard_INTERFACE_DEFINED__
   20556 #define __IPublishingWizard_INTERFACE_DEFINED__
   20557 
   20558 DEFINE_GUID(IID_IPublishingWizard, 0xaa9198bb, 0xccec, 0x472d, 0xbe,0xed, 0x19,0xa4,0xf6,0x73,0x3f,0x7a);
   20559 #if defined(__cplusplus) && !defined(CINTERFACE)
   20560 MIDL_INTERFACE("aa9198bb-ccec-472d-beed-19a4f6733f7a")
   20561 IPublishingWizard : public IWizardExtension
   20562 {
   20563     virtual HRESULT STDMETHODCALLTYPE Initialize(
   20564         IDataObject *pdo,
   20565         DWORD dwOptions,
   20566         LPCWSTR pszServiceScope) = 0;
   20567 
   20568     virtual HRESULT STDMETHODCALLTYPE GetTransferManifest(
   20569         HRESULT *phrFromTransfer,
   20570         IXMLDOMDocument **pdocManifest) = 0;
   20571 
   20572 };
   20573 #ifdef __CRT_UUID_DECL
   20574 __CRT_UUID_DECL(IPublishingWizard, 0xaa9198bb, 0xccec, 0x472d, 0xbe,0xed, 0x19,0xa4,0xf6,0x73,0x3f,0x7a)
   20575 #endif
   20576 #else
   20577 typedef struct IPublishingWizardVtbl {
   20578     BEGIN_INTERFACE
   20579 
   20580     /*** IUnknown methods ***/
   20581     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   20582         IPublishingWizard* This,
   20583         REFIID riid,
   20584         void **ppvObject);
   20585 
   20586     ULONG (STDMETHODCALLTYPE *AddRef)(
   20587         IPublishingWizard* This);
   20588 
   20589     ULONG (STDMETHODCALLTYPE *Release)(
   20590         IPublishingWizard* This);
   20591 
   20592     /*** IWizardExtension methods ***/
   20593     HRESULT (STDMETHODCALLTYPE *AddPages)(
   20594         IPublishingWizard* This,
   20595         HPROPSHEETPAGE *aPages,
   20596         UINT cPages,
   20597         UINT *pnPagesAdded);
   20598 
   20599     HRESULT (STDMETHODCALLTYPE *GetFirstPage)(
   20600         IPublishingWizard* This,
   20601         HPROPSHEETPAGE *phpage);
   20602 
   20603     HRESULT (STDMETHODCALLTYPE *GetLastPage)(
   20604         IPublishingWizard* This,
   20605         HPROPSHEETPAGE *phpage);
   20606 
   20607     /*** IPublishingWizard methods ***/
   20608     HRESULT (STDMETHODCALLTYPE *Initialize)(
   20609         IPublishingWizard* This,
   20610         IDataObject *pdo,
   20611         DWORD dwOptions,
   20612         LPCWSTR pszServiceScope);
   20613 
   20614     HRESULT (STDMETHODCALLTYPE *GetTransferManifest)(
   20615         IPublishingWizard* This,
   20616         HRESULT *phrFromTransfer,
   20617         IXMLDOMDocument **pdocManifest);
   20618 
   20619     END_INTERFACE
   20620 } IPublishingWizardVtbl;
   20621 interface IPublishingWizard {
   20622     CONST_VTBL IPublishingWizardVtbl* lpVtbl;
   20623 };
   20624 
   20625 #ifdef COBJMACROS
   20626 #ifndef WIDL_C_INLINE_WRAPPERS
   20627 /*** IUnknown methods ***/
   20628 #define IPublishingWizard_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   20629 #define IPublishingWizard_AddRef(This) (This)->lpVtbl->AddRef(This)
   20630 #define IPublishingWizard_Release(This) (This)->lpVtbl->Release(This)
   20631 /*** IWizardExtension methods ***/
   20632 #define IPublishingWizard_AddPages(This,aPages,cPages,pnPagesAdded) (This)->lpVtbl->AddPages(This,aPages,cPages,pnPagesAdded)
   20633 #define IPublishingWizard_GetFirstPage(This,phpage) (This)->lpVtbl->GetFirstPage(This,phpage)
   20634 #define IPublishingWizard_GetLastPage(This,phpage) (This)->lpVtbl->GetLastPage(This,phpage)
   20635 /*** IPublishingWizard methods ***/
   20636 #define IPublishingWizard_Initialize(This,pdo,dwOptions,pszServiceScope) (This)->lpVtbl->Initialize(This,pdo,dwOptions,pszServiceScope)
   20637 #define IPublishingWizard_GetTransferManifest(This,phrFromTransfer,pdocManifest) (This)->lpVtbl->GetTransferManifest(This,phrFromTransfer,pdocManifest)
   20638 #else
   20639 /*** IUnknown methods ***/
   20640 static FORCEINLINE HRESULT IPublishingWizard_QueryInterface(IPublishingWizard* This,REFIID riid,void **ppvObject) {
   20641     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   20642 }
   20643 static FORCEINLINE ULONG IPublishingWizard_AddRef(IPublishingWizard* This) {
   20644     return This->lpVtbl->AddRef(This);
   20645 }
   20646 static FORCEINLINE ULONG IPublishingWizard_Release(IPublishingWizard* This) {
   20647     return This->lpVtbl->Release(This);
   20648 }
   20649 /*** IWizardExtension methods ***/
   20650 static FORCEINLINE HRESULT IPublishingWizard_AddPages(IPublishingWizard* This,HPROPSHEETPAGE *aPages,UINT cPages,UINT *pnPagesAdded) {
   20651     return This->lpVtbl->AddPages(This,aPages,cPages,pnPagesAdded);
   20652 }
   20653 static FORCEINLINE HRESULT IPublishingWizard_GetFirstPage(IPublishingWizard* This,HPROPSHEETPAGE *phpage) {
   20654     return This->lpVtbl->GetFirstPage(This,phpage);
   20655 }
   20656 static FORCEINLINE HRESULT IPublishingWizard_GetLastPage(IPublishingWizard* This,HPROPSHEETPAGE *phpage) {
   20657     return This->lpVtbl->GetLastPage(This,phpage);
   20658 }
   20659 /*** IPublishingWizard methods ***/
   20660 static FORCEINLINE HRESULT IPublishingWizard_Initialize(IPublishingWizard* This,IDataObject *pdo,DWORD dwOptions,LPCWSTR pszServiceScope) {
   20661     return This->lpVtbl->Initialize(This,pdo,dwOptions,pszServiceScope);
   20662 }
   20663 static FORCEINLINE HRESULT IPublishingWizard_GetTransferManifest(IPublishingWizard* This,HRESULT *phrFromTransfer,IXMLDOMDocument **pdocManifest) {
   20664     return This->lpVtbl->GetTransferManifest(This,phrFromTransfer,pdocManifest);
   20665 }
   20666 #endif
   20667 #endif
   20668 
   20669 #endif
   20670 
   20671 HRESULT STDMETHODCALLTYPE IPublishingWizard_Initialize_Proxy(
   20672     IPublishingWizard* This,
   20673     IDataObject *pdo,
   20674     DWORD dwOptions,
   20675     LPCWSTR pszServiceScope);
   20676 void __RPC_STUB IPublishingWizard_Initialize_Stub(
   20677     IRpcStubBuffer* This,
   20678     IRpcChannelBuffer* pRpcChannelBuffer,
   20679     PRPC_MESSAGE pRpcMessage,
   20680     DWORD* pdwStubPhase);
   20681 HRESULT STDMETHODCALLTYPE IPublishingWizard_GetTransferManifest_Proxy(
   20682     IPublishingWizard* This,
   20683     HRESULT *phrFromTransfer,
   20684     IXMLDOMDocument **pdocManifest);
   20685 void __RPC_STUB IPublishingWizard_GetTransferManifest_Stub(
   20686     IRpcStubBuffer* This,
   20687     IRpcChannelBuffer* pRpcChannelBuffer,
   20688     PRPC_MESSAGE pRpcMessage,
   20689     DWORD* pdwStubPhase);
   20690 
   20691 #endif  /* __IPublishingWizard_INTERFACE_DEFINED__ */
   20692 
   20693 
   20694 /*****************************************************************************
   20695  * IFolderViewHost interface
   20696  */
   20697 #ifndef __IFolderViewHost_INTERFACE_DEFINED__
   20698 #define __IFolderViewHost_INTERFACE_DEFINED__
   20699 
   20700 DEFINE_GUID(IID_IFolderViewHost, 0x1ea58f02, 0xd55a, 0x411d, 0xb0,0x9e, 0x9e,0x65,0xac,0x21,0x60,0x5b);
   20701 #if defined(__cplusplus) && !defined(CINTERFACE)
   20702 MIDL_INTERFACE("1ea58f02-d55a-411d-b09e-9e65ac21605b")
   20703 IFolderViewHost : public IUnknown
   20704 {
   20705     virtual HRESULT STDMETHODCALLTYPE Initialize(
   20706         HWND hwndParent,
   20707         IDataObject *pdo,
   20708         RECT *prc) = 0;
   20709 
   20710 };
   20711 #ifdef __CRT_UUID_DECL
   20712 __CRT_UUID_DECL(IFolderViewHost, 0x1ea58f02, 0xd55a, 0x411d, 0xb0,0x9e, 0x9e,0x65,0xac,0x21,0x60,0x5b)
   20713 #endif
   20714 #else
   20715 typedef struct IFolderViewHostVtbl {
   20716     BEGIN_INTERFACE
   20717 
   20718     /*** IUnknown methods ***/
   20719     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   20720         IFolderViewHost* This,
   20721         REFIID riid,
   20722         void **ppvObject);
   20723 
   20724     ULONG (STDMETHODCALLTYPE *AddRef)(
   20725         IFolderViewHost* This);
   20726 
   20727     ULONG (STDMETHODCALLTYPE *Release)(
   20728         IFolderViewHost* This);
   20729 
   20730     /*** IFolderViewHost methods ***/
   20731     HRESULT (STDMETHODCALLTYPE *Initialize)(
   20732         IFolderViewHost* This,
   20733         HWND hwndParent,
   20734         IDataObject *pdo,
   20735         RECT *prc);
   20736 
   20737     END_INTERFACE
   20738 } IFolderViewHostVtbl;
   20739 interface IFolderViewHost {
   20740     CONST_VTBL IFolderViewHostVtbl* lpVtbl;
   20741 };
   20742 
   20743 #ifdef COBJMACROS
   20744 #ifndef WIDL_C_INLINE_WRAPPERS
   20745 /*** IUnknown methods ***/
   20746 #define IFolderViewHost_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   20747 #define IFolderViewHost_AddRef(This) (This)->lpVtbl->AddRef(This)
   20748 #define IFolderViewHost_Release(This) (This)->lpVtbl->Release(This)
   20749 /*** IFolderViewHost methods ***/
   20750 #define IFolderViewHost_Initialize(This,hwndParent,pdo,prc) (This)->lpVtbl->Initialize(This,hwndParent,pdo,prc)
   20751 #else
   20752 /*** IUnknown methods ***/
   20753 static FORCEINLINE HRESULT IFolderViewHost_QueryInterface(IFolderViewHost* This,REFIID riid,void **ppvObject) {
   20754     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   20755 }
   20756 static FORCEINLINE ULONG IFolderViewHost_AddRef(IFolderViewHost* This) {
   20757     return This->lpVtbl->AddRef(This);
   20758 }
   20759 static FORCEINLINE ULONG IFolderViewHost_Release(IFolderViewHost* This) {
   20760     return This->lpVtbl->Release(This);
   20761 }
   20762 /*** IFolderViewHost methods ***/
   20763 static FORCEINLINE HRESULT IFolderViewHost_Initialize(IFolderViewHost* This,HWND hwndParent,IDataObject *pdo,RECT *prc) {
   20764     return This->lpVtbl->Initialize(This,hwndParent,pdo,prc);
   20765 }
   20766 #endif
   20767 #endif
   20768 
   20769 #endif
   20770 
   20771 HRESULT STDMETHODCALLTYPE IFolderViewHost_Initialize_Proxy(
   20772     IFolderViewHost* This,
   20773     HWND hwndParent,
   20774     IDataObject *pdo,
   20775     RECT *prc);
   20776 void __RPC_STUB IFolderViewHost_Initialize_Stub(
   20777     IRpcStubBuffer* This,
   20778     IRpcChannelBuffer* pRpcChannelBuffer,
   20779     PRPC_MESSAGE pRpcMessage,
   20780     DWORD* pdwStubPhase);
   20781 
   20782 #endif  /* __IFolderViewHost_INTERFACE_DEFINED__ */
   20783 
   20784 
   20785 #if _WIN32_IE >= _WIN32_IE_IE70
   20786 /*****************************************************************************
   20787  * IExplorerBrowserEvents interface
   20788  */
   20789 #ifndef __IExplorerBrowserEvents_INTERFACE_DEFINED__
   20790 #define __IExplorerBrowserEvents_INTERFACE_DEFINED__
   20791 
   20792 DEFINE_GUID(IID_IExplorerBrowserEvents, 0x361bbdc7, 0xe6ee, 0x4e13, 0xbe,0x58, 0x58,0xe2,0x24,0x0c,0x81,0x0f);
   20793 #if defined(__cplusplus) && !defined(CINTERFACE)
   20794 MIDL_INTERFACE("361bbdc7-e6ee-4e13-be58-58e2240c810f")
   20795 IExplorerBrowserEvents : public IUnknown
   20796 {
   20797     virtual HRESULT STDMETHODCALLTYPE OnNavigationPending(
   20798         PCIDLIST_ABSOLUTE pidlFolder) = 0;
   20799 
   20800     virtual HRESULT STDMETHODCALLTYPE OnViewCreated(
   20801         IShellView *psv) = 0;
   20802 
   20803     virtual HRESULT STDMETHODCALLTYPE OnNavigationComplete(
   20804         PCIDLIST_ABSOLUTE pidlFolder) = 0;
   20805 
   20806     virtual HRESULT STDMETHODCALLTYPE OnNavigationFailed(
   20807         PCIDLIST_ABSOLUTE pidlFolder) = 0;
   20808 
   20809 };
   20810 #ifdef __CRT_UUID_DECL
   20811 __CRT_UUID_DECL(IExplorerBrowserEvents, 0x361bbdc7, 0xe6ee, 0x4e13, 0xbe,0x58, 0x58,0xe2,0x24,0x0c,0x81,0x0f)
   20812 #endif
   20813 #else
   20814 typedef struct IExplorerBrowserEventsVtbl {
   20815     BEGIN_INTERFACE
   20816 
   20817     /*** IUnknown methods ***/
   20818     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   20819         IExplorerBrowserEvents* This,
   20820         REFIID riid,
   20821         void **ppvObject);
   20822 
   20823     ULONG (STDMETHODCALLTYPE *AddRef)(
   20824         IExplorerBrowserEvents* This);
   20825 
   20826     ULONG (STDMETHODCALLTYPE *Release)(
   20827         IExplorerBrowserEvents* This);
   20828 
   20829     /*** IExplorerBrowserEvents methods ***/
   20830     HRESULT (STDMETHODCALLTYPE *OnNavigationPending)(
   20831         IExplorerBrowserEvents* This,
   20832         PCIDLIST_ABSOLUTE pidlFolder);
   20833 
   20834     HRESULT (STDMETHODCALLTYPE *OnViewCreated)(
   20835         IExplorerBrowserEvents* This,
   20836         IShellView *psv);
   20837 
   20838     HRESULT (STDMETHODCALLTYPE *OnNavigationComplete)(
   20839         IExplorerBrowserEvents* This,
   20840         PCIDLIST_ABSOLUTE pidlFolder);
   20841 
   20842     HRESULT (STDMETHODCALLTYPE *OnNavigationFailed)(
   20843         IExplorerBrowserEvents* This,
   20844         PCIDLIST_ABSOLUTE pidlFolder);
   20845 
   20846     END_INTERFACE
   20847 } IExplorerBrowserEventsVtbl;
   20848 interface IExplorerBrowserEvents {
   20849     CONST_VTBL IExplorerBrowserEventsVtbl* lpVtbl;
   20850 };
   20851 
   20852 #ifdef COBJMACROS
   20853 #ifndef WIDL_C_INLINE_WRAPPERS
   20854 /*** IUnknown methods ***/
   20855 #define IExplorerBrowserEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   20856 #define IExplorerBrowserEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
   20857 #define IExplorerBrowserEvents_Release(This) (This)->lpVtbl->Release(This)
   20858 /*** IExplorerBrowserEvents methods ***/
   20859 #define IExplorerBrowserEvents_OnNavigationPending(This,pidlFolder) (This)->lpVtbl->OnNavigationPending(This,pidlFolder)
   20860 #define IExplorerBrowserEvents_OnViewCreated(This,psv) (This)->lpVtbl->OnViewCreated(This,psv)
   20861 #define IExplorerBrowserEvents_OnNavigationComplete(This,pidlFolder) (This)->lpVtbl->OnNavigationComplete(This,pidlFolder)
   20862 #define IExplorerBrowserEvents_OnNavigationFailed(This,pidlFolder) (This)->lpVtbl->OnNavigationFailed(This,pidlFolder)
   20863 #else
   20864 /*** IUnknown methods ***/
   20865 static FORCEINLINE HRESULT IExplorerBrowserEvents_QueryInterface(IExplorerBrowserEvents* This,REFIID riid,void **ppvObject) {
   20866     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   20867 }
   20868 static FORCEINLINE ULONG IExplorerBrowserEvents_AddRef(IExplorerBrowserEvents* This) {
   20869     return This->lpVtbl->AddRef(This);
   20870 }
   20871 static FORCEINLINE ULONG IExplorerBrowserEvents_Release(IExplorerBrowserEvents* This) {
   20872     return This->lpVtbl->Release(This);
   20873 }
   20874 /*** IExplorerBrowserEvents methods ***/
   20875 static FORCEINLINE HRESULT IExplorerBrowserEvents_OnNavigationPending(IExplorerBrowserEvents* This,PCIDLIST_ABSOLUTE pidlFolder) {
   20876     return This->lpVtbl->OnNavigationPending(This,pidlFolder);
   20877 }
   20878 static FORCEINLINE HRESULT IExplorerBrowserEvents_OnViewCreated(IExplorerBrowserEvents* This,IShellView *psv) {
   20879     return This->lpVtbl->OnViewCreated(This,psv);
   20880 }
   20881 static FORCEINLINE HRESULT IExplorerBrowserEvents_OnNavigationComplete(IExplorerBrowserEvents* This,PCIDLIST_ABSOLUTE pidlFolder) {
   20882     return This->lpVtbl->OnNavigationComplete(This,pidlFolder);
   20883 }
   20884 static FORCEINLINE HRESULT IExplorerBrowserEvents_OnNavigationFailed(IExplorerBrowserEvents* This,PCIDLIST_ABSOLUTE pidlFolder) {
   20885     return This->lpVtbl->OnNavigationFailed(This,pidlFolder);
   20886 }
   20887 #endif
   20888 #endif
   20889 
   20890 #endif
   20891 
   20892 HRESULT STDMETHODCALLTYPE IExplorerBrowserEvents_OnNavigationPending_Proxy(
   20893     IExplorerBrowserEvents* This,
   20894     PCIDLIST_ABSOLUTE pidlFolder);
   20895 void __RPC_STUB IExplorerBrowserEvents_OnNavigationPending_Stub(
   20896     IRpcStubBuffer* This,
   20897     IRpcChannelBuffer* pRpcChannelBuffer,
   20898     PRPC_MESSAGE pRpcMessage,
   20899     DWORD* pdwStubPhase);
   20900 HRESULT STDMETHODCALLTYPE IExplorerBrowserEvents_OnViewCreated_Proxy(
   20901     IExplorerBrowserEvents* This,
   20902     IShellView *psv);
   20903 void __RPC_STUB IExplorerBrowserEvents_OnViewCreated_Stub(
   20904     IRpcStubBuffer* This,
   20905     IRpcChannelBuffer* pRpcChannelBuffer,
   20906     PRPC_MESSAGE pRpcMessage,
   20907     DWORD* pdwStubPhase);
   20908 HRESULT STDMETHODCALLTYPE IExplorerBrowserEvents_OnNavigationComplete_Proxy(
   20909     IExplorerBrowserEvents* This,
   20910     PCIDLIST_ABSOLUTE pidlFolder);
   20911 void __RPC_STUB IExplorerBrowserEvents_OnNavigationComplete_Stub(
   20912     IRpcStubBuffer* This,
   20913     IRpcChannelBuffer* pRpcChannelBuffer,
   20914     PRPC_MESSAGE pRpcMessage,
   20915     DWORD* pdwStubPhase);
   20916 HRESULT STDMETHODCALLTYPE IExplorerBrowserEvents_OnNavigationFailed_Proxy(
   20917     IExplorerBrowserEvents* This,
   20918     PCIDLIST_ABSOLUTE pidlFolder);
   20919 void __RPC_STUB IExplorerBrowserEvents_OnNavigationFailed_Stub(
   20920     IRpcStubBuffer* This,
   20921     IRpcChannelBuffer* pRpcChannelBuffer,
   20922     PRPC_MESSAGE pRpcMessage,
   20923     DWORD* pdwStubPhase);
   20924 
   20925 #endif  /* __IExplorerBrowserEvents_INTERFACE_DEFINED__ */
   20926 
   20927 
   20928 typedef enum EXPLORER_BROWSER_OPTIONS {
   20929     EBO_NONE = 0x0,
   20930     EBO_NAVIGATEONCE = 0x1,
   20931     EBO_SHOWFRAMES = 0x2,
   20932     EBO_ALWAYSNAVIGATE = 0x4,
   20933     EBO_NOTRAVELLOG = 0x8,
   20934     EBO_NOWRAPPERWINDOW = 0x10,
   20935     EBO_HTMLSHAREPOINTVIEW = 0x20,
   20936     EBO_NOBORDER = 0x40,
   20937     EBO_NOPERSISTVIEWSTATE = 0x80
   20938 } EXPLORER_BROWSER_OPTIONS;
   20939 
   20940 DEFINE_ENUM_FLAG_OPERATORS(EXPLORER_BROWSER_OPTIONS)
   20941 
   20942 typedef enum EXPLORER_BROWSER_FILL_FLAGS {
   20943     EBF_NONE = 0x0,
   20944     EBF_SELECTFROMDATAOBJECT = 0x100,
   20945     EBF_NODROPTARGET = 0x200
   20946 } EXPLORER_BROWSER_FILL_FLAGS;
   20947 
   20948 DEFINE_ENUM_FLAG_OPERATORS(EXPLORER_BROWSER_FILL_FLAGS)
   20949 
   20950 /*****************************************************************************
   20951  * IExplorerBrowser interface
   20952  */
   20953 #ifndef __IExplorerBrowser_INTERFACE_DEFINED__
   20954 #define __IExplorerBrowser_INTERFACE_DEFINED__
   20955 
   20956 DEFINE_GUID(IID_IExplorerBrowser, 0xdfd3b6b5, 0xc10c, 0x4be9, 0x85,0xf6, 0xa6,0x69,0x69,0xf4,0x02,0xf6);
   20957 #if defined(__cplusplus) && !defined(CINTERFACE)
   20958 MIDL_INTERFACE("dfd3b6b5-c10c-4be9-85f6-a66969f402f6")
   20959 IExplorerBrowser : public IUnknown
   20960 {
   20961     virtual HRESULT STDMETHODCALLTYPE Initialize(
   20962         HWND hwndParent,
   20963         const RECT *prc,
   20964         const FOLDERSETTINGS *pfs) = 0;
   20965 
   20966     virtual HRESULT STDMETHODCALLTYPE Destroy(
   20967         ) = 0;
   20968 
   20969     virtual HRESULT STDMETHODCALLTYPE SetRect(
   20970         HDWP *phdwp,
   20971         RECT rcBrowser) = 0;
   20972 
   20973     virtual HRESULT STDMETHODCALLTYPE SetPropertyBag(
   20974         LPCWSTR pszPropertyBag) = 0;
   20975 
   20976     virtual HRESULT STDMETHODCALLTYPE SetEmptyText(
   20977         LPCWSTR pszEmptyText) = 0;
   20978 
   20979     virtual HRESULT STDMETHODCALLTYPE SetFolderSettings(
   20980         const FOLDERSETTINGS *pfs) = 0;
   20981 
   20982     virtual HRESULT STDMETHODCALLTYPE Advise(
   20983         IExplorerBrowserEvents *psbe,
   20984         DWORD *pdwCookie) = 0;
   20985 
   20986     virtual HRESULT STDMETHODCALLTYPE Unadvise(
   20987         DWORD dwCookie) = 0;
   20988 
   20989     virtual HRESULT STDMETHODCALLTYPE SetOptions(
   20990         EXPLORER_BROWSER_OPTIONS dwFlag) = 0;
   20991 
   20992     virtual HRESULT STDMETHODCALLTYPE GetOptions(
   20993         EXPLORER_BROWSER_OPTIONS *pdwFlag) = 0;
   20994 
   20995     virtual HRESULT STDMETHODCALLTYPE BrowseToIDList(
   20996         PCUIDLIST_RELATIVE pidl,
   20997         UINT uFlags) = 0;
   20998 
   20999     virtual HRESULT STDMETHODCALLTYPE BrowseToObject(
   21000         IUnknown *punk,
   21001         UINT uFlags) = 0;
   21002 
   21003     virtual HRESULT STDMETHODCALLTYPE FillFromObject(
   21004         IUnknown *punk,
   21005         EXPLORER_BROWSER_FILL_FLAGS dwFlags) = 0;
   21006 
   21007     virtual HRESULT STDMETHODCALLTYPE RemoveAll(
   21008         ) = 0;
   21009 
   21010     virtual HRESULT STDMETHODCALLTYPE GetCurrentView(
   21011         REFIID riid,
   21012         void **ppv) = 0;
   21013 
   21014 };
   21015 #ifdef __CRT_UUID_DECL
   21016 __CRT_UUID_DECL(IExplorerBrowser, 0xdfd3b6b5, 0xc10c, 0x4be9, 0x85,0xf6, 0xa6,0x69,0x69,0xf4,0x02,0xf6)
   21017 #endif
   21018 #else
   21019 typedef struct IExplorerBrowserVtbl {
   21020     BEGIN_INTERFACE
   21021 
   21022     /*** IUnknown methods ***/
   21023     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   21024         IExplorerBrowser* This,
   21025         REFIID riid,
   21026         void **ppvObject);
   21027 
   21028     ULONG (STDMETHODCALLTYPE *AddRef)(
   21029         IExplorerBrowser* This);
   21030 
   21031     ULONG (STDMETHODCALLTYPE *Release)(
   21032         IExplorerBrowser* This);
   21033 
   21034     /*** IExplorerBrowser methods ***/
   21035     HRESULT (STDMETHODCALLTYPE *Initialize)(
   21036         IExplorerBrowser* This,
   21037         HWND hwndParent,
   21038         const RECT *prc,
   21039         const FOLDERSETTINGS *pfs);
   21040 
   21041     HRESULT (STDMETHODCALLTYPE *Destroy)(
   21042         IExplorerBrowser* This);
   21043 
   21044     HRESULT (STDMETHODCALLTYPE *SetRect)(
   21045         IExplorerBrowser* This,
   21046         HDWP *phdwp,
   21047         RECT rcBrowser);
   21048 
   21049     HRESULT (STDMETHODCALLTYPE *SetPropertyBag)(
   21050         IExplorerBrowser* This,
   21051         LPCWSTR pszPropertyBag);
   21052 
   21053     HRESULT (STDMETHODCALLTYPE *SetEmptyText)(
   21054         IExplorerBrowser* This,
   21055         LPCWSTR pszEmptyText);
   21056 
   21057     HRESULT (STDMETHODCALLTYPE *SetFolderSettings)(
   21058         IExplorerBrowser* This,
   21059         const FOLDERSETTINGS *pfs);
   21060 
   21061     HRESULT (STDMETHODCALLTYPE *Advise)(
   21062         IExplorerBrowser* This,
   21063         IExplorerBrowserEvents *psbe,
   21064         DWORD *pdwCookie);
   21065 
   21066     HRESULT (STDMETHODCALLTYPE *Unadvise)(
   21067         IExplorerBrowser* This,
   21068         DWORD dwCookie);
   21069 
   21070     HRESULT (STDMETHODCALLTYPE *SetOptions)(
   21071         IExplorerBrowser* This,
   21072         EXPLORER_BROWSER_OPTIONS dwFlag);
   21073 
   21074     HRESULT (STDMETHODCALLTYPE *GetOptions)(
   21075         IExplorerBrowser* This,
   21076         EXPLORER_BROWSER_OPTIONS *pdwFlag);
   21077 
   21078     HRESULT (STDMETHODCALLTYPE *BrowseToIDList)(
   21079         IExplorerBrowser* This,
   21080         PCUIDLIST_RELATIVE pidl,
   21081         UINT uFlags);
   21082 
   21083     HRESULT (STDMETHODCALLTYPE *BrowseToObject)(
   21084         IExplorerBrowser* This,
   21085         IUnknown *punk,
   21086         UINT uFlags);
   21087 
   21088     HRESULT (STDMETHODCALLTYPE *FillFromObject)(
   21089         IExplorerBrowser* This,
   21090         IUnknown *punk,
   21091         EXPLORER_BROWSER_FILL_FLAGS dwFlags);
   21092 
   21093     HRESULT (STDMETHODCALLTYPE *RemoveAll)(
   21094         IExplorerBrowser* This);
   21095 
   21096     HRESULT (STDMETHODCALLTYPE *GetCurrentView)(
   21097         IExplorerBrowser* This,
   21098         REFIID riid,
   21099         void **ppv);
   21100 
   21101     END_INTERFACE
   21102 } IExplorerBrowserVtbl;
   21103 interface IExplorerBrowser {
   21104     CONST_VTBL IExplorerBrowserVtbl* lpVtbl;
   21105 };
   21106 
   21107 #ifdef COBJMACROS
   21108 #ifndef WIDL_C_INLINE_WRAPPERS
   21109 /*** IUnknown methods ***/
   21110 #define IExplorerBrowser_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   21111 #define IExplorerBrowser_AddRef(This) (This)->lpVtbl->AddRef(This)
   21112 #define IExplorerBrowser_Release(This) (This)->lpVtbl->Release(This)
   21113 /*** IExplorerBrowser methods ***/
   21114 #define IExplorerBrowser_Initialize(This,hwndParent,prc,pfs) (This)->lpVtbl->Initialize(This,hwndParent,prc,pfs)
   21115 #define IExplorerBrowser_Destroy(This) (This)->lpVtbl->Destroy(This)
   21116 #define IExplorerBrowser_SetRect(This,phdwp,rcBrowser) (This)->lpVtbl->SetRect(This,phdwp,rcBrowser)
   21117 #define IExplorerBrowser_SetPropertyBag(This,pszPropertyBag) (This)->lpVtbl->SetPropertyBag(This,pszPropertyBag)
   21118 #define IExplorerBrowser_SetEmptyText(This,pszEmptyText) (This)->lpVtbl->SetEmptyText(This,pszEmptyText)
   21119 #define IExplorerBrowser_SetFolderSettings(This,pfs) (This)->lpVtbl->SetFolderSettings(This,pfs)
   21120 #define IExplorerBrowser_Advise(This,psbe,pdwCookie) (This)->lpVtbl->Advise(This,psbe,pdwCookie)
   21121 #define IExplorerBrowser_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
   21122 #define IExplorerBrowser_SetOptions(This,dwFlag) (This)->lpVtbl->SetOptions(This,dwFlag)
   21123 #define IExplorerBrowser_GetOptions(This,pdwFlag) (This)->lpVtbl->GetOptions(This,pdwFlag)
   21124 #define IExplorerBrowser_BrowseToIDList(This,pidl,uFlags) (This)->lpVtbl->BrowseToIDList(This,pidl,uFlags)
   21125 #define IExplorerBrowser_BrowseToObject(This,punk,uFlags) (This)->lpVtbl->BrowseToObject(This,punk,uFlags)
   21126 #define IExplorerBrowser_FillFromObject(This,punk,dwFlags) (This)->lpVtbl->FillFromObject(This,punk,dwFlags)
   21127 #define IExplorerBrowser_RemoveAll(This) (This)->lpVtbl->RemoveAll(This)
   21128 #define IExplorerBrowser_GetCurrentView(This,riid,ppv) (This)->lpVtbl->GetCurrentView(This,riid,ppv)
   21129 #else
   21130 /*** IUnknown methods ***/
   21131 static FORCEINLINE HRESULT IExplorerBrowser_QueryInterface(IExplorerBrowser* This,REFIID riid,void **ppvObject) {
   21132     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   21133 }
   21134 static FORCEINLINE ULONG IExplorerBrowser_AddRef(IExplorerBrowser* This) {
   21135     return This->lpVtbl->AddRef(This);
   21136 }
   21137 static FORCEINLINE ULONG IExplorerBrowser_Release(IExplorerBrowser* This) {
   21138     return This->lpVtbl->Release(This);
   21139 }
   21140 /*** IExplorerBrowser methods ***/
   21141 static FORCEINLINE HRESULT IExplorerBrowser_Initialize(IExplorerBrowser* This,HWND hwndParent,const RECT *prc,const FOLDERSETTINGS *pfs) {
   21142     return This->lpVtbl->Initialize(This,hwndParent,prc,pfs);
   21143 }
   21144 static FORCEINLINE HRESULT IExplorerBrowser_Destroy(IExplorerBrowser* This) {
   21145     return This->lpVtbl->Destroy(This);
   21146 }
   21147 static FORCEINLINE HRESULT IExplorerBrowser_SetRect(IExplorerBrowser* This,HDWP *phdwp,RECT rcBrowser) {
   21148     return This->lpVtbl->SetRect(This,phdwp,rcBrowser);
   21149 }
   21150 static FORCEINLINE HRESULT IExplorerBrowser_SetPropertyBag(IExplorerBrowser* This,LPCWSTR pszPropertyBag) {
   21151     return This->lpVtbl->SetPropertyBag(This,pszPropertyBag);
   21152 }
   21153 static FORCEINLINE HRESULT IExplorerBrowser_SetEmptyText(IExplorerBrowser* This,LPCWSTR pszEmptyText) {
   21154     return This->lpVtbl->SetEmptyText(This,pszEmptyText);
   21155 }
   21156 static FORCEINLINE HRESULT IExplorerBrowser_SetFolderSettings(IExplorerBrowser* This,const FOLDERSETTINGS *pfs) {
   21157     return This->lpVtbl->SetFolderSettings(This,pfs);
   21158 }
   21159 static FORCEINLINE HRESULT IExplorerBrowser_Advise(IExplorerBrowser* This,IExplorerBrowserEvents *psbe,DWORD *pdwCookie) {
   21160     return This->lpVtbl->Advise(This,psbe,pdwCookie);
   21161 }
   21162 static FORCEINLINE HRESULT IExplorerBrowser_Unadvise(IExplorerBrowser* This,DWORD dwCookie) {
   21163     return This->lpVtbl->Unadvise(This,dwCookie);
   21164 }
   21165 static FORCEINLINE HRESULT IExplorerBrowser_SetOptions(IExplorerBrowser* This,EXPLORER_BROWSER_OPTIONS dwFlag) {
   21166     return This->lpVtbl->SetOptions(This,dwFlag);
   21167 }
   21168 static FORCEINLINE HRESULT IExplorerBrowser_GetOptions(IExplorerBrowser* This,EXPLORER_BROWSER_OPTIONS *pdwFlag) {
   21169     return This->lpVtbl->GetOptions(This,pdwFlag);
   21170 }
   21171 static FORCEINLINE HRESULT IExplorerBrowser_BrowseToIDList(IExplorerBrowser* This,PCUIDLIST_RELATIVE pidl,UINT uFlags) {
   21172     return This->lpVtbl->BrowseToIDList(This,pidl,uFlags);
   21173 }
   21174 static FORCEINLINE HRESULT IExplorerBrowser_BrowseToObject(IExplorerBrowser* This,IUnknown *punk,UINT uFlags) {
   21175     return This->lpVtbl->BrowseToObject(This,punk,uFlags);
   21176 }
   21177 static FORCEINLINE HRESULT IExplorerBrowser_FillFromObject(IExplorerBrowser* This,IUnknown *punk,EXPLORER_BROWSER_FILL_FLAGS dwFlags) {
   21178     return This->lpVtbl->FillFromObject(This,punk,dwFlags);
   21179 }
   21180 static FORCEINLINE HRESULT IExplorerBrowser_RemoveAll(IExplorerBrowser* This) {
   21181     return This->lpVtbl->RemoveAll(This);
   21182 }
   21183 static FORCEINLINE HRESULT IExplorerBrowser_GetCurrentView(IExplorerBrowser* This,REFIID riid,void **ppv) {
   21184     return This->lpVtbl->GetCurrentView(This,riid,ppv);
   21185 }
   21186 #endif
   21187 #endif
   21188 
   21189 #endif
   21190 
   21191 HRESULT STDMETHODCALLTYPE IExplorerBrowser_Destroy_Proxy(
   21192     IExplorerBrowser* This);
   21193 void __RPC_STUB IExplorerBrowser_Destroy_Stub(
   21194     IRpcStubBuffer* This,
   21195     IRpcChannelBuffer* pRpcChannelBuffer,
   21196     PRPC_MESSAGE pRpcMessage,
   21197     DWORD* pdwStubPhase);
   21198 HRESULT STDMETHODCALLTYPE IExplorerBrowser_SetPropertyBag_Proxy(
   21199     IExplorerBrowser* This,
   21200     LPCWSTR pszPropertyBag);
   21201 void __RPC_STUB IExplorerBrowser_SetPropertyBag_Stub(
   21202     IRpcStubBuffer* This,
   21203     IRpcChannelBuffer* pRpcChannelBuffer,
   21204     PRPC_MESSAGE pRpcMessage,
   21205     DWORD* pdwStubPhase);
   21206 HRESULT STDMETHODCALLTYPE IExplorerBrowser_SetEmptyText_Proxy(
   21207     IExplorerBrowser* This,
   21208     LPCWSTR pszEmptyText);
   21209 void __RPC_STUB IExplorerBrowser_SetEmptyText_Stub(
   21210     IRpcStubBuffer* This,
   21211     IRpcChannelBuffer* pRpcChannelBuffer,
   21212     PRPC_MESSAGE pRpcMessage,
   21213     DWORD* pdwStubPhase);
   21214 HRESULT STDMETHODCALLTYPE IExplorerBrowser_SetFolderSettings_Proxy(
   21215     IExplorerBrowser* This,
   21216     const FOLDERSETTINGS *pfs);
   21217 void __RPC_STUB IExplorerBrowser_SetFolderSettings_Stub(
   21218     IRpcStubBuffer* This,
   21219     IRpcChannelBuffer* pRpcChannelBuffer,
   21220     PRPC_MESSAGE pRpcMessage,
   21221     DWORD* pdwStubPhase);
   21222 HRESULT STDMETHODCALLTYPE IExplorerBrowser_Advise_Proxy(
   21223     IExplorerBrowser* This,
   21224     IExplorerBrowserEvents *psbe,
   21225     DWORD *pdwCookie);
   21226 void __RPC_STUB IExplorerBrowser_Advise_Stub(
   21227     IRpcStubBuffer* This,
   21228     IRpcChannelBuffer* pRpcChannelBuffer,
   21229     PRPC_MESSAGE pRpcMessage,
   21230     DWORD* pdwStubPhase);
   21231 HRESULT STDMETHODCALLTYPE IExplorerBrowser_Unadvise_Proxy(
   21232     IExplorerBrowser* This,
   21233     DWORD dwCookie);
   21234 void __RPC_STUB IExplorerBrowser_Unadvise_Stub(
   21235     IRpcStubBuffer* This,
   21236     IRpcChannelBuffer* pRpcChannelBuffer,
   21237     PRPC_MESSAGE pRpcMessage,
   21238     DWORD* pdwStubPhase);
   21239 HRESULT STDMETHODCALLTYPE IExplorerBrowser_SetOptions_Proxy(
   21240     IExplorerBrowser* This,
   21241     EXPLORER_BROWSER_OPTIONS dwFlag);
   21242 void __RPC_STUB IExplorerBrowser_SetOptions_Stub(
   21243     IRpcStubBuffer* This,
   21244     IRpcChannelBuffer* pRpcChannelBuffer,
   21245     PRPC_MESSAGE pRpcMessage,
   21246     DWORD* pdwStubPhase);
   21247 HRESULT STDMETHODCALLTYPE IExplorerBrowser_GetOptions_Proxy(
   21248     IExplorerBrowser* This,
   21249     EXPLORER_BROWSER_OPTIONS *pdwFlag);
   21250 void __RPC_STUB IExplorerBrowser_GetOptions_Stub(
   21251     IRpcStubBuffer* This,
   21252     IRpcChannelBuffer* pRpcChannelBuffer,
   21253     PRPC_MESSAGE pRpcMessage,
   21254     DWORD* pdwStubPhase);
   21255 HRESULT STDMETHODCALLTYPE IExplorerBrowser_BrowseToIDList_Proxy(
   21256     IExplorerBrowser* This,
   21257     PCUIDLIST_RELATIVE pidl,
   21258     UINT uFlags);
   21259 void __RPC_STUB IExplorerBrowser_BrowseToIDList_Stub(
   21260     IRpcStubBuffer* This,
   21261     IRpcChannelBuffer* pRpcChannelBuffer,
   21262     PRPC_MESSAGE pRpcMessage,
   21263     DWORD* pdwStubPhase);
   21264 HRESULT STDMETHODCALLTYPE IExplorerBrowser_BrowseToObject_Proxy(
   21265     IExplorerBrowser* This,
   21266     IUnknown *punk,
   21267     UINT uFlags);
   21268 void __RPC_STUB IExplorerBrowser_BrowseToObject_Stub(
   21269     IRpcStubBuffer* This,
   21270     IRpcChannelBuffer* pRpcChannelBuffer,
   21271     PRPC_MESSAGE pRpcMessage,
   21272     DWORD* pdwStubPhase);
   21273 HRESULT STDMETHODCALLTYPE IExplorerBrowser_FillFromObject_Proxy(
   21274     IExplorerBrowser* This,
   21275     IUnknown *punk,
   21276     EXPLORER_BROWSER_FILL_FLAGS dwFlags);
   21277 void __RPC_STUB IExplorerBrowser_FillFromObject_Stub(
   21278     IRpcStubBuffer* This,
   21279     IRpcChannelBuffer* pRpcChannelBuffer,
   21280     PRPC_MESSAGE pRpcMessage,
   21281     DWORD* pdwStubPhase);
   21282 HRESULT STDMETHODCALLTYPE IExplorerBrowser_RemoveAll_Proxy(
   21283     IExplorerBrowser* This);
   21284 void __RPC_STUB IExplorerBrowser_RemoveAll_Stub(
   21285     IRpcStubBuffer* This,
   21286     IRpcChannelBuffer* pRpcChannelBuffer,
   21287     PRPC_MESSAGE pRpcMessage,
   21288     DWORD* pdwStubPhase);
   21289 HRESULT STDMETHODCALLTYPE IExplorerBrowser_GetCurrentView_Proxy(
   21290     IExplorerBrowser* This,
   21291     REFIID riid,
   21292     void **ppv);
   21293 void __RPC_STUB IExplorerBrowser_GetCurrentView_Stub(
   21294     IRpcStubBuffer* This,
   21295     IRpcChannelBuffer* pRpcChannelBuffer,
   21296     PRPC_MESSAGE pRpcMessage,
   21297     DWORD* pdwStubPhase);
   21298 
   21299 #endif  /* __IExplorerBrowser_INTERFACE_DEFINED__ */
   21300 
   21301 
   21302 /*****************************************************************************
   21303  * IAccessibleObject interface
   21304  */
   21305 #ifndef __IAccessibleObject_INTERFACE_DEFINED__
   21306 #define __IAccessibleObject_INTERFACE_DEFINED__
   21307 
   21308 DEFINE_GUID(IID_IAccessibleObject, 0x95a391c5, 0x9ed4, 0x4c28, 0x84,0x01, 0xab,0x9e,0x06,0x71,0x9e,0x11);
   21309 #if defined(__cplusplus) && !defined(CINTERFACE)
   21310 MIDL_INTERFACE("95a391c5-9ed4-4c28-8401-ab9e06719e11")
   21311 IAccessibleObject : public IUnknown
   21312 {
   21313     virtual HRESULT STDMETHODCALLTYPE SetAccessibleName(
   21314         LPCWSTR pszName) = 0;
   21315 
   21316 };
   21317 #ifdef __CRT_UUID_DECL
   21318 __CRT_UUID_DECL(IAccessibleObject, 0x95a391c5, 0x9ed4, 0x4c28, 0x84,0x01, 0xab,0x9e,0x06,0x71,0x9e,0x11)
   21319 #endif
   21320 #else
   21321 typedef struct IAccessibleObjectVtbl {
   21322     BEGIN_INTERFACE
   21323 
   21324     /*** IUnknown methods ***/
   21325     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   21326         IAccessibleObject* This,
   21327         REFIID riid,
   21328         void **ppvObject);
   21329 
   21330     ULONG (STDMETHODCALLTYPE *AddRef)(
   21331         IAccessibleObject* This);
   21332 
   21333     ULONG (STDMETHODCALLTYPE *Release)(
   21334         IAccessibleObject* This);
   21335 
   21336     /*** IAccessibleObject methods ***/
   21337     HRESULT (STDMETHODCALLTYPE *SetAccessibleName)(
   21338         IAccessibleObject* This,
   21339         LPCWSTR pszName);
   21340 
   21341     END_INTERFACE
   21342 } IAccessibleObjectVtbl;
   21343 interface IAccessibleObject {
   21344     CONST_VTBL IAccessibleObjectVtbl* lpVtbl;
   21345 };
   21346 
   21347 #ifdef COBJMACROS
   21348 #ifndef WIDL_C_INLINE_WRAPPERS
   21349 /*** IUnknown methods ***/
   21350 #define IAccessibleObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   21351 #define IAccessibleObject_AddRef(This) (This)->lpVtbl->AddRef(This)
   21352 #define IAccessibleObject_Release(This) (This)->lpVtbl->Release(This)
   21353 /*** IAccessibleObject methods ***/
   21354 #define IAccessibleObject_SetAccessibleName(This,pszName) (This)->lpVtbl->SetAccessibleName(This,pszName)
   21355 #else
   21356 /*** IUnknown methods ***/
   21357 static FORCEINLINE HRESULT IAccessibleObject_QueryInterface(IAccessibleObject* This,REFIID riid,void **ppvObject) {
   21358     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   21359 }
   21360 static FORCEINLINE ULONG IAccessibleObject_AddRef(IAccessibleObject* This) {
   21361     return This->lpVtbl->AddRef(This);
   21362 }
   21363 static FORCEINLINE ULONG IAccessibleObject_Release(IAccessibleObject* This) {
   21364     return This->lpVtbl->Release(This);
   21365 }
   21366 /*** IAccessibleObject methods ***/
   21367 static FORCEINLINE HRESULT IAccessibleObject_SetAccessibleName(IAccessibleObject* This,LPCWSTR pszName) {
   21368     return This->lpVtbl->SetAccessibleName(This,pszName);
   21369 }
   21370 #endif
   21371 #endif
   21372 
   21373 #endif
   21374 
   21375 HRESULT STDMETHODCALLTYPE IAccessibleObject_SetAccessibleName_Proxy(
   21376     IAccessibleObject* This,
   21377     LPCWSTR pszName);
   21378 void __RPC_STUB IAccessibleObject_SetAccessibleName_Stub(
   21379     IRpcStubBuffer* This,
   21380     IRpcChannelBuffer* pRpcChannelBuffer,
   21381     PRPC_MESSAGE pRpcMessage,
   21382     DWORD* pdwStubPhase);
   21383 
   21384 #endif  /* __IAccessibleObject_INTERFACE_DEFINED__ */
   21385 
   21386 #endif
   21387 
   21388 /*****************************************************************************
   21389  * IResultsFolder interface
   21390  */
   21391 #ifndef __IResultsFolder_INTERFACE_DEFINED__
   21392 #define __IResultsFolder_INTERFACE_DEFINED__
   21393 
   21394 DEFINE_GUID(IID_IResultsFolder, 0x96e5ae6d, 0x6ae1, 0x4b1c, 0x90,0x0c, 0xc6,0x48,0x0e,0xaa,0x88,0x28);
   21395 #if defined(__cplusplus) && !defined(CINTERFACE)
   21396 MIDL_INTERFACE("96e5ae6d-6ae1-4b1c-900c-c6480eaa8828")
   21397 IResultsFolder : public IUnknown
   21398 {
   21399     virtual HRESULT STDMETHODCALLTYPE AddItem(
   21400         IShellItem *psi) = 0;
   21401 
   21402     virtual HRESULT STDMETHODCALLTYPE AddIDList(
   21403         PCIDLIST_ABSOLUTE pidl,
   21404         PITEMID_CHILD *ppidlAdded) = 0;
   21405 
   21406     virtual HRESULT STDMETHODCALLTYPE RemoveItem(
   21407         IShellItem *psi) = 0;
   21408 
   21409     virtual HRESULT STDMETHODCALLTYPE RemoveIDList(
   21410         PCIDLIST_ABSOLUTE pidl) = 0;
   21411 
   21412     virtual HRESULT STDMETHODCALLTYPE RemoveAll(
   21413         ) = 0;
   21414 
   21415 };
   21416 #ifdef __CRT_UUID_DECL
   21417 __CRT_UUID_DECL(IResultsFolder, 0x96e5ae6d, 0x6ae1, 0x4b1c, 0x90,0x0c, 0xc6,0x48,0x0e,0xaa,0x88,0x28)
   21418 #endif
   21419 #else
   21420 typedef struct IResultsFolderVtbl {
   21421     BEGIN_INTERFACE
   21422 
   21423     /*** IUnknown methods ***/
   21424     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   21425         IResultsFolder* This,
   21426         REFIID riid,
   21427         void **ppvObject);
   21428 
   21429     ULONG (STDMETHODCALLTYPE *AddRef)(
   21430         IResultsFolder* This);
   21431 
   21432     ULONG (STDMETHODCALLTYPE *Release)(
   21433         IResultsFolder* This);
   21434 
   21435     /*** IResultsFolder methods ***/
   21436     HRESULT (STDMETHODCALLTYPE *AddItem)(
   21437         IResultsFolder* This,
   21438         IShellItem *psi);
   21439 
   21440     HRESULT (STDMETHODCALLTYPE *AddIDList)(
   21441         IResultsFolder* This,
   21442         PCIDLIST_ABSOLUTE pidl,
   21443         PITEMID_CHILD *ppidlAdded);
   21444 
   21445     HRESULT (STDMETHODCALLTYPE *RemoveItem)(
   21446         IResultsFolder* This,
   21447         IShellItem *psi);
   21448 
   21449     HRESULT (STDMETHODCALLTYPE *RemoveIDList)(
   21450         IResultsFolder* This,
   21451         PCIDLIST_ABSOLUTE pidl);
   21452 
   21453     HRESULT (STDMETHODCALLTYPE *RemoveAll)(
   21454         IResultsFolder* This);
   21455 
   21456     END_INTERFACE
   21457 } IResultsFolderVtbl;
   21458 interface IResultsFolder {
   21459     CONST_VTBL IResultsFolderVtbl* lpVtbl;
   21460 };
   21461 
   21462 #ifdef COBJMACROS
   21463 #ifndef WIDL_C_INLINE_WRAPPERS
   21464 /*** IUnknown methods ***/
   21465 #define IResultsFolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   21466 #define IResultsFolder_AddRef(This) (This)->lpVtbl->AddRef(This)
   21467 #define IResultsFolder_Release(This) (This)->lpVtbl->Release(This)
   21468 /*** IResultsFolder methods ***/
   21469 #define IResultsFolder_AddItem(This,psi) (This)->lpVtbl->AddItem(This,psi)
   21470 #define IResultsFolder_AddIDList(This,pidl,ppidlAdded) (This)->lpVtbl->AddIDList(This,pidl,ppidlAdded)
   21471 #define IResultsFolder_RemoveItem(This,psi) (This)->lpVtbl->RemoveItem(This,psi)
   21472 #define IResultsFolder_RemoveIDList(This,pidl) (This)->lpVtbl->RemoveIDList(This,pidl)
   21473 #define IResultsFolder_RemoveAll(This) (This)->lpVtbl->RemoveAll(This)
   21474 #else
   21475 /*** IUnknown methods ***/
   21476 static FORCEINLINE HRESULT IResultsFolder_QueryInterface(IResultsFolder* This,REFIID riid,void **ppvObject) {
   21477     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   21478 }
   21479 static FORCEINLINE ULONG IResultsFolder_AddRef(IResultsFolder* This) {
   21480     return This->lpVtbl->AddRef(This);
   21481 }
   21482 static FORCEINLINE ULONG IResultsFolder_Release(IResultsFolder* This) {
   21483     return This->lpVtbl->Release(This);
   21484 }
   21485 /*** IResultsFolder methods ***/
   21486 static FORCEINLINE HRESULT IResultsFolder_AddItem(IResultsFolder* This,IShellItem *psi) {
   21487     return This->lpVtbl->AddItem(This,psi);
   21488 }
   21489 static FORCEINLINE HRESULT IResultsFolder_AddIDList(IResultsFolder* This,PCIDLIST_ABSOLUTE pidl,PITEMID_CHILD *ppidlAdded) {
   21490     return This->lpVtbl->AddIDList(This,pidl,ppidlAdded);
   21491 }
   21492 static FORCEINLINE HRESULT IResultsFolder_RemoveItem(IResultsFolder* This,IShellItem *psi) {
   21493     return This->lpVtbl->RemoveItem(This,psi);
   21494 }
   21495 static FORCEINLINE HRESULT IResultsFolder_RemoveIDList(IResultsFolder* This,PCIDLIST_ABSOLUTE pidl) {
   21496     return This->lpVtbl->RemoveIDList(This,pidl);
   21497 }
   21498 static FORCEINLINE HRESULT IResultsFolder_RemoveAll(IResultsFolder* This) {
   21499     return This->lpVtbl->RemoveAll(This);
   21500 }
   21501 #endif
   21502 #endif
   21503 
   21504 #endif
   21505 
   21506 HRESULT STDMETHODCALLTYPE IResultsFolder_AddItem_Proxy(
   21507     IResultsFolder* This,
   21508     IShellItem *psi);
   21509 void __RPC_STUB IResultsFolder_AddItem_Stub(
   21510     IRpcStubBuffer* This,
   21511     IRpcChannelBuffer* pRpcChannelBuffer,
   21512     PRPC_MESSAGE pRpcMessage,
   21513     DWORD* pdwStubPhase);
   21514 HRESULT STDMETHODCALLTYPE IResultsFolder_RemoteAddIDList_Proxy(
   21515     IResultsFolder* This,
   21516     PCIDLIST_ABSOLUTE pidl,
   21517     PITEMID_CHILD *ppidlAdded);
   21518 void __RPC_STUB IResultsFolder_RemoteAddIDList_Stub(
   21519     IRpcStubBuffer* This,
   21520     IRpcChannelBuffer* pRpcChannelBuffer,
   21521     PRPC_MESSAGE pRpcMessage,
   21522     DWORD* pdwStubPhase);
   21523 HRESULT STDMETHODCALLTYPE IResultsFolder_RemoveItem_Proxy(
   21524     IResultsFolder* This,
   21525     IShellItem *psi);
   21526 void __RPC_STUB IResultsFolder_RemoveItem_Stub(
   21527     IRpcStubBuffer* This,
   21528     IRpcChannelBuffer* pRpcChannelBuffer,
   21529     PRPC_MESSAGE pRpcMessage,
   21530     DWORD* pdwStubPhase);
   21531 HRESULT STDMETHODCALLTYPE IResultsFolder_RemoveIDList_Proxy(
   21532     IResultsFolder* This,
   21533     PCIDLIST_ABSOLUTE pidl);
   21534 void __RPC_STUB IResultsFolder_RemoveIDList_Stub(
   21535     IRpcStubBuffer* This,
   21536     IRpcChannelBuffer* pRpcChannelBuffer,
   21537     PRPC_MESSAGE pRpcMessage,
   21538     DWORD* pdwStubPhase);
   21539 HRESULT STDMETHODCALLTYPE IResultsFolder_RemoveAll_Proxy(
   21540     IResultsFolder* This);
   21541 void __RPC_STUB IResultsFolder_RemoveAll_Stub(
   21542     IRpcStubBuffer* This,
   21543     IRpcChannelBuffer* pRpcChannelBuffer,
   21544     PRPC_MESSAGE pRpcMessage,
   21545     DWORD* pdwStubPhase);
   21546 HRESULT CALLBACK IResultsFolder_AddIDList_Proxy(
   21547     IResultsFolder* This,
   21548     PCIDLIST_ABSOLUTE pidl,
   21549     PITEMID_CHILD *ppidlAdded);
   21550 HRESULT __RPC_STUB IResultsFolder_AddIDList_Stub(
   21551     IResultsFolder* This,
   21552     PCIDLIST_ABSOLUTE pidl,
   21553     PITEMID_CHILD *ppidlAdded);
   21554 
   21555 #endif  /* __IResultsFolder_INTERFACE_DEFINED__ */
   21556 
   21557 #if _WIN32_IE >= _WIN32_IE_IE70
   21558 /*****************************************************************************
   21559  * IEnumObjects interface
   21560  */
   21561 #ifndef __IEnumObjects_INTERFACE_DEFINED__
   21562 #define __IEnumObjects_INTERFACE_DEFINED__
   21563 
   21564 DEFINE_GUID(IID_IEnumObjects, 0x2c1c7e2e, 0x2d0e, 0x4059, 0x83,0x1e, 0x1e,0x6f,0x82,0x33,0x5c,0x2e);
   21565 #if defined(__cplusplus) && !defined(CINTERFACE)
   21566 MIDL_INTERFACE("2c1c7e2e-2d0e-4059-831e-1e6f82335c2e")
   21567 IEnumObjects : public IUnknown
   21568 {
   21569     virtual HRESULT STDMETHODCALLTYPE Next(
   21570         ULONG celt,
   21571         REFIID riid,
   21572         void **rgelt,
   21573         ULONG *pceltFetched) = 0;
   21574 
   21575     virtual HRESULT STDMETHODCALLTYPE Skip(
   21576         ULONG celt) = 0;
   21577 
   21578     virtual HRESULT STDMETHODCALLTYPE Reset(
   21579         ) = 0;
   21580 
   21581     virtual HRESULT STDMETHODCALLTYPE Clone(
   21582         IEnumObjects **ppenum) = 0;
   21583 
   21584 };
   21585 #ifdef __CRT_UUID_DECL
   21586 __CRT_UUID_DECL(IEnumObjects, 0x2c1c7e2e, 0x2d0e, 0x4059, 0x83,0x1e, 0x1e,0x6f,0x82,0x33,0x5c,0x2e)
   21587 #endif
   21588 #else
   21589 typedef struct IEnumObjectsVtbl {
   21590     BEGIN_INTERFACE
   21591 
   21592     /*** IUnknown methods ***/
   21593     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   21594         IEnumObjects* This,
   21595         REFIID riid,
   21596         void **ppvObject);
   21597 
   21598     ULONG (STDMETHODCALLTYPE *AddRef)(
   21599         IEnumObjects* This);
   21600 
   21601     ULONG (STDMETHODCALLTYPE *Release)(
   21602         IEnumObjects* This);
   21603 
   21604     /*** IEnumObjects methods ***/
   21605     HRESULT (STDMETHODCALLTYPE *Next)(
   21606         IEnumObjects* This,
   21607         ULONG celt,
   21608         REFIID riid,
   21609         void **rgelt,
   21610         ULONG *pceltFetched);
   21611 
   21612     HRESULT (STDMETHODCALLTYPE *Skip)(
   21613         IEnumObjects* This,
   21614         ULONG celt);
   21615 
   21616     HRESULT (STDMETHODCALLTYPE *Reset)(
   21617         IEnumObjects* This);
   21618 
   21619     HRESULT (STDMETHODCALLTYPE *Clone)(
   21620         IEnumObjects* This,
   21621         IEnumObjects **ppenum);
   21622 
   21623     END_INTERFACE
   21624 } IEnumObjectsVtbl;
   21625 interface IEnumObjects {
   21626     CONST_VTBL IEnumObjectsVtbl* lpVtbl;
   21627 };
   21628 
   21629 #ifdef COBJMACROS
   21630 #ifndef WIDL_C_INLINE_WRAPPERS
   21631 /*** IUnknown methods ***/
   21632 #define IEnumObjects_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   21633 #define IEnumObjects_AddRef(This) (This)->lpVtbl->AddRef(This)
   21634 #define IEnumObjects_Release(This) (This)->lpVtbl->Release(This)
   21635 /*** IEnumObjects methods ***/
   21636 #define IEnumObjects_Next(This,celt,riid,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,riid,rgelt,pceltFetched)
   21637 #define IEnumObjects_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
   21638 #define IEnumObjects_Reset(This) (This)->lpVtbl->Reset(This)
   21639 #define IEnumObjects_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
   21640 #else
   21641 /*** IUnknown methods ***/
   21642 static FORCEINLINE HRESULT IEnumObjects_QueryInterface(IEnumObjects* This,REFIID riid,void **ppvObject) {
   21643     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   21644 }
   21645 static FORCEINLINE ULONG IEnumObjects_AddRef(IEnumObjects* This) {
   21646     return This->lpVtbl->AddRef(This);
   21647 }
   21648 static FORCEINLINE ULONG IEnumObjects_Release(IEnumObjects* This) {
   21649     return This->lpVtbl->Release(This);
   21650 }
   21651 /*** IEnumObjects methods ***/
   21652 static FORCEINLINE HRESULT IEnumObjects_Next(IEnumObjects* This,ULONG celt,REFIID riid,void **rgelt,ULONG *pceltFetched) {
   21653     return This->lpVtbl->Next(This,celt,riid,rgelt,pceltFetched);
   21654 }
   21655 static FORCEINLINE HRESULT IEnumObjects_Skip(IEnumObjects* This,ULONG celt) {
   21656     return This->lpVtbl->Skip(This,celt);
   21657 }
   21658 static FORCEINLINE HRESULT IEnumObjects_Reset(IEnumObjects* This) {
   21659     return This->lpVtbl->Reset(This);
   21660 }
   21661 static FORCEINLINE HRESULT IEnumObjects_Clone(IEnumObjects* This,IEnumObjects **ppenum) {
   21662     return This->lpVtbl->Clone(This,ppenum);
   21663 }
   21664 #endif
   21665 #endif
   21666 
   21667 #endif
   21668 
   21669 HRESULT STDMETHODCALLTYPE IEnumObjects_RemoteNext_Proxy(
   21670     IEnumObjects* This,
   21671     ULONG celt,
   21672     REFIID riid,
   21673     void **rgelt,
   21674     ULONG *pceltFetched);
   21675 void __RPC_STUB IEnumObjects_RemoteNext_Stub(
   21676     IRpcStubBuffer* This,
   21677     IRpcChannelBuffer* pRpcChannelBuffer,
   21678     PRPC_MESSAGE pRpcMessage,
   21679     DWORD* pdwStubPhase);
   21680 HRESULT STDMETHODCALLTYPE IEnumObjects_Skip_Proxy(
   21681     IEnumObjects* This,
   21682     ULONG celt);
   21683 void __RPC_STUB IEnumObjects_Skip_Stub(
   21684     IRpcStubBuffer* This,
   21685     IRpcChannelBuffer* pRpcChannelBuffer,
   21686     PRPC_MESSAGE pRpcMessage,
   21687     DWORD* pdwStubPhase);
   21688 HRESULT STDMETHODCALLTYPE IEnumObjects_Reset_Proxy(
   21689     IEnumObjects* This);
   21690 void __RPC_STUB IEnumObjects_Reset_Stub(
   21691     IRpcStubBuffer* This,
   21692     IRpcChannelBuffer* pRpcChannelBuffer,
   21693     PRPC_MESSAGE pRpcMessage,
   21694     DWORD* pdwStubPhase);
   21695 HRESULT STDMETHODCALLTYPE IEnumObjects_Clone_Proxy(
   21696     IEnumObjects* This,
   21697     IEnumObjects **ppenum);
   21698 void __RPC_STUB IEnumObjects_Clone_Stub(
   21699     IRpcStubBuffer* This,
   21700     IRpcChannelBuffer* pRpcChannelBuffer,
   21701     PRPC_MESSAGE pRpcMessage,
   21702     DWORD* pdwStubPhase);
   21703 HRESULT CALLBACK IEnumObjects_Next_Proxy(
   21704     IEnumObjects* This,
   21705     ULONG celt,
   21706     REFIID riid,
   21707     void **rgelt,
   21708     ULONG *pceltFetched);
   21709 HRESULT __RPC_STUB IEnumObjects_Next_Stub(
   21710     IEnumObjects* This,
   21711     ULONG celt,
   21712     REFIID riid,
   21713     void **rgelt,
   21714     ULONG *pceltFetched);
   21715 
   21716 #endif  /* __IEnumObjects_INTERFACE_DEFINED__ */
   21717 
   21718 
   21719 enum _OPPROGDLGF {
   21720     OPPROGDLG_DEFAULT = 0x0,
   21721     OPPROGDLG_ENABLEPAUSE = 0x80,
   21722     OPPROGDLG_ALLOWUNDO = 0x100,
   21723     OPPROGDLG_DONTDISPLAYSOURCEPATH = 0x200,
   21724     OPPROGDLG_DONTDISPLAYDESTPATH = 0x400,
   21725     OPPROGDLG_NOMULTIDAYESTIMATES = 0x800,
   21726     OPPROGDLG_DONTDISPLAYLOCATIONS = 0x1000
   21727 };
   21728 
   21729 
   21730 typedef DWORD OPPROGDLGF;
   21731 
   21732 /*****************************************************************************
   21733  * IOperationsProgressDialog interface
   21734  */
   21735 #ifndef __IOperationsProgressDialog_INTERFACE_DEFINED__
   21736 #define __IOperationsProgressDialog_INTERFACE_DEFINED__
   21737 
   21738 enum _PDMODE {
   21739     PDM_DEFAULT = 0x0,
   21740     PDM_RUN = 0x1,
   21741     PDM_PREFLIGHT = 0x2,
   21742     PDM_UNDOING = 0x4,
   21743     PDM_ERRORSBLOCKING = 0x8,
   21744     PDM_INDETERMINATE = 0x10
   21745 };
   21746 
   21747 
   21748 typedef DWORD PDMODE;
   21749 
   21750 typedef enum PDOPSTATUS {
   21751     PDOPS_RUNNING = 1,
   21752     PDOPS_PAUSED = 2,
   21753     PDOPS_CANCELLED = 3,
   21754     PDOPS_STOPPED = 4,
   21755     PDOPS_ERRORS = 5
   21756 } PDOPSTATUS;
   21757 
   21758 DEFINE_GUID(IID_IOperationsProgressDialog, 0x0c9fb851, 0xe5c9, 0x43eb, 0xa3,0x70, 0xf0,0x67,0x7b,0x13,0x87,0x4c);
   21759 #if defined(__cplusplus) && !defined(CINTERFACE)
   21760 MIDL_INTERFACE("0c9fb851-e5c9-43eb-a370-f0677b13874c")
   21761 IOperationsProgressDialog : public IUnknown
   21762 {
   21763     virtual HRESULT STDMETHODCALLTYPE StartProgressDialog(
   21764         HWND hwndOwner,
   21765         OPPROGDLGF flags) = 0;
   21766 
   21767     virtual HRESULT STDMETHODCALLTYPE StopProgressDialog(
   21768         ) = 0;
   21769 
   21770     virtual HRESULT STDMETHODCALLTYPE SetOperation(
   21771         SPACTION action) = 0;
   21772 
   21773     virtual HRESULT STDMETHODCALLTYPE SetMode(
   21774         PDMODE mode) = 0;
   21775 
   21776     virtual HRESULT STDMETHODCALLTYPE UpdateProgress(
   21777         ULONGLONG ullPointsCurrent,
   21778         ULONGLONG ullPointsTotal,
   21779         ULONGLONG ullSizeCurrent,
   21780         ULONGLONG ullSizeTotal,
   21781         ULONGLONG ullItemsCurrent,
   21782         ULONGLONG ullItemsTotal) = 0;
   21783 
   21784     virtual HRESULT STDMETHODCALLTYPE UpdateLocations(
   21785         IShellItem *psiSource,
   21786         IShellItem *psiTarget,
   21787         IShellItem *psiItem) = 0;
   21788 
   21789     virtual HRESULT STDMETHODCALLTYPE ResetTimer(
   21790         ) = 0;
   21791 
   21792     virtual HRESULT STDMETHODCALLTYPE PauseTimer(
   21793         ) = 0;
   21794 
   21795     virtual HRESULT STDMETHODCALLTYPE ResumeTimer(
   21796         ) = 0;
   21797 
   21798     virtual HRESULT STDMETHODCALLTYPE GetMilliseconds(
   21799         ULONGLONG *pullElapsed,
   21800         ULONGLONG *pullRemaining) = 0;
   21801 
   21802     virtual HRESULT STDMETHODCALLTYPE GetOperationStatus(
   21803         PDOPSTATUS *popstatus) = 0;
   21804 
   21805 };
   21806 #ifdef __CRT_UUID_DECL
   21807 __CRT_UUID_DECL(IOperationsProgressDialog, 0x0c9fb851, 0xe5c9, 0x43eb, 0xa3,0x70, 0xf0,0x67,0x7b,0x13,0x87,0x4c)
   21808 #endif
   21809 #else
   21810 typedef struct IOperationsProgressDialogVtbl {
   21811     BEGIN_INTERFACE
   21812 
   21813     /*** IUnknown methods ***/
   21814     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   21815         IOperationsProgressDialog* This,
   21816         REFIID riid,
   21817         void **ppvObject);
   21818 
   21819     ULONG (STDMETHODCALLTYPE *AddRef)(
   21820         IOperationsProgressDialog* This);
   21821 
   21822     ULONG (STDMETHODCALLTYPE *Release)(
   21823         IOperationsProgressDialog* This);
   21824 
   21825     /*** IOperationsProgressDialog methods ***/
   21826     HRESULT (STDMETHODCALLTYPE *StartProgressDialog)(
   21827         IOperationsProgressDialog* This,
   21828         HWND hwndOwner,
   21829         OPPROGDLGF flags);
   21830 
   21831     HRESULT (STDMETHODCALLTYPE *StopProgressDialog)(
   21832         IOperationsProgressDialog* This);
   21833 
   21834     HRESULT (STDMETHODCALLTYPE *SetOperation)(
   21835         IOperationsProgressDialog* This,
   21836         SPACTION action);
   21837 
   21838     HRESULT (STDMETHODCALLTYPE *SetMode)(
   21839         IOperationsProgressDialog* This,
   21840         PDMODE mode);
   21841 
   21842     HRESULT (STDMETHODCALLTYPE *UpdateProgress)(
   21843         IOperationsProgressDialog* This,
   21844         ULONGLONG ullPointsCurrent,
   21845         ULONGLONG ullPointsTotal,
   21846         ULONGLONG ullSizeCurrent,
   21847         ULONGLONG ullSizeTotal,
   21848         ULONGLONG ullItemsCurrent,
   21849         ULONGLONG ullItemsTotal);
   21850 
   21851     HRESULT (STDMETHODCALLTYPE *UpdateLocations)(
   21852         IOperationsProgressDialog* This,
   21853         IShellItem *psiSource,
   21854         IShellItem *psiTarget,
   21855         IShellItem *psiItem);
   21856 
   21857     HRESULT (STDMETHODCALLTYPE *ResetTimer)(
   21858         IOperationsProgressDialog* This);
   21859 
   21860     HRESULT (STDMETHODCALLTYPE *PauseTimer)(
   21861         IOperationsProgressDialog* This);
   21862 
   21863     HRESULT (STDMETHODCALLTYPE *ResumeTimer)(
   21864         IOperationsProgressDialog* This);
   21865 
   21866     HRESULT (STDMETHODCALLTYPE *GetMilliseconds)(
   21867         IOperationsProgressDialog* This,
   21868         ULONGLONG *pullElapsed,
   21869         ULONGLONG *pullRemaining);
   21870 
   21871     HRESULT (STDMETHODCALLTYPE *GetOperationStatus)(
   21872         IOperationsProgressDialog* This,
   21873         PDOPSTATUS *popstatus);
   21874 
   21875     END_INTERFACE
   21876 } IOperationsProgressDialogVtbl;
   21877 interface IOperationsProgressDialog {
   21878     CONST_VTBL IOperationsProgressDialogVtbl* lpVtbl;
   21879 };
   21880 
   21881 #ifdef COBJMACROS
   21882 #ifndef WIDL_C_INLINE_WRAPPERS
   21883 /*** IUnknown methods ***/
   21884 #define IOperationsProgressDialog_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   21885 #define IOperationsProgressDialog_AddRef(This) (This)->lpVtbl->AddRef(This)
   21886 #define IOperationsProgressDialog_Release(This) (This)->lpVtbl->Release(This)
   21887 /*** IOperationsProgressDialog methods ***/
   21888 #define IOperationsProgressDialog_StartProgressDialog(This,hwndOwner,flags) (This)->lpVtbl->StartProgressDialog(This,hwndOwner,flags)
   21889 #define IOperationsProgressDialog_StopProgressDialog(This) (This)->lpVtbl->StopProgressDialog(This)
   21890 #define IOperationsProgressDialog_SetOperation(This,action) (This)->lpVtbl->SetOperation(This,action)
   21891 #define IOperationsProgressDialog_SetMode(This,mode) (This)->lpVtbl->SetMode(This,mode)
   21892 #define IOperationsProgressDialog_UpdateProgress(This,ullPointsCurrent,ullPointsTotal,ullSizeCurrent,ullSizeTotal,ullItemsCurrent,ullItemsTotal) (This)->lpVtbl->UpdateProgress(This,ullPointsCurrent,ullPointsTotal,ullSizeCurrent,ullSizeTotal,ullItemsCurrent,ullItemsTotal)
   21893 #define IOperationsProgressDialog_UpdateLocations(This,psiSource,psiTarget,psiItem) (This)->lpVtbl->UpdateLocations(This,psiSource,psiTarget,psiItem)
   21894 #define IOperationsProgressDialog_ResetTimer(This) (This)->lpVtbl->ResetTimer(This)
   21895 #define IOperationsProgressDialog_PauseTimer(This) (This)->lpVtbl->PauseTimer(This)
   21896 #define IOperationsProgressDialog_ResumeTimer(This) (This)->lpVtbl->ResumeTimer(This)
   21897 #define IOperationsProgressDialog_GetMilliseconds(This,pullElapsed,pullRemaining) (This)->lpVtbl->GetMilliseconds(This,pullElapsed,pullRemaining)
   21898 #define IOperationsProgressDialog_GetOperationStatus(This,popstatus) (This)->lpVtbl->GetOperationStatus(This,popstatus)
   21899 #else
   21900 /*** IUnknown methods ***/
   21901 static FORCEINLINE HRESULT IOperationsProgressDialog_QueryInterface(IOperationsProgressDialog* This,REFIID riid,void **ppvObject) {
   21902     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   21903 }
   21904 static FORCEINLINE ULONG IOperationsProgressDialog_AddRef(IOperationsProgressDialog* This) {
   21905     return This->lpVtbl->AddRef(This);
   21906 }
   21907 static FORCEINLINE ULONG IOperationsProgressDialog_Release(IOperationsProgressDialog* This) {
   21908     return This->lpVtbl->Release(This);
   21909 }
   21910 /*** IOperationsProgressDialog methods ***/
   21911 static FORCEINLINE HRESULT IOperationsProgressDialog_StartProgressDialog(IOperationsProgressDialog* This,HWND hwndOwner,OPPROGDLGF flags) {
   21912     return This->lpVtbl->StartProgressDialog(This,hwndOwner,flags);
   21913 }
   21914 static FORCEINLINE HRESULT IOperationsProgressDialog_StopProgressDialog(IOperationsProgressDialog* This) {
   21915     return This->lpVtbl->StopProgressDialog(This);
   21916 }
   21917 static FORCEINLINE HRESULT IOperationsProgressDialog_SetOperation(IOperationsProgressDialog* This,SPACTION action) {
   21918     return This->lpVtbl->SetOperation(This,action);
   21919 }
   21920 static FORCEINLINE HRESULT IOperationsProgressDialog_SetMode(IOperationsProgressDialog* This,PDMODE mode) {
   21921     return This->lpVtbl->SetMode(This,mode);
   21922 }
   21923 static FORCEINLINE HRESULT IOperationsProgressDialog_UpdateProgress(IOperationsProgressDialog* This,ULONGLONG ullPointsCurrent,ULONGLONG ullPointsTotal,ULONGLONG ullSizeCurrent,ULONGLONG ullSizeTotal,ULONGLONG ullItemsCurrent,ULONGLONG ullItemsTotal) {
   21924     return This->lpVtbl->UpdateProgress(This,ullPointsCurrent,ullPointsTotal,ullSizeCurrent,ullSizeTotal,ullItemsCurrent,ullItemsTotal);
   21925 }
   21926 static FORCEINLINE HRESULT IOperationsProgressDialog_UpdateLocations(IOperationsProgressDialog* This,IShellItem *psiSource,IShellItem *psiTarget,IShellItem *psiItem) {
   21927     return This->lpVtbl->UpdateLocations(This,psiSource,psiTarget,psiItem);
   21928 }
   21929 static FORCEINLINE HRESULT IOperationsProgressDialog_ResetTimer(IOperationsProgressDialog* This) {
   21930     return This->lpVtbl->ResetTimer(This);
   21931 }
   21932 static FORCEINLINE HRESULT IOperationsProgressDialog_PauseTimer(IOperationsProgressDialog* This) {
   21933     return This->lpVtbl->PauseTimer(This);
   21934 }
   21935 static FORCEINLINE HRESULT IOperationsProgressDialog_ResumeTimer(IOperationsProgressDialog* This) {
   21936     return This->lpVtbl->ResumeTimer(This);
   21937 }
   21938 static FORCEINLINE HRESULT IOperationsProgressDialog_GetMilliseconds(IOperationsProgressDialog* This,ULONGLONG *pullElapsed,ULONGLONG *pullRemaining) {
   21939     return This->lpVtbl->GetMilliseconds(This,pullElapsed,pullRemaining);
   21940 }
   21941 static FORCEINLINE HRESULT IOperationsProgressDialog_GetOperationStatus(IOperationsProgressDialog* This,PDOPSTATUS *popstatus) {
   21942     return This->lpVtbl->GetOperationStatus(This,popstatus);
   21943 }
   21944 #endif
   21945 #endif
   21946 
   21947 #endif
   21948 
   21949 HRESULT STDMETHODCALLTYPE IOperationsProgressDialog_StartProgressDialog_Proxy(
   21950     IOperationsProgressDialog* This,
   21951     HWND hwndOwner,
   21952     OPPROGDLGF flags);
   21953 void __RPC_STUB IOperationsProgressDialog_StartProgressDialog_Stub(
   21954     IRpcStubBuffer* This,
   21955     IRpcChannelBuffer* pRpcChannelBuffer,
   21956     PRPC_MESSAGE pRpcMessage,
   21957     DWORD* pdwStubPhase);
   21958 HRESULT STDMETHODCALLTYPE IOperationsProgressDialog_StopProgressDialog_Proxy(
   21959     IOperationsProgressDialog* This);
   21960 void __RPC_STUB IOperationsProgressDialog_StopProgressDialog_Stub(
   21961     IRpcStubBuffer* This,
   21962     IRpcChannelBuffer* pRpcChannelBuffer,
   21963     PRPC_MESSAGE pRpcMessage,
   21964     DWORD* pdwStubPhase);
   21965 HRESULT STDMETHODCALLTYPE IOperationsProgressDialog_SetOperation_Proxy(
   21966     IOperationsProgressDialog* This,
   21967     SPACTION action);
   21968 void __RPC_STUB IOperationsProgressDialog_SetOperation_Stub(
   21969     IRpcStubBuffer* This,
   21970     IRpcChannelBuffer* pRpcChannelBuffer,
   21971     PRPC_MESSAGE pRpcMessage,
   21972     DWORD* pdwStubPhase);
   21973 HRESULT STDMETHODCALLTYPE IOperationsProgressDialog_SetMode_Proxy(
   21974     IOperationsProgressDialog* This,
   21975     PDMODE mode);
   21976 void __RPC_STUB IOperationsProgressDialog_SetMode_Stub(
   21977     IRpcStubBuffer* This,
   21978     IRpcChannelBuffer* pRpcChannelBuffer,
   21979     PRPC_MESSAGE pRpcMessage,
   21980     DWORD* pdwStubPhase);
   21981 HRESULT STDMETHODCALLTYPE IOperationsProgressDialog_UpdateProgress_Proxy(
   21982     IOperationsProgressDialog* This,
   21983     ULONGLONG ullPointsCurrent,
   21984     ULONGLONG ullPointsTotal,
   21985     ULONGLONG ullSizeCurrent,
   21986     ULONGLONG ullSizeTotal,
   21987     ULONGLONG ullItemsCurrent,
   21988     ULONGLONG ullItemsTotal);
   21989 void __RPC_STUB IOperationsProgressDialog_UpdateProgress_Stub(
   21990     IRpcStubBuffer* This,
   21991     IRpcChannelBuffer* pRpcChannelBuffer,
   21992     PRPC_MESSAGE pRpcMessage,
   21993     DWORD* pdwStubPhase);
   21994 HRESULT STDMETHODCALLTYPE IOperationsProgressDialog_UpdateLocations_Proxy(
   21995     IOperationsProgressDialog* This,
   21996     IShellItem *psiSource,
   21997     IShellItem *psiTarget,
   21998     IShellItem *psiItem);
   21999 void __RPC_STUB IOperationsProgressDialog_UpdateLocations_Stub(
   22000     IRpcStubBuffer* This,
   22001     IRpcChannelBuffer* pRpcChannelBuffer,
   22002     PRPC_MESSAGE pRpcMessage,
   22003     DWORD* pdwStubPhase);
   22004 HRESULT STDMETHODCALLTYPE IOperationsProgressDialog_ResetTimer_Proxy(
   22005     IOperationsProgressDialog* This);
   22006 void __RPC_STUB IOperationsProgressDialog_ResetTimer_Stub(
   22007     IRpcStubBuffer* This,
   22008     IRpcChannelBuffer* pRpcChannelBuffer,
   22009     PRPC_MESSAGE pRpcMessage,
   22010     DWORD* pdwStubPhase);
   22011 HRESULT STDMETHODCALLTYPE IOperationsProgressDialog_PauseTimer_Proxy(
   22012     IOperationsProgressDialog* This);
   22013 void __RPC_STUB IOperationsProgressDialog_PauseTimer_Stub(
   22014     IRpcStubBuffer* This,
   22015     IRpcChannelBuffer* pRpcChannelBuffer,
   22016     PRPC_MESSAGE pRpcMessage,
   22017     DWORD* pdwStubPhase);
   22018 HRESULT STDMETHODCALLTYPE IOperationsProgressDialog_ResumeTimer_Proxy(
   22019     IOperationsProgressDialog* This);
   22020 void __RPC_STUB IOperationsProgressDialog_ResumeTimer_Stub(
   22021     IRpcStubBuffer* This,
   22022     IRpcChannelBuffer* pRpcChannelBuffer,
   22023     PRPC_MESSAGE pRpcMessage,
   22024     DWORD* pdwStubPhase);
   22025 HRESULT STDMETHODCALLTYPE IOperationsProgressDialog_GetMilliseconds_Proxy(
   22026     IOperationsProgressDialog* This,
   22027     ULONGLONG *pullElapsed,
   22028     ULONGLONG *pullRemaining);
   22029 void __RPC_STUB IOperationsProgressDialog_GetMilliseconds_Stub(
   22030     IRpcStubBuffer* This,
   22031     IRpcChannelBuffer* pRpcChannelBuffer,
   22032     PRPC_MESSAGE pRpcMessage,
   22033     DWORD* pdwStubPhase);
   22034 HRESULT STDMETHODCALLTYPE IOperationsProgressDialog_GetOperationStatus_Proxy(
   22035     IOperationsProgressDialog* This,
   22036     PDOPSTATUS *popstatus);
   22037 void __RPC_STUB IOperationsProgressDialog_GetOperationStatus_Stub(
   22038     IRpcStubBuffer* This,
   22039     IRpcChannelBuffer* pRpcChannelBuffer,
   22040     PRPC_MESSAGE pRpcMessage,
   22041     DWORD* pdwStubPhase);
   22042 
   22043 #endif  /* __IOperationsProgressDialog_INTERFACE_DEFINED__ */
   22044 
   22045 
   22046 /*****************************************************************************
   22047  * IIOCancelInformation interface
   22048  */
   22049 #ifndef __IIOCancelInformation_INTERFACE_DEFINED__
   22050 #define __IIOCancelInformation_INTERFACE_DEFINED__
   22051 
   22052 DEFINE_GUID(IID_IIOCancelInformation, 0xf5b0bf81, 0x8cb5, 0x4b1b, 0x94,0x49, 0x1a,0x15,0x9e,0x0c,0x73,0x3c);
   22053 #if defined(__cplusplus) && !defined(CINTERFACE)
   22054 MIDL_INTERFACE("f5b0bf81-8cb5-4b1b-9449-1a159e0c733c")
   22055 IIOCancelInformation : public IUnknown
   22056 {
   22057     virtual HRESULT STDMETHODCALLTYPE SetCancelInformation(
   22058         DWORD dwThreadID,
   22059         UINT uMsgCancel) = 0;
   22060 
   22061     virtual HRESULT STDMETHODCALLTYPE GetCancelInformation(
   22062         DWORD *pdwThreadID,
   22063         UINT *puMsgCancel) = 0;
   22064 
   22065 };
   22066 #ifdef __CRT_UUID_DECL
   22067 __CRT_UUID_DECL(IIOCancelInformation, 0xf5b0bf81, 0x8cb5, 0x4b1b, 0x94,0x49, 0x1a,0x15,0x9e,0x0c,0x73,0x3c)
   22068 #endif
   22069 #else
   22070 typedef struct IIOCancelInformationVtbl {
   22071     BEGIN_INTERFACE
   22072 
   22073     /*** IUnknown methods ***/
   22074     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   22075         IIOCancelInformation* This,
   22076         REFIID riid,
   22077         void **ppvObject);
   22078 
   22079     ULONG (STDMETHODCALLTYPE *AddRef)(
   22080         IIOCancelInformation* This);
   22081 
   22082     ULONG (STDMETHODCALLTYPE *Release)(
   22083         IIOCancelInformation* This);
   22084 
   22085     /*** IIOCancelInformation methods ***/
   22086     HRESULT (STDMETHODCALLTYPE *SetCancelInformation)(
   22087         IIOCancelInformation* This,
   22088         DWORD dwThreadID,
   22089         UINT uMsgCancel);
   22090 
   22091     HRESULT (STDMETHODCALLTYPE *GetCancelInformation)(
   22092         IIOCancelInformation* This,
   22093         DWORD *pdwThreadID,
   22094         UINT *puMsgCancel);
   22095 
   22096     END_INTERFACE
   22097 } IIOCancelInformationVtbl;
   22098 interface IIOCancelInformation {
   22099     CONST_VTBL IIOCancelInformationVtbl* lpVtbl;
   22100 };
   22101 
   22102 #ifdef COBJMACROS
   22103 #ifndef WIDL_C_INLINE_WRAPPERS
   22104 /*** IUnknown methods ***/
   22105 #define IIOCancelInformation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   22106 #define IIOCancelInformation_AddRef(This) (This)->lpVtbl->AddRef(This)
   22107 #define IIOCancelInformation_Release(This) (This)->lpVtbl->Release(This)
   22108 /*** IIOCancelInformation methods ***/
   22109 #define IIOCancelInformation_SetCancelInformation(This,dwThreadID,uMsgCancel) (This)->lpVtbl->SetCancelInformation(This,dwThreadID,uMsgCancel)
   22110 #define IIOCancelInformation_GetCancelInformation(This,pdwThreadID,puMsgCancel) (This)->lpVtbl->GetCancelInformation(This,pdwThreadID,puMsgCancel)
   22111 #else
   22112 /*** IUnknown methods ***/
   22113 static FORCEINLINE HRESULT IIOCancelInformation_QueryInterface(IIOCancelInformation* This,REFIID riid,void **ppvObject) {
   22114     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   22115 }
   22116 static FORCEINLINE ULONG IIOCancelInformation_AddRef(IIOCancelInformation* This) {
   22117     return This->lpVtbl->AddRef(This);
   22118 }
   22119 static FORCEINLINE ULONG IIOCancelInformation_Release(IIOCancelInformation* This) {
   22120     return This->lpVtbl->Release(This);
   22121 }
   22122 /*** IIOCancelInformation methods ***/
   22123 static FORCEINLINE HRESULT IIOCancelInformation_SetCancelInformation(IIOCancelInformation* This,DWORD dwThreadID,UINT uMsgCancel) {
   22124     return This->lpVtbl->SetCancelInformation(This,dwThreadID,uMsgCancel);
   22125 }
   22126 static FORCEINLINE HRESULT IIOCancelInformation_GetCancelInformation(IIOCancelInformation* This,DWORD *pdwThreadID,UINT *puMsgCancel) {
   22127     return This->lpVtbl->GetCancelInformation(This,pdwThreadID,puMsgCancel);
   22128 }
   22129 #endif
   22130 #endif
   22131 
   22132 #endif
   22133 
   22134 HRESULT STDMETHODCALLTYPE IIOCancelInformation_SetCancelInformation_Proxy(
   22135     IIOCancelInformation* This,
   22136     DWORD dwThreadID,
   22137     UINT uMsgCancel);
   22138 void __RPC_STUB IIOCancelInformation_SetCancelInformation_Stub(
   22139     IRpcStubBuffer* This,
   22140     IRpcChannelBuffer* pRpcChannelBuffer,
   22141     PRPC_MESSAGE pRpcMessage,
   22142     DWORD* pdwStubPhase);
   22143 HRESULT STDMETHODCALLTYPE IIOCancelInformation_GetCancelInformation_Proxy(
   22144     IIOCancelInformation* This,
   22145     DWORD *pdwThreadID,
   22146     UINT *puMsgCancel);
   22147 void __RPC_STUB IIOCancelInformation_GetCancelInformation_Stub(
   22148     IRpcStubBuffer* This,
   22149     IRpcChannelBuffer* pRpcChannelBuffer,
   22150     PRPC_MESSAGE pRpcMessage,
   22151     DWORD* pdwStubPhase);
   22152 
   22153 #endif  /* __IIOCancelInformation_INTERFACE_DEFINED__ */
   22154 
   22155 
   22156 #define FOFX_NOSKIPJUNCTIONS 0x00010000
   22157 #define FOFX_PREFERHARDLINK 0x00020000
   22158 #define FOFX_SHOWELEVATIONPROMPT 0x00040000
   22159 #define FOFX_RECYCLEONDELETE 0x00080000
   22160 #define FOFX_EARLYFAILURE 0x00100000
   22161 #define FOFX_PRESERVEFILEEXTENSIONS 0x00200000
   22162 #define FOFX_KEEPNEWERFILE 0x00400000
   22163 #define FOFX_NOCOPYHOOKS 0x00800000
   22164 #define FOFX_NOMINIMIZEBOX 0x01000000
   22165 #define FOFX_MOVEACLSACROSSVOLUMES 0x02000000
   22166 #define FOFX_DONTDISPLAYSOURCEPATH 0x04000000
   22167 #define FOFX_DONTDISPLAYDESTPATH 0x08000000
   22168 #define FOFX_REQUIREELEVATION 0x10000000
   22169 #define FOFX_ADDUNDORECORD 0x20000000
   22170 #define FOFX_COPYASDOWNLOAD 0x40000000
   22171 #define FOFX_DONTDISPLAYLOCATIONS 0x80000000
   22172 
   22173 /*****************************************************************************
   22174  * IFileOperation interface
   22175  */
   22176 #ifndef __IFileOperation_INTERFACE_DEFINED__
   22177 #define __IFileOperation_INTERFACE_DEFINED__
   22178 
   22179 DEFINE_GUID(IID_IFileOperation, 0x947aab5f, 0x0a5c, 0x4c13, 0xb4,0xd6, 0x4b,0xf7,0x83,0x6f,0xc9,0xf8);
   22180 #if defined(__cplusplus) && !defined(CINTERFACE)
   22181 MIDL_INTERFACE("947aab5f-0a5c-4c13-b4d6-4bf7836fc9f8")
   22182 IFileOperation : public IUnknown
   22183 {
   22184     virtual HRESULT STDMETHODCALLTYPE Advise(
   22185         IFileOperationProgressSink *pfops,
   22186         DWORD *pdwCookie) = 0;
   22187 
   22188     virtual HRESULT STDMETHODCALLTYPE Unadvise(
   22189         DWORD dwCookie) = 0;
   22190 
   22191     virtual HRESULT STDMETHODCALLTYPE SetOperationFlags(
   22192         DWORD dwOperationFlags) = 0;
   22193 
   22194     virtual HRESULT STDMETHODCALLTYPE SetProgressMessage(
   22195         LPCWSTR pszMessage) = 0;
   22196 
   22197     virtual HRESULT STDMETHODCALLTYPE SetProgressDialog(
   22198         IOperationsProgressDialog *popd) = 0;
   22199 
   22200     virtual HRESULT STDMETHODCALLTYPE SetProperties(
   22201         IPropertyChangeArray *pproparray) = 0;
   22202 
   22203     virtual HRESULT STDMETHODCALLTYPE SetOwnerWindow(
   22204         HWND hwndOwner) = 0;
   22205 
   22206     virtual HRESULT STDMETHODCALLTYPE ApplyPropertiesToItem(
   22207         IShellItem *psiItem) = 0;
   22208 
   22209     virtual HRESULT STDMETHODCALLTYPE ApplyPropertiesToItems(
   22210         IUnknown *punkItems) = 0;
   22211 
   22212     virtual HRESULT STDMETHODCALLTYPE RenameItem(
   22213         IShellItem *psiItem,
   22214         LPCWSTR pszNewName,
   22215         IFileOperationProgressSink *pfopsItem) = 0;
   22216 
   22217     virtual HRESULT STDMETHODCALLTYPE RenameItems(
   22218         IUnknown *pUnkItems,
   22219         LPCWSTR pszNewName) = 0;
   22220 
   22221     virtual HRESULT STDMETHODCALLTYPE MoveItem(
   22222         IShellItem *psiItem,
   22223         IShellItem *psiDestinationFolder,
   22224         LPCWSTR pszNewName,
   22225         IFileOperationProgressSink *pfopsItem) = 0;
   22226 
   22227     virtual HRESULT STDMETHODCALLTYPE MoveItems(
   22228         IUnknown *punkItems,
   22229         IShellItem *psiDestinationFolder) = 0;
   22230 
   22231     virtual HRESULT STDMETHODCALLTYPE CopyItem(
   22232         IShellItem *psiItem,
   22233         IShellItem *psiDestinationFolder,
   22234         LPCWSTR pszCopyName,
   22235         IFileOperationProgressSink *pfopsItem) = 0;
   22236 
   22237     virtual HRESULT STDMETHODCALLTYPE CopyItems(
   22238         IUnknown *punkItems,
   22239         IShellItem *psiDestinationFolder) = 0;
   22240 
   22241     virtual HRESULT STDMETHODCALLTYPE DeleteItem(
   22242         IShellItem *psiItem,
   22243         IFileOperationProgressSink *pfopsItem) = 0;
   22244 
   22245     virtual HRESULT STDMETHODCALLTYPE DeleteItems(
   22246         IUnknown *punkItems) = 0;
   22247 
   22248     virtual HRESULT STDMETHODCALLTYPE NewItem(
   22249         IShellItem *psiDestinationFolder,
   22250         DWORD dwFileAttributes,
   22251         LPCWSTR pszName,
   22252         LPCWSTR pszTemplateName,
   22253         IFileOperationProgressSink *pfopsItem) = 0;
   22254 
   22255     virtual HRESULT STDMETHODCALLTYPE PerformOperations(
   22256         ) = 0;
   22257 
   22258     virtual HRESULT STDMETHODCALLTYPE GetAnyOperationsAborted(
   22259         WINBOOL *pfAnyOperationsAborted) = 0;
   22260 
   22261 };
   22262 #ifdef __CRT_UUID_DECL
   22263 __CRT_UUID_DECL(IFileOperation, 0x947aab5f, 0x0a5c, 0x4c13, 0xb4,0xd6, 0x4b,0xf7,0x83,0x6f,0xc9,0xf8)
   22264 #endif
   22265 #else
   22266 typedef struct IFileOperationVtbl {
   22267     BEGIN_INTERFACE
   22268 
   22269     /*** IUnknown methods ***/
   22270     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   22271         IFileOperation* This,
   22272         REFIID riid,
   22273         void **ppvObject);
   22274 
   22275     ULONG (STDMETHODCALLTYPE *AddRef)(
   22276         IFileOperation* This);
   22277 
   22278     ULONG (STDMETHODCALLTYPE *Release)(
   22279         IFileOperation* This);
   22280 
   22281     /*** IFileOperation methods ***/
   22282     HRESULT (STDMETHODCALLTYPE *Advise)(
   22283         IFileOperation* This,
   22284         IFileOperationProgressSink *pfops,
   22285         DWORD *pdwCookie);
   22286 
   22287     HRESULT (STDMETHODCALLTYPE *Unadvise)(
   22288         IFileOperation* This,
   22289         DWORD dwCookie);
   22290 
   22291     HRESULT (STDMETHODCALLTYPE *SetOperationFlags)(
   22292         IFileOperation* This,
   22293         DWORD dwOperationFlags);
   22294 
   22295     HRESULT (STDMETHODCALLTYPE *SetProgressMessage)(
   22296         IFileOperation* This,
   22297         LPCWSTR pszMessage);
   22298 
   22299     HRESULT (STDMETHODCALLTYPE *SetProgressDialog)(
   22300         IFileOperation* This,
   22301         IOperationsProgressDialog *popd);
   22302 
   22303     HRESULT (STDMETHODCALLTYPE *SetProperties)(
   22304         IFileOperation* This,
   22305         IPropertyChangeArray *pproparray);
   22306 
   22307     HRESULT (STDMETHODCALLTYPE *SetOwnerWindow)(
   22308         IFileOperation* This,
   22309         HWND hwndOwner);
   22310 
   22311     HRESULT (STDMETHODCALLTYPE *ApplyPropertiesToItem)(
   22312         IFileOperation* This,
   22313         IShellItem *psiItem);
   22314 
   22315     HRESULT (STDMETHODCALLTYPE *ApplyPropertiesToItems)(
   22316         IFileOperation* This,
   22317         IUnknown *punkItems);
   22318 
   22319     HRESULT (STDMETHODCALLTYPE *RenameItem)(
   22320         IFileOperation* This,
   22321         IShellItem *psiItem,
   22322         LPCWSTR pszNewName,
   22323         IFileOperationProgressSink *pfopsItem);
   22324 
   22325     HRESULT (STDMETHODCALLTYPE *RenameItems)(
   22326         IFileOperation* This,
   22327         IUnknown *pUnkItems,
   22328         LPCWSTR pszNewName);
   22329 
   22330     HRESULT (STDMETHODCALLTYPE *MoveItem)(
   22331         IFileOperation* This,
   22332         IShellItem *psiItem,
   22333         IShellItem *psiDestinationFolder,
   22334         LPCWSTR pszNewName,
   22335         IFileOperationProgressSink *pfopsItem);
   22336 
   22337     HRESULT (STDMETHODCALLTYPE *MoveItems)(
   22338         IFileOperation* This,
   22339         IUnknown *punkItems,
   22340         IShellItem *psiDestinationFolder);
   22341 
   22342     HRESULT (STDMETHODCALLTYPE *CopyItem)(
   22343         IFileOperation* This,
   22344         IShellItem *psiItem,
   22345         IShellItem *psiDestinationFolder,
   22346         LPCWSTR pszCopyName,
   22347         IFileOperationProgressSink *pfopsItem);
   22348 
   22349     HRESULT (STDMETHODCALLTYPE *CopyItems)(
   22350         IFileOperation* This,
   22351         IUnknown *punkItems,
   22352         IShellItem *psiDestinationFolder);
   22353 
   22354     HRESULT (STDMETHODCALLTYPE *DeleteItem)(
   22355         IFileOperation* This,
   22356         IShellItem *psiItem,
   22357         IFileOperationProgressSink *pfopsItem);
   22358 
   22359     HRESULT (STDMETHODCALLTYPE *DeleteItems)(
   22360         IFileOperation* This,
   22361         IUnknown *punkItems);
   22362 
   22363     HRESULT (STDMETHODCALLTYPE *NewItem)(
   22364         IFileOperation* This,
   22365         IShellItem *psiDestinationFolder,
   22366         DWORD dwFileAttributes,
   22367         LPCWSTR pszName,
   22368         LPCWSTR pszTemplateName,
   22369         IFileOperationProgressSink *pfopsItem);
   22370 
   22371     HRESULT (STDMETHODCALLTYPE *PerformOperations)(
   22372         IFileOperation* This);
   22373 
   22374     HRESULT (STDMETHODCALLTYPE *GetAnyOperationsAborted)(
   22375         IFileOperation* This,
   22376         WINBOOL *pfAnyOperationsAborted);
   22377 
   22378     END_INTERFACE
   22379 } IFileOperationVtbl;
   22380 interface IFileOperation {
   22381     CONST_VTBL IFileOperationVtbl* lpVtbl;
   22382 };
   22383 
   22384 #ifdef COBJMACROS
   22385 #ifndef WIDL_C_INLINE_WRAPPERS
   22386 /*** IUnknown methods ***/
   22387 #define IFileOperation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   22388 #define IFileOperation_AddRef(This) (This)->lpVtbl->AddRef(This)
   22389 #define IFileOperation_Release(This) (This)->lpVtbl->Release(This)
   22390 /*** IFileOperation methods ***/
   22391 #define IFileOperation_Advise(This,pfops,pdwCookie) (This)->lpVtbl->Advise(This,pfops,pdwCookie)
   22392 #define IFileOperation_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
   22393 #define IFileOperation_SetOperationFlags(This,dwOperationFlags) (This)->lpVtbl->SetOperationFlags(This,dwOperationFlags)
   22394 #define IFileOperation_SetProgressMessage(This,pszMessage) (This)->lpVtbl->SetProgressMessage(This,pszMessage)
   22395 #define IFileOperation_SetProgressDialog(This,popd) (This)->lpVtbl->SetProgressDialog(This,popd)
   22396 #define IFileOperation_SetProperties(This,pproparray) (This)->lpVtbl->SetProperties(This,pproparray)
   22397 #define IFileOperation_SetOwnerWindow(This,hwndOwner) (This)->lpVtbl->SetOwnerWindow(This,hwndOwner)
   22398 #define IFileOperation_ApplyPropertiesToItem(This,psiItem) (This)->lpVtbl->ApplyPropertiesToItem(This,psiItem)
   22399 #define IFileOperation_ApplyPropertiesToItems(This,punkItems) (This)->lpVtbl->ApplyPropertiesToItems(This,punkItems)
   22400 #define IFileOperation_RenameItem(This,psiItem,pszNewName,pfopsItem) (This)->lpVtbl->RenameItem(This,psiItem,pszNewName,pfopsItem)
   22401 #define IFileOperation_RenameItems(This,pUnkItems,pszNewName) (This)->lpVtbl->RenameItems(This,pUnkItems,pszNewName)
   22402 #define IFileOperation_MoveItem(This,psiItem,psiDestinationFolder,pszNewName,pfopsItem) (This)->lpVtbl->MoveItem(This,psiItem,psiDestinationFolder,pszNewName,pfopsItem)
   22403 #define IFileOperation_MoveItems(This,punkItems,psiDestinationFolder) (This)->lpVtbl->MoveItems(This,punkItems,psiDestinationFolder)
   22404 #define IFileOperation_CopyItem(This,psiItem,psiDestinationFolder,pszCopyName,pfopsItem) (This)->lpVtbl->CopyItem(This,psiItem,psiDestinationFolder,pszCopyName,pfopsItem)
   22405 #define IFileOperation_CopyItems(This,punkItems,psiDestinationFolder) (This)->lpVtbl->CopyItems(This,punkItems,psiDestinationFolder)
   22406 #define IFileOperation_DeleteItem(This,psiItem,pfopsItem) (This)->lpVtbl->DeleteItem(This,psiItem,pfopsItem)
   22407 #define IFileOperation_DeleteItems(This,punkItems) (This)->lpVtbl->DeleteItems(This,punkItems)
   22408 #define IFileOperation_NewItem(This,psiDestinationFolder,dwFileAttributes,pszName,pszTemplateName,pfopsItem) (This)->lpVtbl->NewItem(This,psiDestinationFolder,dwFileAttributes,pszName,pszTemplateName,pfopsItem)
   22409 #define IFileOperation_PerformOperations(This) (This)->lpVtbl->PerformOperations(This)
   22410 #define IFileOperation_GetAnyOperationsAborted(This,pfAnyOperationsAborted) (This)->lpVtbl->GetAnyOperationsAborted(This,pfAnyOperationsAborted)
   22411 #else
   22412 /*** IUnknown methods ***/
   22413 static FORCEINLINE HRESULT IFileOperation_QueryInterface(IFileOperation* This,REFIID riid,void **ppvObject) {
   22414     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   22415 }
   22416 static FORCEINLINE ULONG IFileOperation_AddRef(IFileOperation* This) {
   22417     return This->lpVtbl->AddRef(This);
   22418 }
   22419 static FORCEINLINE ULONG IFileOperation_Release(IFileOperation* This) {
   22420     return This->lpVtbl->Release(This);
   22421 }
   22422 /*** IFileOperation methods ***/
   22423 static FORCEINLINE HRESULT IFileOperation_Advise(IFileOperation* This,IFileOperationProgressSink *pfops,DWORD *pdwCookie) {
   22424     return This->lpVtbl->Advise(This,pfops,pdwCookie);
   22425 }
   22426 static FORCEINLINE HRESULT IFileOperation_Unadvise(IFileOperation* This,DWORD dwCookie) {
   22427     return This->lpVtbl->Unadvise(This,dwCookie);
   22428 }
   22429 static FORCEINLINE HRESULT IFileOperation_SetOperationFlags(IFileOperation* This,DWORD dwOperationFlags) {
   22430     return This->lpVtbl->SetOperationFlags(This,dwOperationFlags);
   22431 }
   22432 static FORCEINLINE HRESULT IFileOperation_SetProgressMessage(IFileOperation* This,LPCWSTR pszMessage) {
   22433     return This->lpVtbl->SetProgressMessage(This,pszMessage);
   22434 }
   22435 static FORCEINLINE HRESULT IFileOperation_SetProgressDialog(IFileOperation* This,IOperationsProgressDialog *popd) {
   22436     return This->lpVtbl->SetProgressDialog(This,popd);
   22437 }
   22438 static FORCEINLINE HRESULT IFileOperation_SetProperties(IFileOperation* This,IPropertyChangeArray *pproparray) {
   22439     return This->lpVtbl->SetProperties(This,pproparray);
   22440 }
   22441 static FORCEINLINE HRESULT IFileOperation_SetOwnerWindow(IFileOperation* This,HWND hwndOwner) {
   22442     return This->lpVtbl->SetOwnerWindow(This,hwndOwner);
   22443 }
   22444 static FORCEINLINE HRESULT IFileOperation_ApplyPropertiesToItem(IFileOperation* This,IShellItem *psiItem) {
   22445     return This->lpVtbl->ApplyPropertiesToItem(This,psiItem);
   22446 }
   22447 static FORCEINLINE HRESULT IFileOperation_ApplyPropertiesToItems(IFileOperation* This,IUnknown *punkItems) {
   22448     return This->lpVtbl->ApplyPropertiesToItems(This,punkItems);
   22449 }
   22450 static FORCEINLINE HRESULT IFileOperation_RenameItem(IFileOperation* This,IShellItem *psiItem,LPCWSTR pszNewName,IFileOperationProgressSink *pfopsItem) {
   22451     return This->lpVtbl->RenameItem(This,psiItem,pszNewName,pfopsItem);
   22452 }
   22453 static FORCEINLINE HRESULT IFileOperation_RenameItems(IFileOperation* This,IUnknown *pUnkItems,LPCWSTR pszNewName) {
   22454     return This->lpVtbl->RenameItems(This,pUnkItems,pszNewName);
   22455 }
   22456 static FORCEINLINE HRESULT IFileOperation_MoveItem(IFileOperation* This,IShellItem *psiItem,IShellItem *psiDestinationFolder,LPCWSTR pszNewName,IFileOperationProgressSink *pfopsItem) {
   22457     return This->lpVtbl->MoveItem(This,psiItem,psiDestinationFolder,pszNewName,pfopsItem);
   22458 }
   22459 static FORCEINLINE HRESULT IFileOperation_MoveItems(IFileOperation* This,IUnknown *punkItems,IShellItem *psiDestinationFolder) {
   22460     return This->lpVtbl->MoveItems(This,punkItems,psiDestinationFolder);
   22461 }
   22462 static FORCEINLINE HRESULT IFileOperation_CopyItem(IFileOperation* This,IShellItem *psiItem,IShellItem *psiDestinationFolder,LPCWSTR pszCopyName,IFileOperationProgressSink *pfopsItem) {
   22463     return This->lpVtbl->CopyItem(This,psiItem,psiDestinationFolder,pszCopyName,pfopsItem);
   22464 }
   22465 static FORCEINLINE HRESULT IFileOperation_CopyItems(IFileOperation* This,IUnknown *punkItems,IShellItem *psiDestinationFolder) {
   22466     return This->lpVtbl->CopyItems(This,punkItems,psiDestinationFolder);
   22467 }
   22468 static FORCEINLINE HRESULT IFileOperation_DeleteItem(IFileOperation* This,IShellItem *psiItem,IFileOperationProgressSink *pfopsItem) {
   22469     return This->lpVtbl->DeleteItem(This,psiItem,pfopsItem);
   22470 }
   22471 static FORCEINLINE HRESULT IFileOperation_DeleteItems(IFileOperation* This,IUnknown *punkItems) {
   22472     return This->lpVtbl->DeleteItems(This,punkItems);
   22473 }
   22474 static FORCEINLINE HRESULT IFileOperation_NewItem(IFileOperation* This,IShellItem *psiDestinationFolder,DWORD dwFileAttributes,LPCWSTR pszName,LPCWSTR pszTemplateName,IFileOperationProgressSink *pfopsItem) {
   22475     return This->lpVtbl->NewItem(This,psiDestinationFolder,dwFileAttributes,pszName,pszTemplateName,pfopsItem);
   22476 }
   22477 static FORCEINLINE HRESULT IFileOperation_PerformOperations(IFileOperation* This) {
   22478     return This->lpVtbl->PerformOperations(This);
   22479 }
   22480 static FORCEINLINE HRESULT IFileOperation_GetAnyOperationsAborted(IFileOperation* This,WINBOOL *pfAnyOperationsAborted) {
   22481     return This->lpVtbl->GetAnyOperationsAborted(This,pfAnyOperationsAborted);
   22482 }
   22483 #endif
   22484 #endif
   22485 
   22486 #endif
   22487 
   22488 HRESULT STDMETHODCALLTYPE IFileOperation_Advise_Proxy(
   22489     IFileOperation* This,
   22490     IFileOperationProgressSink *pfops,
   22491     DWORD *pdwCookie);
   22492 void __RPC_STUB IFileOperation_Advise_Stub(
   22493     IRpcStubBuffer* This,
   22494     IRpcChannelBuffer* pRpcChannelBuffer,
   22495     PRPC_MESSAGE pRpcMessage,
   22496     DWORD* pdwStubPhase);
   22497 HRESULT STDMETHODCALLTYPE IFileOperation_Unadvise_Proxy(
   22498     IFileOperation* This,
   22499     DWORD dwCookie);
   22500 void __RPC_STUB IFileOperation_Unadvise_Stub(
   22501     IRpcStubBuffer* This,
   22502     IRpcChannelBuffer* pRpcChannelBuffer,
   22503     PRPC_MESSAGE pRpcMessage,
   22504     DWORD* pdwStubPhase);
   22505 HRESULT STDMETHODCALLTYPE IFileOperation_SetOperationFlags_Proxy(
   22506     IFileOperation* This,
   22507     DWORD dwOperationFlags);
   22508 void __RPC_STUB IFileOperation_SetOperationFlags_Stub(
   22509     IRpcStubBuffer* This,
   22510     IRpcChannelBuffer* pRpcChannelBuffer,
   22511     PRPC_MESSAGE pRpcMessage,
   22512     DWORD* pdwStubPhase);
   22513 HRESULT STDMETHODCALLTYPE IFileOperation_SetProgressMessage_Proxy(
   22514     IFileOperation* This,
   22515     LPCWSTR pszMessage);
   22516 void __RPC_STUB IFileOperation_SetProgressMessage_Stub(
   22517     IRpcStubBuffer* This,
   22518     IRpcChannelBuffer* pRpcChannelBuffer,
   22519     PRPC_MESSAGE pRpcMessage,
   22520     DWORD* pdwStubPhase);
   22521 HRESULT STDMETHODCALLTYPE IFileOperation_SetProgressDialog_Proxy(
   22522     IFileOperation* This,
   22523     IOperationsProgressDialog *popd);
   22524 void __RPC_STUB IFileOperation_SetProgressDialog_Stub(
   22525     IRpcStubBuffer* This,
   22526     IRpcChannelBuffer* pRpcChannelBuffer,
   22527     PRPC_MESSAGE pRpcMessage,
   22528     DWORD* pdwStubPhase);
   22529 HRESULT STDMETHODCALLTYPE IFileOperation_SetProperties_Proxy(
   22530     IFileOperation* This,
   22531     IPropertyChangeArray *pproparray);
   22532 void __RPC_STUB IFileOperation_SetProperties_Stub(
   22533     IRpcStubBuffer* This,
   22534     IRpcChannelBuffer* pRpcChannelBuffer,
   22535     PRPC_MESSAGE pRpcMessage,
   22536     DWORD* pdwStubPhase);
   22537 HRESULT STDMETHODCALLTYPE IFileOperation_SetOwnerWindow_Proxy(
   22538     IFileOperation* This,
   22539     HWND hwndOwner);
   22540 void __RPC_STUB IFileOperation_SetOwnerWindow_Stub(
   22541     IRpcStubBuffer* This,
   22542     IRpcChannelBuffer* pRpcChannelBuffer,
   22543     PRPC_MESSAGE pRpcMessage,
   22544     DWORD* pdwStubPhase);
   22545 HRESULT STDMETHODCALLTYPE IFileOperation_ApplyPropertiesToItem_Proxy(
   22546     IFileOperation* This,
   22547     IShellItem *psiItem);
   22548 void __RPC_STUB IFileOperation_ApplyPropertiesToItem_Stub(
   22549     IRpcStubBuffer* This,
   22550     IRpcChannelBuffer* pRpcChannelBuffer,
   22551     PRPC_MESSAGE pRpcMessage,
   22552     DWORD* pdwStubPhase);
   22553 HRESULT STDMETHODCALLTYPE IFileOperation_ApplyPropertiesToItems_Proxy(
   22554     IFileOperation* This,
   22555     IUnknown *punkItems);
   22556 void __RPC_STUB IFileOperation_ApplyPropertiesToItems_Stub(
   22557     IRpcStubBuffer* This,
   22558     IRpcChannelBuffer* pRpcChannelBuffer,
   22559     PRPC_MESSAGE pRpcMessage,
   22560     DWORD* pdwStubPhase);
   22561 HRESULT STDMETHODCALLTYPE IFileOperation_RenameItem_Proxy(
   22562     IFileOperation* This,
   22563     IShellItem *psiItem,
   22564     LPCWSTR pszNewName,
   22565     IFileOperationProgressSink *pfopsItem);
   22566 void __RPC_STUB IFileOperation_RenameItem_Stub(
   22567     IRpcStubBuffer* This,
   22568     IRpcChannelBuffer* pRpcChannelBuffer,
   22569     PRPC_MESSAGE pRpcMessage,
   22570     DWORD* pdwStubPhase);
   22571 HRESULT STDMETHODCALLTYPE IFileOperation_RenameItems_Proxy(
   22572     IFileOperation* This,
   22573     IUnknown *pUnkItems,
   22574     LPCWSTR pszNewName);
   22575 void __RPC_STUB IFileOperation_RenameItems_Stub(
   22576     IRpcStubBuffer* This,
   22577     IRpcChannelBuffer* pRpcChannelBuffer,
   22578     PRPC_MESSAGE pRpcMessage,
   22579     DWORD* pdwStubPhase);
   22580 HRESULT STDMETHODCALLTYPE IFileOperation_MoveItem_Proxy(
   22581     IFileOperation* This,
   22582     IShellItem *psiItem,
   22583     IShellItem *psiDestinationFolder,
   22584     LPCWSTR pszNewName,
   22585     IFileOperationProgressSink *pfopsItem);
   22586 void __RPC_STUB IFileOperation_MoveItem_Stub(
   22587     IRpcStubBuffer* This,
   22588     IRpcChannelBuffer* pRpcChannelBuffer,
   22589     PRPC_MESSAGE pRpcMessage,
   22590     DWORD* pdwStubPhase);
   22591 HRESULT STDMETHODCALLTYPE IFileOperation_MoveItems_Proxy(
   22592     IFileOperation* This,
   22593     IUnknown *punkItems,
   22594     IShellItem *psiDestinationFolder);
   22595 void __RPC_STUB IFileOperation_MoveItems_Stub(
   22596     IRpcStubBuffer* This,
   22597     IRpcChannelBuffer* pRpcChannelBuffer,
   22598     PRPC_MESSAGE pRpcMessage,
   22599     DWORD* pdwStubPhase);
   22600 HRESULT STDMETHODCALLTYPE IFileOperation_CopyItem_Proxy(
   22601     IFileOperation* This,
   22602     IShellItem *psiItem,
   22603     IShellItem *psiDestinationFolder,
   22604     LPCWSTR pszCopyName,
   22605     IFileOperationProgressSink *pfopsItem);
   22606 void __RPC_STUB IFileOperation_CopyItem_Stub(
   22607     IRpcStubBuffer* This,
   22608     IRpcChannelBuffer* pRpcChannelBuffer,
   22609     PRPC_MESSAGE pRpcMessage,
   22610     DWORD* pdwStubPhase);
   22611 HRESULT STDMETHODCALLTYPE IFileOperation_CopyItems_Proxy(
   22612     IFileOperation* This,
   22613     IUnknown *punkItems,
   22614     IShellItem *psiDestinationFolder);
   22615 void __RPC_STUB IFileOperation_CopyItems_Stub(
   22616     IRpcStubBuffer* This,
   22617     IRpcChannelBuffer* pRpcChannelBuffer,
   22618     PRPC_MESSAGE pRpcMessage,
   22619     DWORD* pdwStubPhase);
   22620 HRESULT STDMETHODCALLTYPE IFileOperation_DeleteItem_Proxy(
   22621     IFileOperation* This,
   22622     IShellItem *psiItem,
   22623     IFileOperationProgressSink *pfopsItem);
   22624 void __RPC_STUB IFileOperation_DeleteItem_Stub(
   22625     IRpcStubBuffer* This,
   22626     IRpcChannelBuffer* pRpcChannelBuffer,
   22627     PRPC_MESSAGE pRpcMessage,
   22628     DWORD* pdwStubPhase);
   22629 HRESULT STDMETHODCALLTYPE IFileOperation_DeleteItems_Proxy(
   22630     IFileOperation* This,
   22631     IUnknown *punkItems);
   22632 void __RPC_STUB IFileOperation_DeleteItems_Stub(
   22633     IRpcStubBuffer* This,
   22634     IRpcChannelBuffer* pRpcChannelBuffer,
   22635     PRPC_MESSAGE pRpcMessage,
   22636     DWORD* pdwStubPhase);
   22637 HRESULT STDMETHODCALLTYPE IFileOperation_NewItem_Proxy(
   22638     IFileOperation* This,
   22639     IShellItem *psiDestinationFolder,
   22640     DWORD dwFileAttributes,
   22641     LPCWSTR pszName,
   22642     LPCWSTR pszTemplateName,
   22643     IFileOperationProgressSink *pfopsItem);
   22644 void __RPC_STUB IFileOperation_NewItem_Stub(
   22645     IRpcStubBuffer* This,
   22646     IRpcChannelBuffer* pRpcChannelBuffer,
   22647     PRPC_MESSAGE pRpcMessage,
   22648     DWORD* pdwStubPhase);
   22649 HRESULT STDMETHODCALLTYPE IFileOperation_PerformOperations_Proxy(
   22650     IFileOperation* This);
   22651 void __RPC_STUB IFileOperation_PerformOperations_Stub(
   22652     IRpcStubBuffer* This,
   22653     IRpcChannelBuffer* pRpcChannelBuffer,
   22654     PRPC_MESSAGE pRpcMessage,
   22655     DWORD* pdwStubPhase);
   22656 HRESULT STDMETHODCALLTYPE IFileOperation_GetAnyOperationsAborted_Proxy(
   22657     IFileOperation* This,
   22658     WINBOOL *pfAnyOperationsAborted);
   22659 void __RPC_STUB IFileOperation_GetAnyOperationsAborted_Stub(
   22660     IRpcStubBuffer* This,
   22661     IRpcChannelBuffer* pRpcChannelBuffer,
   22662     PRPC_MESSAGE pRpcMessage,
   22663     DWORD* pdwStubPhase);
   22664 
   22665 #endif  /* __IFileOperation_INTERFACE_DEFINED__ */
   22666 
   22667 
   22668 /*****************************************************************************
   22669  * IObjectProvider interface
   22670  */
   22671 #ifndef __IObjectProvider_INTERFACE_DEFINED__
   22672 #define __IObjectProvider_INTERFACE_DEFINED__
   22673 
   22674 DEFINE_GUID(IID_IObjectProvider, 0xa6087428, 0x3be3, 0x4d73, 0xb3,0x08, 0x7c,0x04,0xa5,0x40,0xbf,0x1a);
   22675 #if defined(__cplusplus) && !defined(CINTERFACE)
   22676 MIDL_INTERFACE("a6087428-3be3-4d73-b308-7c04a540bf1a")
   22677 IObjectProvider : public IUnknown
   22678 {
   22679     virtual HRESULT STDMETHODCALLTYPE QueryObject(
   22680         REFGUID guidObject,
   22681         REFIID riid,
   22682         void **ppvOut) = 0;
   22683 
   22684 };
   22685 #ifdef __CRT_UUID_DECL
   22686 __CRT_UUID_DECL(IObjectProvider, 0xa6087428, 0x3be3, 0x4d73, 0xb3,0x08, 0x7c,0x04,0xa5,0x40,0xbf,0x1a)
   22687 #endif
   22688 #else
   22689 typedef struct IObjectProviderVtbl {
   22690     BEGIN_INTERFACE
   22691 
   22692     /*** IUnknown methods ***/
   22693     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   22694         IObjectProvider* This,
   22695         REFIID riid,
   22696         void **ppvObject);
   22697 
   22698     ULONG (STDMETHODCALLTYPE *AddRef)(
   22699         IObjectProvider* This);
   22700 
   22701     ULONG (STDMETHODCALLTYPE *Release)(
   22702         IObjectProvider* This);
   22703 
   22704     /*** IObjectProvider methods ***/
   22705     HRESULT (STDMETHODCALLTYPE *QueryObject)(
   22706         IObjectProvider* This,
   22707         REFGUID guidObject,
   22708         REFIID riid,
   22709         void **ppvOut);
   22710 
   22711     END_INTERFACE
   22712 } IObjectProviderVtbl;
   22713 interface IObjectProvider {
   22714     CONST_VTBL IObjectProviderVtbl* lpVtbl;
   22715 };
   22716 
   22717 #ifdef COBJMACROS
   22718 #ifndef WIDL_C_INLINE_WRAPPERS
   22719 /*** IUnknown methods ***/
   22720 #define IObjectProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   22721 #define IObjectProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
   22722 #define IObjectProvider_Release(This) (This)->lpVtbl->Release(This)
   22723 /*** IObjectProvider methods ***/
   22724 #define IObjectProvider_QueryObject(This,guidObject,riid,ppvOut) (This)->lpVtbl->QueryObject(This,guidObject,riid,ppvOut)
   22725 #else
   22726 /*** IUnknown methods ***/
   22727 static FORCEINLINE HRESULT IObjectProvider_QueryInterface(IObjectProvider* This,REFIID riid,void **ppvObject) {
   22728     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   22729 }
   22730 static FORCEINLINE ULONG IObjectProvider_AddRef(IObjectProvider* This) {
   22731     return This->lpVtbl->AddRef(This);
   22732 }
   22733 static FORCEINLINE ULONG IObjectProvider_Release(IObjectProvider* This) {
   22734     return This->lpVtbl->Release(This);
   22735 }
   22736 /*** IObjectProvider methods ***/
   22737 static FORCEINLINE HRESULT IObjectProvider_QueryObject(IObjectProvider* This,REFGUID guidObject,REFIID riid,void **ppvOut) {
   22738     return This->lpVtbl->QueryObject(This,guidObject,riid,ppvOut);
   22739 }
   22740 #endif
   22741 #endif
   22742 
   22743 #endif
   22744 
   22745 HRESULT STDMETHODCALLTYPE IObjectProvider_QueryObject_Proxy(
   22746     IObjectProvider* This,
   22747     REFGUID guidObject,
   22748     REFIID riid,
   22749     void **ppvOut);
   22750 void __RPC_STUB IObjectProvider_QueryObject_Stub(
   22751     IRpcStubBuffer* This,
   22752     IRpcChannelBuffer* pRpcChannelBuffer,
   22753     PRPC_MESSAGE pRpcMessage,
   22754     DWORD* pdwStubPhase);
   22755 
   22756 #endif  /* __IObjectProvider_INTERFACE_DEFINED__ */
   22757 
   22758 #endif
   22759 
   22760 /*****************************************************************************
   22761  * INamespaceWalkCB interface
   22762  */
   22763 #ifndef __INamespaceWalkCB_INTERFACE_DEFINED__
   22764 #define __INamespaceWalkCB_INTERFACE_DEFINED__
   22765 
   22766 DEFINE_GUID(IID_INamespaceWalkCB, 0xd92995f8, 0xcf5e, 0x4a76, 0xbf,0x59, 0xea,0xd3,0x9e,0xa2,0xb9,0x7e);
   22767 #if defined(__cplusplus) && !defined(CINTERFACE)
   22768 MIDL_INTERFACE("d92995f8-cf5e-4a76-bf59-ead39ea2b97e")
   22769 INamespaceWalkCB : public IUnknown
   22770 {
   22771     virtual HRESULT STDMETHODCALLTYPE FoundItem(
   22772         IShellFolder *psf,
   22773         PCUITEMID_CHILD pidl) = 0;
   22774 
   22775     virtual HRESULT STDMETHODCALLTYPE EnterFolder(
   22776         IShellFolder *psf,
   22777         PCUITEMID_CHILD pidl) = 0;
   22778 
   22779     virtual HRESULT STDMETHODCALLTYPE LeaveFolder(
   22780         IShellFolder *psf,
   22781         PCUITEMID_CHILD pidl) = 0;
   22782 
   22783     virtual HRESULT STDMETHODCALLTYPE InitializeProgressDialog(
   22784         LPWSTR *ppszTitle,
   22785         LPWSTR *ppszCancel) = 0;
   22786 
   22787 };
   22788 #ifdef __CRT_UUID_DECL
   22789 __CRT_UUID_DECL(INamespaceWalkCB, 0xd92995f8, 0xcf5e, 0x4a76, 0xbf,0x59, 0xea,0xd3,0x9e,0xa2,0xb9,0x7e)
   22790 #endif
   22791 #else
   22792 typedef struct INamespaceWalkCBVtbl {
   22793     BEGIN_INTERFACE
   22794 
   22795     /*** IUnknown methods ***/
   22796     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   22797         INamespaceWalkCB* This,
   22798         REFIID riid,
   22799         void **ppvObject);
   22800 
   22801     ULONG (STDMETHODCALLTYPE *AddRef)(
   22802         INamespaceWalkCB* This);
   22803 
   22804     ULONG (STDMETHODCALLTYPE *Release)(
   22805         INamespaceWalkCB* This);
   22806 
   22807     /*** INamespaceWalkCB methods ***/
   22808     HRESULT (STDMETHODCALLTYPE *FoundItem)(
   22809         INamespaceWalkCB* This,
   22810         IShellFolder *psf,
   22811         PCUITEMID_CHILD pidl);
   22812 
   22813     HRESULT (STDMETHODCALLTYPE *EnterFolder)(
   22814         INamespaceWalkCB* This,
   22815         IShellFolder *psf,
   22816         PCUITEMID_CHILD pidl);
   22817 
   22818     HRESULT (STDMETHODCALLTYPE *LeaveFolder)(
   22819         INamespaceWalkCB* This,
   22820         IShellFolder *psf,
   22821         PCUITEMID_CHILD pidl);
   22822 
   22823     HRESULT (STDMETHODCALLTYPE *InitializeProgressDialog)(
   22824         INamespaceWalkCB* This,
   22825         LPWSTR *ppszTitle,
   22826         LPWSTR *ppszCancel);
   22827 
   22828     END_INTERFACE
   22829 } INamespaceWalkCBVtbl;
   22830 interface INamespaceWalkCB {
   22831     CONST_VTBL INamespaceWalkCBVtbl* lpVtbl;
   22832 };
   22833 
   22834 #ifdef COBJMACROS
   22835 #ifndef WIDL_C_INLINE_WRAPPERS
   22836 /*** IUnknown methods ***/
   22837 #define INamespaceWalkCB_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   22838 #define INamespaceWalkCB_AddRef(This) (This)->lpVtbl->AddRef(This)
   22839 #define INamespaceWalkCB_Release(This) (This)->lpVtbl->Release(This)
   22840 /*** INamespaceWalkCB methods ***/
   22841 #define INamespaceWalkCB_FoundItem(This,psf,pidl) (This)->lpVtbl->FoundItem(This,psf,pidl)
   22842 #define INamespaceWalkCB_EnterFolder(This,psf,pidl) (This)->lpVtbl->EnterFolder(This,psf,pidl)
   22843 #define INamespaceWalkCB_LeaveFolder(This,psf,pidl) (This)->lpVtbl->LeaveFolder(This,psf,pidl)
   22844 #define INamespaceWalkCB_InitializeProgressDialog(This,ppszTitle,ppszCancel) (This)->lpVtbl->InitializeProgressDialog(This,ppszTitle,ppszCancel)
   22845 #else
   22846 /*** IUnknown methods ***/
   22847 static FORCEINLINE HRESULT INamespaceWalkCB_QueryInterface(INamespaceWalkCB* This,REFIID riid,void **ppvObject) {
   22848     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   22849 }
   22850 static FORCEINLINE ULONG INamespaceWalkCB_AddRef(INamespaceWalkCB* This) {
   22851     return This->lpVtbl->AddRef(This);
   22852 }
   22853 static FORCEINLINE ULONG INamespaceWalkCB_Release(INamespaceWalkCB* This) {
   22854     return This->lpVtbl->Release(This);
   22855 }
   22856 /*** INamespaceWalkCB methods ***/
   22857 static FORCEINLINE HRESULT INamespaceWalkCB_FoundItem(INamespaceWalkCB* This,IShellFolder *psf,PCUITEMID_CHILD pidl) {
   22858     return This->lpVtbl->FoundItem(This,psf,pidl);
   22859 }
   22860 static FORCEINLINE HRESULT INamespaceWalkCB_EnterFolder(INamespaceWalkCB* This,IShellFolder *psf,PCUITEMID_CHILD pidl) {
   22861     return This->lpVtbl->EnterFolder(This,psf,pidl);
   22862 }
   22863 static FORCEINLINE HRESULT INamespaceWalkCB_LeaveFolder(INamespaceWalkCB* This,IShellFolder *psf,PCUITEMID_CHILD pidl) {
   22864     return This->lpVtbl->LeaveFolder(This,psf,pidl);
   22865 }
   22866 static FORCEINLINE HRESULT INamespaceWalkCB_InitializeProgressDialog(INamespaceWalkCB* This,LPWSTR *ppszTitle,LPWSTR *ppszCancel) {
   22867     return This->lpVtbl->InitializeProgressDialog(This,ppszTitle,ppszCancel);
   22868 }
   22869 #endif
   22870 #endif
   22871 
   22872 #endif
   22873 
   22874 HRESULT STDMETHODCALLTYPE INamespaceWalkCB_FoundItem_Proxy(
   22875     INamespaceWalkCB* This,
   22876     IShellFolder *psf,
   22877     PCUITEMID_CHILD pidl);
   22878 void __RPC_STUB INamespaceWalkCB_FoundItem_Stub(
   22879     IRpcStubBuffer* This,
   22880     IRpcChannelBuffer* pRpcChannelBuffer,
   22881     PRPC_MESSAGE pRpcMessage,
   22882     DWORD* pdwStubPhase);
   22883 HRESULT STDMETHODCALLTYPE INamespaceWalkCB_EnterFolder_Proxy(
   22884     INamespaceWalkCB* This,
   22885     IShellFolder *psf,
   22886     PCUITEMID_CHILD pidl);
   22887 void __RPC_STUB INamespaceWalkCB_EnterFolder_Stub(
   22888     IRpcStubBuffer* This,
   22889     IRpcChannelBuffer* pRpcChannelBuffer,
   22890     PRPC_MESSAGE pRpcMessage,
   22891     DWORD* pdwStubPhase);
   22892 HRESULT STDMETHODCALLTYPE INamespaceWalkCB_LeaveFolder_Proxy(
   22893     INamespaceWalkCB* This,
   22894     IShellFolder *psf,
   22895     PCUITEMID_CHILD pidl);
   22896 void __RPC_STUB INamespaceWalkCB_LeaveFolder_Stub(
   22897     IRpcStubBuffer* This,
   22898     IRpcChannelBuffer* pRpcChannelBuffer,
   22899     PRPC_MESSAGE pRpcMessage,
   22900     DWORD* pdwStubPhase);
   22901 HRESULT STDMETHODCALLTYPE INamespaceWalkCB_InitializeProgressDialog_Proxy(
   22902     INamespaceWalkCB* This,
   22903     LPWSTR *ppszTitle,
   22904     LPWSTR *ppszCancel);
   22905 void __RPC_STUB INamespaceWalkCB_InitializeProgressDialog_Stub(
   22906     IRpcStubBuffer* This,
   22907     IRpcChannelBuffer* pRpcChannelBuffer,
   22908     PRPC_MESSAGE pRpcMessage,
   22909     DWORD* pdwStubPhase);
   22910 
   22911 #endif  /* __INamespaceWalkCB_INTERFACE_DEFINED__ */
   22912 
   22913 
   22914 #if _WIN32_IE >= _WIN32_IE_IE70
   22915 /*****************************************************************************
   22916  * INamespaceWalkCB2 interface
   22917  */
   22918 #ifndef __INamespaceWalkCB2_INTERFACE_DEFINED__
   22919 #define __INamespaceWalkCB2_INTERFACE_DEFINED__
   22920 
   22921 DEFINE_GUID(IID_INamespaceWalkCB2, 0x7ac7492b, 0xc38e, 0x438a, 0x87,0xdb, 0x68,0x73,0x78,0x44,0xff,0x70);
   22922 #if defined(__cplusplus) && !defined(CINTERFACE)
   22923 MIDL_INTERFACE("7ac7492b-c38e-438a-87db-68737844ff70")
   22924 INamespaceWalkCB2 : public INamespaceWalkCB
   22925 {
   22926     virtual HRESULT STDMETHODCALLTYPE WalkComplete(
   22927         HRESULT hr) = 0;
   22928 
   22929 };
   22930 #ifdef __CRT_UUID_DECL
   22931 __CRT_UUID_DECL(INamespaceWalkCB2, 0x7ac7492b, 0xc38e, 0x438a, 0x87,0xdb, 0x68,0x73,0x78,0x44,0xff,0x70)
   22932 #endif
   22933 #else
   22934 typedef struct INamespaceWalkCB2Vtbl {
   22935     BEGIN_INTERFACE
   22936 
   22937     /*** IUnknown methods ***/
   22938     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   22939         INamespaceWalkCB2* This,
   22940         REFIID riid,
   22941         void **ppvObject);
   22942 
   22943     ULONG (STDMETHODCALLTYPE *AddRef)(
   22944         INamespaceWalkCB2* This);
   22945 
   22946     ULONG (STDMETHODCALLTYPE *Release)(
   22947         INamespaceWalkCB2* This);
   22948 
   22949     /*** INamespaceWalkCB methods ***/
   22950     HRESULT (STDMETHODCALLTYPE *FoundItem)(
   22951         INamespaceWalkCB2* This,
   22952         IShellFolder *psf,
   22953         PCUITEMID_CHILD pidl);
   22954 
   22955     HRESULT (STDMETHODCALLTYPE *EnterFolder)(
   22956         INamespaceWalkCB2* This,
   22957         IShellFolder *psf,
   22958         PCUITEMID_CHILD pidl);
   22959 
   22960     HRESULT (STDMETHODCALLTYPE *LeaveFolder)(
   22961         INamespaceWalkCB2* This,
   22962         IShellFolder *psf,
   22963         PCUITEMID_CHILD pidl);
   22964 
   22965     HRESULT (STDMETHODCALLTYPE *InitializeProgressDialog)(
   22966         INamespaceWalkCB2* This,
   22967         LPWSTR *ppszTitle,
   22968         LPWSTR *ppszCancel);
   22969 
   22970     /*** INamespaceWalkCB2 methods ***/
   22971     HRESULT (STDMETHODCALLTYPE *WalkComplete)(
   22972         INamespaceWalkCB2* This,
   22973         HRESULT hr);
   22974 
   22975     END_INTERFACE
   22976 } INamespaceWalkCB2Vtbl;
   22977 interface INamespaceWalkCB2 {
   22978     CONST_VTBL INamespaceWalkCB2Vtbl* lpVtbl;
   22979 };
   22980 
   22981 #ifdef COBJMACROS
   22982 #ifndef WIDL_C_INLINE_WRAPPERS
   22983 /*** IUnknown methods ***/
   22984 #define INamespaceWalkCB2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   22985 #define INamespaceWalkCB2_AddRef(This) (This)->lpVtbl->AddRef(This)
   22986 #define INamespaceWalkCB2_Release(This) (This)->lpVtbl->Release(This)
   22987 /*** INamespaceWalkCB methods ***/
   22988 #define INamespaceWalkCB2_FoundItem(This,psf,pidl) (This)->lpVtbl->FoundItem(This,psf,pidl)
   22989 #define INamespaceWalkCB2_EnterFolder(This,psf,pidl) (This)->lpVtbl->EnterFolder(This,psf,pidl)
   22990 #define INamespaceWalkCB2_LeaveFolder(This,psf,pidl) (This)->lpVtbl->LeaveFolder(This,psf,pidl)
   22991 #define INamespaceWalkCB2_InitializeProgressDialog(This,ppszTitle,ppszCancel) (This)->lpVtbl->InitializeProgressDialog(This,ppszTitle,ppszCancel)
   22992 /*** INamespaceWalkCB2 methods ***/
   22993 #define INamespaceWalkCB2_WalkComplete(This,hr) (This)->lpVtbl->WalkComplete(This,hr)
   22994 #else
   22995 /*** IUnknown methods ***/
   22996 static FORCEINLINE HRESULT INamespaceWalkCB2_QueryInterface(INamespaceWalkCB2* This,REFIID riid,void **ppvObject) {
   22997     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   22998 }
   22999 static FORCEINLINE ULONG INamespaceWalkCB2_AddRef(INamespaceWalkCB2* This) {
   23000     return This->lpVtbl->AddRef(This);
   23001 }
   23002 static FORCEINLINE ULONG INamespaceWalkCB2_Release(INamespaceWalkCB2* This) {
   23003     return This->lpVtbl->Release(This);
   23004 }
   23005 /*** INamespaceWalkCB methods ***/
   23006 static FORCEINLINE HRESULT INamespaceWalkCB2_FoundItem(INamespaceWalkCB2* This,IShellFolder *psf,PCUITEMID_CHILD pidl) {
   23007     return This->lpVtbl->FoundItem(This,psf,pidl);
   23008 }
   23009 static FORCEINLINE HRESULT INamespaceWalkCB2_EnterFolder(INamespaceWalkCB2* This,IShellFolder *psf,PCUITEMID_CHILD pidl) {
   23010     return This->lpVtbl->EnterFolder(This,psf,pidl);
   23011 }
   23012 static FORCEINLINE HRESULT INamespaceWalkCB2_LeaveFolder(INamespaceWalkCB2* This,IShellFolder *psf,PCUITEMID_CHILD pidl) {
   23013     return This->lpVtbl->LeaveFolder(This,psf,pidl);
   23014 }
   23015 static FORCEINLINE HRESULT INamespaceWalkCB2_InitializeProgressDialog(INamespaceWalkCB2* This,LPWSTR *ppszTitle,LPWSTR *ppszCancel) {
   23016     return This->lpVtbl->InitializeProgressDialog(This,ppszTitle,ppszCancel);
   23017 }
   23018 /*** INamespaceWalkCB2 methods ***/
   23019 static FORCEINLINE HRESULT INamespaceWalkCB2_WalkComplete(INamespaceWalkCB2* This,HRESULT hr) {
   23020     return This->lpVtbl->WalkComplete(This,hr);
   23021 }
   23022 #endif
   23023 #endif
   23024 
   23025 #endif
   23026 
   23027 HRESULT STDMETHODCALLTYPE INamespaceWalkCB2_WalkComplete_Proxy(
   23028     INamespaceWalkCB2* This,
   23029     HRESULT hr);
   23030 void __RPC_STUB INamespaceWalkCB2_WalkComplete_Stub(
   23031     IRpcStubBuffer* This,
   23032     IRpcChannelBuffer* pRpcChannelBuffer,
   23033     PRPC_MESSAGE pRpcMessage,
   23034     DWORD* pdwStubPhase);
   23035 
   23036 #endif  /* __INamespaceWalkCB2_INTERFACE_DEFINED__ */
   23037 
   23038 #endif
   23039 
   23040 /*****************************************************************************
   23041  * INamespaceWalk interface
   23042  */
   23043 #ifndef __INamespaceWalk_INTERFACE_DEFINED__
   23044 #define __INamespaceWalk_INTERFACE_DEFINED__
   23045 
   23046 typedef enum NAMESPACEWALKFLAG {
   23047     NSWF_DEFAULT = 0x0,
   23048     NSWF_NONE_IMPLIES_ALL = 0x1,
   23049     NSWF_ONE_IMPLIES_ALL = 0x2,
   23050     NSWF_DONT_TRAVERSE_LINKS = 0x4,
   23051     NSWF_DONT_ACCUMULATE_RESULT = 0x8,
   23052     NSWF_TRAVERSE_STREAM_JUNCTIONS = 0x10,
   23053     NSWF_FILESYSTEM_ONLY = 0x20,
   23054     NSWF_SHOW_PROGRESS = 0x40,
   23055     NSWF_FLAG_VIEWORDER = 0x80,
   23056     NSWF_IGNORE_AUTOPLAY_HIDA = 0x100,
   23057     NSWF_ASYNC = 0x200,
   23058     NSWF_DONT_RESOLVE_LINKS = 0x400,
   23059     NSWF_ACCUMULATE_FOLDERS = 0x800,
   23060     NSWF_DONT_SORT = 0x1000,
   23061     NSWF_USE_TRANSFER_MEDIUM = 0x2000,
   23062     NSWF_DONT_TRAVERSE_STREAM_JUNCTIONS = 0x4000,
   23063     NSWF_ANY_IMPLIES_ALL = 0x8000
   23064 } NAMESPACEWALKFLAG;
   23065 
   23066 #define NSWF_ENUMERATE_BEST_EFFORT 0x00010000
   23067 #define NSWF_TRAVERSE_ONLY_STORAGE 0x00020000
   23068 
   23069 DEFINE_ENUM_FLAG_OPERATORS(NAMESPACEWALKFLAG)
   23070 
   23071 DEFINE_GUID(IID_INamespaceWalk, 0x57ced8a7, 0x3f4a, 0x432c, 0x93,0x50, 0x30,0xf2,0x44,0x83,0xf7,0x4f);
   23072 #if defined(__cplusplus) && !defined(CINTERFACE)
   23073 MIDL_INTERFACE("57ced8a7-3f4a-432c-9350-30f24483f74f")
   23074 INamespaceWalk : public IUnknown
   23075 {
   23076     virtual HRESULT STDMETHODCALLTYPE Walk(
   23077         IUnknown *punkToWalk,
   23078         DWORD dwFlags,
   23079         int cDepth,
   23080         INamespaceWalkCB *pnswcb) = 0;
   23081 
   23082     virtual HRESULT STDMETHODCALLTYPE GetIDArrayResult(
   23083         UINT *pcItems,
   23084         PIDLIST_ABSOLUTE **prgpidl) = 0;
   23085 
   23086 };
   23087 #ifdef __CRT_UUID_DECL
   23088 __CRT_UUID_DECL(INamespaceWalk, 0x57ced8a7, 0x3f4a, 0x432c, 0x93,0x50, 0x30,0xf2,0x44,0x83,0xf7,0x4f)
   23089 #endif
   23090 #else
   23091 typedef struct INamespaceWalkVtbl {
   23092     BEGIN_INTERFACE
   23093 
   23094     /*** IUnknown methods ***/
   23095     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   23096         INamespaceWalk* This,
   23097         REFIID riid,
   23098         void **ppvObject);
   23099 
   23100     ULONG (STDMETHODCALLTYPE *AddRef)(
   23101         INamespaceWalk* This);
   23102 
   23103     ULONG (STDMETHODCALLTYPE *Release)(
   23104         INamespaceWalk* This);
   23105 
   23106     /*** INamespaceWalk methods ***/
   23107     HRESULT (STDMETHODCALLTYPE *Walk)(
   23108         INamespaceWalk* This,
   23109         IUnknown *punkToWalk,
   23110         DWORD dwFlags,
   23111         int cDepth,
   23112         INamespaceWalkCB *pnswcb);
   23113 
   23114     HRESULT (STDMETHODCALLTYPE *GetIDArrayResult)(
   23115         INamespaceWalk* This,
   23116         UINT *pcItems,
   23117         PIDLIST_ABSOLUTE **prgpidl);
   23118 
   23119     END_INTERFACE
   23120 } INamespaceWalkVtbl;
   23121 interface INamespaceWalk {
   23122     CONST_VTBL INamespaceWalkVtbl* lpVtbl;
   23123 };
   23124 
   23125 #ifdef COBJMACROS
   23126 #ifndef WIDL_C_INLINE_WRAPPERS
   23127 /*** IUnknown methods ***/
   23128 #define INamespaceWalk_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   23129 #define INamespaceWalk_AddRef(This) (This)->lpVtbl->AddRef(This)
   23130 #define INamespaceWalk_Release(This) (This)->lpVtbl->Release(This)
   23131 /*** INamespaceWalk methods ***/
   23132 #define INamespaceWalk_Walk(This,punkToWalk,dwFlags,cDepth,pnswcb) (This)->lpVtbl->Walk(This,punkToWalk,dwFlags,cDepth,pnswcb)
   23133 #define INamespaceWalk_GetIDArrayResult(This,pcItems,prgpidl) (This)->lpVtbl->GetIDArrayResult(This,pcItems,prgpidl)
   23134 #else
   23135 /*** IUnknown methods ***/
   23136 static FORCEINLINE HRESULT INamespaceWalk_QueryInterface(INamespaceWalk* This,REFIID riid,void **ppvObject) {
   23137     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   23138 }
   23139 static FORCEINLINE ULONG INamespaceWalk_AddRef(INamespaceWalk* This) {
   23140     return This->lpVtbl->AddRef(This);
   23141 }
   23142 static FORCEINLINE ULONG INamespaceWalk_Release(INamespaceWalk* This) {
   23143     return This->lpVtbl->Release(This);
   23144 }
   23145 /*** INamespaceWalk methods ***/
   23146 static FORCEINLINE HRESULT INamespaceWalk_Walk(INamespaceWalk* This,IUnknown *punkToWalk,DWORD dwFlags,int cDepth,INamespaceWalkCB *pnswcb) {
   23147     return This->lpVtbl->Walk(This,punkToWalk,dwFlags,cDepth,pnswcb);
   23148 }
   23149 static FORCEINLINE HRESULT INamespaceWalk_GetIDArrayResult(INamespaceWalk* This,UINT *pcItems,PIDLIST_ABSOLUTE **prgpidl) {
   23150     return This->lpVtbl->GetIDArrayResult(This,pcItems,prgpidl);
   23151 }
   23152 #endif
   23153 #endif
   23154 
   23155 #endif
   23156 
   23157 HRESULT STDMETHODCALLTYPE INamespaceWalk_Walk_Proxy(
   23158     INamespaceWalk* This,
   23159     IUnknown *punkToWalk,
   23160     DWORD dwFlags,
   23161     int cDepth,
   23162     INamespaceWalkCB *pnswcb);
   23163 void __RPC_STUB INamespaceWalk_Walk_Stub(
   23164     IRpcStubBuffer* This,
   23165     IRpcChannelBuffer* pRpcChannelBuffer,
   23166     PRPC_MESSAGE pRpcMessage,
   23167     DWORD* pdwStubPhase);
   23168 HRESULT STDMETHODCALLTYPE INamespaceWalk_GetIDArrayResult_Proxy(
   23169     INamespaceWalk* This,
   23170     UINT *pcItems,
   23171     PIDLIST_ABSOLUTE **prgpidl);
   23172 void __RPC_STUB INamespaceWalk_GetIDArrayResult_Stub(
   23173     IRpcStubBuffer* This,
   23174     IRpcChannelBuffer* pRpcChannelBuffer,
   23175     PRPC_MESSAGE pRpcMessage,
   23176     DWORD* pdwStubPhase);
   23177 
   23178 #endif  /* __INamespaceWalk_INTERFACE_DEFINED__ */
   23179 
   23180 
   23181   __forceinline void FreeIDListArray(PIDLIST_RELATIVE *ppidls, UINT cItems) {
   23182     UINT i;
   23183     for (i = 0; i < cItems; i++) {
   23184       CoTaskMemFree(ppidls[i]);
   23185     }
   23186     CoTaskMemFree(ppidls);
   23187   }
   23188 #if defined(STRICT_TYPED_ITEMIDS) && defined(__cplusplus)
   23189   __forceinline void FreeIDListArrayFull(PIDLIST_ABSOLUTE *ppidls, UINT cItems) {
   23190     UINT i;
   23191     for (i = 0; i < cItems; i++)
   23192       CoTaskMemFree(ppidls[i]);
   23193     CoTaskMemFree(ppidls);
   23194   }
   23195   __forceinline void FreeIDListArrayChild(PITEMID_CHILD *ppidls, UINT cItems) {
   23196     UINT i;
   23197     for (i = 0; i < cItems; i++)
   23198       CoTaskMemFree(ppidls[i]);
   23199     CoTaskMemFree(ppidls);
   23200   }
   23201 #else
   23202 #define FreeIDListArrayFull FreeIDListArray
   23203 #define FreeIDListArrayChild FreeIDListArray
   23204 #endif
   23205 
   23206 #define ACDD_VISIBLE 0x1
   23207 
   23208 /*****************************************************************************
   23209  * IAutoCompleteDropDown interface
   23210  */
   23211 #ifndef __IAutoCompleteDropDown_INTERFACE_DEFINED__
   23212 #define __IAutoCompleteDropDown_INTERFACE_DEFINED__
   23213 
   23214 DEFINE_GUID(IID_IAutoCompleteDropDown, 0x3cd141f4, 0x3c6a, 0x11d2, 0xbc,0xaa, 0x00,0xc0,0x4f,0xd9,0x29,0xdb);
   23215 #if defined(__cplusplus) && !defined(CINTERFACE)
   23216 MIDL_INTERFACE("3cd141f4-3c6a-11d2-bcaa-00c04fd929db")
   23217 IAutoCompleteDropDown : public IUnknown
   23218 {
   23219     virtual HRESULT STDMETHODCALLTYPE GetDropDownStatus(
   23220         DWORD *pdwFlags,
   23221         LPWSTR *ppwszString) = 0;
   23222 
   23223     virtual HRESULT STDMETHODCALLTYPE ResetEnumerator(
   23224         ) = 0;
   23225 
   23226 };
   23227 #ifdef __CRT_UUID_DECL
   23228 __CRT_UUID_DECL(IAutoCompleteDropDown, 0x3cd141f4, 0x3c6a, 0x11d2, 0xbc,0xaa, 0x00,0xc0,0x4f,0xd9,0x29,0xdb)
   23229 #endif
   23230 #else
   23231 typedef struct IAutoCompleteDropDownVtbl {
   23232     BEGIN_INTERFACE
   23233 
   23234     /*** IUnknown methods ***/
   23235     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   23236         IAutoCompleteDropDown* This,
   23237         REFIID riid,
   23238         void **ppvObject);
   23239 
   23240     ULONG (STDMETHODCALLTYPE *AddRef)(
   23241         IAutoCompleteDropDown* This);
   23242 
   23243     ULONG (STDMETHODCALLTYPE *Release)(
   23244         IAutoCompleteDropDown* This);
   23245 
   23246     /*** IAutoCompleteDropDown methods ***/
   23247     HRESULT (STDMETHODCALLTYPE *GetDropDownStatus)(
   23248         IAutoCompleteDropDown* This,
   23249         DWORD *pdwFlags,
   23250         LPWSTR *ppwszString);
   23251 
   23252     HRESULT (STDMETHODCALLTYPE *ResetEnumerator)(
   23253         IAutoCompleteDropDown* This);
   23254 
   23255     END_INTERFACE
   23256 } IAutoCompleteDropDownVtbl;
   23257 interface IAutoCompleteDropDown {
   23258     CONST_VTBL IAutoCompleteDropDownVtbl* lpVtbl;
   23259 };
   23260 
   23261 #ifdef COBJMACROS
   23262 #ifndef WIDL_C_INLINE_WRAPPERS
   23263 /*** IUnknown methods ***/
   23264 #define IAutoCompleteDropDown_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   23265 #define IAutoCompleteDropDown_AddRef(This) (This)->lpVtbl->AddRef(This)
   23266 #define IAutoCompleteDropDown_Release(This) (This)->lpVtbl->Release(This)
   23267 /*** IAutoCompleteDropDown methods ***/
   23268 #define IAutoCompleteDropDown_GetDropDownStatus(This,pdwFlags,ppwszString) (This)->lpVtbl->GetDropDownStatus(This,pdwFlags,ppwszString)
   23269 #define IAutoCompleteDropDown_ResetEnumerator(This) (This)->lpVtbl->ResetEnumerator(This)
   23270 #else
   23271 /*** IUnknown methods ***/
   23272 static FORCEINLINE HRESULT IAutoCompleteDropDown_QueryInterface(IAutoCompleteDropDown* This,REFIID riid,void **ppvObject) {
   23273     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   23274 }
   23275 static FORCEINLINE ULONG IAutoCompleteDropDown_AddRef(IAutoCompleteDropDown* This) {
   23276     return This->lpVtbl->AddRef(This);
   23277 }
   23278 static FORCEINLINE ULONG IAutoCompleteDropDown_Release(IAutoCompleteDropDown* This) {
   23279     return This->lpVtbl->Release(This);
   23280 }
   23281 /*** IAutoCompleteDropDown methods ***/
   23282 static FORCEINLINE HRESULT IAutoCompleteDropDown_GetDropDownStatus(IAutoCompleteDropDown* This,DWORD *pdwFlags,LPWSTR *ppwszString) {
   23283     return This->lpVtbl->GetDropDownStatus(This,pdwFlags,ppwszString);
   23284 }
   23285 static FORCEINLINE HRESULT IAutoCompleteDropDown_ResetEnumerator(IAutoCompleteDropDown* This) {
   23286     return This->lpVtbl->ResetEnumerator(This);
   23287 }
   23288 #endif
   23289 #endif
   23290 
   23291 #endif
   23292 
   23293 HRESULT STDMETHODCALLTYPE IAutoCompleteDropDown_GetDropDownStatus_Proxy(
   23294     IAutoCompleteDropDown* This,
   23295     DWORD *pdwFlags,
   23296     LPWSTR *ppwszString);
   23297 void __RPC_STUB IAutoCompleteDropDown_GetDropDownStatus_Stub(
   23298     IRpcStubBuffer* This,
   23299     IRpcChannelBuffer* pRpcChannelBuffer,
   23300     PRPC_MESSAGE pRpcMessage,
   23301     DWORD* pdwStubPhase);
   23302 HRESULT STDMETHODCALLTYPE IAutoCompleteDropDown_ResetEnumerator_Proxy(
   23303     IAutoCompleteDropDown* This);
   23304 void __RPC_STUB IAutoCompleteDropDown_ResetEnumerator_Stub(
   23305     IRpcStubBuffer* This,
   23306     IRpcChannelBuffer* pRpcChannelBuffer,
   23307     PRPC_MESSAGE pRpcMessage,
   23308     DWORD* pdwStubPhase);
   23309 
   23310 #endif  /* __IAutoCompleteDropDown_INTERFACE_DEFINED__ */
   23311 
   23312 
   23313 #include <pshpack8.h>
   23314 typedef struct tagBANDSITEINFO {
   23315     DWORD dwMask;
   23316     DWORD dwState;
   23317     DWORD dwStyle;
   23318 } BANDSITEINFO;
   23319 #include <poppack.h>
   23320 enum tagBANDSITECID {
   23321     BSID_BANDADDED = 0,
   23322     BSID_BANDREMOVED = 1
   23323 };
   23324 
   23325 
   23326 #define BSIM_STATE 0x00000001
   23327 #define BSIM_STYLE 0x00000002
   23328 
   23329 #define BSSF_VISIBLE 0x00000001
   23330 #define BSSF_NOTITLE 0x00000002
   23331 #define BSSF_UNDELETEABLE 0x00001000
   23332 
   23333 #define BSIS_AUTOGRIPPER 0x00000000
   23334 #define BSIS_NOGRIPPER 0x00000001
   23335 #define BSIS_ALWAYSGRIPPER 0x00000002
   23336 #define BSIS_LEFTALIGN 0x00000004
   23337 #define BSIS_SINGLECLICK 0x00000008
   23338 #define BSIS_NOCONTEXTMENU 0x00000010
   23339 #define BSIS_NODROPTARGET 0x00000020
   23340 #define BSIS_NOCAPTION 0x00000040
   23341 #define BSIS_PREFERNOLINEBREAK 0x00000080
   23342 #define BSIS_LOCKED 0x00000100
   23343 #if _WIN32_IE >= _WIN32_IE_IE70
   23344 #define BSIS_PRESERVEORDERDURINGLAYOUT 0x00000200
   23345 #define BSIS_FIXEDORDER 0x00000400
   23346 #endif
   23347 
   23348 #define SID_SBandSite IID_IBandSite
   23349 #define CGID_BandSite IID_IBandSite
   23350 
   23351 /*****************************************************************************
   23352  * IBandSite interface
   23353  */
   23354 #ifndef __IBandSite_INTERFACE_DEFINED__
   23355 #define __IBandSite_INTERFACE_DEFINED__
   23356 
   23357 DEFINE_GUID(IID_IBandSite, 0x4cf504b0, 0xde96, 0x11d0, 0x8b,0x3f, 0x00,0xa0,0xc9,0x11,0xe8,0xe5);
   23358 #if defined(__cplusplus) && !defined(CINTERFACE)
   23359 MIDL_INTERFACE("4cf504b0-de96-11d0-8b3f-00a0c911e8e5")
   23360 IBandSite : public IUnknown
   23361 {
   23362     virtual HRESULT STDMETHODCALLTYPE AddBand(
   23363         IUnknown *punk) = 0;
   23364 
   23365     virtual HRESULT STDMETHODCALLTYPE EnumBands(
   23366         UINT uBand,
   23367         DWORD *pdwBandID) = 0;
   23368 
   23369     virtual HRESULT STDMETHODCALLTYPE QueryBand(
   23370         DWORD dwBandID,
   23371         IDeskBand **ppstb,
   23372         DWORD *pdwState,
   23373         LPWSTR pszName,
   23374         int cchName) = 0;
   23375 
   23376     virtual HRESULT STDMETHODCALLTYPE SetBandState(
   23377         DWORD dwBandID,
   23378         DWORD dwMask,
   23379         DWORD dwState) = 0;
   23380 
   23381     virtual HRESULT STDMETHODCALLTYPE RemoveBand(
   23382         DWORD dwBandID) = 0;
   23383 
   23384     virtual HRESULT STDMETHODCALLTYPE GetBandObject(
   23385         DWORD dwBandID,
   23386         REFIID riid,
   23387         void **ppv) = 0;
   23388 
   23389     virtual HRESULT STDMETHODCALLTYPE SetBandSiteInfo(
   23390         const BANDSITEINFO *pbsinfo) = 0;
   23391 
   23392     virtual HRESULT STDMETHODCALLTYPE GetBandSiteInfo(
   23393         BANDSITEINFO *pbsinfo) = 0;
   23394 
   23395 };
   23396 #ifdef __CRT_UUID_DECL
   23397 __CRT_UUID_DECL(IBandSite, 0x4cf504b0, 0xde96, 0x11d0, 0x8b,0x3f, 0x00,0xa0,0xc9,0x11,0xe8,0xe5)
   23398 #endif
   23399 #else
   23400 typedef struct IBandSiteVtbl {
   23401     BEGIN_INTERFACE
   23402 
   23403     /*** IUnknown methods ***/
   23404     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   23405         IBandSite* This,
   23406         REFIID riid,
   23407         void **ppvObject);
   23408 
   23409     ULONG (STDMETHODCALLTYPE *AddRef)(
   23410         IBandSite* This);
   23411 
   23412     ULONG (STDMETHODCALLTYPE *Release)(
   23413         IBandSite* This);
   23414 
   23415     /*** IBandSite methods ***/
   23416     HRESULT (STDMETHODCALLTYPE *AddBand)(
   23417         IBandSite* This,
   23418         IUnknown *punk);
   23419 
   23420     HRESULT (STDMETHODCALLTYPE *EnumBands)(
   23421         IBandSite* This,
   23422         UINT uBand,
   23423         DWORD *pdwBandID);
   23424 
   23425     HRESULT (STDMETHODCALLTYPE *QueryBand)(
   23426         IBandSite* This,
   23427         DWORD dwBandID,
   23428         IDeskBand **ppstb,
   23429         DWORD *pdwState,
   23430         LPWSTR pszName,
   23431         int cchName);
   23432 
   23433     HRESULT (STDMETHODCALLTYPE *SetBandState)(
   23434         IBandSite* This,
   23435         DWORD dwBandID,
   23436         DWORD dwMask,
   23437         DWORD dwState);
   23438 
   23439     HRESULT (STDMETHODCALLTYPE *RemoveBand)(
   23440         IBandSite* This,
   23441         DWORD dwBandID);
   23442 
   23443     HRESULT (STDMETHODCALLTYPE *GetBandObject)(
   23444         IBandSite* This,
   23445         DWORD dwBandID,
   23446         REFIID riid,
   23447         void **ppv);
   23448 
   23449     HRESULT (STDMETHODCALLTYPE *SetBandSiteInfo)(
   23450         IBandSite* This,
   23451         const BANDSITEINFO *pbsinfo);
   23452 
   23453     HRESULT (STDMETHODCALLTYPE *GetBandSiteInfo)(
   23454         IBandSite* This,
   23455         BANDSITEINFO *pbsinfo);
   23456 
   23457     END_INTERFACE
   23458 } IBandSiteVtbl;
   23459 interface IBandSite {
   23460     CONST_VTBL IBandSiteVtbl* lpVtbl;
   23461 };
   23462 
   23463 #ifdef COBJMACROS
   23464 #ifndef WIDL_C_INLINE_WRAPPERS
   23465 /*** IUnknown methods ***/
   23466 #define IBandSite_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   23467 #define IBandSite_AddRef(This) (This)->lpVtbl->AddRef(This)
   23468 #define IBandSite_Release(This) (This)->lpVtbl->Release(This)
   23469 /*** IBandSite methods ***/
   23470 #define IBandSite_AddBand(This,punk) (This)->lpVtbl->AddBand(This,punk)
   23471 #define IBandSite_EnumBands(This,uBand,pdwBandID) (This)->lpVtbl->EnumBands(This,uBand,pdwBandID)
   23472 #define IBandSite_QueryBand(This,dwBandID,ppstb,pdwState,pszName,cchName) (This)->lpVtbl->QueryBand(This,dwBandID,ppstb,pdwState,pszName,cchName)
   23473 #define IBandSite_SetBandState(This,dwBandID,dwMask,dwState) (This)->lpVtbl->SetBandState(This,dwBandID,dwMask,dwState)
   23474 #define IBandSite_RemoveBand(This,dwBandID) (This)->lpVtbl->RemoveBand(This,dwBandID)
   23475 #define IBandSite_GetBandObject(This,dwBandID,riid,ppv) (This)->lpVtbl->GetBandObject(This,dwBandID,riid,ppv)
   23476 #define IBandSite_SetBandSiteInfo(This,pbsinfo) (This)->lpVtbl->SetBandSiteInfo(This,pbsinfo)
   23477 #define IBandSite_GetBandSiteInfo(This,pbsinfo) (This)->lpVtbl->GetBandSiteInfo(This,pbsinfo)
   23478 #else
   23479 /*** IUnknown methods ***/
   23480 static FORCEINLINE HRESULT IBandSite_QueryInterface(IBandSite* This,REFIID riid,void **ppvObject) {
   23481     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   23482 }
   23483 static FORCEINLINE ULONG IBandSite_AddRef(IBandSite* This) {
   23484     return This->lpVtbl->AddRef(This);
   23485 }
   23486 static FORCEINLINE ULONG IBandSite_Release(IBandSite* This) {
   23487     return This->lpVtbl->Release(This);
   23488 }
   23489 /*** IBandSite methods ***/
   23490 static FORCEINLINE HRESULT IBandSite_AddBand(IBandSite* This,IUnknown *punk) {
   23491     return This->lpVtbl->AddBand(This,punk);
   23492 }
   23493 static FORCEINLINE HRESULT IBandSite_EnumBands(IBandSite* This,UINT uBand,DWORD *pdwBandID) {
   23494     return This->lpVtbl->EnumBands(This,uBand,pdwBandID);
   23495 }
   23496 static FORCEINLINE HRESULT IBandSite_QueryBand(IBandSite* This,DWORD dwBandID,IDeskBand **ppstb,DWORD *pdwState,LPWSTR pszName,int cchName) {
   23497     return This->lpVtbl->QueryBand(This,dwBandID,ppstb,pdwState,pszName,cchName);
   23498 }
   23499 static FORCEINLINE HRESULT IBandSite_SetBandState(IBandSite* This,DWORD dwBandID,DWORD dwMask,DWORD dwState) {
   23500     return This->lpVtbl->SetBandState(This,dwBandID,dwMask,dwState);
   23501 }
   23502 static FORCEINLINE HRESULT IBandSite_RemoveBand(IBandSite* This,DWORD dwBandID) {
   23503     return This->lpVtbl->RemoveBand(This,dwBandID);
   23504 }
   23505 static FORCEINLINE HRESULT IBandSite_GetBandObject(IBandSite* This,DWORD dwBandID,REFIID riid,void **ppv) {
   23506     return This->lpVtbl->GetBandObject(This,dwBandID,riid,ppv);
   23507 }
   23508 static FORCEINLINE HRESULT IBandSite_SetBandSiteInfo(IBandSite* This,const BANDSITEINFO *pbsinfo) {
   23509     return This->lpVtbl->SetBandSiteInfo(This,pbsinfo);
   23510 }
   23511 static FORCEINLINE HRESULT IBandSite_GetBandSiteInfo(IBandSite* This,BANDSITEINFO *pbsinfo) {
   23512     return This->lpVtbl->GetBandSiteInfo(This,pbsinfo);
   23513 }
   23514 #endif
   23515 #endif
   23516 
   23517 #endif
   23518 
   23519 HRESULT STDMETHODCALLTYPE IBandSite_AddBand_Proxy(
   23520     IBandSite* This,
   23521     IUnknown *punk);
   23522 void __RPC_STUB IBandSite_AddBand_Stub(
   23523     IRpcStubBuffer* This,
   23524     IRpcChannelBuffer* pRpcChannelBuffer,
   23525     PRPC_MESSAGE pRpcMessage,
   23526     DWORD* pdwStubPhase);
   23527 HRESULT STDMETHODCALLTYPE IBandSite_EnumBands_Proxy(
   23528     IBandSite* This,
   23529     UINT uBand,
   23530     DWORD *pdwBandID);
   23531 void __RPC_STUB IBandSite_EnumBands_Stub(
   23532     IRpcStubBuffer* This,
   23533     IRpcChannelBuffer* pRpcChannelBuffer,
   23534     PRPC_MESSAGE pRpcMessage,
   23535     DWORD* pdwStubPhase);
   23536 HRESULT STDMETHODCALLTYPE IBandSite_RemoteQueryBand_Proxy(
   23537     IBandSite* This,
   23538     DWORD dwBandID,
   23539     IDeskBand **ppstb,
   23540     DWORD *pdwState,
   23541     LPWSTR pszName,
   23542     int cchName);
   23543 void __RPC_STUB IBandSite_RemoteQueryBand_Stub(
   23544     IRpcStubBuffer* This,
   23545     IRpcChannelBuffer* pRpcChannelBuffer,
   23546     PRPC_MESSAGE pRpcMessage,
   23547     DWORD* pdwStubPhase);
   23548 HRESULT STDMETHODCALLTYPE IBandSite_SetBandState_Proxy(
   23549     IBandSite* This,
   23550     DWORD dwBandID,
   23551     DWORD dwMask,
   23552     DWORD dwState);
   23553 void __RPC_STUB IBandSite_SetBandState_Stub(
   23554     IRpcStubBuffer* This,
   23555     IRpcChannelBuffer* pRpcChannelBuffer,
   23556     PRPC_MESSAGE pRpcMessage,
   23557     DWORD* pdwStubPhase);
   23558 HRESULT STDMETHODCALLTYPE IBandSite_RemoveBand_Proxy(
   23559     IBandSite* This,
   23560     DWORD dwBandID);
   23561 void __RPC_STUB IBandSite_RemoveBand_Stub(
   23562     IRpcStubBuffer* This,
   23563     IRpcChannelBuffer* pRpcChannelBuffer,
   23564     PRPC_MESSAGE pRpcMessage,
   23565     DWORD* pdwStubPhase);
   23566 HRESULT STDMETHODCALLTYPE IBandSite_GetBandObject_Proxy(
   23567     IBandSite* This,
   23568     DWORD dwBandID,
   23569     REFIID riid,
   23570     void **ppv);
   23571 void __RPC_STUB IBandSite_GetBandObject_Stub(
   23572     IRpcStubBuffer* This,
   23573     IRpcChannelBuffer* pRpcChannelBuffer,
   23574     PRPC_MESSAGE pRpcMessage,
   23575     DWORD* pdwStubPhase);
   23576 HRESULT STDMETHODCALLTYPE IBandSite_SetBandSiteInfo_Proxy(
   23577     IBandSite* This,
   23578     const BANDSITEINFO *pbsinfo);
   23579 void __RPC_STUB IBandSite_SetBandSiteInfo_Stub(
   23580     IRpcStubBuffer* This,
   23581     IRpcChannelBuffer* pRpcChannelBuffer,
   23582     PRPC_MESSAGE pRpcMessage,
   23583     DWORD* pdwStubPhase);
   23584 HRESULT STDMETHODCALLTYPE IBandSite_GetBandSiteInfo_Proxy(
   23585     IBandSite* This,
   23586     BANDSITEINFO *pbsinfo);
   23587 void __RPC_STUB IBandSite_GetBandSiteInfo_Stub(
   23588     IRpcStubBuffer* This,
   23589     IRpcChannelBuffer* pRpcChannelBuffer,
   23590     PRPC_MESSAGE pRpcMessage,
   23591     DWORD* pdwStubPhase);
   23592 HRESULT CALLBACK IBandSite_QueryBand_Proxy(
   23593     IBandSite* This,
   23594     DWORD dwBandID,
   23595     IDeskBand **ppstb,
   23596     DWORD *pdwState,
   23597     LPWSTR pszName,
   23598     int cchName);
   23599 HRESULT __RPC_STUB IBandSite_QueryBand_Stub(
   23600     IBandSite* This,
   23601     DWORD dwBandID,
   23602     IDeskBand **ppstb,
   23603     DWORD *pdwState,
   23604     LPWSTR pszName,
   23605     int cchName);
   23606 
   23607 #endif  /* __IBandSite_INTERFACE_DEFINED__ */
   23608 
   23609 
   23610 /*****************************************************************************
   23611  * IModalWindow interface
   23612  */
   23613 #ifndef __IModalWindow_INTERFACE_DEFINED__
   23614 #define __IModalWindow_INTERFACE_DEFINED__
   23615 
   23616 DEFINE_GUID(IID_IModalWindow, 0xb4db1657, 0x70d7, 0x485e, 0x8e,0x3e, 0x6f,0xcb,0x5a,0x5c,0x18,0x02);
   23617 #if defined(__cplusplus) && !defined(CINTERFACE)
   23618 MIDL_INTERFACE("b4db1657-70d7-485e-8e3e-6fcb5a5c1802")
   23619 IModalWindow : public IUnknown
   23620 {
   23621     virtual HRESULT STDMETHODCALLTYPE Show(
   23622         HWND hwndOwner) = 0;
   23623 
   23624 };
   23625 #ifdef __CRT_UUID_DECL
   23626 __CRT_UUID_DECL(IModalWindow, 0xb4db1657, 0x70d7, 0x485e, 0x8e,0x3e, 0x6f,0xcb,0x5a,0x5c,0x18,0x02)
   23627 #endif
   23628 #else
   23629 typedef struct IModalWindowVtbl {
   23630     BEGIN_INTERFACE
   23631 
   23632     /*** IUnknown methods ***/
   23633     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   23634         IModalWindow* This,
   23635         REFIID riid,
   23636         void **ppvObject);
   23637 
   23638     ULONG (STDMETHODCALLTYPE *AddRef)(
   23639         IModalWindow* This);
   23640 
   23641     ULONG (STDMETHODCALLTYPE *Release)(
   23642         IModalWindow* This);
   23643 
   23644     /*** IModalWindow methods ***/
   23645     HRESULT (STDMETHODCALLTYPE *Show)(
   23646         IModalWindow* This,
   23647         HWND hwndOwner);
   23648 
   23649     END_INTERFACE
   23650 } IModalWindowVtbl;
   23651 interface IModalWindow {
   23652     CONST_VTBL IModalWindowVtbl* lpVtbl;
   23653 };
   23654 
   23655 #ifdef COBJMACROS
   23656 #ifndef WIDL_C_INLINE_WRAPPERS
   23657 /*** IUnknown methods ***/
   23658 #define IModalWindow_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   23659 #define IModalWindow_AddRef(This) (This)->lpVtbl->AddRef(This)
   23660 #define IModalWindow_Release(This) (This)->lpVtbl->Release(This)
   23661 /*** IModalWindow methods ***/
   23662 #define IModalWindow_Show(This,hwndOwner) (This)->lpVtbl->Show(This,hwndOwner)
   23663 #else
   23664 /*** IUnknown methods ***/
   23665 static FORCEINLINE HRESULT IModalWindow_QueryInterface(IModalWindow* This,REFIID riid,void **ppvObject) {
   23666     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   23667 }
   23668 static FORCEINLINE ULONG IModalWindow_AddRef(IModalWindow* This) {
   23669     return This->lpVtbl->AddRef(This);
   23670 }
   23671 static FORCEINLINE ULONG IModalWindow_Release(IModalWindow* This) {
   23672     return This->lpVtbl->Release(This);
   23673 }
   23674 /*** IModalWindow methods ***/
   23675 static FORCEINLINE HRESULT IModalWindow_Show(IModalWindow* This,HWND hwndOwner) {
   23676     return This->lpVtbl->Show(This,hwndOwner);
   23677 }
   23678 #endif
   23679 #endif
   23680 
   23681 #endif
   23682 
   23683 HRESULT STDMETHODCALLTYPE IModalWindow_RemoteShow_Proxy(
   23684     IModalWindow* This,
   23685     HWND hwndOwner);
   23686 void __RPC_STUB IModalWindow_RemoteShow_Stub(
   23687     IRpcStubBuffer* This,
   23688     IRpcChannelBuffer* pRpcChannelBuffer,
   23689     PRPC_MESSAGE pRpcMessage,
   23690     DWORD* pdwStubPhase);
   23691 HRESULT CALLBACK IModalWindow_Show_Proxy(
   23692     IModalWindow* This,
   23693     HWND hwndOwner);
   23694 HRESULT __RPC_STUB IModalWindow_Show_Stub(
   23695     IModalWindow* This,
   23696     HWND hwndOwner);
   23697 
   23698 #endif  /* __IModalWindow_INTERFACE_DEFINED__ */
   23699 
   23700 
   23701 #define PROPSTR_EXTENSIONCOMPLETIONSTATE L"ExtensionCompletionState"
   23702 
   23703 enum tagCDBURNINGEXTENSIONRET {
   23704     CDBE_RET_DEFAULT = 0x0,
   23705     CDBE_RET_DONTRUNOTHEREXTS = 0x1,
   23706     CDBE_RET_STOPWIZARD = 0x2
   23707 };
   23708 
   23709 
   23710 #define SID_CDWizardHost IID_ICDBurnExt
   23711 
   23712 enum _CDBE_ACTIONS {
   23713     CDBE_TYPE_MUSIC = 0x1,
   23714     CDBE_TYPE_DATA = 0x2,
   23715     CDBE_TYPE_ALL = (int)0xffffffff
   23716 };
   23717 
   23718 
   23719 typedef DWORD CDBE_ACTIONS;
   23720 
   23721 /*****************************************************************************
   23722  * ICDBurnExt interface
   23723  */
   23724 #ifndef __ICDBurnExt_INTERFACE_DEFINED__
   23725 #define __ICDBurnExt_INTERFACE_DEFINED__
   23726 
   23727 DEFINE_GUID(IID_ICDBurnExt, 0x2271dcca, 0x74fc, 0x4414, 0x8f,0xb7, 0xc5,0x6b,0x05,0xac,0xe2,0xd7);
   23728 #if defined(__cplusplus) && !defined(CINTERFACE)
   23729 MIDL_INTERFACE("2271dcca-74fc-4414-8fb7-c56b05ace2d7")
   23730 ICDBurnExt : public IUnknown
   23731 {
   23732     virtual HRESULT STDMETHODCALLTYPE GetSupportedActionTypes(
   23733         CDBE_ACTIONS *pdwActions) = 0;
   23734 
   23735 };
   23736 #ifdef __CRT_UUID_DECL
   23737 __CRT_UUID_DECL(ICDBurnExt, 0x2271dcca, 0x74fc, 0x4414, 0x8f,0xb7, 0xc5,0x6b,0x05,0xac,0xe2,0xd7)
   23738 #endif
   23739 #else
   23740 typedef struct ICDBurnExtVtbl {
   23741     BEGIN_INTERFACE
   23742 
   23743     /*** IUnknown methods ***/
   23744     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   23745         ICDBurnExt* This,
   23746         REFIID riid,
   23747         void **ppvObject);
   23748 
   23749     ULONG (STDMETHODCALLTYPE *AddRef)(
   23750         ICDBurnExt* This);
   23751 
   23752     ULONG (STDMETHODCALLTYPE *Release)(
   23753         ICDBurnExt* This);
   23754 
   23755     /*** ICDBurnExt methods ***/
   23756     HRESULT (STDMETHODCALLTYPE *GetSupportedActionTypes)(
   23757         ICDBurnExt* This,
   23758         CDBE_ACTIONS *pdwActions);
   23759 
   23760     END_INTERFACE
   23761 } ICDBurnExtVtbl;
   23762 interface ICDBurnExt {
   23763     CONST_VTBL ICDBurnExtVtbl* lpVtbl;
   23764 };
   23765 
   23766 #ifdef COBJMACROS
   23767 #ifndef WIDL_C_INLINE_WRAPPERS
   23768 /*** IUnknown methods ***/
   23769 #define ICDBurnExt_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   23770 #define ICDBurnExt_AddRef(This) (This)->lpVtbl->AddRef(This)
   23771 #define ICDBurnExt_Release(This) (This)->lpVtbl->Release(This)
   23772 /*** ICDBurnExt methods ***/
   23773 #define ICDBurnExt_GetSupportedActionTypes(This,pdwActions) (This)->lpVtbl->GetSupportedActionTypes(This,pdwActions)
   23774 #else
   23775 /*** IUnknown methods ***/
   23776 static FORCEINLINE HRESULT ICDBurnExt_QueryInterface(ICDBurnExt* This,REFIID riid,void **ppvObject) {
   23777     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   23778 }
   23779 static FORCEINLINE ULONG ICDBurnExt_AddRef(ICDBurnExt* This) {
   23780     return This->lpVtbl->AddRef(This);
   23781 }
   23782 static FORCEINLINE ULONG ICDBurnExt_Release(ICDBurnExt* This) {
   23783     return This->lpVtbl->Release(This);
   23784 }
   23785 /*** ICDBurnExt methods ***/
   23786 static FORCEINLINE HRESULT ICDBurnExt_GetSupportedActionTypes(ICDBurnExt* This,CDBE_ACTIONS *pdwActions) {
   23787     return This->lpVtbl->GetSupportedActionTypes(This,pdwActions);
   23788 }
   23789 #endif
   23790 #endif
   23791 
   23792 #endif
   23793 
   23794 HRESULT STDMETHODCALLTYPE ICDBurnExt_GetSupportedActionTypes_Proxy(
   23795     ICDBurnExt* This,
   23796     CDBE_ACTIONS *pdwActions);
   23797 void __RPC_STUB ICDBurnExt_GetSupportedActionTypes_Stub(
   23798     IRpcStubBuffer* This,
   23799     IRpcChannelBuffer* pRpcChannelBuffer,
   23800     PRPC_MESSAGE pRpcMessage,
   23801     DWORD* pdwStubPhase);
   23802 
   23803 #endif  /* __ICDBurnExt_INTERFACE_DEFINED__ */
   23804 
   23805 
   23806 /*****************************************************************************
   23807  * IContextMenuSite interface
   23808  */
   23809 #ifndef __IContextMenuSite_INTERFACE_DEFINED__
   23810 #define __IContextMenuSite_INTERFACE_DEFINED__
   23811 
   23812 DEFINE_GUID(IID_IContextMenuSite, 0x0811aebe, 0x0b87, 0x4c54, 0x9e,0x72, 0x54,0x8c,0xf6,0x49,0x01,0x6b);
   23813 #if defined(__cplusplus) && !defined(CINTERFACE)
   23814 MIDL_INTERFACE("0811aebe-0b87-4c54-9e72-548cf649016b")
   23815 IContextMenuSite : public IUnknown
   23816 {
   23817     virtual HRESULT STDMETHODCALLTYPE DoContextMenuPopup(
   23818         IUnknown *punkContextMenu,
   23819         UINT fFlags,
   23820         POINT pt) = 0;
   23821 
   23822 };
   23823 #ifdef __CRT_UUID_DECL
   23824 __CRT_UUID_DECL(IContextMenuSite, 0x0811aebe, 0x0b87, 0x4c54, 0x9e,0x72, 0x54,0x8c,0xf6,0x49,0x01,0x6b)
   23825 #endif
   23826 #else
   23827 typedef struct IContextMenuSiteVtbl {
   23828     BEGIN_INTERFACE
   23829 
   23830     /*** IUnknown methods ***/
   23831     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   23832         IContextMenuSite* This,
   23833         REFIID riid,
   23834         void **ppvObject);
   23835 
   23836     ULONG (STDMETHODCALLTYPE *AddRef)(
   23837         IContextMenuSite* This);
   23838 
   23839     ULONG (STDMETHODCALLTYPE *Release)(
   23840         IContextMenuSite* This);
   23841 
   23842     /*** IContextMenuSite methods ***/
   23843     HRESULT (STDMETHODCALLTYPE *DoContextMenuPopup)(
   23844         IContextMenuSite* This,
   23845         IUnknown *punkContextMenu,
   23846         UINT fFlags,
   23847         POINT pt);
   23848 
   23849     END_INTERFACE
   23850 } IContextMenuSiteVtbl;
   23851 interface IContextMenuSite {
   23852     CONST_VTBL IContextMenuSiteVtbl* lpVtbl;
   23853 };
   23854 
   23855 #ifdef COBJMACROS
   23856 #ifndef WIDL_C_INLINE_WRAPPERS
   23857 /*** IUnknown methods ***/
   23858 #define IContextMenuSite_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   23859 #define IContextMenuSite_AddRef(This) (This)->lpVtbl->AddRef(This)
   23860 #define IContextMenuSite_Release(This) (This)->lpVtbl->Release(This)
   23861 /*** IContextMenuSite methods ***/
   23862 #define IContextMenuSite_DoContextMenuPopup(This,punkContextMenu,fFlags,pt) (This)->lpVtbl->DoContextMenuPopup(This,punkContextMenu,fFlags,pt)
   23863 #else
   23864 /*** IUnknown methods ***/
   23865 static FORCEINLINE HRESULT IContextMenuSite_QueryInterface(IContextMenuSite* This,REFIID riid,void **ppvObject) {
   23866     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   23867 }
   23868 static FORCEINLINE ULONG IContextMenuSite_AddRef(IContextMenuSite* This) {
   23869     return This->lpVtbl->AddRef(This);
   23870 }
   23871 static FORCEINLINE ULONG IContextMenuSite_Release(IContextMenuSite* This) {
   23872     return This->lpVtbl->Release(This);
   23873 }
   23874 /*** IContextMenuSite methods ***/
   23875 static FORCEINLINE HRESULT IContextMenuSite_DoContextMenuPopup(IContextMenuSite* This,IUnknown *punkContextMenu,UINT fFlags,POINT pt) {
   23876     return This->lpVtbl->DoContextMenuPopup(This,punkContextMenu,fFlags,pt);
   23877 }
   23878 #endif
   23879 #endif
   23880 
   23881 #endif
   23882 
   23883 HRESULT STDMETHODCALLTYPE IContextMenuSite_DoContextMenuPopup_Proxy(
   23884     IContextMenuSite* This,
   23885     IUnknown *punkContextMenu,
   23886     UINT fFlags,
   23887     POINT pt);
   23888 void __RPC_STUB IContextMenuSite_DoContextMenuPopup_Stub(
   23889     IRpcStubBuffer* This,
   23890     IRpcChannelBuffer* pRpcChannelBuffer,
   23891     PRPC_MESSAGE pRpcMessage,
   23892     DWORD* pdwStubPhase);
   23893 
   23894 #endif  /* __IContextMenuSite_INTERFACE_DEFINED__ */
   23895 
   23896 
   23897 /*****************************************************************************
   23898  * IEnumReadyCallback interface
   23899  */
   23900 #ifndef __IEnumReadyCallback_INTERFACE_DEFINED__
   23901 #define __IEnumReadyCallback_INTERFACE_DEFINED__
   23902 
   23903 DEFINE_GUID(IID_IEnumReadyCallback, 0x61e00d45, 0x8fff, 0x4e60, 0x92,0x4e, 0x65,0x37,0xb6,0x16,0x12,0xdd);
   23904 #if defined(__cplusplus) && !defined(CINTERFACE)
   23905 MIDL_INTERFACE("61e00d45-8fff-4e60-924e-6537b61612dd")
   23906 IEnumReadyCallback : public IUnknown
   23907 {
   23908     virtual HRESULT STDMETHODCALLTYPE EnumReady(
   23909         ) = 0;
   23910 
   23911 };
   23912 #ifdef __CRT_UUID_DECL
   23913 __CRT_UUID_DECL(IEnumReadyCallback, 0x61e00d45, 0x8fff, 0x4e60, 0x92,0x4e, 0x65,0x37,0xb6,0x16,0x12,0xdd)
   23914 #endif
   23915 #else
   23916 typedef struct IEnumReadyCallbackVtbl {
   23917     BEGIN_INTERFACE
   23918 
   23919     /*** IUnknown methods ***/
   23920     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   23921         IEnumReadyCallback* This,
   23922         REFIID riid,
   23923         void **ppvObject);
   23924 
   23925     ULONG (STDMETHODCALLTYPE *AddRef)(
   23926         IEnumReadyCallback* This);
   23927 
   23928     ULONG (STDMETHODCALLTYPE *Release)(
   23929         IEnumReadyCallback* This);
   23930 
   23931     /*** IEnumReadyCallback methods ***/
   23932     HRESULT (STDMETHODCALLTYPE *EnumReady)(
   23933         IEnumReadyCallback* This);
   23934 
   23935     END_INTERFACE
   23936 } IEnumReadyCallbackVtbl;
   23937 interface IEnumReadyCallback {
   23938     CONST_VTBL IEnumReadyCallbackVtbl* lpVtbl;
   23939 };
   23940 
   23941 #ifdef COBJMACROS
   23942 #ifndef WIDL_C_INLINE_WRAPPERS
   23943 /*** IUnknown methods ***/
   23944 #define IEnumReadyCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   23945 #define IEnumReadyCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
   23946 #define IEnumReadyCallback_Release(This) (This)->lpVtbl->Release(This)
   23947 /*** IEnumReadyCallback methods ***/
   23948 #define IEnumReadyCallback_EnumReady(This) (This)->lpVtbl->EnumReady(This)
   23949 #else
   23950 /*** IUnknown methods ***/
   23951 static FORCEINLINE HRESULT IEnumReadyCallback_QueryInterface(IEnumReadyCallback* This,REFIID riid,void **ppvObject) {
   23952     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   23953 }
   23954 static FORCEINLINE ULONG IEnumReadyCallback_AddRef(IEnumReadyCallback* This) {
   23955     return This->lpVtbl->AddRef(This);
   23956 }
   23957 static FORCEINLINE ULONG IEnumReadyCallback_Release(IEnumReadyCallback* This) {
   23958     return This->lpVtbl->Release(This);
   23959 }
   23960 /*** IEnumReadyCallback methods ***/
   23961 static FORCEINLINE HRESULT IEnumReadyCallback_EnumReady(IEnumReadyCallback* This) {
   23962     return This->lpVtbl->EnumReady(This);
   23963 }
   23964 #endif
   23965 #endif
   23966 
   23967 #endif
   23968 
   23969 HRESULT STDMETHODCALLTYPE IEnumReadyCallback_EnumReady_Proxy(
   23970     IEnumReadyCallback* This);
   23971 void __RPC_STUB IEnumReadyCallback_EnumReady_Stub(
   23972     IRpcStubBuffer* This,
   23973     IRpcChannelBuffer* pRpcChannelBuffer,
   23974     PRPC_MESSAGE pRpcMessage,
   23975     DWORD* pdwStubPhase);
   23976 
   23977 #endif  /* __IEnumReadyCallback_INTERFACE_DEFINED__ */
   23978 
   23979 
   23980 /*****************************************************************************
   23981  * IEnumerableView interface
   23982  */
   23983 #ifndef __IEnumerableView_INTERFACE_DEFINED__
   23984 #define __IEnumerableView_INTERFACE_DEFINED__
   23985 
   23986 DEFINE_GUID(IID_IEnumerableView, 0x8c8bf236, 0x1aec, 0x495f, 0x98,0x94, 0x91,0xd5,0x7c,0x3c,0x68,0x6f);
   23987 #if defined(__cplusplus) && !defined(CINTERFACE)
   23988 MIDL_INTERFACE("8c8bf236-1aec-495f-9894-91d57c3c686f")
   23989 IEnumerableView : public IUnknown
   23990 {
   23991     virtual HRESULT STDMETHODCALLTYPE SetEnumReadyCallback(
   23992         IEnumReadyCallback *percb) = 0;
   23993 
   23994     virtual HRESULT STDMETHODCALLTYPE CreateEnumIDListFromContents(
   23995         PCIDLIST_ABSOLUTE pidlFolder,
   23996         DWORD dwEnumFlags,
   23997         IEnumIDList **ppEnumIDList) = 0;
   23998 
   23999 };
   24000 #ifdef __CRT_UUID_DECL
   24001 __CRT_UUID_DECL(IEnumerableView, 0x8c8bf236, 0x1aec, 0x495f, 0x98,0x94, 0x91,0xd5,0x7c,0x3c,0x68,0x6f)
   24002 #endif
   24003 #else
   24004 typedef struct IEnumerableViewVtbl {
   24005     BEGIN_INTERFACE
   24006 
   24007     /*** IUnknown methods ***/
   24008     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   24009         IEnumerableView* This,
   24010         REFIID riid,
   24011         void **ppvObject);
   24012 
   24013     ULONG (STDMETHODCALLTYPE *AddRef)(
   24014         IEnumerableView* This);
   24015 
   24016     ULONG (STDMETHODCALLTYPE *Release)(
   24017         IEnumerableView* This);
   24018 
   24019     /*** IEnumerableView methods ***/
   24020     HRESULT (STDMETHODCALLTYPE *SetEnumReadyCallback)(
   24021         IEnumerableView* This,
   24022         IEnumReadyCallback *percb);
   24023 
   24024     HRESULT (STDMETHODCALLTYPE *CreateEnumIDListFromContents)(
   24025         IEnumerableView* This,
   24026         PCIDLIST_ABSOLUTE pidlFolder,
   24027         DWORD dwEnumFlags,
   24028         IEnumIDList **ppEnumIDList);
   24029 
   24030     END_INTERFACE
   24031 } IEnumerableViewVtbl;
   24032 interface IEnumerableView {
   24033     CONST_VTBL IEnumerableViewVtbl* lpVtbl;
   24034 };
   24035 
   24036 #ifdef COBJMACROS
   24037 #ifndef WIDL_C_INLINE_WRAPPERS
   24038 /*** IUnknown methods ***/
   24039 #define IEnumerableView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   24040 #define IEnumerableView_AddRef(This) (This)->lpVtbl->AddRef(This)
   24041 #define IEnumerableView_Release(This) (This)->lpVtbl->Release(This)
   24042 /*** IEnumerableView methods ***/
   24043 #define IEnumerableView_SetEnumReadyCallback(This,percb) (This)->lpVtbl->SetEnumReadyCallback(This,percb)
   24044 #define IEnumerableView_CreateEnumIDListFromContents(This,pidlFolder,dwEnumFlags,ppEnumIDList) (This)->lpVtbl->CreateEnumIDListFromContents(This,pidlFolder,dwEnumFlags,ppEnumIDList)
   24045 #else
   24046 /*** IUnknown methods ***/
   24047 static FORCEINLINE HRESULT IEnumerableView_QueryInterface(IEnumerableView* This,REFIID riid,void **ppvObject) {
   24048     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   24049 }
   24050 static FORCEINLINE ULONG IEnumerableView_AddRef(IEnumerableView* This) {
   24051     return This->lpVtbl->AddRef(This);
   24052 }
   24053 static FORCEINLINE ULONG IEnumerableView_Release(IEnumerableView* This) {
   24054     return This->lpVtbl->Release(This);
   24055 }
   24056 /*** IEnumerableView methods ***/
   24057 static FORCEINLINE HRESULT IEnumerableView_SetEnumReadyCallback(IEnumerableView* This,IEnumReadyCallback *percb) {
   24058     return This->lpVtbl->SetEnumReadyCallback(This,percb);
   24059 }
   24060 static FORCEINLINE HRESULT IEnumerableView_CreateEnumIDListFromContents(IEnumerableView* This,PCIDLIST_ABSOLUTE pidlFolder,DWORD dwEnumFlags,IEnumIDList **ppEnumIDList) {
   24061     return This->lpVtbl->CreateEnumIDListFromContents(This,pidlFolder,dwEnumFlags,ppEnumIDList);
   24062 }
   24063 #endif
   24064 #endif
   24065 
   24066 #endif
   24067 
   24068 HRESULT STDMETHODCALLTYPE IEnumerableView_SetEnumReadyCallback_Proxy(
   24069     IEnumerableView* This,
   24070     IEnumReadyCallback *percb);
   24071 void __RPC_STUB IEnumerableView_SetEnumReadyCallback_Stub(
   24072     IRpcStubBuffer* This,
   24073     IRpcChannelBuffer* pRpcChannelBuffer,
   24074     PRPC_MESSAGE pRpcMessage,
   24075     DWORD* pdwStubPhase);
   24076 HRESULT STDMETHODCALLTYPE IEnumerableView_CreateEnumIDListFromContents_Proxy(
   24077     IEnumerableView* This,
   24078     PCIDLIST_ABSOLUTE pidlFolder,
   24079     DWORD dwEnumFlags,
   24080     IEnumIDList **ppEnumIDList);
   24081 void __RPC_STUB IEnumerableView_CreateEnumIDListFromContents_Stub(
   24082     IRpcStubBuffer* This,
   24083     IRpcChannelBuffer* pRpcChannelBuffer,
   24084     PRPC_MESSAGE pRpcMessage,
   24085     DWORD* pdwStubPhase);
   24086 
   24087 #endif  /* __IEnumerableView_INTERFACE_DEFINED__ */
   24088 
   24089 
   24090 #define SID_EnumerableView IID_IEnumerableView
   24091 
   24092 /*****************************************************************************
   24093  * IInsertItem interface
   24094  */
   24095 #ifndef __IInsertItem_INTERFACE_DEFINED__
   24096 #define __IInsertItem_INTERFACE_DEFINED__
   24097 
   24098 DEFINE_GUID(IID_IInsertItem, 0xd2b57227, 0x3d23, 0x4b95, 0x93,0xc0, 0x49,0x2b,0xd4,0x54,0xc3,0x56);
   24099 #if defined(__cplusplus) && !defined(CINTERFACE)
   24100 MIDL_INTERFACE("d2b57227-3d23-4b95-93c0-492bd454c356")
   24101 IInsertItem : public IUnknown
   24102 {
   24103     virtual HRESULT STDMETHODCALLTYPE InsertItem(
   24104         PCUIDLIST_RELATIVE pidl) = 0;
   24105 
   24106 };
   24107 #ifdef __CRT_UUID_DECL
   24108 __CRT_UUID_DECL(IInsertItem, 0xd2b57227, 0x3d23, 0x4b95, 0x93,0xc0, 0x49,0x2b,0xd4,0x54,0xc3,0x56)
   24109 #endif
   24110 #else
   24111 typedef struct IInsertItemVtbl {
   24112     BEGIN_INTERFACE
   24113 
   24114     /*** IUnknown methods ***/
   24115     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   24116         IInsertItem* This,
   24117         REFIID riid,
   24118         void **ppvObject);
   24119 
   24120     ULONG (STDMETHODCALLTYPE *AddRef)(
   24121         IInsertItem* This);
   24122 
   24123     ULONG (STDMETHODCALLTYPE *Release)(
   24124         IInsertItem* This);
   24125 
   24126     /*** IInsertItem methods ***/
   24127     HRESULT (STDMETHODCALLTYPE *InsertItem)(
   24128         IInsertItem* This,
   24129         PCUIDLIST_RELATIVE pidl);
   24130 
   24131     END_INTERFACE
   24132 } IInsertItemVtbl;
   24133 interface IInsertItem {
   24134     CONST_VTBL IInsertItemVtbl* lpVtbl;
   24135 };
   24136 
   24137 #ifdef COBJMACROS
   24138 #ifndef WIDL_C_INLINE_WRAPPERS
   24139 /*** IUnknown methods ***/
   24140 #define IInsertItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   24141 #define IInsertItem_AddRef(This) (This)->lpVtbl->AddRef(This)
   24142 #define IInsertItem_Release(This) (This)->lpVtbl->Release(This)
   24143 /*** IInsertItem methods ***/
   24144 #define IInsertItem_InsertItem(This,pidl) (This)->lpVtbl->InsertItem(This,pidl)
   24145 #else
   24146 /*** IUnknown methods ***/
   24147 static FORCEINLINE HRESULT IInsertItem_QueryInterface(IInsertItem* This,REFIID riid,void **ppvObject) {
   24148     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   24149 }
   24150 static FORCEINLINE ULONG IInsertItem_AddRef(IInsertItem* This) {
   24151     return This->lpVtbl->AddRef(This);
   24152 }
   24153 static FORCEINLINE ULONG IInsertItem_Release(IInsertItem* This) {
   24154     return This->lpVtbl->Release(This);
   24155 }
   24156 /*** IInsertItem methods ***/
   24157 static FORCEINLINE HRESULT IInsertItem_InsertItem(IInsertItem* This,PCUIDLIST_RELATIVE pidl) {
   24158     return This->lpVtbl->InsertItem(This,pidl);
   24159 }
   24160 #endif
   24161 #endif
   24162 
   24163 #endif
   24164 
   24165 HRESULT STDMETHODCALLTYPE IInsertItem_InsertItem_Proxy(
   24166     IInsertItem* This,
   24167     PCUIDLIST_RELATIVE pidl);
   24168 void __RPC_STUB IInsertItem_InsertItem_Stub(
   24169     IRpcStubBuffer* This,
   24170     IRpcChannelBuffer* pRpcChannelBuffer,
   24171     PRPC_MESSAGE pRpcMessage,
   24172     DWORD* pdwStubPhase);
   24173 
   24174 #endif  /* __IInsertItem_INTERFACE_DEFINED__ */
   24175 
   24176 
   24177 /*****************************************************************************
   24178  * IMenuBand interface
   24179  */
   24180 #ifndef __IMenuBand_INTERFACE_DEFINED__
   24181 #define __IMenuBand_INTERFACE_DEFINED__
   24182 
   24183 enum tagMENUBANDHANDLERCID {
   24184     MBHANDCID_PIDLSELECT = 0
   24185 };
   24186 
   24187 
   24188 DEFINE_GUID(IID_IMenuBand, 0x568804cd, 0xcbd7, 0x11d0, 0x98,0x16, 0x00,0xc0,0x4f,0xd9,0x19,0x72);
   24189 #if defined(__cplusplus) && !defined(CINTERFACE)
   24190 MIDL_INTERFACE("568804cd-cbd7-11d0-9816-00c04fd91972")
   24191 IMenuBand : public IUnknown
   24192 {
   24193     virtual HRESULT STDMETHODCALLTYPE IsMenuMessage(
   24194         MSG *pmsg) = 0;
   24195 
   24196     virtual HRESULT STDMETHODCALLTYPE TranslateMenuMessage(
   24197         MSG *pmsg,
   24198         LRESULT *plRet) = 0;
   24199 
   24200 };
   24201 #ifdef __CRT_UUID_DECL
   24202 __CRT_UUID_DECL(IMenuBand, 0x568804cd, 0xcbd7, 0x11d0, 0x98,0x16, 0x00,0xc0,0x4f,0xd9,0x19,0x72)
   24203 #endif
   24204 #else
   24205 typedef struct IMenuBandVtbl {
   24206     BEGIN_INTERFACE
   24207 
   24208     /*** IUnknown methods ***/
   24209     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   24210         IMenuBand* This,
   24211         REFIID riid,
   24212         void **ppvObject);
   24213 
   24214     ULONG (STDMETHODCALLTYPE *AddRef)(
   24215         IMenuBand* This);
   24216 
   24217     ULONG (STDMETHODCALLTYPE *Release)(
   24218         IMenuBand* This);
   24219 
   24220     /*** IMenuBand methods ***/
   24221     HRESULT (STDMETHODCALLTYPE *IsMenuMessage)(
   24222         IMenuBand* This,
   24223         MSG *pmsg);
   24224 
   24225     HRESULT (STDMETHODCALLTYPE *TranslateMenuMessage)(
   24226         IMenuBand* This,
   24227         MSG *pmsg,
   24228         LRESULT *plRet);
   24229 
   24230     END_INTERFACE
   24231 } IMenuBandVtbl;
   24232 interface IMenuBand {
   24233     CONST_VTBL IMenuBandVtbl* lpVtbl;
   24234 };
   24235 
   24236 #ifdef COBJMACROS
   24237 #ifndef WIDL_C_INLINE_WRAPPERS
   24238 /*** IUnknown methods ***/
   24239 #define IMenuBand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   24240 #define IMenuBand_AddRef(This) (This)->lpVtbl->AddRef(This)
   24241 #define IMenuBand_Release(This) (This)->lpVtbl->Release(This)
   24242 /*** IMenuBand methods ***/
   24243 #define IMenuBand_IsMenuMessage(This,pmsg) (This)->lpVtbl->IsMenuMessage(This,pmsg)
   24244 #define IMenuBand_TranslateMenuMessage(This,pmsg,plRet) (This)->lpVtbl->TranslateMenuMessage(This,pmsg,plRet)
   24245 #else
   24246 /*** IUnknown methods ***/
   24247 static FORCEINLINE HRESULT IMenuBand_QueryInterface(IMenuBand* This,REFIID riid,void **ppvObject) {
   24248     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   24249 }
   24250 static FORCEINLINE ULONG IMenuBand_AddRef(IMenuBand* This) {
   24251     return This->lpVtbl->AddRef(This);
   24252 }
   24253 static FORCEINLINE ULONG IMenuBand_Release(IMenuBand* This) {
   24254     return This->lpVtbl->Release(This);
   24255 }
   24256 /*** IMenuBand methods ***/
   24257 static FORCEINLINE HRESULT IMenuBand_IsMenuMessage(IMenuBand* This,MSG *pmsg) {
   24258     return This->lpVtbl->IsMenuMessage(This,pmsg);
   24259 }
   24260 static FORCEINLINE HRESULT IMenuBand_TranslateMenuMessage(IMenuBand* This,MSG *pmsg,LRESULT *plRet) {
   24261     return This->lpVtbl->TranslateMenuMessage(This,pmsg,plRet);
   24262 }
   24263 #endif
   24264 #endif
   24265 
   24266 #endif
   24267 
   24268 HRESULT STDMETHODCALLTYPE IMenuBand_IsMenuMessage_Proxy(
   24269     IMenuBand* This,
   24270     MSG *pmsg);
   24271 void __RPC_STUB IMenuBand_IsMenuMessage_Stub(
   24272     IRpcStubBuffer* This,
   24273     IRpcChannelBuffer* pRpcChannelBuffer,
   24274     PRPC_MESSAGE pRpcMessage,
   24275     DWORD* pdwStubPhase);
   24276 HRESULT STDMETHODCALLTYPE IMenuBand_TranslateMenuMessage_Proxy(
   24277     IMenuBand* This,
   24278     MSG *pmsg,
   24279     LRESULT *plRet);
   24280 void __RPC_STUB IMenuBand_TranslateMenuMessage_Stub(
   24281     IRpcStubBuffer* This,
   24282     IRpcChannelBuffer* pRpcChannelBuffer,
   24283     PRPC_MESSAGE pRpcMessage,
   24284     DWORD* pdwStubPhase);
   24285 
   24286 #endif  /* __IMenuBand_INTERFACE_DEFINED__ */
   24287 
   24288 
   24289 /*****************************************************************************
   24290  * IFolderBandPriv interface
   24291  */
   24292 #ifndef __IFolderBandPriv_INTERFACE_DEFINED__
   24293 #define __IFolderBandPriv_INTERFACE_DEFINED__
   24294 
   24295 DEFINE_GUID(IID_IFolderBandPriv, 0x47c01f95, 0xe185, 0x412c, 0xb5,0xc5, 0x4f,0x27,0xdf,0x96,0x5a,0xea);
   24296 #if defined(__cplusplus) && !defined(CINTERFACE)
   24297 MIDL_INTERFACE("47c01f95-e185-412c-b5c5-4f27df965aea")
   24298 IFolderBandPriv : public IUnknown
   24299 {
   24300     virtual HRESULT STDMETHODCALLTYPE SetCascade(
   24301         WINBOOL fCascade) = 0;
   24302 
   24303     virtual HRESULT STDMETHODCALLTYPE SetAccelerators(
   24304         WINBOOL fAccelerators) = 0;
   24305 
   24306     virtual HRESULT STDMETHODCALLTYPE SetNoIcons(
   24307         WINBOOL fNoIcons) = 0;
   24308 
   24309     virtual HRESULT STDMETHODCALLTYPE SetNoText(
   24310         WINBOOL fNoText) = 0;
   24311 
   24312 };
   24313 #ifdef __CRT_UUID_DECL
   24314 __CRT_UUID_DECL(IFolderBandPriv, 0x47c01f95, 0xe185, 0x412c, 0xb5,0xc5, 0x4f,0x27,0xdf,0x96,0x5a,0xea)
   24315 #endif
   24316 #else
   24317 typedef struct IFolderBandPrivVtbl {
   24318     BEGIN_INTERFACE
   24319 
   24320     /*** IUnknown methods ***/
   24321     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   24322         IFolderBandPriv* This,
   24323         REFIID riid,
   24324         void **ppvObject);
   24325 
   24326     ULONG (STDMETHODCALLTYPE *AddRef)(
   24327         IFolderBandPriv* This);
   24328 
   24329     ULONG (STDMETHODCALLTYPE *Release)(
   24330         IFolderBandPriv* This);
   24331 
   24332     /*** IFolderBandPriv methods ***/
   24333     HRESULT (STDMETHODCALLTYPE *SetCascade)(
   24334         IFolderBandPriv* This,
   24335         WINBOOL fCascade);
   24336 
   24337     HRESULT (STDMETHODCALLTYPE *SetAccelerators)(
   24338         IFolderBandPriv* This,
   24339         WINBOOL fAccelerators);
   24340 
   24341     HRESULT (STDMETHODCALLTYPE *SetNoIcons)(
   24342         IFolderBandPriv* This,
   24343         WINBOOL fNoIcons);
   24344 
   24345     HRESULT (STDMETHODCALLTYPE *SetNoText)(
   24346         IFolderBandPriv* This,
   24347         WINBOOL fNoText);
   24348 
   24349     END_INTERFACE
   24350 } IFolderBandPrivVtbl;
   24351 interface IFolderBandPriv {
   24352     CONST_VTBL IFolderBandPrivVtbl* lpVtbl;
   24353 };
   24354 
   24355 #ifdef COBJMACROS
   24356 #ifndef WIDL_C_INLINE_WRAPPERS
   24357 /*** IUnknown methods ***/
   24358 #define IFolderBandPriv_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   24359 #define IFolderBandPriv_AddRef(This) (This)->lpVtbl->AddRef(This)
   24360 #define IFolderBandPriv_Release(This) (This)->lpVtbl->Release(This)
   24361 /*** IFolderBandPriv methods ***/
   24362 #define IFolderBandPriv_SetCascade(This,fCascade) (This)->lpVtbl->SetCascade(This,fCascade)
   24363 #define IFolderBandPriv_SetAccelerators(This,fAccelerators) (This)->lpVtbl->SetAccelerators(This,fAccelerators)
   24364 #define IFolderBandPriv_SetNoIcons(This,fNoIcons) (This)->lpVtbl->SetNoIcons(This,fNoIcons)
   24365 #define IFolderBandPriv_SetNoText(This,fNoText) (This)->lpVtbl->SetNoText(This,fNoText)
   24366 #else
   24367 /*** IUnknown methods ***/
   24368 static FORCEINLINE HRESULT IFolderBandPriv_QueryInterface(IFolderBandPriv* This,REFIID riid,void **ppvObject) {
   24369     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   24370 }
   24371 static FORCEINLINE ULONG IFolderBandPriv_AddRef(IFolderBandPriv* This) {
   24372     return This->lpVtbl->AddRef(This);
   24373 }
   24374 static FORCEINLINE ULONG IFolderBandPriv_Release(IFolderBandPriv* This) {
   24375     return This->lpVtbl->Release(This);
   24376 }
   24377 /*** IFolderBandPriv methods ***/
   24378 static FORCEINLINE HRESULT IFolderBandPriv_SetCascade(IFolderBandPriv* This,WINBOOL fCascade) {
   24379     return This->lpVtbl->SetCascade(This,fCascade);
   24380 }
   24381 static FORCEINLINE HRESULT IFolderBandPriv_SetAccelerators(IFolderBandPriv* This,WINBOOL fAccelerators) {
   24382     return This->lpVtbl->SetAccelerators(This,fAccelerators);
   24383 }
   24384 static FORCEINLINE HRESULT IFolderBandPriv_SetNoIcons(IFolderBandPriv* This,WINBOOL fNoIcons) {
   24385     return This->lpVtbl->SetNoIcons(This,fNoIcons);
   24386 }
   24387 static FORCEINLINE HRESULT IFolderBandPriv_SetNoText(IFolderBandPriv* This,WINBOOL fNoText) {
   24388     return This->lpVtbl->SetNoText(This,fNoText);
   24389 }
   24390 #endif
   24391 #endif
   24392 
   24393 #endif
   24394 
   24395 HRESULT STDMETHODCALLTYPE IFolderBandPriv_SetCascade_Proxy(
   24396     IFolderBandPriv* This,
   24397     WINBOOL fCascade);
   24398 void __RPC_STUB IFolderBandPriv_SetCascade_Stub(
   24399     IRpcStubBuffer* This,
   24400     IRpcChannelBuffer* pRpcChannelBuffer,
   24401     PRPC_MESSAGE pRpcMessage,
   24402     DWORD* pdwStubPhase);
   24403 HRESULT STDMETHODCALLTYPE IFolderBandPriv_SetAccelerators_Proxy(
   24404     IFolderBandPriv* This,
   24405     WINBOOL fAccelerators);
   24406 void __RPC_STUB IFolderBandPriv_SetAccelerators_Stub(
   24407     IRpcStubBuffer* This,
   24408     IRpcChannelBuffer* pRpcChannelBuffer,
   24409     PRPC_MESSAGE pRpcMessage,
   24410     DWORD* pdwStubPhase);
   24411 HRESULT STDMETHODCALLTYPE IFolderBandPriv_SetNoIcons_Proxy(
   24412     IFolderBandPriv* This,
   24413     WINBOOL fNoIcons);
   24414 void __RPC_STUB IFolderBandPriv_SetNoIcons_Stub(
   24415     IRpcStubBuffer* This,
   24416     IRpcChannelBuffer* pRpcChannelBuffer,
   24417     PRPC_MESSAGE pRpcMessage,
   24418     DWORD* pdwStubPhase);
   24419 HRESULT STDMETHODCALLTYPE IFolderBandPriv_SetNoText_Proxy(
   24420     IFolderBandPriv* This,
   24421     WINBOOL fNoText);
   24422 void __RPC_STUB IFolderBandPriv_SetNoText_Stub(
   24423     IRpcStubBuffer* This,
   24424     IRpcChannelBuffer* pRpcChannelBuffer,
   24425     PRPC_MESSAGE pRpcMessage,
   24426     DWORD* pdwStubPhase);
   24427 
   24428 #endif  /* __IFolderBandPriv_INTERFACE_DEFINED__ */
   24429 
   24430 
   24431 /*****************************************************************************
   24432  * IRegTreeItem interface
   24433  */
   24434 #ifndef __IRegTreeItem_INTERFACE_DEFINED__
   24435 #define __IRegTreeItem_INTERFACE_DEFINED__
   24436 
   24437 DEFINE_GUID(IID_IRegTreeItem, 0xa9521922, 0x0812, 0x4d44, 0x9e,0xc3, 0x7f,0xd3,0x8c,0x72,0x6f,0x3d);
   24438 #if defined(__cplusplus) && !defined(CINTERFACE)
   24439 MIDL_INTERFACE("a9521922-0812-4d44-9ec3-7fd38c726f3d")
   24440 IRegTreeItem : public IUnknown
   24441 {
   24442     virtual HRESULT STDMETHODCALLTYPE GetCheckState(
   24443         WINBOOL *pbCheck) = 0;
   24444 
   24445     virtual HRESULT STDMETHODCALLTYPE SetCheckState(
   24446         WINBOOL bCheck) = 0;
   24447 
   24448 };
   24449 #ifdef __CRT_UUID_DECL
   24450 __CRT_UUID_DECL(IRegTreeItem, 0xa9521922, 0x0812, 0x4d44, 0x9e,0xc3, 0x7f,0xd3,0x8c,0x72,0x6f,0x3d)
   24451 #endif
   24452 #else
   24453 typedef struct IRegTreeItemVtbl {
   24454     BEGIN_INTERFACE
   24455 
   24456     /*** IUnknown methods ***/
   24457     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   24458         IRegTreeItem* This,
   24459         REFIID riid,
   24460         void **ppvObject);
   24461 
   24462     ULONG (STDMETHODCALLTYPE *AddRef)(
   24463         IRegTreeItem* This);
   24464 
   24465     ULONG (STDMETHODCALLTYPE *Release)(
   24466         IRegTreeItem* This);
   24467 
   24468     /*** IRegTreeItem methods ***/
   24469     HRESULT (STDMETHODCALLTYPE *GetCheckState)(
   24470         IRegTreeItem* This,
   24471         WINBOOL *pbCheck);
   24472 
   24473     HRESULT (STDMETHODCALLTYPE *SetCheckState)(
   24474         IRegTreeItem* This,
   24475         WINBOOL bCheck);
   24476 
   24477     END_INTERFACE
   24478 } IRegTreeItemVtbl;
   24479 interface IRegTreeItem {
   24480     CONST_VTBL IRegTreeItemVtbl* lpVtbl;
   24481 };
   24482 
   24483 #ifdef COBJMACROS
   24484 #ifndef WIDL_C_INLINE_WRAPPERS
   24485 /*** IUnknown methods ***/
   24486 #define IRegTreeItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   24487 #define IRegTreeItem_AddRef(This) (This)->lpVtbl->AddRef(This)
   24488 #define IRegTreeItem_Release(This) (This)->lpVtbl->Release(This)
   24489 /*** IRegTreeItem methods ***/
   24490 #define IRegTreeItem_GetCheckState(This,pbCheck) (This)->lpVtbl->GetCheckState(This,pbCheck)
   24491 #define IRegTreeItem_SetCheckState(This,bCheck) (This)->lpVtbl->SetCheckState(This,bCheck)
   24492 #else
   24493 /*** IUnknown methods ***/
   24494 static FORCEINLINE HRESULT IRegTreeItem_QueryInterface(IRegTreeItem* This,REFIID riid,void **ppvObject) {
   24495     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   24496 }
   24497 static FORCEINLINE ULONG IRegTreeItem_AddRef(IRegTreeItem* This) {
   24498     return This->lpVtbl->AddRef(This);
   24499 }
   24500 static FORCEINLINE ULONG IRegTreeItem_Release(IRegTreeItem* This) {
   24501     return This->lpVtbl->Release(This);
   24502 }
   24503 /*** IRegTreeItem methods ***/
   24504 static FORCEINLINE HRESULT IRegTreeItem_GetCheckState(IRegTreeItem* This,WINBOOL *pbCheck) {
   24505     return This->lpVtbl->GetCheckState(This,pbCheck);
   24506 }
   24507 static FORCEINLINE HRESULT IRegTreeItem_SetCheckState(IRegTreeItem* This,WINBOOL bCheck) {
   24508     return This->lpVtbl->SetCheckState(This,bCheck);
   24509 }
   24510 #endif
   24511 #endif
   24512 
   24513 #endif
   24514 
   24515 HRESULT STDMETHODCALLTYPE IRegTreeItem_GetCheckState_Proxy(
   24516     IRegTreeItem* This,
   24517     WINBOOL *pbCheck);
   24518 void __RPC_STUB IRegTreeItem_GetCheckState_Stub(
   24519     IRpcStubBuffer* This,
   24520     IRpcChannelBuffer* pRpcChannelBuffer,
   24521     PRPC_MESSAGE pRpcMessage,
   24522     DWORD* pdwStubPhase);
   24523 HRESULT STDMETHODCALLTYPE IRegTreeItem_SetCheckState_Proxy(
   24524     IRegTreeItem* This,
   24525     WINBOOL bCheck);
   24526 void __RPC_STUB IRegTreeItem_SetCheckState_Stub(
   24527     IRpcStubBuffer* This,
   24528     IRpcChannelBuffer* pRpcChannelBuffer,
   24529     PRPC_MESSAGE pRpcMessage,
   24530     DWORD* pdwStubPhase);
   24531 
   24532 #endif  /* __IRegTreeItem_INTERFACE_DEFINED__ */
   24533 
   24534 
   24535 /*****************************************************************************
   24536  * IImageRecompress interface
   24537  */
   24538 #ifndef __IImageRecompress_INTERFACE_DEFINED__
   24539 #define __IImageRecompress_INTERFACE_DEFINED__
   24540 
   24541 DEFINE_GUID(IID_IImageRecompress, 0x505f1513, 0x6b3e, 0x4892, 0xa2,0x72, 0x59,0xf8,0x88,0x9a,0x4d,0x3e);
   24542 #if defined(__cplusplus) && !defined(CINTERFACE)
   24543 MIDL_INTERFACE("505f1513-6b3e-4892-a272-59f8889a4d3e")
   24544 IImageRecompress : public IUnknown
   24545 {
   24546     virtual HRESULT STDMETHODCALLTYPE RecompressImage(
   24547         IShellItem *psi,
   24548         int cx,
   24549         int cy,
   24550         int iQuality,
   24551         IStorage *pstg,
   24552         IStream **ppstrmOut) = 0;
   24553 
   24554 };
   24555 #ifdef __CRT_UUID_DECL
   24556 __CRT_UUID_DECL(IImageRecompress, 0x505f1513, 0x6b3e, 0x4892, 0xa2,0x72, 0x59,0xf8,0x88,0x9a,0x4d,0x3e)
   24557 #endif
   24558 #else
   24559 typedef struct IImageRecompressVtbl {
   24560     BEGIN_INTERFACE
   24561 
   24562     /*** IUnknown methods ***/
   24563     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   24564         IImageRecompress* This,
   24565         REFIID riid,
   24566         void **ppvObject);
   24567 
   24568     ULONG (STDMETHODCALLTYPE *AddRef)(
   24569         IImageRecompress* This);
   24570 
   24571     ULONG (STDMETHODCALLTYPE *Release)(
   24572         IImageRecompress* This);
   24573 
   24574     /*** IImageRecompress methods ***/
   24575     HRESULT (STDMETHODCALLTYPE *RecompressImage)(
   24576         IImageRecompress* This,
   24577         IShellItem *psi,
   24578         int cx,
   24579         int cy,
   24580         int iQuality,
   24581         IStorage *pstg,
   24582         IStream **ppstrmOut);
   24583 
   24584     END_INTERFACE
   24585 } IImageRecompressVtbl;
   24586 interface IImageRecompress {
   24587     CONST_VTBL IImageRecompressVtbl* lpVtbl;
   24588 };
   24589 
   24590 #ifdef COBJMACROS
   24591 #ifndef WIDL_C_INLINE_WRAPPERS
   24592 /*** IUnknown methods ***/
   24593 #define IImageRecompress_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   24594 #define IImageRecompress_AddRef(This) (This)->lpVtbl->AddRef(This)
   24595 #define IImageRecompress_Release(This) (This)->lpVtbl->Release(This)
   24596 /*** IImageRecompress methods ***/
   24597 #define IImageRecompress_RecompressImage(This,psi,cx,cy,iQuality,pstg,ppstrmOut) (This)->lpVtbl->RecompressImage(This,psi,cx,cy,iQuality,pstg,ppstrmOut)
   24598 #else
   24599 /*** IUnknown methods ***/
   24600 static FORCEINLINE HRESULT IImageRecompress_QueryInterface(IImageRecompress* This,REFIID riid,void **ppvObject) {
   24601     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   24602 }
   24603 static FORCEINLINE ULONG IImageRecompress_AddRef(IImageRecompress* This) {
   24604     return This->lpVtbl->AddRef(This);
   24605 }
   24606 static FORCEINLINE ULONG IImageRecompress_Release(IImageRecompress* This) {
   24607     return This->lpVtbl->Release(This);
   24608 }
   24609 /*** IImageRecompress methods ***/
   24610 static FORCEINLINE HRESULT IImageRecompress_RecompressImage(IImageRecompress* This,IShellItem *psi,int cx,int cy,int iQuality,IStorage *pstg,IStream **ppstrmOut) {
   24611     return This->lpVtbl->RecompressImage(This,psi,cx,cy,iQuality,pstg,ppstrmOut);
   24612 }
   24613 #endif
   24614 #endif
   24615 
   24616 #endif
   24617 
   24618 HRESULT STDMETHODCALLTYPE IImageRecompress_RecompressImage_Proxy(
   24619     IImageRecompress* This,
   24620     IShellItem *psi,
   24621     int cx,
   24622     int cy,
   24623     int iQuality,
   24624     IStorage *pstg,
   24625     IStream **ppstrmOut);
   24626 void __RPC_STUB IImageRecompress_RecompressImage_Stub(
   24627     IRpcStubBuffer* This,
   24628     IRpcChannelBuffer* pRpcChannelBuffer,
   24629     PRPC_MESSAGE pRpcMessage,
   24630     DWORD* pdwStubPhase);
   24631 
   24632 #endif  /* __IImageRecompress_INTERFACE_DEFINED__ */
   24633 
   24634 
   24635 #if _WIN32_IE >= _WIN32_IE_IE60
   24636 /*****************************************************************************
   24637  * IDeskBar interface
   24638  */
   24639 #ifndef __IDeskBar_INTERFACE_DEFINED__
   24640 #define __IDeskBar_INTERFACE_DEFINED__
   24641 
   24642 DEFINE_GUID(IID_IDeskBar, 0xeb0fe173, 0x1a3a, 0x11d0, 0x89,0xb3, 0x00,0xa0,0xc9,0x0a,0x90,0xac);
   24643 #if defined(__cplusplus) && !defined(CINTERFACE)
   24644 MIDL_INTERFACE("eb0fe173-1a3a-11d0-89b3-00a0c90a90ac")
   24645 IDeskBar : public IOleWindow
   24646 {
   24647     virtual HRESULT STDMETHODCALLTYPE SetClient(
   24648         IUnknown *punkClient) = 0;
   24649 
   24650     virtual HRESULT STDMETHODCALLTYPE GetClient(
   24651         IUnknown **ppunkClient) = 0;
   24652 
   24653     virtual HRESULT STDMETHODCALLTYPE OnPosRectChangeDB(
   24654         RECT *prc) = 0;
   24655 
   24656 };
   24657 #ifdef __CRT_UUID_DECL
   24658 __CRT_UUID_DECL(IDeskBar, 0xeb0fe173, 0x1a3a, 0x11d0, 0x89,0xb3, 0x00,0xa0,0xc9,0x0a,0x90,0xac)
   24659 #endif
   24660 #else
   24661 typedef struct IDeskBarVtbl {
   24662     BEGIN_INTERFACE
   24663 
   24664     /*** IUnknown methods ***/
   24665     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   24666         IDeskBar* This,
   24667         REFIID riid,
   24668         void **ppvObject);
   24669 
   24670     ULONG (STDMETHODCALLTYPE *AddRef)(
   24671         IDeskBar* This);
   24672 
   24673     ULONG (STDMETHODCALLTYPE *Release)(
   24674         IDeskBar* This);
   24675 
   24676     /*** IOleWindow methods ***/
   24677     HRESULT (STDMETHODCALLTYPE *GetWindow)(
   24678         IDeskBar* This,
   24679         HWND *phwnd);
   24680 
   24681     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
   24682         IDeskBar* This,
   24683         WINBOOL fEnterMode);
   24684 
   24685     /*** IDeskBar methods ***/
   24686     HRESULT (STDMETHODCALLTYPE *SetClient)(
   24687         IDeskBar* This,
   24688         IUnknown *punkClient);
   24689 
   24690     HRESULT (STDMETHODCALLTYPE *GetClient)(
   24691         IDeskBar* This,
   24692         IUnknown **ppunkClient);
   24693 
   24694     HRESULT (STDMETHODCALLTYPE *OnPosRectChangeDB)(
   24695         IDeskBar* This,
   24696         RECT *prc);
   24697 
   24698     END_INTERFACE
   24699 } IDeskBarVtbl;
   24700 interface IDeskBar {
   24701     CONST_VTBL IDeskBarVtbl* lpVtbl;
   24702 };
   24703 
   24704 #ifdef COBJMACROS
   24705 #ifndef WIDL_C_INLINE_WRAPPERS
   24706 /*** IUnknown methods ***/
   24707 #define IDeskBar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   24708 #define IDeskBar_AddRef(This) (This)->lpVtbl->AddRef(This)
   24709 #define IDeskBar_Release(This) (This)->lpVtbl->Release(This)
   24710 /*** IOleWindow methods ***/
   24711 #define IDeskBar_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
   24712 #define IDeskBar_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
   24713 /*** IDeskBar methods ***/
   24714 #define IDeskBar_SetClient(This,punkClient) (This)->lpVtbl->SetClient(This,punkClient)
   24715 #define IDeskBar_GetClient(This,ppunkClient) (This)->lpVtbl->GetClient(This,ppunkClient)
   24716 #define IDeskBar_OnPosRectChangeDB(This,prc) (This)->lpVtbl->OnPosRectChangeDB(This,prc)
   24717 #else
   24718 /*** IUnknown methods ***/
   24719 static FORCEINLINE HRESULT IDeskBar_QueryInterface(IDeskBar* This,REFIID riid,void **ppvObject) {
   24720     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   24721 }
   24722 static FORCEINLINE ULONG IDeskBar_AddRef(IDeskBar* This) {
   24723     return This->lpVtbl->AddRef(This);
   24724 }
   24725 static FORCEINLINE ULONG IDeskBar_Release(IDeskBar* This) {
   24726     return This->lpVtbl->Release(This);
   24727 }
   24728 /*** IOleWindow methods ***/
   24729 static FORCEINLINE HRESULT IDeskBar_GetWindow(IDeskBar* This,HWND *phwnd) {
   24730     return This->lpVtbl->GetWindow(This,phwnd);
   24731 }
   24732 static FORCEINLINE HRESULT IDeskBar_ContextSensitiveHelp(IDeskBar* This,WINBOOL fEnterMode) {
   24733     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
   24734 }
   24735 /*** IDeskBar methods ***/
   24736 static FORCEINLINE HRESULT IDeskBar_SetClient(IDeskBar* This,IUnknown *punkClient) {
   24737     return This->lpVtbl->SetClient(This,punkClient);
   24738 }
   24739 static FORCEINLINE HRESULT IDeskBar_GetClient(IDeskBar* This,IUnknown **ppunkClient) {
   24740     return This->lpVtbl->GetClient(This,ppunkClient);
   24741 }
   24742 static FORCEINLINE HRESULT IDeskBar_OnPosRectChangeDB(IDeskBar* This,RECT *prc) {
   24743     return This->lpVtbl->OnPosRectChangeDB(This,prc);
   24744 }
   24745 #endif
   24746 #endif
   24747 
   24748 #endif
   24749 
   24750 HRESULT STDMETHODCALLTYPE IDeskBar_SetClient_Proxy(
   24751     IDeskBar* This,
   24752     IUnknown *punkClient);
   24753 void __RPC_STUB IDeskBar_SetClient_Stub(
   24754     IRpcStubBuffer* This,
   24755     IRpcChannelBuffer* pRpcChannelBuffer,
   24756     PRPC_MESSAGE pRpcMessage,
   24757     DWORD* pdwStubPhase);
   24758 HRESULT STDMETHODCALLTYPE IDeskBar_GetClient_Proxy(
   24759     IDeskBar* This,
   24760     IUnknown **ppunkClient);
   24761 void __RPC_STUB IDeskBar_GetClient_Stub(
   24762     IRpcStubBuffer* This,
   24763     IRpcChannelBuffer* pRpcChannelBuffer,
   24764     PRPC_MESSAGE pRpcMessage,
   24765     DWORD* pdwStubPhase);
   24766 HRESULT STDMETHODCALLTYPE IDeskBar_OnPosRectChangeDB_Proxy(
   24767     IDeskBar* This,
   24768     RECT *prc);
   24769 void __RPC_STUB IDeskBar_OnPosRectChangeDB_Stub(
   24770     IRpcStubBuffer* This,
   24771     IRpcChannelBuffer* pRpcChannelBuffer,
   24772     PRPC_MESSAGE pRpcMessage,
   24773     DWORD* pdwStubPhase);
   24774 
   24775 #endif  /* __IDeskBar_INTERFACE_DEFINED__ */
   24776 
   24777 
   24778 /*****************************************************************************
   24779  * IMenuPopup interface
   24780  */
   24781 #ifndef __IMenuPopup_INTERFACE_DEFINED__
   24782 #define __IMenuPopup_INTERFACE_DEFINED__
   24783 
   24784 enum tagMENUPOPUPSELECT {
   24785     MPOS_EXECUTE = 0,
   24786     MPOS_FULLCANCEL = 1,
   24787     MPOS_CANCELLEVEL = 2,
   24788     MPOS_SELECTLEFT = 3,
   24789     MPOS_SELECTRIGHT = 4,
   24790     MPOS_CHILDTRACKING = 5
   24791 };
   24792 
   24793 
   24794 enum tagMENUPOPUPPOPUPFLAGS {
   24795     MPPF_SETFOCUS = 0x1,
   24796     MPPF_INITIALSELECT = 0x2,
   24797     MPPF_NOANIMATE = 0x4,
   24798     MPPF_KEYBOARD = 0x10,
   24799     MPPF_REPOSITION = 0x20,
   24800     MPPF_FORCEZORDER = 0x40,
   24801     MPPF_FINALSELECT = 0x80,
   24802     MPPF_TOP = 0x20000000,
   24803     MPPF_LEFT = 0x40000000,
   24804     MPPF_RIGHT = 0x60000000,
   24805     MPPF_BOTTOM = (int)0x80000000,
   24806     MPPF_POS_MASK = (int)0xe0000000,
   24807     MPPF_ALIGN_LEFT = 0x2000000,
   24808     MPPF_ALIGN_RIGHT = 0x4000000
   24809 };
   24810 
   24811 
   24812 typedef int MP_POPUPFLAGS;
   24813 
   24814 DEFINE_GUID(IID_IMenuPopup, 0xd1e7afeb, 0x6a2e, 0x11d0, 0x8c,0x78, 0x00,0xc0,0x4f,0xd9,0x18,0xb4);
   24815 #if defined(__cplusplus) && !defined(CINTERFACE)
   24816 MIDL_INTERFACE("d1e7afeb-6a2e-11d0-8c78-00c04fd918b4")
   24817 IMenuPopup : public IDeskBar
   24818 {
   24819     virtual HRESULT STDMETHODCALLTYPE Popup(
   24820         POINTL *ppt,
   24821         RECTL *prcExclude,
   24822         MP_POPUPFLAGS dwFlags) = 0;
   24823 
   24824     virtual HRESULT STDMETHODCALLTYPE OnSelect(
   24825         DWORD dwSelectType) = 0;
   24826 
   24827     virtual HRESULT STDMETHODCALLTYPE SetSubMenu(
   24828         IMenuPopup *pmp,
   24829         WINBOOL fSet) = 0;
   24830 
   24831 };
   24832 #ifdef __CRT_UUID_DECL
   24833 __CRT_UUID_DECL(IMenuPopup, 0xd1e7afeb, 0x6a2e, 0x11d0, 0x8c,0x78, 0x00,0xc0,0x4f,0xd9,0x18,0xb4)
   24834 #endif
   24835 #else
   24836 typedef struct IMenuPopupVtbl {
   24837     BEGIN_INTERFACE
   24838 
   24839     /*** IUnknown methods ***/
   24840     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   24841         IMenuPopup* This,
   24842         REFIID riid,
   24843         void **ppvObject);
   24844 
   24845     ULONG (STDMETHODCALLTYPE *AddRef)(
   24846         IMenuPopup* This);
   24847 
   24848     ULONG (STDMETHODCALLTYPE *Release)(
   24849         IMenuPopup* This);
   24850 
   24851     /*** IOleWindow methods ***/
   24852     HRESULT (STDMETHODCALLTYPE *GetWindow)(
   24853         IMenuPopup* This,
   24854         HWND *phwnd);
   24855 
   24856     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
   24857         IMenuPopup* This,
   24858         WINBOOL fEnterMode);
   24859 
   24860     /*** IDeskBar methods ***/
   24861     HRESULT (STDMETHODCALLTYPE *SetClient)(
   24862         IMenuPopup* This,
   24863         IUnknown *punkClient);
   24864 
   24865     HRESULT (STDMETHODCALLTYPE *GetClient)(
   24866         IMenuPopup* This,
   24867         IUnknown **ppunkClient);
   24868 
   24869     HRESULT (STDMETHODCALLTYPE *OnPosRectChangeDB)(
   24870         IMenuPopup* This,
   24871         RECT *prc);
   24872 
   24873     /*** IMenuPopup methods ***/
   24874     HRESULT (STDMETHODCALLTYPE *Popup)(
   24875         IMenuPopup* This,
   24876         POINTL *ppt,
   24877         RECTL *prcExclude,
   24878         MP_POPUPFLAGS dwFlags);
   24879 
   24880     HRESULT (STDMETHODCALLTYPE *OnSelect)(
   24881         IMenuPopup* This,
   24882         DWORD dwSelectType);
   24883 
   24884     HRESULT (STDMETHODCALLTYPE *SetSubMenu)(
   24885         IMenuPopup* This,
   24886         IMenuPopup *pmp,
   24887         WINBOOL fSet);
   24888 
   24889     END_INTERFACE
   24890 } IMenuPopupVtbl;
   24891 interface IMenuPopup {
   24892     CONST_VTBL IMenuPopupVtbl* lpVtbl;
   24893 };
   24894 
   24895 #ifdef COBJMACROS
   24896 #ifndef WIDL_C_INLINE_WRAPPERS
   24897 /*** IUnknown methods ***/
   24898 #define IMenuPopup_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   24899 #define IMenuPopup_AddRef(This) (This)->lpVtbl->AddRef(This)
   24900 #define IMenuPopup_Release(This) (This)->lpVtbl->Release(This)
   24901 /*** IOleWindow methods ***/
   24902 #define IMenuPopup_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
   24903 #define IMenuPopup_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
   24904 /*** IDeskBar methods ***/
   24905 #define IMenuPopup_SetClient(This,punkClient) (This)->lpVtbl->SetClient(This,punkClient)
   24906 #define IMenuPopup_GetClient(This,ppunkClient) (This)->lpVtbl->GetClient(This,ppunkClient)
   24907 #define IMenuPopup_OnPosRectChangeDB(This,prc) (This)->lpVtbl->OnPosRectChangeDB(This,prc)
   24908 /*** IMenuPopup methods ***/
   24909 #define IMenuPopup_Popup(This,ppt,prcExclude,dwFlags) (This)->lpVtbl->Popup(This,ppt,prcExclude,dwFlags)
   24910 #define IMenuPopup_OnSelect(This,dwSelectType) (This)->lpVtbl->OnSelect(This,dwSelectType)
   24911 #define IMenuPopup_SetSubMenu(This,pmp,fSet) (This)->lpVtbl->SetSubMenu(This,pmp,fSet)
   24912 #else
   24913 /*** IUnknown methods ***/
   24914 static FORCEINLINE HRESULT IMenuPopup_QueryInterface(IMenuPopup* This,REFIID riid,void **ppvObject) {
   24915     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   24916 }
   24917 static FORCEINLINE ULONG IMenuPopup_AddRef(IMenuPopup* This) {
   24918     return This->lpVtbl->AddRef(This);
   24919 }
   24920 static FORCEINLINE ULONG IMenuPopup_Release(IMenuPopup* This) {
   24921     return This->lpVtbl->Release(This);
   24922 }
   24923 /*** IOleWindow methods ***/
   24924 static FORCEINLINE HRESULT IMenuPopup_GetWindow(IMenuPopup* This,HWND *phwnd) {
   24925     return This->lpVtbl->GetWindow(This,phwnd);
   24926 }
   24927 static FORCEINLINE HRESULT IMenuPopup_ContextSensitiveHelp(IMenuPopup* This,WINBOOL fEnterMode) {
   24928     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
   24929 }
   24930 /*** IDeskBar methods ***/
   24931 static FORCEINLINE HRESULT IMenuPopup_SetClient(IMenuPopup* This,IUnknown *punkClient) {
   24932     return This->lpVtbl->SetClient(This,punkClient);
   24933 }
   24934 static FORCEINLINE HRESULT IMenuPopup_GetClient(IMenuPopup* This,IUnknown **ppunkClient) {
   24935     return This->lpVtbl->GetClient(This,ppunkClient);
   24936 }
   24937 static FORCEINLINE HRESULT IMenuPopup_OnPosRectChangeDB(IMenuPopup* This,RECT *prc) {
   24938     return This->lpVtbl->OnPosRectChangeDB(This,prc);
   24939 }
   24940 /*** IMenuPopup methods ***/
   24941 static FORCEINLINE HRESULT IMenuPopup_Popup(IMenuPopup* This,POINTL *ppt,RECTL *prcExclude,MP_POPUPFLAGS dwFlags) {
   24942     return This->lpVtbl->Popup(This,ppt,prcExclude,dwFlags);
   24943 }
   24944 static FORCEINLINE HRESULT IMenuPopup_OnSelect(IMenuPopup* This,DWORD dwSelectType) {
   24945     return This->lpVtbl->OnSelect(This,dwSelectType);
   24946 }
   24947 static FORCEINLINE HRESULT IMenuPopup_SetSubMenu(IMenuPopup* This,IMenuPopup *pmp,WINBOOL fSet) {
   24948     return This->lpVtbl->SetSubMenu(This,pmp,fSet);
   24949 }
   24950 #endif
   24951 #endif
   24952 
   24953 #endif
   24954 
   24955 HRESULT STDMETHODCALLTYPE IMenuPopup_Popup_Proxy(
   24956     IMenuPopup* This,
   24957     POINTL *ppt,
   24958     RECTL *prcExclude,
   24959     MP_POPUPFLAGS dwFlags);
   24960 void __RPC_STUB IMenuPopup_Popup_Stub(
   24961     IRpcStubBuffer* This,
   24962     IRpcChannelBuffer* pRpcChannelBuffer,
   24963     PRPC_MESSAGE pRpcMessage,
   24964     DWORD* pdwStubPhase);
   24965 HRESULT STDMETHODCALLTYPE IMenuPopup_OnSelect_Proxy(
   24966     IMenuPopup* This,
   24967     DWORD dwSelectType);
   24968 void __RPC_STUB IMenuPopup_OnSelect_Stub(
   24969     IRpcStubBuffer* This,
   24970     IRpcChannelBuffer* pRpcChannelBuffer,
   24971     PRPC_MESSAGE pRpcMessage,
   24972     DWORD* pdwStubPhase);
   24973 HRESULT STDMETHODCALLTYPE IMenuPopup_SetSubMenu_Proxy(
   24974     IMenuPopup* This,
   24975     IMenuPopup *pmp,
   24976     WINBOOL fSet);
   24977 void __RPC_STUB IMenuPopup_SetSubMenu_Stub(
   24978     IRpcStubBuffer* This,
   24979     IRpcChannelBuffer* pRpcChannelBuffer,
   24980     PRPC_MESSAGE pRpcMessage,
   24981     DWORD* pdwStubPhase);
   24982 
   24983 #endif  /* __IMenuPopup_INTERFACE_DEFINED__ */
   24984 
   24985 #endif
   24986 
   24987 #if NTDDI_VERSION >= NTDDI_VISTA
   24988 typedef enum FILE_USAGE_TYPE {
   24989     FUT_PLAYING = 0,
   24990     FUT_EDITING = 1,
   24991     FUT_GENERIC = 2
   24992 } FILE_USAGE_TYPE;
   24993 
   24994 #define OF_CAP_CANSWITCHTO 0x0001
   24995 #define OF_CAP_CANCLOSE 0x0002
   24996 
   24997 /*****************************************************************************
   24998  * IFileIsInUse interface
   24999  */
   25000 #ifndef __IFileIsInUse_INTERFACE_DEFINED__
   25001 #define __IFileIsInUse_INTERFACE_DEFINED__
   25002 
   25003 DEFINE_GUID(IID_IFileIsInUse, 0x64a1cbf0, 0x3a1a, 0x4461, 0x91,0x58, 0x37,0x69,0x69,0x69,0x39,0x50);
   25004 #if defined(__cplusplus) && !defined(CINTERFACE)
   25005 MIDL_INTERFACE("64a1cbf0-3a1a-4461-9158-376969693950")
   25006 IFileIsInUse : public IUnknown
   25007 {
   25008     virtual HRESULT STDMETHODCALLTYPE GetAppName(
   25009         LPWSTR *ppszName) = 0;
   25010 
   25011     virtual HRESULT STDMETHODCALLTYPE GetUsage(
   25012         FILE_USAGE_TYPE *pfut) = 0;
   25013 
   25014     virtual HRESULT STDMETHODCALLTYPE GetCapabilities(
   25015         DWORD *pdwCapFlags) = 0;
   25016 
   25017     virtual HRESULT STDMETHODCALLTYPE GetSwitchToHWND(
   25018         HWND *phwnd) = 0;
   25019 
   25020     virtual HRESULT STDMETHODCALLTYPE CloseFile(
   25021         ) = 0;
   25022 
   25023 };
   25024 #ifdef __CRT_UUID_DECL
   25025 __CRT_UUID_DECL(IFileIsInUse, 0x64a1cbf0, 0x3a1a, 0x4461, 0x91,0x58, 0x37,0x69,0x69,0x69,0x39,0x50)
   25026 #endif
   25027 #else
   25028 typedef struct IFileIsInUseVtbl {
   25029     BEGIN_INTERFACE
   25030 
   25031     /*** IUnknown methods ***/
   25032     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   25033         IFileIsInUse* This,
   25034         REFIID riid,
   25035         void **ppvObject);
   25036 
   25037     ULONG (STDMETHODCALLTYPE *AddRef)(
   25038         IFileIsInUse* This);
   25039 
   25040     ULONG (STDMETHODCALLTYPE *Release)(
   25041         IFileIsInUse* This);
   25042 
   25043     /*** IFileIsInUse methods ***/
   25044     HRESULT (STDMETHODCALLTYPE *GetAppName)(
   25045         IFileIsInUse* This,
   25046         LPWSTR *ppszName);
   25047 
   25048     HRESULT (STDMETHODCALLTYPE *GetUsage)(
   25049         IFileIsInUse* This,
   25050         FILE_USAGE_TYPE *pfut);
   25051 
   25052     HRESULT (STDMETHODCALLTYPE *GetCapabilities)(
   25053         IFileIsInUse* This,
   25054         DWORD *pdwCapFlags);
   25055 
   25056     HRESULT (STDMETHODCALLTYPE *GetSwitchToHWND)(
   25057         IFileIsInUse* This,
   25058         HWND *phwnd);
   25059 
   25060     HRESULT (STDMETHODCALLTYPE *CloseFile)(
   25061         IFileIsInUse* This);
   25062 
   25063     END_INTERFACE
   25064 } IFileIsInUseVtbl;
   25065 interface IFileIsInUse {
   25066     CONST_VTBL IFileIsInUseVtbl* lpVtbl;
   25067 };
   25068 
   25069 #ifdef COBJMACROS
   25070 #ifndef WIDL_C_INLINE_WRAPPERS
   25071 /*** IUnknown methods ***/
   25072 #define IFileIsInUse_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   25073 #define IFileIsInUse_AddRef(This) (This)->lpVtbl->AddRef(This)
   25074 #define IFileIsInUse_Release(This) (This)->lpVtbl->Release(This)
   25075 /*** IFileIsInUse methods ***/
   25076 #define IFileIsInUse_GetAppName(This,ppszName) (This)->lpVtbl->GetAppName(This,ppszName)
   25077 #define IFileIsInUse_GetUsage(This,pfut) (This)->lpVtbl->GetUsage(This,pfut)
   25078 #define IFileIsInUse_GetCapabilities(This,pdwCapFlags) (This)->lpVtbl->GetCapabilities(This,pdwCapFlags)
   25079 #define IFileIsInUse_GetSwitchToHWND(This,phwnd) (This)->lpVtbl->GetSwitchToHWND(This,phwnd)
   25080 #define IFileIsInUse_CloseFile(This) (This)->lpVtbl->CloseFile(This)
   25081 #else
   25082 /*** IUnknown methods ***/
   25083 static FORCEINLINE HRESULT IFileIsInUse_QueryInterface(IFileIsInUse* This,REFIID riid,void **ppvObject) {
   25084     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   25085 }
   25086 static FORCEINLINE ULONG IFileIsInUse_AddRef(IFileIsInUse* This) {
   25087     return This->lpVtbl->AddRef(This);
   25088 }
   25089 static FORCEINLINE ULONG IFileIsInUse_Release(IFileIsInUse* This) {
   25090     return This->lpVtbl->Release(This);
   25091 }
   25092 /*** IFileIsInUse methods ***/
   25093 static FORCEINLINE HRESULT IFileIsInUse_GetAppName(IFileIsInUse* This,LPWSTR *ppszName) {
   25094     return This->lpVtbl->GetAppName(This,ppszName);
   25095 }
   25096 static FORCEINLINE HRESULT IFileIsInUse_GetUsage(IFileIsInUse* This,FILE_USAGE_TYPE *pfut) {
   25097     return This->lpVtbl->GetUsage(This,pfut);
   25098 }
   25099 static FORCEINLINE HRESULT IFileIsInUse_GetCapabilities(IFileIsInUse* This,DWORD *pdwCapFlags) {
   25100     return This->lpVtbl->GetCapabilities(This,pdwCapFlags);
   25101 }
   25102 static FORCEINLINE HRESULT IFileIsInUse_GetSwitchToHWND(IFileIsInUse* This,HWND *phwnd) {
   25103     return This->lpVtbl->GetSwitchToHWND(This,phwnd);
   25104 }
   25105 static FORCEINLINE HRESULT IFileIsInUse_CloseFile(IFileIsInUse* This) {
   25106     return This->lpVtbl->CloseFile(This);
   25107 }
   25108 #endif
   25109 #endif
   25110 
   25111 #endif
   25112 
   25113 HRESULT STDMETHODCALLTYPE IFileIsInUse_GetAppName_Proxy(
   25114     IFileIsInUse* This,
   25115     LPWSTR *ppszName);
   25116 void __RPC_STUB IFileIsInUse_GetAppName_Stub(
   25117     IRpcStubBuffer* This,
   25118     IRpcChannelBuffer* pRpcChannelBuffer,
   25119     PRPC_MESSAGE pRpcMessage,
   25120     DWORD* pdwStubPhase);
   25121 HRESULT STDMETHODCALLTYPE IFileIsInUse_GetUsage_Proxy(
   25122     IFileIsInUse* This,
   25123     FILE_USAGE_TYPE *pfut);
   25124 void __RPC_STUB IFileIsInUse_GetUsage_Stub(
   25125     IRpcStubBuffer* This,
   25126     IRpcChannelBuffer* pRpcChannelBuffer,
   25127     PRPC_MESSAGE pRpcMessage,
   25128     DWORD* pdwStubPhase);
   25129 HRESULT STDMETHODCALLTYPE IFileIsInUse_GetCapabilities_Proxy(
   25130     IFileIsInUse* This,
   25131     DWORD *pdwCapFlags);
   25132 void __RPC_STUB IFileIsInUse_GetCapabilities_Stub(
   25133     IRpcStubBuffer* This,
   25134     IRpcChannelBuffer* pRpcChannelBuffer,
   25135     PRPC_MESSAGE pRpcMessage,
   25136     DWORD* pdwStubPhase);
   25137 HRESULT STDMETHODCALLTYPE IFileIsInUse_GetSwitchToHWND_Proxy(
   25138     IFileIsInUse* This,
   25139     HWND *phwnd);
   25140 void __RPC_STUB IFileIsInUse_GetSwitchToHWND_Stub(
   25141     IRpcStubBuffer* This,
   25142     IRpcChannelBuffer* pRpcChannelBuffer,
   25143     PRPC_MESSAGE pRpcMessage,
   25144     DWORD* pdwStubPhase);
   25145 HRESULT STDMETHODCALLTYPE IFileIsInUse_CloseFile_Proxy(
   25146     IFileIsInUse* This);
   25147 void __RPC_STUB IFileIsInUse_CloseFile_Stub(
   25148     IRpcStubBuffer* This,
   25149     IRpcChannelBuffer* pRpcChannelBuffer,
   25150     PRPC_MESSAGE pRpcMessage,
   25151     DWORD* pdwStubPhase);
   25152 
   25153 #endif  /* __IFileIsInUse_INTERFACE_DEFINED__ */
   25154 
   25155 
   25156 #ifndef __IFileDialog_FWD_DEFINED__
   25157 #define __IFileDialog_FWD_DEFINED__
   25158 typedef interface IFileDialog IFileDialog;
   25159 #endif
   25160 
   25161 
   25162 typedef enum FDE_OVERWRITE_RESPONSE {
   25163     FDEOR_DEFAULT = 0,
   25164     FDEOR_ACCEPT = 1,
   25165     FDEOR_REFUSE = 2
   25166 } FDE_OVERWRITE_RESPONSE;
   25167 
   25168 typedef enum FDE_SHAREVIOLATION_RESPONSE {
   25169     FDESVR_DEFAULT = 0,
   25170     FDESVR_ACCEPT = 1,
   25171     FDESVR_REFUSE = 2
   25172 } FDE_SHAREVIOLATION_RESPONSE;
   25173 
   25174 typedef enum FDAP {
   25175     FDAP_BOTTOM = 0,
   25176     FDAP_TOP = 1
   25177 } FDAP;
   25178 
   25179 /*****************************************************************************
   25180  * IFileDialogEvents interface
   25181  */
   25182 #ifndef __IFileDialogEvents_INTERFACE_DEFINED__
   25183 #define __IFileDialogEvents_INTERFACE_DEFINED__
   25184 
   25185 DEFINE_GUID(IID_IFileDialogEvents, 0x973510db, 0x7d7f, 0x452b, 0x89,0x75, 0x74,0xa8,0x58,0x28,0xd3,0x54);
   25186 #if defined(__cplusplus) && !defined(CINTERFACE)
   25187 MIDL_INTERFACE("973510db-7d7f-452b-8975-74a85828d354")
   25188 IFileDialogEvents : public IUnknown
   25189 {
   25190     virtual HRESULT STDMETHODCALLTYPE OnFileOk(
   25191         IFileDialog *pfd) = 0;
   25192 
   25193     virtual HRESULT STDMETHODCALLTYPE OnFolderChanging(
   25194         IFileDialog *pfd,
   25195         IShellItem *psiFolder) = 0;
   25196 
   25197     virtual HRESULT STDMETHODCALLTYPE OnFolderChange(
   25198         IFileDialog *pfd) = 0;
   25199 
   25200     virtual HRESULT STDMETHODCALLTYPE OnSelectionChange(
   25201         IFileDialog *pfd) = 0;
   25202 
   25203     virtual HRESULT STDMETHODCALLTYPE OnShareViolation(
   25204         IFileDialog *pfd,
   25205         IShellItem *psi,
   25206         FDE_SHAREVIOLATION_RESPONSE *pResponse) = 0;
   25207 
   25208     virtual HRESULT STDMETHODCALLTYPE OnTypeChange(
   25209         IFileDialog *pfd) = 0;
   25210 
   25211     virtual HRESULT STDMETHODCALLTYPE OnOverwrite(
   25212         IFileDialog *pfd,
   25213         IShellItem *psi,
   25214         FDE_OVERWRITE_RESPONSE *pResponse) = 0;
   25215 
   25216 };
   25217 #ifdef __CRT_UUID_DECL
   25218 __CRT_UUID_DECL(IFileDialogEvents, 0x973510db, 0x7d7f, 0x452b, 0x89,0x75, 0x74,0xa8,0x58,0x28,0xd3,0x54)
   25219 #endif
   25220 #else
   25221 typedef struct IFileDialogEventsVtbl {
   25222     BEGIN_INTERFACE
   25223 
   25224     /*** IUnknown methods ***/
   25225     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   25226         IFileDialogEvents* This,
   25227         REFIID riid,
   25228         void **ppvObject);
   25229 
   25230     ULONG (STDMETHODCALLTYPE *AddRef)(
   25231         IFileDialogEvents* This);
   25232 
   25233     ULONG (STDMETHODCALLTYPE *Release)(
   25234         IFileDialogEvents* This);
   25235 
   25236     /*** IFileDialogEvents methods ***/
   25237     HRESULT (STDMETHODCALLTYPE *OnFileOk)(
   25238         IFileDialogEvents* This,
   25239         IFileDialog *pfd);
   25240 
   25241     HRESULT (STDMETHODCALLTYPE *OnFolderChanging)(
   25242         IFileDialogEvents* This,
   25243         IFileDialog *pfd,
   25244         IShellItem *psiFolder);
   25245 
   25246     HRESULT (STDMETHODCALLTYPE *OnFolderChange)(
   25247         IFileDialogEvents* This,
   25248         IFileDialog *pfd);
   25249 
   25250     HRESULT (STDMETHODCALLTYPE *OnSelectionChange)(
   25251         IFileDialogEvents* This,
   25252         IFileDialog *pfd);
   25253 
   25254     HRESULT (STDMETHODCALLTYPE *OnShareViolation)(
   25255         IFileDialogEvents* This,
   25256         IFileDialog *pfd,
   25257         IShellItem *psi,
   25258         FDE_SHAREVIOLATION_RESPONSE *pResponse);
   25259 
   25260     HRESULT (STDMETHODCALLTYPE *OnTypeChange)(
   25261         IFileDialogEvents* This,
   25262         IFileDialog *pfd);
   25263 
   25264     HRESULT (STDMETHODCALLTYPE *OnOverwrite)(
   25265         IFileDialogEvents* This,
   25266         IFileDialog *pfd,
   25267         IShellItem *psi,
   25268         FDE_OVERWRITE_RESPONSE *pResponse);
   25269 
   25270     END_INTERFACE
   25271 } IFileDialogEventsVtbl;
   25272 interface IFileDialogEvents {
   25273     CONST_VTBL IFileDialogEventsVtbl* lpVtbl;
   25274 };
   25275 
   25276 #ifdef COBJMACROS
   25277 #ifndef WIDL_C_INLINE_WRAPPERS
   25278 /*** IUnknown methods ***/
   25279 #define IFileDialogEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   25280 #define IFileDialogEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
   25281 #define IFileDialogEvents_Release(This) (This)->lpVtbl->Release(This)
   25282 /*** IFileDialogEvents methods ***/
   25283 #define IFileDialogEvents_OnFileOk(This,pfd) (This)->lpVtbl->OnFileOk(This,pfd)
   25284 #define IFileDialogEvents_OnFolderChanging(This,pfd,psiFolder) (This)->lpVtbl->OnFolderChanging(This,pfd,psiFolder)
   25285 #define IFileDialogEvents_OnFolderChange(This,pfd) (This)->lpVtbl->OnFolderChange(This,pfd)
   25286 #define IFileDialogEvents_OnSelectionChange(This,pfd) (This)->lpVtbl->OnSelectionChange(This,pfd)
   25287 #define IFileDialogEvents_OnShareViolation(This,pfd,psi,pResponse) (This)->lpVtbl->OnShareViolation(This,pfd,psi,pResponse)
   25288 #define IFileDialogEvents_OnTypeChange(This,pfd) (This)->lpVtbl->OnTypeChange(This,pfd)
   25289 #define IFileDialogEvents_OnOverwrite(This,pfd,psi,pResponse) (This)->lpVtbl->OnOverwrite(This,pfd,psi,pResponse)
   25290 #else
   25291 /*** IUnknown methods ***/
   25292 static FORCEINLINE HRESULT IFileDialogEvents_QueryInterface(IFileDialogEvents* This,REFIID riid,void **ppvObject) {
   25293     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   25294 }
   25295 static FORCEINLINE ULONG IFileDialogEvents_AddRef(IFileDialogEvents* This) {
   25296     return This->lpVtbl->AddRef(This);
   25297 }
   25298 static FORCEINLINE ULONG IFileDialogEvents_Release(IFileDialogEvents* This) {
   25299     return This->lpVtbl->Release(This);
   25300 }
   25301 /*** IFileDialogEvents methods ***/
   25302 static FORCEINLINE HRESULT IFileDialogEvents_OnFileOk(IFileDialogEvents* This,IFileDialog *pfd) {
   25303     return This->lpVtbl->OnFileOk(This,pfd);
   25304 }
   25305 static FORCEINLINE HRESULT IFileDialogEvents_OnFolderChanging(IFileDialogEvents* This,IFileDialog *pfd,IShellItem *psiFolder) {
   25306     return This->lpVtbl->OnFolderChanging(This,pfd,psiFolder);
   25307 }
   25308 static FORCEINLINE HRESULT IFileDialogEvents_OnFolderChange(IFileDialogEvents* This,IFileDialog *pfd) {
   25309     return This->lpVtbl->OnFolderChange(This,pfd);
   25310 }
   25311 static FORCEINLINE HRESULT IFileDialogEvents_OnSelectionChange(IFileDialogEvents* This,IFileDialog *pfd) {
   25312     return This->lpVtbl->OnSelectionChange(This,pfd);
   25313 }
   25314 static FORCEINLINE HRESULT IFileDialogEvents_OnShareViolation(IFileDialogEvents* This,IFileDialog *pfd,IShellItem *psi,FDE_SHAREVIOLATION_RESPONSE *pResponse) {
   25315     return This->lpVtbl->OnShareViolation(This,pfd,psi,pResponse);
   25316 }
   25317 static FORCEINLINE HRESULT IFileDialogEvents_OnTypeChange(IFileDialogEvents* This,IFileDialog *pfd) {
   25318     return This->lpVtbl->OnTypeChange(This,pfd);
   25319 }
   25320 static FORCEINLINE HRESULT IFileDialogEvents_OnOverwrite(IFileDialogEvents* This,IFileDialog *pfd,IShellItem *psi,FDE_OVERWRITE_RESPONSE *pResponse) {
   25321     return This->lpVtbl->OnOverwrite(This,pfd,psi,pResponse);
   25322 }
   25323 #endif
   25324 #endif
   25325 
   25326 #endif
   25327 
   25328 HRESULT STDMETHODCALLTYPE IFileDialogEvents_OnFileOk_Proxy(
   25329     IFileDialogEvents* This,
   25330     IFileDialog *pfd);
   25331 void __RPC_STUB IFileDialogEvents_OnFileOk_Stub(
   25332     IRpcStubBuffer* This,
   25333     IRpcChannelBuffer* pRpcChannelBuffer,
   25334     PRPC_MESSAGE pRpcMessage,
   25335     DWORD* pdwStubPhase);
   25336 HRESULT STDMETHODCALLTYPE IFileDialogEvents_OnFolderChanging_Proxy(
   25337     IFileDialogEvents* This,
   25338     IFileDialog *pfd,
   25339     IShellItem *psiFolder);
   25340 void __RPC_STUB IFileDialogEvents_OnFolderChanging_Stub(
   25341     IRpcStubBuffer* This,
   25342     IRpcChannelBuffer* pRpcChannelBuffer,
   25343     PRPC_MESSAGE pRpcMessage,
   25344     DWORD* pdwStubPhase);
   25345 HRESULT STDMETHODCALLTYPE IFileDialogEvents_OnFolderChange_Proxy(
   25346     IFileDialogEvents* This,
   25347     IFileDialog *pfd);
   25348 void __RPC_STUB IFileDialogEvents_OnFolderChange_Stub(
   25349     IRpcStubBuffer* This,
   25350     IRpcChannelBuffer* pRpcChannelBuffer,
   25351     PRPC_MESSAGE pRpcMessage,
   25352     DWORD* pdwStubPhase);
   25353 HRESULT STDMETHODCALLTYPE IFileDialogEvents_OnSelectionChange_Proxy(
   25354     IFileDialogEvents* This,
   25355     IFileDialog *pfd);
   25356 void __RPC_STUB IFileDialogEvents_OnSelectionChange_Stub(
   25357     IRpcStubBuffer* This,
   25358     IRpcChannelBuffer* pRpcChannelBuffer,
   25359     PRPC_MESSAGE pRpcMessage,
   25360     DWORD* pdwStubPhase);
   25361 HRESULT STDMETHODCALLTYPE IFileDialogEvents_OnShareViolation_Proxy(
   25362     IFileDialogEvents* This,
   25363     IFileDialog *pfd,
   25364     IShellItem *psi,
   25365     FDE_SHAREVIOLATION_RESPONSE *pResponse);
   25366 void __RPC_STUB IFileDialogEvents_OnShareViolation_Stub(
   25367     IRpcStubBuffer* This,
   25368     IRpcChannelBuffer* pRpcChannelBuffer,
   25369     PRPC_MESSAGE pRpcMessage,
   25370     DWORD* pdwStubPhase);
   25371 HRESULT STDMETHODCALLTYPE IFileDialogEvents_OnTypeChange_Proxy(
   25372     IFileDialogEvents* This,
   25373     IFileDialog *pfd);
   25374 void __RPC_STUB IFileDialogEvents_OnTypeChange_Stub(
   25375     IRpcStubBuffer* This,
   25376     IRpcChannelBuffer* pRpcChannelBuffer,
   25377     PRPC_MESSAGE pRpcMessage,
   25378     DWORD* pdwStubPhase);
   25379 HRESULT STDMETHODCALLTYPE IFileDialogEvents_OnOverwrite_Proxy(
   25380     IFileDialogEvents* This,
   25381     IFileDialog *pfd,
   25382     IShellItem *psi,
   25383     FDE_OVERWRITE_RESPONSE *pResponse);
   25384 void __RPC_STUB IFileDialogEvents_OnOverwrite_Stub(
   25385     IRpcStubBuffer* This,
   25386     IRpcChannelBuffer* pRpcChannelBuffer,
   25387     PRPC_MESSAGE pRpcMessage,
   25388     DWORD* pdwStubPhase);
   25389 
   25390 #endif  /* __IFileDialogEvents_INTERFACE_DEFINED__ */
   25391 
   25392 
   25393 #ifndef __IShellItemFilter_FWD_DEFINED__
   25394 #define __IShellItemFilter_FWD_DEFINED__
   25395 typedef interface IShellItemFilter IShellItemFilter;
   25396 #endif
   25397 
   25398 
   25399 /*****************************************************************************
   25400  * IFileDialog interface
   25401  */
   25402 #ifndef __IFileDialog_INTERFACE_DEFINED__
   25403 #define __IFileDialog_INTERFACE_DEFINED__
   25404 
   25405 enum _FILEOPENDIALOGOPTIONS {
   25406     FOS_OVERWRITEPROMPT = 0x2,
   25407     FOS_STRICTFILETYPES = 0x4,
   25408     FOS_NOCHANGEDIR = 0x8,
   25409     FOS_PICKFOLDERS = 0x20,
   25410     FOS_FORCEFILESYSTEM = 0x40,
   25411     FOS_ALLNONSTORAGEITEMS = 0x80,
   25412     FOS_NOVALIDATE = 0x100,
   25413     FOS_ALLOWMULTISELECT = 0x200,
   25414     FOS_PATHMUSTEXIST = 0x800,
   25415     FOS_FILEMUSTEXIST = 0x1000,
   25416     FOS_CREATEPROMPT = 0x2000,
   25417     FOS_SHAREAWARE = 0x4000,
   25418     FOS_NOREADONLYRETURN = 0x8000,
   25419     FOS_NOTESTFILECREATE = 0x10000,
   25420     FOS_HIDEMRUPLACES = 0x20000,
   25421     FOS_HIDEPINNEDPLACES = 0x40000,
   25422     FOS_NODEREFERENCELINKS = 0x100000,
   25423     FOS_DONTADDTORECENT = 0x2000000,
   25424     FOS_FORCESHOWHIDDEN = 0x10000000,
   25425     FOS_DEFAULTNOMINIMODE = 0x20000000,
   25426     FOS_FORCEPREVIEWPANEON = 0x40000000
   25427 };
   25428 
   25429 
   25430 typedef DWORD FILEOPENDIALOGOPTIONS;
   25431 
   25432 DEFINE_GUID(IID_IFileDialog, 0x42f85136, 0xdb7e, 0x439c, 0x85,0xf1, 0xe4,0x07,0x5d,0x13,0x5f,0xc8);
   25433 #if defined(__cplusplus) && !defined(CINTERFACE)
   25434 MIDL_INTERFACE("42f85136-db7e-439c-85f1-e4075d135fc8")
   25435 IFileDialog : public IModalWindow
   25436 {
   25437     virtual HRESULT STDMETHODCALLTYPE SetFileTypes(
   25438         UINT cFileTypes,
   25439         const COMDLG_FILTERSPEC *rgFilterSpec) = 0;
   25440 
   25441     virtual HRESULT STDMETHODCALLTYPE SetFileTypeIndex(
   25442         UINT iFileType) = 0;
   25443 
   25444     virtual HRESULT STDMETHODCALLTYPE GetFileTypeIndex(
   25445         UINT *piFileType) = 0;
   25446 
   25447     virtual HRESULT STDMETHODCALLTYPE Advise(
   25448         IFileDialogEvents *pfde,
   25449         DWORD *pdwCookie) = 0;
   25450 
   25451     virtual HRESULT STDMETHODCALLTYPE Unadvise(
   25452         DWORD dwCookie) = 0;
   25453 
   25454     virtual HRESULT STDMETHODCALLTYPE SetOptions(
   25455         FILEOPENDIALOGOPTIONS fos) = 0;
   25456 
   25457     virtual HRESULT STDMETHODCALLTYPE GetOptions(
   25458         FILEOPENDIALOGOPTIONS *pfos) = 0;
   25459 
   25460     virtual HRESULT STDMETHODCALLTYPE SetDefaultFolder(
   25461         IShellItem *psi) = 0;
   25462 
   25463     virtual HRESULT STDMETHODCALLTYPE SetFolder(
   25464         IShellItem *psi) = 0;
   25465 
   25466     virtual HRESULT STDMETHODCALLTYPE GetFolder(
   25467         IShellItem **ppsi) = 0;
   25468 
   25469     virtual HRESULT STDMETHODCALLTYPE GetCurrentSelection(
   25470         IShellItem **ppsi) = 0;
   25471 
   25472     virtual HRESULT STDMETHODCALLTYPE SetFileName(
   25473         LPCWSTR pszName) = 0;
   25474 
   25475     virtual HRESULT STDMETHODCALLTYPE GetFileName(
   25476         LPWSTR *pszName) = 0;
   25477 
   25478     virtual HRESULT STDMETHODCALLTYPE SetTitle(
   25479         LPCWSTR pszTitle) = 0;
   25480 
   25481     virtual HRESULT STDMETHODCALLTYPE SetOkButtonLabel(
   25482         LPCWSTR pszText) = 0;
   25483 
   25484     virtual HRESULT STDMETHODCALLTYPE SetFileNameLabel(
   25485         LPCWSTR pszLabel) = 0;
   25486 
   25487     virtual HRESULT STDMETHODCALLTYPE GetResult(
   25488         IShellItem **ppsi) = 0;
   25489 
   25490     virtual HRESULT STDMETHODCALLTYPE AddPlace(
   25491         IShellItem *psi,
   25492         FDAP fdap) = 0;
   25493 
   25494     virtual HRESULT STDMETHODCALLTYPE SetDefaultExtension(
   25495         LPCWSTR pszDefaultExtension) = 0;
   25496 
   25497     virtual HRESULT STDMETHODCALLTYPE Close(
   25498         HRESULT hr) = 0;
   25499 
   25500     virtual HRESULT STDMETHODCALLTYPE SetClientGuid(
   25501         REFGUID guid) = 0;
   25502 
   25503     virtual HRESULT STDMETHODCALLTYPE ClearClientData(
   25504         ) = 0;
   25505 
   25506     virtual HRESULT STDMETHODCALLTYPE SetFilter(
   25507         IShellItemFilter *pFilter) = 0;
   25508 
   25509 };
   25510 #ifdef __CRT_UUID_DECL
   25511 __CRT_UUID_DECL(IFileDialog, 0x42f85136, 0xdb7e, 0x439c, 0x85,0xf1, 0xe4,0x07,0x5d,0x13,0x5f,0xc8)
   25512 #endif
   25513 #else
   25514 typedef struct IFileDialogVtbl {
   25515     BEGIN_INTERFACE
   25516 
   25517     /*** IUnknown methods ***/
   25518     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   25519         IFileDialog* This,
   25520         REFIID riid,
   25521         void **ppvObject);
   25522 
   25523     ULONG (STDMETHODCALLTYPE *AddRef)(
   25524         IFileDialog* This);
   25525 
   25526     ULONG (STDMETHODCALLTYPE *Release)(
   25527         IFileDialog* This);
   25528 
   25529     /*** IModalWindow methods ***/
   25530     HRESULT (STDMETHODCALLTYPE *Show)(
   25531         IFileDialog* This,
   25532         HWND hwndOwner);
   25533 
   25534     /*** IFileDialog methods ***/
   25535     HRESULT (STDMETHODCALLTYPE *SetFileTypes)(
   25536         IFileDialog* This,
   25537         UINT cFileTypes,
   25538         const COMDLG_FILTERSPEC *rgFilterSpec);
   25539 
   25540     HRESULT (STDMETHODCALLTYPE *SetFileTypeIndex)(
   25541         IFileDialog* This,
   25542         UINT iFileType);
   25543 
   25544     HRESULT (STDMETHODCALLTYPE *GetFileTypeIndex)(
   25545         IFileDialog* This,
   25546         UINT *piFileType);
   25547 
   25548     HRESULT (STDMETHODCALLTYPE *Advise)(
   25549         IFileDialog* This,
   25550         IFileDialogEvents *pfde,
   25551         DWORD *pdwCookie);
   25552 
   25553     HRESULT (STDMETHODCALLTYPE *Unadvise)(
   25554         IFileDialog* This,
   25555         DWORD dwCookie);
   25556 
   25557     HRESULT (STDMETHODCALLTYPE *SetOptions)(
   25558         IFileDialog* This,
   25559         FILEOPENDIALOGOPTIONS fos);
   25560 
   25561     HRESULT (STDMETHODCALLTYPE *GetOptions)(
   25562         IFileDialog* This,
   25563         FILEOPENDIALOGOPTIONS *pfos);
   25564 
   25565     HRESULT (STDMETHODCALLTYPE *SetDefaultFolder)(
   25566         IFileDialog* This,
   25567         IShellItem *psi);
   25568 
   25569     HRESULT (STDMETHODCALLTYPE *SetFolder)(
   25570         IFileDialog* This,
   25571         IShellItem *psi);
   25572 
   25573     HRESULT (STDMETHODCALLTYPE *GetFolder)(
   25574         IFileDialog* This,
   25575         IShellItem **ppsi);
   25576 
   25577     HRESULT (STDMETHODCALLTYPE *GetCurrentSelection)(
   25578         IFileDialog* This,
   25579         IShellItem **ppsi);
   25580 
   25581     HRESULT (STDMETHODCALLTYPE *SetFileName)(
   25582         IFileDialog* This,
   25583         LPCWSTR pszName);
   25584 
   25585     HRESULT (STDMETHODCALLTYPE *GetFileName)(
   25586         IFileDialog* This,
   25587         LPWSTR *pszName);
   25588 
   25589     HRESULT (STDMETHODCALLTYPE *SetTitle)(
   25590         IFileDialog* This,
   25591         LPCWSTR pszTitle);
   25592 
   25593     HRESULT (STDMETHODCALLTYPE *SetOkButtonLabel)(
   25594         IFileDialog* This,
   25595         LPCWSTR pszText);
   25596 
   25597     HRESULT (STDMETHODCALLTYPE *SetFileNameLabel)(
   25598         IFileDialog* This,
   25599         LPCWSTR pszLabel);
   25600 
   25601     HRESULT (STDMETHODCALLTYPE *GetResult)(
   25602         IFileDialog* This,
   25603         IShellItem **ppsi);
   25604 
   25605     HRESULT (STDMETHODCALLTYPE *AddPlace)(
   25606         IFileDialog* This,
   25607         IShellItem *psi,
   25608         FDAP fdap);
   25609 
   25610     HRESULT (STDMETHODCALLTYPE *SetDefaultExtension)(
   25611         IFileDialog* This,
   25612         LPCWSTR pszDefaultExtension);
   25613 
   25614     HRESULT (STDMETHODCALLTYPE *Close)(
   25615         IFileDialog* This,
   25616         HRESULT hr);
   25617 
   25618     HRESULT (STDMETHODCALLTYPE *SetClientGuid)(
   25619         IFileDialog* This,
   25620         REFGUID guid);
   25621 
   25622     HRESULT (STDMETHODCALLTYPE *ClearClientData)(
   25623         IFileDialog* This);
   25624 
   25625     HRESULT (STDMETHODCALLTYPE *SetFilter)(
   25626         IFileDialog* This,
   25627         IShellItemFilter *pFilter);
   25628 
   25629     END_INTERFACE
   25630 } IFileDialogVtbl;
   25631 interface IFileDialog {
   25632     CONST_VTBL IFileDialogVtbl* lpVtbl;
   25633 };
   25634 
   25635 #ifdef COBJMACROS
   25636 #ifndef WIDL_C_INLINE_WRAPPERS
   25637 /*** IUnknown methods ***/
   25638 #define IFileDialog_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   25639 #define IFileDialog_AddRef(This) (This)->lpVtbl->AddRef(This)
   25640 #define IFileDialog_Release(This) (This)->lpVtbl->Release(This)
   25641 /*** IModalWindow methods ***/
   25642 #define IFileDialog_Show(This,hwndOwner) (This)->lpVtbl->Show(This,hwndOwner)
   25643 /*** IFileDialog methods ***/
   25644 #define IFileDialog_SetFileTypes(This,cFileTypes,rgFilterSpec) (This)->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec)
   25645 #define IFileDialog_SetFileTypeIndex(This,iFileType) (This)->lpVtbl->SetFileTypeIndex(This,iFileType)
   25646 #define IFileDialog_GetFileTypeIndex(This,piFileType) (This)->lpVtbl->GetFileTypeIndex(This,piFileType)
   25647 #define IFileDialog_Advise(This,pfde,pdwCookie) (This)->lpVtbl->Advise(This,pfde,pdwCookie)
   25648 #define IFileDialog_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
   25649 #define IFileDialog_SetOptions(This,fos) (This)->lpVtbl->SetOptions(This,fos)
   25650 #define IFileDialog_GetOptions(This,pfos) (This)->lpVtbl->GetOptions(This,pfos)
   25651 #define IFileDialog_SetDefaultFolder(This,psi) (This)->lpVtbl->SetDefaultFolder(This,psi)
   25652 #define IFileDialog_SetFolder(This,psi) (This)->lpVtbl->SetFolder(This,psi)
   25653 #define IFileDialog_GetFolder(This,ppsi) (This)->lpVtbl->GetFolder(This,ppsi)
   25654 #define IFileDialog_GetCurrentSelection(This,ppsi) (This)->lpVtbl->GetCurrentSelection(This,ppsi)
   25655 #define IFileDialog_SetFileName(This,pszName) (This)->lpVtbl->SetFileName(This,pszName)
   25656 #define IFileDialog_GetFileName(This,pszName) (This)->lpVtbl->GetFileName(This,pszName)
   25657 #define IFileDialog_SetTitle(This,pszTitle) (This)->lpVtbl->SetTitle(This,pszTitle)
   25658 #define IFileDialog_SetOkButtonLabel(This,pszText) (This)->lpVtbl->SetOkButtonLabel(This,pszText)
   25659 #define IFileDialog_SetFileNameLabel(This,pszLabel) (This)->lpVtbl->SetFileNameLabel(This,pszLabel)
   25660 #define IFileDialog_GetResult(This,ppsi) (This)->lpVtbl->GetResult(This,ppsi)
   25661 #define IFileDialog_AddPlace(This,psi,fdap) (This)->lpVtbl->AddPlace(This,psi,fdap)
   25662 #define IFileDialog_SetDefaultExtension(This,pszDefaultExtension) (This)->lpVtbl->SetDefaultExtension(This,pszDefaultExtension)
   25663 #define IFileDialog_Close(This,hr) (This)->lpVtbl->Close(This,hr)
   25664 #define IFileDialog_SetClientGuid(This,guid) (This)->lpVtbl->SetClientGuid(This,guid)
   25665 #define IFileDialog_ClearClientData(This) (This)->lpVtbl->ClearClientData(This)
   25666 #define IFileDialog_SetFilter(This,pFilter) (This)->lpVtbl->SetFilter(This,pFilter)
   25667 #else
   25668 /*** IUnknown methods ***/
   25669 static FORCEINLINE HRESULT IFileDialog_QueryInterface(IFileDialog* This,REFIID riid,void **ppvObject) {
   25670     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   25671 }
   25672 static FORCEINLINE ULONG IFileDialog_AddRef(IFileDialog* This) {
   25673     return This->lpVtbl->AddRef(This);
   25674 }
   25675 static FORCEINLINE ULONG IFileDialog_Release(IFileDialog* This) {
   25676     return This->lpVtbl->Release(This);
   25677 }
   25678 /*** IModalWindow methods ***/
   25679 static FORCEINLINE HRESULT IFileDialog_Show(IFileDialog* This,HWND hwndOwner) {
   25680     return This->lpVtbl->Show(This,hwndOwner);
   25681 }
   25682 /*** IFileDialog methods ***/
   25683 static FORCEINLINE HRESULT IFileDialog_SetFileTypes(IFileDialog* This,UINT cFileTypes,const COMDLG_FILTERSPEC *rgFilterSpec) {
   25684     return This->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec);
   25685 }
   25686 static FORCEINLINE HRESULT IFileDialog_SetFileTypeIndex(IFileDialog* This,UINT iFileType) {
   25687     return This->lpVtbl->SetFileTypeIndex(This,iFileType);
   25688 }
   25689 static FORCEINLINE HRESULT IFileDialog_GetFileTypeIndex(IFileDialog* This,UINT *piFileType) {
   25690     return This->lpVtbl->GetFileTypeIndex(This,piFileType);
   25691 }
   25692 static FORCEINLINE HRESULT IFileDialog_Advise(IFileDialog* This,IFileDialogEvents *pfde,DWORD *pdwCookie) {
   25693     return This->lpVtbl->Advise(This,pfde,pdwCookie);
   25694 }
   25695 static FORCEINLINE HRESULT IFileDialog_Unadvise(IFileDialog* This,DWORD dwCookie) {
   25696     return This->lpVtbl->Unadvise(This,dwCookie);
   25697 }
   25698 static FORCEINLINE HRESULT IFileDialog_SetOptions(IFileDialog* This,FILEOPENDIALOGOPTIONS fos) {
   25699     return This->lpVtbl->SetOptions(This,fos);
   25700 }
   25701 static FORCEINLINE HRESULT IFileDialog_GetOptions(IFileDialog* This,FILEOPENDIALOGOPTIONS *pfos) {
   25702     return This->lpVtbl->GetOptions(This,pfos);
   25703 }
   25704 static FORCEINLINE HRESULT IFileDialog_SetDefaultFolder(IFileDialog* This,IShellItem *psi) {
   25705     return This->lpVtbl->SetDefaultFolder(This,psi);
   25706 }
   25707 static FORCEINLINE HRESULT IFileDialog_SetFolder(IFileDialog* This,IShellItem *psi) {
   25708     return This->lpVtbl->SetFolder(This,psi);
   25709 }
   25710 static FORCEINLINE HRESULT IFileDialog_GetFolder(IFileDialog* This,IShellItem **ppsi) {
   25711     return This->lpVtbl->GetFolder(This,ppsi);
   25712 }
   25713 static FORCEINLINE HRESULT IFileDialog_GetCurrentSelection(IFileDialog* This,IShellItem **ppsi) {
   25714     return This->lpVtbl->GetCurrentSelection(This,ppsi);
   25715 }
   25716 static FORCEINLINE HRESULT IFileDialog_SetFileName(IFileDialog* This,LPCWSTR pszName) {
   25717     return This->lpVtbl->SetFileName(This,pszName);
   25718 }
   25719 static FORCEINLINE HRESULT IFileDialog_GetFileName(IFileDialog* This,LPWSTR *pszName) {
   25720     return This->lpVtbl->GetFileName(This,pszName);
   25721 }
   25722 static FORCEINLINE HRESULT IFileDialog_SetTitle(IFileDialog* This,LPCWSTR pszTitle) {
   25723     return This->lpVtbl->SetTitle(This,pszTitle);
   25724 }
   25725 static FORCEINLINE HRESULT IFileDialog_SetOkButtonLabel(IFileDialog* This,LPCWSTR pszText) {
   25726     return This->lpVtbl->SetOkButtonLabel(This,pszText);
   25727 }
   25728 static FORCEINLINE HRESULT IFileDialog_SetFileNameLabel(IFileDialog* This,LPCWSTR pszLabel) {
   25729     return This->lpVtbl->SetFileNameLabel(This,pszLabel);
   25730 }
   25731 static FORCEINLINE HRESULT IFileDialog_GetResult(IFileDialog* This,IShellItem **ppsi) {
   25732     return This->lpVtbl->GetResult(This,ppsi);
   25733 }
   25734 static FORCEINLINE HRESULT IFileDialog_AddPlace(IFileDialog* This,IShellItem *psi,FDAP fdap) {
   25735     return This->lpVtbl->AddPlace(This,psi,fdap);
   25736 }
   25737 static FORCEINLINE HRESULT IFileDialog_SetDefaultExtension(IFileDialog* This,LPCWSTR pszDefaultExtension) {
   25738     return This->lpVtbl->SetDefaultExtension(This,pszDefaultExtension);
   25739 }
   25740 static FORCEINLINE HRESULT IFileDialog_Close(IFileDialog* This,HRESULT hr) {
   25741     return This->lpVtbl->Close(This,hr);
   25742 }
   25743 static FORCEINLINE HRESULT IFileDialog_SetClientGuid(IFileDialog* This,REFGUID guid) {
   25744     return This->lpVtbl->SetClientGuid(This,guid);
   25745 }
   25746 static FORCEINLINE HRESULT IFileDialog_ClearClientData(IFileDialog* This) {
   25747     return This->lpVtbl->ClearClientData(This);
   25748 }
   25749 static FORCEINLINE HRESULT IFileDialog_SetFilter(IFileDialog* This,IShellItemFilter *pFilter) {
   25750     return This->lpVtbl->SetFilter(This,pFilter);
   25751 }
   25752 #endif
   25753 #endif
   25754 
   25755 #endif
   25756 
   25757 HRESULT STDMETHODCALLTYPE IFileDialog_SetFileTypes_Proxy(
   25758     IFileDialog* This,
   25759     UINT cFileTypes,
   25760     const COMDLG_FILTERSPEC *rgFilterSpec);
   25761 void __RPC_STUB IFileDialog_SetFileTypes_Stub(
   25762     IRpcStubBuffer* This,
   25763     IRpcChannelBuffer* pRpcChannelBuffer,
   25764     PRPC_MESSAGE pRpcMessage,
   25765     DWORD* pdwStubPhase);
   25766 HRESULT STDMETHODCALLTYPE IFileDialog_SetFileTypeIndex_Proxy(
   25767     IFileDialog* This,
   25768     UINT iFileType);
   25769 void __RPC_STUB IFileDialog_SetFileTypeIndex_Stub(
   25770     IRpcStubBuffer* This,
   25771     IRpcChannelBuffer* pRpcChannelBuffer,
   25772     PRPC_MESSAGE pRpcMessage,
   25773     DWORD* pdwStubPhase);
   25774 HRESULT STDMETHODCALLTYPE IFileDialog_GetFileTypeIndex_Proxy(
   25775     IFileDialog* This,
   25776     UINT *piFileType);
   25777 void __RPC_STUB IFileDialog_GetFileTypeIndex_Stub(
   25778     IRpcStubBuffer* This,
   25779     IRpcChannelBuffer* pRpcChannelBuffer,
   25780     PRPC_MESSAGE pRpcMessage,
   25781     DWORD* pdwStubPhase);
   25782 HRESULT STDMETHODCALLTYPE IFileDialog_Advise_Proxy(
   25783     IFileDialog* This,
   25784     IFileDialogEvents *pfde,
   25785     DWORD *pdwCookie);
   25786 void __RPC_STUB IFileDialog_Advise_Stub(
   25787     IRpcStubBuffer* This,
   25788     IRpcChannelBuffer* pRpcChannelBuffer,
   25789     PRPC_MESSAGE pRpcMessage,
   25790     DWORD* pdwStubPhase);
   25791 HRESULT STDMETHODCALLTYPE IFileDialog_Unadvise_Proxy(
   25792     IFileDialog* This,
   25793     DWORD dwCookie);
   25794 void __RPC_STUB IFileDialog_Unadvise_Stub(
   25795     IRpcStubBuffer* This,
   25796     IRpcChannelBuffer* pRpcChannelBuffer,
   25797     PRPC_MESSAGE pRpcMessage,
   25798     DWORD* pdwStubPhase);
   25799 HRESULT STDMETHODCALLTYPE IFileDialog_SetOptions_Proxy(
   25800     IFileDialog* This,
   25801     FILEOPENDIALOGOPTIONS fos);
   25802 void __RPC_STUB IFileDialog_SetOptions_Stub(
   25803     IRpcStubBuffer* This,
   25804     IRpcChannelBuffer* pRpcChannelBuffer,
   25805     PRPC_MESSAGE pRpcMessage,
   25806     DWORD* pdwStubPhase);
   25807 HRESULT STDMETHODCALLTYPE IFileDialog_GetOptions_Proxy(
   25808     IFileDialog* This,
   25809     FILEOPENDIALOGOPTIONS *pfos);
   25810 void __RPC_STUB IFileDialog_GetOptions_Stub(
   25811     IRpcStubBuffer* This,
   25812     IRpcChannelBuffer* pRpcChannelBuffer,
   25813     PRPC_MESSAGE pRpcMessage,
   25814     DWORD* pdwStubPhase);
   25815 HRESULT STDMETHODCALLTYPE IFileDialog_SetDefaultFolder_Proxy(
   25816     IFileDialog* This,
   25817     IShellItem *psi);
   25818 void __RPC_STUB IFileDialog_SetDefaultFolder_Stub(
   25819     IRpcStubBuffer* This,
   25820     IRpcChannelBuffer* pRpcChannelBuffer,
   25821     PRPC_MESSAGE pRpcMessage,
   25822     DWORD* pdwStubPhase);
   25823 HRESULT STDMETHODCALLTYPE IFileDialog_SetFolder_Proxy(
   25824     IFileDialog* This,
   25825     IShellItem *psi);
   25826 void __RPC_STUB IFileDialog_SetFolder_Stub(
   25827     IRpcStubBuffer* This,
   25828     IRpcChannelBuffer* pRpcChannelBuffer,
   25829     PRPC_MESSAGE pRpcMessage,
   25830     DWORD* pdwStubPhase);
   25831 HRESULT STDMETHODCALLTYPE IFileDialog_GetFolder_Proxy(
   25832     IFileDialog* This,
   25833     IShellItem **ppsi);
   25834 void __RPC_STUB IFileDialog_GetFolder_Stub(
   25835     IRpcStubBuffer* This,
   25836     IRpcChannelBuffer* pRpcChannelBuffer,
   25837     PRPC_MESSAGE pRpcMessage,
   25838     DWORD* pdwStubPhase);
   25839 HRESULT STDMETHODCALLTYPE IFileDialog_GetCurrentSelection_Proxy(
   25840     IFileDialog* This,
   25841     IShellItem **ppsi);
   25842 void __RPC_STUB IFileDialog_GetCurrentSelection_Stub(
   25843     IRpcStubBuffer* This,
   25844     IRpcChannelBuffer* pRpcChannelBuffer,
   25845     PRPC_MESSAGE pRpcMessage,
   25846     DWORD* pdwStubPhase);
   25847 HRESULT STDMETHODCALLTYPE IFileDialog_SetFileName_Proxy(
   25848     IFileDialog* This,
   25849     LPCWSTR pszName);
   25850 void __RPC_STUB IFileDialog_SetFileName_Stub(
   25851     IRpcStubBuffer* This,
   25852     IRpcChannelBuffer* pRpcChannelBuffer,
   25853     PRPC_MESSAGE pRpcMessage,
   25854     DWORD* pdwStubPhase);
   25855 HRESULT STDMETHODCALLTYPE IFileDialog_GetFileName_Proxy(
   25856     IFileDialog* This,
   25857     LPWSTR *pszName);
   25858 void __RPC_STUB IFileDialog_GetFileName_Stub(
   25859     IRpcStubBuffer* This,
   25860     IRpcChannelBuffer* pRpcChannelBuffer,
   25861     PRPC_MESSAGE pRpcMessage,
   25862     DWORD* pdwStubPhase);
   25863 HRESULT STDMETHODCALLTYPE IFileDialog_SetTitle_Proxy(
   25864     IFileDialog* This,
   25865     LPCWSTR pszTitle);
   25866 void __RPC_STUB IFileDialog_SetTitle_Stub(
   25867     IRpcStubBuffer* This,
   25868     IRpcChannelBuffer* pRpcChannelBuffer,
   25869     PRPC_MESSAGE pRpcMessage,
   25870     DWORD* pdwStubPhase);
   25871 HRESULT STDMETHODCALLTYPE IFileDialog_SetOkButtonLabel_Proxy(
   25872     IFileDialog* This,
   25873     LPCWSTR pszText);
   25874 void __RPC_STUB IFileDialog_SetOkButtonLabel_Stub(
   25875     IRpcStubBuffer* This,
   25876     IRpcChannelBuffer* pRpcChannelBuffer,
   25877     PRPC_MESSAGE pRpcMessage,
   25878     DWORD* pdwStubPhase);
   25879 HRESULT STDMETHODCALLTYPE IFileDialog_SetFileNameLabel_Proxy(
   25880     IFileDialog* This,
   25881     LPCWSTR pszLabel);
   25882 void __RPC_STUB IFileDialog_SetFileNameLabel_Stub(
   25883     IRpcStubBuffer* This,
   25884     IRpcChannelBuffer* pRpcChannelBuffer,
   25885     PRPC_MESSAGE pRpcMessage,
   25886     DWORD* pdwStubPhase);
   25887 HRESULT STDMETHODCALLTYPE IFileDialog_GetResult_Proxy(
   25888     IFileDialog* This,
   25889     IShellItem **ppsi);
   25890 void __RPC_STUB IFileDialog_GetResult_Stub(
   25891     IRpcStubBuffer* This,
   25892     IRpcChannelBuffer* pRpcChannelBuffer,
   25893     PRPC_MESSAGE pRpcMessage,
   25894     DWORD* pdwStubPhase);
   25895 HRESULT STDMETHODCALLTYPE IFileDialog_AddPlace_Proxy(
   25896     IFileDialog* This,
   25897     IShellItem *psi,
   25898     FDAP fdap);
   25899 void __RPC_STUB IFileDialog_AddPlace_Stub(
   25900     IRpcStubBuffer* This,
   25901     IRpcChannelBuffer* pRpcChannelBuffer,
   25902     PRPC_MESSAGE pRpcMessage,
   25903     DWORD* pdwStubPhase);
   25904 HRESULT STDMETHODCALLTYPE IFileDialog_SetDefaultExtension_Proxy(
   25905     IFileDialog* This,
   25906     LPCWSTR pszDefaultExtension);
   25907 void __RPC_STUB IFileDialog_SetDefaultExtension_Stub(
   25908     IRpcStubBuffer* This,
   25909     IRpcChannelBuffer* pRpcChannelBuffer,
   25910     PRPC_MESSAGE pRpcMessage,
   25911     DWORD* pdwStubPhase);
   25912 HRESULT STDMETHODCALLTYPE IFileDialog_Close_Proxy(
   25913     IFileDialog* This,
   25914     HRESULT hr);
   25915 void __RPC_STUB IFileDialog_Close_Stub(
   25916     IRpcStubBuffer* This,
   25917     IRpcChannelBuffer* pRpcChannelBuffer,
   25918     PRPC_MESSAGE pRpcMessage,
   25919     DWORD* pdwStubPhase);
   25920 HRESULT STDMETHODCALLTYPE IFileDialog_SetClientGuid_Proxy(
   25921     IFileDialog* This,
   25922     REFGUID guid);
   25923 void __RPC_STUB IFileDialog_SetClientGuid_Stub(
   25924     IRpcStubBuffer* This,
   25925     IRpcChannelBuffer* pRpcChannelBuffer,
   25926     PRPC_MESSAGE pRpcMessage,
   25927     DWORD* pdwStubPhase);
   25928 HRESULT STDMETHODCALLTYPE IFileDialog_ClearClientData_Proxy(
   25929     IFileDialog* This);
   25930 void __RPC_STUB IFileDialog_ClearClientData_Stub(
   25931     IRpcStubBuffer* This,
   25932     IRpcChannelBuffer* pRpcChannelBuffer,
   25933     PRPC_MESSAGE pRpcMessage,
   25934     DWORD* pdwStubPhase);
   25935 HRESULT STDMETHODCALLTYPE IFileDialog_SetFilter_Proxy(
   25936     IFileDialog* This,
   25937     IShellItemFilter *pFilter);
   25938 void __RPC_STUB IFileDialog_SetFilter_Stub(
   25939     IRpcStubBuffer* This,
   25940     IRpcChannelBuffer* pRpcChannelBuffer,
   25941     PRPC_MESSAGE pRpcMessage,
   25942     DWORD* pdwStubPhase);
   25943 
   25944 #endif  /* __IFileDialog_INTERFACE_DEFINED__ */
   25945 
   25946 
   25947 /*****************************************************************************
   25948  * IFileSaveDialog interface
   25949  */
   25950 #ifndef __IFileSaveDialog_INTERFACE_DEFINED__
   25951 #define __IFileSaveDialog_INTERFACE_DEFINED__
   25952 
   25953 DEFINE_GUID(IID_IFileSaveDialog, 0x84bccd23, 0x5fde, 0x4cdb, 0xae,0xa4, 0xaf,0x64,0xb8,0x3d,0x78,0xab);
   25954 #if defined(__cplusplus) && !defined(CINTERFACE)
   25955 MIDL_INTERFACE("84bccd23-5fde-4cdb-aea4-af64b83d78ab")
   25956 IFileSaveDialog : public IFileDialog
   25957 {
   25958     virtual HRESULT STDMETHODCALLTYPE SetSaveAsItem(
   25959         IShellItem *psi) = 0;
   25960 
   25961     virtual HRESULT STDMETHODCALLTYPE SetProperties(
   25962         IPropertyStore *pStore) = 0;
   25963 
   25964     virtual HRESULT STDMETHODCALLTYPE SetCollectedProperties(
   25965         IPropertyDescriptionList *pList,
   25966         WINBOOL fAppendDefault) = 0;
   25967 
   25968     virtual HRESULT STDMETHODCALLTYPE GetProperties(
   25969         IPropertyStore **ppStore) = 0;
   25970 
   25971     virtual HRESULT STDMETHODCALLTYPE ApplyProperties(
   25972         IShellItem *psi,
   25973         IPropertyStore *pStore,
   25974         HWND hwnd,
   25975         IFileOperationProgressSink *pSink) = 0;
   25976 
   25977 };
   25978 #ifdef __CRT_UUID_DECL
   25979 __CRT_UUID_DECL(IFileSaveDialog, 0x84bccd23, 0x5fde, 0x4cdb, 0xae,0xa4, 0xaf,0x64,0xb8,0x3d,0x78,0xab)
   25980 #endif
   25981 #else
   25982 typedef struct IFileSaveDialogVtbl {
   25983     BEGIN_INTERFACE
   25984 
   25985     /*** IUnknown methods ***/
   25986     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   25987         IFileSaveDialog* This,
   25988         REFIID riid,
   25989         void **ppvObject);
   25990 
   25991     ULONG (STDMETHODCALLTYPE *AddRef)(
   25992         IFileSaveDialog* This);
   25993 
   25994     ULONG (STDMETHODCALLTYPE *Release)(
   25995         IFileSaveDialog* This);
   25996 
   25997     /*** IModalWindow methods ***/
   25998     HRESULT (STDMETHODCALLTYPE *Show)(
   25999         IFileSaveDialog* This,
   26000         HWND hwndOwner);
   26001 
   26002     /*** IFileDialog methods ***/
   26003     HRESULT (STDMETHODCALLTYPE *SetFileTypes)(
   26004         IFileSaveDialog* This,
   26005         UINT cFileTypes,
   26006         const COMDLG_FILTERSPEC *rgFilterSpec);
   26007 
   26008     HRESULT (STDMETHODCALLTYPE *SetFileTypeIndex)(
   26009         IFileSaveDialog* This,
   26010         UINT iFileType);
   26011 
   26012     HRESULT (STDMETHODCALLTYPE *GetFileTypeIndex)(
   26013         IFileSaveDialog* This,
   26014         UINT *piFileType);
   26015 
   26016     HRESULT (STDMETHODCALLTYPE *Advise)(
   26017         IFileSaveDialog* This,
   26018         IFileDialogEvents *pfde,
   26019         DWORD *pdwCookie);
   26020 
   26021     HRESULT (STDMETHODCALLTYPE *Unadvise)(
   26022         IFileSaveDialog* This,
   26023         DWORD dwCookie);
   26024 
   26025     HRESULT (STDMETHODCALLTYPE *SetOptions)(
   26026         IFileSaveDialog* This,
   26027         FILEOPENDIALOGOPTIONS fos);
   26028 
   26029     HRESULT (STDMETHODCALLTYPE *GetOptions)(
   26030         IFileSaveDialog* This,
   26031         FILEOPENDIALOGOPTIONS *pfos);
   26032 
   26033     HRESULT (STDMETHODCALLTYPE *SetDefaultFolder)(
   26034         IFileSaveDialog* This,
   26035         IShellItem *psi);
   26036 
   26037     HRESULT (STDMETHODCALLTYPE *SetFolder)(
   26038         IFileSaveDialog* This,
   26039         IShellItem *psi);
   26040 
   26041     HRESULT (STDMETHODCALLTYPE *GetFolder)(
   26042         IFileSaveDialog* This,
   26043         IShellItem **ppsi);
   26044 
   26045     HRESULT (STDMETHODCALLTYPE *GetCurrentSelection)(
   26046         IFileSaveDialog* This,
   26047         IShellItem **ppsi);
   26048 
   26049     HRESULT (STDMETHODCALLTYPE *SetFileName)(
   26050         IFileSaveDialog* This,
   26051         LPCWSTR pszName);
   26052 
   26053     HRESULT (STDMETHODCALLTYPE *GetFileName)(
   26054         IFileSaveDialog* This,
   26055         LPWSTR *pszName);
   26056 
   26057     HRESULT (STDMETHODCALLTYPE *SetTitle)(
   26058         IFileSaveDialog* This,
   26059         LPCWSTR pszTitle);
   26060 
   26061     HRESULT (STDMETHODCALLTYPE *SetOkButtonLabel)(
   26062         IFileSaveDialog* This,
   26063         LPCWSTR pszText);
   26064 
   26065     HRESULT (STDMETHODCALLTYPE *SetFileNameLabel)(
   26066         IFileSaveDialog* This,
   26067         LPCWSTR pszLabel);
   26068 
   26069     HRESULT (STDMETHODCALLTYPE *GetResult)(
   26070         IFileSaveDialog* This,
   26071         IShellItem **ppsi);
   26072 
   26073     HRESULT (STDMETHODCALLTYPE *AddPlace)(
   26074         IFileSaveDialog* This,
   26075         IShellItem *psi,
   26076         FDAP fdap);
   26077 
   26078     HRESULT (STDMETHODCALLTYPE *SetDefaultExtension)(
   26079         IFileSaveDialog* This,
   26080         LPCWSTR pszDefaultExtension);
   26081 
   26082     HRESULT (STDMETHODCALLTYPE *Close)(
   26083         IFileSaveDialog* This,
   26084         HRESULT hr);
   26085 
   26086     HRESULT (STDMETHODCALLTYPE *SetClientGuid)(
   26087         IFileSaveDialog* This,
   26088         REFGUID guid);
   26089 
   26090     HRESULT (STDMETHODCALLTYPE *ClearClientData)(
   26091         IFileSaveDialog* This);
   26092 
   26093     HRESULT (STDMETHODCALLTYPE *SetFilter)(
   26094         IFileSaveDialog* This,
   26095         IShellItemFilter *pFilter);
   26096 
   26097     /*** IFileSaveDialog methods ***/
   26098     HRESULT (STDMETHODCALLTYPE *SetSaveAsItem)(
   26099         IFileSaveDialog* This,
   26100         IShellItem *psi);
   26101 
   26102     HRESULT (STDMETHODCALLTYPE *SetProperties)(
   26103         IFileSaveDialog* This,
   26104         IPropertyStore *pStore);
   26105 
   26106     HRESULT (STDMETHODCALLTYPE *SetCollectedProperties)(
   26107         IFileSaveDialog* This,
   26108         IPropertyDescriptionList *pList,
   26109         WINBOOL fAppendDefault);
   26110 
   26111     HRESULT (STDMETHODCALLTYPE *GetProperties)(
   26112         IFileSaveDialog* This,
   26113         IPropertyStore **ppStore);
   26114 
   26115     HRESULT (STDMETHODCALLTYPE *ApplyProperties)(
   26116         IFileSaveDialog* This,
   26117         IShellItem *psi,
   26118         IPropertyStore *pStore,
   26119         HWND hwnd,
   26120         IFileOperationProgressSink *pSink);
   26121 
   26122     END_INTERFACE
   26123 } IFileSaveDialogVtbl;
   26124 interface IFileSaveDialog {
   26125     CONST_VTBL IFileSaveDialogVtbl* lpVtbl;
   26126 };
   26127 
   26128 #ifdef COBJMACROS
   26129 #ifndef WIDL_C_INLINE_WRAPPERS
   26130 /*** IUnknown methods ***/
   26131 #define IFileSaveDialog_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   26132 #define IFileSaveDialog_AddRef(This) (This)->lpVtbl->AddRef(This)
   26133 #define IFileSaveDialog_Release(This) (This)->lpVtbl->Release(This)
   26134 /*** IModalWindow methods ***/
   26135 #define IFileSaveDialog_Show(This,hwndOwner) (This)->lpVtbl->Show(This,hwndOwner)
   26136 /*** IFileDialog methods ***/
   26137 #define IFileSaveDialog_SetFileTypes(This,cFileTypes,rgFilterSpec) (This)->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec)
   26138 #define IFileSaveDialog_SetFileTypeIndex(This,iFileType) (This)->lpVtbl->SetFileTypeIndex(This,iFileType)
   26139 #define IFileSaveDialog_GetFileTypeIndex(This,piFileType) (This)->lpVtbl->GetFileTypeIndex(This,piFileType)
   26140 #define IFileSaveDialog_Advise(This,pfde,pdwCookie) (This)->lpVtbl->Advise(This,pfde,pdwCookie)
   26141 #define IFileSaveDialog_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
   26142 #define IFileSaveDialog_SetOptions(This,fos) (This)->lpVtbl->SetOptions(This,fos)
   26143 #define IFileSaveDialog_GetOptions(This,pfos) (This)->lpVtbl->GetOptions(This,pfos)
   26144 #define IFileSaveDialog_SetDefaultFolder(This,psi) (This)->lpVtbl->SetDefaultFolder(This,psi)
   26145 #define IFileSaveDialog_SetFolder(This,psi) (This)->lpVtbl->SetFolder(This,psi)
   26146 #define IFileSaveDialog_GetFolder(This,ppsi) (This)->lpVtbl->GetFolder(This,ppsi)
   26147 #define IFileSaveDialog_GetCurrentSelection(This,ppsi) (This)->lpVtbl->GetCurrentSelection(This,ppsi)
   26148 #define IFileSaveDialog_SetFileName(This,pszName) (This)->lpVtbl->SetFileName(This,pszName)
   26149 #define IFileSaveDialog_GetFileName(This,pszName) (This)->lpVtbl->GetFileName(This,pszName)
   26150 #define IFileSaveDialog_SetTitle(This,pszTitle) (This)->lpVtbl->SetTitle(This,pszTitle)
   26151 #define IFileSaveDialog_SetOkButtonLabel(This,pszText) (This)->lpVtbl->SetOkButtonLabel(This,pszText)
   26152 #define IFileSaveDialog_SetFileNameLabel(This,pszLabel) (This)->lpVtbl->SetFileNameLabel(This,pszLabel)
   26153 #define IFileSaveDialog_GetResult(This,ppsi) (This)->lpVtbl->GetResult(This,ppsi)
   26154 #define IFileSaveDialog_AddPlace(This,psi,fdap) (This)->lpVtbl->AddPlace(This,psi,fdap)
   26155 #define IFileSaveDialog_SetDefaultExtension(This,pszDefaultExtension) (This)->lpVtbl->SetDefaultExtension(This,pszDefaultExtension)
   26156 #define IFileSaveDialog_Close(This,hr) (This)->lpVtbl->Close(This,hr)
   26157 #define IFileSaveDialog_SetClientGuid(This,guid) (This)->lpVtbl->SetClientGuid(This,guid)
   26158 #define IFileSaveDialog_ClearClientData(This) (This)->lpVtbl->ClearClientData(This)
   26159 #define IFileSaveDialog_SetFilter(This,pFilter) (This)->lpVtbl->SetFilter(This,pFilter)
   26160 /*** IFileSaveDialog methods ***/
   26161 #define IFileSaveDialog_SetSaveAsItem(This,psi) (This)->lpVtbl->SetSaveAsItem(This,psi)
   26162 #define IFileSaveDialog_SetProperties(This,pStore) (This)->lpVtbl->SetProperties(This,pStore)
   26163 #define IFileSaveDialog_SetCollectedProperties(This,pList,fAppendDefault) (This)->lpVtbl->SetCollectedProperties(This,pList,fAppendDefault)
   26164 #define IFileSaveDialog_GetProperties(This,ppStore) (This)->lpVtbl->GetProperties(This,ppStore)
   26165 #define IFileSaveDialog_ApplyProperties(This,psi,pStore,hwnd,pSink) (This)->lpVtbl->ApplyProperties(This,psi,pStore,hwnd,pSink)
   26166 #else
   26167 /*** IUnknown methods ***/
   26168 static FORCEINLINE HRESULT IFileSaveDialog_QueryInterface(IFileSaveDialog* This,REFIID riid,void **ppvObject) {
   26169     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   26170 }
   26171 static FORCEINLINE ULONG IFileSaveDialog_AddRef(IFileSaveDialog* This) {
   26172     return This->lpVtbl->AddRef(This);
   26173 }
   26174 static FORCEINLINE ULONG IFileSaveDialog_Release(IFileSaveDialog* This) {
   26175     return This->lpVtbl->Release(This);
   26176 }
   26177 /*** IModalWindow methods ***/
   26178 static FORCEINLINE HRESULT IFileSaveDialog_Show(IFileSaveDialog* This,HWND hwndOwner) {
   26179     return This->lpVtbl->Show(This,hwndOwner);
   26180 }
   26181 /*** IFileDialog methods ***/
   26182 static FORCEINLINE HRESULT IFileSaveDialog_SetFileTypes(IFileSaveDialog* This,UINT cFileTypes,const COMDLG_FILTERSPEC *rgFilterSpec) {
   26183     return This->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec);
   26184 }
   26185 static FORCEINLINE HRESULT IFileSaveDialog_SetFileTypeIndex(IFileSaveDialog* This,UINT iFileType) {
   26186     return This->lpVtbl->SetFileTypeIndex(This,iFileType);
   26187 }
   26188 static FORCEINLINE HRESULT IFileSaveDialog_GetFileTypeIndex(IFileSaveDialog* This,UINT *piFileType) {
   26189     return This->lpVtbl->GetFileTypeIndex(This,piFileType);
   26190 }
   26191 static FORCEINLINE HRESULT IFileSaveDialog_Advise(IFileSaveDialog* This,IFileDialogEvents *pfde,DWORD *pdwCookie) {
   26192     return This->lpVtbl->Advise(This,pfde,pdwCookie);
   26193 }
   26194 static FORCEINLINE HRESULT IFileSaveDialog_Unadvise(IFileSaveDialog* This,DWORD dwCookie) {
   26195     return This->lpVtbl->Unadvise(This,dwCookie);
   26196 }
   26197 static FORCEINLINE HRESULT IFileSaveDialog_SetOptions(IFileSaveDialog* This,FILEOPENDIALOGOPTIONS fos) {
   26198     return This->lpVtbl->SetOptions(This,fos);
   26199 }
   26200 static FORCEINLINE HRESULT IFileSaveDialog_GetOptions(IFileSaveDialog* This,FILEOPENDIALOGOPTIONS *pfos) {
   26201     return This->lpVtbl->GetOptions(This,pfos);
   26202 }
   26203 static FORCEINLINE HRESULT IFileSaveDialog_SetDefaultFolder(IFileSaveDialog* This,IShellItem *psi) {
   26204     return This->lpVtbl->SetDefaultFolder(This,psi);
   26205 }
   26206 static FORCEINLINE HRESULT IFileSaveDialog_SetFolder(IFileSaveDialog* This,IShellItem *psi) {
   26207     return This->lpVtbl->SetFolder(This,psi);
   26208 }
   26209 static FORCEINLINE HRESULT IFileSaveDialog_GetFolder(IFileSaveDialog* This,IShellItem **ppsi) {
   26210     return This->lpVtbl->GetFolder(This,ppsi);
   26211 }
   26212 static FORCEINLINE HRESULT IFileSaveDialog_GetCurrentSelection(IFileSaveDialog* This,IShellItem **ppsi) {
   26213     return This->lpVtbl->GetCurrentSelection(This,ppsi);
   26214 }
   26215 static FORCEINLINE HRESULT IFileSaveDialog_SetFileName(IFileSaveDialog* This,LPCWSTR pszName) {
   26216     return This->lpVtbl->SetFileName(This,pszName);
   26217 }
   26218 static FORCEINLINE HRESULT IFileSaveDialog_GetFileName(IFileSaveDialog* This,LPWSTR *pszName) {
   26219     return This->lpVtbl->GetFileName(This,pszName);
   26220 }
   26221 static FORCEINLINE HRESULT IFileSaveDialog_SetTitle(IFileSaveDialog* This,LPCWSTR pszTitle) {
   26222     return This->lpVtbl->SetTitle(This,pszTitle);
   26223 }
   26224 static FORCEINLINE HRESULT IFileSaveDialog_SetOkButtonLabel(IFileSaveDialog* This,LPCWSTR pszText) {
   26225     return This->lpVtbl->SetOkButtonLabel(This,pszText);
   26226 }
   26227 static FORCEINLINE HRESULT IFileSaveDialog_SetFileNameLabel(IFileSaveDialog* This,LPCWSTR pszLabel) {
   26228     return This->lpVtbl->SetFileNameLabel(This,pszLabel);
   26229 }
   26230 static FORCEINLINE HRESULT IFileSaveDialog_GetResult(IFileSaveDialog* This,IShellItem **ppsi) {
   26231     return This->lpVtbl->GetResult(This,ppsi);
   26232 }
   26233 static FORCEINLINE HRESULT IFileSaveDialog_AddPlace(IFileSaveDialog* This,IShellItem *psi,FDAP fdap) {
   26234     return This->lpVtbl->AddPlace(This,psi,fdap);
   26235 }
   26236 static FORCEINLINE HRESULT IFileSaveDialog_SetDefaultExtension(IFileSaveDialog* This,LPCWSTR pszDefaultExtension) {
   26237     return This->lpVtbl->SetDefaultExtension(This,pszDefaultExtension);
   26238 }
   26239 static FORCEINLINE HRESULT IFileSaveDialog_Close(IFileSaveDialog* This,HRESULT hr) {
   26240     return This->lpVtbl->Close(This,hr);
   26241 }
   26242 static FORCEINLINE HRESULT IFileSaveDialog_SetClientGuid(IFileSaveDialog* This,REFGUID guid) {
   26243     return This->lpVtbl->SetClientGuid(This,guid);
   26244 }
   26245 static FORCEINLINE HRESULT IFileSaveDialog_ClearClientData(IFileSaveDialog* This) {
   26246     return This->lpVtbl->ClearClientData(This);
   26247 }
   26248 static FORCEINLINE HRESULT IFileSaveDialog_SetFilter(IFileSaveDialog* This,IShellItemFilter *pFilter) {
   26249     return This->lpVtbl->SetFilter(This,pFilter);
   26250 }
   26251 /*** IFileSaveDialog methods ***/
   26252 static FORCEINLINE HRESULT IFileSaveDialog_SetSaveAsItem(IFileSaveDialog* This,IShellItem *psi) {
   26253     return This->lpVtbl->SetSaveAsItem(This,psi);
   26254 }
   26255 static FORCEINLINE HRESULT IFileSaveDialog_SetProperties(IFileSaveDialog* This,IPropertyStore *pStore) {
   26256     return This->lpVtbl->SetProperties(This,pStore);
   26257 }
   26258 static FORCEINLINE HRESULT IFileSaveDialog_SetCollectedProperties(IFileSaveDialog* This,IPropertyDescriptionList *pList,WINBOOL fAppendDefault) {
   26259     return This->lpVtbl->SetCollectedProperties(This,pList,fAppendDefault);
   26260 }
   26261 static FORCEINLINE HRESULT IFileSaveDialog_GetProperties(IFileSaveDialog* This,IPropertyStore **ppStore) {
   26262     return This->lpVtbl->GetProperties(This,ppStore);
   26263 }
   26264 static FORCEINLINE HRESULT IFileSaveDialog_ApplyProperties(IFileSaveDialog* This,IShellItem *psi,IPropertyStore *pStore,HWND hwnd,IFileOperationProgressSink *pSink) {
   26265     return This->lpVtbl->ApplyProperties(This,psi,pStore,hwnd,pSink);
   26266 }
   26267 #endif
   26268 #endif
   26269 
   26270 #endif
   26271 
   26272 HRESULT STDMETHODCALLTYPE IFileSaveDialog_SetSaveAsItem_Proxy(
   26273     IFileSaveDialog* This,
   26274     IShellItem *psi);
   26275 void __RPC_STUB IFileSaveDialog_SetSaveAsItem_Stub(
   26276     IRpcStubBuffer* This,
   26277     IRpcChannelBuffer* pRpcChannelBuffer,
   26278     PRPC_MESSAGE pRpcMessage,
   26279     DWORD* pdwStubPhase);
   26280 HRESULT STDMETHODCALLTYPE IFileSaveDialog_SetProperties_Proxy(
   26281     IFileSaveDialog* This,
   26282     IPropertyStore *pStore);
   26283 void __RPC_STUB IFileSaveDialog_SetProperties_Stub(
   26284     IRpcStubBuffer* This,
   26285     IRpcChannelBuffer* pRpcChannelBuffer,
   26286     PRPC_MESSAGE pRpcMessage,
   26287     DWORD* pdwStubPhase);
   26288 HRESULT STDMETHODCALLTYPE IFileSaveDialog_SetCollectedProperties_Proxy(
   26289     IFileSaveDialog* This,
   26290     IPropertyDescriptionList *pList,
   26291     WINBOOL fAppendDefault);
   26292 void __RPC_STUB IFileSaveDialog_SetCollectedProperties_Stub(
   26293     IRpcStubBuffer* This,
   26294     IRpcChannelBuffer* pRpcChannelBuffer,
   26295     PRPC_MESSAGE pRpcMessage,
   26296     DWORD* pdwStubPhase);
   26297 HRESULT STDMETHODCALLTYPE IFileSaveDialog_GetProperties_Proxy(
   26298     IFileSaveDialog* This,
   26299     IPropertyStore **ppStore);
   26300 void __RPC_STUB IFileSaveDialog_GetProperties_Stub(
   26301     IRpcStubBuffer* This,
   26302     IRpcChannelBuffer* pRpcChannelBuffer,
   26303     PRPC_MESSAGE pRpcMessage,
   26304     DWORD* pdwStubPhase);
   26305 HRESULT STDMETHODCALLTYPE IFileSaveDialog_ApplyProperties_Proxy(
   26306     IFileSaveDialog* This,
   26307     IShellItem *psi,
   26308     IPropertyStore *pStore,
   26309     HWND hwnd,
   26310     IFileOperationProgressSink *pSink);
   26311 void __RPC_STUB IFileSaveDialog_ApplyProperties_Stub(
   26312     IRpcStubBuffer* This,
   26313     IRpcChannelBuffer* pRpcChannelBuffer,
   26314     PRPC_MESSAGE pRpcMessage,
   26315     DWORD* pdwStubPhase);
   26316 
   26317 #endif  /* __IFileSaveDialog_INTERFACE_DEFINED__ */
   26318 
   26319 
   26320 /*****************************************************************************
   26321  * IFileOpenDialog interface
   26322  */
   26323 #ifndef __IFileOpenDialog_INTERFACE_DEFINED__
   26324 #define __IFileOpenDialog_INTERFACE_DEFINED__
   26325 
   26326 DEFINE_GUID(IID_IFileOpenDialog, 0xd57c7288, 0xd4ad, 0x4768, 0xbe,0x02, 0x9d,0x96,0x95,0x32,0xd9,0x60);
   26327 #if defined(__cplusplus) && !defined(CINTERFACE)
   26328 MIDL_INTERFACE("d57c7288-d4ad-4768-be02-9d969532d960")
   26329 IFileOpenDialog : public IFileDialog
   26330 {
   26331     virtual HRESULT STDMETHODCALLTYPE GetResults(
   26332         IShellItemArray **ppenum) = 0;
   26333 
   26334     virtual HRESULT STDMETHODCALLTYPE GetSelectedItems(
   26335         IShellItemArray **ppsai) = 0;
   26336 
   26337 };
   26338 #ifdef __CRT_UUID_DECL
   26339 __CRT_UUID_DECL(IFileOpenDialog, 0xd57c7288, 0xd4ad, 0x4768, 0xbe,0x02, 0x9d,0x96,0x95,0x32,0xd9,0x60)
   26340 #endif
   26341 #else
   26342 typedef struct IFileOpenDialogVtbl {
   26343     BEGIN_INTERFACE
   26344 
   26345     /*** IUnknown methods ***/
   26346     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   26347         IFileOpenDialog* This,
   26348         REFIID riid,
   26349         void **ppvObject);
   26350 
   26351     ULONG (STDMETHODCALLTYPE *AddRef)(
   26352         IFileOpenDialog* This);
   26353 
   26354     ULONG (STDMETHODCALLTYPE *Release)(
   26355         IFileOpenDialog* This);
   26356 
   26357     /*** IModalWindow methods ***/
   26358     HRESULT (STDMETHODCALLTYPE *Show)(
   26359         IFileOpenDialog* This,
   26360         HWND hwndOwner);
   26361 
   26362     /*** IFileDialog methods ***/
   26363     HRESULT (STDMETHODCALLTYPE *SetFileTypes)(
   26364         IFileOpenDialog* This,
   26365         UINT cFileTypes,
   26366         const COMDLG_FILTERSPEC *rgFilterSpec);
   26367 
   26368     HRESULT (STDMETHODCALLTYPE *SetFileTypeIndex)(
   26369         IFileOpenDialog* This,
   26370         UINT iFileType);
   26371 
   26372     HRESULT (STDMETHODCALLTYPE *GetFileTypeIndex)(
   26373         IFileOpenDialog* This,
   26374         UINT *piFileType);
   26375 
   26376     HRESULT (STDMETHODCALLTYPE *Advise)(
   26377         IFileOpenDialog* This,
   26378         IFileDialogEvents *pfde,
   26379         DWORD *pdwCookie);
   26380 
   26381     HRESULT (STDMETHODCALLTYPE *Unadvise)(
   26382         IFileOpenDialog* This,
   26383         DWORD dwCookie);
   26384 
   26385     HRESULT (STDMETHODCALLTYPE *SetOptions)(
   26386         IFileOpenDialog* This,
   26387         FILEOPENDIALOGOPTIONS fos);
   26388 
   26389     HRESULT (STDMETHODCALLTYPE *GetOptions)(
   26390         IFileOpenDialog* This,
   26391         FILEOPENDIALOGOPTIONS *pfos);
   26392 
   26393     HRESULT (STDMETHODCALLTYPE *SetDefaultFolder)(
   26394         IFileOpenDialog* This,
   26395         IShellItem *psi);
   26396 
   26397     HRESULT (STDMETHODCALLTYPE *SetFolder)(
   26398         IFileOpenDialog* This,
   26399         IShellItem *psi);
   26400 
   26401     HRESULT (STDMETHODCALLTYPE *GetFolder)(
   26402         IFileOpenDialog* This,
   26403         IShellItem **ppsi);
   26404 
   26405     HRESULT (STDMETHODCALLTYPE *GetCurrentSelection)(
   26406         IFileOpenDialog* This,
   26407         IShellItem **ppsi);
   26408 
   26409     HRESULT (STDMETHODCALLTYPE *SetFileName)(
   26410         IFileOpenDialog* This,
   26411         LPCWSTR pszName);
   26412 
   26413     HRESULT (STDMETHODCALLTYPE *GetFileName)(
   26414         IFileOpenDialog* This,
   26415         LPWSTR *pszName);
   26416 
   26417     HRESULT (STDMETHODCALLTYPE *SetTitle)(
   26418         IFileOpenDialog* This,
   26419         LPCWSTR pszTitle);
   26420 
   26421     HRESULT (STDMETHODCALLTYPE *SetOkButtonLabel)(
   26422         IFileOpenDialog* This,
   26423         LPCWSTR pszText);
   26424 
   26425     HRESULT (STDMETHODCALLTYPE *SetFileNameLabel)(
   26426         IFileOpenDialog* This,
   26427         LPCWSTR pszLabel);
   26428 
   26429     HRESULT (STDMETHODCALLTYPE *GetResult)(
   26430         IFileOpenDialog* This,
   26431         IShellItem **ppsi);
   26432 
   26433     HRESULT (STDMETHODCALLTYPE *AddPlace)(
   26434         IFileOpenDialog* This,
   26435         IShellItem *psi,
   26436         FDAP fdap);
   26437 
   26438     HRESULT (STDMETHODCALLTYPE *SetDefaultExtension)(
   26439         IFileOpenDialog* This,
   26440         LPCWSTR pszDefaultExtension);
   26441 
   26442     HRESULT (STDMETHODCALLTYPE *Close)(
   26443         IFileOpenDialog* This,
   26444         HRESULT hr);
   26445 
   26446     HRESULT (STDMETHODCALLTYPE *SetClientGuid)(
   26447         IFileOpenDialog* This,
   26448         REFGUID guid);
   26449 
   26450     HRESULT (STDMETHODCALLTYPE *ClearClientData)(
   26451         IFileOpenDialog* This);
   26452 
   26453     HRESULT (STDMETHODCALLTYPE *SetFilter)(
   26454         IFileOpenDialog* This,
   26455         IShellItemFilter *pFilter);
   26456 
   26457     /*** IFileOpenDialog methods ***/
   26458     HRESULT (STDMETHODCALLTYPE *GetResults)(
   26459         IFileOpenDialog* This,
   26460         IShellItemArray **ppenum);
   26461 
   26462     HRESULT (STDMETHODCALLTYPE *GetSelectedItems)(
   26463         IFileOpenDialog* This,
   26464         IShellItemArray **ppsai);
   26465 
   26466     END_INTERFACE
   26467 } IFileOpenDialogVtbl;
   26468 interface IFileOpenDialog {
   26469     CONST_VTBL IFileOpenDialogVtbl* lpVtbl;
   26470 };
   26471 
   26472 #ifdef COBJMACROS
   26473 #ifndef WIDL_C_INLINE_WRAPPERS
   26474 /*** IUnknown methods ***/
   26475 #define IFileOpenDialog_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   26476 #define IFileOpenDialog_AddRef(This) (This)->lpVtbl->AddRef(This)
   26477 #define IFileOpenDialog_Release(This) (This)->lpVtbl->Release(This)
   26478 /*** IModalWindow methods ***/
   26479 #define IFileOpenDialog_Show(This,hwndOwner) (This)->lpVtbl->Show(This,hwndOwner)
   26480 /*** IFileDialog methods ***/
   26481 #define IFileOpenDialog_SetFileTypes(This,cFileTypes,rgFilterSpec) (This)->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec)
   26482 #define IFileOpenDialog_SetFileTypeIndex(This,iFileType) (This)->lpVtbl->SetFileTypeIndex(This,iFileType)
   26483 #define IFileOpenDialog_GetFileTypeIndex(This,piFileType) (This)->lpVtbl->GetFileTypeIndex(This,piFileType)
   26484 #define IFileOpenDialog_Advise(This,pfde,pdwCookie) (This)->lpVtbl->Advise(This,pfde,pdwCookie)
   26485 #define IFileOpenDialog_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
   26486 #define IFileOpenDialog_SetOptions(This,fos) (This)->lpVtbl->SetOptions(This,fos)
   26487 #define IFileOpenDialog_GetOptions(This,pfos) (This)->lpVtbl->GetOptions(This,pfos)
   26488 #define IFileOpenDialog_SetDefaultFolder(This,psi) (This)->lpVtbl->SetDefaultFolder(This,psi)
   26489 #define IFileOpenDialog_SetFolder(This,psi) (This)->lpVtbl->SetFolder(This,psi)
   26490 #define IFileOpenDialog_GetFolder(This,ppsi) (This)->lpVtbl->GetFolder(This,ppsi)
   26491 #define IFileOpenDialog_GetCurrentSelection(This,ppsi) (This)->lpVtbl->GetCurrentSelection(This,ppsi)
   26492 #define IFileOpenDialog_SetFileName(This,pszName) (This)->lpVtbl->SetFileName(This,pszName)
   26493 #define IFileOpenDialog_GetFileName(This,pszName) (This)->lpVtbl->GetFileName(This,pszName)
   26494 #define IFileOpenDialog_SetTitle(This,pszTitle) (This)->lpVtbl->SetTitle(This,pszTitle)
   26495 #define IFileOpenDialog_SetOkButtonLabel(This,pszText) (This)->lpVtbl->SetOkButtonLabel(This,pszText)
   26496 #define IFileOpenDialog_SetFileNameLabel(This,pszLabel) (This)->lpVtbl->SetFileNameLabel(This,pszLabel)
   26497 #define IFileOpenDialog_GetResult(This,ppsi) (This)->lpVtbl->GetResult(This,ppsi)
   26498 #define IFileOpenDialog_AddPlace(This,psi,fdap) (This)->lpVtbl->AddPlace(This,psi,fdap)
   26499 #define IFileOpenDialog_SetDefaultExtension(This,pszDefaultExtension) (This)->lpVtbl->SetDefaultExtension(This,pszDefaultExtension)
   26500 #define IFileOpenDialog_Close(This,hr) (This)->lpVtbl->Close(This,hr)
   26501 #define IFileOpenDialog_SetClientGuid(This,guid) (This)->lpVtbl->SetClientGuid(This,guid)
   26502 #define IFileOpenDialog_ClearClientData(This) (This)->lpVtbl->ClearClientData(This)
   26503 #define IFileOpenDialog_SetFilter(This,pFilter) (This)->lpVtbl->SetFilter(This,pFilter)
   26504 /*** IFileOpenDialog methods ***/
   26505 #define IFileOpenDialog_GetResults(This,ppenum) (This)->lpVtbl->GetResults(This,ppenum)
   26506 #define IFileOpenDialog_GetSelectedItems(This,ppsai) (This)->lpVtbl->GetSelectedItems(This,ppsai)
   26507 #else
   26508 /*** IUnknown methods ***/
   26509 static FORCEINLINE HRESULT IFileOpenDialog_QueryInterface(IFileOpenDialog* This,REFIID riid,void **ppvObject) {
   26510     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   26511 }
   26512 static FORCEINLINE ULONG IFileOpenDialog_AddRef(IFileOpenDialog* This) {
   26513     return This->lpVtbl->AddRef(This);
   26514 }
   26515 static FORCEINLINE ULONG IFileOpenDialog_Release(IFileOpenDialog* This) {
   26516     return This->lpVtbl->Release(This);
   26517 }
   26518 /*** IModalWindow methods ***/
   26519 static FORCEINLINE HRESULT IFileOpenDialog_Show(IFileOpenDialog* This,HWND hwndOwner) {
   26520     return This->lpVtbl->Show(This,hwndOwner);
   26521 }
   26522 /*** IFileDialog methods ***/
   26523 static FORCEINLINE HRESULT IFileOpenDialog_SetFileTypes(IFileOpenDialog* This,UINT cFileTypes,const COMDLG_FILTERSPEC *rgFilterSpec) {
   26524     return This->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec);
   26525 }
   26526 static FORCEINLINE HRESULT IFileOpenDialog_SetFileTypeIndex(IFileOpenDialog* This,UINT iFileType) {
   26527     return This->lpVtbl->SetFileTypeIndex(This,iFileType);
   26528 }
   26529 static FORCEINLINE HRESULT IFileOpenDialog_GetFileTypeIndex(IFileOpenDialog* This,UINT *piFileType) {
   26530     return This->lpVtbl->GetFileTypeIndex(This,piFileType);
   26531 }
   26532 static FORCEINLINE HRESULT IFileOpenDialog_Advise(IFileOpenDialog* This,IFileDialogEvents *pfde,DWORD *pdwCookie) {
   26533     return This->lpVtbl->Advise(This,pfde,pdwCookie);
   26534 }
   26535 static FORCEINLINE HRESULT IFileOpenDialog_Unadvise(IFileOpenDialog* This,DWORD dwCookie) {
   26536     return This->lpVtbl->Unadvise(This,dwCookie);
   26537 }
   26538 static FORCEINLINE HRESULT IFileOpenDialog_SetOptions(IFileOpenDialog* This,FILEOPENDIALOGOPTIONS fos) {
   26539     return This->lpVtbl->SetOptions(This,fos);
   26540 }
   26541 static FORCEINLINE HRESULT IFileOpenDialog_GetOptions(IFileOpenDialog* This,FILEOPENDIALOGOPTIONS *pfos) {
   26542     return This->lpVtbl->GetOptions(This,pfos);
   26543 }
   26544 static FORCEINLINE HRESULT IFileOpenDialog_SetDefaultFolder(IFileOpenDialog* This,IShellItem *psi) {
   26545     return This->lpVtbl->SetDefaultFolder(This,psi);
   26546 }
   26547 static FORCEINLINE HRESULT IFileOpenDialog_SetFolder(IFileOpenDialog* This,IShellItem *psi) {
   26548     return This->lpVtbl->SetFolder(This,psi);
   26549 }
   26550 static FORCEINLINE HRESULT IFileOpenDialog_GetFolder(IFileOpenDialog* This,IShellItem **ppsi) {
   26551     return This->lpVtbl->GetFolder(This,ppsi);
   26552 }
   26553 static FORCEINLINE HRESULT IFileOpenDialog_GetCurrentSelection(IFileOpenDialog* This,IShellItem **ppsi) {
   26554     return This->lpVtbl->GetCurrentSelection(This,ppsi);
   26555 }
   26556 static FORCEINLINE HRESULT IFileOpenDialog_SetFileName(IFileOpenDialog* This,LPCWSTR pszName) {
   26557     return This->lpVtbl->SetFileName(This,pszName);
   26558 }
   26559 static FORCEINLINE HRESULT IFileOpenDialog_GetFileName(IFileOpenDialog* This,LPWSTR *pszName) {
   26560     return This->lpVtbl->GetFileName(This,pszName);
   26561 }
   26562 static FORCEINLINE HRESULT IFileOpenDialog_SetTitle(IFileOpenDialog* This,LPCWSTR pszTitle) {
   26563     return This->lpVtbl->SetTitle(This,pszTitle);
   26564 }
   26565 static FORCEINLINE HRESULT IFileOpenDialog_SetOkButtonLabel(IFileOpenDialog* This,LPCWSTR pszText) {
   26566     return This->lpVtbl->SetOkButtonLabel(This,pszText);
   26567 }
   26568 static FORCEINLINE HRESULT IFileOpenDialog_SetFileNameLabel(IFileOpenDialog* This,LPCWSTR pszLabel) {
   26569     return This->lpVtbl->SetFileNameLabel(This,pszLabel);
   26570 }
   26571 static FORCEINLINE HRESULT IFileOpenDialog_GetResult(IFileOpenDialog* This,IShellItem **ppsi) {
   26572     return This->lpVtbl->GetResult(This,ppsi);
   26573 }
   26574 static FORCEINLINE HRESULT IFileOpenDialog_AddPlace(IFileOpenDialog* This,IShellItem *psi,FDAP fdap) {
   26575     return This->lpVtbl->AddPlace(This,psi,fdap);
   26576 }
   26577 static FORCEINLINE HRESULT IFileOpenDialog_SetDefaultExtension(IFileOpenDialog* This,LPCWSTR pszDefaultExtension) {
   26578     return This->lpVtbl->SetDefaultExtension(This,pszDefaultExtension);
   26579 }
   26580 static FORCEINLINE HRESULT IFileOpenDialog_Close(IFileOpenDialog* This,HRESULT hr) {
   26581     return This->lpVtbl->Close(This,hr);
   26582 }
   26583 static FORCEINLINE HRESULT IFileOpenDialog_SetClientGuid(IFileOpenDialog* This,REFGUID guid) {
   26584     return This->lpVtbl->SetClientGuid(This,guid);
   26585 }
   26586 static FORCEINLINE HRESULT IFileOpenDialog_ClearClientData(IFileOpenDialog* This) {
   26587     return This->lpVtbl->ClearClientData(This);
   26588 }
   26589 static FORCEINLINE HRESULT IFileOpenDialog_SetFilter(IFileOpenDialog* This,IShellItemFilter *pFilter) {
   26590     return This->lpVtbl->SetFilter(This,pFilter);
   26591 }
   26592 /*** IFileOpenDialog methods ***/
   26593 static FORCEINLINE HRESULT IFileOpenDialog_GetResults(IFileOpenDialog* This,IShellItemArray **ppenum) {
   26594     return This->lpVtbl->GetResults(This,ppenum);
   26595 }
   26596 static FORCEINLINE HRESULT IFileOpenDialog_GetSelectedItems(IFileOpenDialog* This,IShellItemArray **ppsai) {
   26597     return This->lpVtbl->GetSelectedItems(This,ppsai);
   26598 }
   26599 #endif
   26600 #endif
   26601 
   26602 #endif
   26603 
   26604 HRESULT STDMETHODCALLTYPE IFileOpenDialog_GetResults_Proxy(
   26605     IFileOpenDialog* This,
   26606     IShellItemArray **ppenum);
   26607 void __RPC_STUB IFileOpenDialog_GetResults_Stub(
   26608     IRpcStubBuffer* This,
   26609     IRpcChannelBuffer* pRpcChannelBuffer,
   26610     PRPC_MESSAGE pRpcMessage,
   26611     DWORD* pdwStubPhase);
   26612 HRESULT STDMETHODCALLTYPE IFileOpenDialog_GetSelectedItems_Proxy(
   26613     IFileOpenDialog* This,
   26614     IShellItemArray **ppsai);
   26615 void __RPC_STUB IFileOpenDialog_GetSelectedItems_Stub(
   26616     IRpcStubBuffer* This,
   26617     IRpcChannelBuffer* pRpcChannelBuffer,
   26618     PRPC_MESSAGE pRpcMessage,
   26619     DWORD* pdwStubPhase);
   26620 
   26621 #endif  /* __IFileOpenDialog_INTERFACE_DEFINED__ */
   26622 
   26623 
   26624 typedef enum CDCONTROLSTATEF {
   26625     CDCS_INACTIVE = 0x0,
   26626     CDCS_ENABLED = 0x1,
   26627     CDCS_VISIBLE = 0x2,
   26628     CDCS_ENABLEDVISIBLE = 0x3
   26629 } CDCONTROLSTATEF;
   26630 
   26631 DEFINE_ENUM_FLAG_OPERATORS(CDCONTROLSTATEF)
   26632 
   26633 /*****************************************************************************
   26634  * IFileDialogCustomize interface
   26635  */
   26636 #ifndef __IFileDialogCustomize_INTERFACE_DEFINED__
   26637 #define __IFileDialogCustomize_INTERFACE_DEFINED__
   26638 
   26639 DEFINE_GUID(IID_IFileDialogCustomize, 0xe6fdd21a, 0x163f, 0x4975, 0x9c,0x8c, 0xa6,0x9f,0x1b,0xa3,0x70,0x34);
   26640 #if defined(__cplusplus) && !defined(CINTERFACE)
   26641 MIDL_INTERFACE("e6fdd21a-163f-4975-9c8c-a69f1ba37034")
   26642 IFileDialogCustomize : public IUnknown
   26643 {
   26644     virtual HRESULT STDMETHODCALLTYPE EnableOpenDropDown(
   26645         DWORD dwIDCtl) = 0;
   26646 
   26647     virtual HRESULT STDMETHODCALLTYPE AddMenu(
   26648         DWORD dwIDCtl,
   26649         LPCWSTR pszLabel) = 0;
   26650 
   26651     virtual HRESULT STDMETHODCALLTYPE AddPushButton(
   26652         DWORD dwIDCtl,
   26653         LPCWSTR pszLabel) = 0;
   26654 
   26655     virtual HRESULT STDMETHODCALLTYPE AddComboBox(
   26656         DWORD dwIDCtl) = 0;
   26657 
   26658     virtual HRESULT STDMETHODCALLTYPE AddRadioButtonList(
   26659         DWORD dwIDCtl) = 0;
   26660 
   26661     virtual HRESULT STDMETHODCALLTYPE AddCheckButton(
   26662         DWORD dwIDCtl,
   26663         LPCWSTR pszLabel,
   26664         WINBOOL bChecked) = 0;
   26665 
   26666     virtual HRESULT STDMETHODCALLTYPE AddEditBox(
   26667         DWORD dwIDCtl,
   26668         LPCWSTR pszText) = 0;
   26669 
   26670     virtual HRESULT STDMETHODCALLTYPE AddSeparator(
   26671         DWORD dwIDCtl) = 0;
   26672 
   26673     virtual HRESULT STDMETHODCALLTYPE AddText(
   26674         DWORD dwIDCtl,
   26675         LPCWSTR pszText) = 0;
   26676 
   26677     virtual HRESULT STDMETHODCALLTYPE SetControlLabel(
   26678         DWORD dwIDCtl,
   26679         LPCWSTR pszLabel) = 0;
   26680 
   26681     virtual HRESULT STDMETHODCALLTYPE GetControlState(
   26682         DWORD dwIDCtl,
   26683         CDCONTROLSTATEF *pdwState) = 0;
   26684 
   26685     virtual HRESULT STDMETHODCALLTYPE SetControlState(
   26686         DWORD dwIDCtl,
   26687         CDCONTROLSTATEF dwState) = 0;
   26688 
   26689     virtual HRESULT STDMETHODCALLTYPE GetEditBoxText(
   26690         DWORD dwIDCtl,
   26691         WCHAR **ppszText) = 0;
   26692 
   26693     virtual HRESULT STDMETHODCALLTYPE SetEditBoxText(
   26694         DWORD dwIDCtl,
   26695         LPCWSTR pszText) = 0;
   26696 
   26697     virtual HRESULT STDMETHODCALLTYPE GetCheckButtonState(
   26698         DWORD dwIDCtl,
   26699         WINBOOL *pbChecked) = 0;
   26700 
   26701     virtual HRESULT STDMETHODCALLTYPE SetCheckButtonState(
   26702         DWORD dwIDCtl,
   26703         WINBOOL bChecked) = 0;
   26704 
   26705     virtual HRESULT STDMETHODCALLTYPE AddControlItem(
   26706         DWORD dwIDCtl,
   26707         DWORD dwIDItem,
   26708         LPCWSTR pszLabel) = 0;
   26709 
   26710     virtual HRESULT STDMETHODCALLTYPE RemoveControlItem(
   26711         DWORD dwIDCtl,
   26712         DWORD dwIDItem) = 0;
   26713 
   26714     virtual HRESULT STDMETHODCALLTYPE RemoveAllControlItems(
   26715         DWORD dwIDCtl) = 0;
   26716 
   26717     virtual HRESULT STDMETHODCALLTYPE GetControlItemState(
   26718         DWORD dwIDCtl,
   26719         DWORD dwIDItem,
   26720         CDCONTROLSTATEF *pdwState) = 0;
   26721 
   26722     virtual HRESULT STDMETHODCALLTYPE SetControlItemState(
   26723         DWORD dwIDCtl,
   26724         DWORD dwIDItem,
   26725         CDCONTROLSTATEF dwState) = 0;
   26726 
   26727     virtual HRESULT STDMETHODCALLTYPE GetSelectedControlItem(
   26728         DWORD dwIDCtl,
   26729         DWORD *pdwIDItem) = 0;
   26730 
   26731     virtual HRESULT STDMETHODCALLTYPE SetSelectedControlItem(
   26732         DWORD dwIDCtl,
   26733         DWORD dwIDItem) = 0;
   26734 
   26735     virtual HRESULT STDMETHODCALLTYPE StartVisualGroup(
   26736         DWORD dwIDCtl,
   26737         LPCWSTR pszLabel) = 0;
   26738 
   26739     virtual HRESULT STDMETHODCALLTYPE EndVisualGroup(
   26740         ) = 0;
   26741 
   26742     virtual HRESULT STDMETHODCALLTYPE MakeProminent(
   26743         DWORD dwIDCtl) = 0;
   26744 
   26745     virtual HRESULT STDMETHODCALLTYPE SetControlItemText(
   26746         DWORD dwIDCtl,
   26747         DWORD dwIDItem,
   26748         LPCWSTR pszLabel) = 0;
   26749 
   26750 };
   26751 #ifdef __CRT_UUID_DECL
   26752 __CRT_UUID_DECL(IFileDialogCustomize, 0xe6fdd21a, 0x163f, 0x4975, 0x9c,0x8c, 0xa6,0x9f,0x1b,0xa3,0x70,0x34)
   26753 #endif
   26754 #else
   26755 typedef struct IFileDialogCustomizeVtbl {
   26756     BEGIN_INTERFACE
   26757 
   26758     /*** IUnknown methods ***/
   26759     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   26760         IFileDialogCustomize* This,
   26761         REFIID riid,
   26762         void **ppvObject);
   26763 
   26764     ULONG (STDMETHODCALLTYPE *AddRef)(
   26765         IFileDialogCustomize* This);
   26766 
   26767     ULONG (STDMETHODCALLTYPE *Release)(
   26768         IFileDialogCustomize* This);
   26769 
   26770     /*** IFileDialogCustomize methods ***/
   26771     HRESULT (STDMETHODCALLTYPE *EnableOpenDropDown)(
   26772         IFileDialogCustomize* This,
   26773         DWORD dwIDCtl);
   26774 
   26775     HRESULT (STDMETHODCALLTYPE *AddMenu)(
   26776         IFileDialogCustomize* This,
   26777         DWORD dwIDCtl,
   26778         LPCWSTR pszLabel);
   26779 
   26780     HRESULT (STDMETHODCALLTYPE *AddPushButton)(
   26781         IFileDialogCustomize* This,
   26782         DWORD dwIDCtl,
   26783         LPCWSTR pszLabel);
   26784 
   26785     HRESULT (STDMETHODCALLTYPE *AddComboBox)(
   26786         IFileDialogCustomize* This,
   26787         DWORD dwIDCtl);
   26788 
   26789     HRESULT (STDMETHODCALLTYPE *AddRadioButtonList)(
   26790         IFileDialogCustomize* This,
   26791         DWORD dwIDCtl);
   26792 
   26793     HRESULT (STDMETHODCALLTYPE *AddCheckButton)(
   26794         IFileDialogCustomize* This,
   26795         DWORD dwIDCtl,
   26796         LPCWSTR pszLabel,
   26797         WINBOOL bChecked);
   26798 
   26799     HRESULT (STDMETHODCALLTYPE *AddEditBox)(
   26800         IFileDialogCustomize* This,
   26801         DWORD dwIDCtl,
   26802         LPCWSTR pszText);
   26803 
   26804     HRESULT (STDMETHODCALLTYPE *AddSeparator)(
   26805         IFileDialogCustomize* This,
   26806         DWORD dwIDCtl);
   26807 
   26808     HRESULT (STDMETHODCALLTYPE *AddText)(
   26809         IFileDialogCustomize* This,
   26810         DWORD dwIDCtl,
   26811         LPCWSTR pszText);
   26812 
   26813     HRESULT (STDMETHODCALLTYPE *SetControlLabel)(
   26814         IFileDialogCustomize* This,
   26815         DWORD dwIDCtl,
   26816         LPCWSTR pszLabel);
   26817 
   26818     HRESULT (STDMETHODCALLTYPE *GetControlState)(
   26819         IFileDialogCustomize* This,
   26820         DWORD dwIDCtl,
   26821         CDCONTROLSTATEF *pdwState);
   26822 
   26823     HRESULT (STDMETHODCALLTYPE *SetControlState)(
   26824         IFileDialogCustomize* This,
   26825         DWORD dwIDCtl,
   26826         CDCONTROLSTATEF dwState);
   26827 
   26828     HRESULT (STDMETHODCALLTYPE *GetEditBoxText)(
   26829         IFileDialogCustomize* This,
   26830         DWORD dwIDCtl,
   26831         WCHAR **ppszText);
   26832 
   26833     HRESULT (STDMETHODCALLTYPE *SetEditBoxText)(
   26834         IFileDialogCustomize* This,
   26835         DWORD dwIDCtl,
   26836         LPCWSTR pszText);
   26837 
   26838     HRESULT (STDMETHODCALLTYPE *GetCheckButtonState)(
   26839         IFileDialogCustomize* This,
   26840         DWORD dwIDCtl,
   26841         WINBOOL *pbChecked);
   26842 
   26843     HRESULT (STDMETHODCALLTYPE *SetCheckButtonState)(
   26844         IFileDialogCustomize* This,
   26845         DWORD dwIDCtl,
   26846         WINBOOL bChecked);
   26847 
   26848     HRESULT (STDMETHODCALLTYPE *AddControlItem)(
   26849         IFileDialogCustomize* This,
   26850         DWORD dwIDCtl,
   26851         DWORD dwIDItem,
   26852         LPCWSTR pszLabel);
   26853 
   26854     HRESULT (STDMETHODCALLTYPE *RemoveControlItem)(
   26855         IFileDialogCustomize* This,
   26856         DWORD dwIDCtl,
   26857         DWORD dwIDItem);
   26858 
   26859     HRESULT (STDMETHODCALLTYPE *RemoveAllControlItems)(
   26860         IFileDialogCustomize* This,
   26861         DWORD dwIDCtl);
   26862 
   26863     HRESULT (STDMETHODCALLTYPE *GetControlItemState)(
   26864         IFileDialogCustomize* This,
   26865         DWORD dwIDCtl,
   26866         DWORD dwIDItem,
   26867         CDCONTROLSTATEF *pdwState);
   26868 
   26869     HRESULT (STDMETHODCALLTYPE *SetControlItemState)(
   26870         IFileDialogCustomize* This,
   26871         DWORD dwIDCtl,
   26872         DWORD dwIDItem,
   26873         CDCONTROLSTATEF dwState);
   26874 
   26875     HRESULT (STDMETHODCALLTYPE *GetSelectedControlItem)(
   26876         IFileDialogCustomize* This,
   26877         DWORD dwIDCtl,
   26878         DWORD *pdwIDItem);
   26879 
   26880     HRESULT (STDMETHODCALLTYPE *SetSelectedControlItem)(
   26881         IFileDialogCustomize* This,
   26882         DWORD dwIDCtl,
   26883         DWORD dwIDItem);
   26884 
   26885     HRESULT (STDMETHODCALLTYPE *StartVisualGroup)(
   26886         IFileDialogCustomize* This,
   26887         DWORD dwIDCtl,
   26888         LPCWSTR pszLabel);
   26889 
   26890     HRESULT (STDMETHODCALLTYPE *EndVisualGroup)(
   26891         IFileDialogCustomize* This);
   26892 
   26893     HRESULT (STDMETHODCALLTYPE *MakeProminent)(
   26894         IFileDialogCustomize* This,
   26895         DWORD dwIDCtl);
   26896 
   26897     HRESULT (STDMETHODCALLTYPE *SetControlItemText)(
   26898         IFileDialogCustomize* This,
   26899         DWORD dwIDCtl,
   26900         DWORD dwIDItem,
   26901         LPCWSTR pszLabel);
   26902 
   26903     END_INTERFACE
   26904 } IFileDialogCustomizeVtbl;
   26905 interface IFileDialogCustomize {
   26906     CONST_VTBL IFileDialogCustomizeVtbl* lpVtbl;
   26907 };
   26908 
   26909 #ifdef COBJMACROS
   26910 #ifndef WIDL_C_INLINE_WRAPPERS
   26911 /*** IUnknown methods ***/
   26912 #define IFileDialogCustomize_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   26913 #define IFileDialogCustomize_AddRef(This) (This)->lpVtbl->AddRef(This)
   26914 #define IFileDialogCustomize_Release(This) (This)->lpVtbl->Release(This)
   26915 /*** IFileDialogCustomize methods ***/
   26916 #define IFileDialogCustomize_EnableOpenDropDown(This,dwIDCtl) (This)->lpVtbl->EnableOpenDropDown(This,dwIDCtl)
   26917 #define IFileDialogCustomize_AddMenu(This,dwIDCtl,pszLabel) (This)->lpVtbl->AddMenu(This,dwIDCtl,pszLabel)
   26918 #define IFileDialogCustomize_AddPushButton(This,dwIDCtl,pszLabel) (This)->lpVtbl->AddPushButton(This,dwIDCtl,pszLabel)
   26919 #define IFileDialogCustomize_AddComboBox(This,dwIDCtl) (This)->lpVtbl->AddComboBox(This,dwIDCtl)
   26920 #define IFileDialogCustomize_AddRadioButtonList(This,dwIDCtl) (This)->lpVtbl->AddRadioButtonList(This,dwIDCtl)
   26921 #define IFileDialogCustomize_AddCheckButton(This,dwIDCtl,pszLabel,bChecked) (This)->lpVtbl->AddCheckButton(This,dwIDCtl,pszLabel,bChecked)
   26922 #define IFileDialogCustomize_AddEditBox(This,dwIDCtl,pszText) (This)->lpVtbl->AddEditBox(This,dwIDCtl,pszText)
   26923 #define IFileDialogCustomize_AddSeparator(This,dwIDCtl) (This)->lpVtbl->AddSeparator(This,dwIDCtl)
   26924 #define IFileDialogCustomize_AddText(This,dwIDCtl,pszText) (This)->lpVtbl->AddText(This,dwIDCtl,pszText)
   26925 #define IFileDialogCustomize_SetControlLabel(This,dwIDCtl,pszLabel) (This)->lpVtbl->SetControlLabel(This,dwIDCtl,pszLabel)
   26926 #define IFileDialogCustomize_GetControlState(This,dwIDCtl,pdwState) (This)->lpVtbl->GetControlState(This,dwIDCtl,pdwState)
   26927 #define IFileDialogCustomize_SetControlState(This,dwIDCtl,dwState) (This)->lpVtbl->SetControlState(This,dwIDCtl,dwState)
   26928 #define IFileDialogCustomize_GetEditBoxText(This,dwIDCtl,ppszText) (This)->lpVtbl->GetEditBoxText(This,dwIDCtl,ppszText)
   26929 #define IFileDialogCustomize_SetEditBoxText(This,dwIDCtl,pszText) (This)->lpVtbl->SetEditBoxText(This,dwIDCtl,pszText)
   26930 #define IFileDialogCustomize_GetCheckButtonState(This,dwIDCtl,pbChecked) (This)->lpVtbl->GetCheckButtonState(This,dwIDCtl,pbChecked)
   26931 #define IFileDialogCustomize_SetCheckButtonState(This,dwIDCtl,bChecked) (This)->lpVtbl->SetCheckButtonState(This,dwIDCtl,bChecked)
   26932 #define IFileDialogCustomize_AddControlItem(This,dwIDCtl,dwIDItem,pszLabel) (This)->lpVtbl->AddControlItem(This,dwIDCtl,dwIDItem,pszLabel)
   26933 #define IFileDialogCustomize_RemoveControlItem(This,dwIDCtl,dwIDItem) (This)->lpVtbl->RemoveControlItem(This,dwIDCtl,dwIDItem)
   26934 #define IFileDialogCustomize_RemoveAllControlItems(This,dwIDCtl) (This)->lpVtbl->RemoveAllControlItems(This,dwIDCtl)
   26935 #define IFileDialogCustomize_GetControlItemState(This,dwIDCtl,dwIDItem,pdwState) (This)->lpVtbl->GetControlItemState(This,dwIDCtl,dwIDItem,pdwState)
   26936 #define IFileDialogCustomize_SetControlItemState(This,dwIDCtl,dwIDItem,dwState) (This)->lpVtbl->SetControlItemState(This,dwIDCtl,dwIDItem,dwState)
   26937 #define IFileDialogCustomize_GetSelectedControlItem(This,dwIDCtl,pdwIDItem) (This)->lpVtbl->GetSelectedControlItem(This,dwIDCtl,pdwIDItem)
   26938 #define IFileDialogCustomize_SetSelectedControlItem(This,dwIDCtl,dwIDItem) (This)->lpVtbl->SetSelectedControlItem(This,dwIDCtl,dwIDItem)
   26939 #define IFileDialogCustomize_StartVisualGroup(This,dwIDCtl,pszLabel) (This)->lpVtbl->StartVisualGroup(This,dwIDCtl,pszLabel)
   26940 #define IFileDialogCustomize_EndVisualGroup(This) (This)->lpVtbl->EndVisualGroup(This)
   26941 #define IFileDialogCustomize_MakeProminent(This,dwIDCtl) (This)->lpVtbl->MakeProminent(This,dwIDCtl)
   26942 #define IFileDialogCustomize_SetControlItemText(This,dwIDCtl,dwIDItem,pszLabel) (This)->lpVtbl->SetControlItemText(This,dwIDCtl,dwIDItem,pszLabel)
   26943 #else
   26944 /*** IUnknown methods ***/
   26945 static FORCEINLINE HRESULT IFileDialogCustomize_QueryInterface(IFileDialogCustomize* This,REFIID riid,void **ppvObject) {
   26946     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   26947 }
   26948 static FORCEINLINE ULONG IFileDialogCustomize_AddRef(IFileDialogCustomize* This) {
   26949     return This->lpVtbl->AddRef(This);
   26950 }
   26951 static FORCEINLINE ULONG IFileDialogCustomize_Release(IFileDialogCustomize* This) {
   26952     return This->lpVtbl->Release(This);
   26953 }
   26954 /*** IFileDialogCustomize methods ***/
   26955 static FORCEINLINE HRESULT IFileDialogCustomize_EnableOpenDropDown(IFileDialogCustomize* This,DWORD dwIDCtl) {
   26956     return This->lpVtbl->EnableOpenDropDown(This,dwIDCtl);
   26957 }
   26958 static FORCEINLINE HRESULT IFileDialogCustomize_AddMenu(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszLabel) {
   26959     return This->lpVtbl->AddMenu(This,dwIDCtl,pszLabel);
   26960 }
   26961 static FORCEINLINE HRESULT IFileDialogCustomize_AddPushButton(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszLabel) {
   26962     return This->lpVtbl->AddPushButton(This,dwIDCtl,pszLabel);
   26963 }
   26964 static FORCEINLINE HRESULT IFileDialogCustomize_AddComboBox(IFileDialogCustomize* This,DWORD dwIDCtl) {
   26965     return This->lpVtbl->AddComboBox(This,dwIDCtl);
   26966 }
   26967 static FORCEINLINE HRESULT IFileDialogCustomize_AddRadioButtonList(IFileDialogCustomize* This,DWORD dwIDCtl) {
   26968     return This->lpVtbl->AddRadioButtonList(This,dwIDCtl);
   26969 }
   26970 static FORCEINLINE HRESULT IFileDialogCustomize_AddCheckButton(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszLabel,WINBOOL bChecked) {
   26971     return This->lpVtbl->AddCheckButton(This,dwIDCtl,pszLabel,bChecked);
   26972 }
   26973 static FORCEINLINE HRESULT IFileDialogCustomize_AddEditBox(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszText) {
   26974     return This->lpVtbl->AddEditBox(This,dwIDCtl,pszText);
   26975 }
   26976 static FORCEINLINE HRESULT IFileDialogCustomize_AddSeparator(IFileDialogCustomize* This,DWORD dwIDCtl) {
   26977     return This->lpVtbl->AddSeparator(This,dwIDCtl);
   26978 }
   26979 static FORCEINLINE HRESULT IFileDialogCustomize_AddText(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszText) {
   26980     return This->lpVtbl->AddText(This,dwIDCtl,pszText);
   26981 }
   26982 static FORCEINLINE HRESULT IFileDialogCustomize_SetControlLabel(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszLabel) {
   26983     return This->lpVtbl->SetControlLabel(This,dwIDCtl,pszLabel);
   26984 }
   26985 static FORCEINLINE HRESULT IFileDialogCustomize_GetControlState(IFileDialogCustomize* This,DWORD dwIDCtl,CDCONTROLSTATEF *pdwState) {
   26986     return This->lpVtbl->GetControlState(This,dwIDCtl,pdwState);
   26987 }
   26988 static FORCEINLINE HRESULT IFileDialogCustomize_SetControlState(IFileDialogCustomize* This,DWORD dwIDCtl,CDCONTROLSTATEF dwState) {
   26989     return This->lpVtbl->SetControlState(This,dwIDCtl,dwState);
   26990 }
   26991 static FORCEINLINE HRESULT IFileDialogCustomize_GetEditBoxText(IFileDialogCustomize* This,DWORD dwIDCtl,WCHAR **ppszText) {
   26992     return This->lpVtbl->GetEditBoxText(This,dwIDCtl,ppszText);
   26993 }
   26994 static FORCEINLINE HRESULT IFileDialogCustomize_SetEditBoxText(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszText) {
   26995     return This->lpVtbl->SetEditBoxText(This,dwIDCtl,pszText);
   26996 }
   26997 static FORCEINLINE HRESULT IFileDialogCustomize_GetCheckButtonState(IFileDialogCustomize* This,DWORD dwIDCtl,WINBOOL *pbChecked) {
   26998     return This->lpVtbl->GetCheckButtonState(This,dwIDCtl,pbChecked);
   26999 }
   27000 static FORCEINLINE HRESULT IFileDialogCustomize_SetCheckButtonState(IFileDialogCustomize* This,DWORD dwIDCtl,WINBOOL bChecked) {
   27001     return This->lpVtbl->SetCheckButtonState(This,dwIDCtl,bChecked);
   27002 }
   27003 static FORCEINLINE HRESULT IFileDialogCustomize_AddControlItem(IFileDialogCustomize* This,DWORD dwIDCtl,DWORD dwIDItem,LPCWSTR pszLabel) {
   27004     return This->lpVtbl->AddControlItem(This,dwIDCtl,dwIDItem,pszLabel);
   27005 }
   27006 static FORCEINLINE HRESULT IFileDialogCustomize_RemoveControlItem(IFileDialogCustomize* This,DWORD dwIDCtl,DWORD dwIDItem) {
   27007     return This->lpVtbl->RemoveControlItem(This,dwIDCtl,dwIDItem);
   27008 }
   27009 static FORCEINLINE HRESULT IFileDialogCustomize_RemoveAllControlItems(IFileDialogCustomize* This,DWORD dwIDCtl) {
   27010     return This->lpVtbl->RemoveAllControlItems(This,dwIDCtl);
   27011 }
   27012 static FORCEINLINE HRESULT IFileDialogCustomize_GetControlItemState(IFileDialogCustomize* This,DWORD dwIDCtl,DWORD dwIDItem,CDCONTROLSTATEF *pdwState) {
   27013     return This->lpVtbl->GetControlItemState(This,dwIDCtl,dwIDItem,pdwState);
   27014 }
   27015 static FORCEINLINE HRESULT IFileDialogCustomize_SetControlItemState(IFileDialogCustomize* This,DWORD dwIDCtl,DWORD dwIDItem,CDCONTROLSTATEF dwState) {
   27016     return This->lpVtbl->SetControlItemState(This,dwIDCtl,dwIDItem,dwState);
   27017 }
   27018 static FORCEINLINE HRESULT IFileDialogCustomize_GetSelectedControlItem(IFileDialogCustomize* This,DWORD dwIDCtl,DWORD *pdwIDItem) {
   27019     return This->lpVtbl->GetSelectedControlItem(This,dwIDCtl,pdwIDItem);
   27020 }
   27021 static FORCEINLINE HRESULT IFileDialogCustomize_SetSelectedControlItem(IFileDialogCustomize* This,DWORD dwIDCtl,DWORD dwIDItem) {
   27022     return This->lpVtbl->SetSelectedControlItem(This,dwIDCtl,dwIDItem);
   27023 }
   27024 static FORCEINLINE HRESULT IFileDialogCustomize_StartVisualGroup(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszLabel) {
   27025     return This->lpVtbl->StartVisualGroup(This,dwIDCtl,pszLabel);
   27026 }
   27027 static FORCEINLINE HRESULT IFileDialogCustomize_EndVisualGroup(IFileDialogCustomize* This) {
   27028     return This->lpVtbl->EndVisualGroup(This);
   27029 }
   27030 static FORCEINLINE HRESULT IFileDialogCustomize_MakeProminent(IFileDialogCustomize* This,DWORD dwIDCtl) {
   27031     return This->lpVtbl->MakeProminent(This,dwIDCtl);
   27032 }
   27033 static FORCEINLINE HRESULT IFileDialogCustomize_SetControlItemText(IFileDialogCustomize* This,DWORD dwIDCtl,DWORD dwIDItem,LPCWSTR pszLabel) {
   27034     return This->lpVtbl->SetControlItemText(This,dwIDCtl,dwIDItem,pszLabel);
   27035 }
   27036 #endif
   27037 #endif
   27038 
   27039 #endif
   27040 
   27041 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_EnableOpenDropDown_Proxy(
   27042     IFileDialogCustomize* This,
   27043     DWORD dwIDCtl);
   27044 void __RPC_STUB IFileDialogCustomize_EnableOpenDropDown_Stub(
   27045     IRpcStubBuffer* This,
   27046     IRpcChannelBuffer* pRpcChannelBuffer,
   27047     PRPC_MESSAGE pRpcMessage,
   27048     DWORD* pdwStubPhase);
   27049 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_AddMenu_Proxy(
   27050     IFileDialogCustomize* This,
   27051     DWORD dwIDCtl,
   27052     LPCWSTR pszLabel);
   27053 void __RPC_STUB IFileDialogCustomize_AddMenu_Stub(
   27054     IRpcStubBuffer* This,
   27055     IRpcChannelBuffer* pRpcChannelBuffer,
   27056     PRPC_MESSAGE pRpcMessage,
   27057     DWORD* pdwStubPhase);
   27058 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_AddPushButton_Proxy(
   27059     IFileDialogCustomize* This,
   27060     DWORD dwIDCtl,
   27061     LPCWSTR pszLabel);
   27062 void __RPC_STUB IFileDialogCustomize_AddPushButton_Stub(
   27063     IRpcStubBuffer* This,
   27064     IRpcChannelBuffer* pRpcChannelBuffer,
   27065     PRPC_MESSAGE pRpcMessage,
   27066     DWORD* pdwStubPhase);
   27067 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_AddComboBox_Proxy(
   27068     IFileDialogCustomize* This,
   27069     DWORD dwIDCtl);
   27070 void __RPC_STUB IFileDialogCustomize_AddComboBox_Stub(
   27071     IRpcStubBuffer* This,
   27072     IRpcChannelBuffer* pRpcChannelBuffer,
   27073     PRPC_MESSAGE pRpcMessage,
   27074     DWORD* pdwStubPhase);
   27075 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_AddRadioButtonList_Proxy(
   27076     IFileDialogCustomize* This,
   27077     DWORD dwIDCtl);
   27078 void __RPC_STUB IFileDialogCustomize_AddRadioButtonList_Stub(
   27079     IRpcStubBuffer* This,
   27080     IRpcChannelBuffer* pRpcChannelBuffer,
   27081     PRPC_MESSAGE pRpcMessage,
   27082     DWORD* pdwStubPhase);
   27083 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_AddCheckButton_Proxy(
   27084     IFileDialogCustomize* This,
   27085     DWORD dwIDCtl,
   27086     LPCWSTR pszLabel,
   27087     WINBOOL bChecked);
   27088 void __RPC_STUB IFileDialogCustomize_AddCheckButton_Stub(
   27089     IRpcStubBuffer* This,
   27090     IRpcChannelBuffer* pRpcChannelBuffer,
   27091     PRPC_MESSAGE pRpcMessage,
   27092     DWORD* pdwStubPhase);
   27093 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_AddEditBox_Proxy(
   27094     IFileDialogCustomize* This,
   27095     DWORD dwIDCtl,
   27096     LPCWSTR pszText);
   27097 void __RPC_STUB IFileDialogCustomize_AddEditBox_Stub(
   27098     IRpcStubBuffer* This,
   27099     IRpcChannelBuffer* pRpcChannelBuffer,
   27100     PRPC_MESSAGE pRpcMessage,
   27101     DWORD* pdwStubPhase);
   27102 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_AddSeparator_Proxy(
   27103     IFileDialogCustomize* This,
   27104     DWORD dwIDCtl);
   27105 void __RPC_STUB IFileDialogCustomize_AddSeparator_Stub(
   27106     IRpcStubBuffer* This,
   27107     IRpcChannelBuffer* pRpcChannelBuffer,
   27108     PRPC_MESSAGE pRpcMessage,
   27109     DWORD* pdwStubPhase);
   27110 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_AddText_Proxy(
   27111     IFileDialogCustomize* This,
   27112     DWORD dwIDCtl,
   27113     LPCWSTR pszText);
   27114 void __RPC_STUB IFileDialogCustomize_AddText_Stub(
   27115     IRpcStubBuffer* This,
   27116     IRpcChannelBuffer* pRpcChannelBuffer,
   27117     PRPC_MESSAGE pRpcMessage,
   27118     DWORD* pdwStubPhase);
   27119 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_SetControlLabel_Proxy(
   27120     IFileDialogCustomize* This,
   27121     DWORD dwIDCtl,
   27122     LPCWSTR pszLabel);
   27123 void __RPC_STUB IFileDialogCustomize_SetControlLabel_Stub(
   27124     IRpcStubBuffer* This,
   27125     IRpcChannelBuffer* pRpcChannelBuffer,
   27126     PRPC_MESSAGE pRpcMessage,
   27127     DWORD* pdwStubPhase);
   27128 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_GetControlState_Proxy(
   27129     IFileDialogCustomize* This,
   27130     DWORD dwIDCtl,
   27131     CDCONTROLSTATEF *pdwState);
   27132 void __RPC_STUB IFileDialogCustomize_GetControlState_Stub(
   27133     IRpcStubBuffer* This,
   27134     IRpcChannelBuffer* pRpcChannelBuffer,
   27135     PRPC_MESSAGE pRpcMessage,
   27136     DWORD* pdwStubPhase);
   27137 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_SetControlState_Proxy(
   27138     IFileDialogCustomize* This,
   27139     DWORD dwIDCtl,
   27140     CDCONTROLSTATEF dwState);
   27141 void __RPC_STUB IFileDialogCustomize_SetControlState_Stub(
   27142     IRpcStubBuffer* This,
   27143     IRpcChannelBuffer* pRpcChannelBuffer,
   27144     PRPC_MESSAGE pRpcMessage,
   27145     DWORD* pdwStubPhase);
   27146 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_GetEditBoxText_Proxy(
   27147     IFileDialogCustomize* This,
   27148     DWORD dwIDCtl,
   27149     WCHAR **ppszText);
   27150 void __RPC_STUB IFileDialogCustomize_GetEditBoxText_Stub(
   27151     IRpcStubBuffer* This,
   27152     IRpcChannelBuffer* pRpcChannelBuffer,
   27153     PRPC_MESSAGE pRpcMessage,
   27154     DWORD* pdwStubPhase);
   27155 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_SetEditBoxText_Proxy(
   27156     IFileDialogCustomize* This,
   27157     DWORD dwIDCtl,
   27158     LPCWSTR pszText);
   27159 void __RPC_STUB IFileDialogCustomize_SetEditBoxText_Stub(
   27160     IRpcStubBuffer* This,
   27161     IRpcChannelBuffer* pRpcChannelBuffer,
   27162     PRPC_MESSAGE pRpcMessage,
   27163     DWORD* pdwStubPhase);
   27164 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_GetCheckButtonState_Proxy(
   27165     IFileDialogCustomize* This,
   27166     DWORD dwIDCtl,
   27167     WINBOOL *pbChecked);
   27168 void __RPC_STUB IFileDialogCustomize_GetCheckButtonState_Stub(
   27169     IRpcStubBuffer* This,
   27170     IRpcChannelBuffer* pRpcChannelBuffer,
   27171     PRPC_MESSAGE pRpcMessage,
   27172     DWORD* pdwStubPhase);
   27173 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_SetCheckButtonState_Proxy(
   27174     IFileDialogCustomize* This,
   27175     DWORD dwIDCtl,
   27176     WINBOOL bChecked);
   27177 void __RPC_STUB IFileDialogCustomize_SetCheckButtonState_Stub(
   27178     IRpcStubBuffer* This,
   27179     IRpcChannelBuffer* pRpcChannelBuffer,
   27180     PRPC_MESSAGE pRpcMessage,
   27181     DWORD* pdwStubPhase);
   27182 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_AddControlItem_Proxy(
   27183     IFileDialogCustomize* This,
   27184     DWORD dwIDCtl,
   27185     DWORD dwIDItem,
   27186     LPCWSTR pszLabel);
   27187 void __RPC_STUB IFileDialogCustomize_AddControlItem_Stub(
   27188     IRpcStubBuffer* This,
   27189     IRpcChannelBuffer* pRpcChannelBuffer,
   27190     PRPC_MESSAGE pRpcMessage,
   27191     DWORD* pdwStubPhase);
   27192 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_RemoveControlItem_Proxy(
   27193     IFileDialogCustomize* This,
   27194     DWORD dwIDCtl,
   27195     DWORD dwIDItem);
   27196 void __RPC_STUB IFileDialogCustomize_RemoveControlItem_Stub(
   27197     IRpcStubBuffer* This,
   27198     IRpcChannelBuffer* pRpcChannelBuffer,
   27199     PRPC_MESSAGE pRpcMessage,
   27200     DWORD* pdwStubPhase);
   27201 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_RemoveAllControlItems_Proxy(
   27202     IFileDialogCustomize* This,
   27203     DWORD dwIDCtl);
   27204 void __RPC_STUB IFileDialogCustomize_RemoveAllControlItems_Stub(
   27205     IRpcStubBuffer* This,
   27206     IRpcChannelBuffer* pRpcChannelBuffer,
   27207     PRPC_MESSAGE pRpcMessage,
   27208     DWORD* pdwStubPhase);
   27209 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_GetControlItemState_Proxy(
   27210     IFileDialogCustomize* This,
   27211     DWORD dwIDCtl,
   27212     DWORD dwIDItem,
   27213     CDCONTROLSTATEF *pdwState);
   27214 void __RPC_STUB IFileDialogCustomize_GetControlItemState_Stub(
   27215     IRpcStubBuffer* This,
   27216     IRpcChannelBuffer* pRpcChannelBuffer,
   27217     PRPC_MESSAGE pRpcMessage,
   27218     DWORD* pdwStubPhase);
   27219 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_SetControlItemState_Proxy(
   27220     IFileDialogCustomize* This,
   27221     DWORD dwIDCtl,
   27222     DWORD dwIDItem,
   27223     CDCONTROLSTATEF dwState);
   27224 void __RPC_STUB IFileDialogCustomize_SetControlItemState_Stub(
   27225     IRpcStubBuffer* This,
   27226     IRpcChannelBuffer* pRpcChannelBuffer,
   27227     PRPC_MESSAGE pRpcMessage,
   27228     DWORD* pdwStubPhase);
   27229 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_GetSelectedControlItem_Proxy(
   27230     IFileDialogCustomize* This,
   27231     DWORD dwIDCtl,
   27232     DWORD *pdwIDItem);
   27233 void __RPC_STUB IFileDialogCustomize_GetSelectedControlItem_Stub(
   27234     IRpcStubBuffer* This,
   27235     IRpcChannelBuffer* pRpcChannelBuffer,
   27236     PRPC_MESSAGE pRpcMessage,
   27237     DWORD* pdwStubPhase);
   27238 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_SetSelectedControlItem_Proxy(
   27239     IFileDialogCustomize* This,
   27240     DWORD dwIDCtl,
   27241     DWORD dwIDItem);
   27242 void __RPC_STUB IFileDialogCustomize_SetSelectedControlItem_Stub(
   27243     IRpcStubBuffer* This,
   27244     IRpcChannelBuffer* pRpcChannelBuffer,
   27245     PRPC_MESSAGE pRpcMessage,
   27246     DWORD* pdwStubPhase);
   27247 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_StartVisualGroup_Proxy(
   27248     IFileDialogCustomize* This,
   27249     DWORD dwIDCtl,
   27250     LPCWSTR pszLabel);
   27251 void __RPC_STUB IFileDialogCustomize_StartVisualGroup_Stub(
   27252     IRpcStubBuffer* This,
   27253     IRpcChannelBuffer* pRpcChannelBuffer,
   27254     PRPC_MESSAGE pRpcMessage,
   27255     DWORD* pdwStubPhase);
   27256 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_EndVisualGroup_Proxy(
   27257     IFileDialogCustomize* This);
   27258 void __RPC_STUB IFileDialogCustomize_EndVisualGroup_Stub(
   27259     IRpcStubBuffer* This,
   27260     IRpcChannelBuffer* pRpcChannelBuffer,
   27261     PRPC_MESSAGE pRpcMessage,
   27262     DWORD* pdwStubPhase);
   27263 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_MakeProminent_Proxy(
   27264     IFileDialogCustomize* This,
   27265     DWORD dwIDCtl);
   27266 void __RPC_STUB IFileDialogCustomize_MakeProminent_Stub(
   27267     IRpcStubBuffer* This,
   27268     IRpcChannelBuffer* pRpcChannelBuffer,
   27269     PRPC_MESSAGE pRpcMessage,
   27270     DWORD* pdwStubPhase);
   27271 HRESULT STDMETHODCALLTYPE IFileDialogCustomize_SetControlItemText_Proxy(
   27272     IFileDialogCustomize* This,
   27273     DWORD dwIDCtl,
   27274     DWORD dwIDItem,
   27275     LPCWSTR pszLabel);
   27276 void __RPC_STUB IFileDialogCustomize_SetControlItemText_Stub(
   27277     IRpcStubBuffer* This,
   27278     IRpcChannelBuffer* pRpcChannelBuffer,
   27279     PRPC_MESSAGE pRpcMessage,
   27280     DWORD* pdwStubPhase);
   27281 
   27282 #endif  /* __IFileDialogCustomize_INTERFACE_DEFINED__ */
   27283 
   27284 
   27285 /*****************************************************************************
   27286  * IFileDialogControlEvents interface
   27287  */
   27288 #ifndef __IFileDialogControlEvents_INTERFACE_DEFINED__
   27289 #define __IFileDialogControlEvents_INTERFACE_DEFINED__
   27290 
   27291 DEFINE_GUID(IID_IFileDialogControlEvents, 0x36116642, 0xd713, 0x4b97, 0x9b,0x83, 0x74,0x84,0xa9,0xd0,0x04,0x33);
   27292 #if defined(__cplusplus) && !defined(CINTERFACE)
   27293 MIDL_INTERFACE("36116642-d713-4b97-9b83-7484a9d00433")
   27294 IFileDialogControlEvents : public IUnknown
   27295 {
   27296     virtual HRESULT STDMETHODCALLTYPE OnItemSelected(
   27297         IFileDialogCustomize *pfdc,
   27298         DWORD dwIDCtl,
   27299         DWORD dwIDItem) = 0;
   27300 
   27301     virtual HRESULT STDMETHODCALLTYPE OnButtonClicked(
   27302         IFileDialogCustomize *pfdc,
   27303         DWORD dwIDCtl) = 0;
   27304 
   27305     virtual HRESULT STDMETHODCALLTYPE OnCheckButtonToggled(
   27306         IFileDialogCustomize *pfdc,
   27307         DWORD dwIDCtl,
   27308         WINBOOL bChecked) = 0;
   27309 
   27310     virtual HRESULT STDMETHODCALLTYPE OnControlActivating(
   27311         IFileDialogCustomize *pfdc,
   27312         DWORD dwIDCtl) = 0;
   27313 
   27314 };
   27315 #ifdef __CRT_UUID_DECL
   27316 __CRT_UUID_DECL(IFileDialogControlEvents, 0x36116642, 0xd713, 0x4b97, 0x9b,0x83, 0x74,0x84,0xa9,0xd0,0x04,0x33)
   27317 #endif
   27318 #else
   27319 typedef struct IFileDialogControlEventsVtbl {
   27320     BEGIN_INTERFACE
   27321 
   27322     /*** IUnknown methods ***/
   27323     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   27324         IFileDialogControlEvents* This,
   27325         REFIID riid,
   27326         void **ppvObject);
   27327 
   27328     ULONG (STDMETHODCALLTYPE *AddRef)(
   27329         IFileDialogControlEvents* This);
   27330 
   27331     ULONG (STDMETHODCALLTYPE *Release)(
   27332         IFileDialogControlEvents* This);
   27333 
   27334     /*** IFileDialogControlEvents methods ***/
   27335     HRESULT (STDMETHODCALLTYPE *OnItemSelected)(
   27336         IFileDialogControlEvents* This,
   27337         IFileDialogCustomize *pfdc,
   27338         DWORD dwIDCtl,
   27339         DWORD dwIDItem);
   27340 
   27341     HRESULT (STDMETHODCALLTYPE *OnButtonClicked)(
   27342         IFileDialogControlEvents* This,
   27343         IFileDialogCustomize *pfdc,
   27344         DWORD dwIDCtl);
   27345 
   27346     HRESULT (STDMETHODCALLTYPE *OnCheckButtonToggled)(
   27347         IFileDialogControlEvents* This,
   27348         IFileDialogCustomize *pfdc,
   27349         DWORD dwIDCtl,
   27350         WINBOOL bChecked);
   27351 
   27352     HRESULT (STDMETHODCALLTYPE *OnControlActivating)(
   27353         IFileDialogControlEvents* This,
   27354         IFileDialogCustomize *pfdc,
   27355         DWORD dwIDCtl);
   27356 
   27357     END_INTERFACE
   27358 } IFileDialogControlEventsVtbl;
   27359 interface IFileDialogControlEvents {
   27360     CONST_VTBL IFileDialogControlEventsVtbl* lpVtbl;
   27361 };
   27362 
   27363 #ifdef COBJMACROS
   27364 #ifndef WIDL_C_INLINE_WRAPPERS
   27365 /*** IUnknown methods ***/
   27366 #define IFileDialogControlEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   27367 #define IFileDialogControlEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
   27368 #define IFileDialogControlEvents_Release(This) (This)->lpVtbl->Release(This)
   27369 /*** IFileDialogControlEvents methods ***/
   27370 #define IFileDialogControlEvents_OnItemSelected(This,pfdc,dwIDCtl,dwIDItem) (This)->lpVtbl->OnItemSelected(This,pfdc,dwIDCtl,dwIDItem)
   27371 #define IFileDialogControlEvents_OnButtonClicked(This,pfdc,dwIDCtl) (This)->lpVtbl->OnButtonClicked(This,pfdc,dwIDCtl)
   27372 #define IFileDialogControlEvents_OnCheckButtonToggled(This,pfdc,dwIDCtl,bChecked) (This)->lpVtbl->OnCheckButtonToggled(This,pfdc,dwIDCtl,bChecked)
   27373 #define IFileDialogControlEvents_OnControlActivating(This,pfdc,dwIDCtl) (This)->lpVtbl->OnControlActivating(This,pfdc,dwIDCtl)
   27374 #else
   27375 /*** IUnknown methods ***/
   27376 static FORCEINLINE HRESULT IFileDialogControlEvents_QueryInterface(IFileDialogControlEvents* This,REFIID riid,void **ppvObject) {
   27377     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   27378 }
   27379 static FORCEINLINE ULONG IFileDialogControlEvents_AddRef(IFileDialogControlEvents* This) {
   27380     return This->lpVtbl->AddRef(This);
   27381 }
   27382 static FORCEINLINE ULONG IFileDialogControlEvents_Release(IFileDialogControlEvents* This) {
   27383     return This->lpVtbl->Release(This);
   27384 }
   27385 /*** IFileDialogControlEvents methods ***/
   27386 static FORCEINLINE HRESULT IFileDialogControlEvents_OnItemSelected(IFileDialogControlEvents* This,IFileDialogCustomize *pfdc,DWORD dwIDCtl,DWORD dwIDItem) {
   27387     return This->lpVtbl->OnItemSelected(This,pfdc,dwIDCtl,dwIDItem);
   27388 }
   27389 static FORCEINLINE HRESULT IFileDialogControlEvents_OnButtonClicked(IFileDialogControlEvents* This,IFileDialogCustomize *pfdc,DWORD dwIDCtl) {
   27390     return This->lpVtbl->OnButtonClicked(This,pfdc,dwIDCtl);
   27391 }
   27392 static FORCEINLINE HRESULT IFileDialogControlEvents_OnCheckButtonToggled(IFileDialogControlEvents* This,IFileDialogCustomize *pfdc,DWORD dwIDCtl,WINBOOL bChecked) {
   27393     return This->lpVtbl->OnCheckButtonToggled(This,pfdc,dwIDCtl,bChecked);
   27394 }
   27395 static FORCEINLINE HRESULT IFileDialogControlEvents_OnControlActivating(IFileDialogControlEvents* This,IFileDialogCustomize *pfdc,DWORD dwIDCtl) {
   27396     return This->lpVtbl->OnControlActivating(This,pfdc,dwIDCtl);
   27397 }
   27398 #endif
   27399 #endif
   27400 
   27401 #endif
   27402 
   27403 HRESULT STDMETHODCALLTYPE IFileDialogControlEvents_OnItemSelected_Proxy(
   27404     IFileDialogControlEvents* This,
   27405     IFileDialogCustomize *pfdc,
   27406     DWORD dwIDCtl,
   27407     DWORD dwIDItem);
   27408 void __RPC_STUB IFileDialogControlEvents_OnItemSelected_Stub(
   27409     IRpcStubBuffer* This,
   27410     IRpcChannelBuffer* pRpcChannelBuffer,
   27411     PRPC_MESSAGE pRpcMessage,
   27412     DWORD* pdwStubPhase);
   27413 HRESULT STDMETHODCALLTYPE IFileDialogControlEvents_OnButtonClicked_Proxy(
   27414     IFileDialogControlEvents* This,
   27415     IFileDialogCustomize *pfdc,
   27416     DWORD dwIDCtl);
   27417 void __RPC_STUB IFileDialogControlEvents_OnButtonClicked_Stub(
   27418     IRpcStubBuffer* This,
   27419     IRpcChannelBuffer* pRpcChannelBuffer,
   27420     PRPC_MESSAGE pRpcMessage,
   27421     DWORD* pdwStubPhase);
   27422 HRESULT STDMETHODCALLTYPE IFileDialogControlEvents_OnCheckButtonToggled_Proxy(
   27423     IFileDialogControlEvents* This,
   27424     IFileDialogCustomize *pfdc,
   27425     DWORD dwIDCtl,
   27426     WINBOOL bChecked);
   27427 void __RPC_STUB IFileDialogControlEvents_OnCheckButtonToggled_Stub(
   27428     IRpcStubBuffer* This,
   27429     IRpcChannelBuffer* pRpcChannelBuffer,
   27430     PRPC_MESSAGE pRpcMessage,
   27431     DWORD* pdwStubPhase);
   27432 HRESULT STDMETHODCALLTYPE IFileDialogControlEvents_OnControlActivating_Proxy(
   27433     IFileDialogControlEvents* This,
   27434     IFileDialogCustomize *pfdc,
   27435     DWORD dwIDCtl);
   27436 void __RPC_STUB IFileDialogControlEvents_OnControlActivating_Stub(
   27437     IRpcStubBuffer* This,
   27438     IRpcChannelBuffer* pRpcChannelBuffer,
   27439     PRPC_MESSAGE pRpcMessage,
   27440     DWORD* pdwStubPhase);
   27441 
   27442 #endif  /* __IFileDialogControlEvents_INTERFACE_DEFINED__ */
   27443 
   27444 
   27445 /*****************************************************************************
   27446  * IFileDialog2 interface
   27447  */
   27448 #ifndef __IFileDialog2_INTERFACE_DEFINED__
   27449 #define __IFileDialog2_INTERFACE_DEFINED__
   27450 
   27451 DEFINE_GUID(IID_IFileDialog2, 0x61744fc7, 0x85b5, 0x4791, 0xa9,0xb0, 0x27,0x22,0x76,0x30,0x9b,0x13);
   27452 #if defined(__cplusplus) && !defined(CINTERFACE)
   27453 MIDL_INTERFACE("61744fc7-85b5-4791-a9b0-272276309b13")
   27454 IFileDialog2 : public IFileDialog
   27455 {
   27456     virtual HRESULT STDMETHODCALLTYPE SetCancelButtonLabel(
   27457         LPCWSTR pszLabel) = 0;
   27458 
   27459     virtual HRESULT STDMETHODCALLTYPE SetNavigationRoot(
   27460         IShellItem *psi) = 0;
   27461 
   27462 };
   27463 #ifdef __CRT_UUID_DECL
   27464 __CRT_UUID_DECL(IFileDialog2, 0x61744fc7, 0x85b5, 0x4791, 0xa9,0xb0, 0x27,0x22,0x76,0x30,0x9b,0x13)
   27465 #endif
   27466 #else
   27467 typedef struct IFileDialog2Vtbl {
   27468     BEGIN_INTERFACE
   27469 
   27470     /*** IUnknown methods ***/
   27471     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   27472         IFileDialog2* This,
   27473         REFIID riid,
   27474         void **ppvObject);
   27475 
   27476     ULONG (STDMETHODCALLTYPE *AddRef)(
   27477         IFileDialog2* This);
   27478 
   27479     ULONG (STDMETHODCALLTYPE *Release)(
   27480         IFileDialog2* This);
   27481 
   27482     /*** IModalWindow methods ***/
   27483     HRESULT (STDMETHODCALLTYPE *Show)(
   27484         IFileDialog2* This,
   27485         HWND hwndOwner);
   27486 
   27487     /*** IFileDialog methods ***/
   27488     HRESULT (STDMETHODCALLTYPE *SetFileTypes)(
   27489         IFileDialog2* This,
   27490         UINT cFileTypes,
   27491         const COMDLG_FILTERSPEC *rgFilterSpec);
   27492 
   27493     HRESULT (STDMETHODCALLTYPE *SetFileTypeIndex)(
   27494         IFileDialog2* This,
   27495         UINT iFileType);
   27496 
   27497     HRESULT (STDMETHODCALLTYPE *GetFileTypeIndex)(
   27498         IFileDialog2* This,
   27499         UINT *piFileType);
   27500 
   27501     HRESULT (STDMETHODCALLTYPE *Advise)(
   27502         IFileDialog2* This,
   27503         IFileDialogEvents *pfde,
   27504         DWORD *pdwCookie);
   27505 
   27506     HRESULT (STDMETHODCALLTYPE *Unadvise)(
   27507         IFileDialog2* This,
   27508         DWORD dwCookie);
   27509 
   27510     HRESULT (STDMETHODCALLTYPE *SetOptions)(
   27511         IFileDialog2* This,
   27512         FILEOPENDIALOGOPTIONS fos);
   27513 
   27514     HRESULT (STDMETHODCALLTYPE *GetOptions)(
   27515         IFileDialog2* This,
   27516         FILEOPENDIALOGOPTIONS *pfos);
   27517 
   27518     HRESULT (STDMETHODCALLTYPE *SetDefaultFolder)(
   27519         IFileDialog2* This,
   27520         IShellItem *psi);
   27521 
   27522     HRESULT (STDMETHODCALLTYPE *SetFolder)(
   27523         IFileDialog2* This,
   27524         IShellItem *psi);
   27525 
   27526     HRESULT (STDMETHODCALLTYPE *GetFolder)(
   27527         IFileDialog2* This,
   27528         IShellItem **ppsi);
   27529 
   27530     HRESULT (STDMETHODCALLTYPE *GetCurrentSelection)(
   27531         IFileDialog2* This,
   27532         IShellItem **ppsi);
   27533 
   27534     HRESULT (STDMETHODCALLTYPE *SetFileName)(
   27535         IFileDialog2* This,
   27536         LPCWSTR pszName);
   27537 
   27538     HRESULT (STDMETHODCALLTYPE *GetFileName)(
   27539         IFileDialog2* This,
   27540         LPWSTR *pszName);
   27541 
   27542     HRESULT (STDMETHODCALLTYPE *SetTitle)(
   27543         IFileDialog2* This,
   27544         LPCWSTR pszTitle);
   27545 
   27546     HRESULT (STDMETHODCALLTYPE *SetOkButtonLabel)(
   27547         IFileDialog2* This,
   27548         LPCWSTR pszText);
   27549 
   27550     HRESULT (STDMETHODCALLTYPE *SetFileNameLabel)(
   27551         IFileDialog2* This,
   27552         LPCWSTR pszLabel);
   27553 
   27554     HRESULT (STDMETHODCALLTYPE *GetResult)(
   27555         IFileDialog2* This,
   27556         IShellItem **ppsi);
   27557 
   27558     HRESULT (STDMETHODCALLTYPE *AddPlace)(
   27559         IFileDialog2* This,
   27560         IShellItem *psi,
   27561         FDAP fdap);
   27562 
   27563     HRESULT (STDMETHODCALLTYPE *SetDefaultExtension)(
   27564         IFileDialog2* This,
   27565         LPCWSTR pszDefaultExtension);
   27566 
   27567     HRESULT (STDMETHODCALLTYPE *Close)(
   27568         IFileDialog2* This,
   27569         HRESULT hr);
   27570 
   27571     HRESULT (STDMETHODCALLTYPE *SetClientGuid)(
   27572         IFileDialog2* This,
   27573         REFGUID guid);
   27574 
   27575     HRESULT (STDMETHODCALLTYPE *ClearClientData)(
   27576         IFileDialog2* This);
   27577 
   27578     HRESULT (STDMETHODCALLTYPE *SetFilter)(
   27579         IFileDialog2* This,
   27580         IShellItemFilter *pFilter);
   27581 
   27582     /*** IFileDialog2 methods ***/
   27583     HRESULT (STDMETHODCALLTYPE *SetCancelButtonLabel)(
   27584         IFileDialog2* This,
   27585         LPCWSTR pszLabel);
   27586 
   27587     HRESULT (STDMETHODCALLTYPE *SetNavigationRoot)(
   27588         IFileDialog2* This,
   27589         IShellItem *psi);
   27590 
   27591     END_INTERFACE
   27592 } IFileDialog2Vtbl;
   27593 interface IFileDialog2 {
   27594     CONST_VTBL IFileDialog2Vtbl* lpVtbl;
   27595 };
   27596 
   27597 #ifdef COBJMACROS
   27598 #ifndef WIDL_C_INLINE_WRAPPERS
   27599 /*** IUnknown methods ***/
   27600 #define IFileDialog2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   27601 #define IFileDialog2_AddRef(This) (This)->lpVtbl->AddRef(This)
   27602 #define IFileDialog2_Release(This) (This)->lpVtbl->Release(This)
   27603 /*** IModalWindow methods ***/
   27604 #define IFileDialog2_Show(This,hwndOwner) (This)->lpVtbl->Show(This,hwndOwner)
   27605 /*** IFileDialog methods ***/
   27606 #define IFileDialog2_SetFileTypes(This,cFileTypes,rgFilterSpec) (This)->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec)
   27607 #define IFileDialog2_SetFileTypeIndex(This,iFileType) (This)->lpVtbl->SetFileTypeIndex(This,iFileType)
   27608 #define IFileDialog2_GetFileTypeIndex(This,piFileType) (This)->lpVtbl->GetFileTypeIndex(This,piFileType)
   27609 #define IFileDialog2_Advise(This,pfde,pdwCookie) (This)->lpVtbl->Advise(This,pfde,pdwCookie)
   27610 #define IFileDialog2_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
   27611 #define IFileDialog2_SetOptions(This,fos) (This)->lpVtbl->SetOptions(This,fos)
   27612 #define IFileDialog2_GetOptions(This,pfos) (This)->lpVtbl->GetOptions(This,pfos)
   27613 #define IFileDialog2_SetDefaultFolder(This,psi) (This)->lpVtbl->SetDefaultFolder(This,psi)
   27614 #define IFileDialog2_SetFolder(This,psi) (This)->lpVtbl->SetFolder(This,psi)
   27615 #define IFileDialog2_GetFolder(This,ppsi) (This)->lpVtbl->GetFolder(This,ppsi)
   27616 #define IFileDialog2_GetCurrentSelection(This,ppsi) (This)->lpVtbl->GetCurrentSelection(This,ppsi)
   27617 #define IFileDialog2_SetFileName(This,pszName) (This)->lpVtbl->SetFileName(This,pszName)
   27618 #define IFileDialog2_GetFileName(This,pszName) (This)->lpVtbl->GetFileName(This,pszName)
   27619 #define IFileDialog2_SetTitle(This,pszTitle) (This)->lpVtbl->SetTitle(This,pszTitle)
   27620 #define IFileDialog2_SetOkButtonLabel(This,pszText) (This)->lpVtbl->SetOkButtonLabel(This,pszText)
   27621 #define IFileDialog2_SetFileNameLabel(This,pszLabel) (This)->lpVtbl->SetFileNameLabel(This,pszLabel)
   27622 #define IFileDialog2_GetResult(This,ppsi) (This)->lpVtbl->GetResult(This,ppsi)
   27623 #define IFileDialog2_AddPlace(This,psi,fdap) (This)->lpVtbl->AddPlace(This,psi,fdap)
   27624 #define IFileDialog2_SetDefaultExtension(This,pszDefaultExtension) (This)->lpVtbl->SetDefaultExtension(This,pszDefaultExtension)
   27625 #define IFileDialog2_Close(This,hr) (This)->lpVtbl->Close(This,hr)
   27626 #define IFileDialog2_SetClientGuid(This,guid) (This)->lpVtbl->SetClientGuid(This,guid)
   27627 #define IFileDialog2_ClearClientData(This) (This)->lpVtbl->ClearClientData(This)
   27628 #define IFileDialog2_SetFilter(This,pFilter) (This)->lpVtbl->SetFilter(This,pFilter)
   27629 /*** IFileDialog2 methods ***/
   27630 #define IFileDialog2_SetCancelButtonLabel(This,pszLabel) (This)->lpVtbl->SetCancelButtonLabel(This,pszLabel)
   27631 #define IFileDialog2_SetNavigationRoot(This,psi) (This)->lpVtbl->SetNavigationRoot(This,psi)
   27632 #else
   27633 /*** IUnknown methods ***/
   27634 static FORCEINLINE HRESULT IFileDialog2_QueryInterface(IFileDialog2* This,REFIID riid,void **ppvObject) {
   27635     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   27636 }
   27637 static FORCEINLINE ULONG IFileDialog2_AddRef(IFileDialog2* This) {
   27638     return This->lpVtbl->AddRef(This);
   27639 }
   27640 static FORCEINLINE ULONG IFileDialog2_Release(IFileDialog2* This) {
   27641     return This->lpVtbl->Release(This);
   27642 }
   27643 /*** IModalWindow methods ***/
   27644 static FORCEINLINE HRESULT IFileDialog2_Show(IFileDialog2* This,HWND hwndOwner) {
   27645     return This->lpVtbl->Show(This,hwndOwner);
   27646 }
   27647 /*** IFileDialog methods ***/
   27648 static FORCEINLINE HRESULT IFileDialog2_SetFileTypes(IFileDialog2* This,UINT cFileTypes,const COMDLG_FILTERSPEC *rgFilterSpec) {
   27649     return This->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec);
   27650 }
   27651 static FORCEINLINE HRESULT IFileDialog2_SetFileTypeIndex(IFileDialog2* This,UINT iFileType) {
   27652     return This->lpVtbl->SetFileTypeIndex(This,iFileType);
   27653 }
   27654 static FORCEINLINE HRESULT IFileDialog2_GetFileTypeIndex(IFileDialog2* This,UINT *piFileType) {
   27655     return This->lpVtbl->GetFileTypeIndex(This,piFileType);
   27656 }
   27657 static FORCEINLINE HRESULT IFileDialog2_Advise(IFileDialog2* This,IFileDialogEvents *pfde,DWORD *pdwCookie) {
   27658     return This->lpVtbl->Advise(This,pfde,pdwCookie);
   27659 }
   27660 static FORCEINLINE HRESULT IFileDialog2_Unadvise(IFileDialog2* This,DWORD dwCookie) {
   27661     return This->lpVtbl->Unadvise(This,dwCookie);
   27662 }
   27663 static FORCEINLINE HRESULT IFileDialog2_SetOptions(IFileDialog2* This,FILEOPENDIALOGOPTIONS fos) {
   27664     return This->lpVtbl->SetOptions(This,fos);
   27665 }
   27666 static FORCEINLINE HRESULT IFileDialog2_GetOptions(IFileDialog2* This,FILEOPENDIALOGOPTIONS *pfos) {
   27667     return This->lpVtbl->GetOptions(This,pfos);
   27668 }
   27669 static FORCEINLINE HRESULT IFileDialog2_SetDefaultFolder(IFileDialog2* This,IShellItem *psi) {
   27670     return This->lpVtbl->SetDefaultFolder(This,psi);
   27671 }
   27672 static FORCEINLINE HRESULT IFileDialog2_SetFolder(IFileDialog2* This,IShellItem *psi) {
   27673     return This->lpVtbl->SetFolder(This,psi);
   27674 }
   27675 static FORCEINLINE HRESULT IFileDialog2_GetFolder(IFileDialog2* This,IShellItem **ppsi) {
   27676     return This->lpVtbl->GetFolder(This,ppsi);
   27677 }
   27678 static FORCEINLINE HRESULT IFileDialog2_GetCurrentSelection(IFileDialog2* This,IShellItem **ppsi) {
   27679     return This->lpVtbl->GetCurrentSelection(This,ppsi);
   27680 }
   27681 static FORCEINLINE HRESULT IFileDialog2_SetFileName(IFileDialog2* This,LPCWSTR pszName) {
   27682     return This->lpVtbl->SetFileName(This,pszName);
   27683 }
   27684 static FORCEINLINE HRESULT IFileDialog2_GetFileName(IFileDialog2* This,LPWSTR *pszName) {
   27685     return This->lpVtbl->GetFileName(This,pszName);
   27686 }
   27687 static FORCEINLINE HRESULT IFileDialog2_SetTitle(IFileDialog2* This,LPCWSTR pszTitle) {
   27688     return This->lpVtbl->SetTitle(This,pszTitle);
   27689 }
   27690 static FORCEINLINE HRESULT IFileDialog2_SetOkButtonLabel(IFileDialog2* This,LPCWSTR pszText) {
   27691     return This->lpVtbl->SetOkButtonLabel(This,pszText);
   27692 }
   27693 static FORCEINLINE HRESULT IFileDialog2_SetFileNameLabel(IFileDialog2* This,LPCWSTR pszLabel) {
   27694     return This->lpVtbl->SetFileNameLabel(This,pszLabel);
   27695 }
   27696 static FORCEINLINE HRESULT IFileDialog2_GetResult(IFileDialog2* This,IShellItem **ppsi) {
   27697     return This->lpVtbl->GetResult(This,ppsi);
   27698 }
   27699 static FORCEINLINE HRESULT IFileDialog2_AddPlace(IFileDialog2* This,IShellItem *psi,FDAP fdap) {
   27700     return This->lpVtbl->AddPlace(This,psi,fdap);
   27701 }
   27702 static FORCEINLINE HRESULT IFileDialog2_SetDefaultExtension(IFileDialog2* This,LPCWSTR pszDefaultExtension) {
   27703     return This->lpVtbl->SetDefaultExtension(This,pszDefaultExtension);
   27704 }
   27705 static FORCEINLINE HRESULT IFileDialog2_Close(IFileDialog2* This,HRESULT hr) {
   27706     return This->lpVtbl->Close(This,hr);
   27707 }
   27708 static FORCEINLINE HRESULT IFileDialog2_SetClientGuid(IFileDialog2* This,REFGUID guid) {
   27709     return This->lpVtbl->SetClientGuid(This,guid);
   27710 }
   27711 static FORCEINLINE HRESULT IFileDialog2_ClearClientData(IFileDialog2* This) {
   27712     return This->lpVtbl->ClearClientData(This);
   27713 }
   27714 static FORCEINLINE HRESULT IFileDialog2_SetFilter(IFileDialog2* This,IShellItemFilter *pFilter) {
   27715     return This->lpVtbl->SetFilter(This,pFilter);
   27716 }
   27717 /*** IFileDialog2 methods ***/
   27718 static FORCEINLINE HRESULT IFileDialog2_SetCancelButtonLabel(IFileDialog2* This,LPCWSTR pszLabel) {
   27719     return This->lpVtbl->SetCancelButtonLabel(This,pszLabel);
   27720 }
   27721 static FORCEINLINE HRESULT IFileDialog2_SetNavigationRoot(IFileDialog2* This,IShellItem *psi) {
   27722     return This->lpVtbl->SetNavigationRoot(This,psi);
   27723 }
   27724 #endif
   27725 #endif
   27726 
   27727 #endif
   27728 
   27729 HRESULT STDMETHODCALLTYPE IFileDialog2_SetCancelButtonLabel_Proxy(
   27730     IFileDialog2* This,
   27731     LPCWSTR pszLabel);
   27732 void __RPC_STUB IFileDialog2_SetCancelButtonLabel_Stub(
   27733     IRpcStubBuffer* This,
   27734     IRpcChannelBuffer* pRpcChannelBuffer,
   27735     PRPC_MESSAGE pRpcMessage,
   27736     DWORD* pdwStubPhase);
   27737 HRESULT STDMETHODCALLTYPE IFileDialog2_SetNavigationRoot_Proxy(
   27738     IFileDialog2* This,
   27739     IShellItem *psi);
   27740 void __RPC_STUB IFileDialog2_SetNavigationRoot_Stub(
   27741     IRpcStubBuffer* This,
   27742     IRpcChannelBuffer* pRpcChannelBuffer,
   27743     PRPC_MESSAGE pRpcMessage,
   27744     DWORD* pdwStubPhase);
   27745 
   27746 #endif  /* __IFileDialog2_INTERFACE_DEFINED__ */
   27747 
   27748 
   27749 typedef enum ASSOCIATIONLEVEL {
   27750     AL_MACHINE = 0,
   27751     AL_EFFECTIVE = 1,
   27752     AL_USER = 2
   27753 } ASSOCIATIONLEVEL;
   27754 
   27755 typedef enum ASSOCIATIONTYPE {
   27756     AT_FILEEXTENSION = 0,
   27757     AT_URLPROTOCOL = 1,
   27758     AT_STARTMENUCLIENT = 2,
   27759     AT_MIMETYPE = 3
   27760 } ASSOCIATIONTYPE;
   27761 
   27762 /*****************************************************************************
   27763  * IApplicationAssociationRegistration interface
   27764  */
   27765 #ifndef __IApplicationAssociationRegistration_INTERFACE_DEFINED__
   27766 #define __IApplicationAssociationRegistration_INTERFACE_DEFINED__
   27767 
   27768 DEFINE_GUID(IID_IApplicationAssociationRegistration, 0x4e530b0a, 0xe611, 0x4c77, 0xa3,0xac, 0x90,0x31,0xd0,0x22,0x28,0x1b);
   27769 #if defined(__cplusplus) && !defined(CINTERFACE)
   27770 MIDL_INTERFACE("4e530b0a-e611-4c77-a3ac-9031d022281b")
   27771 IApplicationAssociationRegistration : public IUnknown
   27772 {
   27773     virtual HRESULT STDMETHODCALLTYPE QueryCurrentDefault(
   27774         LPCWSTR pszQuery,
   27775         ASSOCIATIONTYPE atQueryType,
   27776         ASSOCIATIONLEVEL alQueryLevel,
   27777         LPWSTR *ppszAssociation) = 0;
   27778 
   27779     virtual HRESULT STDMETHODCALLTYPE QueryAppIsDefault(
   27780         LPCWSTR pszQuery,
   27781         ASSOCIATIONTYPE atQueryType,
   27782         ASSOCIATIONLEVEL alQueryLevel,
   27783         LPCWSTR pszAppRegistryName,
   27784         WINBOOL *pfDefault) = 0;
   27785 
   27786     virtual HRESULT STDMETHODCALLTYPE QueryAppIsDefaultAll(
   27787         ASSOCIATIONLEVEL alQueryLevel,
   27788         LPCWSTR pszAppRegistryName,
   27789         WINBOOL *pfDefault) = 0;
   27790 
   27791     virtual HRESULT STDMETHODCALLTYPE SetAppAsDefault(
   27792         LPCWSTR pszAppRegistryName,
   27793         LPCWSTR pszSet,
   27794         ASSOCIATIONTYPE atSetType) = 0;
   27795 
   27796     virtual HRESULT STDMETHODCALLTYPE SetAppAsDefaultAll(
   27797         LPCWSTR pszAppRegistryName) = 0;
   27798 
   27799     virtual HRESULT STDMETHODCALLTYPE ClearUserAssociations(
   27800         ) = 0;
   27801 
   27802 };
   27803 #ifdef __CRT_UUID_DECL
   27804 __CRT_UUID_DECL(IApplicationAssociationRegistration, 0x4e530b0a, 0xe611, 0x4c77, 0xa3,0xac, 0x90,0x31,0xd0,0x22,0x28,0x1b)
   27805 #endif
   27806 #else
   27807 typedef struct IApplicationAssociationRegistrationVtbl {
   27808     BEGIN_INTERFACE
   27809 
   27810     /*** IUnknown methods ***/
   27811     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   27812         IApplicationAssociationRegistration* This,
   27813         REFIID riid,
   27814         void **ppvObject);
   27815 
   27816     ULONG (STDMETHODCALLTYPE *AddRef)(
   27817         IApplicationAssociationRegistration* This);
   27818 
   27819     ULONG (STDMETHODCALLTYPE *Release)(
   27820         IApplicationAssociationRegistration* This);
   27821 
   27822     /*** IApplicationAssociationRegistration methods ***/
   27823     HRESULT (STDMETHODCALLTYPE *QueryCurrentDefault)(
   27824         IApplicationAssociationRegistration* This,
   27825         LPCWSTR pszQuery,
   27826         ASSOCIATIONTYPE atQueryType,
   27827         ASSOCIATIONLEVEL alQueryLevel,
   27828         LPWSTR *ppszAssociation);
   27829 
   27830     HRESULT (STDMETHODCALLTYPE *QueryAppIsDefault)(
   27831         IApplicationAssociationRegistration* This,
   27832         LPCWSTR pszQuery,
   27833         ASSOCIATIONTYPE atQueryType,
   27834         ASSOCIATIONLEVEL alQueryLevel,
   27835         LPCWSTR pszAppRegistryName,
   27836         WINBOOL *pfDefault);
   27837 
   27838     HRESULT (STDMETHODCALLTYPE *QueryAppIsDefaultAll)(
   27839         IApplicationAssociationRegistration* This,
   27840         ASSOCIATIONLEVEL alQueryLevel,
   27841         LPCWSTR pszAppRegistryName,
   27842         WINBOOL *pfDefault);
   27843 
   27844     HRESULT (STDMETHODCALLTYPE *SetAppAsDefault)(
   27845         IApplicationAssociationRegistration* This,
   27846         LPCWSTR pszAppRegistryName,
   27847         LPCWSTR pszSet,
   27848         ASSOCIATIONTYPE atSetType);
   27849 
   27850     HRESULT (STDMETHODCALLTYPE *SetAppAsDefaultAll)(
   27851         IApplicationAssociationRegistration* This,
   27852         LPCWSTR pszAppRegistryName);
   27853 
   27854     HRESULT (STDMETHODCALLTYPE *ClearUserAssociations)(
   27855         IApplicationAssociationRegistration* This);
   27856 
   27857     END_INTERFACE
   27858 } IApplicationAssociationRegistrationVtbl;
   27859 interface IApplicationAssociationRegistration {
   27860     CONST_VTBL IApplicationAssociationRegistrationVtbl* lpVtbl;
   27861 };
   27862 
   27863 #ifdef COBJMACROS
   27864 #ifndef WIDL_C_INLINE_WRAPPERS
   27865 /*** IUnknown methods ***/
   27866 #define IApplicationAssociationRegistration_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   27867 #define IApplicationAssociationRegistration_AddRef(This) (This)->lpVtbl->AddRef(This)
   27868 #define IApplicationAssociationRegistration_Release(This) (This)->lpVtbl->Release(This)
   27869 /*** IApplicationAssociationRegistration methods ***/
   27870 #define IApplicationAssociationRegistration_QueryCurrentDefault(This,pszQuery,atQueryType,alQueryLevel,ppszAssociation) (This)->lpVtbl->QueryCurrentDefault(This,pszQuery,atQueryType,alQueryLevel,ppszAssociation)
   27871 #define IApplicationAssociationRegistration_QueryAppIsDefault(This,pszQuery,atQueryType,alQueryLevel,pszAppRegistryName,pfDefault) (This)->lpVtbl->QueryAppIsDefault(This,pszQuery,atQueryType,alQueryLevel,pszAppRegistryName,pfDefault)
   27872 #define IApplicationAssociationRegistration_QueryAppIsDefaultAll(This,alQueryLevel,pszAppRegistryName,pfDefault) (This)->lpVtbl->QueryAppIsDefaultAll(This,alQueryLevel,pszAppRegistryName,pfDefault)
   27873 #define IApplicationAssociationRegistration_SetAppAsDefault(This,pszAppRegistryName,pszSet,atSetType) (This)->lpVtbl->SetAppAsDefault(This,pszAppRegistryName,pszSet,atSetType)
   27874 #define IApplicationAssociationRegistration_SetAppAsDefaultAll(This,pszAppRegistryName) (This)->lpVtbl->SetAppAsDefaultAll(This,pszAppRegistryName)
   27875 #define IApplicationAssociationRegistration_ClearUserAssociations(This) (This)->lpVtbl->ClearUserAssociations(This)
   27876 #else
   27877 /*** IUnknown methods ***/
   27878 static FORCEINLINE HRESULT IApplicationAssociationRegistration_QueryInterface(IApplicationAssociationRegistration* This,REFIID riid,void **ppvObject) {
   27879     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   27880 }
   27881 static FORCEINLINE ULONG IApplicationAssociationRegistration_AddRef(IApplicationAssociationRegistration* This) {
   27882     return This->lpVtbl->AddRef(This);
   27883 }
   27884 static FORCEINLINE ULONG IApplicationAssociationRegistration_Release(IApplicationAssociationRegistration* This) {
   27885     return This->lpVtbl->Release(This);
   27886 }
   27887 /*** IApplicationAssociationRegistration methods ***/
   27888 static FORCEINLINE HRESULT IApplicationAssociationRegistration_QueryCurrentDefault(IApplicationAssociationRegistration* This,LPCWSTR pszQuery,ASSOCIATIONTYPE atQueryType,ASSOCIATIONLEVEL alQueryLevel,LPWSTR *ppszAssociation) {
   27889     return This->lpVtbl->QueryCurrentDefault(This,pszQuery,atQueryType,alQueryLevel,ppszAssociation);
   27890 }
   27891 static FORCEINLINE HRESULT IApplicationAssociationRegistration_QueryAppIsDefault(IApplicationAssociationRegistration* This,LPCWSTR pszQuery,ASSOCIATIONTYPE atQueryType,ASSOCIATIONLEVEL alQueryLevel,LPCWSTR pszAppRegistryName,WINBOOL *pfDefault) {
   27892     return This->lpVtbl->QueryAppIsDefault(This,pszQuery,atQueryType,alQueryLevel,pszAppRegistryName,pfDefault);
   27893 }
   27894 static FORCEINLINE HRESULT IApplicationAssociationRegistration_QueryAppIsDefaultAll(IApplicationAssociationRegistration* This,ASSOCIATIONLEVEL alQueryLevel,LPCWSTR pszAppRegistryName,WINBOOL *pfDefault) {
   27895     return This->lpVtbl->QueryAppIsDefaultAll(This,alQueryLevel,pszAppRegistryName,pfDefault);
   27896 }
   27897 static FORCEINLINE HRESULT IApplicationAssociationRegistration_SetAppAsDefault(IApplicationAssociationRegistration* This,LPCWSTR pszAppRegistryName,LPCWSTR pszSet,ASSOCIATIONTYPE atSetType) {
   27898     return This->lpVtbl->SetAppAsDefault(This,pszAppRegistryName,pszSet,atSetType);
   27899 }
   27900 static FORCEINLINE HRESULT IApplicationAssociationRegistration_SetAppAsDefaultAll(IApplicationAssociationRegistration* This,LPCWSTR pszAppRegistryName) {
   27901     return This->lpVtbl->SetAppAsDefaultAll(This,pszAppRegistryName);
   27902 }
   27903 static FORCEINLINE HRESULT IApplicationAssociationRegistration_ClearUserAssociations(IApplicationAssociationRegistration* This) {
   27904     return This->lpVtbl->ClearUserAssociations(This);
   27905 }
   27906 #endif
   27907 #endif
   27908 
   27909 #endif
   27910 
   27911 HRESULT STDMETHODCALLTYPE IApplicationAssociationRegistration_QueryCurrentDefault_Proxy(
   27912     IApplicationAssociationRegistration* This,
   27913     LPCWSTR pszQuery,
   27914     ASSOCIATIONTYPE atQueryType,
   27915     ASSOCIATIONLEVEL alQueryLevel,
   27916     LPWSTR *ppszAssociation);
   27917 void __RPC_STUB IApplicationAssociationRegistration_QueryCurrentDefault_Stub(
   27918     IRpcStubBuffer* This,
   27919     IRpcChannelBuffer* pRpcChannelBuffer,
   27920     PRPC_MESSAGE pRpcMessage,
   27921     DWORD* pdwStubPhase);
   27922 HRESULT STDMETHODCALLTYPE IApplicationAssociationRegistration_QueryAppIsDefault_Proxy(
   27923     IApplicationAssociationRegistration* This,
   27924     LPCWSTR pszQuery,
   27925     ASSOCIATIONTYPE atQueryType,
   27926     ASSOCIATIONLEVEL alQueryLevel,
   27927     LPCWSTR pszAppRegistryName,
   27928     WINBOOL *pfDefault);
   27929 void __RPC_STUB IApplicationAssociationRegistration_QueryAppIsDefault_Stub(
   27930     IRpcStubBuffer* This,
   27931     IRpcChannelBuffer* pRpcChannelBuffer,
   27932     PRPC_MESSAGE pRpcMessage,
   27933     DWORD* pdwStubPhase);
   27934 HRESULT STDMETHODCALLTYPE IApplicationAssociationRegistration_QueryAppIsDefaultAll_Proxy(
   27935     IApplicationAssociationRegistration* This,
   27936     ASSOCIATIONLEVEL alQueryLevel,
   27937     LPCWSTR pszAppRegistryName,
   27938     WINBOOL *pfDefault);
   27939 void __RPC_STUB IApplicationAssociationRegistration_QueryAppIsDefaultAll_Stub(
   27940     IRpcStubBuffer* This,
   27941     IRpcChannelBuffer* pRpcChannelBuffer,
   27942     PRPC_MESSAGE pRpcMessage,
   27943     DWORD* pdwStubPhase);
   27944 HRESULT STDMETHODCALLTYPE IApplicationAssociationRegistration_SetAppAsDefault_Proxy(
   27945     IApplicationAssociationRegistration* This,
   27946     LPCWSTR pszAppRegistryName,
   27947     LPCWSTR pszSet,
   27948     ASSOCIATIONTYPE atSetType);
   27949 void __RPC_STUB IApplicationAssociationRegistration_SetAppAsDefault_Stub(
   27950     IRpcStubBuffer* This,
   27951     IRpcChannelBuffer* pRpcChannelBuffer,
   27952     PRPC_MESSAGE pRpcMessage,
   27953     DWORD* pdwStubPhase);
   27954 HRESULT STDMETHODCALLTYPE IApplicationAssociationRegistration_SetAppAsDefaultAll_Proxy(
   27955     IApplicationAssociationRegistration* This,
   27956     LPCWSTR pszAppRegistryName);
   27957 void __RPC_STUB IApplicationAssociationRegistration_SetAppAsDefaultAll_Stub(
   27958     IRpcStubBuffer* This,
   27959     IRpcChannelBuffer* pRpcChannelBuffer,
   27960     PRPC_MESSAGE pRpcMessage,
   27961     DWORD* pdwStubPhase);
   27962 HRESULT STDMETHODCALLTYPE IApplicationAssociationRegistration_ClearUserAssociations_Proxy(
   27963     IApplicationAssociationRegistration* This);
   27964 void __RPC_STUB IApplicationAssociationRegistration_ClearUserAssociations_Stub(
   27965     IRpcStubBuffer* This,
   27966     IRpcChannelBuffer* pRpcChannelBuffer,
   27967     PRPC_MESSAGE pRpcMessage,
   27968     DWORD* pdwStubPhase);
   27969 
   27970 #endif  /* __IApplicationAssociationRegistration_INTERFACE_DEFINED__ */
   27971 
   27972 
   27973 SHSTDAPI SHCreateAssociationRegistration(REFIID riid, void **ppv);
   27974 
   27975 /*****************************************************************************
   27976  * IApplicationAssociationRegistrationUI interface
   27977  */
   27978 #ifndef __IApplicationAssociationRegistrationUI_INTERFACE_DEFINED__
   27979 #define __IApplicationAssociationRegistrationUI_INTERFACE_DEFINED__
   27980 
   27981 DEFINE_GUID(IID_IApplicationAssociationRegistrationUI, 0x1f76a169, 0xf994, 0x40ac, 0x8f,0xc8, 0x09,0x59,0xe8,0x87,0x47,0x10);
   27982 #if defined(__cplusplus) && !defined(CINTERFACE)
   27983 MIDL_INTERFACE("1f76a169-f994-40ac-8fc8-0959e8874710")
   27984 IApplicationAssociationRegistrationUI : public IUnknown
   27985 {
   27986     virtual HRESULT STDMETHODCALLTYPE LaunchAdvancedAssociationUI(
   27987         LPCWSTR pszAppRegistryName) = 0;
   27988 
   27989 };
   27990 #ifdef __CRT_UUID_DECL
   27991 __CRT_UUID_DECL(IApplicationAssociationRegistrationUI, 0x1f76a169, 0xf994, 0x40ac, 0x8f,0xc8, 0x09,0x59,0xe8,0x87,0x47,0x10)
   27992 #endif
   27993 #else
   27994 typedef struct IApplicationAssociationRegistrationUIVtbl {
   27995     BEGIN_INTERFACE
   27996 
   27997     /*** IUnknown methods ***/
   27998     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   27999         IApplicationAssociationRegistrationUI* This,
   28000         REFIID riid,
   28001         void **ppvObject);
   28002 
   28003     ULONG (STDMETHODCALLTYPE *AddRef)(
   28004         IApplicationAssociationRegistrationUI* This);
   28005 
   28006     ULONG (STDMETHODCALLTYPE *Release)(
   28007         IApplicationAssociationRegistrationUI* This);
   28008 
   28009     /*** IApplicationAssociationRegistrationUI methods ***/
   28010     HRESULT (STDMETHODCALLTYPE *LaunchAdvancedAssociationUI)(
   28011         IApplicationAssociationRegistrationUI* This,
   28012         LPCWSTR pszAppRegistryName);
   28013 
   28014     END_INTERFACE
   28015 } IApplicationAssociationRegistrationUIVtbl;
   28016 interface IApplicationAssociationRegistrationUI {
   28017     CONST_VTBL IApplicationAssociationRegistrationUIVtbl* lpVtbl;
   28018 };
   28019 
   28020 #ifdef COBJMACROS
   28021 #ifndef WIDL_C_INLINE_WRAPPERS
   28022 /*** IUnknown methods ***/
   28023 #define IApplicationAssociationRegistrationUI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   28024 #define IApplicationAssociationRegistrationUI_AddRef(This) (This)->lpVtbl->AddRef(This)
   28025 #define IApplicationAssociationRegistrationUI_Release(This) (This)->lpVtbl->Release(This)
   28026 /*** IApplicationAssociationRegistrationUI methods ***/
   28027 #define IApplicationAssociationRegistrationUI_LaunchAdvancedAssociationUI(This,pszAppRegistryName) (This)->lpVtbl->LaunchAdvancedAssociationUI(This,pszAppRegistryName)
   28028 #else
   28029 /*** IUnknown methods ***/
   28030 static FORCEINLINE HRESULT IApplicationAssociationRegistrationUI_QueryInterface(IApplicationAssociationRegistrationUI* This,REFIID riid,void **ppvObject) {
   28031     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   28032 }
   28033 static FORCEINLINE ULONG IApplicationAssociationRegistrationUI_AddRef(IApplicationAssociationRegistrationUI* This) {
   28034     return This->lpVtbl->AddRef(This);
   28035 }
   28036 static FORCEINLINE ULONG IApplicationAssociationRegistrationUI_Release(IApplicationAssociationRegistrationUI* This) {
   28037     return This->lpVtbl->Release(This);
   28038 }
   28039 /*** IApplicationAssociationRegistrationUI methods ***/
   28040 static FORCEINLINE HRESULT IApplicationAssociationRegistrationUI_LaunchAdvancedAssociationUI(IApplicationAssociationRegistrationUI* This,LPCWSTR pszAppRegistryName) {
   28041     return This->lpVtbl->LaunchAdvancedAssociationUI(This,pszAppRegistryName);
   28042 }
   28043 #endif
   28044 #endif
   28045 
   28046 #endif
   28047 
   28048 HRESULT STDMETHODCALLTYPE IApplicationAssociationRegistrationUI_LaunchAdvancedAssociationUI_Proxy(
   28049     IApplicationAssociationRegistrationUI* This,
   28050     LPCWSTR pszAppRegistryName);
   28051 void __RPC_STUB IApplicationAssociationRegistrationUI_LaunchAdvancedAssociationUI_Stub(
   28052     IRpcStubBuffer* This,
   28053     IRpcChannelBuffer* pRpcChannelBuffer,
   28054     PRPC_MESSAGE pRpcMessage,
   28055     DWORD* pdwStubPhase);
   28056 
   28057 #endif  /* __IApplicationAssociationRegistrationUI_INTERFACE_DEFINED__ */
   28058 
   28059 #endif
   28060 
   28061 #include <pshpack1.h>
   28062 typedef struct DELEGATEITEMID {
   28063     WORD cbSize;
   28064     WORD wOuter;
   28065     WORD cbInner;
   28066     BYTE rgb[1];
   28067 } DELEGATEITEMID;
   28068 #include <poppack.h>
   28069 
   28070 typedef const UNALIGNED DELEGATEITEMID *PCDELEGATEITEMID;
   28071 typedef UNALIGNED DELEGATEITEMID *PDELEGATEITEMID;
   28072 
   28073 /*****************************************************************************
   28074  * IDelegateFolder interface
   28075  */
   28076 #ifndef __IDelegateFolder_INTERFACE_DEFINED__
   28077 #define __IDelegateFolder_INTERFACE_DEFINED__
   28078 
   28079 DEFINE_GUID(IID_IDelegateFolder, 0xadd8ba80, 0x002b, 0x11d0, 0x8f,0x0f, 0x00,0xc0,0x4f,0xd7,0xd0,0x62);
   28080 #if defined(__cplusplus) && !defined(CINTERFACE)
   28081 MIDL_INTERFACE("add8ba80-002b-11d0-8f0f-00c04fd7d062")
   28082 IDelegateFolder : public IUnknown
   28083 {
   28084     virtual HRESULT STDMETHODCALLTYPE SetItemAlloc(
   28085         IMalloc *pmalloc) = 0;
   28086 
   28087 };
   28088 #ifdef __CRT_UUID_DECL
   28089 __CRT_UUID_DECL(IDelegateFolder, 0xadd8ba80, 0x002b, 0x11d0, 0x8f,0x0f, 0x00,0xc0,0x4f,0xd7,0xd0,0x62)
   28090 #endif
   28091 #else
   28092 typedef struct IDelegateFolderVtbl {
   28093     BEGIN_INTERFACE
   28094 
   28095     /*** IUnknown methods ***/
   28096     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   28097         IDelegateFolder* This,
   28098         REFIID riid,
   28099         void **ppvObject);
   28100 
   28101     ULONG (STDMETHODCALLTYPE *AddRef)(
   28102         IDelegateFolder* This);
   28103 
   28104     ULONG (STDMETHODCALLTYPE *Release)(
   28105         IDelegateFolder* This);
   28106 
   28107     /*** IDelegateFolder methods ***/
   28108     HRESULT (STDMETHODCALLTYPE *SetItemAlloc)(
   28109         IDelegateFolder* This,
   28110         IMalloc *pmalloc);
   28111 
   28112     END_INTERFACE
   28113 } IDelegateFolderVtbl;
   28114 interface IDelegateFolder {
   28115     CONST_VTBL IDelegateFolderVtbl* lpVtbl;
   28116 };
   28117 
   28118 #ifdef COBJMACROS
   28119 #ifndef WIDL_C_INLINE_WRAPPERS
   28120 /*** IUnknown methods ***/
   28121 #define IDelegateFolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   28122 #define IDelegateFolder_AddRef(This) (This)->lpVtbl->AddRef(This)
   28123 #define IDelegateFolder_Release(This) (This)->lpVtbl->Release(This)
   28124 /*** IDelegateFolder methods ***/
   28125 #define IDelegateFolder_SetItemAlloc(This,pmalloc) (This)->lpVtbl->SetItemAlloc(This,pmalloc)
   28126 #else
   28127 /*** IUnknown methods ***/
   28128 static FORCEINLINE HRESULT IDelegateFolder_QueryInterface(IDelegateFolder* This,REFIID riid,void **ppvObject) {
   28129     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   28130 }
   28131 static FORCEINLINE ULONG IDelegateFolder_AddRef(IDelegateFolder* This) {
   28132     return This->lpVtbl->AddRef(This);
   28133 }
   28134 static FORCEINLINE ULONG IDelegateFolder_Release(IDelegateFolder* This) {
   28135     return This->lpVtbl->Release(This);
   28136 }
   28137 /*** IDelegateFolder methods ***/
   28138 static FORCEINLINE HRESULT IDelegateFolder_SetItemAlloc(IDelegateFolder* This,IMalloc *pmalloc) {
   28139     return This->lpVtbl->SetItemAlloc(This,pmalloc);
   28140 }
   28141 #endif
   28142 #endif
   28143 
   28144 #endif
   28145 
   28146 HRESULT STDMETHODCALLTYPE IDelegateFolder_SetItemAlloc_Proxy(
   28147     IDelegateFolder* This,
   28148     IMalloc *pmalloc);
   28149 void __RPC_STUB IDelegateFolder_SetItemAlloc_Stub(
   28150     IRpcStubBuffer* This,
   28151     IRpcChannelBuffer* pRpcChannelBuffer,
   28152     PRPC_MESSAGE pRpcMessage,
   28153     DWORD* pdwStubPhase);
   28154 
   28155 #endif  /* __IDelegateFolder_INTERFACE_DEFINED__ */
   28156 
   28157 
   28158 #if _WIN32_IE >= _WIN32_IE_IE60
   28159 /*****************************************************************************
   28160  * IBrowserFrameOptions interface
   28161  */
   28162 #ifndef __IBrowserFrameOptions_INTERFACE_DEFINED__
   28163 #define __IBrowserFrameOptions_INTERFACE_DEFINED__
   28164 
   28165 typedef IBrowserFrameOptions *LPBROWSERFRAMEOPTIONS;
   28166 
   28167 enum _BROWSERFRAMEOPTIONS {
   28168     BFO_NONE = 0x0,
   28169     BFO_BROWSER_PERSIST_SETTINGS = 0x1,
   28170     BFO_RENAME_FOLDER_OPTIONS_TOINTERNET = 0x2,
   28171     BFO_BOTH_OPTIONS = 0x4,
   28172     BIF_PREFER_INTERNET_SHORTCUT = 0x8,
   28173     BFO_BROWSE_NO_IN_NEW_PROCESS = 0x10,
   28174     BFO_ENABLE_HYPERLINK_TRACKING = 0x20,
   28175     BFO_USE_IE_OFFLINE_SUPPORT = 0x40,
   28176     BFO_SUBSTITUE_INTERNET_START_PAGE = 0x80,
   28177     BFO_USE_IE_LOGOBANDING = 0x100,
   28178     BFO_ADD_IE_TOCAPTIONBAR = 0x200,
   28179     BFO_USE_DIALUP_REF = 0x400,
   28180     BFO_USE_IE_TOOLBAR = 0x800,
   28181     BFO_NO_PARENT_FOLDER_SUPPORT = 0x1000,
   28182     BFO_NO_REOPEN_NEXT_RESTART = 0x2000,
   28183     BFO_GO_HOME_PAGE = 0x4000,
   28184     BFO_PREFER_IEPROCESS = 0x8000,
   28185     BFO_SHOW_NAVIGATION_CANCELLED = 0x10000,
   28186     BFO_USE_IE_STATUSBAR = 0x20000,
   28187     BFO_QUERY_ALL = (int)0xffffffff
   28188 };
   28189 
   28190 
   28191 typedef DWORD BROWSERFRAMEOPTIONS;
   28192 
   28193 DEFINE_GUID(IID_IBrowserFrameOptions, 0x10df43c8, 0x1dbe, 0x11d3, 0x8b,0x34, 0x00,0x60,0x97,0xdf,0x5b,0xd4);
   28194 #if defined(__cplusplus) && !defined(CINTERFACE)
   28195 MIDL_INTERFACE("10df43c8-1dbe-11d3-8b34-006097df5bd4")
   28196 IBrowserFrameOptions : public IUnknown
   28197 {
   28198     virtual HRESULT STDMETHODCALLTYPE GetFrameOptions(
   28199         BROWSERFRAMEOPTIONS dwMask,
   28200         BROWSERFRAMEOPTIONS *pdwOptions) = 0;
   28201 
   28202 };
   28203 #ifdef __CRT_UUID_DECL
   28204 __CRT_UUID_DECL(IBrowserFrameOptions, 0x10df43c8, 0x1dbe, 0x11d3, 0x8b,0x34, 0x00,0x60,0x97,0xdf,0x5b,0xd4)
   28205 #endif
   28206 #else
   28207 typedef struct IBrowserFrameOptionsVtbl {
   28208     BEGIN_INTERFACE
   28209 
   28210     /*** IUnknown methods ***/
   28211     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   28212         IBrowserFrameOptions* This,
   28213         REFIID riid,
   28214         void **ppvObject);
   28215 
   28216     ULONG (STDMETHODCALLTYPE *AddRef)(
   28217         IBrowserFrameOptions* This);
   28218 
   28219     ULONG (STDMETHODCALLTYPE *Release)(
   28220         IBrowserFrameOptions* This);
   28221 
   28222     /*** IBrowserFrameOptions methods ***/
   28223     HRESULT (STDMETHODCALLTYPE *GetFrameOptions)(
   28224         IBrowserFrameOptions* This,
   28225         BROWSERFRAMEOPTIONS dwMask,
   28226         BROWSERFRAMEOPTIONS *pdwOptions);
   28227 
   28228     END_INTERFACE
   28229 } IBrowserFrameOptionsVtbl;
   28230 interface IBrowserFrameOptions {
   28231     CONST_VTBL IBrowserFrameOptionsVtbl* lpVtbl;
   28232 };
   28233 
   28234 #ifdef COBJMACROS
   28235 #ifndef WIDL_C_INLINE_WRAPPERS
   28236 /*** IUnknown methods ***/
   28237 #define IBrowserFrameOptions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   28238 #define IBrowserFrameOptions_AddRef(This) (This)->lpVtbl->AddRef(This)
   28239 #define IBrowserFrameOptions_Release(This) (This)->lpVtbl->Release(This)
   28240 /*** IBrowserFrameOptions methods ***/
   28241 #define IBrowserFrameOptions_GetFrameOptions(This,dwMask,pdwOptions) (This)->lpVtbl->GetFrameOptions(This,dwMask,pdwOptions)
   28242 #else
   28243 /*** IUnknown methods ***/
   28244 static FORCEINLINE HRESULT IBrowserFrameOptions_QueryInterface(IBrowserFrameOptions* This,REFIID riid,void **ppvObject) {
   28245     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   28246 }
   28247 static FORCEINLINE ULONG IBrowserFrameOptions_AddRef(IBrowserFrameOptions* This) {
   28248     return This->lpVtbl->AddRef(This);
   28249 }
   28250 static FORCEINLINE ULONG IBrowserFrameOptions_Release(IBrowserFrameOptions* This) {
   28251     return This->lpVtbl->Release(This);
   28252 }
   28253 /*** IBrowserFrameOptions methods ***/
   28254 static FORCEINLINE HRESULT IBrowserFrameOptions_GetFrameOptions(IBrowserFrameOptions* This,BROWSERFRAMEOPTIONS dwMask,BROWSERFRAMEOPTIONS *pdwOptions) {
   28255     return This->lpVtbl->GetFrameOptions(This,dwMask,pdwOptions);
   28256 }
   28257 #endif
   28258 #endif
   28259 
   28260 #endif
   28261 
   28262 HRESULT STDMETHODCALLTYPE IBrowserFrameOptions_GetFrameOptions_Proxy(
   28263     IBrowserFrameOptions* This,
   28264     BROWSERFRAMEOPTIONS dwMask,
   28265     BROWSERFRAMEOPTIONS *pdwOptions);
   28266 void __RPC_STUB IBrowserFrameOptions_GetFrameOptions_Stub(
   28267     IRpcStubBuffer* This,
   28268     IRpcChannelBuffer* pRpcChannelBuffer,
   28269     PRPC_MESSAGE pRpcMessage,
   28270     DWORD* pdwStubPhase);
   28271 
   28272 #endif  /* __IBrowserFrameOptions_INTERFACE_DEFINED__ */
   28273 
   28274 #endif
   28275 
   28276 #if _WIN32_IE >= _WIN32_IE_IE60SP2
   28277 typedef enum NWMF {
   28278     NWMF_UNLOADING = 0x1,
   28279     NWMF_USERINITED = 0x2,
   28280     NWMF_FIRST = 0x4,
   28281     NWMF_OVERRIDEKEY = 0x8,
   28282     NWMF_SHOWHELP = 0x10,
   28283     NWMF_HTMLDIALOG = 0x20,
   28284     NWMF_FROMDIALOGCHILD = 0x40,
   28285     NWMF_USERREQUESTED = 0x80,
   28286     NWMF_USERALLOWED = 0x100,
   28287     NWMF_FORCEWINDOW = 0x10000,
   28288     NWMF_FORCETAB = 0x20000,
   28289     NWMF_SUGGESTWINDOW = 0x40000,
   28290     NWMF_SUGGESTTAB = 0x80000,
   28291     NWMF_INACTIVETAB = 0x100000
   28292 } NWMF;
   28293 
   28294 DEFINE_ENUM_FLAG_OPERATORS(NWMF)
   28295 
   28296 #define SID_SNewWindowManager IID_INewWindowManager
   28297 
   28298 /*****************************************************************************
   28299  * INewWindowManager interface
   28300  */
   28301 #ifndef __INewWindowManager_INTERFACE_DEFINED__
   28302 #define __INewWindowManager_INTERFACE_DEFINED__
   28303 
   28304 DEFINE_GUID(IID_INewWindowManager, 0xd2bc4c84, 0x3f72, 0x4a52, 0xa6,0x04, 0x7b,0xcb,0xf3,0x98,0x2c,0xbb);
   28305 #if defined(__cplusplus) && !defined(CINTERFACE)
   28306 MIDL_INTERFACE("d2bc4c84-3f72-4a52-a604-7bcbf3982cbb")
   28307 INewWindowManager : public IUnknown
   28308 {
   28309     virtual HRESULT STDMETHODCALLTYPE EvaluateNewWindow(
   28310         LPCWSTR pszUrl,
   28311         LPCWSTR pszName,
   28312         LPCWSTR pszUrlContext,
   28313         LPCWSTR pszFeatures,
   28314         WINBOOL fReplace,
   28315         DWORD dwFlags,
   28316         DWORD dwUserActionTime) = 0;
   28317 
   28318 };
   28319 #ifdef __CRT_UUID_DECL
   28320 __CRT_UUID_DECL(INewWindowManager, 0xd2bc4c84, 0x3f72, 0x4a52, 0xa6,0x04, 0x7b,0xcb,0xf3,0x98,0x2c,0xbb)
   28321 #endif
   28322 #else
   28323 typedef struct INewWindowManagerVtbl {
   28324     BEGIN_INTERFACE
   28325 
   28326     /*** IUnknown methods ***/
   28327     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   28328         INewWindowManager* This,
   28329         REFIID riid,
   28330         void **ppvObject);
   28331 
   28332     ULONG (STDMETHODCALLTYPE *AddRef)(
   28333         INewWindowManager* This);
   28334 
   28335     ULONG (STDMETHODCALLTYPE *Release)(
   28336         INewWindowManager* This);
   28337 
   28338     /*** INewWindowManager methods ***/
   28339     HRESULT (STDMETHODCALLTYPE *EvaluateNewWindow)(
   28340         INewWindowManager* This,
   28341         LPCWSTR pszUrl,
   28342         LPCWSTR pszName,
   28343         LPCWSTR pszUrlContext,
   28344         LPCWSTR pszFeatures,
   28345         WINBOOL fReplace,
   28346         DWORD dwFlags,
   28347         DWORD dwUserActionTime);
   28348 
   28349     END_INTERFACE
   28350 } INewWindowManagerVtbl;
   28351 interface INewWindowManager {
   28352     CONST_VTBL INewWindowManagerVtbl* lpVtbl;
   28353 };
   28354 
   28355 #ifdef COBJMACROS
   28356 #ifndef WIDL_C_INLINE_WRAPPERS
   28357 /*** IUnknown methods ***/
   28358 #define INewWindowManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   28359 #define INewWindowManager_AddRef(This) (This)->lpVtbl->AddRef(This)
   28360 #define INewWindowManager_Release(This) (This)->lpVtbl->Release(This)
   28361 /*** INewWindowManager methods ***/
   28362 #define INewWindowManager_EvaluateNewWindow(This,pszUrl,pszName,pszUrlContext,pszFeatures,fReplace,dwFlags,dwUserActionTime) (This)->lpVtbl->EvaluateNewWindow(This,pszUrl,pszName,pszUrlContext,pszFeatures,fReplace,dwFlags,dwUserActionTime)
   28363 #else
   28364 /*** IUnknown methods ***/
   28365 static FORCEINLINE HRESULT INewWindowManager_QueryInterface(INewWindowManager* This,REFIID riid,void **ppvObject) {
   28366     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   28367 }
   28368 static FORCEINLINE ULONG INewWindowManager_AddRef(INewWindowManager* This) {
   28369     return This->lpVtbl->AddRef(This);
   28370 }
   28371 static FORCEINLINE ULONG INewWindowManager_Release(INewWindowManager* This) {
   28372     return This->lpVtbl->Release(This);
   28373 }
   28374 /*** INewWindowManager methods ***/
   28375 static FORCEINLINE HRESULT INewWindowManager_EvaluateNewWindow(INewWindowManager* This,LPCWSTR pszUrl,LPCWSTR pszName,LPCWSTR pszUrlContext,LPCWSTR pszFeatures,WINBOOL fReplace,DWORD dwFlags,DWORD dwUserActionTime) {
   28376     return This->lpVtbl->EvaluateNewWindow(This,pszUrl,pszName,pszUrlContext,pszFeatures,fReplace,dwFlags,dwUserActionTime);
   28377 }
   28378 #endif
   28379 #endif
   28380 
   28381 #endif
   28382 
   28383 HRESULT STDMETHODCALLTYPE INewWindowManager_EvaluateNewWindow_Proxy(
   28384     INewWindowManager* This,
   28385     LPCWSTR pszUrl,
   28386     LPCWSTR pszName,
   28387     LPCWSTR pszUrlContext,
   28388     LPCWSTR pszFeatures,
   28389     WINBOOL fReplace,
   28390     DWORD dwFlags,
   28391     DWORD dwUserActionTime);
   28392 void __RPC_STUB INewWindowManager_EvaluateNewWindow_Stub(
   28393     IRpcStubBuffer* This,
   28394     IRpcChannelBuffer* pRpcChannelBuffer,
   28395     PRPC_MESSAGE pRpcMessage,
   28396     DWORD* pdwStubPhase);
   28397 
   28398 #endif  /* __INewWindowManager_INTERFACE_DEFINED__ */
   28399 
   28400 
   28401 /*****************************************************************************
   28402  * IAttachmentExecute interface
   28403  */
   28404 #ifndef __IAttachmentExecute_INTERFACE_DEFINED__
   28405 #define __IAttachmentExecute_INTERFACE_DEFINED__
   28406 
   28407 typedef enum ATTACHMENT_PROMPT {
   28408     ATTACHMENT_PROMPT_NONE = 0x0,
   28409     ATTACHMENT_PROMPT_SAVE = 0x1,
   28410     ATTACHMENT_PROMPT_EXEC = 0x2,
   28411     ATTACHMENT_PROMPT_EXEC_OR_SAVE = 0x3
   28412 } ATTACHMENT_PROMPT;
   28413 
   28414 typedef enum ATTACHMENT_ACTION {
   28415     ATTACHMENT_ACTION_CANCEL = 0x0,
   28416     ATTACHMENT_ACTION_SAVE = 0x1,
   28417     ATTACHMENT_ACTION_EXEC = 0x2
   28418 } ATTACHMENT_ACTION;
   28419 
   28420 DEFINE_GUID(IID_IAttachmentExecute, 0x73db1241, 0x1e85, 0x4581, 0x8e,0x4f, 0xa8,0x1e,0x1d,0x0f,0x8c,0x57);
   28421 #if defined(__cplusplus) && !defined(CINTERFACE)
   28422 MIDL_INTERFACE("73db1241-1e85-4581-8e4f-a81e1d0f8c57")
   28423 IAttachmentExecute : public IUnknown
   28424 {
   28425     virtual HRESULT STDMETHODCALLTYPE SetClientTitle(
   28426         LPCWSTR pszTitle) = 0;
   28427 
   28428     virtual HRESULT STDMETHODCALLTYPE SetClientGuid(
   28429         REFGUID guid) = 0;
   28430 
   28431     virtual HRESULT STDMETHODCALLTYPE SetLocalPath(
   28432         LPCWSTR pszLocalPath) = 0;
   28433 
   28434     virtual HRESULT STDMETHODCALLTYPE SetFileName(
   28435         LPCWSTR pszFileName) = 0;
   28436 
   28437     virtual HRESULT STDMETHODCALLTYPE SetSource(
   28438         LPCWSTR pszSource) = 0;
   28439 
   28440     virtual HRESULT STDMETHODCALLTYPE SetReferrer(
   28441         LPCWSTR pszReferrer) = 0;
   28442 
   28443     virtual HRESULT STDMETHODCALLTYPE CheckPolicy(
   28444         ) = 0;
   28445 
   28446     virtual HRESULT STDMETHODCALLTYPE Prompt(
   28447         HWND hwnd,
   28448         ATTACHMENT_PROMPT prompt,
   28449         ATTACHMENT_ACTION *paction) = 0;
   28450 
   28451     virtual HRESULT STDMETHODCALLTYPE Save(
   28452         ) = 0;
   28453 
   28454     virtual HRESULT STDMETHODCALLTYPE Execute(
   28455         HWND hwnd,
   28456         LPCWSTR pszVerb,
   28457         HANDLE *phProcess) = 0;
   28458 
   28459     virtual HRESULT STDMETHODCALLTYPE SaveWithUI(
   28460         HWND hwnd) = 0;
   28461 
   28462     virtual HRESULT STDMETHODCALLTYPE ClearClientState(
   28463         ) = 0;
   28464 
   28465 };
   28466 #ifdef __CRT_UUID_DECL
   28467 __CRT_UUID_DECL(IAttachmentExecute, 0x73db1241, 0x1e85, 0x4581, 0x8e,0x4f, 0xa8,0x1e,0x1d,0x0f,0x8c,0x57)
   28468 #endif
   28469 #else
   28470 typedef struct IAttachmentExecuteVtbl {
   28471     BEGIN_INTERFACE
   28472 
   28473     /*** IUnknown methods ***/
   28474     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   28475         IAttachmentExecute* This,
   28476         REFIID riid,
   28477         void **ppvObject);
   28478 
   28479     ULONG (STDMETHODCALLTYPE *AddRef)(
   28480         IAttachmentExecute* This);
   28481 
   28482     ULONG (STDMETHODCALLTYPE *Release)(
   28483         IAttachmentExecute* This);
   28484 
   28485     /*** IAttachmentExecute methods ***/
   28486     HRESULT (STDMETHODCALLTYPE *SetClientTitle)(
   28487         IAttachmentExecute* This,
   28488         LPCWSTR pszTitle);
   28489 
   28490     HRESULT (STDMETHODCALLTYPE *SetClientGuid)(
   28491         IAttachmentExecute* This,
   28492         REFGUID guid);
   28493 
   28494     HRESULT (STDMETHODCALLTYPE *SetLocalPath)(
   28495         IAttachmentExecute* This,
   28496         LPCWSTR pszLocalPath);
   28497 
   28498     HRESULT (STDMETHODCALLTYPE *SetFileName)(
   28499         IAttachmentExecute* This,
   28500         LPCWSTR pszFileName);
   28501 
   28502     HRESULT (STDMETHODCALLTYPE *SetSource)(
   28503         IAttachmentExecute* This,
   28504         LPCWSTR pszSource);
   28505 
   28506     HRESULT (STDMETHODCALLTYPE *SetReferrer)(
   28507         IAttachmentExecute* This,
   28508         LPCWSTR pszReferrer);
   28509 
   28510     HRESULT (STDMETHODCALLTYPE *CheckPolicy)(
   28511         IAttachmentExecute* This);
   28512 
   28513     HRESULT (STDMETHODCALLTYPE *Prompt)(
   28514         IAttachmentExecute* This,
   28515         HWND hwnd,
   28516         ATTACHMENT_PROMPT prompt,
   28517         ATTACHMENT_ACTION *paction);
   28518 
   28519     HRESULT (STDMETHODCALLTYPE *Save)(
   28520         IAttachmentExecute* This);
   28521 
   28522     HRESULT (STDMETHODCALLTYPE *Execute)(
   28523         IAttachmentExecute* This,
   28524         HWND hwnd,
   28525         LPCWSTR pszVerb,
   28526         HANDLE *phProcess);
   28527 
   28528     HRESULT (STDMETHODCALLTYPE *SaveWithUI)(
   28529         IAttachmentExecute* This,
   28530         HWND hwnd);
   28531 
   28532     HRESULT (STDMETHODCALLTYPE *ClearClientState)(
   28533         IAttachmentExecute* This);
   28534 
   28535     END_INTERFACE
   28536 } IAttachmentExecuteVtbl;
   28537 interface IAttachmentExecute {
   28538     CONST_VTBL IAttachmentExecuteVtbl* lpVtbl;
   28539 };
   28540 
   28541 #ifdef COBJMACROS
   28542 #ifndef WIDL_C_INLINE_WRAPPERS
   28543 /*** IUnknown methods ***/
   28544 #define IAttachmentExecute_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   28545 #define IAttachmentExecute_AddRef(This) (This)->lpVtbl->AddRef(This)
   28546 #define IAttachmentExecute_Release(This) (This)->lpVtbl->Release(This)
   28547 /*** IAttachmentExecute methods ***/
   28548 #define IAttachmentExecute_SetClientTitle(This,pszTitle) (This)->lpVtbl->SetClientTitle(This,pszTitle)
   28549 #define IAttachmentExecute_SetClientGuid(This,guid) (This)->lpVtbl->SetClientGuid(This,guid)
   28550 #define IAttachmentExecute_SetLocalPath(This,pszLocalPath) (This)->lpVtbl->SetLocalPath(This,pszLocalPath)
   28551 #define IAttachmentExecute_SetFileName(This,pszFileName) (This)->lpVtbl->SetFileName(This,pszFileName)
   28552 #define IAttachmentExecute_SetSource(This,pszSource) (This)->lpVtbl->SetSource(This,pszSource)
   28553 #define IAttachmentExecute_SetReferrer(This,pszReferrer) (This)->lpVtbl->SetReferrer(This,pszReferrer)
   28554 #define IAttachmentExecute_CheckPolicy(This) (This)->lpVtbl->CheckPolicy(This)
   28555 #define IAttachmentExecute_Prompt(This,hwnd,prompt,paction) (This)->lpVtbl->Prompt(This,hwnd,prompt,paction)
   28556 #define IAttachmentExecute_Save(This) (This)->lpVtbl->Save(This)
   28557 #define IAttachmentExecute_Execute(This,hwnd,pszVerb,phProcess) (This)->lpVtbl->Execute(This,hwnd,pszVerb,phProcess)
   28558 #define IAttachmentExecute_SaveWithUI(This,hwnd) (This)->lpVtbl->SaveWithUI(This,hwnd)
   28559 #define IAttachmentExecute_ClearClientState(This) (This)->lpVtbl->ClearClientState(This)
   28560 #else
   28561 /*** IUnknown methods ***/
   28562 static FORCEINLINE HRESULT IAttachmentExecute_QueryInterface(IAttachmentExecute* This,REFIID riid,void **ppvObject) {
   28563     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   28564 }
   28565 static FORCEINLINE ULONG IAttachmentExecute_AddRef(IAttachmentExecute* This) {
   28566     return This->lpVtbl->AddRef(This);
   28567 }
   28568 static FORCEINLINE ULONG IAttachmentExecute_Release(IAttachmentExecute* This) {
   28569     return This->lpVtbl->Release(This);
   28570 }
   28571 /*** IAttachmentExecute methods ***/
   28572 static FORCEINLINE HRESULT IAttachmentExecute_SetClientTitle(IAttachmentExecute* This,LPCWSTR pszTitle) {
   28573     return This->lpVtbl->SetClientTitle(This,pszTitle);
   28574 }
   28575 static FORCEINLINE HRESULT IAttachmentExecute_SetClientGuid(IAttachmentExecute* This,REFGUID guid) {
   28576     return This->lpVtbl->SetClientGuid(This,guid);
   28577 }
   28578 static FORCEINLINE HRESULT IAttachmentExecute_SetLocalPath(IAttachmentExecute* This,LPCWSTR pszLocalPath) {
   28579     return This->lpVtbl->SetLocalPath(This,pszLocalPath);
   28580 }
   28581 static FORCEINLINE HRESULT IAttachmentExecute_SetFileName(IAttachmentExecute* This,LPCWSTR pszFileName) {
   28582     return This->lpVtbl->SetFileName(This,pszFileName);
   28583 }
   28584 static FORCEINLINE HRESULT IAttachmentExecute_SetSource(IAttachmentExecute* This,LPCWSTR pszSource) {
   28585     return This->lpVtbl->SetSource(This,pszSource);
   28586 }
   28587 static FORCEINLINE HRESULT IAttachmentExecute_SetReferrer(IAttachmentExecute* This,LPCWSTR pszReferrer) {
   28588     return This->lpVtbl->SetReferrer(This,pszReferrer);
   28589 }
   28590 static FORCEINLINE HRESULT IAttachmentExecute_CheckPolicy(IAttachmentExecute* This) {
   28591     return This->lpVtbl->CheckPolicy(This);
   28592 }
   28593 static FORCEINLINE HRESULT IAttachmentExecute_Prompt(IAttachmentExecute* This,HWND hwnd,ATTACHMENT_PROMPT prompt,ATTACHMENT_ACTION *paction) {
   28594     return This->lpVtbl->Prompt(This,hwnd,prompt,paction);
   28595 }
   28596 static FORCEINLINE HRESULT IAttachmentExecute_Save(IAttachmentExecute* This) {
   28597     return This->lpVtbl->Save(This);
   28598 }
   28599 static FORCEINLINE HRESULT IAttachmentExecute_Execute(IAttachmentExecute* This,HWND hwnd,LPCWSTR pszVerb,HANDLE *phProcess) {
   28600     return This->lpVtbl->Execute(This,hwnd,pszVerb,phProcess);
   28601 }
   28602 static FORCEINLINE HRESULT IAttachmentExecute_SaveWithUI(IAttachmentExecute* This,HWND hwnd) {
   28603     return This->lpVtbl->SaveWithUI(This,hwnd);
   28604 }
   28605 static FORCEINLINE HRESULT IAttachmentExecute_ClearClientState(IAttachmentExecute* This) {
   28606     return This->lpVtbl->ClearClientState(This);
   28607 }
   28608 #endif
   28609 #endif
   28610 
   28611 #endif
   28612 
   28613 HRESULT STDMETHODCALLTYPE IAttachmentExecute_SetClientTitle_Proxy(
   28614     IAttachmentExecute* This,
   28615     LPCWSTR pszTitle);
   28616 void __RPC_STUB IAttachmentExecute_SetClientTitle_Stub(
   28617     IRpcStubBuffer* This,
   28618     IRpcChannelBuffer* pRpcChannelBuffer,
   28619     PRPC_MESSAGE pRpcMessage,
   28620     DWORD* pdwStubPhase);
   28621 HRESULT STDMETHODCALLTYPE IAttachmentExecute_SetClientGuid_Proxy(
   28622     IAttachmentExecute* This,
   28623     REFGUID guid);
   28624 void __RPC_STUB IAttachmentExecute_SetClientGuid_Stub(
   28625     IRpcStubBuffer* This,
   28626     IRpcChannelBuffer* pRpcChannelBuffer,
   28627     PRPC_MESSAGE pRpcMessage,
   28628     DWORD* pdwStubPhase);
   28629 HRESULT STDMETHODCALLTYPE IAttachmentExecute_SetLocalPath_Proxy(
   28630     IAttachmentExecute* This,
   28631     LPCWSTR pszLocalPath);
   28632 void __RPC_STUB IAttachmentExecute_SetLocalPath_Stub(
   28633     IRpcStubBuffer* This,
   28634     IRpcChannelBuffer* pRpcChannelBuffer,
   28635     PRPC_MESSAGE pRpcMessage,
   28636     DWORD* pdwStubPhase);
   28637 HRESULT STDMETHODCALLTYPE IAttachmentExecute_SetFileName_Proxy(
   28638     IAttachmentExecute* This,
   28639     LPCWSTR pszFileName);
   28640 void __RPC_STUB IAttachmentExecute_SetFileName_Stub(
   28641     IRpcStubBuffer* This,
   28642     IRpcChannelBuffer* pRpcChannelBuffer,
   28643     PRPC_MESSAGE pRpcMessage,
   28644     DWORD* pdwStubPhase);
   28645 HRESULT STDMETHODCALLTYPE IAttachmentExecute_SetSource_Proxy(
   28646     IAttachmentExecute* This,
   28647     LPCWSTR pszSource);
   28648 void __RPC_STUB IAttachmentExecute_SetSource_Stub(
   28649     IRpcStubBuffer* This,
   28650     IRpcChannelBuffer* pRpcChannelBuffer,
   28651     PRPC_MESSAGE pRpcMessage,
   28652     DWORD* pdwStubPhase);
   28653 HRESULT STDMETHODCALLTYPE IAttachmentExecute_SetReferrer_Proxy(
   28654     IAttachmentExecute* This,
   28655     LPCWSTR pszReferrer);
   28656 void __RPC_STUB IAttachmentExecute_SetReferrer_Stub(
   28657     IRpcStubBuffer* This,
   28658     IRpcChannelBuffer* pRpcChannelBuffer,
   28659     PRPC_MESSAGE pRpcMessage,
   28660     DWORD* pdwStubPhase);
   28661 HRESULT STDMETHODCALLTYPE IAttachmentExecute_CheckPolicy_Proxy(
   28662     IAttachmentExecute* This);
   28663 void __RPC_STUB IAttachmentExecute_CheckPolicy_Stub(
   28664     IRpcStubBuffer* This,
   28665     IRpcChannelBuffer* pRpcChannelBuffer,
   28666     PRPC_MESSAGE pRpcMessage,
   28667     DWORD* pdwStubPhase);
   28668 HRESULT STDMETHODCALLTYPE IAttachmentExecute_Prompt_Proxy(
   28669     IAttachmentExecute* This,
   28670     HWND hwnd,
   28671     ATTACHMENT_PROMPT prompt,
   28672     ATTACHMENT_ACTION *paction);
   28673 void __RPC_STUB IAttachmentExecute_Prompt_Stub(
   28674     IRpcStubBuffer* This,
   28675     IRpcChannelBuffer* pRpcChannelBuffer,
   28676     PRPC_MESSAGE pRpcMessage,
   28677     DWORD* pdwStubPhase);
   28678 HRESULT STDMETHODCALLTYPE IAttachmentExecute_Save_Proxy(
   28679     IAttachmentExecute* This);
   28680 void __RPC_STUB IAttachmentExecute_Save_Stub(
   28681     IRpcStubBuffer* This,
   28682     IRpcChannelBuffer* pRpcChannelBuffer,
   28683     PRPC_MESSAGE pRpcMessage,
   28684     DWORD* pdwStubPhase);
   28685 HRESULT STDMETHODCALLTYPE IAttachmentExecute_Execute_Proxy(
   28686     IAttachmentExecute* This,
   28687     HWND hwnd,
   28688     LPCWSTR pszVerb,
   28689     HANDLE *phProcess);
   28690 void __RPC_STUB IAttachmentExecute_Execute_Stub(
   28691     IRpcStubBuffer* This,
   28692     IRpcChannelBuffer* pRpcChannelBuffer,
   28693     PRPC_MESSAGE pRpcMessage,
   28694     DWORD* pdwStubPhase);
   28695 HRESULT STDMETHODCALLTYPE IAttachmentExecute_SaveWithUI_Proxy(
   28696     IAttachmentExecute* This,
   28697     HWND hwnd);
   28698 void __RPC_STUB IAttachmentExecute_SaveWithUI_Stub(
   28699     IRpcStubBuffer* This,
   28700     IRpcChannelBuffer* pRpcChannelBuffer,
   28701     PRPC_MESSAGE pRpcMessage,
   28702     DWORD* pdwStubPhase);
   28703 HRESULT STDMETHODCALLTYPE IAttachmentExecute_ClearClientState_Proxy(
   28704     IAttachmentExecute* This);
   28705 void __RPC_STUB IAttachmentExecute_ClearClientState_Stub(
   28706     IRpcStubBuffer* This,
   28707     IRpcChannelBuffer* pRpcChannelBuffer,
   28708     PRPC_MESSAGE pRpcMessage,
   28709     DWORD* pdwStubPhase);
   28710 
   28711 #endif  /* __IAttachmentExecute_INTERFACE_DEFINED__ */
   28712 
   28713 #endif
   28714 
   28715 #if _WIN32_IE >= _WIN32_IE_IE60
   28716 
   28717 #include <pshpack8.h>
   28718 typedef struct tagSMDATA {
   28719     DWORD dwMask;
   28720     DWORD dwFlags;
   28721     HMENU hmenu;
   28722     HWND hwnd;
   28723     UINT uId;
   28724     UINT uIdParent;
   28725     UINT uIdAncestor;
   28726     IUnknown *punk;
   28727     PIDLIST_ABSOLUTE pidlFolder;
   28728     PUITEMID_CHILD pidlItem;
   28729     IShellFolder *psf;
   28730     void *pvUserData;
   28731 } SMDATA;
   28732 typedef struct tagSMDATA *LPSMDATA;
   28733 
   28734 #define SMDM_SHELLFOLDER 0x00000001
   28735 #define SMDM_HMENU 0x00000002
   28736 #define SMDM_TOOLBAR 0x00000004
   28737 
   28738 typedef struct tagSMINFO {
   28739     DWORD dwMask;
   28740     DWORD dwType;
   28741     DWORD dwFlags;
   28742     int iIcon;
   28743 } SMINFO;
   28744 typedef struct tagSMINFO *PSMINFO;
   28745 
   28746 typedef struct SHCSCHANGENOTIFYSTRUCT {
   28747     LONG lEvent;
   28748     PCIDLIST_ABSOLUTE pidl1;
   28749     PCIDLIST_ABSOLUTE pidl2;
   28750 } SMCSHCHANGENOTIFYSTRUCT;
   28751 typedef struct SHCSCHANGENOTIFYSTRUCT *PSMCSHCHANGENOTIFYSTRUCT;
   28752 #include <poppack.h>
   28753 
   28754 enum tagSMINFOMASK {
   28755     SMIM_TYPE = 0x1,
   28756     SMIM_FLAGS = 0x2,
   28757     SMIM_ICON = 0x4
   28758 };
   28759 
   28760 
   28761 enum tagSMINFOTYPE {
   28762     SMIT_SEPARATOR = 0x1,
   28763     SMIT_STRING = 0x2
   28764 };
   28765 
   28766 
   28767 enum tagSMINFOFLAGS {
   28768     SMIF_ICON = 0x1,
   28769     SMIF_ACCELERATOR = 0x2,
   28770     SMIF_DROPTARGET = 0x4,
   28771     SMIF_SUBMENU = 0x8,
   28772     SMIF_CHECKED = 0x20,
   28773     SMIF_DROPCASCADE = 0x40,
   28774     SMIF_HIDDEN = 0x80,
   28775     SMIF_DISABLED = 0x100,
   28776     SMIF_TRACKPOPUP = 0x200,
   28777     SMIF_DEMOTED = 0x400,
   28778     SMIF_ALTSTATE = 0x800,
   28779     SMIF_DRAGNDROP = 0x1000,
   28780     SMIF_NEW = 0x2000
   28781 };
   28782 
   28783 
   28784 #define SMC_INITMENU 0x00000001
   28785 #define SMC_CREATE 0x00000002
   28786 #define SMC_EXITMENU 0x00000003
   28787 #define SMC_GETINFO 0x00000005
   28788 #define SMC_GETSFINFO 0x00000006
   28789 #define SMC_GETOBJECT 0x00000007
   28790 #define SMC_GETSFOBJECT 0x00000008
   28791 #define SMC_SFEXEC 0x00000009
   28792 #define SMC_SFSELECTITEM 0x0000000A
   28793 #define SMC_REFRESH 0x00000010
   28794 #define SMC_DEMOTE 0x00000011
   28795 #define SMC_PROMOTE 0x00000012
   28796 #define SMC_DEFAULTICON 0x00000016
   28797 #define SMC_NEWITEM 0x00000017
   28798 #define SMC_CHEVRONEXPAND 0x00000019
   28799 #define SMC_DISPLAYCHEVRONTIP 0x0000002A
   28800 #define SMC_SETSFOBJECT 0x0000002D
   28801 #define SMC_SHCHANGENOTIFY 0x0000002E
   28802 #define SMC_CHEVRONGETTIP 0x0000002F
   28803 #define SMC_SFDDRESTRICTED 0x00000030
   28804 #if _WIN32_IE >= _WIN32_IE_IE70
   28805 #define SMC_SFEXEC_MIDDLE 0x00000031
   28806 #define SMC_GETAUTOEXPANDSTATE 0x00000041
   28807 #define SMC_AUTOEXPANDCHANGE 0x00000042
   28808 #define SMC_GETCONTEXTMENUMODIFIER 0x00000043
   28809 #define SMC_GETBKCONTEXTMENU 0x00000044
   28810 #define SMC_OPEN 0x00000045
   28811 
   28812 #define SMAE_EXPANDED 0x00000001
   28813 #define SMAE_CONTRACTED 0x00000002
   28814 
   28815 #define SMAE_USER 0x00000004
   28816 
   28817 #define SMAE_VALID 0x00000007
   28818 #endif
   28819 
   28820 /*****************************************************************************
   28821  * IShellMenuCallback interface
   28822  */
   28823 #ifndef __IShellMenuCallback_INTERFACE_DEFINED__
   28824 #define __IShellMenuCallback_INTERFACE_DEFINED__
   28825 
   28826 DEFINE_GUID(IID_IShellMenuCallback, 0x4ca300a1, 0x9b8d, 0x11d1, 0x8b,0x22, 0x00,0xc0,0x4f,0xd9,0x18,0xd0);
   28827 #if defined(__cplusplus) && !defined(CINTERFACE)
   28828 MIDL_INTERFACE("4ca300a1-9b8d-11d1-8b22-00c04fd918d0")
   28829 IShellMenuCallback : public IUnknown
   28830 {
   28831     virtual HRESULT STDMETHODCALLTYPE CallbackSM(
   28832         LPSMDATA psmd,
   28833         UINT uMsg,
   28834         WPARAM wParam,
   28835         LPARAM lParam) = 0;
   28836 
   28837 };
   28838 #ifdef __CRT_UUID_DECL
   28839 __CRT_UUID_DECL(IShellMenuCallback, 0x4ca300a1, 0x9b8d, 0x11d1, 0x8b,0x22, 0x00,0xc0,0x4f,0xd9,0x18,0xd0)
   28840 #endif
   28841 #else
   28842 typedef struct IShellMenuCallbackVtbl {
   28843     BEGIN_INTERFACE
   28844 
   28845     /*** IUnknown methods ***/
   28846     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   28847         IShellMenuCallback* This,
   28848         REFIID riid,
   28849         void **ppvObject);
   28850 
   28851     ULONG (STDMETHODCALLTYPE *AddRef)(
   28852         IShellMenuCallback* This);
   28853 
   28854     ULONG (STDMETHODCALLTYPE *Release)(
   28855         IShellMenuCallback* This);
   28856 
   28857     /*** IShellMenuCallback methods ***/
   28858     HRESULT (STDMETHODCALLTYPE *CallbackSM)(
   28859         IShellMenuCallback* This,
   28860         LPSMDATA psmd,
   28861         UINT uMsg,
   28862         WPARAM wParam,
   28863         LPARAM lParam);
   28864 
   28865     END_INTERFACE
   28866 } IShellMenuCallbackVtbl;
   28867 interface IShellMenuCallback {
   28868     CONST_VTBL IShellMenuCallbackVtbl* lpVtbl;
   28869 };
   28870 
   28871 #ifdef COBJMACROS
   28872 #ifndef WIDL_C_INLINE_WRAPPERS
   28873 /*** IUnknown methods ***/
   28874 #define IShellMenuCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   28875 #define IShellMenuCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
   28876 #define IShellMenuCallback_Release(This) (This)->lpVtbl->Release(This)
   28877 /*** IShellMenuCallback methods ***/
   28878 #define IShellMenuCallback_CallbackSM(This,psmd,uMsg,wParam,lParam) (This)->lpVtbl->CallbackSM(This,psmd,uMsg,wParam,lParam)
   28879 #else
   28880 /*** IUnknown methods ***/
   28881 static FORCEINLINE HRESULT IShellMenuCallback_QueryInterface(IShellMenuCallback* This,REFIID riid,void **ppvObject) {
   28882     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   28883 }
   28884 static FORCEINLINE ULONG IShellMenuCallback_AddRef(IShellMenuCallback* This) {
   28885     return This->lpVtbl->AddRef(This);
   28886 }
   28887 static FORCEINLINE ULONG IShellMenuCallback_Release(IShellMenuCallback* This) {
   28888     return This->lpVtbl->Release(This);
   28889 }
   28890 /*** IShellMenuCallback methods ***/
   28891 static FORCEINLINE HRESULT IShellMenuCallback_CallbackSM(IShellMenuCallback* This,LPSMDATA psmd,UINT uMsg,WPARAM wParam,LPARAM lParam) {
   28892     return This->lpVtbl->CallbackSM(This,psmd,uMsg,wParam,lParam);
   28893 }
   28894 #endif
   28895 #endif
   28896 
   28897 #endif
   28898 
   28899 HRESULT STDMETHODCALLTYPE IShellMenuCallback_CallbackSM_Proxy(
   28900     IShellMenuCallback* This,
   28901     LPSMDATA psmd,
   28902     UINT uMsg,
   28903     WPARAM wParam,
   28904     LPARAM lParam);
   28905 void __RPC_STUB IShellMenuCallback_CallbackSM_Stub(
   28906     IRpcStubBuffer* This,
   28907     IRpcChannelBuffer* pRpcChannelBuffer,
   28908     PRPC_MESSAGE pRpcMessage,
   28909     DWORD* pdwStubPhase);
   28910 
   28911 #endif  /* __IShellMenuCallback_INTERFACE_DEFINED__ */
   28912 
   28913 
   28914 #define SMINIT_DEFAULT 0x00000000
   28915 #define SMINIT_RESTRICT_DRAGDROP 0x00000002
   28916 #define SMINIT_TOPLEVEL 0x00000004
   28917 #define SMINIT_CACHED 0x00000010
   28918 #if _WIN32_IE >= _WIN32_IE_IE70
   28919 #define SMINIT_AUTOEXPAND 0x00000100
   28920 #define SMINIT_AUTOTOOLTIP 0x00000200
   28921 #define SMINIT_DROPONCONTAINER 0x00000400
   28922 #endif
   28923 
   28924 #define SMINIT_VERTICAL 0x10000000
   28925 #define SMINIT_HORIZONTAL 0x20000000
   28926 
   28927 #define ANCESTORDEFAULT (UINT)-1
   28928 
   28929 #define SMSET_TOP 0x10000000
   28930 #define SMSET_BOTTOM 0x20000000
   28931 #define SMSET_DONTOWN 0x00000001
   28932 
   28933 #define SMINV_REFRESH 0x00000001
   28934 #define SMINV_ID 0x00000008
   28935 
   28936 /*****************************************************************************
   28937  * IShellMenu interface
   28938  */
   28939 #ifndef __IShellMenu_INTERFACE_DEFINED__
   28940 #define __IShellMenu_INTERFACE_DEFINED__
   28941 
   28942 DEFINE_GUID(IID_IShellMenu, 0xee1f7637, 0xe138, 0x11d1, 0x83,0x79, 0x00,0xc0,0x4f,0xd9,0x18,0xd0);
   28943 #if defined(__cplusplus) && !defined(CINTERFACE)
   28944 MIDL_INTERFACE("ee1f7637-e138-11d1-8379-00c04fd918d0")
   28945 IShellMenu : public IUnknown
   28946 {
   28947     virtual HRESULT STDMETHODCALLTYPE Initialize(
   28948         IShellMenuCallback *psmc,
   28949         UINT uId,
   28950         UINT uIdAncestor,
   28951         DWORD dwFlags) = 0;
   28952 
   28953     virtual HRESULT STDMETHODCALLTYPE GetMenuInfo(
   28954         IShellMenuCallback **ppsmc,
   28955         UINT *puId,
   28956         UINT *puIdAncestor,
   28957         DWORD *pdwFlags) = 0;
   28958 
   28959     virtual HRESULT STDMETHODCALLTYPE SetShellFolder(
   28960         IShellFolder *psf,
   28961         PCIDLIST_ABSOLUTE pidlFolder,
   28962         HKEY hKey,
   28963         DWORD dwFlags) = 0;
   28964 
   28965     virtual HRESULT STDMETHODCALLTYPE GetShellFolder(
   28966         DWORD *pdwFlags,
   28967         PIDLIST_ABSOLUTE *ppidl,
   28968         REFIID riid,
   28969         void **ppv) = 0;
   28970 
   28971     virtual HRESULT STDMETHODCALLTYPE SetMenu(
   28972         HMENU hmenu,
   28973         HWND hwnd,
   28974         DWORD dwFlags) = 0;
   28975 
   28976     virtual HRESULT STDMETHODCALLTYPE GetMenu(
   28977         HMENU *phmenu,
   28978         HWND *phwnd,
   28979         DWORD *pdwFlags) = 0;
   28980 
   28981     virtual HRESULT STDMETHODCALLTYPE InvalidateItem(
   28982         LPSMDATA psmd,
   28983         DWORD dwFlags) = 0;
   28984 
   28985     virtual HRESULT STDMETHODCALLTYPE GetState(
   28986         LPSMDATA psmd) = 0;
   28987 
   28988     virtual HRESULT STDMETHODCALLTYPE SetMenuToolbar(
   28989         IUnknown *punk,
   28990         DWORD dwFlags) = 0;
   28991 
   28992 };
   28993 #ifdef __CRT_UUID_DECL
   28994 __CRT_UUID_DECL(IShellMenu, 0xee1f7637, 0xe138, 0x11d1, 0x83,0x79, 0x00,0xc0,0x4f,0xd9,0x18,0xd0)
   28995 #endif
   28996 #else
   28997 typedef struct IShellMenuVtbl {
   28998     BEGIN_INTERFACE
   28999 
   29000     /*** IUnknown methods ***/
   29001     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   29002         IShellMenu* This,
   29003         REFIID riid,
   29004         void **ppvObject);
   29005 
   29006     ULONG (STDMETHODCALLTYPE *AddRef)(
   29007         IShellMenu* This);
   29008 
   29009     ULONG (STDMETHODCALLTYPE *Release)(
   29010         IShellMenu* This);
   29011 
   29012     /*** IShellMenu methods ***/
   29013     HRESULT (STDMETHODCALLTYPE *Initialize)(
   29014         IShellMenu* This,
   29015         IShellMenuCallback *psmc,
   29016         UINT uId,
   29017         UINT uIdAncestor,
   29018         DWORD dwFlags);
   29019 
   29020     HRESULT (STDMETHODCALLTYPE *GetMenuInfo)(
   29021         IShellMenu* This,
   29022         IShellMenuCallback **ppsmc,
   29023         UINT *puId,
   29024         UINT *puIdAncestor,
   29025         DWORD *pdwFlags);
   29026 
   29027     HRESULT (STDMETHODCALLTYPE *SetShellFolder)(
   29028         IShellMenu* This,
   29029         IShellFolder *psf,
   29030         PCIDLIST_ABSOLUTE pidlFolder,
   29031         HKEY hKey,
   29032         DWORD dwFlags);
   29033 
   29034     HRESULT (STDMETHODCALLTYPE *GetShellFolder)(
   29035         IShellMenu* This,
   29036         DWORD *pdwFlags,
   29037         PIDLIST_ABSOLUTE *ppidl,
   29038         REFIID riid,
   29039         void **ppv);
   29040 
   29041     HRESULT (STDMETHODCALLTYPE *SetMenu)(
   29042         IShellMenu* This,
   29043         HMENU hmenu,
   29044         HWND hwnd,
   29045         DWORD dwFlags);
   29046 
   29047     HRESULT (STDMETHODCALLTYPE *GetMenu)(
   29048         IShellMenu* This,
   29049         HMENU *phmenu,
   29050         HWND *phwnd,
   29051         DWORD *pdwFlags);
   29052 
   29053     HRESULT (STDMETHODCALLTYPE *InvalidateItem)(
   29054         IShellMenu* This,
   29055         LPSMDATA psmd,
   29056         DWORD dwFlags);
   29057 
   29058     HRESULT (STDMETHODCALLTYPE *GetState)(
   29059         IShellMenu* This,
   29060         LPSMDATA psmd);
   29061 
   29062     HRESULT (STDMETHODCALLTYPE *SetMenuToolbar)(
   29063         IShellMenu* This,
   29064         IUnknown *punk,
   29065         DWORD dwFlags);
   29066 
   29067     END_INTERFACE
   29068 } IShellMenuVtbl;
   29069 interface IShellMenu {
   29070     CONST_VTBL IShellMenuVtbl* lpVtbl;
   29071 };
   29072 
   29073 #ifdef COBJMACROS
   29074 #ifndef WIDL_C_INLINE_WRAPPERS
   29075 /*** IUnknown methods ***/
   29076 #define IShellMenu_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   29077 #define IShellMenu_AddRef(This) (This)->lpVtbl->AddRef(This)
   29078 #define IShellMenu_Release(This) (This)->lpVtbl->Release(This)
   29079 /*** IShellMenu methods ***/
   29080 #define IShellMenu_Initialize(This,psmc,uId,uIdAncestor,dwFlags) (This)->lpVtbl->Initialize(This,psmc,uId,uIdAncestor,dwFlags)
   29081 #define IShellMenu_GetMenuInfo(This,ppsmc,puId,puIdAncestor,pdwFlags) (This)->lpVtbl->GetMenuInfo(This,ppsmc,puId,puIdAncestor,pdwFlags)
   29082 #define IShellMenu_SetShellFolder(This,psf,pidlFolder,hKey,dwFlags) (This)->lpVtbl->SetShellFolder(This,psf,pidlFolder,hKey,dwFlags)
   29083 #define IShellMenu_GetShellFolder(This,pdwFlags,ppidl,riid,ppv) (This)->lpVtbl->GetShellFolder(This,pdwFlags,ppidl,riid,ppv)
   29084 #define IShellMenu_SetMenu(This,hmenu,hwnd,dwFlags) (This)->lpVtbl->SetMenu(This,hmenu,hwnd,dwFlags)
   29085 #define IShellMenu_GetMenu(This,phmenu,phwnd,pdwFlags) (This)->lpVtbl->GetMenu(This,phmenu,phwnd,pdwFlags)
   29086 #define IShellMenu_InvalidateItem(This,psmd,dwFlags) (This)->lpVtbl->InvalidateItem(This,psmd,dwFlags)
   29087 #define IShellMenu_GetState(This,psmd) (This)->lpVtbl->GetState(This,psmd)
   29088 #define IShellMenu_SetMenuToolbar(This,punk,dwFlags) (This)->lpVtbl->SetMenuToolbar(This,punk,dwFlags)
   29089 #else
   29090 /*** IUnknown methods ***/
   29091 static FORCEINLINE HRESULT IShellMenu_QueryInterface(IShellMenu* This,REFIID riid,void **ppvObject) {
   29092     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   29093 }
   29094 static FORCEINLINE ULONG IShellMenu_AddRef(IShellMenu* This) {
   29095     return This->lpVtbl->AddRef(This);
   29096 }
   29097 static FORCEINLINE ULONG IShellMenu_Release(IShellMenu* This) {
   29098     return This->lpVtbl->Release(This);
   29099 }
   29100 /*** IShellMenu methods ***/
   29101 static FORCEINLINE HRESULT IShellMenu_Initialize(IShellMenu* This,IShellMenuCallback *psmc,UINT uId,UINT uIdAncestor,DWORD dwFlags) {
   29102     return This->lpVtbl->Initialize(This,psmc,uId,uIdAncestor,dwFlags);
   29103 }
   29104 static FORCEINLINE HRESULT IShellMenu_GetMenuInfo(IShellMenu* This,IShellMenuCallback **ppsmc,UINT *puId,UINT *puIdAncestor,DWORD *pdwFlags) {
   29105     return This->lpVtbl->GetMenuInfo(This,ppsmc,puId,puIdAncestor,pdwFlags);
   29106 }
   29107 static FORCEINLINE HRESULT IShellMenu_SetShellFolder(IShellMenu* This,IShellFolder *psf,PCIDLIST_ABSOLUTE pidlFolder,HKEY hKey,DWORD dwFlags) {
   29108     return This->lpVtbl->SetShellFolder(This,psf,pidlFolder,hKey,dwFlags);
   29109 }
   29110 static FORCEINLINE HRESULT IShellMenu_GetShellFolder(IShellMenu* This,DWORD *pdwFlags,PIDLIST_ABSOLUTE *ppidl,REFIID riid,void **ppv) {
   29111     return This->lpVtbl->GetShellFolder(This,pdwFlags,ppidl,riid,ppv);
   29112 }
   29113 static FORCEINLINE HRESULT IShellMenu_SetMenu(IShellMenu* This,HMENU hmenu,HWND hwnd,DWORD dwFlags) {
   29114     return This->lpVtbl->SetMenu(This,hmenu,hwnd,dwFlags);
   29115 }
   29116 static FORCEINLINE HRESULT IShellMenu_GetMenu(IShellMenu* This,HMENU *phmenu,HWND *phwnd,DWORD *pdwFlags) {
   29117     return This->lpVtbl->GetMenu(This,phmenu,phwnd,pdwFlags);
   29118 }
   29119 static FORCEINLINE HRESULT IShellMenu_InvalidateItem(IShellMenu* This,LPSMDATA psmd,DWORD dwFlags) {
   29120     return This->lpVtbl->InvalidateItem(This,psmd,dwFlags);
   29121 }
   29122 static FORCEINLINE HRESULT IShellMenu_GetState(IShellMenu* This,LPSMDATA psmd) {
   29123     return This->lpVtbl->GetState(This,psmd);
   29124 }
   29125 static FORCEINLINE HRESULT IShellMenu_SetMenuToolbar(IShellMenu* This,IUnknown *punk,DWORD dwFlags) {
   29126     return This->lpVtbl->SetMenuToolbar(This,punk,dwFlags);
   29127 }
   29128 #endif
   29129 #endif
   29130 
   29131 #endif
   29132 
   29133 HRESULT STDMETHODCALLTYPE IShellMenu_Initialize_Proxy(
   29134     IShellMenu* This,
   29135     IShellMenuCallback *psmc,
   29136     UINT uId,
   29137     UINT uIdAncestor,
   29138     DWORD dwFlags);
   29139 void __RPC_STUB IShellMenu_Initialize_Stub(
   29140     IRpcStubBuffer* This,
   29141     IRpcChannelBuffer* pRpcChannelBuffer,
   29142     PRPC_MESSAGE pRpcMessage,
   29143     DWORD* pdwStubPhase);
   29144 HRESULT STDMETHODCALLTYPE IShellMenu_GetMenuInfo_Proxy(
   29145     IShellMenu* This,
   29146     IShellMenuCallback **ppsmc,
   29147     UINT *puId,
   29148     UINT *puIdAncestor,
   29149     DWORD *pdwFlags);
   29150 void __RPC_STUB IShellMenu_GetMenuInfo_Stub(
   29151     IRpcStubBuffer* This,
   29152     IRpcChannelBuffer* pRpcChannelBuffer,
   29153     PRPC_MESSAGE pRpcMessage,
   29154     DWORD* pdwStubPhase);
   29155 HRESULT STDMETHODCALLTYPE IShellMenu_SetShellFolder_Proxy(
   29156     IShellMenu* This,
   29157     IShellFolder *psf,
   29158     PCIDLIST_ABSOLUTE pidlFolder,
   29159     HKEY hKey,
   29160     DWORD dwFlags);
   29161 void __RPC_STUB IShellMenu_SetShellFolder_Stub(
   29162     IRpcStubBuffer* This,
   29163     IRpcChannelBuffer* pRpcChannelBuffer,
   29164     PRPC_MESSAGE pRpcMessage,
   29165     DWORD* pdwStubPhase);
   29166 HRESULT STDMETHODCALLTYPE IShellMenu_GetShellFolder_Proxy(
   29167     IShellMenu* This,
   29168     DWORD *pdwFlags,
   29169     PIDLIST_ABSOLUTE *ppidl,
   29170     REFIID riid,
   29171     void **ppv);
   29172 void __RPC_STUB IShellMenu_GetShellFolder_Stub(
   29173     IRpcStubBuffer* This,
   29174     IRpcChannelBuffer* pRpcChannelBuffer,
   29175     PRPC_MESSAGE pRpcMessage,
   29176     DWORD* pdwStubPhase);
   29177 HRESULT STDMETHODCALLTYPE IShellMenu_SetMenu_Proxy(
   29178     IShellMenu* This,
   29179     HMENU hmenu,
   29180     HWND hwnd,
   29181     DWORD dwFlags);
   29182 void __RPC_STUB IShellMenu_SetMenu_Stub(
   29183     IRpcStubBuffer* This,
   29184     IRpcChannelBuffer* pRpcChannelBuffer,
   29185     PRPC_MESSAGE pRpcMessage,
   29186     DWORD* pdwStubPhase);
   29187 HRESULT STDMETHODCALLTYPE IShellMenu_GetMenu_Proxy(
   29188     IShellMenu* This,
   29189     HMENU *phmenu,
   29190     HWND *phwnd,
   29191     DWORD *pdwFlags);
   29192 void __RPC_STUB IShellMenu_GetMenu_Stub(
   29193     IRpcStubBuffer* This,
   29194     IRpcChannelBuffer* pRpcChannelBuffer,
   29195     PRPC_MESSAGE pRpcMessage,
   29196     DWORD* pdwStubPhase);
   29197 HRESULT STDMETHODCALLTYPE IShellMenu_InvalidateItem_Proxy(
   29198     IShellMenu* This,
   29199     LPSMDATA psmd,
   29200     DWORD dwFlags);
   29201 void __RPC_STUB IShellMenu_InvalidateItem_Stub(
   29202     IRpcStubBuffer* This,
   29203     IRpcChannelBuffer* pRpcChannelBuffer,
   29204     PRPC_MESSAGE pRpcMessage,
   29205     DWORD* pdwStubPhase);
   29206 HRESULT STDMETHODCALLTYPE IShellMenu_GetState_Proxy(
   29207     IShellMenu* This,
   29208     LPSMDATA psmd);
   29209 void __RPC_STUB IShellMenu_GetState_Stub(
   29210     IRpcStubBuffer* This,
   29211     IRpcChannelBuffer* pRpcChannelBuffer,
   29212     PRPC_MESSAGE pRpcMessage,
   29213     DWORD* pdwStubPhase);
   29214 HRESULT STDMETHODCALLTYPE IShellMenu_SetMenuToolbar_Proxy(
   29215     IShellMenu* This,
   29216     IUnknown *punk,
   29217     DWORD dwFlags);
   29218 void __RPC_STUB IShellMenu_SetMenuToolbar_Stub(
   29219     IRpcStubBuffer* This,
   29220     IRpcChannelBuffer* pRpcChannelBuffer,
   29221     PRPC_MESSAGE pRpcMessage,
   29222     DWORD* pdwStubPhase);
   29223 
   29224 #endif  /* __IShellMenu_INTERFACE_DEFINED__ */
   29225 
   29226 #endif
   29227 
   29228 /*****************************************************************************
   29229  * IShellRunDll interface
   29230  */
   29231 #ifndef __IShellRunDll_INTERFACE_DEFINED__
   29232 #define __IShellRunDll_INTERFACE_DEFINED__
   29233 
   29234 DEFINE_GUID(IID_IShellRunDll, 0xfce4bde0, 0x4b68, 0x4b80, 0x8e,0x9c, 0x74,0x26,0x31,0x5a,0x73,0x88);
   29235 #if defined(__cplusplus) && !defined(CINTERFACE)
   29236 MIDL_INTERFACE("fce4bde0-4b68-4b80-8e9c-7426315a7388")
   29237 IShellRunDll : public IUnknown
   29238 {
   29239     virtual HRESULT STDMETHODCALLTYPE Run(
   29240         LPCWSTR pszArgs) = 0;
   29241 
   29242 };
   29243 #ifdef __CRT_UUID_DECL
   29244 __CRT_UUID_DECL(IShellRunDll, 0xfce4bde0, 0x4b68, 0x4b80, 0x8e,0x9c, 0x74,0x26,0x31,0x5a,0x73,0x88)
   29245 #endif
   29246 #else
   29247 typedef struct IShellRunDllVtbl {
   29248     BEGIN_INTERFACE
   29249 
   29250     /*** IUnknown methods ***/
   29251     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   29252         IShellRunDll* This,
   29253         REFIID riid,
   29254         void **ppvObject);
   29255 
   29256     ULONG (STDMETHODCALLTYPE *AddRef)(
   29257         IShellRunDll* This);
   29258 
   29259     ULONG (STDMETHODCALLTYPE *Release)(
   29260         IShellRunDll* This);
   29261 
   29262     /*** IShellRunDll methods ***/
   29263     HRESULT (STDMETHODCALLTYPE *Run)(
   29264         IShellRunDll* This,
   29265         LPCWSTR pszArgs);
   29266 
   29267     END_INTERFACE
   29268 } IShellRunDllVtbl;
   29269 interface IShellRunDll {
   29270     CONST_VTBL IShellRunDllVtbl* lpVtbl;
   29271 };
   29272 
   29273 #ifdef COBJMACROS
   29274 #ifndef WIDL_C_INLINE_WRAPPERS
   29275 /*** IUnknown methods ***/
   29276 #define IShellRunDll_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   29277 #define IShellRunDll_AddRef(This) (This)->lpVtbl->AddRef(This)
   29278 #define IShellRunDll_Release(This) (This)->lpVtbl->Release(This)
   29279 /*** IShellRunDll methods ***/
   29280 #define IShellRunDll_Run(This,pszArgs) (This)->lpVtbl->Run(This,pszArgs)
   29281 #else
   29282 /*** IUnknown methods ***/
   29283 static FORCEINLINE HRESULT IShellRunDll_QueryInterface(IShellRunDll* This,REFIID riid,void **ppvObject) {
   29284     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   29285 }
   29286 static FORCEINLINE ULONG IShellRunDll_AddRef(IShellRunDll* This) {
   29287     return This->lpVtbl->AddRef(This);
   29288 }
   29289 static FORCEINLINE ULONG IShellRunDll_Release(IShellRunDll* This) {
   29290     return This->lpVtbl->Release(This);
   29291 }
   29292 /*** IShellRunDll methods ***/
   29293 static FORCEINLINE HRESULT IShellRunDll_Run(IShellRunDll* This,LPCWSTR pszArgs) {
   29294     return This->lpVtbl->Run(This,pszArgs);
   29295 }
   29296 #endif
   29297 #endif
   29298 
   29299 #endif
   29300 
   29301 HRESULT STDMETHODCALLTYPE IShellRunDll_Run_Proxy(
   29302     IShellRunDll* This,
   29303     LPCWSTR pszArgs);
   29304 void __RPC_STUB IShellRunDll_Run_Stub(
   29305     IRpcStubBuffer* This,
   29306     IRpcChannelBuffer* pRpcChannelBuffer,
   29307     PRPC_MESSAGE pRpcMessage,
   29308     DWORD* pdwStubPhase);
   29309 
   29310 #endif  /* __IShellRunDll_INTERFACE_DEFINED__ */
   29311 
   29312 
   29313 #if NTDDI_VERSION >= NTDDI_VISTA
   29314 typedef enum KF_CATEGORY {
   29315     KF_CATEGORY_VIRTUAL = 1,
   29316     KF_CATEGORY_FIXED = 2,
   29317     KF_CATEGORY_COMMON = 3,
   29318     KF_CATEGORY_PERUSER = 4
   29319 } KF_CATEGORY;
   29320 
   29321 enum _KF_DEFINITION_FLAGS {
   29322     KFDF_LOCAL_REDIRECT_ONLY = 0x2,
   29323     KFDF_ROAMABLE = 0x4,
   29324     KFDF_PRECREATE = 0x8,
   29325     KFDF_STREAM = 0x10,
   29326     KFDF_PUBLISHEXPANDEDPATH = 0x20
   29327 };
   29328 
   29329 
   29330 typedef DWORD KF_DEFINITION_FLAGS;
   29331 
   29332 enum _KF_REDIRECT_FLAGS {
   29333     KF_REDIRECT_USER_EXCLUSIVE = 0x1,
   29334     KF_REDIRECT_COPY_SOURCE_DACL = 0x2,
   29335     KF_REDIRECT_OWNER_USER = 0x4,
   29336     KF_REDIRECT_SET_OWNER_EXPLICIT = 0x8,
   29337     KF_REDIRECT_CHECK_ONLY = 0x10,
   29338     KF_REDIRECT_WITH_UI = 0x20,
   29339     KF_REDIRECT_UNPIN = 0x40,
   29340     KF_REDIRECT_PIN = 0x80,
   29341     KF_REDIRECT_COPY_CONTENTS = 0x200,
   29342     KF_REDIRECT_DEL_SOURCE_CONTENTS = 0x400,
   29343     KF_REDIRECT_EXCLUDE_ALL_KNOWN_SUBFOLDERS = 0x800
   29344 };
   29345 
   29346 
   29347 typedef DWORD KF_REDIRECT_FLAGS;
   29348 
   29349 enum _KF_REDIRECTION_CAPABILITIES {
   29350     KF_REDIRECTION_CAPABILITIES_ALLOW_ALL = 0xff,
   29351     KF_REDIRECTION_CAPABILITIES_REDIRECTABLE = 0x1,
   29352     KF_REDIRECTION_CAPABILITIES_DENY_ALL = 0xfff00,
   29353     KF_REDIRECTION_CAPABILITIES_DENY_POLICY_REDIRECTED = 0x100,
   29354     KF_REDIRECTION_CAPABILITIES_DENY_POLICY = 0x200,
   29355     KF_REDIRECTION_CAPABILITIES_DENY_PERMISSIONS = 0x400
   29356 };
   29357 
   29358 
   29359 typedef DWORD KF_REDIRECTION_CAPABILITIES;
   29360 
   29361 typedef struct KNOWNFOLDER_DEFINITION {
   29362     KF_CATEGORY category;
   29363     LPWSTR pszName;
   29364     LPWSTR pszDescription;
   29365     KNOWNFOLDERID fidParent;
   29366     LPWSTR pszRelativePath;
   29367     LPWSTR pszParsingName;
   29368     LPWSTR pszTooltip;
   29369     LPWSTR pszLocalizedName;
   29370     LPWSTR pszIcon;
   29371     LPWSTR pszSecurity;
   29372     DWORD dwAttributes;
   29373     KF_DEFINITION_FLAGS kfdFlags;
   29374     FOLDERTYPEID ftidType;
   29375 } KNOWNFOLDER_DEFINITION;
   29376 
   29377 /*****************************************************************************
   29378  * IKnownFolder interface
   29379  */
   29380 #ifndef __IKnownFolder_INTERFACE_DEFINED__
   29381 #define __IKnownFolder_INTERFACE_DEFINED__
   29382 
   29383 DEFINE_GUID(IID_IKnownFolder, 0x3aa7af7e, 0x9b36, 0x420c, 0xa8,0xe3, 0xf7,0x7d,0x46,0x74,0xa4,0x88);
   29384 #if defined(__cplusplus) && !defined(CINTERFACE)
   29385 MIDL_INTERFACE("3aa7af7e-9b36-420c-a8e3-f77d4674a488")
   29386 IKnownFolder : public IUnknown
   29387 {
   29388     virtual HRESULT STDMETHODCALLTYPE GetId(
   29389         KNOWNFOLDERID *pkfid) = 0;
   29390 
   29391     virtual HRESULT STDMETHODCALLTYPE GetCategory(
   29392         KF_CATEGORY *pCategory) = 0;
   29393 
   29394     virtual HRESULT STDMETHODCALLTYPE GetShellItem(
   29395         DWORD dwFlags,
   29396         REFIID riid,
   29397         void **ppv) = 0;
   29398 
   29399     virtual HRESULT STDMETHODCALLTYPE GetPath(
   29400         DWORD dwFlags,
   29401         LPWSTR *ppszPath) = 0;
   29402 
   29403     virtual HRESULT STDMETHODCALLTYPE SetPath(
   29404         DWORD dwFlags,
   29405         LPCWSTR pszPath) = 0;
   29406 
   29407     virtual HRESULT STDMETHODCALLTYPE GetIDList(
   29408         DWORD dwFlags,
   29409         PIDLIST_ABSOLUTE *ppidl) = 0;
   29410 
   29411     virtual HRESULT STDMETHODCALLTYPE GetFolderType(
   29412         FOLDERTYPEID *pftid) = 0;
   29413 
   29414     virtual HRESULT STDMETHODCALLTYPE GetRedirectionCapabilities(
   29415         KF_REDIRECTION_CAPABILITIES *pCapabilities) = 0;
   29416 
   29417     virtual HRESULT STDMETHODCALLTYPE GetFolderDefinition(
   29418         KNOWNFOLDER_DEFINITION *pKFD) = 0;
   29419 
   29420 };
   29421 #ifdef __CRT_UUID_DECL
   29422 __CRT_UUID_DECL(IKnownFolder, 0x3aa7af7e, 0x9b36, 0x420c, 0xa8,0xe3, 0xf7,0x7d,0x46,0x74,0xa4,0x88)
   29423 #endif
   29424 #else
   29425 typedef struct IKnownFolderVtbl {
   29426     BEGIN_INTERFACE
   29427 
   29428     /*** IUnknown methods ***/
   29429     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   29430         IKnownFolder* This,
   29431         REFIID riid,
   29432         void **ppvObject);
   29433 
   29434     ULONG (STDMETHODCALLTYPE *AddRef)(
   29435         IKnownFolder* This);
   29436 
   29437     ULONG (STDMETHODCALLTYPE *Release)(
   29438         IKnownFolder* This);
   29439 
   29440     /*** IKnownFolder methods ***/
   29441     HRESULT (STDMETHODCALLTYPE *GetId)(
   29442         IKnownFolder* This,
   29443         KNOWNFOLDERID *pkfid);
   29444 
   29445     HRESULT (STDMETHODCALLTYPE *GetCategory)(
   29446         IKnownFolder* This,
   29447         KF_CATEGORY *pCategory);
   29448 
   29449     HRESULT (STDMETHODCALLTYPE *GetShellItem)(
   29450         IKnownFolder* This,
   29451         DWORD dwFlags,
   29452         REFIID riid,
   29453         void **ppv);
   29454 
   29455     HRESULT (STDMETHODCALLTYPE *GetPath)(
   29456         IKnownFolder* This,
   29457         DWORD dwFlags,
   29458         LPWSTR *ppszPath);
   29459 
   29460     HRESULT (STDMETHODCALLTYPE *SetPath)(
   29461         IKnownFolder* This,
   29462         DWORD dwFlags,
   29463         LPCWSTR pszPath);
   29464 
   29465     HRESULT (STDMETHODCALLTYPE *GetIDList)(
   29466         IKnownFolder* This,
   29467         DWORD dwFlags,
   29468         PIDLIST_ABSOLUTE *ppidl);
   29469 
   29470     HRESULT (STDMETHODCALLTYPE *GetFolderType)(
   29471         IKnownFolder* This,
   29472         FOLDERTYPEID *pftid);
   29473 
   29474     HRESULT (STDMETHODCALLTYPE *GetRedirectionCapabilities)(
   29475         IKnownFolder* This,
   29476         KF_REDIRECTION_CAPABILITIES *pCapabilities);
   29477 
   29478     HRESULT (STDMETHODCALLTYPE *GetFolderDefinition)(
   29479         IKnownFolder* This,
   29480         KNOWNFOLDER_DEFINITION *pKFD);
   29481 
   29482     END_INTERFACE
   29483 } IKnownFolderVtbl;
   29484 interface IKnownFolder {
   29485     CONST_VTBL IKnownFolderVtbl* lpVtbl;
   29486 };
   29487 
   29488 #ifdef COBJMACROS
   29489 #ifndef WIDL_C_INLINE_WRAPPERS
   29490 /*** IUnknown methods ***/
   29491 #define IKnownFolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   29492 #define IKnownFolder_AddRef(This) (This)->lpVtbl->AddRef(This)
   29493 #define IKnownFolder_Release(This) (This)->lpVtbl->Release(This)
   29494 /*** IKnownFolder methods ***/
   29495 #define IKnownFolder_GetId(This,pkfid) (This)->lpVtbl->GetId(This,pkfid)
   29496 #define IKnownFolder_GetCategory(This,pCategory) (This)->lpVtbl->GetCategory(This,pCategory)
   29497 #define IKnownFolder_GetShellItem(This,dwFlags,riid,ppv) (This)->lpVtbl->GetShellItem(This,dwFlags,riid,ppv)
   29498 #define IKnownFolder_GetPath(This,dwFlags,ppszPath) (This)->lpVtbl->GetPath(This,dwFlags,ppszPath)
   29499 #define IKnownFolder_SetPath(This,dwFlags,pszPath) (This)->lpVtbl->SetPath(This,dwFlags,pszPath)
   29500 #define IKnownFolder_GetIDList(This,dwFlags,ppidl) (This)->lpVtbl->GetIDList(This,dwFlags,ppidl)
   29501 #define IKnownFolder_GetFolderType(This,pftid) (This)->lpVtbl->GetFolderType(This,pftid)
   29502 #define IKnownFolder_GetRedirectionCapabilities(This,pCapabilities) (This)->lpVtbl->GetRedirectionCapabilities(This,pCapabilities)
   29503 #define IKnownFolder_GetFolderDefinition(This,pKFD) (This)->lpVtbl->GetFolderDefinition(This,pKFD)
   29504 #else
   29505 /*** IUnknown methods ***/
   29506 static FORCEINLINE HRESULT IKnownFolder_QueryInterface(IKnownFolder* This,REFIID riid,void **ppvObject) {
   29507     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   29508 }
   29509 static FORCEINLINE ULONG IKnownFolder_AddRef(IKnownFolder* This) {
   29510     return This->lpVtbl->AddRef(This);
   29511 }
   29512 static FORCEINLINE ULONG IKnownFolder_Release(IKnownFolder* This) {
   29513     return This->lpVtbl->Release(This);
   29514 }
   29515 /*** IKnownFolder methods ***/
   29516 static FORCEINLINE HRESULT IKnownFolder_GetId(IKnownFolder* This,KNOWNFOLDERID *pkfid) {
   29517     return This->lpVtbl->GetId(This,pkfid);
   29518 }
   29519 static FORCEINLINE HRESULT IKnownFolder_GetCategory(IKnownFolder* This,KF_CATEGORY *pCategory) {
   29520     return This->lpVtbl->GetCategory(This,pCategory);
   29521 }
   29522 static FORCEINLINE HRESULT IKnownFolder_GetShellItem(IKnownFolder* This,DWORD dwFlags,REFIID riid,void **ppv) {
   29523     return This->lpVtbl->GetShellItem(This,dwFlags,riid,ppv);
   29524 }
   29525 static FORCEINLINE HRESULT IKnownFolder_GetPath(IKnownFolder* This,DWORD dwFlags,LPWSTR *ppszPath) {
   29526     return This->lpVtbl->GetPath(This,dwFlags,ppszPath);
   29527 }
   29528 static FORCEINLINE HRESULT IKnownFolder_SetPath(IKnownFolder* This,DWORD dwFlags,LPCWSTR pszPath) {
   29529     return This->lpVtbl->SetPath(This,dwFlags,pszPath);
   29530 }
   29531 static FORCEINLINE HRESULT IKnownFolder_GetIDList(IKnownFolder* This,DWORD dwFlags,PIDLIST_ABSOLUTE *ppidl) {
   29532     return This->lpVtbl->GetIDList(This,dwFlags,ppidl);
   29533 }
   29534 static FORCEINLINE HRESULT IKnownFolder_GetFolderType(IKnownFolder* This,FOLDERTYPEID *pftid) {
   29535     return This->lpVtbl->GetFolderType(This,pftid);
   29536 }
   29537 static FORCEINLINE HRESULT IKnownFolder_GetRedirectionCapabilities(IKnownFolder* This,KF_REDIRECTION_CAPABILITIES *pCapabilities) {
   29538     return This->lpVtbl->GetRedirectionCapabilities(This,pCapabilities);
   29539 }
   29540 static FORCEINLINE HRESULT IKnownFolder_GetFolderDefinition(IKnownFolder* This,KNOWNFOLDER_DEFINITION *pKFD) {
   29541     return This->lpVtbl->GetFolderDefinition(This,pKFD);
   29542 }
   29543 #endif
   29544 #endif
   29545 
   29546 #endif
   29547 
   29548 HRESULT STDMETHODCALLTYPE IKnownFolder_GetId_Proxy(
   29549     IKnownFolder* This,
   29550     KNOWNFOLDERID *pkfid);
   29551 void __RPC_STUB IKnownFolder_GetId_Stub(
   29552     IRpcStubBuffer* This,
   29553     IRpcChannelBuffer* pRpcChannelBuffer,
   29554     PRPC_MESSAGE pRpcMessage,
   29555     DWORD* pdwStubPhase);
   29556 HRESULT STDMETHODCALLTYPE IKnownFolder_GetCategory_Proxy(
   29557     IKnownFolder* This,
   29558     KF_CATEGORY *pCategory);
   29559 void __RPC_STUB IKnownFolder_GetCategory_Stub(
   29560     IRpcStubBuffer* This,
   29561     IRpcChannelBuffer* pRpcChannelBuffer,
   29562     PRPC_MESSAGE pRpcMessage,
   29563     DWORD* pdwStubPhase);
   29564 HRESULT STDMETHODCALLTYPE IKnownFolder_GetShellItem_Proxy(
   29565     IKnownFolder* This,
   29566     DWORD dwFlags,
   29567     REFIID riid,
   29568     void **ppv);
   29569 void __RPC_STUB IKnownFolder_GetShellItem_Stub(
   29570     IRpcStubBuffer* This,
   29571     IRpcChannelBuffer* pRpcChannelBuffer,
   29572     PRPC_MESSAGE pRpcMessage,
   29573     DWORD* pdwStubPhase);
   29574 HRESULT STDMETHODCALLTYPE IKnownFolder_GetPath_Proxy(
   29575     IKnownFolder* This,
   29576     DWORD dwFlags,
   29577     LPWSTR *ppszPath);
   29578 void __RPC_STUB IKnownFolder_GetPath_Stub(
   29579     IRpcStubBuffer* This,
   29580     IRpcChannelBuffer* pRpcChannelBuffer,
   29581     PRPC_MESSAGE pRpcMessage,
   29582     DWORD* pdwStubPhase);
   29583 HRESULT STDMETHODCALLTYPE IKnownFolder_SetPath_Proxy(
   29584     IKnownFolder* This,
   29585     DWORD dwFlags,
   29586     LPCWSTR pszPath);
   29587 void __RPC_STUB IKnownFolder_SetPath_Stub(
   29588     IRpcStubBuffer* This,
   29589     IRpcChannelBuffer* pRpcChannelBuffer,
   29590     PRPC_MESSAGE pRpcMessage,
   29591     DWORD* pdwStubPhase);
   29592 HRESULT STDMETHODCALLTYPE IKnownFolder_GetIDList_Proxy(
   29593     IKnownFolder* This,
   29594     DWORD dwFlags,
   29595     PIDLIST_ABSOLUTE *ppidl);
   29596 void __RPC_STUB IKnownFolder_GetIDList_Stub(
   29597     IRpcStubBuffer* This,
   29598     IRpcChannelBuffer* pRpcChannelBuffer,
   29599     PRPC_MESSAGE pRpcMessage,
   29600     DWORD* pdwStubPhase);
   29601 HRESULT STDMETHODCALLTYPE IKnownFolder_GetFolderType_Proxy(
   29602     IKnownFolder* This,
   29603     FOLDERTYPEID *pftid);
   29604 void __RPC_STUB IKnownFolder_GetFolderType_Stub(
   29605     IRpcStubBuffer* This,
   29606     IRpcChannelBuffer* pRpcChannelBuffer,
   29607     PRPC_MESSAGE pRpcMessage,
   29608     DWORD* pdwStubPhase);
   29609 HRESULT STDMETHODCALLTYPE IKnownFolder_GetRedirectionCapabilities_Proxy(
   29610     IKnownFolder* This,
   29611     KF_REDIRECTION_CAPABILITIES *pCapabilities);
   29612 void __RPC_STUB IKnownFolder_GetRedirectionCapabilities_Stub(
   29613     IRpcStubBuffer* This,
   29614     IRpcChannelBuffer* pRpcChannelBuffer,
   29615     PRPC_MESSAGE pRpcMessage,
   29616     DWORD* pdwStubPhase);
   29617 HRESULT STDMETHODCALLTYPE IKnownFolder_GetFolderDefinition_Proxy(
   29618     IKnownFolder* This,
   29619     KNOWNFOLDER_DEFINITION *pKFD);
   29620 void __RPC_STUB IKnownFolder_GetFolderDefinition_Stub(
   29621     IRpcStubBuffer* This,
   29622     IRpcChannelBuffer* pRpcChannelBuffer,
   29623     PRPC_MESSAGE pRpcMessage,
   29624     DWORD* pdwStubPhase);
   29625 
   29626 #endif  /* __IKnownFolder_INTERFACE_DEFINED__ */
   29627 
   29628 
   29629 /*****************************************************************************
   29630  * IKnownFolderManager interface
   29631  */
   29632 #ifndef __IKnownFolderManager_INTERFACE_DEFINED__
   29633 #define __IKnownFolderManager_INTERFACE_DEFINED__
   29634 
   29635 typedef enum FFFP_MODE {
   29636     FFFP_EXACTMATCH = 0,
   29637     FFFP_NEARESTPARENTMATCH = 1
   29638 } FFFP_MODE;
   29639 
   29640 DEFINE_GUID(IID_IKnownFolderManager, 0x8be2d872, 0x86aa, 0x4d47, 0xb7,0x76, 0x32,0xcc,0xa4,0x0c,0x70,0x18);
   29641 #if defined(__cplusplus) && !defined(CINTERFACE)
   29642 MIDL_INTERFACE("8be2d872-86aa-4d47-b776-32cca40c7018")
   29643 IKnownFolderManager : public IUnknown
   29644 {
   29645     virtual HRESULT STDMETHODCALLTYPE FolderIdFromCsidl(
   29646         int nCsidl,
   29647         KNOWNFOLDERID *pfid) = 0;
   29648 
   29649     virtual HRESULT STDMETHODCALLTYPE FolderIdToCsidl(
   29650         REFKNOWNFOLDERID rfid,
   29651         int *pnCsidl) = 0;
   29652 
   29653     virtual HRESULT STDMETHODCALLTYPE GetFolderIds(
   29654         KNOWNFOLDERID **ppKFId,
   29655         UINT *pCount) = 0;
   29656 
   29657     virtual HRESULT STDMETHODCALLTYPE GetFolder(
   29658         REFKNOWNFOLDERID rfid,
   29659         IKnownFolder **ppkf) = 0;
   29660 
   29661     virtual HRESULT STDMETHODCALLTYPE GetFolderByName(
   29662         LPCWSTR pszCanonicalName,
   29663         IKnownFolder **ppkf) = 0;
   29664 
   29665     virtual HRESULT STDMETHODCALLTYPE RegisterFolder(
   29666         REFKNOWNFOLDERID rfid,
   29667         const KNOWNFOLDER_DEFINITION *pKFD) = 0;
   29668 
   29669     virtual HRESULT STDMETHODCALLTYPE UnregisterFolder(
   29670         REFKNOWNFOLDERID rfid) = 0;
   29671 
   29672     virtual HRESULT STDMETHODCALLTYPE FindFolderFromPath(
   29673         LPCWSTR pszPath,
   29674         FFFP_MODE mode,
   29675         IKnownFolder **ppkf) = 0;
   29676 
   29677     virtual HRESULT STDMETHODCALLTYPE FindFolderFromIDList(
   29678         PCIDLIST_ABSOLUTE pidl,
   29679         IKnownFolder **ppkf) = 0;
   29680 
   29681     virtual HRESULT STDMETHODCALLTYPE Redirect(
   29682         REFKNOWNFOLDERID rfid,
   29683         HWND hwnd,
   29684         KF_REDIRECT_FLAGS flags,
   29685         LPCWSTR pszTargetPath,
   29686         UINT cFolders,
   29687         const KNOWNFOLDERID *pExclusion,
   29688         LPWSTR *ppszError) = 0;
   29689 
   29690 };
   29691 #ifdef __CRT_UUID_DECL
   29692 __CRT_UUID_DECL(IKnownFolderManager, 0x8be2d872, 0x86aa, 0x4d47, 0xb7,0x76, 0x32,0xcc,0xa4,0x0c,0x70,0x18)
   29693 #endif
   29694 #else
   29695 typedef struct IKnownFolderManagerVtbl {
   29696     BEGIN_INTERFACE
   29697 
   29698     /*** IUnknown methods ***/
   29699     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   29700         IKnownFolderManager* This,
   29701         REFIID riid,
   29702         void **ppvObject);
   29703 
   29704     ULONG (STDMETHODCALLTYPE *AddRef)(
   29705         IKnownFolderManager* This);
   29706 
   29707     ULONG (STDMETHODCALLTYPE *Release)(
   29708         IKnownFolderManager* This);
   29709 
   29710     /*** IKnownFolderManager methods ***/
   29711     HRESULT (STDMETHODCALLTYPE *FolderIdFromCsidl)(
   29712         IKnownFolderManager* This,
   29713         int nCsidl,
   29714         KNOWNFOLDERID *pfid);
   29715 
   29716     HRESULT (STDMETHODCALLTYPE *FolderIdToCsidl)(
   29717         IKnownFolderManager* This,
   29718         REFKNOWNFOLDERID rfid,
   29719         int *pnCsidl);
   29720 
   29721     HRESULT (STDMETHODCALLTYPE *GetFolderIds)(
   29722         IKnownFolderManager* This,
   29723         KNOWNFOLDERID **ppKFId,
   29724         UINT *pCount);
   29725 
   29726     HRESULT (STDMETHODCALLTYPE *GetFolder)(
   29727         IKnownFolderManager* This,
   29728         REFKNOWNFOLDERID rfid,
   29729         IKnownFolder **ppkf);
   29730 
   29731     HRESULT (STDMETHODCALLTYPE *GetFolderByName)(
   29732         IKnownFolderManager* This,
   29733         LPCWSTR pszCanonicalName,
   29734         IKnownFolder **ppkf);
   29735 
   29736     HRESULT (STDMETHODCALLTYPE *RegisterFolder)(
   29737         IKnownFolderManager* This,
   29738         REFKNOWNFOLDERID rfid,
   29739         const KNOWNFOLDER_DEFINITION *pKFD);
   29740 
   29741     HRESULT (STDMETHODCALLTYPE *UnregisterFolder)(
   29742         IKnownFolderManager* This,
   29743         REFKNOWNFOLDERID rfid);
   29744 
   29745     HRESULT (STDMETHODCALLTYPE *FindFolderFromPath)(
   29746         IKnownFolderManager* This,
   29747         LPCWSTR pszPath,
   29748         FFFP_MODE mode,
   29749         IKnownFolder **ppkf);
   29750 
   29751     HRESULT (STDMETHODCALLTYPE *FindFolderFromIDList)(
   29752         IKnownFolderManager* This,
   29753         PCIDLIST_ABSOLUTE pidl,
   29754         IKnownFolder **ppkf);
   29755 
   29756     HRESULT (STDMETHODCALLTYPE *Redirect)(
   29757         IKnownFolderManager* This,
   29758         REFKNOWNFOLDERID rfid,
   29759         HWND hwnd,
   29760         KF_REDIRECT_FLAGS flags,
   29761         LPCWSTR pszTargetPath,
   29762         UINT cFolders,
   29763         const KNOWNFOLDERID *pExclusion,
   29764         LPWSTR *ppszError);
   29765 
   29766     END_INTERFACE
   29767 } IKnownFolderManagerVtbl;
   29768 interface IKnownFolderManager {
   29769     CONST_VTBL IKnownFolderManagerVtbl* lpVtbl;
   29770 };
   29771 
   29772 #ifdef COBJMACROS
   29773 #ifndef WIDL_C_INLINE_WRAPPERS
   29774 /*** IUnknown methods ***/
   29775 #define IKnownFolderManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   29776 #define IKnownFolderManager_AddRef(This) (This)->lpVtbl->AddRef(This)
   29777 #define IKnownFolderManager_Release(This) (This)->lpVtbl->Release(This)
   29778 /*** IKnownFolderManager methods ***/
   29779 #define IKnownFolderManager_FolderIdFromCsidl(This,nCsidl,pfid) (This)->lpVtbl->FolderIdFromCsidl(This,nCsidl,pfid)
   29780 #define IKnownFolderManager_FolderIdToCsidl(This,rfid,pnCsidl) (This)->lpVtbl->FolderIdToCsidl(This,rfid,pnCsidl)
   29781 #define IKnownFolderManager_GetFolderIds(This,ppKFId,pCount) (This)->lpVtbl->GetFolderIds(This,ppKFId,pCount)
   29782 #define IKnownFolderManager_GetFolder(This,rfid,ppkf) (This)->lpVtbl->GetFolder(This,rfid,ppkf)
   29783 #define IKnownFolderManager_GetFolderByName(This,pszCanonicalName,ppkf) (This)->lpVtbl->GetFolderByName(This,pszCanonicalName,ppkf)
   29784 #define IKnownFolderManager_RegisterFolder(This,rfid,pKFD) (This)->lpVtbl->RegisterFolder(This,rfid,pKFD)
   29785 #define IKnownFolderManager_UnregisterFolder(This,rfid) (This)->lpVtbl->UnregisterFolder(This,rfid)
   29786 #define IKnownFolderManager_FindFolderFromPath(This,pszPath,mode,ppkf) (This)->lpVtbl->FindFolderFromPath(This,pszPath,mode,ppkf)
   29787 #define IKnownFolderManager_FindFolderFromIDList(This,pidl,ppkf) (This)->lpVtbl->FindFolderFromIDList(This,pidl,ppkf)
   29788 #define IKnownFolderManager_Redirect(This,rfid,hwnd,flags,pszTargetPath,cFolders,pExclusion,ppszError) (This)->lpVtbl->Redirect(This,rfid,hwnd,flags,pszTargetPath,cFolders,pExclusion,ppszError)
   29789 #else
   29790 /*** IUnknown methods ***/
   29791 static FORCEINLINE HRESULT IKnownFolderManager_QueryInterface(IKnownFolderManager* This,REFIID riid,void **ppvObject) {
   29792     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   29793 }
   29794 static FORCEINLINE ULONG IKnownFolderManager_AddRef(IKnownFolderManager* This) {
   29795     return This->lpVtbl->AddRef(This);
   29796 }
   29797 static FORCEINLINE ULONG IKnownFolderManager_Release(IKnownFolderManager* This) {
   29798     return This->lpVtbl->Release(This);
   29799 }
   29800 /*** IKnownFolderManager methods ***/
   29801 static FORCEINLINE HRESULT IKnownFolderManager_FolderIdFromCsidl(IKnownFolderManager* This,int nCsidl,KNOWNFOLDERID *pfid) {
   29802     return This->lpVtbl->FolderIdFromCsidl(This,nCsidl,pfid);
   29803 }
   29804 static FORCEINLINE HRESULT IKnownFolderManager_FolderIdToCsidl(IKnownFolderManager* This,REFKNOWNFOLDERID rfid,int *pnCsidl) {
   29805     return This->lpVtbl->FolderIdToCsidl(This,rfid,pnCsidl);
   29806 }
   29807 static FORCEINLINE HRESULT IKnownFolderManager_GetFolderIds(IKnownFolderManager* This,KNOWNFOLDERID **ppKFId,UINT *pCount) {
   29808     return This->lpVtbl->GetFolderIds(This,ppKFId,pCount);
   29809 }
   29810 static FORCEINLINE HRESULT IKnownFolderManager_GetFolder(IKnownFolderManager* This,REFKNOWNFOLDERID rfid,IKnownFolder **ppkf) {
   29811     return This->lpVtbl->GetFolder(This,rfid,ppkf);
   29812 }
   29813 static FORCEINLINE HRESULT IKnownFolderManager_GetFolderByName(IKnownFolderManager* This,LPCWSTR pszCanonicalName,IKnownFolder **ppkf) {
   29814     return This->lpVtbl->GetFolderByName(This,pszCanonicalName,ppkf);
   29815 }
   29816 static FORCEINLINE HRESULT IKnownFolderManager_RegisterFolder(IKnownFolderManager* This,REFKNOWNFOLDERID rfid,const KNOWNFOLDER_DEFINITION *pKFD) {
   29817     return This->lpVtbl->RegisterFolder(This,rfid,pKFD);
   29818 }
   29819 static FORCEINLINE HRESULT IKnownFolderManager_UnregisterFolder(IKnownFolderManager* This,REFKNOWNFOLDERID rfid) {
   29820     return This->lpVtbl->UnregisterFolder(This,rfid);
   29821 }
   29822 static FORCEINLINE HRESULT IKnownFolderManager_FindFolderFromPath(IKnownFolderManager* This,LPCWSTR pszPath,FFFP_MODE mode,IKnownFolder **ppkf) {
   29823     return This->lpVtbl->FindFolderFromPath(This,pszPath,mode,ppkf);
   29824 }
   29825 static FORCEINLINE HRESULT IKnownFolderManager_FindFolderFromIDList(IKnownFolderManager* This,PCIDLIST_ABSOLUTE pidl,IKnownFolder **ppkf) {
   29826     return This->lpVtbl->FindFolderFromIDList(This,pidl,ppkf);
   29827 }
   29828 static FORCEINLINE HRESULT IKnownFolderManager_Redirect(IKnownFolderManager* This,REFKNOWNFOLDERID rfid,HWND hwnd,KF_REDIRECT_FLAGS flags,LPCWSTR pszTargetPath,UINT cFolders,const KNOWNFOLDERID *pExclusion,LPWSTR *ppszError) {
   29829     return This->lpVtbl->Redirect(This,rfid,hwnd,flags,pszTargetPath,cFolders,pExclusion,ppszError);
   29830 }
   29831 #endif
   29832 #endif
   29833 
   29834 #endif
   29835 
   29836 HRESULT STDMETHODCALLTYPE IKnownFolderManager_FolderIdFromCsidl_Proxy(
   29837     IKnownFolderManager* This,
   29838     int nCsidl,
   29839     KNOWNFOLDERID *pfid);
   29840 void __RPC_STUB IKnownFolderManager_FolderIdFromCsidl_Stub(
   29841     IRpcStubBuffer* This,
   29842     IRpcChannelBuffer* pRpcChannelBuffer,
   29843     PRPC_MESSAGE pRpcMessage,
   29844     DWORD* pdwStubPhase);
   29845 HRESULT STDMETHODCALLTYPE IKnownFolderManager_FolderIdToCsidl_Proxy(
   29846     IKnownFolderManager* This,
   29847     REFKNOWNFOLDERID rfid,
   29848     int *pnCsidl);
   29849 void __RPC_STUB IKnownFolderManager_FolderIdToCsidl_Stub(
   29850     IRpcStubBuffer* This,
   29851     IRpcChannelBuffer* pRpcChannelBuffer,
   29852     PRPC_MESSAGE pRpcMessage,
   29853     DWORD* pdwStubPhase);
   29854 HRESULT STDMETHODCALLTYPE IKnownFolderManager_GetFolderIds_Proxy(
   29855     IKnownFolderManager* This,
   29856     KNOWNFOLDERID **ppKFId,
   29857     UINT *pCount);
   29858 void __RPC_STUB IKnownFolderManager_GetFolderIds_Stub(
   29859     IRpcStubBuffer* This,
   29860     IRpcChannelBuffer* pRpcChannelBuffer,
   29861     PRPC_MESSAGE pRpcMessage,
   29862     DWORD* pdwStubPhase);
   29863 HRESULT STDMETHODCALLTYPE IKnownFolderManager_GetFolder_Proxy(
   29864     IKnownFolderManager* This,
   29865     REFKNOWNFOLDERID rfid,
   29866     IKnownFolder **ppkf);
   29867 void __RPC_STUB IKnownFolderManager_GetFolder_Stub(
   29868     IRpcStubBuffer* This,
   29869     IRpcChannelBuffer* pRpcChannelBuffer,
   29870     PRPC_MESSAGE pRpcMessage,
   29871     DWORD* pdwStubPhase);
   29872 HRESULT STDMETHODCALLTYPE IKnownFolderManager_GetFolderByName_Proxy(
   29873     IKnownFolderManager* This,
   29874     LPCWSTR pszCanonicalName,
   29875     IKnownFolder **ppkf);
   29876 void __RPC_STUB IKnownFolderManager_GetFolderByName_Stub(
   29877     IRpcStubBuffer* This,
   29878     IRpcChannelBuffer* pRpcChannelBuffer,
   29879     PRPC_MESSAGE pRpcMessage,
   29880     DWORD* pdwStubPhase);
   29881 HRESULT STDMETHODCALLTYPE IKnownFolderManager_RegisterFolder_Proxy(
   29882     IKnownFolderManager* This,
   29883     REFKNOWNFOLDERID rfid,
   29884     const KNOWNFOLDER_DEFINITION *pKFD);
   29885 void __RPC_STUB IKnownFolderManager_RegisterFolder_Stub(
   29886     IRpcStubBuffer* This,
   29887     IRpcChannelBuffer* pRpcChannelBuffer,
   29888     PRPC_MESSAGE pRpcMessage,
   29889     DWORD* pdwStubPhase);
   29890 HRESULT STDMETHODCALLTYPE IKnownFolderManager_UnregisterFolder_Proxy(
   29891     IKnownFolderManager* This,
   29892     REFKNOWNFOLDERID rfid);
   29893 void __RPC_STUB IKnownFolderManager_UnregisterFolder_Stub(
   29894     IRpcStubBuffer* This,
   29895     IRpcChannelBuffer* pRpcChannelBuffer,
   29896     PRPC_MESSAGE pRpcMessage,
   29897     DWORD* pdwStubPhase);
   29898 HRESULT STDMETHODCALLTYPE IKnownFolderManager_FindFolderFromPath_Proxy(
   29899     IKnownFolderManager* This,
   29900     LPCWSTR pszPath,
   29901     FFFP_MODE mode,
   29902     IKnownFolder **ppkf);
   29903 void __RPC_STUB IKnownFolderManager_FindFolderFromPath_Stub(
   29904     IRpcStubBuffer* This,
   29905     IRpcChannelBuffer* pRpcChannelBuffer,
   29906     PRPC_MESSAGE pRpcMessage,
   29907     DWORD* pdwStubPhase);
   29908 HRESULT STDMETHODCALLTYPE IKnownFolderManager_FindFolderFromIDList_Proxy(
   29909     IKnownFolderManager* This,
   29910     PCIDLIST_ABSOLUTE pidl,
   29911     IKnownFolder **ppkf);
   29912 void __RPC_STUB IKnownFolderManager_FindFolderFromIDList_Stub(
   29913     IRpcStubBuffer* This,
   29914     IRpcChannelBuffer* pRpcChannelBuffer,
   29915     PRPC_MESSAGE pRpcMessage,
   29916     DWORD* pdwStubPhase);
   29917 HRESULT STDMETHODCALLTYPE IKnownFolderManager_RemoteRedirect_Proxy(
   29918     IKnownFolderManager* This,
   29919     REFKNOWNFOLDERID rfid,
   29920     HWND hwnd,
   29921     KF_REDIRECT_FLAGS flags,
   29922     LPCWSTR pszTargetPath,
   29923     UINT cFolders,
   29924     const GUID *pExclusion,
   29925     LPWSTR *ppszError);
   29926 void __RPC_STUB IKnownFolderManager_RemoteRedirect_Stub(
   29927     IRpcStubBuffer* This,
   29928     IRpcChannelBuffer* pRpcChannelBuffer,
   29929     PRPC_MESSAGE pRpcMessage,
   29930     DWORD* pdwStubPhase);
   29931 HRESULT CALLBACK IKnownFolderManager_Redirect_Proxy(
   29932     IKnownFolderManager* This,
   29933     REFKNOWNFOLDERID rfid,
   29934     HWND hwnd,
   29935     KF_REDIRECT_FLAGS flags,
   29936     LPCWSTR pszTargetPath,
   29937     UINT cFolders,
   29938     const KNOWNFOLDERID *pExclusion,
   29939     LPWSTR *ppszError);
   29940 HRESULT __RPC_STUB IKnownFolderManager_Redirect_Stub(
   29941     IKnownFolderManager* This,
   29942     REFKNOWNFOLDERID rfid,
   29943     HWND hwnd,
   29944     KF_REDIRECT_FLAGS flags,
   29945     LPCWSTR pszTargetPath,
   29946     UINT cFolders,
   29947     const GUID *pExclusion,
   29948     LPWSTR *ppszError);
   29949 
   29950 #endif  /* __IKnownFolderManager_INTERFACE_DEFINED__ */
   29951 
   29952 
   29953   __forceinline void FreeKnownFolderDefinitionFields(KNOWNFOLDER_DEFINITION *pKFD) {
   29954     CoTaskMemFree(pKFD->pszName);
   29955     CoTaskMemFree(pKFD->pszDescription);
   29956     CoTaskMemFree(pKFD->pszRelativePath);
   29957     CoTaskMemFree(pKFD->pszParsingName);
   29958     CoTaskMemFree(pKFD->pszTooltip);
   29959     CoTaskMemFree(pKFD->pszLocalizedName);
   29960     CoTaskMemFree(pKFD->pszIcon);
   29961     CoTaskMemFree(pKFD->pszSecurity);
   29962   }
   29963 
   29964 typedef enum SHARE_ROLE {
   29965     SHARE_ROLE_INVALID = -1,
   29966     SHARE_ROLE_READER = 0,
   29967     SHARE_ROLE_CONTRIBUTOR = 1,
   29968     SHARE_ROLE_CO_OWNER = 2,
   29969     SHARE_ROLE_OWNER = 3,
   29970     SHARE_ROLE_CUSTOM = 4,
   29971     SHARE_ROLE_MIXED = 5
   29972 } SHARE_ROLE;
   29973 
   29974 typedef enum DEF_SHARE_ID {
   29975     DEFSHAREID_USERS = 1,
   29976     DEFSHAREID_PUBLIC = 2
   29977 } DEF_SHARE_ID;
   29978 
   29979 /*****************************************************************************
   29980  * ISharingConfigurationManager interface
   29981  */
   29982 #ifndef __ISharingConfigurationManager_INTERFACE_DEFINED__
   29983 #define __ISharingConfigurationManager_INTERFACE_DEFINED__
   29984 
   29985 DEFINE_GUID(IID_ISharingConfigurationManager, 0xb4cd448a, 0x9c86, 0x4466, 0x92,0x01, 0x2e,0x62,0x10,0x5b,0x87,0xae);
   29986 #if defined(__cplusplus) && !defined(CINTERFACE)
   29987 MIDL_INTERFACE("b4cd448a-9c86-4466-9201-2e62105b87ae")
   29988 ISharingConfigurationManager : public IUnknown
   29989 {
   29990     virtual HRESULT STDMETHODCALLTYPE CreateShare(
   29991         DEF_SHARE_ID dsid,
   29992         SHARE_ROLE role) = 0;
   29993 
   29994     virtual HRESULT STDMETHODCALLTYPE DeleteShare(
   29995         DEF_SHARE_ID dsid) = 0;
   29996 
   29997     virtual HRESULT STDMETHODCALLTYPE ShareExists(
   29998         DEF_SHARE_ID dsid) = 0;
   29999 
   30000     virtual HRESULT STDMETHODCALLTYPE GetSharePermissions(
   30001         DEF_SHARE_ID dsid,
   30002         SHARE_ROLE *pRole) = 0;
   30003 
   30004     virtual HRESULT STDMETHODCALLTYPE SharePrinters(
   30005         ) = 0;
   30006 
   30007     virtual HRESULT STDMETHODCALLTYPE StopSharingPrinters(
   30008         ) = 0;
   30009 
   30010     virtual HRESULT STDMETHODCALLTYPE ArePrintersShared(
   30011         ) = 0;
   30012 
   30013 };
   30014 #ifdef __CRT_UUID_DECL
   30015 __CRT_UUID_DECL(ISharingConfigurationManager, 0xb4cd448a, 0x9c86, 0x4466, 0x92,0x01, 0x2e,0x62,0x10,0x5b,0x87,0xae)
   30016 #endif
   30017 #else
   30018 typedef struct ISharingConfigurationManagerVtbl {
   30019     BEGIN_INTERFACE
   30020 
   30021     /*** IUnknown methods ***/
   30022     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   30023         ISharingConfigurationManager* This,
   30024         REFIID riid,
   30025         void **ppvObject);
   30026 
   30027     ULONG (STDMETHODCALLTYPE *AddRef)(
   30028         ISharingConfigurationManager* This);
   30029 
   30030     ULONG (STDMETHODCALLTYPE *Release)(
   30031         ISharingConfigurationManager* This);
   30032 
   30033     /*** ISharingConfigurationManager methods ***/
   30034     HRESULT (STDMETHODCALLTYPE *CreateShare)(
   30035         ISharingConfigurationManager* This,
   30036         DEF_SHARE_ID dsid,
   30037         SHARE_ROLE role);
   30038 
   30039     HRESULT (STDMETHODCALLTYPE *DeleteShare)(
   30040         ISharingConfigurationManager* This,
   30041         DEF_SHARE_ID dsid);
   30042 
   30043     HRESULT (STDMETHODCALLTYPE *ShareExists)(
   30044         ISharingConfigurationManager* This,
   30045         DEF_SHARE_ID dsid);
   30046 
   30047     HRESULT (STDMETHODCALLTYPE *GetSharePermissions)(
   30048         ISharingConfigurationManager* This,
   30049         DEF_SHARE_ID dsid,
   30050         SHARE_ROLE *pRole);
   30051 
   30052     HRESULT (STDMETHODCALLTYPE *SharePrinters)(
   30053         ISharingConfigurationManager* This);
   30054 
   30055     HRESULT (STDMETHODCALLTYPE *StopSharingPrinters)(
   30056         ISharingConfigurationManager* This);
   30057 
   30058     HRESULT (STDMETHODCALLTYPE *ArePrintersShared)(
   30059         ISharingConfigurationManager* This);
   30060 
   30061     END_INTERFACE
   30062 } ISharingConfigurationManagerVtbl;
   30063 interface ISharingConfigurationManager {
   30064     CONST_VTBL ISharingConfigurationManagerVtbl* lpVtbl;
   30065 };
   30066 
   30067 #ifdef COBJMACROS
   30068 #ifndef WIDL_C_INLINE_WRAPPERS
   30069 /*** IUnknown methods ***/
   30070 #define ISharingConfigurationManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   30071 #define ISharingConfigurationManager_AddRef(This) (This)->lpVtbl->AddRef(This)
   30072 #define ISharingConfigurationManager_Release(This) (This)->lpVtbl->Release(This)
   30073 /*** ISharingConfigurationManager methods ***/
   30074 #define ISharingConfigurationManager_CreateShare(This,dsid,role) (This)->lpVtbl->CreateShare(This,dsid,role)
   30075 #define ISharingConfigurationManager_DeleteShare(This,dsid) (This)->lpVtbl->DeleteShare(This,dsid)
   30076 #define ISharingConfigurationManager_ShareExists(This,dsid) (This)->lpVtbl->ShareExists(This,dsid)
   30077 #define ISharingConfigurationManager_GetSharePermissions(This,dsid,pRole) (This)->lpVtbl->GetSharePermissions(This,dsid,pRole)
   30078 #define ISharingConfigurationManager_SharePrinters(This) (This)->lpVtbl->SharePrinters(This)
   30079 #define ISharingConfigurationManager_StopSharingPrinters(This) (This)->lpVtbl->StopSharingPrinters(This)
   30080 #define ISharingConfigurationManager_ArePrintersShared(This) (This)->lpVtbl->ArePrintersShared(This)
   30081 #else
   30082 /*** IUnknown methods ***/
   30083 static FORCEINLINE HRESULT ISharingConfigurationManager_QueryInterface(ISharingConfigurationManager* This,REFIID riid,void **ppvObject) {
   30084     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   30085 }
   30086 static FORCEINLINE ULONG ISharingConfigurationManager_AddRef(ISharingConfigurationManager* This) {
   30087     return This->lpVtbl->AddRef(This);
   30088 }
   30089 static FORCEINLINE ULONG ISharingConfigurationManager_Release(ISharingConfigurationManager* This) {
   30090     return This->lpVtbl->Release(This);
   30091 }
   30092 /*** ISharingConfigurationManager methods ***/
   30093 static FORCEINLINE HRESULT ISharingConfigurationManager_CreateShare(ISharingConfigurationManager* This,DEF_SHARE_ID dsid,SHARE_ROLE role) {
   30094     return This->lpVtbl->CreateShare(This,dsid,role);
   30095 }
   30096 static FORCEINLINE HRESULT ISharingConfigurationManager_DeleteShare(ISharingConfigurationManager* This,DEF_SHARE_ID dsid) {
   30097     return This->lpVtbl->DeleteShare(This,dsid);
   30098 }
   30099 static FORCEINLINE HRESULT ISharingConfigurationManager_ShareExists(ISharingConfigurationManager* This,DEF_SHARE_ID dsid) {
   30100     return This->lpVtbl->ShareExists(This,dsid);
   30101 }
   30102 static FORCEINLINE HRESULT ISharingConfigurationManager_GetSharePermissions(ISharingConfigurationManager* This,DEF_SHARE_ID dsid,SHARE_ROLE *pRole) {
   30103     return This->lpVtbl->GetSharePermissions(This,dsid,pRole);
   30104 }
   30105 static FORCEINLINE HRESULT ISharingConfigurationManager_SharePrinters(ISharingConfigurationManager* This) {
   30106     return This->lpVtbl->SharePrinters(This);
   30107 }
   30108 static FORCEINLINE HRESULT ISharingConfigurationManager_StopSharingPrinters(ISharingConfigurationManager* This) {
   30109     return This->lpVtbl->StopSharingPrinters(This);
   30110 }
   30111 static FORCEINLINE HRESULT ISharingConfigurationManager_ArePrintersShared(ISharingConfigurationManager* This) {
   30112     return This->lpVtbl->ArePrintersShared(This);
   30113 }
   30114 #endif
   30115 #endif
   30116 
   30117 #endif
   30118 
   30119 HRESULT STDMETHODCALLTYPE ISharingConfigurationManager_CreateShare_Proxy(
   30120     ISharingConfigurationManager* This,
   30121     DEF_SHARE_ID dsid,
   30122     SHARE_ROLE role);
   30123 void __RPC_STUB ISharingConfigurationManager_CreateShare_Stub(
   30124     IRpcStubBuffer* This,
   30125     IRpcChannelBuffer* pRpcChannelBuffer,
   30126     PRPC_MESSAGE pRpcMessage,
   30127     DWORD* pdwStubPhase);
   30128 HRESULT STDMETHODCALLTYPE ISharingConfigurationManager_DeleteShare_Proxy(
   30129     ISharingConfigurationManager* This,
   30130     DEF_SHARE_ID dsid);
   30131 void __RPC_STUB ISharingConfigurationManager_DeleteShare_Stub(
   30132     IRpcStubBuffer* This,
   30133     IRpcChannelBuffer* pRpcChannelBuffer,
   30134     PRPC_MESSAGE pRpcMessage,
   30135     DWORD* pdwStubPhase);
   30136 HRESULT STDMETHODCALLTYPE ISharingConfigurationManager_ShareExists_Proxy(
   30137     ISharingConfigurationManager* This,
   30138     DEF_SHARE_ID dsid);
   30139 void __RPC_STUB ISharingConfigurationManager_ShareExists_Stub(
   30140     IRpcStubBuffer* This,
   30141     IRpcChannelBuffer* pRpcChannelBuffer,
   30142     PRPC_MESSAGE pRpcMessage,
   30143     DWORD* pdwStubPhase);
   30144 HRESULT STDMETHODCALLTYPE ISharingConfigurationManager_GetSharePermissions_Proxy(
   30145     ISharingConfigurationManager* This,
   30146     DEF_SHARE_ID dsid,
   30147     SHARE_ROLE *pRole);
   30148 void __RPC_STUB ISharingConfigurationManager_GetSharePermissions_Stub(
   30149     IRpcStubBuffer* This,
   30150     IRpcChannelBuffer* pRpcChannelBuffer,
   30151     PRPC_MESSAGE pRpcMessage,
   30152     DWORD* pdwStubPhase);
   30153 HRESULT STDMETHODCALLTYPE ISharingConfigurationManager_SharePrinters_Proxy(
   30154     ISharingConfigurationManager* This);
   30155 void __RPC_STUB ISharingConfigurationManager_SharePrinters_Stub(
   30156     IRpcStubBuffer* This,
   30157     IRpcChannelBuffer* pRpcChannelBuffer,
   30158     PRPC_MESSAGE pRpcMessage,
   30159     DWORD* pdwStubPhase);
   30160 HRESULT STDMETHODCALLTYPE ISharingConfigurationManager_StopSharingPrinters_Proxy(
   30161     ISharingConfigurationManager* This);
   30162 void __RPC_STUB ISharingConfigurationManager_StopSharingPrinters_Stub(
   30163     IRpcStubBuffer* This,
   30164     IRpcChannelBuffer* pRpcChannelBuffer,
   30165     PRPC_MESSAGE pRpcMessage,
   30166     DWORD* pdwStubPhase);
   30167 HRESULT STDMETHODCALLTYPE ISharingConfigurationManager_ArePrintersShared_Proxy(
   30168     ISharingConfigurationManager* This);
   30169 void __RPC_STUB ISharingConfigurationManager_ArePrintersShared_Stub(
   30170     IRpcStubBuffer* This,
   30171     IRpcChannelBuffer* pRpcChannelBuffer,
   30172     PRPC_MESSAGE pRpcMessage,
   30173     DWORD* pdwStubPhase);
   30174 
   30175 #endif  /* __ISharingConfigurationManager_INTERFACE_DEFINED__ */
   30176 
   30177 #endif
   30178 
   30179 /*****************************************************************************
   30180  * IPreviousVersionsInfo interface
   30181  */
   30182 #ifndef __IPreviousVersionsInfo_INTERFACE_DEFINED__
   30183 #define __IPreviousVersionsInfo_INTERFACE_DEFINED__
   30184 
   30185 DEFINE_GUID(IID_IPreviousVersionsInfo, 0x76e54780, 0xad74, 0x48e3, 0xa6,0x95, 0x3b,0xa9,0xa0,0xaf,0xf1,0x0d);
   30186 #if defined(__cplusplus) && !defined(CINTERFACE)
   30187 MIDL_INTERFACE("76e54780-ad74-48e3-a695-3ba9a0aff10d")
   30188 IPreviousVersionsInfo : public IUnknown
   30189 {
   30190     virtual HRESULT STDMETHODCALLTYPE AreSnapshotsAvailable(
   30191         LPCWSTR pszPath,
   30192         WINBOOL fOkToBeSlow,
   30193         WINBOOL *pfAvailable) = 0;
   30194 
   30195 };
   30196 #ifdef __CRT_UUID_DECL
   30197 __CRT_UUID_DECL(IPreviousVersionsInfo, 0x76e54780, 0xad74, 0x48e3, 0xa6,0x95, 0x3b,0xa9,0xa0,0xaf,0xf1,0x0d)
   30198 #endif
   30199 #else
   30200 typedef struct IPreviousVersionsInfoVtbl {
   30201     BEGIN_INTERFACE
   30202 
   30203     /*** IUnknown methods ***/
   30204     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   30205         IPreviousVersionsInfo* This,
   30206         REFIID riid,
   30207         void **ppvObject);
   30208 
   30209     ULONG (STDMETHODCALLTYPE *AddRef)(
   30210         IPreviousVersionsInfo* This);
   30211 
   30212     ULONG (STDMETHODCALLTYPE *Release)(
   30213         IPreviousVersionsInfo* This);
   30214 
   30215     /*** IPreviousVersionsInfo methods ***/
   30216     HRESULT (STDMETHODCALLTYPE *AreSnapshotsAvailable)(
   30217         IPreviousVersionsInfo* This,
   30218         LPCWSTR pszPath,
   30219         WINBOOL fOkToBeSlow,
   30220         WINBOOL *pfAvailable);
   30221 
   30222     END_INTERFACE
   30223 } IPreviousVersionsInfoVtbl;
   30224 interface IPreviousVersionsInfo {
   30225     CONST_VTBL IPreviousVersionsInfoVtbl* lpVtbl;
   30226 };
   30227 
   30228 #ifdef COBJMACROS
   30229 #ifndef WIDL_C_INLINE_WRAPPERS
   30230 /*** IUnknown methods ***/
   30231 #define IPreviousVersionsInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   30232 #define IPreviousVersionsInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
   30233 #define IPreviousVersionsInfo_Release(This) (This)->lpVtbl->Release(This)
   30234 /*** IPreviousVersionsInfo methods ***/
   30235 #define IPreviousVersionsInfo_AreSnapshotsAvailable(This,pszPath,fOkToBeSlow,pfAvailable) (This)->lpVtbl->AreSnapshotsAvailable(This,pszPath,fOkToBeSlow,pfAvailable)
   30236 #else
   30237 /*** IUnknown methods ***/
   30238 static FORCEINLINE HRESULT IPreviousVersionsInfo_QueryInterface(IPreviousVersionsInfo* This,REFIID riid,void **ppvObject) {
   30239     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   30240 }
   30241 static FORCEINLINE ULONG IPreviousVersionsInfo_AddRef(IPreviousVersionsInfo* This) {
   30242     return This->lpVtbl->AddRef(This);
   30243 }
   30244 static FORCEINLINE ULONG IPreviousVersionsInfo_Release(IPreviousVersionsInfo* This) {
   30245     return This->lpVtbl->Release(This);
   30246 }
   30247 /*** IPreviousVersionsInfo methods ***/
   30248 static FORCEINLINE HRESULT IPreviousVersionsInfo_AreSnapshotsAvailable(IPreviousVersionsInfo* This,LPCWSTR pszPath,WINBOOL fOkToBeSlow,WINBOOL *pfAvailable) {
   30249     return This->lpVtbl->AreSnapshotsAvailable(This,pszPath,fOkToBeSlow,pfAvailable);
   30250 }
   30251 #endif
   30252 #endif
   30253 
   30254 #endif
   30255 
   30256 HRESULT STDMETHODCALLTYPE IPreviousVersionsInfo_AreSnapshotsAvailable_Proxy(
   30257     IPreviousVersionsInfo* This,
   30258     LPCWSTR pszPath,
   30259     WINBOOL fOkToBeSlow,
   30260     WINBOOL *pfAvailable);
   30261 void __RPC_STUB IPreviousVersionsInfo_AreSnapshotsAvailable_Stub(
   30262     IRpcStubBuffer* This,
   30263     IRpcChannelBuffer* pRpcChannelBuffer,
   30264     PRPC_MESSAGE pRpcMessage,
   30265     DWORD* pdwStubPhase);
   30266 
   30267 #endif  /* __IPreviousVersionsInfo_INTERFACE_DEFINED__ */
   30268 
   30269 
   30270 #if NTDDI_VERSION >= NTDDI_VISTA
   30271 /*****************************************************************************
   30272  * IRelatedItem interface
   30273  */
   30274 #ifndef __IRelatedItem_INTERFACE_DEFINED__
   30275 #define __IRelatedItem_INTERFACE_DEFINED__
   30276 
   30277 DEFINE_GUID(IID_IRelatedItem, 0xa73ce67a, 0x8ab1, 0x44f1, 0x8d,0x43, 0xd2,0xfc,0xbf,0x6b,0x1c,0xd0);
   30278 #if defined(__cplusplus) && !defined(CINTERFACE)
   30279 MIDL_INTERFACE("a73ce67a-8ab1-44f1-8d43-d2fcbf6b1cd0")
   30280 IRelatedItem : public IUnknown
   30281 {
   30282     virtual HRESULT STDMETHODCALLTYPE GetItemIDList(
   30283         PIDLIST_ABSOLUTE *ppidl) = 0;
   30284 
   30285     virtual HRESULT STDMETHODCALLTYPE GetItem(
   30286         IShellItem **ppsi) = 0;
   30287 
   30288 };
   30289 #ifdef __CRT_UUID_DECL
   30290 __CRT_UUID_DECL(IRelatedItem, 0xa73ce67a, 0x8ab1, 0x44f1, 0x8d,0x43, 0xd2,0xfc,0xbf,0x6b,0x1c,0xd0)
   30291 #endif
   30292 #else
   30293 typedef struct IRelatedItemVtbl {
   30294     BEGIN_INTERFACE
   30295 
   30296     /*** IUnknown methods ***/
   30297     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   30298         IRelatedItem* This,
   30299         REFIID riid,
   30300         void **ppvObject);
   30301 
   30302     ULONG (STDMETHODCALLTYPE *AddRef)(
   30303         IRelatedItem* This);
   30304 
   30305     ULONG (STDMETHODCALLTYPE *Release)(
   30306         IRelatedItem* This);
   30307 
   30308     /*** IRelatedItem methods ***/
   30309     HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
   30310         IRelatedItem* This,
   30311         PIDLIST_ABSOLUTE *ppidl);
   30312 
   30313     HRESULT (STDMETHODCALLTYPE *GetItem)(
   30314         IRelatedItem* This,
   30315         IShellItem **ppsi);
   30316 
   30317     END_INTERFACE
   30318 } IRelatedItemVtbl;
   30319 interface IRelatedItem {
   30320     CONST_VTBL IRelatedItemVtbl* lpVtbl;
   30321 };
   30322 
   30323 #ifdef COBJMACROS
   30324 #ifndef WIDL_C_INLINE_WRAPPERS
   30325 /*** IUnknown methods ***/
   30326 #define IRelatedItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   30327 #define IRelatedItem_AddRef(This) (This)->lpVtbl->AddRef(This)
   30328 #define IRelatedItem_Release(This) (This)->lpVtbl->Release(This)
   30329 /*** IRelatedItem methods ***/
   30330 #define IRelatedItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
   30331 #define IRelatedItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
   30332 #else
   30333 /*** IUnknown methods ***/
   30334 static FORCEINLINE HRESULT IRelatedItem_QueryInterface(IRelatedItem* This,REFIID riid,void **ppvObject) {
   30335     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   30336 }
   30337 static FORCEINLINE ULONG IRelatedItem_AddRef(IRelatedItem* This) {
   30338     return This->lpVtbl->AddRef(This);
   30339 }
   30340 static FORCEINLINE ULONG IRelatedItem_Release(IRelatedItem* This) {
   30341     return This->lpVtbl->Release(This);
   30342 }
   30343 /*** IRelatedItem methods ***/
   30344 static FORCEINLINE HRESULT IRelatedItem_GetItemIDList(IRelatedItem* This,PIDLIST_ABSOLUTE *ppidl) {
   30345     return This->lpVtbl->GetItemIDList(This,ppidl);
   30346 }
   30347 static FORCEINLINE HRESULT IRelatedItem_GetItem(IRelatedItem* This,IShellItem **ppsi) {
   30348     return This->lpVtbl->GetItem(This,ppsi);
   30349 }
   30350 #endif
   30351 #endif
   30352 
   30353 #endif
   30354 
   30355 HRESULT STDMETHODCALLTYPE IRelatedItem_GetItemIDList_Proxy(
   30356     IRelatedItem* This,
   30357     PIDLIST_ABSOLUTE *ppidl);
   30358 void __RPC_STUB IRelatedItem_GetItemIDList_Stub(
   30359     IRpcStubBuffer* This,
   30360     IRpcChannelBuffer* pRpcChannelBuffer,
   30361     PRPC_MESSAGE pRpcMessage,
   30362     DWORD* pdwStubPhase);
   30363 HRESULT STDMETHODCALLTYPE IRelatedItem_GetItem_Proxy(
   30364     IRelatedItem* This,
   30365     IShellItem **ppsi);
   30366 void __RPC_STUB IRelatedItem_GetItem_Stub(
   30367     IRpcStubBuffer* This,
   30368     IRpcChannelBuffer* pRpcChannelBuffer,
   30369     PRPC_MESSAGE pRpcMessage,
   30370     DWORD* pdwStubPhase);
   30371 
   30372 #endif  /* __IRelatedItem_INTERFACE_DEFINED__ */
   30373 
   30374 
   30375 /*****************************************************************************
   30376  * IIdentityName interface
   30377  */
   30378 #ifndef __IIdentityName_INTERFACE_DEFINED__
   30379 #define __IIdentityName_INTERFACE_DEFINED__
   30380 
   30381 DEFINE_GUID(IID_IIdentityName, 0x7d903fca, 0xd6f9, 0x4810, 0x83,0x32, 0x94,0x6c,0x01,0x77,0xe2,0x47);
   30382 #if defined(__cplusplus) && !defined(CINTERFACE)
   30383 MIDL_INTERFACE("7d903fca-d6f9-4810-8332-946c0177e247")
   30384 IIdentityName : public IRelatedItem
   30385 {
   30386 };
   30387 #ifdef __CRT_UUID_DECL
   30388 __CRT_UUID_DECL(IIdentityName, 0x7d903fca, 0xd6f9, 0x4810, 0x83,0x32, 0x94,0x6c,0x01,0x77,0xe2,0x47)
   30389 #endif
   30390 #else
   30391 typedef struct IIdentityNameVtbl {
   30392     BEGIN_INTERFACE
   30393 
   30394     /*** IUnknown methods ***/
   30395     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   30396         IIdentityName* This,
   30397         REFIID riid,
   30398         void **ppvObject);
   30399 
   30400     ULONG (STDMETHODCALLTYPE *AddRef)(
   30401         IIdentityName* This);
   30402 
   30403     ULONG (STDMETHODCALLTYPE *Release)(
   30404         IIdentityName* This);
   30405 
   30406     /*** IRelatedItem methods ***/
   30407     HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
   30408         IIdentityName* This,
   30409         PIDLIST_ABSOLUTE *ppidl);
   30410 
   30411     HRESULT (STDMETHODCALLTYPE *GetItem)(
   30412         IIdentityName* This,
   30413         IShellItem **ppsi);
   30414 
   30415     END_INTERFACE
   30416 } IIdentityNameVtbl;
   30417 interface IIdentityName {
   30418     CONST_VTBL IIdentityNameVtbl* lpVtbl;
   30419 };
   30420 
   30421 #ifdef COBJMACROS
   30422 #ifndef WIDL_C_INLINE_WRAPPERS
   30423 /*** IUnknown methods ***/
   30424 #define IIdentityName_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   30425 #define IIdentityName_AddRef(This) (This)->lpVtbl->AddRef(This)
   30426 #define IIdentityName_Release(This) (This)->lpVtbl->Release(This)
   30427 /*** IRelatedItem methods ***/
   30428 #define IIdentityName_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
   30429 #define IIdentityName_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
   30430 #else
   30431 /*** IUnknown methods ***/
   30432 static FORCEINLINE HRESULT IIdentityName_QueryInterface(IIdentityName* This,REFIID riid,void **ppvObject) {
   30433     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   30434 }
   30435 static FORCEINLINE ULONG IIdentityName_AddRef(IIdentityName* This) {
   30436     return This->lpVtbl->AddRef(This);
   30437 }
   30438 static FORCEINLINE ULONG IIdentityName_Release(IIdentityName* This) {
   30439     return This->lpVtbl->Release(This);
   30440 }
   30441 /*** IRelatedItem methods ***/
   30442 static FORCEINLINE HRESULT IIdentityName_GetItemIDList(IIdentityName* This,PIDLIST_ABSOLUTE *ppidl) {
   30443     return This->lpVtbl->GetItemIDList(This,ppidl);
   30444 }
   30445 static FORCEINLINE HRESULT IIdentityName_GetItem(IIdentityName* This,IShellItem **ppsi) {
   30446     return This->lpVtbl->GetItem(This,ppsi);
   30447 }
   30448 #endif
   30449 #endif
   30450 
   30451 #endif
   30452 
   30453 
   30454 #endif  /* __IIdentityName_INTERFACE_DEFINED__ */
   30455 
   30456 
   30457 /*****************************************************************************
   30458  * IDelegateItem interface
   30459  */
   30460 #ifndef __IDelegateItem_INTERFACE_DEFINED__
   30461 #define __IDelegateItem_INTERFACE_DEFINED__
   30462 
   30463 DEFINE_GUID(IID_IDelegateItem, 0x3c5a1c94, 0xc951, 0x4cb7, 0xbb,0x6d, 0x3b,0x93,0xf3,0x0c,0xce,0x93);
   30464 #if defined(__cplusplus) && !defined(CINTERFACE)
   30465 MIDL_INTERFACE("3c5a1c94-c951-4cb7-bb6d-3b93f30cce93")
   30466 IDelegateItem : public IRelatedItem
   30467 {
   30468 };
   30469 #ifdef __CRT_UUID_DECL
   30470 __CRT_UUID_DECL(IDelegateItem, 0x3c5a1c94, 0xc951, 0x4cb7, 0xbb,0x6d, 0x3b,0x93,0xf3,0x0c,0xce,0x93)
   30471 #endif
   30472 #else
   30473 typedef struct IDelegateItemVtbl {
   30474     BEGIN_INTERFACE
   30475 
   30476     /*** IUnknown methods ***/
   30477     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   30478         IDelegateItem* This,
   30479         REFIID riid,
   30480         void **ppvObject);
   30481 
   30482     ULONG (STDMETHODCALLTYPE *AddRef)(
   30483         IDelegateItem* This);
   30484 
   30485     ULONG (STDMETHODCALLTYPE *Release)(
   30486         IDelegateItem* This);
   30487 
   30488     /*** IRelatedItem methods ***/
   30489     HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
   30490         IDelegateItem* This,
   30491         PIDLIST_ABSOLUTE *ppidl);
   30492 
   30493     HRESULT (STDMETHODCALLTYPE *GetItem)(
   30494         IDelegateItem* This,
   30495         IShellItem **ppsi);
   30496 
   30497     END_INTERFACE
   30498 } IDelegateItemVtbl;
   30499 interface IDelegateItem {
   30500     CONST_VTBL IDelegateItemVtbl* lpVtbl;
   30501 };
   30502 
   30503 #ifdef COBJMACROS
   30504 #ifndef WIDL_C_INLINE_WRAPPERS
   30505 /*** IUnknown methods ***/
   30506 #define IDelegateItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   30507 #define IDelegateItem_AddRef(This) (This)->lpVtbl->AddRef(This)
   30508 #define IDelegateItem_Release(This) (This)->lpVtbl->Release(This)
   30509 /*** IRelatedItem methods ***/
   30510 #define IDelegateItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
   30511 #define IDelegateItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
   30512 #else
   30513 /*** IUnknown methods ***/
   30514 static FORCEINLINE HRESULT IDelegateItem_QueryInterface(IDelegateItem* This,REFIID riid,void **ppvObject) {
   30515     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   30516 }
   30517 static FORCEINLINE ULONG IDelegateItem_AddRef(IDelegateItem* This) {
   30518     return This->lpVtbl->AddRef(This);
   30519 }
   30520 static FORCEINLINE ULONG IDelegateItem_Release(IDelegateItem* This) {
   30521     return This->lpVtbl->Release(This);
   30522 }
   30523 /*** IRelatedItem methods ***/
   30524 static FORCEINLINE HRESULT IDelegateItem_GetItemIDList(IDelegateItem* This,PIDLIST_ABSOLUTE *ppidl) {
   30525     return This->lpVtbl->GetItemIDList(This,ppidl);
   30526 }
   30527 static FORCEINLINE HRESULT IDelegateItem_GetItem(IDelegateItem* This,IShellItem **ppsi) {
   30528     return This->lpVtbl->GetItem(This,ppsi);
   30529 }
   30530 #endif
   30531 #endif
   30532 
   30533 #endif
   30534 
   30535 
   30536 #endif  /* __IDelegateItem_INTERFACE_DEFINED__ */
   30537 
   30538 
   30539 /*****************************************************************************
   30540  * ICurrentItem interface
   30541  */
   30542 #ifndef __ICurrentItem_INTERFACE_DEFINED__
   30543 #define __ICurrentItem_INTERFACE_DEFINED__
   30544 
   30545 DEFINE_GUID(IID_ICurrentItem, 0x240a7174, 0xd653, 0x4a1d, 0xa6,0xd3, 0xd4,0x94,0x3c,0xfb,0xfe,0x3d);
   30546 #if defined(__cplusplus) && !defined(CINTERFACE)
   30547 MIDL_INTERFACE("240a7174-d653-4a1d-a6d3-d4943cfbfe3d")
   30548 ICurrentItem : public IRelatedItem
   30549 {
   30550 };
   30551 #ifdef __CRT_UUID_DECL
   30552 __CRT_UUID_DECL(ICurrentItem, 0x240a7174, 0xd653, 0x4a1d, 0xa6,0xd3, 0xd4,0x94,0x3c,0xfb,0xfe,0x3d)
   30553 #endif
   30554 #else
   30555 typedef struct ICurrentItemVtbl {
   30556     BEGIN_INTERFACE
   30557 
   30558     /*** IUnknown methods ***/
   30559     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   30560         ICurrentItem* This,
   30561         REFIID riid,
   30562         void **ppvObject);
   30563 
   30564     ULONG (STDMETHODCALLTYPE *AddRef)(
   30565         ICurrentItem* This);
   30566 
   30567     ULONG (STDMETHODCALLTYPE *Release)(
   30568         ICurrentItem* This);
   30569 
   30570     /*** IRelatedItem methods ***/
   30571     HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
   30572         ICurrentItem* This,
   30573         PIDLIST_ABSOLUTE *ppidl);
   30574 
   30575     HRESULT (STDMETHODCALLTYPE *GetItem)(
   30576         ICurrentItem* This,
   30577         IShellItem **ppsi);
   30578 
   30579     END_INTERFACE
   30580 } ICurrentItemVtbl;
   30581 interface ICurrentItem {
   30582     CONST_VTBL ICurrentItemVtbl* lpVtbl;
   30583 };
   30584 
   30585 #ifdef COBJMACROS
   30586 #ifndef WIDL_C_INLINE_WRAPPERS
   30587 /*** IUnknown methods ***/
   30588 #define ICurrentItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   30589 #define ICurrentItem_AddRef(This) (This)->lpVtbl->AddRef(This)
   30590 #define ICurrentItem_Release(This) (This)->lpVtbl->Release(This)
   30591 /*** IRelatedItem methods ***/
   30592 #define ICurrentItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
   30593 #define ICurrentItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
   30594 #else
   30595 /*** IUnknown methods ***/
   30596 static FORCEINLINE HRESULT ICurrentItem_QueryInterface(ICurrentItem* This,REFIID riid,void **ppvObject) {
   30597     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   30598 }
   30599 static FORCEINLINE ULONG ICurrentItem_AddRef(ICurrentItem* This) {
   30600     return This->lpVtbl->AddRef(This);
   30601 }
   30602 static FORCEINLINE ULONG ICurrentItem_Release(ICurrentItem* This) {
   30603     return This->lpVtbl->Release(This);
   30604 }
   30605 /*** IRelatedItem methods ***/
   30606 static FORCEINLINE HRESULT ICurrentItem_GetItemIDList(ICurrentItem* This,PIDLIST_ABSOLUTE *ppidl) {
   30607     return This->lpVtbl->GetItemIDList(This,ppidl);
   30608 }
   30609 static FORCEINLINE HRESULT ICurrentItem_GetItem(ICurrentItem* This,IShellItem **ppsi) {
   30610     return This->lpVtbl->GetItem(This,ppsi);
   30611 }
   30612 #endif
   30613 #endif
   30614 
   30615 #endif
   30616 
   30617 
   30618 #endif  /* __ICurrentItem_INTERFACE_DEFINED__ */
   30619 
   30620 
   30621 /*****************************************************************************
   30622  * ITransferMediumItem interface
   30623  */
   30624 #ifndef __ITransferMediumItem_INTERFACE_DEFINED__
   30625 #define __ITransferMediumItem_INTERFACE_DEFINED__
   30626 
   30627 DEFINE_GUID(IID_ITransferMediumItem, 0x77f295d5, 0x2d6f, 0x4e19, 0xb8,0xae, 0x32,0x2f,0x3e,0x72,0x1a,0xb5);
   30628 #if defined(__cplusplus) && !defined(CINTERFACE)
   30629 MIDL_INTERFACE("77f295d5-2d6f-4e19-b8ae-322f3e721ab5")
   30630 ITransferMediumItem : public IRelatedItem
   30631 {
   30632 };
   30633 #ifdef __CRT_UUID_DECL
   30634 __CRT_UUID_DECL(ITransferMediumItem, 0x77f295d5, 0x2d6f, 0x4e19, 0xb8,0xae, 0x32,0x2f,0x3e,0x72,0x1a,0xb5)
   30635 #endif
   30636 #else
   30637 typedef struct ITransferMediumItemVtbl {
   30638     BEGIN_INTERFACE
   30639 
   30640     /*** IUnknown methods ***/
   30641     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   30642         ITransferMediumItem* This,
   30643         REFIID riid,
   30644         void **ppvObject);
   30645 
   30646     ULONG (STDMETHODCALLTYPE *AddRef)(
   30647         ITransferMediumItem* This);
   30648 
   30649     ULONG (STDMETHODCALLTYPE *Release)(
   30650         ITransferMediumItem* This);
   30651 
   30652     /*** IRelatedItem methods ***/
   30653     HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
   30654         ITransferMediumItem* This,
   30655         PIDLIST_ABSOLUTE *ppidl);
   30656 
   30657     HRESULT (STDMETHODCALLTYPE *GetItem)(
   30658         ITransferMediumItem* This,
   30659         IShellItem **ppsi);
   30660 
   30661     END_INTERFACE
   30662 } ITransferMediumItemVtbl;
   30663 interface ITransferMediumItem {
   30664     CONST_VTBL ITransferMediumItemVtbl* lpVtbl;
   30665 };
   30666 
   30667 #ifdef COBJMACROS
   30668 #ifndef WIDL_C_INLINE_WRAPPERS
   30669 /*** IUnknown methods ***/
   30670 #define ITransferMediumItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   30671 #define ITransferMediumItem_AddRef(This) (This)->lpVtbl->AddRef(This)
   30672 #define ITransferMediumItem_Release(This) (This)->lpVtbl->Release(This)
   30673 /*** IRelatedItem methods ***/
   30674 #define ITransferMediumItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
   30675 #define ITransferMediumItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
   30676 #else
   30677 /*** IUnknown methods ***/
   30678 static FORCEINLINE HRESULT ITransferMediumItem_QueryInterface(ITransferMediumItem* This,REFIID riid,void **ppvObject) {
   30679     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   30680 }
   30681 static FORCEINLINE ULONG ITransferMediumItem_AddRef(ITransferMediumItem* This) {
   30682     return This->lpVtbl->AddRef(This);
   30683 }
   30684 static FORCEINLINE ULONG ITransferMediumItem_Release(ITransferMediumItem* This) {
   30685     return This->lpVtbl->Release(This);
   30686 }
   30687 /*** IRelatedItem methods ***/
   30688 static FORCEINLINE HRESULT ITransferMediumItem_GetItemIDList(ITransferMediumItem* This,PIDLIST_ABSOLUTE *ppidl) {
   30689     return This->lpVtbl->GetItemIDList(This,ppidl);
   30690 }
   30691 static FORCEINLINE HRESULT ITransferMediumItem_GetItem(ITransferMediumItem* This,IShellItem **ppsi) {
   30692     return This->lpVtbl->GetItem(This,ppsi);
   30693 }
   30694 #endif
   30695 #endif
   30696 
   30697 #endif
   30698 
   30699 
   30700 #endif  /* __ITransferMediumItem_INTERFACE_DEFINED__ */
   30701 
   30702 
   30703 /*****************************************************************************
   30704  * IUseToBrowseItem interface
   30705  */
   30706 #ifndef __IUseToBrowseItem_INTERFACE_DEFINED__
   30707 #define __IUseToBrowseItem_INTERFACE_DEFINED__
   30708 
   30709 DEFINE_GUID(IID_IUseToBrowseItem, 0x05edda5c, 0x98a3, 0x4717, 0x8a,0xdb, 0xc5,0xe7,0xda,0x99,0x1e,0xb1);
   30710 #if defined(__cplusplus) && !defined(CINTERFACE)
   30711 MIDL_INTERFACE("05edda5c-98a3-4717-8adb-c5e7da991eb1")
   30712 IUseToBrowseItem : public IRelatedItem
   30713 {
   30714 };
   30715 #ifdef __CRT_UUID_DECL
   30716 __CRT_UUID_DECL(IUseToBrowseItem, 0x05edda5c, 0x98a3, 0x4717, 0x8a,0xdb, 0xc5,0xe7,0xda,0x99,0x1e,0xb1)
   30717 #endif
   30718 #else
   30719 typedef struct IUseToBrowseItemVtbl {
   30720     BEGIN_INTERFACE
   30721 
   30722     /*** IUnknown methods ***/
   30723     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   30724         IUseToBrowseItem* This,
   30725         REFIID riid,
   30726         void **ppvObject);
   30727 
   30728     ULONG (STDMETHODCALLTYPE *AddRef)(
   30729         IUseToBrowseItem* This);
   30730 
   30731     ULONG (STDMETHODCALLTYPE *Release)(
   30732         IUseToBrowseItem* This);
   30733 
   30734     /*** IRelatedItem methods ***/
   30735     HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
   30736         IUseToBrowseItem* This,
   30737         PIDLIST_ABSOLUTE *ppidl);
   30738 
   30739     HRESULT (STDMETHODCALLTYPE *GetItem)(
   30740         IUseToBrowseItem* This,
   30741         IShellItem **ppsi);
   30742 
   30743     END_INTERFACE
   30744 } IUseToBrowseItemVtbl;
   30745 interface IUseToBrowseItem {
   30746     CONST_VTBL IUseToBrowseItemVtbl* lpVtbl;
   30747 };
   30748 
   30749 #ifdef COBJMACROS
   30750 #ifndef WIDL_C_INLINE_WRAPPERS
   30751 /*** IUnknown methods ***/
   30752 #define IUseToBrowseItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   30753 #define IUseToBrowseItem_AddRef(This) (This)->lpVtbl->AddRef(This)
   30754 #define IUseToBrowseItem_Release(This) (This)->lpVtbl->Release(This)
   30755 /*** IRelatedItem methods ***/
   30756 #define IUseToBrowseItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
   30757 #define IUseToBrowseItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
   30758 #else
   30759 /*** IUnknown methods ***/
   30760 static FORCEINLINE HRESULT IUseToBrowseItem_QueryInterface(IUseToBrowseItem* This,REFIID riid,void **ppvObject) {
   30761     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   30762 }
   30763 static FORCEINLINE ULONG IUseToBrowseItem_AddRef(IUseToBrowseItem* This) {
   30764     return This->lpVtbl->AddRef(This);
   30765 }
   30766 static FORCEINLINE ULONG IUseToBrowseItem_Release(IUseToBrowseItem* This) {
   30767     return This->lpVtbl->Release(This);
   30768 }
   30769 /*** IRelatedItem methods ***/
   30770 static FORCEINLINE HRESULT IUseToBrowseItem_GetItemIDList(IUseToBrowseItem* This,PIDLIST_ABSOLUTE *ppidl) {
   30771     return This->lpVtbl->GetItemIDList(This,ppidl);
   30772 }
   30773 static FORCEINLINE HRESULT IUseToBrowseItem_GetItem(IUseToBrowseItem* This,IShellItem **ppsi) {
   30774     return This->lpVtbl->GetItem(This,ppsi);
   30775 }
   30776 #endif
   30777 #endif
   30778 
   30779 #endif
   30780 
   30781 
   30782 #endif  /* __IUseToBrowseItem_INTERFACE_DEFINED__ */
   30783 
   30784 
   30785 /*****************************************************************************
   30786  * IDisplayItem interface
   30787  */
   30788 #ifndef __IDisplayItem_INTERFACE_DEFINED__
   30789 #define __IDisplayItem_INTERFACE_DEFINED__
   30790 
   30791 DEFINE_GUID(IID_IDisplayItem, 0xc6fd5997, 0x9f6b, 0x4888, 0x87,0x03, 0x94,0xe8,0x0e,0x8c,0xde,0x3f);
   30792 #if defined(__cplusplus) && !defined(CINTERFACE)
   30793 MIDL_INTERFACE("c6fd5997-9f6b-4888-8703-94e80e8cde3f")
   30794 IDisplayItem : public IRelatedItem
   30795 {
   30796 };
   30797 #ifdef __CRT_UUID_DECL
   30798 __CRT_UUID_DECL(IDisplayItem, 0xc6fd5997, 0x9f6b, 0x4888, 0x87,0x03, 0x94,0xe8,0x0e,0x8c,0xde,0x3f)
   30799 #endif
   30800 #else
   30801 typedef struct IDisplayItemVtbl {
   30802     BEGIN_INTERFACE
   30803 
   30804     /*** IUnknown methods ***/
   30805     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   30806         IDisplayItem* This,
   30807         REFIID riid,
   30808         void **ppvObject);
   30809 
   30810     ULONG (STDMETHODCALLTYPE *AddRef)(
   30811         IDisplayItem* This);
   30812 
   30813     ULONG (STDMETHODCALLTYPE *Release)(
   30814         IDisplayItem* This);
   30815 
   30816     /*** IRelatedItem methods ***/
   30817     HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
   30818         IDisplayItem* This,
   30819         PIDLIST_ABSOLUTE *ppidl);
   30820 
   30821     HRESULT (STDMETHODCALLTYPE *GetItem)(
   30822         IDisplayItem* This,
   30823         IShellItem **ppsi);
   30824 
   30825     END_INTERFACE
   30826 } IDisplayItemVtbl;
   30827 interface IDisplayItem {
   30828     CONST_VTBL IDisplayItemVtbl* lpVtbl;
   30829 };
   30830 
   30831 #ifdef COBJMACROS
   30832 #ifndef WIDL_C_INLINE_WRAPPERS
   30833 /*** IUnknown methods ***/
   30834 #define IDisplayItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   30835 #define IDisplayItem_AddRef(This) (This)->lpVtbl->AddRef(This)
   30836 #define IDisplayItem_Release(This) (This)->lpVtbl->Release(This)
   30837 /*** IRelatedItem methods ***/
   30838 #define IDisplayItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
   30839 #define IDisplayItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
   30840 #else
   30841 /*** IUnknown methods ***/
   30842 static FORCEINLINE HRESULT IDisplayItem_QueryInterface(IDisplayItem* This,REFIID riid,void **ppvObject) {
   30843     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   30844 }
   30845 static FORCEINLINE ULONG IDisplayItem_AddRef(IDisplayItem* This) {
   30846     return This->lpVtbl->AddRef(This);
   30847 }
   30848 static FORCEINLINE ULONG IDisplayItem_Release(IDisplayItem* This) {
   30849     return This->lpVtbl->Release(This);
   30850 }
   30851 /*** IRelatedItem methods ***/
   30852 static FORCEINLINE HRESULT IDisplayItem_GetItemIDList(IDisplayItem* This,PIDLIST_ABSOLUTE *ppidl) {
   30853     return This->lpVtbl->GetItemIDList(This,ppidl);
   30854 }
   30855 static FORCEINLINE HRESULT IDisplayItem_GetItem(IDisplayItem* This,IShellItem **ppsi) {
   30856     return This->lpVtbl->GetItem(This,ppsi);
   30857 }
   30858 #endif
   30859 #endif
   30860 
   30861 #endif
   30862 
   30863 
   30864 #endif  /* __IDisplayItem_INTERFACE_DEFINED__ */
   30865 
   30866 
   30867 /*****************************************************************************
   30868  * IViewStateIdentityItem interface
   30869  */
   30870 #ifndef __IViewStateIdentityItem_INTERFACE_DEFINED__
   30871 #define __IViewStateIdentityItem_INTERFACE_DEFINED__
   30872 
   30873 DEFINE_GUID(IID_IViewStateIdentityItem, 0x9d264146, 0xa94f, 0x4195, 0x9f,0x9f, 0x3b,0xb1,0x2c,0xe0,0xc9,0x55);
   30874 #if defined(__cplusplus) && !defined(CINTERFACE)
   30875 MIDL_INTERFACE("9d264146-a94f-4195-9f9f-3bb12ce0c955")
   30876 IViewStateIdentityItem : public IRelatedItem
   30877 {
   30878 };
   30879 #ifdef __CRT_UUID_DECL
   30880 __CRT_UUID_DECL(IViewStateIdentityItem, 0x9d264146, 0xa94f, 0x4195, 0x9f,0x9f, 0x3b,0xb1,0x2c,0xe0,0xc9,0x55)
   30881 #endif
   30882 #else
   30883 typedef struct IViewStateIdentityItemVtbl {
   30884     BEGIN_INTERFACE
   30885 
   30886     /*** IUnknown methods ***/
   30887     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   30888         IViewStateIdentityItem* This,
   30889         REFIID riid,
   30890         void **ppvObject);
   30891 
   30892     ULONG (STDMETHODCALLTYPE *AddRef)(
   30893         IViewStateIdentityItem* This);
   30894 
   30895     ULONG (STDMETHODCALLTYPE *Release)(
   30896         IViewStateIdentityItem* This);
   30897 
   30898     /*** IRelatedItem methods ***/
   30899     HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
   30900         IViewStateIdentityItem* This,
   30901         PIDLIST_ABSOLUTE *ppidl);
   30902 
   30903     HRESULT (STDMETHODCALLTYPE *GetItem)(
   30904         IViewStateIdentityItem* This,
   30905         IShellItem **ppsi);
   30906 
   30907     END_INTERFACE
   30908 } IViewStateIdentityItemVtbl;
   30909 interface IViewStateIdentityItem {
   30910     CONST_VTBL IViewStateIdentityItemVtbl* lpVtbl;
   30911 };
   30912 
   30913 #ifdef COBJMACROS
   30914 #ifndef WIDL_C_INLINE_WRAPPERS
   30915 /*** IUnknown methods ***/
   30916 #define IViewStateIdentityItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   30917 #define IViewStateIdentityItem_AddRef(This) (This)->lpVtbl->AddRef(This)
   30918 #define IViewStateIdentityItem_Release(This) (This)->lpVtbl->Release(This)
   30919 /*** IRelatedItem methods ***/
   30920 #define IViewStateIdentityItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
   30921 #define IViewStateIdentityItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
   30922 #else
   30923 /*** IUnknown methods ***/
   30924 static FORCEINLINE HRESULT IViewStateIdentityItem_QueryInterface(IViewStateIdentityItem* This,REFIID riid,void **ppvObject) {
   30925     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   30926 }
   30927 static FORCEINLINE ULONG IViewStateIdentityItem_AddRef(IViewStateIdentityItem* This) {
   30928     return This->lpVtbl->AddRef(This);
   30929 }
   30930 static FORCEINLINE ULONG IViewStateIdentityItem_Release(IViewStateIdentityItem* This) {
   30931     return This->lpVtbl->Release(This);
   30932 }
   30933 /*** IRelatedItem methods ***/
   30934 static FORCEINLINE HRESULT IViewStateIdentityItem_GetItemIDList(IViewStateIdentityItem* This,PIDLIST_ABSOLUTE *ppidl) {
   30935     return This->lpVtbl->GetItemIDList(This,ppidl);
   30936 }
   30937 static FORCEINLINE HRESULT IViewStateIdentityItem_GetItem(IViewStateIdentityItem* This,IShellItem **ppsi) {
   30938     return This->lpVtbl->GetItem(This,ppsi);
   30939 }
   30940 #endif
   30941 #endif
   30942 
   30943 #endif
   30944 
   30945 
   30946 #endif  /* __IViewStateIdentityItem_INTERFACE_DEFINED__ */
   30947 
   30948 
   30949 /*****************************************************************************
   30950  * IPreviewItem interface
   30951  */
   30952 #ifndef __IPreviewItem_INTERFACE_DEFINED__
   30953 #define __IPreviewItem_INTERFACE_DEFINED__
   30954 
   30955 DEFINE_GUID(IID_IPreviewItem, 0x36149969, 0x0a8f, 0x49c8, 0x8b,0x00, 0x4a,0xec,0xb2,0x02,0x22,0xfb);
   30956 #if defined(__cplusplus) && !defined(CINTERFACE)
   30957 MIDL_INTERFACE("36149969-0a8f-49c8-8b00-4aecb20222fb")
   30958 IPreviewItem : public IRelatedItem
   30959 {
   30960 };
   30961 #ifdef __CRT_UUID_DECL
   30962 __CRT_UUID_DECL(IPreviewItem, 0x36149969, 0x0a8f, 0x49c8, 0x8b,0x00, 0x4a,0xec,0xb2,0x02,0x22,0xfb)
   30963 #endif
   30964 #else
   30965 typedef struct IPreviewItemVtbl {
   30966     BEGIN_INTERFACE
   30967 
   30968     /*** IUnknown methods ***/
   30969     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   30970         IPreviewItem* This,
   30971         REFIID riid,
   30972         void **ppvObject);
   30973 
   30974     ULONG (STDMETHODCALLTYPE *AddRef)(
   30975         IPreviewItem* This);
   30976 
   30977     ULONG (STDMETHODCALLTYPE *Release)(
   30978         IPreviewItem* This);
   30979 
   30980     /*** IRelatedItem methods ***/
   30981     HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
   30982         IPreviewItem* This,
   30983         PIDLIST_ABSOLUTE *ppidl);
   30984 
   30985     HRESULT (STDMETHODCALLTYPE *GetItem)(
   30986         IPreviewItem* This,
   30987         IShellItem **ppsi);
   30988 
   30989     END_INTERFACE
   30990 } IPreviewItemVtbl;
   30991 interface IPreviewItem {
   30992     CONST_VTBL IPreviewItemVtbl* lpVtbl;
   30993 };
   30994 
   30995 #ifdef COBJMACROS
   30996 #ifndef WIDL_C_INLINE_WRAPPERS
   30997 /*** IUnknown methods ***/
   30998 #define IPreviewItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   30999 #define IPreviewItem_AddRef(This) (This)->lpVtbl->AddRef(This)
   31000 #define IPreviewItem_Release(This) (This)->lpVtbl->Release(This)
   31001 /*** IRelatedItem methods ***/
   31002 #define IPreviewItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
   31003 #define IPreviewItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
   31004 #else
   31005 /*** IUnknown methods ***/
   31006 static FORCEINLINE HRESULT IPreviewItem_QueryInterface(IPreviewItem* This,REFIID riid,void **ppvObject) {
   31007     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   31008 }
   31009 static FORCEINLINE ULONG IPreviewItem_AddRef(IPreviewItem* This) {
   31010     return This->lpVtbl->AddRef(This);
   31011 }
   31012 static FORCEINLINE ULONG IPreviewItem_Release(IPreviewItem* This) {
   31013     return This->lpVtbl->Release(This);
   31014 }
   31015 /*** IRelatedItem methods ***/
   31016 static FORCEINLINE HRESULT IPreviewItem_GetItemIDList(IPreviewItem* This,PIDLIST_ABSOLUTE *ppidl) {
   31017     return This->lpVtbl->GetItemIDList(This,ppidl);
   31018 }
   31019 static FORCEINLINE HRESULT IPreviewItem_GetItem(IPreviewItem* This,IShellItem **ppsi) {
   31020     return This->lpVtbl->GetItem(This,ppsi);
   31021 }
   31022 #endif
   31023 #endif
   31024 
   31025 #endif
   31026 
   31027 
   31028 #endif  /* __IPreviewItem_INTERFACE_DEFINED__ */
   31029 
   31030 #endif
   31031 
   31032 /*****************************************************************************
   31033  * IDestinationStreamFactory interface
   31034  */
   31035 #ifndef __IDestinationStreamFactory_INTERFACE_DEFINED__
   31036 #define __IDestinationStreamFactory_INTERFACE_DEFINED__
   31037 
   31038 DEFINE_GUID(IID_IDestinationStreamFactory, 0x8a87781b, 0x39a7, 0x4a1f, 0xaa,0xb3, 0xa3,0x9b,0x9c,0x34,0xa7,0xd9);
   31039 #if defined(__cplusplus) && !defined(CINTERFACE)
   31040 MIDL_INTERFACE("8a87781b-39a7-4a1f-aab3-a39b9c34a7d9")
   31041 IDestinationStreamFactory : public IUnknown
   31042 {
   31043     virtual HRESULT STDMETHODCALLTYPE GetDestinationStream(
   31044         IStream **ppstm) = 0;
   31045 
   31046 };
   31047 #ifdef __CRT_UUID_DECL
   31048 __CRT_UUID_DECL(IDestinationStreamFactory, 0x8a87781b, 0x39a7, 0x4a1f, 0xaa,0xb3, 0xa3,0x9b,0x9c,0x34,0xa7,0xd9)
   31049 #endif
   31050 #else
   31051 typedef struct IDestinationStreamFactoryVtbl {
   31052     BEGIN_INTERFACE
   31053 
   31054     /*** IUnknown methods ***/
   31055     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   31056         IDestinationStreamFactory* This,
   31057         REFIID riid,
   31058         void **ppvObject);
   31059 
   31060     ULONG (STDMETHODCALLTYPE *AddRef)(
   31061         IDestinationStreamFactory* This);
   31062 
   31063     ULONG (STDMETHODCALLTYPE *Release)(
   31064         IDestinationStreamFactory* This);
   31065 
   31066     /*** IDestinationStreamFactory methods ***/
   31067     HRESULT (STDMETHODCALLTYPE *GetDestinationStream)(
   31068         IDestinationStreamFactory* This,
   31069         IStream **ppstm);
   31070 
   31071     END_INTERFACE
   31072 } IDestinationStreamFactoryVtbl;
   31073 interface IDestinationStreamFactory {
   31074     CONST_VTBL IDestinationStreamFactoryVtbl* lpVtbl;
   31075 };
   31076 
   31077 #ifdef COBJMACROS
   31078 #ifndef WIDL_C_INLINE_WRAPPERS
   31079 /*** IUnknown methods ***/
   31080 #define IDestinationStreamFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   31081 #define IDestinationStreamFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
   31082 #define IDestinationStreamFactory_Release(This) (This)->lpVtbl->Release(This)
   31083 /*** IDestinationStreamFactory methods ***/
   31084 #define IDestinationStreamFactory_GetDestinationStream(This,ppstm) (This)->lpVtbl->GetDestinationStream(This,ppstm)
   31085 #else
   31086 /*** IUnknown methods ***/
   31087 static FORCEINLINE HRESULT IDestinationStreamFactory_QueryInterface(IDestinationStreamFactory* This,REFIID riid,void **ppvObject) {
   31088     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   31089 }
   31090 static FORCEINLINE ULONG IDestinationStreamFactory_AddRef(IDestinationStreamFactory* This) {
   31091     return This->lpVtbl->AddRef(This);
   31092 }
   31093 static FORCEINLINE ULONG IDestinationStreamFactory_Release(IDestinationStreamFactory* This) {
   31094     return This->lpVtbl->Release(This);
   31095 }
   31096 /*** IDestinationStreamFactory methods ***/
   31097 static FORCEINLINE HRESULT IDestinationStreamFactory_GetDestinationStream(IDestinationStreamFactory* This,IStream **ppstm) {
   31098     return This->lpVtbl->GetDestinationStream(This,ppstm);
   31099 }
   31100 #endif
   31101 #endif
   31102 
   31103 #endif
   31104 
   31105 HRESULT STDMETHODCALLTYPE IDestinationStreamFactory_GetDestinationStream_Proxy(
   31106     IDestinationStreamFactory* This,
   31107     IStream **ppstm);
   31108 void __RPC_STUB IDestinationStreamFactory_GetDestinationStream_Stub(
   31109     IRpcStubBuffer* This,
   31110     IRpcChannelBuffer* pRpcChannelBuffer,
   31111     PRPC_MESSAGE pRpcMessage,
   31112     DWORD* pdwStubPhase);
   31113 
   31114 #endif  /* __IDestinationStreamFactory_INTERFACE_DEFINED__ */
   31115 
   31116 
   31117 enum _NMCII_FLAGS {
   31118     NMCII_NONE = 0x0,
   31119     NMCII_ITEMS = 0x1,
   31120     NMCII_FOLDERS = 0x2
   31121 };
   31122 
   31123 
   31124 typedef int NMCII_FLAGS;
   31125 
   31126 enum _NMCSAEI_FLAGS {
   31127     NMCSAEI_SELECT = 0x0,
   31128     NMCSAEI_EDIT = 0x1
   31129 };
   31130 
   31131 
   31132 typedef int NMCSAEI_FLAGS;
   31133 
   31134 /*****************************************************************************
   31135  * INewMenuClient interface
   31136  */
   31137 #ifndef __INewMenuClient_INTERFACE_DEFINED__
   31138 #define __INewMenuClient_INTERFACE_DEFINED__
   31139 
   31140 DEFINE_GUID(IID_INewMenuClient, 0xdcb07fdc, 0x3bb5, 0x451c, 0x90,0xbe, 0x96,0x66,0x44,0xfe,0xd7,0xb0);
   31141 #if defined(__cplusplus) && !defined(CINTERFACE)
   31142 MIDL_INTERFACE("dcb07fdc-3bb5-451c-90be-966644fed7b0")
   31143 INewMenuClient : public IUnknown
   31144 {
   31145     virtual HRESULT STDMETHODCALLTYPE IncludeItems(
   31146         NMCII_FLAGS *pflags) = 0;
   31147 
   31148     virtual HRESULT STDMETHODCALLTYPE SelectAndEditItem(
   31149         PCIDLIST_ABSOLUTE pidlItem,
   31150         NMCSAEI_FLAGS flags) = 0;
   31151 
   31152 };
   31153 #ifdef __CRT_UUID_DECL
   31154 __CRT_UUID_DECL(INewMenuClient, 0xdcb07fdc, 0x3bb5, 0x451c, 0x90,0xbe, 0x96,0x66,0x44,0xfe,0xd7,0xb0)
   31155 #endif
   31156 #else
   31157 typedef struct INewMenuClientVtbl {
   31158     BEGIN_INTERFACE
   31159 
   31160     /*** IUnknown methods ***/
   31161     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   31162         INewMenuClient* This,
   31163         REFIID riid,
   31164         void **ppvObject);
   31165 
   31166     ULONG (STDMETHODCALLTYPE *AddRef)(
   31167         INewMenuClient* This);
   31168 
   31169     ULONG (STDMETHODCALLTYPE *Release)(
   31170         INewMenuClient* This);
   31171 
   31172     /*** INewMenuClient methods ***/
   31173     HRESULT (STDMETHODCALLTYPE *IncludeItems)(
   31174         INewMenuClient* This,
   31175         NMCII_FLAGS *pflags);
   31176 
   31177     HRESULT (STDMETHODCALLTYPE *SelectAndEditItem)(
   31178         INewMenuClient* This,
   31179         PCIDLIST_ABSOLUTE pidlItem,
   31180         NMCSAEI_FLAGS flags);
   31181 
   31182     END_INTERFACE
   31183 } INewMenuClientVtbl;
   31184 interface INewMenuClient {
   31185     CONST_VTBL INewMenuClientVtbl* lpVtbl;
   31186 };
   31187 
   31188 #ifdef COBJMACROS
   31189 #ifndef WIDL_C_INLINE_WRAPPERS
   31190 /*** IUnknown methods ***/
   31191 #define INewMenuClient_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   31192 #define INewMenuClient_AddRef(This) (This)->lpVtbl->AddRef(This)
   31193 #define INewMenuClient_Release(This) (This)->lpVtbl->Release(This)
   31194 /*** INewMenuClient methods ***/
   31195 #define INewMenuClient_IncludeItems(This,pflags) (This)->lpVtbl->IncludeItems(This,pflags)
   31196 #define INewMenuClient_SelectAndEditItem(This,pidlItem,flags) (This)->lpVtbl->SelectAndEditItem(This,pidlItem,flags)
   31197 #else
   31198 /*** IUnknown methods ***/
   31199 static FORCEINLINE HRESULT INewMenuClient_QueryInterface(INewMenuClient* This,REFIID riid,void **ppvObject) {
   31200     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   31201 }
   31202 static FORCEINLINE ULONG INewMenuClient_AddRef(INewMenuClient* This) {
   31203     return This->lpVtbl->AddRef(This);
   31204 }
   31205 static FORCEINLINE ULONG INewMenuClient_Release(INewMenuClient* This) {
   31206     return This->lpVtbl->Release(This);
   31207 }
   31208 /*** INewMenuClient methods ***/
   31209 static FORCEINLINE HRESULT INewMenuClient_IncludeItems(INewMenuClient* This,NMCII_FLAGS *pflags) {
   31210     return This->lpVtbl->IncludeItems(This,pflags);
   31211 }
   31212 static FORCEINLINE HRESULT INewMenuClient_SelectAndEditItem(INewMenuClient* This,PCIDLIST_ABSOLUTE pidlItem,NMCSAEI_FLAGS flags) {
   31213     return This->lpVtbl->SelectAndEditItem(This,pidlItem,flags);
   31214 }
   31215 #endif
   31216 #endif
   31217 
   31218 #endif
   31219 
   31220 HRESULT STDMETHODCALLTYPE INewMenuClient_IncludeItems_Proxy(
   31221     INewMenuClient* This,
   31222     NMCII_FLAGS *pflags);
   31223 void __RPC_STUB INewMenuClient_IncludeItems_Stub(
   31224     IRpcStubBuffer* This,
   31225     IRpcChannelBuffer* pRpcChannelBuffer,
   31226     PRPC_MESSAGE pRpcMessage,
   31227     DWORD* pdwStubPhase);
   31228 HRESULT STDMETHODCALLTYPE INewMenuClient_SelectAndEditItem_Proxy(
   31229     INewMenuClient* This,
   31230     PCIDLIST_ABSOLUTE pidlItem,
   31231     NMCSAEI_FLAGS flags);
   31232 void __RPC_STUB INewMenuClient_SelectAndEditItem_Stub(
   31233     IRpcStubBuffer* This,
   31234     IRpcChannelBuffer* pRpcChannelBuffer,
   31235     PRPC_MESSAGE pRpcMessage,
   31236     DWORD* pdwStubPhase);
   31237 
   31238 #endif  /* __INewMenuClient_INTERFACE_DEFINED__ */
   31239 
   31240 
   31241 #define SID_SNewMenuClient   IID_INewMenuClient
   31242 
   31243 DEFINE_GUID(SID_SCommandBarState, 0xB99EAA5C, 0x3850, 0x4400, 0xBC, 0x33, 0x2C, 0xE5, 0x34, 0x04, 0x8B, 0xF8);
   31244 
   31245 #if _WIN32_IE >= _WIN32_IE_IE70
   31246 /*****************************************************************************
   31247  * IInitializeWithBindCtx interface
   31248  */
   31249 #ifndef __IInitializeWithBindCtx_INTERFACE_DEFINED__
   31250 #define __IInitializeWithBindCtx_INTERFACE_DEFINED__
   31251 
   31252 DEFINE_GUID(IID_IInitializeWithBindCtx, 0x71c0d2bc, 0x726d, 0x45cc, 0xa6,0xc0, 0x2e,0x31,0xc1,0xdb,0x21,0x59);
   31253 #if defined(__cplusplus) && !defined(CINTERFACE)
   31254 MIDL_INTERFACE("71c0d2bc-726d-45cc-a6c0-2e31c1db2159")
   31255 IInitializeWithBindCtx : public IUnknown
   31256 {
   31257     virtual HRESULT STDMETHODCALLTYPE Initialize(
   31258         IBindCtx *pbc) = 0;
   31259 
   31260 };
   31261 #ifdef __CRT_UUID_DECL
   31262 __CRT_UUID_DECL(IInitializeWithBindCtx, 0x71c0d2bc, 0x726d, 0x45cc, 0xa6,0xc0, 0x2e,0x31,0xc1,0xdb,0x21,0x59)
   31263 #endif
   31264 #else
   31265 typedef struct IInitializeWithBindCtxVtbl {
   31266     BEGIN_INTERFACE
   31267 
   31268     /*** IUnknown methods ***/
   31269     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   31270         IInitializeWithBindCtx* This,
   31271         REFIID riid,
   31272         void **ppvObject);
   31273 
   31274     ULONG (STDMETHODCALLTYPE *AddRef)(
   31275         IInitializeWithBindCtx* This);
   31276 
   31277     ULONG (STDMETHODCALLTYPE *Release)(
   31278         IInitializeWithBindCtx* This);
   31279 
   31280     /*** IInitializeWithBindCtx methods ***/
   31281     HRESULT (STDMETHODCALLTYPE *Initialize)(
   31282         IInitializeWithBindCtx* This,
   31283         IBindCtx *pbc);
   31284 
   31285     END_INTERFACE
   31286 } IInitializeWithBindCtxVtbl;
   31287 interface IInitializeWithBindCtx {
   31288     CONST_VTBL IInitializeWithBindCtxVtbl* lpVtbl;
   31289 };
   31290 
   31291 #ifdef COBJMACROS
   31292 #ifndef WIDL_C_INLINE_WRAPPERS
   31293 /*** IUnknown methods ***/
   31294 #define IInitializeWithBindCtx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   31295 #define IInitializeWithBindCtx_AddRef(This) (This)->lpVtbl->AddRef(This)
   31296 #define IInitializeWithBindCtx_Release(This) (This)->lpVtbl->Release(This)
   31297 /*** IInitializeWithBindCtx methods ***/
   31298 #define IInitializeWithBindCtx_Initialize(This,pbc) (This)->lpVtbl->Initialize(This,pbc)
   31299 #else
   31300 /*** IUnknown methods ***/
   31301 static FORCEINLINE HRESULT IInitializeWithBindCtx_QueryInterface(IInitializeWithBindCtx* This,REFIID riid,void **ppvObject) {
   31302     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   31303 }
   31304 static FORCEINLINE ULONG IInitializeWithBindCtx_AddRef(IInitializeWithBindCtx* This) {
   31305     return This->lpVtbl->AddRef(This);
   31306 }
   31307 static FORCEINLINE ULONG IInitializeWithBindCtx_Release(IInitializeWithBindCtx* This) {
   31308     return This->lpVtbl->Release(This);
   31309 }
   31310 /*** IInitializeWithBindCtx methods ***/
   31311 static FORCEINLINE HRESULT IInitializeWithBindCtx_Initialize(IInitializeWithBindCtx* This,IBindCtx *pbc) {
   31312     return This->lpVtbl->Initialize(This,pbc);
   31313 }
   31314 #endif
   31315 #endif
   31316 
   31317 #endif
   31318 
   31319 HRESULT STDMETHODCALLTYPE IInitializeWithBindCtx_Initialize_Proxy(
   31320     IInitializeWithBindCtx* This,
   31321     IBindCtx *pbc);
   31322 void __RPC_STUB IInitializeWithBindCtx_Initialize_Stub(
   31323     IRpcStubBuffer* This,
   31324     IRpcChannelBuffer* pRpcChannelBuffer,
   31325     PRPC_MESSAGE pRpcMessage,
   31326     DWORD* pdwStubPhase);
   31327 
   31328 #endif  /* __IInitializeWithBindCtx_INTERFACE_DEFINED__ */
   31329 
   31330 
   31331 /*****************************************************************************
   31332  * IShellItemFilter interface
   31333  */
   31334 #ifndef __IShellItemFilter_INTERFACE_DEFINED__
   31335 #define __IShellItemFilter_INTERFACE_DEFINED__
   31336 
   31337 DEFINE_GUID(IID_IShellItemFilter, 0x2659b475, 0xeeb8, 0x48b7, 0x8f,0x07, 0xb3,0x78,0x81,0x0f,0x48,0xcf);
   31338 #if defined(__cplusplus) && !defined(CINTERFACE)
   31339 MIDL_INTERFACE("2659b475-eeb8-48b7-8f07-b378810f48cf")
   31340 IShellItemFilter : public IUnknown
   31341 {
   31342     virtual HRESULT STDMETHODCALLTYPE IncludeItem(
   31343         IShellItem *psi) = 0;
   31344 
   31345     virtual HRESULT STDMETHODCALLTYPE GetEnumFlagsForItem(
   31346         IShellItem *psi,
   31347         SHCONTF *pgrfFlags) = 0;
   31348 
   31349 };
   31350 #ifdef __CRT_UUID_DECL
   31351 __CRT_UUID_DECL(IShellItemFilter, 0x2659b475, 0xeeb8, 0x48b7, 0x8f,0x07, 0xb3,0x78,0x81,0x0f,0x48,0xcf)
   31352 #endif
   31353 #else
   31354 typedef struct IShellItemFilterVtbl {
   31355     BEGIN_INTERFACE
   31356 
   31357     /*** IUnknown methods ***/
   31358     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   31359         IShellItemFilter* This,
   31360         REFIID riid,
   31361         void **ppvObject);
   31362 
   31363     ULONG (STDMETHODCALLTYPE *AddRef)(
   31364         IShellItemFilter* This);
   31365 
   31366     ULONG (STDMETHODCALLTYPE *Release)(
   31367         IShellItemFilter* This);
   31368 
   31369     /*** IShellItemFilter methods ***/
   31370     HRESULT (STDMETHODCALLTYPE *IncludeItem)(
   31371         IShellItemFilter* This,
   31372         IShellItem *psi);
   31373 
   31374     HRESULT (STDMETHODCALLTYPE *GetEnumFlagsForItem)(
   31375         IShellItemFilter* This,
   31376         IShellItem *psi,
   31377         SHCONTF *pgrfFlags);
   31378 
   31379     END_INTERFACE
   31380 } IShellItemFilterVtbl;
   31381 interface IShellItemFilter {
   31382     CONST_VTBL IShellItemFilterVtbl* lpVtbl;
   31383 };
   31384 
   31385 #ifdef COBJMACROS
   31386 #ifndef WIDL_C_INLINE_WRAPPERS
   31387 /*** IUnknown methods ***/
   31388 #define IShellItemFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   31389 #define IShellItemFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
   31390 #define IShellItemFilter_Release(This) (This)->lpVtbl->Release(This)
   31391 /*** IShellItemFilter methods ***/
   31392 #define IShellItemFilter_IncludeItem(This,psi) (This)->lpVtbl->IncludeItem(This,psi)
   31393 #define IShellItemFilter_GetEnumFlagsForItem(This,psi,pgrfFlags) (This)->lpVtbl->GetEnumFlagsForItem(This,psi,pgrfFlags)
   31394 #else
   31395 /*** IUnknown methods ***/
   31396 static FORCEINLINE HRESULT IShellItemFilter_QueryInterface(IShellItemFilter* This,REFIID riid,void **ppvObject) {
   31397     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   31398 }
   31399 static FORCEINLINE ULONG IShellItemFilter_AddRef(IShellItemFilter* This) {
   31400     return This->lpVtbl->AddRef(This);
   31401 }
   31402 static FORCEINLINE ULONG IShellItemFilter_Release(IShellItemFilter* This) {
   31403     return This->lpVtbl->Release(This);
   31404 }
   31405 /*** IShellItemFilter methods ***/
   31406 static FORCEINLINE HRESULT IShellItemFilter_IncludeItem(IShellItemFilter* This,IShellItem *psi) {
   31407     return This->lpVtbl->IncludeItem(This,psi);
   31408 }
   31409 static FORCEINLINE HRESULT IShellItemFilter_GetEnumFlagsForItem(IShellItemFilter* This,IShellItem *psi,SHCONTF *pgrfFlags) {
   31410     return This->lpVtbl->GetEnumFlagsForItem(This,psi,pgrfFlags);
   31411 }
   31412 #endif
   31413 #endif
   31414 
   31415 #endif
   31416 
   31417 HRESULT STDMETHODCALLTYPE IShellItemFilter_IncludeItem_Proxy(
   31418     IShellItemFilter* This,
   31419     IShellItem *psi);
   31420 void __RPC_STUB IShellItemFilter_IncludeItem_Stub(
   31421     IRpcStubBuffer* This,
   31422     IRpcChannelBuffer* pRpcChannelBuffer,
   31423     PRPC_MESSAGE pRpcMessage,
   31424     DWORD* pdwStubPhase);
   31425 HRESULT STDMETHODCALLTYPE IShellItemFilter_GetEnumFlagsForItem_Proxy(
   31426     IShellItemFilter* This,
   31427     IShellItem *psi,
   31428     SHCONTF *pgrfFlags);
   31429 void __RPC_STUB IShellItemFilter_GetEnumFlagsForItem_Stub(
   31430     IRpcStubBuffer* This,
   31431     IRpcChannelBuffer* pRpcChannelBuffer,
   31432     PRPC_MESSAGE pRpcMessage,
   31433     DWORD* pdwStubPhase);
   31434 
   31435 #endif  /* __IShellItemFilter_INTERFACE_DEFINED__ */
   31436 
   31437 #endif
   31438 
   31439 /*****************************************************************************
   31440  * INameSpaceTreeControl interface
   31441  */
   31442 #ifndef __INameSpaceTreeControl_INTERFACE_DEFINED__
   31443 #define __INameSpaceTreeControl_INTERFACE_DEFINED__
   31444 
   31445 enum _NSTCSTYLE {
   31446     NSTCS_HASEXPANDOS = 0x1,
   31447     NSTCS_HASLINES = 0x2,
   31448     NSTCS_SINGLECLICKEXPAND = 0x4,
   31449     NSTCS_FULLROWSELECT = 0x8,
   31450     NSTCS_SPRINGEXPAND = 0x10,
   31451     NSTCS_HORIZONTALSCROLL = 0x20,
   31452     NSTCS_ROOTHASEXPANDO = 0x40,
   31453     NSTCS_SHOWSELECTIONALWAYS = 0x80,
   31454     NSTCS_NOINFOTIP = 0x200,
   31455     NSTCS_EVENHEIGHT = 0x400,
   31456     NSTCS_NOREPLACEOPEN = 0x800,
   31457     NSTCS_DISABLEDRAGDROP = 0x1000,
   31458     NSTCS_NOORDERSTREAM = 0x2000,
   31459     NSTCS_RICHTOOLTIP = 0x4000,
   31460     NSTCS_BORDER = 0x8000,
   31461     NSTCS_NOEDITLABELS = 0x10000,
   31462     NSTCS_TABSTOP = 0x20000,
   31463     NSTCS_FAVORITESMODE = 0x80000,
   31464     NSTCS_AUTOHSCROLL = 0x100000,
   31465     NSTCS_FADEINOUTEXPANDOS = 0x200000,
   31466     NSTCS_EMPTYTEXT = 0x400000,
   31467     NSTCS_CHECKBOXES = 0x800000,
   31468     NSTCS_PARTIALCHECKBOXES = 0x1000000,
   31469     NSTCS_EXCLUSIONCHECKBOXES = 0x2000000,
   31470     NSTCS_DIMMEDCHECKBOXES = 0x4000000,
   31471     NSTCS_NOINDENTCHECKS = 0x8000000,
   31472     NSTCS_ALLOWJUNCTIONS = 0x10000000,
   31473     NSTCS_SHOWTABSBUTTON = 0x20000000,
   31474     NSTCS_SHOWDELETEBUTTON = 0x40000000,
   31475     NSTCS_SHOWREFRESHBUTTON = (int)0x80000000
   31476 };
   31477 
   31478 
   31479 typedef DWORD NSTCSTYLE;
   31480 
   31481 enum _NSTCROOTSTYLE {
   31482     NSTCRS_VISIBLE = 0x0,
   31483     NSTCRS_HIDDEN = 0x1,
   31484     NSTCRS_EXPANDED = 0x2
   31485 };
   31486 
   31487 
   31488 typedef DWORD NSTCROOTSTYLE;
   31489 
   31490 enum _NSTCITEMSTATE {
   31491     NSTCIS_NONE = 0x0,
   31492     NSTCIS_SELECTED = 0x1,
   31493     NSTCIS_EXPANDED = 0x2,
   31494     NSTCIS_BOLD = 0x4,
   31495     NSTCIS_DISABLED = 0x8,
   31496     NSTCIS_SELECTEDNOEXPAND = 0x10
   31497 };
   31498 
   31499 
   31500 typedef DWORD NSTCITEMSTATE;
   31501 
   31502 typedef enum NSTCGNI {
   31503     NSTCGNI_NEXT = 0,
   31504     NSTCGNI_NEXTVISIBLE = 1,
   31505     NSTCGNI_PREV = 2,
   31506     NSTCGNI_PREVVISIBLE = 3,
   31507     NSTCGNI_PARENT = 4,
   31508     NSTCGNI_CHILD = 5,
   31509     NSTCGNI_FIRSTVISIBLE = 6,
   31510     NSTCGNI_LASTVISIBLE = 7
   31511 } NSTCGNI;
   31512 
   31513 DEFINE_GUID(IID_INameSpaceTreeControl, 0x028212a3, 0xb627, 0x47e9, 0x88,0x56, 0xc1,0x42,0x65,0x55,0x4e,0x4f);
   31514 #if defined(__cplusplus) && !defined(CINTERFACE)
   31515 MIDL_INTERFACE("028212a3-b627-47e9-8856-c14265554e4f")
   31516 INameSpaceTreeControl : public IUnknown
   31517 {
   31518     virtual HRESULT STDMETHODCALLTYPE Initialize(
   31519         HWND hwndParent,
   31520         RECT *prc,
   31521         NSTCSTYLE nsctsFlags) = 0;
   31522 
   31523     virtual HRESULT STDMETHODCALLTYPE TreeAdvise(
   31524         IUnknown *punk,
   31525         DWORD *pdwCookie) = 0;
   31526 
   31527     virtual HRESULT STDMETHODCALLTYPE TreeUnadvise(
   31528         DWORD dwCookie) = 0;
   31529 
   31530     virtual HRESULT STDMETHODCALLTYPE AppendRoot(
   31531         IShellItem *psiRoot,
   31532         SHCONTF grfEnumFlags,
   31533         NSTCROOTSTYLE grfRootStyle,
   31534         IShellItemFilter *pif) = 0;
   31535 
   31536     virtual HRESULT STDMETHODCALLTYPE InsertRoot(
   31537         int iIndex,
   31538         IShellItem *psiRoot,
   31539         SHCONTF grfEnumFlags,
   31540         NSTCROOTSTYLE grfRootStyle,
   31541         IShellItemFilter *pif) = 0;
   31542 
   31543     virtual HRESULT STDMETHODCALLTYPE RemoveRoot(
   31544         IShellItem *psiRoot) = 0;
   31545 
   31546     virtual HRESULT STDMETHODCALLTYPE RemoveAllRoots(
   31547         ) = 0;
   31548 
   31549     virtual HRESULT STDMETHODCALLTYPE GetRootItems(
   31550         IShellItemArray **ppsiaRootItems) = 0;
   31551 
   31552     virtual HRESULT STDMETHODCALLTYPE SetItemState(
   31553         IShellItem *psi,
   31554         NSTCITEMSTATE nstcisMask,
   31555         NSTCITEMSTATE nstcisFlags) = 0;
   31556 
   31557     virtual HRESULT STDMETHODCALLTYPE GetItemState(
   31558         IShellItem *psi,
   31559         NSTCITEMSTATE nstcisMask,
   31560         NSTCITEMSTATE *pnstcisFlags) = 0;
   31561 
   31562     virtual HRESULT STDMETHODCALLTYPE GetSelectedItems(
   31563         IShellItemArray **psiaItems) = 0;
   31564 
   31565     virtual HRESULT STDMETHODCALLTYPE GetItemCustomState(
   31566         IShellItem *psi,
   31567         int *piStateNumber) = 0;
   31568 
   31569     virtual HRESULT STDMETHODCALLTYPE SetItemCustomState(
   31570         IShellItem *psi,
   31571         int iStateNumber) = 0;
   31572 
   31573     virtual HRESULT STDMETHODCALLTYPE EnsureItemVisible(
   31574         IShellItem *psi) = 0;
   31575 
   31576     virtual HRESULT STDMETHODCALLTYPE SetTheme(
   31577         LPCWSTR pszTheme) = 0;
   31578 
   31579     virtual HRESULT STDMETHODCALLTYPE GetNextItem(
   31580         IShellItem *psi,
   31581         NSTCGNI nstcgi,
   31582         IShellItem **ppsiNext) = 0;
   31583 
   31584     virtual HRESULT STDMETHODCALLTYPE HitTest(
   31585         POINT *ppt,
   31586         IShellItem **ppsiOut) = 0;
   31587 
   31588     virtual HRESULT STDMETHODCALLTYPE GetItemRect(
   31589         IShellItem *psi,
   31590         RECT *prect) = 0;
   31591 
   31592     virtual HRESULT STDMETHODCALLTYPE CollapseAll(
   31593         ) = 0;
   31594 
   31595 };
   31596 #ifdef __CRT_UUID_DECL
   31597 __CRT_UUID_DECL(INameSpaceTreeControl, 0x028212a3, 0xb627, 0x47e9, 0x88,0x56, 0xc1,0x42,0x65,0x55,0x4e,0x4f)
   31598 #endif
   31599 #else
   31600 typedef struct INameSpaceTreeControlVtbl {
   31601     BEGIN_INTERFACE
   31602 
   31603     /*** IUnknown methods ***/
   31604     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   31605         INameSpaceTreeControl* This,
   31606         REFIID riid,
   31607         void **ppvObject);
   31608 
   31609     ULONG (STDMETHODCALLTYPE *AddRef)(
   31610         INameSpaceTreeControl* This);
   31611 
   31612     ULONG (STDMETHODCALLTYPE *Release)(
   31613         INameSpaceTreeControl* This);
   31614 
   31615     /*** INameSpaceTreeControl methods ***/
   31616     HRESULT (STDMETHODCALLTYPE *Initialize)(
   31617         INameSpaceTreeControl* This,
   31618         HWND hwndParent,
   31619         RECT *prc,
   31620         NSTCSTYLE nsctsFlags);
   31621 
   31622     HRESULT (STDMETHODCALLTYPE *TreeAdvise)(
   31623         INameSpaceTreeControl* This,
   31624         IUnknown *punk,
   31625         DWORD *pdwCookie);
   31626 
   31627     HRESULT (STDMETHODCALLTYPE *TreeUnadvise)(
   31628         INameSpaceTreeControl* This,
   31629         DWORD dwCookie);
   31630 
   31631     HRESULT (STDMETHODCALLTYPE *AppendRoot)(
   31632         INameSpaceTreeControl* This,
   31633         IShellItem *psiRoot,
   31634         SHCONTF grfEnumFlags,
   31635         NSTCROOTSTYLE grfRootStyle,
   31636         IShellItemFilter *pif);
   31637 
   31638     HRESULT (STDMETHODCALLTYPE *InsertRoot)(
   31639         INameSpaceTreeControl* This,
   31640         int iIndex,
   31641         IShellItem *psiRoot,
   31642         SHCONTF grfEnumFlags,
   31643         NSTCROOTSTYLE grfRootStyle,
   31644         IShellItemFilter *pif);
   31645 
   31646     HRESULT (STDMETHODCALLTYPE *RemoveRoot)(
   31647         INameSpaceTreeControl* This,
   31648         IShellItem *psiRoot);
   31649 
   31650     HRESULT (STDMETHODCALLTYPE *RemoveAllRoots)(
   31651         INameSpaceTreeControl* This);
   31652 
   31653     HRESULT (STDMETHODCALLTYPE *GetRootItems)(
   31654         INameSpaceTreeControl* This,
   31655         IShellItemArray **ppsiaRootItems);
   31656 
   31657     HRESULT (STDMETHODCALLTYPE *SetItemState)(
   31658         INameSpaceTreeControl* This,
   31659         IShellItem *psi,
   31660         NSTCITEMSTATE nstcisMask,
   31661         NSTCITEMSTATE nstcisFlags);
   31662 
   31663     HRESULT (STDMETHODCALLTYPE *GetItemState)(
   31664         INameSpaceTreeControl* This,
   31665         IShellItem *psi,
   31666         NSTCITEMSTATE nstcisMask,
   31667         NSTCITEMSTATE *pnstcisFlags);
   31668 
   31669     HRESULT (STDMETHODCALLTYPE *GetSelectedItems)(
   31670         INameSpaceTreeControl* This,
   31671         IShellItemArray **psiaItems);
   31672 
   31673     HRESULT (STDMETHODCALLTYPE *GetItemCustomState)(
   31674         INameSpaceTreeControl* This,
   31675         IShellItem *psi,
   31676         int *piStateNumber);
   31677 
   31678     HRESULT (STDMETHODCALLTYPE *SetItemCustomState)(
   31679         INameSpaceTreeControl* This,
   31680         IShellItem *psi,
   31681         int iStateNumber);
   31682 
   31683     HRESULT (STDMETHODCALLTYPE *EnsureItemVisible)(
   31684         INameSpaceTreeControl* This,
   31685         IShellItem *psi);
   31686 
   31687     HRESULT (STDMETHODCALLTYPE *SetTheme)(
   31688         INameSpaceTreeControl* This,
   31689         LPCWSTR pszTheme);
   31690 
   31691     HRESULT (STDMETHODCALLTYPE *GetNextItem)(
   31692         INameSpaceTreeControl* This,
   31693         IShellItem *psi,
   31694         NSTCGNI nstcgi,
   31695         IShellItem **ppsiNext);
   31696 
   31697     HRESULT (STDMETHODCALLTYPE *HitTest)(
   31698         INameSpaceTreeControl* This,
   31699         POINT *ppt,
   31700         IShellItem **ppsiOut);
   31701 
   31702     HRESULT (STDMETHODCALLTYPE *GetItemRect)(
   31703         INameSpaceTreeControl* This,
   31704         IShellItem *psi,
   31705         RECT *prect);
   31706 
   31707     HRESULT (STDMETHODCALLTYPE *CollapseAll)(
   31708         INameSpaceTreeControl* This);
   31709 
   31710     END_INTERFACE
   31711 } INameSpaceTreeControlVtbl;
   31712 interface INameSpaceTreeControl {
   31713     CONST_VTBL INameSpaceTreeControlVtbl* lpVtbl;
   31714 };
   31715 
   31716 #ifdef COBJMACROS
   31717 #ifndef WIDL_C_INLINE_WRAPPERS
   31718 /*** IUnknown methods ***/
   31719 #define INameSpaceTreeControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   31720 #define INameSpaceTreeControl_AddRef(This) (This)->lpVtbl->AddRef(This)
   31721 #define INameSpaceTreeControl_Release(This) (This)->lpVtbl->Release(This)
   31722 /*** INameSpaceTreeControl methods ***/
   31723 #define INameSpaceTreeControl_Initialize(This,hwndParent,prc,nsctsFlags) (This)->lpVtbl->Initialize(This,hwndParent,prc,nsctsFlags)
   31724 #define INameSpaceTreeControl_TreeAdvise(This,punk,pdwCookie) (This)->lpVtbl->TreeAdvise(This,punk,pdwCookie)
   31725 #define INameSpaceTreeControl_TreeUnadvise(This,dwCookie) (This)->lpVtbl->TreeUnadvise(This,dwCookie)
   31726 #define INameSpaceTreeControl_AppendRoot(This,psiRoot,grfEnumFlags,grfRootStyle,pif) (This)->lpVtbl->AppendRoot(This,psiRoot,grfEnumFlags,grfRootStyle,pif)
   31727 #define INameSpaceTreeControl_InsertRoot(This,iIndex,psiRoot,grfEnumFlags,grfRootStyle,pif) (This)->lpVtbl->InsertRoot(This,iIndex,psiRoot,grfEnumFlags,grfRootStyle,pif)
   31728 #define INameSpaceTreeControl_RemoveRoot(This,psiRoot) (This)->lpVtbl->RemoveRoot(This,psiRoot)
   31729 #define INameSpaceTreeControl_RemoveAllRoots(This) (This)->lpVtbl->RemoveAllRoots(This)
   31730 #define INameSpaceTreeControl_GetRootItems(This,ppsiaRootItems) (This)->lpVtbl->GetRootItems(This,ppsiaRootItems)
   31731 #define INameSpaceTreeControl_SetItemState(This,psi,nstcisMask,nstcisFlags) (This)->lpVtbl->SetItemState(This,psi,nstcisMask,nstcisFlags)
   31732 #define INameSpaceTreeControl_GetItemState(This,psi,nstcisMask,pnstcisFlags) (This)->lpVtbl->GetItemState(This,psi,nstcisMask,pnstcisFlags)
   31733 #define INameSpaceTreeControl_GetSelectedItems(This,psiaItems) (This)->lpVtbl->GetSelectedItems(This,psiaItems)
   31734 #define INameSpaceTreeControl_GetItemCustomState(This,psi,piStateNumber) (This)->lpVtbl->GetItemCustomState(This,psi,piStateNumber)
   31735 #define INameSpaceTreeControl_SetItemCustomState(This,psi,iStateNumber) (This)->lpVtbl->SetItemCustomState(This,psi,iStateNumber)
   31736 #define INameSpaceTreeControl_EnsureItemVisible(This,psi) (This)->lpVtbl->EnsureItemVisible(This,psi)
   31737 #define INameSpaceTreeControl_SetTheme(This,pszTheme) (This)->lpVtbl->SetTheme(This,pszTheme)
   31738 #define INameSpaceTreeControl_GetNextItem(This,psi,nstcgi,ppsiNext) (This)->lpVtbl->GetNextItem(This,psi,nstcgi,ppsiNext)
   31739 #define INameSpaceTreeControl_HitTest(This,ppt,ppsiOut) (This)->lpVtbl->HitTest(This,ppt,ppsiOut)
   31740 #define INameSpaceTreeControl_GetItemRect(This,psi,prect) (This)->lpVtbl->GetItemRect(This,psi,prect)
   31741 #define INameSpaceTreeControl_CollapseAll(This) (This)->lpVtbl->CollapseAll(This)
   31742 #else
   31743 /*** IUnknown methods ***/
   31744 static FORCEINLINE HRESULT INameSpaceTreeControl_QueryInterface(INameSpaceTreeControl* This,REFIID riid,void **ppvObject) {
   31745     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   31746 }
   31747 static FORCEINLINE ULONG INameSpaceTreeControl_AddRef(INameSpaceTreeControl* This) {
   31748     return This->lpVtbl->AddRef(This);
   31749 }
   31750 static FORCEINLINE ULONG INameSpaceTreeControl_Release(INameSpaceTreeControl* This) {
   31751     return This->lpVtbl->Release(This);
   31752 }
   31753 /*** INameSpaceTreeControl methods ***/
   31754 static FORCEINLINE HRESULT INameSpaceTreeControl_Initialize(INameSpaceTreeControl* This,HWND hwndParent,RECT *prc,NSTCSTYLE nsctsFlags) {
   31755     return This->lpVtbl->Initialize(This,hwndParent,prc,nsctsFlags);
   31756 }
   31757 static FORCEINLINE HRESULT INameSpaceTreeControl_TreeAdvise(INameSpaceTreeControl* This,IUnknown *punk,DWORD *pdwCookie) {
   31758     return This->lpVtbl->TreeAdvise(This,punk,pdwCookie);
   31759 }
   31760 static FORCEINLINE HRESULT INameSpaceTreeControl_TreeUnadvise(INameSpaceTreeControl* This,DWORD dwCookie) {
   31761     return This->lpVtbl->TreeUnadvise(This,dwCookie);
   31762 }
   31763 static FORCEINLINE HRESULT INameSpaceTreeControl_AppendRoot(INameSpaceTreeControl* This,IShellItem *psiRoot,SHCONTF grfEnumFlags,NSTCROOTSTYLE grfRootStyle,IShellItemFilter *pif) {
   31764     return This->lpVtbl->AppendRoot(This,psiRoot,grfEnumFlags,grfRootStyle,pif);
   31765 }
   31766 static FORCEINLINE HRESULT INameSpaceTreeControl_InsertRoot(INameSpaceTreeControl* This,int iIndex,IShellItem *psiRoot,SHCONTF grfEnumFlags,NSTCROOTSTYLE grfRootStyle,IShellItemFilter *pif) {
   31767     return This->lpVtbl->InsertRoot(This,iIndex,psiRoot,grfEnumFlags,grfRootStyle,pif);
   31768 }
   31769 static FORCEINLINE HRESULT INameSpaceTreeControl_RemoveRoot(INameSpaceTreeControl* This,IShellItem *psiRoot) {
   31770     return This->lpVtbl->RemoveRoot(This,psiRoot);
   31771 }
   31772 static FORCEINLINE HRESULT INameSpaceTreeControl_RemoveAllRoots(INameSpaceTreeControl* This) {
   31773     return This->lpVtbl->RemoveAllRoots(This);
   31774 }
   31775 static FORCEINLINE HRESULT INameSpaceTreeControl_GetRootItems(INameSpaceTreeControl* This,IShellItemArray **ppsiaRootItems) {
   31776     return This->lpVtbl->GetRootItems(This,ppsiaRootItems);
   31777 }
   31778 static FORCEINLINE HRESULT INameSpaceTreeControl_SetItemState(INameSpaceTreeControl* This,IShellItem *psi,NSTCITEMSTATE nstcisMask,NSTCITEMSTATE nstcisFlags) {
   31779     return This->lpVtbl->SetItemState(This,psi,nstcisMask,nstcisFlags);
   31780 }
   31781 static FORCEINLINE HRESULT INameSpaceTreeControl_GetItemState(INameSpaceTreeControl* This,IShellItem *psi,NSTCITEMSTATE nstcisMask,NSTCITEMSTATE *pnstcisFlags) {
   31782     return This->lpVtbl->GetItemState(This,psi,nstcisMask,pnstcisFlags);
   31783 }
   31784 static FORCEINLINE HRESULT INameSpaceTreeControl_GetSelectedItems(INameSpaceTreeControl* This,IShellItemArray **psiaItems) {
   31785     return This->lpVtbl->GetSelectedItems(This,psiaItems);
   31786 }
   31787 static FORCEINLINE HRESULT INameSpaceTreeControl_GetItemCustomState(INameSpaceTreeControl* This,IShellItem *psi,int *piStateNumber) {
   31788     return This->lpVtbl->GetItemCustomState(This,psi,piStateNumber);
   31789 }
   31790 static FORCEINLINE HRESULT INameSpaceTreeControl_SetItemCustomState(INameSpaceTreeControl* This,IShellItem *psi,int iStateNumber) {
   31791     return This->lpVtbl->SetItemCustomState(This,psi,iStateNumber);
   31792 }
   31793 static FORCEINLINE HRESULT INameSpaceTreeControl_EnsureItemVisible(INameSpaceTreeControl* This,IShellItem *psi) {
   31794     return This->lpVtbl->EnsureItemVisible(This,psi);
   31795 }
   31796 static FORCEINLINE HRESULT INameSpaceTreeControl_SetTheme(INameSpaceTreeControl* This,LPCWSTR pszTheme) {
   31797     return This->lpVtbl->SetTheme(This,pszTheme);
   31798 }
   31799 static FORCEINLINE HRESULT INameSpaceTreeControl_GetNextItem(INameSpaceTreeControl* This,IShellItem *psi,NSTCGNI nstcgi,IShellItem **ppsiNext) {
   31800     return This->lpVtbl->GetNextItem(This,psi,nstcgi,ppsiNext);
   31801 }
   31802 static FORCEINLINE HRESULT INameSpaceTreeControl_HitTest(INameSpaceTreeControl* This,POINT *ppt,IShellItem **ppsiOut) {
   31803     return This->lpVtbl->HitTest(This,ppt,ppsiOut);
   31804 }
   31805 static FORCEINLINE HRESULT INameSpaceTreeControl_GetItemRect(INameSpaceTreeControl* This,IShellItem *psi,RECT *prect) {
   31806     return This->lpVtbl->GetItemRect(This,psi,prect);
   31807 }
   31808 static FORCEINLINE HRESULT INameSpaceTreeControl_CollapseAll(INameSpaceTreeControl* This) {
   31809     return This->lpVtbl->CollapseAll(This);
   31810 }
   31811 #endif
   31812 #endif
   31813 
   31814 #endif
   31815 
   31816 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl_Initialize_Proxy(
   31817     INameSpaceTreeControl* This,
   31818     HWND hwndParent,
   31819     RECT *prc,
   31820     NSTCSTYLE nsctsFlags);
   31821 void __RPC_STUB INameSpaceTreeControl_Initialize_Stub(
   31822     IRpcStubBuffer* This,
   31823     IRpcChannelBuffer* pRpcChannelBuffer,
   31824     PRPC_MESSAGE pRpcMessage,
   31825     DWORD* pdwStubPhase);
   31826 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl_TreeAdvise_Proxy(
   31827     INameSpaceTreeControl* This,
   31828     IUnknown *punk,
   31829     DWORD *pdwCookie);
   31830 void __RPC_STUB INameSpaceTreeControl_TreeAdvise_Stub(
   31831     IRpcStubBuffer* This,
   31832     IRpcChannelBuffer* pRpcChannelBuffer,
   31833     PRPC_MESSAGE pRpcMessage,
   31834     DWORD* pdwStubPhase);
   31835 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl_TreeUnadvise_Proxy(
   31836     INameSpaceTreeControl* This,
   31837     DWORD dwCookie);
   31838 void __RPC_STUB INameSpaceTreeControl_TreeUnadvise_Stub(
   31839     IRpcStubBuffer* This,
   31840     IRpcChannelBuffer* pRpcChannelBuffer,
   31841     PRPC_MESSAGE pRpcMessage,
   31842     DWORD* pdwStubPhase);
   31843 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl_AppendRoot_Proxy(
   31844     INameSpaceTreeControl* This,
   31845     IShellItem *psiRoot,
   31846     SHCONTF grfEnumFlags,
   31847     NSTCROOTSTYLE grfRootStyle,
   31848     IShellItemFilter *pif);
   31849 void __RPC_STUB INameSpaceTreeControl_AppendRoot_Stub(
   31850     IRpcStubBuffer* This,
   31851     IRpcChannelBuffer* pRpcChannelBuffer,
   31852     PRPC_MESSAGE pRpcMessage,
   31853     DWORD* pdwStubPhase);
   31854 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl_InsertRoot_Proxy(
   31855     INameSpaceTreeControl* This,
   31856     int iIndex,
   31857     IShellItem *psiRoot,
   31858     SHCONTF grfEnumFlags,
   31859     NSTCROOTSTYLE grfRootStyle,
   31860     IShellItemFilter *pif);
   31861 void __RPC_STUB INameSpaceTreeControl_InsertRoot_Stub(
   31862     IRpcStubBuffer* This,
   31863     IRpcChannelBuffer* pRpcChannelBuffer,
   31864     PRPC_MESSAGE pRpcMessage,
   31865     DWORD* pdwStubPhase);
   31866 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl_RemoveRoot_Proxy(
   31867     INameSpaceTreeControl* This,
   31868     IShellItem *psiRoot);
   31869 void __RPC_STUB INameSpaceTreeControl_RemoveRoot_Stub(
   31870     IRpcStubBuffer* This,
   31871     IRpcChannelBuffer* pRpcChannelBuffer,
   31872     PRPC_MESSAGE pRpcMessage,
   31873     DWORD* pdwStubPhase);
   31874 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl_RemoveAllRoots_Proxy(
   31875     INameSpaceTreeControl* This);
   31876 void __RPC_STUB INameSpaceTreeControl_RemoveAllRoots_Stub(
   31877     IRpcStubBuffer* This,
   31878     IRpcChannelBuffer* pRpcChannelBuffer,
   31879     PRPC_MESSAGE pRpcMessage,
   31880     DWORD* pdwStubPhase);
   31881 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl_GetRootItems_Proxy(
   31882     INameSpaceTreeControl* This,
   31883     IShellItemArray **ppsiaRootItems);
   31884 void __RPC_STUB INameSpaceTreeControl_GetRootItems_Stub(
   31885     IRpcStubBuffer* This,
   31886     IRpcChannelBuffer* pRpcChannelBuffer,
   31887     PRPC_MESSAGE pRpcMessage,
   31888     DWORD* pdwStubPhase);
   31889 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl_SetItemState_Proxy(
   31890     INameSpaceTreeControl* This,
   31891     IShellItem *psi,
   31892     NSTCITEMSTATE nstcisMask,
   31893     NSTCITEMSTATE nstcisFlags);
   31894 void __RPC_STUB INameSpaceTreeControl_SetItemState_Stub(
   31895     IRpcStubBuffer* This,
   31896     IRpcChannelBuffer* pRpcChannelBuffer,
   31897     PRPC_MESSAGE pRpcMessage,
   31898     DWORD* pdwStubPhase);
   31899 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl_GetItemState_Proxy(
   31900     INameSpaceTreeControl* This,
   31901     IShellItem *psi,
   31902     NSTCITEMSTATE nstcisMask,
   31903     NSTCITEMSTATE *pnstcisFlags);
   31904 void __RPC_STUB INameSpaceTreeControl_GetItemState_Stub(
   31905     IRpcStubBuffer* This,
   31906     IRpcChannelBuffer* pRpcChannelBuffer,
   31907     PRPC_MESSAGE pRpcMessage,
   31908     DWORD* pdwStubPhase);
   31909 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl_GetSelectedItems_Proxy(
   31910     INameSpaceTreeControl* This,
   31911     IShellItemArray **psiaItems);
   31912 void __RPC_STUB INameSpaceTreeControl_GetSelectedItems_Stub(
   31913     IRpcStubBuffer* This,
   31914     IRpcChannelBuffer* pRpcChannelBuffer,
   31915     PRPC_MESSAGE pRpcMessage,
   31916     DWORD* pdwStubPhase);
   31917 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl_GetItemCustomState_Proxy(
   31918     INameSpaceTreeControl* This,
   31919     IShellItem *psi,
   31920     int *piStateNumber);
   31921 void __RPC_STUB INameSpaceTreeControl_GetItemCustomState_Stub(
   31922     IRpcStubBuffer* This,
   31923     IRpcChannelBuffer* pRpcChannelBuffer,
   31924     PRPC_MESSAGE pRpcMessage,
   31925     DWORD* pdwStubPhase);
   31926 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl_SetItemCustomState_Proxy(
   31927     INameSpaceTreeControl* This,
   31928     IShellItem *psi,
   31929     int iStateNumber);
   31930 void __RPC_STUB INameSpaceTreeControl_SetItemCustomState_Stub(
   31931     IRpcStubBuffer* This,
   31932     IRpcChannelBuffer* pRpcChannelBuffer,
   31933     PRPC_MESSAGE pRpcMessage,
   31934     DWORD* pdwStubPhase);
   31935 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl_EnsureItemVisible_Proxy(
   31936     INameSpaceTreeControl* This,
   31937     IShellItem *psi);
   31938 void __RPC_STUB INameSpaceTreeControl_EnsureItemVisible_Stub(
   31939     IRpcStubBuffer* This,
   31940     IRpcChannelBuffer* pRpcChannelBuffer,
   31941     PRPC_MESSAGE pRpcMessage,
   31942     DWORD* pdwStubPhase);
   31943 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl_SetTheme_Proxy(
   31944     INameSpaceTreeControl* This,
   31945     LPCWSTR pszTheme);
   31946 void __RPC_STUB INameSpaceTreeControl_SetTheme_Stub(
   31947     IRpcStubBuffer* This,
   31948     IRpcChannelBuffer* pRpcChannelBuffer,
   31949     PRPC_MESSAGE pRpcMessage,
   31950     DWORD* pdwStubPhase);
   31951 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl_GetNextItem_Proxy(
   31952     INameSpaceTreeControl* This,
   31953     IShellItem *psi,
   31954     NSTCGNI nstcgi,
   31955     IShellItem **ppsiNext);
   31956 void __RPC_STUB INameSpaceTreeControl_GetNextItem_Stub(
   31957     IRpcStubBuffer* This,
   31958     IRpcChannelBuffer* pRpcChannelBuffer,
   31959     PRPC_MESSAGE pRpcMessage,
   31960     DWORD* pdwStubPhase);
   31961 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl_HitTest_Proxy(
   31962     INameSpaceTreeControl* This,
   31963     POINT *ppt,
   31964     IShellItem **ppsiOut);
   31965 void __RPC_STUB INameSpaceTreeControl_HitTest_Stub(
   31966     IRpcStubBuffer* This,
   31967     IRpcChannelBuffer* pRpcChannelBuffer,
   31968     PRPC_MESSAGE pRpcMessage,
   31969     DWORD* pdwStubPhase);
   31970 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl_GetItemRect_Proxy(
   31971     INameSpaceTreeControl* This,
   31972     IShellItem *psi,
   31973     RECT *prect);
   31974 void __RPC_STUB INameSpaceTreeControl_GetItemRect_Stub(
   31975     IRpcStubBuffer* This,
   31976     IRpcChannelBuffer* pRpcChannelBuffer,
   31977     PRPC_MESSAGE pRpcMessage,
   31978     DWORD* pdwStubPhase);
   31979 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl_CollapseAll_Proxy(
   31980     INameSpaceTreeControl* This);
   31981 void __RPC_STUB INameSpaceTreeControl_CollapseAll_Stub(
   31982     IRpcStubBuffer* This,
   31983     IRpcChannelBuffer* pRpcChannelBuffer,
   31984     PRPC_MESSAGE pRpcMessage,
   31985     DWORD* pdwStubPhase);
   31986 
   31987 #endif  /* __INameSpaceTreeControl_INTERFACE_DEFINED__ */
   31988 
   31989 
   31990 /*****************************************************************************
   31991  * INameSpaceTreeControl2 interface
   31992  */
   31993 #ifndef __INameSpaceTreeControl2_INTERFACE_DEFINED__
   31994 #define __INameSpaceTreeControl2_INTERFACE_DEFINED__
   31995 
   31996 typedef enum NSTCSTYLE2 {
   31997     NSTCS2_DEFAULT = 0x0,
   31998     NSTCS2_INTERRUPTNOTIFICATIONS = 0x1,
   31999     NSTCS2_SHOWNULLSPACEMENU = 0x2,
   32000     NSTCS2_DISPLAYPADDING = 0x4,
   32001     NSTCS2_DISPLAYPINNEDONLY = 0x8,
   32002     NTSCS2_NOSINGLETONAUTOEXPAND = 0x10,
   32003     NTSCS2_NEVERINSERTNONENUMERATED = 0x20
   32004 } NSTCSTYLE2;
   32005 
   32006 DEFINE_ENUM_FLAG_OPERATORS(NSTCSTYLE2)
   32007 
   32008 DEFINE_GUID(IID_INameSpaceTreeControl2, 0x7cc7aed8, 0x290e, 0x49bc, 0x89,0x45, 0xc1,0x40,0x1c,0xc9,0x30,0x6c);
   32009 #if defined(__cplusplus) && !defined(CINTERFACE)
   32010 MIDL_INTERFACE("7cc7aed8-290e-49bc-8945-c1401cc9306c")
   32011 INameSpaceTreeControl2 : public INameSpaceTreeControl
   32012 {
   32013     virtual HRESULT STDMETHODCALLTYPE SetControlStyle(
   32014         NSTCSTYLE nstcsMask,
   32015         NSTCSTYLE nstcsStyle) = 0;
   32016 
   32017     virtual HRESULT STDMETHODCALLTYPE GetControlStyle(
   32018         NSTCSTYLE nstcsMask,
   32019         NSTCSTYLE *pnstcsStyle) = 0;
   32020 
   32021     virtual HRESULT STDMETHODCALLTYPE SetControlStyle2(
   32022         NSTCSTYLE2 nstcsMask,
   32023         NSTCSTYLE2 nstcsStyle) = 0;
   32024 
   32025     virtual HRESULT STDMETHODCALLTYPE GetControlStyle2(
   32026         NSTCSTYLE2 nstcsMask,
   32027         NSTCSTYLE2 *pnstcsStyle) = 0;
   32028 
   32029 };
   32030 #ifdef __CRT_UUID_DECL
   32031 __CRT_UUID_DECL(INameSpaceTreeControl2, 0x7cc7aed8, 0x290e, 0x49bc, 0x89,0x45, 0xc1,0x40,0x1c,0xc9,0x30,0x6c)
   32032 #endif
   32033 #else
   32034 typedef struct INameSpaceTreeControl2Vtbl {
   32035     BEGIN_INTERFACE
   32036 
   32037     /*** IUnknown methods ***/
   32038     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   32039         INameSpaceTreeControl2* This,
   32040         REFIID riid,
   32041         void **ppvObject);
   32042 
   32043     ULONG (STDMETHODCALLTYPE *AddRef)(
   32044         INameSpaceTreeControl2* This);
   32045 
   32046     ULONG (STDMETHODCALLTYPE *Release)(
   32047         INameSpaceTreeControl2* This);
   32048 
   32049     /*** INameSpaceTreeControl methods ***/
   32050     HRESULT (STDMETHODCALLTYPE *Initialize)(
   32051         INameSpaceTreeControl2* This,
   32052         HWND hwndParent,
   32053         RECT *prc,
   32054         NSTCSTYLE nsctsFlags);
   32055 
   32056     HRESULT (STDMETHODCALLTYPE *TreeAdvise)(
   32057         INameSpaceTreeControl2* This,
   32058         IUnknown *punk,
   32059         DWORD *pdwCookie);
   32060 
   32061     HRESULT (STDMETHODCALLTYPE *TreeUnadvise)(
   32062         INameSpaceTreeControl2* This,
   32063         DWORD dwCookie);
   32064 
   32065     HRESULT (STDMETHODCALLTYPE *AppendRoot)(
   32066         INameSpaceTreeControl2* This,
   32067         IShellItem *psiRoot,
   32068         SHCONTF grfEnumFlags,
   32069         NSTCROOTSTYLE grfRootStyle,
   32070         IShellItemFilter *pif);
   32071 
   32072     HRESULT (STDMETHODCALLTYPE *InsertRoot)(
   32073         INameSpaceTreeControl2* This,
   32074         int iIndex,
   32075         IShellItem *psiRoot,
   32076         SHCONTF grfEnumFlags,
   32077         NSTCROOTSTYLE grfRootStyle,
   32078         IShellItemFilter *pif);
   32079 
   32080     HRESULT (STDMETHODCALLTYPE *RemoveRoot)(
   32081         INameSpaceTreeControl2* This,
   32082         IShellItem *psiRoot);
   32083 
   32084     HRESULT (STDMETHODCALLTYPE *RemoveAllRoots)(
   32085         INameSpaceTreeControl2* This);
   32086 
   32087     HRESULT (STDMETHODCALLTYPE *GetRootItems)(
   32088         INameSpaceTreeControl2* This,
   32089         IShellItemArray **ppsiaRootItems);
   32090 
   32091     HRESULT (STDMETHODCALLTYPE *SetItemState)(
   32092         INameSpaceTreeControl2* This,
   32093         IShellItem *psi,
   32094         NSTCITEMSTATE nstcisMask,
   32095         NSTCITEMSTATE nstcisFlags);
   32096 
   32097     HRESULT (STDMETHODCALLTYPE *GetItemState)(
   32098         INameSpaceTreeControl2* This,
   32099         IShellItem *psi,
   32100         NSTCITEMSTATE nstcisMask,
   32101         NSTCITEMSTATE *pnstcisFlags);
   32102 
   32103     HRESULT (STDMETHODCALLTYPE *GetSelectedItems)(
   32104         INameSpaceTreeControl2* This,
   32105         IShellItemArray **psiaItems);
   32106 
   32107     HRESULT (STDMETHODCALLTYPE *GetItemCustomState)(
   32108         INameSpaceTreeControl2* This,
   32109         IShellItem *psi,
   32110         int *piStateNumber);
   32111 
   32112     HRESULT (STDMETHODCALLTYPE *SetItemCustomState)(
   32113         INameSpaceTreeControl2* This,
   32114         IShellItem *psi,
   32115         int iStateNumber);
   32116 
   32117     HRESULT (STDMETHODCALLTYPE *EnsureItemVisible)(
   32118         INameSpaceTreeControl2* This,
   32119         IShellItem *psi);
   32120 
   32121     HRESULT (STDMETHODCALLTYPE *SetTheme)(
   32122         INameSpaceTreeControl2* This,
   32123         LPCWSTR pszTheme);
   32124 
   32125     HRESULT (STDMETHODCALLTYPE *GetNextItem)(
   32126         INameSpaceTreeControl2* This,
   32127         IShellItem *psi,
   32128         NSTCGNI nstcgi,
   32129         IShellItem **ppsiNext);
   32130 
   32131     HRESULT (STDMETHODCALLTYPE *HitTest)(
   32132         INameSpaceTreeControl2* This,
   32133         POINT *ppt,
   32134         IShellItem **ppsiOut);
   32135 
   32136     HRESULT (STDMETHODCALLTYPE *GetItemRect)(
   32137         INameSpaceTreeControl2* This,
   32138         IShellItem *psi,
   32139         RECT *prect);
   32140 
   32141     HRESULT (STDMETHODCALLTYPE *CollapseAll)(
   32142         INameSpaceTreeControl2* This);
   32143 
   32144     /*** INameSpaceTreeControl2 methods ***/
   32145     HRESULT (STDMETHODCALLTYPE *SetControlStyle)(
   32146         INameSpaceTreeControl2* This,
   32147         NSTCSTYLE nstcsMask,
   32148         NSTCSTYLE nstcsStyle);
   32149 
   32150     HRESULT (STDMETHODCALLTYPE *GetControlStyle)(
   32151         INameSpaceTreeControl2* This,
   32152         NSTCSTYLE nstcsMask,
   32153         NSTCSTYLE *pnstcsStyle);
   32154 
   32155     HRESULT (STDMETHODCALLTYPE *SetControlStyle2)(
   32156         INameSpaceTreeControl2* This,
   32157         NSTCSTYLE2 nstcsMask,
   32158         NSTCSTYLE2 nstcsStyle);
   32159 
   32160     HRESULT (STDMETHODCALLTYPE *GetControlStyle2)(
   32161         INameSpaceTreeControl2* This,
   32162         NSTCSTYLE2 nstcsMask,
   32163         NSTCSTYLE2 *pnstcsStyle);
   32164 
   32165     END_INTERFACE
   32166 } INameSpaceTreeControl2Vtbl;
   32167 interface INameSpaceTreeControl2 {
   32168     CONST_VTBL INameSpaceTreeControl2Vtbl* lpVtbl;
   32169 };
   32170 
   32171 #ifdef COBJMACROS
   32172 #ifndef WIDL_C_INLINE_WRAPPERS
   32173 /*** IUnknown methods ***/
   32174 #define INameSpaceTreeControl2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   32175 #define INameSpaceTreeControl2_AddRef(This) (This)->lpVtbl->AddRef(This)
   32176 #define INameSpaceTreeControl2_Release(This) (This)->lpVtbl->Release(This)
   32177 /*** INameSpaceTreeControl methods ***/
   32178 #define INameSpaceTreeControl2_Initialize(This,hwndParent,prc,nsctsFlags) (This)->lpVtbl->Initialize(This,hwndParent,prc,nsctsFlags)
   32179 #define INameSpaceTreeControl2_TreeAdvise(This,punk,pdwCookie) (This)->lpVtbl->TreeAdvise(This,punk,pdwCookie)
   32180 #define INameSpaceTreeControl2_TreeUnadvise(This,dwCookie) (This)->lpVtbl->TreeUnadvise(This,dwCookie)
   32181 #define INameSpaceTreeControl2_AppendRoot(This,psiRoot,grfEnumFlags,grfRootStyle,pif) (This)->lpVtbl->AppendRoot(This,psiRoot,grfEnumFlags,grfRootStyle,pif)
   32182 #define INameSpaceTreeControl2_InsertRoot(This,iIndex,psiRoot,grfEnumFlags,grfRootStyle,pif) (This)->lpVtbl->InsertRoot(This,iIndex,psiRoot,grfEnumFlags,grfRootStyle,pif)
   32183 #define INameSpaceTreeControl2_RemoveRoot(This,psiRoot) (This)->lpVtbl->RemoveRoot(This,psiRoot)
   32184 #define INameSpaceTreeControl2_RemoveAllRoots(This) (This)->lpVtbl->RemoveAllRoots(This)
   32185 #define INameSpaceTreeControl2_GetRootItems(This,ppsiaRootItems) (This)->lpVtbl->GetRootItems(This,ppsiaRootItems)
   32186 #define INameSpaceTreeControl2_SetItemState(This,psi,nstcisMask,nstcisFlags) (This)->lpVtbl->SetItemState(This,psi,nstcisMask,nstcisFlags)
   32187 #define INameSpaceTreeControl2_GetItemState(This,psi,nstcisMask,pnstcisFlags) (This)->lpVtbl->GetItemState(This,psi,nstcisMask,pnstcisFlags)
   32188 #define INameSpaceTreeControl2_GetSelectedItems(This,psiaItems) (This)->lpVtbl->GetSelectedItems(This,psiaItems)
   32189 #define INameSpaceTreeControl2_GetItemCustomState(This,psi,piStateNumber) (This)->lpVtbl->GetItemCustomState(This,psi,piStateNumber)
   32190 #define INameSpaceTreeControl2_SetItemCustomState(This,psi,iStateNumber) (This)->lpVtbl->SetItemCustomState(This,psi,iStateNumber)
   32191 #define INameSpaceTreeControl2_EnsureItemVisible(This,psi) (This)->lpVtbl->EnsureItemVisible(This,psi)
   32192 #define INameSpaceTreeControl2_SetTheme(This,pszTheme) (This)->lpVtbl->SetTheme(This,pszTheme)
   32193 #define INameSpaceTreeControl2_GetNextItem(This,psi,nstcgi,ppsiNext) (This)->lpVtbl->GetNextItem(This,psi,nstcgi,ppsiNext)
   32194 #define INameSpaceTreeControl2_HitTest(This,ppt,ppsiOut) (This)->lpVtbl->HitTest(This,ppt,ppsiOut)
   32195 #define INameSpaceTreeControl2_GetItemRect(This,psi,prect) (This)->lpVtbl->GetItemRect(This,psi,prect)
   32196 #define INameSpaceTreeControl2_CollapseAll(This) (This)->lpVtbl->CollapseAll(This)
   32197 /*** INameSpaceTreeControl2 methods ***/
   32198 #define INameSpaceTreeControl2_SetControlStyle(This,nstcsMask,nstcsStyle) (This)->lpVtbl->SetControlStyle(This,nstcsMask,nstcsStyle)
   32199 #define INameSpaceTreeControl2_GetControlStyle(This,nstcsMask,pnstcsStyle) (This)->lpVtbl->GetControlStyle(This,nstcsMask,pnstcsStyle)
   32200 #define INameSpaceTreeControl2_SetControlStyle2(This,nstcsMask,nstcsStyle) (This)->lpVtbl->SetControlStyle2(This,nstcsMask,nstcsStyle)
   32201 #define INameSpaceTreeControl2_GetControlStyle2(This,nstcsMask,pnstcsStyle) (This)->lpVtbl->GetControlStyle2(This,nstcsMask,pnstcsStyle)
   32202 #else
   32203 /*** IUnknown methods ***/
   32204 static FORCEINLINE HRESULT INameSpaceTreeControl2_QueryInterface(INameSpaceTreeControl2* This,REFIID riid,void **ppvObject) {
   32205     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   32206 }
   32207 static FORCEINLINE ULONG INameSpaceTreeControl2_AddRef(INameSpaceTreeControl2* This) {
   32208     return This->lpVtbl->AddRef(This);
   32209 }
   32210 static FORCEINLINE ULONG INameSpaceTreeControl2_Release(INameSpaceTreeControl2* This) {
   32211     return This->lpVtbl->Release(This);
   32212 }
   32213 /*** INameSpaceTreeControl methods ***/
   32214 static FORCEINLINE HRESULT INameSpaceTreeControl2_Initialize(INameSpaceTreeControl2* This,HWND hwndParent,RECT *prc,NSTCSTYLE nsctsFlags) {
   32215     return This->lpVtbl->Initialize(This,hwndParent,prc,nsctsFlags);
   32216 }
   32217 static FORCEINLINE HRESULT INameSpaceTreeControl2_TreeAdvise(INameSpaceTreeControl2* This,IUnknown *punk,DWORD *pdwCookie) {
   32218     return This->lpVtbl->TreeAdvise(This,punk,pdwCookie);
   32219 }
   32220 static FORCEINLINE HRESULT INameSpaceTreeControl2_TreeUnadvise(INameSpaceTreeControl2* This,DWORD dwCookie) {
   32221     return This->lpVtbl->TreeUnadvise(This,dwCookie);
   32222 }
   32223 static FORCEINLINE HRESULT INameSpaceTreeControl2_AppendRoot(INameSpaceTreeControl2* This,IShellItem *psiRoot,SHCONTF grfEnumFlags,NSTCROOTSTYLE grfRootStyle,IShellItemFilter *pif) {
   32224     return This->lpVtbl->AppendRoot(This,psiRoot,grfEnumFlags,grfRootStyle,pif);
   32225 }
   32226 static FORCEINLINE HRESULT INameSpaceTreeControl2_InsertRoot(INameSpaceTreeControl2* This,int iIndex,IShellItem *psiRoot,SHCONTF grfEnumFlags,NSTCROOTSTYLE grfRootStyle,IShellItemFilter *pif) {
   32227     return This->lpVtbl->InsertRoot(This,iIndex,psiRoot,grfEnumFlags,grfRootStyle,pif);
   32228 }
   32229 static FORCEINLINE HRESULT INameSpaceTreeControl2_RemoveRoot(INameSpaceTreeControl2* This,IShellItem *psiRoot) {
   32230     return This->lpVtbl->RemoveRoot(This,psiRoot);
   32231 }
   32232 static FORCEINLINE HRESULT INameSpaceTreeControl2_RemoveAllRoots(INameSpaceTreeControl2* This) {
   32233     return This->lpVtbl->RemoveAllRoots(This);
   32234 }
   32235 static FORCEINLINE HRESULT INameSpaceTreeControl2_GetRootItems(INameSpaceTreeControl2* This,IShellItemArray **ppsiaRootItems) {
   32236     return This->lpVtbl->GetRootItems(This,ppsiaRootItems);
   32237 }
   32238 static FORCEINLINE HRESULT INameSpaceTreeControl2_SetItemState(INameSpaceTreeControl2* This,IShellItem *psi,NSTCITEMSTATE nstcisMask,NSTCITEMSTATE nstcisFlags) {
   32239     return This->lpVtbl->SetItemState(This,psi,nstcisMask,nstcisFlags);
   32240 }
   32241 static FORCEINLINE HRESULT INameSpaceTreeControl2_GetItemState(INameSpaceTreeControl2* This,IShellItem *psi,NSTCITEMSTATE nstcisMask,NSTCITEMSTATE *pnstcisFlags) {
   32242     return This->lpVtbl->GetItemState(This,psi,nstcisMask,pnstcisFlags);
   32243 }
   32244 static FORCEINLINE HRESULT INameSpaceTreeControl2_GetSelectedItems(INameSpaceTreeControl2* This,IShellItemArray **psiaItems) {
   32245     return This->lpVtbl->GetSelectedItems(This,psiaItems);
   32246 }
   32247 static FORCEINLINE HRESULT INameSpaceTreeControl2_GetItemCustomState(INameSpaceTreeControl2* This,IShellItem *psi,int *piStateNumber) {
   32248     return This->lpVtbl->GetItemCustomState(This,psi,piStateNumber);
   32249 }
   32250 static FORCEINLINE HRESULT INameSpaceTreeControl2_SetItemCustomState(INameSpaceTreeControl2* This,IShellItem *psi,int iStateNumber) {
   32251     return This->lpVtbl->SetItemCustomState(This,psi,iStateNumber);
   32252 }
   32253 static FORCEINLINE HRESULT INameSpaceTreeControl2_EnsureItemVisible(INameSpaceTreeControl2* This,IShellItem *psi) {
   32254     return This->lpVtbl->EnsureItemVisible(This,psi);
   32255 }
   32256 static FORCEINLINE HRESULT INameSpaceTreeControl2_SetTheme(INameSpaceTreeControl2* This,LPCWSTR pszTheme) {
   32257     return This->lpVtbl->SetTheme(This,pszTheme);
   32258 }
   32259 static FORCEINLINE HRESULT INameSpaceTreeControl2_GetNextItem(INameSpaceTreeControl2* This,IShellItem *psi,NSTCGNI nstcgi,IShellItem **ppsiNext) {
   32260     return This->lpVtbl->GetNextItem(This,psi,nstcgi,ppsiNext);
   32261 }
   32262 static FORCEINLINE HRESULT INameSpaceTreeControl2_HitTest(INameSpaceTreeControl2* This,POINT *ppt,IShellItem **ppsiOut) {
   32263     return This->lpVtbl->HitTest(This,ppt,ppsiOut);
   32264 }
   32265 static FORCEINLINE HRESULT INameSpaceTreeControl2_GetItemRect(INameSpaceTreeControl2* This,IShellItem *psi,RECT *prect) {
   32266     return This->lpVtbl->GetItemRect(This,psi,prect);
   32267 }
   32268 static FORCEINLINE HRESULT INameSpaceTreeControl2_CollapseAll(INameSpaceTreeControl2* This) {
   32269     return This->lpVtbl->CollapseAll(This);
   32270 }
   32271 /*** INameSpaceTreeControl2 methods ***/
   32272 static FORCEINLINE HRESULT INameSpaceTreeControl2_SetControlStyle(INameSpaceTreeControl2* This,NSTCSTYLE nstcsMask,NSTCSTYLE nstcsStyle) {
   32273     return This->lpVtbl->SetControlStyle(This,nstcsMask,nstcsStyle);
   32274 }
   32275 static FORCEINLINE HRESULT INameSpaceTreeControl2_GetControlStyle(INameSpaceTreeControl2* This,NSTCSTYLE nstcsMask,NSTCSTYLE *pnstcsStyle) {
   32276     return This->lpVtbl->GetControlStyle(This,nstcsMask,pnstcsStyle);
   32277 }
   32278 static FORCEINLINE HRESULT INameSpaceTreeControl2_SetControlStyle2(INameSpaceTreeControl2* This,NSTCSTYLE2 nstcsMask,NSTCSTYLE2 nstcsStyle) {
   32279     return This->lpVtbl->SetControlStyle2(This,nstcsMask,nstcsStyle);
   32280 }
   32281 static FORCEINLINE HRESULT INameSpaceTreeControl2_GetControlStyle2(INameSpaceTreeControl2* This,NSTCSTYLE2 nstcsMask,NSTCSTYLE2 *pnstcsStyle) {
   32282     return This->lpVtbl->GetControlStyle2(This,nstcsMask,pnstcsStyle);
   32283 }
   32284 #endif
   32285 #endif
   32286 
   32287 #endif
   32288 
   32289 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl2_SetControlStyle_Proxy(
   32290     INameSpaceTreeControl2* This,
   32291     NSTCSTYLE nstcsMask,
   32292     NSTCSTYLE nstcsStyle);
   32293 void __RPC_STUB INameSpaceTreeControl2_SetControlStyle_Stub(
   32294     IRpcStubBuffer* This,
   32295     IRpcChannelBuffer* pRpcChannelBuffer,
   32296     PRPC_MESSAGE pRpcMessage,
   32297     DWORD* pdwStubPhase);
   32298 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl2_GetControlStyle_Proxy(
   32299     INameSpaceTreeControl2* This,
   32300     NSTCSTYLE nstcsMask,
   32301     NSTCSTYLE *pnstcsStyle);
   32302 void __RPC_STUB INameSpaceTreeControl2_GetControlStyle_Stub(
   32303     IRpcStubBuffer* This,
   32304     IRpcChannelBuffer* pRpcChannelBuffer,
   32305     PRPC_MESSAGE pRpcMessage,
   32306     DWORD* pdwStubPhase);
   32307 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl2_SetControlStyle2_Proxy(
   32308     INameSpaceTreeControl2* This,
   32309     NSTCSTYLE2 nstcsMask,
   32310     NSTCSTYLE2 nstcsStyle);
   32311 void __RPC_STUB INameSpaceTreeControl2_SetControlStyle2_Stub(
   32312     IRpcStubBuffer* This,
   32313     IRpcChannelBuffer* pRpcChannelBuffer,
   32314     PRPC_MESSAGE pRpcMessage,
   32315     DWORD* pdwStubPhase);
   32316 HRESULT STDMETHODCALLTYPE INameSpaceTreeControl2_GetControlStyle2_Proxy(
   32317     INameSpaceTreeControl2* This,
   32318     NSTCSTYLE2 nstcsMask,
   32319     NSTCSTYLE2 *pnstcsStyle);
   32320 void __RPC_STUB INameSpaceTreeControl2_GetControlStyle2_Stub(
   32321     IRpcStubBuffer* This,
   32322     IRpcChannelBuffer* pRpcChannelBuffer,
   32323     PRPC_MESSAGE pRpcMessage,
   32324     DWORD* pdwStubPhase);
   32325 
   32326 #endif  /* __INameSpaceTreeControl2_INTERFACE_DEFINED__ */
   32327 
   32328 
   32329 #define NSTCS2_ALLMASK (NSTCS2_INTERRUPTNOTIFICATIONS | NSTCS2_SHOWNULLSPACEMENU | NSTCS2_DISPLAYPADDING)
   32330 #define SID_SNavigationPane IID_INameSpaceTreeControl
   32331 
   32332 #define ISLBUTTON(x) (NSTCECT_LBUTTON == ((x) & NSTCECT_BUTTON))
   32333 #define ISMBUTTON(x) (NSTCECT_MBUTTON == ((x) & NSTCECT_BUTTON))
   32334 #define ISRBUTTON(x) (NSTCECT_RBUTTON == ((x) & NSTCECT_BUTTON))
   32335 #define ISDBLCLICK(x) (NSTCECT_DBLCLICK == ((x) & NSTCECT_DBLCLICK))
   32336 
   32337 /*****************************************************************************
   32338  * INameSpaceTreeControlEvents interface
   32339  */
   32340 #ifndef __INameSpaceTreeControlEvents_INTERFACE_DEFINED__
   32341 #define __INameSpaceTreeControlEvents_INTERFACE_DEFINED__
   32342 
   32343 enum _NSTCEHITTEST {
   32344     NSTCEHT_NOWHERE = 0x1,
   32345     NSTCEHT_ONITEMICON = 0x2,
   32346     NSTCEHT_ONITEMLABEL = 0x4,
   32347     NSTCEHT_ONITEMINDENT = 0x8,
   32348     NSTCEHT_ONITEMBUTTON = 0x10,
   32349     NSTCEHT_ONITEMRIGHT = 0x20,
   32350     NSTCEHT_ONITEMSTATEICON = 0x40,
   32351     NSTCEHT_ONITEM = 0x46,
   32352     NSTCEHT_ONITEMTABBUTTON = 0x1000
   32353 };
   32354 
   32355 
   32356 typedef DWORD NSTCEHITTEST;
   32357 
   32358 enum _NSTCECLICKTYPE {
   32359     NSTCECT_LBUTTON = 0x1,
   32360     NSTCECT_MBUTTON = 0x2,
   32361     NSTCECT_RBUTTON = 0x3,
   32362     NSTCECT_BUTTON = 0x3,
   32363     NSTCECT_DBLCLICK = 0x4
   32364 };
   32365 
   32366 
   32367 typedef DWORD NSTCECLICKTYPE;
   32368 
   32369 DEFINE_GUID(IID_INameSpaceTreeControlEvents, 0x93d77985, 0xb3d8, 0x4484, 0x83,0x18, 0x67,0x2c,0xdd,0xa0,0x02,0xce);
   32370 #if defined(__cplusplus) && !defined(CINTERFACE)
   32371 MIDL_INTERFACE("93d77985-b3d8-4484-8318-672cdda002ce")
   32372 INameSpaceTreeControlEvents : public IUnknown
   32373 {
   32374     virtual HRESULT STDMETHODCALLTYPE OnItemClick(
   32375         IShellItem *psi,
   32376         NSTCEHITTEST nstceHitTest,
   32377         NSTCECLICKTYPE nstceClickType) = 0;
   32378 
   32379     virtual HRESULT STDMETHODCALLTYPE OnPropertyItemCommit(
   32380         IShellItem *psi) = 0;
   32381 
   32382     virtual HRESULT STDMETHODCALLTYPE OnItemStateChanging(
   32383         IShellItem *psi,
   32384         NSTCITEMSTATE nstcisMask,
   32385         NSTCITEMSTATE nstcisState) = 0;
   32386 
   32387     virtual HRESULT STDMETHODCALLTYPE OnItemStateChanged(
   32388         IShellItem *psi,
   32389         NSTCITEMSTATE nstcisMask,
   32390         NSTCITEMSTATE nstcisState) = 0;
   32391 
   32392     virtual HRESULT STDMETHODCALLTYPE OnSelectionChanged(
   32393         IShellItemArray *psiaSelection) = 0;
   32394 
   32395     virtual HRESULT STDMETHODCALLTYPE OnKeyboardInput(
   32396         UINT uMsg,
   32397         WPARAM wParam,
   32398         LPARAM lParam) = 0;
   32399 
   32400     virtual HRESULT STDMETHODCALLTYPE OnBeforeExpand(
   32401         IShellItem *psi) = 0;
   32402 
   32403     virtual HRESULT STDMETHODCALLTYPE OnAfterExpand(
   32404         IShellItem *psi) = 0;
   32405 
   32406     virtual HRESULT STDMETHODCALLTYPE OnBeginLabelEdit(
   32407         IShellItem *psi) = 0;
   32408 
   32409     virtual HRESULT STDMETHODCALLTYPE OnEndLabelEdit(
   32410         IShellItem *psi) = 0;
   32411 
   32412     virtual HRESULT STDMETHODCALLTYPE OnGetToolTip(
   32413         IShellItem *psi,
   32414         LPWSTR pszTip,
   32415         int cchTip) = 0;
   32416 
   32417     virtual HRESULT STDMETHODCALLTYPE OnBeforeItemDelete(
   32418         IShellItem *psi) = 0;
   32419 
   32420     virtual HRESULT STDMETHODCALLTYPE OnItemAdded(
   32421         IShellItem *psi,
   32422         WINBOOL fIsRoot) = 0;
   32423 
   32424     virtual HRESULT STDMETHODCALLTYPE OnItemDeleted(
   32425         IShellItem *psi,
   32426         WINBOOL fIsRoot) = 0;
   32427 
   32428     virtual HRESULT STDMETHODCALLTYPE OnBeforeContextMenu(
   32429         IShellItem *psi,
   32430         REFIID riid,
   32431         void **ppv) = 0;
   32432 
   32433     virtual HRESULT STDMETHODCALLTYPE OnAfterContextMenu(
   32434         IShellItem *psi,
   32435         IContextMenu *pcmIn,
   32436         REFIID riid,
   32437         void **ppv) = 0;
   32438 
   32439     virtual HRESULT STDMETHODCALLTYPE OnBeforeStateImageChange(
   32440         IShellItem *psi) = 0;
   32441 
   32442     virtual HRESULT STDMETHODCALLTYPE OnGetDefaultIconIndex(
   32443         IShellItem *psi,
   32444         int *piDefaultIcon,
   32445         int *piOpenIcon) = 0;
   32446 
   32447 };
   32448 #ifdef __CRT_UUID_DECL
   32449 __CRT_UUID_DECL(INameSpaceTreeControlEvents, 0x93d77985, 0xb3d8, 0x4484, 0x83,0x18, 0x67,0x2c,0xdd,0xa0,0x02,0xce)
   32450 #endif
   32451 #else
   32452 typedef struct INameSpaceTreeControlEventsVtbl {
   32453     BEGIN_INTERFACE
   32454 
   32455     /*** IUnknown methods ***/
   32456     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   32457         INameSpaceTreeControlEvents* This,
   32458         REFIID riid,
   32459         void **ppvObject);
   32460 
   32461     ULONG (STDMETHODCALLTYPE *AddRef)(
   32462         INameSpaceTreeControlEvents* This);
   32463 
   32464     ULONG (STDMETHODCALLTYPE *Release)(
   32465         INameSpaceTreeControlEvents* This);
   32466 
   32467     /*** INameSpaceTreeControlEvents methods ***/
   32468     HRESULT (STDMETHODCALLTYPE *OnItemClick)(
   32469         INameSpaceTreeControlEvents* This,
   32470         IShellItem *psi,
   32471         NSTCEHITTEST nstceHitTest,
   32472         NSTCECLICKTYPE nstceClickType);
   32473 
   32474     HRESULT (STDMETHODCALLTYPE *OnPropertyItemCommit)(
   32475         INameSpaceTreeControlEvents* This,
   32476         IShellItem *psi);
   32477 
   32478     HRESULT (STDMETHODCALLTYPE *OnItemStateChanging)(
   32479         INameSpaceTreeControlEvents* This,
   32480         IShellItem *psi,
   32481         NSTCITEMSTATE nstcisMask,
   32482         NSTCITEMSTATE nstcisState);
   32483 
   32484     HRESULT (STDMETHODCALLTYPE *OnItemStateChanged)(
   32485         INameSpaceTreeControlEvents* This,
   32486         IShellItem *psi,
   32487         NSTCITEMSTATE nstcisMask,
   32488         NSTCITEMSTATE nstcisState);
   32489 
   32490     HRESULT (STDMETHODCALLTYPE *OnSelectionChanged)(
   32491         INameSpaceTreeControlEvents* This,
   32492         IShellItemArray *psiaSelection);
   32493 
   32494     HRESULT (STDMETHODCALLTYPE *OnKeyboardInput)(
   32495         INameSpaceTreeControlEvents* This,
   32496         UINT uMsg,
   32497         WPARAM wParam,
   32498         LPARAM lParam);
   32499 
   32500     HRESULT (STDMETHODCALLTYPE *OnBeforeExpand)(
   32501         INameSpaceTreeControlEvents* This,
   32502         IShellItem *psi);
   32503 
   32504     HRESULT (STDMETHODCALLTYPE *OnAfterExpand)(
   32505         INameSpaceTreeControlEvents* This,
   32506         IShellItem *psi);
   32507 
   32508     HRESULT (STDMETHODCALLTYPE *OnBeginLabelEdit)(
   32509         INameSpaceTreeControlEvents* This,
   32510         IShellItem *psi);
   32511 
   32512     HRESULT (STDMETHODCALLTYPE *OnEndLabelEdit)(
   32513         INameSpaceTreeControlEvents* This,
   32514         IShellItem *psi);
   32515 
   32516     HRESULT (STDMETHODCALLTYPE *OnGetToolTip)(
   32517         INameSpaceTreeControlEvents* This,
   32518         IShellItem *psi,
   32519         LPWSTR pszTip,
   32520         int cchTip);
   32521 
   32522     HRESULT (STDMETHODCALLTYPE *OnBeforeItemDelete)(
   32523         INameSpaceTreeControlEvents* This,
   32524         IShellItem *psi);
   32525 
   32526     HRESULT (STDMETHODCALLTYPE *OnItemAdded)(
   32527         INameSpaceTreeControlEvents* This,
   32528         IShellItem *psi,
   32529         WINBOOL fIsRoot);
   32530 
   32531     HRESULT (STDMETHODCALLTYPE *OnItemDeleted)(
   32532         INameSpaceTreeControlEvents* This,
   32533         IShellItem *psi,
   32534         WINBOOL fIsRoot);
   32535 
   32536     HRESULT (STDMETHODCALLTYPE *OnBeforeContextMenu)(
   32537         INameSpaceTreeControlEvents* This,
   32538         IShellItem *psi,
   32539         REFIID riid,
   32540         void **ppv);
   32541 
   32542     HRESULT (STDMETHODCALLTYPE *OnAfterContextMenu)(
   32543         INameSpaceTreeControlEvents* This,
   32544         IShellItem *psi,
   32545         IContextMenu *pcmIn,
   32546         REFIID riid,
   32547         void **ppv);
   32548 
   32549     HRESULT (STDMETHODCALLTYPE *OnBeforeStateImageChange)(
   32550         INameSpaceTreeControlEvents* This,
   32551         IShellItem *psi);
   32552 
   32553     HRESULT (STDMETHODCALLTYPE *OnGetDefaultIconIndex)(
   32554         INameSpaceTreeControlEvents* This,
   32555         IShellItem *psi,
   32556         int *piDefaultIcon,
   32557         int *piOpenIcon);
   32558 
   32559     END_INTERFACE
   32560 } INameSpaceTreeControlEventsVtbl;
   32561 interface INameSpaceTreeControlEvents {
   32562     CONST_VTBL INameSpaceTreeControlEventsVtbl* lpVtbl;
   32563 };
   32564 
   32565 #ifdef COBJMACROS
   32566 #ifndef WIDL_C_INLINE_WRAPPERS
   32567 /*** IUnknown methods ***/
   32568 #define INameSpaceTreeControlEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   32569 #define INameSpaceTreeControlEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
   32570 #define INameSpaceTreeControlEvents_Release(This) (This)->lpVtbl->Release(This)
   32571 /*** INameSpaceTreeControlEvents methods ***/
   32572 #define INameSpaceTreeControlEvents_OnItemClick(This,psi,nstceHitTest,nstceClickType) (This)->lpVtbl->OnItemClick(This,psi,nstceHitTest,nstceClickType)
   32573 #define INameSpaceTreeControlEvents_OnPropertyItemCommit(This,psi) (This)->lpVtbl->OnPropertyItemCommit(This,psi)
   32574 #define INameSpaceTreeControlEvents_OnItemStateChanging(This,psi,nstcisMask,nstcisState) (This)->lpVtbl->OnItemStateChanging(This,psi,nstcisMask,nstcisState)
   32575 #define INameSpaceTreeControlEvents_OnItemStateChanged(This,psi,nstcisMask,nstcisState) (This)->lpVtbl->OnItemStateChanged(This,psi,nstcisMask,nstcisState)
   32576 #define INameSpaceTreeControlEvents_OnSelectionChanged(This,psiaSelection) (This)->lpVtbl->OnSelectionChanged(This,psiaSelection)
   32577 #define INameSpaceTreeControlEvents_OnKeyboardInput(This,uMsg,wParam,lParam) (This)->lpVtbl->OnKeyboardInput(This,uMsg,wParam,lParam)
   32578 #define INameSpaceTreeControlEvents_OnBeforeExpand(This,psi) (This)->lpVtbl->OnBeforeExpand(This,psi)
   32579 #define INameSpaceTreeControlEvents_OnAfterExpand(This,psi) (This)->lpVtbl->OnAfterExpand(This,psi)
   32580 #define INameSpaceTreeControlEvents_OnBeginLabelEdit(This,psi) (This)->lpVtbl->OnBeginLabelEdit(This,psi)
   32581 #define INameSpaceTreeControlEvents_OnEndLabelEdit(This,psi) (This)->lpVtbl->OnEndLabelEdit(This,psi)
   32582 #define INameSpaceTreeControlEvents_OnGetToolTip(This,psi,pszTip,cchTip) (This)->lpVtbl->OnGetToolTip(This,psi,pszTip,cchTip)
   32583 #define INameSpaceTreeControlEvents_OnBeforeItemDelete(This,psi) (This)->lpVtbl->OnBeforeItemDelete(This,psi)
   32584 #define INameSpaceTreeControlEvents_OnItemAdded(This,psi,fIsRoot) (This)->lpVtbl->OnItemAdded(This,psi,fIsRoot)
   32585 #define INameSpaceTreeControlEvents_OnItemDeleted(This,psi,fIsRoot) (This)->lpVtbl->OnItemDeleted(This,psi,fIsRoot)
   32586 #define INameSpaceTreeControlEvents_OnBeforeContextMenu(This,psi,riid,ppv) (This)->lpVtbl->OnBeforeContextMenu(This,psi,riid,ppv)
   32587 #define INameSpaceTreeControlEvents_OnAfterContextMenu(This,psi,pcmIn,riid,ppv) (This)->lpVtbl->OnAfterContextMenu(This,psi,pcmIn,riid,ppv)
   32588 #define INameSpaceTreeControlEvents_OnBeforeStateImageChange(This,psi) (This)->lpVtbl->OnBeforeStateImageChange(This,psi)
   32589 #define INameSpaceTreeControlEvents_OnGetDefaultIconIndex(This,psi,piDefaultIcon,piOpenIcon) (This)->lpVtbl->OnGetDefaultIconIndex(This,psi,piDefaultIcon,piOpenIcon)
   32590 #else
   32591 /*** IUnknown methods ***/
   32592 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_QueryInterface(INameSpaceTreeControlEvents* This,REFIID riid,void **ppvObject) {
   32593     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   32594 }
   32595 static FORCEINLINE ULONG INameSpaceTreeControlEvents_AddRef(INameSpaceTreeControlEvents* This) {
   32596     return This->lpVtbl->AddRef(This);
   32597 }
   32598 static FORCEINLINE ULONG INameSpaceTreeControlEvents_Release(INameSpaceTreeControlEvents* This) {
   32599     return This->lpVtbl->Release(This);
   32600 }
   32601 /*** INameSpaceTreeControlEvents methods ***/
   32602 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnItemClick(INameSpaceTreeControlEvents* This,IShellItem *psi,NSTCEHITTEST nstceHitTest,NSTCECLICKTYPE nstceClickType) {
   32603     return This->lpVtbl->OnItemClick(This,psi,nstceHitTest,nstceClickType);
   32604 }
   32605 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnPropertyItemCommit(INameSpaceTreeControlEvents* This,IShellItem *psi) {
   32606     return This->lpVtbl->OnPropertyItemCommit(This,psi);
   32607 }
   32608 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnItemStateChanging(INameSpaceTreeControlEvents* This,IShellItem *psi,NSTCITEMSTATE nstcisMask,NSTCITEMSTATE nstcisState) {
   32609     return This->lpVtbl->OnItemStateChanging(This,psi,nstcisMask,nstcisState);
   32610 }
   32611 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnItemStateChanged(INameSpaceTreeControlEvents* This,IShellItem *psi,NSTCITEMSTATE nstcisMask,NSTCITEMSTATE nstcisState) {
   32612     return This->lpVtbl->OnItemStateChanged(This,psi,nstcisMask,nstcisState);
   32613 }
   32614 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnSelectionChanged(INameSpaceTreeControlEvents* This,IShellItemArray *psiaSelection) {
   32615     return This->lpVtbl->OnSelectionChanged(This,psiaSelection);
   32616 }
   32617 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnKeyboardInput(INameSpaceTreeControlEvents* This,UINT uMsg,WPARAM wParam,LPARAM lParam) {
   32618     return This->lpVtbl->OnKeyboardInput(This,uMsg,wParam,lParam);
   32619 }
   32620 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnBeforeExpand(INameSpaceTreeControlEvents* This,IShellItem *psi) {
   32621     return This->lpVtbl->OnBeforeExpand(This,psi);
   32622 }
   32623 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnAfterExpand(INameSpaceTreeControlEvents* This,IShellItem *psi) {
   32624     return This->lpVtbl->OnAfterExpand(This,psi);
   32625 }
   32626 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnBeginLabelEdit(INameSpaceTreeControlEvents* This,IShellItem *psi) {
   32627     return This->lpVtbl->OnBeginLabelEdit(This,psi);
   32628 }
   32629 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnEndLabelEdit(INameSpaceTreeControlEvents* This,IShellItem *psi) {
   32630     return This->lpVtbl->OnEndLabelEdit(This,psi);
   32631 }
   32632 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnGetToolTip(INameSpaceTreeControlEvents* This,IShellItem *psi,LPWSTR pszTip,int cchTip) {
   32633     return This->lpVtbl->OnGetToolTip(This,psi,pszTip,cchTip);
   32634 }
   32635 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnBeforeItemDelete(INameSpaceTreeControlEvents* This,IShellItem *psi) {
   32636     return This->lpVtbl->OnBeforeItemDelete(This,psi);
   32637 }
   32638 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnItemAdded(INameSpaceTreeControlEvents* This,IShellItem *psi,WINBOOL fIsRoot) {
   32639     return This->lpVtbl->OnItemAdded(This,psi,fIsRoot);
   32640 }
   32641 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnItemDeleted(INameSpaceTreeControlEvents* This,IShellItem *psi,WINBOOL fIsRoot) {
   32642     return This->lpVtbl->OnItemDeleted(This,psi,fIsRoot);
   32643 }
   32644 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnBeforeContextMenu(INameSpaceTreeControlEvents* This,IShellItem *psi,REFIID riid,void **ppv) {
   32645     return This->lpVtbl->OnBeforeContextMenu(This,psi,riid,ppv);
   32646 }
   32647 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnAfterContextMenu(INameSpaceTreeControlEvents* This,IShellItem *psi,IContextMenu *pcmIn,REFIID riid,void **ppv) {
   32648     return This->lpVtbl->OnAfterContextMenu(This,psi,pcmIn,riid,ppv);
   32649 }
   32650 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnBeforeStateImageChange(INameSpaceTreeControlEvents* This,IShellItem *psi) {
   32651     return This->lpVtbl->OnBeforeStateImageChange(This,psi);
   32652 }
   32653 static FORCEINLINE HRESULT INameSpaceTreeControlEvents_OnGetDefaultIconIndex(INameSpaceTreeControlEvents* This,IShellItem *psi,int *piDefaultIcon,int *piOpenIcon) {
   32654     return This->lpVtbl->OnGetDefaultIconIndex(This,psi,piDefaultIcon,piOpenIcon);
   32655 }
   32656 #endif
   32657 #endif
   32658 
   32659 #endif
   32660 
   32661 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlEvents_OnItemClick_Proxy(
   32662     INameSpaceTreeControlEvents* This,
   32663     IShellItem *psi,
   32664     NSTCEHITTEST nstceHitTest,
   32665     NSTCECLICKTYPE nstceClickType);
   32666 void __RPC_STUB INameSpaceTreeControlEvents_OnItemClick_Stub(
   32667     IRpcStubBuffer* This,
   32668     IRpcChannelBuffer* pRpcChannelBuffer,
   32669     PRPC_MESSAGE pRpcMessage,
   32670     DWORD* pdwStubPhase);
   32671 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlEvents_OnPropertyItemCommit_Proxy(
   32672     INameSpaceTreeControlEvents* This,
   32673     IShellItem *psi);
   32674 void __RPC_STUB INameSpaceTreeControlEvents_OnPropertyItemCommit_Stub(
   32675     IRpcStubBuffer* This,
   32676     IRpcChannelBuffer* pRpcChannelBuffer,
   32677     PRPC_MESSAGE pRpcMessage,
   32678     DWORD* pdwStubPhase);
   32679 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlEvents_OnItemStateChanging_Proxy(
   32680     INameSpaceTreeControlEvents* This,
   32681     IShellItem *psi,
   32682     NSTCITEMSTATE nstcisMask,
   32683     NSTCITEMSTATE nstcisState);
   32684 void __RPC_STUB INameSpaceTreeControlEvents_OnItemStateChanging_Stub(
   32685     IRpcStubBuffer* This,
   32686     IRpcChannelBuffer* pRpcChannelBuffer,
   32687     PRPC_MESSAGE pRpcMessage,
   32688     DWORD* pdwStubPhase);
   32689 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlEvents_OnItemStateChanged_Proxy(
   32690     INameSpaceTreeControlEvents* This,
   32691     IShellItem *psi,
   32692     NSTCITEMSTATE nstcisMask,
   32693     NSTCITEMSTATE nstcisState);
   32694 void __RPC_STUB INameSpaceTreeControlEvents_OnItemStateChanged_Stub(
   32695     IRpcStubBuffer* This,
   32696     IRpcChannelBuffer* pRpcChannelBuffer,
   32697     PRPC_MESSAGE pRpcMessage,
   32698     DWORD* pdwStubPhase);
   32699 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlEvents_OnSelectionChanged_Proxy(
   32700     INameSpaceTreeControlEvents* This,
   32701     IShellItemArray *psiaSelection);
   32702 void __RPC_STUB INameSpaceTreeControlEvents_OnSelectionChanged_Stub(
   32703     IRpcStubBuffer* This,
   32704     IRpcChannelBuffer* pRpcChannelBuffer,
   32705     PRPC_MESSAGE pRpcMessage,
   32706     DWORD* pdwStubPhase);
   32707 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlEvents_OnKeyboardInput_Proxy(
   32708     INameSpaceTreeControlEvents* This,
   32709     UINT uMsg,
   32710     WPARAM wParam,
   32711     LPARAM lParam);
   32712 void __RPC_STUB INameSpaceTreeControlEvents_OnKeyboardInput_Stub(
   32713     IRpcStubBuffer* This,
   32714     IRpcChannelBuffer* pRpcChannelBuffer,
   32715     PRPC_MESSAGE pRpcMessage,
   32716     DWORD* pdwStubPhase);
   32717 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlEvents_OnBeforeExpand_Proxy(
   32718     INameSpaceTreeControlEvents* This,
   32719     IShellItem *psi);
   32720 void __RPC_STUB INameSpaceTreeControlEvents_OnBeforeExpand_Stub(
   32721     IRpcStubBuffer* This,
   32722     IRpcChannelBuffer* pRpcChannelBuffer,
   32723     PRPC_MESSAGE pRpcMessage,
   32724     DWORD* pdwStubPhase);
   32725 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlEvents_OnAfterExpand_Proxy(
   32726     INameSpaceTreeControlEvents* This,
   32727     IShellItem *psi);
   32728 void __RPC_STUB INameSpaceTreeControlEvents_OnAfterExpand_Stub(
   32729     IRpcStubBuffer* This,
   32730     IRpcChannelBuffer* pRpcChannelBuffer,
   32731     PRPC_MESSAGE pRpcMessage,
   32732     DWORD* pdwStubPhase);
   32733 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlEvents_OnBeginLabelEdit_Proxy(
   32734     INameSpaceTreeControlEvents* This,
   32735     IShellItem *psi);
   32736 void __RPC_STUB INameSpaceTreeControlEvents_OnBeginLabelEdit_Stub(
   32737     IRpcStubBuffer* This,
   32738     IRpcChannelBuffer* pRpcChannelBuffer,
   32739     PRPC_MESSAGE pRpcMessage,
   32740     DWORD* pdwStubPhase);
   32741 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlEvents_OnEndLabelEdit_Proxy(
   32742     INameSpaceTreeControlEvents* This,
   32743     IShellItem *psi);
   32744 void __RPC_STUB INameSpaceTreeControlEvents_OnEndLabelEdit_Stub(
   32745     IRpcStubBuffer* This,
   32746     IRpcChannelBuffer* pRpcChannelBuffer,
   32747     PRPC_MESSAGE pRpcMessage,
   32748     DWORD* pdwStubPhase);
   32749 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlEvents_OnGetToolTip_Proxy(
   32750     INameSpaceTreeControlEvents* This,
   32751     IShellItem *psi,
   32752     LPWSTR pszTip,
   32753     int cchTip);
   32754 void __RPC_STUB INameSpaceTreeControlEvents_OnGetToolTip_Stub(
   32755     IRpcStubBuffer* This,
   32756     IRpcChannelBuffer* pRpcChannelBuffer,
   32757     PRPC_MESSAGE pRpcMessage,
   32758     DWORD* pdwStubPhase);
   32759 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlEvents_OnBeforeItemDelete_Proxy(
   32760     INameSpaceTreeControlEvents* This,
   32761     IShellItem *psi);
   32762 void __RPC_STUB INameSpaceTreeControlEvents_OnBeforeItemDelete_Stub(
   32763     IRpcStubBuffer* This,
   32764     IRpcChannelBuffer* pRpcChannelBuffer,
   32765     PRPC_MESSAGE pRpcMessage,
   32766     DWORD* pdwStubPhase);
   32767 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlEvents_OnItemAdded_Proxy(
   32768     INameSpaceTreeControlEvents* This,
   32769     IShellItem *psi,
   32770     WINBOOL fIsRoot);
   32771 void __RPC_STUB INameSpaceTreeControlEvents_OnItemAdded_Stub(
   32772     IRpcStubBuffer* This,
   32773     IRpcChannelBuffer* pRpcChannelBuffer,
   32774     PRPC_MESSAGE pRpcMessage,
   32775     DWORD* pdwStubPhase);
   32776 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlEvents_OnItemDeleted_Proxy(
   32777     INameSpaceTreeControlEvents* This,
   32778     IShellItem *psi,
   32779     WINBOOL fIsRoot);
   32780 void __RPC_STUB INameSpaceTreeControlEvents_OnItemDeleted_Stub(
   32781     IRpcStubBuffer* This,
   32782     IRpcChannelBuffer* pRpcChannelBuffer,
   32783     PRPC_MESSAGE pRpcMessage,
   32784     DWORD* pdwStubPhase);
   32785 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlEvents_OnBeforeContextMenu_Proxy(
   32786     INameSpaceTreeControlEvents* This,
   32787     IShellItem *psi,
   32788     REFIID riid,
   32789     void **ppv);
   32790 void __RPC_STUB INameSpaceTreeControlEvents_OnBeforeContextMenu_Stub(
   32791     IRpcStubBuffer* This,
   32792     IRpcChannelBuffer* pRpcChannelBuffer,
   32793     PRPC_MESSAGE pRpcMessage,
   32794     DWORD* pdwStubPhase);
   32795 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlEvents_OnAfterContextMenu_Proxy(
   32796     INameSpaceTreeControlEvents* This,
   32797     IShellItem *psi,
   32798     IContextMenu *pcmIn,
   32799     REFIID riid,
   32800     void **ppv);
   32801 void __RPC_STUB INameSpaceTreeControlEvents_OnAfterContextMenu_Stub(
   32802     IRpcStubBuffer* This,
   32803     IRpcChannelBuffer* pRpcChannelBuffer,
   32804     PRPC_MESSAGE pRpcMessage,
   32805     DWORD* pdwStubPhase);
   32806 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlEvents_OnBeforeStateImageChange_Proxy(
   32807     INameSpaceTreeControlEvents* This,
   32808     IShellItem *psi);
   32809 void __RPC_STUB INameSpaceTreeControlEvents_OnBeforeStateImageChange_Stub(
   32810     IRpcStubBuffer* This,
   32811     IRpcChannelBuffer* pRpcChannelBuffer,
   32812     PRPC_MESSAGE pRpcMessage,
   32813     DWORD* pdwStubPhase);
   32814 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlEvents_OnGetDefaultIconIndex_Proxy(
   32815     INameSpaceTreeControlEvents* This,
   32816     IShellItem *psi,
   32817     int *piDefaultIcon,
   32818     int *piOpenIcon);
   32819 void __RPC_STUB INameSpaceTreeControlEvents_OnGetDefaultIconIndex_Stub(
   32820     IRpcStubBuffer* This,
   32821     IRpcChannelBuffer* pRpcChannelBuffer,
   32822     PRPC_MESSAGE pRpcMessage,
   32823     DWORD* pdwStubPhase);
   32824 
   32825 #endif  /* __INameSpaceTreeControlEvents_INTERFACE_DEFINED__ */
   32826 
   32827 
   32828 #define NSTCDHPOS_ONTOP  -1
   32829 
   32830 /*****************************************************************************
   32831  * INameSpaceTreeControlDropHandler interface
   32832  */
   32833 #ifndef __INameSpaceTreeControlDropHandler_INTERFACE_DEFINED__
   32834 #define __INameSpaceTreeControlDropHandler_INTERFACE_DEFINED__
   32835 
   32836 DEFINE_GUID(IID_INameSpaceTreeControlDropHandler, 0xf9c665d6, 0xc2f2, 0x4c19, 0xbf,0x33, 0x83,0x22,0xd7,0x35,0x2f,0x51);
   32837 #if defined(__cplusplus) && !defined(CINTERFACE)
   32838 MIDL_INTERFACE("f9c665d6-c2f2-4c19-bf33-8322d7352f51")
   32839 INameSpaceTreeControlDropHandler : public IUnknown
   32840 {
   32841     virtual HRESULT STDMETHODCALLTYPE OnDragEnter(
   32842         IShellItem *psiOver,
   32843         IShellItemArray *psiaData,
   32844         WINBOOL fOutsideSource,
   32845         DWORD grfKeyState,
   32846         DWORD *pdwEffect) = 0;
   32847 
   32848     virtual HRESULT STDMETHODCALLTYPE OnDragOver(
   32849         IShellItem *psiOver,
   32850         IShellItemArray *psiaData,
   32851         DWORD grfKeyState,
   32852         DWORD *pdwEffect) = 0;
   32853 
   32854     virtual HRESULT STDMETHODCALLTYPE OnDragPosition(
   32855         IShellItem *psiOver,
   32856         IShellItemArray *psiaData,
   32857         int iNewPosition,
   32858         int iOldPosition) = 0;
   32859 
   32860     virtual HRESULT STDMETHODCALLTYPE OnDrop(
   32861         IShellItem *psiOver,
   32862         IShellItemArray *psiaData,
   32863         int iPosition,
   32864         DWORD grfKeyState,
   32865         DWORD *pdwEffect) = 0;
   32866 
   32867     virtual HRESULT STDMETHODCALLTYPE OnDropPosition(
   32868         IShellItem *psiOver,
   32869         IShellItemArray *psiaData,
   32870         int iNewPosition,
   32871         int iOldPosition) = 0;
   32872 
   32873     virtual HRESULT STDMETHODCALLTYPE OnDragLeave(
   32874         IShellItem *psiOver) = 0;
   32875 
   32876 };
   32877 #ifdef __CRT_UUID_DECL
   32878 __CRT_UUID_DECL(INameSpaceTreeControlDropHandler, 0xf9c665d6, 0xc2f2, 0x4c19, 0xbf,0x33, 0x83,0x22,0xd7,0x35,0x2f,0x51)
   32879 #endif
   32880 #else
   32881 typedef struct INameSpaceTreeControlDropHandlerVtbl {
   32882     BEGIN_INTERFACE
   32883 
   32884     /*** IUnknown methods ***/
   32885     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   32886         INameSpaceTreeControlDropHandler* This,
   32887         REFIID riid,
   32888         void **ppvObject);
   32889 
   32890     ULONG (STDMETHODCALLTYPE *AddRef)(
   32891         INameSpaceTreeControlDropHandler* This);
   32892 
   32893     ULONG (STDMETHODCALLTYPE *Release)(
   32894         INameSpaceTreeControlDropHandler* This);
   32895 
   32896     /*** INameSpaceTreeControlDropHandler methods ***/
   32897     HRESULT (STDMETHODCALLTYPE *OnDragEnter)(
   32898         INameSpaceTreeControlDropHandler* This,
   32899         IShellItem *psiOver,
   32900         IShellItemArray *psiaData,
   32901         WINBOOL fOutsideSource,
   32902         DWORD grfKeyState,
   32903         DWORD *pdwEffect);
   32904 
   32905     HRESULT (STDMETHODCALLTYPE *OnDragOver)(
   32906         INameSpaceTreeControlDropHandler* This,
   32907         IShellItem *psiOver,
   32908         IShellItemArray *psiaData,
   32909         DWORD grfKeyState,
   32910         DWORD *pdwEffect);
   32911 
   32912     HRESULT (STDMETHODCALLTYPE *OnDragPosition)(
   32913         INameSpaceTreeControlDropHandler* This,
   32914         IShellItem *psiOver,
   32915         IShellItemArray *psiaData,
   32916         int iNewPosition,
   32917         int iOldPosition);
   32918 
   32919     HRESULT (STDMETHODCALLTYPE *OnDrop)(
   32920         INameSpaceTreeControlDropHandler* This,
   32921         IShellItem *psiOver,
   32922         IShellItemArray *psiaData,
   32923         int iPosition,
   32924         DWORD grfKeyState,
   32925         DWORD *pdwEffect);
   32926 
   32927     HRESULT (STDMETHODCALLTYPE *OnDropPosition)(
   32928         INameSpaceTreeControlDropHandler* This,
   32929         IShellItem *psiOver,
   32930         IShellItemArray *psiaData,
   32931         int iNewPosition,
   32932         int iOldPosition);
   32933 
   32934     HRESULT (STDMETHODCALLTYPE *OnDragLeave)(
   32935         INameSpaceTreeControlDropHandler* This,
   32936         IShellItem *psiOver);
   32937 
   32938     END_INTERFACE
   32939 } INameSpaceTreeControlDropHandlerVtbl;
   32940 interface INameSpaceTreeControlDropHandler {
   32941     CONST_VTBL INameSpaceTreeControlDropHandlerVtbl* lpVtbl;
   32942 };
   32943 
   32944 #ifdef COBJMACROS
   32945 #ifndef WIDL_C_INLINE_WRAPPERS
   32946 /*** IUnknown methods ***/
   32947 #define INameSpaceTreeControlDropHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   32948 #define INameSpaceTreeControlDropHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
   32949 #define INameSpaceTreeControlDropHandler_Release(This) (This)->lpVtbl->Release(This)
   32950 /*** INameSpaceTreeControlDropHandler methods ***/
   32951 #define INameSpaceTreeControlDropHandler_OnDragEnter(This,psiOver,psiaData,fOutsideSource,grfKeyState,pdwEffect) (This)->lpVtbl->OnDragEnter(This,psiOver,psiaData,fOutsideSource,grfKeyState,pdwEffect)
   32952 #define INameSpaceTreeControlDropHandler_OnDragOver(This,psiOver,psiaData,grfKeyState,pdwEffect) (This)->lpVtbl->OnDragOver(This,psiOver,psiaData,grfKeyState,pdwEffect)
   32953 #define INameSpaceTreeControlDropHandler_OnDragPosition(This,psiOver,psiaData,iNewPosition,iOldPosition) (This)->lpVtbl->OnDragPosition(This,psiOver,psiaData,iNewPosition,iOldPosition)
   32954 #define INameSpaceTreeControlDropHandler_OnDrop(This,psiOver,psiaData,iPosition,grfKeyState,pdwEffect) (This)->lpVtbl->OnDrop(This,psiOver,psiaData,iPosition,grfKeyState,pdwEffect)
   32955 #define INameSpaceTreeControlDropHandler_OnDropPosition(This,psiOver,psiaData,iNewPosition,iOldPosition) (This)->lpVtbl->OnDropPosition(This,psiOver,psiaData,iNewPosition,iOldPosition)
   32956 #define INameSpaceTreeControlDropHandler_OnDragLeave(This,psiOver) (This)->lpVtbl->OnDragLeave(This,psiOver)
   32957 #else
   32958 /*** IUnknown methods ***/
   32959 static FORCEINLINE HRESULT INameSpaceTreeControlDropHandler_QueryInterface(INameSpaceTreeControlDropHandler* This,REFIID riid,void **ppvObject) {
   32960     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   32961 }
   32962 static FORCEINLINE ULONG INameSpaceTreeControlDropHandler_AddRef(INameSpaceTreeControlDropHandler* This) {
   32963     return This->lpVtbl->AddRef(This);
   32964 }
   32965 static FORCEINLINE ULONG INameSpaceTreeControlDropHandler_Release(INameSpaceTreeControlDropHandler* This) {
   32966     return This->lpVtbl->Release(This);
   32967 }
   32968 /*** INameSpaceTreeControlDropHandler methods ***/
   32969 static FORCEINLINE HRESULT INameSpaceTreeControlDropHandler_OnDragEnter(INameSpaceTreeControlDropHandler* This,IShellItem *psiOver,IShellItemArray *psiaData,WINBOOL fOutsideSource,DWORD grfKeyState,DWORD *pdwEffect) {
   32970     return This->lpVtbl->OnDragEnter(This,psiOver,psiaData,fOutsideSource,grfKeyState,pdwEffect);
   32971 }
   32972 static FORCEINLINE HRESULT INameSpaceTreeControlDropHandler_OnDragOver(INameSpaceTreeControlDropHandler* This,IShellItem *psiOver,IShellItemArray *psiaData,DWORD grfKeyState,DWORD *pdwEffect) {
   32973     return This->lpVtbl->OnDragOver(This,psiOver,psiaData,grfKeyState,pdwEffect);
   32974 }
   32975 static FORCEINLINE HRESULT INameSpaceTreeControlDropHandler_OnDragPosition(INameSpaceTreeControlDropHandler* This,IShellItem *psiOver,IShellItemArray *psiaData,int iNewPosition,int iOldPosition) {
   32976     return This->lpVtbl->OnDragPosition(This,psiOver,psiaData,iNewPosition,iOldPosition);
   32977 }
   32978 static FORCEINLINE HRESULT INameSpaceTreeControlDropHandler_OnDrop(INameSpaceTreeControlDropHandler* This,IShellItem *psiOver,IShellItemArray *psiaData,int iPosition,DWORD grfKeyState,DWORD *pdwEffect) {
   32979     return This->lpVtbl->OnDrop(This,psiOver,psiaData,iPosition,grfKeyState,pdwEffect);
   32980 }
   32981 static FORCEINLINE HRESULT INameSpaceTreeControlDropHandler_OnDropPosition(INameSpaceTreeControlDropHandler* This,IShellItem *psiOver,IShellItemArray *psiaData,int iNewPosition,int iOldPosition) {
   32982     return This->lpVtbl->OnDropPosition(This,psiOver,psiaData,iNewPosition,iOldPosition);
   32983 }
   32984 static FORCEINLINE HRESULT INameSpaceTreeControlDropHandler_OnDragLeave(INameSpaceTreeControlDropHandler* This,IShellItem *psiOver) {
   32985     return This->lpVtbl->OnDragLeave(This,psiOver);
   32986 }
   32987 #endif
   32988 #endif
   32989 
   32990 #endif
   32991 
   32992 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlDropHandler_OnDragEnter_Proxy(
   32993     INameSpaceTreeControlDropHandler* This,
   32994     IShellItem *psiOver,
   32995     IShellItemArray *psiaData,
   32996     WINBOOL fOutsideSource,
   32997     DWORD grfKeyState,
   32998     DWORD *pdwEffect);
   32999 void __RPC_STUB INameSpaceTreeControlDropHandler_OnDragEnter_Stub(
   33000     IRpcStubBuffer* This,
   33001     IRpcChannelBuffer* pRpcChannelBuffer,
   33002     PRPC_MESSAGE pRpcMessage,
   33003     DWORD* pdwStubPhase);
   33004 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlDropHandler_OnDragOver_Proxy(
   33005     INameSpaceTreeControlDropHandler* This,
   33006     IShellItem *psiOver,
   33007     IShellItemArray *psiaData,
   33008     DWORD grfKeyState,
   33009     DWORD *pdwEffect);
   33010 void __RPC_STUB INameSpaceTreeControlDropHandler_OnDragOver_Stub(
   33011     IRpcStubBuffer* This,
   33012     IRpcChannelBuffer* pRpcChannelBuffer,
   33013     PRPC_MESSAGE pRpcMessage,
   33014     DWORD* pdwStubPhase);
   33015 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlDropHandler_OnDragPosition_Proxy(
   33016     INameSpaceTreeControlDropHandler* This,
   33017     IShellItem *psiOver,
   33018     IShellItemArray *psiaData,
   33019     int iNewPosition,
   33020     int iOldPosition);
   33021 void __RPC_STUB INameSpaceTreeControlDropHandler_OnDragPosition_Stub(
   33022     IRpcStubBuffer* This,
   33023     IRpcChannelBuffer* pRpcChannelBuffer,
   33024     PRPC_MESSAGE pRpcMessage,
   33025     DWORD* pdwStubPhase);
   33026 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlDropHandler_OnDrop_Proxy(
   33027     INameSpaceTreeControlDropHandler* This,
   33028     IShellItem *psiOver,
   33029     IShellItemArray *psiaData,
   33030     int iPosition,
   33031     DWORD grfKeyState,
   33032     DWORD *pdwEffect);
   33033 void __RPC_STUB INameSpaceTreeControlDropHandler_OnDrop_Stub(
   33034     IRpcStubBuffer* This,
   33035     IRpcChannelBuffer* pRpcChannelBuffer,
   33036     PRPC_MESSAGE pRpcMessage,
   33037     DWORD* pdwStubPhase);
   33038 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlDropHandler_OnDropPosition_Proxy(
   33039     INameSpaceTreeControlDropHandler* This,
   33040     IShellItem *psiOver,
   33041     IShellItemArray *psiaData,
   33042     int iNewPosition,
   33043     int iOldPosition);
   33044 void __RPC_STUB INameSpaceTreeControlDropHandler_OnDropPosition_Stub(
   33045     IRpcStubBuffer* This,
   33046     IRpcChannelBuffer* pRpcChannelBuffer,
   33047     PRPC_MESSAGE pRpcMessage,
   33048     DWORD* pdwStubPhase);
   33049 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlDropHandler_OnDragLeave_Proxy(
   33050     INameSpaceTreeControlDropHandler* This,
   33051     IShellItem *psiOver);
   33052 void __RPC_STUB INameSpaceTreeControlDropHandler_OnDragLeave_Stub(
   33053     IRpcStubBuffer* This,
   33054     IRpcChannelBuffer* pRpcChannelBuffer,
   33055     PRPC_MESSAGE pRpcMessage,
   33056     DWORD* pdwStubPhase);
   33057 
   33058 #endif  /* __INameSpaceTreeControlDropHandler_INTERFACE_DEFINED__ */
   33059 
   33060 
   33061 /*****************************************************************************
   33062  * INameSpaceTreeAccessible interface
   33063  */
   33064 #ifndef __INameSpaceTreeAccessible_INTERFACE_DEFINED__
   33065 #define __INameSpaceTreeAccessible_INTERFACE_DEFINED__
   33066 
   33067 DEFINE_GUID(IID_INameSpaceTreeAccessible, 0x71f312de, 0x43ed, 0x4190, 0x84,0x77, 0xe9,0x53,0x6b,0x82,0x35,0x0b);
   33068 #if defined(__cplusplus) && !defined(CINTERFACE)
   33069 MIDL_INTERFACE("71f312de-43ed-4190-8477-e9536b82350b")
   33070 INameSpaceTreeAccessible : public IUnknown
   33071 {
   33072     virtual HRESULT STDMETHODCALLTYPE OnGetDefaultAccessibilityAction(
   33073         IShellItem *psi,
   33074         BSTR *pbstrDefaultAction) = 0;
   33075 
   33076     virtual HRESULT STDMETHODCALLTYPE OnDoDefaultAccessibilityAction(
   33077         IShellItem *psi) = 0;
   33078 
   33079     virtual HRESULT STDMETHODCALLTYPE OnGetAccessibilityRole(
   33080         IShellItem *psi,
   33081         VARIANT *pvarRole) = 0;
   33082 
   33083 };
   33084 #ifdef __CRT_UUID_DECL
   33085 __CRT_UUID_DECL(INameSpaceTreeAccessible, 0x71f312de, 0x43ed, 0x4190, 0x84,0x77, 0xe9,0x53,0x6b,0x82,0x35,0x0b)
   33086 #endif
   33087 #else
   33088 typedef struct INameSpaceTreeAccessibleVtbl {
   33089     BEGIN_INTERFACE
   33090 
   33091     /*** IUnknown methods ***/
   33092     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   33093         INameSpaceTreeAccessible* This,
   33094         REFIID riid,
   33095         void **ppvObject);
   33096 
   33097     ULONG (STDMETHODCALLTYPE *AddRef)(
   33098         INameSpaceTreeAccessible* This);
   33099 
   33100     ULONG (STDMETHODCALLTYPE *Release)(
   33101         INameSpaceTreeAccessible* This);
   33102 
   33103     /*** INameSpaceTreeAccessible methods ***/
   33104     HRESULT (STDMETHODCALLTYPE *OnGetDefaultAccessibilityAction)(
   33105         INameSpaceTreeAccessible* This,
   33106         IShellItem *psi,
   33107         BSTR *pbstrDefaultAction);
   33108 
   33109     HRESULT (STDMETHODCALLTYPE *OnDoDefaultAccessibilityAction)(
   33110         INameSpaceTreeAccessible* This,
   33111         IShellItem *psi);
   33112 
   33113     HRESULT (STDMETHODCALLTYPE *OnGetAccessibilityRole)(
   33114         INameSpaceTreeAccessible* This,
   33115         IShellItem *psi,
   33116         VARIANT *pvarRole);
   33117 
   33118     END_INTERFACE
   33119 } INameSpaceTreeAccessibleVtbl;
   33120 interface INameSpaceTreeAccessible {
   33121     CONST_VTBL INameSpaceTreeAccessibleVtbl* lpVtbl;
   33122 };
   33123 
   33124 #ifdef COBJMACROS
   33125 #ifndef WIDL_C_INLINE_WRAPPERS
   33126 /*** IUnknown methods ***/
   33127 #define INameSpaceTreeAccessible_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   33128 #define INameSpaceTreeAccessible_AddRef(This) (This)->lpVtbl->AddRef(This)
   33129 #define INameSpaceTreeAccessible_Release(This) (This)->lpVtbl->Release(This)
   33130 /*** INameSpaceTreeAccessible methods ***/
   33131 #define INameSpaceTreeAccessible_OnGetDefaultAccessibilityAction(This,psi,pbstrDefaultAction) (This)->lpVtbl->OnGetDefaultAccessibilityAction(This,psi,pbstrDefaultAction)
   33132 #define INameSpaceTreeAccessible_OnDoDefaultAccessibilityAction(This,psi) (This)->lpVtbl->OnDoDefaultAccessibilityAction(This,psi)
   33133 #define INameSpaceTreeAccessible_OnGetAccessibilityRole(This,psi,pvarRole) (This)->lpVtbl->OnGetAccessibilityRole(This,psi,pvarRole)
   33134 #else
   33135 /*** IUnknown methods ***/
   33136 static FORCEINLINE HRESULT INameSpaceTreeAccessible_QueryInterface(INameSpaceTreeAccessible* This,REFIID riid,void **ppvObject) {
   33137     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   33138 }
   33139 static FORCEINLINE ULONG INameSpaceTreeAccessible_AddRef(INameSpaceTreeAccessible* This) {
   33140     return This->lpVtbl->AddRef(This);
   33141 }
   33142 static FORCEINLINE ULONG INameSpaceTreeAccessible_Release(INameSpaceTreeAccessible* This) {
   33143     return This->lpVtbl->Release(This);
   33144 }
   33145 /*** INameSpaceTreeAccessible methods ***/
   33146 static FORCEINLINE HRESULT INameSpaceTreeAccessible_OnGetDefaultAccessibilityAction(INameSpaceTreeAccessible* This,IShellItem *psi,BSTR *pbstrDefaultAction) {
   33147     return This->lpVtbl->OnGetDefaultAccessibilityAction(This,psi,pbstrDefaultAction);
   33148 }
   33149 static FORCEINLINE HRESULT INameSpaceTreeAccessible_OnDoDefaultAccessibilityAction(INameSpaceTreeAccessible* This,IShellItem *psi) {
   33150     return This->lpVtbl->OnDoDefaultAccessibilityAction(This,psi);
   33151 }
   33152 static FORCEINLINE HRESULT INameSpaceTreeAccessible_OnGetAccessibilityRole(INameSpaceTreeAccessible* This,IShellItem *psi,VARIANT *pvarRole) {
   33153     return This->lpVtbl->OnGetAccessibilityRole(This,psi,pvarRole);
   33154 }
   33155 #endif
   33156 #endif
   33157 
   33158 #endif
   33159 
   33160 HRESULT STDMETHODCALLTYPE INameSpaceTreeAccessible_OnGetDefaultAccessibilityAction_Proxy(
   33161     INameSpaceTreeAccessible* This,
   33162     IShellItem *psi,
   33163     BSTR *pbstrDefaultAction);
   33164 void __RPC_STUB INameSpaceTreeAccessible_OnGetDefaultAccessibilityAction_Stub(
   33165     IRpcStubBuffer* This,
   33166     IRpcChannelBuffer* pRpcChannelBuffer,
   33167     PRPC_MESSAGE pRpcMessage,
   33168     DWORD* pdwStubPhase);
   33169 HRESULT STDMETHODCALLTYPE INameSpaceTreeAccessible_OnDoDefaultAccessibilityAction_Proxy(
   33170     INameSpaceTreeAccessible* This,
   33171     IShellItem *psi);
   33172 void __RPC_STUB INameSpaceTreeAccessible_OnDoDefaultAccessibilityAction_Stub(
   33173     IRpcStubBuffer* This,
   33174     IRpcChannelBuffer* pRpcChannelBuffer,
   33175     PRPC_MESSAGE pRpcMessage,
   33176     DWORD* pdwStubPhase);
   33177 HRESULT STDMETHODCALLTYPE INameSpaceTreeAccessible_OnGetAccessibilityRole_Proxy(
   33178     INameSpaceTreeAccessible* This,
   33179     IShellItem *psi,
   33180     VARIANT *pvarRole);
   33181 void __RPC_STUB INameSpaceTreeAccessible_OnGetAccessibilityRole_Stub(
   33182     IRpcStubBuffer* This,
   33183     IRpcChannelBuffer* pRpcChannelBuffer,
   33184     PRPC_MESSAGE pRpcMessage,
   33185     DWORD* pdwStubPhase);
   33186 
   33187 #endif  /* __INameSpaceTreeAccessible_INTERFACE_DEFINED__ */
   33188 
   33189 
   33190 /*****************************************************************************
   33191  * INameSpaceTreeControlCustomDraw interface
   33192  */
   33193 #ifndef __INameSpaceTreeControlCustomDraw_INTERFACE_DEFINED__
   33194 #define __INameSpaceTreeControlCustomDraw_INTERFACE_DEFINED__
   33195 
   33196 typedef struct NSTCCUSTOMDRAW {
   33197     IShellItem *psi;
   33198     UINT uItemState;
   33199     NSTCITEMSTATE nstcis;
   33200     LPCWSTR pszText;
   33201     int iImage;
   33202     HIMAGELIST himl;
   33203     int iLevel;
   33204     int iIndent;
   33205 } NSTCCUSTOMDRAW;
   33206 
   33207 DEFINE_GUID(IID_INameSpaceTreeControlCustomDraw, 0x2d3ba758, 0x33ee, 0x42d5, 0xbb,0x7b, 0x5f,0x34,0x31,0xd8,0x6c,0x78);
   33208 #if defined(__cplusplus) && !defined(CINTERFACE)
   33209 MIDL_INTERFACE("2d3ba758-33ee-42d5-bb7b-5f3431d86c78")
   33210 INameSpaceTreeControlCustomDraw : public IUnknown
   33211 {
   33212     virtual HRESULT STDMETHODCALLTYPE PrePaint(
   33213         HDC hdc,
   33214         RECT *prc,
   33215         LRESULT *plres) = 0;
   33216 
   33217     virtual HRESULT STDMETHODCALLTYPE PostPaint(
   33218         HDC hdc,
   33219         RECT *prc) = 0;
   33220 
   33221     virtual HRESULT STDMETHODCALLTYPE ItemPrePaint(
   33222         HDC hdc,
   33223         RECT *prc,
   33224         NSTCCUSTOMDRAW *pnstccdItem,
   33225         COLORREF *pclrText,
   33226         COLORREF *pclrTextBk,
   33227         LRESULT *plres) = 0;
   33228 
   33229     virtual HRESULT STDMETHODCALLTYPE ItemPostPaint(
   33230         HDC hdc,
   33231         RECT *prc,
   33232         NSTCCUSTOMDRAW *pnstccdItem) = 0;
   33233 
   33234 };
   33235 #ifdef __CRT_UUID_DECL
   33236 __CRT_UUID_DECL(INameSpaceTreeControlCustomDraw, 0x2d3ba758, 0x33ee, 0x42d5, 0xbb,0x7b, 0x5f,0x34,0x31,0xd8,0x6c,0x78)
   33237 #endif
   33238 #else
   33239 typedef struct INameSpaceTreeControlCustomDrawVtbl {
   33240     BEGIN_INTERFACE
   33241 
   33242     /*** IUnknown methods ***/
   33243     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   33244         INameSpaceTreeControlCustomDraw* This,
   33245         REFIID riid,
   33246         void **ppvObject);
   33247 
   33248     ULONG (STDMETHODCALLTYPE *AddRef)(
   33249         INameSpaceTreeControlCustomDraw* This);
   33250 
   33251     ULONG (STDMETHODCALLTYPE *Release)(
   33252         INameSpaceTreeControlCustomDraw* This);
   33253 
   33254     /*** INameSpaceTreeControlCustomDraw methods ***/
   33255     HRESULT (STDMETHODCALLTYPE *PrePaint)(
   33256         INameSpaceTreeControlCustomDraw* This,
   33257         HDC hdc,
   33258         RECT *prc,
   33259         LRESULT *plres);
   33260 
   33261     HRESULT (STDMETHODCALLTYPE *PostPaint)(
   33262         INameSpaceTreeControlCustomDraw* This,
   33263         HDC hdc,
   33264         RECT *prc);
   33265 
   33266     HRESULT (STDMETHODCALLTYPE *ItemPrePaint)(
   33267         INameSpaceTreeControlCustomDraw* This,
   33268         HDC hdc,
   33269         RECT *prc,
   33270         NSTCCUSTOMDRAW *pnstccdItem,
   33271         COLORREF *pclrText,
   33272         COLORREF *pclrTextBk,
   33273         LRESULT *plres);
   33274 
   33275     HRESULT (STDMETHODCALLTYPE *ItemPostPaint)(
   33276         INameSpaceTreeControlCustomDraw* This,
   33277         HDC hdc,
   33278         RECT *prc,
   33279         NSTCCUSTOMDRAW *pnstccdItem);
   33280 
   33281     END_INTERFACE
   33282 } INameSpaceTreeControlCustomDrawVtbl;
   33283 interface INameSpaceTreeControlCustomDraw {
   33284     CONST_VTBL INameSpaceTreeControlCustomDrawVtbl* lpVtbl;
   33285 };
   33286 
   33287 #ifdef COBJMACROS
   33288 #ifndef WIDL_C_INLINE_WRAPPERS
   33289 /*** IUnknown methods ***/
   33290 #define INameSpaceTreeControlCustomDraw_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   33291 #define INameSpaceTreeControlCustomDraw_AddRef(This) (This)->lpVtbl->AddRef(This)
   33292 #define INameSpaceTreeControlCustomDraw_Release(This) (This)->lpVtbl->Release(This)
   33293 /*** INameSpaceTreeControlCustomDraw methods ***/
   33294 #define INameSpaceTreeControlCustomDraw_PrePaint(This,hdc,prc,plres) (This)->lpVtbl->PrePaint(This,hdc,prc,plres)
   33295 #define INameSpaceTreeControlCustomDraw_PostPaint(This,hdc,prc) (This)->lpVtbl->PostPaint(This,hdc,prc)
   33296 #define INameSpaceTreeControlCustomDraw_ItemPrePaint(This,hdc,prc,pnstccdItem,pclrText,pclrTextBk,plres) (This)->lpVtbl->ItemPrePaint(This,hdc,prc,pnstccdItem,pclrText,pclrTextBk,plres)
   33297 #define INameSpaceTreeControlCustomDraw_ItemPostPaint(This,hdc,prc,pnstccdItem) (This)->lpVtbl->ItemPostPaint(This,hdc,prc,pnstccdItem)
   33298 #else
   33299 /*** IUnknown methods ***/
   33300 static FORCEINLINE HRESULT INameSpaceTreeControlCustomDraw_QueryInterface(INameSpaceTreeControlCustomDraw* This,REFIID riid,void **ppvObject) {
   33301     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   33302 }
   33303 static FORCEINLINE ULONG INameSpaceTreeControlCustomDraw_AddRef(INameSpaceTreeControlCustomDraw* This) {
   33304     return This->lpVtbl->AddRef(This);
   33305 }
   33306 static FORCEINLINE ULONG INameSpaceTreeControlCustomDraw_Release(INameSpaceTreeControlCustomDraw* This) {
   33307     return This->lpVtbl->Release(This);
   33308 }
   33309 /*** INameSpaceTreeControlCustomDraw methods ***/
   33310 static FORCEINLINE HRESULT INameSpaceTreeControlCustomDraw_PrePaint(INameSpaceTreeControlCustomDraw* This,HDC hdc,RECT *prc,LRESULT *plres) {
   33311     return This->lpVtbl->PrePaint(This,hdc,prc,plres);
   33312 }
   33313 static FORCEINLINE HRESULT INameSpaceTreeControlCustomDraw_PostPaint(INameSpaceTreeControlCustomDraw* This,HDC hdc,RECT *prc) {
   33314     return This->lpVtbl->PostPaint(This,hdc,prc);
   33315 }
   33316 static FORCEINLINE HRESULT INameSpaceTreeControlCustomDraw_ItemPrePaint(INameSpaceTreeControlCustomDraw* This,HDC hdc,RECT *prc,NSTCCUSTOMDRAW *pnstccdItem,COLORREF *pclrText,COLORREF *pclrTextBk,LRESULT *plres) {
   33317     return This->lpVtbl->ItemPrePaint(This,hdc,prc,pnstccdItem,pclrText,pclrTextBk,plres);
   33318 }
   33319 static FORCEINLINE HRESULT INameSpaceTreeControlCustomDraw_ItemPostPaint(INameSpaceTreeControlCustomDraw* This,HDC hdc,RECT *prc,NSTCCUSTOMDRAW *pnstccdItem) {
   33320     return This->lpVtbl->ItemPostPaint(This,hdc,prc,pnstccdItem);
   33321 }
   33322 #endif
   33323 #endif
   33324 
   33325 #endif
   33326 
   33327 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlCustomDraw_PrePaint_Proxy(
   33328     INameSpaceTreeControlCustomDraw* This,
   33329     HDC hdc,
   33330     RECT *prc,
   33331     LRESULT *plres);
   33332 void __RPC_STUB INameSpaceTreeControlCustomDraw_PrePaint_Stub(
   33333     IRpcStubBuffer* This,
   33334     IRpcChannelBuffer* pRpcChannelBuffer,
   33335     PRPC_MESSAGE pRpcMessage,
   33336     DWORD* pdwStubPhase);
   33337 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlCustomDraw_PostPaint_Proxy(
   33338     INameSpaceTreeControlCustomDraw* This,
   33339     HDC hdc,
   33340     RECT *prc);
   33341 void __RPC_STUB INameSpaceTreeControlCustomDraw_PostPaint_Stub(
   33342     IRpcStubBuffer* This,
   33343     IRpcChannelBuffer* pRpcChannelBuffer,
   33344     PRPC_MESSAGE pRpcMessage,
   33345     DWORD* pdwStubPhase);
   33346 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlCustomDraw_ItemPrePaint_Proxy(
   33347     INameSpaceTreeControlCustomDraw* This,
   33348     HDC hdc,
   33349     RECT *prc,
   33350     NSTCCUSTOMDRAW *pnstccdItem,
   33351     COLORREF *pclrText,
   33352     COLORREF *pclrTextBk,
   33353     LRESULT *plres);
   33354 void __RPC_STUB INameSpaceTreeControlCustomDraw_ItemPrePaint_Stub(
   33355     IRpcStubBuffer* This,
   33356     IRpcChannelBuffer* pRpcChannelBuffer,
   33357     PRPC_MESSAGE pRpcMessage,
   33358     DWORD* pdwStubPhase);
   33359 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlCustomDraw_ItemPostPaint_Proxy(
   33360     INameSpaceTreeControlCustomDraw* This,
   33361     HDC hdc,
   33362     RECT *prc,
   33363     NSTCCUSTOMDRAW *pnstccdItem);
   33364 void __RPC_STUB INameSpaceTreeControlCustomDraw_ItemPostPaint_Stub(
   33365     IRpcStubBuffer* This,
   33366     IRpcChannelBuffer* pRpcChannelBuffer,
   33367     PRPC_MESSAGE pRpcMessage,
   33368     DWORD* pdwStubPhase);
   33369 
   33370 #endif  /* __INameSpaceTreeControlCustomDraw_INTERFACE_DEFINED__ */
   33371 
   33372 
   33373 #if NTDDI_VERSION >= NTDDI_VISTA
   33374 /*****************************************************************************
   33375  * INameSpaceTreeControlFolderCapabilities interface
   33376  */
   33377 #ifndef __INameSpaceTreeControlFolderCapabilities_INTERFACE_DEFINED__
   33378 #define __INameSpaceTreeControlFolderCapabilities_INTERFACE_DEFINED__
   33379 
   33380 typedef enum NSTCFOLDERCAPABILITIES {
   33381     NSTCFC_NONE = 0x0,
   33382     NSTCFC_PINNEDITEMFILTERING = 0x1,
   33383     NSTCFC_DELAY_REGISTER_NOTIFY = 0x2
   33384 } NSTCFOLDERCAPABILITIES;
   33385 
   33386 DEFINE_ENUM_FLAG_OPERATORS(NSTCFOLDERCAPABILITIES)
   33387 
   33388 DEFINE_GUID(IID_INameSpaceTreeControlFolderCapabilities, 0xe9701183, 0xe6b3, 0x4ff2, 0x85,0x68, 0x81,0x36,0x15,0xfe,0xc7,0xbe);
   33389 #if defined(__cplusplus) && !defined(CINTERFACE)
   33390 MIDL_INTERFACE("e9701183-e6b3-4ff2-8568-813615fec7be")
   33391 INameSpaceTreeControlFolderCapabilities : public IUnknown
   33392 {
   33393     virtual HRESULT STDMETHODCALLTYPE GetFolderCapabilities(
   33394         NSTCFOLDERCAPABILITIES nfcMask,
   33395         NSTCFOLDERCAPABILITIES *pnfcValue) = 0;
   33396 
   33397 };
   33398 #ifdef __CRT_UUID_DECL
   33399 __CRT_UUID_DECL(INameSpaceTreeControlFolderCapabilities, 0xe9701183, 0xe6b3, 0x4ff2, 0x85,0x68, 0x81,0x36,0x15,0xfe,0xc7,0xbe)
   33400 #endif
   33401 #else
   33402 typedef struct INameSpaceTreeControlFolderCapabilitiesVtbl {
   33403     BEGIN_INTERFACE
   33404 
   33405     /*** IUnknown methods ***/
   33406     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   33407         INameSpaceTreeControlFolderCapabilities* This,
   33408         REFIID riid,
   33409         void **ppvObject);
   33410 
   33411     ULONG (STDMETHODCALLTYPE *AddRef)(
   33412         INameSpaceTreeControlFolderCapabilities* This);
   33413 
   33414     ULONG (STDMETHODCALLTYPE *Release)(
   33415         INameSpaceTreeControlFolderCapabilities* This);
   33416 
   33417     /*** INameSpaceTreeControlFolderCapabilities methods ***/
   33418     HRESULT (STDMETHODCALLTYPE *GetFolderCapabilities)(
   33419         INameSpaceTreeControlFolderCapabilities* This,
   33420         NSTCFOLDERCAPABILITIES nfcMask,
   33421         NSTCFOLDERCAPABILITIES *pnfcValue);
   33422 
   33423     END_INTERFACE
   33424 } INameSpaceTreeControlFolderCapabilitiesVtbl;
   33425 interface INameSpaceTreeControlFolderCapabilities {
   33426     CONST_VTBL INameSpaceTreeControlFolderCapabilitiesVtbl* lpVtbl;
   33427 };
   33428 
   33429 #ifdef COBJMACROS
   33430 #ifndef WIDL_C_INLINE_WRAPPERS
   33431 /*** IUnknown methods ***/
   33432 #define INameSpaceTreeControlFolderCapabilities_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   33433 #define INameSpaceTreeControlFolderCapabilities_AddRef(This) (This)->lpVtbl->AddRef(This)
   33434 #define INameSpaceTreeControlFolderCapabilities_Release(This) (This)->lpVtbl->Release(This)
   33435 /*** INameSpaceTreeControlFolderCapabilities methods ***/
   33436 #define INameSpaceTreeControlFolderCapabilities_GetFolderCapabilities(This,nfcMask,pnfcValue) (This)->lpVtbl->GetFolderCapabilities(This,nfcMask,pnfcValue)
   33437 #else
   33438 /*** IUnknown methods ***/
   33439 static FORCEINLINE HRESULT INameSpaceTreeControlFolderCapabilities_QueryInterface(INameSpaceTreeControlFolderCapabilities* This,REFIID riid,void **ppvObject) {
   33440     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   33441 }
   33442 static FORCEINLINE ULONG INameSpaceTreeControlFolderCapabilities_AddRef(INameSpaceTreeControlFolderCapabilities* This) {
   33443     return This->lpVtbl->AddRef(This);
   33444 }
   33445 static FORCEINLINE ULONG INameSpaceTreeControlFolderCapabilities_Release(INameSpaceTreeControlFolderCapabilities* This) {
   33446     return This->lpVtbl->Release(This);
   33447 }
   33448 /*** INameSpaceTreeControlFolderCapabilities methods ***/
   33449 static FORCEINLINE HRESULT INameSpaceTreeControlFolderCapabilities_GetFolderCapabilities(INameSpaceTreeControlFolderCapabilities* This,NSTCFOLDERCAPABILITIES nfcMask,NSTCFOLDERCAPABILITIES *pnfcValue) {
   33450     return This->lpVtbl->GetFolderCapabilities(This,nfcMask,pnfcValue);
   33451 }
   33452 #endif
   33453 #endif
   33454 
   33455 #endif
   33456 
   33457 HRESULT STDMETHODCALLTYPE INameSpaceTreeControlFolderCapabilities_GetFolderCapabilities_Proxy(
   33458     INameSpaceTreeControlFolderCapabilities* This,
   33459     NSTCFOLDERCAPABILITIES nfcMask,
   33460     NSTCFOLDERCAPABILITIES *pnfcValue);
   33461 void __RPC_STUB INameSpaceTreeControlFolderCapabilities_GetFolderCapabilities_Stub(
   33462     IRpcStubBuffer* This,
   33463     IRpcChannelBuffer* pRpcChannelBuffer,
   33464     PRPC_MESSAGE pRpcMessage,
   33465     DWORD* pdwStubPhase);
   33466 
   33467 #endif  /* __INameSpaceTreeControlFolderCapabilities_INTERFACE_DEFINED__ */
   33468 
   33469 #endif
   33470 
   33471 #define E_PREVIEWHANDLER_DRM_FAIL _HRESULT_TYPEDEF_(0x86420001L)
   33472 #define E_PREVIEWHANDLER_NOAUTH   _HRESULT_TYPEDEF_(0x86420002L)
   33473 #define E_PREVIEWHANDLER_NOTFOUND _HRESULT_TYPEDEF_(0x86420003L)
   33474 #define E_PREVIEWHANDLER_CORRUPT  _HRESULT_TYPEDEF_(0x86420004L)
   33475 
   33476 /*****************************************************************************
   33477  * IPreviewHandler interface
   33478  */
   33479 #ifndef __IPreviewHandler_INTERFACE_DEFINED__
   33480 #define __IPreviewHandler_INTERFACE_DEFINED__
   33481 
   33482 DEFINE_GUID(IID_IPreviewHandler, 0x8895b1c6, 0xb41f, 0x4c1c, 0xa5,0x62, 0x0d,0x56,0x42,0x50,0x83,0x6f);
   33483 #if defined(__cplusplus) && !defined(CINTERFACE)
   33484 MIDL_INTERFACE("8895b1c6-b41f-4c1c-a562-0d564250836f")
   33485 IPreviewHandler : public IUnknown
   33486 {
   33487     virtual HRESULT STDMETHODCALLTYPE SetWindow(
   33488         HWND hwnd,
   33489         const RECT *prc) = 0;
   33490 
   33491     virtual HRESULT STDMETHODCALLTYPE SetRect(
   33492         const RECT *prc) = 0;
   33493 
   33494     virtual HRESULT STDMETHODCALLTYPE DoPreview(
   33495         ) = 0;
   33496 
   33497     virtual HRESULT STDMETHODCALLTYPE Unload(
   33498         ) = 0;
   33499 
   33500     virtual HRESULT STDMETHODCALLTYPE SetFocus(
   33501         ) = 0;
   33502 
   33503     virtual HRESULT STDMETHODCALLTYPE QueryFocus(
   33504         HWND *phwnd) = 0;
   33505 
   33506     virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator(
   33507         MSG *pmsg) = 0;
   33508 
   33509 };
   33510 #ifdef __CRT_UUID_DECL
   33511 __CRT_UUID_DECL(IPreviewHandler, 0x8895b1c6, 0xb41f, 0x4c1c, 0xa5,0x62, 0x0d,0x56,0x42,0x50,0x83,0x6f)
   33512 #endif
   33513 #else
   33514 typedef struct IPreviewHandlerVtbl {
   33515     BEGIN_INTERFACE
   33516 
   33517     /*** IUnknown methods ***/
   33518     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   33519         IPreviewHandler* This,
   33520         REFIID riid,
   33521         void **ppvObject);
   33522 
   33523     ULONG (STDMETHODCALLTYPE *AddRef)(
   33524         IPreviewHandler* This);
   33525 
   33526     ULONG (STDMETHODCALLTYPE *Release)(
   33527         IPreviewHandler* This);
   33528 
   33529     /*** IPreviewHandler methods ***/
   33530     HRESULT (STDMETHODCALLTYPE *SetWindow)(
   33531         IPreviewHandler* This,
   33532         HWND hwnd,
   33533         const RECT *prc);
   33534 
   33535     HRESULT (STDMETHODCALLTYPE *SetRect)(
   33536         IPreviewHandler* This,
   33537         const RECT *prc);
   33538 
   33539     HRESULT (STDMETHODCALLTYPE *DoPreview)(
   33540         IPreviewHandler* This);
   33541 
   33542     HRESULT (STDMETHODCALLTYPE *Unload)(
   33543         IPreviewHandler* This);
   33544 
   33545     HRESULT (STDMETHODCALLTYPE *SetFocus)(
   33546         IPreviewHandler* This);
   33547 
   33548     HRESULT (STDMETHODCALLTYPE *QueryFocus)(
   33549         IPreviewHandler* This,
   33550         HWND *phwnd);
   33551 
   33552     HRESULT (STDMETHODCALLTYPE *TranslateAccelerator)(
   33553         IPreviewHandler* This,
   33554         MSG *pmsg);
   33555 
   33556     END_INTERFACE
   33557 } IPreviewHandlerVtbl;
   33558 interface IPreviewHandler {
   33559     CONST_VTBL IPreviewHandlerVtbl* lpVtbl;
   33560 };
   33561 
   33562 #ifdef COBJMACROS
   33563 #ifndef WIDL_C_INLINE_WRAPPERS
   33564 /*** IUnknown methods ***/
   33565 #define IPreviewHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   33566 #define IPreviewHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
   33567 #define IPreviewHandler_Release(This) (This)->lpVtbl->Release(This)
   33568 /*** IPreviewHandler methods ***/
   33569 #define IPreviewHandler_SetWindow(This,hwnd,prc) (This)->lpVtbl->SetWindow(This,hwnd,prc)
   33570 #define IPreviewHandler_SetRect(This,prc) (This)->lpVtbl->SetRect(This,prc)
   33571 #define IPreviewHandler_DoPreview(This) (This)->lpVtbl->DoPreview(This)
   33572 #define IPreviewHandler_Unload(This) (This)->lpVtbl->Unload(This)
   33573 #define IPreviewHandler_SetFocus(This) (This)->lpVtbl->SetFocus(This)
   33574 #define IPreviewHandler_QueryFocus(This,phwnd) (This)->lpVtbl->QueryFocus(This,phwnd)
   33575 #define IPreviewHandler_TranslateAccelerator(This,pmsg) (This)->lpVtbl->TranslateAccelerator(This,pmsg)
   33576 #else
   33577 /*** IUnknown methods ***/
   33578 static FORCEINLINE HRESULT IPreviewHandler_QueryInterface(IPreviewHandler* This,REFIID riid,void **ppvObject) {
   33579     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   33580 }
   33581 static FORCEINLINE ULONG IPreviewHandler_AddRef(IPreviewHandler* This) {
   33582     return This->lpVtbl->AddRef(This);
   33583 }
   33584 static FORCEINLINE ULONG IPreviewHandler_Release(IPreviewHandler* This) {
   33585     return This->lpVtbl->Release(This);
   33586 }
   33587 /*** IPreviewHandler methods ***/
   33588 static FORCEINLINE HRESULT IPreviewHandler_SetWindow(IPreviewHandler* This,HWND hwnd,const RECT *prc) {
   33589     return This->lpVtbl->SetWindow(This,hwnd,prc);
   33590 }
   33591 static FORCEINLINE HRESULT IPreviewHandler_SetRect(IPreviewHandler* This,const RECT *prc) {
   33592     return This->lpVtbl->SetRect(This,prc);
   33593 }
   33594 static FORCEINLINE HRESULT IPreviewHandler_DoPreview(IPreviewHandler* This) {
   33595     return This->lpVtbl->DoPreview(This);
   33596 }
   33597 static FORCEINLINE HRESULT IPreviewHandler_Unload(IPreviewHandler* This) {
   33598     return This->lpVtbl->Unload(This);
   33599 }
   33600 static FORCEINLINE HRESULT IPreviewHandler_SetFocus(IPreviewHandler* This) {
   33601     return This->lpVtbl->SetFocus(This);
   33602 }
   33603 static FORCEINLINE HRESULT IPreviewHandler_QueryFocus(IPreviewHandler* This,HWND *phwnd) {
   33604     return This->lpVtbl->QueryFocus(This,phwnd);
   33605 }
   33606 static FORCEINLINE HRESULT IPreviewHandler_TranslateAccelerator(IPreviewHandler* This,MSG *pmsg) {
   33607     return This->lpVtbl->TranslateAccelerator(This,pmsg);
   33608 }
   33609 #endif
   33610 #endif
   33611 
   33612 #endif
   33613 
   33614 HRESULT STDMETHODCALLTYPE IPreviewHandler_SetWindow_Proxy(
   33615     IPreviewHandler* This,
   33616     HWND hwnd,
   33617     const RECT *prc);
   33618 void __RPC_STUB IPreviewHandler_SetWindow_Stub(
   33619     IRpcStubBuffer* This,
   33620     IRpcChannelBuffer* pRpcChannelBuffer,
   33621     PRPC_MESSAGE pRpcMessage,
   33622     DWORD* pdwStubPhase);
   33623 HRESULT STDMETHODCALLTYPE IPreviewHandler_SetRect_Proxy(
   33624     IPreviewHandler* This,
   33625     const RECT *prc);
   33626 void __RPC_STUB IPreviewHandler_SetRect_Stub(
   33627     IRpcStubBuffer* This,
   33628     IRpcChannelBuffer* pRpcChannelBuffer,
   33629     PRPC_MESSAGE pRpcMessage,
   33630     DWORD* pdwStubPhase);
   33631 HRESULT STDMETHODCALLTYPE IPreviewHandler_DoPreview_Proxy(
   33632     IPreviewHandler* This);
   33633 void __RPC_STUB IPreviewHandler_DoPreview_Stub(
   33634     IRpcStubBuffer* This,
   33635     IRpcChannelBuffer* pRpcChannelBuffer,
   33636     PRPC_MESSAGE pRpcMessage,
   33637     DWORD* pdwStubPhase);
   33638 HRESULT STDMETHODCALLTYPE IPreviewHandler_Unload_Proxy(
   33639     IPreviewHandler* This);
   33640 void __RPC_STUB IPreviewHandler_Unload_Stub(
   33641     IRpcStubBuffer* This,
   33642     IRpcChannelBuffer* pRpcChannelBuffer,
   33643     PRPC_MESSAGE pRpcMessage,
   33644     DWORD* pdwStubPhase);
   33645 HRESULT STDMETHODCALLTYPE IPreviewHandler_SetFocus_Proxy(
   33646     IPreviewHandler* This);
   33647 void __RPC_STUB IPreviewHandler_SetFocus_Stub(
   33648     IRpcStubBuffer* This,
   33649     IRpcChannelBuffer* pRpcChannelBuffer,
   33650     PRPC_MESSAGE pRpcMessage,
   33651     DWORD* pdwStubPhase);
   33652 HRESULT STDMETHODCALLTYPE IPreviewHandler_QueryFocus_Proxy(
   33653     IPreviewHandler* This,
   33654     HWND *phwnd);
   33655 void __RPC_STUB IPreviewHandler_QueryFocus_Stub(
   33656     IRpcStubBuffer* This,
   33657     IRpcChannelBuffer* pRpcChannelBuffer,
   33658     PRPC_MESSAGE pRpcMessage,
   33659     DWORD* pdwStubPhase);
   33660 HRESULT STDMETHODCALLTYPE IPreviewHandler_TranslateAccelerator_Proxy(
   33661     IPreviewHandler* This,
   33662     MSG *pmsg);
   33663 void __RPC_STUB IPreviewHandler_TranslateAccelerator_Stub(
   33664     IRpcStubBuffer* This,
   33665     IRpcChannelBuffer* pRpcChannelBuffer,
   33666     PRPC_MESSAGE pRpcMessage,
   33667     DWORD* pdwStubPhase);
   33668 
   33669 #endif  /* __IPreviewHandler_INTERFACE_DEFINED__ */
   33670 
   33671 
   33672 /*****************************************************************************
   33673  * IPreviewHandlerFrame interface
   33674  */
   33675 #ifndef __IPreviewHandlerFrame_INTERFACE_DEFINED__
   33676 #define __IPreviewHandlerFrame_INTERFACE_DEFINED__
   33677 
   33678 typedef struct PREVIEWHANDLERFRAMEINFO {
   33679     HACCEL haccel;
   33680     UINT cAccelEntries;
   33681 } PREVIEWHANDLERFRAMEINFO;
   33682 
   33683 DEFINE_GUID(IID_IPreviewHandlerFrame, 0xfec87aaf, 0x35f9, 0x447a, 0xad,0xb7, 0x20,0x23,0x44,0x91,0x40,0x1a);
   33684 #if defined(__cplusplus) && !defined(CINTERFACE)
   33685 MIDL_INTERFACE("fec87aaf-35f9-447a-adb7-20234491401a")
   33686 IPreviewHandlerFrame : public IUnknown
   33687 {
   33688     virtual HRESULT STDMETHODCALLTYPE GetWindowContext(
   33689         PREVIEWHANDLERFRAMEINFO *pinfo) = 0;
   33690 
   33691     virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator(
   33692         MSG *pmsg) = 0;
   33693 
   33694 };
   33695 #ifdef __CRT_UUID_DECL
   33696 __CRT_UUID_DECL(IPreviewHandlerFrame, 0xfec87aaf, 0x35f9, 0x447a, 0xad,0xb7, 0x20,0x23,0x44,0x91,0x40,0x1a)
   33697 #endif
   33698 #else
   33699 typedef struct IPreviewHandlerFrameVtbl {
   33700     BEGIN_INTERFACE
   33701 
   33702     /*** IUnknown methods ***/
   33703     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   33704         IPreviewHandlerFrame* This,
   33705         REFIID riid,
   33706         void **ppvObject);
   33707 
   33708     ULONG (STDMETHODCALLTYPE *AddRef)(
   33709         IPreviewHandlerFrame* This);
   33710 
   33711     ULONG (STDMETHODCALLTYPE *Release)(
   33712         IPreviewHandlerFrame* This);
   33713 
   33714     /*** IPreviewHandlerFrame methods ***/
   33715     HRESULT (STDMETHODCALLTYPE *GetWindowContext)(
   33716         IPreviewHandlerFrame* This,
   33717         PREVIEWHANDLERFRAMEINFO *pinfo);
   33718 
   33719     HRESULT (STDMETHODCALLTYPE *TranslateAccelerator)(
   33720         IPreviewHandlerFrame* This,
   33721         MSG *pmsg);
   33722 
   33723     END_INTERFACE
   33724 } IPreviewHandlerFrameVtbl;
   33725 interface IPreviewHandlerFrame {
   33726     CONST_VTBL IPreviewHandlerFrameVtbl* lpVtbl;
   33727 };
   33728 
   33729 #ifdef COBJMACROS
   33730 #ifndef WIDL_C_INLINE_WRAPPERS
   33731 /*** IUnknown methods ***/
   33732 #define IPreviewHandlerFrame_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   33733 #define IPreviewHandlerFrame_AddRef(This) (This)->lpVtbl->AddRef(This)
   33734 #define IPreviewHandlerFrame_Release(This) (This)->lpVtbl->Release(This)
   33735 /*** IPreviewHandlerFrame methods ***/
   33736 #define IPreviewHandlerFrame_GetWindowContext(This,pinfo) (This)->lpVtbl->GetWindowContext(This,pinfo)
   33737 #define IPreviewHandlerFrame_TranslateAccelerator(This,pmsg) (This)->lpVtbl->TranslateAccelerator(This,pmsg)
   33738 #else
   33739 /*** IUnknown methods ***/
   33740 static FORCEINLINE HRESULT IPreviewHandlerFrame_QueryInterface(IPreviewHandlerFrame* This,REFIID riid,void **ppvObject) {
   33741     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   33742 }
   33743 static FORCEINLINE ULONG IPreviewHandlerFrame_AddRef(IPreviewHandlerFrame* This) {
   33744     return This->lpVtbl->AddRef(This);
   33745 }
   33746 static FORCEINLINE ULONG IPreviewHandlerFrame_Release(IPreviewHandlerFrame* This) {
   33747     return This->lpVtbl->Release(This);
   33748 }
   33749 /*** IPreviewHandlerFrame methods ***/
   33750 static FORCEINLINE HRESULT IPreviewHandlerFrame_GetWindowContext(IPreviewHandlerFrame* This,PREVIEWHANDLERFRAMEINFO *pinfo) {
   33751     return This->lpVtbl->GetWindowContext(This,pinfo);
   33752 }
   33753 static FORCEINLINE HRESULT IPreviewHandlerFrame_TranslateAccelerator(IPreviewHandlerFrame* This,MSG *pmsg) {
   33754     return This->lpVtbl->TranslateAccelerator(This,pmsg);
   33755 }
   33756 #endif
   33757 #endif
   33758 
   33759 #endif
   33760 
   33761 HRESULT STDMETHODCALLTYPE IPreviewHandlerFrame_GetWindowContext_Proxy(
   33762     IPreviewHandlerFrame* This,
   33763     PREVIEWHANDLERFRAMEINFO *pinfo);
   33764 void __RPC_STUB IPreviewHandlerFrame_GetWindowContext_Stub(
   33765     IRpcStubBuffer* This,
   33766     IRpcChannelBuffer* pRpcChannelBuffer,
   33767     PRPC_MESSAGE pRpcMessage,
   33768     DWORD* pdwStubPhase);
   33769 HRESULT STDMETHODCALLTYPE IPreviewHandlerFrame_TranslateAccelerator_Proxy(
   33770     IPreviewHandlerFrame* This,
   33771     MSG *pmsg);
   33772 void __RPC_STUB IPreviewHandlerFrame_TranslateAccelerator_Stub(
   33773     IRpcStubBuffer* This,
   33774     IRpcChannelBuffer* pRpcChannelBuffer,
   33775     PRPC_MESSAGE pRpcMessage,
   33776     DWORD* pdwStubPhase);
   33777 
   33778 #endif  /* __IPreviewHandlerFrame_INTERFACE_DEFINED__ */
   33779 
   33780 
   33781 #if NTDDI_VERSION >= NTDDI_VISTA
   33782 /*****************************************************************************
   33783  * ITrayDeskBand interface
   33784  */
   33785 #ifndef __ITrayDeskBand_INTERFACE_DEFINED__
   33786 #define __ITrayDeskBand_INTERFACE_DEFINED__
   33787 
   33788 DEFINE_GUID(IID_ITrayDeskBand, 0x6d67e846, 0x5b9c, 0x4db8, 0x9c,0xbc, 0xdd,0xe1,0x2f,0x42,0x54,0xf1);
   33789 #if defined(__cplusplus) && !defined(CINTERFACE)
   33790 MIDL_INTERFACE("6d67e846-5b9c-4db8-9cbc-dde12f4254f1")
   33791 ITrayDeskBand : public IUnknown
   33792 {
   33793     virtual HRESULT STDMETHODCALLTYPE ShowDeskBand(
   33794         REFCLSID clsid) = 0;
   33795 
   33796     virtual HRESULT STDMETHODCALLTYPE HideDeskBand(
   33797         REFCLSID clsid) = 0;
   33798 
   33799     virtual HRESULT STDMETHODCALLTYPE IsDeskBandShown(
   33800         REFCLSID clsid) = 0;
   33801 
   33802     virtual HRESULT STDMETHODCALLTYPE DeskBandRegistrationChanged(
   33803         ) = 0;
   33804 
   33805 };
   33806 #ifdef __CRT_UUID_DECL
   33807 __CRT_UUID_DECL(ITrayDeskBand, 0x6d67e846, 0x5b9c, 0x4db8, 0x9c,0xbc, 0xdd,0xe1,0x2f,0x42,0x54,0xf1)
   33808 #endif
   33809 #else
   33810 typedef struct ITrayDeskBandVtbl {
   33811     BEGIN_INTERFACE
   33812 
   33813     /*** IUnknown methods ***/
   33814     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   33815         ITrayDeskBand* This,
   33816         REFIID riid,
   33817         void **ppvObject);
   33818 
   33819     ULONG (STDMETHODCALLTYPE *AddRef)(
   33820         ITrayDeskBand* This);
   33821 
   33822     ULONG (STDMETHODCALLTYPE *Release)(
   33823         ITrayDeskBand* This);
   33824 
   33825     /*** ITrayDeskBand methods ***/
   33826     HRESULT (STDMETHODCALLTYPE *ShowDeskBand)(
   33827         ITrayDeskBand* This,
   33828         REFCLSID clsid);
   33829 
   33830     HRESULT (STDMETHODCALLTYPE *HideDeskBand)(
   33831         ITrayDeskBand* This,
   33832         REFCLSID clsid);
   33833 
   33834     HRESULT (STDMETHODCALLTYPE *IsDeskBandShown)(
   33835         ITrayDeskBand* This,
   33836         REFCLSID clsid);
   33837 
   33838     HRESULT (STDMETHODCALLTYPE *DeskBandRegistrationChanged)(
   33839         ITrayDeskBand* This);
   33840 
   33841     END_INTERFACE
   33842 } ITrayDeskBandVtbl;
   33843 interface ITrayDeskBand {
   33844     CONST_VTBL ITrayDeskBandVtbl* lpVtbl;
   33845 };
   33846 
   33847 #ifdef COBJMACROS
   33848 #ifndef WIDL_C_INLINE_WRAPPERS
   33849 /*** IUnknown methods ***/
   33850 #define ITrayDeskBand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   33851 #define ITrayDeskBand_AddRef(This) (This)->lpVtbl->AddRef(This)
   33852 #define ITrayDeskBand_Release(This) (This)->lpVtbl->Release(This)
   33853 /*** ITrayDeskBand methods ***/
   33854 #define ITrayDeskBand_ShowDeskBand(This,clsid) (This)->lpVtbl->ShowDeskBand(This,clsid)
   33855 #define ITrayDeskBand_HideDeskBand(This,clsid) (This)->lpVtbl->HideDeskBand(This,clsid)
   33856 #define ITrayDeskBand_IsDeskBandShown(This,clsid) (This)->lpVtbl->IsDeskBandShown(This,clsid)
   33857 #define ITrayDeskBand_DeskBandRegistrationChanged(This) (This)->lpVtbl->DeskBandRegistrationChanged(This)
   33858 #else
   33859 /*** IUnknown methods ***/
   33860 static FORCEINLINE HRESULT ITrayDeskBand_QueryInterface(ITrayDeskBand* This,REFIID riid,void **ppvObject) {
   33861     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   33862 }
   33863 static FORCEINLINE ULONG ITrayDeskBand_AddRef(ITrayDeskBand* This) {
   33864     return This->lpVtbl->AddRef(This);
   33865 }
   33866 static FORCEINLINE ULONG ITrayDeskBand_Release(ITrayDeskBand* This) {
   33867     return This->lpVtbl->Release(This);
   33868 }
   33869 /*** ITrayDeskBand methods ***/
   33870 static FORCEINLINE HRESULT ITrayDeskBand_ShowDeskBand(ITrayDeskBand* This,REFCLSID clsid) {
   33871     return This->lpVtbl->ShowDeskBand(This,clsid);
   33872 }
   33873 static FORCEINLINE HRESULT ITrayDeskBand_HideDeskBand(ITrayDeskBand* This,REFCLSID clsid) {
   33874     return This->lpVtbl->HideDeskBand(This,clsid);
   33875 }
   33876 static FORCEINLINE HRESULT ITrayDeskBand_IsDeskBandShown(ITrayDeskBand* This,REFCLSID clsid) {
   33877     return This->lpVtbl->IsDeskBandShown(This,clsid);
   33878 }
   33879 static FORCEINLINE HRESULT ITrayDeskBand_DeskBandRegistrationChanged(ITrayDeskBand* This) {
   33880     return This->lpVtbl->DeskBandRegistrationChanged(This);
   33881 }
   33882 #endif
   33883 #endif
   33884 
   33885 #endif
   33886 
   33887 HRESULT STDMETHODCALLTYPE ITrayDeskBand_ShowDeskBand_Proxy(
   33888     ITrayDeskBand* This,
   33889     REFCLSID clsid);
   33890 void __RPC_STUB ITrayDeskBand_ShowDeskBand_Stub(
   33891     IRpcStubBuffer* This,
   33892     IRpcChannelBuffer* pRpcChannelBuffer,
   33893     PRPC_MESSAGE pRpcMessage,
   33894     DWORD* pdwStubPhase);
   33895 HRESULT STDMETHODCALLTYPE ITrayDeskBand_HideDeskBand_Proxy(
   33896     ITrayDeskBand* This,
   33897     REFCLSID clsid);
   33898 void __RPC_STUB ITrayDeskBand_HideDeskBand_Stub(
   33899     IRpcStubBuffer* This,
   33900     IRpcChannelBuffer* pRpcChannelBuffer,
   33901     PRPC_MESSAGE pRpcMessage,
   33902     DWORD* pdwStubPhase);
   33903 HRESULT STDMETHODCALLTYPE ITrayDeskBand_IsDeskBandShown_Proxy(
   33904     ITrayDeskBand* This,
   33905     REFCLSID clsid);
   33906 void __RPC_STUB ITrayDeskBand_IsDeskBandShown_Stub(
   33907     IRpcStubBuffer* This,
   33908     IRpcChannelBuffer* pRpcChannelBuffer,
   33909     PRPC_MESSAGE pRpcMessage,
   33910     DWORD* pdwStubPhase);
   33911 HRESULT STDMETHODCALLTYPE ITrayDeskBand_DeskBandRegistrationChanged_Proxy(
   33912     ITrayDeskBand* This);
   33913 void __RPC_STUB ITrayDeskBand_DeskBandRegistrationChanged_Stub(
   33914     IRpcStubBuffer* This,
   33915     IRpcChannelBuffer* pRpcChannelBuffer,
   33916     PRPC_MESSAGE pRpcMessage,
   33917     DWORD* pdwStubPhase);
   33918 
   33919 #endif  /* __ITrayDeskBand_INTERFACE_DEFINED__ */
   33920 
   33921 
   33922 /*****************************************************************************
   33923  * IBandHost interface
   33924  */
   33925 #ifndef __IBandHost_INTERFACE_DEFINED__
   33926 #define __IBandHost_INTERFACE_DEFINED__
   33927 
   33928 DEFINE_GUID(IID_IBandHost, 0xb9075c7c, 0xd48e, 0x403f, 0xab,0x99, 0xd6,0xc7,0x7a,0x10,0x84,0xac);
   33929 #if defined(__cplusplus) && !defined(CINTERFACE)
   33930 MIDL_INTERFACE("b9075c7c-d48e-403f-ab99-d6c77a1084ac")
   33931 IBandHost : public IUnknown
   33932 {
   33933     virtual HRESULT STDMETHODCALLTYPE CreateBand(
   33934         REFCLSID rclsidBand,
   33935         WINBOOL fAvailable,
   33936         WINBOOL fVisible,
   33937         REFIID riid,
   33938         void **ppv) = 0;
   33939 
   33940     virtual HRESULT STDMETHODCALLTYPE SetBandAvailability(
   33941         REFCLSID rclsidBand,
   33942         WINBOOL fAvailable) = 0;
   33943 
   33944     virtual HRESULT STDMETHODCALLTYPE DestroyBand(
   33945         REFCLSID rclsidBand) = 0;
   33946 
   33947 };
   33948 #ifdef __CRT_UUID_DECL
   33949 __CRT_UUID_DECL(IBandHost, 0xb9075c7c, 0xd48e, 0x403f, 0xab,0x99, 0xd6,0xc7,0x7a,0x10,0x84,0xac)
   33950 #endif
   33951 #else
   33952 typedef struct IBandHostVtbl {
   33953     BEGIN_INTERFACE
   33954 
   33955     /*** IUnknown methods ***/
   33956     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   33957         IBandHost* This,
   33958         REFIID riid,
   33959         void **ppvObject);
   33960 
   33961     ULONG (STDMETHODCALLTYPE *AddRef)(
   33962         IBandHost* This);
   33963 
   33964     ULONG (STDMETHODCALLTYPE *Release)(
   33965         IBandHost* This);
   33966 
   33967     /*** IBandHost methods ***/
   33968     HRESULT (STDMETHODCALLTYPE *CreateBand)(
   33969         IBandHost* This,
   33970         REFCLSID rclsidBand,
   33971         WINBOOL fAvailable,
   33972         WINBOOL fVisible,
   33973         REFIID riid,
   33974         void **ppv);
   33975 
   33976     HRESULT (STDMETHODCALLTYPE *SetBandAvailability)(
   33977         IBandHost* This,
   33978         REFCLSID rclsidBand,
   33979         WINBOOL fAvailable);
   33980 
   33981     HRESULT (STDMETHODCALLTYPE *DestroyBand)(
   33982         IBandHost* This,
   33983         REFCLSID rclsidBand);
   33984 
   33985     END_INTERFACE
   33986 } IBandHostVtbl;
   33987 interface IBandHost {
   33988     CONST_VTBL IBandHostVtbl* lpVtbl;
   33989 };
   33990 
   33991 #ifdef COBJMACROS
   33992 #ifndef WIDL_C_INLINE_WRAPPERS
   33993 /*** IUnknown methods ***/
   33994 #define IBandHost_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   33995 #define IBandHost_AddRef(This) (This)->lpVtbl->AddRef(This)
   33996 #define IBandHost_Release(This) (This)->lpVtbl->Release(This)
   33997 /*** IBandHost methods ***/
   33998 #define IBandHost_CreateBand(This,rclsidBand,fAvailable,fVisible,riid,ppv) (This)->lpVtbl->CreateBand(This,rclsidBand,fAvailable,fVisible,riid,ppv)
   33999 #define IBandHost_SetBandAvailability(This,rclsidBand,fAvailable) (This)->lpVtbl->SetBandAvailability(This,rclsidBand,fAvailable)
   34000 #define IBandHost_DestroyBand(This,rclsidBand) (This)->lpVtbl->DestroyBand(This,rclsidBand)
   34001 #else
   34002 /*** IUnknown methods ***/
   34003 static FORCEINLINE HRESULT IBandHost_QueryInterface(IBandHost* This,REFIID riid,void **ppvObject) {
   34004     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   34005 }
   34006 static FORCEINLINE ULONG IBandHost_AddRef(IBandHost* This) {
   34007     return This->lpVtbl->AddRef(This);
   34008 }
   34009 static FORCEINLINE ULONG IBandHost_Release(IBandHost* This) {
   34010     return This->lpVtbl->Release(This);
   34011 }
   34012 /*** IBandHost methods ***/
   34013 static FORCEINLINE HRESULT IBandHost_CreateBand(IBandHost* This,REFCLSID rclsidBand,WINBOOL fAvailable,WINBOOL fVisible,REFIID riid,void **ppv) {
   34014     return This->lpVtbl->CreateBand(This,rclsidBand,fAvailable,fVisible,riid,ppv);
   34015 }
   34016 static FORCEINLINE HRESULT IBandHost_SetBandAvailability(IBandHost* This,REFCLSID rclsidBand,WINBOOL fAvailable) {
   34017     return This->lpVtbl->SetBandAvailability(This,rclsidBand,fAvailable);
   34018 }
   34019 static FORCEINLINE HRESULT IBandHost_DestroyBand(IBandHost* This,REFCLSID rclsidBand) {
   34020     return This->lpVtbl->DestroyBand(This,rclsidBand);
   34021 }
   34022 #endif
   34023 #endif
   34024 
   34025 #endif
   34026 
   34027 HRESULT STDMETHODCALLTYPE IBandHost_CreateBand_Proxy(
   34028     IBandHost* This,
   34029     REFCLSID rclsidBand,
   34030     WINBOOL fAvailable,
   34031     WINBOOL fVisible,
   34032     REFIID riid,
   34033     void **ppv);
   34034 void __RPC_STUB IBandHost_CreateBand_Stub(
   34035     IRpcStubBuffer* This,
   34036     IRpcChannelBuffer* pRpcChannelBuffer,
   34037     PRPC_MESSAGE pRpcMessage,
   34038     DWORD* pdwStubPhase);
   34039 HRESULT STDMETHODCALLTYPE IBandHost_SetBandAvailability_Proxy(
   34040     IBandHost* This,
   34041     REFCLSID rclsidBand,
   34042     WINBOOL fAvailable);
   34043 void __RPC_STUB IBandHost_SetBandAvailability_Stub(
   34044     IRpcStubBuffer* This,
   34045     IRpcChannelBuffer* pRpcChannelBuffer,
   34046     PRPC_MESSAGE pRpcMessage,
   34047     DWORD* pdwStubPhase);
   34048 HRESULT STDMETHODCALLTYPE IBandHost_DestroyBand_Proxy(
   34049     IBandHost* This,
   34050     REFCLSID rclsidBand);
   34051 void __RPC_STUB IBandHost_DestroyBand_Stub(
   34052     IRpcStubBuffer* This,
   34053     IRpcChannelBuffer* pRpcChannelBuffer,
   34054     PRPC_MESSAGE pRpcMessage,
   34055     DWORD* pdwStubPhase);
   34056 
   34057 #endif  /* __IBandHost_INTERFACE_DEFINED__ */
   34058 
   34059 
   34060 #define SID_SBandHost IID_IBandHost
   34061 
   34062 typedef GUID EXPLORERPANE;
   34063 
   34064 #if 0
   34065 typedef EXPLORERPANE *REFEXPLORERPANE;
   34066 #endif
   34067 
   34068 #ifdef __cplusplus
   34069 #define REFEXPLORERPANE const EXPLORERPANE &
   34070 #else
   34071 #define REFEXPLORERPANE const EXPLORERPANE * __MIDL_CONST
   34072 #endif
   34073 
   34074 /*****************************************************************************
   34075  * IExplorerPaneVisibility interface
   34076  */
   34077 #ifndef __IExplorerPaneVisibility_INTERFACE_DEFINED__
   34078 #define __IExplorerPaneVisibility_INTERFACE_DEFINED__
   34079 
   34080 enum _EXPLORERPANESTATE {
   34081     EPS_DONTCARE = 0x0,
   34082     EPS_DEFAULT_ON = 0x1,
   34083     EPS_DEFAULT_OFF = 0x2,
   34084     EPS_STATEMASK = 0xffff,
   34085     EPS_INITIALSTATE = 0x10000,
   34086     EPS_FORCE = 0x20000
   34087 };
   34088 
   34089 
   34090 typedef DWORD EXPLORERPANESTATE;
   34091 
   34092 DEFINE_GUID(IID_IExplorerPaneVisibility, 0xe07010ec, 0xbc17, 0x44c0, 0x97,0xb0, 0x46,0xc7,0xc9,0x5b,0x9e,0xdc);
   34093 #if defined(__cplusplus) && !defined(CINTERFACE)
   34094 MIDL_INTERFACE("e07010ec-bc17-44c0-97b0-46c7c95b9edc")
   34095 IExplorerPaneVisibility : public IUnknown
   34096 {
   34097     virtual HRESULT STDMETHODCALLTYPE GetPaneState(
   34098         REFEXPLORERPANE ep,
   34099         EXPLORERPANESTATE *peps) = 0;
   34100 
   34101 };
   34102 #ifdef __CRT_UUID_DECL
   34103 __CRT_UUID_DECL(IExplorerPaneVisibility, 0xe07010ec, 0xbc17, 0x44c0, 0x97,0xb0, 0x46,0xc7,0xc9,0x5b,0x9e,0xdc)
   34104 #endif
   34105 #else
   34106 typedef struct IExplorerPaneVisibilityVtbl {
   34107     BEGIN_INTERFACE
   34108 
   34109     /*** IUnknown methods ***/
   34110     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   34111         IExplorerPaneVisibility* This,
   34112         REFIID riid,
   34113         void **ppvObject);
   34114 
   34115     ULONG (STDMETHODCALLTYPE *AddRef)(
   34116         IExplorerPaneVisibility* This);
   34117 
   34118     ULONG (STDMETHODCALLTYPE *Release)(
   34119         IExplorerPaneVisibility* This);
   34120 
   34121     /*** IExplorerPaneVisibility methods ***/
   34122     HRESULT (STDMETHODCALLTYPE *GetPaneState)(
   34123         IExplorerPaneVisibility* This,
   34124         REFEXPLORERPANE ep,
   34125         EXPLORERPANESTATE *peps);
   34126 
   34127     END_INTERFACE
   34128 } IExplorerPaneVisibilityVtbl;
   34129 interface IExplorerPaneVisibility {
   34130     CONST_VTBL IExplorerPaneVisibilityVtbl* lpVtbl;
   34131 };
   34132 
   34133 #ifdef COBJMACROS
   34134 #ifndef WIDL_C_INLINE_WRAPPERS
   34135 /*** IUnknown methods ***/
   34136 #define IExplorerPaneVisibility_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   34137 #define IExplorerPaneVisibility_AddRef(This) (This)->lpVtbl->AddRef(This)
   34138 #define IExplorerPaneVisibility_Release(This) (This)->lpVtbl->Release(This)
   34139 /*** IExplorerPaneVisibility methods ***/
   34140 #define IExplorerPaneVisibility_GetPaneState(This,ep,peps) (This)->lpVtbl->GetPaneState(This,ep,peps)
   34141 #else
   34142 /*** IUnknown methods ***/
   34143 static FORCEINLINE HRESULT IExplorerPaneVisibility_QueryInterface(IExplorerPaneVisibility* This,REFIID riid,void **ppvObject) {
   34144     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   34145 }
   34146 static FORCEINLINE ULONG IExplorerPaneVisibility_AddRef(IExplorerPaneVisibility* This) {
   34147     return This->lpVtbl->AddRef(This);
   34148 }
   34149 static FORCEINLINE ULONG IExplorerPaneVisibility_Release(IExplorerPaneVisibility* This) {
   34150     return This->lpVtbl->Release(This);
   34151 }
   34152 /*** IExplorerPaneVisibility methods ***/
   34153 static FORCEINLINE HRESULT IExplorerPaneVisibility_GetPaneState(IExplorerPaneVisibility* This,REFEXPLORERPANE ep,EXPLORERPANESTATE *peps) {
   34154     return This->lpVtbl->GetPaneState(This,ep,peps);
   34155 }
   34156 #endif
   34157 #endif
   34158 
   34159 #endif
   34160 
   34161 HRESULT STDMETHODCALLTYPE IExplorerPaneVisibility_GetPaneState_Proxy(
   34162     IExplorerPaneVisibility* This,
   34163     REFEXPLORERPANE ep,
   34164     EXPLORERPANESTATE *peps);
   34165 void __RPC_STUB IExplorerPaneVisibility_GetPaneState_Stub(
   34166     IRpcStubBuffer* This,
   34167     IRpcChannelBuffer* pRpcChannelBuffer,
   34168     PRPC_MESSAGE pRpcMessage,
   34169     DWORD* pdwStubPhase);
   34170 
   34171 #endif  /* __IExplorerPaneVisibility_INTERFACE_DEFINED__ */
   34172 
   34173 
   34174 #define SID_ExplorerPaneVisibility IID_IExplorerPaneVisibility
   34175 
   34176 /*****************************************************************************
   34177  * IContextMenuCB interface
   34178  */
   34179 #ifndef __IContextMenuCB_INTERFACE_DEFINED__
   34180 #define __IContextMenuCB_INTERFACE_DEFINED__
   34181 
   34182 DEFINE_GUID(IID_IContextMenuCB, 0x3409e930, 0x5a39, 0x11d1, 0x83,0xfa, 0x00,0xa0,0xc9,0x0d,0xc8,0x49);
   34183 #if defined(__cplusplus) && !defined(CINTERFACE)
   34184 MIDL_INTERFACE("3409e930-5a39-11d1-83fa-00a0c90dc849")
   34185 IContextMenuCB : public IUnknown
   34186 {
   34187     virtual HRESULT STDMETHODCALLTYPE CallBack(
   34188         IShellFolder *psf,
   34189         HWND hwndOwner,
   34190         IDataObject *pdtobj,
   34191         UINT uMsg,
   34192         WPARAM wParam,
   34193         LPARAM lParam) = 0;
   34194 
   34195 };
   34196 #ifdef __CRT_UUID_DECL
   34197 __CRT_UUID_DECL(IContextMenuCB, 0x3409e930, 0x5a39, 0x11d1, 0x83,0xfa, 0x00,0xa0,0xc9,0x0d,0xc8,0x49)
   34198 #endif
   34199 #else
   34200 typedef struct IContextMenuCBVtbl {
   34201     BEGIN_INTERFACE
   34202 
   34203     /*** IUnknown methods ***/
   34204     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   34205         IContextMenuCB* This,
   34206         REFIID riid,
   34207         void **ppvObject);
   34208 
   34209     ULONG (STDMETHODCALLTYPE *AddRef)(
   34210         IContextMenuCB* This);
   34211 
   34212     ULONG (STDMETHODCALLTYPE *Release)(
   34213         IContextMenuCB* This);
   34214 
   34215     /*** IContextMenuCB methods ***/
   34216     HRESULT (STDMETHODCALLTYPE *CallBack)(
   34217         IContextMenuCB* This,
   34218         IShellFolder *psf,
   34219         HWND hwndOwner,
   34220         IDataObject *pdtobj,
   34221         UINT uMsg,
   34222         WPARAM wParam,
   34223         LPARAM lParam);
   34224 
   34225     END_INTERFACE
   34226 } IContextMenuCBVtbl;
   34227 interface IContextMenuCB {
   34228     CONST_VTBL IContextMenuCBVtbl* lpVtbl;
   34229 };
   34230 
   34231 #ifdef COBJMACROS
   34232 #ifndef WIDL_C_INLINE_WRAPPERS
   34233 /*** IUnknown methods ***/
   34234 #define IContextMenuCB_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   34235 #define IContextMenuCB_AddRef(This) (This)->lpVtbl->AddRef(This)
   34236 #define IContextMenuCB_Release(This) (This)->lpVtbl->Release(This)
   34237 /*** IContextMenuCB methods ***/
   34238 #define IContextMenuCB_CallBack(This,psf,hwndOwner,pdtobj,uMsg,wParam,lParam) (This)->lpVtbl->CallBack(This,psf,hwndOwner,pdtobj,uMsg,wParam,lParam)
   34239 #else
   34240 /*** IUnknown methods ***/
   34241 static FORCEINLINE HRESULT IContextMenuCB_QueryInterface(IContextMenuCB* This,REFIID riid,void **ppvObject) {
   34242     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   34243 }
   34244 static FORCEINLINE ULONG IContextMenuCB_AddRef(IContextMenuCB* This) {
   34245     return This->lpVtbl->AddRef(This);
   34246 }
   34247 static FORCEINLINE ULONG IContextMenuCB_Release(IContextMenuCB* This) {
   34248     return This->lpVtbl->Release(This);
   34249 }
   34250 /*** IContextMenuCB methods ***/
   34251 static FORCEINLINE HRESULT IContextMenuCB_CallBack(IContextMenuCB* This,IShellFolder *psf,HWND hwndOwner,IDataObject *pdtobj,UINT uMsg,WPARAM wParam,LPARAM lParam) {
   34252     return This->lpVtbl->CallBack(This,psf,hwndOwner,pdtobj,uMsg,wParam,lParam);
   34253 }
   34254 #endif
   34255 #endif
   34256 
   34257 #endif
   34258 
   34259 HRESULT STDMETHODCALLTYPE IContextMenuCB_CallBack_Proxy(
   34260     IContextMenuCB* This,
   34261     IShellFolder *psf,
   34262     HWND hwndOwner,
   34263     IDataObject *pdtobj,
   34264     UINT uMsg,
   34265     WPARAM wParam,
   34266     LPARAM lParam);
   34267 void __RPC_STUB IContextMenuCB_CallBack_Stub(
   34268     IRpcStubBuffer* This,
   34269     IRpcChannelBuffer* pRpcChannelBuffer,
   34270     PRPC_MESSAGE pRpcMessage,
   34271     DWORD* pdwStubPhase);
   34272 
   34273 #endif  /* __IContextMenuCB_INTERFACE_DEFINED__ */
   34274 
   34275 #endif
   34276 
   34277 /*****************************************************************************
   34278  * IDefaultExtractIconInit interface
   34279  */
   34280 #ifndef __IDefaultExtractIconInit_INTERFACE_DEFINED__
   34281 #define __IDefaultExtractIconInit_INTERFACE_DEFINED__
   34282 
   34283 DEFINE_GUID(IID_IDefaultExtractIconInit, 0x41ded17d, 0xd6b3, 0x4261, 0x99,0x7d, 0x88,0xc6,0x0e,0x4b,0x1d,0x58);
   34284 #if defined(__cplusplus) && !defined(CINTERFACE)
   34285 MIDL_INTERFACE("41ded17d-d6b3-4261-997d-88c60e4b1d58")
   34286 IDefaultExtractIconInit : public IUnknown
   34287 {
   34288     virtual HRESULT STDMETHODCALLTYPE SetFlags(
   34289         UINT uFlags) = 0;
   34290 
   34291     virtual HRESULT STDMETHODCALLTYPE SetKey(
   34292         HKEY hkey) = 0;
   34293 
   34294     virtual HRESULT STDMETHODCALLTYPE SetNormalIcon(
   34295         LPCWSTR pszFile,
   34296         int iIcon) = 0;
   34297 
   34298     virtual HRESULT STDMETHODCALLTYPE SetOpenIcon(
   34299         LPCWSTR pszFile,
   34300         int iIcon) = 0;
   34301 
   34302     virtual HRESULT STDMETHODCALLTYPE SetShortcutIcon(
   34303         LPCWSTR pszFile,
   34304         int iIcon) = 0;
   34305 
   34306     virtual HRESULT STDMETHODCALLTYPE SetDefaultIcon(
   34307         LPCWSTR pszFile,
   34308         int iIcon) = 0;
   34309 
   34310 };
   34311 #ifdef __CRT_UUID_DECL
   34312 __CRT_UUID_DECL(IDefaultExtractIconInit, 0x41ded17d, 0xd6b3, 0x4261, 0x99,0x7d, 0x88,0xc6,0x0e,0x4b,0x1d,0x58)
   34313 #endif
   34314 #else
   34315 typedef struct IDefaultExtractIconInitVtbl {
   34316     BEGIN_INTERFACE
   34317 
   34318     /*** IUnknown methods ***/
   34319     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   34320         IDefaultExtractIconInit* This,
   34321         REFIID riid,
   34322         void **ppvObject);
   34323 
   34324     ULONG (STDMETHODCALLTYPE *AddRef)(
   34325         IDefaultExtractIconInit* This);
   34326 
   34327     ULONG (STDMETHODCALLTYPE *Release)(
   34328         IDefaultExtractIconInit* This);
   34329 
   34330     /*** IDefaultExtractIconInit methods ***/
   34331     HRESULT (STDMETHODCALLTYPE *SetFlags)(
   34332         IDefaultExtractIconInit* This,
   34333         UINT uFlags);
   34334 
   34335     HRESULT (STDMETHODCALLTYPE *SetKey)(
   34336         IDefaultExtractIconInit* This,
   34337         HKEY hkey);
   34338 
   34339     HRESULT (STDMETHODCALLTYPE *SetNormalIcon)(
   34340         IDefaultExtractIconInit* This,
   34341         LPCWSTR pszFile,
   34342         int iIcon);
   34343 
   34344     HRESULT (STDMETHODCALLTYPE *SetOpenIcon)(
   34345         IDefaultExtractIconInit* This,
   34346         LPCWSTR pszFile,
   34347         int iIcon);
   34348 
   34349     HRESULT (STDMETHODCALLTYPE *SetShortcutIcon)(
   34350         IDefaultExtractIconInit* This,
   34351         LPCWSTR pszFile,
   34352         int iIcon);
   34353 
   34354     HRESULT (STDMETHODCALLTYPE *SetDefaultIcon)(
   34355         IDefaultExtractIconInit* This,
   34356         LPCWSTR pszFile,
   34357         int iIcon);
   34358 
   34359     END_INTERFACE
   34360 } IDefaultExtractIconInitVtbl;
   34361 interface IDefaultExtractIconInit {
   34362     CONST_VTBL IDefaultExtractIconInitVtbl* lpVtbl;
   34363 };
   34364 
   34365 #ifdef COBJMACROS
   34366 #ifndef WIDL_C_INLINE_WRAPPERS
   34367 /*** IUnknown methods ***/
   34368 #define IDefaultExtractIconInit_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   34369 #define IDefaultExtractIconInit_AddRef(This) (This)->lpVtbl->AddRef(This)
   34370 #define IDefaultExtractIconInit_Release(This) (This)->lpVtbl->Release(This)
   34371 /*** IDefaultExtractIconInit methods ***/
   34372 #define IDefaultExtractIconInit_SetFlags(This,uFlags) (This)->lpVtbl->SetFlags(This,uFlags)
   34373 #define IDefaultExtractIconInit_SetKey(This,hkey) (This)->lpVtbl->SetKey(This,hkey)
   34374 #define IDefaultExtractIconInit_SetNormalIcon(This,pszFile,iIcon) (This)->lpVtbl->SetNormalIcon(This,pszFile,iIcon)
   34375 #define IDefaultExtractIconInit_SetOpenIcon(This,pszFile,iIcon) (This)->lpVtbl->SetOpenIcon(This,pszFile,iIcon)
   34376 #define IDefaultExtractIconInit_SetShortcutIcon(This,pszFile,iIcon) (This)->lpVtbl->SetShortcutIcon(This,pszFile,iIcon)
   34377 #define IDefaultExtractIconInit_SetDefaultIcon(This,pszFile,iIcon) (This)->lpVtbl->SetDefaultIcon(This,pszFile,iIcon)
   34378 #else
   34379 /*** IUnknown methods ***/
   34380 static FORCEINLINE HRESULT IDefaultExtractIconInit_QueryInterface(IDefaultExtractIconInit* This,REFIID riid,void **ppvObject) {
   34381     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   34382 }
   34383 static FORCEINLINE ULONG IDefaultExtractIconInit_AddRef(IDefaultExtractIconInit* This) {
   34384     return This->lpVtbl->AddRef(This);
   34385 }
   34386 static FORCEINLINE ULONG IDefaultExtractIconInit_Release(IDefaultExtractIconInit* This) {
   34387     return This->lpVtbl->Release(This);
   34388 }
   34389 /*** IDefaultExtractIconInit methods ***/
   34390 static FORCEINLINE HRESULT IDefaultExtractIconInit_SetFlags(IDefaultExtractIconInit* This,UINT uFlags) {
   34391     return This->lpVtbl->SetFlags(This,uFlags);
   34392 }
   34393 static FORCEINLINE HRESULT IDefaultExtractIconInit_SetKey(IDefaultExtractIconInit* This,HKEY hkey) {
   34394     return This->lpVtbl->SetKey(This,hkey);
   34395 }
   34396 static FORCEINLINE HRESULT IDefaultExtractIconInit_SetNormalIcon(IDefaultExtractIconInit* This,LPCWSTR pszFile,int iIcon) {
   34397     return This->lpVtbl->SetNormalIcon(This,pszFile,iIcon);
   34398 }
   34399 static FORCEINLINE HRESULT IDefaultExtractIconInit_SetOpenIcon(IDefaultExtractIconInit* This,LPCWSTR pszFile,int iIcon) {
   34400     return This->lpVtbl->SetOpenIcon(This,pszFile,iIcon);
   34401 }
   34402 static FORCEINLINE HRESULT IDefaultExtractIconInit_SetShortcutIcon(IDefaultExtractIconInit* This,LPCWSTR pszFile,int iIcon) {
   34403     return This->lpVtbl->SetShortcutIcon(This,pszFile,iIcon);
   34404 }
   34405 static FORCEINLINE HRESULT IDefaultExtractIconInit_SetDefaultIcon(IDefaultExtractIconInit* This,LPCWSTR pszFile,int iIcon) {
   34406     return This->lpVtbl->SetDefaultIcon(This,pszFile,iIcon);
   34407 }
   34408 #endif
   34409 #endif
   34410 
   34411 #endif
   34412 
   34413 HRESULT STDMETHODCALLTYPE IDefaultExtractIconInit_SetFlags_Proxy(
   34414     IDefaultExtractIconInit* This,
   34415     UINT uFlags);
   34416 void __RPC_STUB IDefaultExtractIconInit_SetFlags_Stub(
   34417     IRpcStubBuffer* This,
   34418     IRpcChannelBuffer* pRpcChannelBuffer,
   34419     PRPC_MESSAGE pRpcMessage,
   34420     DWORD* pdwStubPhase);
   34421 HRESULT STDMETHODCALLTYPE IDefaultExtractIconInit_SetKey_Proxy(
   34422     IDefaultExtractIconInit* This,
   34423     HKEY hkey);
   34424 void __RPC_STUB IDefaultExtractIconInit_SetKey_Stub(
   34425     IRpcStubBuffer* This,
   34426     IRpcChannelBuffer* pRpcChannelBuffer,
   34427     PRPC_MESSAGE pRpcMessage,
   34428     DWORD* pdwStubPhase);
   34429 HRESULT STDMETHODCALLTYPE IDefaultExtractIconInit_SetNormalIcon_Proxy(
   34430     IDefaultExtractIconInit* This,
   34431     LPCWSTR pszFile,
   34432     int iIcon);
   34433 void __RPC_STUB IDefaultExtractIconInit_SetNormalIcon_Stub(
   34434     IRpcStubBuffer* This,
   34435     IRpcChannelBuffer* pRpcChannelBuffer,
   34436     PRPC_MESSAGE pRpcMessage,
   34437     DWORD* pdwStubPhase);
   34438 HRESULT STDMETHODCALLTYPE IDefaultExtractIconInit_SetOpenIcon_Proxy(
   34439     IDefaultExtractIconInit* This,
   34440     LPCWSTR pszFile,
   34441     int iIcon);
   34442 void __RPC_STUB IDefaultExtractIconInit_SetOpenIcon_Stub(
   34443     IRpcStubBuffer* This,
   34444     IRpcChannelBuffer* pRpcChannelBuffer,
   34445     PRPC_MESSAGE pRpcMessage,
   34446     DWORD* pdwStubPhase);
   34447 HRESULT STDMETHODCALLTYPE IDefaultExtractIconInit_SetShortcutIcon_Proxy(
   34448     IDefaultExtractIconInit* This,
   34449     LPCWSTR pszFile,
   34450     int iIcon);
   34451 void __RPC_STUB IDefaultExtractIconInit_SetShortcutIcon_Stub(
   34452     IRpcStubBuffer* This,
   34453     IRpcChannelBuffer* pRpcChannelBuffer,
   34454     PRPC_MESSAGE pRpcMessage,
   34455     DWORD* pdwStubPhase);
   34456 HRESULT STDMETHODCALLTYPE IDefaultExtractIconInit_SetDefaultIcon_Proxy(
   34457     IDefaultExtractIconInit* This,
   34458     LPCWSTR pszFile,
   34459     int iIcon);
   34460 void __RPC_STUB IDefaultExtractIconInit_SetDefaultIcon_Stub(
   34461     IRpcStubBuffer* This,
   34462     IRpcChannelBuffer* pRpcChannelBuffer,
   34463     PRPC_MESSAGE pRpcMessage,
   34464     DWORD* pdwStubPhase);
   34465 
   34466 #endif  /* __IDefaultExtractIconInit_INTERFACE_DEFINED__ */
   34467 
   34468 
   34469 STDAPI SHCreateDefaultExtractIcon(REFIID riid, void **ppv);
   34470 
   34471 #ifndef __IEnumExplorerCommand_FWD_DEFINED__
   34472 #define __IEnumExplorerCommand_FWD_DEFINED__
   34473 typedef interface IEnumExplorerCommand IEnumExplorerCommand;
   34474 #endif
   34475 
   34476 
   34477 /*****************************************************************************
   34478  * IExplorerCommand interface
   34479  */
   34480 #ifndef __IExplorerCommand_INTERFACE_DEFINED__
   34481 #define __IExplorerCommand_INTERFACE_DEFINED__
   34482 
   34483 enum _EXPCMDSTATE {
   34484     ECS_ENABLED = 0x0,
   34485     ECS_DISABLED = 0x1,
   34486     ECS_HIDDEN = 0x2,
   34487     ECS_CHECKBOX = 0x4,
   34488     ECS_CHECKED = 0x8,
   34489     ECS_RADIOCHECK = 0x10
   34490 };
   34491 
   34492 
   34493 typedef DWORD EXPCMDSTATE;
   34494 
   34495 enum _EXPCMDFLAGS {
   34496     ECF_DEFAULT = 0x0,
   34497     ECF_HASSUBCOMMANDS = 0x1,
   34498     ECF_HASSPLITBUTTON = 0x2,
   34499     ECF_HIDELABEL = 0x4,
   34500     ECF_ISSEPARATOR = 0x8,
   34501     ECF_HASLUASHIELD = 0x10,
   34502     ECF_SEPARATORBEFORE = 0x20,
   34503     ECF_SEPARATORAFTER = 0x40,
   34504     ECF_ISDROPDOWN = 0x80,
   34505     ECF_TOGGLEABLE = 0x100,
   34506     ECF_AUTOMENUICONS = 0x200
   34507 };
   34508 
   34509 
   34510 typedef DWORD EXPCMDFLAGS;
   34511 
   34512 DEFINE_GUID(IID_IExplorerCommand, 0xa08ce4d0, 0xfa25, 0x44ab, 0xb5,0x7c, 0xc7,0xb1,0xc3,0x23,0xe0,0xb9);
   34513 #if defined(__cplusplus) && !defined(CINTERFACE)
   34514 MIDL_INTERFACE("a08ce4d0-fa25-44ab-b57c-c7b1c323e0b9")
   34515 IExplorerCommand : public IUnknown
   34516 {
   34517     virtual HRESULT STDMETHODCALLTYPE GetTitle(
   34518         IShellItemArray *psiItemArray,
   34519         LPWSTR *ppszName) = 0;
   34520 
   34521     virtual HRESULT STDMETHODCALLTYPE GetIcon(
   34522         IShellItemArray *psiItemArray,
   34523         LPWSTR *ppszIcon) = 0;
   34524 
   34525     virtual HRESULT STDMETHODCALLTYPE GetToolTip(
   34526         IShellItemArray *psiItemArray,
   34527         LPWSTR *ppszInfotip) = 0;
   34528 
   34529     virtual HRESULT STDMETHODCALLTYPE GetCanonicalName(
   34530         GUID *pguidCommandName) = 0;
   34531 
   34532     virtual HRESULT STDMETHODCALLTYPE GetState(
   34533         IShellItemArray *psiItemArray,
   34534         WINBOOL fOkToBeSlow,
   34535         EXPCMDSTATE *pCmdState) = 0;
   34536 
   34537     virtual HRESULT STDMETHODCALLTYPE Invoke(
   34538         IShellItemArray *psiItemArray,
   34539         IBindCtx *pbc) = 0;
   34540 
   34541     virtual HRESULT STDMETHODCALLTYPE GetFlags(
   34542         EXPCMDFLAGS *pFlags) = 0;
   34543 
   34544     virtual HRESULT STDMETHODCALLTYPE EnumSubCommands(
   34545         IEnumExplorerCommand **ppEnum) = 0;
   34546 
   34547 };
   34548 #ifdef __CRT_UUID_DECL
   34549 __CRT_UUID_DECL(IExplorerCommand, 0xa08ce4d0, 0xfa25, 0x44ab, 0xb5,0x7c, 0xc7,0xb1,0xc3,0x23,0xe0,0xb9)
   34550 #endif
   34551 #else
   34552 typedef struct IExplorerCommandVtbl {
   34553     BEGIN_INTERFACE
   34554 
   34555     /*** IUnknown methods ***/
   34556     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   34557         IExplorerCommand* This,
   34558         REFIID riid,
   34559         void **ppvObject);
   34560 
   34561     ULONG (STDMETHODCALLTYPE *AddRef)(
   34562         IExplorerCommand* This);
   34563 
   34564     ULONG (STDMETHODCALLTYPE *Release)(
   34565         IExplorerCommand* This);
   34566 
   34567     /*** IExplorerCommand methods ***/
   34568     HRESULT (STDMETHODCALLTYPE *GetTitle)(
   34569         IExplorerCommand* This,
   34570         IShellItemArray *psiItemArray,
   34571         LPWSTR *ppszName);
   34572 
   34573     HRESULT (STDMETHODCALLTYPE *GetIcon)(
   34574         IExplorerCommand* This,
   34575         IShellItemArray *psiItemArray,
   34576         LPWSTR *ppszIcon);
   34577 
   34578     HRESULT (STDMETHODCALLTYPE *GetToolTip)(
   34579         IExplorerCommand* This,
   34580         IShellItemArray *psiItemArray,
   34581         LPWSTR *ppszInfotip);
   34582 
   34583     HRESULT (STDMETHODCALLTYPE *GetCanonicalName)(
   34584         IExplorerCommand* This,
   34585         GUID *pguidCommandName);
   34586 
   34587     HRESULT (STDMETHODCALLTYPE *GetState)(
   34588         IExplorerCommand* This,
   34589         IShellItemArray *psiItemArray,
   34590         WINBOOL fOkToBeSlow,
   34591         EXPCMDSTATE *pCmdState);
   34592 
   34593     HRESULT (STDMETHODCALLTYPE *Invoke)(
   34594         IExplorerCommand* This,
   34595         IShellItemArray *psiItemArray,
   34596         IBindCtx *pbc);
   34597 
   34598     HRESULT (STDMETHODCALLTYPE *GetFlags)(
   34599         IExplorerCommand* This,
   34600         EXPCMDFLAGS *pFlags);
   34601 
   34602     HRESULT (STDMETHODCALLTYPE *EnumSubCommands)(
   34603         IExplorerCommand* This,
   34604         IEnumExplorerCommand **ppEnum);
   34605 
   34606     END_INTERFACE
   34607 } IExplorerCommandVtbl;
   34608 interface IExplorerCommand {
   34609     CONST_VTBL IExplorerCommandVtbl* lpVtbl;
   34610 };
   34611 
   34612 #ifdef COBJMACROS
   34613 #ifndef WIDL_C_INLINE_WRAPPERS
   34614 /*** IUnknown methods ***/
   34615 #define IExplorerCommand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   34616 #define IExplorerCommand_AddRef(This) (This)->lpVtbl->AddRef(This)
   34617 #define IExplorerCommand_Release(This) (This)->lpVtbl->Release(This)
   34618 /*** IExplorerCommand methods ***/
   34619 #define IExplorerCommand_GetTitle(This,psiItemArray,ppszName) (This)->lpVtbl->GetTitle(This,psiItemArray,ppszName)
   34620 #define IExplorerCommand_GetIcon(This,psiItemArray,ppszIcon) (This)->lpVtbl->GetIcon(This,psiItemArray,ppszIcon)
   34621 #define IExplorerCommand_GetToolTip(This,psiItemArray,ppszInfotip) (This)->lpVtbl->GetToolTip(This,psiItemArray,ppszInfotip)
   34622 #define IExplorerCommand_GetCanonicalName(This,pguidCommandName) (This)->lpVtbl->GetCanonicalName(This,pguidCommandName)
   34623 #define IExplorerCommand_GetState(This,psiItemArray,fOkToBeSlow,pCmdState) (This)->lpVtbl->GetState(This,psiItemArray,fOkToBeSlow,pCmdState)
   34624 #define IExplorerCommand_Invoke(This,psiItemArray,pbc) (This)->lpVtbl->Invoke(This,psiItemArray,pbc)
   34625 #define IExplorerCommand_GetFlags(This,pFlags) (This)->lpVtbl->GetFlags(This,pFlags)
   34626 #define IExplorerCommand_EnumSubCommands(This,ppEnum) (This)->lpVtbl->EnumSubCommands(This,ppEnum)
   34627 #else
   34628 /*** IUnknown methods ***/
   34629 static FORCEINLINE HRESULT IExplorerCommand_QueryInterface(IExplorerCommand* This,REFIID riid,void **ppvObject) {
   34630     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   34631 }
   34632 static FORCEINLINE ULONG IExplorerCommand_AddRef(IExplorerCommand* This) {
   34633     return This->lpVtbl->AddRef(This);
   34634 }
   34635 static FORCEINLINE ULONG IExplorerCommand_Release(IExplorerCommand* This) {
   34636     return This->lpVtbl->Release(This);
   34637 }
   34638 /*** IExplorerCommand methods ***/
   34639 static FORCEINLINE HRESULT IExplorerCommand_GetTitle(IExplorerCommand* This,IShellItemArray *psiItemArray,LPWSTR *ppszName) {
   34640     return This->lpVtbl->GetTitle(This,psiItemArray,ppszName);
   34641 }
   34642 static FORCEINLINE HRESULT IExplorerCommand_GetIcon(IExplorerCommand* This,IShellItemArray *psiItemArray,LPWSTR *ppszIcon) {
   34643     return This->lpVtbl->GetIcon(This,psiItemArray,ppszIcon);
   34644 }
   34645 static FORCEINLINE HRESULT IExplorerCommand_GetToolTip(IExplorerCommand* This,IShellItemArray *psiItemArray,LPWSTR *ppszInfotip) {
   34646     return This->lpVtbl->GetToolTip(This,psiItemArray,ppszInfotip);
   34647 }
   34648 static FORCEINLINE HRESULT IExplorerCommand_GetCanonicalName(IExplorerCommand* This,GUID *pguidCommandName) {
   34649     return This->lpVtbl->GetCanonicalName(This,pguidCommandName);
   34650 }
   34651 static FORCEINLINE HRESULT IExplorerCommand_GetState(IExplorerCommand* This,IShellItemArray *psiItemArray,WINBOOL fOkToBeSlow,EXPCMDSTATE *pCmdState) {
   34652     return This->lpVtbl->GetState(This,psiItemArray,fOkToBeSlow,pCmdState);
   34653 }
   34654 static FORCEINLINE HRESULT IExplorerCommand_Invoke(IExplorerCommand* This,IShellItemArray *psiItemArray,IBindCtx *pbc) {
   34655     return This->lpVtbl->Invoke(This,psiItemArray,pbc);
   34656 }
   34657 static FORCEINLINE HRESULT IExplorerCommand_GetFlags(IExplorerCommand* This,EXPCMDFLAGS *pFlags) {
   34658     return This->lpVtbl->GetFlags(This,pFlags);
   34659 }
   34660 static FORCEINLINE HRESULT IExplorerCommand_EnumSubCommands(IExplorerCommand* This,IEnumExplorerCommand **ppEnum) {
   34661     return This->lpVtbl->EnumSubCommands(This,ppEnum);
   34662 }
   34663 #endif
   34664 #endif
   34665 
   34666 #endif
   34667 
   34668 HRESULT STDMETHODCALLTYPE IExplorerCommand_GetTitle_Proxy(
   34669     IExplorerCommand* This,
   34670     IShellItemArray *psiItemArray,
   34671     LPWSTR *ppszName);
   34672 void __RPC_STUB IExplorerCommand_GetTitle_Stub(
   34673     IRpcStubBuffer* This,
   34674     IRpcChannelBuffer* pRpcChannelBuffer,
   34675     PRPC_MESSAGE pRpcMessage,
   34676     DWORD* pdwStubPhase);
   34677 HRESULT STDMETHODCALLTYPE IExplorerCommand_GetIcon_Proxy(
   34678     IExplorerCommand* This,
   34679     IShellItemArray *psiItemArray,
   34680     LPWSTR *ppszIcon);
   34681 void __RPC_STUB IExplorerCommand_GetIcon_Stub(
   34682     IRpcStubBuffer* This,
   34683     IRpcChannelBuffer* pRpcChannelBuffer,
   34684     PRPC_MESSAGE pRpcMessage,
   34685     DWORD* pdwStubPhase);
   34686 HRESULT STDMETHODCALLTYPE IExplorerCommand_GetToolTip_Proxy(
   34687     IExplorerCommand* This,
   34688     IShellItemArray *psiItemArray,
   34689     LPWSTR *ppszInfotip);
   34690 void __RPC_STUB IExplorerCommand_GetToolTip_Stub(
   34691     IRpcStubBuffer* This,
   34692     IRpcChannelBuffer* pRpcChannelBuffer,
   34693     PRPC_MESSAGE pRpcMessage,
   34694     DWORD* pdwStubPhase);
   34695 HRESULT STDMETHODCALLTYPE IExplorerCommand_GetCanonicalName_Proxy(
   34696     IExplorerCommand* This,
   34697     GUID *pguidCommandName);
   34698 void __RPC_STUB IExplorerCommand_GetCanonicalName_Stub(
   34699     IRpcStubBuffer* This,
   34700     IRpcChannelBuffer* pRpcChannelBuffer,
   34701     PRPC_MESSAGE pRpcMessage,
   34702     DWORD* pdwStubPhase);
   34703 HRESULT STDMETHODCALLTYPE IExplorerCommand_GetState_Proxy(
   34704     IExplorerCommand* This,
   34705     IShellItemArray *psiItemArray,
   34706     WINBOOL fOkToBeSlow,
   34707     EXPCMDSTATE *pCmdState);
   34708 void __RPC_STUB IExplorerCommand_GetState_Stub(
   34709     IRpcStubBuffer* This,
   34710     IRpcChannelBuffer* pRpcChannelBuffer,
   34711     PRPC_MESSAGE pRpcMessage,
   34712     DWORD* pdwStubPhase);
   34713 HRESULT STDMETHODCALLTYPE IExplorerCommand_Invoke_Proxy(
   34714     IExplorerCommand* This,
   34715     IShellItemArray *psiItemArray,
   34716     IBindCtx *pbc);
   34717 void __RPC_STUB IExplorerCommand_Invoke_Stub(
   34718     IRpcStubBuffer* This,
   34719     IRpcChannelBuffer* pRpcChannelBuffer,
   34720     PRPC_MESSAGE pRpcMessage,
   34721     DWORD* pdwStubPhase);
   34722 HRESULT STDMETHODCALLTYPE IExplorerCommand_GetFlags_Proxy(
   34723     IExplorerCommand* This,
   34724     EXPCMDFLAGS *pFlags);
   34725 void __RPC_STUB IExplorerCommand_GetFlags_Stub(
   34726     IRpcStubBuffer* This,
   34727     IRpcChannelBuffer* pRpcChannelBuffer,
   34728     PRPC_MESSAGE pRpcMessage,
   34729     DWORD* pdwStubPhase);
   34730 HRESULT STDMETHODCALLTYPE IExplorerCommand_EnumSubCommands_Proxy(
   34731     IExplorerCommand* This,
   34732     IEnumExplorerCommand **ppEnum);
   34733 void __RPC_STUB IExplorerCommand_EnumSubCommands_Stub(
   34734     IRpcStubBuffer* This,
   34735     IRpcChannelBuffer* pRpcChannelBuffer,
   34736     PRPC_MESSAGE pRpcMessage,
   34737     DWORD* pdwStubPhase);
   34738 
   34739 #endif  /* __IExplorerCommand_INTERFACE_DEFINED__ */
   34740 
   34741 
   34742 /*****************************************************************************
   34743  * IExplorerCommandState interface
   34744  */
   34745 #ifndef __IExplorerCommandState_INTERFACE_DEFINED__
   34746 #define __IExplorerCommandState_INTERFACE_DEFINED__
   34747 
   34748 DEFINE_GUID(IID_IExplorerCommandState, 0xbddacb60, 0x7657, 0x47ae, 0x84,0x45, 0xd2,0x3e,0x1a,0xcf,0x82,0xae);
   34749 #if defined(__cplusplus) && !defined(CINTERFACE)
   34750 MIDL_INTERFACE("bddacb60-7657-47ae-8445-d23e1acf82ae")
   34751 IExplorerCommandState : public IUnknown
   34752 {
   34753     virtual HRESULT STDMETHODCALLTYPE GetState(
   34754         IShellItemArray *psiItemArray,
   34755         WINBOOL fOkToBeSlow,
   34756         EXPCMDSTATE *pCmdState) = 0;
   34757 
   34758 };
   34759 #ifdef __CRT_UUID_DECL
   34760 __CRT_UUID_DECL(IExplorerCommandState, 0xbddacb60, 0x7657, 0x47ae, 0x84,0x45, 0xd2,0x3e,0x1a,0xcf,0x82,0xae)
   34761 #endif
   34762 #else
   34763 typedef struct IExplorerCommandStateVtbl {
   34764     BEGIN_INTERFACE
   34765 
   34766     /*** IUnknown methods ***/
   34767     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   34768         IExplorerCommandState* This,
   34769         REFIID riid,
   34770         void **ppvObject);
   34771 
   34772     ULONG (STDMETHODCALLTYPE *AddRef)(
   34773         IExplorerCommandState* This);
   34774 
   34775     ULONG (STDMETHODCALLTYPE *Release)(
   34776         IExplorerCommandState* This);
   34777 
   34778     /*** IExplorerCommandState methods ***/
   34779     HRESULT (STDMETHODCALLTYPE *GetState)(
   34780         IExplorerCommandState* This,
   34781         IShellItemArray *psiItemArray,
   34782         WINBOOL fOkToBeSlow,
   34783         EXPCMDSTATE *pCmdState);
   34784 
   34785     END_INTERFACE
   34786 } IExplorerCommandStateVtbl;
   34787 interface IExplorerCommandState {
   34788     CONST_VTBL IExplorerCommandStateVtbl* lpVtbl;
   34789 };
   34790 
   34791 #ifdef COBJMACROS
   34792 #ifndef WIDL_C_INLINE_WRAPPERS
   34793 /*** IUnknown methods ***/
   34794 #define IExplorerCommandState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   34795 #define IExplorerCommandState_AddRef(This) (This)->lpVtbl->AddRef(This)
   34796 #define IExplorerCommandState_Release(This) (This)->lpVtbl->Release(This)
   34797 /*** IExplorerCommandState methods ***/
   34798 #define IExplorerCommandState_GetState(This,psiItemArray,fOkToBeSlow,pCmdState) (This)->lpVtbl->GetState(This,psiItemArray,fOkToBeSlow,pCmdState)
   34799 #else
   34800 /*** IUnknown methods ***/
   34801 static FORCEINLINE HRESULT IExplorerCommandState_QueryInterface(IExplorerCommandState* This,REFIID riid,void **ppvObject) {
   34802     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   34803 }
   34804 static FORCEINLINE ULONG IExplorerCommandState_AddRef(IExplorerCommandState* This) {
   34805     return This->lpVtbl->AddRef(This);
   34806 }
   34807 static FORCEINLINE ULONG IExplorerCommandState_Release(IExplorerCommandState* This) {
   34808     return This->lpVtbl->Release(This);
   34809 }
   34810 /*** IExplorerCommandState methods ***/
   34811 static FORCEINLINE HRESULT IExplorerCommandState_GetState(IExplorerCommandState* This,IShellItemArray *psiItemArray,WINBOOL fOkToBeSlow,EXPCMDSTATE *pCmdState) {
   34812     return This->lpVtbl->GetState(This,psiItemArray,fOkToBeSlow,pCmdState);
   34813 }
   34814 #endif
   34815 #endif
   34816 
   34817 #endif
   34818 
   34819 HRESULT STDMETHODCALLTYPE IExplorerCommandState_GetState_Proxy(
   34820     IExplorerCommandState* This,
   34821     IShellItemArray *psiItemArray,
   34822     WINBOOL fOkToBeSlow,
   34823     EXPCMDSTATE *pCmdState);
   34824 void __RPC_STUB IExplorerCommandState_GetState_Stub(
   34825     IRpcStubBuffer* This,
   34826     IRpcChannelBuffer* pRpcChannelBuffer,
   34827     PRPC_MESSAGE pRpcMessage,
   34828     DWORD* pdwStubPhase);
   34829 
   34830 #endif  /* __IExplorerCommandState_INTERFACE_DEFINED__ */
   34831 
   34832 
   34833 /*****************************************************************************
   34834  * IInitializeCommand interface
   34835  */
   34836 #ifndef __IInitializeCommand_INTERFACE_DEFINED__
   34837 #define __IInitializeCommand_INTERFACE_DEFINED__
   34838 
   34839 DEFINE_GUID(IID_IInitializeCommand, 0x85075acf, 0x231f, 0x40ea, 0x96,0x10, 0xd2,0x6b,0x7b,0x58,0xf6,0x38);
   34840 #if defined(__cplusplus) && !defined(CINTERFACE)
   34841 MIDL_INTERFACE("85075acf-231f-40ea-9610-d26b7b58f638")
   34842 IInitializeCommand : public IUnknown
   34843 {
   34844     virtual HRESULT STDMETHODCALLTYPE Initialize(
   34845         LPCWSTR pszCommandName,
   34846         IPropertyBag *ppb) = 0;
   34847 
   34848 };
   34849 #ifdef __CRT_UUID_DECL
   34850 __CRT_UUID_DECL(IInitializeCommand, 0x85075acf, 0x231f, 0x40ea, 0x96,0x10, 0xd2,0x6b,0x7b,0x58,0xf6,0x38)
   34851 #endif
   34852 #else
   34853 typedef struct IInitializeCommandVtbl {
   34854     BEGIN_INTERFACE
   34855 
   34856     /*** IUnknown methods ***/
   34857     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   34858         IInitializeCommand* This,
   34859         REFIID riid,
   34860         void **ppvObject);
   34861 
   34862     ULONG (STDMETHODCALLTYPE *AddRef)(
   34863         IInitializeCommand* This);
   34864 
   34865     ULONG (STDMETHODCALLTYPE *Release)(
   34866         IInitializeCommand* This);
   34867 
   34868     /*** IInitializeCommand methods ***/
   34869     HRESULT (STDMETHODCALLTYPE *Initialize)(
   34870         IInitializeCommand* This,
   34871         LPCWSTR pszCommandName,
   34872         IPropertyBag *ppb);
   34873 
   34874     END_INTERFACE
   34875 } IInitializeCommandVtbl;
   34876 interface IInitializeCommand {
   34877     CONST_VTBL IInitializeCommandVtbl* lpVtbl;
   34878 };
   34879 
   34880 #ifdef COBJMACROS
   34881 #ifndef WIDL_C_INLINE_WRAPPERS
   34882 /*** IUnknown methods ***/
   34883 #define IInitializeCommand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   34884 #define IInitializeCommand_AddRef(This) (This)->lpVtbl->AddRef(This)
   34885 #define IInitializeCommand_Release(This) (This)->lpVtbl->Release(This)
   34886 /*** IInitializeCommand methods ***/
   34887 #define IInitializeCommand_Initialize(This,pszCommandName,ppb) (This)->lpVtbl->Initialize(This,pszCommandName,ppb)
   34888 #else
   34889 /*** IUnknown methods ***/
   34890 static FORCEINLINE HRESULT IInitializeCommand_QueryInterface(IInitializeCommand* This,REFIID riid,void **ppvObject) {
   34891     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   34892 }
   34893 static FORCEINLINE ULONG IInitializeCommand_AddRef(IInitializeCommand* This) {
   34894     return This->lpVtbl->AddRef(This);
   34895 }
   34896 static FORCEINLINE ULONG IInitializeCommand_Release(IInitializeCommand* This) {
   34897     return This->lpVtbl->Release(This);
   34898 }
   34899 /*** IInitializeCommand methods ***/
   34900 static FORCEINLINE HRESULT IInitializeCommand_Initialize(IInitializeCommand* This,LPCWSTR pszCommandName,IPropertyBag *ppb) {
   34901     return This->lpVtbl->Initialize(This,pszCommandName,ppb);
   34902 }
   34903 #endif
   34904 #endif
   34905 
   34906 #endif
   34907 
   34908 HRESULT STDMETHODCALLTYPE IInitializeCommand_Initialize_Proxy(
   34909     IInitializeCommand* This,
   34910     LPCWSTR pszCommandName,
   34911     IPropertyBag *ppb);
   34912 void __RPC_STUB IInitializeCommand_Initialize_Stub(
   34913     IRpcStubBuffer* This,
   34914     IRpcChannelBuffer* pRpcChannelBuffer,
   34915     PRPC_MESSAGE pRpcMessage,
   34916     DWORD* pdwStubPhase);
   34917 
   34918 #endif  /* __IInitializeCommand_INTERFACE_DEFINED__ */
   34919 
   34920 
   34921 /*****************************************************************************
   34922  * IEnumExplorerCommand interface
   34923  */
   34924 #ifndef __IEnumExplorerCommand_INTERFACE_DEFINED__
   34925 #define __IEnumExplorerCommand_INTERFACE_DEFINED__
   34926 
   34927 DEFINE_GUID(IID_IEnumExplorerCommand, 0xa88826f8, 0x186f, 0x4987, 0xaa,0xde, 0xea,0x0c,0xef,0x8f,0xbf,0xe8);
   34928 #if defined(__cplusplus) && !defined(CINTERFACE)
   34929 MIDL_INTERFACE("a88826f8-186f-4987-aade-ea0cef8fbfe8")
   34930 IEnumExplorerCommand : public IUnknown
   34931 {
   34932     virtual HRESULT STDMETHODCALLTYPE Next(
   34933         ULONG celt,
   34934         IExplorerCommand **pUICommand,
   34935         ULONG *pceltFetched) = 0;
   34936 
   34937     virtual HRESULT STDMETHODCALLTYPE Skip(
   34938         ULONG celt) = 0;
   34939 
   34940     virtual HRESULT STDMETHODCALLTYPE Reset(
   34941         ) = 0;
   34942 
   34943     virtual HRESULT STDMETHODCALLTYPE Clone(
   34944         IEnumExplorerCommand **ppenum) = 0;
   34945 
   34946 };
   34947 #ifdef __CRT_UUID_DECL
   34948 __CRT_UUID_DECL(IEnumExplorerCommand, 0xa88826f8, 0x186f, 0x4987, 0xaa,0xde, 0xea,0x0c,0xef,0x8f,0xbf,0xe8)
   34949 #endif
   34950 #else
   34951 typedef struct IEnumExplorerCommandVtbl {
   34952     BEGIN_INTERFACE
   34953 
   34954     /*** IUnknown methods ***/
   34955     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   34956         IEnumExplorerCommand* This,
   34957         REFIID riid,
   34958         void **ppvObject);
   34959 
   34960     ULONG (STDMETHODCALLTYPE *AddRef)(
   34961         IEnumExplorerCommand* This);
   34962 
   34963     ULONG (STDMETHODCALLTYPE *Release)(
   34964         IEnumExplorerCommand* This);
   34965 
   34966     /*** IEnumExplorerCommand methods ***/
   34967     HRESULT (STDMETHODCALLTYPE *Next)(
   34968         IEnumExplorerCommand* This,
   34969         ULONG celt,
   34970         IExplorerCommand **pUICommand,
   34971         ULONG *pceltFetched);
   34972 
   34973     HRESULT (STDMETHODCALLTYPE *Skip)(
   34974         IEnumExplorerCommand* This,
   34975         ULONG celt);
   34976 
   34977     HRESULT (STDMETHODCALLTYPE *Reset)(
   34978         IEnumExplorerCommand* This);
   34979 
   34980     HRESULT (STDMETHODCALLTYPE *Clone)(
   34981         IEnumExplorerCommand* This,
   34982         IEnumExplorerCommand **ppenum);
   34983 
   34984     END_INTERFACE
   34985 } IEnumExplorerCommandVtbl;
   34986 interface IEnumExplorerCommand {
   34987     CONST_VTBL IEnumExplorerCommandVtbl* lpVtbl;
   34988 };
   34989 
   34990 #ifdef COBJMACROS
   34991 #ifndef WIDL_C_INLINE_WRAPPERS
   34992 /*** IUnknown methods ***/
   34993 #define IEnumExplorerCommand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   34994 #define IEnumExplorerCommand_AddRef(This) (This)->lpVtbl->AddRef(This)
   34995 #define IEnumExplorerCommand_Release(This) (This)->lpVtbl->Release(This)
   34996 /*** IEnumExplorerCommand methods ***/
   34997 #define IEnumExplorerCommand_Next(This,celt,pUICommand,pceltFetched) (This)->lpVtbl->Next(This,celt,pUICommand,pceltFetched)
   34998 #define IEnumExplorerCommand_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
   34999 #define IEnumExplorerCommand_Reset(This) (This)->lpVtbl->Reset(This)
   35000 #define IEnumExplorerCommand_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
   35001 #else
   35002 /*** IUnknown methods ***/
   35003 static FORCEINLINE HRESULT IEnumExplorerCommand_QueryInterface(IEnumExplorerCommand* This,REFIID riid,void **ppvObject) {
   35004     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   35005 }
   35006 static FORCEINLINE ULONG IEnumExplorerCommand_AddRef(IEnumExplorerCommand* This) {
   35007     return This->lpVtbl->AddRef(This);
   35008 }
   35009 static FORCEINLINE ULONG IEnumExplorerCommand_Release(IEnumExplorerCommand* This) {
   35010     return This->lpVtbl->Release(This);
   35011 }
   35012 /*** IEnumExplorerCommand methods ***/
   35013 static FORCEINLINE HRESULT IEnumExplorerCommand_Next(IEnumExplorerCommand* This,ULONG celt,IExplorerCommand **pUICommand,ULONG *pceltFetched) {
   35014     return This->lpVtbl->Next(This,celt,pUICommand,pceltFetched);
   35015 }
   35016 static FORCEINLINE HRESULT IEnumExplorerCommand_Skip(IEnumExplorerCommand* This,ULONG celt) {
   35017     return This->lpVtbl->Skip(This,celt);
   35018 }
   35019 static FORCEINLINE HRESULT IEnumExplorerCommand_Reset(IEnumExplorerCommand* This) {
   35020     return This->lpVtbl->Reset(This);
   35021 }
   35022 static FORCEINLINE HRESULT IEnumExplorerCommand_Clone(IEnumExplorerCommand* This,IEnumExplorerCommand **ppenum) {
   35023     return This->lpVtbl->Clone(This,ppenum);
   35024 }
   35025 #endif
   35026 #endif
   35027 
   35028 #endif
   35029 
   35030 HRESULT STDMETHODCALLTYPE IEnumExplorerCommand_RemoteNext_Proxy(
   35031     IEnumExplorerCommand* This,
   35032     ULONG celt,
   35033     IExplorerCommand **pUICommand,
   35034     ULONG *pceltFetched);
   35035 void __RPC_STUB IEnumExplorerCommand_RemoteNext_Stub(
   35036     IRpcStubBuffer* This,
   35037     IRpcChannelBuffer* pRpcChannelBuffer,
   35038     PRPC_MESSAGE pRpcMessage,
   35039     DWORD* pdwStubPhase);
   35040 HRESULT STDMETHODCALLTYPE IEnumExplorerCommand_Skip_Proxy(
   35041     IEnumExplorerCommand* This,
   35042     ULONG celt);
   35043 void __RPC_STUB IEnumExplorerCommand_Skip_Stub(
   35044     IRpcStubBuffer* This,
   35045     IRpcChannelBuffer* pRpcChannelBuffer,
   35046     PRPC_MESSAGE pRpcMessage,
   35047     DWORD* pdwStubPhase);
   35048 HRESULT STDMETHODCALLTYPE IEnumExplorerCommand_Reset_Proxy(
   35049     IEnumExplorerCommand* This);
   35050 void __RPC_STUB IEnumExplorerCommand_Reset_Stub(
   35051     IRpcStubBuffer* This,
   35052     IRpcChannelBuffer* pRpcChannelBuffer,
   35053     PRPC_MESSAGE pRpcMessage,
   35054     DWORD* pdwStubPhase);
   35055 HRESULT STDMETHODCALLTYPE IEnumExplorerCommand_Clone_Proxy(
   35056     IEnumExplorerCommand* This,
   35057     IEnumExplorerCommand **ppenum);
   35058 void __RPC_STUB IEnumExplorerCommand_Clone_Stub(
   35059     IRpcStubBuffer* This,
   35060     IRpcChannelBuffer* pRpcChannelBuffer,
   35061     PRPC_MESSAGE pRpcMessage,
   35062     DWORD* pdwStubPhase);
   35063 HRESULT CALLBACK IEnumExplorerCommand_Next_Proxy(
   35064     IEnumExplorerCommand* This,
   35065     ULONG celt,
   35066     IExplorerCommand **pUICommand,
   35067     ULONG *pceltFetched);
   35068 HRESULT __RPC_STUB IEnumExplorerCommand_Next_Stub(
   35069     IEnumExplorerCommand* This,
   35070     ULONG celt,
   35071     IExplorerCommand **pUICommand,
   35072     ULONG *pceltFetched);
   35073 
   35074 #endif  /* __IEnumExplorerCommand_INTERFACE_DEFINED__ */
   35075 
   35076 
   35077 /*****************************************************************************
   35078  * IExplorerCommandProvider interface
   35079  */
   35080 #ifndef __IExplorerCommandProvider_INTERFACE_DEFINED__
   35081 #define __IExplorerCommandProvider_INTERFACE_DEFINED__
   35082 
   35083 DEFINE_GUID(IID_IExplorerCommandProvider, 0x64961751, 0x0835, 0x43c0, 0x8f,0xfe, 0xd5,0x76,0x86,0x53,0x0e,0x64);
   35084 #if defined(__cplusplus) && !defined(CINTERFACE)
   35085 MIDL_INTERFACE("64961751-0835-43c0-8ffe-d57686530e64")
   35086 IExplorerCommandProvider : public IUnknown
   35087 {
   35088     virtual HRESULT STDMETHODCALLTYPE GetCommands(
   35089         IUnknown *punkSite,
   35090         REFIID riid,
   35091         void **ppv) = 0;
   35092 
   35093     virtual HRESULT STDMETHODCALLTYPE GetCommand(
   35094         REFGUID rguidCommandId,
   35095         REFIID riid,
   35096         void **ppv) = 0;
   35097 
   35098 };
   35099 #ifdef __CRT_UUID_DECL
   35100 __CRT_UUID_DECL(IExplorerCommandProvider, 0x64961751, 0x0835, 0x43c0, 0x8f,0xfe, 0xd5,0x76,0x86,0x53,0x0e,0x64)
   35101 #endif
   35102 #else
   35103 typedef struct IExplorerCommandProviderVtbl {
   35104     BEGIN_INTERFACE
   35105 
   35106     /*** IUnknown methods ***/
   35107     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   35108         IExplorerCommandProvider* This,
   35109         REFIID riid,
   35110         void **ppvObject);
   35111 
   35112     ULONG (STDMETHODCALLTYPE *AddRef)(
   35113         IExplorerCommandProvider* This);
   35114 
   35115     ULONG (STDMETHODCALLTYPE *Release)(
   35116         IExplorerCommandProvider* This);
   35117 
   35118     /*** IExplorerCommandProvider methods ***/
   35119     HRESULT (STDMETHODCALLTYPE *GetCommands)(
   35120         IExplorerCommandProvider* This,
   35121         IUnknown *punkSite,
   35122         REFIID riid,
   35123         void **ppv);
   35124 
   35125     HRESULT (STDMETHODCALLTYPE *GetCommand)(
   35126         IExplorerCommandProvider* This,
   35127         REFGUID rguidCommandId,
   35128         REFIID riid,
   35129         void **ppv);
   35130 
   35131     END_INTERFACE
   35132 } IExplorerCommandProviderVtbl;
   35133 interface IExplorerCommandProvider {
   35134     CONST_VTBL IExplorerCommandProviderVtbl* lpVtbl;
   35135 };
   35136 
   35137 #ifdef COBJMACROS
   35138 #ifndef WIDL_C_INLINE_WRAPPERS
   35139 /*** IUnknown methods ***/
   35140 #define IExplorerCommandProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   35141 #define IExplorerCommandProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
   35142 #define IExplorerCommandProvider_Release(This) (This)->lpVtbl->Release(This)
   35143 /*** IExplorerCommandProvider methods ***/
   35144 #define IExplorerCommandProvider_GetCommands(This,punkSite,riid,ppv) (This)->lpVtbl->GetCommands(This,punkSite,riid,ppv)
   35145 #define IExplorerCommandProvider_GetCommand(This,rguidCommandId,riid,ppv) (This)->lpVtbl->GetCommand(This,rguidCommandId,riid,ppv)
   35146 #else
   35147 /*** IUnknown methods ***/
   35148 static FORCEINLINE HRESULT IExplorerCommandProvider_QueryInterface(IExplorerCommandProvider* This,REFIID riid,void **ppvObject) {
   35149     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   35150 }
   35151 static FORCEINLINE ULONG IExplorerCommandProvider_AddRef(IExplorerCommandProvider* This) {
   35152     return This->lpVtbl->AddRef(This);
   35153 }
   35154 static FORCEINLINE ULONG IExplorerCommandProvider_Release(IExplorerCommandProvider* This) {
   35155     return This->lpVtbl->Release(This);
   35156 }
   35157 /*** IExplorerCommandProvider methods ***/
   35158 static FORCEINLINE HRESULT IExplorerCommandProvider_GetCommands(IExplorerCommandProvider* This,IUnknown *punkSite,REFIID riid,void **ppv) {
   35159     return This->lpVtbl->GetCommands(This,punkSite,riid,ppv);
   35160 }
   35161 static FORCEINLINE HRESULT IExplorerCommandProvider_GetCommand(IExplorerCommandProvider* This,REFGUID rguidCommandId,REFIID riid,void **ppv) {
   35162     return This->lpVtbl->GetCommand(This,rguidCommandId,riid,ppv);
   35163 }
   35164 #endif
   35165 #endif
   35166 
   35167 #endif
   35168 
   35169 HRESULT STDMETHODCALLTYPE IExplorerCommandProvider_GetCommands_Proxy(
   35170     IExplorerCommandProvider* This,
   35171     IUnknown *punkSite,
   35172     REFIID riid,
   35173     void **ppv);
   35174 void __RPC_STUB IExplorerCommandProvider_GetCommands_Stub(
   35175     IRpcStubBuffer* This,
   35176     IRpcChannelBuffer* pRpcChannelBuffer,
   35177     PRPC_MESSAGE pRpcMessage,
   35178     DWORD* pdwStubPhase);
   35179 HRESULT STDMETHODCALLTYPE IExplorerCommandProvider_GetCommand_Proxy(
   35180     IExplorerCommandProvider* This,
   35181     REFGUID rguidCommandId,
   35182     REFIID riid,
   35183     void **ppv);
   35184 void __RPC_STUB IExplorerCommandProvider_GetCommand_Stub(
   35185     IRpcStubBuffer* This,
   35186     IRpcChannelBuffer* pRpcChannelBuffer,
   35187     PRPC_MESSAGE pRpcMessage,
   35188     DWORD* pdwStubPhase);
   35189 
   35190 #endif  /* __IExplorerCommandProvider_INTERFACE_DEFINED__ */
   35191 
   35192 
   35193 typedef HANDLE HTHEME;
   35194 
   35195 /*****************************************************************************
   35196  * IInitializeNetworkFolder interface
   35197  */
   35198 #ifndef __IInitializeNetworkFolder_INTERFACE_DEFINED__
   35199 #define __IInitializeNetworkFolder_INTERFACE_DEFINED__
   35200 
   35201 DEFINE_GUID(IID_IInitializeNetworkFolder, 0x6e0f9881, 0x42a8, 0x4f2a, 0x97,0xf8, 0x8a,0xf4,0xe0,0x26,0xd9,0x2d);
   35202 #if defined(__cplusplus) && !defined(CINTERFACE)
   35203 MIDL_INTERFACE("6e0f9881-42a8-4f2a-97f8-8af4e026d92d")
   35204 IInitializeNetworkFolder : public IUnknown
   35205 {
   35206     virtual HRESULT STDMETHODCALLTYPE Initialize(
   35207         PCIDLIST_ABSOLUTE pidl,
   35208         PCIDLIST_ABSOLUTE pidlTarget,
   35209         UINT uDisplayType,
   35210         LPCWSTR pszResName,
   35211         LPCWSTR pszProvider) = 0;
   35212 
   35213 };
   35214 #ifdef __CRT_UUID_DECL
   35215 __CRT_UUID_DECL(IInitializeNetworkFolder, 0x6e0f9881, 0x42a8, 0x4f2a, 0x97,0xf8, 0x8a,0xf4,0xe0,0x26,0xd9,0x2d)
   35216 #endif
   35217 #else
   35218 typedef struct IInitializeNetworkFolderVtbl {
   35219     BEGIN_INTERFACE
   35220 
   35221     /*** IUnknown methods ***/
   35222     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   35223         IInitializeNetworkFolder* This,
   35224         REFIID riid,
   35225         void **ppvObject);
   35226 
   35227     ULONG (STDMETHODCALLTYPE *AddRef)(
   35228         IInitializeNetworkFolder* This);
   35229 
   35230     ULONG (STDMETHODCALLTYPE *Release)(
   35231         IInitializeNetworkFolder* This);
   35232 
   35233     /*** IInitializeNetworkFolder methods ***/
   35234     HRESULT (STDMETHODCALLTYPE *Initialize)(
   35235         IInitializeNetworkFolder* This,
   35236         PCIDLIST_ABSOLUTE pidl,
   35237         PCIDLIST_ABSOLUTE pidlTarget,
   35238         UINT uDisplayType,
   35239         LPCWSTR pszResName,
   35240         LPCWSTR pszProvider);
   35241 
   35242     END_INTERFACE
   35243 } IInitializeNetworkFolderVtbl;
   35244 interface IInitializeNetworkFolder {
   35245     CONST_VTBL IInitializeNetworkFolderVtbl* lpVtbl;
   35246 };
   35247 
   35248 #ifdef COBJMACROS
   35249 #ifndef WIDL_C_INLINE_WRAPPERS
   35250 /*** IUnknown methods ***/
   35251 #define IInitializeNetworkFolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   35252 #define IInitializeNetworkFolder_AddRef(This) (This)->lpVtbl->AddRef(This)
   35253 #define IInitializeNetworkFolder_Release(This) (This)->lpVtbl->Release(This)
   35254 /*** IInitializeNetworkFolder methods ***/
   35255 #define IInitializeNetworkFolder_Initialize(This,pidl,pidlTarget,uDisplayType,pszResName,pszProvider) (This)->lpVtbl->Initialize(This,pidl,pidlTarget,uDisplayType,pszResName,pszProvider)
   35256 #else
   35257 /*** IUnknown methods ***/
   35258 static FORCEINLINE HRESULT IInitializeNetworkFolder_QueryInterface(IInitializeNetworkFolder* This,REFIID riid,void **ppvObject) {
   35259     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   35260 }
   35261 static FORCEINLINE ULONG IInitializeNetworkFolder_AddRef(IInitializeNetworkFolder* This) {
   35262     return This->lpVtbl->AddRef(This);
   35263 }
   35264 static FORCEINLINE ULONG IInitializeNetworkFolder_Release(IInitializeNetworkFolder* This) {
   35265     return This->lpVtbl->Release(This);
   35266 }
   35267 /*** IInitializeNetworkFolder methods ***/
   35268 static FORCEINLINE HRESULT IInitializeNetworkFolder_Initialize(IInitializeNetworkFolder* This,PCIDLIST_ABSOLUTE pidl,PCIDLIST_ABSOLUTE pidlTarget,UINT uDisplayType,LPCWSTR pszResName,LPCWSTR pszProvider) {
   35269     return This->lpVtbl->Initialize(This,pidl,pidlTarget,uDisplayType,pszResName,pszProvider);
   35270 }
   35271 #endif
   35272 #endif
   35273 
   35274 #endif
   35275 
   35276 HRESULT STDMETHODCALLTYPE IInitializeNetworkFolder_Initialize_Proxy(
   35277     IInitializeNetworkFolder* This,
   35278     PCIDLIST_ABSOLUTE pidl,
   35279     PCIDLIST_ABSOLUTE pidlTarget,
   35280     UINT uDisplayType,
   35281     LPCWSTR pszResName,
   35282     LPCWSTR pszProvider);
   35283 void __RPC_STUB IInitializeNetworkFolder_Initialize_Stub(
   35284     IRpcStubBuffer* This,
   35285     IRpcChannelBuffer* pRpcChannelBuffer,
   35286     PRPC_MESSAGE pRpcMessage,
   35287     DWORD* pdwStubPhase);
   35288 
   35289 #endif  /* __IInitializeNetworkFolder_INTERFACE_DEFINED__ */
   35290 
   35291 
   35292 typedef enum CPVIEW {
   35293     CPVIEW_CLASSIC = 0,
   35294     CPVIEW_ALLITEMS = CPVIEW_CLASSIC,
   35295     CPVIEW_CATEGORY = 1,
   35296     CPVIEW_HOME = CPVIEW_CATEGORY
   35297 } CPVIEW;
   35298 
   35299 /*****************************************************************************
   35300  * IOpenControlPanel interface
   35301  */
   35302 #ifndef __IOpenControlPanel_INTERFACE_DEFINED__
   35303 #define __IOpenControlPanel_INTERFACE_DEFINED__
   35304 
   35305 DEFINE_GUID(IID_IOpenControlPanel, 0xd11ad862, 0x66de, 0x4df4, 0xbf,0x6c, 0x1f,0x56,0x21,0x99,0x6a,0xf1);
   35306 #if defined(__cplusplus) && !defined(CINTERFACE)
   35307 MIDL_INTERFACE("d11ad862-66de-4df4-bf6c-1f5621996af1")
   35308 IOpenControlPanel : public IUnknown
   35309 {
   35310     virtual HRESULT STDMETHODCALLTYPE Open(
   35311         LPCWSTR pszName,
   35312         LPCWSTR pszPage,
   35313         IUnknown *punkSite) = 0;
   35314 
   35315     virtual HRESULT STDMETHODCALLTYPE GetPath(
   35316         LPCWSTR pszName,
   35317         LPWSTR pszPath,
   35318         UINT cchPath) = 0;
   35319 
   35320     virtual HRESULT STDMETHODCALLTYPE GetCurrentView(
   35321         CPVIEW *pView) = 0;
   35322 
   35323 };
   35324 #ifdef __CRT_UUID_DECL
   35325 __CRT_UUID_DECL(IOpenControlPanel, 0xd11ad862, 0x66de, 0x4df4, 0xbf,0x6c, 0x1f,0x56,0x21,0x99,0x6a,0xf1)
   35326 #endif
   35327 #else
   35328 typedef struct IOpenControlPanelVtbl {
   35329     BEGIN_INTERFACE
   35330 
   35331     /*** IUnknown methods ***/
   35332     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   35333         IOpenControlPanel* This,
   35334         REFIID riid,
   35335         void **ppvObject);
   35336 
   35337     ULONG (STDMETHODCALLTYPE *AddRef)(
   35338         IOpenControlPanel* This);
   35339 
   35340     ULONG (STDMETHODCALLTYPE *Release)(
   35341         IOpenControlPanel* This);
   35342 
   35343     /*** IOpenControlPanel methods ***/
   35344     HRESULT (STDMETHODCALLTYPE *Open)(
   35345         IOpenControlPanel* This,
   35346         LPCWSTR pszName,
   35347         LPCWSTR pszPage,
   35348         IUnknown *punkSite);
   35349 
   35350     HRESULT (STDMETHODCALLTYPE *GetPath)(
   35351         IOpenControlPanel* This,
   35352         LPCWSTR pszName,
   35353         LPWSTR pszPath,
   35354         UINT cchPath);
   35355 
   35356     HRESULT (STDMETHODCALLTYPE *GetCurrentView)(
   35357         IOpenControlPanel* This,
   35358         CPVIEW *pView);
   35359 
   35360     END_INTERFACE
   35361 } IOpenControlPanelVtbl;
   35362 interface IOpenControlPanel {
   35363     CONST_VTBL IOpenControlPanelVtbl* lpVtbl;
   35364 };
   35365 
   35366 #ifdef COBJMACROS
   35367 #ifndef WIDL_C_INLINE_WRAPPERS
   35368 /*** IUnknown methods ***/
   35369 #define IOpenControlPanel_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   35370 #define IOpenControlPanel_AddRef(This) (This)->lpVtbl->AddRef(This)
   35371 #define IOpenControlPanel_Release(This) (This)->lpVtbl->Release(This)
   35372 /*** IOpenControlPanel methods ***/
   35373 #define IOpenControlPanel_Open(This,pszName,pszPage,punkSite) (This)->lpVtbl->Open(This,pszName,pszPage,punkSite)
   35374 #define IOpenControlPanel_GetPath(This,pszName,pszPath,cchPath) (This)->lpVtbl->GetPath(This,pszName,pszPath,cchPath)
   35375 #define IOpenControlPanel_GetCurrentView(This,pView) (This)->lpVtbl->GetCurrentView(This,pView)
   35376 #else
   35377 /*** IUnknown methods ***/
   35378 static FORCEINLINE HRESULT IOpenControlPanel_QueryInterface(IOpenControlPanel* This,REFIID riid,void **ppvObject) {
   35379     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   35380 }
   35381 static FORCEINLINE ULONG IOpenControlPanel_AddRef(IOpenControlPanel* This) {
   35382     return This->lpVtbl->AddRef(This);
   35383 }
   35384 static FORCEINLINE ULONG IOpenControlPanel_Release(IOpenControlPanel* This) {
   35385     return This->lpVtbl->Release(This);
   35386 }
   35387 /*** IOpenControlPanel methods ***/
   35388 static FORCEINLINE HRESULT IOpenControlPanel_Open(IOpenControlPanel* This,LPCWSTR pszName,LPCWSTR pszPage,IUnknown *punkSite) {
   35389     return This->lpVtbl->Open(This,pszName,pszPage,punkSite);
   35390 }
   35391 static FORCEINLINE HRESULT IOpenControlPanel_GetPath(IOpenControlPanel* This,LPCWSTR pszName,LPWSTR pszPath,UINT cchPath) {
   35392     return This->lpVtbl->GetPath(This,pszName,pszPath,cchPath);
   35393 }
   35394 static FORCEINLINE HRESULT IOpenControlPanel_GetCurrentView(IOpenControlPanel* This,CPVIEW *pView) {
   35395     return This->lpVtbl->GetCurrentView(This,pView);
   35396 }
   35397 #endif
   35398 #endif
   35399 
   35400 #endif
   35401 
   35402 HRESULT STDMETHODCALLTYPE IOpenControlPanel_Open_Proxy(
   35403     IOpenControlPanel* This,
   35404     LPCWSTR pszName,
   35405     LPCWSTR pszPage,
   35406     IUnknown *punkSite);
   35407 void __RPC_STUB IOpenControlPanel_Open_Stub(
   35408     IRpcStubBuffer* This,
   35409     IRpcChannelBuffer* pRpcChannelBuffer,
   35410     PRPC_MESSAGE pRpcMessage,
   35411     DWORD* pdwStubPhase);
   35412 HRESULT STDMETHODCALLTYPE IOpenControlPanel_GetPath_Proxy(
   35413     IOpenControlPanel* This,
   35414     LPCWSTR pszName,
   35415     LPWSTR pszPath,
   35416     UINT cchPath);
   35417 void __RPC_STUB IOpenControlPanel_GetPath_Stub(
   35418     IRpcStubBuffer* This,
   35419     IRpcChannelBuffer* pRpcChannelBuffer,
   35420     PRPC_MESSAGE pRpcMessage,
   35421     DWORD* pdwStubPhase);
   35422 HRESULT STDMETHODCALLTYPE IOpenControlPanel_GetCurrentView_Proxy(
   35423     IOpenControlPanel* This,
   35424     CPVIEW *pView);
   35425 void __RPC_STUB IOpenControlPanel_GetCurrentView_Stub(
   35426     IRpcStubBuffer* This,
   35427     IRpcChannelBuffer* pRpcChannelBuffer,
   35428     PRPC_MESSAGE pRpcMessage,
   35429     DWORD* pdwStubPhase);
   35430 
   35431 #endif  /* __IOpenControlPanel_INTERFACE_DEFINED__ */
   35432 
   35433 
   35434 /*****************************************************************************
   35435  * IComputerInfoChangeNotify interface
   35436  */
   35437 #ifndef __IComputerInfoChangeNotify_INTERFACE_DEFINED__
   35438 #define __IComputerInfoChangeNotify_INTERFACE_DEFINED__
   35439 
   35440 DEFINE_GUID(IID_IComputerInfoChangeNotify, 0x0df60d92, 0x6818, 0x46d6, 0xb3,0x58, 0xd6,0x61,0x70,0xdd,0xe4,0x66);
   35441 #if defined(__cplusplus) && !defined(CINTERFACE)
   35442 MIDL_INTERFACE("0df60d92-6818-46d6-b358-d66170dde466")
   35443 IComputerInfoChangeNotify : public IUnknown
   35444 {
   35445     virtual HRESULT STDMETHODCALLTYPE ComputerInfoChanged(
   35446         ) = 0;
   35447 
   35448 };
   35449 #ifdef __CRT_UUID_DECL
   35450 __CRT_UUID_DECL(IComputerInfoChangeNotify, 0x0df60d92, 0x6818, 0x46d6, 0xb3,0x58, 0xd6,0x61,0x70,0xdd,0xe4,0x66)
   35451 #endif
   35452 #else
   35453 typedef struct IComputerInfoChangeNotifyVtbl {
   35454     BEGIN_INTERFACE
   35455 
   35456     /*** IUnknown methods ***/
   35457     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   35458         IComputerInfoChangeNotify* This,
   35459         REFIID riid,
   35460         void **ppvObject);
   35461 
   35462     ULONG (STDMETHODCALLTYPE *AddRef)(
   35463         IComputerInfoChangeNotify* This);
   35464 
   35465     ULONG (STDMETHODCALLTYPE *Release)(
   35466         IComputerInfoChangeNotify* This);
   35467 
   35468     /*** IComputerInfoChangeNotify methods ***/
   35469     HRESULT (STDMETHODCALLTYPE *ComputerInfoChanged)(
   35470         IComputerInfoChangeNotify* This);
   35471 
   35472     END_INTERFACE
   35473 } IComputerInfoChangeNotifyVtbl;
   35474 interface IComputerInfoChangeNotify {
   35475     CONST_VTBL IComputerInfoChangeNotifyVtbl* lpVtbl;
   35476 };
   35477 
   35478 #ifdef COBJMACROS
   35479 #ifndef WIDL_C_INLINE_WRAPPERS
   35480 /*** IUnknown methods ***/
   35481 #define IComputerInfoChangeNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   35482 #define IComputerInfoChangeNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
   35483 #define IComputerInfoChangeNotify_Release(This) (This)->lpVtbl->Release(This)
   35484 /*** IComputerInfoChangeNotify methods ***/
   35485 #define IComputerInfoChangeNotify_ComputerInfoChanged(This) (This)->lpVtbl->ComputerInfoChanged(This)
   35486 #else
   35487 /*** IUnknown methods ***/
   35488 static FORCEINLINE HRESULT IComputerInfoChangeNotify_QueryInterface(IComputerInfoChangeNotify* This,REFIID riid,void **ppvObject) {
   35489     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   35490 }
   35491 static FORCEINLINE ULONG IComputerInfoChangeNotify_AddRef(IComputerInfoChangeNotify* This) {
   35492     return This->lpVtbl->AddRef(This);
   35493 }
   35494 static FORCEINLINE ULONG IComputerInfoChangeNotify_Release(IComputerInfoChangeNotify* This) {
   35495     return This->lpVtbl->Release(This);
   35496 }
   35497 /*** IComputerInfoChangeNotify methods ***/
   35498 static FORCEINLINE HRESULT IComputerInfoChangeNotify_ComputerInfoChanged(IComputerInfoChangeNotify* This) {
   35499     return This->lpVtbl->ComputerInfoChanged(This);
   35500 }
   35501 #endif
   35502 #endif
   35503 
   35504 #endif
   35505 
   35506 HRESULT STDMETHODCALLTYPE IComputerInfoChangeNotify_ComputerInfoChanged_Proxy(
   35507     IComputerInfoChangeNotify* This);
   35508 void __RPC_STUB IComputerInfoChangeNotify_ComputerInfoChanged_Stub(
   35509     IRpcStubBuffer* This,
   35510     IRpcChannelBuffer* pRpcChannelBuffer,
   35511     PRPC_MESSAGE pRpcMessage,
   35512     DWORD* pdwStubPhase);
   35513 
   35514 #endif  /* __IComputerInfoChangeNotify_INTERFACE_DEFINED__ */
   35515 
   35516 
   35517 #define STR_FILE_SYS_BIND_DATA L"File System Bind Data"
   35518 
   35519 /*****************************************************************************
   35520  * IFileSystemBindData interface
   35521  */
   35522 #ifndef __IFileSystemBindData_INTERFACE_DEFINED__
   35523 #define __IFileSystemBindData_INTERFACE_DEFINED__
   35524 
   35525 DEFINE_GUID(IID_IFileSystemBindData, 0x01e18d10, 0x4d8b, 0x11d2, 0x85,0x5d, 0x00,0x60,0x08,0x05,0x93,0x67);
   35526 #if defined(__cplusplus) && !defined(CINTERFACE)
   35527 MIDL_INTERFACE("01e18d10-4d8b-11d2-855d-006008059367")
   35528 IFileSystemBindData : public IUnknown
   35529 {
   35530     virtual HRESULT STDMETHODCALLTYPE SetFindData(
   35531         const WIN32_FIND_DATAW *pfd) = 0;
   35532 
   35533     virtual HRESULT STDMETHODCALLTYPE GetFindData(
   35534         WIN32_FIND_DATAW *pfd) = 0;
   35535 
   35536 };
   35537 #ifdef __CRT_UUID_DECL
   35538 __CRT_UUID_DECL(IFileSystemBindData, 0x01e18d10, 0x4d8b, 0x11d2, 0x85,0x5d, 0x00,0x60,0x08,0x05,0x93,0x67)
   35539 #endif
   35540 #else
   35541 typedef struct IFileSystemBindDataVtbl {
   35542     BEGIN_INTERFACE
   35543 
   35544     /*** IUnknown methods ***/
   35545     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   35546         IFileSystemBindData* This,
   35547         REFIID riid,
   35548         void **ppvObject);
   35549 
   35550     ULONG (STDMETHODCALLTYPE *AddRef)(
   35551         IFileSystemBindData* This);
   35552 
   35553     ULONG (STDMETHODCALLTYPE *Release)(
   35554         IFileSystemBindData* This);
   35555 
   35556     /*** IFileSystemBindData methods ***/
   35557     HRESULT (STDMETHODCALLTYPE *SetFindData)(
   35558         IFileSystemBindData* This,
   35559         const WIN32_FIND_DATAW *pfd);
   35560 
   35561     HRESULT (STDMETHODCALLTYPE *GetFindData)(
   35562         IFileSystemBindData* This,
   35563         WIN32_FIND_DATAW *pfd);
   35564 
   35565     END_INTERFACE
   35566 } IFileSystemBindDataVtbl;
   35567 interface IFileSystemBindData {
   35568     CONST_VTBL IFileSystemBindDataVtbl* lpVtbl;
   35569 };
   35570 
   35571 #ifdef COBJMACROS
   35572 #ifndef WIDL_C_INLINE_WRAPPERS
   35573 /*** IUnknown methods ***/
   35574 #define IFileSystemBindData_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   35575 #define IFileSystemBindData_AddRef(This) (This)->lpVtbl->AddRef(This)
   35576 #define IFileSystemBindData_Release(This) (This)->lpVtbl->Release(This)
   35577 /*** IFileSystemBindData methods ***/
   35578 #define IFileSystemBindData_SetFindData(This,pfd) (This)->lpVtbl->SetFindData(This,pfd)
   35579 #define IFileSystemBindData_GetFindData(This,pfd) (This)->lpVtbl->GetFindData(This,pfd)
   35580 #else
   35581 /*** IUnknown methods ***/
   35582 static FORCEINLINE HRESULT IFileSystemBindData_QueryInterface(IFileSystemBindData* This,REFIID riid,void **ppvObject) {
   35583     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   35584 }
   35585 static FORCEINLINE ULONG IFileSystemBindData_AddRef(IFileSystemBindData* This) {
   35586     return This->lpVtbl->AddRef(This);
   35587 }
   35588 static FORCEINLINE ULONG IFileSystemBindData_Release(IFileSystemBindData* This) {
   35589     return This->lpVtbl->Release(This);
   35590 }
   35591 /*** IFileSystemBindData methods ***/
   35592 static FORCEINLINE HRESULT IFileSystemBindData_SetFindData(IFileSystemBindData* This,const WIN32_FIND_DATAW *pfd) {
   35593     return This->lpVtbl->SetFindData(This,pfd);
   35594 }
   35595 static FORCEINLINE HRESULT IFileSystemBindData_GetFindData(IFileSystemBindData* This,WIN32_FIND_DATAW *pfd) {
   35596     return This->lpVtbl->GetFindData(This,pfd);
   35597 }
   35598 #endif
   35599 #endif
   35600 
   35601 #endif
   35602 
   35603 HRESULT STDMETHODCALLTYPE IFileSystemBindData_SetFindData_Proxy(
   35604     IFileSystemBindData* This,
   35605     const WIN32_FIND_DATAW *pfd);
   35606 void __RPC_STUB IFileSystemBindData_SetFindData_Stub(
   35607     IRpcStubBuffer* This,
   35608     IRpcChannelBuffer* pRpcChannelBuffer,
   35609     PRPC_MESSAGE pRpcMessage,
   35610     DWORD* pdwStubPhase);
   35611 HRESULT STDMETHODCALLTYPE IFileSystemBindData_GetFindData_Proxy(
   35612     IFileSystemBindData* This,
   35613     WIN32_FIND_DATAW *pfd);
   35614 void __RPC_STUB IFileSystemBindData_GetFindData_Stub(
   35615     IRpcStubBuffer* This,
   35616     IRpcChannelBuffer* pRpcChannelBuffer,
   35617     PRPC_MESSAGE pRpcMessage,
   35618     DWORD* pdwStubPhase);
   35619 
   35620 #endif  /* __IFileSystemBindData_INTERFACE_DEFINED__ */
   35621 
   35622 
   35623 /*****************************************************************************
   35624  * IFileSystemBindData2 interface
   35625  */
   35626 #ifndef __IFileSystemBindData2_INTERFACE_DEFINED__
   35627 #define __IFileSystemBindData2_INTERFACE_DEFINED__
   35628 
   35629 DEFINE_GUID(IID_IFileSystemBindData2, 0x3acf075f, 0x71db, 0x4afa, 0x81,0xf0, 0x3f,0xc4,0xfd,0xf2,0xa5,0xb8);
   35630 #if defined(__cplusplus) && !defined(CINTERFACE)
   35631 MIDL_INTERFACE("3acf075f-71db-4afa-81f0-3fc4fdf2a5b8")
   35632 IFileSystemBindData2 : public IFileSystemBindData
   35633 {
   35634     virtual HRESULT STDMETHODCALLTYPE SetFileID(
   35635         LARGE_INTEGER liFileID) = 0;
   35636 
   35637     virtual HRESULT STDMETHODCALLTYPE GetFileID(
   35638         LARGE_INTEGER *pliFileID) = 0;
   35639 
   35640     virtual HRESULT STDMETHODCALLTYPE SetJunctionCLSID(
   35641         REFCLSID clsid) = 0;
   35642 
   35643     virtual HRESULT STDMETHODCALLTYPE GetJunctionCLSID(
   35644         CLSID *pclsid) = 0;
   35645 
   35646 };
   35647 #ifdef __CRT_UUID_DECL
   35648 __CRT_UUID_DECL(IFileSystemBindData2, 0x3acf075f, 0x71db, 0x4afa, 0x81,0xf0, 0x3f,0xc4,0xfd,0xf2,0xa5,0xb8)
   35649 #endif
   35650 #else
   35651 typedef struct IFileSystemBindData2Vtbl {
   35652     BEGIN_INTERFACE
   35653 
   35654     /*** IUnknown methods ***/
   35655     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   35656         IFileSystemBindData2* This,
   35657         REFIID riid,
   35658         void **ppvObject);
   35659 
   35660     ULONG (STDMETHODCALLTYPE *AddRef)(
   35661         IFileSystemBindData2* This);
   35662 
   35663     ULONG (STDMETHODCALLTYPE *Release)(
   35664         IFileSystemBindData2* This);
   35665 
   35666     /*** IFileSystemBindData methods ***/
   35667     HRESULT (STDMETHODCALLTYPE *SetFindData)(
   35668         IFileSystemBindData2* This,
   35669         const WIN32_FIND_DATAW *pfd);
   35670 
   35671     HRESULT (STDMETHODCALLTYPE *GetFindData)(
   35672         IFileSystemBindData2* This,
   35673         WIN32_FIND_DATAW *pfd);
   35674 
   35675     /*** IFileSystemBindData2 methods ***/
   35676     HRESULT (STDMETHODCALLTYPE *SetFileID)(
   35677         IFileSystemBindData2* This,
   35678         LARGE_INTEGER liFileID);
   35679 
   35680     HRESULT (STDMETHODCALLTYPE *GetFileID)(
   35681         IFileSystemBindData2* This,
   35682         LARGE_INTEGER *pliFileID);
   35683 
   35684     HRESULT (STDMETHODCALLTYPE *SetJunctionCLSID)(
   35685         IFileSystemBindData2* This,
   35686         REFCLSID clsid);
   35687 
   35688     HRESULT (STDMETHODCALLTYPE *GetJunctionCLSID)(
   35689         IFileSystemBindData2* This,
   35690         CLSID *pclsid);
   35691 
   35692     END_INTERFACE
   35693 } IFileSystemBindData2Vtbl;
   35694 interface IFileSystemBindData2 {
   35695     CONST_VTBL IFileSystemBindData2Vtbl* lpVtbl;
   35696 };
   35697 
   35698 #ifdef COBJMACROS
   35699 #ifndef WIDL_C_INLINE_WRAPPERS
   35700 /*** IUnknown methods ***/
   35701 #define IFileSystemBindData2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   35702 #define IFileSystemBindData2_AddRef(This) (This)->lpVtbl->AddRef(This)
   35703 #define IFileSystemBindData2_Release(This) (This)->lpVtbl->Release(This)
   35704 /*** IFileSystemBindData methods ***/
   35705 #define IFileSystemBindData2_SetFindData(This,pfd) (This)->lpVtbl->SetFindData(This,pfd)
   35706 #define IFileSystemBindData2_GetFindData(This,pfd) (This)->lpVtbl->GetFindData(This,pfd)
   35707 /*** IFileSystemBindData2 methods ***/
   35708 #define IFileSystemBindData2_SetFileID(This,liFileID) (This)->lpVtbl->SetFileID(This,liFileID)
   35709 #define IFileSystemBindData2_GetFileID(This,pliFileID) (This)->lpVtbl->GetFileID(This,pliFileID)
   35710 #define IFileSystemBindData2_SetJunctionCLSID(This,clsid) (This)->lpVtbl->SetJunctionCLSID(This,clsid)
   35711 #define IFileSystemBindData2_GetJunctionCLSID(This,pclsid) (This)->lpVtbl->GetJunctionCLSID(This,pclsid)
   35712 #else
   35713 /*** IUnknown methods ***/
   35714 static FORCEINLINE HRESULT IFileSystemBindData2_QueryInterface(IFileSystemBindData2* This,REFIID riid,void **ppvObject) {
   35715     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   35716 }
   35717 static FORCEINLINE ULONG IFileSystemBindData2_AddRef(IFileSystemBindData2* This) {
   35718     return This->lpVtbl->AddRef(This);
   35719 }
   35720 static FORCEINLINE ULONG IFileSystemBindData2_Release(IFileSystemBindData2* This) {
   35721     return This->lpVtbl->Release(This);
   35722 }
   35723 /*** IFileSystemBindData methods ***/
   35724 static FORCEINLINE HRESULT IFileSystemBindData2_SetFindData(IFileSystemBindData2* This,const WIN32_FIND_DATAW *pfd) {
   35725     return This->lpVtbl->SetFindData(This,pfd);
   35726 }
   35727 static FORCEINLINE HRESULT IFileSystemBindData2_GetFindData(IFileSystemBindData2* This,WIN32_FIND_DATAW *pfd) {
   35728     return This->lpVtbl->GetFindData(This,pfd);
   35729 }
   35730 /*** IFileSystemBindData2 methods ***/
   35731 static FORCEINLINE HRESULT IFileSystemBindData2_SetFileID(IFileSystemBindData2* This,LARGE_INTEGER liFileID) {
   35732     return This->lpVtbl->SetFileID(This,liFileID);
   35733 }
   35734 static FORCEINLINE HRESULT IFileSystemBindData2_GetFileID(IFileSystemBindData2* This,LARGE_INTEGER *pliFileID) {
   35735     return This->lpVtbl->GetFileID(This,pliFileID);
   35736 }
   35737 static FORCEINLINE HRESULT IFileSystemBindData2_SetJunctionCLSID(IFileSystemBindData2* This,REFCLSID clsid) {
   35738     return This->lpVtbl->SetJunctionCLSID(This,clsid);
   35739 }
   35740 static FORCEINLINE HRESULT IFileSystemBindData2_GetJunctionCLSID(IFileSystemBindData2* This,CLSID *pclsid) {
   35741     return This->lpVtbl->GetJunctionCLSID(This,pclsid);
   35742 }
   35743 #endif
   35744 #endif
   35745 
   35746 #endif
   35747 
   35748 HRESULT STDMETHODCALLTYPE IFileSystemBindData2_SetFileID_Proxy(
   35749     IFileSystemBindData2* This,
   35750     LARGE_INTEGER liFileID);
   35751 void __RPC_STUB IFileSystemBindData2_SetFileID_Stub(
   35752     IRpcStubBuffer* This,
   35753     IRpcChannelBuffer* pRpcChannelBuffer,
   35754     PRPC_MESSAGE pRpcMessage,
   35755     DWORD* pdwStubPhase);
   35756 HRESULT STDMETHODCALLTYPE IFileSystemBindData2_GetFileID_Proxy(
   35757     IFileSystemBindData2* This,
   35758     LARGE_INTEGER *pliFileID);
   35759 void __RPC_STUB IFileSystemBindData2_GetFileID_Stub(
   35760     IRpcStubBuffer* This,
   35761     IRpcChannelBuffer* pRpcChannelBuffer,
   35762     PRPC_MESSAGE pRpcMessage,
   35763     DWORD* pdwStubPhase);
   35764 HRESULT STDMETHODCALLTYPE IFileSystemBindData2_SetJunctionCLSID_Proxy(
   35765     IFileSystemBindData2* This,
   35766     REFCLSID clsid);
   35767 void __RPC_STUB IFileSystemBindData2_SetJunctionCLSID_Stub(
   35768     IRpcStubBuffer* This,
   35769     IRpcChannelBuffer* pRpcChannelBuffer,
   35770     PRPC_MESSAGE pRpcMessage,
   35771     DWORD* pdwStubPhase);
   35772 HRESULT STDMETHODCALLTYPE IFileSystemBindData2_GetJunctionCLSID_Proxy(
   35773     IFileSystemBindData2* This,
   35774     CLSID *pclsid);
   35775 void __RPC_STUB IFileSystemBindData2_GetJunctionCLSID_Stub(
   35776     IRpcStubBuffer* This,
   35777     IRpcChannelBuffer* pRpcChannelBuffer,
   35778     PRPC_MESSAGE pRpcMessage,
   35779     DWORD* pdwStubPhase);
   35780 
   35781 #endif  /* __IFileSystemBindData2_INTERFACE_DEFINED__ */
   35782 
   35783 
   35784 #if NTDDI_VERSION >= NTDDI_WIN7
   35785 /*****************************************************************************
   35786  * ICustomDestinationList interface
   35787  */
   35788 #ifndef __ICustomDestinationList_INTERFACE_DEFINED__
   35789 #define __ICustomDestinationList_INTERFACE_DEFINED__
   35790 
   35791 typedef enum KNOWNDESTCATEGORY {
   35792     KDC_FREQUENT = 1,
   35793     KDC_RECENT = 2
   35794 } KNOWNDESTCATEGORY;
   35795 
   35796 DEFINE_GUID(IID_ICustomDestinationList, 0x6332debf, 0x87b5, 0x4670, 0x90,0xc0, 0x5e,0x57,0xb4,0x08,0xa4,0x9e);
   35797 #if defined(__cplusplus) && !defined(CINTERFACE)
   35798 MIDL_INTERFACE("6332debf-87b5-4670-90c0-5e57b408a49e")
   35799 ICustomDestinationList : public IUnknown
   35800 {
   35801     virtual HRESULT STDMETHODCALLTYPE SetAppID(
   35802         LPCWSTR pszAppID) = 0;
   35803 
   35804     virtual HRESULT STDMETHODCALLTYPE BeginList(
   35805         UINT *pcMinSlots,
   35806         REFIID riid,
   35807         void **ppv) = 0;
   35808 
   35809     virtual HRESULT STDMETHODCALLTYPE AppendCategory(
   35810         LPCWSTR pszCategory,
   35811         IObjectArray *poa) = 0;
   35812 
   35813     virtual HRESULT STDMETHODCALLTYPE AppendKnownCategory(
   35814         KNOWNDESTCATEGORY category) = 0;
   35815 
   35816     virtual HRESULT STDMETHODCALLTYPE AddUserTasks(
   35817         IObjectArray *poa) = 0;
   35818 
   35819     virtual HRESULT STDMETHODCALLTYPE CommitList(
   35820         ) = 0;
   35821 
   35822     virtual HRESULT STDMETHODCALLTYPE GetRemovedDestinations(
   35823         REFIID riid,
   35824         void **ppv) = 0;
   35825 
   35826     virtual HRESULT STDMETHODCALLTYPE DeleteList(
   35827         LPCWSTR pszAppID) = 0;
   35828 
   35829     virtual HRESULT STDMETHODCALLTYPE AbortList(
   35830         ) = 0;
   35831 
   35832 };
   35833 #ifdef __CRT_UUID_DECL
   35834 __CRT_UUID_DECL(ICustomDestinationList, 0x6332debf, 0x87b5, 0x4670, 0x90,0xc0, 0x5e,0x57,0xb4,0x08,0xa4,0x9e)
   35835 #endif
   35836 #else
   35837 typedef struct ICustomDestinationListVtbl {
   35838     BEGIN_INTERFACE
   35839 
   35840     /*** IUnknown methods ***/
   35841     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   35842         ICustomDestinationList* This,
   35843         REFIID riid,
   35844         void **ppvObject);
   35845 
   35846     ULONG (STDMETHODCALLTYPE *AddRef)(
   35847         ICustomDestinationList* This);
   35848 
   35849     ULONG (STDMETHODCALLTYPE *Release)(
   35850         ICustomDestinationList* This);
   35851 
   35852     /*** ICustomDestinationList methods ***/
   35853     HRESULT (STDMETHODCALLTYPE *SetAppID)(
   35854         ICustomDestinationList* This,
   35855         LPCWSTR pszAppID);
   35856 
   35857     HRESULT (STDMETHODCALLTYPE *BeginList)(
   35858         ICustomDestinationList* This,
   35859         UINT *pcMinSlots,
   35860         REFIID riid,
   35861         void **ppv);
   35862 
   35863     HRESULT (STDMETHODCALLTYPE *AppendCategory)(
   35864         ICustomDestinationList* This,
   35865         LPCWSTR pszCategory,
   35866         IObjectArray *poa);
   35867 
   35868     HRESULT (STDMETHODCALLTYPE *AppendKnownCategory)(
   35869         ICustomDestinationList* This,
   35870         KNOWNDESTCATEGORY category);
   35871 
   35872     HRESULT (STDMETHODCALLTYPE *AddUserTasks)(
   35873         ICustomDestinationList* This,
   35874         IObjectArray *poa);
   35875 
   35876     HRESULT (STDMETHODCALLTYPE *CommitList)(
   35877         ICustomDestinationList* This);
   35878 
   35879     HRESULT (STDMETHODCALLTYPE *GetRemovedDestinations)(
   35880         ICustomDestinationList* This,
   35881         REFIID riid,
   35882         void **ppv);
   35883 
   35884     HRESULT (STDMETHODCALLTYPE *DeleteList)(
   35885         ICustomDestinationList* This,
   35886         LPCWSTR pszAppID);
   35887 
   35888     HRESULT (STDMETHODCALLTYPE *AbortList)(
   35889         ICustomDestinationList* This);
   35890 
   35891     END_INTERFACE
   35892 } ICustomDestinationListVtbl;
   35893 interface ICustomDestinationList {
   35894     CONST_VTBL ICustomDestinationListVtbl* lpVtbl;
   35895 };
   35896 
   35897 #ifdef COBJMACROS
   35898 #ifndef WIDL_C_INLINE_WRAPPERS
   35899 /*** IUnknown methods ***/
   35900 #define ICustomDestinationList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   35901 #define ICustomDestinationList_AddRef(This) (This)->lpVtbl->AddRef(This)
   35902 #define ICustomDestinationList_Release(This) (This)->lpVtbl->Release(This)
   35903 /*** ICustomDestinationList methods ***/
   35904 #define ICustomDestinationList_SetAppID(This,pszAppID) (This)->lpVtbl->SetAppID(This,pszAppID)
   35905 #define ICustomDestinationList_BeginList(This,pcMinSlots,riid,ppv) (This)->lpVtbl->BeginList(This,pcMinSlots,riid,ppv)
   35906 #define ICustomDestinationList_AppendCategory(This,pszCategory,poa) (This)->lpVtbl->AppendCategory(This,pszCategory,poa)
   35907 #define ICustomDestinationList_AppendKnownCategory(This,category) (This)->lpVtbl->AppendKnownCategory(This,category)
   35908 #define ICustomDestinationList_AddUserTasks(This,poa) (This)->lpVtbl->AddUserTasks(This,poa)
   35909 #define ICustomDestinationList_CommitList(This) (This)->lpVtbl->CommitList(This)
   35910 #define ICustomDestinationList_GetRemovedDestinations(This,riid,ppv) (This)->lpVtbl->GetRemovedDestinations(This,riid,ppv)
   35911 #define ICustomDestinationList_DeleteList(This,pszAppID) (This)->lpVtbl->DeleteList(This,pszAppID)
   35912 #define ICustomDestinationList_AbortList(This) (This)->lpVtbl->AbortList(This)
   35913 #else
   35914 /*** IUnknown methods ***/
   35915 static FORCEINLINE HRESULT ICustomDestinationList_QueryInterface(ICustomDestinationList* This,REFIID riid,void **ppvObject) {
   35916     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   35917 }
   35918 static FORCEINLINE ULONG ICustomDestinationList_AddRef(ICustomDestinationList* This) {
   35919     return This->lpVtbl->AddRef(This);
   35920 }
   35921 static FORCEINLINE ULONG ICustomDestinationList_Release(ICustomDestinationList* This) {
   35922     return This->lpVtbl->Release(This);
   35923 }
   35924 /*** ICustomDestinationList methods ***/
   35925 static FORCEINLINE HRESULT ICustomDestinationList_SetAppID(ICustomDestinationList* This,LPCWSTR pszAppID) {
   35926     return This->lpVtbl->SetAppID(This,pszAppID);
   35927 }
   35928 static FORCEINLINE HRESULT ICustomDestinationList_BeginList(ICustomDestinationList* This,UINT *pcMinSlots,REFIID riid,void **ppv) {
   35929     return This->lpVtbl->BeginList(This,pcMinSlots,riid,ppv);
   35930 }
   35931 static FORCEINLINE HRESULT ICustomDestinationList_AppendCategory(ICustomDestinationList* This,LPCWSTR pszCategory,IObjectArray *poa) {
   35932     return This->lpVtbl->AppendCategory(This,pszCategory,poa);
   35933 }
   35934 static FORCEINLINE HRESULT ICustomDestinationList_AppendKnownCategory(ICustomDestinationList* This,KNOWNDESTCATEGORY category) {
   35935     return This->lpVtbl->AppendKnownCategory(This,category);
   35936 }
   35937 static FORCEINLINE HRESULT ICustomDestinationList_AddUserTasks(ICustomDestinationList* This,IObjectArray *poa) {
   35938     return This->lpVtbl->AddUserTasks(This,poa);
   35939 }
   35940 static FORCEINLINE HRESULT ICustomDestinationList_CommitList(ICustomDestinationList* This) {
   35941     return This->lpVtbl->CommitList(This);
   35942 }
   35943 static FORCEINLINE HRESULT ICustomDestinationList_GetRemovedDestinations(ICustomDestinationList* This,REFIID riid,void **ppv) {
   35944     return This->lpVtbl->GetRemovedDestinations(This,riid,ppv);
   35945 }
   35946 static FORCEINLINE HRESULT ICustomDestinationList_DeleteList(ICustomDestinationList* This,LPCWSTR pszAppID) {
   35947     return This->lpVtbl->DeleteList(This,pszAppID);
   35948 }
   35949 static FORCEINLINE HRESULT ICustomDestinationList_AbortList(ICustomDestinationList* This) {
   35950     return This->lpVtbl->AbortList(This);
   35951 }
   35952 #endif
   35953 #endif
   35954 
   35955 #endif
   35956 
   35957 HRESULT STDMETHODCALLTYPE ICustomDestinationList_SetAppID_Proxy(
   35958     ICustomDestinationList* This,
   35959     LPCWSTR pszAppID);
   35960 void __RPC_STUB ICustomDestinationList_SetAppID_Stub(
   35961     IRpcStubBuffer* This,
   35962     IRpcChannelBuffer* pRpcChannelBuffer,
   35963     PRPC_MESSAGE pRpcMessage,
   35964     DWORD* pdwStubPhase);
   35965 HRESULT STDMETHODCALLTYPE ICustomDestinationList_BeginList_Proxy(
   35966     ICustomDestinationList* This,
   35967     UINT *pcMinSlots,
   35968     REFIID riid,
   35969     void **ppv);
   35970 void __RPC_STUB ICustomDestinationList_BeginList_Stub(
   35971     IRpcStubBuffer* This,
   35972     IRpcChannelBuffer* pRpcChannelBuffer,
   35973     PRPC_MESSAGE pRpcMessage,
   35974     DWORD* pdwStubPhase);
   35975 HRESULT STDMETHODCALLTYPE ICustomDestinationList_AppendCategory_Proxy(
   35976     ICustomDestinationList* This,
   35977     LPCWSTR pszCategory,
   35978     IObjectArray *poa);
   35979 void __RPC_STUB ICustomDestinationList_AppendCategory_Stub(
   35980     IRpcStubBuffer* This,
   35981     IRpcChannelBuffer* pRpcChannelBuffer,
   35982     PRPC_MESSAGE pRpcMessage,
   35983     DWORD* pdwStubPhase);
   35984 HRESULT STDMETHODCALLTYPE ICustomDestinationList_AppendKnownCategory_Proxy(
   35985     ICustomDestinationList* This,
   35986     KNOWNDESTCATEGORY category);
   35987 void __RPC_STUB ICustomDestinationList_AppendKnownCategory_Stub(
   35988     IRpcStubBuffer* This,
   35989     IRpcChannelBuffer* pRpcChannelBuffer,
   35990     PRPC_MESSAGE pRpcMessage,
   35991     DWORD* pdwStubPhase);
   35992 HRESULT STDMETHODCALLTYPE ICustomDestinationList_AddUserTasks_Proxy(
   35993     ICustomDestinationList* This,
   35994     IObjectArray *poa);
   35995 void __RPC_STUB ICustomDestinationList_AddUserTasks_Stub(
   35996     IRpcStubBuffer* This,
   35997     IRpcChannelBuffer* pRpcChannelBuffer,
   35998     PRPC_MESSAGE pRpcMessage,
   35999     DWORD* pdwStubPhase);
   36000 HRESULT STDMETHODCALLTYPE ICustomDestinationList_CommitList_Proxy(
   36001     ICustomDestinationList* This);
   36002 void __RPC_STUB ICustomDestinationList_CommitList_Stub(
   36003     IRpcStubBuffer* This,
   36004     IRpcChannelBuffer* pRpcChannelBuffer,
   36005     PRPC_MESSAGE pRpcMessage,
   36006     DWORD* pdwStubPhase);
   36007 HRESULT STDMETHODCALLTYPE ICustomDestinationList_GetRemovedDestinations_Proxy(
   36008     ICustomDestinationList* This,
   36009     REFIID riid,
   36010     void **ppv);
   36011 void __RPC_STUB ICustomDestinationList_GetRemovedDestinations_Stub(
   36012     IRpcStubBuffer* This,
   36013     IRpcChannelBuffer* pRpcChannelBuffer,
   36014     PRPC_MESSAGE pRpcMessage,
   36015     DWORD* pdwStubPhase);
   36016 HRESULT STDMETHODCALLTYPE ICustomDestinationList_DeleteList_Proxy(
   36017     ICustomDestinationList* This,
   36018     LPCWSTR pszAppID);
   36019 void __RPC_STUB ICustomDestinationList_DeleteList_Stub(
   36020     IRpcStubBuffer* This,
   36021     IRpcChannelBuffer* pRpcChannelBuffer,
   36022     PRPC_MESSAGE pRpcMessage,
   36023     DWORD* pdwStubPhase);
   36024 HRESULT STDMETHODCALLTYPE ICustomDestinationList_AbortList_Proxy(
   36025     ICustomDestinationList* This);
   36026 void __RPC_STUB ICustomDestinationList_AbortList_Stub(
   36027     IRpcStubBuffer* This,
   36028     IRpcChannelBuffer* pRpcChannelBuffer,
   36029     PRPC_MESSAGE pRpcMessage,
   36030     DWORD* pdwStubPhase);
   36031 
   36032 #endif  /* __ICustomDestinationList_INTERFACE_DEFINED__ */
   36033 
   36034 
   36035 /*****************************************************************************
   36036  * IApplicationDestinations interface
   36037  */
   36038 #ifndef __IApplicationDestinations_INTERFACE_DEFINED__
   36039 #define __IApplicationDestinations_INTERFACE_DEFINED__
   36040 
   36041 DEFINE_GUID(IID_IApplicationDestinations, 0x12337d35, 0x94c6, 0x48a0, 0xbc,0xe7, 0x6a,0x9c,0x69,0xd4,0xd6,0x00);
   36042 #if defined(__cplusplus) && !defined(CINTERFACE)
   36043 MIDL_INTERFACE("12337d35-94c6-48a0-bce7-6a9c69d4d600")
   36044 IApplicationDestinations : public IUnknown
   36045 {
   36046     virtual HRESULT STDMETHODCALLTYPE SetAppID(
   36047         LPCWSTR pszAppID) = 0;
   36048 
   36049     virtual HRESULT STDMETHODCALLTYPE RemoveDestination(
   36050         IUnknown *punk) = 0;
   36051 
   36052     virtual HRESULT STDMETHODCALLTYPE RemoveAllDestinations(
   36053         ) = 0;
   36054 
   36055 };
   36056 #ifdef __CRT_UUID_DECL
   36057 __CRT_UUID_DECL(IApplicationDestinations, 0x12337d35, 0x94c6, 0x48a0, 0xbc,0xe7, 0x6a,0x9c,0x69,0xd4,0xd6,0x00)
   36058 #endif
   36059 #else
   36060 typedef struct IApplicationDestinationsVtbl {
   36061     BEGIN_INTERFACE
   36062 
   36063     /*** IUnknown methods ***/
   36064     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   36065         IApplicationDestinations* This,
   36066         REFIID riid,
   36067         void **ppvObject);
   36068 
   36069     ULONG (STDMETHODCALLTYPE *AddRef)(
   36070         IApplicationDestinations* This);
   36071 
   36072     ULONG (STDMETHODCALLTYPE *Release)(
   36073         IApplicationDestinations* This);
   36074 
   36075     /*** IApplicationDestinations methods ***/
   36076     HRESULT (STDMETHODCALLTYPE *SetAppID)(
   36077         IApplicationDestinations* This,
   36078         LPCWSTR pszAppID);
   36079 
   36080     HRESULT (STDMETHODCALLTYPE *RemoveDestination)(
   36081         IApplicationDestinations* This,
   36082         IUnknown *punk);
   36083 
   36084     HRESULT (STDMETHODCALLTYPE *RemoveAllDestinations)(
   36085         IApplicationDestinations* This);
   36086 
   36087     END_INTERFACE
   36088 } IApplicationDestinationsVtbl;
   36089 interface IApplicationDestinations {
   36090     CONST_VTBL IApplicationDestinationsVtbl* lpVtbl;
   36091 };
   36092 
   36093 #ifdef COBJMACROS
   36094 #ifndef WIDL_C_INLINE_WRAPPERS
   36095 /*** IUnknown methods ***/
   36096 #define IApplicationDestinations_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   36097 #define IApplicationDestinations_AddRef(This) (This)->lpVtbl->AddRef(This)
   36098 #define IApplicationDestinations_Release(This) (This)->lpVtbl->Release(This)
   36099 /*** IApplicationDestinations methods ***/
   36100 #define IApplicationDestinations_SetAppID(This,pszAppID) (This)->lpVtbl->SetAppID(This,pszAppID)
   36101 #define IApplicationDestinations_RemoveDestination(This,punk) (This)->lpVtbl->RemoveDestination(This,punk)
   36102 #define IApplicationDestinations_RemoveAllDestinations(This) (This)->lpVtbl->RemoveAllDestinations(This)
   36103 #else
   36104 /*** IUnknown methods ***/
   36105 static FORCEINLINE HRESULT IApplicationDestinations_QueryInterface(IApplicationDestinations* This,REFIID riid,void **ppvObject) {
   36106     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   36107 }
   36108 static FORCEINLINE ULONG IApplicationDestinations_AddRef(IApplicationDestinations* This) {
   36109     return This->lpVtbl->AddRef(This);
   36110 }
   36111 static FORCEINLINE ULONG IApplicationDestinations_Release(IApplicationDestinations* This) {
   36112     return This->lpVtbl->Release(This);
   36113 }
   36114 /*** IApplicationDestinations methods ***/
   36115 static FORCEINLINE HRESULT IApplicationDestinations_SetAppID(IApplicationDestinations* This,LPCWSTR pszAppID) {
   36116     return This->lpVtbl->SetAppID(This,pszAppID);
   36117 }
   36118 static FORCEINLINE HRESULT IApplicationDestinations_RemoveDestination(IApplicationDestinations* This,IUnknown *punk) {
   36119     return This->lpVtbl->RemoveDestination(This,punk);
   36120 }
   36121 static FORCEINLINE HRESULT IApplicationDestinations_RemoveAllDestinations(IApplicationDestinations* This) {
   36122     return This->lpVtbl->RemoveAllDestinations(This);
   36123 }
   36124 #endif
   36125 #endif
   36126 
   36127 #endif
   36128 
   36129 HRESULT STDMETHODCALLTYPE IApplicationDestinations_SetAppID_Proxy(
   36130     IApplicationDestinations* This,
   36131     LPCWSTR pszAppID);
   36132 void __RPC_STUB IApplicationDestinations_SetAppID_Stub(
   36133     IRpcStubBuffer* This,
   36134     IRpcChannelBuffer* pRpcChannelBuffer,
   36135     PRPC_MESSAGE pRpcMessage,
   36136     DWORD* pdwStubPhase);
   36137 HRESULT STDMETHODCALLTYPE IApplicationDestinations_RemoveDestination_Proxy(
   36138     IApplicationDestinations* This,
   36139     IUnknown *punk);
   36140 void __RPC_STUB IApplicationDestinations_RemoveDestination_Stub(
   36141     IRpcStubBuffer* This,
   36142     IRpcChannelBuffer* pRpcChannelBuffer,
   36143     PRPC_MESSAGE pRpcMessage,
   36144     DWORD* pdwStubPhase);
   36145 HRESULT STDMETHODCALLTYPE IApplicationDestinations_RemoveAllDestinations_Proxy(
   36146     IApplicationDestinations* This);
   36147 void __RPC_STUB IApplicationDestinations_RemoveAllDestinations_Stub(
   36148     IRpcStubBuffer* This,
   36149     IRpcChannelBuffer* pRpcChannelBuffer,
   36150     PRPC_MESSAGE pRpcMessage,
   36151     DWORD* pdwStubPhase);
   36152 
   36153 #endif  /* __IApplicationDestinations_INTERFACE_DEFINED__ */
   36154 
   36155 
   36156 /*****************************************************************************
   36157  * IApplicationDocumentLists interface
   36158  */
   36159 #ifndef __IApplicationDocumentLists_INTERFACE_DEFINED__
   36160 #define __IApplicationDocumentLists_INTERFACE_DEFINED__
   36161 
   36162 typedef enum APPDOCLISTTYPE {
   36163     ADLT_RECENT = 0,
   36164     ADLT_FREQUENT = 1
   36165 } APPDOCLISTTYPE;
   36166 
   36167 DEFINE_GUID(IID_IApplicationDocumentLists, 0x3c594f9f, 0x9f30, 0x47a1, 0x97,0x9a, 0xc9,0xe8,0x3d,0x3d,0x0a,0x06);
   36168 #if defined(__cplusplus) && !defined(CINTERFACE)
   36169 MIDL_INTERFACE("3c594f9f-9f30-47a1-979a-c9e83d3d0a06")
   36170 IApplicationDocumentLists : public IUnknown
   36171 {
   36172     virtual HRESULT STDMETHODCALLTYPE SetAppID(
   36173         LPCWSTR pszAppID) = 0;
   36174 
   36175     virtual HRESULT STDMETHODCALLTYPE GetList(
   36176         APPDOCLISTTYPE listtype,
   36177         UINT cItemsDesired,
   36178         REFIID riid,
   36179         void **ppv) = 0;
   36180 
   36181 };
   36182 #ifdef __CRT_UUID_DECL
   36183 __CRT_UUID_DECL(IApplicationDocumentLists, 0x3c594f9f, 0x9f30, 0x47a1, 0x97,0x9a, 0xc9,0xe8,0x3d,0x3d,0x0a,0x06)
   36184 #endif
   36185 #else
   36186 typedef struct IApplicationDocumentListsVtbl {
   36187     BEGIN_INTERFACE
   36188 
   36189     /*** IUnknown methods ***/
   36190     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   36191         IApplicationDocumentLists* This,
   36192         REFIID riid,
   36193         void **ppvObject);
   36194 
   36195     ULONG (STDMETHODCALLTYPE *AddRef)(
   36196         IApplicationDocumentLists* This);
   36197 
   36198     ULONG (STDMETHODCALLTYPE *Release)(
   36199         IApplicationDocumentLists* This);
   36200 
   36201     /*** IApplicationDocumentLists methods ***/
   36202     HRESULT (STDMETHODCALLTYPE *SetAppID)(
   36203         IApplicationDocumentLists* This,
   36204         LPCWSTR pszAppID);
   36205 
   36206     HRESULT (STDMETHODCALLTYPE *GetList)(
   36207         IApplicationDocumentLists* This,
   36208         APPDOCLISTTYPE listtype,
   36209         UINT cItemsDesired,
   36210         REFIID riid,
   36211         void **ppv);
   36212 
   36213     END_INTERFACE
   36214 } IApplicationDocumentListsVtbl;
   36215 interface IApplicationDocumentLists {
   36216     CONST_VTBL IApplicationDocumentListsVtbl* lpVtbl;
   36217 };
   36218 
   36219 #ifdef COBJMACROS
   36220 #ifndef WIDL_C_INLINE_WRAPPERS
   36221 /*** IUnknown methods ***/
   36222 #define IApplicationDocumentLists_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   36223 #define IApplicationDocumentLists_AddRef(This) (This)->lpVtbl->AddRef(This)
   36224 #define IApplicationDocumentLists_Release(This) (This)->lpVtbl->Release(This)
   36225 /*** IApplicationDocumentLists methods ***/
   36226 #define IApplicationDocumentLists_SetAppID(This,pszAppID) (This)->lpVtbl->SetAppID(This,pszAppID)
   36227 #define IApplicationDocumentLists_GetList(This,listtype,cItemsDesired,riid,ppv) (This)->lpVtbl->GetList(This,listtype,cItemsDesired,riid,ppv)
   36228 #else
   36229 /*** IUnknown methods ***/
   36230 static FORCEINLINE HRESULT IApplicationDocumentLists_QueryInterface(IApplicationDocumentLists* This,REFIID riid,void **ppvObject) {
   36231     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   36232 }
   36233 static FORCEINLINE ULONG IApplicationDocumentLists_AddRef(IApplicationDocumentLists* This) {
   36234     return This->lpVtbl->AddRef(This);
   36235 }
   36236 static FORCEINLINE ULONG IApplicationDocumentLists_Release(IApplicationDocumentLists* This) {
   36237     return This->lpVtbl->Release(This);
   36238 }
   36239 /*** IApplicationDocumentLists methods ***/
   36240 static FORCEINLINE HRESULT IApplicationDocumentLists_SetAppID(IApplicationDocumentLists* This,LPCWSTR pszAppID) {
   36241     return This->lpVtbl->SetAppID(This,pszAppID);
   36242 }
   36243 static FORCEINLINE HRESULT IApplicationDocumentLists_GetList(IApplicationDocumentLists* This,APPDOCLISTTYPE listtype,UINT cItemsDesired,REFIID riid,void **ppv) {
   36244     return This->lpVtbl->GetList(This,listtype,cItemsDesired,riid,ppv);
   36245 }
   36246 #endif
   36247 #endif
   36248 
   36249 #endif
   36250 
   36251 HRESULT STDMETHODCALLTYPE IApplicationDocumentLists_SetAppID_Proxy(
   36252     IApplicationDocumentLists* This,
   36253     LPCWSTR pszAppID);
   36254 void __RPC_STUB IApplicationDocumentLists_SetAppID_Stub(
   36255     IRpcStubBuffer* This,
   36256     IRpcChannelBuffer* pRpcChannelBuffer,
   36257     PRPC_MESSAGE pRpcMessage,
   36258     DWORD* pdwStubPhase);
   36259 HRESULT STDMETHODCALLTYPE IApplicationDocumentLists_GetList_Proxy(
   36260     IApplicationDocumentLists* This,
   36261     APPDOCLISTTYPE listtype,
   36262     UINT cItemsDesired,
   36263     REFIID riid,
   36264     void **ppv);
   36265 void __RPC_STUB IApplicationDocumentLists_GetList_Stub(
   36266     IRpcStubBuffer* This,
   36267     IRpcChannelBuffer* pRpcChannelBuffer,
   36268     PRPC_MESSAGE pRpcMessage,
   36269     DWORD* pdwStubPhase);
   36270 
   36271 #endif  /* __IApplicationDocumentLists_INTERFACE_DEFINED__ */
   36272 
   36273 
   36274 /*****************************************************************************
   36275  * IObjectWithAppUserModelID interface
   36276  */
   36277 #ifndef __IObjectWithAppUserModelID_INTERFACE_DEFINED__
   36278 #define __IObjectWithAppUserModelID_INTERFACE_DEFINED__
   36279 
   36280 DEFINE_GUID(IID_IObjectWithAppUserModelID, 0x36db0196, 0x9665, 0x46d1, 0x9b,0xa7, 0xd3,0x70,0x9e,0xec,0xf9,0xed);
   36281 #if defined(__cplusplus) && !defined(CINTERFACE)
   36282 MIDL_INTERFACE("36db0196-9665-46d1-9ba7-d3709eecf9ed")
   36283 IObjectWithAppUserModelID : public IUnknown
   36284 {
   36285     virtual HRESULT STDMETHODCALLTYPE SetAppID(
   36286         LPCWSTR pszAppID) = 0;
   36287 
   36288     virtual HRESULT STDMETHODCALLTYPE GetAppID(
   36289         LPWSTR *ppszAppID) = 0;
   36290 
   36291 };
   36292 #ifdef __CRT_UUID_DECL
   36293 __CRT_UUID_DECL(IObjectWithAppUserModelID, 0x36db0196, 0x9665, 0x46d1, 0x9b,0xa7, 0xd3,0x70,0x9e,0xec,0xf9,0xed)
   36294 #endif
   36295 #else
   36296 typedef struct IObjectWithAppUserModelIDVtbl {
   36297     BEGIN_INTERFACE
   36298 
   36299     /*** IUnknown methods ***/
   36300     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   36301         IObjectWithAppUserModelID* This,
   36302         REFIID riid,
   36303         void **ppvObject);
   36304 
   36305     ULONG (STDMETHODCALLTYPE *AddRef)(
   36306         IObjectWithAppUserModelID* This);
   36307 
   36308     ULONG (STDMETHODCALLTYPE *Release)(
   36309         IObjectWithAppUserModelID* This);
   36310 
   36311     /*** IObjectWithAppUserModelID methods ***/
   36312     HRESULT (STDMETHODCALLTYPE *SetAppID)(
   36313         IObjectWithAppUserModelID* This,
   36314         LPCWSTR pszAppID);
   36315 
   36316     HRESULT (STDMETHODCALLTYPE *GetAppID)(
   36317         IObjectWithAppUserModelID* This,
   36318         LPWSTR *ppszAppID);
   36319 
   36320     END_INTERFACE
   36321 } IObjectWithAppUserModelIDVtbl;
   36322 interface IObjectWithAppUserModelID {
   36323     CONST_VTBL IObjectWithAppUserModelIDVtbl* lpVtbl;
   36324 };
   36325 
   36326 #ifdef COBJMACROS
   36327 #ifndef WIDL_C_INLINE_WRAPPERS
   36328 /*** IUnknown methods ***/
   36329 #define IObjectWithAppUserModelID_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   36330 #define IObjectWithAppUserModelID_AddRef(This) (This)->lpVtbl->AddRef(This)
   36331 #define IObjectWithAppUserModelID_Release(This) (This)->lpVtbl->Release(This)
   36332 /*** IObjectWithAppUserModelID methods ***/
   36333 #define IObjectWithAppUserModelID_SetAppID(This,pszAppID) (This)->lpVtbl->SetAppID(This,pszAppID)
   36334 #define IObjectWithAppUserModelID_GetAppID(This,ppszAppID) (This)->lpVtbl->GetAppID(This,ppszAppID)
   36335 #else
   36336 /*** IUnknown methods ***/
   36337 static FORCEINLINE HRESULT IObjectWithAppUserModelID_QueryInterface(IObjectWithAppUserModelID* This,REFIID riid,void **ppvObject) {
   36338     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   36339 }
   36340 static FORCEINLINE ULONG IObjectWithAppUserModelID_AddRef(IObjectWithAppUserModelID* This) {
   36341     return This->lpVtbl->AddRef(This);
   36342 }
   36343 static FORCEINLINE ULONG IObjectWithAppUserModelID_Release(IObjectWithAppUserModelID* This) {
   36344     return This->lpVtbl->Release(This);
   36345 }
   36346 /*** IObjectWithAppUserModelID methods ***/
   36347 static FORCEINLINE HRESULT IObjectWithAppUserModelID_SetAppID(IObjectWithAppUserModelID* This,LPCWSTR pszAppID) {
   36348     return This->lpVtbl->SetAppID(This,pszAppID);
   36349 }
   36350 static FORCEINLINE HRESULT IObjectWithAppUserModelID_GetAppID(IObjectWithAppUserModelID* This,LPWSTR *ppszAppID) {
   36351     return This->lpVtbl->GetAppID(This,ppszAppID);
   36352 }
   36353 #endif
   36354 #endif
   36355 
   36356 #endif
   36357 
   36358 HRESULT STDMETHODCALLTYPE IObjectWithAppUserModelID_SetAppID_Proxy(
   36359     IObjectWithAppUserModelID* This,
   36360     LPCWSTR pszAppID);
   36361 void __RPC_STUB IObjectWithAppUserModelID_SetAppID_Stub(
   36362     IRpcStubBuffer* This,
   36363     IRpcChannelBuffer* pRpcChannelBuffer,
   36364     PRPC_MESSAGE pRpcMessage,
   36365     DWORD* pdwStubPhase);
   36366 HRESULT STDMETHODCALLTYPE IObjectWithAppUserModelID_GetAppID_Proxy(
   36367     IObjectWithAppUserModelID* This,
   36368     LPWSTR *ppszAppID);
   36369 void __RPC_STUB IObjectWithAppUserModelID_GetAppID_Stub(
   36370     IRpcStubBuffer* This,
   36371     IRpcChannelBuffer* pRpcChannelBuffer,
   36372     PRPC_MESSAGE pRpcMessage,
   36373     DWORD* pdwStubPhase);
   36374 
   36375 #endif  /* __IObjectWithAppUserModelID_INTERFACE_DEFINED__ */
   36376 
   36377 
   36378 /*****************************************************************************
   36379  * IObjectWithProgID interface
   36380  */
   36381 #ifndef __IObjectWithProgID_INTERFACE_DEFINED__
   36382 #define __IObjectWithProgID_INTERFACE_DEFINED__
   36383 
   36384 DEFINE_GUID(IID_IObjectWithProgID, 0x71e806fb, 0x8dee, 0x46fc, 0xbf,0x8c, 0x77,0x48,0xa8,0xa1,0xae,0x13);
   36385 #if defined(__cplusplus) && !defined(CINTERFACE)
   36386 MIDL_INTERFACE("71e806fb-8dee-46fc-bf8c-7748a8a1ae13")
   36387 IObjectWithProgID : public IUnknown
   36388 {
   36389     virtual HRESULT STDMETHODCALLTYPE SetProgID(
   36390         LPCWSTR pszProgID) = 0;
   36391 
   36392     virtual HRESULT STDMETHODCALLTYPE GetProgID(
   36393         LPWSTR *ppszProgID) = 0;
   36394 
   36395 };
   36396 #ifdef __CRT_UUID_DECL
   36397 __CRT_UUID_DECL(IObjectWithProgID, 0x71e806fb, 0x8dee, 0x46fc, 0xbf,0x8c, 0x77,0x48,0xa8,0xa1,0xae,0x13)
   36398 #endif
   36399 #else
   36400 typedef struct IObjectWithProgIDVtbl {
   36401     BEGIN_INTERFACE
   36402 
   36403     /*** IUnknown methods ***/
   36404     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   36405         IObjectWithProgID* This,
   36406         REFIID riid,
   36407         void **ppvObject);
   36408 
   36409     ULONG (STDMETHODCALLTYPE *AddRef)(
   36410         IObjectWithProgID* This);
   36411 
   36412     ULONG (STDMETHODCALLTYPE *Release)(
   36413         IObjectWithProgID* This);
   36414 
   36415     /*** IObjectWithProgID methods ***/
   36416     HRESULT (STDMETHODCALLTYPE *SetProgID)(
   36417         IObjectWithProgID* This,
   36418         LPCWSTR pszProgID);
   36419 
   36420     HRESULT (STDMETHODCALLTYPE *GetProgID)(
   36421         IObjectWithProgID* This,
   36422         LPWSTR *ppszProgID);
   36423 
   36424     END_INTERFACE
   36425 } IObjectWithProgIDVtbl;
   36426 interface IObjectWithProgID {
   36427     CONST_VTBL IObjectWithProgIDVtbl* lpVtbl;
   36428 };
   36429 
   36430 #ifdef COBJMACROS
   36431 #ifndef WIDL_C_INLINE_WRAPPERS
   36432 /*** IUnknown methods ***/
   36433 #define IObjectWithProgID_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   36434 #define IObjectWithProgID_AddRef(This) (This)->lpVtbl->AddRef(This)
   36435 #define IObjectWithProgID_Release(This) (This)->lpVtbl->Release(This)
   36436 /*** IObjectWithProgID methods ***/
   36437 #define IObjectWithProgID_SetProgID(This,pszProgID) (This)->lpVtbl->SetProgID(This,pszProgID)
   36438 #define IObjectWithProgID_GetProgID(This,ppszProgID) (This)->lpVtbl->GetProgID(This,ppszProgID)
   36439 #else
   36440 /*** IUnknown methods ***/
   36441 static FORCEINLINE HRESULT IObjectWithProgID_QueryInterface(IObjectWithProgID* This,REFIID riid,void **ppvObject) {
   36442     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   36443 }
   36444 static FORCEINLINE ULONG IObjectWithProgID_AddRef(IObjectWithProgID* This) {
   36445     return This->lpVtbl->AddRef(This);
   36446 }
   36447 static FORCEINLINE ULONG IObjectWithProgID_Release(IObjectWithProgID* This) {
   36448     return This->lpVtbl->Release(This);
   36449 }
   36450 /*** IObjectWithProgID methods ***/
   36451 static FORCEINLINE HRESULT IObjectWithProgID_SetProgID(IObjectWithProgID* This,LPCWSTR pszProgID) {
   36452     return This->lpVtbl->SetProgID(This,pszProgID);
   36453 }
   36454 static FORCEINLINE HRESULT IObjectWithProgID_GetProgID(IObjectWithProgID* This,LPWSTR *ppszProgID) {
   36455     return This->lpVtbl->GetProgID(This,ppszProgID);
   36456 }
   36457 #endif
   36458 #endif
   36459 
   36460 #endif
   36461 
   36462 HRESULT STDMETHODCALLTYPE IObjectWithProgID_SetProgID_Proxy(
   36463     IObjectWithProgID* This,
   36464     LPCWSTR pszProgID);
   36465 void __RPC_STUB IObjectWithProgID_SetProgID_Stub(
   36466     IRpcStubBuffer* This,
   36467     IRpcChannelBuffer* pRpcChannelBuffer,
   36468     PRPC_MESSAGE pRpcMessage,
   36469     DWORD* pdwStubPhase);
   36470 HRESULT STDMETHODCALLTYPE IObjectWithProgID_GetProgID_Proxy(
   36471     IObjectWithProgID* This,
   36472     LPWSTR *ppszProgID);
   36473 void __RPC_STUB IObjectWithProgID_GetProgID_Stub(
   36474     IRpcStubBuffer* This,
   36475     IRpcChannelBuffer* pRpcChannelBuffer,
   36476     PRPC_MESSAGE pRpcMessage,
   36477     DWORD* pdwStubPhase);
   36478 
   36479 #endif  /* __IObjectWithProgID_INTERFACE_DEFINED__ */
   36480 
   36481 
   36482 /*****************************************************************************
   36483  * IUpdateIDList interface
   36484  */
   36485 #ifndef __IUpdateIDList_INTERFACE_DEFINED__
   36486 #define __IUpdateIDList_INTERFACE_DEFINED__
   36487 
   36488 DEFINE_GUID(IID_IUpdateIDList, 0x6589b6d2, 0x5f8d, 0x4b9e, 0xb7,0xe0, 0x23,0xcd,0xd9,0x71,0x7d,0x8c);
   36489 #if defined(__cplusplus) && !defined(CINTERFACE)
   36490 MIDL_INTERFACE("6589b6d2-5f8d-4b9e-b7e0-23cdd9717d8c")
   36491 IUpdateIDList : public IUnknown
   36492 {
   36493     virtual HRESULT STDMETHODCALLTYPE Update(
   36494         IBindCtx *pbc,
   36495         PCUITEMID_CHILD pidlIn,
   36496         PITEMID_CHILD *ppidlOut) = 0;
   36497 
   36498 };
   36499 #ifdef __CRT_UUID_DECL
   36500 __CRT_UUID_DECL(IUpdateIDList, 0x6589b6d2, 0x5f8d, 0x4b9e, 0xb7,0xe0, 0x23,0xcd,0xd9,0x71,0x7d,0x8c)
   36501 #endif
   36502 #else
   36503 typedef struct IUpdateIDListVtbl {
   36504     BEGIN_INTERFACE
   36505 
   36506     /*** IUnknown methods ***/
   36507     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   36508         IUpdateIDList* This,
   36509         REFIID riid,
   36510         void **ppvObject);
   36511 
   36512     ULONG (STDMETHODCALLTYPE *AddRef)(
   36513         IUpdateIDList* This);
   36514 
   36515     ULONG (STDMETHODCALLTYPE *Release)(
   36516         IUpdateIDList* This);
   36517 
   36518     /*** IUpdateIDList methods ***/
   36519     HRESULT (STDMETHODCALLTYPE *Update)(
   36520         IUpdateIDList* This,
   36521         IBindCtx *pbc,
   36522         PCUITEMID_CHILD pidlIn,
   36523         PITEMID_CHILD *ppidlOut);
   36524 
   36525     END_INTERFACE
   36526 } IUpdateIDListVtbl;
   36527 interface IUpdateIDList {
   36528     CONST_VTBL IUpdateIDListVtbl* lpVtbl;
   36529 };
   36530 
   36531 #ifdef COBJMACROS
   36532 #ifndef WIDL_C_INLINE_WRAPPERS
   36533 /*** IUnknown methods ***/
   36534 #define IUpdateIDList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   36535 #define IUpdateIDList_AddRef(This) (This)->lpVtbl->AddRef(This)
   36536 #define IUpdateIDList_Release(This) (This)->lpVtbl->Release(This)
   36537 /*** IUpdateIDList methods ***/
   36538 #define IUpdateIDList_Update(This,pbc,pidlIn,ppidlOut) (This)->lpVtbl->Update(This,pbc,pidlIn,ppidlOut)
   36539 #else
   36540 /*** IUnknown methods ***/
   36541 static FORCEINLINE HRESULT IUpdateIDList_QueryInterface(IUpdateIDList* This,REFIID riid,void **ppvObject) {
   36542     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   36543 }
   36544 static FORCEINLINE ULONG IUpdateIDList_AddRef(IUpdateIDList* This) {
   36545     return This->lpVtbl->AddRef(This);
   36546 }
   36547 static FORCEINLINE ULONG IUpdateIDList_Release(IUpdateIDList* This) {
   36548     return This->lpVtbl->Release(This);
   36549 }
   36550 /*** IUpdateIDList methods ***/
   36551 static FORCEINLINE HRESULT IUpdateIDList_Update(IUpdateIDList* This,IBindCtx *pbc,PCUITEMID_CHILD pidlIn,PITEMID_CHILD *ppidlOut) {
   36552     return This->lpVtbl->Update(This,pbc,pidlIn,ppidlOut);
   36553 }
   36554 #endif
   36555 #endif
   36556 
   36557 #endif
   36558 
   36559 HRESULT STDMETHODCALLTYPE IUpdateIDList_Update_Proxy(
   36560     IUpdateIDList* This,
   36561     IBindCtx *pbc,
   36562     PCUITEMID_CHILD pidlIn,
   36563     PITEMID_CHILD *ppidlOut);
   36564 void __RPC_STUB IUpdateIDList_Update_Stub(
   36565     IRpcStubBuffer* This,
   36566     IRpcChannelBuffer* pRpcChannelBuffer,
   36567     PRPC_MESSAGE pRpcMessage,
   36568     DWORD* pdwStubPhase);
   36569 
   36570 #endif  /* __IUpdateIDList_INTERFACE_DEFINED__ */
   36571 
   36572 
   36573 SHSTDAPI SetCurrentProcessExplicitAppUserModelID(PCWSTR AppID);
   36574 SHSTDAPI GetCurrentProcessExplicitAppUserModelID(PWSTR *AppID);
   36575 #endif
   36576 
   36577 /*****************************************************************************
   36578  * IDesktopGadget interface
   36579  */
   36580 #ifndef __IDesktopGadget_INTERFACE_DEFINED__
   36581 #define __IDesktopGadget_INTERFACE_DEFINED__
   36582 
   36583 DEFINE_GUID(IID_IDesktopGadget, 0xc1646bc4, 0xf298, 0x4f91, 0xa2,0x04, 0xeb,0x2d,0xd1,0x70,0x9d,0x1a);
   36584 #if defined(__cplusplus) && !defined(CINTERFACE)
   36585 MIDL_INTERFACE("c1646bc4-f298-4f91-a204-eb2dd1709d1a")
   36586 IDesktopGadget : public IUnknown
   36587 {
   36588     virtual HRESULT STDMETHODCALLTYPE RunGadget(
   36589         LPCWSTR gadgetPath) = 0;
   36590 
   36591 };
   36592 #ifdef __CRT_UUID_DECL
   36593 __CRT_UUID_DECL(IDesktopGadget, 0xc1646bc4, 0xf298, 0x4f91, 0xa2,0x04, 0xeb,0x2d,0xd1,0x70,0x9d,0x1a)
   36594 #endif
   36595 #else
   36596 typedef struct IDesktopGadgetVtbl {
   36597     BEGIN_INTERFACE
   36598 
   36599     /*** IUnknown methods ***/
   36600     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   36601         IDesktopGadget* This,
   36602         REFIID riid,
   36603         void **ppvObject);
   36604 
   36605     ULONG (STDMETHODCALLTYPE *AddRef)(
   36606         IDesktopGadget* This);
   36607 
   36608     ULONG (STDMETHODCALLTYPE *Release)(
   36609         IDesktopGadget* This);
   36610 
   36611     /*** IDesktopGadget methods ***/
   36612     HRESULT (STDMETHODCALLTYPE *RunGadget)(
   36613         IDesktopGadget* This,
   36614         LPCWSTR gadgetPath);
   36615 
   36616     END_INTERFACE
   36617 } IDesktopGadgetVtbl;
   36618 interface IDesktopGadget {
   36619     CONST_VTBL IDesktopGadgetVtbl* lpVtbl;
   36620 };
   36621 
   36622 #ifdef COBJMACROS
   36623 #ifndef WIDL_C_INLINE_WRAPPERS
   36624 /*** IUnknown methods ***/
   36625 #define IDesktopGadget_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   36626 #define IDesktopGadget_AddRef(This) (This)->lpVtbl->AddRef(This)
   36627 #define IDesktopGadget_Release(This) (This)->lpVtbl->Release(This)
   36628 /*** IDesktopGadget methods ***/
   36629 #define IDesktopGadget_RunGadget(This,gadgetPath) (This)->lpVtbl->RunGadget(This,gadgetPath)
   36630 #else
   36631 /*** IUnknown methods ***/
   36632 static FORCEINLINE HRESULT IDesktopGadget_QueryInterface(IDesktopGadget* This,REFIID riid,void **ppvObject) {
   36633     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   36634 }
   36635 static FORCEINLINE ULONG IDesktopGadget_AddRef(IDesktopGadget* This) {
   36636     return This->lpVtbl->AddRef(This);
   36637 }
   36638 static FORCEINLINE ULONG IDesktopGadget_Release(IDesktopGadget* This) {
   36639     return This->lpVtbl->Release(This);
   36640 }
   36641 /*** IDesktopGadget methods ***/
   36642 static FORCEINLINE HRESULT IDesktopGadget_RunGadget(IDesktopGadget* This,LPCWSTR gadgetPath) {
   36643     return This->lpVtbl->RunGadget(This,gadgetPath);
   36644 }
   36645 #endif
   36646 #endif
   36647 
   36648 #endif
   36649 
   36650 HRESULT STDMETHODCALLTYPE IDesktopGadget_RunGadget_Proxy(
   36651     IDesktopGadget* This,
   36652     LPCWSTR gadgetPath);
   36653 void __RPC_STUB IDesktopGadget_RunGadget_Stub(
   36654     IRpcStubBuffer* This,
   36655     IRpcChannelBuffer* pRpcChannelBuffer,
   36656     PRPC_MESSAGE pRpcMessage,
   36657     DWORD* pdwStubPhase);
   36658 
   36659 #endif  /* __IDesktopGadget_INTERFACE_DEFINED__ */
   36660 
   36661 
   36662 #if NTDDI_VERSION >= NTDDI_WIN8
   36663 /*****************************************************************************
   36664  * IDesktopWallpaper interface
   36665  */
   36666 #ifndef __IDesktopWallpaper_INTERFACE_DEFINED__
   36667 #define __IDesktopWallpaper_INTERFACE_DEFINED__
   36668 
   36669 typedef enum DESKTOP_SLIDESHOW_OPTIONS {
   36670     DSO_SHUFFLEIMAGES = 0x1
   36671 } DESKTOP_SLIDESHOW_OPTIONS;
   36672 
   36673 DEFINE_ENUM_FLAG_OPERATORS(DESKTOP_SLIDESHOW_OPTIONS);
   36674 
   36675 typedef enum DESKTOP_SLIDESHOW_STATE {
   36676     DSS_ENABLED = 0x1,
   36677     DSS_SLIDESHOW = 0x2,
   36678     DSS_DISABLED_BY_REMOTE_SESSION = 0x4
   36679 } DESKTOP_SLIDESHOW_STATE;
   36680 
   36681 DEFINE_ENUM_FLAG_OPERATORS(DESKTOP_SLIDESHOW_STATE);
   36682 
   36683 typedef enum DESKTOP_SLIDESHOW_DIRECTION {
   36684     DSD_FORWARD = 0,
   36685     DSD_BACKWARD = 1
   36686 } DESKTOP_SLIDESHOW_DIRECTION;
   36687 
   36688 typedef enum DESKTOP_WALLPAPER_POSITION {
   36689     DWPOS_CENTER = 0,
   36690     DWPOS_TILE = 1,
   36691     DWPOS_STRETCH = 2,
   36692     DWPOS_FIT = 3,
   36693     DWPOS_FILL = 4,
   36694     DWPOS_SPAN = 5
   36695 } DESKTOP_WALLPAPER_POSITION;
   36696 
   36697 DEFINE_GUID(IID_IDesktopWallpaper, 0xb92b56a9, 0x8b55, 0x4e14, 0x9a,0x89, 0x01,0x99,0xbb,0xb6,0xf9,0x3b);
   36698 #if defined(__cplusplus) && !defined(CINTERFACE)
   36699 MIDL_INTERFACE("b92b56a9-8b55-4e14-9a89-0199bbb6f93b")
   36700 IDesktopWallpaper : public IUnknown
   36701 {
   36702     virtual HRESULT STDMETHODCALLTYPE SetWallpaper(
   36703         LPCWSTR monitorID,
   36704         LPCWSTR wallpaper) = 0;
   36705 
   36706     virtual HRESULT STDMETHODCALLTYPE GetWallpaper(
   36707         LPCWSTR monitorID,
   36708         LPWSTR *wallpaper) = 0;
   36709 
   36710     virtual HRESULT STDMETHODCALLTYPE GetMonitorDevicePathAt(
   36711         UINT monitorIndex,
   36712         LPWSTR *monitorID) = 0;
   36713 
   36714     virtual HRESULT STDMETHODCALLTYPE GetMonitorDevicePathCount(
   36715         UINT *count) = 0;
   36716 
   36717     virtual HRESULT STDMETHODCALLTYPE GetMonitorRECT(
   36718         LPCWSTR monitorID,
   36719         RECT *displayRect) = 0;
   36720 
   36721     virtual HRESULT STDMETHODCALLTYPE SetBackgroundColor(
   36722         COLORREF color) = 0;
   36723 
   36724     virtual HRESULT STDMETHODCALLTYPE GetBackgroundColor(
   36725         COLORREF *color) = 0;
   36726 
   36727     virtual HRESULT STDMETHODCALLTYPE SetPosition(
   36728         DESKTOP_WALLPAPER_POSITION position) = 0;
   36729 
   36730     virtual HRESULT STDMETHODCALLTYPE GetPosition(
   36731         DESKTOP_WALLPAPER_POSITION *position) = 0;
   36732 
   36733     virtual HRESULT STDMETHODCALLTYPE SetSlideshow(
   36734         IShellItemArray *items) = 0;
   36735 
   36736     virtual HRESULT STDMETHODCALLTYPE GetSlideshow(
   36737         IShellItemArray **items) = 0;
   36738 
   36739     virtual HRESULT STDMETHODCALLTYPE SetSlideshowOptions(
   36740         DESKTOP_SLIDESHOW_OPTIONS options,
   36741         UINT slideshowTick) = 0;
   36742 
   36743     virtual HRESULT STDMETHODCALLTYPE GetSlideshowOptions(
   36744         DESKTOP_SLIDESHOW_OPTIONS *options,
   36745         UINT *slideshowTick) = 0;
   36746 
   36747     virtual HRESULT STDMETHODCALLTYPE AdvanceSlideshow(
   36748         LPCWSTR monitorID,
   36749         DESKTOP_SLIDESHOW_DIRECTION direction) = 0;
   36750 
   36751     virtual HRESULT STDMETHODCALLTYPE GetStatus(
   36752         DESKTOP_SLIDESHOW_STATE *state) = 0;
   36753 
   36754     virtual HRESULT STDMETHODCALLTYPE Enable(
   36755         WINBOOL enable) = 0;
   36756 
   36757 };
   36758 #ifdef __CRT_UUID_DECL
   36759 __CRT_UUID_DECL(IDesktopWallpaper, 0xb92b56a9, 0x8b55, 0x4e14, 0x9a,0x89, 0x01,0x99,0xbb,0xb6,0xf9,0x3b)
   36760 #endif
   36761 #else
   36762 typedef struct IDesktopWallpaperVtbl {
   36763     BEGIN_INTERFACE
   36764 
   36765     /*** IUnknown methods ***/
   36766     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   36767         IDesktopWallpaper* This,
   36768         REFIID riid,
   36769         void **ppvObject);
   36770 
   36771     ULONG (STDMETHODCALLTYPE *AddRef)(
   36772         IDesktopWallpaper* This);
   36773 
   36774     ULONG (STDMETHODCALLTYPE *Release)(
   36775         IDesktopWallpaper* This);
   36776 
   36777     /*** IDesktopWallpaper methods ***/
   36778     HRESULT (STDMETHODCALLTYPE *SetWallpaper)(
   36779         IDesktopWallpaper* This,
   36780         LPCWSTR monitorID,
   36781         LPCWSTR wallpaper);
   36782 
   36783     HRESULT (STDMETHODCALLTYPE *GetWallpaper)(
   36784         IDesktopWallpaper* This,
   36785         LPCWSTR monitorID,
   36786         LPWSTR *wallpaper);
   36787 
   36788     HRESULT (STDMETHODCALLTYPE *GetMonitorDevicePathAt)(
   36789         IDesktopWallpaper* This,
   36790         UINT monitorIndex,
   36791         LPWSTR *monitorID);
   36792 
   36793     HRESULT (STDMETHODCALLTYPE *GetMonitorDevicePathCount)(
   36794         IDesktopWallpaper* This,
   36795         UINT *count);
   36796 
   36797     HRESULT (STDMETHODCALLTYPE *GetMonitorRECT)(
   36798         IDesktopWallpaper* This,
   36799         LPCWSTR monitorID,
   36800         RECT *displayRect);
   36801 
   36802     HRESULT (STDMETHODCALLTYPE *SetBackgroundColor)(
   36803         IDesktopWallpaper* This,
   36804         COLORREF color);
   36805 
   36806     HRESULT (STDMETHODCALLTYPE *GetBackgroundColor)(
   36807         IDesktopWallpaper* This,
   36808         COLORREF *color);
   36809 
   36810     HRESULT (STDMETHODCALLTYPE *SetPosition)(
   36811         IDesktopWallpaper* This,
   36812         DESKTOP_WALLPAPER_POSITION position);
   36813 
   36814     HRESULT (STDMETHODCALLTYPE *GetPosition)(
   36815         IDesktopWallpaper* This,
   36816         DESKTOP_WALLPAPER_POSITION *position);
   36817 
   36818     HRESULT (STDMETHODCALLTYPE *SetSlideshow)(
   36819         IDesktopWallpaper* This,
   36820         IShellItemArray *items);
   36821 
   36822     HRESULT (STDMETHODCALLTYPE *GetSlideshow)(
   36823         IDesktopWallpaper* This,
   36824         IShellItemArray **items);
   36825 
   36826     HRESULT (STDMETHODCALLTYPE *SetSlideshowOptions)(
   36827         IDesktopWallpaper* This,
   36828         DESKTOP_SLIDESHOW_OPTIONS options,
   36829         UINT slideshowTick);
   36830 
   36831     HRESULT (STDMETHODCALLTYPE *GetSlideshowOptions)(
   36832         IDesktopWallpaper* This,
   36833         DESKTOP_SLIDESHOW_OPTIONS *options,
   36834         UINT *slideshowTick);
   36835 
   36836     HRESULT (STDMETHODCALLTYPE *AdvanceSlideshow)(
   36837         IDesktopWallpaper* This,
   36838         LPCWSTR monitorID,
   36839         DESKTOP_SLIDESHOW_DIRECTION direction);
   36840 
   36841     HRESULT (STDMETHODCALLTYPE *GetStatus)(
   36842         IDesktopWallpaper* This,
   36843         DESKTOP_SLIDESHOW_STATE *state);
   36844 
   36845     HRESULT (STDMETHODCALLTYPE *Enable)(
   36846         IDesktopWallpaper* This,
   36847         WINBOOL enable);
   36848 
   36849     END_INTERFACE
   36850 } IDesktopWallpaperVtbl;
   36851 interface IDesktopWallpaper {
   36852     CONST_VTBL IDesktopWallpaperVtbl* lpVtbl;
   36853 };
   36854 
   36855 #ifdef COBJMACROS
   36856 #ifndef WIDL_C_INLINE_WRAPPERS
   36857 /*** IUnknown methods ***/
   36858 #define IDesktopWallpaper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   36859 #define IDesktopWallpaper_AddRef(This) (This)->lpVtbl->AddRef(This)
   36860 #define IDesktopWallpaper_Release(This) (This)->lpVtbl->Release(This)
   36861 /*** IDesktopWallpaper methods ***/
   36862 #define IDesktopWallpaper_SetWallpaper(This,monitorID,wallpaper) (This)->lpVtbl->SetWallpaper(This,monitorID,wallpaper)
   36863 #define IDesktopWallpaper_GetWallpaper(This,monitorID,wallpaper) (This)->lpVtbl->GetWallpaper(This,monitorID,wallpaper)
   36864 #define IDesktopWallpaper_GetMonitorDevicePathAt(This,monitorIndex,monitorID) (This)->lpVtbl->GetMonitorDevicePathAt(This,monitorIndex,monitorID)
   36865 #define IDesktopWallpaper_GetMonitorDevicePathCount(This,count) (This)->lpVtbl->GetMonitorDevicePathCount(This,count)
   36866 #define IDesktopWallpaper_GetMonitorRECT(This,monitorID,displayRect) (This)->lpVtbl->GetMonitorRECT(This,monitorID,displayRect)
   36867 #define IDesktopWallpaper_SetBackgroundColor(This,color) (This)->lpVtbl->SetBackgroundColor(This,color)
   36868 #define IDesktopWallpaper_GetBackgroundColor(This,color) (This)->lpVtbl->GetBackgroundColor(This,color)
   36869 #define IDesktopWallpaper_SetPosition(This,position) (This)->lpVtbl->SetPosition(This,position)
   36870 #define IDesktopWallpaper_GetPosition(This,position) (This)->lpVtbl->GetPosition(This,position)
   36871 #define IDesktopWallpaper_SetSlideshow(This,items) (This)->lpVtbl->SetSlideshow(This,items)
   36872 #define IDesktopWallpaper_GetSlideshow(This,items) (This)->lpVtbl->GetSlideshow(This,items)
   36873 #define IDesktopWallpaper_SetSlideshowOptions(This,options,slideshowTick) (This)->lpVtbl->SetSlideshowOptions(This,options,slideshowTick)
   36874 #define IDesktopWallpaper_GetSlideshowOptions(This,options,slideshowTick) (This)->lpVtbl->GetSlideshowOptions(This,options,slideshowTick)
   36875 #define IDesktopWallpaper_AdvanceSlideshow(This,monitorID,direction) (This)->lpVtbl->AdvanceSlideshow(This,monitorID,direction)
   36876 #define IDesktopWallpaper_GetStatus(This,state) (This)->lpVtbl->GetStatus(This,state)
   36877 #define IDesktopWallpaper_Enable(This,enable) (This)->lpVtbl->Enable(This,enable)
   36878 #else
   36879 /*** IUnknown methods ***/
   36880 static FORCEINLINE HRESULT IDesktopWallpaper_QueryInterface(IDesktopWallpaper* This,REFIID riid,void **ppvObject) {
   36881     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   36882 }
   36883 static FORCEINLINE ULONG IDesktopWallpaper_AddRef(IDesktopWallpaper* This) {
   36884     return This->lpVtbl->AddRef(This);
   36885 }
   36886 static FORCEINLINE ULONG IDesktopWallpaper_Release(IDesktopWallpaper* This) {
   36887     return This->lpVtbl->Release(This);
   36888 }
   36889 /*** IDesktopWallpaper methods ***/
   36890 static FORCEINLINE HRESULT IDesktopWallpaper_SetWallpaper(IDesktopWallpaper* This,LPCWSTR monitorID,LPCWSTR wallpaper) {
   36891     return This->lpVtbl->SetWallpaper(This,monitorID,wallpaper);
   36892 }
   36893 static FORCEINLINE HRESULT IDesktopWallpaper_GetWallpaper(IDesktopWallpaper* This,LPCWSTR monitorID,LPWSTR *wallpaper) {
   36894     return This->lpVtbl->GetWallpaper(This,monitorID,wallpaper);
   36895 }
   36896 static FORCEINLINE HRESULT IDesktopWallpaper_GetMonitorDevicePathAt(IDesktopWallpaper* This,UINT monitorIndex,LPWSTR *monitorID) {
   36897     return This->lpVtbl->GetMonitorDevicePathAt(This,monitorIndex,monitorID);
   36898 }
   36899 static FORCEINLINE HRESULT IDesktopWallpaper_GetMonitorDevicePathCount(IDesktopWallpaper* This,UINT *count) {
   36900     return This->lpVtbl->GetMonitorDevicePathCount(This,count);
   36901 }
   36902 static FORCEINLINE HRESULT IDesktopWallpaper_GetMonitorRECT(IDesktopWallpaper* This,LPCWSTR monitorID,RECT *displayRect) {
   36903     return This->lpVtbl->GetMonitorRECT(This,monitorID,displayRect);
   36904 }
   36905 static FORCEINLINE HRESULT IDesktopWallpaper_SetBackgroundColor(IDesktopWallpaper* This,COLORREF color) {
   36906     return This->lpVtbl->SetBackgroundColor(This,color);
   36907 }
   36908 static FORCEINLINE HRESULT IDesktopWallpaper_GetBackgroundColor(IDesktopWallpaper* This,COLORREF *color) {
   36909     return This->lpVtbl->GetBackgroundColor(This,color);
   36910 }
   36911 static FORCEINLINE HRESULT IDesktopWallpaper_SetPosition(IDesktopWallpaper* This,DESKTOP_WALLPAPER_POSITION position) {
   36912     return This->lpVtbl->SetPosition(This,position);
   36913 }
   36914 static FORCEINLINE HRESULT IDesktopWallpaper_GetPosition(IDesktopWallpaper* This,DESKTOP_WALLPAPER_POSITION *position) {
   36915     return This->lpVtbl->GetPosition(This,position);
   36916 }
   36917 static FORCEINLINE HRESULT IDesktopWallpaper_SetSlideshow(IDesktopWallpaper* This,IShellItemArray *items) {
   36918     return This->lpVtbl->SetSlideshow(This,items);
   36919 }
   36920 static FORCEINLINE HRESULT IDesktopWallpaper_GetSlideshow(IDesktopWallpaper* This,IShellItemArray **items) {
   36921     return This->lpVtbl->GetSlideshow(This,items);
   36922 }
   36923 static FORCEINLINE HRESULT IDesktopWallpaper_SetSlideshowOptions(IDesktopWallpaper* This,DESKTOP_SLIDESHOW_OPTIONS options,UINT slideshowTick) {
   36924     return This->lpVtbl->SetSlideshowOptions(This,options,slideshowTick);
   36925 }
   36926 static FORCEINLINE HRESULT IDesktopWallpaper_GetSlideshowOptions(IDesktopWallpaper* This,DESKTOP_SLIDESHOW_OPTIONS *options,UINT *slideshowTick) {
   36927     return This->lpVtbl->GetSlideshowOptions(This,options,slideshowTick);
   36928 }
   36929 static FORCEINLINE HRESULT IDesktopWallpaper_AdvanceSlideshow(IDesktopWallpaper* This,LPCWSTR monitorID,DESKTOP_SLIDESHOW_DIRECTION direction) {
   36930     return This->lpVtbl->AdvanceSlideshow(This,monitorID,direction);
   36931 }
   36932 static FORCEINLINE HRESULT IDesktopWallpaper_GetStatus(IDesktopWallpaper* This,DESKTOP_SLIDESHOW_STATE *state) {
   36933     return This->lpVtbl->GetStatus(This,state);
   36934 }
   36935 static FORCEINLINE HRESULT IDesktopWallpaper_Enable(IDesktopWallpaper* This,WINBOOL enable) {
   36936     return This->lpVtbl->Enable(This,enable);
   36937 }
   36938 #endif
   36939 #endif
   36940 
   36941 #endif
   36942 
   36943 HRESULT STDMETHODCALLTYPE IDesktopWallpaper_SetWallpaper_Proxy(
   36944     IDesktopWallpaper* This,
   36945     LPCWSTR monitorID,
   36946     LPCWSTR wallpaper);
   36947 void __RPC_STUB IDesktopWallpaper_SetWallpaper_Stub(
   36948     IRpcStubBuffer* This,
   36949     IRpcChannelBuffer* pRpcChannelBuffer,
   36950     PRPC_MESSAGE pRpcMessage,
   36951     DWORD* pdwStubPhase);
   36952 HRESULT STDMETHODCALLTYPE IDesktopWallpaper_GetWallpaper_Proxy(
   36953     IDesktopWallpaper* This,
   36954     LPCWSTR monitorID,
   36955     LPWSTR *wallpaper);
   36956 void __RPC_STUB IDesktopWallpaper_GetWallpaper_Stub(
   36957     IRpcStubBuffer* This,
   36958     IRpcChannelBuffer* pRpcChannelBuffer,
   36959     PRPC_MESSAGE pRpcMessage,
   36960     DWORD* pdwStubPhase);
   36961 HRESULT STDMETHODCALLTYPE IDesktopWallpaper_GetMonitorDevicePathAt_Proxy(
   36962     IDesktopWallpaper* This,
   36963     UINT monitorIndex,
   36964     LPWSTR *monitorID);
   36965 void __RPC_STUB IDesktopWallpaper_GetMonitorDevicePathAt_Stub(
   36966     IRpcStubBuffer* This,
   36967     IRpcChannelBuffer* pRpcChannelBuffer,
   36968     PRPC_MESSAGE pRpcMessage,
   36969     DWORD* pdwStubPhase);
   36970 HRESULT STDMETHODCALLTYPE IDesktopWallpaper_GetMonitorDevicePathCount_Proxy(
   36971     IDesktopWallpaper* This,
   36972     UINT *count);
   36973 void __RPC_STUB IDesktopWallpaper_GetMonitorDevicePathCount_Stub(
   36974     IRpcStubBuffer* This,
   36975     IRpcChannelBuffer* pRpcChannelBuffer,
   36976     PRPC_MESSAGE pRpcMessage,
   36977     DWORD* pdwStubPhase);
   36978 HRESULT STDMETHODCALLTYPE IDesktopWallpaper_GetMonitorRECT_Proxy(
   36979     IDesktopWallpaper* This,
   36980     LPCWSTR monitorID,
   36981     RECT *displayRect);
   36982 void __RPC_STUB IDesktopWallpaper_GetMonitorRECT_Stub(
   36983     IRpcStubBuffer* This,
   36984     IRpcChannelBuffer* pRpcChannelBuffer,
   36985     PRPC_MESSAGE pRpcMessage,
   36986     DWORD* pdwStubPhase);
   36987 HRESULT STDMETHODCALLTYPE IDesktopWallpaper_SetBackgroundColor_Proxy(
   36988     IDesktopWallpaper* This,
   36989     COLORREF color);
   36990 void __RPC_STUB IDesktopWallpaper_SetBackgroundColor_Stub(
   36991     IRpcStubBuffer* This,
   36992     IRpcChannelBuffer* pRpcChannelBuffer,
   36993     PRPC_MESSAGE pRpcMessage,
   36994     DWORD* pdwStubPhase);
   36995 HRESULT STDMETHODCALLTYPE IDesktopWallpaper_GetBackgroundColor_Proxy(
   36996     IDesktopWallpaper* This,
   36997     COLORREF *color);
   36998 void __RPC_STUB IDesktopWallpaper_GetBackgroundColor_Stub(
   36999     IRpcStubBuffer* This,
   37000     IRpcChannelBuffer* pRpcChannelBuffer,
   37001     PRPC_MESSAGE pRpcMessage,
   37002     DWORD* pdwStubPhase);
   37003 HRESULT STDMETHODCALLTYPE IDesktopWallpaper_SetPosition_Proxy(
   37004     IDesktopWallpaper* This,
   37005     DESKTOP_WALLPAPER_POSITION position);
   37006 void __RPC_STUB IDesktopWallpaper_SetPosition_Stub(
   37007     IRpcStubBuffer* This,
   37008     IRpcChannelBuffer* pRpcChannelBuffer,
   37009     PRPC_MESSAGE pRpcMessage,
   37010     DWORD* pdwStubPhase);
   37011 HRESULT STDMETHODCALLTYPE IDesktopWallpaper_GetPosition_Proxy(
   37012     IDesktopWallpaper* This,
   37013     DESKTOP_WALLPAPER_POSITION *position);
   37014 void __RPC_STUB IDesktopWallpaper_GetPosition_Stub(
   37015     IRpcStubBuffer* This,
   37016     IRpcChannelBuffer* pRpcChannelBuffer,
   37017     PRPC_MESSAGE pRpcMessage,
   37018     DWORD* pdwStubPhase);
   37019 HRESULT STDMETHODCALLTYPE IDesktopWallpaper_SetSlideshow_Proxy(
   37020     IDesktopWallpaper* This,
   37021     IShellItemArray *items);
   37022 void __RPC_STUB IDesktopWallpaper_SetSlideshow_Stub(
   37023     IRpcStubBuffer* This,
   37024     IRpcChannelBuffer* pRpcChannelBuffer,
   37025     PRPC_MESSAGE pRpcMessage,
   37026     DWORD* pdwStubPhase);
   37027 HRESULT STDMETHODCALLTYPE IDesktopWallpaper_GetSlideshow_Proxy(
   37028     IDesktopWallpaper* This,
   37029     IShellItemArray **items);
   37030 void __RPC_STUB IDesktopWallpaper_GetSlideshow_Stub(
   37031     IRpcStubBuffer* This,
   37032     IRpcChannelBuffer* pRpcChannelBuffer,
   37033     PRPC_MESSAGE pRpcMessage,
   37034     DWORD* pdwStubPhase);
   37035 HRESULT STDMETHODCALLTYPE IDesktopWallpaper_SetSlideshowOptions_Proxy(
   37036     IDesktopWallpaper* This,
   37037     DESKTOP_SLIDESHOW_OPTIONS options,
   37038     UINT slideshowTick);
   37039 void __RPC_STUB IDesktopWallpaper_SetSlideshowOptions_Stub(
   37040     IRpcStubBuffer* This,
   37041     IRpcChannelBuffer* pRpcChannelBuffer,
   37042     PRPC_MESSAGE pRpcMessage,
   37043     DWORD* pdwStubPhase);
   37044 HRESULT STDMETHODCALLTYPE IDesktopWallpaper_GetSlideshowOptions_Proxy(
   37045     IDesktopWallpaper* This,
   37046     DESKTOP_SLIDESHOW_OPTIONS *options,
   37047     UINT *slideshowTick);
   37048 void __RPC_STUB IDesktopWallpaper_GetSlideshowOptions_Stub(
   37049     IRpcStubBuffer* This,
   37050     IRpcChannelBuffer* pRpcChannelBuffer,
   37051     PRPC_MESSAGE pRpcMessage,
   37052     DWORD* pdwStubPhase);
   37053 HRESULT STDMETHODCALLTYPE IDesktopWallpaper_AdvanceSlideshow_Proxy(
   37054     IDesktopWallpaper* This,
   37055     LPCWSTR monitorID,
   37056     DESKTOP_SLIDESHOW_DIRECTION direction);
   37057 void __RPC_STUB IDesktopWallpaper_AdvanceSlideshow_Stub(
   37058     IRpcStubBuffer* This,
   37059     IRpcChannelBuffer* pRpcChannelBuffer,
   37060     PRPC_MESSAGE pRpcMessage,
   37061     DWORD* pdwStubPhase);
   37062 HRESULT STDMETHODCALLTYPE IDesktopWallpaper_GetStatus_Proxy(
   37063     IDesktopWallpaper* This,
   37064     DESKTOP_SLIDESHOW_STATE *state);
   37065 void __RPC_STUB IDesktopWallpaper_GetStatus_Stub(
   37066     IRpcStubBuffer* This,
   37067     IRpcChannelBuffer* pRpcChannelBuffer,
   37068     PRPC_MESSAGE pRpcMessage,
   37069     DWORD* pdwStubPhase);
   37070 HRESULT STDMETHODCALLTYPE IDesktopWallpaper_Enable_Proxy(
   37071     IDesktopWallpaper* This,
   37072     WINBOOL enable);
   37073 void __RPC_STUB IDesktopWallpaper_Enable_Stub(
   37074     IRpcStubBuffer* This,
   37075     IRpcChannelBuffer* pRpcChannelBuffer,
   37076     PRPC_MESSAGE pRpcMessage,
   37077     DWORD* pdwStubPhase);
   37078 
   37079 #endif  /* __IDesktopWallpaper_INTERFACE_DEFINED__ */
   37080 
   37081 #endif
   37082 
   37083 #define HOMEGROUP_SECURITY_GROUP_MULTI L"HUG"
   37084 #define HOMEGROUP_SECURITY_GROUP L"HomeUsers"
   37085 
   37086 /*****************************************************************************
   37087  * IHomeGroup interface
   37088  */
   37089 #ifndef __IHomeGroup_INTERFACE_DEFINED__
   37090 #define __IHomeGroup_INTERFACE_DEFINED__
   37091 
   37092 typedef enum HOMEGROUPSHARINGCHOICES {
   37093     HGSC_NONE = 0x0,
   37094     HGSC_MUSICLIBRARY = 0x1,
   37095     HGSC_PICTURESLIBRARY = 0x2,
   37096     HGSC_VIDEOSLIBRARY = 0x4,
   37097     HGSC_DOCUMENTSLIBRARY = 0x8,
   37098     HGSC_PRINTERS = 0x10
   37099 } HOMEGROUPSHARINGCHOICES;
   37100 
   37101 DEFINE_ENUM_FLAG_OPERATORS(HOMEGROUPSHARINGCHOICES)
   37102 
   37103 DEFINE_GUID(IID_IHomeGroup, 0x7a3bd1d9, 0x35a9, 0x4fb3, 0xa4,0x67, 0xf4,0x8c,0xac,0x35,0xe2,0xd0);
   37104 #if defined(__cplusplus) && !defined(CINTERFACE)
   37105 MIDL_INTERFACE("7a3bd1d9-35a9-4fb3-a467-f48cac35e2d0")
   37106 IHomeGroup : public IUnknown
   37107 {
   37108     virtual HRESULT STDMETHODCALLTYPE IsMember(
   37109         WINBOOL *member) = 0;
   37110 
   37111     virtual HRESULT STDMETHODCALLTYPE ShowSharingWizard(
   37112         HWND owner,
   37113         HOMEGROUPSHARINGCHOICES *sharingchoices) = 0;
   37114 
   37115 };
   37116 #ifdef __CRT_UUID_DECL
   37117 __CRT_UUID_DECL(IHomeGroup, 0x7a3bd1d9, 0x35a9, 0x4fb3, 0xa4,0x67, 0xf4,0x8c,0xac,0x35,0xe2,0xd0)
   37118 #endif
   37119 #else
   37120 typedef struct IHomeGroupVtbl {
   37121     BEGIN_INTERFACE
   37122 
   37123     /*** IUnknown methods ***/
   37124     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   37125         IHomeGroup* This,
   37126         REFIID riid,
   37127         void **ppvObject);
   37128 
   37129     ULONG (STDMETHODCALLTYPE *AddRef)(
   37130         IHomeGroup* This);
   37131 
   37132     ULONG (STDMETHODCALLTYPE *Release)(
   37133         IHomeGroup* This);
   37134 
   37135     /*** IHomeGroup methods ***/
   37136     HRESULT (STDMETHODCALLTYPE *IsMember)(
   37137         IHomeGroup* This,
   37138         WINBOOL *member);
   37139 
   37140     HRESULT (STDMETHODCALLTYPE *ShowSharingWizard)(
   37141         IHomeGroup* This,
   37142         HWND owner,
   37143         HOMEGROUPSHARINGCHOICES *sharingchoices);
   37144 
   37145     END_INTERFACE
   37146 } IHomeGroupVtbl;
   37147 interface IHomeGroup {
   37148     CONST_VTBL IHomeGroupVtbl* lpVtbl;
   37149 };
   37150 
   37151 #ifdef COBJMACROS
   37152 #ifndef WIDL_C_INLINE_WRAPPERS
   37153 /*** IUnknown methods ***/
   37154 #define IHomeGroup_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   37155 #define IHomeGroup_AddRef(This) (This)->lpVtbl->AddRef(This)
   37156 #define IHomeGroup_Release(This) (This)->lpVtbl->Release(This)
   37157 /*** IHomeGroup methods ***/
   37158 #define IHomeGroup_IsMember(This,member) (This)->lpVtbl->IsMember(This,member)
   37159 #define IHomeGroup_ShowSharingWizard(This,owner,sharingchoices) (This)->lpVtbl->ShowSharingWizard(This,owner,sharingchoices)
   37160 #else
   37161 /*** IUnknown methods ***/
   37162 static FORCEINLINE HRESULT IHomeGroup_QueryInterface(IHomeGroup* This,REFIID riid,void **ppvObject) {
   37163     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   37164 }
   37165 static FORCEINLINE ULONG IHomeGroup_AddRef(IHomeGroup* This) {
   37166     return This->lpVtbl->AddRef(This);
   37167 }
   37168 static FORCEINLINE ULONG IHomeGroup_Release(IHomeGroup* This) {
   37169     return This->lpVtbl->Release(This);
   37170 }
   37171 /*** IHomeGroup methods ***/
   37172 static FORCEINLINE HRESULT IHomeGroup_IsMember(IHomeGroup* This,WINBOOL *member) {
   37173     return This->lpVtbl->IsMember(This,member);
   37174 }
   37175 static FORCEINLINE HRESULT IHomeGroup_ShowSharingWizard(IHomeGroup* This,HWND owner,HOMEGROUPSHARINGCHOICES *sharingchoices) {
   37176     return This->lpVtbl->ShowSharingWizard(This,owner,sharingchoices);
   37177 }
   37178 #endif
   37179 #endif
   37180 
   37181 #endif
   37182 
   37183 HRESULT STDMETHODCALLTYPE IHomeGroup_IsMember_Proxy(
   37184     IHomeGroup* This,
   37185     WINBOOL *member);
   37186 void __RPC_STUB IHomeGroup_IsMember_Stub(
   37187     IRpcStubBuffer* This,
   37188     IRpcChannelBuffer* pRpcChannelBuffer,
   37189     PRPC_MESSAGE pRpcMessage,
   37190     DWORD* pdwStubPhase);
   37191 HRESULT STDMETHODCALLTYPE IHomeGroup_ShowSharingWizard_Proxy(
   37192     IHomeGroup* This,
   37193     HWND owner,
   37194     HOMEGROUPSHARINGCHOICES *sharingchoices);
   37195 void __RPC_STUB IHomeGroup_ShowSharingWizard_Stub(
   37196     IRpcStubBuffer* This,
   37197     IRpcChannelBuffer* pRpcChannelBuffer,
   37198     PRPC_MESSAGE pRpcMessage,
   37199     DWORD* pdwStubPhase);
   37200 
   37201 #endif  /* __IHomeGroup_INTERFACE_DEFINED__ */
   37202 
   37203 
   37204 /*****************************************************************************
   37205  * IInitializeWithPropertyStore interface
   37206  */
   37207 #ifndef __IInitializeWithPropertyStore_INTERFACE_DEFINED__
   37208 #define __IInitializeWithPropertyStore_INTERFACE_DEFINED__
   37209 
   37210 DEFINE_GUID(IID_IInitializeWithPropertyStore, 0xc3e12eb5, 0x7d8d, 0x44f8, 0xb6,0xdd, 0x0e,0x77,0xb3,0x4d,0x6d,0xe4);
   37211 #if defined(__cplusplus) && !defined(CINTERFACE)
   37212 MIDL_INTERFACE("c3e12eb5-7d8d-44f8-b6dd-0e77b34d6de4")
   37213 IInitializeWithPropertyStore : public IUnknown
   37214 {
   37215     virtual HRESULT STDMETHODCALLTYPE Initialize(
   37216         IPropertyStore *pps) = 0;
   37217 
   37218 };
   37219 #ifdef __CRT_UUID_DECL
   37220 __CRT_UUID_DECL(IInitializeWithPropertyStore, 0xc3e12eb5, 0x7d8d, 0x44f8, 0xb6,0xdd, 0x0e,0x77,0xb3,0x4d,0x6d,0xe4)
   37221 #endif
   37222 #else
   37223 typedef struct IInitializeWithPropertyStoreVtbl {
   37224     BEGIN_INTERFACE
   37225 
   37226     /*** IUnknown methods ***/
   37227     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   37228         IInitializeWithPropertyStore* This,
   37229         REFIID riid,
   37230         void **ppvObject);
   37231 
   37232     ULONG (STDMETHODCALLTYPE *AddRef)(
   37233         IInitializeWithPropertyStore* This);
   37234 
   37235     ULONG (STDMETHODCALLTYPE *Release)(
   37236         IInitializeWithPropertyStore* This);
   37237 
   37238     /*** IInitializeWithPropertyStore methods ***/
   37239     HRESULT (STDMETHODCALLTYPE *Initialize)(
   37240         IInitializeWithPropertyStore* This,
   37241         IPropertyStore *pps);
   37242 
   37243     END_INTERFACE
   37244 } IInitializeWithPropertyStoreVtbl;
   37245 interface IInitializeWithPropertyStore {
   37246     CONST_VTBL IInitializeWithPropertyStoreVtbl* lpVtbl;
   37247 };
   37248 
   37249 #ifdef COBJMACROS
   37250 #ifndef WIDL_C_INLINE_WRAPPERS
   37251 /*** IUnknown methods ***/
   37252 #define IInitializeWithPropertyStore_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   37253 #define IInitializeWithPropertyStore_AddRef(This) (This)->lpVtbl->AddRef(This)
   37254 #define IInitializeWithPropertyStore_Release(This) (This)->lpVtbl->Release(This)
   37255 /*** IInitializeWithPropertyStore methods ***/
   37256 #define IInitializeWithPropertyStore_Initialize(This,pps) (This)->lpVtbl->Initialize(This,pps)
   37257 #else
   37258 /*** IUnknown methods ***/
   37259 static FORCEINLINE HRESULT IInitializeWithPropertyStore_QueryInterface(IInitializeWithPropertyStore* This,REFIID riid,void **ppvObject) {
   37260     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   37261 }
   37262 static FORCEINLINE ULONG IInitializeWithPropertyStore_AddRef(IInitializeWithPropertyStore* This) {
   37263     return This->lpVtbl->AddRef(This);
   37264 }
   37265 static FORCEINLINE ULONG IInitializeWithPropertyStore_Release(IInitializeWithPropertyStore* This) {
   37266     return This->lpVtbl->Release(This);
   37267 }
   37268 /*** IInitializeWithPropertyStore methods ***/
   37269 static FORCEINLINE HRESULT IInitializeWithPropertyStore_Initialize(IInitializeWithPropertyStore* This,IPropertyStore *pps) {
   37270     return This->lpVtbl->Initialize(This,pps);
   37271 }
   37272 #endif
   37273 #endif
   37274 
   37275 #endif
   37276 
   37277 HRESULT STDMETHODCALLTYPE IInitializeWithPropertyStore_Initialize_Proxy(
   37278     IInitializeWithPropertyStore* This,
   37279     IPropertyStore *pps);
   37280 void __RPC_STUB IInitializeWithPropertyStore_Initialize_Stub(
   37281     IRpcStubBuffer* This,
   37282     IRpcChannelBuffer* pRpcChannelBuffer,
   37283     PRPC_MESSAGE pRpcMessage,
   37284     DWORD* pdwStubPhase);
   37285 
   37286 #endif  /* __IInitializeWithPropertyStore_INTERFACE_DEFINED__ */
   37287 
   37288 
   37289 /*****************************************************************************
   37290  * IOpenSearchSource interface
   37291  */
   37292 #ifndef __IOpenSearchSource_INTERFACE_DEFINED__
   37293 #define __IOpenSearchSource_INTERFACE_DEFINED__
   37294 
   37295 DEFINE_GUID(IID_IOpenSearchSource, 0xf0ee7333, 0xe6fc, 0x479b, 0x9f,0x25, 0xa8,0x60,0xc2,0x34,0xa3,0x8e);
   37296 #if defined(__cplusplus) && !defined(CINTERFACE)
   37297 MIDL_INTERFACE("f0ee7333-e6fc-479b-9f25-a860c234a38e")
   37298 IOpenSearchSource : public IUnknown
   37299 {
   37300     virtual HRESULT STDMETHODCALLTYPE GetResults(
   37301         HWND hwnd,
   37302         LPCWSTR pszQuery,
   37303         DWORD dwStartIndex,
   37304         DWORD dwCount,
   37305         REFIID riid,
   37306         void **ppv) = 0;
   37307 
   37308 };
   37309 #ifdef __CRT_UUID_DECL
   37310 __CRT_UUID_DECL(IOpenSearchSource, 0xf0ee7333, 0xe6fc, 0x479b, 0x9f,0x25, 0xa8,0x60,0xc2,0x34,0xa3,0x8e)
   37311 #endif
   37312 #else
   37313 typedef struct IOpenSearchSourceVtbl {
   37314     BEGIN_INTERFACE
   37315 
   37316     /*** IUnknown methods ***/
   37317     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   37318         IOpenSearchSource* This,
   37319         REFIID riid,
   37320         void **ppvObject);
   37321 
   37322     ULONG (STDMETHODCALLTYPE *AddRef)(
   37323         IOpenSearchSource* This);
   37324 
   37325     ULONG (STDMETHODCALLTYPE *Release)(
   37326         IOpenSearchSource* This);
   37327 
   37328     /*** IOpenSearchSource methods ***/
   37329     HRESULT (STDMETHODCALLTYPE *GetResults)(
   37330         IOpenSearchSource* This,
   37331         HWND hwnd,
   37332         LPCWSTR pszQuery,
   37333         DWORD dwStartIndex,
   37334         DWORD dwCount,
   37335         REFIID riid,
   37336         void **ppv);
   37337 
   37338     END_INTERFACE
   37339 } IOpenSearchSourceVtbl;
   37340 interface IOpenSearchSource {
   37341     CONST_VTBL IOpenSearchSourceVtbl* lpVtbl;
   37342 };
   37343 
   37344 #ifdef COBJMACROS
   37345 #ifndef WIDL_C_INLINE_WRAPPERS
   37346 /*** IUnknown methods ***/
   37347 #define IOpenSearchSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   37348 #define IOpenSearchSource_AddRef(This) (This)->lpVtbl->AddRef(This)
   37349 #define IOpenSearchSource_Release(This) (This)->lpVtbl->Release(This)
   37350 /*** IOpenSearchSource methods ***/
   37351 #define IOpenSearchSource_GetResults(This,hwnd,pszQuery,dwStartIndex,dwCount,riid,ppv) (This)->lpVtbl->GetResults(This,hwnd,pszQuery,dwStartIndex,dwCount,riid,ppv)
   37352 #else
   37353 /*** IUnknown methods ***/
   37354 static FORCEINLINE HRESULT IOpenSearchSource_QueryInterface(IOpenSearchSource* This,REFIID riid,void **ppvObject) {
   37355     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   37356 }
   37357 static FORCEINLINE ULONG IOpenSearchSource_AddRef(IOpenSearchSource* This) {
   37358     return This->lpVtbl->AddRef(This);
   37359 }
   37360 static FORCEINLINE ULONG IOpenSearchSource_Release(IOpenSearchSource* This) {
   37361     return This->lpVtbl->Release(This);
   37362 }
   37363 /*** IOpenSearchSource methods ***/
   37364 static FORCEINLINE HRESULT IOpenSearchSource_GetResults(IOpenSearchSource* This,HWND hwnd,LPCWSTR pszQuery,DWORD dwStartIndex,DWORD dwCount,REFIID riid,void **ppv) {
   37365     return This->lpVtbl->GetResults(This,hwnd,pszQuery,dwStartIndex,dwCount,riid,ppv);
   37366 }
   37367 #endif
   37368 #endif
   37369 
   37370 #endif
   37371 
   37372 HRESULT STDMETHODCALLTYPE IOpenSearchSource_GetResults_Proxy(
   37373     IOpenSearchSource* This,
   37374     HWND hwnd,
   37375     LPCWSTR pszQuery,
   37376     DWORD dwStartIndex,
   37377     DWORD dwCount,
   37378     REFIID riid,
   37379     void **ppv);
   37380 void __RPC_STUB IOpenSearchSource_GetResults_Stub(
   37381     IRpcStubBuffer* This,
   37382     IRpcChannelBuffer* pRpcChannelBuffer,
   37383     PRPC_MESSAGE pRpcMessage,
   37384     DWORD* pdwStubPhase);
   37385 
   37386 #endif  /* __IOpenSearchSource_INTERFACE_DEFINED__ */
   37387 
   37388 
   37389 /*****************************************************************************
   37390  * IShellLibrary interface
   37391  */
   37392 #ifndef __IShellLibrary_INTERFACE_DEFINED__
   37393 #define __IShellLibrary_INTERFACE_DEFINED__
   37394 
   37395 typedef enum LIBRARYFOLDERFILTER {
   37396     LFF_FORCEFILESYSTEM = 1,
   37397     LFF_STORAGEITEMS = 2,
   37398     LFF_ALLITEMS = 3
   37399 } LIBRARYFOLDERFILTER;
   37400 
   37401 typedef enum LIBRARYOPTIONFLAGS {
   37402     LOF_DEFAULT = 0x0,
   37403     LOF_PINNEDTONAVPANE = 0x1,
   37404     LOF_MASK_ALL = 0x1
   37405 } LIBRARYOPTIONFLAGS;
   37406 
   37407 DEFINE_ENUM_FLAG_OPERATORS(LIBRARYOPTIONFLAGS)
   37408 
   37409 typedef enum DEFAULTSAVEFOLDERTYPE {
   37410     DSFT_DETECT = 1,
   37411     DSFT_PRIVATE = 2,
   37412     DSFT_PUBLIC = 3
   37413 } DEFAULTSAVEFOLDERTYPE;
   37414 
   37415 typedef enum LIBRARYSAVEFLAGS {
   37416     LSF_FAILIFTHERE = 0x0,
   37417     LSF_OVERRIDEEXISTING = 0x1,
   37418     LSF_MAKEUNIQUENAME = 0x2
   37419 } LIBRARYSAVEFLAGS;
   37420 
   37421 DEFINE_ENUM_FLAG_OPERATORS(LIBRARYSAVEFLAGS)
   37422 
   37423 DEFINE_GUID(IID_IShellLibrary, 0x11a66efa, 0x382e, 0x451a, 0x92,0x34, 0x1e,0x0e,0x12,0xef,0x30,0x85);
   37424 #if defined(__cplusplus) && !defined(CINTERFACE)
   37425 MIDL_INTERFACE("11a66efa-382e-451a-9234-1e0e12ef3085")
   37426 IShellLibrary : public IUnknown
   37427 {
   37428     virtual HRESULT STDMETHODCALLTYPE LoadLibraryFromItem(
   37429         IShellItem *psiLibrary,
   37430         DWORD grfMode) = 0;
   37431 
   37432     virtual HRESULT STDMETHODCALLTYPE LoadLibraryFromKnownFolder(
   37433         REFKNOWNFOLDERID kfidLibrary,
   37434         DWORD grfMode) = 0;
   37435 
   37436     virtual HRESULT STDMETHODCALLTYPE AddFolder(
   37437         IShellItem *psiLocation) = 0;
   37438 
   37439     virtual HRESULT STDMETHODCALLTYPE RemoveFolder(
   37440         IShellItem *psiLocation) = 0;
   37441 
   37442     virtual HRESULT STDMETHODCALLTYPE GetFolders(
   37443         LIBRARYFOLDERFILTER lff,
   37444         REFIID riid,
   37445         void **ppv) = 0;
   37446 
   37447     virtual HRESULT STDMETHODCALLTYPE ResolveFolder(
   37448         IShellItem *psiFolderToResolve,
   37449         DWORD dwTimeout,
   37450         REFIID riid,
   37451         void **ppv) = 0;
   37452 
   37453     virtual HRESULT STDMETHODCALLTYPE GetDefaultSaveFolder(
   37454         DEFAULTSAVEFOLDERTYPE dsft,
   37455         REFIID riid,
   37456         void **ppv) = 0;
   37457 
   37458     virtual HRESULT STDMETHODCALLTYPE SetDefaultSaveFolder(
   37459         DEFAULTSAVEFOLDERTYPE dsft,
   37460         IShellItem *psi) = 0;
   37461 
   37462     virtual HRESULT STDMETHODCALLTYPE GetOptions(
   37463         LIBRARYOPTIONFLAGS *plofOptions) = 0;
   37464 
   37465     virtual HRESULT STDMETHODCALLTYPE SetOptions(
   37466         LIBRARYOPTIONFLAGS lofMask,
   37467         LIBRARYOPTIONFLAGS lofOptions) = 0;
   37468 
   37469     virtual HRESULT STDMETHODCALLTYPE GetFolderType(
   37470         FOLDERTYPEID *pftid) = 0;
   37471 
   37472     virtual HRESULT STDMETHODCALLTYPE SetFolderType(
   37473         REFFOLDERTYPEID ftid) = 0;
   37474 
   37475     virtual HRESULT STDMETHODCALLTYPE GetIcon(
   37476         LPWSTR *ppszIcon) = 0;
   37477 
   37478     virtual HRESULT STDMETHODCALLTYPE SetIcon(
   37479         LPCWSTR pszIcon) = 0;
   37480 
   37481     virtual HRESULT STDMETHODCALLTYPE Commit(
   37482         ) = 0;
   37483 
   37484     virtual HRESULT STDMETHODCALLTYPE Save(
   37485         IShellItem *psiFolderToSaveIn,
   37486         LPCWSTR pszLibraryName,
   37487         LIBRARYSAVEFLAGS lsf,
   37488         IShellItem **ppsiSavedTo) = 0;
   37489 
   37490     virtual HRESULT STDMETHODCALLTYPE SaveInKnownFolder(
   37491         REFKNOWNFOLDERID kfidToSaveIn,
   37492         LPCWSTR pszLibraryName,
   37493         LIBRARYSAVEFLAGS lsf,
   37494         IShellItem **ppsiSavedTo) = 0;
   37495 
   37496 };
   37497 #ifdef __CRT_UUID_DECL
   37498 __CRT_UUID_DECL(IShellLibrary, 0x11a66efa, 0x382e, 0x451a, 0x92,0x34, 0x1e,0x0e,0x12,0xef,0x30,0x85)
   37499 #endif
   37500 #else
   37501 typedef struct IShellLibraryVtbl {
   37502     BEGIN_INTERFACE
   37503 
   37504     /*** IUnknown methods ***/
   37505     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   37506         IShellLibrary* This,
   37507         REFIID riid,
   37508         void **ppvObject);
   37509 
   37510     ULONG (STDMETHODCALLTYPE *AddRef)(
   37511         IShellLibrary* This);
   37512 
   37513     ULONG (STDMETHODCALLTYPE *Release)(
   37514         IShellLibrary* This);
   37515 
   37516     /*** IShellLibrary methods ***/
   37517     HRESULT (STDMETHODCALLTYPE *LoadLibraryFromItem)(
   37518         IShellLibrary* This,
   37519         IShellItem *psiLibrary,
   37520         DWORD grfMode);
   37521 
   37522     HRESULT (STDMETHODCALLTYPE *LoadLibraryFromKnownFolder)(
   37523         IShellLibrary* This,
   37524         REFKNOWNFOLDERID kfidLibrary,
   37525         DWORD grfMode);
   37526 
   37527     HRESULT (STDMETHODCALLTYPE *AddFolder)(
   37528         IShellLibrary* This,
   37529         IShellItem *psiLocation);
   37530 
   37531     HRESULT (STDMETHODCALLTYPE *RemoveFolder)(
   37532         IShellLibrary* This,
   37533         IShellItem *psiLocation);
   37534 
   37535     HRESULT (STDMETHODCALLTYPE *GetFolders)(
   37536         IShellLibrary* This,
   37537         LIBRARYFOLDERFILTER lff,
   37538         REFIID riid,
   37539         void **ppv);
   37540 
   37541     HRESULT (STDMETHODCALLTYPE *ResolveFolder)(
   37542         IShellLibrary* This,
   37543         IShellItem *psiFolderToResolve,
   37544         DWORD dwTimeout,
   37545         REFIID riid,
   37546         void **ppv);
   37547 
   37548     HRESULT (STDMETHODCALLTYPE *GetDefaultSaveFolder)(
   37549         IShellLibrary* This,
   37550         DEFAULTSAVEFOLDERTYPE dsft,
   37551         REFIID riid,
   37552         void **ppv);
   37553 
   37554     HRESULT (STDMETHODCALLTYPE *SetDefaultSaveFolder)(
   37555         IShellLibrary* This,
   37556         DEFAULTSAVEFOLDERTYPE dsft,
   37557         IShellItem *psi);
   37558 
   37559     HRESULT (STDMETHODCALLTYPE *GetOptions)(
   37560         IShellLibrary* This,
   37561         LIBRARYOPTIONFLAGS *plofOptions);
   37562 
   37563     HRESULT (STDMETHODCALLTYPE *SetOptions)(
   37564         IShellLibrary* This,
   37565         LIBRARYOPTIONFLAGS lofMask,
   37566         LIBRARYOPTIONFLAGS lofOptions);
   37567 
   37568     HRESULT (STDMETHODCALLTYPE *GetFolderType)(
   37569         IShellLibrary* This,
   37570         FOLDERTYPEID *pftid);
   37571 
   37572     HRESULT (STDMETHODCALLTYPE *SetFolderType)(
   37573         IShellLibrary* This,
   37574         REFFOLDERTYPEID ftid);
   37575 
   37576     HRESULT (STDMETHODCALLTYPE *GetIcon)(
   37577         IShellLibrary* This,
   37578         LPWSTR *ppszIcon);
   37579 
   37580     HRESULT (STDMETHODCALLTYPE *SetIcon)(
   37581         IShellLibrary* This,
   37582         LPCWSTR pszIcon);
   37583 
   37584     HRESULT (STDMETHODCALLTYPE *Commit)(
   37585         IShellLibrary* This);
   37586 
   37587     HRESULT (STDMETHODCALLTYPE *Save)(
   37588         IShellLibrary* This,
   37589         IShellItem *psiFolderToSaveIn,
   37590         LPCWSTR pszLibraryName,
   37591         LIBRARYSAVEFLAGS lsf,
   37592         IShellItem **ppsiSavedTo);
   37593 
   37594     HRESULT (STDMETHODCALLTYPE *SaveInKnownFolder)(
   37595         IShellLibrary* This,
   37596         REFKNOWNFOLDERID kfidToSaveIn,
   37597         LPCWSTR pszLibraryName,
   37598         LIBRARYSAVEFLAGS lsf,
   37599         IShellItem **ppsiSavedTo);
   37600 
   37601     END_INTERFACE
   37602 } IShellLibraryVtbl;
   37603 interface IShellLibrary {
   37604     CONST_VTBL IShellLibraryVtbl* lpVtbl;
   37605 };
   37606 
   37607 #ifdef COBJMACROS
   37608 #ifndef WIDL_C_INLINE_WRAPPERS
   37609 /*** IUnknown methods ***/
   37610 #define IShellLibrary_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   37611 #define IShellLibrary_AddRef(This) (This)->lpVtbl->AddRef(This)
   37612 #define IShellLibrary_Release(This) (This)->lpVtbl->Release(This)
   37613 /*** IShellLibrary methods ***/
   37614 #define IShellLibrary_LoadLibraryFromItem(This,psiLibrary,grfMode) (This)->lpVtbl->LoadLibraryFromItem(This,psiLibrary,grfMode)
   37615 #define IShellLibrary_LoadLibraryFromKnownFolder(This,kfidLibrary,grfMode) (This)->lpVtbl->LoadLibraryFromKnownFolder(This,kfidLibrary,grfMode)
   37616 #define IShellLibrary_AddFolder(This,psiLocation) (This)->lpVtbl->AddFolder(This,psiLocation)
   37617 #define IShellLibrary_RemoveFolder(This,psiLocation) (This)->lpVtbl->RemoveFolder(This,psiLocation)
   37618 #define IShellLibrary_GetFolders(This,lff,riid,ppv) (This)->lpVtbl->GetFolders(This,lff,riid,ppv)
   37619 #define IShellLibrary_ResolveFolder(This,psiFolderToResolve,dwTimeout,riid,ppv) (This)->lpVtbl->ResolveFolder(This,psiFolderToResolve,dwTimeout,riid,ppv)
   37620 #define IShellLibrary_GetDefaultSaveFolder(This,dsft,riid,ppv) (This)->lpVtbl->GetDefaultSaveFolder(This,dsft,riid,ppv)
   37621 #define IShellLibrary_SetDefaultSaveFolder(This,dsft,psi) (This)->lpVtbl->SetDefaultSaveFolder(This,dsft,psi)
   37622 #define IShellLibrary_GetOptions(This,plofOptions) (This)->lpVtbl->GetOptions(This,plofOptions)
   37623 #define IShellLibrary_SetOptions(This,lofMask,lofOptions) (This)->lpVtbl->SetOptions(This,lofMask,lofOptions)
   37624 #define IShellLibrary_GetFolderType(This,pftid) (This)->lpVtbl->GetFolderType(This,pftid)
   37625 #define IShellLibrary_SetFolderType(This,ftid) (This)->lpVtbl->SetFolderType(This,ftid)
   37626 #define IShellLibrary_GetIcon(This,ppszIcon) (This)->lpVtbl->GetIcon(This,ppszIcon)
   37627 #define IShellLibrary_SetIcon(This,pszIcon) (This)->lpVtbl->SetIcon(This,pszIcon)
   37628 #define IShellLibrary_Commit(This) (This)->lpVtbl->Commit(This)
   37629 #define IShellLibrary_Save(This,psiFolderToSaveIn,pszLibraryName,lsf,ppsiSavedTo) (This)->lpVtbl->Save(This,psiFolderToSaveIn,pszLibraryName,lsf,ppsiSavedTo)
   37630 #define IShellLibrary_SaveInKnownFolder(This,kfidToSaveIn,pszLibraryName,lsf,ppsiSavedTo) (This)->lpVtbl->SaveInKnownFolder(This,kfidToSaveIn,pszLibraryName,lsf,ppsiSavedTo)
   37631 #else
   37632 /*** IUnknown methods ***/
   37633 static FORCEINLINE HRESULT IShellLibrary_QueryInterface(IShellLibrary* This,REFIID riid,void **ppvObject) {
   37634     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   37635 }
   37636 static FORCEINLINE ULONG IShellLibrary_AddRef(IShellLibrary* This) {
   37637     return This->lpVtbl->AddRef(This);
   37638 }
   37639 static FORCEINLINE ULONG IShellLibrary_Release(IShellLibrary* This) {
   37640     return This->lpVtbl->Release(This);
   37641 }
   37642 /*** IShellLibrary methods ***/
   37643 static FORCEINLINE HRESULT IShellLibrary_LoadLibraryFromItem(IShellLibrary* This,IShellItem *psiLibrary,DWORD grfMode) {
   37644     return This->lpVtbl->LoadLibraryFromItem(This,psiLibrary,grfMode);
   37645 }
   37646 static FORCEINLINE HRESULT IShellLibrary_LoadLibraryFromKnownFolder(IShellLibrary* This,REFKNOWNFOLDERID kfidLibrary,DWORD grfMode) {
   37647     return This->lpVtbl->LoadLibraryFromKnownFolder(This,kfidLibrary,grfMode);
   37648 }
   37649 static FORCEINLINE HRESULT IShellLibrary_AddFolder(IShellLibrary* This,IShellItem *psiLocation) {
   37650     return This->lpVtbl->AddFolder(This,psiLocation);
   37651 }
   37652 static FORCEINLINE HRESULT IShellLibrary_RemoveFolder(IShellLibrary* This,IShellItem *psiLocation) {
   37653     return This->lpVtbl->RemoveFolder(This,psiLocation);
   37654 }
   37655 static FORCEINLINE HRESULT IShellLibrary_GetFolders(IShellLibrary* This,LIBRARYFOLDERFILTER lff,REFIID riid,void **ppv) {
   37656     return This->lpVtbl->GetFolders(This,lff,riid,ppv);
   37657 }
   37658 static FORCEINLINE HRESULT IShellLibrary_ResolveFolder(IShellLibrary* This,IShellItem *psiFolderToResolve,DWORD dwTimeout,REFIID riid,void **ppv) {
   37659     return This->lpVtbl->ResolveFolder(This,psiFolderToResolve,dwTimeout,riid,ppv);
   37660 }
   37661 static FORCEINLINE HRESULT IShellLibrary_GetDefaultSaveFolder(IShellLibrary* This,DEFAULTSAVEFOLDERTYPE dsft,REFIID riid,void **ppv) {
   37662     return This->lpVtbl->GetDefaultSaveFolder(This,dsft,riid,ppv);
   37663 }
   37664 static FORCEINLINE HRESULT IShellLibrary_SetDefaultSaveFolder(IShellLibrary* This,DEFAULTSAVEFOLDERTYPE dsft,IShellItem *psi) {
   37665     return This->lpVtbl->SetDefaultSaveFolder(This,dsft,psi);
   37666 }
   37667 static FORCEINLINE HRESULT IShellLibrary_GetOptions(IShellLibrary* This,LIBRARYOPTIONFLAGS *plofOptions) {
   37668     return This->lpVtbl->GetOptions(This,plofOptions);
   37669 }
   37670 static FORCEINLINE HRESULT IShellLibrary_SetOptions(IShellLibrary* This,LIBRARYOPTIONFLAGS lofMask,LIBRARYOPTIONFLAGS lofOptions) {
   37671     return This->lpVtbl->SetOptions(This,lofMask,lofOptions);
   37672 }
   37673 static FORCEINLINE HRESULT IShellLibrary_GetFolderType(IShellLibrary* This,FOLDERTYPEID *pftid) {
   37674     return This->lpVtbl->GetFolderType(This,pftid);
   37675 }
   37676 static FORCEINLINE HRESULT IShellLibrary_SetFolderType(IShellLibrary* This,REFFOLDERTYPEID ftid) {
   37677     return This->lpVtbl->SetFolderType(This,ftid);
   37678 }
   37679 static FORCEINLINE HRESULT IShellLibrary_GetIcon(IShellLibrary* This,LPWSTR *ppszIcon) {
   37680     return This->lpVtbl->GetIcon(This,ppszIcon);
   37681 }
   37682 static FORCEINLINE HRESULT IShellLibrary_SetIcon(IShellLibrary* This,LPCWSTR pszIcon) {
   37683     return This->lpVtbl->SetIcon(This,pszIcon);
   37684 }
   37685 static FORCEINLINE HRESULT IShellLibrary_Commit(IShellLibrary* This) {
   37686     return This->lpVtbl->Commit(This);
   37687 }
   37688 static FORCEINLINE HRESULT IShellLibrary_Save(IShellLibrary* This,IShellItem *psiFolderToSaveIn,LPCWSTR pszLibraryName,LIBRARYSAVEFLAGS lsf,IShellItem **ppsiSavedTo) {
   37689     return This->lpVtbl->Save(This,psiFolderToSaveIn,pszLibraryName,lsf,ppsiSavedTo);
   37690 }
   37691 static FORCEINLINE HRESULT IShellLibrary_SaveInKnownFolder(IShellLibrary* This,REFKNOWNFOLDERID kfidToSaveIn,LPCWSTR pszLibraryName,LIBRARYSAVEFLAGS lsf,IShellItem **ppsiSavedTo) {
   37692     return This->lpVtbl->SaveInKnownFolder(This,kfidToSaveIn,pszLibraryName,lsf,ppsiSavedTo);
   37693 }
   37694 #endif
   37695 #endif
   37696 
   37697 #endif
   37698 
   37699 HRESULT STDMETHODCALLTYPE IShellLibrary_LoadLibraryFromItem_Proxy(
   37700     IShellLibrary* This,
   37701     IShellItem *psiLibrary,
   37702     DWORD grfMode);
   37703 void __RPC_STUB IShellLibrary_LoadLibraryFromItem_Stub(
   37704     IRpcStubBuffer* This,
   37705     IRpcChannelBuffer* pRpcChannelBuffer,
   37706     PRPC_MESSAGE pRpcMessage,
   37707     DWORD* pdwStubPhase);
   37708 HRESULT STDMETHODCALLTYPE IShellLibrary_LoadLibraryFromKnownFolder_Proxy(
   37709     IShellLibrary* This,
   37710     REFKNOWNFOLDERID kfidLibrary,
   37711     DWORD grfMode);
   37712 void __RPC_STUB IShellLibrary_LoadLibraryFromKnownFolder_Stub(
   37713     IRpcStubBuffer* This,
   37714     IRpcChannelBuffer* pRpcChannelBuffer,
   37715     PRPC_MESSAGE pRpcMessage,
   37716     DWORD* pdwStubPhase);
   37717 HRESULT STDMETHODCALLTYPE IShellLibrary_AddFolder_Proxy(
   37718     IShellLibrary* This,
   37719     IShellItem *psiLocation);
   37720 void __RPC_STUB IShellLibrary_AddFolder_Stub(
   37721     IRpcStubBuffer* This,
   37722     IRpcChannelBuffer* pRpcChannelBuffer,
   37723     PRPC_MESSAGE pRpcMessage,
   37724     DWORD* pdwStubPhase);
   37725 HRESULT STDMETHODCALLTYPE IShellLibrary_RemoveFolder_Proxy(
   37726     IShellLibrary* This,
   37727     IShellItem *psiLocation);
   37728 void __RPC_STUB IShellLibrary_RemoveFolder_Stub(
   37729     IRpcStubBuffer* This,
   37730     IRpcChannelBuffer* pRpcChannelBuffer,
   37731     PRPC_MESSAGE pRpcMessage,
   37732     DWORD* pdwStubPhase);
   37733 HRESULT STDMETHODCALLTYPE IShellLibrary_GetFolders_Proxy(
   37734     IShellLibrary* This,
   37735     LIBRARYFOLDERFILTER lff,
   37736     REFIID riid,
   37737     void **ppv);
   37738 void __RPC_STUB IShellLibrary_GetFolders_Stub(
   37739     IRpcStubBuffer* This,
   37740     IRpcChannelBuffer* pRpcChannelBuffer,
   37741     PRPC_MESSAGE pRpcMessage,
   37742     DWORD* pdwStubPhase);
   37743 HRESULT STDMETHODCALLTYPE IShellLibrary_ResolveFolder_Proxy(
   37744     IShellLibrary* This,
   37745     IShellItem *psiFolderToResolve,
   37746     DWORD dwTimeout,
   37747     REFIID riid,
   37748     void **ppv);
   37749 void __RPC_STUB IShellLibrary_ResolveFolder_Stub(
   37750     IRpcStubBuffer* This,
   37751     IRpcChannelBuffer* pRpcChannelBuffer,
   37752     PRPC_MESSAGE pRpcMessage,
   37753     DWORD* pdwStubPhase);
   37754 HRESULT STDMETHODCALLTYPE IShellLibrary_GetDefaultSaveFolder_Proxy(
   37755     IShellLibrary* This,
   37756     DEFAULTSAVEFOLDERTYPE dsft,
   37757     REFIID riid,
   37758     void **ppv);
   37759 void __RPC_STUB IShellLibrary_GetDefaultSaveFolder_Stub(
   37760     IRpcStubBuffer* This,
   37761     IRpcChannelBuffer* pRpcChannelBuffer,
   37762     PRPC_MESSAGE pRpcMessage,
   37763     DWORD* pdwStubPhase);
   37764 HRESULT STDMETHODCALLTYPE IShellLibrary_SetDefaultSaveFolder_Proxy(
   37765     IShellLibrary* This,
   37766     DEFAULTSAVEFOLDERTYPE dsft,
   37767     IShellItem *psi);
   37768 void __RPC_STUB IShellLibrary_SetDefaultSaveFolder_Stub(
   37769     IRpcStubBuffer* This,
   37770     IRpcChannelBuffer* pRpcChannelBuffer,
   37771     PRPC_MESSAGE pRpcMessage,
   37772     DWORD* pdwStubPhase);
   37773 HRESULT STDMETHODCALLTYPE IShellLibrary_GetOptions_Proxy(
   37774     IShellLibrary* This,
   37775     LIBRARYOPTIONFLAGS *plofOptions);
   37776 void __RPC_STUB IShellLibrary_GetOptions_Stub(
   37777     IRpcStubBuffer* This,
   37778     IRpcChannelBuffer* pRpcChannelBuffer,
   37779     PRPC_MESSAGE pRpcMessage,
   37780     DWORD* pdwStubPhase);
   37781 HRESULT STDMETHODCALLTYPE IShellLibrary_SetOptions_Proxy(
   37782     IShellLibrary* This,
   37783     LIBRARYOPTIONFLAGS lofMask,
   37784     LIBRARYOPTIONFLAGS lofOptions);
   37785 void __RPC_STUB IShellLibrary_SetOptions_Stub(
   37786     IRpcStubBuffer* This,
   37787     IRpcChannelBuffer* pRpcChannelBuffer,
   37788     PRPC_MESSAGE pRpcMessage,
   37789     DWORD* pdwStubPhase);
   37790 HRESULT STDMETHODCALLTYPE IShellLibrary_GetFolderType_Proxy(
   37791     IShellLibrary* This,
   37792     FOLDERTYPEID *pftid);
   37793 void __RPC_STUB IShellLibrary_GetFolderType_Stub(
   37794     IRpcStubBuffer* This,
   37795     IRpcChannelBuffer* pRpcChannelBuffer,
   37796     PRPC_MESSAGE pRpcMessage,
   37797     DWORD* pdwStubPhase);
   37798 HRESULT STDMETHODCALLTYPE IShellLibrary_SetFolderType_Proxy(
   37799     IShellLibrary* This,
   37800     REFFOLDERTYPEID ftid);
   37801 void __RPC_STUB IShellLibrary_SetFolderType_Stub(
   37802     IRpcStubBuffer* This,
   37803     IRpcChannelBuffer* pRpcChannelBuffer,
   37804     PRPC_MESSAGE pRpcMessage,
   37805     DWORD* pdwStubPhase);
   37806 HRESULT STDMETHODCALLTYPE IShellLibrary_GetIcon_Proxy(
   37807     IShellLibrary* This,
   37808     LPWSTR *ppszIcon);
   37809 void __RPC_STUB IShellLibrary_GetIcon_Stub(
   37810     IRpcStubBuffer* This,
   37811     IRpcChannelBuffer* pRpcChannelBuffer,
   37812     PRPC_MESSAGE pRpcMessage,
   37813     DWORD* pdwStubPhase);
   37814 HRESULT STDMETHODCALLTYPE IShellLibrary_SetIcon_Proxy(
   37815     IShellLibrary* This,
   37816     LPCWSTR pszIcon);
   37817 void __RPC_STUB IShellLibrary_SetIcon_Stub(
   37818     IRpcStubBuffer* This,
   37819     IRpcChannelBuffer* pRpcChannelBuffer,
   37820     PRPC_MESSAGE pRpcMessage,
   37821     DWORD* pdwStubPhase);
   37822 HRESULT STDMETHODCALLTYPE IShellLibrary_Commit_Proxy(
   37823     IShellLibrary* This);
   37824 void __RPC_STUB IShellLibrary_Commit_Stub(
   37825     IRpcStubBuffer* This,
   37826     IRpcChannelBuffer* pRpcChannelBuffer,
   37827     PRPC_MESSAGE pRpcMessage,
   37828     DWORD* pdwStubPhase);
   37829 HRESULT STDMETHODCALLTYPE IShellLibrary_Save_Proxy(
   37830     IShellLibrary* This,
   37831     IShellItem *psiFolderToSaveIn,
   37832     LPCWSTR pszLibraryName,
   37833     LIBRARYSAVEFLAGS lsf,
   37834     IShellItem **ppsiSavedTo);
   37835 void __RPC_STUB IShellLibrary_Save_Stub(
   37836     IRpcStubBuffer* This,
   37837     IRpcChannelBuffer* pRpcChannelBuffer,
   37838     PRPC_MESSAGE pRpcMessage,
   37839     DWORD* pdwStubPhase);
   37840 HRESULT STDMETHODCALLTYPE IShellLibrary_SaveInKnownFolder_Proxy(
   37841     IShellLibrary* This,
   37842     REFKNOWNFOLDERID kfidToSaveIn,
   37843     LPCWSTR pszLibraryName,
   37844     LIBRARYSAVEFLAGS lsf,
   37845     IShellItem **ppsiSavedTo);
   37846 void __RPC_STUB IShellLibrary_SaveInKnownFolder_Stub(
   37847     IRpcStubBuffer* This,
   37848     IRpcChannelBuffer* pRpcChannelBuffer,
   37849     PRPC_MESSAGE pRpcMessage,
   37850     DWORD* pdwStubPhase);
   37851 
   37852 #endif  /* __IShellLibrary_INTERFACE_DEFINED__ */
   37853 
   37854 
   37855 typedef enum PBM_EVENT {
   37856     PE_DUCKSESSION = 1,
   37857     PE_UNDUCKSESSION = 2
   37858 } PBM_EVENT;
   37859 
   37860 /*****************************************************************************
   37861  * IPlaybackManagerEvents interface
   37862  */
   37863 #ifndef __IPlaybackManagerEvents_INTERFACE_DEFINED__
   37864 #define __IPlaybackManagerEvents_INTERFACE_DEFINED__
   37865 
   37866 DEFINE_GUID(IID_IPlaybackManagerEvents, 0x385cfb7d, 0x4e0c, 0x4106, 0x91,0x2e, 0x8c,0xfb,0x4c,0x19,0x1f,0x45);
   37867 #if defined(__cplusplus) && !defined(CINTERFACE)
   37868 MIDL_INTERFACE("385cfb7d-4e0c-4106-912e-8cfb4c191f45")
   37869 IPlaybackManagerEvents : public IUnknown
   37870 {
   37871     virtual HRESULT STDMETHODCALLTYPE OnPlaybackManagerEvent(
   37872         DWORD dwSessionId,
   37873         PBM_EVENT mediaEvent) = 0;
   37874 
   37875 };
   37876 #ifdef __CRT_UUID_DECL
   37877 __CRT_UUID_DECL(IPlaybackManagerEvents, 0x385cfb7d, 0x4e0c, 0x4106, 0x91,0x2e, 0x8c,0xfb,0x4c,0x19,0x1f,0x45)
   37878 #endif
   37879 #else
   37880 typedef struct IPlaybackManagerEventsVtbl {
   37881     BEGIN_INTERFACE
   37882 
   37883     /*** IUnknown methods ***/
   37884     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   37885         IPlaybackManagerEvents* This,
   37886         REFIID riid,
   37887         void **ppvObject);
   37888 
   37889     ULONG (STDMETHODCALLTYPE *AddRef)(
   37890         IPlaybackManagerEvents* This);
   37891 
   37892     ULONG (STDMETHODCALLTYPE *Release)(
   37893         IPlaybackManagerEvents* This);
   37894 
   37895     /*** IPlaybackManagerEvents methods ***/
   37896     HRESULT (STDMETHODCALLTYPE *OnPlaybackManagerEvent)(
   37897         IPlaybackManagerEvents* This,
   37898         DWORD dwSessionId,
   37899         PBM_EVENT mediaEvent);
   37900 
   37901     END_INTERFACE
   37902 } IPlaybackManagerEventsVtbl;
   37903 interface IPlaybackManagerEvents {
   37904     CONST_VTBL IPlaybackManagerEventsVtbl* lpVtbl;
   37905 };
   37906 
   37907 #ifdef COBJMACROS
   37908 #ifndef WIDL_C_INLINE_WRAPPERS
   37909 /*** IUnknown methods ***/
   37910 #define IPlaybackManagerEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   37911 #define IPlaybackManagerEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
   37912 #define IPlaybackManagerEvents_Release(This) (This)->lpVtbl->Release(This)
   37913 /*** IPlaybackManagerEvents methods ***/
   37914 #define IPlaybackManagerEvents_OnPlaybackManagerEvent(This,dwSessionId,mediaEvent) (This)->lpVtbl->OnPlaybackManagerEvent(This,dwSessionId,mediaEvent)
   37915 #else
   37916 /*** IUnknown methods ***/
   37917 static FORCEINLINE HRESULT IPlaybackManagerEvents_QueryInterface(IPlaybackManagerEvents* This,REFIID riid,void **ppvObject) {
   37918     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   37919 }
   37920 static FORCEINLINE ULONG IPlaybackManagerEvents_AddRef(IPlaybackManagerEvents* This) {
   37921     return This->lpVtbl->AddRef(This);
   37922 }
   37923 static FORCEINLINE ULONG IPlaybackManagerEvents_Release(IPlaybackManagerEvents* This) {
   37924     return This->lpVtbl->Release(This);
   37925 }
   37926 /*** IPlaybackManagerEvents methods ***/
   37927 static FORCEINLINE HRESULT IPlaybackManagerEvents_OnPlaybackManagerEvent(IPlaybackManagerEvents* This,DWORD dwSessionId,PBM_EVENT mediaEvent) {
   37928     return This->lpVtbl->OnPlaybackManagerEvent(This,dwSessionId,mediaEvent);
   37929 }
   37930 #endif
   37931 #endif
   37932 
   37933 #endif
   37934 
   37935 HRESULT STDMETHODCALLTYPE IPlaybackManagerEvents_OnPlaybackManagerEvent_Proxy(
   37936     IPlaybackManagerEvents* This,
   37937     DWORD dwSessionId,
   37938     PBM_EVENT mediaEvent);
   37939 void __RPC_STUB IPlaybackManagerEvents_OnPlaybackManagerEvent_Stub(
   37940     IRpcStubBuffer* This,
   37941     IRpcChannelBuffer* pRpcChannelBuffer,
   37942     PRPC_MESSAGE pRpcMessage,
   37943     DWORD* pdwStubPhase);
   37944 
   37945 #endif  /* __IPlaybackManagerEvents_INTERFACE_DEFINED__ */
   37946 
   37947 
   37948 typedef enum PBM_SESSION_TYPE {
   37949     ST_COMMUNICATION = 1,
   37950     ST_MEDIA = 2
   37951 } PBM_SESSION_TYPE;
   37952 
   37953 typedef enum PBM_PLAY_STATE {
   37954     PS_PLAYING = 1,
   37955     PS_PAUSED = 2,
   37956     PS_STOPPED = 3
   37957 } PBM_PLAY_STATE;
   37958 
   37959 typedef enum PBM_MUTE_STATE {
   37960     MS_MUTED = 1,
   37961     MS_UNMUTED = 2
   37962 } PBM_MUTE_STATE;
   37963 
   37964 /*****************************************************************************
   37965  * IPlaybackManager interface
   37966  */
   37967 #ifndef __IPlaybackManager_INTERFACE_DEFINED__
   37968 #define __IPlaybackManager_INTERFACE_DEFINED__
   37969 
   37970 DEFINE_GUID(IID_IPlaybackManager, 0x0f3c1b01, 0x8199, 0x4173, 0xba,0x78, 0x98,0x58,0x82,0x26,0x6f,0x7a);
   37971 #if defined(__cplusplus) && !defined(CINTERFACE)
   37972 MIDL_INTERFACE("0f3c1b01-8199-4173-ba78-985882266f7a")
   37973 IPlaybackManager : public IUnknown
   37974 {
   37975     virtual HRESULT STDMETHODCALLTYPE Advise(
   37976         PBM_SESSION_TYPE type,
   37977         IPlaybackManagerEvents *pEvents,
   37978         DWORD *pdwSessionId) = 0;
   37979 
   37980     virtual HRESULT STDMETHODCALLTYPE Unadvise(
   37981         DWORD dwSessionId) = 0;
   37982 
   37983     virtual HRESULT STDMETHODCALLTYPE ChangeSessionState(
   37984         DWORD dwSessionId,
   37985         PBM_PLAY_STATE state,
   37986         PBM_MUTE_STATE mute) = 0;
   37987 
   37988 };
   37989 #ifdef __CRT_UUID_DECL
   37990 __CRT_UUID_DECL(IPlaybackManager, 0x0f3c1b01, 0x8199, 0x4173, 0xba,0x78, 0x98,0x58,0x82,0x26,0x6f,0x7a)
   37991 #endif
   37992 #else
   37993 typedef struct IPlaybackManagerVtbl {
   37994     BEGIN_INTERFACE
   37995 
   37996     /*** IUnknown methods ***/
   37997     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   37998         IPlaybackManager* This,
   37999         REFIID riid,
   38000         void **ppvObject);
   38001 
   38002     ULONG (STDMETHODCALLTYPE *AddRef)(
   38003         IPlaybackManager* This);
   38004 
   38005     ULONG (STDMETHODCALLTYPE *Release)(
   38006         IPlaybackManager* This);
   38007 
   38008     /*** IPlaybackManager methods ***/
   38009     HRESULT (STDMETHODCALLTYPE *Advise)(
   38010         IPlaybackManager* This,
   38011         PBM_SESSION_TYPE type,
   38012         IPlaybackManagerEvents *pEvents,
   38013         DWORD *pdwSessionId);
   38014 
   38015     HRESULT (STDMETHODCALLTYPE *Unadvise)(
   38016         IPlaybackManager* This,
   38017         DWORD dwSessionId);
   38018 
   38019     HRESULT (STDMETHODCALLTYPE *ChangeSessionState)(
   38020         IPlaybackManager* This,
   38021         DWORD dwSessionId,
   38022         PBM_PLAY_STATE state,
   38023         PBM_MUTE_STATE mute);
   38024 
   38025     END_INTERFACE
   38026 } IPlaybackManagerVtbl;
   38027 interface IPlaybackManager {
   38028     CONST_VTBL IPlaybackManagerVtbl* lpVtbl;
   38029 };
   38030 
   38031 #ifdef COBJMACROS
   38032 #ifndef WIDL_C_INLINE_WRAPPERS
   38033 /*** IUnknown methods ***/
   38034 #define IPlaybackManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   38035 #define IPlaybackManager_AddRef(This) (This)->lpVtbl->AddRef(This)
   38036 #define IPlaybackManager_Release(This) (This)->lpVtbl->Release(This)
   38037 /*** IPlaybackManager methods ***/
   38038 #define IPlaybackManager_Advise(This,type,pEvents,pdwSessionId) (This)->lpVtbl->Advise(This,type,pEvents,pdwSessionId)
   38039 #define IPlaybackManager_Unadvise(This,dwSessionId) (This)->lpVtbl->Unadvise(This,dwSessionId)
   38040 #define IPlaybackManager_ChangeSessionState(This,dwSessionId,state,mute) (This)->lpVtbl->ChangeSessionState(This,dwSessionId,state,mute)
   38041 #else
   38042 /*** IUnknown methods ***/
   38043 static FORCEINLINE HRESULT IPlaybackManager_QueryInterface(IPlaybackManager* This,REFIID riid,void **ppvObject) {
   38044     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   38045 }
   38046 static FORCEINLINE ULONG IPlaybackManager_AddRef(IPlaybackManager* This) {
   38047     return This->lpVtbl->AddRef(This);
   38048 }
   38049 static FORCEINLINE ULONG IPlaybackManager_Release(IPlaybackManager* This) {
   38050     return This->lpVtbl->Release(This);
   38051 }
   38052 /*** IPlaybackManager methods ***/
   38053 static FORCEINLINE HRESULT IPlaybackManager_Advise(IPlaybackManager* This,PBM_SESSION_TYPE type,IPlaybackManagerEvents *pEvents,DWORD *pdwSessionId) {
   38054     return This->lpVtbl->Advise(This,type,pEvents,pdwSessionId);
   38055 }
   38056 static FORCEINLINE HRESULT IPlaybackManager_Unadvise(IPlaybackManager* This,DWORD dwSessionId) {
   38057     return This->lpVtbl->Unadvise(This,dwSessionId);
   38058 }
   38059 static FORCEINLINE HRESULT IPlaybackManager_ChangeSessionState(IPlaybackManager* This,DWORD dwSessionId,PBM_PLAY_STATE state,PBM_MUTE_STATE mute) {
   38060     return This->lpVtbl->ChangeSessionState(This,dwSessionId,state,mute);
   38061 }
   38062 #endif
   38063 #endif
   38064 
   38065 #endif
   38066 
   38067 HRESULT STDMETHODCALLTYPE IPlaybackManager_Advise_Proxy(
   38068     IPlaybackManager* This,
   38069     PBM_SESSION_TYPE type,
   38070     IPlaybackManagerEvents *pEvents,
   38071     DWORD *pdwSessionId);
   38072 void __RPC_STUB IPlaybackManager_Advise_Stub(
   38073     IRpcStubBuffer* This,
   38074     IRpcChannelBuffer* pRpcChannelBuffer,
   38075     PRPC_MESSAGE pRpcMessage,
   38076     DWORD* pdwStubPhase);
   38077 HRESULT STDMETHODCALLTYPE IPlaybackManager_Unadvise_Proxy(
   38078     IPlaybackManager* This,
   38079     DWORD dwSessionId);
   38080 void __RPC_STUB IPlaybackManager_Unadvise_Stub(
   38081     IRpcStubBuffer* This,
   38082     IRpcChannelBuffer* pRpcChannelBuffer,
   38083     PRPC_MESSAGE pRpcMessage,
   38084     DWORD* pdwStubPhase);
   38085 HRESULT STDMETHODCALLTYPE IPlaybackManager_ChangeSessionState_Proxy(
   38086     IPlaybackManager* This,
   38087     DWORD dwSessionId,
   38088     PBM_PLAY_STATE state,
   38089     PBM_MUTE_STATE mute);
   38090 void __RPC_STUB IPlaybackManager_ChangeSessionState_Stub(
   38091     IRpcStubBuffer* This,
   38092     IRpcChannelBuffer* pRpcChannelBuffer,
   38093     PRPC_MESSAGE pRpcMessage,
   38094     DWORD* pdwStubPhase);
   38095 
   38096 #endif  /* __IPlaybackManager_INTERFACE_DEFINED__ */
   38097 
   38098 
   38099 typedef enum DEFAULT_FOLDER_MENU_RESTRICTIONS {
   38100     DFMR_DEFAULT = 0x0,
   38101     DFMR_NO_STATIC_VERBS = 0x8,
   38102     DFMR_STATIC_VERBS_ONLY = 0x10,
   38103     DFMR_NO_RESOURCE_VERBS = 0x20,
   38104     DFMR_OPTIN_HANDLERS_ONLY = 0x40,
   38105     DFMR_RESOURCE_AND_FOLDER_VERBS_ONLY = 0x80,
   38106     DFMR_USE_SPECIFIED_HANDLERS = 0x100,
   38107     DFMR_USE_SPECIFIED_VERBS = 0x200,
   38108     DFMR_NO_ASYNC_VERBS = 0x400
   38109 } DEFAULT_FOLDER_MENU_RESTRICTIONS;
   38110 
   38111 DEFINE_ENUM_FLAG_OPERATORS(DEFAULT_FOLDER_MENU_RESTRICTIONS)
   38112 
   38113 /*****************************************************************************
   38114  * IDefaultFolderMenuInitialize interface
   38115  */
   38116 #ifndef __IDefaultFolderMenuInitialize_INTERFACE_DEFINED__
   38117 #define __IDefaultFolderMenuInitialize_INTERFACE_DEFINED__
   38118 
   38119 DEFINE_GUID(IID_IDefaultFolderMenuInitialize, 0x7690aa79, 0xf8fc, 0x4615, 0xa3,0x27, 0x36,0xf7,0xd1,0x8f,0x5d,0x91);
   38120 #if defined(__cplusplus) && !defined(CINTERFACE)
   38121 MIDL_INTERFACE("7690aa79-f8fc-4615-a327-36f7d18f5d91")
   38122 IDefaultFolderMenuInitialize : public IUnknown
   38123 {
   38124     virtual HRESULT STDMETHODCALLTYPE Initialize(
   38125         HWND hwnd,
   38126         IContextMenuCB *pcmcb,
   38127         PCIDLIST_ABSOLUTE pidlFolder,
   38128         IShellFolder *psf,
   38129         UINT cidl,
   38130         PCUITEMID_CHILD_ARRAY apidl,
   38131         IUnknown *punkAssociation,
   38132         UINT cKeys,
   38133         const HKEY *aKeys) = 0;
   38134 
   38135     virtual HRESULT STDMETHODCALLTYPE SetMenuRestrictions(
   38136         DEFAULT_FOLDER_MENU_RESTRICTIONS dfmrValues) = 0;
   38137 
   38138     virtual HRESULT STDMETHODCALLTYPE GetMenuRestrictions(
   38139         DEFAULT_FOLDER_MENU_RESTRICTIONS dfmrMask,
   38140         DEFAULT_FOLDER_MENU_RESTRICTIONS *pdfmrValues) = 0;
   38141 
   38142     virtual HRESULT STDMETHODCALLTYPE SetHandlerClsid(
   38143         REFCLSID rclsid) = 0;
   38144 
   38145 };
   38146 #ifdef __CRT_UUID_DECL
   38147 __CRT_UUID_DECL(IDefaultFolderMenuInitialize, 0x7690aa79, 0xf8fc, 0x4615, 0xa3,0x27, 0x36,0xf7,0xd1,0x8f,0x5d,0x91)
   38148 #endif
   38149 #else
   38150 typedef struct IDefaultFolderMenuInitializeVtbl {
   38151     BEGIN_INTERFACE
   38152 
   38153     /*** IUnknown methods ***/
   38154     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   38155         IDefaultFolderMenuInitialize* This,
   38156         REFIID riid,
   38157         void **ppvObject);
   38158 
   38159     ULONG (STDMETHODCALLTYPE *AddRef)(
   38160         IDefaultFolderMenuInitialize* This);
   38161 
   38162     ULONG (STDMETHODCALLTYPE *Release)(
   38163         IDefaultFolderMenuInitialize* This);
   38164 
   38165     /*** IDefaultFolderMenuInitialize methods ***/
   38166     HRESULT (STDMETHODCALLTYPE *Initialize)(
   38167         IDefaultFolderMenuInitialize* This,
   38168         HWND hwnd,
   38169         IContextMenuCB *pcmcb,
   38170         PCIDLIST_ABSOLUTE pidlFolder,
   38171         IShellFolder *psf,
   38172         UINT cidl,
   38173         PCUITEMID_CHILD_ARRAY apidl,
   38174         IUnknown *punkAssociation,
   38175         UINT cKeys,
   38176         const HKEY *aKeys);
   38177 
   38178     HRESULT (STDMETHODCALLTYPE *SetMenuRestrictions)(
   38179         IDefaultFolderMenuInitialize* This,
   38180         DEFAULT_FOLDER_MENU_RESTRICTIONS dfmrValues);
   38181 
   38182     HRESULT (STDMETHODCALLTYPE *GetMenuRestrictions)(
   38183         IDefaultFolderMenuInitialize* This,
   38184         DEFAULT_FOLDER_MENU_RESTRICTIONS dfmrMask,
   38185         DEFAULT_FOLDER_MENU_RESTRICTIONS *pdfmrValues);
   38186 
   38187     HRESULT (STDMETHODCALLTYPE *SetHandlerClsid)(
   38188         IDefaultFolderMenuInitialize* This,
   38189         REFCLSID rclsid);
   38190 
   38191     END_INTERFACE
   38192 } IDefaultFolderMenuInitializeVtbl;
   38193 interface IDefaultFolderMenuInitialize {
   38194     CONST_VTBL IDefaultFolderMenuInitializeVtbl* lpVtbl;
   38195 };
   38196 
   38197 #ifdef COBJMACROS
   38198 #ifndef WIDL_C_INLINE_WRAPPERS
   38199 /*** IUnknown methods ***/
   38200 #define IDefaultFolderMenuInitialize_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   38201 #define IDefaultFolderMenuInitialize_AddRef(This) (This)->lpVtbl->AddRef(This)
   38202 #define IDefaultFolderMenuInitialize_Release(This) (This)->lpVtbl->Release(This)
   38203 /*** IDefaultFolderMenuInitialize methods ***/
   38204 #define IDefaultFolderMenuInitialize_Initialize(This,hwnd,pcmcb,pidlFolder,psf,cidl,apidl,punkAssociation,cKeys,aKeys) (This)->lpVtbl->Initialize(This,hwnd,pcmcb,pidlFolder,psf,cidl,apidl,punkAssociation,cKeys,aKeys)
   38205 #define IDefaultFolderMenuInitialize_SetMenuRestrictions(This,dfmrValues) (This)->lpVtbl->SetMenuRestrictions(This,dfmrValues)
   38206 #define IDefaultFolderMenuInitialize_GetMenuRestrictions(This,dfmrMask,pdfmrValues) (This)->lpVtbl->GetMenuRestrictions(This,dfmrMask,pdfmrValues)
   38207 #define IDefaultFolderMenuInitialize_SetHandlerClsid(This,rclsid) (This)->lpVtbl->SetHandlerClsid(This,rclsid)
   38208 #else
   38209 /*** IUnknown methods ***/
   38210 static FORCEINLINE HRESULT IDefaultFolderMenuInitialize_QueryInterface(IDefaultFolderMenuInitialize* This,REFIID riid,void **ppvObject) {
   38211     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   38212 }
   38213 static FORCEINLINE ULONG IDefaultFolderMenuInitialize_AddRef(IDefaultFolderMenuInitialize* This) {
   38214     return This->lpVtbl->AddRef(This);
   38215 }
   38216 static FORCEINLINE ULONG IDefaultFolderMenuInitialize_Release(IDefaultFolderMenuInitialize* This) {
   38217     return This->lpVtbl->Release(This);
   38218 }
   38219 /*** IDefaultFolderMenuInitialize methods ***/
   38220 static FORCEINLINE HRESULT IDefaultFolderMenuInitialize_Initialize(IDefaultFolderMenuInitialize* This,HWND hwnd,IContextMenuCB *pcmcb,PCIDLIST_ABSOLUTE pidlFolder,IShellFolder *psf,UINT cidl,PCUITEMID_CHILD_ARRAY apidl,IUnknown *punkAssociation,UINT cKeys,const HKEY *aKeys) {
   38221     return This->lpVtbl->Initialize(This,hwnd,pcmcb,pidlFolder,psf,cidl,apidl,punkAssociation,cKeys,aKeys);
   38222 }
   38223 static FORCEINLINE HRESULT IDefaultFolderMenuInitialize_SetMenuRestrictions(IDefaultFolderMenuInitialize* This,DEFAULT_FOLDER_MENU_RESTRICTIONS dfmrValues) {
   38224     return This->lpVtbl->SetMenuRestrictions(This,dfmrValues);
   38225 }
   38226 static FORCEINLINE HRESULT IDefaultFolderMenuInitialize_GetMenuRestrictions(IDefaultFolderMenuInitialize* This,DEFAULT_FOLDER_MENU_RESTRICTIONS dfmrMask,DEFAULT_FOLDER_MENU_RESTRICTIONS *pdfmrValues) {
   38227     return This->lpVtbl->GetMenuRestrictions(This,dfmrMask,pdfmrValues);
   38228 }
   38229 static FORCEINLINE HRESULT IDefaultFolderMenuInitialize_SetHandlerClsid(IDefaultFolderMenuInitialize* This,REFCLSID rclsid) {
   38230     return This->lpVtbl->SetHandlerClsid(This,rclsid);
   38231 }
   38232 #endif
   38233 #endif
   38234 
   38235 #endif
   38236 
   38237 HRESULT STDMETHODCALLTYPE IDefaultFolderMenuInitialize_Initialize_Proxy(
   38238     IDefaultFolderMenuInitialize* This,
   38239     HWND hwnd,
   38240     IContextMenuCB *pcmcb,
   38241     PCIDLIST_ABSOLUTE pidlFolder,
   38242     IShellFolder *psf,
   38243     UINT cidl,
   38244     PCUITEMID_CHILD_ARRAY apidl,
   38245     IUnknown *punkAssociation,
   38246     UINT cKeys,
   38247     const HKEY *aKeys);
   38248 void __RPC_STUB IDefaultFolderMenuInitialize_Initialize_Stub(
   38249     IRpcStubBuffer* This,
   38250     IRpcChannelBuffer* pRpcChannelBuffer,
   38251     PRPC_MESSAGE pRpcMessage,
   38252     DWORD* pdwStubPhase);
   38253 HRESULT STDMETHODCALLTYPE IDefaultFolderMenuInitialize_SetMenuRestrictions_Proxy(
   38254     IDefaultFolderMenuInitialize* This,
   38255     DEFAULT_FOLDER_MENU_RESTRICTIONS dfmrValues);
   38256 void __RPC_STUB IDefaultFolderMenuInitialize_SetMenuRestrictions_Stub(
   38257     IRpcStubBuffer* This,
   38258     IRpcChannelBuffer* pRpcChannelBuffer,
   38259     PRPC_MESSAGE pRpcMessage,
   38260     DWORD* pdwStubPhase);
   38261 HRESULT STDMETHODCALLTYPE IDefaultFolderMenuInitialize_GetMenuRestrictions_Proxy(
   38262     IDefaultFolderMenuInitialize* This,
   38263     DEFAULT_FOLDER_MENU_RESTRICTIONS dfmrMask,
   38264     DEFAULT_FOLDER_MENU_RESTRICTIONS *pdfmrValues);
   38265 void __RPC_STUB IDefaultFolderMenuInitialize_GetMenuRestrictions_Stub(
   38266     IRpcStubBuffer* This,
   38267     IRpcChannelBuffer* pRpcChannelBuffer,
   38268     PRPC_MESSAGE pRpcMessage,
   38269     DWORD* pdwStubPhase);
   38270 HRESULT STDMETHODCALLTYPE IDefaultFolderMenuInitialize_SetHandlerClsid_Proxy(
   38271     IDefaultFolderMenuInitialize* This,
   38272     REFCLSID rclsid);
   38273 void __RPC_STUB IDefaultFolderMenuInitialize_SetHandlerClsid_Stub(
   38274     IRpcStubBuffer* This,
   38275     IRpcChannelBuffer* pRpcChannelBuffer,
   38276     PRPC_MESSAGE pRpcMessage,
   38277     DWORD* pdwStubPhase);
   38278 
   38279 #endif  /* __IDefaultFolderMenuInitialize_INTERFACE_DEFINED__ */
   38280 
   38281 
   38282 #if NTDDI_VERSION >= NTDDI_WIN8
   38283 typedef enum ACTIVATEOPTIONS {
   38284     AO_NONE = 0x0,
   38285     AO_DESIGNMODE = 0x1,
   38286     AO_NOERRORUI = 0x2,
   38287     AO_NOSPLASHSCREEN = 0x4
   38288 } ACTIVATEOPTIONS;
   38289 
   38290 DEFINE_ENUM_FLAG_OPERATORS(ACTIVATEOPTIONS)
   38291 
   38292 /*****************************************************************************
   38293  * IApplicationActivationManager interface
   38294  */
   38295 #ifndef __IApplicationActivationManager_INTERFACE_DEFINED__
   38296 #define __IApplicationActivationManager_INTERFACE_DEFINED__
   38297 
   38298 DEFINE_GUID(IID_IApplicationActivationManager, 0x2e941141, 0x7f97, 0x4756, 0xba,0x1d, 0x9d,0xec,0xde,0x89,0x4a,0x3d);
   38299 #if defined(__cplusplus) && !defined(CINTERFACE)
   38300 MIDL_INTERFACE("2e941141-7f97-4756-ba1d-9decde894a3d")
   38301 IApplicationActivationManager : public IUnknown
   38302 {
   38303     virtual HRESULT STDMETHODCALLTYPE ActivateApplication(
   38304         LPCWSTR appUserModelId,
   38305         LPCWSTR arguments,
   38306         ACTIVATEOPTIONS options,
   38307         DWORD *processId) = 0;
   38308 
   38309     virtual HRESULT STDMETHODCALLTYPE ActivateForFile(
   38310         LPCWSTR appUserModelId,
   38311         IShellItemArray *itemArray,
   38312         LPCWSTR verb,
   38313         DWORD *processId) = 0;
   38314 
   38315     virtual HRESULT STDMETHODCALLTYPE ActivateForProtocol(
   38316         LPCWSTR appUserModelId,
   38317         IShellItemArray *itemArray,
   38318         DWORD *processId) = 0;
   38319 
   38320 };
   38321 #ifdef __CRT_UUID_DECL
   38322 __CRT_UUID_DECL(IApplicationActivationManager, 0x2e941141, 0x7f97, 0x4756, 0xba,0x1d, 0x9d,0xec,0xde,0x89,0x4a,0x3d)
   38323 #endif
   38324 #else
   38325 typedef struct IApplicationActivationManagerVtbl {
   38326     BEGIN_INTERFACE
   38327 
   38328     /*** IUnknown methods ***/
   38329     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   38330         IApplicationActivationManager* This,
   38331         REFIID riid,
   38332         void **ppvObject);
   38333 
   38334     ULONG (STDMETHODCALLTYPE *AddRef)(
   38335         IApplicationActivationManager* This);
   38336 
   38337     ULONG (STDMETHODCALLTYPE *Release)(
   38338         IApplicationActivationManager* This);
   38339 
   38340     /*** IApplicationActivationManager methods ***/
   38341     HRESULT (STDMETHODCALLTYPE *ActivateApplication)(
   38342         IApplicationActivationManager* This,
   38343         LPCWSTR appUserModelId,
   38344         LPCWSTR arguments,
   38345         ACTIVATEOPTIONS options,
   38346         DWORD *processId);
   38347 
   38348     HRESULT (STDMETHODCALLTYPE *ActivateForFile)(
   38349         IApplicationActivationManager* This,
   38350         LPCWSTR appUserModelId,
   38351         IShellItemArray *itemArray,
   38352         LPCWSTR verb,
   38353         DWORD *processId);
   38354 
   38355     HRESULT (STDMETHODCALLTYPE *ActivateForProtocol)(
   38356         IApplicationActivationManager* This,
   38357         LPCWSTR appUserModelId,
   38358         IShellItemArray *itemArray,
   38359         DWORD *processId);
   38360 
   38361     END_INTERFACE
   38362 } IApplicationActivationManagerVtbl;
   38363 interface IApplicationActivationManager {
   38364     CONST_VTBL IApplicationActivationManagerVtbl* lpVtbl;
   38365 };
   38366 
   38367 #ifdef COBJMACROS
   38368 #ifndef WIDL_C_INLINE_WRAPPERS
   38369 /*** IUnknown methods ***/
   38370 #define IApplicationActivationManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   38371 #define IApplicationActivationManager_AddRef(This) (This)->lpVtbl->AddRef(This)
   38372 #define IApplicationActivationManager_Release(This) (This)->lpVtbl->Release(This)
   38373 /*** IApplicationActivationManager methods ***/
   38374 #define IApplicationActivationManager_ActivateApplication(This,appUserModelId,arguments,options,processId) (This)->lpVtbl->ActivateApplication(This,appUserModelId,arguments,options,processId)
   38375 #define IApplicationActivationManager_ActivateForFile(This,appUserModelId,itemArray,verb,processId) (This)->lpVtbl->ActivateForFile(This,appUserModelId,itemArray,verb,processId)
   38376 #define IApplicationActivationManager_ActivateForProtocol(This,appUserModelId,itemArray,processId) (This)->lpVtbl->ActivateForProtocol(This,appUserModelId,itemArray,processId)
   38377 #else
   38378 /*** IUnknown methods ***/
   38379 static FORCEINLINE HRESULT IApplicationActivationManager_QueryInterface(IApplicationActivationManager* This,REFIID riid,void **ppvObject) {
   38380     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   38381 }
   38382 static FORCEINLINE ULONG IApplicationActivationManager_AddRef(IApplicationActivationManager* This) {
   38383     return This->lpVtbl->AddRef(This);
   38384 }
   38385 static FORCEINLINE ULONG IApplicationActivationManager_Release(IApplicationActivationManager* This) {
   38386     return This->lpVtbl->Release(This);
   38387 }
   38388 /*** IApplicationActivationManager methods ***/
   38389 static FORCEINLINE HRESULT IApplicationActivationManager_ActivateApplication(IApplicationActivationManager* This,LPCWSTR appUserModelId,LPCWSTR arguments,ACTIVATEOPTIONS options,DWORD *processId) {
   38390     return This->lpVtbl->ActivateApplication(This,appUserModelId,arguments,options,processId);
   38391 }
   38392 static FORCEINLINE HRESULT IApplicationActivationManager_ActivateForFile(IApplicationActivationManager* This,LPCWSTR appUserModelId,IShellItemArray *itemArray,LPCWSTR verb,DWORD *processId) {
   38393     return This->lpVtbl->ActivateForFile(This,appUserModelId,itemArray,verb,processId);
   38394 }
   38395 static FORCEINLINE HRESULT IApplicationActivationManager_ActivateForProtocol(IApplicationActivationManager* This,LPCWSTR appUserModelId,IShellItemArray *itemArray,DWORD *processId) {
   38396     return This->lpVtbl->ActivateForProtocol(This,appUserModelId,itemArray,processId);
   38397 }
   38398 #endif
   38399 #endif
   38400 
   38401 #endif
   38402 
   38403 HRESULT STDMETHODCALLTYPE IApplicationActivationManager_ActivateApplication_Proxy(
   38404     IApplicationActivationManager* This,
   38405     LPCWSTR appUserModelId,
   38406     LPCWSTR arguments,
   38407     ACTIVATEOPTIONS options,
   38408     DWORD *processId);
   38409 void __RPC_STUB IApplicationActivationManager_ActivateApplication_Stub(
   38410     IRpcStubBuffer* This,
   38411     IRpcChannelBuffer* pRpcChannelBuffer,
   38412     PRPC_MESSAGE pRpcMessage,
   38413     DWORD* pdwStubPhase);
   38414 HRESULT STDMETHODCALLTYPE IApplicationActivationManager_ActivateForFile_Proxy(
   38415     IApplicationActivationManager* This,
   38416     LPCWSTR appUserModelId,
   38417     IShellItemArray *itemArray,
   38418     LPCWSTR verb,
   38419     DWORD *processId);
   38420 void __RPC_STUB IApplicationActivationManager_ActivateForFile_Stub(
   38421     IRpcStubBuffer* This,
   38422     IRpcChannelBuffer* pRpcChannelBuffer,
   38423     PRPC_MESSAGE pRpcMessage,
   38424     DWORD* pdwStubPhase);
   38425 HRESULT STDMETHODCALLTYPE IApplicationActivationManager_ActivateForProtocol_Proxy(
   38426     IApplicationActivationManager* This,
   38427     LPCWSTR appUserModelId,
   38428     IShellItemArray *itemArray,
   38429     DWORD *processId);
   38430 void __RPC_STUB IApplicationActivationManager_ActivateForProtocol_Stub(
   38431     IRpcStubBuffer* This,
   38432     IRpcChannelBuffer* pRpcChannelBuffer,
   38433     PRPC_MESSAGE pRpcMessage,
   38434     DWORD* pdwStubPhase);
   38435 
   38436 #endif  /* __IApplicationActivationManager_INTERFACE_DEFINED__ */
   38437 
   38438 #endif
   38439 
   38440 
   38441 DEFINE_GUID(LIBID_ShellObjects, 0x50a7e9b1, 0x70ef, 0x11d1, 0xb7,0x5a, 0x00,0xa0,0xc9,0x05,0x64,0xfe);
   38442 
   38443 /*****************************************************************************
   38444  * DesktopWallpaper coclass
   38445  */
   38446 
   38447 DEFINE_GUID(CLSID_DesktopWallpaper, 0xc2cf3110, 0x460e, 0x4fc1, 0xb9,0xd0, 0x8a,0x1c,0x0c,0x9c,0xc4,0xbd);
   38448 
   38449 #ifdef __cplusplus
   38450 class DECLSPEC_UUID("c2cf3110-460e-4fc1-b9d0-8a1c0c9cc4bd") DesktopWallpaper;
   38451 #ifdef __CRT_UUID_DECL
   38452 __CRT_UUID_DECL(DesktopWallpaper, 0xc2cf3110, 0x460e, 0x4fc1, 0xb9,0xd0, 0x8a,0x1c,0x0c,0x9c,0xc4,0xbd)
   38453 #endif
   38454 #endif
   38455 
   38456 /*****************************************************************************
   38457  * ShellDesktop coclass
   38458  */
   38459 
   38460 DEFINE_GUID(CLSID_ShellDesktop, 0x00021400, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   38461 
   38462 #ifdef __cplusplus
   38463 class DECLSPEC_UUID("00021400-0000-0000-c000-000000000046") ShellDesktop;
   38464 #ifdef __CRT_UUID_DECL
   38465 __CRT_UUID_DECL(ShellDesktop, 0x00021400, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   38466 #endif
   38467 #endif
   38468 
   38469 /*****************************************************************************
   38470  * ShellFSFolder coclass
   38471  */
   38472 
   38473 DEFINE_GUID(CLSID_ShellFSFolder, 0xf3364ba0, 0x65b9, 0x11ce, 0xa9,0xba, 0x00,0xaa,0x00,0x4a,0xe8,0x37);
   38474 
   38475 #ifdef __cplusplus
   38476 class DECLSPEC_UUID("f3364ba0-65b9-11ce-a9ba-00aa004ae837") ShellFSFolder;
   38477 #ifdef __CRT_UUID_DECL
   38478 __CRT_UUID_DECL(ShellFSFolder, 0xf3364ba0, 0x65b9, 0x11ce, 0xa9,0xba, 0x00,0xaa,0x00,0x4a,0xe8,0x37)
   38479 #endif
   38480 #endif
   38481 
   38482 /*****************************************************************************
   38483  * NetworkPlaces coclass
   38484  */
   38485 
   38486 DEFINE_GUID(CLSID_NetworkPlaces, 0x208d2c60, 0x3aea, 0x1069, 0xa2,0xd7, 0x08,0x00,0x2b,0x30,0x30,0x9d);
   38487 
   38488 #ifdef __cplusplus
   38489 class DECLSPEC_UUID("208d2c60-3aea-1069-a2d7-08002b30309d") NetworkPlaces;
   38490 #ifdef __CRT_UUID_DECL
   38491 __CRT_UUID_DECL(NetworkPlaces, 0x208d2c60, 0x3aea, 0x1069, 0xa2,0xd7, 0x08,0x00,0x2b,0x30,0x30,0x9d)
   38492 #endif
   38493 #endif
   38494 
   38495 /*****************************************************************************
   38496  * ShellLink coclass
   38497  */
   38498 
   38499 DEFINE_GUID(CLSID_ShellLink, 0x00021401, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   38500 
   38501 #ifdef __cplusplus
   38502 class DECLSPEC_UUID("00021401-0000-0000-c000-000000000046") ShellLink;
   38503 #ifdef __CRT_UUID_DECL
   38504 __CRT_UUID_DECL(ShellLink, 0x00021401, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   38505 #endif
   38506 #endif
   38507 
   38508 /*****************************************************************************
   38509  * QueryCancelAutoPlay coclass
   38510  */
   38511 
   38512 DEFINE_GUID(CLSID_QueryCancelAutoPlay, 0x331f1768, 0x05a9, 0x4ddd, 0xb8,0x6e, 0xda,0xe3,0x4d,0xdc,0x99,0x8a);
   38513 
   38514 #ifdef __cplusplus
   38515 class DECLSPEC_UUID("331f1768-05a9-4ddd-b86e-dae34ddc998a") QueryCancelAutoPlay;
   38516 #ifdef __CRT_UUID_DECL
   38517 __CRT_UUID_DECL(QueryCancelAutoPlay, 0x331f1768, 0x05a9, 0x4ddd, 0xb8,0x6e, 0xda,0xe3,0x4d,0xdc,0x99,0x8a)
   38518 #endif
   38519 #endif
   38520 
   38521 /*****************************************************************************
   38522  * DriveSizeCategorizer coclass
   38523  */
   38524 
   38525 DEFINE_GUID(CLSID_DriveSizeCategorizer, 0x94357b53, 0xca29, 0x4b78, 0x83,0xae, 0xe8,0xfe,0x74,0x09,0x13,0x4f);
   38526 
   38527 #ifdef __cplusplus
   38528 class DECLSPEC_UUID("94357b53-ca29-4b78-83ae-e8fe7409134f") DriveSizeCategorizer;
   38529 #ifdef __CRT_UUID_DECL
   38530 __CRT_UUID_DECL(DriveSizeCategorizer, 0x94357b53, 0xca29, 0x4b78, 0x83,0xae, 0xe8,0xfe,0x74,0x09,0x13,0x4f)
   38531 #endif
   38532 #endif
   38533 
   38534 /*****************************************************************************
   38535  * DriveTypeCategorizer coclass
   38536  */
   38537 
   38538 DEFINE_GUID(CLSID_DriveTypeCategorizer, 0xb0a8f3cf, 0x4333, 0x4bab, 0x88,0x73, 0x1c,0xcb,0x1c,0xad,0xa4,0x8b);
   38539 
   38540 #ifdef __cplusplus
   38541 class DECLSPEC_UUID("b0a8f3cf-4333-4bab-8873-1ccb1cada48b") DriveTypeCategorizer;
   38542 #ifdef __CRT_UUID_DECL
   38543 __CRT_UUID_DECL(DriveTypeCategorizer, 0xb0a8f3cf, 0x4333, 0x4bab, 0x88,0x73, 0x1c,0xcb,0x1c,0xad,0xa4,0x8b)
   38544 #endif
   38545 #endif
   38546 
   38547 /*****************************************************************************
   38548  * FreeSpaceCategorizer coclass
   38549  */
   38550 
   38551 DEFINE_GUID(CLSID_FreeSpaceCategorizer, 0xb5607793, 0x24ac, 0x44c7, 0x82,0xe2, 0x83,0x17,0x26,0xaa,0x6c,0xb7);
   38552 
   38553 #ifdef __cplusplus
   38554 class DECLSPEC_UUID("b5607793-24ac-44c7-82e2-831726aa6cb7") FreeSpaceCategorizer;
   38555 #ifdef __CRT_UUID_DECL
   38556 __CRT_UUID_DECL(FreeSpaceCategorizer, 0xb5607793, 0x24ac, 0x44c7, 0x82,0xe2, 0x83,0x17,0x26,0xaa,0x6c,0xb7)
   38557 #endif
   38558 #endif
   38559 
   38560 /*****************************************************************************
   38561  * TimeCategorizer coclass
   38562  */
   38563 
   38564 DEFINE_GUID(CLSID_TimeCategorizer, 0x3bb4118f, 0xddfd, 0x4d30, 0xa3,0x48, 0x9f,0xb5,0xd6,0xbf,0x1a,0xfe);
   38565 
   38566 #ifdef __cplusplus
   38567 class DECLSPEC_UUID("3bb4118f-ddfd-4d30-a348-9fb5d6bf1afe") TimeCategorizer;
   38568 #ifdef __CRT_UUID_DECL
   38569 __CRT_UUID_DECL(TimeCategorizer, 0x3bb4118f, 0xddfd, 0x4d30, 0xa3,0x48, 0x9f,0xb5,0xd6,0xbf,0x1a,0xfe)
   38570 #endif
   38571 #endif
   38572 
   38573 /*****************************************************************************
   38574  * SizeCategorizer coclass
   38575  */
   38576 
   38577 DEFINE_GUID(CLSID_SizeCategorizer, 0x55d7b852, 0xf6d1, 0x42f2, 0xaa,0x75, 0x87,0x28,0xa1,0xb2,0xd2,0x64);
   38578 
   38579 #ifdef __cplusplus
   38580 class DECLSPEC_UUID("55d7b852-f6d1-42f2-aa75-8728a1b2d264") SizeCategorizer;
   38581 #ifdef __CRT_UUID_DECL
   38582 __CRT_UUID_DECL(SizeCategorizer, 0x55d7b852, 0xf6d1, 0x42f2, 0xaa,0x75, 0x87,0x28,0xa1,0xb2,0xd2,0x64)
   38583 #endif
   38584 #endif
   38585 
   38586 /*****************************************************************************
   38587  * AlphabeticalCategorizer coclass
   38588  */
   38589 
   38590 DEFINE_GUID(CLSID_AlphabeticalCategorizer, 0x3c2654c6, 0x7372, 0x4f6b, 0xb3,0x10, 0x55,0xd6,0x12,0x8f,0x49,0xd2);
   38591 
   38592 #ifdef __cplusplus
   38593 class DECLSPEC_UUID("3c2654c6-7372-4f6b-b310-55d6128f49d2") AlphabeticalCategorizer;
   38594 #ifdef __CRT_UUID_DECL
   38595 __CRT_UUID_DECL(AlphabeticalCategorizer, 0x3c2654c6, 0x7372, 0x4f6b, 0xb3,0x10, 0x55,0xd6,0x12,0x8f,0x49,0xd2)
   38596 #endif
   38597 #endif
   38598 
   38599 /*****************************************************************************
   38600  * MergedCategorizer coclass
   38601  */
   38602 
   38603 DEFINE_GUID(CLSID_MergedCategorizer, 0x8e827c11, 0x33e7, 0x4bc1, 0xb2,0x42, 0x8c,0xd9,0xa1,0xc2,0xb3,0x04);
   38604 
   38605 #ifdef __cplusplus
   38606 class DECLSPEC_UUID("8e827c11-33e7-4bc1-b242-8cd9a1c2b304") MergedCategorizer;
   38607 #ifdef __CRT_UUID_DECL
   38608 __CRT_UUID_DECL(MergedCategorizer, 0x8e827c11, 0x33e7, 0x4bc1, 0xb2,0x42, 0x8c,0xd9,0xa1,0xc2,0xb3,0x04)
   38609 #endif
   38610 #endif
   38611 
   38612 /*****************************************************************************
   38613  * ImageProperties coclass
   38614  */
   38615 
   38616 DEFINE_GUID(CLSID_ImageProperties, 0x7ab770c7, 0x0e23, 0x4d7a, 0x8a,0xa2, 0x19,0xbf,0xad,0x47,0x98,0x29);
   38617 
   38618 #ifdef __cplusplus
   38619 class DECLSPEC_UUID("7ab770c7-0e23-4d7a-8aa2-19bfad479829") ImageProperties;
   38620 #ifdef __CRT_UUID_DECL
   38621 __CRT_UUID_DECL(ImageProperties, 0x7ab770c7, 0x0e23, 0x4d7a, 0x8a,0xa2, 0x19,0xbf,0xad,0x47,0x98,0x29)
   38622 #endif
   38623 #endif
   38624 
   38625 /*****************************************************************************
   38626  * PropertiesUI coclass
   38627  */
   38628 
   38629 DEFINE_GUID(CLSID_PropertiesUI, 0xd912f8cf, 0x0396, 0x4915, 0x88,0x4e, 0xfb,0x42,0x5d,0x32,0x94,0x3b);
   38630 
   38631 #ifdef __cplusplus
   38632 class DECLSPEC_UUID("d912f8cf-0396-4915-884e-fb425d32943b") PropertiesUI;
   38633 #ifdef __CRT_UUID_DECL
   38634 __CRT_UUID_DECL(PropertiesUI, 0xd912f8cf, 0x0396, 0x4915, 0x88,0x4e, 0xfb,0x42,0x5d,0x32,0x94,0x3b)
   38635 #endif
   38636 #endif
   38637 
   38638 /*****************************************************************************
   38639  * UserNotification coclass
   38640  */
   38641 
   38642 DEFINE_GUID(CLSID_UserNotification, 0x0010890e, 0x8789, 0x413c, 0xad,0xbc, 0x48,0xf5,0xb5,0x11,0xb3,0xaf);
   38643 
   38644 #ifdef __cplusplus
   38645 class DECLSPEC_UUID("0010890e-8789-413c-adbc-48f5b511b3af") UserNotification;
   38646 #ifdef __CRT_UUID_DECL
   38647 __CRT_UUID_DECL(UserNotification, 0x0010890e, 0x8789, 0x413c, 0xad,0xbc, 0x48,0xf5,0xb5,0x11,0xb3,0xaf)
   38648 #endif
   38649 #endif
   38650 
   38651 /*****************************************************************************
   38652  * CDBurn coclass
   38653  */
   38654 
   38655 DEFINE_GUID(CLSID_CDBurn, 0xfbeb8a05, 0xbeee, 0x4442, 0x80,0x4e, 0x40,0x9d,0x6c,0x45,0x15,0xe9);
   38656 
   38657 #ifdef __cplusplus
   38658 class DECLSPEC_UUID("fbeb8a05-beee-4442-804e-409d6c4515e9") CDBurn;
   38659 #ifdef __CRT_UUID_DECL
   38660 __CRT_UUID_DECL(CDBurn, 0xfbeb8a05, 0xbeee, 0x4442, 0x80,0x4e, 0x40,0x9d,0x6c,0x45,0x15,0xe9)
   38661 #endif
   38662 #endif
   38663 
   38664 /*****************************************************************************
   38665  * TaskbarList coclass
   38666  */
   38667 
   38668 DEFINE_GUID(CLSID_TaskbarList, 0x56fdf344, 0xfd6d, 0x11d0, 0x95,0x8a, 0x00,0x60,0x97,0xc9,0xa0,0x90);
   38669 
   38670 #ifdef __cplusplus
   38671 class DECLSPEC_UUID("56fdf344-fd6d-11d0-958a-006097c9a090") TaskbarList;
   38672 #ifdef __CRT_UUID_DECL
   38673 __CRT_UUID_DECL(TaskbarList, 0x56fdf344, 0xfd6d, 0x11d0, 0x95,0x8a, 0x00,0x60,0x97,0xc9,0xa0,0x90)
   38674 #endif
   38675 #endif
   38676 
   38677 /*****************************************************************************
   38678  * StartMenuPin coclass
   38679  */
   38680 
   38681 DEFINE_GUID(CLSID_StartMenuPin, 0xa2a9545d, 0xa0c2, 0x42b4, 0x97,0x08, 0xa0,0xb2,0xba,0xdd,0x77,0xc8);
   38682 
   38683 #ifdef __cplusplus
   38684 class DECLSPEC_UUID("a2a9545d-a0c2-42b4-9708-a0b2badd77c8") StartMenuPin;
   38685 #ifdef __CRT_UUID_DECL
   38686 __CRT_UUID_DECL(StartMenuPin, 0xa2a9545d, 0xa0c2, 0x42b4, 0x97,0x08, 0xa0,0xb2,0xba,0xdd,0x77,0xc8)
   38687 #endif
   38688 #endif
   38689 
   38690 /*****************************************************************************
   38691  * WebWizardHost coclass
   38692  */
   38693 
   38694 DEFINE_GUID(CLSID_WebWizardHost, 0xc827f149, 0x55c1, 0x4d28, 0x93,0x5e, 0x57,0xe4,0x7c,0xae,0xd9,0x73);
   38695 
   38696 #ifdef __cplusplus
   38697 class DECLSPEC_UUID("c827f149-55c1-4d28-935e-57e47caed973") WebWizardHost;
   38698 #ifdef __CRT_UUID_DECL
   38699 __CRT_UUID_DECL(WebWizardHost, 0xc827f149, 0x55c1, 0x4d28, 0x93,0x5e, 0x57,0xe4,0x7c,0xae,0xd9,0x73)
   38700 #endif
   38701 #endif
   38702 
   38703 /*****************************************************************************
   38704  * PublishDropTarget coclass
   38705  */
   38706 
   38707 DEFINE_GUID(CLSID_PublishDropTarget, 0xcc6eeffb, 0x43f6, 0x46c5, 0x96,0x19, 0x51,0xd5,0x71,0x96,0x7f,0x7d);
   38708 
   38709 #ifdef __cplusplus
   38710 class DECLSPEC_UUID("cc6eeffb-43f6-46c5-9619-51d571967f7d") PublishDropTarget;
   38711 #ifdef __CRT_UUID_DECL
   38712 __CRT_UUID_DECL(PublishDropTarget, 0xcc6eeffb, 0x43f6, 0x46c5, 0x96,0x19, 0x51,0xd5,0x71,0x96,0x7f,0x7d)
   38713 #endif
   38714 #endif
   38715 
   38716 /*****************************************************************************
   38717  * PublishingWizard coclass
   38718  */
   38719 
   38720 DEFINE_GUID(CLSID_PublishingWizard, 0x6b33163c, 0x76a5, 0x4b6c, 0xbf,0x21, 0x45,0xde,0x9c,0xd5,0x03,0xa1);
   38721 
   38722 #ifdef __cplusplus
   38723 class DECLSPEC_UUID("6b33163c-76a5-4b6c-bf21-45de9cd503a1") PublishingWizard;
   38724 #ifdef __CRT_UUID_DECL
   38725 __CRT_UUID_DECL(PublishingWizard, 0x6b33163c, 0x76a5, 0x4b6c, 0xbf,0x21, 0x45,0xde,0x9c,0xd5,0x03,0xa1)
   38726 #endif
   38727 #endif
   38728 
   38729 #define SID_PublishingWizard CLSID_PublishingWizard
   38730 /*****************************************************************************
   38731  * InternetPrintOrdering coclass
   38732  */
   38733 
   38734 DEFINE_GUID(CLSID_InternetPrintOrdering, 0xadd36aa8, 0x751a, 0x4579, 0xa2,0x66, 0xd6,0x6f,0x52,0x02,0xcc,0xbb);
   38735 
   38736 #ifdef __cplusplus
   38737 class DECLSPEC_UUID("add36aa8-751a-4579-a266-d66f5202ccbb") InternetPrintOrdering;
   38738 #ifdef __CRT_UUID_DECL
   38739 __CRT_UUID_DECL(InternetPrintOrdering, 0xadd36aa8, 0x751a, 0x4579, 0xa2,0x66, 0xd6,0x6f,0x52,0x02,0xcc,0xbb)
   38740 #endif
   38741 #endif
   38742 
   38743 /*****************************************************************************
   38744  * FolderViewHost coclass
   38745  */
   38746 
   38747 DEFINE_GUID(CLSID_FolderViewHost, 0x20b1cb23, 0x6968, 0x4eb9, 0xb7,0xd4, 0xa6,0x6d,0x00,0xd0,0x7c,0xee);
   38748 
   38749 #ifdef __cplusplus
   38750 class DECLSPEC_UUID("20b1cb23-6968-4eb9-b7d4-a66d00d07cee") FolderViewHost;
   38751 #ifdef __CRT_UUID_DECL
   38752 __CRT_UUID_DECL(FolderViewHost, 0x20b1cb23, 0x6968, 0x4eb9, 0xb7,0xd4, 0xa6,0x6d,0x00,0xd0,0x7c,0xee)
   38753 #endif
   38754 #endif
   38755 
   38756 /*****************************************************************************
   38757  * ExplorerBrowser coclass
   38758  */
   38759 
   38760 DEFINE_GUID(CLSID_ExplorerBrowser, 0x71f96385, 0xddd6, 0x48d3, 0xa0,0xc1, 0xae,0x06,0xe8,0xb0,0x55,0xfb);
   38761 
   38762 #ifdef __cplusplus
   38763 class DECLSPEC_UUID("71f96385-ddd6-48d3-a0c1-ae06e8b055fb") ExplorerBrowser;
   38764 #ifdef __CRT_UUID_DECL
   38765 __CRT_UUID_DECL(ExplorerBrowser, 0x71f96385, 0xddd6, 0x48d3, 0xa0,0xc1, 0xae,0x06,0xe8,0xb0,0x55,0xfb)
   38766 #endif
   38767 #endif
   38768 
   38769 /*****************************************************************************
   38770  * ImageRecompress coclass
   38771  */
   38772 
   38773 DEFINE_GUID(CLSID_ImageRecompress, 0x6e33091c, 0xd2f8, 0x4740, 0xb5,0x5e, 0x2e,0x11,0xd1,0x47,0x7a,0x2c);
   38774 
   38775 #ifdef __cplusplus
   38776 class DECLSPEC_UUID("6e33091c-d2f8-4740-b55e-2e11d1477a2c") ImageRecompress;
   38777 #ifdef __CRT_UUID_DECL
   38778 __CRT_UUID_DECL(ImageRecompress, 0x6e33091c, 0xd2f8, 0x4740, 0xb5,0x5e, 0x2e,0x11,0xd1,0x47,0x7a,0x2c)
   38779 #endif
   38780 #endif
   38781 
   38782 /*****************************************************************************
   38783  * TrayBandSiteService coclass
   38784  */
   38785 
   38786 DEFINE_GUID(CLSID_TrayBandSiteService, 0xf60ad0a0, 0xe5e1, 0x45cb, 0xb5,0x1a, 0xe1,0x5b,0x9f,0x8b,0x29,0x34);
   38787 
   38788 #ifdef __cplusplus
   38789 class DECLSPEC_UUID("f60ad0a0-e5e1-45cb-b51a-e15b9f8b2934") TrayBandSiteService;
   38790 #ifdef __CRT_UUID_DECL
   38791 __CRT_UUID_DECL(TrayBandSiteService, 0xf60ad0a0, 0xe5e1, 0x45cb, 0xb5,0x1a, 0xe1,0x5b,0x9f,0x8b,0x29,0x34)
   38792 #endif
   38793 #endif
   38794 
   38795 /*****************************************************************************
   38796  * TrayDeskBand coclass
   38797  */
   38798 
   38799 DEFINE_GUID(CLSID_TrayDeskBand, 0xe6442437, 0x6c68, 0x4f52, 0x94,0xdd, 0x2c,0xfe,0xd2,0x67,0xef,0xb9);
   38800 
   38801 #ifdef __cplusplus
   38802 class DECLSPEC_UUID("e6442437-6c68-4f52-94dd-2cfed267efb9") TrayDeskBand;
   38803 #ifdef __CRT_UUID_DECL
   38804 __CRT_UUID_DECL(TrayDeskBand, 0xe6442437, 0x6c68, 0x4f52, 0x94,0xdd, 0x2c,0xfe,0xd2,0x67,0xef,0xb9)
   38805 #endif
   38806 #endif
   38807 
   38808 /*****************************************************************************
   38809  * AttachmentServices coclass
   38810  */
   38811 
   38812 DEFINE_GUID(CLSID_AttachmentServices, 0x4125dd96, 0xe03a, 0x4103, 0x8f,0x70, 0xe0,0x59,0x7d,0x80,0x3b,0x9c);
   38813 
   38814 #ifdef __cplusplus
   38815 class DECLSPEC_UUID("4125dd96-e03a-4103-8f70-e0597d803b9c") AttachmentServices;
   38816 #ifdef __CRT_UUID_DECL
   38817 __CRT_UUID_DECL(AttachmentServices, 0x4125dd96, 0xe03a, 0x4103, 0x8f,0x70, 0xe0,0x59,0x7d,0x80,0x3b,0x9c)
   38818 #endif
   38819 #endif
   38820 
   38821 /*****************************************************************************
   38822  * DocPropShellExtension coclass
   38823  */
   38824 
   38825 DEFINE_GUID(CLSID_DocPropShellExtension, 0x883373c3, 0xbf89, 0x11d1, 0xbe,0x35, 0x08,0x00,0x36,0xb1,0x1a,0x03);
   38826 
   38827 #ifdef __cplusplus
   38828 class DECLSPEC_UUID("883373c3-bf89-11d1-be35-080036b11a03") DocPropShellExtension;
   38829 #ifdef __CRT_UUID_DECL
   38830 __CRT_UUID_DECL(DocPropShellExtension, 0x883373c3, 0xbf89, 0x11d1, 0xbe,0x35, 0x08,0x00,0x36,0xb1,0x1a,0x03)
   38831 #endif
   38832 #endif
   38833 
   38834 /*****************************************************************************
   38835  * ShellItem coclass
   38836  */
   38837 
   38838 DEFINE_GUID(CLSID_ShellItem, 0x9ac9fbe1, 0xe0a2, 0x4ad6, 0xb4,0xee, 0xe2,0x12,0x01,0x3e,0xa9,0x17);
   38839 
   38840 #ifdef __cplusplus
   38841 class DECLSPEC_UUID("9ac9fbe1-e0a2-4ad6-b4ee-e212013ea917") ShellItem;
   38842 #ifdef __CRT_UUID_DECL
   38843 __CRT_UUID_DECL(ShellItem, 0x9ac9fbe1, 0xe0a2, 0x4ad6, 0xb4,0xee, 0xe2,0x12,0x01,0x3e,0xa9,0x17)
   38844 #endif
   38845 #endif
   38846 
   38847 /*****************************************************************************
   38848  * NamespaceWalker coclass
   38849  */
   38850 
   38851 DEFINE_GUID(CLSID_NamespaceWalker, 0x72eb61e0, 0x8672, 0x4303, 0x91,0x75, 0xf2,0xe4,0xc6,0x8b,0x2e,0x7c);
   38852 
   38853 #ifdef __cplusplus
   38854 class DECLSPEC_UUID("72eb61e0-8672-4303-9175-f2e4c68b2e7c") NamespaceWalker;
   38855 #ifdef __CRT_UUID_DECL
   38856 __CRT_UUID_DECL(NamespaceWalker, 0x72eb61e0, 0x8672, 0x4303, 0x91,0x75, 0xf2,0xe4,0xc6,0x8b,0x2e,0x7c)
   38857 #endif
   38858 #endif
   38859 
   38860 /*****************************************************************************
   38861  * FileOperation coclass
   38862  */
   38863 
   38864 DEFINE_GUID(CLSID_FileOperation, 0x3ad05575, 0x8857, 0x4850, 0x92,0x77, 0x11,0xb8,0x5b,0xdb,0x8e,0x09);
   38865 
   38866 #ifdef __cplusplus
   38867 class DECLSPEC_UUID("3ad05575-8857-4850-9277-11b85bdb8e09") FileOperation;
   38868 #ifdef __CRT_UUID_DECL
   38869 __CRT_UUID_DECL(FileOperation, 0x3ad05575, 0x8857, 0x4850, 0x92,0x77, 0x11,0xb8,0x5b,0xdb,0x8e,0x09)
   38870 #endif
   38871 #endif
   38872 
   38873 /*****************************************************************************
   38874  * FileOpenDialog coclass
   38875  */
   38876 
   38877 DEFINE_GUID(CLSID_FileOpenDialog, 0xdc1c5a9c, 0xe88a, 0x4dde, 0xa5,0xa1, 0x60,0xf8,0x2a,0x20,0xae,0xf7);
   38878 
   38879 #ifdef __cplusplus
   38880 class DECLSPEC_UUID("dc1c5a9c-e88a-4dde-a5a1-60f82a20aef7") FileOpenDialog;
   38881 #ifdef __CRT_UUID_DECL
   38882 __CRT_UUID_DECL(FileOpenDialog, 0xdc1c5a9c, 0xe88a, 0x4dde, 0xa5,0xa1, 0x60,0xf8,0x2a,0x20,0xae,0xf7)
   38883 #endif
   38884 #endif
   38885 
   38886 /*****************************************************************************
   38887  * FileSaveDialog coclass
   38888  */
   38889 
   38890 DEFINE_GUID(CLSID_FileSaveDialog, 0xc0b4e2f3, 0xba21, 0x4773, 0x8d,0xba, 0x33,0x5e,0xc9,0x46,0xeb,0x8b);
   38891 
   38892 #ifdef __cplusplus
   38893 class DECLSPEC_UUID("c0b4e2f3-ba21-4773-8dba-335ec946eb8b") FileSaveDialog;
   38894 #ifdef __CRT_UUID_DECL
   38895 __CRT_UUID_DECL(FileSaveDialog, 0xc0b4e2f3, 0xba21, 0x4773, 0x8d,0xba, 0x33,0x5e,0xc9,0x46,0xeb,0x8b)
   38896 #endif
   38897 #endif
   38898 
   38899 /*****************************************************************************
   38900  * KnownFolderManager coclass
   38901  */
   38902 
   38903 DEFINE_GUID(CLSID_KnownFolderManager, 0x4df0c730, 0xdf9d, 0x4ae3, 0x91,0x53, 0xaa,0x6b,0x82,0xe9,0x79,0x5a);
   38904 
   38905 #ifdef __cplusplus
   38906 class DECLSPEC_UUID("4df0c730-df9d-4ae3-9153-aa6b82e9795a") KnownFolderManager;
   38907 #ifdef __CRT_UUID_DECL
   38908 __CRT_UUID_DECL(KnownFolderManager, 0x4df0c730, 0xdf9d, 0x4ae3, 0x91,0x53, 0xaa,0x6b,0x82,0xe9,0x79,0x5a)
   38909 #endif
   38910 #endif
   38911 
   38912 /*****************************************************************************
   38913  * FSCopyHandler coclass
   38914  */
   38915 
   38916 DEFINE_GUID(CLSID_FSCopyHandler, 0xd197380a, 0x0a79, 0x4dc8, 0xa0,0x33, 0xed,0x88,0x2c,0x2f,0xa1,0x4b);
   38917 
   38918 #ifdef __cplusplus
   38919 class DECLSPEC_UUID("d197380a-0a79-4dc8-a033-ed882c2fa14b") FSCopyHandler;
   38920 #ifdef __CRT_UUID_DECL
   38921 __CRT_UUID_DECL(FSCopyHandler, 0xd197380a, 0x0a79, 0x4dc8, 0xa0,0x33, 0xed,0x88,0x2c,0x2f,0xa1,0x4b)
   38922 #endif
   38923 #endif
   38924 
   38925 /*****************************************************************************
   38926  * SharingConfigurationManager coclass
   38927  */
   38928 
   38929 DEFINE_GUID(CLSID_SharingConfigurationManager, 0x49f371e1, 0x8c5c, 0x4d9c, 0x9a,0x3b, 0x54,0xa6,0x82,0x7f,0x51,0x3c);
   38930 
   38931 #ifdef __cplusplus
   38932 class DECLSPEC_UUID("49f371e1-8c5c-4d9c-9a3b-54a6827f513c") SharingConfigurationManager;
   38933 #ifdef __CRT_UUID_DECL
   38934 __CRT_UUID_DECL(SharingConfigurationManager, 0x49f371e1, 0x8c5c, 0x4d9c, 0x9a,0x3b, 0x54,0xa6,0x82,0x7f,0x51,0x3c)
   38935 #endif
   38936 #endif
   38937 
   38938 /*****************************************************************************
   38939  * PreviousVersions coclass
   38940  */
   38941 
   38942 DEFINE_GUID(CLSID_PreviousVersions, 0x596ab062, 0xb4d2, 0x4215, 0x9f,0x74, 0xe9,0x10,0x9b,0x0a,0x81,0x53);
   38943 
   38944 #ifdef __cplusplus
   38945 class DECLSPEC_UUID("596ab062-b4d2-4215-9f74-e9109b0a8153") PreviousVersions;
   38946 #ifdef __CRT_UUID_DECL
   38947 __CRT_UUID_DECL(PreviousVersions, 0x596ab062, 0xb4d2, 0x4215, 0x9f,0x74, 0xe9,0x10,0x9b,0x0a,0x81,0x53)
   38948 #endif
   38949 #endif
   38950 
   38951 /*****************************************************************************
   38952  * NetworkConnections coclass
   38953  */
   38954 
   38955 DEFINE_GUID(CLSID_NetworkConnections, 0x7007acc7, 0x3202, 0x11d1, 0xaa,0xd2, 0x00,0x80,0x5f,0xc1,0x27,0x0e);
   38956 
   38957 #ifdef __cplusplus
   38958 class DECLSPEC_UUID("7007acc7-3202-11d1-aad2-00805fc1270e") NetworkConnections;
   38959 #ifdef __CRT_UUID_DECL
   38960 __CRT_UUID_DECL(NetworkConnections, 0x7007acc7, 0x3202, 0x11d1, 0xaa,0xd2, 0x00,0x80,0x5f,0xc1,0x27,0x0e)
   38961 #endif
   38962 #endif
   38963 
   38964 /*****************************************************************************
   38965  * NamespaceTreeControl coclass
   38966  */
   38967 
   38968 DEFINE_GUID(CLSID_NamespaceTreeControl, 0xae054212, 0x3535, 0x4430, 0x83,0xed, 0xd5,0x01,0xaa,0x66,0x80,0xe6);
   38969 
   38970 #ifdef __cplusplus
   38971 class DECLSPEC_UUID("ae054212-3535-4430-83ed-d501aa6680e6") NamespaceTreeControl;
   38972 #ifdef __CRT_UUID_DECL
   38973 __CRT_UUID_DECL(NamespaceTreeControl, 0xae054212, 0x3535, 0x4430, 0x83,0xed, 0xd5,0x01,0xaa,0x66,0x80,0xe6)
   38974 #endif
   38975 #endif
   38976 
   38977 /*****************************************************************************
   38978  * IENamespaceTreeControl coclass
   38979  */
   38980 
   38981 DEFINE_GUID(CLSID_IENamespaceTreeControl, 0xace52d03, 0xe5cd, 0x4b20, 0x82,0xff, 0xe7,0x1b,0x11,0xbe,0xae,0x1d);
   38982 
   38983 #ifdef __cplusplus
   38984 class DECLSPEC_UUID("ace52d03-e5cd-4b20-82ff-e71b11beae1d") IENamespaceTreeControl;
   38985 #ifdef __CRT_UUID_DECL
   38986 __CRT_UUID_DECL(IENamespaceTreeControl, 0xace52d03, 0xe5cd, 0x4b20, 0x82,0xff, 0xe7,0x1b,0x11,0xbe,0xae,0x1d)
   38987 #endif
   38988 #endif
   38989 
   38990 /*****************************************************************************
   38991  * ScheduledTasks coclass
   38992  */
   38993 
   38994 DEFINE_GUID(CLSID_ScheduledTasks, 0xd6277990, 0x4c6a, 0x11cf, 0x8d,0x87, 0x00,0xaa,0x00,0x60,0xf5,0xbf);
   38995 
   38996 #ifdef __cplusplus
   38997 class DECLSPEC_UUID("d6277990-4c6a-11cf-8d87-00aa0060f5bf") ScheduledTasks;
   38998 #ifdef __CRT_UUID_DECL
   38999 __CRT_UUID_DECL(ScheduledTasks, 0xd6277990, 0x4c6a, 0x11cf, 0x8d,0x87, 0x00,0xaa,0x00,0x60,0xf5,0xbf)
   39000 #endif
   39001 #endif
   39002 
   39003 /*****************************************************************************
   39004  * ApplicationAssociationRegistration coclass
   39005  */
   39006 
   39007 DEFINE_GUID(CLSID_ApplicationAssociationRegistration, 0x591209c7, 0x767b, 0x42b2, 0x9f,0xba, 0x44,0xee,0x46,0x15,0xf2,0xc7);
   39008 
   39009 #ifdef __cplusplus
   39010 class DECLSPEC_UUID("591209c7-767b-42b2-9fba-44ee4615f2c7") ApplicationAssociationRegistration;
   39011 #ifdef __CRT_UUID_DECL
   39012 __CRT_UUID_DECL(ApplicationAssociationRegistration, 0x591209c7, 0x767b, 0x42b2, 0x9f,0xba, 0x44,0xee,0x46,0x15,0xf2,0xc7)
   39013 #endif
   39014 #endif
   39015 
   39016 /*****************************************************************************
   39017  * ApplicationAssociationRegistrationUI coclass
   39018  */
   39019 
   39020 DEFINE_GUID(CLSID_ApplicationAssociationRegistrationUI, 0x1968106d, 0xf3b5, 0x44cf, 0x89,0x0e, 0x11,0x6f,0xcb,0x9e,0xce,0xf1);
   39021 
   39022 #ifdef __cplusplus
   39023 class DECLSPEC_UUID("1968106d-f3b5-44cf-890e-116fcb9ecef1") ApplicationAssociationRegistrationUI;
   39024 #ifdef __CRT_UUID_DECL
   39025 __CRT_UUID_DECL(ApplicationAssociationRegistrationUI, 0x1968106d, 0xf3b5, 0x44cf, 0x89,0x0e, 0x11,0x6f,0xcb,0x9e,0xce,0xf1)
   39026 #endif
   39027 #endif
   39028 
   39029 /*****************************************************************************
   39030  * SearchFolderItemFactory coclass
   39031  */
   39032 
   39033 DEFINE_GUID(CLSID_SearchFolderItemFactory, 0x14010e02, 0xbbbd, 0x41f0, 0x88,0xe3, 0xed,0xa3,0x71,0x21,0x65,0x84);
   39034 
   39035 #ifdef __cplusplus
   39036 class DECLSPEC_UUID("14010e02-bbbd-41f0-88e3-eda371216584") SearchFolderItemFactory;
   39037 #ifdef __CRT_UUID_DECL
   39038 __CRT_UUID_DECL(SearchFolderItemFactory, 0x14010e02, 0xbbbd, 0x41f0, 0x88,0xe3, 0xed,0xa3,0x71,0x21,0x65,0x84)
   39039 #endif
   39040 #endif
   39041 
   39042 /*****************************************************************************
   39043  * OpenControlPanel coclass
   39044  */
   39045 
   39046 DEFINE_GUID(CLSID_OpenControlPanel, 0x06622d85, 0x6856, 0x4460, 0x8d,0xe1, 0xa8,0x19,0x21,0xb4,0x1c,0x4b);
   39047 
   39048 #ifdef __cplusplus
   39049 class DECLSPEC_UUID("06622d85-6856-4460-8de1-a81921b41c4b") OpenControlPanel;
   39050 #ifdef __CRT_UUID_DECL
   39051 __CRT_UUID_DECL(OpenControlPanel, 0x06622d85, 0x6856, 0x4460, 0x8d,0xe1, 0xa8,0x19,0x21,0xb4,0x1c,0x4b)
   39052 #endif
   39053 #endif
   39054 
   39055 /*****************************************************************************
   39056  * MailRecipient coclass
   39057  */
   39058 
   39059 DEFINE_GUID(CLSID_MailRecipient, 0x9e56be60, 0xc50f, 0x11cf, 0x9a,0x2c, 0x00,0xa0,0xc9,0x0a,0x90,0xce);
   39060 
   39061 #ifdef __cplusplus
   39062 class DECLSPEC_UUID("9e56be60-c50f-11cf-9a2c-00a0c90a90ce") MailRecipient;
   39063 #ifdef __CRT_UUID_DECL
   39064 __CRT_UUID_DECL(MailRecipient, 0x9e56be60, 0xc50f, 0x11cf, 0x9a,0x2c, 0x00,0xa0,0xc9,0x0a,0x90,0xce)
   39065 #endif
   39066 #endif
   39067 
   39068 /*****************************************************************************
   39069  * NetworkExplorerFolder coclass
   39070  */
   39071 
   39072 DEFINE_GUID(CLSID_NetworkExplorerFolder, 0xf02c1a0d, 0xbe21, 0x4350, 0x88,0xb0, 0x73,0x67,0xfc,0x96,0xef,0x3c);
   39073 
   39074 #ifdef __cplusplus
   39075 class DECLSPEC_UUID("f02c1a0d-be21-4350-88b0-7367fc96ef3c") NetworkExplorerFolder;
   39076 #ifdef __CRT_UUID_DECL
   39077 __CRT_UUID_DECL(NetworkExplorerFolder, 0xf02c1a0d, 0xbe21, 0x4350, 0x88,0xb0, 0x73,0x67,0xfc,0x96,0xef,0x3c)
   39078 #endif
   39079 #endif
   39080 
   39081 /*****************************************************************************
   39082  * DestinationList coclass
   39083  */
   39084 
   39085 DEFINE_GUID(CLSID_DestinationList, 0x77f10cf0, 0x3db5, 0x4966, 0xb5,0x20, 0xb7,0xc5,0x4f,0xd3,0x5e,0xd6);
   39086 
   39087 #ifdef __cplusplus
   39088 class DECLSPEC_UUID("77f10cf0-3db5-4966-b520-b7c54fd35ed6") DestinationList;
   39089 #ifdef __CRT_UUID_DECL
   39090 __CRT_UUID_DECL(DestinationList, 0x77f10cf0, 0x3db5, 0x4966, 0xb5,0x20, 0xb7,0xc5,0x4f,0xd3,0x5e,0xd6)
   39091 #endif
   39092 #endif
   39093 
   39094 /*****************************************************************************
   39095  * ApplicationDestinations coclass
   39096  */
   39097 
   39098 DEFINE_GUID(CLSID_ApplicationDestinations, 0x86c14003, 0x4d6b, 0x4ef3, 0xa7,0xb4, 0x05,0x06,0x66,0x3b,0x2e,0x68);
   39099 
   39100 #ifdef __cplusplus
   39101 class DECLSPEC_UUID("86c14003-4d6b-4ef3-a7b4-0506663b2e68") ApplicationDestinations;
   39102 #ifdef __CRT_UUID_DECL
   39103 __CRT_UUID_DECL(ApplicationDestinations, 0x86c14003, 0x4d6b, 0x4ef3, 0xa7,0xb4, 0x05,0x06,0x66,0x3b,0x2e,0x68)
   39104 #endif
   39105 #endif
   39106 
   39107 /*****************************************************************************
   39108  * ApplicationDocumentLists coclass
   39109  */
   39110 
   39111 DEFINE_GUID(CLSID_ApplicationDocumentLists, 0x86bec222, 0x30f2, 0x47e0, 0x9f,0x25, 0x60,0xd1,0x1c,0xd7,0x5c,0x28);
   39112 
   39113 #ifdef __cplusplus
   39114 class DECLSPEC_UUID("86bec222-30f2-47e0-9f25-60d11cd75c28") ApplicationDocumentLists;
   39115 #ifdef __CRT_UUID_DECL
   39116 __CRT_UUID_DECL(ApplicationDocumentLists, 0x86bec222, 0x30f2, 0x47e0, 0x9f,0x25, 0x60,0xd1,0x1c,0xd7,0x5c,0x28)
   39117 #endif
   39118 #endif
   39119 
   39120 /*****************************************************************************
   39121  * HomeGroup coclass
   39122  */
   39123 
   39124 DEFINE_GUID(CLSID_HomeGroup, 0xde77ba04, 0x3c92, 0x4d11, 0xa1,0xa5, 0x42,0x35,0x2a,0x53,0xe0,0xe3);
   39125 
   39126 #ifdef __cplusplus
   39127 class DECLSPEC_UUID("de77ba04-3c92-4d11-a1a5-42352a53e0e3") HomeGroup;
   39128 #ifdef __CRT_UUID_DECL
   39129 __CRT_UUID_DECL(HomeGroup, 0xde77ba04, 0x3c92, 0x4d11, 0xa1,0xa5, 0x42,0x35,0x2a,0x53,0xe0,0xe3)
   39130 #endif
   39131 #endif
   39132 
   39133 /*****************************************************************************
   39134  * ShellLibrary coclass
   39135  */
   39136 
   39137 DEFINE_GUID(CLSID_ShellLibrary, 0xd9b3211d, 0xe57f, 0x4426, 0xaa,0xef, 0x30,0xa8,0x06,0xad,0xd3,0x97);
   39138 
   39139 #ifdef __cplusplus
   39140 class DECLSPEC_UUID("d9b3211d-e57f-4426-aaef-30a806add397") ShellLibrary;
   39141 #ifdef __CRT_UUID_DECL
   39142 __CRT_UUID_DECL(ShellLibrary, 0xd9b3211d, 0xe57f, 0x4426, 0xaa,0xef, 0x30,0xa8,0x06,0xad,0xd3,0x97)
   39143 #endif
   39144 #endif
   39145 
   39146 /*****************************************************************************
   39147  * AppStartupLink coclass
   39148  */
   39149 
   39150 DEFINE_GUID(CLSID_AppStartupLink, 0x273eb5e7, 0x88b0, 0x4843, 0xbf,0xef, 0xe2,0xc8,0x1d,0x43,0xaa,0xe5);
   39151 
   39152 #ifdef __cplusplus
   39153 class DECLSPEC_UUID("273eb5e7-88b0-4843-bfef-e2c81d43aae5") AppStartupLink;
   39154 #ifdef __CRT_UUID_DECL
   39155 __CRT_UUID_DECL(AppStartupLink, 0x273eb5e7, 0x88b0, 0x4843, 0xbf,0xef, 0xe2,0xc8,0x1d,0x43,0xaa,0xe5)
   39156 #endif
   39157 #endif
   39158 
   39159 /*****************************************************************************
   39160  * EnumerableObjectCollection coclass
   39161  */
   39162 
   39163 DEFINE_GUID(CLSID_EnumerableObjectCollection, 0x2d3468c1, 0x36a7, 0x43b6, 0xac,0x24, 0xd3,0xf0,0x2f,0xd9,0x60,0x7a);
   39164 
   39165 #ifdef __cplusplus
   39166 class DECLSPEC_UUID("2d3468c1-36a7-43b6-ac24-d3f02fd9607a") EnumerableObjectCollection;
   39167 #ifdef __CRT_UUID_DECL
   39168 __CRT_UUID_DECL(EnumerableObjectCollection, 0x2d3468c1, 0x36a7, 0x43b6, 0xac,0x24, 0xd3,0xf0,0x2f,0xd9,0x60,0x7a)
   39169 #endif
   39170 #endif
   39171 
   39172 /*****************************************************************************
   39173  * DesktopGadget coclass
   39174  */
   39175 
   39176 DEFINE_GUID(CLSID_DesktopGadget, 0x924ccc1b, 0x6562, 0x4c85, 0x86,0x57, 0xd1,0x77,0x92,0x52,0x22,0xb6);
   39177 
   39178 #ifdef __cplusplus
   39179 class DECLSPEC_UUID("924ccc1b-6562-4c85-8657-d177925222b6") DesktopGadget;
   39180 #ifdef __CRT_UUID_DECL
   39181 __CRT_UUID_DECL(DesktopGadget, 0x924ccc1b, 0x6562, 0x4c85, 0x86,0x57, 0xd1,0x77,0x92,0x52,0x22,0xb6)
   39182 #endif
   39183 #endif
   39184 
   39185 /*****************************************************************************
   39186  * PlaybackManager coclass
   39187  */
   39188 
   39189 DEFINE_GUID(CLSID_PlaybackManager, 0x29dfa654, 0xa97f, 0x47f0, 0xbf,0x26, 0x9e,0x41,0xfb,0x94,0x88,0xd9);
   39190 
   39191 #ifdef __cplusplus
   39192 class DECLSPEC_UUID("29dfa654-a97f-47f0-bf26-9e41fb9488d9") PlaybackManager;
   39193 #ifdef __CRT_UUID_DECL
   39194 __CRT_UUID_DECL(PlaybackManager, 0x29dfa654, 0xa97f, 0x47f0, 0xbf,0x26, 0x9e,0x41,0xfb,0x94,0x88,0xd9)
   39195 #endif
   39196 #endif
   39197 
   39198 /*****************************************************************************
   39199  * AccessibilityDockingService coclass
   39200  */
   39201 
   39202 DEFINE_GUID(CLSID_AccessibilityDockingService, 0x29ce1d46, 0xb481, 0x4aa0, 0xa0,0x8a, 0xd3,0xeb,0xc8,0xac,0xa4,0x02);
   39203 
   39204 #ifdef __cplusplus
   39205 class DECLSPEC_UUID("29ce1d46-b481-4aa0-a08a-d3ebc8aca402") AccessibilityDockingService;
   39206 #ifdef __CRT_UUID_DECL
   39207 __CRT_UUID_DECL(AccessibilityDockingService, 0x29ce1d46, 0xb481, 0x4aa0, 0xa0,0x8a, 0xd3,0xeb,0xc8,0xac,0xa4,0x02)
   39208 #endif
   39209 #endif
   39210 
   39211 /*****************************************************************************
   39212  * FrameworkInputPane coclass
   39213  */
   39214 
   39215 DEFINE_GUID(CLSID_FrameworkInputPane, 0xd5120aa3, 0x46ba, 0x44c5, 0x82,0x2d, 0xca,0x80,0x92,0xc1,0xfc,0x72);
   39216 
   39217 #ifdef __cplusplus
   39218 class DECLSPEC_UUID("d5120aa3-46ba-44c5-822d-ca8092c1fc72") FrameworkInputPane;
   39219 #ifdef __CRT_UUID_DECL
   39220 __CRT_UUID_DECL(FrameworkInputPane, 0xd5120aa3, 0x46ba, 0x44c5, 0x82,0x2d, 0xca,0x80,0x92,0xc1,0xfc,0x72)
   39221 #endif
   39222 #endif
   39223 
   39224 /*****************************************************************************
   39225  * DefFolderMenu coclass
   39226  */
   39227 
   39228 DEFINE_GUID(CLSID_DefFolderMenu, 0xc63382be, 0x7933, 0x48d0, 0x9a,0xc8, 0x85,0xfb,0x46,0xbe,0x2f,0xdd);
   39229 
   39230 #ifdef __cplusplus
   39231 class DECLSPEC_UUID("c63382be-7933-48d0-9ac8-85fb46be2fdd") DefFolderMenu;
   39232 #ifdef __CRT_UUID_DECL
   39233 __CRT_UUID_DECL(DefFolderMenu, 0xc63382be, 0x7933, 0x48d0, 0x9a,0xc8, 0x85,0xfb,0x46,0xbe,0x2f,0xdd)
   39234 #endif
   39235 #endif
   39236 
   39237 /*****************************************************************************
   39238  * AppVisibility coclass
   39239  */
   39240 
   39241 DEFINE_GUID(CLSID_AppVisibility, 0x7e5fe3d9, 0x985f, 0x4908, 0x91,0xf9, 0xee,0x19,0xf9,0xfd,0x15,0x14);
   39242 
   39243 #ifdef __cplusplus
   39244 class DECLSPEC_UUID("7e5fe3d9-985f-4908-91f9-ee19f9fd1514") AppVisibility;
   39245 #ifdef __CRT_UUID_DECL
   39246 __CRT_UUID_DECL(AppVisibility, 0x7e5fe3d9, 0x985f, 0x4908, 0x91,0xf9, 0xee,0x19,0xf9,0xfd,0x15,0x14)
   39247 #endif
   39248 #endif
   39249 
   39250 /*****************************************************************************
   39251  * AppShellVerbHandler coclass
   39252  */
   39253 
   39254 DEFINE_GUID(CLSID_AppShellVerbHandler, 0x4ed3a719, 0xcea8, 0x4bd9, 0x91,0x0d, 0xe2,0x52,0xf9,0x97,0xaf,0xc2);
   39255 
   39256 #ifdef __cplusplus
   39257 class DECLSPEC_UUID("4ed3a719-cea8-4bd9-910d-e252f997afc2") AppShellVerbHandler;
   39258 #ifdef __CRT_UUID_DECL
   39259 __CRT_UUID_DECL(AppShellVerbHandler, 0x4ed3a719, 0xcea8, 0x4bd9, 0x91,0x0d, 0xe2,0x52,0xf9,0x97,0xaf,0xc2)
   39260 #endif
   39261 #endif
   39262 
   39263 /*****************************************************************************
   39264  * ExecuteUnknown coclass
   39265  */
   39266 
   39267 DEFINE_GUID(CLSID_ExecuteUnknown, 0xe44e9428, 0xbdbc, 0x4987, 0xa0,0x99, 0x40,0xdc,0x8f,0xd2,0x55,0xe7);
   39268 
   39269 #ifdef __cplusplus
   39270 class DECLSPEC_UUID("e44e9428-bdbc-4987-a099-40dc8fd255e7") ExecuteUnknown;
   39271 #ifdef __CRT_UUID_DECL
   39272 __CRT_UUID_DECL(ExecuteUnknown, 0xe44e9428, 0xbdbc, 0x4987, 0xa0,0x99, 0x40,0xdc,0x8f,0xd2,0x55,0xe7)
   39273 #endif
   39274 #endif
   39275 
   39276 /*****************************************************************************
   39277  * PackageDebugSettings coclass
   39278  */
   39279 
   39280 DEFINE_GUID(CLSID_PackageDebugSettings, 0xb1aec16f, 0x2383, 0x4852, 0xb0,0xe9, 0x8f,0x0b,0x1d,0xc6,0x6b,0x4d);
   39281 
   39282 #ifdef __cplusplus
   39283 class DECLSPEC_UUID("b1aec16f-2383-4852-b0e9-8f0b1dc66b4d") PackageDebugSettings;
   39284 #ifdef __CRT_UUID_DECL
   39285 __CRT_UUID_DECL(PackageDebugSettings, 0xb1aec16f, 0x2383, 0x4852, 0xb0,0xe9, 0x8f,0x0b,0x1d,0xc6,0x6b,0x4d)
   39286 #endif
   39287 #endif
   39288 
   39289 /*****************************************************************************
   39290  * ApplicationActivationManager coclass
   39291  */
   39292 
   39293 DEFINE_GUID(CLSID_ApplicationActivationManager, 0x45ba127d, 0x10a8, 0x46ea, 0x8a,0xb7, 0x56,0xea,0x90,0x78,0x94,0x3c);
   39294 
   39295 #ifdef __cplusplus
   39296 class DECLSPEC_UUID("45ba127d-10a8-46ea-8ab7-56ea9078943c") ApplicationActivationManager;
   39297 #ifdef __CRT_UUID_DECL
   39298 __CRT_UUID_DECL(ApplicationActivationManager, 0x45ba127d, 0x10a8, 0x46ea, 0x8a,0xb7, 0x56,0xea,0x90,0x78,0x94,0x3c)
   39299 #endif
   39300 #endif
   39301 
   39302 /*****************************************************************************
   39303  * ApplicationDesignModeSettings coclass
   39304  */
   39305 
   39306 DEFINE_GUID(CLSID_ApplicationDesignModeSettings, 0x958a6fb5, 0xdcb2, 0x4faf, 0xaa,0xfd, 0x7f,0xb0,0x54,0xad,0x1a,0x3b);
   39307 
   39308 #ifdef __cplusplus
   39309 class DECLSPEC_UUID("958a6fb5-dcb2-4faf-aafd-7fb054ad1a3b") ApplicationDesignModeSettings;
   39310 #ifdef __CRT_UUID_DECL
   39311 __CRT_UUID_DECL(ApplicationDesignModeSettings, 0x958a6fb5, 0xdcb2, 0x4faf, 0xaa,0xfd, 0x7f,0xb0,0x54,0xad,0x1a,0x3b)
   39312 #endif
   39313 #endif
   39314 
   39315 /*****************************************************************************
   39316  * ExecuteFolder coclass
   39317  */
   39318 
   39319 DEFINE_GUID(CLSID_ExecuteFolder, 0x11dbb47c, 0xa525, 0x400b, 0x9e,0x80, 0xa5,0x46,0x15,0xa0,0x90,0xc0);
   39320 
   39321 #ifdef __cplusplus
   39322 class DECLSPEC_UUID("11dbb47c-a525-400b-9e80-a54615a090c0") ExecuteFolder;
   39323 #ifdef __CRT_UUID_DECL
   39324 __CRT_UUID_DECL(ExecuteFolder, 0x11dbb47c, 0xa525, 0x400b, 0x9e,0x80, 0xa5,0x46,0x15,0xa0,0x90,0xc0)
   39325 #endif
   39326 #endif
   39327 
   39328 
   39329 #if NTDDI_VERSION >= NTDDI_VISTA
   39330   SHSTDAPI SHGetTemporaryPropertyForItem(IShellItem *psi, REFPROPERTYKEY propkey, PROPVARIANT *ppropvar);
   39331   SHSTDAPI SHSetTemporaryPropertyForItem(IShellItem *psi, REFPROPERTYKEY propkey, REFPROPVARIANT propvar);
   39332 #endif
   39333 
   39334 #if NTDDI_VERSION >= NTDDI_WIN7
   39335 #if _WIN32_IE >= _WIN32_IE_IE70
   39336 typedef enum LIBRARYMANAGEDIALOGOPTIONS {
   39337     LMD_DEFAULT = 0x0,
   39338     LMD_ALLOWUNINDEXABLENETWORKLOCATIONS = 0x1
   39339 } LIBRARYMANAGEDIALOGOPTIONS;
   39340 
   39341 DEFINE_ENUM_FLAG_OPERATORS(LIBRARYMANAGEDIALOGOPTIONS)
   39342 
   39343   SHSTDAPI SHShowManageLibraryUI(IShellItem *psiLibrary, HWND hwndOwner, LPCWSTR pszTitle, LPCWSTR pszInstruction, LIBRARYMANAGEDIALOGOPTIONS lmdOptions);
   39344   SHSTDAPI SHResolveLibrary(IShellItem *psiLibrary);
   39345 #if defined(__cplusplus) && !defined(CINTERFACE)
   39346   __forceinline HRESULT SHCreateLibrary(REFIID riid, void **ppv) {
   39347     return CoCreateInstance(CLSID_ShellLibrary, NULL, CLSCTX_INPROC_SERVER, riid, ppv);
   39348   }
   39349 
   39350   __forceinline HRESULT SHLoadLibraryFromItem(IShellItem *psiLibrary, DWORD grfMode, REFIID riid, void **ppv) {
   39351     IShellLibrary *plib;
   39352     HRESULT hr;
   39353 
   39354     *ppv = NULL;
   39355     hr = CoCreateInstance(CLSID_ShellLibrary, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&plib));
   39356     if (SUCCEEDED(hr)) {
   39357       hr = plib->LoadLibraryFromItem(psiLibrary, grfMode);
   39358       if (SUCCEEDED(hr))
   39359         hr = plib->QueryInterface(riid, ppv);
   39360       plib->Release();
   39361     }
   39362     return hr;
   39363   }
   39364 
   39365   __forceinline HRESULT SHLoadLibraryFromKnownFolder(REFKNOWNFOLDERID kfidLibrary, DWORD grfMode, REFIID riid, void **ppv) {
   39366     IShellLibrary *plib;
   39367     HRESULT hr;
   39368 
   39369     *ppv = NULL;
   39370     hr = CoCreateInstance(CLSID_ShellLibrary, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&plib));
   39371     if (SUCCEEDED(hr)) {
   39372       hr = plib->LoadLibraryFromKnownFolder(kfidLibrary, grfMode);
   39373       if (SUCCEEDED(hr))
   39374         hr = plib->QueryInterface(riid, ppv);
   39375       plib->Release();
   39376     }
   39377     return hr;
   39378   }
   39379 
   39380   __forceinline HRESULT SHLoadLibraryFromParsingName(PCWSTR pszParsingName, DWORD grfMode, REFIID riid, void **ppv) {
   39381     IShellItem *psiLibrary;
   39382     HRESULT hr;
   39383 
   39384     *ppv = NULL;
   39385     hr = SHCreateItemFromParsingName(pszParsingName, NULL, IID_PPV_ARGS(&psiLibrary));
   39386     if (SUCCEEDED(hr)) {
   39387       hr = SHLoadLibraryFromItem(psiLibrary, grfMode, riid, ppv);
   39388       psiLibrary->Release();
   39389     }
   39390     return hr;
   39391   }
   39392 
   39393    __forceinline HRESULT SHAddFolderPathToLibrary(IShellLibrary *plib, PCWSTR pszFolderPath) {
   39394     IShellItem *psiFolder;
   39395     HRESULT hr = SHCreateItemFromParsingName(pszFolderPath, NULL, IID_PPV_ARGS(&psiFolder));
   39396 
   39397     if (SUCCEEDED(hr)) {
   39398       hr = plib->AddFolder(psiFolder);
   39399       psiFolder->Release();
   39400     }
   39401     return hr;
   39402   }
   39403 
   39404   __forceinline HRESULT SHRemoveFolderPathFromLibrary(IShellLibrary *plib, PCWSTR pszFolderPath) {
   39405     PIDLIST_ABSOLUTE pidlFolder = SHSimpleIDListFromPath(pszFolderPath);
   39406     HRESULT hr = pidlFolder ? S_OK : E_INVALIDARG;
   39407 
   39408     if (SUCCEEDED(hr)) {
   39409       IShellItem *psiFolder;
   39410 
   39411       hr = SHCreateItemFromIDList(pidlFolder, IID_PPV_ARGS(&psiFolder));
   39412       if (SUCCEEDED(hr)) {
   39413         hr = plib->RemoveFolder(psiFolder);
   39414         psiFolder->Release();
   39415       }
   39416       CoTaskMemFree(pidlFolder);
   39417     }
   39418     return hr;
   39419   }
   39420 
   39421   __forceinline HRESULT SHResolveFolderPathInLibrary(IShellLibrary *plib, PCWSTR pszFolderPath, DWORD dwTimeout, PWSTR *ppszResolvedPath) {
   39422     *ppszResolvedPath = NULL;
   39423     PIDLIST_ABSOLUTE pidlFolder = SHSimpleIDListFromPath(pszFolderPath);
   39424     HRESULT hr = pidlFolder ? S_OK : E_INVALIDARG;
   39425     if (SUCCEEDED(hr)) {
   39426       IShellItem *psiFolder;
   39427 
   39428       hr = SHCreateItemFromIDList(pidlFolder, IID_PPV_ARGS(&psiFolder));
   39429       if (SUCCEEDED(hr)) {
   39430         IShellItem *psiResolved;
   39431 
   39432         hr = plib->ResolveFolder(psiFolder, dwTimeout, IID_PPV_ARGS(&psiResolved));
   39433         if (SUCCEEDED(hr)) {
   39434           hr = psiResolved->GetDisplayName(SIGDN_DESKTOPABSOLUTEPARSING, ppszResolvedPath);
   39435           psiResolved->Release();
   39436         }
   39437         psiFolder->Release();
   39438       }
   39439       CoTaskMemFree(pidlFolder);
   39440     }
   39441     return hr;
   39442   }
   39443 
   39444   __forceinline HRESULT SHSaveLibraryInFolderPath(IShellLibrary *plib, PCWSTR pszFolderPath, PCWSTR pszLibraryName, LIBRARYSAVEFLAGS lsf, PWSTR *ppszSavedToPath) {
   39445     IShellItem *psiFolder;
   39446     HRESULT hr;
   39447 
   39448     if (ppszSavedToPath)
   39449       *ppszSavedToPath = NULL;
   39450     hr = SHCreateItemFromParsingName(pszFolderPath, NULL, IID_PPV_ARGS(&psiFolder));
   39451     if (SUCCEEDED(hr)) {
   39452       IShellItem *psiSavedTo;
   39453 
   39454       hr = plib->Save(psiFolder, pszLibraryName, lsf, &psiSavedTo);
   39455       if (SUCCEEDED(hr)) {
   39456         if (ppszSavedToPath)
   39457           hr = psiSavedTo->GetDisplayName(SIGDN_DESKTOPABSOLUTEPARSING, ppszSavedToPath);
   39458         psiSavedTo->Release();
   39459       }
   39460       psiFolder->Release();
   39461     }
   39462     return hr;
   39463   }
   39464 #endif
   39465 #endif
   39466 #endif
   39467 
   39468 #if NTDDI_VERSION >= NTDDI_VISTA
   39469 /*****************************************************************************
   39470  * IAssocHandlerInvoker interface
   39471  */
   39472 #ifndef __IAssocHandlerInvoker_INTERFACE_DEFINED__
   39473 #define __IAssocHandlerInvoker_INTERFACE_DEFINED__
   39474 
   39475 DEFINE_GUID(IID_IAssocHandlerInvoker, 0x92218cab, 0xecaa, 0x4335, 0x81,0x33, 0x80,0x7f,0xd2,0x34,0xc2,0xee);
   39476 #if defined(__cplusplus) && !defined(CINTERFACE)
   39477 MIDL_INTERFACE("92218cab-ecaa-4335-8133-807fd234c2ee")
   39478 IAssocHandlerInvoker : public IUnknown
   39479 {
   39480     virtual HRESULT STDMETHODCALLTYPE SupportsSelection(
   39481         ) = 0;
   39482 
   39483     virtual HRESULT STDMETHODCALLTYPE Invoke(
   39484         ) = 0;
   39485 
   39486 };
   39487 #ifdef __CRT_UUID_DECL
   39488 __CRT_UUID_DECL(IAssocHandlerInvoker, 0x92218cab, 0xecaa, 0x4335, 0x81,0x33, 0x80,0x7f,0xd2,0x34,0xc2,0xee)
   39489 #endif
   39490 #else
   39491 typedef struct IAssocHandlerInvokerVtbl {
   39492     BEGIN_INTERFACE
   39493 
   39494     /*** IUnknown methods ***/
   39495     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   39496         IAssocHandlerInvoker* This,
   39497         REFIID riid,
   39498         void **ppvObject);
   39499 
   39500     ULONG (STDMETHODCALLTYPE *AddRef)(
   39501         IAssocHandlerInvoker* This);
   39502 
   39503     ULONG (STDMETHODCALLTYPE *Release)(
   39504         IAssocHandlerInvoker* This);
   39505 
   39506     /*** IAssocHandlerInvoker methods ***/
   39507     HRESULT (STDMETHODCALLTYPE *SupportsSelection)(
   39508         IAssocHandlerInvoker* This);
   39509 
   39510     HRESULT (STDMETHODCALLTYPE *Invoke)(
   39511         IAssocHandlerInvoker* This);
   39512 
   39513     END_INTERFACE
   39514 } IAssocHandlerInvokerVtbl;
   39515 interface IAssocHandlerInvoker {
   39516     CONST_VTBL IAssocHandlerInvokerVtbl* lpVtbl;
   39517 };
   39518 
   39519 #ifdef COBJMACROS
   39520 #ifndef WIDL_C_INLINE_WRAPPERS
   39521 /*** IUnknown methods ***/
   39522 #define IAssocHandlerInvoker_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   39523 #define IAssocHandlerInvoker_AddRef(This) (This)->lpVtbl->AddRef(This)
   39524 #define IAssocHandlerInvoker_Release(This) (This)->lpVtbl->Release(This)
   39525 /*** IAssocHandlerInvoker methods ***/
   39526 #define IAssocHandlerInvoker_SupportsSelection(This) (This)->lpVtbl->SupportsSelection(This)
   39527 #define IAssocHandlerInvoker_Invoke(This) (This)->lpVtbl->Invoke(This)
   39528 #else
   39529 /*** IUnknown methods ***/
   39530 static FORCEINLINE HRESULT IAssocHandlerInvoker_QueryInterface(IAssocHandlerInvoker* This,REFIID riid,void **ppvObject) {
   39531     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   39532 }
   39533 static FORCEINLINE ULONG IAssocHandlerInvoker_AddRef(IAssocHandlerInvoker* This) {
   39534     return This->lpVtbl->AddRef(This);
   39535 }
   39536 static FORCEINLINE ULONG IAssocHandlerInvoker_Release(IAssocHandlerInvoker* This) {
   39537     return This->lpVtbl->Release(This);
   39538 }
   39539 /*** IAssocHandlerInvoker methods ***/
   39540 static FORCEINLINE HRESULT IAssocHandlerInvoker_SupportsSelection(IAssocHandlerInvoker* This) {
   39541     return This->lpVtbl->SupportsSelection(This);
   39542 }
   39543 static FORCEINLINE HRESULT IAssocHandlerInvoker_Invoke(IAssocHandlerInvoker* This) {
   39544     return This->lpVtbl->Invoke(This);
   39545 }
   39546 #endif
   39547 #endif
   39548 
   39549 #endif
   39550 
   39551 HRESULT STDMETHODCALLTYPE IAssocHandlerInvoker_SupportsSelection_Proxy(
   39552     IAssocHandlerInvoker* This);
   39553 void __RPC_STUB IAssocHandlerInvoker_SupportsSelection_Stub(
   39554     IRpcStubBuffer* This,
   39555     IRpcChannelBuffer* pRpcChannelBuffer,
   39556     PRPC_MESSAGE pRpcMessage,
   39557     DWORD* pdwStubPhase);
   39558 HRESULT STDMETHODCALLTYPE IAssocHandlerInvoker_Invoke_Proxy(
   39559     IAssocHandlerInvoker* This);
   39560 void __RPC_STUB IAssocHandlerInvoker_Invoke_Stub(
   39561     IRpcStubBuffer* This,
   39562     IRpcChannelBuffer* pRpcChannelBuffer,
   39563     PRPC_MESSAGE pRpcMessage,
   39564     DWORD* pdwStubPhase);
   39565 
   39566 #endif  /* __IAssocHandlerInvoker_INTERFACE_DEFINED__ */
   39567 
   39568 
   39569 /*****************************************************************************
   39570  * IAssocHandler interface
   39571  */
   39572 #ifndef __IAssocHandler_INTERFACE_DEFINED__
   39573 #define __IAssocHandler_INTERFACE_DEFINED__
   39574 
   39575 DEFINE_GUID(IID_IAssocHandler, 0xf04061ac, 0x1659, 0x4a3f, 0xa9,0x54, 0x77,0x5a,0xa5,0x7f,0xc0,0x83);
   39576 #if defined(__cplusplus) && !defined(CINTERFACE)
   39577 MIDL_INTERFACE("f04061ac-1659-4a3f-a954-775aa57fc083")
   39578 IAssocHandler : public IUnknown
   39579 {
   39580     virtual HRESULT STDMETHODCALLTYPE GetName(
   39581         LPWSTR *ppsz) = 0;
   39582 
   39583     virtual HRESULT STDMETHODCALLTYPE GetUIName(
   39584         LPWSTR *ppsz) = 0;
   39585 
   39586     virtual HRESULT STDMETHODCALLTYPE GetIconLocation(
   39587         LPWSTR *ppszPath,
   39588         int *pIndex) = 0;
   39589 
   39590     virtual HRESULT STDMETHODCALLTYPE IsRecommended(
   39591         ) = 0;
   39592 
   39593     virtual HRESULT STDMETHODCALLTYPE MakeDefault(
   39594         LPCWSTR pszDescription) = 0;
   39595 
   39596     virtual HRESULT STDMETHODCALLTYPE Invoke(
   39597         IDataObject *pdo) = 0;
   39598 
   39599     virtual HRESULT STDMETHODCALLTYPE CreateInvoker(
   39600         IDataObject *pdo,
   39601         IAssocHandlerInvoker **ppInvoker) = 0;
   39602 
   39603 };
   39604 #ifdef __CRT_UUID_DECL
   39605 __CRT_UUID_DECL(IAssocHandler, 0xf04061ac, 0x1659, 0x4a3f, 0xa9,0x54, 0x77,0x5a,0xa5,0x7f,0xc0,0x83)
   39606 #endif
   39607 #else
   39608 typedef struct IAssocHandlerVtbl {
   39609     BEGIN_INTERFACE
   39610 
   39611     /*** IUnknown methods ***/
   39612     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   39613         IAssocHandler* This,
   39614         REFIID riid,
   39615         void **ppvObject);
   39616 
   39617     ULONG (STDMETHODCALLTYPE *AddRef)(
   39618         IAssocHandler* This);
   39619 
   39620     ULONG (STDMETHODCALLTYPE *Release)(
   39621         IAssocHandler* This);
   39622 
   39623     /*** IAssocHandler methods ***/
   39624     HRESULT (STDMETHODCALLTYPE *GetName)(
   39625         IAssocHandler* This,
   39626         LPWSTR *ppsz);
   39627 
   39628     HRESULT (STDMETHODCALLTYPE *GetUIName)(
   39629         IAssocHandler* This,
   39630         LPWSTR *ppsz);
   39631 
   39632     HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
   39633         IAssocHandler* This,
   39634         LPWSTR *ppszPath,
   39635         int *pIndex);
   39636 
   39637     HRESULT (STDMETHODCALLTYPE *IsRecommended)(
   39638         IAssocHandler* This);
   39639 
   39640     HRESULT (STDMETHODCALLTYPE *MakeDefault)(
   39641         IAssocHandler* This,
   39642         LPCWSTR pszDescription);
   39643 
   39644     HRESULT (STDMETHODCALLTYPE *Invoke)(
   39645         IAssocHandler* This,
   39646         IDataObject *pdo);
   39647 
   39648     HRESULT (STDMETHODCALLTYPE *CreateInvoker)(
   39649         IAssocHandler* This,
   39650         IDataObject *pdo,
   39651         IAssocHandlerInvoker **ppInvoker);
   39652 
   39653     END_INTERFACE
   39654 } IAssocHandlerVtbl;
   39655 interface IAssocHandler {
   39656     CONST_VTBL IAssocHandlerVtbl* lpVtbl;
   39657 };
   39658 
   39659 #ifdef COBJMACROS
   39660 #ifndef WIDL_C_INLINE_WRAPPERS
   39661 /*** IUnknown methods ***/
   39662 #define IAssocHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   39663 #define IAssocHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
   39664 #define IAssocHandler_Release(This) (This)->lpVtbl->Release(This)
   39665 /*** IAssocHandler methods ***/
   39666 #define IAssocHandler_GetName(This,ppsz) (This)->lpVtbl->GetName(This,ppsz)
   39667 #define IAssocHandler_GetUIName(This,ppsz) (This)->lpVtbl->GetUIName(This,ppsz)
   39668 #define IAssocHandler_GetIconLocation(This,ppszPath,pIndex) (This)->lpVtbl->GetIconLocation(This,ppszPath,pIndex)
   39669 #define IAssocHandler_IsRecommended(This) (This)->lpVtbl->IsRecommended(This)
   39670 #define IAssocHandler_MakeDefault(This,pszDescription) (This)->lpVtbl->MakeDefault(This,pszDescription)
   39671 #define IAssocHandler_Invoke(This,pdo) (This)->lpVtbl->Invoke(This,pdo)
   39672 #define IAssocHandler_CreateInvoker(This,pdo,ppInvoker) (This)->lpVtbl->CreateInvoker(This,pdo,ppInvoker)
   39673 #else
   39674 /*** IUnknown methods ***/
   39675 static FORCEINLINE HRESULT IAssocHandler_QueryInterface(IAssocHandler* This,REFIID riid,void **ppvObject) {
   39676     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   39677 }
   39678 static FORCEINLINE ULONG IAssocHandler_AddRef(IAssocHandler* This) {
   39679     return This->lpVtbl->AddRef(This);
   39680 }
   39681 static FORCEINLINE ULONG IAssocHandler_Release(IAssocHandler* This) {
   39682     return This->lpVtbl->Release(This);
   39683 }
   39684 /*** IAssocHandler methods ***/
   39685 static FORCEINLINE HRESULT IAssocHandler_GetName(IAssocHandler* This,LPWSTR *ppsz) {
   39686     return This->lpVtbl->GetName(This,ppsz);
   39687 }
   39688 static FORCEINLINE HRESULT IAssocHandler_GetUIName(IAssocHandler* This,LPWSTR *ppsz) {
   39689     return This->lpVtbl->GetUIName(This,ppsz);
   39690 }
   39691 static FORCEINLINE HRESULT IAssocHandler_GetIconLocation(IAssocHandler* This,LPWSTR *ppszPath,int *pIndex) {
   39692     return This->lpVtbl->GetIconLocation(This,ppszPath,pIndex);
   39693 }
   39694 static FORCEINLINE HRESULT IAssocHandler_IsRecommended(IAssocHandler* This) {
   39695     return This->lpVtbl->IsRecommended(This);
   39696 }
   39697 static FORCEINLINE HRESULT IAssocHandler_MakeDefault(IAssocHandler* This,LPCWSTR pszDescription) {
   39698     return This->lpVtbl->MakeDefault(This,pszDescription);
   39699 }
   39700 static FORCEINLINE HRESULT IAssocHandler_Invoke(IAssocHandler* This,IDataObject *pdo) {
   39701     return This->lpVtbl->Invoke(This,pdo);
   39702 }
   39703 static FORCEINLINE HRESULT IAssocHandler_CreateInvoker(IAssocHandler* This,IDataObject *pdo,IAssocHandlerInvoker **ppInvoker) {
   39704     return This->lpVtbl->CreateInvoker(This,pdo,ppInvoker);
   39705 }
   39706 #endif
   39707 #endif
   39708 
   39709 #endif
   39710 
   39711 HRESULT STDMETHODCALLTYPE IAssocHandler_GetName_Proxy(
   39712     IAssocHandler* This,
   39713     LPWSTR *ppsz);
   39714 void __RPC_STUB IAssocHandler_GetName_Stub(
   39715     IRpcStubBuffer* This,
   39716     IRpcChannelBuffer* pRpcChannelBuffer,
   39717     PRPC_MESSAGE pRpcMessage,
   39718     DWORD* pdwStubPhase);
   39719 HRESULT STDMETHODCALLTYPE IAssocHandler_GetUIName_Proxy(
   39720     IAssocHandler* This,
   39721     LPWSTR *ppsz);
   39722 void __RPC_STUB IAssocHandler_GetUIName_Stub(
   39723     IRpcStubBuffer* This,
   39724     IRpcChannelBuffer* pRpcChannelBuffer,
   39725     PRPC_MESSAGE pRpcMessage,
   39726     DWORD* pdwStubPhase);
   39727 HRESULT STDMETHODCALLTYPE IAssocHandler_GetIconLocation_Proxy(
   39728     IAssocHandler* This,
   39729     LPWSTR *ppszPath,
   39730     int *pIndex);
   39731 void __RPC_STUB IAssocHandler_GetIconLocation_Stub(
   39732     IRpcStubBuffer* This,
   39733     IRpcChannelBuffer* pRpcChannelBuffer,
   39734     PRPC_MESSAGE pRpcMessage,
   39735     DWORD* pdwStubPhase);
   39736 HRESULT STDMETHODCALLTYPE IAssocHandler_IsRecommended_Proxy(
   39737     IAssocHandler* This);
   39738 void __RPC_STUB IAssocHandler_IsRecommended_Stub(
   39739     IRpcStubBuffer* This,
   39740     IRpcChannelBuffer* pRpcChannelBuffer,
   39741     PRPC_MESSAGE pRpcMessage,
   39742     DWORD* pdwStubPhase);
   39743 HRESULT STDMETHODCALLTYPE IAssocHandler_MakeDefault_Proxy(
   39744     IAssocHandler* This,
   39745     LPCWSTR pszDescription);
   39746 void __RPC_STUB IAssocHandler_MakeDefault_Stub(
   39747     IRpcStubBuffer* This,
   39748     IRpcChannelBuffer* pRpcChannelBuffer,
   39749     PRPC_MESSAGE pRpcMessage,
   39750     DWORD* pdwStubPhase);
   39751 HRESULT STDMETHODCALLTYPE IAssocHandler_Invoke_Proxy(
   39752     IAssocHandler* This,
   39753     IDataObject *pdo);
   39754 void __RPC_STUB IAssocHandler_Invoke_Stub(
   39755     IRpcStubBuffer* This,
   39756     IRpcChannelBuffer* pRpcChannelBuffer,
   39757     PRPC_MESSAGE pRpcMessage,
   39758     DWORD* pdwStubPhase);
   39759 HRESULT STDMETHODCALLTYPE IAssocHandler_CreateInvoker_Proxy(
   39760     IAssocHandler* This,
   39761     IDataObject *pdo,
   39762     IAssocHandlerInvoker **ppInvoker);
   39763 void __RPC_STUB IAssocHandler_CreateInvoker_Stub(
   39764     IRpcStubBuffer* This,
   39765     IRpcChannelBuffer* pRpcChannelBuffer,
   39766     PRPC_MESSAGE pRpcMessage,
   39767     DWORD* pdwStubPhase);
   39768 
   39769 #endif  /* __IAssocHandler_INTERFACE_DEFINED__ */
   39770 
   39771 
   39772 /*****************************************************************************
   39773  * IEnumAssocHandlers interface
   39774  */
   39775 #ifndef __IEnumAssocHandlers_INTERFACE_DEFINED__
   39776 #define __IEnumAssocHandlers_INTERFACE_DEFINED__
   39777 
   39778 DEFINE_GUID(IID_IEnumAssocHandlers, 0x973810ae, 0x9599, 0x4b88, 0x9e,0x4d, 0x6e,0xe9,0x8c,0x95,0x52,0xda);
   39779 #if defined(__cplusplus) && !defined(CINTERFACE)
   39780 MIDL_INTERFACE("973810ae-9599-4b88-9e4d-6ee98c9552da")
   39781 IEnumAssocHandlers : public IUnknown
   39782 {
   39783     virtual HRESULT STDMETHODCALLTYPE Next(
   39784         ULONG celt,
   39785         IAssocHandler **rgelt,
   39786         ULONG *pceltFetched) = 0;
   39787 
   39788 };
   39789 #ifdef __CRT_UUID_DECL
   39790 __CRT_UUID_DECL(IEnumAssocHandlers, 0x973810ae, 0x9599, 0x4b88, 0x9e,0x4d, 0x6e,0xe9,0x8c,0x95,0x52,0xda)
   39791 #endif
   39792 #else
   39793 typedef struct IEnumAssocHandlersVtbl {
   39794     BEGIN_INTERFACE
   39795 
   39796     /*** IUnknown methods ***/
   39797     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   39798         IEnumAssocHandlers* This,
   39799         REFIID riid,
   39800         void **ppvObject);
   39801 
   39802     ULONG (STDMETHODCALLTYPE *AddRef)(
   39803         IEnumAssocHandlers* This);
   39804 
   39805     ULONG (STDMETHODCALLTYPE *Release)(
   39806         IEnumAssocHandlers* This);
   39807 
   39808     /*** IEnumAssocHandlers methods ***/
   39809     HRESULT (STDMETHODCALLTYPE *Next)(
   39810         IEnumAssocHandlers* This,
   39811         ULONG celt,
   39812         IAssocHandler **rgelt,
   39813         ULONG *pceltFetched);
   39814 
   39815     END_INTERFACE
   39816 } IEnumAssocHandlersVtbl;
   39817 interface IEnumAssocHandlers {
   39818     CONST_VTBL IEnumAssocHandlersVtbl* lpVtbl;
   39819 };
   39820 
   39821 #ifdef COBJMACROS
   39822 #ifndef WIDL_C_INLINE_WRAPPERS
   39823 /*** IUnknown methods ***/
   39824 #define IEnumAssocHandlers_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   39825 #define IEnumAssocHandlers_AddRef(This) (This)->lpVtbl->AddRef(This)
   39826 #define IEnumAssocHandlers_Release(This) (This)->lpVtbl->Release(This)
   39827 /*** IEnumAssocHandlers methods ***/
   39828 #define IEnumAssocHandlers_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
   39829 #else
   39830 /*** IUnknown methods ***/
   39831 static FORCEINLINE HRESULT IEnumAssocHandlers_QueryInterface(IEnumAssocHandlers* This,REFIID riid,void **ppvObject) {
   39832     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   39833 }
   39834 static FORCEINLINE ULONG IEnumAssocHandlers_AddRef(IEnumAssocHandlers* This) {
   39835     return This->lpVtbl->AddRef(This);
   39836 }
   39837 static FORCEINLINE ULONG IEnumAssocHandlers_Release(IEnumAssocHandlers* This) {
   39838     return This->lpVtbl->Release(This);
   39839 }
   39840 /*** IEnumAssocHandlers methods ***/
   39841 static FORCEINLINE HRESULT IEnumAssocHandlers_Next(IEnumAssocHandlers* This,ULONG celt,IAssocHandler **rgelt,ULONG *pceltFetched) {
   39842     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
   39843 }
   39844 #endif
   39845 #endif
   39846 
   39847 #endif
   39848 
   39849 HRESULT STDMETHODCALLTYPE IEnumAssocHandlers_Next_Proxy(
   39850     IEnumAssocHandlers* This,
   39851     ULONG celt,
   39852     IAssocHandler **rgelt,
   39853     ULONG *pceltFetched);
   39854 void __RPC_STUB IEnumAssocHandlers_Next_Stub(
   39855     IRpcStubBuffer* This,
   39856     IRpcChannelBuffer* pRpcChannelBuffer,
   39857     PRPC_MESSAGE pRpcMessage,
   39858     DWORD* pdwStubPhase);
   39859 
   39860 #endif  /* __IEnumAssocHandlers_INTERFACE_DEFINED__ */
   39861 
   39862 
   39863 typedef enum ASSOC_FILTER {
   39864     ASSOC_FILTER_NONE = 0x0,
   39865     ASSOC_FILTER_RECOMMENDED = 0x1
   39866 } ASSOC_FILTER;
   39867 
   39868 DEFINE_ENUM_FLAG_OPERATORS(ASSOC_FILTER)
   39869 
   39870   SHSTDAPI SHAssocEnumHandlers(PCWSTR pszExtra, ASSOC_FILTER afFilter, IEnumAssocHandlers **ppEnumHandler);
   39871 #endif
   39872 
   39873 #if NTDDI_VERSION >= NTDDI_WIN7
   39874 SHSTDAPI SHAssocEnumHandlersForProtocolByApplication(PCWSTR protocol, REFIID riid, void **enumHandlers);
   39875 #endif
   39876 
   39877 #if NTDDI_VERSION >= NTDDI_WIN8
   39878 /*****************************************************************************
   39879  * IDataObjectProvider interface
   39880  */
   39881 #ifndef __IDataObjectProvider_INTERFACE_DEFINED__
   39882 #define __IDataObjectProvider_INTERFACE_DEFINED__
   39883 
   39884 DEFINE_GUID(IID_IDataObjectProvider, 0x3d25f6d6, 0x4b2a, 0x433c, 0x91,0x84, 0x7c,0x33,0xad,0x35,0xd0,0x01);
   39885 #if defined(__cplusplus) && !defined(CINTERFACE)
   39886 MIDL_INTERFACE("3d25f6d6-4b2a-433c-9184-7c33ad35d001")
   39887 IDataObjectProvider : public IUnknown
   39888 {
   39889     virtual HRESULT STDMETHODCALLTYPE GetDataObject(
   39890         IDataObject **dataObject) = 0;
   39891 
   39892     virtual HRESULT STDMETHODCALLTYPE SetDataObject(
   39893         IDataObject *dataObject) = 0;
   39894 
   39895 };
   39896 #ifdef __CRT_UUID_DECL
   39897 __CRT_UUID_DECL(IDataObjectProvider, 0x3d25f6d6, 0x4b2a, 0x433c, 0x91,0x84, 0x7c,0x33,0xad,0x35,0xd0,0x01)
   39898 #endif
   39899 #else
   39900 typedef struct IDataObjectProviderVtbl {
   39901     BEGIN_INTERFACE
   39902 
   39903     /*** IUnknown methods ***/
   39904     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   39905         IDataObjectProvider* This,
   39906         REFIID riid,
   39907         void **ppvObject);
   39908 
   39909     ULONG (STDMETHODCALLTYPE *AddRef)(
   39910         IDataObjectProvider* This);
   39911 
   39912     ULONG (STDMETHODCALLTYPE *Release)(
   39913         IDataObjectProvider* This);
   39914 
   39915     /*** IDataObjectProvider methods ***/
   39916     HRESULT (STDMETHODCALLTYPE *GetDataObject)(
   39917         IDataObjectProvider* This,
   39918         IDataObject **dataObject);
   39919 
   39920     HRESULT (STDMETHODCALLTYPE *SetDataObject)(
   39921         IDataObjectProvider* This,
   39922         IDataObject *dataObject);
   39923 
   39924     END_INTERFACE
   39925 } IDataObjectProviderVtbl;
   39926 interface IDataObjectProvider {
   39927     CONST_VTBL IDataObjectProviderVtbl* lpVtbl;
   39928 };
   39929 
   39930 #ifdef COBJMACROS
   39931 #ifndef WIDL_C_INLINE_WRAPPERS
   39932 /*** IUnknown methods ***/
   39933 #define IDataObjectProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   39934 #define IDataObjectProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
   39935 #define IDataObjectProvider_Release(This) (This)->lpVtbl->Release(This)
   39936 /*** IDataObjectProvider methods ***/
   39937 #define IDataObjectProvider_GetDataObject(This,dataObject) (This)->lpVtbl->GetDataObject(This,dataObject)
   39938 #define IDataObjectProvider_SetDataObject(This,dataObject) (This)->lpVtbl->SetDataObject(This,dataObject)
   39939 #else
   39940 /*** IUnknown methods ***/
   39941 static FORCEINLINE HRESULT IDataObjectProvider_QueryInterface(IDataObjectProvider* This,REFIID riid,void **ppvObject) {
   39942     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   39943 }
   39944 static FORCEINLINE ULONG IDataObjectProvider_AddRef(IDataObjectProvider* This) {
   39945     return This->lpVtbl->AddRef(This);
   39946 }
   39947 static FORCEINLINE ULONG IDataObjectProvider_Release(IDataObjectProvider* This) {
   39948     return This->lpVtbl->Release(This);
   39949 }
   39950 /*** IDataObjectProvider methods ***/
   39951 static FORCEINLINE HRESULT IDataObjectProvider_GetDataObject(IDataObjectProvider* This,IDataObject **dataObject) {
   39952     return This->lpVtbl->GetDataObject(This,dataObject);
   39953 }
   39954 static FORCEINLINE HRESULT IDataObjectProvider_SetDataObject(IDataObjectProvider* This,IDataObject *dataObject) {
   39955     return This->lpVtbl->SetDataObject(This,dataObject);
   39956 }
   39957 #endif
   39958 #endif
   39959 
   39960 #endif
   39961 
   39962 HRESULT STDMETHODCALLTYPE IDataObjectProvider_GetDataObject_Proxy(
   39963     IDataObjectProvider* This,
   39964     IDataObject **dataObject);
   39965 void __RPC_STUB IDataObjectProvider_GetDataObject_Stub(
   39966     IRpcStubBuffer* This,
   39967     IRpcChannelBuffer* pRpcChannelBuffer,
   39968     PRPC_MESSAGE pRpcMessage,
   39969     DWORD* pdwStubPhase);
   39970 
   39971 #endif  /* __IDataObjectProvider_INTERFACE_DEFINED__ */
   39972 
   39973 
   39974 /*****************************************************************************
   39975  * IDataTransferManagerInterop interface
   39976  */
   39977 #ifndef __IDataTransferManagerInterop_INTERFACE_DEFINED__
   39978 #define __IDataTransferManagerInterop_INTERFACE_DEFINED__
   39979 
   39980 DEFINE_GUID(IID_IDataTransferManagerInterop, 0x3a3dcd6c, 0x3eab, 0x43dc, 0xbc,0xde, 0x45,0x67,0x1c,0xe8,0x00,0xc8);
   39981 #if defined(__cplusplus) && !defined(CINTERFACE)
   39982 MIDL_INTERFACE("3a3dcd6c-3eab-43dc-bcde-45671ce800c8")
   39983 IDataTransferManagerInterop : public IUnknown
   39984 {
   39985     virtual HRESULT STDMETHODCALLTYPE GetForWindow(
   39986         HWND appWindow,
   39987         REFIID riid,
   39988         void **dataTransferManager) = 0;
   39989 
   39990     virtual HRESULT STDMETHODCALLTYPE ShowShareUIForWindow(
   39991         HWND appWindow) = 0;
   39992 
   39993 };
   39994 #ifdef __CRT_UUID_DECL
   39995 __CRT_UUID_DECL(IDataTransferManagerInterop, 0x3a3dcd6c, 0x3eab, 0x43dc, 0xbc,0xde, 0x45,0x67,0x1c,0xe8,0x00,0xc8)
   39996 #endif
   39997 #else
   39998 typedef struct IDataTransferManagerInteropVtbl {
   39999     BEGIN_INTERFACE
   40000 
   40001     /*** IUnknown methods ***/
   40002     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   40003         IDataTransferManagerInterop* This,
   40004         REFIID riid,
   40005         void **ppvObject);
   40006 
   40007     ULONG (STDMETHODCALLTYPE *AddRef)(
   40008         IDataTransferManagerInterop* This);
   40009 
   40010     ULONG (STDMETHODCALLTYPE *Release)(
   40011         IDataTransferManagerInterop* This);
   40012 
   40013     /*** IDataTransferManagerInterop methods ***/
   40014     HRESULT (STDMETHODCALLTYPE *GetForWindow)(
   40015         IDataTransferManagerInterop* This,
   40016         HWND appWindow,
   40017         REFIID riid,
   40018         void **dataTransferManager);
   40019 
   40020     HRESULT (STDMETHODCALLTYPE *ShowShareUIForWindow)(
   40021         IDataTransferManagerInterop* This,
   40022         HWND appWindow);
   40023 
   40024     END_INTERFACE
   40025 } IDataTransferManagerInteropVtbl;
   40026 interface IDataTransferManagerInterop {
   40027     CONST_VTBL IDataTransferManagerInteropVtbl* lpVtbl;
   40028 };
   40029 
   40030 #ifdef COBJMACROS
   40031 #ifndef WIDL_C_INLINE_WRAPPERS
   40032 /*** IUnknown methods ***/
   40033 #define IDataTransferManagerInterop_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   40034 #define IDataTransferManagerInterop_AddRef(This) (This)->lpVtbl->AddRef(This)
   40035 #define IDataTransferManagerInterop_Release(This) (This)->lpVtbl->Release(This)
   40036 /*** IDataTransferManagerInterop methods ***/
   40037 #define IDataTransferManagerInterop_GetForWindow(This,appWindow,riid,dataTransferManager) (This)->lpVtbl->GetForWindow(This,appWindow,riid,dataTransferManager)
   40038 #define IDataTransferManagerInterop_ShowShareUIForWindow(This,appWindow) (This)->lpVtbl->ShowShareUIForWindow(This,appWindow)
   40039 #else
   40040 /*** IUnknown methods ***/
   40041 static FORCEINLINE HRESULT IDataTransferManagerInterop_QueryInterface(IDataTransferManagerInterop* This,REFIID riid,void **ppvObject) {
   40042     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   40043 }
   40044 static FORCEINLINE ULONG IDataTransferManagerInterop_AddRef(IDataTransferManagerInterop* This) {
   40045     return This->lpVtbl->AddRef(This);
   40046 }
   40047 static FORCEINLINE ULONG IDataTransferManagerInterop_Release(IDataTransferManagerInterop* This) {
   40048     return This->lpVtbl->Release(This);
   40049 }
   40050 /*** IDataTransferManagerInterop methods ***/
   40051 static FORCEINLINE HRESULT IDataTransferManagerInterop_GetForWindow(IDataTransferManagerInterop* This,HWND appWindow,REFIID riid,void **dataTransferManager) {
   40052     return This->lpVtbl->GetForWindow(This,appWindow,riid,dataTransferManager);
   40053 }
   40054 static FORCEINLINE HRESULT IDataTransferManagerInterop_ShowShareUIForWindow(IDataTransferManagerInterop* This,HWND appWindow) {
   40055     return This->lpVtbl->ShowShareUIForWindow(This,appWindow);
   40056 }
   40057 #endif
   40058 #endif
   40059 
   40060 #endif
   40061 
   40062 HRESULT STDMETHODCALLTYPE IDataTransferManagerInterop_GetForWindow_Proxy(
   40063     IDataTransferManagerInterop* This,
   40064     HWND appWindow,
   40065     REFIID riid,
   40066     void **dataTransferManager);
   40067 void __RPC_STUB IDataTransferManagerInterop_GetForWindow_Stub(
   40068     IRpcStubBuffer* This,
   40069     IRpcChannelBuffer* pRpcChannelBuffer,
   40070     PRPC_MESSAGE pRpcMessage,
   40071     DWORD* pdwStubPhase);
   40072 HRESULT STDMETHODCALLTYPE IDataTransferManagerInterop_ShowShareUIForWindow_Proxy(
   40073     IDataTransferManagerInterop* This,
   40074     HWND appWindow);
   40075 void __RPC_STUB IDataTransferManagerInterop_ShowShareUIForWindow_Stub(
   40076     IRpcStubBuffer* This,
   40077     IRpcChannelBuffer* pRpcChannelBuffer,
   40078     PRPC_MESSAGE pRpcMessage,
   40079     DWORD* pdwStubPhase);
   40080 
   40081 #endif  /* __IDataTransferManagerInterop_INTERFACE_DEFINED__ */
   40082 
   40083 
   40084 /*****************************************************************************
   40085  * IFrameworkInputPaneHandler interface
   40086  */
   40087 #ifndef __IFrameworkInputPaneHandler_INTERFACE_DEFINED__
   40088 #define __IFrameworkInputPaneHandler_INTERFACE_DEFINED__
   40089 
   40090 DEFINE_GUID(IID_IFrameworkInputPaneHandler, 0x226c537b, 0x1e76, 0x4d9e, 0xa7,0x60, 0x33,0xdb,0x29,0x92,0x2f,0x18);
   40091 #if defined(__cplusplus) && !defined(CINTERFACE)
   40092 MIDL_INTERFACE("226c537b-1e76-4d9e-a760-33db29922f18")
   40093 IFrameworkInputPaneHandler : public IUnknown
   40094 {
   40095     virtual HRESULT STDMETHODCALLTYPE Showing(
   40096         RECT *prcInputPaneScreenLocation,
   40097         WINBOOL fEnsureFocusedElementInView) = 0;
   40098 
   40099     virtual HRESULT STDMETHODCALLTYPE Hiding(
   40100         WINBOOL fEnsureFocusedElementInView) = 0;
   40101 
   40102 };
   40103 #ifdef __CRT_UUID_DECL
   40104 __CRT_UUID_DECL(IFrameworkInputPaneHandler, 0x226c537b, 0x1e76, 0x4d9e, 0xa7,0x60, 0x33,0xdb,0x29,0x92,0x2f,0x18)
   40105 #endif
   40106 #else
   40107 typedef struct IFrameworkInputPaneHandlerVtbl {
   40108     BEGIN_INTERFACE
   40109 
   40110     /*** IUnknown methods ***/
   40111     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   40112         IFrameworkInputPaneHandler* This,
   40113         REFIID riid,
   40114         void **ppvObject);
   40115 
   40116     ULONG (STDMETHODCALLTYPE *AddRef)(
   40117         IFrameworkInputPaneHandler* This);
   40118 
   40119     ULONG (STDMETHODCALLTYPE *Release)(
   40120         IFrameworkInputPaneHandler* This);
   40121 
   40122     /*** IFrameworkInputPaneHandler methods ***/
   40123     HRESULT (STDMETHODCALLTYPE *Showing)(
   40124         IFrameworkInputPaneHandler* This,
   40125         RECT *prcInputPaneScreenLocation,
   40126         WINBOOL fEnsureFocusedElementInView);
   40127 
   40128     HRESULT (STDMETHODCALLTYPE *Hiding)(
   40129         IFrameworkInputPaneHandler* This,
   40130         WINBOOL fEnsureFocusedElementInView);
   40131 
   40132     END_INTERFACE
   40133 } IFrameworkInputPaneHandlerVtbl;
   40134 interface IFrameworkInputPaneHandler {
   40135     CONST_VTBL IFrameworkInputPaneHandlerVtbl* lpVtbl;
   40136 };
   40137 
   40138 #ifdef COBJMACROS
   40139 #ifndef WIDL_C_INLINE_WRAPPERS
   40140 /*** IUnknown methods ***/
   40141 #define IFrameworkInputPaneHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   40142 #define IFrameworkInputPaneHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
   40143 #define IFrameworkInputPaneHandler_Release(This) (This)->lpVtbl->Release(This)
   40144 /*** IFrameworkInputPaneHandler methods ***/
   40145 #define IFrameworkInputPaneHandler_Showing(This,prcInputPaneScreenLocation,fEnsureFocusedElementInView) (This)->lpVtbl->Showing(This,prcInputPaneScreenLocation,fEnsureFocusedElementInView)
   40146 #define IFrameworkInputPaneHandler_Hiding(This,fEnsureFocusedElementInView) (This)->lpVtbl->Hiding(This,fEnsureFocusedElementInView)
   40147 #else
   40148 /*** IUnknown methods ***/
   40149 static FORCEINLINE HRESULT IFrameworkInputPaneHandler_QueryInterface(IFrameworkInputPaneHandler* This,REFIID riid,void **ppvObject) {
   40150     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   40151 }
   40152 static FORCEINLINE ULONG IFrameworkInputPaneHandler_AddRef(IFrameworkInputPaneHandler* This) {
   40153     return This->lpVtbl->AddRef(This);
   40154 }
   40155 static FORCEINLINE ULONG IFrameworkInputPaneHandler_Release(IFrameworkInputPaneHandler* This) {
   40156     return This->lpVtbl->Release(This);
   40157 }
   40158 /*** IFrameworkInputPaneHandler methods ***/
   40159 static FORCEINLINE HRESULT IFrameworkInputPaneHandler_Showing(IFrameworkInputPaneHandler* This,RECT *prcInputPaneScreenLocation,WINBOOL fEnsureFocusedElementInView) {
   40160     return This->lpVtbl->Showing(This,prcInputPaneScreenLocation,fEnsureFocusedElementInView);
   40161 }
   40162 static FORCEINLINE HRESULT IFrameworkInputPaneHandler_Hiding(IFrameworkInputPaneHandler* This,WINBOOL fEnsureFocusedElementInView) {
   40163     return This->lpVtbl->Hiding(This,fEnsureFocusedElementInView);
   40164 }
   40165 #endif
   40166 #endif
   40167 
   40168 #endif
   40169 
   40170 HRESULT STDMETHODCALLTYPE IFrameworkInputPaneHandler_Showing_Proxy(
   40171     IFrameworkInputPaneHandler* This,
   40172     RECT *prcInputPaneScreenLocation,
   40173     WINBOOL fEnsureFocusedElementInView);
   40174 void __RPC_STUB IFrameworkInputPaneHandler_Showing_Stub(
   40175     IRpcStubBuffer* This,
   40176     IRpcChannelBuffer* pRpcChannelBuffer,
   40177     PRPC_MESSAGE pRpcMessage,
   40178     DWORD* pdwStubPhase);
   40179 HRESULT STDMETHODCALLTYPE IFrameworkInputPaneHandler_Hiding_Proxy(
   40180     IFrameworkInputPaneHandler* This,
   40181     WINBOOL fEnsureFocusedElementInView);
   40182 void __RPC_STUB IFrameworkInputPaneHandler_Hiding_Stub(
   40183     IRpcStubBuffer* This,
   40184     IRpcChannelBuffer* pRpcChannelBuffer,
   40185     PRPC_MESSAGE pRpcMessage,
   40186     DWORD* pdwStubPhase);
   40187 
   40188 #endif  /* __IFrameworkInputPaneHandler_INTERFACE_DEFINED__ */
   40189 
   40190 
   40191 /*****************************************************************************
   40192  * IFrameworkInputPane interface
   40193  */
   40194 #ifndef __IFrameworkInputPane_INTERFACE_DEFINED__
   40195 #define __IFrameworkInputPane_INTERFACE_DEFINED__
   40196 
   40197 DEFINE_GUID(IID_IFrameworkInputPane, 0x5752238b, 0x24f0, 0x495a, 0x82,0xf1, 0x2f,0xd5,0x93,0x05,0x67,0x96);
   40198 #if defined(__cplusplus) && !defined(CINTERFACE)
   40199 MIDL_INTERFACE("5752238b-24f0-495a-82f1-2fd593056796")
   40200 IFrameworkInputPane : public IUnknown
   40201 {
   40202     virtual HRESULT STDMETHODCALLTYPE Advise(
   40203         IUnknown *pWindow,
   40204         IFrameworkInputPaneHandler *pHandler,
   40205         DWORD *pdwCookie) = 0;
   40206 
   40207     virtual HRESULT STDMETHODCALLTYPE AdviseWithHWND(
   40208         HWND hwnd,
   40209         IFrameworkInputPaneHandler *pHandler,
   40210         DWORD *pdwCookie) = 0;
   40211 
   40212     virtual HRESULT STDMETHODCALLTYPE Unadvise(
   40213         DWORD dwCookie) = 0;
   40214 
   40215     virtual HRESULT STDMETHODCALLTYPE Location(
   40216         RECT *prcInputPaneScreenLocation) = 0;
   40217 
   40218 };
   40219 #ifdef __CRT_UUID_DECL
   40220 __CRT_UUID_DECL(IFrameworkInputPane, 0x5752238b, 0x24f0, 0x495a, 0x82,0xf1, 0x2f,0xd5,0x93,0x05,0x67,0x96)
   40221 #endif
   40222 #else
   40223 typedef struct IFrameworkInputPaneVtbl {
   40224     BEGIN_INTERFACE
   40225 
   40226     /*** IUnknown methods ***/
   40227     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   40228         IFrameworkInputPane* This,
   40229         REFIID riid,
   40230         void **ppvObject);
   40231 
   40232     ULONG (STDMETHODCALLTYPE *AddRef)(
   40233         IFrameworkInputPane* This);
   40234 
   40235     ULONG (STDMETHODCALLTYPE *Release)(
   40236         IFrameworkInputPane* This);
   40237 
   40238     /*** IFrameworkInputPane methods ***/
   40239     HRESULT (STDMETHODCALLTYPE *Advise)(
   40240         IFrameworkInputPane* This,
   40241         IUnknown *pWindow,
   40242         IFrameworkInputPaneHandler *pHandler,
   40243         DWORD *pdwCookie);
   40244 
   40245     HRESULT (STDMETHODCALLTYPE *AdviseWithHWND)(
   40246         IFrameworkInputPane* This,
   40247         HWND hwnd,
   40248         IFrameworkInputPaneHandler *pHandler,
   40249         DWORD *pdwCookie);
   40250 
   40251     HRESULT (STDMETHODCALLTYPE *Unadvise)(
   40252         IFrameworkInputPane* This,
   40253         DWORD dwCookie);
   40254 
   40255     HRESULT (STDMETHODCALLTYPE *Location)(
   40256         IFrameworkInputPane* This,
   40257         RECT *prcInputPaneScreenLocation);
   40258 
   40259     END_INTERFACE
   40260 } IFrameworkInputPaneVtbl;
   40261 interface IFrameworkInputPane {
   40262     CONST_VTBL IFrameworkInputPaneVtbl* lpVtbl;
   40263 };
   40264 
   40265 #ifdef COBJMACROS
   40266 #ifndef WIDL_C_INLINE_WRAPPERS
   40267 /*** IUnknown methods ***/
   40268 #define IFrameworkInputPane_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   40269 #define IFrameworkInputPane_AddRef(This) (This)->lpVtbl->AddRef(This)
   40270 #define IFrameworkInputPane_Release(This) (This)->lpVtbl->Release(This)
   40271 /*** IFrameworkInputPane methods ***/
   40272 #define IFrameworkInputPane_Advise(This,pWindow,pHandler,pdwCookie) (This)->lpVtbl->Advise(This,pWindow,pHandler,pdwCookie)
   40273 #define IFrameworkInputPane_AdviseWithHWND(This,hwnd,pHandler,pdwCookie) (This)->lpVtbl->AdviseWithHWND(This,hwnd,pHandler,pdwCookie)
   40274 #define IFrameworkInputPane_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
   40275 #define IFrameworkInputPane_Location(This,prcInputPaneScreenLocation) (This)->lpVtbl->Location(This,prcInputPaneScreenLocation)
   40276 #else
   40277 /*** IUnknown methods ***/
   40278 static FORCEINLINE HRESULT IFrameworkInputPane_QueryInterface(IFrameworkInputPane* This,REFIID riid,void **ppvObject) {
   40279     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   40280 }
   40281 static FORCEINLINE ULONG IFrameworkInputPane_AddRef(IFrameworkInputPane* This) {
   40282     return This->lpVtbl->AddRef(This);
   40283 }
   40284 static FORCEINLINE ULONG IFrameworkInputPane_Release(IFrameworkInputPane* This) {
   40285     return This->lpVtbl->Release(This);
   40286 }
   40287 /*** IFrameworkInputPane methods ***/
   40288 static FORCEINLINE HRESULT IFrameworkInputPane_Advise(IFrameworkInputPane* This,IUnknown *pWindow,IFrameworkInputPaneHandler *pHandler,DWORD *pdwCookie) {
   40289     return This->lpVtbl->Advise(This,pWindow,pHandler,pdwCookie);
   40290 }
   40291 static FORCEINLINE HRESULT IFrameworkInputPane_AdviseWithHWND(IFrameworkInputPane* This,HWND hwnd,IFrameworkInputPaneHandler *pHandler,DWORD *pdwCookie) {
   40292     return This->lpVtbl->AdviseWithHWND(This,hwnd,pHandler,pdwCookie);
   40293 }
   40294 static FORCEINLINE HRESULT IFrameworkInputPane_Unadvise(IFrameworkInputPane* This,DWORD dwCookie) {
   40295     return This->lpVtbl->Unadvise(This,dwCookie);
   40296 }
   40297 static FORCEINLINE HRESULT IFrameworkInputPane_Location(IFrameworkInputPane* This,RECT *prcInputPaneScreenLocation) {
   40298     return This->lpVtbl->Location(This,prcInputPaneScreenLocation);
   40299 }
   40300 #endif
   40301 #endif
   40302 
   40303 #endif
   40304 
   40305 HRESULT STDMETHODCALLTYPE IFrameworkInputPane_Advise_Proxy(
   40306     IFrameworkInputPane* This,
   40307     IUnknown *pWindow,
   40308     IFrameworkInputPaneHandler *pHandler,
   40309     DWORD *pdwCookie);
   40310 void __RPC_STUB IFrameworkInputPane_Advise_Stub(
   40311     IRpcStubBuffer* This,
   40312     IRpcChannelBuffer* pRpcChannelBuffer,
   40313     PRPC_MESSAGE pRpcMessage,
   40314     DWORD* pdwStubPhase);
   40315 HRESULT STDMETHODCALLTYPE IFrameworkInputPane_AdviseWithHWND_Proxy(
   40316     IFrameworkInputPane* This,
   40317     HWND hwnd,
   40318     IFrameworkInputPaneHandler *pHandler,
   40319     DWORD *pdwCookie);
   40320 void __RPC_STUB IFrameworkInputPane_AdviseWithHWND_Stub(
   40321     IRpcStubBuffer* This,
   40322     IRpcChannelBuffer* pRpcChannelBuffer,
   40323     PRPC_MESSAGE pRpcMessage,
   40324     DWORD* pdwStubPhase);
   40325 HRESULT STDMETHODCALLTYPE IFrameworkInputPane_Unadvise_Proxy(
   40326     IFrameworkInputPane* This,
   40327     DWORD dwCookie);
   40328 void __RPC_STUB IFrameworkInputPane_Unadvise_Stub(
   40329     IRpcStubBuffer* This,
   40330     IRpcChannelBuffer* pRpcChannelBuffer,
   40331     PRPC_MESSAGE pRpcMessage,
   40332     DWORD* pdwStubPhase);
   40333 HRESULT STDMETHODCALLTYPE IFrameworkInputPane_Location_Proxy(
   40334     IFrameworkInputPane* This,
   40335     RECT *prcInputPaneScreenLocation);
   40336 void __RPC_STUB IFrameworkInputPane_Location_Stub(
   40337     IRpcStubBuffer* This,
   40338     IRpcChannelBuffer* pRpcChannelBuffer,
   40339     PRPC_MESSAGE pRpcMessage,
   40340     DWORD* pdwStubPhase);
   40341 
   40342 #endif  /* __IFrameworkInputPane_INTERFACE_DEFINED__ */
   40343 
   40344 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
   40345 
   40346 #ifndef PROP_CONTRACT_DELEGATE
   40347 #define PROP_CONTRACT_DELEGATE L"ContractDelegate"
   40348 #endif
   40349 
   40350   __forceinline void SetContractDelegateWindow(HWND hwndSource, HWND hwndDelegate) {
   40351     if (hwndDelegate != NULL)
   40352       SetPropW (hwndSource, PROP_CONTRACT_DELEGATE, (HANDLE)hwndDelegate);
   40353     else
   40354       RemovePropW(hwndSource, PROP_CONTRACT_DELEGATE);
   40355   }
   40356 
   40357 #ifndef PROP_CONTRACT_DELEGATE
   40358 #define PROP_CONTRACT_DELEGATE L"ContractDelegate"
   40359 #endif
   40360 
   40361   __forceinline HWND GetContractDelegateWindow(HWND hwndSource) { return (HWND)GetPropW(hwndSource, PROP_CONTRACT_DELEGATE); }
   40362 #endif
   40363 #endif
   40364 
   40365 #if NTDDI_VERSION >= NTDDI_WIN8
   40366 /*****************************************************************************
   40367  * ISearchableApplication interface
   40368  */
   40369 #ifndef __ISearchableApplication_INTERFACE_DEFINED__
   40370 #define __ISearchableApplication_INTERFACE_DEFINED__
   40371 
   40372 DEFINE_GUID(IID_ISearchableApplication, 0x08922f8d, 0x243a, 0x49e3, 0xa4,0x95, 0xbd,0x4f,0x9c,0xf8,0xab,0x9e);
   40373 #if defined(__cplusplus) && !defined(CINTERFACE)
   40374 MIDL_INTERFACE("08922f8d-243a-49e3-a495-bd4f9cf8ab9e")
   40375 ISearchableApplication : public IUnknown
   40376 {
   40377     virtual HRESULT STDMETHODCALLTYPE GetSearchWindow(
   40378         HWND *hwnd) = 0;
   40379 
   40380 };
   40381 #ifdef __CRT_UUID_DECL
   40382 __CRT_UUID_DECL(ISearchableApplication, 0x08922f8d, 0x243a, 0x49e3, 0xa4,0x95, 0xbd,0x4f,0x9c,0xf8,0xab,0x9e)
   40383 #endif
   40384 #else
   40385 typedef struct ISearchableApplicationVtbl {
   40386     BEGIN_INTERFACE
   40387 
   40388     /*** IUnknown methods ***/
   40389     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   40390         ISearchableApplication* This,
   40391         REFIID riid,
   40392         void **ppvObject);
   40393 
   40394     ULONG (STDMETHODCALLTYPE *AddRef)(
   40395         ISearchableApplication* This);
   40396 
   40397     ULONG (STDMETHODCALLTYPE *Release)(
   40398         ISearchableApplication* This);
   40399 
   40400     /*** ISearchableApplication methods ***/
   40401     HRESULT (STDMETHODCALLTYPE *GetSearchWindow)(
   40402         ISearchableApplication* This,
   40403         HWND *hwnd);
   40404 
   40405     END_INTERFACE
   40406 } ISearchableApplicationVtbl;
   40407 interface ISearchableApplication {
   40408     CONST_VTBL ISearchableApplicationVtbl* lpVtbl;
   40409 };
   40410 
   40411 #ifdef COBJMACROS
   40412 #ifndef WIDL_C_INLINE_WRAPPERS
   40413 /*** IUnknown methods ***/
   40414 #define ISearchableApplication_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   40415 #define ISearchableApplication_AddRef(This) (This)->lpVtbl->AddRef(This)
   40416 #define ISearchableApplication_Release(This) (This)->lpVtbl->Release(This)
   40417 /*** ISearchableApplication methods ***/
   40418 #define ISearchableApplication_GetSearchWindow(This,hwnd) (This)->lpVtbl->GetSearchWindow(This,hwnd)
   40419 #else
   40420 /*** IUnknown methods ***/
   40421 static FORCEINLINE HRESULT ISearchableApplication_QueryInterface(ISearchableApplication* This,REFIID riid,void **ppvObject) {
   40422     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   40423 }
   40424 static FORCEINLINE ULONG ISearchableApplication_AddRef(ISearchableApplication* This) {
   40425     return This->lpVtbl->AddRef(This);
   40426 }
   40427 static FORCEINLINE ULONG ISearchableApplication_Release(ISearchableApplication* This) {
   40428     return This->lpVtbl->Release(This);
   40429 }
   40430 /*** ISearchableApplication methods ***/
   40431 static FORCEINLINE HRESULT ISearchableApplication_GetSearchWindow(ISearchableApplication* This,HWND *hwnd) {
   40432     return This->lpVtbl->GetSearchWindow(This,hwnd);
   40433 }
   40434 #endif
   40435 #endif
   40436 
   40437 #endif
   40438 
   40439 HRESULT STDMETHODCALLTYPE ISearchableApplication_GetSearchWindow_Proxy(
   40440     ISearchableApplication* This,
   40441     HWND *hwnd);
   40442 void __RPC_STUB ISearchableApplication_GetSearchWindow_Stub(
   40443     IRpcStubBuffer* This,
   40444     IRpcChannelBuffer* pRpcChannelBuffer,
   40445     PRPC_MESSAGE pRpcMessage,
   40446     DWORD* pdwStubPhase);
   40447 
   40448 #endif  /* __ISearchableApplication_INTERFACE_DEFINED__ */
   40449 
   40450 
   40451 typedef enum UNDOCK_REASON {
   40452     UR_RESOLUTION_CHANGE = 0,
   40453     UR_MONITOR_DISCONNECT = 1
   40454 } UNDOCK_REASON;
   40455 
   40456 /*****************************************************************************
   40457  * IAccessibilityDockingServiceCallback interface
   40458  */
   40459 #ifndef __IAccessibilityDockingServiceCallback_INTERFACE_DEFINED__
   40460 #define __IAccessibilityDockingServiceCallback_INTERFACE_DEFINED__
   40461 
   40462 DEFINE_GUID(IID_IAccessibilityDockingServiceCallback, 0x157733fd, 0xa592, 0x42e5, 0xb5,0x94, 0x24,0x84,0x68,0xc5,0xa8,0x1b);
   40463 #if defined(__cplusplus) && !defined(CINTERFACE)
   40464 MIDL_INTERFACE("157733fd-a592-42e5-b594-248468c5a81b")
   40465 IAccessibilityDockingServiceCallback : public IUnknown
   40466 {
   40467     virtual HRESULT STDMETHODCALLTYPE Undocked(
   40468         UNDOCK_REASON undockReason) = 0;
   40469 
   40470 };
   40471 #ifdef __CRT_UUID_DECL
   40472 __CRT_UUID_DECL(IAccessibilityDockingServiceCallback, 0x157733fd, 0xa592, 0x42e5, 0xb5,0x94, 0x24,0x84,0x68,0xc5,0xa8,0x1b)
   40473 #endif
   40474 #else
   40475 typedef struct IAccessibilityDockingServiceCallbackVtbl {
   40476     BEGIN_INTERFACE
   40477 
   40478     /*** IUnknown methods ***/
   40479     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   40480         IAccessibilityDockingServiceCallback* This,
   40481         REFIID riid,
   40482         void **ppvObject);
   40483 
   40484     ULONG (STDMETHODCALLTYPE *AddRef)(
   40485         IAccessibilityDockingServiceCallback* This);
   40486 
   40487     ULONG (STDMETHODCALLTYPE *Release)(
   40488         IAccessibilityDockingServiceCallback* This);
   40489 
   40490     /*** IAccessibilityDockingServiceCallback methods ***/
   40491     HRESULT (STDMETHODCALLTYPE *Undocked)(
   40492         IAccessibilityDockingServiceCallback* This,
   40493         UNDOCK_REASON undockReason);
   40494 
   40495     END_INTERFACE
   40496 } IAccessibilityDockingServiceCallbackVtbl;
   40497 interface IAccessibilityDockingServiceCallback {
   40498     CONST_VTBL IAccessibilityDockingServiceCallbackVtbl* lpVtbl;
   40499 };
   40500 
   40501 #ifdef COBJMACROS
   40502 #ifndef WIDL_C_INLINE_WRAPPERS
   40503 /*** IUnknown methods ***/
   40504 #define IAccessibilityDockingServiceCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   40505 #define IAccessibilityDockingServiceCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
   40506 #define IAccessibilityDockingServiceCallback_Release(This) (This)->lpVtbl->Release(This)
   40507 /*** IAccessibilityDockingServiceCallback methods ***/
   40508 #define IAccessibilityDockingServiceCallback_Undocked(This,undockReason) (This)->lpVtbl->Undocked(This,undockReason)
   40509 #else
   40510 /*** IUnknown methods ***/
   40511 static FORCEINLINE HRESULT IAccessibilityDockingServiceCallback_QueryInterface(IAccessibilityDockingServiceCallback* This,REFIID riid,void **ppvObject) {
   40512     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   40513 }
   40514 static FORCEINLINE ULONG IAccessibilityDockingServiceCallback_AddRef(IAccessibilityDockingServiceCallback* This) {
   40515     return This->lpVtbl->AddRef(This);
   40516 }
   40517 static FORCEINLINE ULONG IAccessibilityDockingServiceCallback_Release(IAccessibilityDockingServiceCallback* This) {
   40518     return This->lpVtbl->Release(This);
   40519 }
   40520 /*** IAccessibilityDockingServiceCallback methods ***/
   40521 static FORCEINLINE HRESULT IAccessibilityDockingServiceCallback_Undocked(IAccessibilityDockingServiceCallback* This,UNDOCK_REASON undockReason) {
   40522     return This->lpVtbl->Undocked(This,undockReason);
   40523 }
   40524 #endif
   40525 #endif
   40526 
   40527 #endif
   40528 
   40529 HRESULT STDMETHODCALLTYPE IAccessibilityDockingServiceCallback_Undocked_Proxy(
   40530     IAccessibilityDockingServiceCallback* This,
   40531     UNDOCK_REASON undockReason);
   40532 void __RPC_STUB IAccessibilityDockingServiceCallback_Undocked_Stub(
   40533     IRpcStubBuffer* This,
   40534     IRpcChannelBuffer* pRpcChannelBuffer,
   40535     PRPC_MESSAGE pRpcMessage,
   40536     DWORD* pdwStubPhase);
   40537 
   40538 #endif  /* __IAccessibilityDockingServiceCallback_INTERFACE_DEFINED__ */
   40539 
   40540 
   40541 /*****************************************************************************
   40542  * IAccessibilityDockingService interface
   40543  */
   40544 #ifndef __IAccessibilityDockingService_INTERFACE_DEFINED__
   40545 #define __IAccessibilityDockingService_INTERFACE_DEFINED__
   40546 
   40547 DEFINE_GUID(IID_IAccessibilityDockingService, 0x8849dc22, 0xcedf, 0x4c95, 0x99,0x8d, 0x05,0x14,0x19,0xdd,0x3f,0x76);
   40548 #if defined(__cplusplus) && !defined(CINTERFACE)
   40549 MIDL_INTERFACE("8849dc22-cedf-4c95-998d-051419dd3f76")
   40550 IAccessibilityDockingService : public IUnknown
   40551 {
   40552     virtual HRESULT STDMETHODCALLTYPE GetAvailableSize(
   40553         HMONITOR hMonitor,
   40554         UINT *pcxFixed,
   40555         UINT *pcyMax) = 0;
   40556 
   40557     virtual HRESULT STDMETHODCALLTYPE DockWindow(
   40558         HWND hwnd,
   40559         HMONITOR hMonitor,
   40560         UINT cyRequested,
   40561         IAccessibilityDockingServiceCallback *pCallback) = 0;
   40562 
   40563     virtual HRESULT STDMETHODCALLTYPE UndockWindow(
   40564         HWND hwnd) = 0;
   40565 
   40566 };
   40567 #ifdef __CRT_UUID_DECL
   40568 __CRT_UUID_DECL(IAccessibilityDockingService, 0x8849dc22, 0xcedf, 0x4c95, 0x99,0x8d, 0x05,0x14,0x19,0xdd,0x3f,0x76)
   40569 #endif
   40570 #else
   40571 typedef struct IAccessibilityDockingServiceVtbl {
   40572     BEGIN_INTERFACE
   40573 
   40574     /*** IUnknown methods ***/
   40575     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   40576         IAccessibilityDockingService* This,
   40577         REFIID riid,
   40578         void **ppvObject);
   40579 
   40580     ULONG (STDMETHODCALLTYPE *AddRef)(
   40581         IAccessibilityDockingService* This);
   40582 
   40583     ULONG (STDMETHODCALLTYPE *Release)(
   40584         IAccessibilityDockingService* This);
   40585 
   40586     /*** IAccessibilityDockingService methods ***/
   40587     HRESULT (STDMETHODCALLTYPE *GetAvailableSize)(
   40588         IAccessibilityDockingService* This,
   40589         HMONITOR hMonitor,
   40590         UINT *pcxFixed,
   40591         UINT *pcyMax);
   40592 
   40593     HRESULT (STDMETHODCALLTYPE *DockWindow)(
   40594         IAccessibilityDockingService* This,
   40595         HWND hwnd,
   40596         HMONITOR hMonitor,
   40597         UINT cyRequested,
   40598         IAccessibilityDockingServiceCallback *pCallback);
   40599 
   40600     HRESULT (STDMETHODCALLTYPE *UndockWindow)(
   40601         IAccessibilityDockingService* This,
   40602         HWND hwnd);
   40603 
   40604     END_INTERFACE
   40605 } IAccessibilityDockingServiceVtbl;
   40606 interface IAccessibilityDockingService {
   40607     CONST_VTBL IAccessibilityDockingServiceVtbl* lpVtbl;
   40608 };
   40609 
   40610 #ifdef COBJMACROS
   40611 #ifndef WIDL_C_INLINE_WRAPPERS
   40612 /*** IUnknown methods ***/
   40613 #define IAccessibilityDockingService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   40614 #define IAccessibilityDockingService_AddRef(This) (This)->lpVtbl->AddRef(This)
   40615 #define IAccessibilityDockingService_Release(This) (This)->lpVtbl->Release(This)
   40616 /*** IAccessibilityDockingService methods ***/
   40617 #define IAccessibilityDockingService_GetAvailableSize(This,hMonitor,pcxFixed,pcyMax) (This)->lpVtbl->GetAvailableSize(This,hMonitor,pcxFixed,pcyMax)
   40618 #define IAccessibilityDockingService_DockWindow(This,hwnd,hMonitor,cyRequested,pCallback) (This)->lpVtbl->DockWindow(This,hwnd,hMonitor,cyRequested,pCallback)
   40619 #define IAccessibilityDockingService_UndockWindow(This,hwnd) (This)->lpVtbl->UndockWindow(This,hwnd)
   40620 #else
   40621 /*** IUnknown methods ***/
   40622 static FORCEINLINE HRESULT IAccessibilityDockingService_QueryInterface(IAccessibilityDockingService* This,REFIID riid,void **ppvObject) {
   40623     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   40624 }
   40625 static FORCEINLINE ULONG IAccessibilityDockingService_AddRef(IAccessibilityDockingService* This) {
   40626     return This->lpVtbl->AddRef(This);
   40627 }
   40628 static FORCEINLINE ULONG IAccessibilityDockingService_Release(IAccessibilityDockingService* This) {
   40629     return This->lpVtbl->Release(This);
   40630 }
   40631 /*** IAccessibilityDockingService methods ***/
   40632 static FORCEINLINE HRESULT IAccessibilityDockingService_GetAvailableSize(IAccessibilityDockingService* This,HMONITOR hMonitor,UINT *pcxFixed,UINT *pcyMax) {
   40633     return This->lpVtbl->GetAvailableSize(This,hMonitor,pcxFixed,pcyMax);
   40634 }
   40635 static FORCEINLINE HRESULT IAccessibilityDockingService_DockWindow(IAccessibilityDockingService* This,HWND hwnd,HMONITOR hMonitor,UINT cyRequested,IAccessibilityDockingServiceCallback *pCallback) {
   40636     return This->lpVtbl->DockWindow(This,hwnd,hMonitor,cyRequested,pCallback);
   40637 }
   40638 static FORCEINLINE HRESULT IAccessibilityDockingService_UndockWindow(IAccessibilityDockingService* This,HWND hwnd) {
   40639     return This->lpVtbl->UndockWindow(This,hwnd);
   40640 }
   40641 #endif
   40642 #endif
   40643 
   40644 #endif
   40645 
   40646 HRESULT STDMETHODCALLTYPE IAccessibilityDockingService_GetAvailableSize_Proxy(
   40647     IAccessibilityDockingService* This,
   40648     HMONITOR hMonitor,
   40649     UINT *pcxFixed,
   40650     UINT *pcyMax);
   40651 void __RPC_STUB IAccessibilityDockingService_GetAvailableSize_Stub(
   40652     IRpcStubBuffer* This,
   40653     IRpcChannelBuffer* pRpcChannelBuffer,
   40654     PRPC_MESSAGE pRpcMessage,
   40655     DWORD* pdwStubPhase);
   40656 HRESULT STDMETHODCALLTYPE IAccessibilityDockingService_DockWindow_Proxy(
   40657     IAccessibilityDockingService* This,
   40658     HWND hwnd,
   40659     HMONITOR hMonitor,
   40660     UINT cyRequested,
   40661     IAccessibilityDockingServiceCallback *pCallback);
   40662 void __RPC_STUB IAccessibilityDockingService_DockWindow_Stub(
   40663     IRpcStubBuffer* This,
   40664     IRpcChannelBuffer* pRpcChannelBuffer,
   40665     PRPC_MESSAGE pRpcMessage,
   40666     DWORD* pdwStubPhase);
   40667 HRESULT STDMETHODCALLTYPE IAccessibilityDockingService_UndockWindow_Proxy(
   40668     IAccessibilityDockingService* This,
   40669     HWND hwnd);
   40670 void __RPC_STUB IAccessibilityDockingService_UndockWindow_Stub(
   40671     IRpcStubBuffer* This,
   40672     IRpcChannelBuffer* pRpcChannelBuffer,
   40673     PRPC_MESSAGE pRpcMessage,
   40674     DWORD* pdwStubPhase);
   40675 
   40676 #endif  /* __IAccessibilityDockingService_INTERFACE_DEFINED__ */
   40677 
   40678 
   40679 typedef enum MONITOR_APP_VISIBILITY {
   40680     MAV_UNKNOWN = 0,
   40681     MAV_NO_APP_VISIBLE = 1,
   40682     MAV_APP_VISIBLE = 2
   40683 } MONITOR_APP_VISIBILITY;
   40684 
   40685 /*****************************************************************************
   40686  * IAppVisibilityEvents interface
   40687  */
   40688 #ifndef __IAppVisibilityEvents_INTERFACE_DEFINED__
   40689 #define __IAppVisibilityEvents_INTERFACE_DEFINED__
   40690 
   40691 DEFINE_GUID(IID_IAppVisibilityEvents, 0x6584ce6b, 0x7d82, 0x49c2, 0x89,0xc9, 0xc6,0xbc,0x02,0xba,0x8c,0x38);
   40692 #if defined(__cplusplus) && !defined(CINTERFACE)
   40693 MIDL_INTERFACE("6584ce6b-7d82-49c2-89c9-c6bc02ba8c38")
   40694 IAppVisibilityEvents : public IUnknown
   40695 {
   40696     virtual HRESULT STDMETHODCALLTYPE AppVisibilityOnMonitorChanged(
   40697         HMONITOR hMonitor,
   40698         MONITOR_APP_VISIBILITY previousMode,
   40699         MONITOR_APP_VISIBILITY currentMode) = 0;
   40700 
   40701     virtual HRESULT STDMETHODCALLTYPE LauncherVisibilityChange(
   40702         WINBOOL currentVisibleState) = 0;
   40703 
   40704 };
   40705 #ifdef __CRT_UUID_DECL
   40706 __CRT_UUID_DECL(IAppVisibilityEvents, 0x6584ce6b, 0x7d82, 0x49c2, 0x89,0xc9, 0xc6,0xbc,0x02,0xba,0x8c,0x38)
   40707 #endif
   40708 #else
   40709 typedef struct IAppVisibilityEventsVtbl {
   40710     BEGIN_INTERFACE
   40711 
   40712     /*** IUnknown methods ***/
   40713     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   40714         IAppVisibilityEvents* This,
   40715         REFIID riid,
   40716         void **ppvObject);
   40717 
   40718     ULONG (STDMETHODCALLTYPE *AddRef)(
   40719         IAppVisibilityEvents* This);
   40720 
   40721     ULONG (STDMETHODCALLTYPE *Release)(
   40722         IAppVisibilityEvents* This);
   40723 
   40724     /*** IAppVisibilityEvents methods ***/
   40725     HRESULT (STDMETHODCALLTYPE *AppVisibilityOnMonitorChanged)(
   40726         IAppVisibilityEvents* This,
   40727         HMONITOR hMonitor,
   40728         MONITOR_APP_VISIBILITY previousMode,
   40729         MONITOR_APP_VISIBILITY currentMode);
   40730 
   40731     HRESULT (STDMETHODCALLTYPE *LauncherVisibilityChange)(
   40732         IAppVisibilityEvents* This,
   40733         WINBOOL currentVisibleState);
   40734 
   40735     END_INTERFACE
   40736 } IAppVisibilityEventsVtbl;
   40737 interface IAppVisibilityEvents {
   40738     CONST_VTBL IAppVisibilityEventsVtbl* lpVtbl;
   40739 };
   40740 
   40741 #ifdef COBJMACROS
   40742 #ifndef WIDL_C_INLINE_WRAPPERS
   40743 /*** IUnknown methods ***/
   40744 #define IAppVisibilityEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   40745 #define IAppVisibilityEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
   40746 #define IAppVisibilityEvents_Release(This) (This)->lpVtbl->Release(This)
   40747 /*** IAppVisibilityEvents methods ***/
   40748 #define IAppVisibilityEvents_AppVisibilityOnMonitorChanged(This,hMonitor,previousMode,currentMode) (This)->lpVtbl->AppVisibilityOnMonitorChanged(This,hMonitor,previousMode,currentMode)
   40749 #define IAppVisibilityEvents_LauncherVisibilityChange(This,currentVisibleState) (This)->lpVtbl->LauncherVisibilityChange(This,currentVisibleState)
   40750 #else
   40751 /*** IUnknown methods ***/
   40752 static FORCEINLINE HRESULT IAppVisibilityEvents_QueryInterface(IAppVisibilityEvents* This,REFIID riid,void **ppvObject) {
   40753     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   40754 }
   40755 static FORCEINLINE ULONG IAppVisibilityEvents_AddRef(IAppVisibilityEvents* This) {
   40756     return This->lpVtbl->AddRef(This);
   40757 }
   40758 static FORCEINLINE ULONG IAppVisibilityEvents_Release(IAppVisibilityEvents* This) {
   40759     return This->lpVtbl->Release(This);
   40760 }
   40761 /*** IAppVisibilityEvents methods ***/
   40762 static FORCEINLINE HRESULT IAppVisibilityEvents_AppVisibilityOnMonitorChanged(IAppVisibilityEvents* This,HMONITOR hMonitor,MONITOR_APP_VISIBILITY previousMode,MONITOR_APP_VISIBILITY currentMode) {
   40763     return This->lpVtbl->AppVisibilityOnMonitorChanged(This,hMonitor,previousMode,currentMode);
   40764 }
   40765 static FORCEINLINE HRESULT IAppVisibilityEvents_LauncherVisibilityChange(IAppVisibilityEvents* This,WINBOOL currentVisibleState) {
   40766     return This->lpVtbl->LauncherVisibilityChange(This,currentVisibleState);
   40767 }
   40768 #endif
   40769 #endif
   40770 
   40771 #endif
   40772 
   40773 HRESULT STDMETHODCALLTYPE IAppVisibilityEvents_AppVisibilityOnMonitorChanged_Proxy(
   40774     IAppVisibilityEvents* This,
   40775     HMONITOR hMonitor,
   40776     MONITOR_APP_VISIBILITY previousMode,
   40777     MONITOR_APP_VISIBILITY currentMode);
   40778 void __RPC_STUB IAppVisibilityEvents_AppVisibilityOnMonitorChanged_Stub(
   40779     IRpcStubBuffer* This,
   40780     IRpcChannelBuffer* pRpcChannelBuffer,
   40781     PRPC_MESSAGE pRpcMessage,
   40782     DWORD* pdwStubPhase);
   40783 HRESULT STDMETHODCALLTYPE IAppVisibilityEvents_LauncherVisibilityChange_Proxy(
   40784     IAppVisibilityEvents* This,
   40785     WINBOOL currentVisibleState);
   40786 void __RPC_STUB IAppVisibilityEvents_LauncherVisibilityChange_Stub(
   40787     IRpcStubBuffer* This,
   40788     IRpcChannelBuffer* pRpcChannelBuffer,
   40789     PRPC_MESSAGE pRpcMessage,
   40790     DWORD* pdwStubPhase);
   40791 
   40792 #endif  /* __IAppVisibilityEvents_INTERFACE_DEFINED__ */
   40793 
   40794 
   40795 /*****************************************************************************
   40796  * IAppVisibility interface
   40797  */
   40798 #ifndef __IAppVisibility_INTERFACE_DEFINED__
   40799 #define __IAppVisibility_INTERFACE_DEFINED__
   40800 
   40801 DEFINE_GUID(IID_IAppVisibility, 0x2246ea2d, 0xcaea, 0x4444, 0xa3,0xc4, 0x6d,0xe8,0x27,0xe4,0x43,0x13);
   40802 #if defined(__cplusplus) && !defined(CINTERFACE)
   40803 MIDL_INTERFACE("2246ea2d-caea-4444-a3c4-6de827e44313")
   40804 IAppVisibility : public IUnknown
   40805 {
   40806     virtual HRESULT STDMETHODCALLTYPE GetAppVisibilityOnMonitor(
   40807         HMONITOR hMonitor,
   40808         MONITOR_APP_VISIBILITY *pMode) = 0;
   40809 
   40810     virtual HRESULT STDMETHODCALLTYPE IsLauncherVisible(
   40811         WINBOOL *pfVisible) = 0;
   40812 
   40813     virtual HRESULT STDMETHODCALLTYPE Advise(
   40814         IAppVisibilityEvents *pCallback,
   40815         DWORD *pdwCookie) = 0;
   40816 
   40817     virtual HRESULT STDMETHODCALLTYPE Unadvise(
   40818         DWORD dwCookie) = 0;
   40819 
   40820 };
   40821 #ifdef __CRT_UUID_DECL
   40822 __CRT_UUID_DECL(IAppVisibility, 0x2246ea2d, 0xcaea, 0x4444, 0xa3,0xc4, 0x6d,0xe8,0x27,0xe4,0x43,0x13)
   40823 #endif
   40824 #else
   40825 typedef struct IAppVisibilityVtbl {
   40826     BEGIN_INTERFACE
   40827 
   40828     /*** IUnknown methods ***/
   40829     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   40830         IAppVisibility* This,
   40831         REFIID riid,
   40832         void **ppvObject);
   40833 
   40834     ULONG (STDMETHODCALLTYPE *AddRef)(
   40835         IAppVisibility* This);
   40836 
   40837     ULONG (STDMETHODCALLTYPE *Release)(
   40838         IAppVisibility* This);
   40839 
   40840     /*** IAppVisibility methods ***/
   40841     HRESULT (STDMETHODCALLTYPE *GetAppVisibilityOnMonitor)(
   40842         IAppVisibility* This,
   40843         HMONITOR hMonitor,
   40844         MONITOR_APP_VISIBILITY *pMode);
   40845 
   40846     HRESULT (STDMETHODCALLTYPE *IsLauncherVisible)(
   40847         IAppVisibility* This,
   40848         WINBOOL *pfVisible);
   40849 
   40850     HRESULT (STDMETHODCALLTYPE *Advise)(
   40851         IAppVisibility* This,
   40852         IAppVisibilityEvents *pCallback,
   40853         DWORD *pdwCookie);
   40854 
   40855     HRESULT (STDMETHODCALLTYPE *Unadvise)(
   40856         IAppVisibility* This,
   40857         DWORD dwCookie);
   40858 
   40859     END_INTERFACE
   40860 } IAppVisibilityVtbl;
   40861 interface IAppVisibility {
   40862     CONST_VTBL IAppVisibilityVtbl* lpVtbl;
   40863 };
   40864 
   40865 #ifdef COBJMACROS
   40866 #ifndef WIDL_C_INLINE_WRAPPERS
   40867 /*** IUnknown methods ***/
   40868 #define IAppVisibility_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   40869 #define IAppVisibility_AddRef(This) (This)->lpVtbl->AddRef(This)
   40870 #define IAppVisibility_Release(This) (This)->lpVtbl->Release(This)
   40871 /*** IAppVisibility methods ***/
   40872 #define IAppVisibility_GetAppVisibilityOnMonitor(This,hMonitor,pMode) (This)->lpVtbl->GetAppVisibilityOnMonitor(This,hMonitor,pMode)
   40873 #define IAppVisibility_IsLauncherVisible(This,pfVisible) (This)->lpVtbl->IsLauncherVisible(This,pfVisible)
   40874 #define IAppVisibility_Advise(This,pCallback,pdwCookie) (This)->lpVtbl->Advise(This,pCallback,pdwCookie)
   40875 #define IAppVisibility_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
   40876 #else
   40877 /*** IUnknown methods ***/
   40878 static FORCEINLINE HRESULT IAppVisibility_QueryInterface(IAppVisibility* This,REFIID riid,void **ppvObject) {
   40879     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   40880 }
   40881 static FORCEINLINE ULONG IAppVisibility_AddRef(IAppVisibility* This) {
   40882     return This->lpVtbl->AddRef(This);
   40883 }
   40884 static FORCEINLINE ULONG IAppVisibility_Release(IAppVisibility* This) {
   40885     return This->lpVtbl->Release(This);
   40886 }
   40887 /*** IAppVisibility methods ***/
   40888 static FORCEINLINE HRESULT IAppVisibility_GetAppVisibilityOnMonitor(IAppVisibility* This,HMONITOR hMonitor,MONITOR_APP_VISIBILITY *pMode) {
   40889     return This->lpVtbl->GetAppVisibilityOnMonitor(This,hMonitor,pMode);
   40890 }
   40891 static FORCEINLINE HRESULT IAppVisibility_IsLauncherVisible(IAppVisibility* This,WINBOOL *pfVisible) {
   40892     return This->lpVtbl->IsLauncherVisible(This,pfVisible);
   40893 }
   40894 static FORCEINLINE HRESULT IAppVisibility_Advise(IAppVisibility* This,IAppVisibilityEvents *pCallback,DWORD *pdwCookie) {
   40895     return This->lpVtbl->Advise(This,pCallback,pdwCookie);
   40896 }
   40897 static FORCEINLINE HRESULT IAppVisibility_Unadvise(IAppVisibility* This,DWORD dwCookie) {
   40898     return This->lpVtbl->Unadvise(This,dwCookie);
   40899 }
   40900 #endif
   40901 #endif
   40902 
   40903 #endif
   40904 
   40905 HRESULT STDMETHODCALLTYPE IAppVisibility_GetAppVisibilityOnMonitor_Proxy(
   40906     IAppVisibility* This,
   40907     HMONITOR hMonitor,
   40908     MONITOR_APP_VISIBILITY *pMode);
   40909 void __RPC_STUB IAppVisibility_GetAppVisibilityOnMonitor_Stub(
   40910     IRpcStubBuffer* This,
   40911     IRpcChannelBuffer* pRpcChannelBuffer,
   40912     PRPC_MESSAGE pRpcMessage,
   40913     DWORD* pdwStubPhase);
   40914 HRESULT STDMETHODCALLTYPE IAppVisibility_IsLauncherVisible_Proxy(
   40915     IAppVisibility* This,
   40916     WINBOOL *pfVisible);
   40917 void __RPC_STUB IAppVisibility_IsLauncherVisible_Stub(
   40918     IRpcStubBuffer* This,
   40919     IRpcChannelBuffer* pRpcChannelBuffer,
   40920     PRPC_MESSAGE pRpcMessage,
   40921     DWORD* pdwStubPhase);
   40922 HRESULT STDMETHODCALLTYPE IAppVisibility_Advise_Proxy(
   40923     IAppVisibility* This,
   40924     IAppVisibilityEvents *pCallback,
   40925     DWORD *pdwCookie);
   40926 void __RPC_STUB IAppVisibility_Advise_Stub(
   40927     IRpcStubBuffer* This,
   40928     IRpcChannelBuffer* pRpcChannelBuffer,
   40929     PRPC_MESSAGE pRpcMessage,
   40930     DWORD* pdwStubPhase);
   40931 HRESULT STDMETHODCALLTYPE IAppVisibility_Unadvise_Proxy(
   40932     IAppVisibility* This,
   40933     DWORD dwCookie);
   40934 void __RPC_STUB IAppVisibility_Unadvise_Stub(
   40935     IRpcStubBuffer* This,
   40936     IRpcChannelBuffer* pRpcChannelBuffer,
   40937     PRPC_MESSAGE pRpcMessage,
   40938     DWORD* pdwStubPhase);
   40939 
   40940 #endif  /* __IAppVisibility_INTERFACE_DEFINED__ */
   40941 
   40942 
   40943 #if 0
   40944 typedef WCHAR *PZZWSTR;
   40945 #endif
   40946 
   40947 typedef enum PACKAGE_EXECUTION_STATE {
   40948     PES_UNKNOWN = 0,
   40949     PES_RUNNING = 1,
   40950     PES_SUSPENDING = 2,
   40951     PES_SUSPENDED = 3,
   40952     PES_TERMINATED = 4
   40953 } PACKAGE_EXECUTION_STATE;
   40954 
   40955 /*****************************************************************************
   40956  * IPackageExecutionStateChangeNotification interface
   40957  */
   40958 #ifndef __IPackageExecutionStateChangeNotification_INTERFACE_DEFINED__
   40959 #define __IPackageExecutionStateChangeNotification_INTERFACE_DEFINED__
   40960 
   40961 DEFINE_GUID(IID_IPackageExecutionStateChangeNotification, 0x1bb12a62, 0x2ad8, 0x432b, 0x8c,0xcf, 0x0c,0x2c,0x52,0xaf,0xcd,0x5b);
   40962 #if defined(__cplusplus) && !defined(CINTERFACE)
   40963 MIDL_INTERFACE("1bb12a62-2ad8-432b-8ccf-0c2c52afcd5b")
   40964 IPackageExecutionStateChangeNotification : public IUnknown
   40965 {
   40966     virtual HRESULT STDMETHODCALLTYPE OnStateChanged(
   40967         LPCWSTR pszPackageFullName,
   40968         PACKAGE_EXECUTION_STATE pesNewState) = 0;
   40969 
   40970 };
   40971 #ifdef __CRT_UUID_DECL
   40972 __CRT_UUID_DECL(IPackageExecutionStateChangeNotification, 0x1bb12a62, 0x2ad8, 0x432b, 0x8c,0xcf, 0x0c,0x2c,0x52,0xaf,0xcd,0x5b)
   40973 #endif
   40974 #else
   40975 typedef struct IPackageExecutionStateChangeNotificationVtbl {
   40976     BEGIN_INTERFACE
   40977 
   40978     /*** IUnknown methods ***/
   40979     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   40980         IPackageExecutionStateChangeNotification* This,
   40981         REFIID riid,
   40982         void **ppvObject);
   40983 
   40984     ULONG (STDMETHODCALLTYPE *AddRef)(
   40985         IPackageExecutionStateChangeNotification* This);
   40986 
   40987     ULONG (STDMETHODCALLTYPE *Release)(
   40988         IPackageExecutionStateChangeNotification* This);
   40989 
   40990     /*** IPackageExecutionStateChangeNotification methods ***/
   40991     HRESULT (STDMETHODCALLTYPE *OnStateChanged)(
   40992         IPackageExecutionStateChangeNotification* This,
   40993         LPCWSTR pszPackageFullName,
   40994         PACKAGE_EXECUTION_STATE pesNewState);
   40995 
   40996     END_INTERFACE
   40997 } IPackageExecutionStateChangeNotificationVtbl;
   40998 interface IPackageExecutionStateChangeNotification {
   40999     CONST_VTBL IPackageExecutionStateChangeNotificationVtbl* lpVtbl;
   41000 };
   41001 
   41002 #ifdef COBJMACROS
   41003 #ifndef WIDL_C_INLINE_WRAPPERS
   41004 /*** IUnknown methods ***/
   41005 #define IPackageExecutionStateChangeNotification_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   41006 #define IPackageExecutionStateChangeNotification_AddRef(This) (This)->lpVtbl->AddRef(This)
   41007 #define IPackageExecutionStateChangeNotification_Release(This) (This)->lpVtbl->Release(This)
   41008 /*** IPackageExecutionStateChangeNotification methods ***/
   41009 #define IPackageExecutionStateChangeNotification_OnStateChanged(This,pszPackageFullName,pesNewState) (This)->lpVtbl->OnStateChanged(This,pszPackageFullName,pesNewState)
   41010 #else
   41011 /*** IUnknown methods ***/
   41012 static FORCEINLINE HRESULT IPackageExecutionStateChangeNotification_QueryInterface(IPackageExecutionStateChangeNotification* This,REFIID riid,void **ppvObject) {
   41013     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   41014 }
   41015 static FORCEINLINE ULONG IPackageExecutionStateChangeNotification_AddRef(IPackageExecutionStateChangeNotification* This) {
   41016     return This->lpVtbl->AddRef(This);
   41017 }
   41018 static FORCEINLINE ULONG IPackageExecutionStateChangeNotification_Release(IPackageExecutionStateChangeNotification* This) {
   41019     return This->lpVtbl->Release(This);
   41020 }
   41021 /*** IPackageExecutionStateChangeNotification methods ***/
   41022 static FORCEINLINE HRESULT IPackageExecutionStateChangeNotification_OnStateChanged(IPackageExecutionStateChangeNotification* This,LPCWSTR pszPackageFullName,PACKAGE_EXECUTION_STATE pesNewState) {
   41023     return This->lpVtbl->OnStateChanged(This,pszPackageFullName,pesNewState);
   41024 }
   41025 #endif
   41026 #endif
   41027 
   41028 #endif
   41029 
   41030 HRESULT STDMETHODCALLTYPE IPackageExecutionStateChangeNotification_OnStateChanged_Proxy(
   41031     IPackageExecutionStateChangeNotification* This,
   41032     LPCWSTR pszPackageFullName,
   41033     PACKAGE_EXECUTION_STATE pesNewState);
   41034 void __RPC_STUB IPackageExecutionStateChangeNotification_OnStateChanged_Stub(
   41035     IRpcStubBuffer* This,
   41036     IRpcChannelBuffer* pRpcChannelBuffer,
   41037     PRPC_MESSAGE pRpcMessage,
   41038     DWORD* pdwStubPhase);
   41039 
   41040 #endif  /* __IPackageExecutionStateChangeNotification_INTERFACE_DEFINED__ */
   41041 
   41042 
   41043 /*****************************************************************************
   41044  * IPackageDebugSettings interface
   41045  */
   41046 #ifndef __IPackageDebugSettings_INTERFACE_DEFINED__
   41047 #define __IPackageDebugSettings_INTERFACE_DEFINED__
   41048 
   41049 DEFINE_GUID(IID_IPackageDebugSettings, 0xf27c3930, 0x8029, 0x4ad1, 0x94,0xe3, 0x3d,0xba,0x41,0x78,0x10,0xc1);
   41050 #if defined(__cplusplus) && !defined(CINTERFACE)
   41051 MIDL_INTERFACE("f27c3930-8029-4ad1-94e3-3dba417810c1")
   41052 IPackageDebugSettings : public IUnknown
   41053 {
   41054     virtual HRESULT STDMETHODCALLTYPE EnableDebugging(
   41055         LPCWSTR packageFullName,
   41056         LPCWSTR debuggerCommandLine,
   41057         PZZWSTR environment) = 0;
   41058 
   41059     virtual HRESULT STDMETHODCALLTYPE DisableDebugging(
   41060         LPCWSTR packageFullName) = 0;
   41061 
   41062     virtual HRESULT STDMETHODCALLTYPE Suspend(
   41063         LPCWSTR packageFullName) = 0;
   41064 
   41065     virtual HRESULT STDMETHODCALLTYPE Resume(
   41066         LPCWSTR packageFullName) = 0;
   41067 
   41068     virtual HRESULT STDMETHODCALLTYPE TerminateAllProcesses(
   41069         LPCWSTR packageFullName) = 0;
   41070 
   41071     virtual HRESULT STDMETHODCALLTYPE SetTargetSessionId(
   41072         ULONG sessionId) = 0;
   41073 
   41074     virtual HRESULT STDMETHODCALLTYPE EnumerateBackgroundTasks(
   41075         LPCWSTR packageFullName,
   41076         ULONG *taskCount,
   41077         LPCGUID *taskIds,
   41078         LPCWSTR **taskNames) = 0;
   41079 
   41080     virtual HRESULT STDMETHODCALLTYPE ActivateBackgroundTask(
   41081         LPCGUID taskId) = 0;
   41082 
   41083     virtual HRESULT STDMETHODCALLTYPE StartServicing(
   41084         LPCWSTR packageFullName) = 0;
   41085 
   41086     virtual HRESULT STDMETHODCALLTYPE StopServicing(
   41087         LPCWSTR packageFullName) = 0;
   41088 
   41089     virtual HRESULT STDMETHODCALLTYPE StartSessionRedirection(
   41090         LPCWSTR packageFullName,
   41091         ULONG sessionId) = 0;
   41092 
   41093     virtual HRESULT STDMETHODCALLTYPE StopSessionRedirection(
   41094         LPCWSTR packageFullName) = 0;
   41095 
   41096     virtual HRESULT STDMETHODCALLTYPE GetPackageExecutionState(
   41097         LPCWSTR packageFullName,
   41098         PACKAGE_EXECUTION_STATE *packageExecutionState) = 0;
   41099 
   41100     virtual HRESULT STDMETHODCALLTYPE RegisterForPackageStateChanges(
   41101         LPCWSTR packageFullName,
   41102         IPackageExecutionStateChangeNotification *pPackageExecutionStateChangeNotification,
   41103         DWORD *pdwCookie) = 0;
   41104 
   41105     virtual HRESULT STDMETHODCALLTYPE UnregisterForPackageStateChanges(
   41106         DWORD dwCookie) = 0;
   41107 
   41108 };
   41109 #ifdef __CRT_UUID_DECL
   41110 __CRT_UUID_DECL(IPackageDebugSettings, 0xf27c3930, 0x8029, 0x4ad1, 0x94,0xe3, 0x3d,0xba,0x41,0x78,0x10,0xc1)
   41111 #endif
   41112 #else
   41113 typedef struct IPackageDebugSettingsVtbl {
   41114     BEGIN_INTERFACE
   41115 
   41116     /*** IUnknown methods ***/
   41117     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   41118         IPackageDebugSettings* This,
   41119         REFIID riid,
   41120         void **ppvObject);
   41121 
   41122     ULONG (STDMETHODCALLTYPE *AddRef)(
   41123         IPackageDebugSettings* This);
   41124 
   41125     ULONG (STDMETHODCALLTYPE *Release)(
   41126         IPackageDebugSettings* This);
   41127 
   41128     /*** IPackageDebugSettings methods ***/
   41129     HRESULT (STDMETHODCALLTYPE *EnableDebugging)(
   41130         IPackageDebugSettings* This,
   41131         LPCWSTR packageFullName,
   41132         LPCWSTR debuggerCommandLine,
   41133         PZZWSTR environment);
   41134 
   41135     HRESULT (STDMETHODCALLTYPE *DisableDebugging)(
   41136         IPackageDebugSettings* This,
   41137         LPCWSTR packageFullName);
   41138 
   41139     HRESULT (STDMETHODCALLTYPE *Suspend)(
   41140         IPackageDebugSettings* This,
   41141         LPCWSTR packageFullName);
   41142 
   41143     HRESULT (STDMETHODCALLTYPE *Resume)(
   41144         IPackageDebugSettings* This,
   41145         LPCWSTR packageFullName);
   41146 
   41147     HRESULT (STDMETHODCALLTYPE *TerminateAllProcesses)(
   41148         IPackageDebugSettings* This,
   41149         LPCWSTR packageFullName);
   41150 
   41151     HRESULT (STDMETHODCALLTYPE *SetTargetSessionId)(
   41152         IPackageDebugSettings* This,
   41153         ULONG sessionId);
   41154 
   41155     HRESULT (STDMETHODCALLTYPE *EnumerateBackgroundTasks)(
   41156         IPackageDebugSettings* This,
   41157         LPCWSTR packageFullName,
   41158         ULONG *taskCount,
   41159         LPCGUID *taskIds,
   41160         LPCWSTR **taskNames);
   41161 
   41162     HRESULT (STDMETHODCALLTYPE *ActivateBackgroundTask)(
   41163         IPackageDebugSettings* This,
   41164         LPCGUID taskId);
   41165 
   41166     HRESULT (STDMETHODCALLTYPE *StartServicing)(
   41167         IPackageDebugSettings* This,
   41168         LPCWSTR packageFullName);
   41169 
   41170     HRESULT (STDMETHODCALLTYPE *StopServicing)(
   41171         IPackageDebugSettings* This,
   41172         LPCWSTR packageFullName);
   41173 
   41174     HRESULT (STDMETHODCALLTYPE *StartSessionRedirection)(
   41175         IPackageDebugSettings* This,
   41176         LPCWSTR packageFullName,
   41177         ULONG sessionId);
   41178 
   41179     HRESULT (STDMETHODCALLTYPE *StopSessionRedirection)(
   41180         IPackageDebugSettings* This,
   41181         LPCWSTR packageFullName);
   41182 
   41183     HRESULT (STDMETHODCALLTYPE *GetPackageExecutionState)(
   41184         IPackageDebugSettings* This,
   41185         LPCWSTR packageFullName,
   41186         PACKAGE_EXECUTION_STATE *packageExecutionState);
   41187 
   41188     HRESULT (STDMETHODCALLTYPE *RegisterForPackageStateChanges)(
   41189         IPackageDebugSettings* This,
   41190         LPCWSTR packageFullName,
   41191         IPackageExecutionStateChangeNotification *pPackageExecutionStateChangeNotification,
   41192         DWORD *pdwCookie);
   41193 
   41194     HRESULT (STDMETHODCALLTYPE *UnregisterForPackageStateChanges)(
   41195         IPackageDebugSettings* This,
   41196         DWORD dwCookie);
   41197 
   41198     END_INTERFACE
   41199 } IPackageDebugSettingsVtbl;
   41200 interface IPackageDebugSettings {
   41201     CONST_VTBL IPackageDebugSettingsVtbl* lpVtbl;
   41202 };
   41203 
   41204 #ifdef COBJMACROS
   41205 #ifndef WIDL_C_INLINE_WRAPPERS
   41206 /*** IUnknown methods ***/
   41207 #define IPackageDebugSettings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   41208 #define IPackageDebugSettings_AddRef(This) (This)->lpVtbl->AddRef(This)
   41209 #define IPackageDebugSettings_Release(This) (This)->lpVtbl->Release(This)
   41210 /*** IPackageDebugSettings methods ***/
   41211 #define IPackageDebugSettings_EnableDebugging(This,packageFullName,debuggerCommandLine,environment) (This)->lpVtbl->EnableDebugging(This,packageFullName,debuggerCommandLine,environment)
   41212 #define IPackageDebugSettings_DisableDebugging(This,packageFullName) (This)->lpVtbl->DisableDebugging(This,packageFullName)
   41213 #define IPackageDebugSettings_Suspend(This,packageFullName) (This)->lpVtbl->Suspend(This,packageFullName)
   41214 #define IPackageDebugSettings_Resume(This,packageFullName) (This)->lpVtbl->Resume(This,packageFullName)
   41215 #define IPackageDebugSettings_TerminateAllProcesses(This,packageFullName) (This)->lpVtbl->TerminateAllProcesses(This,packageFullName)
   41216 #define IPackageDebugSettings_SetTargetSessionId(This,sessionId) (This)->lpVtbl->SetTargetSessionId(This,sessionId)
   41217 #define IPackageDebugSettings_EnumerateBackgroundTasks(This,packageFullName,taskCount,taskIds,taskNames) (This)->lpVtbl->EnumerateBackgroundTasks(This,packageFullName,taskCount,taskIds,taskNames)
   41218 #define IPackageDebugSettings_ActivateBackgroundTask(This,taskId) (This)->lpVtbl->ActivateBackgroundTask(This,taskId)
   41219 #define IPackageDebugSettings_StartServicing(This,packageFullName) (This)->lpVtbl->StartServicing(This,packageFullName)
   41220 #define IPackageDebugSettings_StopServicing(This,packageFullName) (This)->lpVtbl->StopServicing(This,packageFullName)
   41221 #define IPackageDebugSettings_StartSessionRedirection(This,packageFullName,sessionId) (This)->lpVtbl->StartSessionRedirection(This,packageFullName,sessionId)
   41222 #define IPackageDebugSettings_StopSessionRedirection(This,packageFullName) (This)->lpVtbl->StopSessionRedirection(This,packageFullName)
   41223 #define IPackageDebugSettings_GetPackageExecutionState(This,packageFullName,packageExecutionState) (This)->lpVtbl->GetPackageExecutionState(This,packageFullName,packageExecutionState)
   41224 #define IPackageDebugSettings_RegisterForPackageStateChanges(This,packageFullName,pPackageExecutionStateChangeNotification,pdwCookie) (This)->lpVtbl->RegisterForPackageStateChanges(This,packageFullName,pPackageExecutionStateChangeNotification,pdwCookie)
   41225 #define IPackageDebugSettings_UnregisterForPackageStateChanges(This,dwCookie) (This)->lpVtbl->UnregisterForPackageStateChanges(This,dwCookie)
   41226 #else
   41227 /*** IUnknown methods ***/
   41228 static FORCEINLINE HRESULT IPackageDebugSettings_QueryInterface(IPackageDebugSettings* This,REFIID riid,void **ppvObject) {
   41229     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   41230 }
   41231 static FORCEINLINE ULONG IPackageDebugSettings_AddRef(IPackageDebugSettings* This) {
   41232     return This->lpVtbl->AddRef(This);
   41233 }
   41234 static FORCEINLINE ULONG IPackageDebugSettings_Release(IPackageDebugSettings* This) {
   41235     return This->lpVtbl->Release(This);
   41236 }
   41237 /*** IPackageDebugSettings methods ***/
   41238 static FORCEINLINE HRESULT IPackageDebugSettings_EnableDebugging(IPackageDebugSettings* This,LPCWSTR packageFullName,LPCWSTR debuggerCommandLine,PZZWSTR environment) {
   41239     return This->lpVtbl->EnableDebugging(This,packageFullName,debuggerCommandLine,environment);
   41240 }
   41241 static FORCEINLINE HRESULT IPackageDebugSettings_DisableDebugging(IPackageDebugSettings* This,LPCWSTR packageFullName) {
   41242     return This->lpVtbl->DisableDebugging(This,packageFullName);
   41243 }
   41244 static FORCEINLINE HRESULT IPackageDebugSettings_Suspend(IPackageDebugSettings* This,LPCWSTR packageFullName) {
   41245     return This->lpVtbl->Suspend(This,packageFullName);
   41246 }
   41247 static FORCEINLINE HRESULT IPackageDebugSettings_Resume(IPackageDebugSettings* This,LPCWSTR packageFullName) {
   41248     return This->lpVtbl->Resume(This,packageFullName);
   41249 }
   41250 static FORCEINLINE HRESULT IPackageDebugSettings_TerminateAllProcesses(IPackageDebugSettings* This,LPCWSTR packageFullName) {
   41251     return This->lpVtbl->TerminateAllProcesses(This,packageFullName);
   41252 }
   41253 static FORCEINLINE HRESULT IPackageDebugSettings_SetTargetSessionId(IPackageDebugSettings* This,ULONG sessionId) {
   41254     return This->lpVtbl->SetTargetSessionId(This,sessionId);
   41255 }
   41256 static FORCEINLINE HRESULT IPackageDebugSettings_EnumerateBackgroundTasks(IPackageDebugSettings* This,LPCWSTR packageFullName,ULONG *taskCount,LPCGUID *taskIds,LPCWSTR **taskNames) {
   41257     return This->lpVtbl->EnumerateBackgroundTasks(This,packageFullName,taskCount,taskIds,taskNames);
   41258 }
   41259 static FORCEINLINE HRESULT IPackageDebugSettings_ActivateBackgroundTask(IPackageDebugSettings* This,LPCGUID taskId) {
   41260     return This->lpVtbl->ActivateBackgroundTask(This,taskId);
   41261 }
   41262 static FORCEINLINE HRESULT IPackageDebugSettings_StartServicing(IPackageDebugSettings* This,LPCWSTR packageFullName) {
   41263     return This->lpVtbl->StartServicing(This,packageFullName);
   41264 }
   41265 static FORCEINLINE HRESULT IPackageDebugSettings_StopServicing(IPackageDebugSettings* This,LPCWSTR packageFullName) {
   41266     return This->lpVtbl->StopServicing(This,packageFullName);
   41267 }
   41268 static FORCEINLINE HRESULT IPackageDebugSettings_StartSessionRedirection(IPackageDebugSettings* This,LPCWSTR packageFullName,ULONG sessionId) {
   41269     return This->lpVtbl->StartSessionRedirection(This,packageFullName,sessionId);
   41270 }
   41271 static FORCEINLINE HRESULT IPackageDebugSettings_StopSessionRedirection(IPackageDebugSettings* This,LPCWSTR packageFullName) {
   41272     return This->lpVtbl->StopSessionRedirection(This,packageFullName);
   41273 }
   41274 static FORCEINLINE HRESULT IPackageDebugSettings_GetPackageExecutionState(IPackageDebugSettings* This,LPCWSTR packageFullName,PACKAGE_EXECUTION_STATE *packageExecutionState) {
   41275     return This->lpVtbl->GetPackageExecutionState(This,packageFullName,packageExecutionState);
   41276 }
   41277 static FORCEINLINE HRESULT IPackageDebugSettings_RegisterForPackageStateChanges(IPackageDebugSettings* This,LPCWSTR packageFullName,IPackageExecutionStateChangeNotification *pPackageExecutionStateChangeNotification,DWORD *pdwCookie) {
   41278     return This->lpVtbl->RegisterForPackageStateChanges(This,packageFullName,pPackageExecutionStateChangeNotification,pdwCookie);
   41279 }
   41280 static FORCEINLINE HRESULT IPackageDebugSettings_UnregisterForPackageStateChanges(IPackageDebugSettings* This,DWORD dwCookie) {
   41281     return This->lpVtbl->UnregisterForPackageStateChanges(This,dwCookie);
   41282 }
   41283 #endif
   41284 #endif
   41285 
   41286 #endif
   41287 
   41288 HRESULT STDMETHODCALLTYPE IPackageDebugSettings_EnableDebugging_Proxy(
   41289     IPackageDebugSettings* This,
   41290     LPCWSTR packageFullName,
   41291     LPCWSTR debuggerCommandLine,
   41292     PZZWSTR environment);
   41293 void __RPC_STUB IPackageDebugSettings_EnableDebugging_Stub(
   41294     IRpcStubBuffer* This,
   41295     IRpcChannelBuffer* pRpcChannelBuffer,
   41296     PRPC_MESSAGE pRpcMessage,
   41297     DWORD* pdwStubPhase);
   41298 HRESULT STDMETHODCALLTYPE IPackageDebugSettings_DisableDebugging_Proxy(
   41299     IPackageDebugSettings* This,
   41300     LPCWSTR packageFullName);
   41301 void __RPC_STUB IPackageDebugSettings_DisableDebugging_Stub(
   41302     IRpcStubBuffer* This,
   41303     IRpcChannelBuffer* pRpcChannelBuffer,
   41304     PRPC_MESSAGE pRpcMessage,
   41305     DWORD* pdwStubPhase);
   41306 HRESULT STDMETHODCALLTYPE IPackageDebugSettings_Suspend_Proxy(
   41307     IPackageDebugSettings* This,
   41308     LPCWSTR packageFullName);
   41309 void __RPC_STUB IPackageDebugSettings_Suspend_Stub(
   41310     IRpcStubBuffer* This,
   41311     IRpcChannelBuffer* pRpcChannelBuffer,
   41312     PRPC_MESSAGE pRpcMessage,
   41313     DWORD* pdwStubPhase);
   41314 HRESULT STDMETHODCALLTYPE IPackageDebugSettings_Resume_Proxy(
   41315     IPackageDebugSettings* This,
   41316     LPCWSTR packageFullName);
   41317 void __RPC_STUB IPackageDebugSettings_Resume_Stub(
   41318     IRpcStubBuffer* This,
   41319     IRpcChannelBuffer* pRpcChannelBuffer,
   41320     PRPC_MESSAGE pRpcMessage,
   41321     DWORD* pdwStubPhase);
   41322 HRESULT STDMETHODCALLTYPE IPackageDebugSettings_TerminateAllProcesses_Proxy(
   41323     IPackageDebugSettings* This,
   41324     LPCWSTR packageFullName);
   41325 void __RPC_STUB IPackageDebugSettings_TerminateAllProcesses_Stub(
   41326     IRpcStubBuffer* This,
   41327     IRpcChannelBuffer* pRpcChannelBuffer,
   41328     PRPC_MESSAGE pRpcMessage,
   41329     DWORD* pdwStubPhase);
   41330 HRESULT STDMETHODCALLTYPE IPackageDebugSettings_SetTargetSessionId_Proxy(
   41331     IPackageDebugSettings* This,
   41332     ULONG sessionId);
   41333 void __RPC_STUB IPackageDebugSettings_SetTargetSessionId_Stub(
   41334     IRpcStubBuffer* This,
   41335     IRpcChannelBuffer* pRpcChannelBuffer,
   41336     PRPC_MESSAGE pRpcMessage,
   41337     DWORD* pdwStubPhase);
   41338 HRESULT STDMETHODCALLTYPE IPackageDebugSettings_EnumerateBackgroundTasks_Proxy(
   41339     IPackageDebugSettings* This,
   41340     LPCWSTR packageFullName,
   41341     ULONG *taskCount,
   41342     LPCGUID *taskIds,
   41343     LPCWSTR **taskNames);
   41344 void __RPC_STUB IPackageDebugSettings_EnumerateBackgroundTasks_Stub(
   41345     IRpcStubBuffer* This,
   41346     IRpcChannelBuffer* pRpcChannelBuffer,
   41347     PRPC_MESSAGE pRpcMessage,
   41348     DWORD* pdwStubPhase);
   41349 HRESULT STDMETHODCALLTYPE IPackageDebugSettings_ActivateBackgroundTask_Proxy(
   41350     IPackageDebugSettings* This,
   41351     LPCGUID taskId);
   41352 void __RPC_STUB IPackageDebugSettings_ActivateBackgroundTask_Stub(
   41353     IRpcStubBuffer* This,
   41354     IRpcChannelBuffer* pRpcChannelBuffer,
   41355     PRPC_MESSAGE pRpcMessage,
   41356     DWORD* pdwStubPhase);
   41357 HRESULT STDMETHODCALLTYPE IPackageDebugSettings_StartServicing_Proxy(
   41358     IPackageDebugSettings* This,
   41359     LPCWSTR packageFullName);
   41360 void __RPC_STUB IPackageDebugSettings_StartServicing_Stub(
   41361     IRpcStubBuffer* This,
   41362     IRpcChannelBuffer* pRpcChannelBuffer,
   41363     PRPC_MESSAGE pRpcMessage,
   41364     DWORD* pdwStubPhase);
   41365 HRESULT STDMETHODCALLTYPE IPackageDebugSettings_StopServicing_Proxy(
   41366     IPackageDebugSettings* This,
   41367     LPCWSTR packageFullName);
   41368 void __RPC_STUB IPackageDebugSettings_StopServicing_Stub(
   41369     IRpcStubBuffer* This,
   41370     IRpcChannelBuffer* pRpcChannelBuffer,
   41371     PRPC_MESSAGE pRpcMessage,
   41372     DWORD* pdwStubPhase);
   41373 HRESULT STDMETHODCALLTYPE IPackageDebugSettings_StartSessionRedirection_Proxy(
   41374     IPackageDebugSettings* This,
   41375     LPCWSTR packageFullName,
   41376     ULONG sessionId);
   41377 void __RPC_STUB IPackageDebugSettings_StartSessionRedirection_Stub(
   41378     IRpcStubBuffer* This,
   41379     IRpcChannelBuffer* pRpcChannelBuffer,
   41380     PRPC_MESSAGE pRpcMessage,
   41381     DWORD* pdwStubPhase);
   41382 HRESULT STDMETHODCALLTYPE IPackageDebugSettings_StopSessionRedirection_Proxy(
   41383     IPackageDebugSettings* This,
   41384     LPCWSTR packageFullName);
   41385 void __RPC_STUB IPackageDebugSettings_StopSessionRedirection_Stub(
   41386     IRpcStubBuffer* This,
   41387     IRpcChannelBuffer* pRpcChannelBuffer,
   41388     PRPC_MESSAGE pRpcMessage,
   41389     DWORD* pdwStubPhase);
   41390 HRESULT STDMETHODCALLTYPE IPackageDebugSettings_GetPackageExecutionState_Proxy(
   41391     IPackageDebugSettings* This,
   41392     LPCWSTR packageFullName,
   41393     PACKAGE_EXECUTION_STATE *packageExecutionState);
   41394 void __RPC_STUB IPackageDebugSettings_GetPackageExecutionState_Stub(
   41395     IRpcStubBuffer* This,
   41396     IRpcChannelBuffer* pRpcChannelBuffer,
   41397     PRPC_MESSAGE pRpcMessage,
   41398     DWORD* pdwStubPhase);
   41399 HRESULT STDMETHODCALLTYPE IPackageDebugSettings_RegisterForPackageStateChanges_Proxy(
   41400     IPackageDebugSettings* This,
   41401     LPCWSTR packageFullName,
   41402     IPackageExecutionStateChangeNotification *pPackageExecutionStateChangeNotification,
   41403     DWORD *pdwCookie);
   41404 void __RPC_STUB IPackageDebugSettings_RegisterForPackageStateChanges_Stub(
   41405     IRpcStubBuffer* This,
   41406     IRpcChannelBuffer* pRpcChannelBuffer,
   41407     PRPC_MESSAGE pRpcMessage,
   41408     DWORD* pdwStubPhase);
   41409 HRESULT STDMETHODCALLTYPE IPackageDebugSettings_UnregisterForPackageStateChanges_Proxy(
   41410     IPackageDebugSettings* This,
   41411     DWORD dwCookie);
   41412 void __RPC_STUB IPackageDebugSettings_UnregisterForPackageStateChanges_Stub(
   41413     IRpcStubBuffer* This,
   41414     IRpcChannelBuffer* pRpcChannelBuffer,
   41415     PRPC_MESSAGE pRpcMessage,
   41416     DWORD* pdwStubPhase);
   41417 
   41418 #endif  /* __IPackageDebugSettings_INTERFACE_DEFINED__ */
   41419 
   41420 
   41421 typedef enum AHE_TYPE {
   41422     AHE_DESKTOP = 0,
   41423     AHE_IMMERSIVE = 1
   41424 } AHE_TYPE;
   41425 
   41426 /*****************************************************************************
   41427  * IExecuteCommandApplicationHostEnvironment interface
   41428  */
   41429 #ifndef __IExecuteCommandApplicationHostEnvironment_INTERFACE_DEFINED__
   41430 #define __IExecuteCommandApplicationHostEnvironment_INTERFACE_DEFINED__
   41431 
   41432 DEFINE_GUID(IID_IExecuteCommandApplicationHostEnvironment, 0x18b21aa9, 0xe184, 0x4ff0, 0x9f,0x5e, 0xf8,0x82,0xd0,0x37,0x71,0xb3);
   41433 #if defined(__cplusplus) && !defined(CINTERFACE)
   41434 MIDL_INTERFACE("18b21aa9-e184-4ff0-9f5e-f882d03771b3")
   41435 IExecuteCommandApplicationHostEnvironment : public IUnknown
   41436 {
   41437     virtual HRESULT STDMETHODCALLTYPE GetValue(
   41438         AHE_TYPE *pahe) = 0;
   41439 
   41440 };
   41441 #ifdef __CRT_UUID_DECL
   41442 __CRT_UUID_DECL(IExecuteCommandApplicationHostEnvironment, 0x18b21aa9, 0xe184, 0x4ff0, 0x9f,0x5e, 0xf8,0x82,0xd0,0x37,0x71,0xb3)
   41443 #endif
   41444 #else
   41445 typedef struct IExecuteCommandApplicationHostEnvironmentVtbl {
   41446     BEGIN_INTERFACE
   41447 
   41448     /*** IUnknown methods ***/
   41449     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   41450         IExecuteCommandApplicationHostEnvironment* This,
   41451         REFIID riid,
   41452         void **ppvObject);
   41453 
   41454     ULONG (STDMETHODCALLTYPE *AddRef)(
   41455         IExecuteCommandApplicationHostEnvironment* This);
   41456 
   41457     ULONG (STDMETHODCALLTYPE *Release)(
   41458         IExecuteCommandApplicationHostEnvironment* This);
   41459 
   41460     /*** IExecuteCommandApplicationHostEnvironment methods ***/
   41461     HRESULT (STDMETHODCALLTYPE *GetValue)(
   41462         IExecuteCommandApplicationHostEnvironment* This,
   41463         AHE_TYPE *pahe);
   41464 
   41465     END_INTERFACE
   41466 } IExecuteCommandApplicationHostEnvironmentVtbl;
   41467 interface IExecuteCommandApplicationHostEnvironment {
   41468     CONST_VTBL IExecuteCommandApplicationHostEnvironmentVtbl* lpVtbl;
   41469 };
   41470 
   41471 #ifdef COBJMACROS
   41472 #ifndef WIDL_C_INLINE_WRAPPERS
   41473 /*** IUnknown methods ***/
   41474 #define IExecuteCommandApplicationHostEnvironment_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   41475 #define IExecuteCommandApplicationHostEnvironment_AddRef(This) (This)->lpVtbl->AddRef(This)
   41476 #define IExecuteCommandApplicationHostEnvironment_Release(This) (This)->lpVtbl->Release(This)
   41477 /*** IExecuteCommandApplicationHostEnvironment methods ***/
   41478 #define IExecuteCommandApplicationHostEnvironment_GetValue(This,pahe) (This)->lpVtbl->GetValue(This,pahe)
   41479 #else
   41480 /*** IUnknown methods ***/
   41481 static FORCEINLINE HRESULT IExecuteCommandApplicationHostEnvironment_QueryInterface(IExecuteCommandApplicationHostEnvironment* This,REFIID riid,void **ppvObject) {
   41482     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   41483 }
   41484 static FORCEINLINE ULONG IExecuteCommandApplicationHostEnvironment_AddRef(IExecuteCommandApplicationHostEnvironment* This) {
   41485     return This->lpVtbl->AddRef(This);
   41486 }
   41487 static FORCEINLINE ULONG IExecuteCommandApplicationHostEnvironment_Release(IExecuteCommandApplicationHostEnvironment* This) {
   41488     return This->lpVtbl->Release(This);
   41489 }
   41490 /*** IExecuteCommandApplicationHostEnvironment methods ***/
   41491 static FORCEINLINE HRESULT IExecuteCommandApplicationHostEnvironment_GetValue(IExecuteCommandApplicationHostEnvironment* This,AHE_TYPE *pahe) {
   41492     return This->lpVtbl->GetValue(This,pahe);
   41493 }
   41494 #endif
   41495 #endif
   41496 
   41497 #endif
   41498 
   41499 HRESULT STDMETHODCALLTYPE IExecuteCommandApplicationHostEnvironment_GetValue_Proxy(
   41500     IExecuteCommandApplicationHostEnvironment* This,
   41501     AHE_TYPE *pahe);
   41502 void __RPC_STUB IExecuteCommandApplicationHostEnvironment_GetValue_Stub(
   41503     IRpcStubBuffer* This,
   41504     IRpcChannelBuffer* pRpcChannelBuffer,
   41505     PRPC_MESSAGE pRpcMessage,
   41506     DWORD* pdwStubPhase);
   41507 
   41508 #endif  /* __IExecuteCommandApplicationHostEnvironment_INTERFACE_DEFINED__ */
   41509 
   41510 
   41511 typedef enum EC_HOST_UI_MODE {
   41512     ECHUIM_DESKTOP = 0,
   41513     ECHUIM_IMMERSIVE = 1,
   41514     ECHUIM_SYSTEM_LAUNCHER = 2
   41515 } EC_HOST_UI_MODE;
   41516 
   41517 /*****************************************************************************
   41518  * IExecuteCommandHost interface
   41519  */
   41520 #ifndef __IExecuteCommandHost_INTERFACE_DEFINED__
   41521 #define __IExecuteCommandHost_INTERFACE_DEFINED__
   41522 
   41523 DEFINE_GUID(IID_IExecuteCommandHost, 0x4b6832a2, 0x5f04, 0x4c9d, 0xb8,0x9d, 0x72,0x7a,0x15,0xd1,0x03,0xe7);
   41524 #if defined(__cplusplus) && !defined(CINTERFACE)
   41525 MIDL_INTERFACE("4b6832a2-5f04-4c9d-b89d-727a15d103e7")
   41526 IExecuteCommandHost : public IUnknown
   41527 {
   41528     virtual HRESULT STDMETHODCALLTYPE GetUIMode(
   41529         EC_HOST_UI_MODE *pUIMode) = 0;
   41530 
   41531 };
   41532 #ifdef __CRT_UUID_DECL
   41533 __CRT_UUID_DECL(IExecuteCommandHost, 0x4b6832a2, 0x5f04, 0x4c9d, 0xb8,0x9d, 0x72,0x7a,0x15,0xd1,0x03,0xe7)
   41534 #endif
   41535 #else
   41536 typedef struct IExecuteCommandHostVtbl {
   41537     BEGIN_INTERFACE
   41538 
   41539     /*** IUnknown methods ***/
   41540     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   41541         IExecuteCommandHost* This,
   41542         REFIID riid,
   41543         void **ppvObject);
   41544 
   41545     ULONG (STDMETHODCALLTYPE *AddRef)(
   41546         IExecuteCommandHost* This);
   41547 
   41548     ULONG (STDMETHODCALLTYPE *Release)(
   41549         IExecuteCommandHost* This);
   41550 
   41551     /*** IExecuteCommandHost methods ***/
   41552     HRESULT (STDMETHODCALLTYPE *GetUIMode)(
   41553         IExecuteCommandHost* This,
   41554         EC_HOST_UI_MODE *pUIMode);
   41555 
   41556     END_INTERFACE
   41557 } IExecuteCommandHostVtbl;
   41558 interface IExecuteCommandHost {
   41559     CONST_VTBL IExecuteCommandHostVtbl* lpVtbl;
   41560 };
   41561 
   41562 #ifdef COBJMACROS
   41563 #ifndef WIDL_C_INLINE_WRAPPERS
   41564 /*** IUnknown methods ***/
   41565 #define IExecuteCommandHost_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   41566 #define IExecuteCommandHost_AddRef(This) (This)->lpVtbl->AddRef(This)
   41567 #define IExecuteCommandHost_Release(This) (This)->lpVtbl->Release(This)
   41568 /*** IExecuteCommandHost methods ***/
   41569 #define IExecuteCommandHost_GetUIMode(This,pUIMode) (This)->lpVtbl->GetUIMode(This,pUIMode)
   41570 #else
   41571 /*** IUnknown methods ***/
   41572 static FORCEINLINE HRESULT IExecuteCommandHost_QueryInterface(IExecuteCommandHost* This,REFIID riid,void **ppvObject) {
   41573     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   41574 }
   41575 static FORCEINLINE ULONG IExecuteCommandHost_AddRef(IExecuteCommandHost* This) {
   41576     return This->lpVtbl->AddRef(This);
   41577 }
   41578 static FORCEINLINE ULONG IExecuteCommandHost_Release(IExecuteCommandHost* This) {
   41579     return This->lpVtbl->Release(This);
   41580 }
   41581 /*** IExecuteCommandHost methods ***/
   41582 static FORCEINLINE HRESULT IExecuteCommandHost_GetUIMode(IExecuteCommandHost* This,EC_HOST_UI_MODE *pUIMode) {
   41583     return This->lpVtbl->GetUIMode(This,pUIMode);
   41584 }
   41585 #endif
   41586 #endif
   41587 
   41588 #endif
   41589 
   41590 HRESULT STDMETHODCALLTYPE IExecuteCommandHost_GetUIMode_Proxy(
   41591     IExecuteCommandHost* This,
   41592     EC_HOST_UI_MODE *pUIMode);
   41593 void __RPC_STUB IExecuteCommandHost_GetUIMode_Stub(
   41594     IRpcStubBuffer* This,
   41595     IRpcChannelBuffer* pRpcChannelBuffer,
   41596     PRPC_MESSAGE pRpcMessage,
   41597     DWORD* pdwStubPhase);
   41598 
   41599 #endif  /* __IExecuteCommandHost_INTERFACE_DEFINED__ */
   41600 
   41601 
   41602 #define SID_ExecuteCommandHost IID_IExecuteCommandHost
   41603 
   41604 typedef enum APPLICATION_VIEW_STATE {
   41605     AVS_FULLSCREEN_LANDSCAPE = 0,
   41606     AVS_FILLED = 1,
   41607     AVS_SNAPPED = 2,
   41608     AVS_FULLSCREEN_PORTRAIT = 3
   41609 } APPLICATION_VIEW_STATE;
   41610 
   41611 typedef enum EDGE_GESTURE_KIND {
   41612     EGK_TOUCH = 0,
   41613     EGK_KEYBOARD = 1,
   41614     EGK_MOUSE = 2
   41615 } EDGE_GESTURE_KIND;
   41616 
   41617 /*****************************************************************************
   41618  * IApplicationDesignModeSettings interface
   41619  */
   41620 #ifndef __IApplicationDesignModeSettings_INTERFACE_DEFINED__
   41621 #define __IApplicationDesignModeSettings_INTERFACE_DEFINED__
   41622 
   41623 DEFINE_GUID(IID_IApplicationDesignModeSettings, 0x2a3dee9a, 0xe31d, 0x46d6, 0x85,0x08, 0xbc,0xc5,0x97,0xdb,0x35,0x57);
   41624 #if defined(__cplusplus) && !defined(CINTERFACE)
   41625 MIDL_INTERFACE("2a3dee9a-e31d-46d6-8508-bcc597db3557")
   41626 IApplicationDesignModeSettings : public IUnknown
   41627 {
   41628     virtual HRESULT STDMETHODCALLTYPE SetNativeDisplaySize(
   41629         SIZE sizeNativeDisplay) = 0;
   41630 
   41631     virtual HRESULT STDMETHODCALLTYPE SetScaleFactor(
   41632         DEVICE_SCALE_FACTOR scaleFactor) = 0;
   41633 
   41634     virtual HRESULT STDMETHODCALLTYPE SetApplicationViewState(
   41635         APPLICATION_VIEW_STATE viewState) = 0;
   41636 
   41637     virtual HRESULT STDMETHODCALLTYPE ComputeApplicationSize(
   41638         SIZE *psizeApplication) = 0;
   41639 
   41640     virtual HRESULT STDMETHODCALLTYPE IsApplicationViewStateSupported(
   41641         APPLICATION_VIEW_STATE viewState,
   41642         SIZE sizeNativeDisplay,
   41643         DEVICE_SCALE_FACTOR scaleFactor,
   41644         WINBOOL *pfSupported) = 0;
   41645 
   41646     virtual HRESULT STDMETHODCALLTYPE TriggerEdgeGesture(
   41647         EDGE_GESTURE_KIND edgeGestureKind) = 0;
   41648 
   41649 };
   41650 #ifdef __CRT_UUID_DECL
   41651 __CRT_UUID_DECL(IApplicationDesignModeSettings, 0x2a3dee9a, 0xe31d, 0x46d6, 0x85,0x08, 0xbc,0xc5,0x97,0xdb,0x35,0x57)
   41652 #endif
   41653 #else
   41654 typedef struct IApplicationDesignModeSettingsVtbl {
   41655     BEGIN_INTERFACE
   41656 
   41657     /*** IUnknown methods ***/
   41658     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   41659         IApplicationDesignModeSettings* This,
   41660         REFIID riid,
   41661         void **ppvObject);
   41662 
   41663     ULONG (STDMETHODCALLTYPE *AddRef)(
   41664         IApplicationDesignModeSettings* This);
   41665 
   41666     ULONG (STDMETHODCALLTYPE *Release)(
   41667         IApplicationDesignModeSettings* This);
   41668 
   41669     /*** IApplicationDesignModeSettings methods ***/
   41670     HRESULT (STDMETHODCALLTYPE *SetNativeDisplaySize)(
   41671         IApplicationDesignModeSettings* This,
   41672         SIZE sizeNativeDisplay);
   41673 
   41674     HRESULT (STDMETHODCALLTYPE *SetScaleFactor)(
   41675         IApplicationDesignModeSettings* This,
   41676         DEVICE_SCALE_FACTOR scaleFactor);
   41677 
   41678     HRESULT (STDMETHODCALLTYPE *SetApplicationViewState)(
   41679         IApplicationDesignModeSettings* This,
   41680         APPLICATION_VIEW_STATE viewState);
   41681 
   41682     HRESULT (STDMETHODCALLTYPE *ComputeApplicationSize)(
   41683         IApplicationDesignModeSettings* This,
   41684         SIZE *psizeApplication);
   41685 
   41686     HRESULT (STDMETHODCALLTYPE *IsApplicationViewStateSupported)(
   41687         IApplicationDesignModeSettings* This,
   41688         APPLICATION_VIEW_STATE viewState,
   41689         SIZE sizeNativeDisplay,
   41690         DEVICE_SCALE_FACTOR scaleFactor,
   41691         WINBOOL *pfSupported);
   41692 
   41693     HRESULT (STDMETHODCALLTYPE *TriggerEdgeGesture)(
   41694         IApplicationDesignModeSettings* This,
   41695         EDGE_GESTURE_KIND edgeGestureKind);
   41696 
   41697     END_INTERFACE
   41698 } IApplicationDesignModeSettingsVtbl;
   41699 interface IApplicationDesignModeSettings {
   41700     CONST_VTBL IApplicationDesignModeSettingsVtbl* lpVtbl;
   41701 };
   41702 
   41703 #ifdef COBJMACROS
   41704 #ifndef WIDL_C_INLINE_WRAPPERS
   41705 /*** IUnknown methods ***/
   41706 #define IApplicationDesignModeSettings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   41707 #define IApplicationDesignModeSettings_AddRef(This) (This)->lpVtbl->AddRef(This)
   41708 #define IApplicationDesignModeSettings_Release(This) (This)->lpVtbl->Release(This)
   41709 /*** IApplicationDesignModeSettings methods ***/
   41710 #define IApplicationDesignModeSettings_SetNativeDisplaySize(This,sizeNativeDisplay) (This)->lpVtbl->SetNativeDisplaySize(This,sizeNativeDisplay)
   41711 #define IApplicationDesignModeSettings_SetScaleFactor(This,scaleFactor) (This)->lpVtbl->SetScaleFactor(This,scaleFactor)
   41712 #define IApplicationDesignModeSettings_SetApplicationViewState(This,viewState) (This)->lpVtbl->SetApplicationViewState(This,viewState)
   41713 #define IApplicationDesignModeSettings_ComputeApplicationSize(This,psizeApplication) (This)->lpVtbl->ComputeApplicationSize(This,psizeApplication)
   41714 #define IApplicationDesignModeSettings_IsApplicationViewStateSupported(This,viewState,sizeNativeDisplay,scaleFactor,pfSupported) (This)->lpVtbl->IsApplicationViewStateSupported(This,viewState,sizeNativeDisplay,scaleFactor,pfSupported)
   41715 #define IApplicationDesignModeSettings_TriggerEdgeGesture(This,edgeGestureKind) (This)->lpVtbl->TriggerEdgeGesture(This,edgeGestureKind)
   41716 #else
   41717 /*** IUnknown methods ***/
   41718 static FORCEINLINE HRESULT IApplicationDesignModeSettings_QueryInterface(IApplicationDesignModeSettings* This,REFIID riid,void **ppvObject) {
   41719     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   41720 }
   41721 static FORCEINLINE ULONG IApplicationDesignModeSettings_AddRef(IApplicationDesignModeSettings* This) {
   41722     return This->lpVtbl->AddRef(This);
   41723 }
   41724 static FORCEINLINE ULONG IApplicationDesignModeSettings_Release(IApplicationDesignModeSettings* This) {
   41725     return This->lpVtbl->Release(This);
   41726 }
   41727 /*** IApplicationDesignModeSettings methods ***/
   41728 static FORCEINLINE HRESULT IApplicationDesignModeSettings_SetNativeDisplaySize(IApplicationDesignModeSettings* This,SIZE sizeNativeDisplay) {
   41729     return This->lpVtbl->SetNativeDisplaySize(This,sizeNativeDisplay);
   41730 }
   41731 static FORCEINLINE HRESULT IApplicationDesignModeSettings_SetScaleFactor(IApplicationDesignModeSettings* This,DEVICE_SCALE_FACTOR scaleFactor) {
   41732     return This->lpVtbl->SetScaleFactor(This,scaleFactor);
   41733 }
   41734 static FORCEINLINE HRESULT IApplicationDesignModeSettings_SetApplicationViewState(IApplicationDesignModeSettings* This,APPLICATION_VIEW_STATE viewState) {
   41735     return This->lpVtbl->SetApplicationViewState(This,viewState);
   41736 }
   41737 static FORCEINLINE HRESULT IApplicationDesignModeSettings_ComputeApplicationSize(IApplicationDesignModeSettings* This,SIZE *psizeApplication) {
   41738     return This->lpVtbl->ComputeApplicationSize(This,psizeApplication);
   41739 }
   41740 static FORCEINLINE HRESULT IApplicationDesignModeSettings_IsApplicationViewStateSupported(IApplicationDesignModeSettings* This,APPLICATION_VIEW_STATE viewState,SIZE sizeNativeDisplay,DEVICE_SCALE_FACTOR scaleFactor,WINBOOL *pfSupported) {
   41741     return This->lpVtbl->IsApplicationViewStateSupported(This,viewState,sizeNativeDisplay,scaleFactor,pfSupported);
   41742 }
   41743 static FORCEINLINE HRESULT IApplicationDesignModeSettings_TriggerEdgeGesture(IApplicationDesignModeSettings* This,EDGE_GESTURE_KIND edgeGestureKind) {
   41744     return This->lpVtbl->TriggerEdgeGesture(This,edgeGestureKind);
   41745 }
   41746 #endif
   41747 #endif
   41748 
   41749 #endif
   41750 
   41751 HRESULT STDMETHODCALLTYPE IApplicationDesignModeSettings_SetNativeDisplaySize_Proxy(
   41752     IApplicationDesignModeSettings* This,
   41753     SIZE sizeNativeDisplay);
   41754 void __RPC_STUB IApplicationDesignModeSettings_SetNativeDisplaySize_Stub(
   41755     IRpcStubBuffer* This,
   41756     IRpcChannelBuffer* pRpcChannelBuffer,
   41757     PRPC_MESSAGE pRpcMessage,
   41758     DWORD* pdwStubPhase);
   41759 HRESULT STDMETHODCALLTYPE IApplicationDesignModeSettings_SetScaleFactor_Proxy(
   41760     IApplicationDesignModeSettings* This,
   41761     DEVICE_SCALE_FACTOR scaleFactor);
   41762 void __RPC_STUB IApplicationDesignModeSettings_SetScaleFactor_Stub(
   41763     IRpcStubBuffer* This,
   41764     IRpcChannelBuffer* pRpcChannelBuffer,
   41765     PRPC_MESSAGE pRpcMessage,
   41766     DWORD* pdwStubPhase);
   41767 HRESULT STDMETHODCALLTYPE IApplicationDesignModeSettings_SetApplicationViewState_Proxy(
   41768     IApplicationDesignModeSettings* This,
   41769     APPLICATION_VIEW_STATE viewState);
   41770 void __RPC_STUB IApplicationDesignModeSettings_SetApplicationViewState_Stub(
   41771     IRpcStubBuffer* This,
   41772     IRpcChannelBuffer* pRpcChannelBuffer,
   41773     PRPC_MESSAGE pRpcMessage,
   41774     DWORD* pdwStubPhase);
   41775 HRESULT STDMETHODCALLTYPE IApplicationDesignModeSettings_ComputeApplicationSize_Proxy(
   41776     IApplicationDesignModeSettings* This,
   41777     SIZE *psizeApplication);
   41778 void __RPC_STUB IApplicationDesignModeSettings_ComputeApplicationSize_Stub(
   41779     IRpcStubBuffer* This,
   41780     IRpcChannelBuffer* pRpcChannelBuffer,
   41781     PRPC_MESSAGE pRpcMessage,
   41782     DWORD* pdwStubPhase);
   41783 HRESULT STDMETHODCALLTYPE IApplicationDesignModeSettings_IsApplicationViewStateSupported_Proxy(
   41784     IApplicationDesignModeSettings* This,
   41785     APPLICATION_VIEW_STATE viewState,
   41786     SIZE sizeNativeDisplay,
   41787     DEVICE_SCALE_FACTOR scaleFactor,
   41788     WINBOOL *pfSupported);
   41789 void __RPC_STUB IApplicationDesignModeSettings_IsApplicationViewStateSupported_Stub(
   41790     IRpcStubBuffer* This,
   41791     IRpcChannelBuffer* pRpcChannelBuffer,
   41792     PRPC_MESSAGE pRpcMessage,
   41793     DWORD* pdwStubPhase);
   41794 HRESULT STDMETHODCALLTYPE IApplicationDesignModeSettings_TriggerEdgeGesture_Proxy(
   41795     IApplicationDesignModeSettings* This,
   41796     EDGE_GESTURE_KIND edgeGestureKind);
   41797 void __RPC_STUB IApplicationDesignModeSettings_TriggerEdgeGesture_Stub(
   41798     IRpcStubBuffer* This,
   41799     IRpcChannelBuffer* pRpcChannelBuffer,
   41800     PRPC_MESSAGE pRpcMessage,
   41801     DWORD* pdwStubPhase);
   41802 
   41803 #endif  /* __IApplicationDesignModeSettings_INTERFACE_DEFINED__ */
   41804 
   41805 
   41806 /*****************************************************************************
   41807  * IInitializeWithWindow interface
   41808  */
   41809 #ifndef __IInitializeWithWindow_INTERFACE_DEFINED__
   41810 #define __IInitializeWithWindow_INTERFACE_DEFINED__
   41811 
   41812 DEFINE_GUID(IID_IInitializeWithWindow, 0x3e68d4bd, 0x7135, 0x4d10, 0x80,0x18, 0x9f,0xb6,0xd9,0xf3,0x3f,0xa1);
   41813 #if defined(__cplusplus) && !defined(CINTERFACE)
   41814 MIDL_INTERFACE("3e68d4bd-7135-4d10-8018-9fb6d9f33fa1")
   41815 IInitializeWithWindow : public IUnknown
   41816 {
   41817     virtual HRESULT STDMETHODCALLTYPE Initialize(
   41818         HWND hwnd) = 0;
   41819 
   41820 };
   41821 #ifdef __CRT_UUID_DECL
   41822 __CRT_UUID_DECL(IInitializeWithWindow, 0x3e68d4bd, 0x7135, 0x4d10, 0x80,0x18, 0x9f,0xb6,0xd9,0xf3,0x3f,0xa1)
   41823 #endif
   41824 #else
   41825 typedef struct IInitializeWithWindowVtbl {
   41826     BEGIN_INTERFACE
   41827 
   41828     /*** IUnknown methods ***/
   41829     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   41830         IInitializeWithWindow* This,
   41831         REFIID riid,
   41832         void **ppvObject);
   41833 
   41834     ULONG (STDMETHODCALLTYPE *AddRef)(
   41835         IInitializeWithWindow* This);
   41836 
   41837     ULONG (STDMETHODCALLTYPE *Release)(
   41838         IInitializeWithWindow* This);
   41839 
   41840     /*** IInitializeWithWindow methods ***/
   41841     HRESULT (STDMETHODCALLTYPE *Initialize)(
   41842         IInitializeWithWindow* This,
   41843         HWND hwnd);
   41844 
   41845     END_INTERFACE
   41846 } IInitializeWithWindowVtbl;
   41847 interface IInitializeWithWindow {
   41848     CONST_VTBL IInitializeWithWindowVtbl* lpVtbl;
   41849 };
   41850 
   41851 #ifdef COBJMACROS
   41852 #ifndef WIDL_C_INLINE_WRAPPERS
   41853 /*** IUnknown methods ***/
   41854 #define IInitializeWithWindow_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   41855 #define IInitializeWithWindow_AddRef(This) (This)->lpVtbl->AddRef(This)
   41856 #define IInitializeWithWindow_Release(This) (This)->lpVtbl->Release(This)
   41857 /*** IInitializeWithWindow methods ***/
   41858 #define IInitializeWithWindow_Initialize(This,hwnd) (This)->lpVtbl->Initialize(This,hwnd)
   41859 #else
   41860 /*** IUnknown methods ***/
   41861 static FORCEINLINE HRESULT IInitializeWithWindow_QueryInterface(IInitializeWithWindow* This,REFIID riid,void **ppvObject) {
   41862     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   41863 }
   41864 static FORCEINLINE ULONG IInitializeWithWindow_AddRef(IInitializeWithWindow* This) {
   41865     return This->lpVtbl->AddRef(This);
   41866 }
   41867 static FORCEINLINE ULONG IInitializeWithWindow_Release(IInitializeWithWindow* This) {
   41868     return This->lpVtbl->Release(This);
   41869 }
   41870 /*** IInitializeWithWindow methods ***/
   41871 static FORCEINLINE HRESULT IInitializeWithWindow_Initialize(IInitializeWithWindow* This,HWND hwnd) {
   41872     return This->lpVtbl->Initialize(This,hwnd);
   41873 }
   41874 #endif
   41875 #endif
   41876 
   41877 #endif
   41878 
   41879 HRESULT STDMETHODCALLTYPE IInitializeWithWindow_Initialize_Proxy(
   41880     IInitializeWithWindow* This,
   41881     HWND hwnd);
   41882 void __RPC_STUB IInitializeWithWindow_Initialize_Stub(
   41883     IRpcStubBuffer* This,
   41884     IRpcChannelBuffer* pRpcChannelBuffer,
   41885     PRPC_MESSAGE pRpcMessage,
   41886     DWORD* pdwStubPhase);
   41887 
   41888 #endif  /* __IInitializeWithWindow_INTERFACE_DEFINED__ */
   41889 
   41890 
   41891 /*****************************************************************************
   41892  * IHandlerInfo interface
   41893  */
   41894 #ifndef __IHandlerInfo_INTERFACE_DEFINED__
   41895 #define __IHandlerInfo_INTERFACE_DEFINED__
   41896 
   41897 DEFINE_GUID(IID_IHandlerInfo, 0x997706ef, 0xf880, 0x453b, 0x81,0x18, 0x39,0xe1,0xa2,0xd2,0x65,0x5a);
   41898 #if defined(__cplusplus) && !defined(CINTERFACE)
   41899 MIDL_INTERFACE("997706ef-f880-453b-8118-39e1a2d2655a")
   41900 IHandlerInfo : public IUnknown
   41901 {
   41902     virtual HRESULT STDMETHODCALLTYPE GetApplicationDisplayName(
   41903         LPWSTR *value) = 0;
   41904 
   41905     virtual HRESULT STDMETHODCALLTYPE GetApplicationPublisher(
   41906         LPWSTR *value) = 0;
   41907 
   41908     virtual HRESULT STDMETHODCALLTYPE GetApplicationIconReference(
   41909         LPWSTR *value) = 0;
   41910 
   41911 };
   41912 #ifdef __CRT_UUID_DECL
   41913 __CRT_UUID_DECL(IHandlerInfo, 0x997706ef, 0xf880, 0x453b, 0x81,0x18, 0x39,0xe1,0xa2,0xd2,0x65,0x5a)
   41914 #endif
   41915 #else
   41916 typedef struct IHandlerInfoVtbl {
   41917     BEGIN_INTERFACE
   41918 
   41919     /*** IUnknown methods ***/
   41920     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   41921         IHandlerInfo* This,
   41922         REFIID riid,
   41923         void **ppvObject);
   41924 
   41925     ULONG (STDMETHODCALLTYPE *AddRef)(
   41926         IHandlerInfo* This);
   41927 
   41928     ULONG (STDMETHODCALLTYPE *Release)(
   41929         IHandlerInfo* This);
   41930 
   41931     /*** IHandlerInfo methods ***/
   41932     HRESULT (STDMETHODCALLTYPE *GetApplicationDisplayName)(
   41933         IHandlerInfo* This,
   41934         LPWSTR *value);
   41935 
   41936     HRESULT (STDMETHODCALLTYPE *GetApplicationPublisher)(
   41937         IHandlerInfo* This,
   41938         LPWSTR *value);
   41939 
   41940     HRESULT (STDMETHODCALLTYPE *GetApplicationIconReference)(
   41941         IHandlerInfo* This,
   41942         LPWSTR *value);
   41943 
   41944     END_INTERFACE
   41945 } IHandlerInfoVtbl;
   41946 interface IHandlerInfo {
   41947     CONST_VTBL IHandlerInfoVtbl* lpVtbl;
   41948 };
   41949 
   41950 #ifdef COBJMACROS
   41951 #ifndef WIDL_C_INLINE_WRAPPERS
   41952 /*** IUnknown methods ***/
   41953 #define IHandlerInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   41954 #define IHandlerInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
   41955 #define IHandlerInfo_Release(This) (This)->lpVtbl->Release(This)
   41956 /*** IHandlerInfo methods ***/
   41957 #define IHandlerInfo_GetApplicationDisplayName(This,value) (This)->lpVtbl->GetApplicationDisplayName(This,value)
   41958 #define IHandlerInfo_GetApplicationPublisher(This,value) (This)->lpVtbl->GetApplicationPublisher(This,value)
   41959 #define IHandlerInfo_GetApplicationIconReference(This,value) (This)->lpVtbl->GetApplicationIconReference(This,value)
   41960 #else
   41961 /*** IUnknown methods ***/
   41962 static FORCEINLINE HRESULT IHandlerInfo_QueryInterface(IHandlerInfo* This,REFIID riid,void **ppvObject) {
   41963     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   41964 }
   41965 static FORCEINLINE ULONG IHandlerInfo_AddRef(IHandlerInfo* This) {
   41966     return This->lpVtbl->AddRef(This);
   41967 }
   41968 static FORCEINLINE ULONG IHandlerInfo_Release(IHandlerInfo* This) {
   41969     return This->lpVtbl->Release(This);
   41970 }
   41971 /*** IHandlerInfo methods ***/
   41972 static FORCEINLINE HRESULT IHandlerInfo_GetApplicationDisplayName(IHandlerInfo* This,LPWSTR *value) {
   41973     return This->lpVtbl->GetApplicationDisplayName(This,value);
   41974 }
   41975 static FORCEINLINE HRESULT IHandlerInfo_GetApplicationPublisher(IHandlerInfo* This,LPWSTR *value) {
   41976     return This->lpVtbl->GetApplicationPublisher(This,value);
   41977 }
   41978 static FORCEINLINE HRESULT IHandlerInfo_GetApplicationIconReference(IHandlerInfo* This,LPWSTR *value) {
   41979     return This->lpVtbl->GetApplicationIconReference(This,value);
   41980 }
   41981 #endif
   41982 #endif
   41983 
   41984 #endif
   41985 
   41986 HRESULT STDMETHODCALLTYPE IHandlerInfo_GetApplicationDisplayName_Proxy(
   41987     IHandlerInfo* This,
   41988     LPWSTR *value);
   41989 void __RPC_STUB IHandlerInfo_GetApplicationDisplayName_Stub(
   41990     IRpcStubBuffer* This,
   41991     IRpcChannelBuffer* pRpcChannelBuffer,
   41992     PRPC_MESSAGE pRpcMessage,
   41993     DWORD* pdwStubPhase);
   41994 HRESULT STDMETHODCALLTYPE IHandlerInfo_GetApplicationPublisher_Proxy(
   41995     IHandlerInfo* This,
   41996     LPWSTR *value);
   41997 void __RPC_STUB IHandlerInfo_GetApplicationPublisher_Stub(
   41998     IRpcStubBuffer* This,
   41999     IRpcChannelBuffer* pRpcChannelBuffer,
   42000     PRPC_MESSAGE pRpcMessage,
   42001     DWORD* pdwStubPhase);
   42002 HRESULT STDMETHODCALLTYPE IHandlerInfo_GetApplicationIconReference_Proxy(
   42003     IHandlerInfo* This,
   42004     LPWSTR *value);
   42005 void __RPC_STUB IHandlerInfo_GetApplicationIconReference_Stub(
   42006     IRpcStubBuffer* This,
   42007     IRpcChannelBuffer* pRpcChannelBuffer,
   42008     PRPC_MESSAGE pRpcMessage,
   42009     DWORD* pdwStubPhase);
   42010 
   42011 #endif  /* __IHandlerInfo_INTERFACE_DEFINED__ */
   42012 
   42013 
   42014 /*****************************************************************************
   42015  * IHandlerActivationHost interface
   42016  */
   42017 #ifndef __IHandlerActivationHost_INTERFACE_DEFINED__
   42018 #define __IHandlerActivationHost_INTERFACE_DEFINED__
   42019 
   42020 DEFINE_GUID(IID_IHandlerActivationHost, 0x35094a87, 0x8bb1, 0x4237, 0x96,0xc6, 0xc4,0x17,0xee,0xbd,0xb0,0x78);
   42021 #if defined(__cplusplus) && !defined(CINTERFACE)
   42022 MIDL_INTERFACE("35094a87-8bb1-4237-96c6-c417eebdb078")
   42023 IHandlerActivationHost : public IUnknown
   42024 {
   42025     virtual HRESULT STDMETHODCALLTYPE BeforeCoCreateInstance(
   42026         REFCLSID clsidHandler,
   42027         IShellItemArray *itemsBeingActivated,
   42028         IHandlerInfo *handlerInfo) = 0;
   42029 
   42030     virtual HRESULT STDMETHODCALLTYPE BeforeCreateProcess(
   42031         LPCWSTR applicationPath,
   42032         LPCWSTR commandLine,
   42033         IHandlerInfo *handlerInfo) = 0;
   42034 
   42035 };
   42036 #ifdef __CRT_UUID_DECL
   42037 __CRT_UUID_DECL(IHandlerActivationHost, 0x35094a87, 0x8bb1, 0x4237, 0x96,0xc6, 0xc4,0x17,0xee,0xbd,0xb0,0x78)
   42038 #endif
   42039 #else
   42040 typedef struct IHandlerActivationHostVtbl {
   42041     BEGIN_INTERFACE
   42042 
   42043     /*** IUnknown methods ***/
   42044     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   42045         IHandlerActivationHost* This,
   42046         REFIID riid,
   42047         void **ppvObject);
   42048 
   42049     ULONG (STDMETHODCALLTYPE *AddRef)(
   42050         IHandlerActivationHost* This);
   42051 
   42052     ULONG (STDMETHODCALLTYPE *Release)(
   42053         IHandlerActivationHost* This);
   42054 
   42055     /*** IHandlerActivationHost methods ***/
   42056     HRESULT (STDMETHODCALLTYPE *BeforeCoCreateInstance)(
   42057         IHandlerActivationHost* This,
   42058         REFCLSID clsidHandler,
   42059         IShellItemArray *itemsBeingActivated,
   42060         IHandlerInfo *handlerInfo);
   42061 
   42062     HRESULT (STDMETHODCALLTYPE *BeforeCreateProcess)(
   42063         IHandlerActivationHost* This,
   42064         LPCWSTR applicationPath,
   42065         LPCWSTR commandLine,
   42066         IHandlerInfo *handlerInfo);
   42067 
   42068     END_INTERFACE
   42069 } IHandlerActivationHostVtbl;
   42070 interface IHandlerActivationHost {
   42071     CONST_VTBL IHandlerActivationHostVtbl* lpVtbl;
   42072 };
   42073 
   42074 #ifdef COBJMACROS
   42075 #ifndef WIDL_C_INLINE_WRAPPERS
   42076 /*** IUnknown methods ***/
   42077 #define IHandlerActivationHost_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   42078 #define IHandlerActivationHost_AddRef(This) (This)->lpVtbl->AddRef(This)
   42079 #define IHandlerActivationHost_Release(This) (This)->lpVtbl->Release(This)
   42080 /*** IHandlerActivationHost methods ***/
   42081 #define IHandlerActivationHost_BeforeCoCreateInstance(This,clsidHandler,itemsBeingActivated,handlerInfo) (This)->lpVtbl->BeforeCoCreateInstance(This,clsidHandler,itemsBeingActivated,handlerInfo)
   42082 #define IHandlerActivationHost_BeforeCreateProcess(This,applicationPath,commandLine,handlerInfo) (This)->lpVtbl->BeforeCreateProcess(This,applicationPath,commandLine,handlerInfo)
   42083 #else
   42084 /*** IUnknown methods ***/
   42085 static FORCEINLINE HRESULT IHandlerActivationHost_QueryInterface(IHandlerActivationHost* This,REFIID riid,void **ppvObject) {
   42086     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   42087 }
   42088 static FORCEINLINE ULONG IHandlerActivationHost_AddRef(IHandlerActivationHost* This) {
   42089     return This->lpVtbl->AddRef(This);
   42090 }
   42091 static FORCEINLINE ULONG IHandlerActivationHost_Release(IHandlerActivationHost* This) {
   42092     return This->lpVtbl->Release(This);
   42093 }
   42094 /*** IHandlerActivationHost methods ***/
   42095 static FORCEINLINE HRESULT IHandlerActivationHost_BeforeCoCreateInstance(IHandlerActivationHost* This,REFCLSID clsidHandler,IShellItemArray *itemsBeingActivated,IHandlerInfo *handlerInfo) {
   42096     return This->lpVtbl->BeforeCoCreateInstance(This,clsidHandler,itemsBeingActivated,handlerInfo);
   42097 }
   42098 static FORCEINLINE HRESULT IHandlerActivationHost_BeforeCreateProcess(IHandlerActivationHost* This,LPCWSTR applicationPath,LPCWSTR commandLine,IHandlerInfo *handlerInfo) {
   42099     return This->lpVtbl->BeforeCreateProcess(This,applicationPath,commandLine,handlerInfo);
   42100 }
   42101 #endif
   42102 #endif
   42103 
   42104 #endif
   42105 
   42106 HRESULT STDMETHODCALLTYPE IHandlerActivationHost_BeforeCoCreateInstance_Proxy(
   42107     IHandlerActivationHost* This,
   42108     REFCLSID clsidHandler,
   42109     IShellItemArray *itemsBeingActivated,
   42110     IHandlerInfo *handlerInfo);
   42111 void __RPC_STUB IHandlerActivationHost_BeforeCoCreateInstance_Stub(
   42112     IRpcStubBuffer* This,
   42113     IRpcChannelBuffer* pRpcChannelBuffer,
   42114     PRPC_MESSAGE pRpcMessage,
   42115     DWORD* pdwStubPhase);
   42116 HRESULT STDMETHODCALLTYPE IHandlerActivationHost_BeforeCreateProcess_Proxy(
   42117     IHandlerActivationHost* This,
   42118     LPCWSTR applicationPath,
   42119     LPCWSTR commandLine,
   42120     IHandlerInfo *handlerInfo);
   42121 void __RPC_STUB IHandlerActivationHost_BeforeCreateProcess_Stub(
   42122     IRpcStubBuffer* This,
   42123     IRpcChannelBuffer* pRpcChannelBuffer,
   42124     PRPC_MESSAGE pRpcMessage,
   42125     DWORD* pdwStubPhase);
   42126 
   42127 #endif  /* __IHandlerActivationHost_INTERFACE_DEFINED__ */
   42128 
   42129 
   42130 #define SID_SHandlerActivationHost IID_IHandlerActivationHost
   42131 
   42132 DEFINE_GUID(SID_ShellExecuteNamedPropertyStore, 0xeb84ada2, 0x00ff, 0x4992, 0x83, 0x24, 0xed, 0x5c, 0xe0, 0x61, 0xcb, 0x29);
   42133 #endif
   42134 
   42135 #endif
   42136 /* Begin additional prototypes for all interfaces */
   42137 
   42138 ULONG           __RPC_USER PCIDLIST_ABSOLUTE_UserSize     (ULONG *, ULONG, PCIDLIST_ABSOLUTE *);
   42139 unsigned char * __RPC_USER PCIDLIST_ABSOLUTE_UserMarshal  (ULONG *, unsigned char *, PCIDLIST_ABSOLUTE *);
   42140 unsigned char * __RPC_USER PCIDLIST_ABSOLUTE_UserUnmarshal(ULONG *, unsigned char *, PCIDLIST_ABSOLUTE *);
   42141 void            __RPC_USER PCIDLIST_ABSOLUTE_UserFree     (ULONG *, PCIDLIST_ABSOLUTE *);
   42142 ULONG           __RPC_USER PIDLIST_ABSOLUTE_UserSize     (ULONG *, ULONG, PIDLIST_ABSOLUTE *);
   42143 unsigned char * __RPC_USER PIDLIST_ABSOLUTE_UserMarshal  (ULONG *, unsigned char *, PIDLIST_ABSOLUTE *);
   42144 unsigned char * __RPC_USER PIDLIST_ABSOLUTE_UserUnmarshal(ULONG *, unsigned char *, PIDLIST_ABSOLUTE *);
   42145 void            __RPC_USER PIDLIST_ABSOLUTE_UserFree     (ULONG *, PIDLIST_ABSOLUTE *);
   42146 ULONG           __RPC_USER PITEMID_CHILD_UserSize     (ULONG *, ULONG, PITEMID_CHILD *);
   42147 unsigned char * __RPC_USER PITEMID_CHILD_UserMarshal  (ULONG *, unsigned char *, PITEMID_CHILD *);
   42148 unsigned char * __RPC_USER PITEMID_CHILD_UserUnmarshal(ULONG *, unsigned char *, PITEMID_CHILD *);
   42149 void            __RPC_USER PITEMID_CHILD_UserFree     (ULONG *, PITEMID_CHILD *);
   42150 ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
   42151 unsigned char * __RPC_USER HWND_UserMarshal  (ULONG *, unsigned char *, HWND *);
   42152 unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *);
   42153 void            __RPC_USER HWND_UserFree     (ULONG *, HWND *);
   42154 ULONG           __RPC_USER PIDLIST_RELATIVE_UserSize     (ULONG *, ULONG, PIDLIST_RELATIVE *);
   42155 unsigned char * __RPC_USER PIDLIST_RELATIVE_UserMarshal  (ULONG *, unsigned char *, PIDLIST_RELATIVE *);
   42156 unsigned char * __RPC_USER PIDLIST_RELATIVE_UserUnmarshal(ULONG *, unsigned char *, PIDLIST_RELATIVE *);
   42157 void            __RPC_USER PIDLIST_RELATIVE_UserFree     (ULONG *, PIDLIST_RELATIVE *);
   42158 ULONG           __RPC_USER PCUIDLIST_RELATIVE_UserSize     (ULONG *, ULONG, PCUIDLIST_RELATIVE *);
   42159 unsigned char * __RPC_USER PCUIDLIST_RELATIVE_UserMarshal  (ULONG *, unsigned char *, PCUIDLIST_RELATIVE *);
   42160 unsigned char * __RPC_USER PCUIDLIST_RELATIVE_UserUnmarshal(ULONG *, unsigned char *, PCUIDLIST_RELATIVE *);
   42161 void            __RPC_USER PCUIDLIST_RELATIVE_UserFree     (ULONG *, PCUIDLIST_RELATIVE *);
   42162 ULONG           __RPC_USER PCUITEMID_CHILD_UserSize     (ULONG *, ULONG, PCUITEMID_CHILD *);
   42163 unsigned char * __RPC_USER PCUITEMID_CHILD_UserMarshal  (ULONG *, unsigned char *, PCUITEMID_CHILD *);
   42164 unsigned char * __RPC_USER PCUITEMID_CHILD_UserUnmarshal(ULONG *, unsigned char *, PCUITEMID_CHILD *);
   42165 void            __RPC_USER PCUITEMID_CHILD_UserFree     (ULONG *, PCUITEMID_CHILD *);
   42166 ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
   42167 unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
   42168 unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
   42169 void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
   42170 ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
   42171 unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
   42172 unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
   42173 void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
   42174 ULONG           __RPC_USER LPSAFEARRAY_UserSize     (ULONG *, ULONG, LPSAFEARRAY *);
   42175 unsigned char * __RPC_USER LPSAFEARRAY_UserMarshal  (ULONG *, unsigned char *, LPSAFEARRAY *);
   42176 unsigned char * __RPC_USER LPSAFEARRAY_UserUnmarshal(ULONG *, unsigned char *, LPSAFEARRAY *);
   42177 void            __RPC_USER LPSAFEARRAY_UserFree     (ULONG *, LPSAFEARRAY *);
   42178 ULONG           __RPC_USER HBITMAP_UserSize     (ULONG *, ULONG, HBITMAP *);
   42179 unsigned char * __RPC_USER HBITMAP_UserMarshal  (ULONG *, unsigned char *, HBITMAP *);
   42180 unsigned char * __RPC_USER HBITMAP_UserUnmarshal(ULONG *, unsigned char *, HBITMAP *);
   42181 void            __RPC_USER HBITMAP_UserFree     (ULONG *, HBITMAP *);
   42182 ULONG           __RPC_USER HMENU_UserSize     (ULONG *, ULONG, HMENU *);
   42183 unsigned char * __RPC_USER HMENU_UserMarshal  (ULONG *, unsigned char *, HMENU *);
   42184 unsigned char * __RPC_USER HMENU_UserUnmarshal(ULONG *, unsigned char *, HMENU *);
   42185 void            __RPC_USER HMENU_UserFree     (ULONG *, HMENU *);
   42186 ULONG           __RPC_USER HGLOBAL_UserSize     (ULONG *, ULONG, HGLOBAL *);
   42187 unsigned char * __RPC_USER HGLOBAL_UserMarshal  (ULONG *, unsigned char *, HGLOBAL *);
   42188 unsigned char * __RPC_USER HGLOBAL_UserUnmarshal(ULONG *, unsigned char *, HGLOBAL *);
   42189 void            __RPC_USER HGLOBAL_UserFree     (ULONG *, HGLOBAL *);
   42190 ULONG           __RPC_USER HICON_UserSize     (ULONG *, ULONG, HICON *);
   42191 unsigned char * __RPC_USER HICON_UserMarshal  (ULONG *, unsigned char *, HICON *);
   42192 unsigned char * __RPC_USER HICON_UserUnmarshal(ULONG *, unsigned char *, HICON *);
   42193 void            __RPC_USER HICON_UserFree     (ULONG *, HICON *);
   42194 ULONG           __RPC_USER HACCEL_UserSize     (ULONG *, ULONG, HACCEL *);
   42195 unsigned char * __RPC_USER HACCEL_UserMarshal  (ULONG *, unsigned char *, HACCEL *);
   42196 unsigned char * __RPC_USER HACCEL_UserUnmarshal(ULONG *, unsigned char *, HACCEL *);
   42197 void            __RPC_USER HACCEL_UserFree     (ULONG *, HACCEL *);
   42198 ULONG           __RPC_USER HMONITOR_UserSize     (ULONG *, ULONG, HMONITOR *);
   42199 unsigned char * __RPC_USER HMONITOR_UserMarshal  (ULONG *, unsigned char *, HMONITOR *);
   42200 unsigned char * __RPC_USER HMONITOR_UserUnmarshal(ULONG *, unsigned char *, HMONITOR *);
   42201 void            __RPC_USER HMONITOR_UserFree     (ULONG *, HMONITOR *);
   42202 
   42203 /* End additional prototypes */
   42204 
   42205 #ifdef __cplusplus
   42206 }
   42207 #endif
   42208 
   42209 #endif /* __shobjidl_h__ */
   42210